@bspk/ui 1.1.16 → 1.1.18
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/Avatar.d.ts +44 -10
- package/dist/Avatar.js +32 -13
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +49 -0
- package/dist/AvatarGroup.js +18 -0
- package/dist/AvatarGroup.js.map +1 -0
- package/dist/Badge.js +1 -1
- package/dist/Button.d.ts +14 -4
- package/dist/Button.js +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox.d.ts +15 -2
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.d.ts +6 -3
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/CheckboxOption.d.ts +8 -1
- package/dist/CheckboxOption.js.map +1 -1
- package/dist/Chip.d.ts +3 -1
- package/dist/Chip.js.map +1 -1
- package/dist/Dialog.d.ts +3 -3
- package/dist/Dialog.js.map +1 -1
- package/dist/Divider.js +1 -1
- package/dist/Dropdown.d.ts +26 -6
- package/dist/Dropdown.js +2 -2
- package/dist/Dropdown.js.map +1 -1
- package/dist/ListItem.js +1 -1
- package/dist/Menu.d.ts +27 -15
- package/dist/Menu.js +1 -1
- package/dist/Menu.js.map +1 -1
- package/dist/NumberInput.d.ts +5 -1
- package/dist/NumberInput.js +7 -5
- package/dist/NumberInput.js.map +1 -1
- package/dist/Portal.d.ts +5 -1
- package/dist/Portal.js.map +1 -1
- package/dist/ProgressBar.d.ts +4 -0
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressionStepper.d.ts +9 -2
- package/dist/ProgressionStepper.js +1 -1
- package/dist/ProgressionStepper.js.map +1 -1
- package/dist/ProgressionStepperBar.d.ts +6 -0
- package/dist/ProgressionStepperBar.js.map +1 -1
- package/dist/Radio.d.ts +16 -2
- package/dist/Radio.js +2 -2
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.d.ts +26 -3
- package/dist/RadioGroup.js +3 -3
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioOption.d.ts +9 -1
- package/dist/RadioOption.js.map +1 -1
- package/dist/SegmentedControl.d.ts +21 -2
- package/dist/SegmentedControl.js +1 -1
- package/dist/SegmentedControl.js.map +1 -1
- package/dist/Switch.d.ts +1 -1
- package/dist/SwitchGroup.d.ts +13 -6
- package/dist/SwitchGroup.js +1 -1
- package/dist/SwitchGroup.js.map +1 -1
- package/dist/TabGroup.d.ts +23 -5
- package/dist/TabGroup.js +1 -1
- package/dist/TabGroup.js.map +1 -1
- package/dist/Tag.d.ts +5 -2
- package/dist/Tag.js +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TextInput.d.ts +15 -6
- package/dist/TextInput.js +11 -5
- package/dist/TextInput.js.map +1 -1
- package/dist/Textarea.d.ts +3 -3
- package/dist/avatar-group.css +1 -0
- package/dist/avatar.css +1 -1
- package/dist/badge.css +1 -1
- package/dist/button.css +1 -1
- package/dist/demo/ExampleModalRender.d.ts +7 -0
- package/dist/demo/ExampleModalRender.js +16 -0
- package/dist/demo/ExampleModalRender.js.map +1 -0
- package/dist/demo/ExamplePlaceholder.d.ts +7 -0
- package/dist/demo/ExamplePlaceholder.js +13 -0
- package/dist/demo/ExamplePlaceholder.js.map +1 -0
- package/dist/demo/examples.d.ts +101 -0
- package/dist/demo/examples.js +472 -0
- package/dist/demo/examples.js.map +1 -0
- package/dist/divider.css +1 -1
- package/dist/hooks/useOptionIconsInvalid.d.ts +10 -1
- package/dist/hooks/useOptionIconsInvalid.js.map +1 -1
- package/dist/index.d.ts +4 -26
- package/dist/index.js.map +1 -1
- package/dist/list-item.css +1 -1
- package/dist/menu.css +1 -1
- package/dist/segmented-control.css +1 -1
- package/dist/tab-group.css +1 -1
- package/dist/tag.css +1 -1
- package/dist/text-input.css +1 -1
- package/dist/utils/children.js.map +1 -1
- package/meta-types.ts +2 -0
- package/meta.ts +76 -42
- package/package.json +1 -1
- package/src/Avatar.tsx +80 -27
- package/src/AvatarGroup.tsx +71 -0
- package/src/Button.tsx +14 -4
- package/src/Checkbox.tsx +25 -11
- package/src/CheckboxGroup.tsx +6 -3
- package/src/CheckboxOption.tsx +9 -2
- package/src/Chip.tsx +3 -1
- package/src/Dialog.tsx +3 -3
- package/src/Dropdown.tsx +30 -10
- package/src/Menu.tsx +30 -18
- package/src/NumberInput.tsx +15 -6
- package/src/Portal.tsx +5 -1
- package/src/ProgressBar.tsx +4 -0
- package/src/ProgressionStepper.tsx +9 -2
- package/src/ProgressionStepperBar.tsx +6 -0
- package/src/Radio.tsx +21 -4
- package/src/RadioGroup.tsx +34 -6
- package/src/RadioOption.tsx +11 -2
- package/src/SegmentedControl.tsx +21 -2
- package/src/Switch.tsx +1 -1
- package/src/SwitchGroup.tsx +19 -7
- package/src/TabGroup.tsx +23 -5
- package/src/Tag.tsx +5 -2
- package/src/TextInput.tsx +25 -15
- package/src/Textarea.tsx +3 -3
- package/src/avatar-group.scss +17 -0
- package/src/avatar.scss +5 -2
- package/src/badge.scss +1 -0
- package/src/button.scss +1 -0
- package/src/demo/ExampleModalRender.tsx +37 -0
- package/src/demo/ExamplePlaceholder.tsx +40 -0
- package/src/demo/examples.tsx +683 -0
- package/src/divider.scss +2 -0
- package/src/dropdown.scss +1 -0
- package/src/hooks/useOptionIconsInvalid.ts +10 -1
- package/src/index.ts +5 -32
- package/src/list-item.scss +5 -1
- package/src/menu.scss +1 -1
- package/src/segmented-control.scss +1 -0
- package/src/tab-group.scss +1 -0
- package/src/tag.scss +1 -0
- package/src/text-input.scss +13 -18
- package/src/utils/children.ts +1 -1
package/dist/Avatar.d.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import './avatar.scss';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { ColorVariant } from './utils/colorVariants';
|
|
4
|
-
import { CommonProps } from '.';
|
|
5
4
|
export type SizeVariant = 'large' | 'medium' | 'small' | 'x-large' | 'x-small' | 'xx-large' | 'xxx-large' | 'xxxx-large' | 'xxxxx-large';
|
|
6
|
-
export type AvatarProps =
|
|
5
|
+
export type AvatarProps = {
|
|
6
|
+
/**
|
|
7
|
+
* The name of the person or entity represented by the avatar. This is used for accessibility purposes.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* Jane Doe
|
|
11
|
+
*
|
|
12
|
+
* @required
|
|
13
|
+
*/
|
|
14
|
+
name: string;
|
|
7
15
|
/**
|
|
8
16
|
* The size of the avatar.
|
|
9
17
|
*
|
|
@@ -16,22 +24,48 @@ export type AvatarProps = CommonProps<'aria-label'> & {
|
|
|
16
24
|
* @default grey
|
|
17
25
|
*/
|
|
18
26
|
color?: ColorVariant;
|
|
19
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The initials to display in the avatar limited to 2 characters.
|
|
29
|
+
*
|
|
30
|
+
* If not provided, the first two letters of the name will be used as initials.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* JD;
|
|
34
|
+
*/
|
|
20
35
|
initials?: string;
|
|
21
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* The icon to display in the avatar. This needs to be an icon from the @bspk/icons library.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* <SvgPerson />;
|
|
41
|
+
*
|
|
42
|
+
* @type BspkIcon
|
|
43
|
+
*/
|
|
22
44
|
icon?: ReactNode;
|
|
23
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The url to the image to display in the avatar.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* /profile.jpg
|
|
50
|
+
*/
|
|
24
51
|
image?: string;
|
|
25
|
-
/**
|
|
26
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Whether to show the represeneetd user's name as a tooltip.
|
|
54
|
+
*
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
57
|
+
showTooltip?: boolean;
|
|
27
58
|
};
|
|
28
59
|
/**
|
|
29
|
-
* An avatar is a visual representation of a user or entity. It can be used to display an initials, icon, image
|
|
30
|
-
*
|
|
60
|
+
* An avatar is a visual representation of a user or entity. It can be used to display an initials, icon, image.
|
|
61
|
+
*
|
|
62
|
+
* The image if provided is displayed first, followed by the icon if provided, and finally the initials.
|
|
63
|
+
*
|
|
64
|
+
* If no initials are provided, the first two letters of the name will be used as initials.
|
|
31
65
|
*
|
|
32
66
|
* @name Avatar
|
|
33
67
|
*/
|
|
34
|
-
declare function Avatar({ initials, color, size, icon, image,
|
|
68
|
+
declare function Avatar({ initials: initialsProp, color, size, icon, image, name: ariaLabel, showTooltip, }: AvatarProps): import("react/jsx-runtime").JSX.Element | null;
|
|
35
69
|
declare namespace Avatar {
|
|
36
70
|
var bspkName: string;
|
|
37
71
|
}
|
package/dist/Avatar.js
CHANGED
|
@@ -1,26 +1,45 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { styleAdd } from './utils/styleAdd';
|
|
3
|
-
styleAdd(`[data-bspk=avatar]{--height: var(--spacing-sizing-10);--font: var(--labels-base)
|
|
3
|
+
styleAdd(`[data-bspk=avatar]{--height: var(--spacing-sizing-10);--font: var(--labels-base);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0;height:var(--height);width:var(--height);aspect-ratio:1/1;border-radius:999px;background-color:var(--background);color:var(--foreground);font:var(--font)}[data-bspk=avatar]:not([data-color]){--foreground: var(--foreground-neutral-on-surface);--background: var(--surface-neutral-t3-low)}[data-bspk=avatar]:has(img){overflow:hidden}[data-bspk=avatar] img{max-width:100%}[data-bspk=avatar][data-size=x-small]{--height: var(--spacing-sizing-06);--font: var(--labels-x-small)}[data-bspk=avatar][data-size=small]{--height: var(--spacing-sizing-08);--font: var(--labels-small)}[data-bspk=avatar][data-size=medium]{--height: var(--spacing-sizing-10);--font: var(--labels-base)}[data-bspk=avatar][data-size=large]{--height: var(--spacing-sizing-12);--font: var(--labels-large)}[data-bspk=avatar][data-size=x-large]{--height: var(--spacing-sizing-14);--font: var(--subheader-x-large)}[data-bspk=avatar][data-size=xx-large]{--height: var(--spacing-sizing-17);--font: var(--subheader-xx-large)}[data-bspk=avatar][data-size=xxx-large]{--height: var(--spacing-sizing-19);--font: var(--display-regular-small)}[data-bspk=avatar][data-size=xxxx-large]{--height: var(--spacing-sizing-21);--font: var(--display-regular-medium)}[data-bspk=avatar][data-size=xxxxx-large]{--height: var(--spacing-sizing-23);--font: var(--display-regular-large)}`);;
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
+
import { Tooltip } from './Tooltip';
|
|
6
|
+
import { isValidIcon } from './utils/children';
|
|
7
|
+
const DEFAULT = {
|
|
8
|
+
size: 'small',
|
|
9
|
+
color: 'grey',
|
|
10
|
+
showTooltip: true,
|
|
11
|
+
};
|
|
5
12
|
/**
|
|
6
|
-
* An avatar is a visual representation of a user or entity. It can be used to display an initials, icon, image
|
|
7
|
-
*
|
|
13
|
+
* An avatar is a visual representation of a user or entity. It can be used to display an initials, icon, image.
|
|
14
|
+
*
|
|
15
|
+
* The image if provided is displayed first, followed by the icon if provided, and finally the initials.
|
|
16
|
+
*
|
|
17
|
+
* If no initials are provided, the first two letters of the name will be used as initials.
|
|
8
18
|
*
|
|
9
19
|
* @name Avatar
|
|
10
20
|
*/
|
|
11
|
-
function Avatar({ initials, color =
|
|
21
|
+
function Avatar({ initials: initialsProp, color = DEFAULT.color, size = DEFAULT.size, icon, image, name: ariaLabel, showTooltip = DEFAULT.showTooltip, }) {
|
|
12
22
|
const children = useMemo(() => {
|
|
13
|
-
if (initials)
|
|
14
|
-
return _jsx("span", { "data-initials": true, children: initials });
|
|
15
|
-
if (icon)
|
|
16
|
-
return _jsx("span", { "data-icon": true, children: icon });
|
|
17
23
|
if (image)
|
|
18
24
|
return _jsx("img", { alt: ariaLabel, src: image });
|
|
19
|
-
if (
|
|
20
|
-
return
|
|
25
|
+
if (isValidIcon(icon))
|
|
26
|
+
return _jsx("span", { "data-icon": true, children: icon });
|
|
27
|
+
let initials = initialsProp;
|
|
28
|
+
if (ariaLabel && !initials)
|
|
29
|
+
initials = ariaLabel
|
|
30
|
+
.split(' ')
|
|
31
|
+
.map((word) => word.charAt(0))
|
|
32
|
+
.slice(0, 2)
|
|
33
|
+
.join('')
|
|
34
|
+
.toUpperCase();
|
|
35
|
+
if (initials)
|
|
36
|
+
return _jsx("span", { "data-initials": true, children: initials.slice(0, 2) });
|
|
37
|
+
return null;
|
|
38
|
+
}, [ariaLabel, icon, image, initialsProp]);
|
|
39
|
+
if (!children)
|
|
21
40
|
return null;
|
|
22
|
-
|
|
23
|
-
return
|
|
41
|
+
const avatar = (_jsx("div", { "aria-label": ariaLabel, "data-bspk": "avatar", "data-color": color, "data-size": size, children: children }));
|
|
42
|
+
return showTooltip ? _jsx(Tooltip, { label: ariaLabel, children: avatar }) : avatar;
|
|
24
43
|
}
|
|
25
44
|
Avatar.bspkName = 'Avatar';
|
|
26
45
|
export { Avatar };
|
package/dist/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,OAAO,GAAG;IACZ,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,IAAI;CACX,CAAC;AAoEX;;;;;;;;GAQG;AACH,SAAS,MAAM,CAAC,EACZ,QAAQ,EAAE,YAAY,EACtB,KAAK,GAAG,OAAO,CAAC,KAAK,EACrB,IAAI,GAAG,OAAO,CAAC,IAAI,EACnB,IAAI,EACJ,KAAK,EACL,IAAI,EAAE,SAAS,EACf,WAAW,GAAG,OAAO,CAAC,WAAW,GACvB;IACV,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,KAAK;YAAE,OAAO,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,GAAI,CAAC;QAEtD,IAAI,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO,4CAAiB,IAAI,GAAQ,CAAC;QAE5D,IAAI,QAAQ,GAAG,YAAY,CAAC;QAE5B,IAAI,SAAS,IAAI,CAAC,QAAQ;YACtB,QAAQ,GAAG,SAAS;iBACf,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,IAAI,CAAC,EAAE,CAAC;iBACR,WAAW,EAAE,CAAC;QAEvB,IAAI,QAAQ;YAAE,OAAO,gDAAqB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAQ,CAAC;QAEvE,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,MAAM,GAAG,CACX,4BAAiB,SAAS,eAAY,QAAQ,gBAAa,KAAK,eAAa,IAAI,YAC5E,QAAQ,GACP,CACT,CAAC;IAEF,OAAO,WAAW,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,KAAK,EAAE,SAAS,YAAG,MAAM,GAAW,CAAC,CAAC,CAAC,MAAM,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { AvatarProps, SizeVariant } from './Avatar';
|
|
2
|
+
import './avatar-group.scss';
|
|
3
|
+
export type AvatarItem = Pick<AvatarProps, 'color' | 'icon' | 'image' | 'initials' | 'name'>;
|
|
4
|
+
export type AvatarGroupProps = {
|
|
5
|
+
/**
|
|
6
|
+
* The avatars to display in the group.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* [
|
|
10
|
+
* { name: 'Jane Doe', image: '/path/to/image.jpg' },
|
|
11
|
+
* { name: 'John Smith', initials: 'JS' },
|
|
12
|
+
* ];
|
|
13
|
+
*
|
|
14
|
+
* @type Array<AvatarItem>
|
|
15
|
+
* @required
|
|
16
|
+
*/
|
|
17
|
+
items: AvatarItem[];
|
|
18
|
+
/**
|
|
19
|
+
* Size of the avatar group.
|
|
20
|
+
*
|
|
21
|
+
* @default small
|
|
22
|
+
*/
|
|
23
|
+
size?: Extract<SizeVariant, 'large' | 'medium' | 'small' | 'x-small'>;
|
|
24
|
+
/**
|
|
25
|
+
* The maximum number of avatars to display before showing the overflowCount.
|
|
26
|
+
*
|
|
27
|
+
* This is used to limit the number of avatars displayed in the group.
|
|
28
|
+
*
|
|
29
|
+
* @minimum 3
|
|
30
|
+
* @maximum 5
|
|
31
|
+
*/
|
|
32
|
+
max?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The variant of the avatar group.
|
|
35
|
+
*
|
|
36
|
+
* @default spread
|
|
37
|
+
*/
|
|
38
|
+
variant?: 'spread' | 'stacked';
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* AvatarGroup component displays a group of avatars.
|
|
42
|
+
*
|
|
43
|
+
* @name AvatarGroup
|
|
44
|
+
*/
|
|
45
|
+
declare function AvatarGroup({ items, size, max, variant }: AvatarGroupProps): import("react/jsx-runtime").JSX.Element | null;
|
|
46
|
+
declare namespace AvatarGroup {
|
|
47
|
+
var bspkName: string;
|
|
48
|
+
}
|
|
49
|
+
export { AvatarGroup };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar } from './Avatar';
|
|
3
|
+
import { styleAdd } from './utils/styleAdd';
|
|
4
|
+
styleAdd(`[data-bspk=avatar-group]{width:100%}[data-bspk=avatar-group] [data-wrap]{width:100%;display:flex;flex-direction:row;align-items:end;justify-content:end;gap:var(--spacing-sizing-02);overflow:hidden}`);;
|
|
5
|
+
/**
|
|
6
|
+
* AvatarGroup component displays a group of avatars.
|
|
7
|
+
*
|
|
8
|
+
* @name AvatarGroup
|
|
9
|
+
*/
|
|
10
|
+
function AvatarGroup({ items, size = 'small', max = 5, variant }) {
|
|
11
|
+
if (!Array.isArray(items) || !items?.length)
|
|
12
|
+
return null;
|
|
13
|
+
const overFlowCount = items.length - max;
|
|
14
|
+
return (_jsx("div", { "data-bspk": "avatar-group", "data-max": max, "data-size": size, "data-variant": variant, children: _jsxs("div", { "data-wrap": true, children: [items.map((item, index) => (_jsx(Avatar, { ...item, size: size }, index))), overFlowCount > 0 && (_jsx("div", { "aria-hidden": true, "data-bspk": "avatar", "data-size": size, children: _jsxs("span", { "data-overflow-count": true, children: ["+", overFlowCount] }) }))] }) }));
|
|
15
|
+
}
|
|
16
|
+
AvatarGroup.bspkName = 'AvatarGroup';
|
|
17
|
+
export { AvatarGroup };
|
|
18
|
+
//# sourceMappingURL=AvatarGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarGroup.js","sourceRoot":"","sources":["../src/AvatarGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAA4B,MAAM,UAAU,CAAC;AAC5D,OAAO,qBAAqB,CAAC;AAyC7B;;;;GAIG;AACH,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,EAAoB;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAEzC,OAAO,CACH,2BAAe,cAAc,cAAW,GAAG,eAAa,IAAI,kBAAgB,OAAO,YAC/E,6CACK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,MAAM,OAAiB,IAAI,EAAE,IAAI,EAAE,IAAI,IAA3B,KAAK,CAA0B,CAC/C,CAAC,EACD,aAAa,GAAG,CAAC,IAAI,CAClB,gDAA2B,QAAQ,eAAY,IAAI,YAC/C,6DAA4B,aAAa,IAAQ,GAC/C,CACT,IACC,GACJ,CACT,CAAC;AACN,CAAC;AAED,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/Badge.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { styleAdd } from './utils/styleAdd';
|
|
3
|
-
styleAdd(`[data-bspk=badge]{--size: var(--spacing-sizing-06);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circular);height:var(--size);min-width:var(--size);padding:0 var(--spacing-sizing-02);font:var(--labels-x-small);color:var(--foreground-brand-on-primary);background:var(--surface-brand-primary)}[data-bspk=badge][data-size=x-small]{--size: var(--spacing-sizing-05);padding:2px var(--spacing-sizing-01)}[data-bspk=badge][data-variant=secondary]{color:var(--foreground-brand-on-secondary);background:var(--surface-brand-secondary)}`);;
|
|
3
|
+
styleAdd(`[data-bspk=badge]{--size: var(--spacing-sizing-06);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circular);height:var(--size);width:fit-content;min-width:var(--size);padding:0 var(--spacing-sizing-02);font:var(--labels-x-small);color:var(--foreground-brand-on-primary);background:var(--surface-brand-primary)}[data-bspk=badge][data-size=x-small]{--size: var(--spacing-sizing-05);padding:2px var(--spacing-sizing-01)}[data-bspk=badge][data-variant=secondary]{color:var(--foreground-brand-on-secondary);background:var(--surface-brand-secondary)}`);;
|
|
4
4
|
import { tryIntParse } from './utils/tryIntPsrse';
|
|
5
5
|
/**
|
|
6
6
|
* Visual indicator for new items within a parent page represented with a numerical count of new items.
|
package/dist/Button.d.ts
CHANGED
|
@@ -2,10 +2,18 @@ import './button.scss';
|
|
|
2
2
|
import { ElementType, ReactNode } from 'react';
|
|
3
3
|
import { ButtonSize, CommonProps, ElementProps } from './';
|
|
4
4
|
export type ButtonVariant = 'primary' | 'secondary' | 'tertiary';
|
|
5
|
-
export type ButtonProps<As extends ElementType = 'button'> = CommonProps<'disabled'
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export type ButtonProps<As extends ElementType = 'button'> = CommonProps<'disabled'> & {
|
|
6
|
+
/**
|
|
7
|
+
* The label of the button.
|
|
8
|
+
*
|
|
9
|
+
* @required
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* The icon of the button.
|
|
14
|
+
*
|
|
15
|
+
* @type BspkIcon
|
|
16
|
+
*/
|
|
9
17
|
icon?: ReactNode;
|
|
10
18
|
/**
|
|
11
19
|
* Shows the button label. When label isn't showing it is used in a tooltip and as the aria-label prop.
|
|
@@ -52,6 +60,8 @@ export type ButtonProps<As extends ElementType = 'button'> = CommonProps<'disabl
|
|
|
52
60
|
children?: ReactNode;
|
|
53
61
|
/** The tool tip text that appears when hovered. */
|
|
54
62
|
toolTip?: string;
|
|
63
|
+
/** The function to call when the button is clicked. */
|
|
64
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
55
65
|
};
|
|
56
66
|
/**
|
|
57
67
|
* A clickable component that allows users to perform an action, make a choice or trigger a change in state.
|
package/dist/Button.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { styleAdd } from './utils/styleAdd';
|
|
3
|
-
styleAdd(`[data-bspk=button]{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-sizing-02);border:none;cursor:pointer;box-sizing:border-box;background:rgba(0,0,0,0);text-decoration:none;width:fit-content;position:relative}[data-bspk=button] [data-touch-target]{min-width:var(--spacing-sizing-12);min-height:var(--spacing-sizing-12)}[data-bspk=button][data-width=hug]{width:fit-content}[data-bspk=button][data-width=fill]{width:100%}[data-bspk=button][data-size=x-small]{font-size:var(--typography-size-xs);line-height:var(--typography-line-height-lh-1);height:var(--spacing-sizing-06);min-width:var(--spacing-sizing-06);gap:var(--spacing-sizing-02)}[data-bspk=button][data-size=x-small]:has([data-button-label]),[data-bspk=button][data-size=x-small][data-override]{padding:0 var(--spacing-sizing-02)}[data-bspk=button][data-size=x-small] [data-button-icon]{width:var(--spacing-sizing-04);height:var(--spacing-sizing-04)}[data-bspk=button][data-size=small]{font-size:var(--typography-size-sm);line-height:var(--typography-line-height-lh-2);height:var(--spacing-sizing-08);min-width:var(--spacing-sizing-08)}[data-bspk=button][data-size=small]:has([data-button-label]),[data-bspk=button][data-size=small][data-override]{padding:6px var(--spacing-sizing-04)}[data-bspk=button][data-size=small] [data-button-icon]{width:var(--spacing-sizing-05);height:var(--spacing-sizing-05)}[data-bspk=button][data-size=medium]{font-size:var(--typography-size-base);line-height:var(--typography-line-height-lh-2);height:var(--spacing-sizing-10);min-width:var(--spacing-sizing-10)}[data-bspk=button][data-size=medium]:has([data-button-label]),[data-bspk=button][data-size=medium][data-override]{padding:var(--spacing-sizing-02) var(--spacing-sizing-04)}[data-bspk=button][data-size=medium] [data-button-icon]{width:var(--spacing-sizing-05);height:var(--spacing-sizing-05)}[data-bspk=button][data-size=large]{font-size:var(--typography-size-bp-md);line-height:var(--typography-line-height-lh-4);height:var(--spacing-sizing-12);min-width:var(--spacing-sizing-12)}[data-bspk=button][data-size=large]:has([data-button-label]),[data-bspk=button][data-size=large][data-override]{padding:var(--spacing-sizing-03) var(--spacing-sizing-04)}[data-bspk=button][data-size=large] [data-button-icon]{width:var(--spacing-sizing-06);height:var(--spacing-sizing-06)}[data-bspk=button][disabled]{cursor:not-allowed}[data-bspk=button] [data-button-icon]{display:flex;flex-direction:column;align-items:center}[data-bspk=button] [data-button-label]{display:flex;flex-direction:row;align-items:center}[data-bspk=button][data-variant=primary]{--primary-background: var(--surface-brand-primary);background:linear-gradient(var(--primary-background), var(--primary-background));color:var(--foreground-brand-on-primary);border-radius:var(--radius-small)}[data-bspk=button][data-variant=primary][disabled]{color:var(--foreground-neutral-disabled-on-surface);background:var(--interactions-disabled-opacity)}[data-pseudo=hover]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):hover{background:linear-gradient(var(--interactions-brand-hover-opacity), var(--interactions-brand-hover-opacity)),linear-gradient(var(--primary-background), var(--primary-background))}[data-pseudo=active]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):active{background:linear-gradient(var(--interactions-brand-press-opacity), var(--interactions-brand-press-opacity)),linear-gradient(var(--primary-background), var(--primary-background))}[data-pseudo=focus]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=primary][data-destructive]{--primary-background: var(--status-error);color:var(--foreground-brand-on-primary)}[data-bspk=button][data-variant=secondary]{border:solid 1px var(--stroke-neutral-base);border-radius:var(--radius-small);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=button][data-variant=secondary][disabled]{color:var(--foreground-neutral-disabled-on-surface);border:solid 1px var(--stroke-neutral-disabled-light)}[data-pseudo=hover]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):hover{background-color:var(--interactions-neutral-hover-opacity)}[data-pseudo=active]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):active{background-color:var(--interactions-neutral-press-opacity)}[data-pseudo=focus]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=secondary][data-destructive]{background:rgba(0,0,0,0);color:var(--status-error);border:solid 1px var(--status-error)}[data-bspk=button][data-variant=tertiary]{background:rgba(0,0,0,0);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=button][data-variant=tertiary][disabled]{color:var(--foreground-neutral-disabled-on-surface)}[data-pseudo=hover]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):hover{background:var(--interactions-neutral-hover-opacity)}[data-pseudo=active]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):active{background:var(--interactions-neutral-press-opacity)}[data-pseudo=focus]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=tertiary][data-destructive]{color:var(--status-error)}`);;
|
|
3
|
+
styleAdd(`[data-bspk=button]{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-sizing-02);border:none;cursor:pointer;box-sizing:border-box;background:rgba(0,0,0,0);text-decoration:none;width:fit-content;font-family:var(--typeface);position:relative}[data-bspk=button] [data-touch-target]{min-width:var(--spacing-sizing-12);min-height:var(--spacing-sizing-12)}[data-bspk=button][data-width=hug]{width:fit-content}[data-bspk=button][data-width=fill]{width:100%}[data-bspk=button][data-size=x-small]{font-size:var(--typography-size-xs);line-height:var(--typography-line-height-lh-1);height:var(--spacing-sizing-06);min-width:var(--spacing-sizing-06);gap:var(--spacing-sizing-02)}[data-bspk=button][data-size=x-small]:has([data-button-label]),[data-bspk=button][data-size=x-small][data-override]{padding:0 var(--spacing-sizing-02)}[data-bspk=button][data-size=x-small] [data-button-icon]{width:var(--spacing-sizing-04);height:var(--spacing-sizing-04)}[data-bspk=button][data-size=small]{font-size:var(--typography-size-sm);line-height:var(--typography-line-height-lh-2);height:var(--spacing-sizing-08);min-width:var(--spacing-sizing-08)}[data-bspk=button][data-size=small]:has([data-button-label]),[data-bspk=button][data-size=small][data-override]{padding:6px var(--spacing-sizing-04)}[data-bspk=button][data-size=small] [data-button-icon]{width:var(--spacing-sizing-05);height:var(--spacing-sizing-05)}[data-bspk=button][data-size=medium]{font-size:var(--typography-size-base);line-height:var(--typography-line-height-lh-2);height:var(--spacing-sizing-10);min-width:var(--spacing-sizing-10)}[data-bspk=button][data-size=medium]:has([data-button-label]),[data-bspk=button][data-size=medium][data-override]{padding:var(--spacing-sizing-02) var(--spacing-sizing-04)}[data-bspk=button][data-size=medium] [data-button-icon]{width:var(--spacing-sizing-05);height:var(--spacing-sizing-05)}[data-bspk=button][data-size=large]{font-size:var(--typography-size-bp-md);line-height:var(--typography-line-height-lh-4);height:var(--spacing-sizing-12);min-width:var(--spacing-sizing-12)}[data-bspk=button][data-size=large]:has([data-button-label]),[data-bspk=button][data-size=large][data-override]{padding:var(--spacing-sizing-03) var(--spacing-sizing-04)}[data-bspk=button][data-size=large] [data-button-icon]{width:var(--spacing-sizing-06);height:var(--spacing-sizing-06)}[data-bspk=button][disabled]{cursor:not-allowed}[data-bspk=button] [data-button-icon]{display:flex;flex-direction:column;align-items:center}[data-bspk=button] [data-button-label]{display:flex;flex-direction:row;align-items:center}[data-bspk=button][data-variant=primary]{--primary-background: var(--surface-brand-primary);background:linear-gradient(var(--primary-background), var(--primary-background));color:var(--foreground-brand-on-primary);border-radius:var(--radius-small)}[data-bspk=button][data-variant=primary][disabled]{color:var(--foreground-neutral-disabled-on-surface);background:var(--interactions-disabled-opacity)}[data-pseudo=hover]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):hover{background:linear-gradient(var(--interactions-brand-hover-opacity), var(--interactions-brand-hover-opacity)),linear-gradient(var(--primary-background), var(--primary-background))}[data-pseudo=active]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):active{background:linear-gradient(var(--interactions-brand-press-opacity), var(--interactions-brand-press-opacity)),linear-gradient(var(--primary-background), var(--primary-background))}[data-pseudo=focus]>[data-bspk=button][data-variant=primary]:not([disabled]),[data-bspk=button][data-variant=primary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=primary][data-destructive]{--primary-background: var(--status-error);color:var(--foreground-brand-on-primary)}[data-bspk=button][data-variant=secondary]{border:solid 1px var(--stroke-neutral-base);border-radius:var(--radius-small);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=button][data-variant=secondary][disabled]{color:var(--foreground-neutral-disabled-on-surface);border:solid 1px var(--stroke-neutral-disabled-light)}[data-pseudo=hover]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):hover{background-color:var(--interactions-neutral-hover-opacity)}[data-pseudo=active]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):active{background-color:var(--interactions-neutral-press-opacity)}[data-pseudo=focus]>[data-bspk=button][data-variant=secondary]:not([disabled]),[data-bspk=button][data-variant=secondary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=secondary][data-destructive]{background:rgba(0,0,0,0);color:var(--status-error);border:solid 1px var(--status-error)}[data-bspk=button][data-variant=tertiary]{background:rgba(0,0,0,0);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=button][data-variant=tertiary][disabled]{color:var(--foreground-neutral-disabled-on-surface)}[data-pseudo=hover]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):hover{background:var(--interactions-neutral-hover-opacity)}[data-pseudo=active]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):active{background:var(--interactions-neutral-press-opacity)}[data-pseudo=focus]>[data-bspk=button][data-variant=tertiary]:not([disabled]),[data-bspk=button][data-variant=tertiary]:not([disabled]):focus-visible{outline:solid 2px var(--stroke-neutral-focus)}[data-bspk=button][data-variant=tertiary][data-destructive]{color:var(--status-error)}`);;
|
|
4
4
|
import { isValidElement } from 'react';
|
|
5
5
|
import { Tooltip } from './Tooltip';
|
|
6
6
|
import { isValidIcon } from './utils/children';
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAoEhD;;;;GAIG;AACH,SAAS,MAAM,CAAoC,KAAwC;IACvF,MAAM,EACF,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,SAAS,EACnB,WAAW,GAAG,KAAK,EACnB,KAAK,GAAG,KAAK,EACb,EAAE,EAAE,EAAE,GAAG,QAAQ,EACjB,QAAQ,GAAG,KAAK,EAChB,KAAK,EAAE,SAAS,EAChB,IAAI,EACJ,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,OAAO,EAAE,WAAW,EACpB,QAAQ,EACR,GAAG,cAAc,EACpB,GAAG,KAAK,CAAC;IACV,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAExE,6CAA6C;IAC7C,MAAM,SAAS,GAAG,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC;IAElD,MAAM,OAAO,GAAG,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7D,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,sDAAsD,CAAC,CAAC;IAC/F,QAAQ,CAAC,CAAC,KAAK,EAAE,wCAAwC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,CACX,KAAC,EAAE,OACK,cAAc,gBACN,KAAK,eACP,QAAQ,sBACA,WAAW,IAAI,SAAS,eAC/B,IAAI,kBACD,OAAO,gBACT,KAAK,EACjB,QAAQ,EAAE,QAAQ,IAAI,SAAS,YAE9B,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CACxC,QAAQ,CACX,CAAC,CAAC,CAAC,CACA,8BACI,2CAA0B,EACzB,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,mDAAwB,IAAI,GAAQ,EACtE,CAAC,SAAS,IAAI,oDAAyB,KAAK,GAAQ,IACtD,CACN,GACA,CACR,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CACH,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAC,KAAK,YACnC,MAAM,GACD,CACb,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/Checkbox.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import './checkbox.scss';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { ChangeEvent } from 'react';
|
|
3
|
+
import { CommonProps, ElementProps, InvalidPropsLibrary } from './';
|
|
4
|
+
export type CheckboxProps = CommonProps<'aria-label' | 'disabled' | 'name'> & InvalidPropsLibrary & Required<CommonProps<'value'>> & {
|
|
4
5
|
/**
|
|
5
6
|
* If the checkbox is partially checked or
|
|
6
7
|
* [indeterminate](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes).
|
|
@@ -8,6 +9,18 @@ export type CheckboxProps = ToggleControlProps<HTMLInputElement> & {
|
|
|
8
9
|
* @default false
|
|
9
10
|
*/
|
|
10
11
|
indeterminate?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Marks the checkbox as checked.
|
|
14
|
+
*
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
checked?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The function to call when the checkbox is checked or unchecked.
|
|
20
|
+
*
|
|
21
|
+
* @required
|
|
22
|
+
*/
|
|
23
|
+
onChange: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
|
|
11
24
|
};
|
|
12
25
|
/**
|
|
13
26
|
* A control that allows users to choose one or more items from a list or turn an feature on or off. This is the base
|
package/dist/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAe,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AA4BvD;;;;;;;;GAQG;AACH,SAAS,QAAQ,CAAC,EACd,OAAO,EAAE,WAAW,GAAG,KAAK,EAC5B,aAAa,EAAE,iBAAiB,EAChC,OAAO,EACP,QAAQ,EACR,YAAY,EAEZ,GAAG,KAAK,EAC2B;IACnC,MAAM,aAAa,GAAG,CAAC,CAAC,iBAAiB,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,EAAoB,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QAC9B,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACnD,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CACH,6BAEc,UAAU,aAEpB,mBACQ,KAAK,uBACU,YAAY,IAAI,SAAS,kBAC9B,OAAO,IAAI,SAAS,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAClE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACV,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;gBACvC,CAAC,EACD,IAAI,EAAC,UAAU,GACjB,EACF,gDACI,oCAAkB,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,YAChF,eACI,CAAC,EAAC,4KAA4K,EAC9K,IAAI,EAAC,cAAc,GACrB,GACA,EACN,0CAAwB,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAC,4BAA4B,YACrF,eACI,CAAC,EAAC,2PAA2P,EAC7P,IAAI,EAAC,cAAc,GACrB,GACA,IACH,IACJ,CACV,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/CheckboxGroup.d.ts
CHANGED
|
@@ -5,9 +5,12 @@ export type CheckboxGroupProps = CommonProps<'aria-label'> & {
|
|
|
5
5
|
/**
|
|
6
6
|
* The function to call when the checkboxes are changed.
|
|
7
7
|
*
|
|
8
|
+
* @example
|
|
9
|
+
* (values) => setState({ values });
|
|
10
|
+
*
|
|
8
11
|
* @required
|
|
9
12
|
*/
|
|
10
|
-
onChange: (
|
|
13
|
+
onChange: (values: string[]) => void;
|
|
11
14
|
/**
|
|
12
15
|
* The input control name of the checkboxes.
|
|
13
16
|
*
|
|
@@ -17,14 +20,14 @@ export type CheckboxGroupProps = CommonProps<'aria-label'> & {
|
|
|
17
20
|
/**
|
|
18
21
|
* The options for the checkboxes.
|
|
19
22
|
*
|
|
20
|
-
* @type CheckboxGroupOption
|
|
23
|
+
* @type Array<CheckboxGroupOption>
|
|
21
24
|
* @required
|
|
22
25
|
*/
|
|
23
26
|
options: CheckboxGroupOption[];
|
|
24
27
|
/**
|
|
25
28
|
* The values of the checked checkboxes.
|
|
26
29
|
*
|
|
27
|
-
* @type string
|
|
30
|
+
* @type Array<string>
|
|
28
31
|
*/
|
|
29
32
|
values?: CheckboxGroupProps['options'][number]['value'][];
|
|
30
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../src/CheckboxGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckboxGroup.js","sourceRoot":"","sources":["../src/CheckboxGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA6CjE;;;;GAIG;AACH,SAAS,aAAa,CAAC,EACnB,QAAQ,EACR,OAAO,GAAG,EAAE,EACZ,IAAI,EACJ,MAAM,GAAG,EAAE,EACX,SAAS,EACT,cAAc,EACd,GAAG,KAAK,EAC8B;IACtC,OAAO,CACH,kBAAS,KAAK,eAAY,gBAAgB,EAAC,IAAI,EAAC,OAAO,aAClD,SAAS,IAAI,CACV,4BACI,KAAC,YAAY,IAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,KAAK,YAC/C,KAAC,QAAQ,kBACO,cAAc,EAAE,KAAK,IAAI,KAAK,EAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAC5D,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAChE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3E,KAAK,EAAC,KAAK,GACb,GACS,GAChB,CACN,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC5C,KAAC,YAAY,IAAC,WAAW,EAAE,WAAW,EAAc,KAAK,EAAE,KAAK,YAC5D,KAAC,QAAQ,kBACO,KAAK,EACjB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC/B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;wBAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBAC/E,CAAC,EACD,KAAK,EAAE,KAAK,GACd,IATuC,KAAK,CAUnC,CAClB,CAAC,IACA,CACT,CAAC;AACN,CAAC;AAED,aAAa,CAAC,QAAQ,GAAG,eAAe,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/CheckboxOption.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { CheckboxProps } from './Checkbox';
|
|
2
2
|
import { ToggleOptionProps } from './ToggleOption';
|
|
3
3
|
import { InvalidPropsLibrary } from '.';
|
|
4
|
-
export type CheckboxOptionProps = InvalidPropsLibrary & Pick<CheckboxProps, 'checked' | 'disabled' | 'indeterminate' | 'name' | '
|
|
4
|
+
export type CheckboxOptionProps = InvalidPropsLibrary & Pick<CheckboxProps, 'checked' | 'disabled' | 'indeterminate' | 'name' | 'value'> & Pick<ToggleOptionProps, 'description' | 'label'> & {
|
|
5
|
+
/**
|
|
6
|
+
* The function to call when the checkbox is checked or unchecked.
|
|
7
|
+
*
|
|
8
|
+
* @required
|
|
9
|
+
*/
|
|
10
|
+
onChange: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
11
|
+
};
|
|
5
12
|
/**
|
|
6
13
|
* A control that allows users to choose one or more items from a list or turn an feature on or off.
|
|
7
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxOption.js","sourceRoot":"","sources":["../src/CheckboxOption.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckboxOption.js","sourceRoot":"","sources":["../src/CheckboxOption.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAejE;;;;GAIG;AACH,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,aAAa,EAAuB;IACjF,OAAO,CACH,KAAC,YAAY,iBAAW,iBAAiB,EAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,YAC5E,KAAC,QAAQ,OAAK,aAAa,gBAAc,KAAK,GAAI,GACvC,CAClB,CAAC;AACN,CAAC;AAED,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/Chip.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './chip.scss';
|
|
2
2
|
import { CSSProperties, ReactNode } from 'react';
|
|
3
3
|
import { CommonProps } from '.';
|
|
4
|
-
export type ChipProps = CommonProps<'disabled'
|
|
4
|
+
export type ChipProps = CommonProps<'disabled'> & {
|
|
5
5
|
/**
|
|
6
6
|
* The content of the chip.
|
|
7
7
|
*
|
|
@@ -36,6 +36,8 @@ export type ChipProps = CommonProps<'disabled' | 'onClick'> & {
|
|
|
36
36
|
selected?: boolean;
|
|
37
37
|
/** The style of the chip. */
|
|
38
38
|
style?: CSSProperties;
|
|
39
|
+
/** The function to call when the chip is clicked. */
|
|
40
|
+
onClick?: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;
|
|
39
41
|
};
|
|
40
42
|
/**
|
|
41
43
|
* Dynamically generated options that are suggested to the user as responses or prompts.
|
package/dist/Chip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.js","sourceRoot":"","sources":["../src/Chip.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Chip.js","sourceRoot":"","sources":["../src/Chip.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAC;AA6CrB;;;;GAIG;AACH,SAAS,IAAI,CAAC,EACV,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,KAAK,EACZ,OAAO,GAAG,QAAQ,EAClB,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,KAAK,EAAE,SAAS,GACR;IACR,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,eAAe,GAAG;YACd,OAAO;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC;SACd,CAAC;IACN,CAAC;IAED,OAAO,CACH,4BACc,MAAM,mBACD,QAAQ,IAAI,SAAS,eACzB,IAAI,IAAI,SAAS,mBACb,QAAQ,IAAI,SAAS,kBACtB,OAAO,eACV,IAAI,IAAI,SAAS,EAC5B,KAAK,EAAE,SAAS,KACZ,eAAe,YAElB,QAAQ,GACN,CACV,CAAC;AACN,CAAC;AAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/Dialog.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import './dialog.scss';
|
|
2
|
-
import { ReactNode
|
|
3
|
-
import { CommonProps, ElementProps } from './';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { CommonProps, ElementProps, SetRef } from './';
|
|
4
4
|
export type DialogProps = CommonProps<'id'> & {
|
|
5
5
|
/** The content of the dialog. */
|
|
6
6
|
children?: ReactNode;
|
|
7
7
|
/** A ref to the dialog element. */
|
|
8
|
-
innerRef?:
|
|
8
|
+
innerRef?: SetRef<HTMLDivElement>;
|
|
9
9
|
/**
|
|
10
10
|
* If the dialog should appear.
|
|
11
11
|
*
|
package/dist/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../src/Dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../src/Dialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/Divider.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { styleAdd } from './utils/styleAdd';
|
|
3
|
-
styleAdd(`[data-bspk=divider]{/*! --inset: is set via inline style */display:flex;background-color:var(--stroke-neutral-low);align-self:stretch;place-content:stretch stretch;margin:0;padding:0;content:"hello";--length: calc(100% - var(--inset) * 2)}[data-bspk=divider],[data-bspk=divider][data-thickness=light]{--line-thickness: 1px;--padding: var(--spacing-sizing-02)}[data-bspk=divider][data-thickness=heavy]{--line-thickness: 2px;--padding: var(--spacing-sizing-04)}[data-bspk=divider],[data-bspk=divider][data-orientation=horizontal]{width:unset;min-height:unset;height:var(--line-thickness);min-width:var(--length);margin:var(--padding) var(--inset)}[data-bspk=divider][data-orientation=vertical]{height:unset;min-width:unset;width:var(--line-thickness);min-height:var(--length);margin:var(--inset) var(--padding)}[data-bspk=divider][data-hide-padding]{--padding: 0}`);;
|
|
3
|
+
styleAdd(`[data-bspk=divider]{/*! --inset: is set via inline style */display:flex;background-color:var(--stroke-neutral-low);align-self:stretch;place-content:stretch stretch;margin:0;padding:0;content:"hello";--length: calc(100% - var(--inset) * 2)}[data-bspk=divider],[data-bspk=divider][data-thickness=light]{--line-thickness: 1px;--padding: var(--spacing-sizing-02)}[data-bspk=divider][data-thickness=heavy]{--line-thickness: 2px;--padding: var(--spacing-sizing-04);border-radius:var(--radius-circular)}[data-bspk=divider],[data-bspk=divider][data-orientation=horizontal]{width:unset;min-height:unset;height:var(--line-thickness);min-width:var(--length);margin:var(--padding) var(--inset)}[data-bspk=divider][data-orientation=vertical]{height:unset;min-width:unset;width:var(--line-thickness);min-height:var(--length);margin:var(--inset) var(--padding)}[data-bspk=divider][data-hide-padding]{--padding: 0}`);;
|
|
4
4
|
const insetToVariable = (insetProp) => {
|
|
5
5
|
const inset = Number(insetProp);
|
|
6
6
|
if (inset === undefined || inset === null || inset < 1 || inset > 12)
|
package/dist/Dropdown.d.ts
CHANGED
|
@@ -2,22 +2,36 @@ import './dropdown.scss';
|
|
|
2
2
|
import { MenuProps } from './Menu';
|
|
3
3
|
import { Placement } from './hooks/useFloating';
|
|
4
4
|
import { CommonProps, InvalidPropsLibrary } from './';
|
|
5
|
-
export type DropdownOption = {
|
|
5
|
+
export type DropdownOption = Record<string, unknown> & {
|
|
6
6
|
/** The value of the option. */
|
|
7
7
|
value: string;
|
|
8
8
|
/** The label of the option. This is the text that will be displayed on the option. */
|
|
9
9
|
label: string;
|
|
10
10
|
};
|
|
11
|
-
export type DropdownProps<
|
|
11
|
+
export type DropdownProps<T extends DropdownOption = DropdownOption> = CommonProps<'aria-label' | 'disabled' | 'id' | 'name' | 'readOnly' | 'size'> & InvalidPropsLibrary & Pick<MenuProps<T>, 'isMulti' | 'itemCount' | 'renderListItem'> & {
|
|
12
12
|
/**
|
|
13
13
|
* Array of options to display in the dropdown
|
|
14
14
|
*
|
|
15
|
-
* @
|
|
15
|
+
* @example
|
|
16
|
+
* [
|
|
17
|
+
* { value: '1', label: 'Option 1' },
|
|
18
|
+
* { value: '2', label: 'Option 2' },
|
|
19
|
+
* { value: '3', label: 'Option 3' },
|
|
20
|
+
* { value: '4', label: 'Option 4' },
|
|
21
|
+
* { value: '5', label: 'Option 5' },
|
|
22
|
+
* { value: '6', label: 'Option 6' },
|
|
23
|
+
* { value: '7', label: 'Option 7' },
|
|
24
|
+
* { value: '8', label: 'Option 8' },
|
|
25
|
+
* { value: '9', label: 'Option 9' },
|
|
26
|
+
* { value: '10', label: 'Option 10' },
|
|
27
|
+
* ];
|
|
28
|
+
*
|
|
29
|
+
* @type Array<DropdownOption>
|
|
16
30
|
* @required
|
|
17
31
|
*/
|
|
18
|
-
options:
|
|
32
|
+
options: T[];
|
|
19
33
|
/**
|
|
20
|
-
* Array of selected values
|
|
34
|
+
* Array of selected values
|
|
21
35
|
*
|
|
22
36
|
* @type Array<string>
|
|
23
37
|
*/
|
|
@@ -36,13 +50,19 @@ export type DropdownProps<O extends DropdownOption = DropdownOption> = CommonPro
|
|
|
36
50
|
placement?: Extract<Placement, 'bottom' | 'top'>;
|
|
37
51
|
/** The style of the dropdown. */
|
|
38
52
|
style?: React.CSSProperties;
|
|
53
|
+
/**
|
|
54
|
+
* The function to call when the selected values change.
|
|
55
|
+
*
|
|
56
|
+
* @required
|
|
57
|
+
*/
|
|
58
|
+
onChange?: (value: string[], event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
39
59
|
};
|
|
40
60
|
/**
|
|
41
61
|
* A field element that allows users to select one option from a list of available choices. *
|
|
42
62
|
*
|
|
43
63
|
* @name Dropdown
|
|
44
64
|
*/
|
|
45
|
-
declare function Dropdown
|
|
65
|
+
declare function Dropdown({ options, value: selected, onChange, 'aria-label': ariaLabel, placeholder, size, itemCount, disabled, id: propId, invalid, errorMessage, readOnly, placement, name, isMulti, renderListItem, style: styleProp, }: DropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
46
66
|
declare namespace Dropdown {
|
|
47
67
|
var bspkName: string;
|
|
48
68
|
}
|
package/dist/Dropdown.js
CHANGED
|
@@ -26,11 +26,11 @@ function Dropdown({ options = [], value: selected, onChange, 'aria-label': ariaL
|
|
|
26
26
|
const dropdownLabel = isMulti
|
|
27
27
|
? `${selected?.length || 0} option${selected?.length !== 1 ? 's' : ''} selected`
|
|
28
28
|
: options.find((o) => o.value === selected?.[0])?.label;
|
|
29
|
-
return (_jsxs(_Fragment, { children: [_jsx("input", { defaultValue: selected, name: name, type: "hidden" }), _jsxs("button", { "aria-label": ariaLabel, "data-bspk": "dropdown", "data-empty": dropdownLabel ? undefined : '', "data-invalid": invalid || undefined, "data-size": size, disabled: disabled || readOnly, id: id, style: styleProp, ...triggerProps, children: [_jsx(ListItem, { "data-placeholder": "", label: dropdownLabel || placeholder, readOnly: true }), _jsx("span", { "data-svg": true, children: _jsx(SvgChevronRight, {}) })] }), _jsx(Portal, { children: _jsx(Menu, { "data-floating": true, isMulti: isMulti, itemCount: itemCount, items: options, onChange: (
|
|
29
|
+
return (_jsxs(_Fragment, { children: [_jsx("input", { defaultValue: selected, name: name, type: "hidden" }), _jsxs("button", { "aria-label": ariaLabel, "data-bspk": "dropdown", "data-empty": dropdownLabel ? undefined : '', "data-invalid": invalid || undefined, "data-size": size, disabled: disabled || readOnly, id: id, style: styleProp, ...triggerProps, children: [_jsx(ListItem, { "data-placeholder": "", label: dropdownLabel || placeholder, readOnly: true }), _jsx("span", { "data-svg": true, children: _jsx(SvgChevronRight, {}) })] }), _jsx(Portal, { children: _jsx(Menu, { "data-floating": true, isMulti: isMulti, itemCount: itemCount, items: options, onChange: (next, event) => {
|
|
30
30
|
event?.preventDefault();
|
|
31
31
|
if (!isMulti)
|
|
32
32
|
closeMenu();
|
|
33
|
-
onChange?.(
|
|
33
|
+
onChange?.(next);
|
|
34
34
|
}, renderListItem: renderListItem, selectedValues: selected, ...menuProps }) })] }));
|
|
35
35
|
}
|
|
36
36
|
Dropdown.bspkName = 'Dropdown';
|
package/dist/Dropdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAiEtC;;;;GAIG;AACH,SAAS,QAAQ,CAAC,EACd,OAAO,GAAG,EAAE,EACZ,KAAK,EAAE,QAAQ,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,WAAW,GAAG,WAAW,EACzB,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,CAAC,EACb,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,KAAK,EAAE,SAAS,GACJ;IACZ,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;QAC3D,SAAS;QACT,YAAY,EAAE;YACV,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,YAAY;SACf;KACJ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO;QACzB,CAAC,CAAC,GAAG,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW;QAChF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAE5D,OAAO,CACH,8BACI,gBAAO,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,QAAQ,GAAG,EAC3D,gCACgB,SAAS,eACX,UAAU,gBACR,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAC5B,OAAO,IAAI,SAAS,eACvB,IAAI,EACf,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,KACZ,YAAY,aAEhB,KAAC,QAAQ,wBAAkB,EAAE,EAAC,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,QAAQ,SAAG,EAC9E,2CACI,KAAC,eAAe,KAAG,GAChB,IACF,EACT,KAAC,MAAM,cACH,KAAC,IAAI,2BAED,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACtB,KAAK,EAAE,cAAc,EAAE,CAAC;wBACxB,IAAI,CAAC,OAAO;4BAAE,SAAS,EAAE,CAAC;wBAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC,EACD,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,QAAQ,KACpB,SAAS,GACf,GACG,IACV,CACN,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/ListItem.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { styleAdd } from './utils/styleAdd';
|
|
3
|
-
styleAdd(`[data-bspk=list-item]{display:block;width:100%;box-sizing:border-box;padding:0 var(--spacing-sizing-02);background:unset;border:unset;margin:unset;text-decoration:unset;user-select:none;color:var(--foreground-neutral-on-surface)}[data-bspk=list-item]:is(a),[data-bspk=list-item]:is(button),[data-bspk=list-item][onclick],[data-bspk=list-item][role=button]{cursor:pointer}[data-bspk=list-item] [data-inner]{height:100%;width:100%;min-height:var(--spacing-sizing-09);box-sizing:border-box;display:flex;flex-direction:row;gap:var(--spacing-sizing-03);padding:var(--spacing-sizing-02) 0;justify-items:stretch}[data-bspk=list-item] [data-inner]>*{min-height:100%;width:fit-content;display:flex;flex-direction:column;justify-content:space-around;flex:1;flex-shrink:0}[data-bspk=list-item] [data-inner]>* svg{width:24px;max-width:unset}[data-pseudo=focus] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:focus-visible,[data-bspk=list-item][data-action]:has(*:focus-visible){box-shadow:inset var(--stroke-neutral-focus) 0 0 0 2px}[data-pseudo=focus] [data-bspk=list-item][data-action] [data-inner],[data-bspk=list-item][data-action]:focus-visible [data-inner],[data-bspk=list-item][data-action]:has(*:focus-visible) [data-inner]{border-color:rgba(0,0,0,0)}[data-pseudo=hover] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:hover{background-color:var(--interactions-neutral-hover-opacity)}[data-pseudo=active] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action][data-active],[data-bspk=list-item][data-action]:active{background-color:var(--interactions-neutral-press-opacity)}[data-bspk=list-item] [data-component=Img]>img{height:36px;width:36px;max-width:unset}[data-bspk=list-item]:is(label) [data-inner]{border-bottom:0;gap:var(--spacing-sizing-02)}[data-bspk=list-item] [data-item-label]{flex:100%;text-align:left}[data-bspk=list-item] [data-item-label] [data-text]{font:var(--labels-base);color:var(--foreground-neutral-on-surface)}[data-bspk=list-item] [data-item-label] [data-sub-text]{font:var(--body-small);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=list-item][aria-disabled] [data-text],[data-bspk=list-item][aria-disabled] [data-sub-text]{color:var(--foreground-neutral-disabled-on-surface)}`);;
|
|
3
|
+
styleAdd(`[data-bspk=list-item]{display:block;width:100%;box-sizing:border-box;padding:0 var(--spacing-sizing-02);background:unset;border:unset;margin:unset;text-decoration:unset;user-select:none;color:var(--foreground-neutral-on-surface)}[data-bspk=list-item]:is(a),[data-bspk=list-item]:is(button),[data-bspk=list-item][onclick],[data-bspk=list-item][role=button]{cursor:pointer}[data-bspk=list-item] [data-inner]{height:100%;width:100%;min-height:var(--spacing-sizing-09);box-sizing:border-box;display:flex;flex-direction:row;gap:var(--spacing-sizing-03);padding:var(--spacing-sizing-02) 0;justify-items:stretch}[data-bspk=list-item] [data-inner]>*{min-height:100%;width:fit-content;display:flex;flex-direction:column;justify-content:space-around;flex:1;flex-shrink:0}[data-bspk=list-item] [data-inner]>* svg{width:24px;max-width:unset}[data-pseudo=focus] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:focus-visible,[data-bspk=list-item][data-action]:has(*:focus-visible){box-shadow:inset var(--stroke-neutral-focus) 0 0 0 2px}[data-pseudo=focus] [data-bspk=list-item][data-action] [data-inner],[data-bspk=list-item][data-action]:focus-visible [data-inner],[data-bspk=list-item][data-action]:has(*:focus-visible) [data-inner]{border-color:rgba(0,0,0,0)}[data-pseudo=hover] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action]:hover{background-color:var(--interactions-neutral-hover-opacity)}[data-pseudo=active] [data-bspk=list-item][data-action],[data-bspk=list-item][data-action][data-active],[data-bspk=list-item][data-action]:active{background-color:var(--interactions-neutral-press-opacity)}[data-bspk=list-item] [data-trailing]:has(input){pointer-events:none}[data-bspk=list-item] [data-component=Img]>img{height:36px;width:36px;max-width:unset}[data-bspk=list-item]:is(label) [data-inner]{border-bottom:0;gap:var(--spacing-sizing-02)}[data-bspk=list-item] [data-item-label]{flex:100%;text-align:left}[data-bspk=list-item] [data-item-label] [data-text]{font:var(--labels-base);color:var(--foreground-neutral-on-surface)}[data-bspk=list-item] [data-item-label] [data-sub-text]{font:var(--body-small);color:var(--foreground-neutral-on-surface-variant-01)}[data-bspk=list-item][aria-disabled] [data-text],[data-bspk=list-item][aria-disabled] [data-sub-text]{color:var(--foreground-neutral-disabled-on-surface)}`);;
|
|
4
4
|
import { Button } from './Button';
|
|
5
5
|
import { getChildrenElements } from './utils/children';
|
|
6
6
|
import { useErrorLogger } from './utils/errors';
|