@lidofinance/lido-app-ui 1.8.0 → 1.9.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.
Files changed (90) hide show
  1. package/dist/cjs/button/Button.cjs +11 -3
  2. package/dist/cjs/button/Button.cjs.map +1 -1
  3. package/dist/cjs/counter/Counter.module.css.cjs +1 -1
  4. package/dist/cjs/counter/CounterSlot.cjs +22 -0
  5. package/dist/cjs/counter/CounterSlot.cjs.map +1 -0
  6. package/dist/cjs/counter/CounterSlot.module.css.cjs +6 -0
  7. package/dist/cjs/counter/CounterSlot.module.css.cjs.map +1 -0
  8. package/dist/cjs/disclaimer/Disclaimer.cjs +33 -0
  9. package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -0
  10. package/dist/cjs/disclaimer/Disclaimer.module.css.cjs +6 -0
  11. package/dist/cjs/disclaimer/Disclaimer.module.css.cjs.map +1 -0
  12. package/dist/cjs/error-page/ErrorPage.cjs +64 -0
  13. package/dist/cjs/error-page/ErrorPage.cjs.map +1 -0
  14. package/dist/cjs/error-page/ErrorPage.module.css.cjs +6 -0
  15. package/dist/cjs/error-page/ErrorPage.module.css.cjs.map +1 -0
  16. package/dist/cjs/footer/Footer.cjs +30 -0
  17. package/dist/cjs/footer/Footer.cjs.map +1 -0
  18. package/dist/cjs/footer/Footer.module.css.cjs +6 -0
  19. package/dist/cjs/footer/Footer.module.css.cjs.map +1 -0
  20. package/dist/cjs/icon-button/IconButton.cjs +8 -3
  21. package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
  22. package/dist/cjs/index.cjs +8 -0
  23. package/dist/cjs/index.cjs.map +1 -1
  24. package/dist/cjs/index.css +3 -3
  25. package/dist/cjs/skeleton/Skeleton.cjs +40 -0
  26. package/dist/cjs/skeleton/Skeleton.cjs.map +1 -0
  27. package/dist/cjs/skeleton/Skeleton.module.css.cjs +6 -0
  28. package/dist/cjs/skeleton/Skeleton.module.css.cjs.map +1 -0
  29. package/dist/cjs/tag/Tag.cjs +1 -1
  30. package/dist/cjs/tag/Tag.cjs.map +1 -1
  31. package/dist/cjs/tag/Tag.module.css.cjs +1 -1
  32. package/dist/esm/button/Button.mjs +11 -3
  33. package/dist/esm/button/Button.mjs.map +1 -1
  34. package/dist/esm/counter/Counter.module.css.mjs +1 -1
  35. package/dist/esm/counter/CounterSlot.mjs +18 -0
  36. package/dist/esm/counter/CounterSlot.mjs.map +1 -0
  37. package/dist/esm/counter/CounterSlot.module.css.mjs +4 -0
  38. package/dist/esm/counter/CounterSlot.module.css.mjs.map +1 -0
  39. package/dist/esm/disclaimer/Disclaimer.mjs +29 -0
  40. package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -0
  41. package/dist/esm/disclaimer/Disclaimer.module.css.mjs +4 -0
  42. package/dist/esm/disclaimer/Disclaimer.module.css.mjs.map +1 -0
  43. package/dist/esm/error-page/ErrorPage.mjs +60 -0
  44. package/dist/esm/error-page/ErrorPage.mjs.map +1 -0
  45. package/dist/esm/error-page/ErrorPage.module.css.mjs +4 -0
  46. package/dist/esm/error-page/ErrorPage.module.css.mjs.map +1 -0
  47. package/dist/esm/footer/Footer.mjs +26 -0
  48. package/dist/esm/footer/Footer.mjs.map +1 -0
  49. package/dist/esm/footer/Footer.module.css.mjs +4 -0
  50. package/dist/esm/footer/Footer.module.css.mjs.map +1 -0
  51. package/dist/esm/icon-button/IconButton.mjs +9 -4
  52. package/dist/esm/icon-button/IconButton.mjs.map +1 -1
  53. package/dist/esm/index.css +3 -3
  54. package/dist/esm/index.mjs +4 -0
  55. package/dist/esm/index.mjs.map +1 -1
  56. package/dist/esm/skeleton/Skeleton.mjs +36 -0
  57. package/dist/esm/skeleton/Skeleton.mjs.map +1 -0
  58. package/dist/esm/skeleton/Skeleton.module.css.mjs +4 -0
  59. package/dist/esm/skeleton/Skeleton.module.css.mjs.map +1 -0
  60. package/dist/esm/tag/Tag.mjs +1 -1
  61. package/dist/esm/tag/Tag.mjs.map +1 -1
  62. package/dist/esm/tag/Tag.module.css.mjs +1 -1
  63. package/dist/index.css +3 -3
  64. package/dist/styles/typography-mixins.css +8 -0
  65. package/dist/types/button/Button.d.ts +14 -2
  66. package/dist/types/button/Button.d.ts.map +1 -1
  67. package/dist/types/counter/CounterSlot.d.ts +8 -0
  68. package/dist/types/counter/CounterSlot.d.ts.map +1 -0
  69. package/dist/types/disclaimer/Disclaimer.d.ts +9 -0
  70. package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -0
  71. package/dist/types/disclaimer/index.d.ts +3 -0
  72. package/dist/types/disclaimer/index.d.ts.map +1 -0
  73. package/dist/types/error-page/ErrorPage.d.ts +20 -0
  74. package/dist/types/error-page/ErrorPage.d.ts.map +1 -0
  75. package/dist/types/error-page/index.d.ts +3 -0
  76. package/dist/types/error-page/index.d.ts.map +1 -0
  77. package/dist/types/footer/Footer.d.ts +7 -0
  78. package/dist/types/footer/Footer.d.ts.map +1 -0
  79. package/dist/types/footer/index.d.ts +3 -0
  80. package/dist/types/footer/index.d.ts.map +1 -0
  81. package/dist/types/icon-button/IconButton.d.ts +4 -1
  82. package/dist/types/icon-button/IconButton.d.ts.map +1 -1
  83. package/dist/types/index.d.ts +4 -0
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/skeleton/Skeleton.d.ts +9 -0
  86. package/dist/types/skeleton/Skeleton.d.ts.map +1 -0
  87. package/dist/types/skeleton/index.d.ts +2 -0
  88. package/dist/types/skeleton/index.d.ts.map +1 -0
  89. package/dist/types/tag/Tag.d.ts.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CounterSlot.mjs","sources":["../../../src/counter/CounterSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport styles from './CounterSlot.module.css'\n\ntype CounterSlotProps = {\n children?: ReactNode\n dataTestId?: string\n}\n\nexport const CounterSlot = ({ children, dataTestId }: CounterSlotProps) =>\n children == null || children === false ? null : (\n <span className={styles.slot} aria-hidden='true' data-testid={dataTestId}>\n {children}\n </span>\n )\n"],"names":["CounterSlot","_ref","children","dataTestId","_jsx","className","styles","slot"],"mappings":";;;AASO,MAAMA,WAAW,GAAGC,IAAA,IAAA;EAAA,IAAC;IAAEC,QAAQ;AAAEC,IAAAA,UAAAA;AAA6B,GAAC,GAAAF,IAAA,CAAA;EAAA,OACpEC,QAAQ,IAAI,IAAI,IAAIA,QAAQ,KAAK,KAAK,GAAG,IAAI,gBAC3CE,GAAA,CAAA,MAAA,EAAA;IAAMC,SAAS,EAAEC,MAAM,CAACC,IAAK;AAAC,IAAA,aAAA,EAAY,MAAM;AAAC,IAAA,aAAA,EAAaJ,UAAW;AAAAD,IAAAA,QAAA,EACtEA,QAAAA;AAAQ,GACL,CACP,CAAA;AAAA;;;;"}
