@aivenio/aquarium 4.9.0 → 5.0.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/_variables.scss +302 -302
- package/dist/atoms.cjs +1948 -1765
- package/dist/atoms.mjs +1767 -1588
- package/dist/charts.cjs +0 -209
- package/dist/charts.mjs +0 -209
- package/dist/src/atoms/Alert/Alert.js +63 -26
- package/dist/src/atoms/Banner/Banner.js +47 -18
- package/dist/src/atoms/Button/Button.d.ts +2 -2
- package/dist/src/atoms/Button/Button.js +3 -12
- package/dist/src/atoms/Card/Card.js +130 -30
- package/dist/src/atoms/Checkbox/Checkbox.js +27 -16
- package/dist/src/atoms/Chip/Chip.js +12 -6
- package/dist/src/atoms/ChoiceChip/ChoiceChip.d.ts +57 -0
- package/dist/src/atoms/ChoiceChip/ChoiceChip.js +51 -0
- package/dist/src/atoms/DataList/DataList.js +117 -32
- package/dist/src/atoms/DatePicker/RangeCalendar.js +10 -3
- package/dist/src/atoms/DropdownMenu/DropdownMenu.d.ts +0 -131
- package/dist/src/atoms/DropdownMenu/DropdownMenu.js +4 -4
- package/dist/src/atoms/Link/Link.js +4 -5
- package/dist/src/atoms/Navigation/Navigation.js +59 -22
- package/dist/src/atoms/PageHeader/PageHeader.js +18 -7
- package/dist/src/atoms/ProgressBar/ProgressBar.js +22 -11
- package/dist/src/atoms/RadioButton/RadioButton.js +12 -6
- package/dist/src/atoms/Section/Section.js +29 -11
- package/dist/src/atoms/Select/Select.js +92 -36
- package/dist/src/atoms/Stepper/Stepper.js +92 -30
- package/dist/src/atoms/Switch/Switch.js +24 -10
- package/dist/src/atoms/Table/Table.d.ts +294 -2
- package/dist/src/atoms/Table/Table.js +120 -35
- package/dist/src/atoms/Toast/Toast.d.ts +146 -0
- package/dist/src/atoms/Toast/Toast.js +34 -16
- package/dist/src/atoms/index.d.ts +1 -0
- package/dist/src/atoms/index.js +2 -1
- package/dist/src/molecules/Badge/Badge.js +3 -2
- package/dist/src/molecules/ChoiceChipGroup/ChoiceChipGroup.d.ts +65 -0
- package/dist/src/molecules/ChoiceChipGroup/ChoiceChipGroup.js +57 -0
- package/dist/src/molecules/Combobox/Combobox.js +2 -2
- package/dist/src/molecules/Drawer/Drawer.js +12 -4
- package/dist/src/molecules/Modal/Modal.js +12 -4
- package/dist/src/molecules/TagLabel/TagLabel.js +3 -2
- package/dist/src/molecules/index.d.ts +2 -1
- package/dist/src/molecules/index.js +3 -2
- package/dist/src/tokens/tokens.json +0 -209
- package/dist/styles.css +373 -368
- package/dist/system.cjs +2087 -1870
- package/dist/system.mjs +1909 -1693
- package/dist/tokens.json +0 -209
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/designTokens.d.ts +1 -1
- package/package.json +4 -4
- package/dist/src/molecules/ChoiceChip/ChoiceChip.d.ts +0 -24
- package/dist/src/molecules/ChoiceChip/ChoiceChip.js +0 -34
|
@@ -10,33 +10,60 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import {
|
|
13
|
+
import { tv } from 'tailwind-variants';
|
|
14
14
|
import { Box } from '../../../src/molecules/Box/Box';
|
|
15
15
|
import { Typography } from '../../../src/atoms/Typography/Typography';
|
|
16
|
+
const bannerStyles = tv({
|
|
17
|
+
slots: {
|
|
18
|
+
base: 'rounded flex justify-between gap-7 flex-nowrap p-6',
|
|
19
|
+
title: '',
|
|
20
|
+
description: '',
|
|
21
|
+
contentContainer: 'flex w-full',
|
|
22
|
+
actions: 'flex gap-4',
|
|
23
|
+
dismissContainer: '',
|
|
24
|
+
},
|
|
25
|
+
variants: {
|
|
26
|
+
layout: {
|
|
27
|
+
horizontal: {
|
|
28
|
+
base: 'items-center',
|
|
29
|
+
contentContainer: 'flex-row flex-nowrap gap-7 items-center',
|
|
30
|
+
dismissContainer: 'self-center',
|
|
31
|
+
},
|
|
32
|
+
vertical: {
|
|
33
|
+
title: 'mb-3',
|
|
34
|
+
contentContainer: 'flex-col',
|
|
35
|
+
actions: 'mt-5',
|
|
36
|
+
dismissContainer: 'self-start',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
variant: {
|
|
40
|
+
default: { base: 'bg-muted' },
|
|
41
|
+
outlined: { base: 'bg-body border border-muted' },
|
|
42
|
+
},
|
|
43
|
+
flexGrow: {
|
|
44
|
+
true: { description: 'flex-grow' },
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|
|
16
48
|
export const Banner = (_a) => {
|
|
17
49
|
var { children, className, layout, variant } = _a, rest = __rest(_a, ["children", "className", "layout", "variant"]);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
'bg-muted': variant === 'default',
|
|
21
|
-
'bg-body border border-muted': variant === 'outlined',
|
|
22
|
-
}) }), children));
|
|
50
|
+
const { base } = bannerStyles({ layout, variant });
|
|
51
|
+
return (React.createElement("div", Object.assign({}, rest, { className: base({ className }) }), children));
|
|
23
52
|
};
|
|
24
53
|
Banner.Title = (_a) => {
|
|
25
54
|
var { children, className, layout } = _a, rest = __rest(_a, ["children", "className", "layout"]);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}) }), children));
|
|
55
|
+
const { title } = bannerStyles({ layout });
|
|
56
|
+
return (React.createElement(Typography, Object.assign({}, rest, { variant: "subheading", color: "intense", className: title({ className }) }), children));
|
|
29
57
|
};
|
|
30
58
|
Banner.Description = (_a) => {
|
|
31
|
-
var { flexGrow, children, className } = _a, rest = __rest(_a, ["flexGrow", "children", "className"]);
|
|
32
|
-
|
|
59
|
+
var { flexGrow = false, children, className } = _a, rest = __rest(_a, ["flexGrow", "children", "className"]);
|
|
60
|
+
const { description } = bannerStyles({ flexGrow });
|
|
61
|
+
return (React.createElement(Typography, Object.assign({}, rest, { variant: "default", className: description({ className }) }), children));
|
|
33
62
|
};
|
|
34
63
|
Banner.ContentContainer = (_a) => {
|
|
35
64
|
var { layout, children, className } = _a, rest = __rest(_a, ["layout", "children", "className"]);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
'flex-row flex-nowrap gap-7 items-center': layout === 'horizontal',
|
|
39
|
-
}) }), children));
|
|
65
|
+
const { contentContainer } = bannerStyles({ layout });
|
|
66
|
+
return (React.createElement("div", Object.assign({}, rest, { className: contentContainer({ className }) }), children));
|
|
40
67
|
};
|
|
41
68
|
Banner.ImageContainer = (_a) => {
|
|
42
69
|
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
@@ -44,10 +71,12 @@ Banner.ImageContainer = (_a) => {
|
|
|
44
71
|
};
|
|
45
72
|
Banner.Actions = (_a) => {
|
|
46
73
|
var { children, className, layout } = _a, rest = __rest(_a, ["children", "className", "layout"]);
|
|
47
|
-
|
|
74
|
+
const { actions } = bannerStyles({ layout });
|
|
75
|
+
return (React.createElement("div", Object.assign({}, rest, { className: actions({ className }) }), children));
|
|
48
76
|
};
|
|
49
77
|
Banner.DismissContainer = (_a) => {
|
|
50
78
|
var { layout, children, className } = _a, rest = __rest(_a, ["layout", "children", "className"]);
|
|
51
|
-
|
|
79
|
+
const { dismissContainer } = bannerStyles({ layout });
|
|
80
|
+
return (React.createElement("div", Object.assign({}, rest, { className: dismissContainer({ className }) }), children));
|
|
52
81
|
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F0b21zL0Jhbm5lci9CYW5uZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxPQUFPLEVBQUUsR0FBRyxFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBRTNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQXlCN0QsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxvREFBb0Q7UUFDMUQsS0FBSyxFQUFFLEVBQUU7UUFDVCxXQUFXLEVBQUUsRUFBRTtRQUNmLGdCQUFnQixFQUFFLGFBQWE7UUFDL0IsT0FBTyxFQUFFLFlBQVk7UUFDckIsZ0JBQWdCLEVBQUUsRUFBRTtLQUNyQjtJQUNELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRTtZQUNOLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsY0FBYztnQkFDcEIsZ0JBQWdCLEVBQUUseUNBQXlDO2dCQUMzRCxnQkFBZ0IsRUFBRSxhQUFhO2FBQ2hDO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxNQUFNO2dCQUNiLGdCQUFnQixFQUFFLFVBQVU7Z0JBQzVCLE9BQU8sRUFBRSxNQUFNO2dCQUNmLGdCQUFnQixFQUFFLFlBQVk7YUFDL0I7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0IsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFFO1NBQ2xEO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtTQUNuQztLQUNGO0NBQ0YsQ0FBQyxDQUFD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
|
|
@@ -15,7 +15,7 @@ export declare const buttonClasses: import("tailwind-variants").TVReturnType<{
|
|
|
15
15
|
fullWidth: {
|
|
16
16
|
true: string;
|
|
17
17
|
};
|
|
18
|
-
}, undefined,
|
|
18
|
+
}, undefined, "Aquarium-Button whitespace-nowrap transition text-center text-primary-intense rounded-sm relative px-4 py-3 inline-flex gap-3 items-center justify-center", import("tailwind-variants/dist/config").TVConfig<{
|
|
19
19
|
kind: {
|
|
20
20
|
primary: string;
|
|
21
21
|
secondary: string;
|
|
@@ -71,7 +71,7 @@ export declare const buttonClasses: import("tailwind-variants").TVReturnType<{
|
|
|
71
71
|
loading: {
|
|
72
72
|
true: string;
|
|
73
73
|
};
|
|
74
|
-
}, undefined,
|
|
74
|
+
}, undefined, "active:text-primary-active disabled:text-primary-inactive disabled:bg-body", import("tailwind-variants/dist/config").TVConfig<{
|
|
75
75
|
kind: {
|
|
76
76
|
primary: string[];
|
|
77
77
|
secondary: string[];
|
|
@@ -17,7 +17,7 @@ import { loading as loadingIcon } from '../../../src/icons';
|
|
|
17
17
|
import { focusRingStyle, interactiveTextStyles } from '../../../src/utils/constants';
|
|
18
18
|
const buttonStateClasses = tv({
|
|
19
19
|
extend: focusRingStyle,
|
|
20
|
-
base:
|
|
20
|
+
base: 'active:text-primary-active disabled:text-primary-inactive disabled:bg-body',
|
|
21
21
|
variants: {
|
|
22
22
|
kind: {
|
|
23
23
|
primary: [
|
|
@@ -44,16 +44,7 @@ const buttonStateClasses = tv({
|
|
|
44
44
|
});
|
|
45
45
|
export const buttonClasses = tv({
|
|
46
46
|
extend: buttonStateClasses,
|
|
47
|
-
base:
|
|
48
|
-
'Aquarium-Button',
|
|
49
|
-
'whitespace-nowrap',
|
|
50
|
-
'transition',
|
|
51
|
-
'text-center text-primary-intense',
|
|
52
|
-
'rounded-sm',
|
|
53
|
-
'relative',
|
|
54
|
-
'px-4 py-3',
|
|
55
|
-
'inline-flex gap-3 items-center justify-center',
|
|
56
|
-
],
|
|
47
|
+
base: 'Aquarium-Button whitespace-nowrap transition text-center text-primary-intense rounded-sm relative px-4 py-3 inline-flex gap-3 items-center justify-center',
|
|
57
48
|
variants: {
|
|
58
49
|
kind: {
|
|
59
50
|
primary: 'Aquarium-Button.Primary text-white bg-primary-default icon-stroke-2',
|
|
@@ -114,4 +105,4 @@ export const Icon = (_a) => {
|
|
|
114
105
|
var { dense = false } = _a, props = __rest(_a, ["dense"]);
|
|
115
106
|
return (React.createElement(_Icon, Object.assign({}, props, { width: iconSize(dense), height: iconSize(dense) })));
|
|
116
107
|
};
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F0b21zL0J1dHRvbi9CdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFrQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJNUUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDNUIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsSUFBSSxFQUFFLDRFQUE0RTtJQUNsRixRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUU7Z0JBQ1AsNENBQTRDO2dCQUM1QywwQkFBMEI7Z0JBQzFCLCtDQUErQzthQUNoRDtZQUNELFNBQVMsRUFBRTtnQkFDVCxxREFBcUQ7Z0JBQ3JELHdCQUF3QjtnQkFDeEIsc0NBQXNDO2FBQ3ZDO1lBQ0QsS0FBSyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDcEMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQzdCLElBQUksRUFBRSxDQUFDLDRCQUE0QixFQUFFLHdCQUF3QixDQUFDO1NBQy9EO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLG9CQUFvQjtTQUMzQjtRQUNELE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxhQUFhO1NBQ3BCO0tBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsRUFB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
|
|
@@ -10,56 +10,156 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { clsx } from 'clsx';
|
|
14
13
|
import { isNumber } from 'lodash-es';
|
|
14
|
+
import { tv } from 'tailwind-variants';
|
|
15
15
|
import { Box } from '../../../src/molecules/Box/Box';
|
|
16
16
|
import { Typography } from '../../../src/molecules/Typography/Typography';
|
|
17
17
|
import { LineClamp } from '../../../src/atoms/LineClamp/LineClamp';
|
|
18
|
-
const
|
|
19
|
-
'
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const commonCardClasses = tv({
|
|
19
|
+
base: 'border-[2px] border-muted rounded-[2px] relative p-5 flex flex-col gap-5 bg-body outline-none transition-all',
|
|
20
|
+
variants: {
|
|
21
|
+
fullWidth: {
|
|
22
|
+
true: 'w-full',
|
|
23
|
+
false: 'w-[280px]',
|
|
24
|
+
},
|
|
25
|
+
enableMinWidth: {
|
|
26
|
+
true: '',
|
|
27
|
+
false: '',
|
|
28
|
+
},
|
|
29
|
+
disabled: {
|
|
30
|
+
true: 'bg-muted cursor-not-allowed focus:border-transparent opacity-50',
|
|
31
|
+
false: '',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
compoundVariants: [
|
|
35
|
+
{
|
|
36
|
+
fullWidth: true,
|
|
37
|
+
enableMinWidth: true,
|
|
38
|
+
class: 'min-w-[280px]',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
});
|
|
42
|
+
const cardClasses = tv({
|
|
43
|
+
extend: commonCardClasses,
|
|
44
|
+
variants: {
|
|
45
|
+
clickable: {
|
|
46
|
+
true: 'cursor-pointer hover:bg-primary-hover active:bg-body',
|
|
47
|
+
false: '',
|
|
48
|
+
},
|
|
49
|
+
modality: {
|
|
50
|
+
keyboard: '',
|
|
51
|
+
pointer: '',
|
|
52
|
+
undefined: '',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
compoundVariants: [
|
|
56
|
+
{
|
|
57
|
+
clickable: true,
|
|
58
|
+
modality: 'keyboard',
|
|
59
|
+
class: 'focusable',
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
});
|
|
63
|
+
const cardContentClasses = tv({
|
|
64
|
+
slots: {
|
|
65
|
+
colorHighlight: 'h-1 w-full absolute top-0 left-0 right-0',
|
|
66
|
+
imageContainer: '-mx-4',
|
|
67
|
+
image: 'w-full bg-cover object-cover',
|
|
68
|
+
content: 'flex flex-col flex-auto',
|
|
69
|
+
actions: 'flex gap-3 items-center',
|
|
70
|
+
},
|
|
71
|
+
variants: {
|
|
72
|
+
imageSize: {
|
|
73
|
+
full: {
|
|
74
|
+
imageContainer: '-mt-4',
|
|
75
|
+
image: 'h-[225px]',
|
|
76
|
+
},
|
|
77
|
+
normal: {
|
|
78
|
+
image: 'h-[174px]',
|
|
79
|
+
},
|
|
80
|
+
custom: {},
|
|
81
|
+
},
|
|
82
|
+
dense: {
|
|
83
|
+
true: {},
|
|
84
|
+
false: {
|
|
85
|
+
content: 'gap-4',
|
|
86
|
+
actions: 'pt-3',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
23
90
|
});
|
|
24
91
|
export const Card = React.forwardRef((props, ref) => {
|
|
25
92
|
const { disabled = false, clickable: _clickable, className, children, role = _clickable ? 'button' : undefined, modality, enableMinWidth, fullWidth } = props, rest = __rest(props, ["disabled", "clickable", "className", "children", "role", "modality", "enableMinWidth", "fullWidth"]);
|
|
26
93
|
const clickable = Boolean(role !== undefined && !disabled);
|
|
27
|
-
return (React.createElement("div", Object.assign({ ref: ref, role: role }, rest, { className:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
94
|
+
return (React.createElement("div", Object.assign({ ref: ref, role: role }, rest, { className: cardClasses({
|
|
95
|
+
fullWidth,
|
|
96
|
+
enableMinWidth,
|
|
97
|
+
disabled,
|
|
98
|
+
clickable: clickable && !disabled,
|
|
99
|
+
modality,
|
|
100
|
+
className,
|
|
101
|
+
}) }), children));
|
|
102
|
+
});
|
|
103
|
+
const labelCardClasses = tv({
|
|
104
|
+
extend: commonCardClasses,
|
|
105
|
+
variants: {
|
|
106
|
+
checked: {
|
|
107
|
+
true: 'border-primary-default',
|
|
108
|
+
false: '',
|
|
109
|
+
},
|
|
110
|
+
modality: {
|
|
111
|
+
keyboard: '',
|
|
112
|
+
pointer: '',
|
|
113
|
+
undefined: '',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
compoundVariants: [
|
|
117
|
+
{
|
|
118
|
+
disabled: false,
|
|
119
|
+
class: 'cursor-pointer hover:bg-primary-hover active:bg-body',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
modality: 'keyboard',
|
|
123
|
+
class: 'focusable',
|
|
124
|
+
},
|
|
125
|
+
],
|
|
31
126
|
});
|
|
32
127
|
const Label = (props) => {
|
|
33
|
-
const { className, checked = false, children, modality, enableMinWidth, fullWidth, disabled } = props, rest = __rest(props, ["className", "checked", "children", "modality", "enableMinWidth", "fullWidth", "disabled"]);
|
|
34
|
-
return (React.createElement("label", Object.assign({}, rest, { className:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
128
|
+
const { className, checked = false, children, modality, enableMinWidth = true, fullWidth = false, disabled = false } = props, rest = __rest(props, ["className", "checked", "children", "modality", "enableMinWidth", "fullWidth", "disabled"]);
|
|
129
|
+
return (React.createElement("label", Object.assign({}, rest, { className: labelCardClasses({
|
|
130
|
+
fullWidth,
|
|
131
|
+
enableMinWidth,
|
|
132
|
+
disabled,
|
|
133
|
+
checked,
|
|
134
|
+
modality,
|
|
135
|
+
className,
|
|
136
|
+
}) }), children));
|
|
39
137
|
};
|
|
40
138
|
const ColorHighlight = (_a) => {
|
|
41
139
|
var { color, className } = _a, rest = __rest(_a, ["color", "className"]);
|
|
42
|
-
|
|
140
|
+
const { colorHighlight } = cardContentClasses();
|
|
141
|
+
return React.createElement(Box, Object.assign({}, rest, { backgroundColor: color, className: colorHighlight({ className }) }));
|
|
43
142
|
};
|
|
44
143
|
const ImageContainer = (_a) => {
|
|
45
144
|
var { className, fullSize } = _a, rest = __rest(_a, ["className", "fullSize"]);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
145
|
+
const { imageContainer } = cardContentClasses({ imageSize: fullSize ? 'full' : 'normal' });
|
|
146
|
+
return React.createElement("div", Object.assign({}, rest, { className: imageContainer({ className }) }));
|
|
147
|
+
};
|
|
148
|
+
const Image = ({ image: imageSrc, imageAlt, fullSize = false, imageHeight }) => {
|
|
149
|
+
const imageSize = imageHeight ? 'custom' : fullSize ? 'full' : 'normal';
|
|
150
|
+
const { image } = cardContentClasses({ imageSize });
|
|
151
|
+
return (React.createElement("img", { src: imageSrc, alt: imageAlt, className: image(), style: imageHeight ? { height: isNumber(imageHeight) ? `${imageHeight}px` : imageHeight } : undefined }));
|
|
49
152
|
};
|
|
50
|
-
const classes = 'w-full bg-cover object-cover';
|
|
51
|
-
const Image = ({ image, imageAlt, fullSize = false, imageHeight }) => (React.createElement("img", { src: image, alt: imageAlt, className: clsx(classes, {
|
|
52
|
-
'h-[174px]': !imageHeight && !fullSize,
|
|
53
|
-
'h-[225px]': !imageHeight && fullSize,
|
|
54
|
-
}), style: { height: isNumber(imageHeight) ? `${imageHeight}px` : imageHeight } }));
|
|
55
153
|
const Title = (props) => (React.createElement(Box.Flex, Object.assign({ component: "div", alignItems: "center", gap: "2" }, props)));
|
|
56
154
|
const Content = (_a) => {
|
|
57
|
-
var { className, dense } = _a, rest = __rest(_a, ["className", "dense"]);
|
|
58
|
-
|
|
155
|
+
var { className, dense = false } = _a, rest = __rest(_a, ["className", "dense"]);
|
|
156
|
+
const { content } = cardContentClasses({ dense });
|
|
157
|
+
return React.createElement("div", Object.assign({}, rest, { className: content({ className }) }));
|
|
59
158
|
};
|
|
60
159
|
const Actions = (_a) => {
|
|
61
|
-
var { className, dense } = _a, rest = __rest(_a, ["className", "dense"]);
|
|
62
|
-
|
|
160
|
+
var { className, dense = false } = _a, rest = __rest(_a, ["className", "dense"]);
|
|
161
|
+
const { actions } = cardContentClasses({ dense });
|
|
162
|
+
return React.createElement("div", Object.assign({}, rest, { className: actions({ className }) }));
|
|
63
163
|
};
|
|
64
164
|
Card.Label = Label;
|
|
65
165
|
Card.Title = Title;
|
|
@@ -81,4 +181,4 @@ export const getTitleContent = ({ title, clampTitle, dense = false, }) => {
|
|
|
81
181
|
}
|
|
82
182
|
return titleContent;
|
|
83
183
|
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdG9tcy9DYXJkL0NhcmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFakUsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLCtCQUErQixDQUFDO0FBK0J0RSxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUMzQixJQUFJLEVBQUUsOEdBQThHO0lBQ3BILFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFdBQVc7U0FDbkI7UUFDRCxjQUFjLEVBQUU7WUFDZCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1NBQ1Y7UUFDRCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsaUVBQWlFO1lBQ3ZFLEtBQUssRUFBRSxFQUFFO1NBQ1Y7S0FDRjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCO1lBQ0UsU0FBUyxFQUFFLElBQUk7WUFDZixjQUFjLEVBQUUsSUFBSTtZQUNwQixLQUFLLEVBQUUsZUFBZTtTQUN2QjtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsUUFBUSxFQUFFO1FBQ1IsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLHNEQUFzRDtZQUM1RCxLQUFLLEVBQUUsRUFBRTtTQUNWO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsUUFB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
|
|
@@ -10,25 +10,36 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import {
|
|
13
|
+
import { tv } from 'tailwind-variants';
|
|
14
14
|
import { Icon } from '../../../src/molecules/Icon/Icon';
|
|
15
15
|
import minus from '../../../src/icons/minus';
|
|
16
16
|
import tick from '../../../src/icons/tick';
|
|
17
|
+
const checkboxClasses = tv({
|
|
18
|
+
slots: {
|
|
19
|
+
wrapper: 'inline-flex justify-center items-center self-center relative',
|
|
20
|
+
input: 'peer appearance-none outline-none w-5 h-5 rounded-sm border border-transparent',
|
|
21
|
+
icon: 'absolute top-0 right-0 pointer-events-none p-[2px] w-5 h-5 text-transparent [&>path]:stroke-transparent [&>path]:stroke-[3px] rounded-sm border border-default peer-focus:border-info-default',
|
|
22
|
+
},
|
|
23
|
+
variants: {
|
|
24
|
+
disabled: {
|
|
25
|
+
true: {
|
|
26
|
+
wrapper: 'border-muted',
|
|
27
|
+
input: 'cursor-not-allowed bg-muted checked:bg-primary-muted',
|
|
28
|
+
icon: 'border-muted peer-checked:text-primary-default peer-checked:[&>path]:stroke-primary-70 peer-checked:border-transparent',
|
|
29
|
+
},
|
|
30
|
+
false: {
|
|
31
|
+
wrapper: 'hover:border-intense peer-checked:border-primary-default',
|
|
32
|
+
input: 'cursor-pointer checked:bg-primary-default',
|
|
33
|
+
icon: 'border-default peer-hover:border-intense peer-checked:text-white peer-checked:[&>path]:stroke-white peer-checked:border-primary-default',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
});
|
|
17
38
|
export const Checkbox = React.forwardRef((_a, ref) => {
|
|
18
39
|
var { id, children, name, disabled = false, readOnly = false, indeterminate = false } = _a, props = __rest(_a, ["id", "children", "name", "disabled", "readOnly", "indeterminate"]);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
React.createElement("input", Object.assign({ id: id, ref: ref, type: "checkbox", name: name }, props, { className: clsx('peer appearance-none outline-none w-5 h-5 rounded-sm border border-transparent', {
|
|
24
|
-
'cursor-pointer checked:bg-primary-default': !disabled,
|
|
25
|
-
'cursor-not-allowed bg-muted checked:bg-primary-muted': disabled,
|
|
26
|
-
}), readOnly: readOnly, disabled: disabled })),
|
|
27
|
-
React.createElement(Icon, { icon: indeterminate ? minus : tick, strokeWidth: "3px", className: clsx('absolute top-0 right-0', 'pointer-events-none p-[2px] w-5 h-5', 'text-transparent [&>path]:stroke-transparent [&>path]:stroke-[3px]', 'rounded-sm border border-default peer-focus:border-info-default',
|
|
28
|
-
// It seems that we can't combine peer selectors and use 'peer-checked:peer-disabled:bg-muted' style instead.
|
|
29
|
-
{
|
|
30
|
-
'border-default peer-hover:border-intense peer-checked:text-white peer-checked:[&>path]:stroke-white peer-checked:border-primary-default': !disabled,
|
|
31
|
-
'border-muted peer-checked:text-primary-default peer-checked:[&>path]:stroke-primary-70 peer-checked:border-transparent': disabled,
|
|
32
|
-
}) })));
|
|
40
|
+
const { wrapper, input, icon } = checkboxClasses({ disabled });
|
|
41
|
+
return (React.createElement("span", { className: wrapper() },
|
|
42
|
+
React.createElement("input", Object.assign({ id: id, ref: ref, type: "checkbox", name: name }, props, { className: input(), readOnly: readOnly, disabled: disabled })),
|
|
43
|
+
React.createElement(Icon, { icon: indeterminate ? minus : tick, strokeWidth: "3px", className: icon() })));
|
|
33
44
|
});
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXRvbXMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0MsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFZbEMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSw4REFBOEQ7UUFDdkUsS0FBSyxFQUFFLGdGQUFnRjtRQUN2RixJQUFJLEVBQUUsK0xBQStMO0tBQ3RNO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixLQUFLLEVBQUUsc0RBQXNEO2dCQUM3RCxJQUFJLEVBQUUsd0hBQXdIO2FBQy9IO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSwwREFBMEQ7Z0JBQ25FLEtBQUssRUFBRSwyQ0FBMkM7Z0JBQ2xELElBQUksRUFBRSx5SUFBeUk7YUFDaEo7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQ3RDLENBQUMsRUFBMkYsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUFwRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxhQUFhLEdBQUcsS0FBSyxPQUFZLEVBQVAsS0FBSyxjQUF6RixtRUFBMkYsQ0FBRjtJQUN4RixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sQ0FDTCw4QkFBTSxTQUFTLEVBQUUsT0FBTyxFQUFFO1FBQ3hCLDZDQUNFLEVBQUUsRUFBRSxFQUFFLEVBQ04sR0FBRyxFQUFFLEdBQUcsRUFDUixJQUFJLEVBQUMsVUFBVSxFQUNmLElBQUksRUFBRSxJQUFJLElBQ04sS0FBSyxJQUNULFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFDbEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsUUFBUSxFQUFFLFFBQVEsSUFDbEI7UUFFRixvQkFBQyxJQUFJLElBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUksQ0FDNUUsQ0FDUixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -10,15 +10,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import {
|
|
13
|
+
import { tv } from 'tailwind-variants';
|
|
14
|
+
const chipContainerClasses = tv({
|
|
15
|
+
base: 'inline-flex items-center rounded-sm transition whitespace-nowrap',
|
|
16
|
+
variants: {
|
|
17
|
+
dense: {
|
|
18
|
+
true: 'typography-caption py-1 px-2 gap-x-2',
|
|
19
|
+
false: 'typography-small py-2 px-3 gap-x-3 leading-tight',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
14
23
|
const Container = React.forwardRef((_a, ref) => {
|
|
15
24
|
var { dense = false, className, children } = _a, rest = __rest(_a, ["dense", "className", "children"]);
|
|
16
|
-
return (React.createElement("span", Object.assign({ ref: ref, className:
|
|
17
|
-
'typography-small py-2 px-3 gap-x-3 leading-tight': !dense,
|
|
18
|
-
'typography-caption py-1 px-2 gap-x-2': dense,
|
|
19
|
-
}, className) }, rest), children));
|
|
25
|
+
return (React.createElement("span", Object.assign({ ref: ref, className: chipContainerClasses({ dense, className }) }, rest), children));
|
|
20
26
|
});
|
|
21
27
|
export const Chip = {
|
|
22
28
|
Container,
|
|
23
29
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdG9tcy9DaGlwL0NoaXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVN2QyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUM5QixJQUFJLEVBQUUsa0VBQWtFO0lBQ3hFLFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsS0FBSyxFQUFFLGtEQUFrRDtTQUMxRDtLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FDaEMsQ0FBQyxFQUErQyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQXhELEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxPQUFXLEVBQU4sSUFBSSxjQUE3QyxrQ0FBK0MsQ0FBRjtJQUFZLE9BQUEsQ0FDeEQsNENBQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsSUFBTSxJQUFJLEdBQzVFLFFBQVEsQ0FDSixDQUNSLENBQUE7Q0FBQSxDQUNGLENBQUM7QUFNRixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQXNCO0lBQ3JDLFNBQVM7Q0FDVixDQUFDIn0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type SelectionMode = 'checkbox' | 'radio';
|
|
3
|
+
type BaseChoiceChipProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Content for the choice chip.
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* If true, dense version of the component will be rendered.
|
|
10
|
+
*/
|
|
11
|
+
dense?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Controlled checked state. If provided, the component operates in controlled mode.
|
|
14
|
+
*/
|
|
15
|
+
checked?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Default checked state for uncontrolled mode.
|
|
18
|
+
*/
|
|
19
|
+
defaultChecked?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* onChange() callback will be called when choice chip checked state updates.
|
|
22
|
+
*/
|
|
23
|
+
onChange?: (checked: boolean) => void;
|
|
24
|
+
/**
|
|
25
|
+
* The name attribute for the input element. Required for form submission and radio groups.
|
|
26
|
+
*/
|
|
27
|
+
name?: string;
|
|
28
|
+
/**
|
|
29
|
+
* If true, the choice chip will be disabled.
|
|
30
|
+
*/
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
};
|
|
33
|
+
type CheckboxModeProps = BaseChoiceChipProps & {
|
|
34
|
+
/**
|
|
35
|
+
* The selection mode determines the input type.
|
|
36
|
+
* - 'checkbox': Can be toggled on/off independently (default)
|
|
37
|
+
*/
|
|
38
|
+
selectionMode?: 'checkbox';
|
|
39
|
+
/**
|
|
40
|
+
* Optional identifier value for the chip (used in groups).
|
|
41
|
+
*/
|
|
42
|
+
value?: string;
|
|
43
|
+
};
|
|
44
|
+
type RadioModeProps = BaseChoiceChipProps & {
|
|
45
|
+
/**
|
|
46
|
+
* The selection mode determines the input type.
|
|
47
|
+
* - 'radio': Typically used in a group where only one can be selected
|
|
48
|
+
*/
|
|
49
|
+
selectionMode: 'radio';
|
|
50
|
+
/**
|
|
51
|
+
* Identifier value for the chip (required for radio mode).
|
|
52
|
+
*/
|
|
53
|
+
value: string;
|
|
54
|
+
};
|
|
55
|
+
export type ChoiceChipProps = CheckboxModeProps | RadioModeProps;
|
|
56
|
+
export declare const ChoiceChip: React.FC<ChoiceChipProps>;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { useControlledState } from '@react-stately/utils';
|
|
14
|
+
import { tv } from 'tailwind-variants';
|
|
15
|
+
const choiceChipClasses = tv({
|
|
16
|
+
slots: {
|
|
17
|
+
label: 'Aquarium-ChoiceChip inline-flex cursor-pointer',
|
|
18
|
+
input: 'peer appearance-none',
|
|
19
|
+
chip: [
|
|
20
|
+
'inline-flex items-center border rounded-full transition whitespace-nowrap hover:bg-primary-hover',
|
|
21
|
+
'peer-focus-visible:ring-2 peer-focus-visible:ring-info-default peer-focus-visible:ring-offset-1',
|
|
22
|
+
'peer-disabled:cursor-not-allowed peer-disabled:text-inactive peer-disabled:bg-muted peer-disabled:hover:bg-muted',
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
variants: {
|
|
26
|
+
selected: {
|
|
27
|
+
true: { chip: 'text-default border-primary-default border-2' },
|
|
28
|
+
false: { chip: 'text-muted border-default m-[1px]' },
|
|
29
|
+
},
|
|
30
|
+
dense: {
|
|
31
|
+
true: { chip: 'typography-caption py-2 px-3 gap-x-2' },
|
|
32
|
+
false: { chip: 'typography-small py-3 px-5 gap-x-3' },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
selected: false,
|
|
37
|
+
dense: false,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
export const ChoiceChip = (_a) => {
|
|
41
|
+
var { children, dense, selectionMode = 'checkbox', defaultChecked = false, checked, onChange, name, value, disabled } = _a, rest = __rest(_a, ["children", "dense", "selectionMode", "defaultChecked", "checked", "onChange", "name", "value", "disabled"]);
|
|
42
|
+
const [selected, setSelected] = useControlledState(checked, defaultChecked, onChange);
|
|
43
|
+
const { label, input, chip } = choiceChipClasses({ selected, dense });
|
|
44
|
+
const handleChange = () => {
|
|
45
|
+
setSelected(!selected);
|
|
46
|
+
};
|
|
47
|
+
return (React.createElement("label", Object.assign({ className: label() }, rest),
|
|
48
|
+
React.createElement("input", { type: selectionMode, name: name, value: value, className: input(), checked: selected, onChange: handleChange, disabled: disabled }),
|
|
49
|
+
React.createElement("span", { className: chip() }, children)));
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hvaWNlQ2hpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdG9tcy9DaG9pY2VDaGlwL0Nob2ljZUNoaXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUMzQixLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsZ0RBQWdEO1FBQ3ZELEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsSUFBSSxFQUFFO1lBQ0osa0dBQWtHO1lBQ2xHLGlHQUFpRztZQUNqRyxrSEFBa0g7U0FDbkg7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSw4Q0FBOEMsRUFBRTtZQUM5RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUNBQW1DLEVBQUU7U0FDckQ7UUFDRCxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0NBQXNDLEVBQUU7WUFDdEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLG9DQUFvQyxFQUFFO1NBQ3REO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsS0FBSztRQUNmLEtBQUssRUFBRSxLQUFLO0tBQ2I7Q0FDRixDQUFDLENBQUM7QUFxRUgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE4QixDQUFDLEVBV3JELEVBQUUsRUFBRTtRQVhpRCxFQUNwRCxRQUFRLEVBQ1IsS0FBSyxFQUNMLGFBQWEsR0FBRyxVQUFVLEVBQzFCLGNBQWMsR0FBRyxLQUFLLEVBQ3RCLE9BQU8sRUFDUCxRQUFRLEVBQ1IsSUFBSSxFQUNKLEtBQUssRUFDTCxRQUFRLE9BRVQsRUFESSxJQUFJLGNBVjZDLDRHQVdyRCxDQURRO0lBRVAsTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RGLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFdEUsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FDTCw2Q0FBTyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQU0sSUFBSTtRQUNqQywrQkFDRSxJQUFJLEVBQUUsYUFBYSxFQUNuQixJQUFJLEVBQUUsSUFBSSxFQUNWLEtBQUssRUFBRSxLQUFLLEVBQ1osU0FBUyxFQUFFLEtBQUssRUFBRSxFQUNsQixPQUFPLEVBQUUsUUFBUSxFQUNqQixRQUFRLEVBQUUsWUFBWSxFQUN0QixRQUFRLEVBQUUsUUFBUSxHQUNsQjtRQUNGLDhCQUFNLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBRyxRQUFRLENBQVEsQ0FDcEMsQ0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|