@veeqo/ui 14.7.1 → 14.9.0-beta-1
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/components/Accordion/Accordion.cjs +19 -16
- package/dist/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.js +19 -16
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/Accordion.module.scss.cjs +9 -0
- package/dist/components/Accordion/Accordion.module.scss.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.module.scss.js +7 -0
- package/dist/components/Accordion/Accordion.module.scss.js.map +1 -0
- package/dist/components/Action/Action.d.ts +4 -4
- package/dist/components/Card/Card.cjs +36 -9
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +10 -5
- package/dist/components/Card/Card.js +29 -2
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/Card.module.scss.cjs +9 -0
- package/dist/components/Card/Card.module.scss.cjs.map +1 -0
- package/dist/components/Card/Card.module.scss.js +7 -0
- package/dist/components/Card/Card.module.scss.js.map +1 -0
- package/dist/components/CardHeader/CardHeader.cjs +3 -3
- package/dist/components/CardHeader/CardHeader.cjs.map +1 -1
- package/dist/components/CardHeader/CardHeader.js +3 -3
- package/dist/components/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/CardHeader/CardHeader.module.scss.cjs +9 -0
- package/dist/components/CardHeader/CardHeader.module.scss.cjs.map +1 -0
- package/dist/components/CardHeader/CardHeader.module.scss.js +7 -0
- package/dist/components/CardHeader/CardHeader.module.scss.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.cjs +2 -2
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +2 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -0
- package/dist/components/Checkbox/Checkbox.module.scss.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.scss.js +7 -0
- package/dist/components/Checkbox/Checkbox.module.scss.js.map +1 -0
- package/dist/components/Choice/Choice.cjs +21 -11
- package/dist/components/Choice/Choice.cjs.map +1 -1
- package/dist/components/Choice/Choice.js +21 -11
- package/dist/components/Choice/Choice.js.map +1 -1
- package/dist/components/Choice/Choice.module.scss.cjs +9 -0
- package/dist/components/Choice/Choice.module.scss.cjs.map +1 -0
- package/dist/components/Choice/Choice.module.scss.js +7 -0
- package/dist/components/Choice/Choice.module.scss.js.map +1 -0
- package/dist/components/ChoiceList/ChoiceList.cjs +3 -3
- package/dist/components/ChoiceList/ChoiceList.cjs.map +1 -1
- package/dist/components/ChoiceList/ChoiceList.js +3 -3
- package/dist/components/ChoiceList/ChoiceList.js.map +1 -1
- package/dist/components/ChoiceList/ChoiceList.module.scss.cjs +9 -0
- package/dist/components/ChoiceList/ChoiceList.module.scss.cjs.map +1 -0
- package/dist/components/ChoiceList/ChoiceList.module.scss.js +7 -0
- package/dist/components/ChoiceList/ChoiceList.module.scss.js.map +1 -0
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +4 -2
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +4 -2
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs +4 -2
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js +4 -2
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js.map +1 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +4 -2
- package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.js +4 -2
- package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +4 -2
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +4 -2
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
- package/dist/components/DimensionsInput/DimensionsInput.cjs +0 -1
- package/dist/components/DimensionsInput/DimensionsInput.cjs.map +1 -1
- package/dist/components/DimensionsInput/DimensionsInput.d.ts +10 -10
- package/dist/components/DimensionsInput/DimensionsInput.js +0 -1
- package/dist/components/DimensionsInput/DimensionsInput.js.map +1 -1
- package/dist/components/Dropdown/styled.cjs +12 -1
- package/dist/components/Dropdown/styled.cjs.map +1 -1
- package/dist/components/Dropdown/styled.js +12 -1
- package/dist/components/Dropdown/styled.js.map +1 -1
- package/dist/components/FilterTag/styled.d.ts +1 -1
- package/dist/components/Flex/FlexCol/FlexCol.d.ts +1 -1
- package/dist/components/Flex/FlexRow/FlexRow.d.ts +1 -1
- package/dist/components/InputAffix/InputAffix.cjs +6 -10
- package/dist/components/InputAffix/InputAffix.cjs.map +1 -1
- package/dist/components/InputAffix/InputAffix.d.ts +4 -6
- package/dist/components/InputAffix/InputAffix.js +6 -9
- package/dist/components/InputAffix/InputAffix.js.map +1 -1
- package/dist/components/InputAffix/InputAffix.module.scss.cjs +9 -0
- package/dist/components/InputAffix/InputAffix.module.scss.cjs.map +1 -0
- package/dist/components/InputAffix/InputAffix.module.scss.js +7 -0
- package/dist/components/InputAffix/InputAffix.module.scss.js.map +1 -0
- package/dist/components/LegacyDataTable/SpecificState/styled.d.ts +2 -2
- package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs +1 -1
- package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs.map +1 -1
- package/dist/components/Modal/components/Dialog/styles/baseStyles.js +1 -1
- package/dist/components/Modal/components/Dialog/styles/baseStyles.js.map +1 -1
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs +2 -2
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs.map +1 -1
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js +2 -2
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js.map +1 -1
- package/dist/components/Pagination/styled.d.ts +11 -11
- package/dist/components/PhoneInput/index.d.ts +10 -10
- package/dist/components/PriceInput/PriceInput.cjs +1 -1
- package/dist/components/PriceInput/PriceInput.cjs.map +1 -1
- package/dist/components/PriceInput/PriceInput.js +1 -1
- package/dist/components/PriceInput/PriceInput.js.map +1 -1
- package/dist/components/Radio/Radio.cjs +2 -2
- package/dist/components/Radio/Radio.cjs.map +1 -1
- package/dist/components/Radio/Radio.js +2 -2
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Radio/Radio.module.scss.cjs +9 -0
- package/dist/components/Radio/Radio.module.scss.cjs.map +1 -0
- package/dist/components/Radio/Radio.module.scss.js +7 -0
- package/dist/components/Radio/Radio.module.scss.js.map +1 -0
- package/dist/components/Search/Search.d.ts +10 -10
- package/dist/components/Search/styled.d.ts +10 -10
- package/dist/components/SimpleTable/SimpleTable.cjs +20 -7
- package/dist/components/SimpleTable/SimpleTable.cjs.map +1 -1
- package/dist/components/SimpleTable/SimpleTable.d.ts +9 -7
- package/dist/components/SimpleTable/SimpleTable.js +15 -2
- package/dist/components/SimpleTable/SimpleTable.js.map +1 -1
- package/dist/components/SimpleTable/SimpleTable.module.scss.cjs +9 -0
- package/dist/components/SimpleTable/SimpleTable.module.scss.cjs.map +1 -0
- package/dist/components/SimpleTable/SimpleTable.module.scss.js +7 -0
- package/dist/components/SimpleTable/SimpleTable.module.scss.js.map +1 -0
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/TextField/TextField.d.ts +10 -10
- package/dist/components/TextField/index.d.ts +10 -10
- package/dist/components/ToastsLayout/ToastsLayout.cjs +6 -5
- package/dist/components/ToastsLayout/ToastsLayout.cjs.map +1 -1
- package/dist/components/ToastsLayout/ToastsLayout.js +7 -6
- package/dist/components/ToastsLayout/ToastsLayout.js.map +1 -1
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs +9 -0
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs.map +1 -0
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.js +7 -0
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.js.map +1 -0
- package/dist/components/ToastsLayout/components/Toast.cjs +18 -7
- package/dist/components/ToastsLayout/components/Toast.cjs.map +1 -1
- package/dist/components/ToastsLayout/components/Toast.d.ts +7 -2
- package/dist/components/ToastsLayout/components/Toast.js +18 -7
- package/dist/components/ToastsLayout/components/Toast.js.map +1 -1
- package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs +18 -0
- package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs.map +1 -0
- package/dist/components/ToastsLayout/components/ToastTransitionItem.d.ts +12 -0
- package/dist/components/ToastsLayout/components/ToastTransitionItem.js +12 -0
- package/dist/components/ToastsLayout/components/ToastTransitionItem.js.map +1 -0
- package/dist/components/ToggleButton/ToggleButton.cjs +2 -2
- package/dist/components/ToggleButton/ToggleButton.cjs.map +1 -1
- package/dist/components/ToggleButton/ToggleButton.d.ts +2 -8
- package/dist/components/ToggleButton/ToggleButton.js +2 -2
- package/dist/components/ToggleButton/ToggleButton.js.map +1 -1
- package/dist/components/ToggleButton/types.d.ts +8 -0
- package/dist/components/UploadFile/UploadFile.cjs +7 -2
- package/dist/components/UploadFile/UploadFile.cjs.map +1 -1
- package/dist/components/UploadFile/UploadFile.js +7 -2
- package/dist/components/UploadFile/UploadFile.js.map +1 -1
- package/dist/components/UploadFile/UploadFile.module.scss.cjs +9 -0
- package/dist/components/UploadFile/UploadFile.module.scss.cjs.map +1 -0
- package/dist/components/UploadFile/UploadFile.module.scss.js +7 -0
- package/dist/components/UploadFile/UploadFile.module.scss.js.map +1 -0
- package/dist/components/View/View.cjs +37 -9
- package/dist/components/View/View.cjs.map +1 -1
- package/dist/components/View/View.js +35 -7
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/View.module.scss.cjs +9 -0
- package/dist/components/View/View.module.scss.cjs.map +1 -0
- package/dist/components/View/View.module.scss.js +7 -0
- package/dist/components/View/View.module.scss.js.map +1 -0
- package/dist/components/ViewTab/ViewTab.d.ts +1 -1
- package/dist/components/WeightInput/WeightInput.cjs +0 -1
- package/dist/components/WeightInput/WeightInput.cjs.map +1 -1
- package/dist/components/WeightInput/WeightInput.js +0 -1
- package/dist/components/WeightInput/WeightInput.js.map +1 -1
- package/dist/utils/forms/inputStyles.cjs +1 -2
- package/dist/utils/forms/inputStyles.cjs.map +1 -1
- package/dist/utils/forms/inputStyles.js +2 -2
- package/dist/utils/forms/inputStyles.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Accordion/styled.cjs +0 -49
- package/dist/components/Accordion/styled.cjs.map +0 -1
- package/dist/components/Accordion/styled.d.ts +0 -26
- package/dist/components/Accordion/styled.js +0 -34
- package/dist/components/Accordion/styled.js.map +0 -1
- package/dist/components/Card/styled.cjs +0 -50
- package/dist/components/Card/styled.cjs.map +0 -1
- package/dist/components/Card/styled.d.ts +0 -16
- package/dist/components/Card/styled.js +0 -40
- package/dist/components/Card/styled.js.map +0 -1
- package/dist/components/CardHeader/styled.cjs +0 -15
- package/dist/components/CardHeader/styled.cjs.map +0 -1
- package/dist/components/CardHeader/styled.d.ts +0 -2
- package/dist/components/CardHeader/styled.js +0 -8
- package/dist/components/CardHeader/styled.js.map +0 -1
- package/dist/components/Checkbox/styled.cjs +0 -14
- package/dist/components/Checkbox/styled.cjs.map +0 -1
- package/dist/components/Checkbox/styled.d.ts +0 -1
- package/dist/components/Checkbox/styled.js +0 -8
- package/dist/components/Checkbox/styled.js.map +0 -1
- package/dist/components/Choice/components/styled.cjs +0 -30
- package/dist/components/Choice/components/styled.cjs.map +0 -1
- package/dist/components/Choice/components/styled.d.ts +0 -14
- package/dist/components/Choice/components/styled.js +0 -18
- package/dist/components/Choice/components/styled.js.map +0 -1
- package/dist/components/ChoiceList/styled.cjs +0 -15
- package/dist/components/ChoiceList/styled.cjs.map +0 -1
- package/dist/components/ChoiceList/styled.d.ts +0 -2
- package/dist/components/ChoiceList/styled.js +0 -8
- package/dist/components/ChoiceList/styled.js.map +0 -1
- package/dist/components/Dropdown/styled.d.ts +0 -11
- package/dist/components/Radio/styled.cjs +0 -12
- package/dist/components/Radio/styled.cjs.map +0 -1
- package/dist/components/Radio/styled.d.ts +0 -1
- package/dist/components/Radio/styled.js +0 -6
- package/dist/components/Radio/styled.js.map +0 -1
- package/dist/components/SimpleTable/styled.cjs +0 -34
- package/dist/components/SimpleTable/styled.cjs.map +0 -1
- package/dist/components/SimpleTable/styled.d.ts +0 -15
- package/dist/components/SimpleTable/styled.js +0 -23
- package/dist/components/SimpleTable/styled.js.map +0 -1
- package/dist/components/ToastsLayout/components/styled.cjs +0 -58
- package/dist/components/ToastsLayout/components/styled.cjs.map +0 -1
- package/dist/components/ToastsLayout/components/styled.d.ts +0 -36
- package/dist/components/ToastsLayout/components/styled.js +0 -48
- package/dist/components/ToastsLayout/components/styled.js.map +0 -1
- package/dist/components/ToggleButton/styled.cjs +0 -49
- package/dist/components/ToggleButton/styled.cjs.map +0 -1
- package/dist/components/ToggleButton/styled.d.ts +0 -1
- package/dist/components/ToggleButton/styled.js +0 -43
- package/dist/components/ToggleButton/styled.js.map +0 -1
- package/dist/components/UploadFile/styled.cjs +0 -54
- package/dist/components/UploadFile/styled.cjs.map +0 -1
- package/dist/components/UploadFile/styled.d.ts +0 -4
- package/dist/components/UploadFile/styled.js +0 -48
- package/dist/components/UploadFile/styled.js.map +0 -1
- package/dist/components/View/styled.cjs +0 -53
- package/dist/components/View/styled.cjs.map +0 -1
- package/dist/components/View/styled.d.ts +0 -37
- package/dist/components/View/styled.js +0 -41
- package/dist/components/View/styled.js.map +0 -1
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
import React__default, { useState } from 'react';
|
|
2
|
+
import { motion } from 'framer-motion';
|
|
2
3
|
import { CardHeader } from '../CardHeader/CardHeader.js';
|
|
3
|
-
import {
|
|
4
|
+
import { buildClassnames } from '../../utils/buildClassnames.js';
|
|
5
|
+
import 'uid/secure';
|
|
6
|
+
import styles from './Card.module.scss.js';
|
|
4
7
|
|
|
5
8
|
const collapseAnimationVariants = {
|
|
6
9
|
expanded: { height: 'auto' },
|
|
7
10
|
collapsed: { height: 0 },
|
|
8
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Stable class used for styled-components selector interpolation.
|
|
14
|
+
* Consumers (e.g. Modal) use `& > ${Card.Surface}` in template literals,
|
|
15
|
+
* which calls `.toString()` and expects a CSS class selector.
|
|
16
|
+
*/
|
|
17
|
+
const SURFACE_STABLE_CLASS = 'veeqo-card-surface';
|
|
18
|
+
const Surface = React__default.forwardRef(({ elevation = 1, accent, className, children, ...rest }, ref) => (React__default.createElement("div", { ref: ref, className: buildClassnames([
|
|
19
|
+
SURFACE_STABLE_CLASS,
|
|
20
|
+
styles.surface,
|
|
21
|
+
styles[`elevation-${elevation}`],
|
|
22
|
+
accent ? styles[`accent-${accent}`] : undefined,
|
|
23
|
+
className,
|
|
24
|
+
]), ...rest }, children)));
|
|
25
|
+
Surface.displayName = 'Card.Surface';
|
|
26
|
+
Surface.toString = () => `.${SURFACE_STABLE_CLASS}`;
|
|
27
|
+
const Section = React__default.forwardRef(({ className, ...rest }, ref) => (React__default.createElement("section", { ref: ref, className: buildClassnames([styles.section, className]), ...rest })));
|
|
28
|
+
Section.displayName = 'Card.Section';
|
|
29
|
+
const FullBleed = React__default.forwardRef(({ className, ...rest }, ref) => (React__default.createElement("div", { ref: ref, className: buildClassnames([styles.fullBleed, className]), ...rest })));
|
|
30
|
+
FullBleed.displayName = 'Card.FullBleed';
|
|
31
|
+
const FOOTER_STABLE_CLASS = 'veeqo-card-footer';
|
|
32
|
+
const Footer = React__default.forwardRef(({ className, ...rest }, ref) => (React__default.createElement("footer", { ref: ref, className: buildClassnames([FOOTER_STABLE_CLASS, styles.footer, className]), ...rest })));
|
|
33
|
+
Footer.displayName = 'Card.Footer';
|
|
34
|
+
Footer.toString = () => `.${FOOTER_STABLE_CLASS}`;
|
|
35
|
+
/* --- Main Card component --- */
|
|
9
36
|
const Card = ({ className, style, title, subtitle, headerTitleSlot, headerActionSlot, action, collapsable, elevation, accent, children, onClose, renderFooter, }) => {
|
|
10
37
|
const [isCollapsed, setIsCollapsed] = useState(false);
|
|
11
38
|
const toggleCollapsed = () => {
|
|
@@ -14,7 +41,7 @@ const Card = ({ className, style, title, subtitle, headerTitleSlot, headerAction
|
|
|
14
41
|
const showHeader = title || headerTitleSlot !== undefined;
|
|
15
42
|
const headerMarkup = showHeader && (React__default.createElement(CardHeader, { title: title, subtitle: subtitle, titleSlot: headerTitleSlot, actionSlot: headerActionSlot, action: action, onClickClose: onClose, isCollapsed: isCollapsed, onClickCollapse: collapsable ? toggleCollapsed : undefined }));
|
|
16
43
|
const showBody = (collapsable && !isCollapsed) || !collapsable;
|
|
17
|
-
const bodyMarkup = (React__default.createElement(
|
|
44
|
+
const bodyMarkup = (React__default.createElement(motion.div, { className: styles.body, animate: showBody ? 'expanded' : 'collapsed', variants: collapseAnimationVariants, transition: { duration: 0.3, ease: 'easeOut' } },
|
|
18
45
|
React__default.createElement(Section, null, children)));
|
|
19
46
|
const footerMarkup = renderFooter !== undefined && React__default.createElement(Footer, null, renderFooter());
|
|
20
47
|
return (React__default.createElement(Surface, { className: className, style: style, elevation: elevation, accent: accent },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["../../../src/components/Card/Card.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react';\n\nimport { CardHeader } from '../CardHeader';\nimport {
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["../../../src/components/Card/Card.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react';\nimport { motion } from 'framer-motion';\n\nimport { CardHeader } from '../CardHeader';\nimport { buildClassnames } from '../../utils';\nimport styles from './Card.module.scss';\n\nexport type CardElevation = 0 | 1 | 2 | 3 | 4;\n\nconst collapseAnimationVariants = {\n expanded: { height: 'auto' },\n collapsed: { height: 0 },\n};\n\ntype CardAction = {\n title: string;\n onClick: () => void;\n};\n\nexport type CardProps = {\n className?: string;\n style?: React.CSSProperties;\n title?: string;\n subtitle?: string;\n headerTitleSlot?: React.ReactNode;\n headerActionSlot?: React.ReactNode;\n action?: CardAction;\n collapsable?: boolean;\n elevation?: CardElevation;\n accent?: 'info' | 'success' | 'error';\n children: ReactNode;\n onClose?: () => void;\n renderFooter?: () => ReactNode;\n};\n\n/* --- Sub-components --- */\n\ninterface SurfaceProps extends React.HTMLAttributes<HTMLDivElement> {\n elevation?: CardElevation;\n accent?: 'info' | 'success' | 'error';\n children?: ReactNode;\n}\n\n/**\n * Stable class used for styled-components selector interpolation.\n * Consumers (e.g. Modal) use `& > ${Card.Surface}` in template literals,\n * which calls `.toString()` and expects a CSS class selector.\n */\nconst SURFACE_STABLE_CLASS = 'veeqo-card-surface';\n\nconst Surface = React.forwardRef<HTMLDivElement, SurfaceProps>(\n ({ elevation = 1, accent, className, children, ...rest }, ref) => (\n <div\n ref={ref}\n className={buildClassnames([\n SURFACE_STABLE_CLASS,\n styles.surface,\n styles[`elevation-${elevation}`],\n accent ? styles[`accent-${accent}`] : undefined,\n className,\n ])}\n {...rest}\n >\n {children}\n </div>\n ),\n);\nSurface.displayName = 'Card.Surface';\nSurface.toString = () => `.${SURFACE_STABLE_CLASS}`;\n\nconst Section = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, ...rest }, ref) => (\n <section ref={ref} className={buildClassnames([styles.section, className])} {...rest} />\n ),\n);\nSection.displayName = 'Card.Section';\n\nconst FullBleed = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...rest }, ref) => (\n <div ref={ref} className={buildClassnames([styles.fullBleed, className])} {...rest} />\n ),\n);\nFullBleed.displayName = 'Card.FullBleed';\n\nconst FOOTER_STABLE_CLASS = 'veeqo-card-footer';\n\nconst Footer = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, ...rest }, ref) => (\n <footer ref={ref} className={buildClassnames([FOOTER_STABLE_CLASS, styles.footer, className])} {...rest} />\n ),\n);\nFooter.displayName = 'Card.Footer';\nFooter.toString = () => `.${FOOTER_STABLE_CLASS}`;\n\n/* --- Main Card component --- */\n\nexport const Card = ({\n className,\n style,\n title,\n subtitle,\n headerTitleSlot,\n headerActionSlot,\n action,\n collapsable,\n elevation,\n accent,\n children,\n onClose,\n renderFooter,\n}: CardProps) => {\n const [isCollapsed, setIsCollapsed] = useState(false);\n\n const toggleCollapsed = () => {\n setIsCollapsed(!isCollapsed);\n };\n\n const showHeader = title || headerTitleSlot !== undefined;\n const headerMarkup = showHeader && (\n <CardHeader\n title={title}\n subtitle={subtitle}\n titleSlot={headerTitleSlot}\n actionSlot={headerActionSlot}\n action={action}\n onClickClose={onClose}\n isCollapsed={isCollapsed}\n onClickCollapse={collapsable ? toggleCollapsed : undefined}\n />\n );\n\n const showBody = (collapsable && !isCollapsed) || !collapsable;\n const bodyMarkup = (\n <motion.div\n className={styles.body}\n animate={showBody ? 'expanded' : 'collapsed'}\n variants={collapseAnimationVariants}\n transition={{ duration: 0.3, ease: 'easeOut' }}\n >\n <Section>{children}</Section>\n </motion.div>\n );\n\n const footerMarkup = renderFooter !== undefined && <Footer>{renderFooter()}</Footer>;\n\n return (\n <Surface className={className} style={style} elevation={elevation} accent={accent}>\n {headerMarkup}\n {bodyMarkup}\n {footerMarkup}\n </Surface>\n );\n};\n\nCard.Surface = Surface;\nCard.Section = Section;\nCard.FullBleed = FullBleed;\nCard.Footer = Footer;\n"],"names":["React"],"mappings":";;;;;;;AASA,MAAM,yBAAyB,GAAG;AAChC,IAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5B,IAAA,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;CACzB;AA+BD;;;;AAIG;AACH,MAAM,oBAAoB,GAAG,oBAAoB;AAEjD,MAAM,OAAO,GAAGA,cAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MAC3DA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,CAAC;QACzB,oBAAoB;AACpB,QAAA,MAAM,CAAC,OAAO;AACd,QAAA,MAAM,CAAC,CAAA,UAAA,EAAa,SAAS,CAAA,CAAE,CAAC;AAChC,QAAA,MAAM,GAAG,MAAM,CAAC,CAAA,OAAA,EAAU,MAAM,CAAA,CAAE,CAAC,GAAG,SAAS;QAC/C,SAAS;AACV,KAAA,CAAC,KACE,IAAI,EAAA,EAEP,QAAQ,CACL,CACP,CACF;AACD,OAAO,CAAC,WAAW,GAAG,cAAc;AACpC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAA,CAAA,EAAI,oBAAoB,CAAA,CAAE;AAEnD,MAAM,OAAO,GAAGA,cAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MAC1BA,cAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAS,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAA,GAAM,IAAI,EAAA,CAAI,CACzF,CACF;AACD,OAAO,CAAC,WAAW,GAAG,cAAc;AAEpC,MAAM,SAAS,GAAGA,cAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MAC1BA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAA,GAAM,IAAI,EAAA,CAAI,CACvF,CACF;AACD,SAAS,CAAC,WAAW,GAAG,gBAAgB;AAExC,MAAM,mBAAmB,GAAG,mBAAmB;AAE/C,MAAM,MAAM,GAAGA,cAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MAC1BA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAA,GAAM,IAAI,EAAA,CAAI,CAC5G,CACF;AACD,MAAM,CAAC,WAAW,GAAG,aAAa;AAClC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAA,CAAA,EAAI,mBAAmB,CAAA,CAAE;AAEjD;AAEO,MAAM,IAAI,GAAG,CAAC,EACnB,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,GACF,KAAI;IACd,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAErD,MAAM,eAAe,GAAG,MAAK;AAC3B,QAAA,cAAc,CAAC,CAAC,WAAW,CAAC;AAC9B,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,KAAK,IAAI,eAAe,KAAK,SAAS;IACzD,MAAM,YAAY,GAAG,UAAU,KAC7BA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,EAAA,CAC1D,CACH;IAED,MAAM,QAAQ,GAAG,CAAC,WAAW,IAAI,CAAC,WAAW,KAAK,CAAC,WAAW;AAC9D,IAAA,MAAM,UAAU,IACdA,6BAAC,MAAM,CAAC,GAAG,EAAA,EACT,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,EAC5C,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAA;AAE9C,QAAAA,cAAA,CAAA,aAAA,CAAC,OAAO,EAAA,IAAA,EAAE,QAAQ,CAAW,CAClB,CACd;AAED,IAAA,MAAM,YAAY,GAAG,YAAY,KAAK,SAAS,IAAIA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,IAAA,EAAE,YAAY,EAAE,CAAU;AAEpF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,OAAO,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAA;QAC9E,YAAY;QACZ,UAAU;QACV,YAAY,CACL;AAEd;AAEA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,IAAI,CAAC,MAAM,GAAG,MAAM;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
|
+
|
|
5
|
+
___$insertStyle("._surface_1a6rc_1 {\n position: relative;\n width: 100%;\n background-color: white;\n border: var(--sizes-line) solid var(--colors-neutral-grey-base);\n border-radius: var(--radius-md);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* Elevation levels */\n._elevation-0_1a6rc_12 {\n box-shadow: none;\n}\n\n._elevation-1_1a6rc_16 {\n box-shadow: var(--shadows-sm);\n}\n\n._elevation-2_1a6rc_20 {\n box-shadow: var(--shadows-base);\n}\n\n._elevation-3_1a6rc_24 {\n box-shadow: var(--shadows-md);\n}\n\n._elevation-4_1a6rc_28 {\n box-shadow: var(--shadows-lg);\n}\n\n/* Accent bar via pseudo-element */\n._accent-info_1a6rc_33::after,\n._accent-success_1a6rc_34::after,\n._accent-error_1a6rc_35::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--sizes-xs);\n}\n\n._accent-info_1a6rc_33::after {\n background-color: var(--colors-secondary-blue-base);\n}\n\n._accent-success_1a6rc_34::after {\n background-color: var(--colors-secondary-green-base);\n}\n\n._accent-error_1a6rc_35::after {\n background-color: var(--colors-secondary-red-base);\n}\n\n/* Body: motion.div wrapper for collapse */\n._body_1a6rc_57 {\n overflow-y: hidden;\n}\n._body_1a6rc_57:not(:first-child) > ._section_1a6rc_60:first-child {\n margin-top: 0;\n}\n\n/* Section */\n._section_1a6rc_60 {\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-top: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n font-family: var(--text-body-font-family);\n font-size: var(--text-body-font-size);\n font-weight: var(--text-body-font-weight);\n line-height: var(--text-body-line-height);\n color: var(--text-body-color);\n}\n._section_1a6rc_60 + ._section_1a6rc_60 {\n border-top: var(--sizes-line) solid var(--colors-neutral-grey-base);\n padding-top: var(--sizes-md);\n}\n\n/* FullBleed */\n._fullBleed_1a6rc_82 {\n margin-left: calc(-1 * var(--sizes-md));\n margin-right: calc(-1 * var(--sizes-md));\n}\n\n/* Footer */\n._footer_1a6rc_88 {\n margin-top: var(--sizes-base);\n padding: var(--sizes-md);\n z-index: 2;\n}");
|
|
6
|
+
var styles = {"surface":"_surface_1a6rc_1","elevation-0":"_elevation-0_1a6rc_12","elevation-1":"_elevation-1_1a6rc_16","elevation-2":"_elevation-2_1a6rc_20","elevation-3":"_elevation-3_1a6rc_24","elevation-4":"_elevation-4_1a6rc_28","accent-info":"_accent-info_1a6rc_33","accent-success":"_accent-success_1a6rc_34","accent-error":"_accent-error_1a6rc_35","body":"_body_1a6rc_57","section":"_section_1a6rc_60","fullBleed":"_fullBleed_1a6rc_82","footer":"_footer_1a6rc_88"};
|
|
7
|
+
|
|
8
|
+
module.exports = styles;
|
|
9
|
+
//# sourceMappingURL=Card.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.module.scss.cjs","sources":["../../../src/components/Card/Card.module.scss"],"sourcesContent":[".surface {\n position: relative;\n width: 100%;\n background-color: white;\n border: var(--sizes-line) solid var(--colors-neutral-grey-base);\n border-radius: var(--radius-md);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* Elevation levels */\n.elevation-0 {\n box-shadow: none;\n}\n\n.elevation-1 {\n box-shadow: var(--shadows-sm);\n}\n\n.elevation-2 {\n box-shadow: var(--shadows-base);\n}\n\n.elevation-3 {\n box-shadow: var(--shadows-md);\n}\n\n.elevation-4 {\n box-shadow: var(--shadows-lg);\n}\n\n/* Accent bar via pseudo-element */\n.accent-info::after,\n.accent-success::after,\n.accent-error::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--sizes-xs);\n}\n\n.accent-info::after {\n background-color: var(--colors-secondary-blue-base);\n}\n\n.accent-success::after {\n background-color: var(--colors-secondary-green-base);\n}\n\n.accent-error::after {\n background-color: var(--colors-secondary-red-base);\n}\n\n/* Body: motion.div wrapper for collapse */\n.body {\n overflow-y: hidden;\n\n &:not(:first-child) > .section:first-child {\n margin-top: 0;\n }\n}\n\n/* Section */\n.section {\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-top: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n\n font-family: var(--text-body-font-family);\n font-size: var(--text-body-font-size);\n font-weight: var(--text-body-font-weight);\n line-height: var(--text-body-line-height);\n color: var(--text-body-color);\n\n & + & {\n border-top: var(--sizes-line) solid var(--colors-neutral-grey-base);\n padding-top: var(--sizes-md);\n }\n}\n\n/* FullBleed */\n.fullBleed {\n margin-left: calc(-1 * var(--sizes-md));\n margin-right: calc(-1 * var(--sizes-md));\n}\n\n/* Footer */\n.footer {\n margin-top: var(--sizes-base);\n padding: var(--sizes-md);\n z-index: 2;\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,8iEAAA;AACA,aAAA,CAAA,SAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,gBAAA,CAAA,0BAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,kBAAA;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import insertStyle from '../../_virtual/____insertStyle.js';
|
|
2
|
+
|
|
3
|
+
insertStyle("._surface_1a6rc_1 {\n position: relative;\n width: 100%;\n background-color: white;\n border: var(--sizes-line) solid var(--colors-neutral-grey-base);\n border-radius: var(--radius-md);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* Elevation levels */\n._elevation-0_1a6rc_12 {\n box-shadow: none;\n}\n\n._elevation-1_1a6rc_16 {\n box-shadow: var(--shadows-sm);\n}\n\n._elevation-2_1a6rc_20 {\n box-shadow: var(--shadows-base);\n}\n\n._elevation-3_1a6rc_24 {\n box-shadow: var(--shadows-md);\n}\n\n._elevation-4_1a6rc_28 {\n box-shadow: var(--shadows-lg);\n}\n\n/* Accent bar via pseudo-element */\n._accent-info_1a6rc_33::after,\n._accent-success_1a6rc_34::after,\n._accent-error_1a6rc_35::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--sizes-xs);\n}\n\n._accent-info_1a6rc_33::after {\n background-color: var(--colors-secondary-blue-base);\n}\n\n._accent-success_1a6rc_34::after {\n background-color: var(--colors-secondary-green-base);\n}\n\n._accent-error_1a6rc_35::after {\n background-color: var(--colors-secondary-red-base);\n}\n\n/* Body: motion.div wrapper for collapse */\n._body_1a6rc_57 {\n overflow-y: hidden;\n}\n._body_1a6rc_57:not(:first-child) > ._section_1a6rc_60:first-child {\n margin-top: 0;\n}\n\n/* Section */\n._section_1a6rc_60 {\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-top: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n font-family: var(--text-body-font-family);\n font-size: var(--text-body-font-size);\n font-weight: var(--text-body-font-weight);\n line-height: var(--text-body-line-height);\n color: var(--text-body-color);\n}\n._section_1a6rc_60 + ._section_1a6rc_60 {\n border-top: var(--sizes-line) solid var(--colors-neutral-grey-base);\n padding-top: var(--sizes-md);\n}\n\n/* FullBleed */\n._fullBleed_1a6rc_82 {\n margin-left: calc(-1 * var(--sizes-md));\n margin-right: calc(-1 * var(--sizes-md));\n}\n\n/* Footer */\n._footer_1a6rc_88 {\n margin-top: var(--sizes-base);\n padding: var(--sizes-md);\n z-index: 2;\n}");
|
|
4
|
+
var styles = {"surface":"_surface_1a6rc_1","elevation-0":"_elevation-0_1a6rc_12","elevation-1":"_elevation-1_1a6rc_16","elevation-2":"_elevation-2_1a6rc_20","elevation-3":"_elevation-3_1a6rc_24","elevation-4":"_elevation-4_1a6rc_28","accent-info":"_accent-info_1a6rc_33","accent-success":"_accent-success_1a6rc_34","accent-error":"_accent-error_1a6rc_35","body":"_body_1a6rc_57","section":"_section_1a6rc_60","fullBleed":"_fullBleed_1a6rc_82","footer":"_footer_1a6rc_88"};
|
|
5
|
+
|
|
6
|
+
export { styles as default };
|
|
7
|
+
//# sourceMappingURL=Card.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.module.scss.js","sources":["../../../src/components/Card/Card.module.scss"],"sourcesContent":[".surface {\n position: relative;\n width: 100%;\n background-color: white;\n border: var(--sizes-line) solid var(--colors-neutral-grey-base);\n border-radius: var(--radius-md);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* Elevation levels */\n.elevation-0 {\n box-shadow: none;\n}\n\n.elevation-1 {\n box-shadow: var(--shadows-sm);\n}\n\n.elevation-2 {\n box-shadow: var(--shadows-base);\n}\n\n.elevation-3 {\n box-shadow: var(--shadows-md);\n}\n\n.elevation-4 {\n box-shadow: var(--shadows-lg);\n}\n\n/* Accent bar via pseudo-element */\n.accent-info::after,\n.accent-success::after,\n.accent-error::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--sizes-xs);\n}\n\n.accent-info::after {\n background-color: var(--colors-secondary-blue-base);\n}\n\n.accent-success::after {\n background-color: var(--colors-secondary-green-base);\n}\n\n.accent-error::after {\n background-color: var(--colors-secondary-red-base);\n}\n\n/* Body: motion.div wrapper for collapse */\n.body {\n overflow-y: hidden;\n\n &:not(:first-child) > .section:first-child {\n margin-top: 0;\n }\n}\n\n/* Section */\n.section {\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-top: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n\n font-family: var(--text-body-font-family);\n font-size: var(--text-body-font-size);\n font-weight: var(--text-body-font-weight);\n line-height: var(--text-body-line-height);\n color: var(--text-body-color);\n\n & + & {\n border-top: var(--sizes-line) solid var(--colors-neutral-grey-base);\n padding-top: var(--sizes-md);\n }\n}\n\n/* FullBleed */\n.fullBleed {\n margin-left: calc(-1 * var(--sizes-md));\n margin-right: calc(-1 * var(--sizes-md));\n}\n\n/* Footer */\n.footer {\n margin-top: var(--sizes-base);\n padding: var(--sizes-md);\n z-index: 2;\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,8iEAAA;AACA,aAAA,CAAA,SAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,gBAAA,CAAA,0BAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,kBAAA;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var Text = require('../Text/Text.cjs');
|
|
5
5
|
var Button = require('../Button/Button.cjs');
|
|
6
|
-
var
|
|
6
|
+
var CardHeader_module = require('./CardHeader.module.scss.cjs');
|
|
7
7
|
var CrossIcon = require('../../icons/design-system/components/CrossIcon.cjs');
|
|
8
8
|
var DownArrowIcon = require('../../icons/design-system/components/DownArrowIcon.cjs');
|
|
9
9
|
var UpArrowIcon = require('../../icons/design-system/components/UpArrowIcon.cjs');
|
|
@@ -12,8 +12,8 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
|
|
13
13
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
14
|
|
|
15
|
-
const CardHeader = ({ id, title, subtitle, titleSlot, headerVariant = 'headingSmall', action, actionSlot, isCollapsed, onClickCollapse, onClickClose, }) => (React__default.default.createElement(
|
|
16
|
-
React__default.default.createElement(
|
|
15
|
+
const CardHeader = ({ id, title, subtitle, titleSlot, headerVariant = 'headingSmall', action, actionSlot, isCollapsed, onClickCollapse, onClickClose, }) => (React__default.default.createElement("header", { className: CardHeader_module.header },
|
|
16
|
+
React__default.default.createElement("div", { className: CardHeader_module.headerGrid },
|
|
17
17
|
titleSlot || (React__default.default.createElement(Text.Text, { id: id, variant: headerVariant }, title)),
|
|
18
18
|
action && (React__default.default.createElement(Button.Button, { variant: "link", onClick: action.onClick }, action.title)),
|
|
19
19
|
actionSlot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHeader.cjs","sources":["../../../src/components/CardHeader/CardHeader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../Text';\nimport { Button } from '../Button';\nimport
|
|
1
|
+
{"version":3,"file":"CardHeader.cjs","sources":["../../../src/components/CardHeader/CardHeader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../Text';\nimport { Button } from '../Button';\nimport styles from './CardHeader.module.scss';\nimport { HeaderVariant } from '../Text/types';\nimport { DownArrowIcon, UpArrowIcon, CrossIcon } from '../../icons';\n\ntype CardHeaderAction = {\n title: string;\n onClick: () => void;\n};\n\nexport interface CardHeaderProps {\n id?: string;\n title?: string;\n subtitle?: string;\n titleSlot?: React.ReactNode;\n headerVariant?: HeaderVariant;\n action?: CardHeaderAction;\n actionSlot?: React.ReactNode;\n isCollapsed?: boolean;\n onClickCollapse?: () => void;\n onClickClose?: () => void;\n}\n\nexport const CardHeader = ({\n id,\n title,\n subtitle,\n titleSlot,\n headerVariant = 'headingSmall',\n action,\n actionSlot,\n isCollapsed,\n onClickCollapse,\n onClickClose,\n}: CardHeaderProps) => (\n <header className={styles.header}>\n <div className={styles.headerGrid}>\n {titleSlot || (\n <Text id={id} variant={headerVariant}>\n {title}\n </Text>\n )}\n {action && (\n <Button variant=\"link\" onClick={action.onClick}>\n {action.title}\n </Button>\n )}\n {actionSlot}\n {onClickCollapse && (\n <Button\n variant=\"flat\"\n iconSlot={isCollapsed ? <DownArrowIcon /> : <UpArrowIcon />}\n onClick={onClickCollapse}\n />\n )}\n {onClickClose && (\n <Button\n variant=\"flat\"\n iconSlot={<CrossIcon />}\n onClick={onClickClose}\n aria-label=\"Close\"\n type=\"button\"\n />\n )}\n </div>\n {subtitle && <Text variant=\"subheadingSmall\">{subtitle}</Text>}\n </header>\n);\n"],"names":["React","styles","Text","Button","DownArrowIcon","UpArrowIcon","CrossIcon"],"mappings":";;;;;;;;;;;;;;AA0BO,MAAM,UAAU,GAAG,CAAC,EACzB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,GAAG,cAAc,EAC9B,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,GACI,MAChBA,sBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEC,iBAAM,CAAC,MAAM,EAAA;AAC9B,IAAAD,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,iBAAM,CAAC,UAAU,EAAA;AAC9B,QAAA,SAAS,KACRD,sBAAA,CAAA,aAAA,CAACE,SAAI,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAA,EACjC,KAAK,CACD,CACR;AACA,QAAA,MAAM,KACLF,sBAAA,CAAA,aAAA,CAACG,aAAM,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAA,EAC3C,MAAM,CAAC,KAAK,CACN,CACV;QACA,UAAU;AACV,QAAA,eAAe,KACdH,sBAAA,CAAA,aAAA,CAACG,aAAM,EAAA,EACL,OAAO,EAAC,MAAM,EACd,QAAQ,EAAE,WAAW,GAAGH,sBAAA,CAAA,aAAA,CAACI,4BAAa,EAAA,IAAA,CAAG,GAAGJ,sBAAA,CAAA,aAAA,CAACK,0BAAW,EAAA,IAAA,CAAG,EAC3D,OAAO,EAAE,eAAe,GACxB,CACH;QACA,YAAY,KACXL,sBAAA,CAAA,aAAA,CAACG,aAAM,EAAA,EACL,OAAO,EAAC,MAAM,EACd,QAAQ,EAAEH,sBAAA,CAAA,aAAA,CAACM,wBAAS,OAAG,EACvB,OAAO,EAAE,YAAY,EAAA,YAAA,EACV,OAAO,EAClB,IAAI,EAAC,QAAQ,EAAA,CACb,CACH,CACG;AACL,IAAA,QAAQ,IAAIN,sBAAA,CAAA,aAAA,CAACE,SAAI,EAAA,EAAC,OAAO,EAAC,iBAAiB,EAAA,EAAE,QAAQ,CAAQ,CACvD;;;;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import { Text } from '../Text/Text.js';
|
|
3
3
|
import { Button } from '../Button/Button.js';
|
|
4
|
-
import
|
|
4
|
+
import styles from './CardHeader.module.scss.js';
|
|
5
5
|
import { ReactComponent as CrossIcon } from '../../icons/design-system/components/CrossIcon.js';
|
|
6
6
|
import { ReactComponent as DownArrowIcon } from '../../icons/design-system/components/DownArrowIcon.js';
|
|
7
7
|
import { ReactComponent as UpArrowIcon } from '../../icons/design-system/components/UpArrowIcon.js';
|
|
8
8
|
|
|
9
|
-
const CardHeader = ({ id, title, subtitle, titleSlot, headerVariant = 'headingSmall', action, actionSlot, isCollapsed, onClickCollapse, onClickClose, }) => (React__default.createElement(
|
|
10
|
-
React__default.createElement(
|
|
9
|
+
const CardHeader = ({ id, title, subtitle, titleSlot, headerVariant = 'headingSmall', action, actionSlot, isCollapsed, onClickCollapse, onClickClose, }) => (React__default.createElement("header", { className: styles.header },
|
|
10
|
+
React__default.createElement("div", { className: styles.headerGrid },
|
|
11
11
|
titleSlot || (React__default.createElement(Text, { id: id, variant: headerVariant }, title)),
|
|
12
12
|
action && (React__default.createElement(Button, { variant: "link", onClick: action.onClick }, action.title)),
|
|
13
13
|
actionSlot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHeader.js","sources":["../../../src/components/CardHeader/CardHeader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../Text';\nimport { Button } from '../Button';\nimport
|
|
1
|
+
{"version":3,"file":"CardHeader.js","sources":["../../../src/components/CardHeader/CardHeader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../Text';\nimport { Button } from '../Button';\nimport styles from './CardHeader.module.scss';\nimport { HeaderVariant } from '../Text/types';\nimport { DownArrowIcon, UpArrowIcon, CrossIcon } from '../../icons';\n\ntype CardHeaderAction = {\n title: string;\n onClick: () => void;\n};\n\nexport interface CardHeaderProps {\n id?: string;\n title?: string;\n subtitle?: string;\n titleSlot?: React.ReactNode;\n headerVariant?: HeaderVariant;\n action?: CardHeaderAction;\n actionSlot?: React.ReactNode;\n isCollapsed?: boolean;\n onClickCollapse?: () => void;\n onClickClose?: () => void;\n}\n\nexport const CardHeader = ({\n id,\n title,\n subtitle,\n titleSlot,\n headerVariant = 'headingSmall',\n action,\n actionSlot,\n isCollapsed,\n onClickCollapse,\n onClickClose,\n}: CardHeaderProps) => (\n <header className={styles.header}>\n <div className={styles.headerGrid}>\n {titleSlot || (\n <Text id={id} variant={headerVariant}>\n {title}\n </Text>\n )}\n {action && (\n <Button variant=\"link\" onClick={action.onClick}>\n {action.title}\n </Button>\n )}\n {actionSlot}\n {onClickCollapse && (\n <Button\n variant=\"flat\"\n iconSlot={isCollapsed ? <DownArrowIcon /> : <UpArrowIcon />}\n onClick={onClickCollapse}\n />\n )}\n {onClickClose && (\n <Button\n variant=\"flat\"\n iconSlot={<CrossIcon />}\n onClick={onClickClose}\n aria-label=\"Close\"\n type=\"button\"\n />\n )}\n </div>\n {subtitle && <Text variant=\"subheadingSmall\">{subtitle}</Text>}\n </header>\n);\n"],"names":["React"],"mappings":";;;;;;;;AA0BO,MAAM,UAAU,GAAG,CAAC,EACzB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,GAAG,cAAc,EAC9B,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,GACI,MAChBA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAA;AAC9B,IAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAA;AAC9B,QAAA,SAAS,KACRA,cAAA,CAAA,aAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAA,EACjC,KAAK,CACD,CACR;AACA,QAAA,MAAM,KACLA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAA,EAC3C,MAAM,CAAC,KAAK,CACN,CACV;QACA,UAAU;AACV,QAAA,eAAe,KACdA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,MAAM,EACd,QAAQ,EAAE,WAAW,GAAGA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,IAAA,CAAG,GAAGA,cAAA,CAAA,aAAA,CAAC,WAAW,EAAA,IAAA,CAAG,EAC3D,OAAO,EAAE,eAAe,GACxB,CACH;QACA,YAAY,KACXA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,MAAM,EACd,QAAQ,EAAEA,cAAA,CAAA,aAAA,CAAC,SAAS,OAAG,EACvB,OAAO,EAAE,YAAY,EAAA,YAAA,EACV,OAAO,EAClB,IAAI,EAAC,QAAQ,EAAA,CACb,CACH,CACG;AACL,IAAA,QAAQ,IAAIA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,iBAAiB,EAAA,EAAE,QAAQ,CAAQ,CACvD;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
|
+
|
|
5
|
+
___$insertStyle("._header_pke2d_1 {\n padding-top: var(--sizes-md);\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n}\n._header_pke2d_1 > * + * {\n margin-top: var(--sizes-xs);\n}\n\n._headerGrid_pke2d_11 {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n._headerGrid_pke2d_11 > *:first-child {\n flex: 1;\n}");
|
|
6
|
+
var styles = {"header":"_header_pke2d_1","headerGrid":"_headerGrid_pke2d_11"};
|
|
7
|
+
|
|
8
|
+
module.exports = styles;
|
|
9
|
+
//# sourceMappingURL=CardHeader.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardHeader.module.scss.cjs","sources":["../../../src/components/CardHeader/CardHeader.module.scss"],"sourcesContent":[".header {\n padding-top: var(--sizes-md);\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n\n & > * + * {\n margin-top: var(--sizes-xs);\n }\n}\n\n.headerGrid {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n\n & > *:first-child {\n flex: 1;\n }\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,6XAAA;AACA,aAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,sBAAA;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import insertStyle from '../../_virtual/____insertStyle.js';
|
|
2
|
+
|
|
3
|
+
insertStyle("._header_pke2d_1 {\n padding-top: var(--sizes-md);\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n}\n._header_pke2d_1 > * + * {\n margin-top: var(--sizes-xs);\n}\n\n._headerGrid_pke2d_11 {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n._headerGrid_pke2d_11 > *:first-child {\n flex: 1;\n}");
|
|
4
|
+
var styles = {"header":"_header_pke2d_1","headerGrid":"_headerGrid_pke2d_11"};
|
|
5
|
+
|
|
6
|
+
export { styles as default };
|
|
7
|
+
//# sourceMappingURL=CardHeader.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardHeader.module.scss.js","sources":["../../../src/components/CardHeader/CardHeader.module.scss"],"sourcesContent":[".header {\n padding-top: var(--sizes-md);\n padding-right: var(--sizes-md);\n padding-left: var(--sizes-md);\n margin-bottom: var(--sizes-md);\n\n & > * + * {\n margin-top: var(--sizes-xs);\n }\n}\n\n.headerGrid {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n\n & > *:first-child {\n flex: 1;\n }\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,6XAAA;AACA,aAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,sBAAA;;;;"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var Choice = require('../Choice/Choice.cjs');
|
|
5
|
-
var styled = require('./styled.cjs');
|
|
6
5
|
var generateId = require('../../utils/generateId.cjs');
|
|
6
|
+
var Checkbox_module = require('./Checkbox.module.scss.cjs');
|
|
7
7
|
|
|
8
8
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ const Checkbox = ({ id, checked, indeterminate, value, name, hint, disabled, ari
|
|
|
26
26
|
}, [indeterminate]);
|
|
27
27
|
const ariaDescribedBy = hint ? `hint-${componentId}` : undefined;
|
|
28
28
|
return (React__default.default.createElement(Choice.Choice, { htmlFor: componentId, disabled: disabled, className: className, hint: hint, ...otherProps },
|
|
29
|
-
React__default.default.createElement(
|
|
29
|
+
React__default.default.createElement("input", { ref: checkboxRef, id: componentId, type: "checkbox", checked: checked, value: value, name: name, disabled: disabled, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, onChange: handleChange, className: Checkbox_module.input })));
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
exports.Checkbox = Checkbox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { Choice, ForwardedChoiceProps } from '../Choice';\nimport {
|
|
1
|
+
{"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { Choice, ForwardedChoiceProps } from '../Choice';\nimport { generateId } from '../../utils/generateId';\n\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxValue = string | number;\n\nexport interface CheckboxProps extends ForwardedChoiceProps {\n id?: string;\n checked: boolean;\n indeterminate?: boolean;\n value?: CheckboxValue;\n name?: string;\n disabled?: boolean;\n ariaLabel?: string;\n onChange: (checked: boolean, value?: CheckboxValue, meta?: { shiftKey?: boolean }) => void;\n className?: string;\n}\n\nexport const Checkbox = ({\n id,\n checked,\n indeterminate,\n value,\n name,\n hint,\n disabled,\n ariaLabel,\n className,\n onChange,\n ...otherProps\n}: CheckboxProps) => {\n const componentId = useMemo(() => id ?? generateId('checkbox'), [id]);\n const checkboxRef = useRef<HTMLInputElement>(null);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.currentTarget.checked, value);\n },\n [onChange, value],\n );\n\n useEffect(() => {\n if (!checkboxRef.current) return;\n if (indeterminate === true) {\n checkboxRef.current.indeterminate = true;\n return;\n }\n checkboxRef.current.indeterminate = false;\n }, [indeterminate]);\n\n const ariaDescribedBy = hint ? `hint-${componentId}` : undefined;\n\n return (\n <Choice\n htmlFor={componentId}\n disabled={disabled}\n className={className}\n hint={hint}\n {...otherProps}\n >\n <input\n ref={checkboxRef}\n id={componentId}\n type=\"checkbox\"\n checked={checked}\n value={value}\n name={name}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n onChange={handleChange}\n className={styles.input}\n />\n </Choice>\n );\n};\n"],"names":["useMemo","generateId","useRef","useCallback","useEffect","React","Choice","styles"],"mappings":";;;;;;;;;;;AAoBO,MAAM,QAAQ,GAAG,CAAC,EACvB,EAAE,EACF,OAAO,EACP,aAAa,EACb,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,GAAG,UAAU,EACC,KAAI;IAClB,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAM,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAIC,qBAAU,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,WAAW,GAAGC,YAAM,CAAmB,IAAI,CAAC;AAElD,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAC9B,CAAC,CAAsC,KAAI;QACzC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C,IAAA,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB;IAEDC,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE;QAC1B,IAAI,aAAa,KAAK,IAAI,EAAE;AAC1B,YAAA,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI;YACxC;AACD,QAAA;AACD,QAAA,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK;AAC3C,IAAA,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnB,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAE,GAAG,SAAS;IAEhE,QACEC,qCAACC,aAAM,EAAA,EACL,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,KACN,UAAU,EAAA;QAEdD,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,WAAW,EACf,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,SAAS,EAAA,kBAAA,EACH,eAAe,EACjC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAEE,eAAM,CAAC,KAAK,EAAA,CACvB,CACK;AAEb;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default, { useMemo, useRef, useCallback, useEffect } from 'react';
|
|
2
2
|
import { Choice } from '../Choice/Choice.js';
|
|
3
|
-
import { Input } from './styled.js';
|
|
4
3
|
import { generateId } from '../../utils/generateId.js';
|
|
4
|
+
import styles from './Checkbox.module.scss.js';
|
|
5
5
|
|
|
6
6
|
const Checkbox = ({ id, checked, indeterminate, value, name, hint, disabled, ariaLabel, className, onChange, ...otherProps }) => {
|
|
7
7
|
const componentId = useMemo(() => id !== null && id !== void 0 ? id : generateId('checkbox'), [id]);
|
|
@@ -20,7 +20,7 @@ const Checkbox = ({ id, checked, indeterminate, value, name, hint, disabled, ari
|
|
|
20
20
|
}, [indeterminate]);
|
|
21
21
|
const ariaDescribedBy = hint ? `hint-${componentId}` : undefined;
|
|
22
22
|
return (React__default.createElement(Choice, { htmlFor: componentId, disabled: disabled, className: className, hint: hint, ...otherProps },
|
|
23
|
-
React__default.createElement(
|
|
23
|
+
React__default.createElement("input", { ref: checkboxRef, id: componentId, type: "checkbox", checked: checked, value: value, name: name, disabled: disabled, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, onChange: handleChange, className: styles.input })));
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export { Checkbox };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { Choice, ForwardedChoiceProps } from '../Choice';\nimport {
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { Choice, ForwardedChoiceProps } from '../Choice';\nimport { generateId } from '../../utils/generateId';\n\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxValue = string | number;\n\nexport interface CheckboxProps extends ForwardedChoiceProps {\n id?: string;\n checked: boolean;\n indeterminate?: boolean;\n value?: CheckboxValue;\n name?: string;\n disabled?: boolean;\n ariaLabel?: string;\n onChange: (checked: boolean, value?: CheckboxValue, meta?: { shiftKey?: boolean }) => void;\n className?: string;\n}\n\nexport const Checkbox = ({\n id,\n checked,\n indeterminate,\n value,\n name,\n hint,\n disabled,\n ariaLabel,\n className,\n onChange,\n ...otherProps\n}: CheckboxProps) => {\n const componentId = useMemo(() => id ?? generateId('checkbox'), [id]);\n const checkboxRef = useRef<HTMLInputElement>(null);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e.currentTarget.checked, value);\n },\n [onChange, value],\n );\n\n useEffect(() => {\n if (!checkboxRef.current) return;\n if (indeterminate === true) {\n checkboxRef.current.indeterminate = true;\n return;\n }\n checkboxRef.current.indeterminate = false;\n }, [indeterminate]);\n\n const ariaDescribedBy = hint ? `hint-${componentId}` : undefined;\n\n return (\n <Choice\n htmlFor={componentId}\n disabled={disabled}\n className={className}\n hint={hint}\n {...otherProps}\n >\n <input\n ref={checkboxRef}\n id={componentId}\n type=\"checkbox\"\n checked={checked}\n value={value}\n name={name}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n onChange={handleChange}\n className={styles.input}\n />\n </Choice>\n );\n};\n"],"names":["React"],"mappings":";;;;;AAoBO,MAAM,QAAQ,GAAG,CAAC,EACvB,EAAE,EACF,OAAO,EACP,aAAa,EACb,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,GAAG,UAAU,EACC,KAAI;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,CAAC;AAElD,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,CAAsC,KAAI;QACzC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C,IAAA,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB;IAED,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE;QAC1B,IAAI,aAAa,KAAK,IAAI,EAAE;AAC1B,YAAA,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI;YACxC;AACD,QAAA;AACD,QAAA,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK;AAC3C,IAAA,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnB,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAE,GAAG,SAAS;IAEhE,QACEA,6BAAC,MAAM,EAAA,EACL,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,KACN,UAAU,EAAA;QAEdA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,WAAW,EACf,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,SAAS,EAAA,kBAAA,EACH,eAAe,EACjC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,CAAC,KAAK,EAAA,CACvB,CACK;AAEb;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
|
+
|
|
5
|
+
___$insertStyle("._input_r02q7_1 {\n appearance: none;\n width: 18px;\n height: 18px;\n background-color: transparent;\n border: 2px solid var(--colors-neutral-ink-lightest);\n border-radius: var(--radius-base);\n cursor: pointer;\n flex-shrink: 0;\n transition: box-shadow 0.1s, background-color 0.1s;\n}\n._input_r02q7_1:checked {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='white' /></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n}\n._input_r02q7_1:hover {\n border-color: var(--colors-secondary-blue-base);\n}\n._input_r02q7_1:active {\n border-color: var(--colors-secondary-blue-base);\n}\n._input_r02q7_1:focus {\n box-shadow: 0 0 0 var(--sizes-xs) var(--colors-secondary-blue-light);\n outline: 0;\n}\n._input_r02q7_1:indeterminate {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='white'/></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n}\n._input_r02q7_1:disabled {\n box-shadow: none;\n background-color: var(--colors-neutral-grey-base);\n border-color: var(--colors-neutral-grey-base);\n color: var(--colors-neutral-ink-light);\n cursor: default;\n}\n._input_r02q7_1:checked:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='%23637381' /></svg>\");\n}\n._input_r02q7_1:indeterminate:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='%23637381'/></svg>\");\n}");
|
|
6
|
+
var styles = {"input":"_input_r02q7_1"};
|
|
7
|
+
|
|
8
|
+
module.exports = styles;
|
|
9
|
+
//# sourceMappingURL=Checkbox.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.module.scss.cjs","sources":["../../../src/components/Checkbox/Checkbox.module.scss"],"sourcesContent":[".input {\n appearance: none;\n width: 18px;\n height: 18px;\n background-color: transparent;\n border: 2px solid var(--colors-neutral-ink-lightest);\n border-radius: var(--radius-base);\n cursor: pointer;\n flex-shrink: 0;\n transition:\n box-shadow 0.1s,\n background-color 0.1s;\n\n &:checked {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='white' /></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n }\n\n &:hover {\n border-color: var(--colors-secondary-blue-base);\n }\n\n &:active {\n border-color: var(--colors-secondary-blue-base);\n }\n\n &:focus {\n box-shadow: 0 0 0 var(--sizes-xs) var(--colors-secondary-blue-light);\n outline: 0;\n }\n\n &:indeterminate {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='white'/></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--colors-neutral-grey-base);\n border-color: var(--colors-neutral-grey-base);\n color: var(--colors-neutral-ink-light);\n cursor: default;\n }\n\n &:checked:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='%23637381' /></svg>\");\n }\n\n &:indeterminate:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='%23637381'/></svg>\");\n }\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,2zEAAA;AACA,aAAA,CAAA,OAAA,CAAA,gBAAA;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import insertStyle from '../../_virtual/____insertStyle.js';
|
|
2
|
+
|
|
3
|
+
insertStyle("._input_r02q7_1 {\n appearance: none;\n width: 18px;\n height: 18px;\n background-color: transparent;\n border: 2px solid var(--colors-neutral-ink-lightest);\n border-radius: var(--radius-base);\n cursor: pointer;\n flex-shrink: 0;\n transition: box-shadow 0.1s, background-color 0.1s;\n}\n._input_r02q7_1:checked {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='white' /></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n}\n._input_r02q7_1:hover {\n border-color: var(--colors-secondary-blue-base);\n}\n._input_r02q7_1:active {\n border-color: var(--colors-secondary-blue-base);\n}\n._input_r02q7_1:focus {\n box-shadow: 0 0 0 var(--sizes-xs) var(--colors-secondary-blue-light);\n outline: 0;\n}\n._input_r02q7_1:indeterminate {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='white'/></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n}\n._input_r02q7_1:disabled {\n box-shadow: none;\n background-color: var(--colors-neutral-grey-base);\n border-color: var(--colors-neutral-grey-base);\n color: var(--colors-neutral-ink-light);\n cursor: default;\n}\n._input_r02q7_1:checked:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='%23637381' /></svg>\");\n}\n._input_r02q7_1:indeterminate:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='%23637381'/></svg>\");\n}");
|
|
4
|
+
var styles = {"input":"_input_r02q7_1"};
|
|
5
|
+
|
|
6
|
+
export { styles as default };
|
|
7
|
+
//# sourceMappingURL=Checkbox.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.module.scss.js","sources":["../../../src/components/Checkbox/Checkbox.module.scss"],"sourcesContent":[".input {\n appearance: none;\n width: 18px;\n height: 18px;\n background-color: transparent;\n border: 2px solid var(--colors-neutral-ink-lightest);\n border-radius: var(--radius-base);\n cursor: pointer;\n flex-shrink: 0;\n transition:\n box-shadow 0.1s,\n background-color 0.1s;\n\n &:checked {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='white' /></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n }\n\n &:hover {\n border-color: var(--colors-secondary-blue-base);\n }\n\n &:active {\n border-color: var(--colors-secondary-blue-base);\n }\n\n &:focus {\n box-shadow: 0 0 0 var(--sizes-xs) var(--colors-secondary-blue-light);\n outline: 0;\n }\n\n &:indeterminate {\n background-color: var(--colors-secondary-blue-base);\n border-color: var(--colors-secondary-blue-base);\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='white'/></svg>\");\n background-repeat: no-repeat;\n background-size: var(--sizes-4);\n background-position: center;\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--colors-neutral-grey-base);\n border-color: var(--colors-neutral-grey-base);\n color: var(--colors-neutral-ink-light);\n cursor: default;\n }\n\n &:checked:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M8.56846 16.3657L3.86697 11.6642L2.2998 13.2313L8.56846 19.5L22.0013 6.06716L20.4341 4.5L8.56846 16.3657Z' fill='%23637381' /></svg>\");\n }\n\n &:indeterminate:disabled {\n background-image: url(\"data:image/svg+xml;utf-8,<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><rect x='5' y='11' width='14' height='3' fill='%23637381'/></svg>\");\n }\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,2zEAAA;AACA,aAAA,CAAA,OAAA,CAAA,gBAAA;;;;"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
+
var buildClassnames = require('../../utils/buildClassnames.cjs');
|
|
5
|
+
require('uid/secure');
|
|
4
6
|
var Stack = require('../Stack/Stack.cjs');
|
|
5
7
|
var index = require('../../theme/index.cjs');
|
|
6
|
-
var
|
|
8
|
+
var Tooltip = require('../Tooltip/Tooltip.cjs');
|
|
7
9
|
var HelpIcon = require('../../icons/design-system/components/HelpIcon.cjs');
|
|
8
10
|
var Text = require('../Text/Text.cjs');
|
|
11
|
+
var Choice_module = require('./Choice.module.scss.cjs');
|
|
9
12
|
|
|
10
13
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
14
|
|
|
@@ -19,23 +22,30 @@ const generateClassNames = (prefix) => ({
|
|
|
19
22
|
});
|
|
20
23
|
const Choice = ({ htmlFor, className, label, hint, tooltip, tooltipContent, error, bordered, Badge, Accessory, Footer, children, disabled = false, labelVariant = 'body', inputPosition = 'left', }) => {
|
|
21
24
|
const classNames = generateClassNames(className);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
Accessory
|
|
25
|
-
|
|
25
|
+
const inputLayoutClass = [
|
|
26
|
+
Choice_module['input-layout'],
|
|
27
|
+
Accessory ? Choice_module['align-center'] : Choice_module['align-top'],
|
|
28
|
+
].join(' ');
|
|
29
|
+
const wrapperClass = buildClassnames.buildClassnames([
|
|
30
|
+
Choice_module.wrapper,
|
|
31
|
+
bordered && Choice_module.bordered,
|
|
32
|
+
disabled && Choice_module.disabled,
|
|
33
|
+
className,
|
|
34
|
+
]);
|
|
35
|
+
const contentMarkup = (React__default.default.createElement("div", { className: Choice_module['root-layout'] },
|
|
36
|
+
inputPosition === 'left' && React__default.default.createElement("div", { className: inputLayoutClass }, children),
|
|
37
|
+
Accessory && React__default.default.createElement("div", { className: Choice_module['accessory-layout'] }, Accessory),
|
|
38
|
+
label || hint || error || Badge || Footer ? (React__default.default.createElement("div", { className: Choice_module['text-layout'] },
|
|
26
39
|
React__default.default.createElement(Stack.Stack, { direction: "horizontal", alignY: "center", spacing: "sm" },
|
|
27
40
|
Badge,
|
|
28
41
|
label && (React__default.default.createElement(Text.Text, { variant: labelVariant, className: classNames.label }, label)),
|
|
29
|
-
(tooltip || tooltipContent) && (React__default.default.createElement(
|
|
42
|
+
(tooltip || tooltipContent) && (React__default.default.createElement(Tooltip.Tooltip, { text: tooltip, content: tooltipContent, className: classNames.tooltip },
|
|
30
43
|
React__default.default.createElement(HelpIcon.ReactComponent, { "data-testid": "tooltip-help", name: "help", width: index.theme.sizes.base, color: index.theme.colors.neutral.ink.lightest })))),
|
|
31
44
|
hint && (React__default.default.createElement(Text.Text, { id: `hint-${htmlFor}`, variant: "hintText", className: classNames.hint }, hint)),
|
|
32
45
|
error && (React__default.default.createElement(Text.Text, { variant: "error", className: classNames.error }, error)),
|
|
33
46
|
Footer)) : null,
|
|
34
|
-
inputPosition === 'right' &&
|
|
35
|
-
|
|
36
|
-
return (React__default.default.createElement(styled.BorderedWrapper, { disabled: disabled, className: className }, contentMarkup));
|
|
37
|
-
}
|
|
38
|
-
return (React__default.default.createElement(styled.Wrapper, { disabled: disabled, className: className }, contentMarkup));
|
|
47
|
+
inputPosition === 'right' && React__default.default.createElement("div", { className: inputLayoutClass }, children)));
|
|
48
|
+
return (React__default.default.createElement("label", { htmlFor: htmlFor, className: wrapperClass }, contentMarkup));
|
|
39
49
|
};
|
|
40
50
|
|
|
41
51
|
exports.Choice = Choice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Choice.cjs","sources":["../../../src/components/Choice/Choice.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Stack } from '../Stack';\nimport { theme } from '../../theme';\
|
|
1
|
+
{"version":3,"file":"Choice.cjs","sources":["../../../src/components/Choice/Choice.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { buildClassnames } from '../../utils';\nimport { Stack } from '../Stack';\nimport { theme } from '../../theme';\nimport { Tooltip } from '../Tooltip';\nimport { HelpIcon } from '../../icons';\nimport { Text } from '../Text';\nimport { TextVariant } from '../Text/types';\n\nimport styles from './Choice.module.scss';\n\nexport interface ForwardedChoiceProps {\n className?: string;\n disabled?: boolean;\n label?: ReactNode;\n hint?: ReactNode;\n tooltip?: string;\n tooltipContent?: ReactNode;\n error?: ReactNode;\n bordered?: boolean;\n Badge?: ReactNode;\n Accessory?: ReactNode;\n Footer?: ReactNode;\n inputPosition?: 'left' | 'right';\n labelVariant?: TextVariant;\n}\n\nexport interface ChoiceProps extends ForwardedChoiceProps {\n htmlFor: string;\n children: ReactNode;\n}\n\nconst generateClassNames = (prefix?: string): any => ({\n hint: prefix ? 'choice__hint' : undefined,\n label: prefix ? 'choice__label' : undefined,\n tooltip: prefix ? 'choice__tooltip' : undefined,\n error: prefix ? 'choice__error' : undefined,\n});\n\nexport const Choice = ({\n htmlFor,\n className,\n label,\n hint,\n tooltip,\n tooltipContent,\n error,\n bordered,\n Badge,\n Accessory,\n Footer,\n children,\n disabled = false,\n labelVariant = 'body',\n inputPosition = 'left',\n}: ChoiceProps) => {\n const classNames = generateClassNames(className);\n\n const inputLayoutClass = [\n styles['input-layout'],\n Accessory ? styles['align-center'] : styles['align-top'],\n ].join(' ');\n\n const wrapperClass = buildClassnames([\n styles.wrapper,\n bordered && styles.bordered,\n disabled && styles.disabled,\n className,\n ]);\n\n const contentMarkup = (\n <div className={styles['root-layout']}>\n {inputPosition === 'left' && <div className={inputLayoutClass}>{children}</div>}\n {Accessory && <div className={styles['accessory-layout']}>{Accessory}</div>}\n {label || hint || error || Badge || Footer ? (\n <div className={styles['text-layout']}>\n <Stack direction=\"horizontal\" alignY=\"center\" spacing=\"sm\">\n {Badge}\n {label && (\n <Text variant={labelVariant} className={classNames.label}>\n {label}\n </Text>\n )}\n {(tooltip || tooltipContent) && (\n <Tooltip text={tooltip} content={tooltipContent} className={classNames.tooltip}>\n <HelpIcon\n data-testid=\"tooltip-help\"\n name=\"help\"\n width={theme.sizes.base}\n color={theme.colors.neutral.ink.lightest}\n />\n </Tooltip>\n )}\n </Stack>\n {hint && (\n <Text id={`hint-${htmlFor}`} variant=\"hintText\" className={classNames.hint}>\n {hint}\n </Text>\n )}\n {error && (\n <Text variant=\"error\" className={classNames.error}>\n {error}\n </Text>\n )}\n {Footer}\n </div>\n ) : null}\n {inputPosition === 'right' && <div className={inputLayoutClass}>{children}</div>}\n </div>\n );\n\n return (\n <label htmlFor={htmlFor} className={wrapperClass}>\n {contentMarkup}\n </label>\n );\n};\n"],"names":["styles","buildClassnames","React","Stack","Text","Tooltip","HelpIcon","theme"],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
+
import { buildClassnames } from '../../utils/buildClassnames.js';
|
|
3
|
+
import 'uid/secure';
|
|
2
4
|
import { Stack } from '../Stack/Stack.js';
|
|
3
5
|
import { theme } from '../../theme/index.js';
|
|
4
|
-
import {
|
|
6
|
+
import { Tooltip } from '../Tooltip/Tooltip.js';
|
|
5
7
|
import { ReactComponent as HelpIcon } from '../../icons/design-system/components/HelpIcon.js';
|
|
6
8
|
import { Text } from '../Text/Text.js';
|
|
9
|
+
import styles from './Choice.module.scss.js';
|
|
7
10
|
|
|
8
11
|
const generateClassNames = (prefix) => ({
|
|
9
12
|
hint: prefix ? 'choice__hint' : undefined,
|
|
@@ -13,23 +16,30 @@ const generateClassNames = (prefix) => ({
|
|
|
13
16
|
});
|
|
14
17
|
const Choice = ({ htmlFor, className, label, hint, tooltip, tooltipContent, error, bordered, Badge, Accessory, Footer, children, disabled = false, labelVariant = 'body', inputPosition = 'left', }) => {
|
|
15
18
|
const classNames = generateClassNames(className);
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
Accessory
|
|
19
|
-
|
|
19
|
+
const inputLayoutClass = [
|
|
20
|
+
styles['input-layout'],
|
|
21
|
+
Accessory ? styles['align-center'] : styles['align-top'],
|
|
22
|
+
].join(' ');
|
|
23
|
+
const wrapperClass = buildClassnames([
|
|
24
|
+
styles.wrapper,
|
|
25
|
+
bordered && styles.bordered,
|
|
26
|
+
disabled && styles.disabled,
|
|
27
|
+
className,
|
|
28
|
+
]);
|
|
29
|
+
const contentMarkup = (React__default.createElement("div", { className: styles['root-layout'] },
|
|
30
|
+
inputPosition === 'left' && React__default.createElement("div", { className: inputLayoutClass }, children),
|
|
31
|
+
Accessory && React__default.createElement("div", { className: styles['accessory-layout'] }, Accessory),
|
|
32
|
+
label || hint || error || Badge || Footer ? (React__default.createElement("div", { className: styles['text-layout'] },
|
|
20
33
|
React__default.createElement(Stack, { direction: "horizontal", alignY: "center", spacing: "sm" },
|
|
21
34
|
Badge,
|
|
22
35
|
label && (React__default.createElement(Text, { variant: labelVariant, className: classNames.label }, label)),
|
|
23
|
-
(tooltip || tooltipContent) && (React__default.createElement(
|
|
36
|
+
(tooltip || tooltipContent) && (React__default.createElement(Tooltip, { text: tooltip, content: tooltipContent, className: classNames.tooltip },
|
|
24
37
|
React__default.createElement(HelpIcon, { "data-testid": "tooltip-help", name: "help", width: theme.sizes.base, color: theme.colors.neutral.ink.lightest })))),
|
|
25
38
|
hint && (React__default.createElement(Text, { id: `hint-${htmlFor}`, variant: "hintText", className: classNames.hint }, hint)),
|
|
26
39
|
error && (React__default.createElement(Text, { variant: "error", className: classNames.error }, error)),
|
|
27
40
|
Footer)) : null,
|
|
28
|
-
inputPosition === 'right' &&
|
|
29
|
-
|
|
30
|
-
return (React__default.createElement(BorderedWrapper, { disabled: disabled, className: className }, contentMarkup));
|
|
31
|
-
}
|
|
32
|
-
return (React__default.createElement(Wrapper, { disabled: disabled, className: className }, contentMarkup));
|
|
41
|
+
inputPosition === 'right' && React__default.createElement("div", { className: inputLayoutClass }, children)));
|
|
42
|
+
return (React__default.createElement("label", { htmlFor: htmlFor, className: wrapperClass }, contentMarkup));
|
|
33
43
|
};
|
|
34
44
|
|
|
35
45
|
export { Choice };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Choice.js","sources":["../../../src/components/Choice/Choice.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Stack } from '../Stack';\nimport { theme } from '../../theme';\
|
|
1
|
+
{"version":3,"file":"Choice.js","sources":["../../../src/components/Choice/Choice.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { buildClassnames } from '../../utils';\nimport { Stack } from '../Stack';\nimport { theme } from '../../theme';\nimport { Tooltip } from '../Tooltip';\nimport { HelpIcon } from '../../icons';\nimport { Text } from '../Text';\nimport { TextVariant } from '../Text/types';\n\nimport styles from './Choice.module.scss';\n\nexport interface ForwardedChoiceProps {\n className?: string;\n disabled?: boolean;\n label?: ReactNode;\n hint?: ReactNode;\n tooltip?: string;\n tooltipContent?: ReactNode;\n error?: ReactNode;\n bordered?: boolean;\n Badge?: ReactNode;\n Accessory?: ReactNode;\n Footer?: ReactNode;\n inputPosition?: 'left' | 'right';\n labelVariant?: TextVariant;\n}\n\nexport interface ChoiceProps extends ForwardedChoiceProps {\n htmlFor: string;\n children: ReactNode;\n}\n\nconst generateClassNames = (prefix?: string): any => ({\n hint: prefix ? 'choice__hint' : undefined,\n label: prefix ? 'choice__label' : undefined,\n tooltip: prefix ? 'choice__tooltip' : undefined,\n error: prefix ? 'choice__error' : undefined,\n});\n\nexport const Choice = ({\n htmlFor,\n className,\n label,\n hint,\n tooltip,\n tooltipContent,\n error,\n bordered,\n Badge,\n Accessory,\n Footer,\n children,\n disabled = false,\n labelVariant = 'body',\n inputPosition = 'left',\n}: ChoiceProps) => {\n const classNames = generateClassNames(className);\n\n const inputLayoutClass = [\n styles['input-layout'],\n Accessory ? styles['align-center'] : styles['align-top'],\n ].join(' ');\n\n const wrapperClass = buildClassnames([\n styles.wrapper,\n bordered && styles.bordered,\n disabled && styles.disabled,\n className,\n ]);\n\n const contentMarkup = (\n <div className={styles['root-layout']}>\n {inputPosition === 'left' && <div className={inputLayoutClass}>{children}</div>}\n {Accessory && <div className={styles['accessory-layout']}>{Accessory}</div>}\n {label || hint || error || Badge || Footer ? (\n <div className={styles['text-layout']}>\n <Stack direction=\"horizontal\" alignY=\"center\" spacing=\"sm\">\n {Badge}\n {label && (\n <Text variant={labelVariant} className={classNames.label}>\n {label}\n </Text>\n )}\n {(tooltip || tooltipContent) && (\n <Tooltip text={tooltip} content={tooltipContent} className={classNames.tooltip}>\n <HelpIcon\n data-testid=\"tooltip-help\"\n name=\"help\"\n width={theme.sizes.base}\n color={theme.colors.neutral.ink.lightest}\n />\n </Tooltip>\n )}\n </Stack>\n {hint && (\n <Text id={`hint-${htmlFor}`} variant=\"hintText\" className={classNames.hint}>\n {hint}\n </Text>\n )}\n {error && (\n <Text variant=\"error\" className={classNames.error}>\n {error}\n </Text>\n )}\n {Footer}\n </div>\n ) : null}\n {inputPosition === 'right' && <div className={inputLayoutClass}>{children}</div>}\n </div>\n );\n\n return (\n <label htmlFor={htmlFor} className={wrapperClass}>\n {contentMarkup}\n </label>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
|
+
|
|
5
|
+
___$insertStyle("._wrapper_jvoun_1 {\n box-sizing: border-box;\n}\n._wrapper_jvoun_1:hover {\n cursor: pointer;\n}\n._wrapper_jvoun_1._disabled_jvoun_7:hover {\n cursor: default;\n}\n\n._bordered_jvoun_11 {\n border: 2px solid var(--colors-neutral-grey-dark);\n border-radius: var(--radius-md);\n padding: var(--sizes-base) var(--sizes-3);\n}\n._bordered_jvoun_11:not(._disabled_jvoun_7):hover {\n border-color: var(--colors-secondary-blue-base);\n}\n\n._root-layout_jvoun_20 {\n display: flex;\n align-items: center;\n}\n._root-layout_jvoun_20 > * + * {\n margin-left: var(--sizes-base);\n}\n\n._input-layout_jvoun_28 {\n align-self: stretch;\n display: flex;\n}\n._input-layout_jvoun_28._align-top_jvoun_32 {\n align-items: flex-start;\n}\n._input-layout_jvoun_28._align-center_jvoun_35 {\n align-items: center;\n}\n\n._accessory-layout_jvoun_39 {\n align-self: center;\n display: flex;\n align-items: center;\n}\n\n._text-layout_jvoun_45 {\n flex: 1;\n}\n._text-layout_jvoun_45 > * + * {\n margin-top: var(--sizes-sm);\n}");
|
|
6
|
+
var styles = {"wrapper":"_wrapper_jvoun_1","disabled":"_disabled_jvoun_7","bordered":"_bordered_jvoun_11","root-layout":"_root-layout_jvoun_20","input-layout":"_input-layout_jvoun_28","align-top":"_align-top_jvoun_32","align-center":"_align-center_jvoun_35","accessory-layout":"_accessory-layout_jvoun_39","text-layout":"_text-layout_jvoun_45"};
|
|
7
|
+
|
|
8
|
+
module.exports = styles;
|
|
9
|
+
//# sourceMappingURL=Choice.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Choice.module.scss.cjs","sources":["../../../src/components/Choice/Choice.module.scss"],"sourcesContent":[".wrapper {\n box-sizing: border-box;\n\n &:hover {\n cursor: pointer;\n }\n\n &.disabled:hover {\n cursor: default;\n }\n}\n\n.bordered {\n border: 2px solid var(--colors-neutral-grey-dark);\n border-radius: var(--radius-md);\n padding: var(--sizes-base) var(--sizes-3);\n\n &:not(.disabled):hover {\n border-color: var(--colors-secondary-blue-base);\n }\n}\n\n.root-layout {\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: var(--sizes-base);\n }\n}\n\n.input-layout {\n align-self: stretch;\n display: flex;\n\n &.align-top {\n align-items: flex-start;\n }\n\n &.align-center {\n align-items: center;\n }\n}\n\n.accessory-layout {\n align-self: center;\n display: flex;\n align-items: center;\n}\n\n.text-layout {\n flex: 1;\n\n & > * + * {\n margin-top: var(--sizes-sm);\n }\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,ogCAAA;;;;;"}
|