@@ -0,0 +1,4 @@
1
+ const styles = {"slot":"CounterSlot-module_slot__EhyeG"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=CounterSlot.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CounterSlot.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,29 @@
1
+ import cn from 'classnames';
2
+ import styles from './Disclaimer.module.css.mjs';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
+ import { TextLink } from '../text-link/TextLink.mjs';
5
+
6
+ const defaultContent = /*#__PURE__*/jsxs(Fragment, {
7
+ children: ["Your privacy matters. We use cookieless analytics and collect only anonymized data for improvements. Cookies are used for functionality only. For more info read", ' ', /*#__PURE__*/jsx(TextLink, {
8
+ href: "https://lido.fi/privacy-notice",
9
+ external: true,
10
+ children: "Privacy Notice"
11
+ }), "."]
12
+ });
13
+ const Disclaimer = _ref => {
14
+ let {
15
+ className,
16
+ children = defaultContent,
17
+ dataTestId,
18
+ ...rest
19
+ } = _ref;
20
+ return /*#__PURE__*/jsx("p", {
21
+ className: cn(styles.root, className),
22
+ "data-testid": dataTestId?.root,
23
+ ...rest,
24
+ children: children
25
+ });
26
+ };
27
+
28
+ export { Disclaimer };
29
+ //# sourceMappingURL=Disclaimer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disclaimer.mjs","sources":["../../../src/disclaimer/Disclaimer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react'\n\nimport cn from 'classnames'\n\nimport { TextLink } from '../text-link'\nimport styles from './Disclaimer.module.css'\n\nexport type DisclaimerDataTestId = {\n root?: string\n}\n\nexport type DisclaimerProps = ComponentPropsWithoutRef<'p'> & {\n dataTestId?: DisclaimerDataTestId\n}\n\nconst defaultContent = (\n <>\n Your privacy matters. We use cookieless analytics and collect only\n anonymized data for improvements. Cookies are used for functionality only.\n For more info read{' '}\n <TextLink href='https://lido.fi/privacy-notice' external>\n Privacy Notice\n </TextLink>\n .\n </>\n)\n\nexport const Disclaimer = ({\n className,\n children = defaultContent,\n dataTestId,\n ...rest\n}: DisclaimerProps) => (\n <p\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </p>\n)\n"],"names":["defaultContent","_jsxs","_Fragment","children","_jsx","TextLink","href","external","Disclaimer","_ref","className","dataTestId","rest","cn","styles","root"],"mappings":";;;;;AAeA,MAAMA,cAAc,gBAClBC,IAAA,CAAAC,QAAA,EAAA;AAAAC,EAAAA,QAAA,GAAE,kKAGkB,EAAC,GAAG,eACtBC,GAAA,CAACC,QAAQ,EAAA;AAACC,IAAAA,IAAI,EAAC,gCAAgC;IAACC,QAAQ,EAAA,IAAA;AAAAJ,IAAAA,QAAA,EAAC,gBAAA;AAEzD,GAAU,CAAC,EAEb,GAAA,CAAA;AAAA,CAAE,CACH,CAAA;AAEM,MAAMK,UAAU,GAAGC,IAAA,IAAA;EAAA,IAAC;IACzBC,SAAS;AACTP,IAAAA,QAAQ,GAAGH,cAAc;IACzBW,UAAU;IACV,GAAGC,IAAAA;AACY,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,oBAChBL,GAAA,CAAA,GAAA,EAAA;IACEM,SAAS,EAAEG,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEL,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEI,IAAK;AAAA,IAAA,GAC1BH,IAAI;AAAAT,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACR,CAAC,CAAA;AAAA;;;;"}
@@ -0,0 +1,4 @@
1
+ const styles = {"root":"Disclaimer-module_root__ELwsa"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=Disclaimer.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disclaimer.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,60 @@
1
+ import cn from 'classnames';
2
+ import styles from './ErrorPage.module.css.mjs';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ const presets = {
6
+ '404': {
7
+ title: 'Page not found',
8
+ description: 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.'
9
+ },
10
+ '500': {
11
+ title: 'Something went wrong',
12
+ description: 'We’re having trouble loading this page. Please try again in a moment.'
13
+ }
14
+ };
15
+ const isPresetCode = code => code === '404' || code === '500';
16
+ const ErrorPage = _ref => {
17
+ let {
18
+ code,
19
+ title,
20
+ description,
21
+ action,
22
+ className,
23
+ dataTestId,
24
+ ...rest
25
+ } = _ref;
26
+ const preset = isPresetCode(code) ? presets[code] : undefined;
27
+ const resolvedTitle = title !== undefined ? title : preset?.title;
28
+ const resolvedDescription = description !== undefined ? description : preset?.description;
29
+ return /*#__PURE__*/jsx("div", {
30
+ className: cn(styles.root, className),
31
+ "data-testid": dataTestId?.root,
32
+ ...rest,
33
+ children: /*#__PURE__*/jsxs("div", {
34
+ className: styles.inner,
35
+ children: [code != null ? /*#__PURE__*/jsx("div", {
36
+ className: styles.code,
37
+ "data-testid": dataTestId?.code,
38
+ children: code
39
+ }) : null, /*#__PURE__*/jsxs("div", {
40
+ className: styles.text,
41
+ children: [resolvedTitle != null ? /*#__PURE__*/jsx("h1", {
42
+ className: styles.title,
43
+ "data-testid": dataTestId?.title,
44
+ children: resolvedTitle
45
+ }) : null, resolvedDescription != null ? /*#__PURE__*/jsx("p", {
46
+ className: styles.description,
47
+ "data-testid": dataTestId?.description,
48
+ children: resolvedDescription
49
+ }) : null]
50
+ }), action != null ? /*#__PURE__*/jsx("div", {
51
+ className: styles.action,
52
+ "data-testid": dataTestId?.action,
53
+ children: action
54
+ }) : null]
55
+ })
56
+ });
57
+ };
58
+
59
+ export { ErrorPage };
60
+ //# sourceMappingURL=ErrorPage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorPage.mjs","sources":["../../../src/error-page/ErrorPage.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './ErrorPage.module.css'\n\nexport type ErrorPageCode = '404' | '500'\n\nexport type ErrorPageDataTestId = {\n root?: string\n code?: string\n title?: string\n description?: string\n action?: string\n}\n\nexport type ErrorPageProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** `'404'` / `'500'` fill default title and description. */\n code?: ErrorPageCode | (string & {})\n title?: ReactNode\n description?: ReactNode\n /** Slot below the text, usually a `Button`. */\n action?: ReactNode\n dataTestId?: ErrorPageDataTestId\n}\n\nconst presets: Record<ErrorPageCode, { title: string; description: string }> = {\n '404': {\n title: 'Page not found',\n description:\n 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.',\n },\n '500': {\n title: 'Something went wrong',\n description:\n 'We’re having trouble loading this page. Please try again in a moment.',\n },\n}\n\nconst isPresetCode = (code?: string): code is ErrorPageCode =>\n code === '404' || code === '500'\n\nexport const ErrorPage = ({\n code,\n title,\n description,\n action,\n className,\n dataTestId,\n ...rest\n}: ErrorPageProps) => {\n const preset = isPresetCode(code) ? presets[code] : undefined\n const resolvedTitle = title !== undefined ? title : preset?.title\n const resolvedDescription =\n description !== undefined ? description : preset?.description\n\n return (\n <div\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.inner}>\n {code != null ? (\n <div className={styles.code} data-testid={dataTestId?.code}>\n {code}\n </div>\n ) : null}\n <div className={styles.text}>\n {resolvedTitle != null ? (\n <h1 className={styles.title} data-testid={dataTestId?.title}>\n {resolvedTitle}\n </h1>\n ) : null}\n {resolvedDescription != null ? (\n <p\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {resolvedDescription}\n </p>\n ) : null}\n </div>\n {action != null ? (\n <div className={styles.action} data-testid={dataTestId?.action}>\n {action}\n </div>\n ) : null}\n </div>\n </div>\n )\n}\n"],"names":["presets","title","description","isPresetCode","code","ErrorPage","_ref","action","className","dataTestId","rest","preset","undefined","resolvedTitle","resolvedDescription","_jsx","cn","styles","root","children","_jsxs","inner","text"],"mappings":";;;;AA0BA,MAAMA,OAAsE,GAAG;AAC7E,EAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,gBAAgB;AACvBC,IAAAA,WAAW,EACT,yGAAA;GACH;AACD,EAAA,KAAK,EAAE;AACLD,IAAAA,KAAK,EAAE,sBAAsB;AAC7BC,IAAAA,WAAW,EACT,uEAAA;AACJ,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,YAAY,GAAIC,IAAa,IACjCA,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,KAAK,CAAA;AAErBC,MAAAA,SAAS,GAAGC,IAAA,IAQH;EAAA,IARI;IACxBF,IAAI;IACJH,KAAK;IACLC,WAAW;IACXK,MAAM;IACNC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAJ,IAAA,CAAA;AACf,EAAA,MAAMK,MAAM,GAAGR,YAAY,CAACC,IAAI,CAAC,GAAGJ,OAAO,CAACI,IAAI,CAAC,GAAGQ,SAAS,CAAA;EAC7D,MAAMC,aAAa,GAAGZ,KAAK,KAAKW,SAAS,GAAGX,KAAK,GAAGU,MAAM,EAAEV,KAAK,CAAA;EACjE,MAAMa,mBAAmB,GACvBZ,WAAW,KAAKU,SAAS,GAAGV,WAAW,GAAGS,MAAM,EAAET,WAAW,CAAA;AAE/D,EAAA,oBACEa,GAAA,CAAA,KAAA,EAAA;IACEP,SAAS,EAAEQ,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEV,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAES,IAAK;AAAA,IAAA,GAC1BR,IAAI;AAAAS,IAAAA,QAAA,eAERC,IAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAES,MAAM,CAACI,KAAM;AAAAF,MAAAA,QAAA,EAC1Bf,CAAAA,IAAI,IAAI,IAAI,gBACXW,GAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,MAAM,CAACb,IAAK;QAAC,aAAaK,EAAAA,UAAU,EAAEL,IAAK;AAAAe,QAAAA,QAAA,EACxDf,IAAAA;AAAI,OACF,CAAC,GACJ,IAAI,eACRgB,IAAA,CAAA,KAAA,EAAA;QAAKZ,SAAS,EAAES,MAAM,CAACK,IAAK;AAAAH,QAAAA,QAAA,EACzBN,CAAAA,aAAa,IAAI,IAAI,gBACpBE,GAAA,CAAA,IAAA,EAAA;UAAIP,SAAS,EAAES,MAAM,CAAChB,KAAM;UAAC,aAAaQ,EAAAA,UAAU,EAAER,KAAM;AAAAkB,UAAAA,QAAA,EACzDN,aAAAA;SACC,CAAC,GACH,IAAI,EACPC,mBAAmB,IAAI,IAAI,gBAC1BC,GAAA,CAAA,GAAA,EAAA;UACEP,SAAS,EAAES,MAAM,CAACf,WAAY;UAC9B,aAAaO,EAAAA,UAAU,EAAEP,WAAY;AAAAiB,UAAAA,QAAA,EAEpCL,mBAAAA;SACA,CAAC,GACF,IAAI,CAAA;AAAA,OACL,CAAC,EACLP,MAAM,IAAI,IAAI,gBACbQ,GAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,MAAM,CAACV,MAAO;QAAC,aAAaE,EAAAA,UAAU,EAAEF,MAAO;AAAAY,QAAAA,QAAA,EAC5DZ,MAAAA;OACE,CAAC,GACJ,IAAI,CAAA;KACL,CAAA;AAAC,GACH,CAAC,CAAA;AAEV;;;;"}
@@ -0,0 +1,4 @@
1
+ const styles = {"root":"ErrorPage-module_root__sdAsZ","inner":"ErrorPage-module_inner__rf3pT","code":"ErrorPage-module_code__sXtwL","text":"ErrorPage-module_text__SIHr-","title":"ErrorPage-module_title__1gYNN","description":"ErrorPage-module_description__VILdD","action":"ErrorPage-module_action__euwDk"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=ErrorPage.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorPage.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,26 @@
1
+ import cn from 'classnames';
2
+ import styles from './Footer.module.css.mjs';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ const Footer = _ref => {
6
+ let {
7
+ children,
8
+ aside,
9
+ className,
10
+ ...rest
11
+ } = _ref;
12
+ return /*#__PURE__*/jsxs("footer", {
13
+ className: cn(styles.footer, className),
14
+ ...rest,
15
+ children: [/*#__PURE__*/jsx("div", {
16
+ className: styles.content,
17
+ children: children
18
+ }), aside != null ? /*#__PURE__*/jsx("div", {
19
+ className: styles.aside,
20
+ children: aside
21
+ }) : null]
22
+ });
23
+ };
24
+
25
+ export { Footer };
26
+ //# sourceMappingURL=Footer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.mjs","sources":["../../../src/footer/Footer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Footer.module.css'\n\nexport type FooterProps = ComponentPropsWithoutRef<'footer'> & {\n /** Right slot, e.g. version tag. */\n aside?: ReactNode\n}\n\nexport const Footer = ({\n children,\n aside,\n className,\n ...rest\n}: FooterProps) => (\n <footer className={cn(styles.footer, className)} {...rest}>\n <div className={styles.content}>{children}</div>\n {aside != null ? <div className={styles.aside}>{aside}</div> : null}\n </footer>\n)\n"],"names":["Footer","_ref","children","aside","className","rest","_jsxs","cn","styles","footer","_jsx","content"],"mappings":";;;;AAWO,MAAMA,MAAM,GAAGC,IAAA,IAAA;EAAA,IAAC;IACrBC,QAAQ;IACRC,KAAK;IACLC,SAAS;IACT,GAAGC,IAAAA;AACQ,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACZK,IAAA,CAAA,QAAA,EAAA;IAAQF,SAAS,EAAEG,EAAE,CAACC,MAAM,CAACC,MAAM,EAAEL,SAAS,CAAE;AAAA,IAAA,GAAKC,IAAI;AAAAH,IAAAA,QAAA,gBACvDQ,GAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,MAAM,CAACG,OAAQ;AAAAT,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAM,CAAC,EAC/CC,KAAK,IAAI,IAAI,gBAAGO,GAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,MAAM,CAACL,KAAM;AAAAD,MAAAA,QAAA,EAAEC,KAAAA;KAAW,CAAC,GAAG,IAAI,CAAA;AAAA,GAC7D,CAAC,CAAA;AAAA;;;;"}
@@ -0,0 +1,4 @@
1
+ const styles = {"footer":"Footer-module_footer__N4WWk","content":"Footer-module_content__czurW","aside":"Footer-module_aside__r3tkL"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=Footer.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,6 +1,7 @@
1
1
  import cn from 'classnames';
2
+ import { CounterSlot } from '../counter/CounterSlot.mjs';
2
3
  import styles from './IconButton.module.css.mjs';
3
- import { jsx } from 'react/jsx-runtime';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
5
  import { IconLoaderCircle } from '../icons/components/base/IconLoaderCircle.mjs';
5
6
 
6
7
  const IconButton = _ref => {
@@ -11,17 +12,18 @@ const IconButton = _ref => {
11
12
  loading = false,
12
13
  disabled = false,
13
14
  icon,
15
+ counter,
14
16
  dataTestId,
15
17
  ...rest
16
18
  } = _ref;
17
- return /*#__PURE__*/jsx("button", {
19
+ return /*#__PURE__*/jsxs("button", {
18
20
  type: type,
19
21
  disabled: disabled || loading,
20
22
  "aria-busy": loading || undefined,
21
23
  className: cn(styles.button, styles[variant], loading && styles.loading, className),
22
24
  "data-testid": dataTestId?.root,
23
25
  ...rest,
24
- children: loading ? /*#__PURE__*/jsx(IconLoaderCircle, {
26
+ children: [loading ? /*#__PURE__*/jsx(IconLoaderCircle, {
25
27
  className: styles.spinner,
26
28
  "aria-hidden": "true"
27
29
  }) : /*#__PURE__*/jsx("span", {
@@ -29,7 +31,10 @@ const IconButton = _ref => {
29
31
  "aria-hidden": "true",
30
32
  "data-testid": dataTestId?.icon,
31
33
  children: icon
32
- })
34
+ }), /*#__PURE__*/jsx(CounterSlot, {
35
+ dataTestId: dataTestId?.counter,
36
+ children: counter
37
+ })]
33
38
  });
34
39
  };
35
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.mjs","sources":["../../../src/icon-button/IconButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconLoaderCircle } from '../icons'\nimport styles from './IconButton.module.css'\n\nexport type IconButtonVariant = 'outline' | 'ghost'\n\nexport type IconButtonDataTestId = {\n root?: string\n icon?: string\n}\n\nexport type IconButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'aria-label'\n> & {\n 'aria-label': string\n icon: ReactNode\n variant?: IconButtonVariant\n loading?: boolean\n dataTestId?: IconButtonDataTestId\n}\n\nexport const IconButton = ({\n className,\n type = 'button',\n variant = 'outline',\n loading = false,\n disabled = false,\n icon,\n dataTestId,\n ...rest\n}: IconButtonProps) => (\n <button\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n )}\n </button>\n)\n"],"names":["IconButton","_ref","className","type","variant","loading","disabled","icon","dataTestId","rest","_jsx","undefined","cn","styles","button","root","children","IconLoaderCircle","spinner"],"mappings":";;;;;AAyBO,MAAMA,UAAU,GAAGC,IAAA,IAAA;EAAA,IAAC;IACzBC,SAAS;AACTC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,IAAI;IACJC,UAAU;IACV,GAAGC,IAAAA;AACY,GAAC,GAAAR,IAAA,CAAA;AAAA,EAAA,oBAChBS,GAAA,CAAA,QAAA,EAAA;AACEP,IAAAA,IAAI,EAAEA,IAAK;IACXG,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIM,SAAU;AAChCT,IAAAA,SAAS,EAAEU,EAAE,CACXC,MAAM,CAACC,MAAM,EACbD,MAAM,CAACT,OAAO,CAAC,EACfC,OAAO,IAAIQ,MAAM,CAACR,OAAO,EACzBH,SACF,CAAE;IACF,aAAaM,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAO,IAAAA,QAAA,EAEPX,OAAO,gBACNK,GAAA,CAACO,gBAAgB,EAAA;MAACf,SAAS,EAAEW,MAAM,CAACK,OAAQ;MAAC,aAAY,EAAA,MAAA;KAAQ,CAAC,gBAElER,GAAA,CAAA,MAAA,EAAA;MACER,SAAS,EAAEW,MAAM,CAACN,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaC,EAAAA,UAAU,EAAED,IAAK;AAAAS,MAAAA,QAAA,EAE7BT,IAAAA;KACG,CAAA;AACP,GACK,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"IconButton.mjs","sources":["../../../src/icon-button/IconButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { CounterSlot } from '../counter/CounterSlot'\nimport { IconLoaderCircle } from '../icons'\nimport styles from './IconButton.module.css'\n\nexport type IconButtonVariant = 'outline' | 'ghost'\n\nexport type IconButtonDataTestId = {\n root?: string\n icon?: string\n counter?: string\n}\n\nexport type IconButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'aria-label'\n> & {\n 'aria-label': string\n icon: ReactNode\n variant?: IconButtonVariant\n loading?: boolean\n /** Corner slot, aria-hidden: put the count into `aria-label`. */\n counter?: ReactNode\n dataTestId?: IconButtonDataTestId\n}\n\nexport const IconButton = ({\n className,\n type = 'button',\n variant = 'outline',\n loading = false,\n disabled = false,\n icon,\n counter,\n dataTestId,\n ...rest\n}: IconButtonProps) => (\n <button\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n )}\n <CounterSlot dataTestId={dataTestId?.counter}>{counter}</CounterSlot>\n </button>\n)\n"],"names":["IconButton","_ref","className","type","variant","loading","disabled","icon","counter","dataTestId","rest","_jsxs","undefined","cn","styles","button","root","children","_jsx","IconLoaderCircle","spinner","CounterSlot"],"mappings":";;;;;;AA6BO,MAAMA,UAAU,GAAGC,IAAA,IAAA;EAAA,IAAC;IACzBC,SAAS;AACTC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,IAAI;IACJC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACY,GAAC,GAAAT,IAAA,CAAA;AAAA,EAAA,oBAChBU,IAAA,CAAA,QAAA,EAAA;AACER,IAAAA,IAAI,EAAEA,IAAK;IACXG,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIO,SAAU;AAChCV,IAAAA,SAAS,EAAEW,EAAE,CACXC,MAAM,CAACC,MAAM,EACbD,MAAM,CAACV,OAAO,CAAC,EACfC,OAAO,IAAIS,MAAM,CAACT,OAAO,EACzBH,SACF,CAAE;IACF,aAAaO,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAO,IAAAA,QAAA,EAEPZ,CAAAA,OAAO,gBACNa,GAAA,CAACC,gBAAgB,EAAA;MAACjB,SAAS,EAAEY,MAAM,CAACM,OAAQ;MAAC,aAAY,EAAA,MAAA;KAAQ,CAAC,gBAElEF,GAAA,CAAA,MAAA,EAAA;MACEhB,SAAS,EAAEY,MAAM,CAACP,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaE,EAAAA,UAAU,EAAEF,IAAK;AAAAU,MAAAA,QAAA,EAE7BV,IAAAA;AAAI,KACD,CACP,eACDW,GAAA,CAACG,WAAW,EAAA;MAACZ,UAAU,EAAEA,UAAU,EAAED,OAAQ;AAAAS,MAAAA,QAAA,EAAET,OAAAA;AAAO,KAAc,CAAC,CAAA;AAAA,GAC/D,CAAC,CAAA;AAAA;;;;"}