@ledgerhq/react-ui 0.14.14-next.0 → 0.14.15-new-wc-test.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 (77) hide show
  1. package/lib/cjs/components/asorted/Icon/CryptoIcons.stories.js +2 -4
  2. package/lib/cjs/components/asorted/Icon/CryptoIcons.stories.js.map +2 -2
  3. package/lib/cjs/components/asorted/Icon/Icons.stories.js +2 -48
  4. package/lib/cjs/components/asorted/Icon/Icons.stories.js.map +2 -2
  5. package/lib/cjs/components/index.js +0 -1
  6. package/lib/cjs/components/index.js.map +2 -2
  7. package/lib/cjs/components/layout/Carousel/Carousel.stories.js +78 -0
  8. package/lib/cjs/components/layout/Carousel/Carousel.stories.js.map +7 -0
  9. package/lib/cjs/components/layout/Carousel/Footer/Pagination/bullets.js +76 -0
  10. package/lib/cjs/components/layout/Carousel/Footer/Pagination/bullets.js.map +7 -0
  11. package/lib/cjs/components/{cards/Carousel/Slide.js → layout/Carousel/Footer/Pagination/index.js} +13 -20
  12. package/lib/cjs/components/layout/Carousel/Footer/Pagination/index.js.map +7 -0
  13. package/lib/cjs/components/layout/Carousel/Footer/Pagination/types.js +31 -0
  14. package/lib/cjs/components/layout/Carousel/Footer/Pagination/types.js.map +7 -0
  15. package/lib/cjs/components/layout/Carousel/Footer/Pagination/utils.js +38 -0
  16. package/lib/cjs/components/layout/Carousel/Footer/Pagination/utils.js.map +7 -0
  17. package/lib/cjs/components/{cards → layout/Carousel/Footer}/index.js +16 -5
  18. package/lib/cjs/components/layout/Carousel/Footer/index.js.map +7 -0
  19. package/lib/cjs/components/layout/Carousel/Footer/variantContentCard.js +69 -0
  20. package/lib/cjs/components/layout/Carousel/Footer/variantContentCard.js.map +7 -0
  21. package/lib/cjs/components/layout/Carousel/Footer/variantDefault.js +47 -0
  22. package/lib/cjs/components/layout/Carousel/Footer/variantDefault.js.map +7 -0
  23. package/lib/cjs/components/layout/Carousel/index.js +76 -0
  24. package/lib/cjs/components/layout/Carousel/index.js.map +7 -0
  25. package/lib/cjs/components/layout/Carousel/types.js +17 -0
  26. package/lib/cjs/components/layout/Carousel/types.js.map +7 -0
  27. package/lib/cjs/components/layout/index.js +2 -0
  28. package/lib/cjs/components/layout/index.js.map +2 -2
  29. package/lib/components/index.d.ts +0 -1
  30. package/lib/components/index.js +0 -1
  31. package/lib/components/index.js.map +1 -1
  32. package/lib/components/layout/Carousel/Footer/Pagination/bullets.d.ts +6 -0
  33. package/lib/components/layout/Carousel/Footer/Pagination/bullets.js +25 -0
  34. package/lib/components/layout/Carousel/Footer/Pagination/bullets.js.map +1 -0
  35. package/lib/components/layout/Carousel/Footer/Pagination/index.d.ts +4 -0
  36. package/lib/components/layout/Carousel/Footer/Pagination/index.js +13 -0
  37. package/lib/components/layout/Carousel/Footer/Pagination/index.js.map +1 -0
  38. package/lib/components/layout/Carousel/Footer/Pagination/types.d.ts +6 -0
  39. package/lib/components/layout/Carousel/Footer/Pagination/types.js +8 -0
  40. package/lib/components/layout/Carousel/Footer/Pagination/types.js.map +1 -0
  41. package/lib/components/layout/Carousel/Footer/Pagination/utils.d.ts +5 -0
  42. package/lib/components/layout/Carousel/Footer/Pagination/utils.js +18 -0
  43. package/lib/components/layout/Carousel/Footer/Pagination/utils.js.map +1 -0
  44. package/lib/components/layout/Carousel/Footer/index.d.ts +4 -0
  45. package/lib/components/layout/Carousel/Footer/index.js +13 -0
  46. package/lib/components/layout/Carousel/Footer/index.js.map +1 -0
  47. package/lib/components/layout/Carousel/Footer/variantContentCard.d.ts +4 -0
  48. package/lib/components/layout/Carousel/Footer/variantContentCard.js +34 -0
  49. package/lib/components/layout/Carousel/Footer/variantContentCard.js.map +1 -0
  50. package/lib/components/layout/Carousel/Footer/variantDefault.d.ts +4 -0
  51. package/lib/components/layout/Carousel/Footer/variantDefault.js +15 -0
  52. package/lib/components/layout/Carousel/Footer/variantDefault.js.map +1 -0
  53. package/lib/components/layout/Carousel/index.d.ts +7 -0
  54. package/lib/components/layout/Carousel/index.js +44 -0
  55. package/lib/components/layout/Carousel/index.js.map +1 -0
  56. package/lib/components/layout/Carousel/types.d.ts +14 -0
  57. package/lib/components/layout/Carousel/types.js +2 -0
  58. package/lib/components/layout/Carousel/types.js.map +1 -0
  59. package/lib/components/layout/index.d.ts +1 -0
  60. package/lib/components/layout/index.js +1 -0
  61. package/lib/components/layout/index.js.map +1 -1
  62. package/package.json +8 -3
  63. package/lib/cjs/components/cards/Carousel/Carousel.stories.js +0 -106
  64. package/lib/cjs/components/cards/Carousel/Carousel.stories.js.map +0 -7
  65. package/lib/cjs/components/cards/Carousel/Slide.js.map +0 -7
  66. package/lib/cjs/components/cards/Carousel/index.js +0 -187
  67. package/lib/cjs/components/cards/Carousel/index.js.map +0 -7
  68. package/lib/cjs/components/cards/index.js.map +0 -7
  69. package/lib/components/cards/Carousel/Slide.d.ts +0 -9
  70. package/lib/components/cards/Carousel/Slide.js +0 -22
  71. package/lib/components/cards/Carousel/Slide.js.map +0 -1
  72. package/lib/components/cards/Carousel/index.d.ts +0 -13
  73. package/lib/components/cards/Carousel/index.js +0 -144
  74. package/lib/components/cards/Carousel/index.js.map +0 -1
  75. package/lib/components/cards/index.d.ts +0 -1
  76. package/lib/components/cards/index.js +0 -2
  77. package/lib/components/cards/index.js.map +0 -1
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var Carousel_stories_exports = {};
30
- __export(Carousel_stories_exports, {
31
- Default: () => Default,
32
- default: () => Carousel_stories_default
33
- });
34
- module.exports = __toCommonJS(Carousel_stories_exports);
35
- var import_react = __toESM(require("react"));
36
- var import_client_api = require("@storybook/client-api");
37
- var import_sampleSlide = __toESM(require("../../../assets/images/sampleSlide.png"));
38
- var import__ = __toESM(require("."));
39
- var Carousel_stories_default = {
40
- title: "Cards/Portfolio/Carousel",
41
- argTypes: {
42
- isDismissed: {
43
- description: "App level setting to determine visibility of the component",
44
- control: {
45
- type: "boolean",
46
- defaultValue: { summary: false }
47
- }
48
- },
49
- timeout: {
50
- description: "Timeout for auto-slide in ms",
51
- control: {
52
- type: "number",
53
- min: 1e3,
54
- max: 2e4,
55
- defaultValue: { summary: 7e3 }
56
- },
57
- table: {
58
- type: { summary: "number" },
59
- defaultValue: { summary: 7e3 }
60
- }
61
- }
62
- },
63
- parameters: {
64
- docs: {
65
- description: {
66
- component: `The carousel is used to showcase products and features to our users. It's a dismissable component that should be re-enabled from the settings of the app. By default, it auto loops through a series of slides but this is paused when the mouse enters the bounds of the slide.<br/>
67
- The current version is missing the updated color palette and translatable strings.`
68
- }
69
- }
70
- }
71
- };
72
- const Template = (args) => {
73
- const queue = [
74
- {
75
- title: "NEW PRODUCT 1",
76
- description: "Enhance your security with the new ledger nano x available now!",
77
- image: import_sampleSlide.default,
78
- onClick: () => alert("Clicked on banner 1")
79
- },
80
- {
81
- title: "NEW PRODUCT 2",
82
- description: "Enhance your security with the new ledger nano x available now!",
83
- image: import_sampleSlide.default,
84
- onClick: () => alert("Clicked on banner 2")
85
- },
86
- {
87
- title: "NEW PRODUCT 3",
88
- description: "Enhance your security with the new ledger nano x available now!",
89
- image: import_sampleSlide.default,
90
- onClick: () => alert("Clicked on banner 3")
91
- },
92
- {
93
- title: "NEW PRODUCT 4",
94
- description: "Enhance your security with the new ledger nano x available now!",
95
- image: import_sampleSlide.default,
96
- onClick: () => alert("Clicked on banner 4")
97
- }
98
- ];
99
- const [, updateArgs] = (0, import_client_api.useArgs)();
100
- const onDismiss = () => updateArgs({
101
- isDismissed: true
102
- });
103
- return /* @__PURE__ */ import_react.default.createElement(import__.default, { ...args, queue, onDismiss });
104
- };
105
- const Default = Template.bind({});
106
- //# sourceMappingURL=Carousel.stories.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/components/cards/Carousel/Carousel.stories.tsx"],
4
- "sourcesContent": ["import React from \"react\";\n// @ts-expect-error Typings\u2026\nimport { useArgs } from \"@storybook/client-api\";\n\nimport image from \"../../../assets/images/sampleSlide.png\";\nimport Carousel, { Props as CarouselProps } from \".\";\n\nexport default {\n title: \"Cards/Portfolio/Carousel\",\n argTypes: {\n isDismissed: {\n description: \"App level setting to determine visibility of the component\",\n control: {\n type: \"boolean\",\n defaultValue: { summary: false },\n },\n },\n timeout: {\n description: \"Timeout for auto-slide in ms\",\n control: {\n type: \"number\",\n min: 1000,\n max: 20000,\n defaultValue: { summary: 7000 },\n },\n table: {\n type: { summary: \"number\" },\n defaultValue: { summary: 7000 },\n },\n },\n },\n parameters: {\n docs: {\n description: {\n component: `The carousel is used to showcase products and features to our users. It's a dismissable component that should be re-enabled from the settings of the app. By default, it auto loops through a series of slides but this is paused when the mouse enters the bounds of the slide.<br/>\n The current version is missing the updated color palette and translatable strings.`,\n },\n },\n },\n};\n\nconst Template = (args: CarouselProps) => {\n const queue = [\n {\n title: \"NEW PRODUCT 1\",\n description: \"Enhance your security with the new ledger nano x available now!\",\n image,\n onClick: () => alert(\"Clicked on banner 1\"),\n },\n {\n title: \"NEW PRODUCT 2\",\n description: \"Enhance your security with the new ledger nano x available now!\",\n image,\n onClick: () => alert(\"Clicked on banner 2\"),\n },\n {\n title: \"NEW PRODUCT 3\",\n description: \"Enhance your security with the new ledger nano x available now!\",\n image,\n onClick: () => alert(\"Clicked on banner 3\"),\n },\n {\n title: \"NEW PRODUCT 4\",\n description: \"Enhance your security with the new ledger nano x available now!\",\n image,\n onClick: () => alert(\"Clicked on banner 4\"),\n },\n ];\n\n const [, updateArgs] = useArgs();\n\n const onDismiss = () =>\n updateArgs({\n isDismissed: true,\n });\n\n return <Carousel {...args} queue={queue} onDismiss={onDismiss} />;\n};\n\nexport const Default = Template.bind({});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,wBAAwB;AAExB,yBAAkB;AAClB,eAAiD;AAEjD,IAAO,2BAAQ;AAAA,EACb,OAAO;AAAA,EACP,UAAU;AAAA,IACR,aAAa;AAAA,MACX,aAAa;AAAA,MACb,SAAS;AAAA,QACP,MAAM;AAAA,QACN,cAAc,EAAE,SAAS,MAAM;AAAA,MACjC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA,QACL,KAAK;AAAA,QACL,cAAc,EAAE,SAAS,IAAK;AAAA,MAChC;AAAA,MACA,OAAO;AAAA,QACL,MAAM,EAAE,SAAS,SAAS;AAAA,QAC1B,cAAc,EAAE,SAAS,IAAK;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,MAAM;AAAA,MACJ,aAAa;AAAA,QACX,WAAW;AAAA;AAAA,MAEb;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,WAAW,CAAC,SAAwB;AACxC,QAAM,QAAQ;AAAA,IACZ;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,0BAAAA;AAAA,MACA,SAAS,MAAM,MAAM,qBAAqB;AAAA,IAC5C;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,0BAAAA;AAAA,MACA,SAAS,MAAM,MAAM,qBAAqB;AAAA,IAC5C;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,0BAAAA;AAAA,MACA,SAAS,MAAM,MAAM,qBAAqB;AAAA,IAC5C;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,0BAAAA;AAAA,MACA,SAAS,MAAM,MAAM,qBAAqB;AAAA,IAC5C;AAAA,EACF;AAEA,QAAM,CAAC,EAAE,UAAU,QAAI,2BAAQ;AAE/B,QAAM,YAAY,MAChB,WAAW;AAAA,IACT,aAAa;AAAA,EACf,CAAC;AAEH,SAAO,6BAAAC,QAAA,cAAC,SAAAC,SAAA,EAAU,GAAG,MAAM,OAAc,WAAsB;AACjE;AAEO,MAAM,UAAU,SAAS,KAAK,CAAC,CAAC;",
6
- "names": ["image", "React", "Carousel"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/components/cards/Carousel/Slide.tsx"],
4
- "sourcesContent": ["import React from \"react\";\nimport styled from \"styled-components\";\nimport Text from \"../../asorted/Text\";\nimport Flex from \"../../layout/Flex\";\n\nconst Wrapper = styled(Flex)<{ image?: string }>`\n width: 100%;\n height: 100%;\n flex-direction: column;\n padding: ${p => p.theme.space[8]}px ${p => p.theme.space[10]}px;\n padding-right: 280px; /* Nb gives air to not overlap the illustration */\n z-index: ${p => p.theme.zIndexes[8]};\n background: url(${p => p.image}) no-repeat ${p => p.theme.colors.neutral.c100};\n background-size: contain;\n background-position: right 60px bottom;\n`;\n\nexport type Props = {\n onClick: () => void;\n title: string;\n description: string;\n image?: string;\n};\n\nconst Slide = ({ title, description, image, onClick }: Props): React.ReactElement => {\n return (\n <Wrapper key={\"key\"} image={image} onClick={onClick}>\n <Text variant={\"tiny\"} color=\"neutral.c00\" fontWeight=\"regular\">\n {title}\n </Text>\n <Text variant={\"h5\"} color=\"neutral.c00\" textTransform=\"uppercase\">\n {description}\n </Text>\n </Wrapper>\n );\n};\n\nexport default Slide;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,+BAAmB;AACnB,kBAAiB;AACjB,kBAAiB;AAEjB,MAAM,cAAU,yBAAAA,SAAO,YAAAC,OAAI;AAAA;AAAA;AAAA;AAAA,aAId,OAAK,EAAE,MAAM,MAAM,CAAC,CAAC,MAAM,OAAK,EAAE,MAAM,MAAM,EAAE,CAAC;AAAA;AAAA,aAEjD,OAAK,EAAE,MAAM,SAAS,CAAC,CAAC;AAAA,oBACjB,OAAK,EAAE,KAAK,eAAe,OAAK,EAAE,MAAM,OAAO,QAAQ,IAAI;AAAA;AAAA;AAAA;AAY/E,MAAM,QAAQ,CAAC,EAAE,OAAO,aAAa,OAAO,QAAQ,MAAiC;AACnF,SACE,6BAAAC,QAAA,cAAC,WAAQ,KAAK,OAAO,OAAc,WACjC,6BAAAA,QAAA,cAAC,YAAAC,SAAA,EAAK,SAAS,QAAQ,OAAM,eAAc,YAAW,aACnD,KACH,GACA,6BAAAD,QAAA,cAAC,YAAAC,SAAA,EAAK,SAAS,MAAM,OAAM,eAAc,eAAc,eACpD,WACH,CACF;AAEJ;AAEA,IAAO,gBAAQ;",
6
- "names": ["styled", "Flex", "React", "Text"]
7
- }
@@ -1,187 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var Carousel_exports = {};
30
- __export(Carousel_exports, {
31
- default: () => Carousel_default
32
- });
33
- module.exports = __toCommonJS(Carousel_exports);
34
- var import_react = __toESM(require("react"));
35
- var import_styled_components = __toESM(require("styled-components"));
36
- var import_react_transition_group = require("react-transition-group");
37
- var import_TransitionSlide = __toESM(require("../../transitions/TransitionSlide"));
38
- var import_Button = __toESM(require("../../cta/Button"));
39
- var import_Text = __toESM(require("../../asorted/Text"));
40
- var import_Flex = __toESM(require("../../layout/Flex"));
41
- var import_Slide = __toESM(require("./Slide"));
42
- var import_ArrowLeftMedium = __toESM(require("@ledgerhq/icons-ui/reactLegacy/ArrowLeftMedium"));
43
- var import_ArrowRightMedium = __toESM(require("@ledgerhq/icons-ui/reactLegacy/ArrowRightMedium"));
44
- var import_CloseMedium = __toESM(require("@ledgerhq/icons-ui/reactLegacy/CloseMedium"));
45
- const CarouselWrapper = import_styled_components.default.div`
46
- width: 100%;
47
- height: 180px;
48
- border-radius: 8px;
49
- overflow: hidden;
50
- cursor: pointer;
51
- position: relative;
52
- flex: 1;
53
- background: ${(p) => p.theme.colors.neutral.c100};
54
- `;
55
- const Controllers = (0, import_styled_components.default)(import_Flex.default)`
56
- position: absolute;
57
- flex-direction: row;
58
- right: ${(p) => p.theme.space[5]}px;
59
- bottom: ${(p) => p.theme.space[4]}px;
60
- column-gap: ${(p) => p.theme.space[4]}px;
61
- color: ${(p) => p.theme.colors.neutral.c00};
62
-
63
- > div {
64
- &:hover {
65
- opacity: 0.5;
66
- }
67
- }
68
- `;
69
- const Bullets = import_styled_components.default.div`
70
- position: absolute;
71
- display: flex;
72
- left: ${(p) => p.theme.space[10]}px;
73
- bottom: ${(p) => p.theme.space[8]}px;
74
- column-gap: ${(p) => p.theme.space[2]}px;
75
- flex-direction: row;
76
-
77
- > div {
78
- position: relative;
79
- height: ${(p) => p.theme.space[1]}px;
80
- width: ${(p) => p.theme.space[8]}px;
81
- background: ${(p) => p.theme.colors.neutral.c00};
82
- opacity: 0.5;
83
- &:hover {
84
- opacity: 0.75;
85
- }
86
-
87
- &:nth-child(${(p) => p.active}) {
88
- opacity: 1;
89
- &:hover {
90
- opacity: 0.75;
91
- }
92
- }
93
-
94
- ::after {
95
- content: "";
96
- position: absolute;
97
- top: -${(p) => p.theme.space[4]}px;
98
- height: ${(p) => p.theme.space[7]}px;
99
- width: 100%;
100
- }
101
- }
102
- `;
103
- const Close = import_styled_components.default.div`
104
- position: absolute;
105
- top: ${(p) => p.theme.space[7]}px;
106
- right: ${(p) => p.theme.space[5]}px;
107
- color: ${(p) => p.theme.colors.neutral.c00};
108
- &:hover {
109
- opacity: 0.5;
110
- }
111
- `;
112
- const DismissWrapper = import_styled_components.default.div`
113
- color: white;
114
- align-items: center;
115
- justify-content: center;
116
- display: flex;
117
- flex-direction: column;
118
- padding: ${(p) => p.theme.space[13]}px;
119
- row-gap: ${(p) => p.theme.space[7]}px;
120
- `;
121
- const DEFAULT_TIMEOUT = 7e3;
122
- const Carousel = ({
123
- timeout = DEFAULT_TIMEOUT,
124
- queue,
125
- isDismissed,
126
- onDismiss,
127
- dismissText = "This banner will not show up again until there is a new announcement",
128
- dismissConfirmText = "Confirm",
129
- dismissCancelText = "Show again"
130
- }) => {
131
- const intervalRef = (0, import_react.useRef)();
132
- const [direction, setDirection] = (0, import_react.useState)("right");
133
- const [index, setIndex] = (0, import_react.useState)(0);
134
- const [wantToDismiss, setWantToDismiss] = (0, import_react.useState)(false);
135
- const [paused, setPaused] = (0, import_react.useState)(false);
136
- const childFactory = (0, import_react.useCallback)(
137
- (child) => import_react.default.cloneElement(child, { direction }),
138
- [direction]
139
- );
140
- const wrappedSetIndex = (0, import_react.useCallback)(
141
- (newIndex) => {
142
- setDirection(newIndex > index ? "left" : "right");
143
- setIndex(newIndex);
144
- },
145
- [index]
146
- );
147
- const onSlide = (0, import_react.useCallback)(
148
- (direction2 = "left") => {
149
- setDirection(direction2);
150
- const i = index + (direction2 === "right" ? -1 : 1);
151
- setIndex(i < 0 ? queue.length - 1 : i >= queue.length ? 0 : i);
152
- },
153
- [index, queue]
154
- );
155
- const onPrevious = (0, import_react.useCallback)(() => onSlide("right"), [onSlide]);
156
- const onNext = (0, import_react.useCallback)(() => onSlide("left"), [onSlide]);
157
- const onWantToDismiss = () => setWantToDismiss(true);
158
- const onCancelDismiss = () => setWantToDismiss(false);
159
- const onMouseEnter = () => setPaused(true);
160
- const onMouseLeave = () => setPaused(false);
161
- (0, import_react.useEffect)(() => {
162
- const _timeout = timeout < 1e3 ? DEFAULT_TIMEOUT : timeout;
163
- if (intervalRef.current)
164
- clearInterval(intervalRef.current);
165
- if (!paused)
166
- intervalRef.current = setInterval(onSlide, _timeout);
167
- }, [onSlide, paused, timeout]);
168
- (0, import_react.useEffect)(() => {
169
- if (isDismissed)
170
- setWantToDismiss(false);
171
- }, [isDismissed]);
172
- if (!(queue == null ? void 0 : queue.length) || isDismissed)
173
- return null;
174
- return /* @__PURE__ */ import_react.default.createElement(CarouselWrapper, { id: "carousel", onMouseEnter, onMouseLeave }, wantToDismiss ? /* @__PURE__ */ import_react.default.createElement(DismissWrapper, null, /* @__PURE__ */ import_react.default.createElement(import_Text.default, { color: "neutral.c00", fontWeight: "medium", variant: "paragraph" }, dismissText), /* @__PURE__ */ import_react.default.createElement(import_Flex.default, { columnGap: 5 }, /* @__PURE__ */ import_react.default.createElement(import_Button.default, { color: "neutral.c100", backgroundColor: "neutral.c00", onClick: onDismiss }, dismissConfirmText), /* @__PURE__ */ import_react.default.createElement(
175
- import_Button.default,
176
- {
177
- outline: true,
178
- color: "neutral.c00",
179
- backgroundColor: "neutral.c100",
180
- borderColor: "neutral.c00",
181
- onClick: onCancelDismiss
182
- },
183
- dismissCancelText
184
- ))) : /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_react_transition_group.TransitionGroup, { component: null, childFactory }, /* @__PURE__ */ import_react.default.createElement(import_TransitionSlide.default, { key: index, direction }, /* @__PURE__ */ import_react.default.createElement(import_Slide.default, { ...queue[index] }))), /* @__PURE__ */ import_react.default.createElement(Close, { id: "carousel-dismiss", onClick: onWantToDismiss }, /* @__PURE__ */ import_react.default.createElement(import_CloseMedium.default, { size: 18 })), /* @__PURE__ */ import_react.default.createElement(Bullets, { active: index + 1 }, queue.map((_, i) => /* @__PURE__ */ import_react.default.createElement("div", { key: `bullet_${i}`, onClick: () => wrappedSetIndex(i) }))), /* @__PURE__ */ import_react.default.createElement(Controllers, null, /* @__PURE__ */ import_react.default.createElement("div", { onClick: onPrevious }, /* @__PURE__ */ import_react.default.createElement(import_ArrowLeftMedium.default, { size: 20 })), /* @__PURE__ */ import_react.default.createElement("div", { onClick: onNext }, /* @__PURE__ */ import_react.default.createElement(import_ArrowRightMedium.default, { size: 20 })))));
185
- };
186
- var Carousel_default = Carousel;
187
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/components/cards/Carousel/index.tsx"],
4
- "sourcesContent": ["import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { TransitionGroup } from \"react-transition-group\";\nimport TransitionSlide from \"../../transitions/TransitionSlide\";\n\nimport Button from \"../../cta/Button\";\nimport Text from \"../../asorted/Text\";\nimport Flex from \"../../layout/Flex\";\nimport Slide, { Props as SlideProps } from \"./Slide\";\n\nimport IconLeft from \"@ledgerhq/icons-ui/reactLegacy/ArrowLeftMedium\";\nimport IconRight from \"@ledgerhq/icons-ui/reactLegacy/ArrowRightMedium\";\nimport IconClose from \"@ledgerhq/icons-ui/reactLegacy/CloseMedium\";\n\nconst CarouselWrapper = styled.div`\n width: 100%;\n height: 180px;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex: 1;\n background: ${p => p.theme.colors.neutral.c100};\n`;\n\nconst Controllers = styled(Flex)`\n position: absolute;\n flex-direction: row;\n right: ${p => p.theme.space[5]}px;\n bottom: ${p => p.theme.space[4]}px;\n column-gap: ${p => p.theme.space[4]}px;\n color: ${p => p.theme.colors.neutral.c00};\n\n > div {\n &:hover {\n opacity: 0.5;\n }\n }\n`;\n\nconst Bullets = styled.div<{ active?: number }>`\n position: absolute;\n display: flex;\n left: ${p => p.theme.space[10]}px;\n bottom: ${p => p.theme.space[8]}px;\n column-gap: ${p => p.theme.space[2]}px;\n flex-direction: row;\n\n > div {\n position: relative;\n height: ${p => p.theme.space[1]}px;\n width: ${p => p.theme.space[8]}px;\n background: ${p => p.theme.colors.neutral.c00};\n opacity: 0.5;\n &:hover {\n opacity: 0.75;\n }\n\n &:nth-child(${p => p.active}) {\n opacity: 1;\n &:hover {\n opacity: 0.75;\n }\n }\n\n ::after {\n content: \"\";\n position: absolute;\n top: -${p => p.theme.space[4]}px;\n height: ${p => p.theme.space[7]}px;\n width: 100%;\n }\n }\n`;\n\nconst Close = styled.div`\n position: absolute;\n top: ${p => p.theme.space[7]}px;\n right: ${p => p.theme.space[5]}px;\n color: ${p => p.theme.colors.neutral.c00};\n &:hover {\n opacity: 0.5;\n }\n`;\n\nconst DismissWrapper = styled.div`\n color: white;\n align-items: center;\n justify-content: center;\n display: flex;\n flex-direction: column;\n padding: ${p => p.theme.space[13]}px;\n row-gap: ${p => p.theme.space[7]}px;\n`;\n\nexport type Props = {\n timeout?: number;\n queue: SlideProps[];\n isDismissed: boolean;\n onDismiss: () => void;\n dismissText?: React.ReactNode;\n dismissConfirmText?: React.ReactNode;\n dismissCancelText?: React.ReactNode;\n};\n\nconst DEFAULT_TIMEOUT = 7000;\nconst Carousel = ({\n timeout = DEFAULT_TIMEOUT,\n queue,\n isDismissed,\n onDismiss,\n dismissText = \"This banner will not show up again until there is a new announcement\",\n dismissConfirmText = \"Confirm\",\n dismissCancelText = \"Show again\",\n}: Props): React.ReactElement | null => {\n const intervalRef = useRef<ReturnType<typeof setInterval>>();\n\n const [direction, setDirection] = useState(\"right\");\n const [index, setIndex] = useState(0);\n const [wantToDismiss, setWantToDismiss] = useState(false);\n const [paused, setPaused] = useState(false);\n const childFactory = useCallback(\n (child: any) => React.cloneElement(child, { direction }),\n [direction],\n );\n\n const wrappedSetIndex = useCallback(\n (newIndex: number) => {\n setDirection(newIndex > index ? \"left\" : \"right\");\n setIndex(newIndex);\n },\n [index],\n );\n\n const onSlide = useCallback(\n (direction = \"left\") => {\n setDirection(direction);\n const i = index + (direction === \"right\" ? -1 : 1);\n setIndex(i < 0 ? queue.length - 1 : i >= queue.length ? 0 : i);\n },\n [index, queue],\n );\n const onPrevious = useCallback(() => onSlide(\"right\"), [onSlide]);\n const onNext = useCallback(() => onSlide(\"left\"), [onSlide]);\n\n const onWantToDismiss = () => setWantToDismiss(true);\n const onCancelDismiss = () => setWantToDismiss(false);\n\n const onMouseEnter = () => setPaused(true);\n const onMouseLeave = () => setPaused(false);\n\n useEffect(() => {\n // Nb we pause automatic transitions when the mouse is within the carousel.\n // Override passed timeout if lower than 1000ms\n const _timeout = timeout < 1000 ? DEFAULT_TIMEOUT : timeout;\n if (intervalRef.current) clearInterval(intervalRef.current);\n if (!paused) intervalRef.current = setInterval(onSlide, _timeout);\n }, [onSlide, paused, timeout]);\n\n useEffect(() => {\n if (isDismissed) setWantToDismiss(false);\n }, [isDismissed]);\n\n if (!queue?.length || isDismissed) return null;\n\n return (\n <CarouselWrapper id={\"carousel\"} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n {wantToDismiss ? (\n <DismissWrapper>\n <Text color=\"neutral.c00\" fontWeight=\"medium\" variant={\"paragraph\"}>\n {dismissText}\n </Text>\n <Flex columnGap={5}>\n <Button color=\"neutral.c100\" backgroundColor=\"neutral.c00\" onClick={onDismiss}>\n {dismissConfirmText}\n </Button>\n <Button\n outline\n color=\"neutral.c00\"\n backgroundColor=\"neutral.c100\"\n borderColor=\"neutral.c00\"\n onClick={onCancelDismiss}\n >\n {dismissCancelText}\n </Button>\n </Flex>\n </DismissWrapper>\n ) : (\n <div>\n <TransitionGroup component={null} childFactory={childFactory}>\n <TransitionSlide key={index} direction={direction}>\n <Slide {...queue[index]} />\n </TransitionSlide>\n </TransitionGroup>\n\n <Close id={\"carousel-dismiss\"} onClick={onWantToDismiss}>\n <IconClose size={18} />\n </Close>\n\n <Bullets active={index + 1}>\n {queue.map((_, i) => (\n <div key={`bullet_${i}`} onClick={() => wrappedSetIndex(i)} />\n ))}\n </Bullets>\n\n <Controllers>\n <div onClick={onPrevious}>\n <IconLeft size={20} />\n </div>\n <div onClick={onNext}>\n <IconRight size={20} />\n </div>\n </Controllers>\n </div>\n )}\n </CarouselWrapper>\n );\n};\n\nexport default Carousel;\n"],
5
- "mappings": "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",
6
- "names": ["styled", "Flex", "React", "direction", "Text", "Button", "TransitionSlide", "Slide", "IconClose", "IconLeft", "IconRight"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/cards/index.ts"],
4
- "sourcesContent": ["export { default as Carousel } from \"./Carousel\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoC;",
6
- "names": []
7
- }
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- export type Props = {
3
- onClick: () => void;
4
- title: string;
5
- description: string;
6
- image?: string;
7
- };
8
- declare const Slide: ({ title, description, image, onClick }: Props) => React.ReactElement;
9
- export default Slide;
@@ -1,22 +0,0 @@
1
- import React from "react";
2
- import styled from "styled-components";
3
- import Text from "../../asorted/Text";
4
- import Flex from "../../layout/Flex";
5
- const Wrapper = styled(Flex) `
6
- width: 100%;
7
- height: 100%;
8
- flex-direction: column;
9
- padding: ${p => p.theme.space[8]}px ${p => p.theme.space[10]}px;
10
- padding-right: 280px; /* Nb gives air to not overlap the illustration */
11
- z-index: ${p => p.theme.zIndexes[8]};
12
- background: url(${p => p.image}) no-repeat ${p => p.theme.colors.neutral.c100};
13
- background-size: contain;
14
- background-position: right 60px bottom;
15
- `;
16
- const Slide = ({ title, description, image, onClick }) => {
17
- return (React.createElement(Wrapper, { key: "key", image: image, onClick: onClick },
18
- React.createElement(Text, { variant: "tiny", color: "neutral.c00", fontWeight: "regular" }, title),
19
- React.createElement(Text, { variant: "h5", color: "neutral.c00", textTransform: "uppercase" }, description)));
20
- };
21
- export default Slide;
22
- //# sourceMappingURL=Slide.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Slide.js","sourceRoot":"","sources":["../../../../src/components/cards/Carousel/Slide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,IAAI,MAAM,mBAAmB,CAAC;AAErC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAoB;;;;aAInC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;;aAEjD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;;;CAG9E,CAAC;AASF,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAS,EAAsB,EAAE;IAClF,OAAO,CACL,oBAAC,OAAO,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;QACjD,oBAAC,IAAI,IAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC,aAAa,EAAC,UAAU,EAAC,SAAS,IAC5D,KAAK,CACD;QACP,oBAAC,IAAI,IAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,aAAa,EAAC,WAAW,IAC/D,WAAW,CACP,CACC,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from "react";
2
- import { Props as SlideProps } from "./Slide";
3
- export type Props = {
4
- timeout?: number;
5
- queue: SlideProps[];
6
- isDismissed: boolean;
7
- onDismiss: () => void;
8
- dismissText?: React.ReactNode;
9
- dismissConfirmText?: React.ReactNode;
10
- dismissCancelText?: React.ReactNode;
11
- };
12
- declare const Carousel: ({ timeout, queue, isDismissed, onDismiss, dismissText, dismissConfirmText, dismissCancelText, }: Props) => React.ReactElement | null;
13
- export default Carousel;
@@ -1,144 +0,0 @@
1
- import React, { useRef, useCallback, useState, useEffect } from "react";
2
- import styled from "styled-components";
3
- import { TransitionGroup } from "react-transition-group";
4
- import TransitionSlide from "../../transitions/TransitionSlide";
5
- import Button from "../../cta/Button";
6
- import Text from "../../asorted/Text";
7
- import Flex from "../../layout/Flex";
8
- import Slide from "./Slide";
9
- import IconLeft from "@ledgerhq/icons-ui/reactLegacy/ArrowLeftMedium";
10
- import IconRight from "@ledgerhq/icons-ui/reactLegacy/ArrowRightMedium";
11
- import IconClose from "@ledgerhq/icons-ui/reactLegacy/CloseMedium";
12
- const CarouselWrapper = styled.div `
13
- width: 100%;
14
- height: 180px;
15
- border-radius: 8px;
16
- overflow: hidden;
17
- cursor: pointer;
18
- position: relative;
19
- flex: 1;
20
- background: ${p => p.theme.colors.neutral.c100};
21
- `;
22
- const Controllers = styled(Flex) `
23
- position: absolute;
24
- flex-direction: row;
25
- right: ${p => p.theme.space[5]}px;
26
- bottom: ${p => p.theme.space[4]}px;
27
- column-gap: ${p => p.theme.space[4]}px;
28
- color: ${p => p.theme.colors.neutral.c00};
29
-
30
- > div {
31
- &:hover {
32
- opacity: 0.5;
33
- }
34
- }
35
- `;
36
- const Bullets = styled.div `
37
- position: absolute;
38
- display: flex;
39
- left: ${p => p.theme.space[10]}px;
40
- bottom: ${p => p.theme.space[8]}px;
41
- column-gap: ${p => p.theme.space[2]}px;
42
- flex-direction: row;
43
-
44
- > div {
45
- position: relative;
46
- height: ${p => p.theme.space[1]}px;
47
- width: ${p => p.theme.space[8]}px;
48
- background: ${p => p.theme.colors.neutral.c00};
49
- opacity: 0.5;
50
- &:hover {
51
- opacity: 0.75;
52
- }
53
-
54
- &:nth-child(${p => p.active}) {
55
- opacity: 1;
56
- &:hover {
57
- opacity: 0.75;
58
- }
59
- }
60
-
61
- ::after {
62
- content: "";
63
- position: absolute;
64
- top: -${p => p.theme.space[4]}px;
65
- height: ${p => p.theme.space[7]}px;
66
- width: 100%;
67
- }
68
- }
69
- `;
70
- const Close = styled.div `
71
- position: absolute;
72
- top: ${p => p.theme.space[7]}px;
73
- right: ${p => p.theme.space[5]}px;
74
- color: ${p => p.theme.colors.neutral.c00};
75
- &:hover {
76
- opacity: 0.5;
77
- }
78
- `;
79
- const DismissWrapper = styled.div `
80
- color: white;
81
- align-items: center;
82
- justify-content: center;
83
- display: flex;
84
- flex-direction: column;
85
- padding: ${p => p.theme.space[13]}px;
86
- row-gap: ${p => p.theme.space[7]}px;
87
- `;
88
- const DEFAULT_TIMEOUT = 7000;
89
- const Carousel = ({ timeout = DEFAULT_TIMEOUT, queue, isDismissed, onDismiss, dismissText = "This banner will not show up again until there is a new announcement", dismissConfirmText = "Confirm", dismissCancelText = "Show again", }) => {
90
- const intervalRef = useRef();
91
- const [direction, setDirection] = useState("right");
92
- const [index, setIndex] = useState(0);
93
- const [wantToDismiss, setWantToDismiss] = useState(false);
94
- const [paused, setPaused] = useState(false);
95
- const childFactory = useCallback((child) => React.cloneElement(child, { direction }), [direction]);
96
- const wrappedSetIndex = useCallback((newIndex) => {
97
- setDirection(newIndex > index ? "left" : "right");
98
- setIndex(newIndex);
99
- }, [index]);
100
- const onSlide = useCallback((direction = "left") => {
101
- setDirection(direction);
102
- const i = index + (direction === "right" ? -1 : 1);
103
- setIndex(i < 0 ? queue.length - 1 : i >= queue.length ? 0 : i);
104
- }, [index, queue]);
105
- const onPrevious = useCallback(() => onSlide("right"), [onSlide]);
106
- const onNext = useCallback(() => onSlide("left"), [onSlide]);
107
- const onWantToDismiss = () => setWantToDismiss(true);
108
- const onCancelDismiss = () => setWantToDismiss(false);
109
- const onMouseEnter = () => setPaused(true);
110
- const onMouseLeave = () => setPaused(false);
111
- useEffect(() => {
112
- // Nb we pause automatic transitions when the mouse is within the carousel.
113
- // Override passed timeout if lower than 1000ms
114
- const _timeout = timeout < 1000 ? DEFAULT_TIMEOUT : timeout;
115
- if (intervalRef.current)
116
- clearInterval(intervalRef.current);
117
- if (!paused)
118
- intervalRef.current = setInterval(onSlide, _timeout);
119
- }, [onSlide, paused, timeout]);
120
- useEffect(() => {
121
- if (isDismissed)
122
- setWantToDismiss(false);
123
- }, [isDismissed]);
124
- if (!(queue === null || queue === void 0 ? void 0 : queue.length) || isDismissed)
125
- return null;
126
- return (React.createElement(CarouselWrapper, { id: "carousel", onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, wantToDismiss ? (React.createElement(DismissWrapper, null,
127
- React.createElement(Text, { color: "neutral.c00", fontWeight: "medium", variant: "paragraph" }, dismissText),
128
- React.createElement(Flex, { columnGap: 5 },
129
- React.createElement(Button, { color: "neutral.c100", backgroundColor: "neutral.c00", onClick: onDismiss }, dismissConfirmText),
130
- React.createElement(Button, { outline: true, color: "neutral.c00", backgroundColor: "neutral.c100", borderColor: "neutral.c00", onClick: onCancelDismiss }, dismissCancelText)))) : (React.createElement("div", null,
131
- React.createElement(TransitionGroup, { component: null, childFactory: childFactory },
132
- React.createElement(TransitionSlide, { key: index, direction: direction },
133
- React.createElement(Slide, Object.assign({}, queue[index])))),
134
- React.createElement(Close, { id: "carousel-dismiss", onClick: onWantToDismiss },
135
- React.createElement(IconClose, { size: 18 })),
136
- React.createElement(Bullets, { active: index + 1 }, queue.map((_, i) => (React.createElement("div", { key: `bullet_${i}`, onClick: () => wrappedSetIndex(i) })))),
137
- React.createElement(Controllers, null,
138
- React.createElement("div", { onClick: onPrevious },
139
- React.createElement(IconLeft, { size: 20 })),
140
- React.createElement("div", { onClick: onNext },
141
- React.createElement(IconRight, { size: 20 })))))));
142
- };
143
- export default Carousel;
144
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/cards/Carousel/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export { default as Carousel } from "./Carousel";
@@ -1,2 +0,0 @@
1
- export { default as Carousel } from "./Carousel";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC"}