@lidofinance/lido-app-ui 1.5.0 → 1.7.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/dist/cjs/accordion/Accordion.cjs +5 -0
- package/dist/cjs/accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/badge/Badge.cjs +3 -0
- package/dist/cjs/badge/Badge.cjs.map +1 -1
- package/dist/cjs/banner/Banner.cjs +6 -0
- package/dist/cjs/banner/Banner.cjs.map +1 -1
- package/dist/cjs/button/Button.cjs +5 -0
- package/dist/cjs/button/Button.cjs.map +1 -1
- package/dist/cjs/card/Card.cjs +2 -0
- package/dist/cjs/card/Card.cjs.map +1 -1
- package/dist/cjs/checkbox/Checkbox.cjs +4 -0
- package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/counter/Counter.cjs +2 -0
- package/dist/cjs/counter/Counter.cjs.map +1 -1
- package/dist/cjs/data-list/DataList.cjs +5 -1
- package/dist/cjs/data-list/DataList.cjs.map +1 -1
- package/dist/cjs/data-list/DataListRow.cjs +10 -1
- package/dist/cjs/data-list/DataListRow.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.cjs +3 -0
- package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
- package/dist/cjs/identicon/Identicon.cjs +8 -2
- package/dist/cjs/identicon/Identicon.cjs.map +1 -1
- package/dist/cjs/index.css +2 -2
- package/dist/cjs/input/Input.cjs +7 -0
- package/dist/cjs/input/Input.cjs.map +1 -1
- package/dist/cjs/message-box/MessageBox.cjs +5 -0
- package/dist/cjs/message-box/MessageBox.cjs.map +1 -1
- package/dist/cjs/modal/Modal.cjs +13 -2
- package/dist/cjs/modal/Modal.cjs.map +1 -1
- package/dist/cjs/notification/Notification.cjs +10 -1
- package/dist/cjs/notification/Notification.cjs.map +1 -1
- package/dist/cjs/radio-button/RadioButton.cjs +4 -0
- package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
- package/dist/cjs/rich-input/RichInput.cjs +9 -0
- package/dist/cjs/rich-input/RichInput.cjs.map +1 -1
- package/dist/cjs/section-title/SectionTitle.cjs +5 -0
- package/dist/cjs/section-title/SectionTitle.cjs.map +1 -1
- package/dist/cjs/segmented-control/Segment.cjs +3 -0
- package/dist/cjs/segmented-control/Segment.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentCard.cjs +8 -0
- package/dist/cjs/segmented-control/SegmentCard.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControl.cjs +6 -1
- package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs +6 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
- package/dist/cjs/slider/Slider.cjs +3 -0
- package/dist/cjs/slider/Slider.cjs.map +1 -1
- package/dist/cjs/small-card/SmallCard.cjs +8 -0
- package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
- package/dist/cjs/stat-item/StatItem.cjs +8 -0
- package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
- package/dist/cjs/switch/Switch.cjs +4 -0
- package/dist/cjs/switch/Switch.cjs.map +1 -1
- package/dist/cjs/tabs/Tab.cjs +2 -0
- package/dist/cjs/tabs/Tab.cjs.map +1 -1
- package/dist/cjs/tabs/Tabs.cjs +6 -1
- package/dist/cjs/tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/tag/Tag.cjs +4 -0
- package/dist/cjs/tag/Tag.cjs.map +1 -1
- package/dist/cjs/text-link/TextLink.cjs +5 -1
- package/dist/cjs/text-link/TextLink.cjs.map +1 -1
- package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
- package/dist/cjs/token-amount/TokenAmount.cjs +8 -2
- package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
- package/dist/cjs/token-selector/TokenSelector.cjs +20 -1
- package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
- package/dist/cjs/tooltip/Tooltip.cjs +3 -0
- package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/tx-status/TxStatus.cjs +9 -1
- package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
- package/dist/cjs/typography/Typography.cjs +2 -0
- package/dist/cjs/typography/Typography.cjs.map +1 -1
- package/dist/esm/accordion/Accordion.mjs +5 -0
- package/dist/esm/accordion/Accordion.mjs.map +1 -1
- package/dist/esm/badge/Badge.mjs +3 -0
- package/dist/esm/badge/Badge.mjs.map +1 -1
- package/dist/esm/banner/Banner.mjs +6 -0
- package/dist/esm/banner/Banner.mjs.map +1 -1
- package/dist/esm/button/Button.mjs +5 -0
- package/dist/esm/button/Button.mjs.map +1 -1
- package/dist/esm/card/Card.mjs +2 -0
- package/dist/esm/card/Card.mjs.map +1 -1
- package/dist/esm/checkbox/Checkbox.mjs +4 -0
- package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/counter/Counter.mjs +2 -0
- package/dist/esm/counter/Counter.mjs.map +1 -1
- package/dist/esm/data-list/DataList.mjs +5 -1
- package/dist/esm/data-list/DataList.mjs.map +1 -1
- package/dist/esm/data-list/DataListRow.mjs +10 -1
- package/dist/esm/data-list/DataListRow.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.mjs +3 -0
- package/dist/esm/icon-button/IconButton.mjs.map +1 -1
- package/dist/esm/identicon/Identicon.mjs +8 -2
- package/dist/esm/identicon/Identicon.mjs.map +1 -1
- package/dist/esm/index.css +2 -2
- package/dist/esm/input/Input.mjs +7 -0
- package/dist/esm/input/Input.mjs.map +1 -1
- package/dist/esm/message-box/MessageBox.mjs +5 -0
- package/dist/esm/message-box/MessageBox.mjs.map +1 -1
- package/dist/esm/modal/Modal.mjs +13 -2
- package/dist/esm/modal/Modal.mjs.map +1 -1
- package/dist/esm/notification/Notification.mjs +10 -1
- package/dist/esm/notification/Notification.mjs.map +1 -1
- package/dist/esm/radio-button/RadioButton.mjs +4 -0
- package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
- package/dist/esm/rich-input/RichInput.mjs +9 -0
- package/dist/esm/rich-input/RichInput.mjs.map +1 -1
- package/dist/esm/section-title/SectionTitle.mjs +5 -0
- package/dist/esm/section-title/SectionTitle.mjs.map +1 -1
- package/dist/esm/segmented-control/Segment.mjs +3 -0
- package/dist/esm/segmented-control/Segment.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentCard.mjs +8 -0
- package/dist/esm/segmented-control/SegmentCard.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControl.mjs +6 -1
- package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControlCard.mjs +6 -1
- package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
- package/dist/esm/slider/Slider.mjs +3 -0
- package/dist/esm/slider/Slider.mjs.map +1 -1
- package/dist/esm/small-card/SmallCard.mjs +8 -0
- package/dist/esm/small-card/SmallCard.mjs.map +1 -1
- package/dist/esm/stat-item/StatItem.mjs +8 -0
- package/dist/esm/stat-item/StatItem.mjs.map +1 -1
- package/dist/esm/switch/Switch.mjs +4 -0
- package/dist/esm/switch/Switch.mjs.map +1 -1
- package/dist/esm/tabs/Tab.mjs +2 -0
- package/dist/esm/tabs/Tab.mjs.map +1 -1
- package/dist/esm/tabs/Tabs.mjs +6 -1
- package/dist/esm/tabs/Tabs.mjs.map +1 -1
- package/dist/esm/tag/Tag.mjs +4 -0
- package/dist/esm/tag/Tag.mjs.map +1 -1
- package/dist/esm/text-link/TextLink.mjs +5 -1
- package/dist/esm/text-link/TextLink.mjs.map +1 -1
- package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
- package/dist/esm/token-amount/TokenAmount.mjs +8 -2
- package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
- package/dist/esm/token-selector/TokenSelector.mjs +20 -1
- package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
- package/dist/esm/tooltip/Tooltip.mjs +3 -0
- package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/tx-status/TxStatus.mjs +9 -1
- package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
- package/dist/esm/typography/Typography.mjs +2 -0
- package/dist/esm/typography/Typography.mjs.map +1 -1
- package/dist/index.css +2 -2
- package/dist/types/accordion/Accordion.d.ts +8 -1
- package/dist/types/accordion/Accordion.d.ts.map +1 -1
- package/dist/types/badge/Badge.d.ts +6 -1
- package/dist/types/badge/Badge.d.ts.map +1 -1
- package/dist/types/badge/index.d.ts +1 -1
- package/dist/types/badge/index.d.ts.map +1 -1
- package/dist/types/banner/Banner.d.ts +9 -1
- package/dist/types/banner/Banner.d.ts.map +1 -1
- package/dist/types/button/Button.d.ts +8 -1
- package/dist/types/button/Button.d.ts.map +1 -1
- package/dist/types/button/index.d.ts +1 -1
- package/dist/types/button/index.d.ts.map +1 -1
- package/dist/types/card/Card.d.ts +7 -2
- package/dist/types/card/Card.d.ts.map +1 -1
- package/dist/types/card/index.d.ts +1 -1
- package/dist/types/card/index.d.ts.map +1 -1
- package/dist/types/checkbox/Checkbox.d.ts +7 -0
- package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/checkbox/index.d.ts +1 -1
- package/dist/types/checkbox/index.d.ts.map +1 -1
- package/dist/types/counter/Counter.d.ts +5 -1
- package/dist/types/counter/Counter.d.ts.map +1 -1
- package/dist/types/counter/index.d.ts +1 -1
- package/dist/types/counter/index.d.ts.map +1 -1
- package/dist/types/data-list/DataList.d.ts +7 -4
- package/dist/types/data-list/DataList.d.ts.map +1 -1
- package/dist/types/data-list/DataListRow.d.ts +11 -4
- package/dist/types/data-list/DataListRow.d.ts.map +1 -1
- package/dist/types/data-list/index.d.ts +2 -2
- package/dist/types/data-list/index.d.ts.map +1 -1
- package/dist/types/icon-button/IconButton.d.ts +6 -1
- package/dist/types/icon-button/IconButton.d.ts.map +1 -1
- package/dist/types/icon-button/index.d.ts +1 -1
- package/dist/types/icon-button/index.d.ts.map +1 -1
- package/dist/types/identicon/Identicon.d.ts +11 -3
- package/dist/types/identicon/Identicon.d.ts.map +1 -1
- package/dist/types/identicon/index.d.ts +1 -1
- package/dist/types/identicon/index.d.ts.map +1 -1
- package/dist/types/input/Input.d.ts +10 -0
- package/dist/types/input/Input.d.ts.map +1 -1
- package/dist/types/message-box/MessageBox.d.ts +8 -1
- package/dist/types/message-box/MessageBox.d.ts.map +1 -1
- package/dist/types/message-box/index.d.ts +1 -1
- package/dist/types/message-box/index.d.ts.map +1 -1
- package/dist/types/modal/Modal.d.ts +12 -4
- package/dist/types/modal/Modal.d.ts.map +1 -1
- package/dist/types/modal/index.d.ts +1 -1
- package/dist/types/modal/index.d.ts.map +1 -1
- package/dist/types/notification/Notification.d.ts +15 -6
- package/dist/types/notification/Notification.d.ts.map +1 -1
- package/dist/types/notification/index.d.ts +1 -1
- package/dist/types/notification/index.d.ts.map +1 -1
- package/dist/types/radio-button/RadioButton.d.ts +7 -0
- package/dist/types/radio-button/RadioButton.d.ts.map +1 -1
- package/dist/types/radio-button/index.d.ts +1 -1
- package/dist/types/radio-button/index.d.ts.map +1 -1
- package/dist/types/rich-input/RichInput.d.ts +11 -1
- package/dist/types/rich-input/RichInput.d.ts.map +1 -1
- package/dist/types/rich-input/index.d.ts +1 -1
- package/dist/types/rich-input/index.d.ts.map +1 -1
- package/dist/types/section-title/SectionTitle.d.ts +8 -1
- package/dist/types/section-title/SectionTitle.d.ts.map +1 -1
- package/dist/types/section-title/index.d.ts +1 -1
- package/dist/types/section-title/index.d.ts.map +1 -1
- package/dist/types/segmented-control/Segment.d.ts +6 -0
- package/dist/types/segmented-control/Segment.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentCard.d.ts +9 -0
- package/dist/types/segmented-control/SegmentCard.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentedControl.d.ts +9 -4
- package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentedControlCard.d.ts +9 -4
- package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
- package/dist/types/segmented-control/index.d.ts +4 -4
- package/dist/types/segmented-control/index.d.ts.map +1 -1
- package/dist/types/slider/Slider.d.ts +6 -0
- package/dist/types/slider/Slider.d.ts.map +1 -1
- package/dist/types/slider/index.d.ts +1 -1
- package/dist/types/slider/index.d.ts.map +1 -1
- package/dist/types/small-card/SmallCard.d.ts +11 -1
- package/dist/types/small-card/SmallCard.d.ts.map +1 -1
- package/dist/types/small-card/index.d.ts +1 -1
- package/dist/types/small-card/index.d.ts.map +1 -1
- package/dist/types/stat-item/StatItem.d.ts +10 -1
- package/dist/types/stat-item/StatItem.d.ts.map +1 -1
- package/dist/types/stat-item/index.d.ts +1 -1
- package/dist/types/stat-item/index.d.ts.map +1 -1
- package/dist/types/switch/Switch.d.ts +7 -0
- package/dist/types/switch/Switch.d.ts.map +1 -1
- package/dist/types/switch/index.d.ts +1 -1
- package/dist/types/switch/index.d.ts.map +1 -1
- package/dist/types/tabs/Tab.d.ts +5 -0
- package/dist/types/tabs/Tab.d.ts.map +1 -1
- package/dist/types/tabs/Tabs.d.ts +9 -4
- package/dist/types/tabs/Tabs.d.ts.map +1 -1
- package/dist/types/tabs/index.d.ts +2 -2
- package/dist/types/tabs/index.d.ts.map +1 -1
- package/dist/types/tag/Tag.d.ts +7 -1
- package/dist/types/tag/Tag.d.ts.map +1 -1
- package/dist/types/tag/index.d.ts +1 -1
- package/dist/types/tag/index.d.ts.map +1 -1
- package/dist/types/text-link/TextLink.d.ts +8 -1
- package/dist/types/text-link/TextLink.d.ts.map +1 -1
- package/dist/types/text-link/index.d.ts +1 -1
- package/dist/types/text-link/index.d.ts.map +1 -1
- package/dist/types/token-amount/TokenAmount.d.ts +9 -4
- package/dist/types/token-amount/TokenAmount.d.ts.map +1 -1
- package/dist/types/token-selector/TokenSelector.d.ts +17 -4
- package/dist/types/token-selector/TokenSelector.d.ts.map +1 -1
- package/dist/types/token-selector/index.d.ts +1 -1
- package/dist/types/token-selector/index.d.ts.map +1 -1
- package/dist/types/tooltip/Tooltip.d.ts +6 -1
- package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/tooltip/index.d.ts +1 -1
- package/dist/types/tooltip/index.d.ts.map +1 -1
- package/dist/types/tx-status/TxStatus.d.ts +11 -4
- package/dist/types/tx-status/TxStatus.d.ts.map +1 -1
- package/dist/types/tx-status/index.d.ts +1 -1
- package/dist/types/tx-status/index.d.ts.map +1 -1
- package/dist/types/typography/Typography.d.ts +5 -1
- package/dist/types/typography/Typography.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -15,35 +15,43 @@ const SmallCard = _ref => {
|
|
|
15
15
|
description,
|
|
16
16
|
footer,
|
|
17
17
|
className,
|
|
18
|
+
dataTestId,
|
|
18
19
|
...rest
|
|
19
20
|
} = _ref;
|
|
20
21
|
return /*#__PURE__*/jsxRuntime.jsxs("a", {
|
|
21
22
|
className: cn(SmallCard_module.card, className),
|
|
23
|
+
"data-testid": dataTestId?.root,
|
|
22
24
|
...rest,
|
|
23
25
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
24
26
|
className: SmallCard_module.content,
|
|
25
27
|
children: [image != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
26
28
|
className: SmallCard_module.image,
|
|
29
|
+
"data-testid": dataTestId?.image,
|
|
27
30
|
children: image
|
|
28
31
|
}) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
29
32
|
className: SmallCard_module.header,
|
|
30
33
|
children: [logo != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
31
34
|
className: SmallCard_module.logo,
|
|
35
|
+
"data-testid": dataTestId?.logo,
|
|
32
36
|
children: logo
|
|
33
37
|
}) : null, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
34
38
|
className: SmallCard_module.title,
|
|
39
|
+
"data-testid": dataTestId?.title,
|
|
35
40
|
children: title
|
|
36
41
|
}), icon != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
37
42
|
className: SmallCard_module.icon,
|
|
38
43
|
"aria-hidden": "true",
|
|
44
|
+
"data-testid": dataTestId?.icon,
|
|
39
45
|
children: icon
|
|
40
46
|
}) : null]
|
|
41
47
|
}), description != null ? /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
42
48
|
className: SmallCard_module.description,
|
|
49
|
+
"data-testid": dataTestId?.description,
|
|
43
50
|
children: description
|
|
44
51
|
}) : null]
|
|
45
52
|
}), footer != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
46
53
|
className: SmallCard_module.footer,
|
|
54
|
+
"data-testid": dataTestId?.footer,
|
|
47
55
|
children: footer
|
|
48
56
|
}) : null]
|
|
49
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmallCard.cjs","sources":["../../../src/small-card/SmallCard.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './SmallCard.module.css'\n\nexport type SmallCardProps = Omit<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n 'title'\n> & {\n /** Fixed-height (120px) media slot above the header — an image or illustration. */\n image?: ReactNode\n logo?: ReactNode\n /** Trailing glyph next to the title — an external-link arrow, a badge, etc. */\n icon?: ReactNode\n title: ReactNode\n description?: ReactNode\n /** Arbitrary content below the description — wraps in a row, e.g. a list of `Tag`s. */\n footer?: ReactNode\n}\n\nexport const SmallCard = ({\n image,\n logo,\n icon,\n title,\n description,\n footer,\n className,\n ...rest\n}: SmallCardProps) => (\n <a
|
|
1
|
+
{"version":3,"file":"SmallCard.cjs","sources":["../../../src/small-card/SmallCard.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './SmallCard.module.css'\n\nexport type SmallCardDataTestId = {\n root?: string\n image?: string\n logo?: string\n icon?: string\n title?: string\n description?: string\n footer?: string\n}\n\nexport type SmallCardProps = Omit<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n 'title'\n> & {\n /** Fixed-height (120px) media slot above the header — an image or illustration. */\n image?: ReactNode\n logo?: ReactNode\n /** Trailing glyph next to the title — an external-link arrow, a badge, etc. */\n icon?: ReactNode\n title: ReactNode\n description?: ReactNode\n /** Arbitrary content below the description — wraps in a row, e.g. a list of `Tag`s. */\n footer?: ReactNode\n dataTestId?: SmallCardDataTestId\n}\n\nexport const SmallCard = ({\n image,\n logo,\n icon,\n title,\n description,\n footer,\n className,\n dataTestId,\n ...rest\n}: SmallCardProps) => (\n <a\n className={cn(styles.card, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.content}>\n {image != null ? (\n <div className={styles.image} data-testid={dataTestId?.image}>\n {image}\n </div>\n ) : null}\n <div className={styles.header}>\n {logo != null ? (\n <span className={styles.logo} data-testid={dataTestId?.logo}>\n {logo}\n </span>\n ) : null}\n <span className={styles.title} data-testid={dataTestId?.title}>\n {title}\n </span>\n {icon != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n ) : null}\n </div>\n {description != null ? (\n <p className={styles.description} data-testid={dataTestId?.description}>\n {description}\n </p>\n ) : null}\n </div>\n {footer != null ? (\n <div className={styles.footer} data-testid={dataTestId?.footer}>\n {footer}\n </div>\n ) : null}\n </a>\n)\n"],"names":["SmallCard","_ref","image","logo","icon","title","description","footer","className","dataTestId","rest","_jsxs","cn","styles","card","root","children","content","_jsx","header"],"mappings":";;;;;;;;AAgCO,MAAMA,SAAS,GAAGC,IAAA,IAAA;EAAA,IAAC;IACxBC,KAAK;IACLC,IAAI;IACJC,IAAI;IACJC,KAAK;IACLC,WAAW;IACXC,MAAM;IACNC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAT,IAAA,CAAA;AAAA,EAAA,oBACfU,eAAA,CAAA,GAAA,EAAA;IACEH,SAAS,EAAEI,EAAE,CAACC,gBAAM,CAACC,IAAI,EAAEN,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAM,IAAAA,QAAA,gBAERL,eAAA,CAAA,KAAA,EAAA;MAAKH,SAAS,EAAEK,gBAAM,CAACI,OAAQ;AAAAD,MAAAA,QAAA,EAC5Bd,CAAAA,KAAK,IAAI,IAAI,gBACZgB,cAAA,CAAA,KAAA,EAAA;QAAKV,SAAS,EAAEK,gBAAM,CAACX,KAAM;QAAC,aAAaO,EAAAA,UAAU,EAAEP,KAAM;AAAAc,QAAAA,QAAA,EAC1Dd,KAAAA;AAAK,OACH,CAAC,GACJ,IAAI,eACRS,eAAA,CAAA,KAAA,EAAA;QAAKH,SAAS,EAAEK,gBAAM,CAACM,MAAO;AAAAH,QAAAA,QAAA,EAC3Bb,CAAAA,IAAI,IAAI,IAAI,gBACXe,cAAA,CAAA,MAAA,EAAA;UAAMV,SAAS,EAAEK,gBAAM,CAACV,IAAK;UAAC,aAAaM,EAAAA,UAAU,EAAEN,IAAK;AAAAa,UAAAA,QAAA,EACzDb,IAAAA;AAAI,SACD,CAAC,GACL,IAAI,eACRe,cAAA,CAAA,MAAA,EAAA;UAAMV,SAAS,EAAEK,gBAAM,CAACR,KAAM;UAAC,aAAaI,EAAAA,UAAU,EAAEJ,KAAM;AAAAW,UAAAA,QAAA,EAC3DX,KAAAA;AAAK,SACF,CAAC,EACND,IAAI,IAAI,IAAI,gBACXc,cAAA,CAAA,MAAA,EAAA;UACEV,SAAS,EAAEK,gBAAM,CAACT,IAAK;AACvB,UAAA,aAAA,EAAY,MAAM;UAClB,aAAaK,EAAAA,UAAU,EAAEL,IAAK;AAAAY,UAAAA,QAAA,EAE7BZ,IAAAA;SACG,CAAC,GACL,IAAI,CAAA;AAAA,OACL,CAAC,EACLE,WAAW,IAAI,IAAI,gBAClBY,cAAA,CAAA,GAAA,EAAA;QAAGV,SAAS,EAAEK,gBAAM,CAACP,WAAY;QAAC,aAAaG,EAAAA,UAAU,EAAEH,WAAY;AAAAU,QAAAA,QAAA,EACpEV,WAAAA;OACA,CAAC,GACF,IAAI,CAAA;AAAA,KACL,CAAC,EACLC,MAAM,IAAI,IAAI,gBACbW,cAAA,CAAA,KAAA,EAAA;MAAKV,SAAS,EAAEK,gBAAM,CAACN,MAAO;MAAC,aAAaE,EAAAA,UAAU,EAAEF,MAAO;AAAAS,MAAAA,QAAA,EAC5DT,MAAAA;KACE,CAAC,GACJ,IAAI,CAAA;AAAA,GACP,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -19,10 +19,12 @@ const StatItem = _ref => {
|
|
|
19
19
|
description,
|
|
20
20
|
align = 'center',
|
|
21
21
|
className,
|
|
22
|
+
dataTestId,
|
|
22
23
|
...rest
|
|
23
24
|
} = _ref;
|
|
24
25
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
25
26
|
className: cn(StatItem_module.item, StatItem_module[align], className),
|
|
27
|
+
"data-testid": dataTestId?.root,
|
|
26
28
|
...rest,
|
|
27
29
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
30
|
className: StatItem_module.title,
|
|
@@ -32,6 +34,7 @@ const StatItem = _ref => {
|
|
|
32
34
|
children: titleIcon
|
|
33
35
|
}) : null, /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
34
36
|
className: StatItem_module.label,
|
|
37
|
+
"data-testid": dataTestId?.label,
|
|
35
38
|
children: label
|
|
36
39
|
}), info ? /*#__PURE__*/jsxRuntime.jsx(Tooltip.Tooltip, {
|
|
37
40
|
content: info,
|
|
@@ -44,20 +47,25 @@ const StatItem = _ref => {
|
|
|
44
47
|
className: StatItem_module.valueRow,
|
|
45
48
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
46
49
|
className: StatItem_module.value,
|
|
50
|
+
"data-testid": dataTestId?.value,
|
|
47
51
|
children: value
|
|
48
52
|
}), icon != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
49
53
|
className: StatItem_module.icon,
|
|
50
54
|
"aria-hidden": "true",
|
|
55
|
+
"data-testid": dataTestId?.icon,
|
|
51
56
|
children: icon
|
|
52
57
|
}) : null, align === 'left' && subValue != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
53
58
|
className: StatItem_module.subValue,
|
|
59
|
+
"data-testid": dataTestId?.subValue,
|
|
54
60
|
children: subValue
|
|
55
61
|
}) : null]
|
|
56
62
|
}), align === 'center' && subValue != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
57
63
|
className: StatItem_module.subValue,
|
|
64
|
+
"data-testid": dataTestId?.subValue,
|
|
58
65
|
children: subValue
|
|
59
66
|
}) : null, description != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
60
67
|
className: StatItem_module.description,
|
|
68
|
+
"data-testid": dataTestId?.description,
|
|
61
69
|
children: description
|
|
62
70
|
}) : null]
|
|
63
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatItem.cjs","sources":["../../../src/stat-item/StatItem.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconInfo } from '../icons'\nimport { Tooltip } from '../tooltip'\n\nimport styles from './StatItem.module.css'\n\nexport type StatItemAlign = 'left' | 'center'\n\nexport type StatItemProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n label: ReactNode\n value: ReactNode\n titleIcon?: ReactNode\n info?: ReactNode\n icon?: ReactNode\n subValue?: ReactNode\n description?: ReactNode\n align?: StatItemAlign\n}\n\nexport const StatItem = ({\n label,\n value,\n titleIcon,\n info,\n icon,\n subValue,\n description,\n align = 'center',\n className,\n ...rest\n}: StatItemProps) => (\n <div
|
|
1
|
+
{"version":3,"file":"StatItem.cjs","sources":["../../../src/stat-item/StatItem.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconInfo } from '../icons'\nimport { Tooltip } from '../tooltip'\n\nimport styles from './StatItem.module.css'\n\nexport type StatItemAlign = 'left' | 'center'\n\nexport type StatItemDataTestId = {\n root?: string\n label?: string\n icon?: string\n value?: string\n subValue?: string\n description?: string\n}\n\nexport type StatItemProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n label: ReactNode\n value: ReactNode\n titleIcon?: ReactNode\n info?: ReactNode\n icon?: ReactNode\n subValue?: ReactNode\n description?: ReactNode\n align?: StatItemAlign\n dataTestId?: StatItemDataTestId\n}\n\nexport const StatItem = ({\n label,\n value,\n titleIcon,\n info,\n icon,\n subValue,\n description,\n align = 'center',\n className,\n dataTestId,\n ...rest\n}: StatItemProps) => (\n <div\n className={cn(styles.item, styles[align], className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.title}>\n {titleIcon ? (\n <span className={styles.titleIcon} aria-hidden='true'>\n {titleIcon}\n </span>\n ) : null}\n <div className={styles.label} data-testid={dataTestId?.label}>\n {label}\n </div>\n {info ? (\n <Tooltip content={info} className={styles.info}>\n <IconInfo className={styles.infoIcon} />\n </Tooltip>\n ) : null}\n </div>\n <div className={styles.valueRow}>\n <div className={styles.value} data-testid={dataTestId?.value}>\n {value}\n </div>\n {icon != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n ) : null}\n {align === 'left' && subValue != null ? (\n <div className={styles.subValue} data-testid={dataTestId?.subValue}>\n {subValue}\n </div>\n ) : null}\n </div>\n {align === 'center' && subValue != null ? (\n <div className={styles.subValue} data-testid={dataTestId?.subValue}>\n {subValue}\n </div>\n ) : null}\n {description != null ? (\n <div className={styles.description} data-testid={dataTestId?.description}>\n {description}\n </div>\n ) : null}\n </div>\n)\n"],"names":["StatItem","_ref","label","value","titleIcon","info","icon","subValue","description","align","className","dataTestId","rest","_jsxs","cn","styles","item","root","children","title","_jsx","Tooltip","content","IconInfo","infoIcon","valueRow"],"mappings":"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"}
|
|
@@ -12,12 +12,14 @@ const Switch = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
12
12
|
label,
|
|
13
13
|
className,
|
|
14
14
|
disabled,
|
|
15
|
+
dataTestId,
|
|
15
16
|
...rest
|
|
16
17
|
} = _ref;
|
|
17
18
|
return /*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
18
19
|
className: cn(Switch_module.container, className, {
|
|
19
20
|
[Switch_module.containerDisabled]: disabled
|
|
20
21
|
}),
|
|
22
|
+
"data-testid": dataTestId?.root,
|
|
21
23
|
children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
22
24
|
className: Switch_module.control,
|
|
23
25
|
children: [/*#__PURE__*/jsxRuntime.jsx("input", {
|
|
@@ -26,6 +28,7 @@ const Switch = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
26
28
|
role: "switch",
|
|
27
29
|
className: Switch_module.input,
|
|
28
30
|
disabled: disabled,
|
|
31
|
+
"data-testid": dataTestId?.input,
|
|
29
32
|
...rest
|
|
30
33
|
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
31
34
|
className: Switch_module.knob
|
|
@@ -34,6 +37,7 @@ const Switch = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
34
37
|
className: cn(Switch_module.label, {
|
|
35
38
|
[Switch_module.labelDisabled]: disabled
|
|
36
39
|
}),
|
|
40
|
+
"data-testid": dataTestId?.label,
|
|
37
41
|
children: label
|
|
38
42
|
}) : null]
|
|
39
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.cjs","sources":["../../../src/switch/Switch.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Switch.module.css'\n\nexport type SwitchProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> & {\n label?: ReactNode\n}\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n ({ label, className, disabled, ...rest }, ref) => (\n <label\n className={cn(styles.container, className, {\n [styles.containerDisabled]: disabled,\n })}\n >\n <span className={styles.control}>\n <input\n ref={ref}\n type='checkbox'\n role='switch'\n className={styles.input}\n disabled={disabled}\n {...rest}\n />\n <span className={styles.knob} />\n </span>\n {label ? (\n <span\n className={cn(styles.label, { [styles.labelDisabled]: disabled })}\n >\n {label}\n </span>\n ) : null}\n </label>\n ),\n)\n\nSwitch.displayName = 'Switch'\n"],"names":["Switch","forwardRef","_ref","ref","label","className","disabled","rest","_jsxs","cn","styles","container","containerDisabled","children","control","_jsx","type","role","input","knob","labelDisabled","displayName"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Switch.cjs","sources":["../../../src/switch/Switch.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Switch.module.css'\n\nexport type SwitchDataTestId = {\n root?: string\n input?: string\n label?: string\n}\n\nexport type SwitchProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> & {\n label?: ReactNode\n dataTestId?: SwitchDataTestId\n}\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n ({ label, className, disabled, dataTestId, ...rest }, ref) => (\n <label\n className={cn(styles.container, className, {\n [styles.containerDisabled]: disabled,\n })}\n data-testid={dataTestId?.root}\n >\n <span className={styles.control}>\n <input\n ref={ref}\n type='checkbox'\n role='switch'\n className={styles.input}\n disabled={disabled}\n data-testid={dataTestId?.input}\n {...rest}\n />\n <span className={styles.knob} />\n </span>\n {label ? (\n <span\n className={cn(styles.label, { [styles.labelDisabled]: disabled })}\n data-testid={dataTestId?.label}\n >\n {label}\n </span>\n ) : null}\n </label>\n ),\n)\n\nSwitch.displayName = 'Switch'\n"],"names":["Switch","forwardRef","_ref","ref","label","className","disabled","dataTestId","rest","_jsxs","cn","styles","container","containerDisabled","root","children","control","_jsx","type","role","input","knob","labelDisabled","displayName"],"mappings":";;;;;;;;;AAoBO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAAsDC,GAAG,KAAA;EAAA,IAAxD;IAAEC,KAAK;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAClDO,eAAA,CAAA,OAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,aAAM,CAACC,SAAS,EAAEP,SAAS,EAAE;MACzC,CAACM,aAAM,CAACE,iBAAiB,GAAGP,QAAAA;AAC9B,KAAC,CAAE;IACH,aAAaC,EAAAA,UAAU,EAAEO,IAAK;AAAAC,IAAAA,QAAA,gBAE9BN,eAAA,CAAA,MAAA,EAAA;MAAMJ,SAAS,EAAEM,aAAM,CAACK,OAAQ;AAAAD,MAAAA,QAAA,gBAC9BE,cAAA,CAAA,OAAA,EAAA;AACEd,QAAAA,GAAG,EAAEA,GAAI;AACTe,QAAAA,IAAI,EAAC,UAAU;AACfC,QAAAA,IAAI,EAAC,QAAQ;QACbd,SAAS,EAAEM,aAAM,CAACS,KAAM;AACxBd,QAAAA,QAAQ,EAAEA,QAAS;QACnB,aAAaC,EAAAA,UAAU,EAAEa,KAAM;QAAA,GAC3BZ,IAAAA;OACL,CAAC,eACFS,cAAA,CAAA,MAAA,EAAA;QAAMZ,SAAS,EAAEM,aAAM,CAACU,IAAAA;AAAK,OAAE,CAAC,CAAA;AAAA,KAC5B,CAAC,EACNjB,KAAK,gBACJa,cAAA,CAAA,MAAA,EAAA;AACEZ,MAAAA,SAAS,EAAEK,EAAE,CAACC,aAAM,CAACP,KAAK,EAAE;QAAE,CAACO,aAAM,CAACW,aAAa,GAAGhB,QAAAA;AAAS,OAAC,CAAE;MAClE,aAAaC,EAAAA,UAAU,EAAEH,KAAM;AAAAW,MAAAA,QAAA,EAE9BX,KAAAA;KACG,CAAC,GACL,IAAI,CAAA;AAAA,GACH,CAAC,CAAA;AAAA,CAEZ,EAAC;AAEDJ,MAAM,CAACuB,WAAW,GAAG,QAAQ;;;;"}
|
package/dist/cjs/tabs/Tab.cjs
CHANGED
|
@@ -13,6 +13,7 @@ const Tab = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
13
13
|
className,
|
|
14
14
|
children,
|
|
15
15
|
type = 'button',
|
|
16
|
+
dataTestId,
|
|
16
17
|
...rest
|
|
17
18
|
} = _ref;
|
|
18
19
|
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
@@ -21,6 +22,7 @@ const Tab = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
21
22
|
role: "tab",
|
|
22
23
|
"aria-selected": active,
|
|
23
24
|
className: cn(Tab_module.tab, active && Tab_module.active, className),
|
|
25
|
+
"data-testid": dataTestId?.root,
|
|
24
26
|
...rest,
|
|
25
27
|
children: children
|
|
26
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.cjs","sources":["../../../src/tabs/Tab.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Tab.module.css'\n\nexport type TabProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n active?: boolean\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(\n ({
|
|
1
|
+
{"version":3,"file":"Tab.cjs","sources":["../../../src/tabs/Tab.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Tab.module.css'\n\nexport type TabDataTestId = {\n root?: string\n}\n\nexport type TabProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n active?: boolean\n dataTestId?: TabDataTestId\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(\n (\n {\n active = false,\n className,\n children,\n type = 'button',\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <button\n ref={ref}\n type={type}\n role='tab'\n aria-selected={active}\n className={cn(styles.tab, active && styles.active, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </button>\n ),\n)\n\nTab.displayName = 'Tab'\n"],"names":["Tab","forwardRef","_ref","ref","active","className","children","type","dataTestId","rest","_jsx","role","cn","styles","tab","root","displayName"],"mappings":";;;;;;;;;AAeO,MAAMA,GAAG,gBAAGC,gBAAU,CAC3B,CAAAC,IAAA,EASEC,GAAG,KAAA;EAAA,IARH;AACEC,IAAAA,MAAM,GAAG,KAAK;IACdC,SAAS;IACTC,QAAQ;AACRC,IAAAA,IAAI,GAAG,QAAQ;IACfC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAP,IAAA,CAAA;AAAA,EAAA,oBAGDQ,cAAA,CAAA,QAAA,EAAA;AACEP,IAAAA,GAAG,EAAEA,GAAI;AACTI,IAAAA,IAAI,EAAEA,IAAK;AACXI,IAAAA,IAAI,EAAC,KAAK;AACV,IAAA,eAAA,EAAeP,MAAO;AACtBC,IAAAA,SAAS,EAAEO,EAAE,CAACC,UAAM,CAACC,GAAG,EAAEV,MAAM,IAAIS,UAAM,CAACT,MAAM,EAAEC,SAAS,CAAE;IAC9D,aAAaG,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAH,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACH,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDN,GAAG,CAACgB,WAAW,GAAG,KAAK;;;;"}
|
package/dist/cjs/tabs/Tabs.cjs
CHANGED
|
@@ -13,7 +13,9 @@ const Tabs = _ref => {
|
|
|
13
13
|
items,
|
|
14
14
|
value,
|
|
15
15
|
onChange,
|
|
16
|
-
className
|
|
16
|
+
className,
|
|
17
|
+
dataTestId,
|
|
18
|
+
...rest
|
|
17
19
|
} = _ref;
|
|
18
20
|
const containerRef = react.useRef(null);
|
|
19
21
|
const activeButtonRef = react.useRef(null);
|
|
@@ -43,6 +45,8 @@ const Tabs = _ref => {
|
|
|
43
45
|
ref: containerRef,
|
|
44
46
|
role: "tablist",
|
|
45
47
|
className: cn(Tabs_module.tabs, className),
|
|
48
|
+
"data-testid": dataTestId?.root,
|
|
49
|
+
...rest,
|
|
46
50
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47
51
|
ref: selectionRef,
|
|
48
52
|
"aria-hidden": "true",
|
|
@@ -53,6 +57,7 @@ const Tabs = _ref => {
|
|
|
53
57
|
ref: active ? activeButtonRef : undefined,
|
|
54
58
|
active: active,
|
|
55
59
|
disabled: item.disabled,
|
|
60
|
+
dataTestId: item.dataTestId,
|
|
56
61
|
onClick: () => {
|
|
57
62
|
if (item.value !== value) onChange(item.value);
|
|
58
63
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.cjs","sources":["../../../src/tabs/Tabs.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Tabs.cjs","sources":["../../../src/tabs/Tabs.tsx"],"sourcesContent":["import {\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport cn from 'classnames'\n\nimport { Tab, type TabDataTestId } from './Tab'\nimport styles from './Tabs.module.css'\n\nexport type TabsDataTestId = {\n root?: string\n}\n\nexport type TabItem = {\n value: string\n label: ReactNode\n disabled?: boolean\n dataTestId?: TabDataTestId\n}\n\nexport type TabsProps = Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> & {\n items: TabItem[]\n value: string\n onChange: (value: string) => void\n dataTestId?: TabsDataTestId\n}\n\nexport const Tabs = ({\n items,\n value,\n onChange,\n className,\n dataTestId,\n ...rest\n}: TabsProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const activeButtonRef = useRef<HTMLButtonElement>(null)\n const selectionRef = useRef<HTMLDivElement>(null)\n // Skip the transition on the first measurement so the bar doesn't fly in from 0,0.\n const [animated, setAnimated] = useState(false)\n\n useLayoutEffect(() => {\n const updateSelection = () => {\n const button = activeButtonRef.current\n const container = containerRef.current\n const selection = selectionRef.current\n if (!button || !container || !selection) return\n\n const buttonRect = button.getBoundingClientRect()\n const containerRect = container.getBoundingClientRect()\n const x = buttonRect.left - containerRect.left\n\n selection.style.width = `${buttonRect.width}px`\n selection.style.transform = `translateX(${x}px)`\n }\n\n updateSelection()\n setAnimated(true)\n\n window.addEventListener('resize', updateSelection)\n return () => {\n window.removeEventListener('resize', updateSelection)\n }\n }, [value, items])\n\n return (\n <div\n ref={containerRef}\n role='tablist'\n className={cn(styles.tabs, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div\n ref={selectionRef}\n aria-hidden='true'\n className={cn(styles.selection, animated && styles.animated)}\n />\n {items.map((item) => {\n const active = item.value === value\n return (\n <Tab\n key={item.value}\n ref={active ? activeButtonRef : undefined}\n active={active}\n disabled={item.disabled}\n dataTestId={item.dataTestId}\n onClick={() => {\n if (item.value !== value) onChange(item.value)\n }}\n >\n {item.label}\n </Tab>\n )\n })}\n </div>\n )\n}\n"],"names":["Tabs","_ref","items","value","onChange","className","dataTestId","rest","containerRef","useRef","activeButtonRef","selectionRef","animated","setAnimated","useState","useLayoutEffect","updateSelection","button","current","container","selection","buttonRect","getBoundingClientRect","containerRect","x","left","style","width","transform","window","addEventListener","removeEventListener","_jsxs","ref","role","cn","styles","tabs","root","children","_jsx","map","item","active","Tab","undefined","disabled","onClick","label"],"mappings":"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"}
|
package/dist/cjs/tag/Tag.cjs
CHANGED
|
@@ -14,20 +14,24 @@ const Tag = _ref => {
|
|
|
14
14
|
onClose,
|
|
15
15
|
className,
|
|
16
16
|
children,
|
|
17
|
+
dataTestId,
|
|
17
18
|
...rest
|
|
18
19
|
} = _ref;
|
|
19
20
|
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
20
21
|
className: cn(Tag_module.tag, Tag_module[variant], className),
|
|
22
|
+
"data-testid": dataTestId?.root,
|
|
21
23
|
...rest,
|
|
22
24
|
children: [icon != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
23
25
|
className: Tag_module.icon,
|
|
24
26
|
"aria-hidden": "true",
|
|
27
|
+
"data-testid": dataTestId?.icon,
|
|
25
28
|
children: icon
|
|
26
29
|
}) : null, children, onClose ? /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
27
30
|
type: "button",
|
|
28
31
|
className: Tag_module.closeButton,
|
|
29
32
|
"aria-label": "Remove",
|
|
30
33
|
onClick: onClose,
|
|
34
|
+
"data-testid": dataTestId?.closeButton,
|
|
31
35
|
children: /*#__PURE__*/jsxRuntime.jsx(IconCross.IconCross, {
|
|
32
36
|
"aria-hidden": "true"
|
|
33
37
|
})
|
package/dist/cjs/tag/Tag.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.cjs","sources":["../../../src/tag/Tag.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconCross } from '../icons'\nimport styles from './Tag.module.css'\n\nexport type TagVariant =\n | 'default'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'error'\n | 'info'\n | 'active'\n | 'action'\n\nexport type TagProps = HTMLAttributes<HTMLSpanElement> & {\n variant?: TagVariant\n icon?: ReactNode\n onClose?: () => void\n}\n\nexport const Tag = ({\n variant = 'default',\n icon,\n onClose,\n className,\n children,\n ...rest\n}: TagProps) => (\n <span
|
|
1
|
+
{"version":3,"file":"Tag.cjs","sources":["../../../src/tag/Tag.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconCross } from '../icons'\nimport styles from './Tag.module.css'\n\nexport type TagVariant =\n | 'default'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'error'\n | 'info'\n | 'active'\n | 'action'\n\nexport type TagDataTestId = {\n root?: string\n icon?: string\n closeButton?: string\n}\n\nexport type TagProps = HTMLAttributes<HTMLSpanElement> & {\n variant?: TagVariant\n icon?: ReactNode\n onClose?: () => void\n dataTestId?: TagDataTestId\n}\n\nexport const Tag = ({\n variant = 'default',\n icon,\n onClose,\n className,\n children,\n dataTestId,\n ...rest\n}: TagProps) => (\n <span\n className={cn(styles.tag, styles[variant], className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {icon != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n ) : null}\n {children}\n {onClose ? (\n <button\n type='button'\n className={styles.closeButton}\n aria-label='Remove'\n onClick={onClose}\n data-testid={dataTestId?.closeButton}\n >\n <IconCross aria-hidden='true' />\n </button>\n ) : null}\n </span>\n)\n"],"names":["Tag","_ref","variant","icon","onClose","className","children","dataTestId","rest","_jsxs","cn","styles","tag","root","_jsx","type","closeButton","onClick","IconCross"],"mappings":";;;;;;;;;AA8BO,MAAMA,GAAG,GAAGC,IAAA,IAAA;EAAA,IAAC;AAClBC,IAAAA,OAAO,GAAG,SAAS;IACnBC,IAAI;IACJC,OAAO;IACPC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACK,GAAC,GAAAP,IAAA,CAAA;AAAA,EAAA,oBACTQ,eAAA,CAAA,MAAA,EAAA;AACEJ,IAAAA,SAAS,EAAEK,EAAE,CAACC,UAAM,CAACC,GAAG,EAAED,UAAM,CAACT,OAAO,CAAC,EAAEG,SAAS,CAAE;IACtD,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAF,IAAAA,QAAA,EAEPH,CAAAA,IAAI,IAAI,IAAI,gBACXW,cAAA,CAAA,MAAA,EAAA;MACET,SAAS,EAAEM,UAAM,CAACR,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaI,EAAAA,UAAU,EAAEJ,IAAK;AAAAG,MAAAA,QAAA,EAE7BH,IAAAA;KACG,CAAC,GACL,IAAI,EACPG,QAAQ,EACRF,OAAO,gBACNU,cAAA,CAAA,QAAA,EAAA;AACEC,MAAAA,IAAI,EAAC,QAAQ;MACbV,SAAS,EAAEM,UAAM,CAACK,WAAY;AAC9B,MAAA,YAAA,EAAW,QAAQ;AACnBC,MAAAA,OAAO,EAAEb,OAAQ;MACjB,aAAaG,EAAAA,UAAU,EAAES,WAAY;MAAAV,QAAA,eAErCQ,cAAA,CAACI,mBAAS,EAAA;QAAC,aAAY,EAAA,MAAA;OAAQ,CAAA;KACzB,CAAC,GACP,IAAI,CAAA;AAAA,GACJ,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -8,6 +8,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
8
8
|
|
|
9
9
|
const TextLink = _ref => {
|
|
10
10
|
let {
|
|
11
|
+
variant = 'primary',
|
|
11
12
|
icon,
|
|
12
13
|
external = false,
|
|
13
14
|
disabled = false,
|
|
@@ -17,20 +18,23 @@ const TextLink = _ref => {
|
|
|
17
18
|
rel,
|
|
18
19
|
href,
|
|
19
20
|
onClick,
|
|
21
|
+
dataTestId,
|
|
20
22
|
...rest
|
|
21
23
|
} = _ref;
|
|
22
24
|
return /*#__PURE__*/jsxRuntime.jsxs("a", {
|
|
23
|
-
className: cn(TextLink_module.link, className),
|
|
25
|
+
className: cn(TextLink_module.link, TextLink_module[variant], className),
|
|
24
26
|
target: target ?? (external ? '_blank' : undefined),
|
|
25
27
|
rel: rel ?? (external ? 'noopener noreferrer' : undefined),
|
|
26
28
|
href: disabled ? undefined : href,
|
|
27
29
|
"aria-disabled": disabled || undefined,
|
|
28
30
|
tabIndex: disabled ? -1 : undefined,
|
|
29
31
|
onClick: disabled ? undefined : onClick,
|
|
32
|
+
"data-testid": dataTestId?.root,
|
|
30
33
|
...rest,
|
|
31
34
|
children: [children, icon != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
32
35
|
className: TextLink_module.icon,
|
|
33
36
|
"aria-hidden": "true",
|
|
37
|
+
"data-testid": dataTestId?.icon,
|
|
34
38
|
children: icon
|
|
35
39
|
}) : null]
|
|
36
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextLink.cjs","sources":["../../../src/text-link/TextLink.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './TextLink.module.css'\n\nexport type TextLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {\n icon?: ReactNode\n external?: boolean\n disabled?: boolean\n}\n\nexport const TextLink = ({\n icon,\n external = false,\n disabled = false,\n className,\n children,\n target,\n rel,\n href,\n onClick,\n ...rest\n}: TextLinkProps) => (\n <a\n className={cn(styles.link, className)}\n target={target ?? (external ? '_blank' : undefined)}\n rel={rel ?? (external ? 'noopener noreferrer' : undefined)}\n href={disabled ? undefined : href}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : undefined}\n onClick={disabled ? undefined : onClick}\n {...rest}\n >\n {children}\n {icon != null ? (\n <span
|
|
1
|
+
{"version":3,"file":"TextLink.cjs","sources":["../../../src/text-link/TextLink.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './TextLink.module.css'\n\nexport type TextLinkVariant = 'primary' | 'secondary'\n\nexport type TextLinkDataTestId = {\n root?: string\n icon?: string\n}\n\nexport type TextLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {\n variant?: TextLinkVariant\n icon?: ReactNode\n external?: boolean\n disabled?: boolean\n dataTestId?: TextLinkDataTestId\n}\n\nexport const TextLink = ({\n variant = 'primary',\n icon,\n external = false,\n disabled = false,\n className,\n children,\n target,\n rel,\n href,\n onClick,\n dataTestId,\n ...rest\n}: TextLinkProps) => (\n <a\n className={cn(styles.link, styles[variant], className)}\n target={target ?? (external ? '_blank' : undefined)}\n rel={rel ?? (external ? 'noopener noreferrer' : undefined)}\n href={disabled ? undefined : href}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : undefined}\n onClick={disabled ? undefined : onClick}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n {icon != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n ) : null}\n </a>\n)\n"],"names":["TextLink","_ref","variant","icon","external","disabled","className","children","target","rel","href","onClick","dataTestId","rest","_jsxs","cn","styles","link","undefined","tabIndex","root","_jsx"],"mappings":";;;;;;;;AAqBO,MAAMA,QAAQ,GAAGC,IAAA,IAAA;EAAA,IAAC;AACvBC,IAAAA,OAAO,GAAG,SAAS;IACnBC,IAAI;AACJC,IAAAA,QAAQ,GAAG,KAAK;AAChBC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,SAAS;IACTC,QAAQ;IACRC,MAAM;IACNC,GAAG;IACHC,IAAI;IACJC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACU,GAAC,GAAAZ,IAAA,CAAA;AAAA,EAAA,oBACda,eAAA,CAAA,GAAA,EAAA;AACER,IAAAA,SAAS,EAAES,EAAE,CAACC,eAAM,CAACC,IAAI,EAAED,eAAM,CAACd,OAAO,CAAC,EAAEI,SAAS,CAAE;IACvDE,MAAM,EAAEA,MAAM,KAAKJ,QAAQ,GAAG,QAAQ,GAAGc,SAAS,CAAE;IACpDT,GAAG,EAAEA,GAAG,KAAKL,QAAQ,GAAG,qBAAqB,GAAGc,SAAS,CAAE;AAC3DR,IAAAA,IAAI,EAAEL,QAAQ,GAAGa,SAAS,GAAGR,IAAK;IAClC,eAAeL,EAAAA,QAAQ,IAAIa,SAAU;AACrCC,IAAAA,QAAQ,EAAEd,QAAQ,GAAG,CAAC,CAAC,GAAGa,SAAU;AACpCP,IAAAA,OAAO,EAAEN,QAAQ,GAAGa,SAAS,GAAGP,OAAQ;IACxC,aAAaC,EAAAA,UAAU,EAAEQ,IAAK;AAAA,IAAA,GAC1BP,IAAI;AAAAN,IAAAA,QAAA,GAEPA,QAAQ,EACRJ,IAAI,IAAI,IAAI,gBACXkB,cAAA,CAAA,MAAA,EAAA;MACEf,SAAS,EAAEU,eAAM,CAACb,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaS,EAAAA,UAAU,EAAET,IAAK;AAAAI,MAAAA,QAAA,EAE7BJ,IAAAA;KACG,CAAC,GACL,IAAI,CAAA;AAAA,GACP,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const styles = {"link":"TextLink-module_link__V7KRm","icon":"TextLink-module_icon__EVqpk"};
|
|
3
|
+
const styles = {"link":"TextLink-module_link__V7KRm","secondary":"TextLink-module_secondary__jiV-I","icon":"TextLink-module_icon__EVqpk"};
|
|
4
4
|
|
|
5
5
|
module.exports = styles;
|
|
6
6
|
//# sourceMappingURL=TextLink.module.css.cjs.map
|
|
@@ -11,15 +11,21 @@ const TokenAmount = _ref => {
|
|
|
11
11
|
let {
|
|
12
12
|
symbol,
|
|
13
13
|
amount,
|
|
14
|
-
className
|
|
14
|
+
className,
|
|
15
|
+
dataTestId,
|
|
16
|
+
...rest
|
|
15
17
|
} = _ref;
|
|
16
18
|
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
17
19
|
className: cn(TokenAmount_module.root, className),
|
|
20
|
+
"data-testid": dataTestId?.root,
|
|
21
|
+
...rest,
|
|
18
22
|
children: [/*#__PURE__*/jsxRuntime.jsx(TokenIcon.TokenIcon, {
|
|
19
23
|
token: symbol,
|
|
20
|
-
className: TokenAmount_module.icon
|
|
24
|
+
className: TokenAmount_module.icon,
|
|
25
|
+
"data-testid": dataTestId?.icon
|
|
21
26
|
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
22
27
|
className: TokenAmount_module.amount,
|
|
28
|
+
"data-testid": dataTestId?.amount,
|
|
23
29
|
children: amount
|
|
24
30
|
})]
|
|
25
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenAmount.cjs","sources":["../../../src/token-amount/TokenAmount.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport { TokenIcon, type TokenIconSymbol } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './TokenAmount.module.css'\n\nexport type TokenAmountProps = {\n symbol: TokenIconSymbol\n amount: ReactNode\n
|
|
1
|
+
{"version":3,"file":"TokenAmount.cjs","sources":["../../../src/token-amount/TokenAmount.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport { TokenIcon, type TokenIconSymbol } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './TokenAmount.module.css'\n\nexport type TokenAmountDataTestId = {\n root?: string\n icon?: string\n amount?: string\n}\n\nexport type TokenAmountProps = Omit<\n ComponentPropsWithoutRef<'span'>,\n 'children'\n> & {\n symbol: TokenIconSymbol\n amount: ReactNode\n dataTestId?: TokenAmountDataTestId\n}\n\nexport const TokenAmount = ({\n symbol,\n amount,\n className,\n dataTestId,\n ...rest\n}: TokenAmountProps) => (\n <span\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <TokenIcon\n token={symbol}\n className={styles.icon}\n data-testid={dataTestId?.icon}\n />\n <span className={styles.amount} data-testid={dataTestId?.amount}>\n {amount}\n </span>\n </span>\n)\n"],"names":["TokenAmount","_ref","symbol","amount","className","dataTestId","rest","_jsxs","cn","styles","root","children","_jsx","TokenIcon","token","icon"],"mappings":";;;;;;;;;AAsBO,MAAMA,WAAW,GAAGC,IAAA,IAAA;EAAA,IAAC;IAC1BC,MAAM;IACNC,MAAM;IACNC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACa,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACjBM,eAAA,CAAA,MAAA,EAAA;IACEH,SAAS,EAAEI,EAAE,CAACC,kBAAM,CAACC,IAAI,EAAEN,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEK,IAAK;AAAA,IAAA,GAC1BJ,IAAI;IAAAK,QAAA,EAAA,cAERC,cAAA,CAACC,mBAAS,EAAA;AACRC,MAAAA,KAAK,EAAEZ,MAAO;MACdE,SAAS,EAAEK,kBAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAaV,UAAU,EAAEU,IAAAA;KAC1B,CAAC,eACFH,cAAA,CAAA,MAAA,EAAA;MAAMR,SAAS,EAAEK,kBAAM,CAACN,MAAO;MAAC,aAAaE,EAAAA,UAAU,EAAEF,MAAO;AAAAQ,MAAAA,QAAA,EAC7DR,MAAAA;AAAM,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -19,7 +19,9 @@ const TokenSelector = _ref => {
|
|
|
19
19
|
single = false,
|
|
20
20
|
size = 'default',
|
|
21
21
|
placeholder = 'Select',
|
|
22
|
-
className
|
|
22
|
+
className,
|
|
23
|
+
dataTestId,
|
|
24
|
+
...rest
|
|
23
25
|
} = _ref;
|
|
24
26
|
const [open, setOpen] = react.useState(false);
|
|
25
27
|
const rootRef = react.useRef(null);
|
|
@@ -40,14 +42,19 @@ const TokenSelector = _ref => {
|
|
|
40
42
|
if (single) {
|
|
41
43
|
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
42
44
|
className: cn(TokenSelector_module.single, TokenSelector_module[size], className),
|
|
45
|
+
"data-testid": dataTestId?.root,
|
|
46
|
+
...rest,
|
|
43
47
|
children: [selectedOption?.icon ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
44
48
|
className: TokenSelector_module.icon,
|
|
49
|
+
"data-testid": selectedOption.dataTestId?.icon,
|
|
45
50
|
children: selectedOption.icon
|
|
46
51
|
}) : null, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
47
52
|
className: TokenSelector_module.label,
|
|
53
|
+
"data-testid": selectedOption?.dataTestId?.label,
|
|
48
54
|
children: selectedOption?.label
|
|
49
55
|
}), size === 'default' && selectedOption?.secondaryLabel != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
50
56
|
className: TokenSelector_module.secondaryLabel,
|
|
57
|
+
"data-testid": selectedOption.dataTestId?.secondaryLabel,
|
|
51
58
|
children: selectedOption.secondaryLabel
|
|
52
59
|
}) : null]
|
|
53
60
|
});
|
|
@@ -62,6 +69,8 @@ const TokenSelector = _ref => {
|
|
|
62
69
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
63
70
|
ref: rootRef,
|
|
64
71
|
className: cn(TokenSelector_module.root, className),
|
|
72
|
+
"data-testid": dataTestId?.root,
|
|
73
|
+
...rest,
|
|
65
74
|
children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
66
75
|
ref: triggerRef,
|
|
67
76
|
type: "button",
|
|
@@ -69,17 +78,21 @@ const TokenSelector = _ref => {
|
|
|
69
78
|
"aria-expanded": open,
|
|
70
79
|
className: cn(TokenSelector_module.trigger, TokenSelector_module[size], open && TokenSelector_module.open),
|
|
71
80
|
onClick: handleTriggerClick,
|
|
81
|
+
"data-testid": dataTestId?.trigger,
|
|
72
82
|
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
73
83
|
className: TokenSelector_module.content,
|
|
74
84
|
children: selectedOption ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
75
85
|
children: [selectedOption.icon ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
76
86
|
className: TokenSelector_module.icon,
|
|
87
|
+
"data-testid": selectedOption.dataTestId?.icon,
|
|
77
88
|
children: selectedOption.icon
|
|
78
89
|
}) : null, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
79
90
|
className: TokenSelector_module.label,
|
|
91
|
+
"data-testid": selectedOption.dataTestId?.label,
|
|
80
92
|
children: selectedOption.label
|
|
81
93
|
}), size === 'default' && selectedOption.secondaryLabel != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
82
94
|
className: TokenSelector_module.secondaryLabel,
|
|
95
|
+
"data-testid": selectedOption.dataTestId?.secondaryLabel,
|
|
83
96
|
children: selectedOption.secondaryLabel
|
|
84
97
|
}) : null]
|
|
85
98
|
}) : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
@@ -94,6 +107,7 @@ const TokenSelector = _ref => {
|
|
|
94
107
|
}), open ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
95
108
|
role: "listbox",
|
|
96
109
|
className: TokenSelector_module.panel,
|
|
110
|
+
"data-testid": dataTestId?.panel,
|
|
97
111
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
98
112
|
className: TokenSelector_module.list,
|
|
99
113
|
children: options.map(option => {
|
|
@@ -105,8 +119,10 @@ const TokenSelector = _ref => {
|
|
|
105
119
|
disabled: option.disabled,
|
|
106
120
|
className: cn(TokenSelector_module.option, TokenSelector_module[size], selected && TokenSelector_module.selected),
|
|
107
121
|
onClick: () => handleOptionClick(option),
|
|
122
|
+
"data-testid": option.dataTestId?.root,
|
|
108
123
|
children: [option.icon ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
109
124
|
className: TokenSelector_module.icon,
|
|
125
|
+
"data-testid": option.dataTestId?.icon,
|
|
110
126
|
children: option.icon
|
|
111
127
|
}) : null, /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
112
128
|
className: TokenSelector_module.optionContent,
|
|
@@ -114,13 +130,16 @@ const TokenSelector = _ref => {
|
|
|
114
130
|
className: TokenSelector_module.optionRow,
|
|
115
131
|
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
116
132
|
className: TokenSelector_module.label,
|
|
133
|
+
"data-testid": option.dataTestId?.label,
|
|
117
134
|
children: option.label
|
|
118
135
|
}), size === 'default' && option.secondaryLabel != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
119
136
|
className: TokenSelector_module.secondaryLabel,
|
|
137
|
+
"data-testid": option.dataTestId?.secondaryLabel,
|
|
120
138
|
children: option.secondaryLabel
|
|
121
139
|
}) : null]
|
|
122
140
|
}), size === 'default' && option.description != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
123
141
|
className: TokenSelector_module.description,
|
|
142
|
+
"data-testid": option.dataTestId?.description,
|
|
124
143
|
children: option.description
|
|
125
144
|
}) : null]
|
|
126
145
|
}), size === 'default' && selected ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenSelector.cjs","sources":["../../../src/token-selector/TokenSelector.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type ReactNode } from 'react'\nimport { useOutsideClick } from '../hooks/useOutsideClick'\nimport { IconCheck, IconChevronDown, IconChevronUp } from '../icons'\nimport cn from 'classnames'\nimport styles from './TokenSelector.module.css'\n\nexport type TokenSelectorOption = {\n value: string\n label: ReactNode\n /** Shown next to `label`, in a muted weight — default size only. */\n secondaryLabel?: ReactNode\n /** Caption line below the label row — default size only. */\n description?: ReactNode\n icon?: ReactNode\n disabled?: boolean\n}\n\nexport type TokenSelectorSize = 'default' | 'small'\n\nexport type TokenSelectorProps = {\n options: TokenSelectorOption[]\n value?: string\n onChange?: (value: string) => void\n single?: boolean\n size?: TokenSelectorSize\n placeholder?: ReactNode\n className?: string\n}\n\nexport const TokenSelector = ({\n options,\n value,\n onChange,\n single = false,\n size = 'default',\n placeholder = 'Select',\n className,\n}: TokenSelectorProps) => {\n const [open, setOpen] = useState(false)\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const handleClose = useCallback(() => setOpen(false), [])\n useOutsideClick(rootRef, handleClose, open)\n\n useEffect(() => {\n if (!open) return\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n setOpen(false)\n triggerRef.current?.focus()\n }\n\n document.addEventListener('keydown', handleDocumentKeyDown)\n return () => document.removeEventListener('keydown', handleDocumentKeyDown)\n }, [open])\n\n const selectedOption = options.find((option) => option.value === value)\n\n if (single) {\n return (\n <span className={cn(styles.single, styles[size], className)}>\n {selectedOption?.icon ? (\n <span className={styles.icon}>{selectedOption.icon}</span>\n ) : null}\n <span className={styles.label}>{selectedOption?.label}</span>\n {size === 'default' && selectedOption?.secondaryLabel != null ? (\n <span className={styles.secondaryLabel}>\n {selectedOption.secondaryLabel}\n </span>\n ) : null}\n </span>\n )\n }\n\n const handleTriggerClick = () => setOpen((prev) => !prev)\n\n const handleOptionClick = (option: TokenSelectorOption) => {\n if (option.disabled) return\n onChange?.(option.value)\n setOpen(false)\n triggerRef.current?.focus()\n }\n\n return (\n <div ref={rootRef} className={cn(styles.root, className)}>\n <button\n ref={triggerRef}\n type='button'\n aria-haspopup='listbox'\n aria-expanded={open}\n className={cn(styles.trigger, styles[size], open && styles.open)}\n onClick={handleTriggerClick}\n >\n <span className={styles.content}>\n {selectedOption ? (\n <>\n {selectedOption.icon ? (\n <span className={styles.icon}>{selectedOption.icon}</span>\n ) : null}\n <span className={styles.label}>{selectedOption.label}</span>\n {size === 'default' && selectedOption.secondaryLabel != null ? (\n <span className={styles.secondaryLabel}>\n {selectedOption.secondaryLabel}\n </span>\n ) : null}\n </>\n ) : (\n <span className={styles.placeholder}>{placeholder}</span>\n )}\n </span>\n <span className={styles.chevron} aria-hidden='true'>\n {open ? <IconChevronUp /> : <IconChevronDown />}\n </span>\n </button>\n {open ? (\n <div role='listbox' className={styles.panel}>\n <div className={styles.list}>\n {options.map((option) => {\n const selected = option.value === value\n return (\n <button\n key={option.value}\n type='button'\n role='option'\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n styles.option,\n styles[size],\n selected && styles.selected,\n )}\n onClick={() => handleOptionClick(option)}\n >\n {option.icon ? (\n <span className={styles.icon}>{option.icon}</span>\n ) : null}\n <span className={styles.optionContent}>\n <span className={styles.optionRow}>\n <span className={styles.label}>{option.label}</span>\n {size === 'default' && option.secondaryLabel != null ? (\n <span className={styles.secondaryLabel}>\n {option.secondaryLabel}\n </span>\n ) : null}\n </span>\n {size === 'default' && option.description != null ? (\n <span className={styles.description}>\n {option.description}\n </span>\n ) : null}\n </span>\n {size === 'default' && selected ? (\n <span className={styles.indicator} aria-hidden='true'>\n <IconCheck className={styles.checkmark} />\n </span>\n ) : null}\n </button>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["TokenSelector","_ref","options","value","onChange","single","size","placeholder","className","open","setOpen","useState","rootRef","useRef","triggerRef","handleClose","useCallback","useOutsideClick","useEffect","handleDocumentKeyDown","event","key","current","focus","document","addEventListener","removeEventListener","selectedOption","find","option","_jsxs","cn","styles","children","icon","_jsx","label","secondaryLabel","handleTriggerClick","prev","handleOptionClick","disabled","ref","root","type","trigger","onClick","content","_Fragment","chevron","IconChevronUp","IconChevronDown","role","panel","list","map","selected","optionContent","optionRow","description","indicator","IconCheck","checkmark"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenSelector.cjs","sources":["../../../src/token-selector/TokenSelector.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\nimport { useOutsideClick } from '../hooks/useOutsideClick'\nimport { IconCheck, IconChevronDown, IconChevronUp } from '../icons'\nimport cn from 'classnames'\nimport styles from './TokenSelector.module.css'\n\nexport type TokenSelectorOptionDataTestId = {\n root?: string\n icon?: string\n label?: string\n secondaryLabel?: string\n description?: string\n}\n\nexport type TokenSelectorOption = {\n value: string\n label: ReactNode\n /** Shown next to `label`, in a muted weight — default size only. */\n secondaryLabel?: ReactNode\n /** Caption line below the label row — default size only. */\n description?: ReactNode\n icon?: ReactNode\n disabled?: boolean\n dataTestId?: TokenSelectorOptionDataTestId\n}\n\nexport type TokenSelectorSize = 'default' | 'small'\n\nexport type TokenSelectorDataTestId = {\n root?: string\n trigger?: string\n panel?: string\n}\n\nexport type TokenSelectorProps = Omit<\n ComponentPropsWithoutRef<'div'>,\n 'onChange'\n> & {\n options: TokenSelectorOption[]\n value?: string\n onChange?: (value: string) => void\n single?: boolean\n size?: TokenSelectorSize\n placeholder?: ReactNode\n dataTestId?: TokenSelectorDataTestId\n}\n\nexport const TokenSelector = ({\n options,\n value,\n onChange,\n single = false,\n size = 'default',\n placeholder = 'Select',\n className,\n dataTestId,\n ...rest\n}: TokenSelectorProps) => {\n const [open, setOpen] = useState(false)\n const rootRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const handleClose = useCallback(() => setOpen(false), [])\n useOutsideClick(rootRef, handleClose, open)\n\n useEffect(() => {\n if (!open) return\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n setOpen(false)\n triggerRef.current?.focus()\n }\n\n document.addEventListener('keydown', handleDocumentKeyDown)\n return () => document.removeEventListener('keydown', handleDocumentKeyDown)\n }, [open])\n\n const selectedOption = options.find((option) => option.value === value)\n\n if (single) {\n return (\n <span\n className={cn(styles.single, styles[size], className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {selectedOption?.icon ? (\n <span\n className={styles.icon}\n data-testid={selectedOption.dataTestId?.icon}\n >\n {selectedOption.icon}\n </span>\n ) : null}\n <span\n className={styles.label}\n data-testid={selectedOption?.dataTestId?.label}\n >\n {selectedOption?.label}\n </span>\n {size === 'default' && selectedOption?.secondaryLabel != null ? (\n <span\n className={styles.secondaryLabel}\n data-testid={selectedOption.dataTestId?.secondaryLabel}\n >\n {selectedOption.secondaryLabel}\n </span>\n ) : null}\n </span>\n )\n }\n\n const handleTriggerClick = () => setOpen((prev) => !prev)\n\n const handleOptionClick = (option: TokenSelectorOption) => {\n if (option.disabled) return\n onChange?.(option.value)\n setOpen(false)\n triggerRef.current?.focus()\n }\n\n return (\n <div\n ref={rootRef}\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <button\n ref={triggerRef}\n type='button'\n aria-haspopup='listbox'\n aria-expanded={open}\n className={cn(styles.trigger, styles[size], open && styles.open)}\n onClick={handleTriggerClick}\n data-testid={dataTestId?.trigger}\n >\n <span className={styles.content}>\n {selectedOption ? (\n <>\n {selectedOption.icon ? (\n <span\n className={styles.icon}\n data-testid={selectedOption.dataTestId?.icon}\n >\n {selectedOption.icon}\n </span>\n ) : null}\n <span\n className={styles.label}\n data-testid={selectedOption.dataTestId?.label}\n >\n {selectedOption.label}\n </span>\n {size === 'default' && selectedOption.secondaryLabel != null ? (\n <span\n className={styles.secondaryLabel}\n data-testid={selectedOption.dataTestId?.secondaryLabel}\n >\n {selectedOption.secondaryLabel}\n </span>\n ) : null}\n </>\n ) : (\n <span className={styles.placeholder}>{placeholder}</span>\n )}\n </span>\n <span className={styles.chevron} aria-hidden='true'>\n {open ? <IconChevronUp /> : <IconChevronDown />}\n </span>\n </button>\n {open ? (\n <div\n role='listbox'\n className={styles.panel}\n data-testid={dataTestId?.panel}\n >\n <div className={styles.list}>\n {options.map((option) => {\n const selected = option.value === value\n return (\n <button\n key={option.value}\n type='button'\n role='option'\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n styles.option,\n styles[size],\n selected && styles.selected,\n )}\n onClick={() => handleOptionClick(option)}\n data-testid={option.dataTestId?.root}\n >\n {option.icon ? (\n <span\n className={styles.icon}\n data-testid={option.dataTestId?.icon}\n >\n {option.icon}\n </span>\n ) : null}\n <span className={styles.optionContent}>\n <span className={styles.optionRow}>\n <span\n className={styles.label}\n data-testid={option.dataTestId?.label}\n >\n {option.label}\n </span>\n {size === 'default' && option.secondaryLabel != null ? (\n <span\n className={styles.secondaryLabel}\n data-testid={option.dataTestId?.secondaryLabel}\n >\n {option.secondaryLabel}\n </span>\n ) : null}\n </span>\n {size === 'default' && option.description != null ? (\n <span\n className={styles.description}\n data-testid={option.dataTestId?.description}\n >\n {option.description}\n </span>\n ) : null}\n </span>\n {size === 'default' && selected ? (\n <span className={styles.indicator} aria-hidden='true'>\n <IconCheck className={styles.checkmark} />\n </span>\n ) : null}\n </button>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["TokenSelector","_ref","options","value","onChange","single","size","placeholder","className","dataTestId","rest","open","setOpen","useState","rootRef","useRef","triggerRef","handleClose","useCallback","useOutsideClick","useEffect","handleDocumentKeyDown","event","key","current","focus","document","addEventListener","removeEventListener","selectedOption","find","option","_jsxs","cn","styles","root","children","icon","_jsx","label","secondaryLabel","handleTriggerClick","prev","handleOptionClick","disabled","ref","type","trigger","onClick","content","_Fragment","chevron","IconChevronUp","IconChevronDown","role","panel","list","map","selected","optionContent","optionRow","description","indicator","IconCheck","checkmark"],"mappings":"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"}
|
|
@@ -83,6 +83,7 @@ const Tooltip = _ref => {
|
|
|
83
83
|
children,
|
|
84
84
|
onMouseEnter,
|
|
85
85
|
onFocus,
|
|
86
|
+
dataTestId,
|
|
86
87
|
...rest
|
|
87
88
|
} = _ref;
|
|
88
89
|
const rootRef = react.useRef(null);
|
|
@@ -123,6 +124,7 @@ const Tooltip = _ref => {
|
|
|
123
124
|
className: cn(Tooltip_module.wrapper, className),
|
|
124
125
|
onMouseEnter: handleMouseEnter,
|
|
125
126
|
onFocus: handleFocus,
|
|
127
|
+
"data-testid": dataTestId?.root,
|
|
126
128
|
...rest,
|
|
127
129
|
children: [children, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
128
130
|
ref: contentRef,
|
|
@@ -133,6 +135,7 @@ const Tooltip = _ref => {
|
|
|
133
135
|
'--local-tooltip-shift-y': `${adjustment?.shiftY ?? 0}px`
|
|
134
136
|
},
|
|
135
137
|
role: "tooltip",
|
|
138
|
+
"data-testid": dataTestId?.content,
|
|
136
139
|
children: content
|
|
137
140
|
})]
|
|
138
141
|
});
|