@chayns-ui/core 0.9.4 → 0.10.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/accordion.css +3 -1
- package/dist/badge.css +28 -3
- package/dist/banner.css +2 -0
- package/dist/breadcrumb.css +63 -0
- package/dist/button.css +103 -35
- package/dist/card.css +39 -0
- package/dist/checkbox.css +3 -3
- package/dist/combo-box.css +2 -0
- package/dist/components/accordion/Accordion.d.ts +3 -4
- package/dist/components/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/accordion/Accordion.js +37 -23
- package/dist/components/accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/Accordion.types.d.ts +7 -2
- package/dist/components/accordion/Accordion.types.d.ts.map +1 -1
- package/dist/components/accordion/Accordion.types.js +7 -1
- package/dist/components/accordion/Accordion.types.js.map +1 -1
- package/dist/components/accordion-group/AccordionGroup.d.ts.map +1 -1
- package/dist/components/accordion-group/AccordionGroup.js +1 -0
- package/dist/components/accordion-group/AccordionGroup.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +1 -0
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/Avatar.types.d.ts +9 -1
- package/dist/components/avatar/Avatar.types.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.types.js +17 -0
- package/dist/components/avatar/Avatar.types.js.map +1 -0
- package/dist/components/avatar-group/AvatarGroup.d.ts.map +1 -1
- package/dist/components/avatar-group/AvatarGroup.js +4 -3
- package/dist/components/avatar-group/AvatarGroup.js.map +1 -1
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/badge/Badge.js +1 -0
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/Badge.types.d.ts +13 -0
- package/dist/components/badge/Badge.types.d.ts.map +1 -1
- package/dist/components/badge/Badge.types.js +16 -1
- package/dist/components/badge/Badge.types.js.map +1 -1
- package/dist/components/banner/Banner.d.ts.map +1 -1
- package/dist/components/banner/Banner.js +1 -0
- package/dist/components/banner/Banner.js.map +1 -1
- package/dist/components/banner/Banner.types.d.ts +7 -0
- package/dist/components/banner/Banner.types.d.ts.map +1 -1
- package/dist/components/banner/Banner.types.js +9 -1
- package/dist/components/banner/Banner.types.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts +4 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/Breadcrumb.js +35 -0
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/Breadcrumb.types.d.ts +13 -0
- package/dist/components/breadcrumb/Breadcrumb.types.d.ts.map +1 -0
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.js +1 -0
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.types.d.ts +7 -0
- package/dist/components/button/Button.types.d.ts.map +1 -1
- package/dist/components/button/Button.types.js +9 -1
- package/dist/components/button/Button.types.js.map +1 -1
- package/dist/components/button/button-icon/ButtonIcon.d.ts.map +1 -1
- package/dist/components/button/button-icon/ButtonIcon.js +7 -3
- package/dist/components/button/button-icon/ButtonIcon.js.map +1 -1
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/card/Card.js +2 -0
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.js +1 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/combo-box/ComboBox.d.ts.map +1 -1
- package/dist/components/combo-box/ComboBox.js +27 -8
- package/dist/components/combo-box/ComboBox.js.map +1 -1
- package/dist/components/date-time-picker/DateTimePicker.d.ts.map +1 -1
- package/dist/components/date-time-picker/DateTimePicker.js +31 -239
- package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
- package/dist/components/date-time-picker/DateTimePicker.types.d.ts +12 -0
- package/dist/components/date-time-picker/DateTimePicker.types.d.ts.map +1 -1
- package/dist/components/date-time-picker/DateTimePicker.types.js +15 -1
- package/dist/components/date-time-picker/DateTimePicker.types.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-utils.d.ts +4 -0
- package/dist/components/date-time-picker/date-time-picker-utils.d.ts.map +1 -0
- package/dist/components/date-time-picker/date-time-picker-utils.js +19 -0
- package/dist/components/date-time-picker/date-time-picker-utils.js.map +1 -0
- package/dist/components/date-time-picker/hooks/useDateTimePickerValue.d.ts +37 -0
- package/dist/components/date-time-picker/hooks/useDateTimePickerValue.d.ts.map +1 -0
- package/dist/components/date-time-picker/hooks/useDateTimePickerValue.js +156 -0
- package/dist/components/date-time-picker/hooks/useDateTimePickerValue.js.map +1 -0
- package/dist/components/date-time-picker/sizer/PickerSizer.d.ts +7 -0
- package/dist/components/date-time-picker/sizer/PickerSizer.d.ts.map +1 -0
- package/dist/components/date-time-picker/sizer/PickerSizer.js +15 -0
- package/dist/components/date-time-picker/sizer/PickerSizer.js.map +1 -0
- package/dist/components/date-time-picker/wheel/Wheel.d.ts +14 -0
- package/dist/components/date-time-picker/wheel/Wheel.d.ts.map +1 -0
- package/dist/components/date-time-picker/wheel/Wheel.js +136 -0
- package/dist/components/date-time-picker/wheel/Wheel.js.map +1 -0
- package/dist/components/icon-button/IconButton.d.ts.map +1 -1
- package/dist/components/icon-button/IconButton.js +1 -0
- package/dist/components/icon-button/IconButton.js.map +1 -1
- package/dist/components/list/List.d.ts +15 -10
- package/dist/components/list/List.d.ts.map +1 -1
- package/dist/components/list/List.js +19 -7
- package/dist/components/list/List.js.map +1 -1
- package/dist/components/list/List.types.d.ts +2 -2
- package/dist/components/list/List.types.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +4 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.js +57 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/pagination/Pagination.types.d.ts +15 -0
- package/dist/components/pagination/Pagination.types.d.ts.map +1 -0
- package/dist/components/pagination/pagination-pages.d.ts +2 -0
- package/dist/components/pagination/pagination-pages.d.ts.map +1 -0
- package/dist/components/pagination/pagination-pages.js +35 -0
- package/dist/components/pagination/pagination-pages.js.map +1 -0
- package/dist/components/popup/Popup.d.ts +4 -1
- package/dist/components/popup/Popup.d.ts.map +1 -1
- package/dist/components/popup/Popup.js +25 -18
- package/dist/components/popup/Popup.js.map +1 -1
- package/dist/components/popup/PopupList.d.ts +4 -1
- package/dist/components/popup/PopupList.d.ts.map +1 -1
- package/dist/components/popup/PopupList.js +7 -1
- package/dist/components/popup/PopupList.js.map +1 -1
- package/dist/components/progress/Progress.d.ts.map +1 -1
- package/dist/components/progress/Progress.js +1 -0
- package/dist/components/progress/Progress.js.map +1 -1
- package/dist/components/progress/Progress.types.d.ts +1 -1
- package/dist/components/progress/Progress.types.d.ts.map +1 -1
- package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/components/radio-group/RadioGroup.js +2 -0
- package/dist/components/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.js +78 -25
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.types.d.ts +1 -1
- package/dist/components/segmented-control/SegmentedControl.types.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControlContext.d.ts +2 -0
- package/dist/components/segmented-control/SegmentedControlContext.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControlContext.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/Skeleton.js +1 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/skeleton/Skeleton.types.d.ts +6 -0
- package/dist/components/skeleton/Skeleton.types.d.ts.map +1 -1
- package/dist/components/skeleton/Skeleton.types.js +8 -1
- package/dist/components/skeleton/Skeleton.types.js.map +1 -1
- package/dist/components/slider/Slider.d.ts +4 -0
- package/dist/components/slider/Slider.d.ts.map +1 -0
- package/dist/components/slider/Slider.js +61 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/slider/Slider.types.d.ts +10 -0
- package/dist/components/slider/Slider.types.d.ts.map +1 -0
- package/dist/components/spinner/Spinner.d.ts.map +1 -1
- package/dist/components/spinner/Spinner.js +1 -0
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/split-button/SplitButton.d.ts.map +1 -1
- package/dist/components/split-button/SplitButton.js +2 -1
- package/dist/components/split-button/SplitButton.js.map +1 -1
- package/dist/components/stepper/Stepper.d.ts +4 -0
- package/dist/components/stepper/Stepper.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.js +60 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/stepper/Stepper.types.d.ts +27 -0
- package/dist/components/stepper/Stepper.types.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.types.js +25 -0
- package/dist/components/stepper/Stepper.types.js.map +1 -0
- package/dist/components/stepper/stepper-values.d.ts +6 -0
- package/dist/components/stepper/stepper-values.d.ts.map +1 -0
- package/dist/components/stepper/stepper-values.js +26 -0
- package/dist/components/stepper/stepper-values.js.map +1 -0
- package/dist/components/switch/Switch.d.ts.map +1 -1
- package/dist/components/switch/Switch.js +1 -0
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/text-area/TextArea.d.ts.map +1 -1
- package/dist/components/text-area/TextArea.js +1 -0
- package/dist/components/text-area/TextArea.js.map +1 -1
- package/dist/components/text-field/TextField.d.ts.map +1 -1
- package/dist/components/text-field/TextField.js +1 -0
- package/dist/components/text-field/TextField.js.map +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +4 -0
- package/dist/components/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/Tooltip.js +75 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/tooltip/Tooltip.types.d.ts +12 -0
- package/dist/components/tooltip/Tooltip.types.d.ts.map +1 -0
- package/dist/components/tooltip/hooks/useTooltipInteraction.d.ts +11 -0
- package/dist/components/tooltip/hooks/useTooltipInteraction.d.ts.map +1 -0
- package/dist/components/tooltip/hooks/useTooltipInteraction.js +59 -0
- package/dist/components/tooltip/hooks/useTooltipInteraction.js.map +1 -0
- package/dist/components/tooltip/tooltip-trigger-props.d.ts +4 -0
- package/dist/components/tooltip/tooltip-trigger-props.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip-trigger-props.js +25 -0
- package/dist/components/tooltip/tooltip-trigger-props.js.map +1 -0
- package/dist/date-time-picker.css +33 -2
- package/dist/hooks/useOverlayPosition.d.ts +4 -0
- package/dist/hooks/useOverlayPosition.d.ts.map +1 -0
- package/dist/hooks/useOverlayPosition.js +60 -0
- package/dist/hooks/useOverlayPosition.js.map +1 -0
- package/dist/index.d.ts +21 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -7
- package/dist/pagination.css +54 -0
- package/dist/popup.css +4 -0
- package/dist/progress.css +1 -1
- package/dist/segmented-control.css +2 -0
- package/dist/slider.css +109 -0
- package/dist/split-button.css +2 -79
- package/dist/stepper.css +77 -0
- package/dist/styles.css +5 -0
- package/dist/tooltip.css +68 -0
- package/dist/utils/native-ref.d.ts +4 -0
- package/dist/utils/native-ref.d.ts.map +1 -0
- package/dist/utils/native-ref.js +24 -0
- package/dist/utils/native-ref.js.map +1 -0
- package/package.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/icon-button/IconButton.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,UAAU;;;;;;8DAkCd,CAAC;
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/icon-button/IconButton.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,UAAU;;;;;;8DAkCd,CAAC;AAIH,eAAe,UAAU,CAAC"}
|
|
@@ -19,6 +19,7 @@ var IconButton = forwardRef(function IconButton({ "aria-busy": ariaBusy, classNa
|
|
|
19
19
|
children: /* @__PURE__ */ jsx(ButtonIcon, { icon: loading ? "fa-spinner" : icon })
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
|
+
IconButton.displayName = "IconButton";
|
|
22
23
|
//#endregion
|
|
23
24
|
export { IconButton as default };
|
|
24
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.js","names":[],"sources":["../../../src/components/icon-button/IconButton.tsx"],"sourcesContent":["import { forwardRef } from 'react';\n\nimport type { IconButtonProps } from './IconButton.types.js';\nimport ButtonIcon from '../button/button-icon/ButtonIcon.js';\n\nconst IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n {\n 'aria-busy': ariaBusy,\n className,\n disabled,\n icon,\n loading = false,\n type = 'button',\n variant,\n ...buttonProps\n },\n ref,\n) {\n const resolvedClassName = [\n 'chayns-icon-button',\n `chayns-icon-button--${variant}`,\n loading ? 'chayns-icon-button--loading' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n {...buttonProps}\n aria-busy={loading ? true : ariaBusy}\n className={resolvedClassName}\n disabled={loading || disabled}\n ref={ref}\n type={type}\n >\n <ButtonIcon icon={loading ? 'fa-spinner' : icon} />\n </button>\n );\n});\n\nexport default IconButton;\n"],"mappings":";;;;AAKA,IAAM,aAAa,WAA+C,SAAS,WACzE,EACE,aAAa,UACb,WACA,UACA,MACA,UAAU,OACV,OAAO,UACP,SACA,GAAG,eAEL,KACA;CACA,MAAM,oBAAoB;EACxB;EACA,uBAAuB;EACvB,UAAU,gCAAgC;EAC1C;CACF,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,oBAAC,UAAD;EACE,GAAI;EACJ,aAAW,UAAU,OAAO;EAC5B,WAAW;EACX,UAAU,WAAW;EAChB;EACC;EAEN,UAAA,oBAAC,YAAD,EAAY,MAAM,UAAU,eAAe,KAAO,CAAA;CAC5C,CAAA;AAEZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"IconButton.js","names":[],"sources":["../../../src/components/icon-button/IconButton.tsx"],"sourcesContent":["import { forwardRef } from 'react';\n\nimport type { IconButtonProps } from './IconButton.types.js';\nimport ButtonIcon from '../button/button-icon/ButtonIcon.js';\n\nconst IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n {\n 'aria-busy': ariaBusy,\n className,\n disabled,\n icon,\n loading = false,\n type = 'button',\n variant,\n ...buttonProps\n },\n ref,\n) {\n const resolvedClassName = [\n 'chayns-icon-button',\n `chayns-icon-button--${variant}`,\n loading ? 'chayns-icon-button--loading' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n {...buttonProps}\n aria-busy={loading ? true : ariaBusy}\n className={resolvedClassName}\n disabled={loading || disabled}\n ref={ref}\n type={type}\n >\n <ButtonIcon icon={loading ? 'fa-spinner' : icon} />\n </button>\n );\n});\n\nIconButton.displayName = 'IconButton';\n\nexport default IconButton;\n"],"mappings":";;;;AAKA,IAAM,aAAa,WAA+C,SAAS,WACzE,EACE,aAAa,UACb,WACA,UACA,MACA,UAAU,OACV,OAAO,UACP,SACA,GAAG,eAEL,KACA;CACA,MAAM,oBAAoB;EACxB;EACA,uBAAuB;EACvB,UAAU,gCAAgC;EAC1C;CACF,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,oBAAC,UAAD;EACE,GAAI;EACJ,aAAW,UAAU,OAAO;EAC5B,WAAW;EACX,UAAU,WAAW;EAChB;EACC;EAEN,UAAA,oBAAC,YAAD,EAAY,MAAM,UAAU,eAAe,KAAO,CAAA;CAC5C,CAAA;AAEZ,CAAC;AAED,WAAW,cAAc"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare function Action(props: ListItemActionProps): import("react").JSX.Element;
|
|
3
|
-
declare function Status({ label }: ListItemStatusProps): import("react").JSX.Element;
|
|
1
|
+
import type { ListItemPartProps, ListItemStatusProps } from './List.types.js';
|
|
4
2
|
declare const List: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("react").RefAttributes<HTMLUListElement>> & {
|
|
5
3
|
Item: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>> & {
|
|
6
|
-
Action:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
Action: import("react").ForwardRefExoticComponent<(Omit<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "children"> & {
|
|
5
|
+
children: import("react").ReactNode;
|
|
6
|
+
href: string;
|
|
7
|
+
}, "ref"> | Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "type"> & {
|
|
8
|
+
children: import("react").ReactNode;
|
|
9
|
+
href?: never;
|
|
10
|
+
type?: never;
|
|
11
|
+
}, "ref">) & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
12
|
+
Body: import("react").ForwardRefExoticComponent<Omit<ListItemPartProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
Description: import("react").ForwardRefExoticComponent<Omit<ListItemPartProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
14
|
+
Leading: import("react").ForwardRefExoticComponent<Omit<ListItemPartProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
15
|
+
Status: import("react").ForwardRefExoticComponent<Omit<ListItemStatusProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
16
|
+
Title: import("react").ForwardRefExoticComponent<Omit<ListItemPartProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
17
|
+
Trailing: import("react").ForwardRefExoticComponent<Omit<ListItemPartProps, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
13
18
|
};
|
|
14
19
|
};
|
|
15
20
|
export default List;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/list/List.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/list/List.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AA4GzB,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;CAUR,CAAC;AAOH,eAAe,IAAI,CAAC"}
|
|
@@ -15,7 +15,7 @@ var Item = forwardRef(function Item({ children, className, ...itemProps }, ref)
|
|
|
15
15
|
})
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
|
-
function Action(props) {
|
|
18
|
+
var Action = forwardRef(function Action(props, ref) {
|
|
19
19
|
useListItemContext("Action");
|
|
20
20
|
if (props.href !== void 0) {
|
|
21
21
|
const { children, className, href, ...anchorProps } = props;
|
|
@@ -24,6 +24,7 @@ function Action(props) {
|
|
|
24
24
|
...anchorProps,
|
|
25
25
|
className: resolvedClassName,
|
|
26
26
|
href,
|
|
27
|
+
ref,
|
|
27
28
|
children
|
|
28
29
|
});
|
|
29
30
|
}
|
|
@@ -32,25 +33,32 @@ function Action(props) {
|
|
|
32
33
|
return /* @__PURE__ */ jsx("button", {
|
|
33
34
|
...buttonProps,
|
|
34
35
|
className: resolvedClassName,
|
|
36
|
+
ref,
|
|
35
37
|
type: "button",
|
|
36
38
|
children
|
|
37
39
|
});
|
|
38
|
-
}
|
|
40
|
+
});
|
|
39
41
|
function createPart(name) {
|
|
40
42
|
const className = `chayns-list-item__${name.toLowerCase()}`;
|
|
41
|
-
|
|
43
|
+
const ListItemPart = forwardRef(function ListItemPart({ children, className: consumerClassName, ...spanProps }, ref) {
|
|
42
44
|
useListItemContext(name);
|
|
43
45
|
const resolvedClassName = [className, consumerClassName].filter(Boolean).join(" ");
|
|
44
46
|
return /* @__PURE__ */ jsx("span", {
|
|
47
|
+
...spanProps,
|
|
45
48
|
className: resolvedClassName,
|
|
49
|
+
ref,
|
|
46
50
|
children
|
|
47
51
|
});
|
|
48
|
-
};
|
|
52
|
+
});
|
|
53
|
+
ListItemPart.displayName = `List.Item.${name}`;
|
|
54
|
+
return ListItemPart;
|
|
49
55
|
}
|
|
50
|
-
function Status({ label }) {
|
|
56
|
+
var Status = forwardRef(function Status({ label, className, ...spanProps }, ref) {
|
|
51
57
|
useListItemContext("Status");
|
|
52
58
|
return /* @__PURE__ */ jsxs("span", {
|
|
53
|
-
|
|
59
|
+
...spanProps,
|
|
60
|
+
className: ["chayns-list-item__status", className].filter(Boolean).join(" "),
|
|
61
|
+
ref,
|
|
54
62
|
children: [/* @__PURE__ */ jsx("span", {
|
|
55
63
|
"aria-hidden": "true",
|
|
56
64
|
className: "chayns-list-item__status-dot"
|
|
@@ -59,7 +67,7 @@ function Status({ label }) {
|
|
|
59
67
|
children: label
|
|
60
68
|
})]
|
|
61
69
|
});
|
|
62
|
-
}
|
|
70
|
+
});
|
|
63
71
|
var ListRoot = forwardRef(function List({ children, className, ...listProps }, ref) {
|
|
64
72
|
const resolvedClassName = ["chayns-list", className].filter(Boolean).join(" ");
|
|
65
73
|
return /* @__PURE__ */ jsx(ListContext.Provider, {
|
|
@@ -81,6 +89,10 @@ var List = Object.assign(ListRoot, { Item: Object.assign(Item, {
|
|
|
81
89
|
Title: createPart("Title"),
|
|
82
90
|
Trailing: createPart("Trailing")
|
|
83
91
|
}) });
|
|
92
|
+
Item.displayName = "List.Item";
|
|
93
|
+
Object.assign(Action, { displayName: "List.Item.Action" });
|
|
94
|
+
Object.assign(Status, { displayName: "List.Item.Status" });
|
|
95
|
+
ListRoot.displayName = "List";
|
|
84
96
|
//#endregion
|
|
85
97
|
export { List as default };
|
|
86
98
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","names":[],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["import { forwardRef } from 'react';\n\nimport { ListContext, ListItemContext, useListContext, useListItemContext } from './ListContext.js';\nimport type {\n ListItemActionProps,\n ListItemPartProps,\n ListItemProps,\n ListItemStatusProps,\n ListProps,\n} from './List.types.js';\n\nconst Item = forwardRef<HTMLLIElement, ListItemProps>(function Item(\n { children, className, ...itemProps },\n ref,\n) {\n useListContext();\n const resolvedClassName = ['chayns-list-item', className].filter(Boolean).join(' ');\n\n return (\n <ListItemContext.Provider value>\n <li {...itemProps} className={resolvedClassName} ref={ref}>\n {children}\n </li>\n </ListItemContext.Provider>\n );\n});\n\
|
|
1
|
+
{"version":3,"file":"List.js","names":[],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["import { forwardRef, type Ref } from 'react';\n\nimport { ListContext, ListItemContext, useListContext, useListItemContext } from './ListContext.js';\nimport type {\n ListItemActionProps,\n ListItemPartProps,\n ListItemProps,\n ListItemStatusProps,\n ListProps,\n} from './List.types.js';\n\nconst Item = forwardRef<HTMLLIElement, ListItemProps>(function Item(\n { children, className, ...itemProps },\n ref,\n) {\n useListContext();\n const resolvedClassName = ['chayns-list-item', className].filter(Boolean).join(' ');\n\n return (\n <ListItemContext.Provider value>\n <li {...itemProps} className={resolvedClassName} ref={ref}>\n {children}\n </li>\n </ListItemContext.Provider>\n );\n});\n\nconst Action = forwardRef<HTMLAnchorElement | HTMLButtonElement, ListItemActionProps>(\n function Action(props, ref) {\n useListItemContext('Action');\n\n if (props.href !== undefined) {\n const { children, className, href, ...anchorProps } = props;\n const resolvedClassName = ['chayns-list-item__action', className].filter(Boolean).join(' ');\n\n return (\n <a\n {...anchorProps}\n className={resolvedClassName}\n href={href}\n ref={ref as Ref<HTMLAnchorElement>}\n >\n {children}\n </a>\n );\n }\n\n const { children, className, ...buttonProps } = props;\n const resolvedClassName = ['chayns-list-item__action', className].filter(Boolean).join(' ');\n\n return (\n <button\n {...buttonProps}\n className={resolvedClassName}\n ref={ref as Ref<HTMLButtonElement>}\n type=\"button\"\n >\n {children}\n </button>\n );\n },\n);\n\nfunction createPart(name: 'Leading' | 'Body' | 'Title' | 'Description' | 'Trailing') {\n const className = `chayns-list-item__${name.toLowerCase()}`;\n\n const ListItemPart = forwardRef<HTMLSpanElement, ListItemPartProps>(function ListItemPart(\n { children, className: consumerClassName, ...spanProps },\n ref,\n ) {\n useListItemContext(name);\n const resolvedClassName = [className, consumerClassName].filter(Boolean).join(' ');\n\n return (\n <span {...spanProps} className={resolvedClassName} ref={ref}>\n {children}\n </span>\n );\n });\n\n ListItemPart.displayName = `List.Item.${name}`;\n return ListItemPart;\n}\n\nconst Status = forwardRef<HTMLSpanElement, ListItemStatusProps>(function Status(\n { label, className, ...spanProps },\n ref,\n) {\n useListItemContext('Status');\n\n return (\n <span\n {...spanProps}\n className={['chayns-list-item__status', className].filter(Boolean).join(' ')}\n ref={ref}\n >\n <span aria-hidden=\"true\" className=\"chayns-list-item__status-dot\" />\n <span className=\"chayns-visually-hidden\">{label}</span>\n </span>\n );\n});\n\nconst ListRoot = forwardRef<HTMLUListElement, ListProps>(function List(\n { children, className, ...listProps },\n ref,\n) {\n const resolvedClassName = ['chayns-list', className].filter(Boolean).join(' ');\n\n return (\n <ListContext.Provider value>\n <ul {...listProps} className={resolvedClassName} ref={ref}>\n {children}\n </ul>\n </ListContext.Provider>\n );\n});\n\nconst List = Object.assign(ListRoot, {\n Item: Object.assign(Item, {\n Action,\n Body: createPart('Body'),\n Description: createPart('Description'),\n Leading: createPart('Leading'),\n Status,\n Title: createPart('Title'),\n Trailing: createPart('Trailing'),\n }),\n});\n\nItem.displayName = 'List.Item';\nObject.assign(Action, { displayName: 'List.Item.Action' });\nObject.assign(Status, { displayName: 'List.Item.Status' });\nListRoot.displayName = 'List';\n\nexport default List;\n"],"mappings":";;;;AAWA,IAAM,OAAO,WAAyC,SAAS,KAC7D,EAAE,UAAU,WAAW,GAAG,aAC1B,KACA;CACA,eAAe;CACf,MAAM,oBAAoB,CAAC,oBAAoB,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAElF,OACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAA;EACxB,UAAA,oBAAC,MAAD;GAAI,GAAI;GAAW,WAAW;GAAwB;GACnD;EACC,CAAA;CACoB,CAAA;AAE9B,CAAC;AAED,IAAM,SAAS,WACb,SAAS,OAAO,OAAO,KAAK;CAC1B,mBAAmB,QAAQ;CAE3B,IAAI,MAAM,SAAS,KAAA,GAAW;EAC5B,MAAM,EAAE,UAAU,WAAW,MAAM,GAAG,gBAAgB;EACtD,MAAM,oBAAoB,CAAC,4BAA4B,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EAE1F,OACE,oBAAC,KAAD;GACE,GAAI;GACJ,WAAW;GACL;GACD;GAEJ;EACA,CAAA;CAEP;CAEA,MAAM,EAAE,UAAU,WAAW,GAAG,gBAAgB;CAChD,MAAM,oBAAoB,CAAC,4BAA4B,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAE1F,OACE,oBAAC,UAAD;EACE,GAAI;EACJ,WAAW;EACN;EACL,MAAK;EAEJ;CACK,CAAA;AAEZ,CACF;AAEA,SAAS,WAAW,MAAiE;CACnF,MAAM,YAAY,qBAAqB,KAAK,YAAY;CAExD,MAAM,eAAe,WAA+C,SAAS,aAC3E,EAAE,UAAU,WAAW,mBAAmB,GAAG,aAC7C,KACA;EACA,mBAAmB,IAAI;EACvB,MAAM,oBAAoB,CAAC,WAAW,iBAAiB,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EAEjF,OACE,oBAAC,QAAD;GAAM,GAAI;GAAW,WAAW;GAAwB;GACrD;EACG,CAAA;CAEV,CAAC;CAED,aAAa,cAAc,aAAa;CACxC,OAAO;AACT;AAEA,IAAM,SAAS,WAAiD,SAAS,OACvE,EAAE,OAAO,WAAW,GAAG,aACvB,KACA;CACA,mBAAmB,QAAQ;CAE3B,OACE,qBAAC,QAAD;EACE,GAAI;EACJ,WAAW,CAAC,4BAA4B,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EACtE;EAHP,UAAA,CAKE,oBAAC,QAAD;GAAM,eAAY;GAAO,WAAU;EAAgC,CAAA,GACnE,oBAAC,QAAD;GAAM,WAAU;GAA0B,UAAA;EAAY,CAAA,CAClD;;AAEV,CAAC;AAED,IAAM,WAAW,WAAwC,SAAS,KAChE,EAAE,UAAU,WAAW,GAAG,aAC1B,KACA;CACA,MAAM,oBAAoB,CAAC,eAAe,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAE7E,OACE,oBAAC,YAAY,UAAb;EAAsB,OAAA;EACpB,UAAA,oBAAC,MAAD;GAAI,GAAI;GAAW,WAAW;GAAwB;GACnD;EACC,CAAA;CACgB,CAAA;AAE1B,CAAC;AAED,IAAM,OAAO,OAAO,OAAO,UAAU,EACnC,MAAM,OAAO,OAAO,MAAM;CACxB;CACA,MAAM,WAAW,MAAM;CACvB,aAAa,WAAW,aAAa;CACrC,SAAS,WAAW,SAAS;CAC7B;CACA,OAAO,WAAW,OAAO;CACzB,UAAU,WAAW,UAAU;AACjC,CAAC,EACH,CAAC;AAED,KAAK,cAAc;AACnB,OAAO,OAAO,QAAQ,EAAE,aAAa,mBAAmB,CAAC;AACzD,OAAO,OAAO,QAAQ,EAAE,aAAa,mBAAmB,CAAC;AACzD,SAAS,cAAc"}
|
|
@@ -9,11 +9,11 @@ export type ListItemActionProps = (Omit<ComponentPropsWithRef<'a'>, 'children'>
|
|
|
9
9
|
href?: never;
|
|
10
10
|
type?: never;
|
|
11
11
|
});
|
|
12
|
-
export interface ListItemPartProps {
|
|
12
|
+
export interface ListItemPartProps extends ComponentPropsWithRef<'span'> {
|
|
13
13
|
children: ReactNode;
|
|
14
14
|
className?: string;
|
|
15
15
|
}
|
|
16
|
-
export interface ListItemStatusProps {
|
|
16
|
+
export interface ListItemStatusProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {
|
|
17
17
|
/** Localized description of the otherwise colour-only status dot. */
|
|
18
18
|
label: Exclude<ReactNode, boolean | null | undefined>;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.types.d.ts","sourceRoot":"","sources":["../../../src/components/list/List.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAC3B,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACtF,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IAC5D,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEP,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"List.types.d.ts","sourceRoot":"","sources":["../../../src/components/list/List.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAC3B,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACtF,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IAC5D,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEP,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB,CAAC,MAAM,CAAC;IACtE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC1F,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACvD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PaginationProps } from './Pagination.types.js';
|
|
2
|
+
declare const Pagination: import("react").ForwardRefExoticComponent<Omit<PaginationProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
|
|
3
|
+
export default Pagination;
|
|
4
|
+
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,UAAU,sHA0Ed,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import ButtonIcon from "../button/button-icon/ButtonIcon.js";
|
|
2
|
+
import { paginationPages } from "./pagination-pages.js";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/pagination/Pagination.tsx
|
|
6
|
+
var Pagination = forwardRef(function Pagination({ className, labels, onClick, onPageChange, page, pageCount, ...navProps }, ref) {
|
|
7
|
+
if (!Number.isSafeInteger(pageCount) || pageCount < 1 || !Number.isSafeInteger(page) || page < 1 || page > pageCount) throw new Error("Pagination requires pageCount >= 1 and page within 1..pageCount.");
|
|
8
|
+
function handleClick(event) {
|
|
9
|
+
onClick?.(event);
|
|
10
|
+
if (event.defaultPrevented || !(event.target instanceof Element)) return;
|
|
11
|
+
const button = event.target.closest("button[data-page]");
|
|
12
|
+
if (!button || !event.currentTarget.contains(button) || button.disabled) return;
|
|
13
|
+
const next = Number(button.dataset.page);
|
|
14
|
+
if (next !== page) onPageChange(next);
|
|
15
|
+
}
|
|
16
|
+
return /* @__PURE__ */ jsxs("nav", {
|
|
17
|
+
...navProps,
|
|
18
|
+
className: ["chayns-pagination", className].filter(Boolean).join(" "),
|
|
19
|
+
onClick: handleClick,
|
|
20
|
+
ref,
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ jsx("button", {
|
|
23
|
+
"aria-label": labels.previous,
|
|
24
|
+
className: "chayns-pagination__arrow",
|
|
25
|
+
"data-page": page - 1,
|
|
26
|
+
disabled: page === 1,
|
|
27
|
+
type: "button",
|
|
28
|
+
children: /* @__PURE__ */ jsx(ButtonIcon, { icon: "fa-chevron-left" })
|
|
29
|
+
}),
|
|
30
|
+
paginationPages(page, pageCount).map((item, index) => item === "ellipsis" ? /* @__PURE__ */ jsx("span", {
|
|
31
|
+
"aria-hidden": "true",
|
|
32
|
+
className: "chayns-pagination__ellipsis",
|
|
33
|
+
children: "…"
|
|
34
|
+
}, `ellipsis-${index}`) : /* @__PURE__ */ jsx("button", {
|
|
35
|
+
"aria-current": item === page ? "page" : void 0,
|
|
36
|
+
"aria-label": labels.pageLabel(item),
|
|
37
|
+
className: "chayns-pagination__page",
|
|
38
|
+
"data-page": item,
|
|
39
|
+
type: "button",
|
|
40
|
+
children: item
|
|
41
|
+
}, item)),
|
|
42
|
+
/* @__PURE__ */ jsx("button", {
|
|
43
|
+
"aria-label": labels.next,
|
|
44
|
+
className: "chayns-pagination__arrow",
|
|
45
|
+
"data-page": page + 1,
|
|
46
|
+
disabled: page === pageCount,
|
|
47
|
+
type: "button",
|
|
48
|
+
children: /* @__PURE__ */ jsx(ButtonIcon, { icon: "fa-chevron-right" })
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
Pagination.displayName = "Pagination";
|
|
54
|
+
//#endregion
|
|
55
|
+
export { Pagination as default };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":[],"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["import { forwardRef, type MouseEvent } from 'react';\nimport ButtonIcon from '../button/button-icon/ButtonIcon.js';\nimport { paginationPages } from './pagination-pages.js';\nimport type { PaginationProps } from './Pagination.types.js';\n\nconst Pagination = forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { className, labels, onClick, onPageChange, page, pageCount, ...navProps },\n ref,\n) {\n if (\n !Number.isSafeInteger(pageCount) ||\n pageCount < 1 ||\n !Number.isSafeInteger(page) ||\n page < 1 ||\n page > pageCount\n ) {\n throw new Error('Pagination requires pageCount >= 1 and page within 1..pageCount.');\n }\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n onClick?.(event);\n if (event.defaultPrevented || !(event.target instanceof Element)) return;\n const button = event.target.closest<HTMLButtonElement>('button[data-page]');\n if (!button || !event.currentTarget.contains(button) || button.disabled) return;\n const next = Number(button.dataset.page);\n if (next !== page) onPageChange(next);\n }\n\n return (\n // Native child buttons emit clicks for pointer and keyboard; the nav delegates both.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <nav\n {...navProps}\n className={['chayns-pagination', className].filter(Boolean).join(' ')}\n onClick={handleClick}\n ref={ref}\n >\n <button\n aria-label={labels.previous}\n className=\"chayns-pagination__arrow\"\n data-page={page - 1}\n disabled={page === 1}\n type=\"button\"\n >\n <ButtonIcon icon=\"fa-chevron-left\" />\n </button>\n {paginationPages(page, pageCount).map((item, index) =>\n item === 'ellipsis' ? (\n <span\n aria-hidden=\"true\"\n className=\"chayns-pagination__ellipsis\"\n key={`ellipsis-${index}`}\n >\n …\n </span>\n ) : (\n <button\n aria-current={item === page ? 'page' : undefined}\n aria-label={labels.pageLabel(item)}\n className=\"chayns-pagination__page\"\n data-page={item}\n key={item}\n type=\"button\"\n >\n {item}\n </button>\n ),\n )}\n <button\n aria-label={labels.next}\n className=\"chayns-pagination__arrow\"\n data-page={page + 1}\n disabled={page === pageCount}\n type=\"button\"\n >\n <ButtonIcon icon=\"fa-chevron-right\" />\n </button>\n </nav>\n );\n});\nPagination.displayName = 'Pagination';\nexport default Pagination;\n"],"mappings":";;;;;AAKA,IAAM,aAAa,WAAyC,SAAS,WACnE,EAAE,WAAW,QAAQ,SAAS,cAAc,MAAM,WAAW,GAAG,YAChE,KACA;CACA,IACE,CAAC,OAAO,cAAc,SAAS,KAC/B,YAAY,KACZ,CAAC,OAAO,cAAc,IAAI,KAC1B,OAAO,KACP,OAAO,WAEP,MAAM,IAAI,MAAM,kEAAkE;CAGpF,SAAS,YAAY,OAAgC;EACnD,UAAU,KAAK;EACf,IAAI,MAAM,oBAAoB,EAAE,MAAM,kBAAkB,UAAU;EAClE,MAAM,SAAS,MAAM,OAAO,QAA2B,mBAAmB;EAC1E,IAAI,CAAC,UAAU,CAAC,MAAM,cAAc,SAAS,MAAM,KAAK,OAAO,UAAU;EACzE,MAAM,OAAO,OAAO,OAAO,QAAQ,IAAI;EACvC,IAAI,SAAS,MAAM,aAAa,IAAI;CACtC;CAEA,OAGE,qBAAC,OAAD;EACE,GAAI;EACJ,WAAW,CAAC,qBAAqB,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EACpE,SAAS;EACJ;EAJP,UAAA;GAME,oBAAC,UAAD;IACE,cAAY,OAAO;IACnB,WAAU;IACV,aAAW,OAAO;IAClB,UAAU,SAAS;IACnB,MAAK;IAEL,UAAA,oBAAC,YAAD,EAAY,MAAK,kBAAmB,CAAA;GAC9B,CAAA;GACP,gBAAgB,MAAM,SAAS,CAAC,CAAC,KAAK,MAAM,UAC3C,SAAS,aACP,oBAAC,QAAD;IACE,eAAY;IACZ,WAAU;IAEX,UAAA;GAEK,GAHC,YAAY,OAGb,IAEN,oBAAC,UAAD;IACE,gBAAc,SAAS,OAAO,SAAS,KAAA;IACvC,cAAY,OAAO,UAAU,IAAI;IACjC,WAAU;IACV,aAAW;IAEX,MAAK;IAEJ,UAAA;GACK,GAJD,IAIC,CAEZ;GACA,oBAAC,UAAD;IACE,cAAY,OAAO;IACnB,WAAU;IACV,aAAW,OAAO;IAClB,UAAU,SAAS;IACnB,MAAK;IAEL,UAAA,oBAAC,YAAD,EAAY,MAAK,mBAAoB,CAAA;GAC/B,CAAA;EACL;;AAET,CAAC;AACD,WAAW,cAAc"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
export interface PaginationLabels {
|
|
3
|
+
previous: string;
|
|
4
|
+
next: string;
|
|
5
|
+
/** Localized accessible name, for example "Seite 3". */
|
|
6
|
+
pageLabel: (page: number) => string;
|
|
7
|
+
}
|
|
8
|
+
/** Page-loaded collections; use explicit load-more for feeds and Breadcrumb for hierarchy. */
|
|
9
|
+
export interface PaginationProps extends Omit<ComponentPropsWithRef<'nav'>, 'children'> {
|
|
10
|
+
page: number;
|
|
11
|
+
pageCount: number;
|
|
12
|
+
onPageChange: (page: number) => void;
|
|
13
|
+
labels: PaginationLabels;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Pagination.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.types.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,gBAAgB,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination-pages.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination-pages.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAMxF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/components/pagination/pagination-pages.ts
|
|
2
|
+
function paginationPages(page, pageCount) {
|
|
3
|
+
if (pageCount <= 7) return Array.from({ length: pageCount }, (_, index) => index + 1);
|
|
4
|
+
if (page <= 4) return [
|
|
5
|
+
1,
|
|
6
|
+
2,
|
|
7
|
+
3,
|
|
8
|
+
4,
|
|
9
|
+
5,
|
|
10
|
+
"ellipsis",
|
|
11
|
+
pageCount
|
|
12
|
+
];
|
|
13
|
+
if (page >= pageCount - 3) return [
|
|
14
|
+
1,
|
|
15
|
+
"ellipsis",
|
|
16
|
+
pageCount - 4,
|
|
17
|
+
pageCount - 3,
|
|
18
|
+
pageCount - 2,
|
|
19
|
+
pageCount - 1,
|
|
20
|
+
pageCount
|
|
21
|
+
];
|
|
22
|
+
return [
|
|
23
|
+
1,
|
|
24
|
+
"ellipsis",
|
|
25
|
+
page - 1,
|
|
26
|
+
page,
|
|
27
|
+
page + 1,
|
|
28
|
+
"ellipsis",
|
|
29
|
+
pageCount
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { paginationPages };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=pagination-pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination-pages.js","names":[],"sources":["../../../src/components/pagination/pagination-pages.ts"],"sourcesContent":["export function paginationPages(page: number, pageCount: number): (number | 'ellipsis')[] {\n if (pageCount <= 7) return Array.from({ length: pageCount }, (_, index) => index + 1);\n if (page <= 4) return [1, 2, 3, 4, 5, 'ellipsis', pageCount];\n if (page >= pageCount - 3)\n return [1, 'ellipsis', pageCount - 4, pageCount - 3, pageCount - 2, pageCount - 1, pageCount];\n return [1, 'ellipsis', page - 1, page, page + 1, 'ellipsis', pageCount];\n}\n"],"mappings":";AAAA,SAAgB,gBAAgB,MAAc,WAA4C;CACxF,IAAI,aAAa,GAAG,OAAO,MAAM,KAAK,EAAE,QAAQ,UAAU,IAAI,GAAG,UAAU,QAAQ,CAAC;CACpF,IAAI,QAAQ,GAAG,OAAO;EAAC;EAAG;EAAG;EAAG;EAAG;EAAG;EAAY;CAAS;CAC3D,IAAI,QAAQ,YAAY,GACtB,OAAO;EAAC;EAAG;EAAY,YAAY;EAAG,YAAY;EAAG,YAAY;EAAG,YAAY;EAAG;CAAS;CAC9F,OAAO;EAAC;EAAG;EAAY,OAAO;EAAG;EAAM,OAAO;EAAG;EAAY;CAAS;AACxE"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { PopupProps, PopupTriggerProps } from './Popup.types.js';
|
|
2
|
-
declare const _default:
|
|
2
|
+
declare const _default: {
|
|
3
|
+
({ children, closeOnEscape, closeOnOutsidePress, defaultOpen, onOpenChange, open, }: PopupProps): import("react").JSX.Element;
|
|
4
|
+
displayName: string;
|
|
5
|
+
} & {
|
|
3
6
|
Trigger: import("react").ForwardRefExoticComponent<Omit<PopupTriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
4
7
|
Content: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../src/components/popup/Popup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../src/components/popup/Popup.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAqB,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;;yFAsFtF,UAAU;;;;;;AA0Db,wBAAyD"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { composeNativeRefs } from "../../utils/native-ref.js";
|
|
2
|
+
import { useOverlayPosition } from "../../hooks/useOverlayPosition.js";
|
|
3
|
+
import { cloneElement, createContext, forwardRef, isValidElement, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
2
4
|
import { jsx } from "react/jsx-runtime";
|
|
3
5
|
import { createPortal } from "react-dom";
|
|
4
6
|
//#region src/components/popup/Popup.tsx
|
|
@@ -10,17 +12,22 @@ function usePopup(part) {
|
|
|
10
12
|
}
|
|
11
13
|
var Trigger = forwardRef(function Trigger({ asChild = false, children, onClick, ...props }, ref) {
|
|
12
14
|
const popup = usePopup("Trigger");
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const child = asChild && isValidElement(children) ? children : void 0;
|
|
16
|
+
const descriptorRef = child ? Object.getOwnPropertyDescriptor(child, "ref")?.value : void 0;
|
|
17
|
+
const childRef = child?.props.ref ?? descriptorRef;
|
|
18
|
+
const setTriggerElement = popup.setTriggerElement;
|
|
19
|
+
const setRef = useMemo(() => composeNativeRefs(childRef, setTriggerElement, ref), [
|
|
20
|
+
childRef,
|
|
21
|
+
setTriggerElement,
|
|
22
|
+
ref
|
|
23
|
+
]);
|
|
18
24
|
const triggerProps = {
|
|
19
25
|
...props,
|
|
20
26
|
"aria-controls": popup.contentId,
|
|
21
27
|
"aria-expanded": popup.open,
|
|
22
28
|
onClick: (event) => {
|
|
23
|
-
onClick?.(event);
|
|
29
|
+
child?.props.onClick?.(event);
|
|
30
|
+
if (!event.defaultPrevented) onClick?.(event);
|
|
24
31
|
if (!event.defaultPrevented) popup.setOpen(!popup.open);
|
|
25
32
|
},
|
|
26
33
|
ref: setRef
|
|
@@ -36,14 +43,8 @@ var Trigger = forwardRef(function Trigger({ asChild = false, children, onClick,
|
|
|
36
43
|
var Content = forwardRef(function Content({ children, ...props }, ref) {
|
|
37
44
|
const popup = usePopup("Content");
|
|
38
45
|
const contentRef = useRef(null);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}, [popup.open]);
|
|
42
|
-
function setRef(element) {
|
|
43
|
-
contentRef.current = element;
|
|
44
|
-
if (typeof ref === "function") ref(element);
|
|
45
|
-
else if (ref) ref.current = element;
|
|
46
|
-
}
|
|
46
|
+
useOverlayPosition(contentRef, popup.triggerElement, popup.open);
|
|
47
|
+
const setRef = useMemo(() => composeNativeRefs(contentRef, ref), [ref]);
|
|
47
48
|
if (!popup.open || typeof document === "undefined") return null;
|
|
48
49
|
return createPortal(/* @__PURE__ */ jsx("div", {
|
|
49
50
|
...props,
|
|
@@ -70,7 +71,7 @@ var Root = ({ children, closeOnEscape = true, closeOnOutsidePress = true, defaul
|
|
|
70
71
|
useEffect(() => {
|
|
71
72
|
if (!isOpen) return;
|
|
72
73
|
const key = (event) => {
|
|
73
|
-
if (event.key === "Escape" && closeOnEscape) {
|
|
74
|
+
if (event.key === "Escape" && closeOnEscape && !event.defaultPrevented) {
|
|
74
75
|
event.preventDefault();
|
|
75
76
|
setOpen(false);
|
|
76
77
|
}
|
|
@@ -81,7 +82,9 @@ var Root = ({ children, closeOnEscape = true, closeOnOutsidePress = true, defaul
|
|
|
81
82
|
if (closeOnOutsidePress && target instanceof Node && !triggerElement?.contains(target) && !document.getElementById(contentId)?.contains(target)) setOpen(false, false);
|
|
82
83
|
};
|
|
83
84
|
const menuAction = (event) => {
|
|
84
|
-
if (event.target
|
|
85
|
+
if (event.defaultPrevented || !(event.target instanceof Element)) return;
|
|
86
|
+
const item = event.target.closest("[role=\"menuitem\"]");
|
|
87
|
+
if (item && document.getElementById(contentId)?.contains(item)) setOpen(false);
|
|
85
88
|
};
|
|
86
89
|
document.addEventListener("keydown", key);
|
|
87
90
|
document.addEventListener("pointerdown", outside);
|
|
@@ -104,11 +107,15 @@ var Root = ({ children, closeOnEscape = true, closeOnOutsidePress = true, defaul
|
|
|
104
107
|
contentId,
|
|
105
108
|
open: isOpen,
|
|
106
109
|
setOpen,
|
|
107
|
-
setTriggerElement
|
|
110
|
+
setTriggerElement,
|
|
111
|
+
triggerElement
|
|
108
112
|
},
|
|
109
113
|
children
|
|
110
114
|
});
|
|
111
115
|
};
|
|
116
|
+
Trigger.displayName = "Popup.Trigger";
|
|
117
|
+
Content.displayName = "Popup.Content";
|
|
118
|
+
Root.displayName = "Popup";
|
|
112
119
|
var Popup_default = Object.assign(Root, {
|
|
113
120
|
Trigger,
|
|
114
121
|
Content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.js","names":[],"sources":["../../../src/components/popup/Popup.tsx"],"sourcesContent":["import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport type { PopupContentProps, PopupProps, PopupTriggerProps } from './Popup.types.js';\n\ninterface PopupContextValue {\n contentId: string;\n open: boolean;\n setOpen: (open: boolean, restore?: boolean) => void;\n setTriggerElement: (element: HTMLButtonElement | null) => void;\n}\nconst PopupContext = createContext<PopupContextValue | null>(null);\nfunction usePopup(part: string) {\n const context = useContext(PopupContext);\n if (!context) throw new Error(`Popup.${part} must be rendered within Popup.`);\n return context;\n}\n\nconst Trigger = forwardRef<HTMLButtonElement, PopupTriggerProps>(function Trigger(\n { asChild = false, children, onClick, ...props },\n ref,\n) {\n const popup = usePopup('Trigger');\n const
|
|
1
|
+
{"version":3,"file":"Popup.js","names":[],"sources":["../../../src/components/popup/Popup.tsx"],"sourcesContent":["import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { composeNativeRefs } from '../../utils/native-ref.js';\nimport { useOverlayPosition } from '../../hooks/useOverlayPosition.js';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport type { PopupContentProps, PopupProps, PopupTriggerProps } from './Popup.types.js';\n\ninterface PopupContextValue {\n contentId: string;\n open: boolean;\n setOpen: (open: boolean, restore?: boolean) => void;\n setTriggerElement: (element: HTMLButtonElement | null) => void;\n triggerElement: HTMLButtonElement | null;\n}\nconst PopupContext = createContext<PopupContextValue | null>(null);\nfunction usePopup(part: string) {\n const context = useContext(PopupContext);\n if (!context) throw new Error(`Popup.${part} must be rendered within Popup.`);\n return context;\n}\n\nconst Trigger = forwardRef<HTMLButtonElement, PopupTriggerProps>(function Trigger(\n { asChild = false, children, onClick, ...props },\n ref,\n) {\n const popup = usePopup('Trigger');\n const child =\n asChild && isValidElement<ComponentPropsWithRef<'button'>>(children) ? children : undefined;\n const descriptorRef = child\n ? (Object.getOwnPropertyDescriptor(child, 'ref')?.value as Ref<HTMLButtonElement> | undefined)\n : undefined;\n const childRef = child?.props.ref ?? descriptorRef;\n const setTriggerElement = popup.setTriggerElement;\n const setRef = useMemo(\n () => composeNativeRefs(childRef, setTriggerElement, ref),\n [childRef, setTriggerElement, ref],\n );\n const triggerProps = {\n ...props,\n 'aria-controls': popup.contentId,\n 'aria-expanded': popup.open,\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n child?.props.onClick?.(event);\n if (!event.defaultPrevented) onClick?.(event);\n if (!event.defaultPrevented) popup.setOpen(!popup.open);\n },\n ref: setRef,\n };\n\n if (asChild && isValidElement(children)) {\n // eslint-disable-next-line react-hooks/refs\n return cloneElement(children, triggerProps);\n }\n\n return (\n <button {...triggerProps} ref={setRef} type=\"button\">\n {children}\n </button>\n );\n});\nconst Content = forwardRef<HTMLDivElement, PopupContentProps>(function Content(\n { children, ...props },\n ref,\n) {\n const popup = usePopup('Content');\n const contentRef = useRef<HTMLDivElement>(null);\n\n useOverlayPosition(contentRef, popup.triggerElement, popup.open);\n\n const setRef = useMemo(() => composeNativeRefs(contentRef, ref), [ref]);\n\n if (!popup.open || typeof document === 'undefined') return null;\n return createPortal(\n <div\n {...props}\n className={['chayns-popup', props.className].filter(Boolean).join(' ')}\n id={popup.contentId}\n ref={setRef}\n >\n {children}\n </div>,\n document.body,\n );\n});\nconst Root = ({\n children,\n closeOnEscape = true,\n closeOnOutsidePress = true,\n defaultOpen = false,\n onOpenChange,\n open,\n}: PopupProps) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [triggerElement, setTriggerElement] = useState<HTMLButtonElement | null>(null);\n const contentId = useId();\n const isOpen = open ?? uncontrolledOpen;\n const setOpen = useCallback(\n (next: boolean, restore = true) => {\n if (open === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n if (!next && restore) queueMicrotask(() => triggerElement?.focus());\n },\n [onOpenChange, open, triggerElement],\n );\n useEffect(() => {\n if (!isOpen) return;\n const key = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape && !event.defaultPrevented) {\n event.preventDefault();\n setOpen(false);\n }\n if (event.key === 'Tab') setOpen(false, false);\n };\n const outside = (event: PointerEvent) => {\n const target = event.target;\n if (\n closeOnOutsidePress &&\n target instanceof Node &&\n !triggerElement?.contains(target) &&\n !document.getElementById(contentId)?.contains(target)\n )\n setOpen(false, false);\n };\n const menuAction = (event: MouseEvent) => {\n if (event.defaultPrevented || !(event.target instanceof Element)) return;\n const item = event.target.closest('[role=\"menuitem\"]');\n if (item && document.getElementById(contentId)?.contains(item)) setOpen(false);\n };\n document.addEventListener('keydown', key);\n document.addEventListener('pointerdown', outside);\n document.addEventListener('click', menuAction);\n return () => {\n document.removeEventListener('keydown', key);\n document.removeEventListener('pointerdown', outside);\n document.removeEventListener('click', menuAction);\n };\n }, [isOpen, closeOnEscape, closeOnOutsidePress, contentId, setOpen, triggerElement]);\n return (\n <PopupContext.Provider\n value={{ contentId, open: isOpen, setOpen, setTriggerElement, triggerElement }}\n >\n {children}\n </PopupContext.Provider>\n );\n};\nTrigger.displayName = 'Popup.Trigger';\nContent.displayName = 'Popup.Content';\nRoot.displayName = 'Popup';\n\nexport default Object.assign(Root, { Trigger, Content });\n"],"mappings":";;;;;;AA0BA,IAAM,eAAe,cAAwC,IAAI;AACjE,SAAS,SAAS,MAAc;CAC9B,MAAM,UAAU,WAAW,YAAY;CACvC,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,gCAAgC;CAC5E,OAAO;AACT;AAEA,IAAM,UAAU,WAAiD,SAAS,QACxE,EAAE,UAAU,OAAO,UAAU,SAAS,GAAG,SACzC,KACA;CACA,MAAM,QAAQ,SAAS,SAAS;CAChC,MAAM,QACJ,WAAW,eAAgD,QAAQ,IAAI,WAAW,KAAA;CACpF,MAAM,gBAAgB,QACjB,OAAO,yBAAyB,OAAO,KAAK,CAAC,EAAE,QAChD,KAAA;CACJ,MAAM,WAAW,OAAO,MAAM,OAAO;CACrC,MAAM,oBAAoB,MAAM;CAChC,MAAM,SAAS,cACP,kBAAkB,UAAU,mBAAmB,GAAG,GACxD;EAAC;EAAU;EAAmB;CAAG,CACnC;CACA,MAAM,eAAe;EACnB,GAAG;EACH,iBAAiB,MAAM;EACvB,iBAAiB,MAAM;EACvB,UAAU,UAA+C;GACvD,OAAO,MAAM,UAAU,KAAK;GAC5B,IAAI,CAAC,MAAM,kBAAkB,UAAU,KAAK;GAC5C,IAAI,CAAC,MAAM,kBAAkB,MAAM,QAAQ,CAAC,MAAM,IAAI;EACxD;EACA,KAAK;CACP;CAEA,IAAI,WAAW,eAAe,QAAQ,GAEpC,OAAO,aAAa,UAAU,YAAY;CAG5C,OACE,oBAAC,UAAD;EAAQ,GAAI;EAAc,KAAK;EAAQ,MAAK;EACzC;CACK,CAAA;AAEZ,CAAC;AACD,IAAM,UAAU,WAA8C,SAAS,QACrE,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,SAAS,SAAS;CAChC,MAAM,aAAa,OAAuB,IAAI;CAE9C,mBAAmB,YAAY,MAAM,gBAAgB,MAAM,IAAI;CAE/D,MAAM,SAAS,cAAc,kBAAkB,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC;CAEtE,IAAI,CAAC,MAAM,QAAQ,OAAO,aAAa,aAAa,OAAO;CAC3D,OAAO,aACL,oBAAC,OAAD;EACE,GAAI;EACJ,WAAW,CAAC,gBAAgB,MAAM,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EACrE,IAAI,MAAM;EACV,KAAK;EAEJ;CACE,CAAA,GACL,SAAS,IACX;AACF,CAAC;AACD,IAAM,QAAQ,EACZ,UACA,gBAAgB,MAChB,sBAAsB,MACtB,cAAc,OACd,cACA,WACgB;CAChB,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,WAAW;CACpE,MAAM,CAAC,gBAAgB,qBAAqB,SAAmC,IAAI;CACnF,MAAM,YAAY,MAAM;CACxB,MAAM,SAAS,QAAQ;CACvB,MAAM,UAAU,aACb,MAAe,UAAU,SAAS;EACjC,IAAI,SAAS,KAAA,GAAW,oBAAoB,IAAI;EAChD,eAAe,IAAI;EACnB,IAAI,CAAC,QAAQ,SAAS,qBAAqB,gBAAgB,MAAM,CAAC;CACpE,GACA;EAAC;EAAc;EAAM;CAAc,CACrC;CACA,gBAAgB;EACd,IAAI,CAAC,QAAQ;EACb,MAAM,OAAO,UAAyB;GACpC,IAAI,MAAM,QAAQ,YAAY,iBAAiB,CAAC,MAAM,kBAAkB;IACtE,MAAM,eAAe;IACrB,QAAQ,KAAK;GACf;GACA,IAAI,MAAM,QAAQ,OAAO,QAAQ,OAAO,KAAK;EAC/C;EACA,MAAM,WAAW,UAAwB;GACvC,MAAM,SAAS,MAAM;GACrB,IACE,uBACA,kBAAkB,QAClB,CAAC,gBAAgB,SAAS,MAAM,KAChC,CAAC,SAAS,eAAe,SAAS,CAAC,EAAE,SAAS,MAAM,GAEpD,QAAQ,OAAO,KAAK;EACxB;EACA,MAAM,cAAc,UAAsB;GACxC,IAAI,MAAM,oBAAoB,EAAE,MAAM,kBAAkB,UAAU;GAClE,MAAM,OAAO,MAAM,OAAO,QAAQ,qBAAmB;GACrD,IAAI,QAAQ,SAAS,eAAe,SAAS,CAAC,EAAE,SAAS,IAAI,GAAG,QAAQ,KAAK;EAC/E;EACA,SAAS,iBAAiB,WAAW,GAAG;EACxC,SAAS,iBAAiB,eAAe,OAAO;EAChD,SAAS,iBAAiB,SAAS,UAAU;EAC7C,aAAa;GACX,SAAS,oBAAoB,WAAW,GAAG;GAC3C,SAAS,oBAAoB,eAAe,OAAO;GACnD,SAAS,oBAAoB,SAAS,UAAU;EAClD;CACF,GAAG;EAAC;EAAQ;EAAe;EAAqB;EAAW;EAAS;CAAc,CAAC;CACnF,OACE,oBAAC,aAAa,UAAd;EACE,OAAO;GAAE;GAAW,MAAM;GAAQ;GAAS;GAAmB;EAAe;EAE5E;CACoB,CAAA;AAE3B;AACA,QAAQ,cAAc;AACtB,QAAQ,cAAc;AACtB,KAAK,cAAc;AAEnB,IAAA,gBAAe,OAAO,OAAO,MAAM;CAAE;CAAS;AAAQ,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { PopupListProps } from './Popup.types.js';
|
|
2
|
-
declare const PopupList:
|
|
2
|
+
declare const PopupList: {
|
|
3
|
+
({ className, items, trigger }: PopupListProps): import("react").JSX.Element;
|
|
4
|
+
displayName: string;
|
|
5
|
+
};
|
|
3
6
|
export default PopupList;
|
|
4
7
|
//# sourceMappingURL=PopupList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupList.d.ts","sourceRoot":"","sources":["../../../src/components/popup/PopupList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"PopupList.d.ts","sourceRoot":"","sources":["../../../src/components/popup/PopupList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,SAAS;oCAAmC,cAAc;;CAgD/D,CAAC;AAIF,eAAe,SAAS,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import ButtonIcon from "../button/button-icon/ButtonIcon.js";
|
|
2
2
|
import Popup_default from "./Popup.js";
|
|
3
|
-
import { useRef } from "react";
|
|
3
|
+
import { useCallback, useRef } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/popup/PopupList.tsx
|
|
6
6
|
var PopupList = ({ className, items, trigger }) => {
|
|
7
7
|
const itemRefs = useRef([]);
|
|
8
|
+
const handleMenuRef = useCallback((element) => {
|
|
9
|
+
element?.querySelector("[role=\"menuitem\"]")?.focus();
|
|
10
|
+
}, []);
|
|
8
11
|
const handleKeyDown = (event) => {
|
|
9
12
|
const index = itemRefs.current.indexOf(document.activeElement);
|
|
10
13
|
if (index < 0 || items.length === 0) return;
|
|
@@ -25,6 +28,7 @@ var PopupList = ({ className, items, trigger }) => {
|
|
|
25
28
|
className,
|
|
26
29
|
children: /* @__PURE__ */ jsx("div", {
|
|
27
30
|
onKeyDown: handleKeyDown,
|
|
31
|
+
ref: handleMenuRef,
|
|
28
32
|
role: "menu",
|
|
29
33
|
tabIndex: -1,
|
|
30
34
|
children: items.map((item, index) => /* @__PURE__ */ jsxs("button", {
|
|
@@ -34,12 +38,14 @@ var PopupList = ({ className, items, trigger }) => {
|
|
|
34
38
|
itemRefs.current[index] = element;
|
|
35
39
|
},
|
|
36
40
|
role: "menuitem",
|
|
41
|
+
tabIndex: -1,
|
|
37
42
|
type: "button",
|
|
38
43
|
children: [/* @__PURE__ */ jsx(ButtonIcon, { icon: item.icon }), /* @__PURE__ */ jsx("span", { children: item.text })]
|
|
39
44
|
}, `${item.text}-${index}`))
|
|
40
45
|
})
|
|
41
46
|
})] });
|
|
42
47
|
};
|
|
48
|
+
PopupList.displayName = "PopupList";
|
|
43
49
|
//#endregion
|
|
44
50
|
export { PopupList as default };
|
|
45
51
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupList.js","names":[],"sources":["../../../src/components/popup/PopupList.tsx"],"sourcesContent":["import { useRef, type KeyboardEvent } from 'react';\n\nimport ButtonIcon from '../button/button-icon/ButtonIcon.js';\nimport Popup from './Popup.js';\nimport type { PopupListProps } from './Popup.types.js';\n\nconst PopupList = ({ className, items, trigger }: PopupListProps) => {\n const itemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const index = itemRefs.current.indexOf(document.activeElement as HTMLButtonElement);\n if (index < 0 || items.length === 0) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const direction = event.key === 'ArrowDown' ? 1 : -1;\n const nextIndex = (index + direction + items.length) % items.length;\n itemRefs.current[nextIndex]?.focus();\n }\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n itemRefs.current[event.key === 'Home' ? 0 : items.length - 1]?.focus();\n }\n };\n\n return (\n <Popup>\n <Popup.Trigger asChild>{trigger}</Popup.Trigger>\n <Popup.Content className={className}>\n <div onKeyDown={handleKeyDown} role=\"menu\" tabIndex={-1}>\n {items.map((item, index) => (\n <button\n className=\"chayns-popup-list__item\"\n key={`${item.text}-${index}`}\n onClick={item.onClick}\n ref={(element) => {\n itemRefs.current[index] = element;\n }}\n role=\"menuitem\"\n type=\"button\"\n >\n <ButtonIcon icon={item.icon} />\n <span>{item.text}</span>\n </button>\n ))}\n </div>\n </Popup.Content>\n </Popup>\n );\n};\n\nexport default PopupList;\n"],"mappings":";;;;;AAMA,IAAM,aAAa,EAAE,WAAW,OAAO,cAA8B;CACnE,MAAM,WAAW,OAAqC,CAAC,CAAC;CAExD,MAAM,iBAAiB,UAAyC;EAC9D,MAAM,QAAQ,SAAS,QAAQ,QAAQ,SAAS,aAAkC;EAClF,IAAI,QAAQ,KAAK,MAAM,WAAW,GAAG;EAErC,IAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,WAAW;GACxD,MAAM,eAAe;GAErB,MAAM,aAAa,SADD,MAAM,QAAQ,cAAc,IAAI,MACX,MAAM,UAAU,MAAM;GAC7D,SAAS,QAAQ,UAAU,EAAE,MAAM;EACrC;EACA,IAAI,MAAM,QAAQ,UAAU,MAAM,QAAQ,OAAO;GAC/C,MAAM,eAAe;GACrB,SAAS,QAAQ,MAAM,QAAQ,SAAS,IAAI,MAAM,SAAS,EAAE,EAAE,MAAM;EACvE;CACF;CAEA,OACE,qBAAC,eAAD,EAAA,UAAA,CACE,oBAAC,cAAM,SAAP;EAAe,SAAA;EAAS,UAAA;CAAuB,CAAA,GAC/C,oBAAC,cAAM,SAAP;EAA0B;EACxB,UAAA,oBAAC,OAAD;GAAK,WAAW;GAAe,MAAK;GAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"PopupList.js","names":[],"sources":["../../../src/components/popup/PopupList.tsx"],"sourcesContent":["import { useCallback, useRef, type KeyboardEvent } from 'react';\n\nimport ButtonIcon from '../button/button-icon/ButtonIcon.js';\nimport Popup from './Popup.js';\nimport type { PopupListProps } from './Popup.types.js';\n\nconst PopupList = ({ className, items, trigger }: PopupListProps) => {\n const itemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const handleMenuRef = useCallback((element: HTMLDivElement | null) => {\n element?.querySelector<HTMLButtonElement>('[role=\"menuitem\"]')?.focus();\n }, []);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const index = itemRefs.current.indexOf(document.activeElement as HTMLButtonElement);\n if (index < 0 || items.length === 0) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const direction = event.key === 'ArrowDown' ? 1 : -1;\n const nextIndex = (index + direction + items.length) % items.length;\n itemRefs.current[nextIndex]?.focus();\n }\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n itemRefs.current[event.key === 'Home' ? 0 : items.length - 1]?.focus();\n }\n };\n\n return (\n <Popup>\n <Popup.Trigger asChild>{trigger}</Popup.Trigger>\n <Popup.Content className={className}>\n <div onKeyDown={handleKeyDown} ref={handleMenuRef} role=\"menu\" tabIndex={-1}>\n {items.map((item, index) => (\n <button\n className=\"chayns-popup-list__item\"\n key={`${item.text}-${index}`}\n onClick={item.onClick}\n ref={(element) => {\n itemRefs.current[index] = element;\n }}\n role=\"menuitem\"\n tabIndex={-1}\n type=\"button\"\n >\n <ButtonIcon icon={item.icon} />\n <span>{item.text}</span>\n </button>\n ))}\n </div>\n </Popup.Content>\n </Popup>\n );\n};\n\nPopupList.displayName = 'PopupList';\n\nexport default PopupList;\n"],"mappings":";;;;;AAMA,IAAM,aAAa,EAAE,WAAW,OAAO,cAA8B;CACnE,MAAM,WAAW,OAAqC,CAAC,CAAC;CAExD,MAAM,gBAAgB,aAAa,YAAmC;EACpE,SAAS,cAAiC,qBAAmB,CAAC,EAAE,MAAM;CACxE,GAAG,CAAC,CAAC;CAEL,MAAM,iBAAiB,UAAyC;EAC9D,MAAM,QAAQ,SAAS,QAAQ,QAAQ,SAAS,aAAkC;EAClF,IAAI,QAAQ,KAAK,MAAM,WAAW,GAAG;EAErC,IAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,WAAW;GACxD,MAAM,eAAe;GAErB,MAAM,aAAa,SADD,MAAM,QAAQ,cAAc,IAAI,MACX,MAAM,UAAU,MAAM;GAC7D,SAAS,QAAQ,UAAU,EAAE,MAAM;EACrC;EACA,IAAI,MAAM,QAAQ,UAAU,MAAM,QAAQ,OAAO;GAC/C,MAAM,eAAe;GACrB,SAAS,QAAQ,MAAM,QAAQ,SAAS,IAAI,MAAM,SAAS,EAAE,EAAE,MAAM;EACvE;CACF;CAEA,OACE,qBAAC,eAAD,EAAA,UAAA,CACE,oBAAC,cAAM,SAAP;EAAe,SAAA;EAAS,UAAA;CAAuB,CAAA,GAC/C,oBAAC,cAAM,SAAP;EAA0B;EACxB,UAAA,oBAAC,OAAD;GAAK,WAAW;GAAe,KAAK;GAAe,MAAK;GAAO,UAAU;GACtE,UAAA,MAAM,KAAK,MAAM,UAChB,qBAAC,UAAD;IACE,WAAU;IAEV,SAAS,KAAK;IACd,MAAM,YAAY;KAChB,SAAS,QAAQ,SAAS;IAC5B;IACA,MAAK;IACL,UAAU;IACV,MAAK;IATP,UAAA,CAWE,oBAAC,YAAD,EAAY,MAAM,KAAK,KAAO,CAAA,GAC9B,oBAAC,QAAD,EAAA,UAAO,KAAK,KAAW,CAAA,CACjB;GAXD,GAAA,GAAG,KAAK,KAAK,GAAG,OAWf,CACT;EACE,CAAA;CACQ,CAAA,CACV,EAAA,CAAA;AAEX;AAEA,UAAU,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkBzD,QAAA,MAAM,QAAQ,uHA+DZ,CAAC;
|
|
1
|
+
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkBzD,QAAA,MAAM,QAAQ,uHA+DZ,CAAC;AAIH,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.js","names":[],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react';\n\nimport type { ProgressProps } from './Progress.types.js';\n\nfunction normalizeValue(value: number) {\n if (Number.isNaN(value)) {\n return 0;\n }\n\n if (value === Infinity) {\n return 100;\n }\n\n if (value === -Infinity) {\n return 0;\n }\n\n return Math.min(100, Math.max(0, Math.round(value)));\n}\n\nconst Progress = forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n {\n 'aria-label': _ariaLabel,\n 'aria-labelledby': _ariaLabelledBy,\n 'aria-valuemax': _ariaValueMax,\n 'aria-valuemin': _ariaValueMin,\n 'aria-valuenow': _ariaValueNow,\n 'aria-valuetext': _ariaValueText,\n children: _children,\n className,\n label,\n role: _role,\n rootProps,\n tabIndex: _tabIndex,\n value,\n ...progressbarProps\n },\n ref,\n) {\n void _ariaLabel;\n void _ariaLabelledBy;\n void _ariaValueMax;\n void _ariaValueMin;\n void _ariaValueNow;\n void _ariaValueText;\n void _children;\n void _role;\n void _tabIndex;\n\n const labelId = useId();\n const normalizedValue = normalizeValue(value);\n const valueText = `${normalizedValue} %`;\n const { className: rootClassName, ...remainingRootProps } = rootProps ?? {};\n const resolvedRootClassName = ['chayns-progress', rootClassName].filter(Boolean).join(' ');\n const resolvedProgressbarClassName = ['chayns-progress__bar', className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div {...remainingRootProps} className={resolvedRootClassName}>\n <div className=\"chayns-progress__label-row\">\n <span id={labelId}>{label}</span>\n <span aria-hidden=\"true\">{valueText}</span>\n </div>\n <div\n {...progressbarProps}\n aria-labelledby={labelId}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={normalizedValue}\n aria-valuetext={valueText}\n className={resolvedProgressbarClassName}\n ref={ref}\n role=\"progressbar\"\n >\n <div\n aria-hidden=\"true\"\n className=\"chayns-progress__fill\"\n style={{ width: `${normalizedValue}%` }}\n />\n </div>\n </div>\n );\n});\n\nexport default Progress;\n"],"mappings":";;;AAIA,SAAS,eAAe,OAAe;CACrC,IAAI,OAAO,MAAM,KAAK,GACpB,OAAO;CAGT,IAAI,UAAU,UACZ,OAAO;CAGT,IAAI,UAAU,WACZ,OAAO;CAGT,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC;AACrD;AAEA,IAAM,WAAW,WAA0C,SAAS,SAClE,EACE,cAAc,YACd,mBAAmB,iBACnB,iBAAiB,eACjB,iBAAiB,eACjB,iBAAiB,eACjB,kBAAkB,gBAClB,UAAU,WACV,WACA,OACA,MAAM,OACN,WACA,UAAU,WACV,OACA,GAAG,oBAEL,KACA;CAWA,MAAM,UAAU,MAAM;CACtB,MAAM,kBAAkB,eAAe,KAAK;CAC5C,MAAM,YAAY,GAAG,gBAAgB;CACrC,MAAM,EAAE,WAAW,eAAe,GAAG,uBAAuB,aAAa,CAAC;CAC1E,MAAM,wBAAwB,CAAC,mBAAmB,aAAa,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CACzF,MAAM,+BAA+B,CAAC,wBAAwB,SAAS,CAAC,CACrE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,qBAAC,OAAD;EAAK,GAAI;EAAoB,WAAW;EAAxC,UAAA,CACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD;IAAM,IAAI;IAAU,UAAA;GAAY,CAAA,GAChC,oBAAC,QAAD;IAAM,eAAY;IAAQ,UAAA;GAAgB,CAAA,CACvC;EACL,CAAA,GAAA,oBAAC,OAAD;GACE,GAAI;GACJ,mBAAiB;GACjB,iBAAe;GACf,iBAAe;GACf,iBAAe;GACf,kBAAgB;GAChB,WAAW;GACN;GACL,MAAK;GAEL,UAAA,oBAAC,OAAD;IACE,eAAY;IACZ,WAAU;IACV,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG;GACvC,CAAA;EACE,CAAA,CACF;;AAET,CAAC"}
|
|
1
|
+
{"version":3,"file":"Progress.js","names":[],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react';\n\nimport type { ProgressProps } from './Progress.types.js';\n\nfunction normalizeValue(value: number) {\n if (Number.isNaN(value)) {\n return 0;\n }\n\n if (value === Infinity) {\n return 100;\n }\n\n if (value === -Infinity) {\n return 0;\n }\n\n return Math.min(100, Math.max(0, Math.round(value)));\n}\n\nconst Progress = forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n {\n 'aria-label': _ariaLabel,\n 'aria-labelledby': _ariaLabelledBy,\n 'aria-valuemax': _ariaValueMax,\n 'aria-valuemin': _ariaValueMin,\n 'aria-valuenow': _ariaValueNow,\n 'aria-valuetext': _ariaValueText,\n children: _children,\n className,\n label,\n role: _role,\n rootProps,\n tabIndex: _tabIndex,\n value,\n ...progressbarProps\n },\n ref,\n) {\n void _ariaLabel;\n void _ariaLabelledBy;\n void _ariaValueMax;\n void _ariaValueMin;\n void _ariaValueNow;\n void _ariaValueText;\n void _children;\n void _role;\n void _tabIndex;\n\n const labelId = useId();\n const normalizedValue = normalizeValue(value);\n const valueText = `${normalizedValue} %`;\n const { className: rootClassName, ...remainingRootProps } = rootProps ?? {};\n const resolvedRootClassName = ['chayns-progress', rootClassName].filter(Boolean).join(' ');\n const resolvedProgressbarClassName = ['chayns-progress__bar', className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div {...remainingRootProps} className={resolvedRootClassName}>\n <div className=\"chayns-progress__label-row\">\n <span id={labelId}>{label}</span>\n <span aria-hidden=\"true\">{valueText}</span>\n </div>\n <div\n {...progressbarProps}\n aria-labelledby={labelId}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={normalizedValue}\n aria-valuetext={valueText}\n className={resolvedProgressbarClassName}\n ref={ref}\n role=\"progressbar\"\n >\n <div\n aria-hidden=\"true\"\n className=\"chayns-progress__fill\"\n style={{ width: `${normalizedValue}%` }}\n />\n </div>\n </div>\n );\n});\n\nProgress.displayName = 'Progress';\n\nexport default Progress;\n"],"mappings":";;;AAIA,SAAS,eAAe,OAAe;CACrC,IAAI,OAAO,MAAM,KAAK,GACpB,OAAO;CAGT,IAAI,UAAU,UACZ,OAAO;CAGT,IAAI,UAAU,WACZ,OAAO;CAGT,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC;AACrD;AAEA,IAAM,WAAW,WAA0C,SAAS,SAClE,EACE,cAAc,YACd,mBAAmB,iBACnB,iBAAiB,eACjB,iBAAiB,eACjB,iBAAiB,eACjB,kBAAkB,gBAClB,UAAU,WACV,WACA,OACA,MAAM,OACN,WACA,UAAU,WACV,OACA,GAAG,oBAEL,KACA;CAWA,MAAM,UAAU,MAAM;CACtB,MAAM,kBAAkB,eAAe,KAAK;CAC5C,MAAM,YAAY,GAAG,gBAAgB;CACrC,MAAM,EAAE,WAAW,eAAe,GAAG,uBAAuB,aAAa,CAAC;CAC1E,MAAM,wBAAwB,CAAC,mBAAmB,aAAa,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CACzF,MAAM,+BAA+B,CAAC,wBAAwB,SAAS,CAAC,CACrE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,qBAAC,OAAD;EAAK,GAAI;EAAoB,WAAW;EAAxC,UAAA,CACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD;IAAM,IAAI;IAAU,UAAA;GAAY,CAAA,GAChC,oBAAC,QAAD;IAAM,eAAY;IAAQ,UAAA;GAAgB,CAAA,CACvC;EACL,CAAA,GAAA,oBAAC,OAAD;GACE,GAAI;GACJ,mBAAiB;GACjB,iBAAe;GACf,iBAAe;GACf,iBAAe;GACf,kBAAgB;GAChB,WAAW;GACN;GACL,MAAK;GAEL,UAAA,oBAAC,OAAD;IACE,eAAY;IACZ,WAAU;IACV,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG;GACvC,CAAA;EACE,CAAA,CACF;;AAET,CAAC;AAED,SAAS,cAAc"}
|
|
@@ -2,7 +2,7 @@ import type { ComponentPropsWithRef } from 'react';
|
|
|
2
2
|
type ProgressbarAriaProps = 'aria-label' | 'aria-labelledby' | 'aria-valuemax' | 'aria-valuemin' | 'aria-valuenow' | 'aria-valuetext';
|
|
3
3
|
export interface ProgressProps extends Omit<ComponentPropsWithRef<'div'>, ProgressbarAriaProps | 'children' | 'role' | 'tabIndex'> {
|
|
4
4
|
label: string;
|
|
5
|
-
rootProps?: Omit<ComponentPropsWithRef<'div'>, 'children'>;
|
|
5
|
+
rootProps?: Omit<ComponentPropsWithRef<'div'>, 'children'> & Record<`data-${string}`, unknown>;
|
|
6
6
|
value: number;
|
|
7
7
|
children?: never;
|
|
8
8
|
role?: never;
|