@preply/ds-web-lib 3.5.1 → 3.6.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/BubbleCounter.module-QMwXWFIS.js +16 -0
- package/dist/ChipsPrimitive-DN5NA2yH.js +1242 -0
- package/dist/assets/Accordion.css +2 -2
- package/dist/assets/AlertDialog.css +2 -2
- package/dist/assets/Avatar.css +3 -3
- package/dist/assets/AvatarWithStatus.css +2 -2
- package/dist/assets/Badge.css +3 -3
- package/dist/assets/Box.css +3 -3
- package/dist/assets/BubbleCounter.css +69 -0
- package/dist/assets/Button.css +4 -4
- package/dist/assets/ButtonBase.css +4 -4
- package/dist/assets/Checkbox.css +2 -2
- package/dist/assets/Chips.css +16 -16
- package/dist/assets/ChipsPrimitive.css +118 -0
- package/dist/assets/CountryFlag.css +1 -1
- package/dist/assets/Dialog.css +3 -3
- package/dist/assets/Divider.css +14 -0
- package/dist/assets/FieldButton.css +3 -3
- package/dist/assets/FormControl.css +2 -2
- package/dist/assets/Heading.css +3 -3
- package/dist/assets/Icon.css +3 -3
- package/dist/assets/InputContainer.css +2 -2
- package/dist/assets/LayoutFlex.css +1 -1
- package/dist/assets/LayoutFlexItem.css +1 -1
- package/dist/assets/Link.css +3 -3
- package/dist/assets/Loader.css +1 -1
- package/dist/assets/OnboardingTooltip.css +1 -1
- package/dist/assets/OnboardingTour.css +1 -1
- package/dist/assets/PreplyLogo.css +1 -1
- package/dist/assets/ProgressBar.css +1 -1
- package/dist/assets/ProgressSteps.css +1 -1
- package/dist/assets/Slider.css +1 -1
- package/dist/assets/Spinner.css +3 -3
- package/dist/assets/Steps.css +1 -1
- package/dist/assets/Switch.css +57 -0
- package/dist/assets/Text.css +3 -3
- package/dist/assets/TextHighlighted.css +3 -3
- package/dist/assets/TextInline.css +3 -3
- package/dist/assets/Toast.css +2 -2
- package/dist/assets/Tooltip.css +1 -1
- package/dist/assets/VisuallyHidden.css +9 -0
- package/dist/assets/align-self.css +1 -1
- package/dist/assets/color.css +2 -2
- package/dist/assets/exp-color.css +2 -2
- package/dist/assets/layout-gap.css +21 -3
- package/dist/assets/layout-grid.css +3 -3
- package/dist/assets/layout-hide.css +1 -1
- package/dist/assets/layout-padding.css +75 -3
- package/dist/assets/layout-relative.css +1 -1
- package/dist/assets/text-accent.css +2 -2
- package/dist/assets/text-centered.css +1 -1
- package/dist/assets/text-weight.css +2 -2
- package/dist/components/BubbleCounter/BubbleCounter.d.ts +41 -0
- package/dist/components/BubbleCounter/BubbleCounter.d.ts.map +1 -0
- package/dist/components/BubbleCounter/BubbleCounter.js +31 -0
- package/dist/components/Chips/Chips.types.d.ts +38 -0
- package/dist/components/Chips/Chips.types.d.ts.map +1 -0
- package/dist/components/Chips/DismissibleChips.d.ts +48 -0
- package/dist/components/Chips/DismissibleChips.d.ts.map +1 -0
- package/dist/components/Chips/DismissibleChips.js +92 -0
- package/dist/components/Chips/MultiSelectChips.d.ts +45 -0
- package/dist/components/Chips/MultiSelectChips.d.ts.map +1 -0
- package/dist/components/Chips/MultiSelectChips.js +70 -0
- package/dist/components/Chips/SingleSelectChips.d.ts +45 -0
- package/dist/components/Chips/SingleSelectChips.d.ts.map +1 -0
- package/dist/components/Chips/SingleSelectChips.js +63 -0
- package/dist/components/Chips/private/ChipsPrimitive.d.ts +58 -0
- package/dist/components/Chips/private/ChipsPrimitive.d.ts.map +1 -0
- package/dist/components/Chips/private/ChipsPrimitive.js +17 -0
- package/dist/components/CountryFlag/CountryFlag.d.ts +3 -4
- package/dist/components/CountryFlag/CountryFlag.d.ts.map +1 -1
- package/dist/components/CountryFlag/CountryFlag.js +6 -6
- package/dist/components/Divider/Divider.d.ts +9 -0
- package/dist/components/Divider/Divider.d.ts.map +1 -0
- package/dist/components/Divider/Divider.js +14 -0
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.js +2 -1
- package/dist/components/LayoutFlex/LayoutFlex.js +1 -1
- package/dist/components/LayoutFlex/tests/Gap.d.ts +1 -0
- package/dist/components/LayoutFlex/tests/Gap.d.ts.map +1 -1
- package/dist/components/LayoutFlex/tests/Gap.js +12 -0
- package/dist/components/LayoutFlex/tests/Padding.d.ts +1 -0
- package/dist/components/LayoutFlex/tests/Padding.d.ts.map +1 -1
- package/dist/components/LayoutFlex/tests/Padding.js +12 -0
- package/dist/components/Switch/Switch.d.ts +62 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.js +51 -0
- package/dist/components/{Chips → deprecated/Chips}/Chips.d.ts +9 -1
- package/dist/components/deprecated/Chips/Chips.d.ts.map +1 -0
- package/dist/components/{Chips → deprecated/Chips}/Chips.js +7 -7
- package/dist/components/deprecated/index.d.ts +2 -0
- package/dist/components/deprecated/index.d.ts.map +1 -0
- package/dist/components/deprecated/index.js +4 -0
- package/dist/components/index.d.ts +6 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +15 -2
- package/dist/components/private/VisuallyHidden/VisuallyHidden.d.ts +23 -0
- package/dist/components/private/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/private/VisuallyHidden/VisuallyHidden.js +15 -0
- package/dist/index.js +15 -2
- package/dist/{layout-gap.module-B_tyw31T.js → layout-gap.module-RzGBJL6B.js} +6 -0
- package/dist/shared-styles/layout-gap/layout-gap.js +1 -1
- package/dist/shared-styles/layout-padding/layout-padding.js +24 -0
- package/dist/utils/Orientation/OrientationProvider.d.ts +45 -0
- package/dist/utils/Orientation/OrientationProvider.d.ts.map +1 -0
- package/dist/utils/Orientation/OrientationProvider.js +27 -0
- package/dist/utils/Orientation/index.d.ts +2 -0
- package/dist/utils/Orientation/index.d.ts.map +1 -0
- package/dist/utils/Orientation/index.js +5 -0
- package/dist/utils/RovingTabIndex/RovingTabIndexProvider.d.ts +45 -0
- package/dist/utils/RovingTabIndex/RovingTabIndexProvider.d.ts.map +1 -0
- package/dist/utils/RovingTabIndex/RovingTabIndexProvider.js +48 -0
- package/dist/utils/RovingTabIndex/index.d.ts +2 -0
- package/dist/utils/RovingTabIndex/index.d.ts.map +1 -0
- package/dist/utils/RovingTabIndex/index.js +5 -0
- package/dist/utils/createRequiredContext.d.ts +15 -0
- package/dist/utils/createRequiredContext.d.ts.map +1 -0
- package/dist/utils/createRequiredContext.js +16 -0
- package/dist/utils/useControllableState/useControllableState.d.ts +19 -0
- package/dist/utils/useControllableState/useControllableState.d.ts.map +1 -0
- package/dist/utils/useControllableState/useControllableState.js +27 -0
- package/dist/utils/useStableCallback/useStableCallback.d.ts +18 -0
- package/dist/utils/useStableCallback/useStableCallback.d.ts.map +1 -0
- package/dist/utils/useStableCallback/useStableCallback.js +15 -0
- package/package.json +14 -13
- package/dist/components/Chips/Chips.d.ts.map +0 -1
- package/dist/components/CountryFlag/types.d.ts +0 -3
- package/dist/components/CountryFlag/types.d.ts.map +0 -1
- package/dist/components/CountryFlag/utils/countries.d.ts +0 -276
- package/dist/components/CountryFlag/utils/countries.d.ts.map +0 -1
- package/dist/components/CountryFlag/utils/countries.js +0 -275
- package/dist/components/CountryFlag/utils/getCountryFlagUrl.d.ts +0 -7
- package/dist/components/CountryFlag/utils/getCountryFlagUrl.d.ts.map +0 -1
- package/dist/components/CountryFlag/utils/getCountryFlagUrl.js +0 -14
- /package/dist/components/{CountryFlag/types.js → Chips/Chips.types.js} +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { useControllableState } from "../../utils/useControllableState/useControllableState.js";
|
|
5
|
+
import { C as ChipsRoot, a as ChipsList, $ as $9bf71ea28793e738$export$10c5169755ce7bd7, b as ChipListItem, c as ChipButton, d as ChipLabel } from "../../ChipsPrimitive-DN5NA2yH.js";
|
|
6
|
+
import CloseSvg from "@preply/ds-media-icons/dist/24/TokyoUIClose.svg";
|
|
7
|
+
import { VisuallyHidden } from "../private/VisuallyHidden/VisuallyHidden.js";
|
|
8
|
+
import { FormattedMessage } from "react-intl";
|
|
9
|
+
import { genericAriaLabels } from "../../utils/shared-strings.js";
|
|
10
|
+
import { getDatasetProps } from "@preply/ds-web-core";
|
|
11
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
12
|
+
import { filterAttributesPassedByRadixUIAtRuntime } from "../../utils/filterAttributesPassedByRadixUIAtRuntime.js";
|
|
13
|
+
import { Icon } from "../Icon/Icon.js";
|
|
14
|
+
import { createRequiredContext } from "../../utils/createRequiredContext.js";
|
|
15
|
+
const [Provider, useDismissibleChipsContext] = createRequiredContext("DismissibleChips");
|
|
16
|
+
const DismissibleChips = forwardRef(function DismissibleChips2({
|
|
17
|
+
items,
|
|
18
|
+
children,
|
|
19
|
+
orientation,
|
|
20
|
+
"aria-label": ariaLabel,
|
|
21
|
+
"aria-controls": ariaControls,
|
|
22
|
+
value: valueProp,
|
|
23
|
+
onValueChange: onValueChangeProp,
|
|
24
|
+
defaultValue,
|
|
25
|
+
dataset,
|
|
26
|
+
...restPropsPassedByRadixUI
|
|
27
|
+
}, ref) {
|
|
28
|
+
const [values, onValueChange] = useControllableState({
|
|
29
|
+
value: valueProp,
|
|
30
|
+
onValueChange: onValueChangeProp,
|
|
31
|
+
defaultValue: defaultValue != null ? defaultValue : []
|
|
32
|
+
});
|
|
33
|
+
const onRemove = (value) => {
|
|
34
|
+
onValueChange(values.filter((v) => v !== value));
|
|
35
|
+
};
|
|
36
|
+
const content = items ? items.map(({
|
|
37
|
+
label,
|
|
38
|
+
value,
|
|
39
|
+
...props
|
|
40
|
+
}) => /* @__PURE__ */ jsx(DismissibleChipsItem, { value, ...props, children: label }, value)) : children;
|
|
41
|
+
return /* @__PURE__ */ jsx(Provider, { value: {
|
|
42
|
+
values,
|
|
43
|
+
onRemove,
|
|
44
|
+
ariaControls
|
|
45
|
+
}, children: /* @__PURE__ */ jsx(ChipsRoot, { orientation, children: /* @__PURE__ */ jsx(ChipsList, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, orientation, "aria-label": ariaLabel, ...getDatasetProps(dataset, {
|
|
46
|
+
preplyDsComponent: webComponentNames.DismissibleChips
|
|
47
|
+
}), children: content }) }) });
|
|
48
|
+
});
|
|
49
|
+
const DismissibleChipsItem = forwardRef(function DismissibleChipsItem2({
|
|
50
|
+
value,
|
|
51
|
+
children,
|
|
52
|
+
icon,
|
|
53
|
+
countryFlagCode,
|
|
54
|
+
disabled,
|
|
55
|
+
counter,
|
|
56
|
+
dataset,
|
|
57
|
+
dsInternalSimulation,
|
|
58
|
+
...restPropsPassedByRadixUI
|
|
59
|
+
}, ref) {
|
|
60
|
+
const {
|
|
61
|
+
values,
|
|
62
|
+
onRemove,
|
|
63
|
+
ariaControls
|
|
64
|
+
} = useDismissibleChipsContext();
|
|
65
|
+
const focusManager = $9bf71ea28793e738$export$10c5169755ce7bd7();
|
|
66
|
+
const handleRemove = () => {
|
|
67
|
+
onRemove(value);
|
|
68
|
+
focusManager == null ? void 0 : focusManager.focusNext({
|
|
69
|
+
wrap: true
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
const handleKeyDown = (e) => {
|
|
73
|
+
switch (e.key) {
|
|
74
|
+
case "Delete":
|
|
75
|
+
case "Backspace":
|
|
76
|
+
handleRemove();
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
if (!values.includes(value)) return null;
|
|
81
|
+
return /* @__PURE__ */ jsx(ChipListItem, { children: /* @__PURE__ */ jsxs(ChipButton, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, variant: "dismissible", onClick: handleRemove, onKeyDown: handleKeyDown, icon, countryFlagCode, disabled, "aria-controls": ariaControls, dsInternalSimulation, ...getDatasetProps(dataset, {
|
|
82
|
+
preplyDsComponent: webComponentNames.DismissibleChipsItem
|
|
83
|
+
}), children: [
|
|
84
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(FormattedMessage, { ...genericAriaLabels.remove }) }),
|
|
85
|
+
/* @__PURE__ */ jsx(ChipLabel, { counter, children }),
|
|
86
|
+
/* @__PURE__ */ jsx(Icon, { svg: CloseSvg })
|
|
87
|
+
] }) });
|
|
88
|
+
});
|
|
89
|
+
export {
|
|
90
|
+
DismissibleChips,
|
|
91
|
+
DismissibleChipsItem
|
|
92
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { default as React, PropsWithRef, RefAttributes } from 'react';
|
|
2
|
+
import { ChipsItemProps, CommonChipsProps } from './Chips.types';
|
|
3
|
+
export type MultiSelectChipsProps<T extends string> = CommonChipsProps<T[]>;
|
|
4
|
+
export type MultiSelectChipsItemProps = ChipsItemProps;
|
|
5
|
+
interface MultiSelectChipsWithRef {
|
|
6
|
+
<T extends string>(props: PropsWithRef<MultiSelectChipsProps<T> & RefAttributes<HTMLUListElement>>): React.ReactElement;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A chips component that allows selection of multiple options from a group.
|
|
10
|
+
* Users can select multiple chips, and clicking a selected chip will deselect it.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* **Keyboard interactions:**
|
|
14
|
+
* - **Tab** to enter/exit the component (uses [roving tabindex pattern](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex))
|
|
15
|
+
* - **Arrow keys** to navigate between chips within the group
|
|
16
|
+
* - **Space/Enter** to toggle selection of the focused chip
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <MultiSelectChips aria-label="Select skills" defaultValue={['vocabulary', 'speaking']}>
|
|
21
|
+
* <MultiSelectChipsItem value="vocabulary">Vocabulary</MultiSelectChipsItem>
|
|
22
|
+
* <MultiSelectChipsItem value="speaking">Speaking</MultiSelectChipsItem>
|
|
23
|
+
* <MultiSelectChipsItem value="listening">Listening</MultiSelectChipsItem>
|
|
24
|
+
* </MultiSelectChips>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const MultiSelectChips: MultiSelectChipsWithRef;
|
|
28
|
+
/**
|
|
29
|
+
* Individual chip item for use within MultiSelectChips.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <MultiSelectChipsItem value="english">
|
|
34
|
+
* English
|
|
35
|
+
* </MultiSelectChipsItem>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const MultiSelectChipsItem: React.ForwardRefExoticComponent<Pick<import('./private/ChipsPrimitive').ChipButtonProps, "disabled" | "dsInternalSimulation" | "icon" | "countryFlagCode"> & {
|
|
39
|
+
value: string;
|
|
40
|
+
children: React.ReactNode;
|
|
41
|
+
counter?: number | undefined;
|
|
42
|
+
dataset?: import('@preply/ds-core').Dataset | undefined;
|
|
43
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=MultiSelectChips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectChips.d.ts","sourceRoot":"","sources":["../../../src/components/Chips/MultiSelectChips.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,YAAY,EAAO,aAAa,EAAE,MAAM,OAAO,CAAC;AAU5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAajE,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAGvD,UAAU,uBAAuB;IAC7B,CAAC,CAAC,SAAS,MAAM,EACb,KAAK,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,GAChF,KAAK,CAAC,YAAY,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,yBA0DA,CAAC;AAE9B;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;;2CAwChC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { useControllableState } from "../../utils/useControllableState/useControllableState.js";
|
|
5
|
+
import { C as ChipsRoot, D as DEFAULT_ORIENTATION, a as ChipsList, b as ChipListItem, c as ChipButton, d as ChipLabel } from "../../ChipsPrimitive-DN5NA2yH.js";
|
|
6
|
+
import { getDatasetProps } from "@preply/ds-web-core";
|
|
7
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
8
|
+
import { filterAttributesPassedByRadixUIAtRuntime } from "../../utils/filterAttributesPassedByRadixUIAtRuntime.js";
|
|
9
|
+
import { createRequiredContext } from "../../utils/createRequiredContext.js";
|
|
10
|
+
const [Provider, useMultiSelectChipsContext] = createRequiredContext("MultiSelectChips");
|
|
11
|
+
const MultiSelectChips = forwardRef(function MultiSelectChips2({
|
|
12
|
+
items,
|
|
13
|
+
children,
|
|
14
|
+
orientation = DEFAULT_ORIENTATION,
|
|
15
|
+
"aria-label": ariaLabel,
|
|
16
|
+
"aria-controls": ariaControls,
|
|
17
|
+
value: valueProp,
|
|
18
|
+
onValueChange: onValueChangeProp,
|
|
19
|
+
defaultValue,
|
|
20
|
+
dataset,
|
|
21
|
+
...restPropsPassedByRadixUI
|
|
22
|
+
}, ref) {
|
|
23
|
+
const [values, onValueChange] = useControllableState({
|
|
24
|
+
value: valueProp,
|
|
25
|
+
onValueChange: onValueChangeProp,
|
|
26
|
+
defaultValue: defaultValue != null ? defaultValue : []
|
|
27
|
+
});
|
|
28
|
+
const onToggle = (value, isSelected) => {
|
|
29
|
+
if (isSelected) {
|
|
30
|
+
onValueChange(values.filter((v) => v !== value));
|
|
31
|
+
} else {
|
|
32
|
+
onValueChange([...values, value]);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const content = items ? items.map(({
|
|
36
|
+
label,
|
|
37
|
+
value,
|
|
38
|
+
...props
|
|
39
|
+
}) => /* @__PURE__ */ jsx(MultiSelectChipsItem, { value, ...props, children: label }, value)) : children;
|
|
40
|
+
return /* @__PURE__ */ jsx(Provider, { value: {
|
|
41
|
+
values,
|
|
42
|
+
onToggle
|
|
43
|
+
}, children: /* @__PURE__ */ jsx(ChipsRoot, { orientation, children: /* @__PURE__ */ jsx(ChipsList, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, orientation, "aria-orientation": orientation, "aria-label": ariaLabel, "aria-controls": ariaControls, role: "listbox", "aria-multiselectable": "true", ...getDatasetProps(dataset, {
|
|
44
|
+
preplyDsComponent: webComponentNames.MultiSelectChips
|
|
45
|
+
}), children: content }) }) });
|
|
46
|
+
});
|
|
47
|
+
const MultiSelectChipsItem = forwardRef(function MultiSelectChipsItem2({
|
|
48
|
+
value,
|
|
49
|
+
children,
|
|
50
|
+
icon,
|
|
51
|
+
countryFlagCode,
|
|
52
|
+
disabled,
|
|
53
|
+
counter,
|
|
54
|
+
dataset,
|
|
55
|
+
dsInternalSimulation,
|
|
56
|
+
...restPropsPassedByRadixUI
|
|
57
|
+
}, ref) {
|
|
58
|
+
const {
|
|
59
|
+
values,
|
|
60
|
+
onToggle
|
|
61
|
+
} = useMultiSelectChipsContext();
|
|
62
|
+
const isSelected = values.includes(value);
|
|
63
|
+
return /* @__PURE__ */ jsx(ChipListItem, { role: "presentation", children: /* @__PURE__ */ jsx(ChipButton, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, role: "option", "aria-selected": isSelected, onClick: () => onToggle(value, isSelected), icon, countryFlagCode, disabled, dsInternalSimulation, ...getDatasetProps(dataset, {
|
|
64
|
+
preplyDsComponent: webComponentNames.MultiSelectChipsItem
|
|
65
|
+
}), children: /* @__PURE__ */ jsx(ChipLabel, { counter, children }) }) });
|
|
66
|
+
});
|
|
67
|
+
export {
|
|
68
|
+
MultiSelectChips,
|
|
69
|
+
MultiSelectChipsItem
|
|
70
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { default as React, PropsWithRef, RefAttributes } from 'react';
|
|
2
|
+
import { ChipsItemProps, CommonChipsProps } from './Chips.types';
|
|
3
|
+
export type SingleSelectChipsProps<T extends string> = CommonChipsProps<T | null>;
|
|
4
|
+
export type SingleSelectChipsItemProps = ChipsItemProps;
|
|
5
|
+
interface SingleSelectChipsWithRef {
|
|
6
|
+
<T extends string>(props: PropsWithRef<SingleSelectChipsProps<T> & RefAttributes<HTMLUListElement>>): React.ReactElement;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A chips component that allows selection of a single option from a group.
|
|
10
|
+
* Users can select one chip at a time, and clicking a selected chip will deselect it.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* **Keyboard interactions:**
|
|
14
|
+
* - **Tab** to enter/exit the component (uses [roving tabindex pattern](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex))
|
|
15
|
+
* - **Arrow keys** to navigate between chips within the group
|
|
16
|
+
* - **Space/Enter** to select/deselect the focused chip
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <SingleSelectChips aria-label="Choose a skill" defaultValue="vocabulary">
|
|
21
|
+
* <SingleSelectChipsItem value="vocabulary">Vocabulary</SingleSelectChipsItem>
|
|
22
|
+
* <SingleSelectChipsItem value="speaking">Speaking</SingleSelectChipsItem>
|
|
23
|
+
* <SingleSelectChipsItem value="listening">Listening</SingleSelectChipsItem>
|
|
24
|
+
* </SingleSelectChips>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const SingleSelectChips: SingleSelectChipsWithRef;
|
|
28
|
+
/**
|
|
29
|
+
* Individual chip item for use within SingleSelectChips.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <SingleSelectChipsItem value="english">
|
|
34
|
+
* English
|
|
35
|
+
* </SingleSelectChipsItem>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const SingleSelectChipsItem: React.ForwardRefExoticComponent<Pick<import('./private/ChipsPrimitive').ChipButtonProps, "disabled" | "dsInternalSimulation" | "icon" | "countryFlagCode"> & {
|
|
39
|
+
value: string;
|
|
40
|
+
children: React.ReactNode;
|
|
41
|
+
counter?: number | undefined;
|
|
42
|
+
dataset?: import('@preply/ds-core').Dataset | undefined;
|
|
43
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=SingleSelectChips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleSelectChips.d.ts","sourceRoot":"","sources":["../../../src/components/Chips/SingleSelectChips.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,YAAY,EAAO,aAAa,EAAE,MAAM,OAAO,CAAC;AAU5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAajE,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAClF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAGxD,UAAU,wBAAwB;IAC9B,CAAC,CAAC,SAAS,MAAM,EACb,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,GACjF,KAAK,CAAC,YAAY,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,0BAkDA,CAAC;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;;2CAwCjC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { useControllableState } from "../../utils/useControllableState/useControllableState.js";
|
|
5
|
+
import { C as ChipsRoot, D as DEFAULT_ORIENTATION, a as ChipsList, b as ChipListItem, c as ChipButton, d as ChipLabel } from "../../ChipsPrimitive-DN5NA2yH.js";
|
|
6
|
+
import { getDatasetProps } from "@preply/ds-web-core";
|
|
7
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
8
|
+
import { filterAttributesPassedByRadixUIAtRuntime } from "../../utils/filterAttributesPassedByRadixUIAtRuntime.js";
|
|
9
|
+
import { createRequiredContext } from "../../utils/createRequiredContext.js";
|
|
10
|
+
const [Provider, useSingleSelectChipsContext] = createRequiredContext("SingleSelectChips");
|
|
11
|
+
const SingleSelectChips = forwardRef(function SingleSelectChips2({
|
|
12
|
+
items,
|
|
13
|
+
children,
|
|
14
|
+
orientation = DEFAULT_ORIENTATION,
|
|
15
|
+
"aria-label": ariaLabel,
|
|
16
|
+
"aria-controls": ariaControls,
|
|
17
|
+
value: valueProp,
|
|
18
|
+
onValueChange: onValueChangeProp,
|
|
19
|
+
defaultValue,
|
|
20
|
+
dataset,
|
|
21
|
+
...restPropsPassedByRadixUI
|
|
22
|
+
}, ref) {
|
|
23
|
+
const [value, onValueChange] = useControllableState({
|
|
24
|
+
value: valueProp,
|
|
25
|
+
onValueChange: onValueChangeProp,
|
|
26
|
+
defaultValue: defaultValue != null ? defaultValue : null
|
|
27
|
+
});
|
|
28
|
+
const content = items ? items.map(({
|
|
29
|
+
label,
|
|
30
|
+
value: value2,
|
|
31
|
+
...props
|
|
32
|
+
}) => /* @__PURE__ */ jsx(SingleSelectChipsItem, { value: value2, ...props, children: label }, value2)) : children;
|
|
33
|
+
return /* @__PURE__ */ jsx(Provider, { value: {
|
|
34
|
+
value,
|
|
35
|
+
onValueChange
|
|
36
|
+
}, children: /* @__PURE__ */ jsx(ChipsRoot, { orientation, children: /* @__PURE__ */ jsx(ChipsList, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, orientation, "aria-orientation": orientation, "aria-label": ariaLabel, "aria-controls": ariaControls, role: "listbox", "aria-multiselectable": "false", ...getDatasetProps(dataset, {
|
|
37
|
+
preplyDsComponent: webComponentNames.SingleSelectChips
|
|
38
|
+
}), children: content }) }) });
|
|
39
|
+
});
|
|
40
|
+
const SingleSelectChipsItem = forwardRef(function SingleSelectChipsItem2({
|
|
41
|
+
value,
|
|
42
|
+
children,
|
|
43
|
+
icon,
|
|
44
|
+
countryFlagCode,
|
|
45
|
+
disabled,
|
|
46
|
+
counter,
|
|
47
|
+
dataset,
|
|
48
|
+
dsInternalSimulation,
|
|
49
|
+
...restPropsPassedByRadixUI
|
|
50
|
+
}, ref) {
|
|
51
|
+
const {
|
|
52
|
+
value: selectedValue,
|
|
53
|
+
onValueChange
|
|
54
|
+
} = useSingleSelectChipsContext();
|
|
55
|
+
const isSelected = selectedValue === value;
|
|
56
|
+
return /* @__PURE__ */ jsx(ChipListItem, { role: "presentation", children: /* @__PURE__ */ jsx(ChipButton, { ...filterAttributesPassedByRadixUIAtRuntime(restPropsPassedByRadixUI), ref, role: "option", "aria-selected": isSelected, onClick: () => onValueChange(isSelected ? null : value), icon, countryFlagCode, disabled, dsInternalSimulation, ...getDatasetProps(dataset, {
|
|
57
|
+
preplyDsComponent: webComponentNames.SingleSelectChipsItem
|
|
58
|
+
}), children: /* @__PURE__ */ jsx(ChipLabel, { counter, children }) }) });
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
SingleSelectChips,
|
|
62
|
+
SingleSelectChipsItem
|
|
63
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { default as React, ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { IconProps } from '../../Icon/Icon';
|
|
3
|
+
import { Orientation } from '../../../utils/Orientation';
|
|
4
|
+
import { CountryCode } from '@preply/ds-core';
|
|
5
|
+
/**
|
|
6
|
+
* Chips anatomy:
|
|
7
|
+
*
|
|
8
|
+
* <ChipsRoot>
|
|
9
|
+
* <ChipsList>
|
|
10
|
+
* <ChipListItem>
|
|
11
|
+
* <ChipButton>
|
|
12
|
+
* <ChipLabel />
|
|
13
|
+
* </ChipButton>
|
|
14
|
+
* </ChipListItem>
|
|
15
|
+
* </ChipsList>
|
|
16
|
+
* </ChipsRoot>
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_ORIENTATION = "horizontal";
|
|
19
|
+
export type ChipsRootProps = {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
orientation?: Orientation;
|
|
22
|
+
};
|
|
23
|
+
export declare function ChipsRoot({ children, orientation }: ChipsRootProps): React.JSX.Element;
|
|
24
|
+
export type ChipsListProps = Omit<HTMLAttributes<HTMLUListElement>, 'className'> & {
|
|
25
|
+
orientation?: Orientation;
|
|
26
|
+
};
|
|
27
|
+
export declare const ChipsList: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLUListElement>, "className"> & {
|
|
28
|
+
orientation?: Orientation | undefined;
|
|
29
|
+
} & React.RefAttributes<HTMLUListElement>>;
|
|
30
|
+
export type ChipListItemProps = Omit<HTMLAttributes<HTMLLIElement>, 'className'>;
|
|
31
|
+
export declare function ChipListItem({ children, ...props }: ChipListItemProps): React.JSX.Element;
|
|
32
|
+
export type ChipButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'className'> & {
|
|
33
|
+
variant?: 'dismissible';
|
|
34
|
+
icon?: IconProps['svg'];
|
|
35
|
+
countryFlagCode?: CountryCode;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated This is meant for internal DS usage only. Do not use it in your code.
|
|
38
|
+
* @ignore
|
|
39
|
+
*/
|
|
40
|
+
dsInternalSimulation?: 'hover' | 'focus' | 'active';
|
|
41
|
+
};
|
|
42
|
+
export declare const ChipButton: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "type"> & {
|
|
43
|
+
variant?: "dismissible" | undefined;
|
|
44
|
+
icon?: import('../../../utils/render-icon').SvgComponentOrElement | undefined;
|
|
45
|
+
countryFlagCode?: "id" | "is" | "at" | "br" | "hr" | "li" | "td" | "th" | "tr" | "by" | "cx" | "cy" | "fr" | "in" | "to" | "no" | "ai" | "as" | "af" | "ax" | "al" | "dz" | "ad" | "ao" | "aq" | "ag" | "ar" | "am" | "aw" | "sh-ac" | "asean" | "au" | "az" | "bs" | "bh" | "bd" | "bb" | "es-pv" | "be" | "bz" | "bj" | "bm" | "bt" | "bo" | "bq" | "ba" | "bw" | "bv" | "io" | "bn" | "bg" | "bf" | "bi" | "cv" | "kh" | "cm" | "ca" | "ic" | "es-ct" | "ky" | "cf" | "cefta" | "cl" | "cn" | "cp" | "cc" | "co" | "km" | "ck" | "cr" | "cu" | "cw" | "cz" | "ci" | "cd" | "dk" | "dg" | "dj" | "dm" | "do" | "eac" | "ec" | "eg" | "sv" | "gb-eng" | "gq" | "er" | "ee" | "sz" | "et" | "eu" | "fk" | "fo" | "fm" | "fj" | "fi" | "gf" | "pf" | "tf" | "ga" | "es-ga" | "gm" | "ge" | "de" | "gh" | "gi" | "gr" | "gl" | "gd" | "gp" | "gu" | "gt" | "gg" | "gn" | "gw" | "gy" | "ht" | "hm" | "va" | "hn" | "hk" | "hu" | "ir" | "iq" | "ie" | "im" | "il" | "it" | "jm" | "jp" | "je" | "jo" | "kz" | "ke" | "ki" | "xk" | "kw" | "kg" | "la" | "lv" | "arab" | "lb" | "ls" | "lr" | "ly" | "lt" | "lu" | "mo" | "mg" | "mw" | "my" | "mv" | "ml" | "mt" | "mh" | "mq" | "mr" | "mu" | "yt" | "mx" | "md" | "mc" | "mn" | "me" | "ms" | "ma" | "mz" | "mm" | "na" | "nr" | "np" | "nl" | "nc" | "nz" | "ni" | "ne" | "ng" | "nu" | "nf" | "kp" | "mk" | "gb-nir" | "mp" | "om" | "pc" | "pk" | "pw" | "pa" | "pg" | "py" | "pe" | "ph" | "pn" | "pl" | "pt" | "pr" | "qa" | "cg" | "ro" | "ru" | "rw" | "re" | "bl" | "sh-hl" | "sh" | "kn" | "lc" | "mf" | "pm" | "vc" | "ws" | "sm" | "st" | "sa" | "gb-sct" | "sn" | "rs" | "sc" | "sl" | "sg" | "sx" | "sk" | "si" | "sb" | "so" | "za" | "gs" | "kr" | "ss" | "es" | "lk" | "ps" | "sd" | "sr" | "sj" | "se" | "ch" | "sy" | "tw" | "tj" | "tz" | "tl" | "tg" | "tk" | "tt" | "sh-ta" | "tn" | "tm" | "tc" | "tv" | "ug" | "ua" | "ae" | "gb" | "un" | "um" | "us" | "uy" | "uz" | "vu" | "ve" | "vn" | "vg" | "vi" | "gb-wls" | "wf" | "eh" | "ye" | "zm" | "zw" | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated This is meant for internal DS usage only. Do not use it in your code.
|
|
48
|
+
* @ignore
|
|
49
|
+
*/
|
|
50
|
+
dsInternalSimulation?: "focus" | "hover" | "active" | undefined;
|
|
51
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
52
|
+
export type ChipLabelProps = Omit<HTMLAttributes<HTMLSpanElement>, 'className'> & {
|
|
53
|
+
counter?: number;
|
|
54
|
+
};
|
|
55
|
+
export declare function ChipLabel({ children, counter, ...props }: ChipLabelProps): React.JSX.Element;
|
|
56
|
+
export type ChipCounterProps = Omit<HTMLAttributes<HTMLSpanElement>, 'className'>;
|
|
57
|
+
export declare function ChipCounter({ children, ...props }: ChipCounterProps): React.JSX.Element;
|
|
58
|
+
//# sourceMappingURL=ChipsPrimitive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChipsPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/components/Chips/private/ChipsPrimitive.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EACV,oBAAoB,EAEpB,cAAc,EAEd,SAAS,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAQ,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAuC,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAiC,EAAE,EAAE,cAAc,qBAMxF;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,GAAG;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,SAAS;;0CASpB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;AAEjF,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAMrE;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAC9B,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,GAAG,WAAW,CACvB,GAAG;IACA,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,UAAU;;;;IAPnB;;;OAGG;;2CA0DL,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,GAAG;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,qBAOxE;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;AAElF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAMnE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "react/jsx-runtime";
|
|
2
|
+
import { c, e, d, b, a, C, D } from "../../../ChipsPrimitive-DN5NA2yH.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import "../../../utils/RovingTabIndex/RovingTabIndexProvider.js";
|
|
5
|
+
import "../../Icon/Icon.js";
|
|
6
|
+
import "../../../utils/Orientation/OrientationProvider.js";
|
|
7
|
+
import "../../CountryFlag/CountryFlag.js";
|
|
8
|
+
import "@preply/ds-core";
|
|
9
|
+
export {
|
|
10
|
+
c as ChipButton,
|
|
11
|
+
e as ChipCounter,
|
|
12
|
+
d as ChipLabel,
|
|
13
|
+
b as ChipListItem,
|
|
14
|
+
a as ChipsList,
|
|
15
|
+
C as ChipsRoot,
|
|
16
|
+
D as DEFAULT_ORIENTATION
|
|
17
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { default as React, ImgHTMLAttributes } from 'react';
|
|
2
|
-
import { Dataset } from '@preply/ds-core';
|
|
3
|
-
import { CountryCode } from './types';
|
|
2
|
+
import { Dataset, CountryCode } from '@preply/ds-core';
|
|
4
3
|
type Size = 'small' | 'medium' | 'large';
|
|
5
4
|
type ReservedDsProps = 'alt' | 'src' | 'width' | 'height' | 'className';
|
|
6
5
|
export type CountryFlagProps = Omit<ImgHTMLAttributes<HTMLImageElement>, ReservedDsProps> & {
|
|
@@ -15,7 +14,7 @@ export type CountryFlagProps = Omit<ImgHTMLAttributes<HTMLImageElement>, Reserve
|
|
|
15
14
|
*/
|
|
16
15
|
size?: Size;
|
|
17
16
|
/**
|
|
18
|
-
* For
|
|
17
|
+
* For some countries (like ES and MX) the simplified flags are automatically used to speed up loading them.
|
|
19
18
|
* @default true
|
|
20
19
|
*/
|
|
21
20
|
simplified?: boolean;
|
|
@@ -48,7 +47,7 @@ export declare const CountryFlag: React.ForwardRefExoticComponent<Omit<React.Img
|
|
|
48
47
|
*/
|
|
49
48
|
size?: Size | undefined;
|
|
50
49
|
/**
|
|
51
|
-
* For
|
|
50
|
+
* For some countries (like ES and MX) the simplified flags are automatically used to speed up loading them.
|
|
52
51
|
* @default true
|
|
53
52
|
*/
|
|
54
53
|
simplified?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountryFlag.d.ts","sourceRoot":"","sources":["../../../src/components/CountryFlag/CountryFlag.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"CountryFlag.d.ts","sourceRoot":"","sources":["../../../src/components/CountryFlag/CountryFlag.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,KAAK,OAAO,EAAqB,KAAK,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAMlG,KAAK,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzC,KAAK,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAMxE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,GAAG;IACxF,IAAI,EAAE,WAAW,CAAC;IAElB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;UArCd,WAAW;IAEjB;;;OAGG;SACE,MAAM;IAEX;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;0CA2CL,CAAC"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef } from "react";
|
|
4
|
+
import { countryNames, getCountryFlagUrl } from "@preply/ds-core";
|
|
4
5
|
import { getDatasetProps } from "@preply/ds-web-core";
|
|
5
6
|
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
6
|
-
import { getCountryFlagUrl } from "./utils/getCountryFlagUrl.js";
|
|
7
|
-
import { countryNames } from "./utils/countries.js";
|
|
8
7
|
import '../../assets/CountryFlag.css';const flag = "flag__wPkCc";
|
|
9
8
|
const styles = {
|
|
10
9
|
flag
|
|
11
10
|
};
|
|
12
11
|
const placeholderSvg = "data:image/svg+xml;base64,PHN2ZyBkYXRhLXByZXBseS1kcy1jb21wb25lbnQ9IlN2Z0NvdW50cnlGbGFnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NDAgNDgwIi8+";
|
|
13
12
|
const CountryFlag = forwardRef(function CountryFlag2({
|
|
14
|
-
|
|
15
|
-
code: countryCode,
|
|
13
|
+
alt,
|
|
16
14
|
dataset,
|
|
15
|
+
size = "small",
|
|
17
16
|
simplified = true,
|
|
18
|
-
|
|
17
|
+
code: countryCode,
|
|
19
18
|
...rest
|
|
20
19
|
}, ref) {
|
|
21
20
|
const width = size === "large" ? 32 : size === "medium" ? 24 : 16;
|
|
@@ -23,7 +22,8 @@ const CountryFlag = forwardRef(function CountryFlag2({
|
|
|
23
22
|
const countryCodeIsInvalid = typeof countryCode !== "string" || !countryNames[countryCode];
|
|
24
23
|
const src = countryCodeIsInvalid ? placeholderSvg : getCountryFlagUrl({
|
|
25
24
|
countryCode,
|
|
26
|
-
simplified
|
|
25
|
+
simplified,
|
|
26
|
+
requester: "WebCountryFlag"
|
|
27
27
|
});
|
|
28
28
|
const imgProps = {
|
|
29
29
|
alt,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,MAAM,MAAM,YAAY,GAAG;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAKpC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
3
|
+
import '../../assets/Divider.css';const Divider$1 = "Divider__kU514";
|
|
4
|
+
const styles = {
|
|
5
|
+
Divider: Divider$1,
|
|
6
|
+
"size-small": "size-small__OdB2p",
|
|
7
|
+
"size-large": "size-large__4iJ0a"
|
|
8
|
+
};
|
|
9
|
+
const Divider = ({
|
|
10
|
+
size = "small"
|
|
11
|
+
}) => /* @__PURE__ */ jsx("hr", { className: `${styles.Divider} ${styles[`size-${size}`]}`, "data-preply-ds-component": webComponentNames.Divider });
|
|
12
|
+
export {
|
|
13
|
+
Divider
|
|
14
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAc,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAc,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAM/E,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAE/F,MAAM,MAAM,eAAe,GAAG,SAAS,CACnC,eAAe,EACf,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,mBAAmB,CAC3E,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,eAAe,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,qBAAqB,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,UAAU,qGA4BtB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-n
|
|
|
4
4
|
import { forwardRef } from "react";
|
|
5
5
|
import { renderIcon } from "../../utils/render-icon.js";
|
|
6
6
|
import { ButtonBase } from "../private/ButtonBase/ButtonBase.js";
|
|
7
|
+
import { b as bubbleCounterStyles } from "../../BubbleCounter.module-QMwXWFIS.js";
|
|
7
8
|
const IconButton = forwardRef(function IconButtonComponent({
|
|
8
9
|
variant = BUTTON_VARIANT_DEFAULT,
|
|
9
10
|
size = BUTTON_SIZE_DEFAULT,
|
|
@@ -12,7 +13,7 @@ const IconButton = forwardRef(function IconButtonComponent({
|
|
|
12
13
|
svg,
|
|
13
14
|
...props
|
|
14
15
|
}, ref) {
|
|
15
|
-
return /* @__PURE__ */ jsx(ButtonBase, { ...props, ref, isIconButton: true, variant, size, url, a11yLabel, preplyDsComponent: webComponentNames.IconButton, children: renderIcon(svg, {
|
|
16
|
+
return /* @__PURE__ */ jsx(ButtonBase, { ...props, ref, className: bubbleCounterStyles.cutout, isIconButton: true, variant, size, url, a11yLabel, preplyDsComponent: webComponentNames.IconButton, children: renderIcon(svg, {
|
|
16
17
|
"aria-hidden": "true",
|
|
17
18
|
focusable: "false"
|
|
18
19
|
}) });
|
|
@@ -5,7 +5,7 @@ import { LAYOUT_TAG_DEFAULT } from "@preply/ds-core";
|
|
|
5
5
|
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
6
6
|
import { filterAttributesPassedByRadixUIAtRuntime } from "../../utils/filterAttributesPassedByRadixUIAtRuntime.js";
|
|
7
7
|
import { getGapAttr, getRelativeAttr, getDisplayAttr, getAlignItemsAttr, getJustifyContentAttr, getDirectionAttr, getPaddingAttr, DO_NOT_ADD_DATA_ATTRIBUTE, getWrapAttr } from "./style/getStyleAttrs.js";
|
|
8
|
-
import { s as styles$1 } from "../../layout-gap.module-
|
|
8
|
+
import { s as styles$1 } from "../../layout-gap.module-RzGBJL6B.js";
|
|
9
9
|
import { s as styles$2 } from "../../layout-hide.module-Bpl3Pl-a.js";
|
|
10
10
|
import { s as styles$3 } from "../../layout-relative.module-1z75aSwo.js";
|
|
11
11
|
import '../../assets/LayoutFlex.css';const styles = {};
|
|
@@ -3,6 +3,7 @@ export declare function Spacing0(): React.JSX.Element;
|
|
|
3
3
|
export declare function Spacing1(): React.JSX.Element;
|
|
4
4
|
export declare function Spacing2(): React.JSX.Element;
|
|
5
5
|
export declare function Spacing4(): React.JSX.Element;
|
|
6
|
+
export declare function Spacing6(): React.JSX.Element;
|
|
6
7
|
export declare function Spacing8(): React.JSX.Element;
|
|
7
8
|
export declare function Spacing12(): React.JSX.Element;
|
|
8
9
|
export declare function Spacing16(): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gap.d.ts","sourceRoot":"","sources":["../../../../src/components/LayoutFlex/tests/Gap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,UAAU,sBAUzB;AAED,wBAAgB,aAAa,sBAU5B;AACD,wBAAgB,YAAY,sBAU3B;AACD,wBAAgB,YAAY,sBAU3B;AACD,wBAAgB,WAAW,sBAU1B;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,WAAW,sBAU1B;AAED,wBAAgB,iBAAiB,sBAsBhC;AAED,wBAAgB,8BAA8B,sBAsB7C"}
|
|
1
|
+
{"version":3,"file":"Gap.d.ts","sourceRoot":"","sources":["../../../../src/components/LayoutFlex/tests/Gap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,UAAU,sBAUzB;AAED,wBAAgB,aAAa,sBAU5B;AACD,wBAAgB,YAAY,sBAU3B;AACD,wBAAgB,YAAY,sBAU3B;AACD,wBAAgB,WAAW,sBAU1B;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,UAAU,sBAUzB;AACD,wBAAgB,WAAW,sBAU1B;AAED,wBAAgB,iBAAiB,sBAsBhC;AAED,wBAAgB,8BAA8B,sBAsB7C"}
|
|
@@ -54,6 +54,17 @@ function Spacing4() {
|
|
|
54
54
|
] })
|
|
55
55
|
] });
|
|
56
56
|
}
|
|
57
|
+
function Spacing6() {
|
|
58
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx("span", { children: "Spacing6" }),
|
|
60
|
+
/* @__PURE__ */ jsxs(LayoutFlex, { dataset: {
|
|
61
|
+
testid: "Spacing6"
|
|
62
|
+
}, gap: "6", children: [
|
|
63
|
+
/* @__PURE__ */ jsx(Div1, { children: "a" }),
|
|
64
|
+
/* @__PURE__ */ jsx(Div2, { children: "b" })
|
|
65
|
+
] })
|
|
66
|
+
] });
|
|
67
|
+
}
|
|
57
68
|
function Spacing8() {
|
|
58
69
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
70
|
/* @__PURE__ */ jsx("span", { children: "Spacing8" }),
|
|
@@ -310,6 +321,7 @@ export {
|
|
|
310
321
|
Spacing32,
|
|
311
322
|
Spacing4,
|
|
312
323
|
Spacing48,
|
|
324
|
+
Spacing6,
|
|
313
325
|
Spacing64,
|
|
314
326
|
Spacing8,
|
|
315
327
|
Spacing96,
|
|
@@ -3,6 +3,7 @@ export declare function Spacing0(): React.JSX.Element;
|
|
|
3
3
|
export declare function Spacing1(): React.JSX.Element;
|
|
4
4
|
export declare function Spacing2(): React.JSX.Element;
|
|
5
5
|
export declare function Spacing4(): React.JSX.Element;
|
|
6
|
+
export declare function Spacing6(): React.JSX.Element;
|
|
6
7
|
export declare function Spacing8(): React.JSX.Element;
|
|
7
8
|
export declare function Spacing12(): React.JSX.Element;
|
|
8
9
|
export declare function Spacing16(): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Padding.d.ts","sourceRoot":"","sources":["../../../../src/components/LayoutFlex/tests/Padding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,UAAU,sBAUzB;AAED,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,gBAAgB,sBAU/B;AACD,wBAAgB,gBAAgB,sBAU/B;AACD,wBAAgB,eAAe,sBAU9B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,eAAe,sBAU9B;AAED,wBAAgB,iBAAiB,sBAsBhC;AAED,wBAAgB,8BAA8B,sBAsB7C;AAED,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,iBAAiB,sBAahC;AACD,wBAAgB,0BAA0B,sBAqBzC;AACD,wBAAgB,oBAAoB,sBAqBnC"}
|
|
1
|
+
{"version":3,"file":"Padding.d.ts","sourceRoot":"","sources":["../../../../src/components/LayoutFlex/tests/Padding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,QAAQ,sBAUvB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,SAAS,sBAUxB;AACD,wBAAgB,UAAU,sBAUzB;AAED,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,gBAAgB,sBAU/B;AACD,wBAAgB,gBAAgB,sBAU/B;AACD,wBAAgB,eAAe,sBAU9B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,cAAc,sBAU7B;AACD,wBAAgB,eAAe,sBAU9B;AAED,wBAAgB,iBAAiB,sBAsBhC;AAED,wBAAgB,8BAA8B,sBAsB7C;AAED,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,iBAAiB,sBAUhC;AACD,wBAAgB,iBAAiB,sBAahC;AACD,wBAAgB,0BAA0B,sBAqBzC;AACD,wBAAgB,oBAAoB,sBAqBnC"}
|
|
@@ -54,6 +54,17 @@ function Spacing4() {
|
|
|
54
54
|
] })
|
|
55
55
|
] });
|
|
56
56
|
}
|
|
57
|
+
function Spacing6() {
|
|
58
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx("span", { children: "Spacing4" }),
|
|
60
|
+
/* @__PURE__ */ jsxs(LayoutFlex, { dataset: {
|
|
61
|
+
testid: "Spacing4"
|
|
62
|
+
}, padding: "4", children: [
|
|
63
|
+
/* @__PURE__ */ jsx(Div1, { children: "a" }),
|
|
64
|
+
/* @__PURE__ */ jsx(Div2, { children: "b" })
|
|
65
|
+
] })
|
|
66
|
+
] });
|
|
67
|
+
}
|
|
57
68
|
function Spacing8() {
|
|
58
69
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
70
|
/* @__PURE__ */ jsx("span", { children: "Spacing8" }),
|
|
@@ -381,6 +392,7 @@ export {
|
|
|
381
392
|
Spacing32,
|
|
382
393
|
Spacing4,
|
|
383
394
|
Spacing48,
|
|
395
|
+
Spacing6,
|
|
384
396
|
Spacing64,
|
|
385
397
|
Spacing8,
|
|
386
398
|
Spacing96,
|