@aster-ui/prefixed 0.12.50
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/LICENSE +15 -0
- package/README.md +40 -0
- package/dist/chart.d.ts +2 -0
- package/dist/chart.js +5 -0
- package/dist/chart.js.map +1 -0
- package/dist/components/Affix.d.ts +14 -0
- package/dist/components/Affix.js +57 -0
- package/dist/components/Affix.js.map +1 -0
- package/dist/components/Alert.d.ts +10 -0
- package/dist/components/Alert.js +31 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/Anchor.d.ts +55 -0
- package/dist/components/Anchor.js +116 -0
- package/dist/components/Anchor.js.map +1 -0
- package/dist/components/Autocomplete.d.ts +38 -0
- package/dist/components/Autocomplete.js +186 -0
- package/dist/components/Autocomplete.js.map +1 -0
- package/dist/components/Avatar.d.ts +28 -0
- package/dist/components/Avatar.js +65 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/Badge.d.ts +39 -0
- package/dist/components/Badge.js +220 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Breadcrumb.d.ts +32 -0
- package/dist/components/Breadcrumb.js +39 -0
- package/dist/components/Breadcrumb.js.map +1 -0
- package/dist/components/Browser.d.ts +7 -0
- package/dist/components/Browser.js +15 -0
- package/dist/components/Browser.js.map +1 -0
- package/dist/components/Button.d.ts +38 -0
- package/dist/components/Button.js +114 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Card.d.ts +57 -0
- package/dist/components/Card.js +202 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Carousel.d.ts +55 -0
- package/dist/components/Carousel.js +205 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/Cascader.d.ts +71 -0
- package/dist/components/Cascader.js +416 -0
- package/dist/components/Cascader.js.map +1 -0
- package/dist/components/Chart.d.ts +19 -0
- package/dist/components/Chart.js +153 -0
- package/dist/components/Chart.js.map +1 -0
- package/dist/components/Chat.d.ts +11 -0
- package/dist/components/Chat.js +33 -0
- package/dist/components/Chat.js.map +1 -0
- package/dist/components/Checkbox.d.ts +42 -0
- package/dist/components/Checkbox.js +156 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/Code.d.ts +16 -0
- package/dist/components/Code.js +60 -0
- package/dist/components/Code.js.map +1 -0
- package/dist/components/Collapse.d.ts +45 -0
- package/dist/components/Collapse.js +115 -0
- package/dist/components/Collapse.js.map +1 -0
- package/dist/components/ColorPicker.d.ts +16 -0
- package/dist/components/ColorPicker.js +368 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/Command.d.ts +65 -0
- package/dist/components/Command.js +422 -0
- package/dist/components/Command.js.map +1 -0
- package/dist/components/ConfigProvider.d.ts +59 -0
- package/dist/components/ConfigProvider.js +46 -0
- package/dist/components/ConfigProvider.js.map +1 -0
- package/dist/components/Container.d.ts +12 -0
- package/dist/components/Container.js +28 -0
- package/dist/components/Container.js.map +1 -0
- package/dist/components/ContextMenu.d.ts +59 -0
- package/dist/components/ContextMenu.js +206 -0
- package/dist/components/ContextMenu.js.map +1 -0
- package/dist/components/CopyButton.d.ts +37 -0
- package/dist/components/CopyButton.js +123 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/Countdown.d.ts +27 -0
- package/dist/components/Countdown.js +118 -0
- package/dist/components/Countdown.js.map +1 -0
- package/dist/components/DatePicker.d.ts +11 -0
- package/dist/components/DatePicker.js +188 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/Descriptions.d.ts +84 -0
- package/dist/components/Descriptions.js +234 -0
- package/dist/components/Descriptions.js.map +1 -0
- package/dist/components/Diff.d.ts +12 -0
- package/dist/components/Diff.js +22 -0
- package/dist/components/Diff.js.map +1 -0
- package/dist/components/Divider.d.ts +8 -0
- package/dist/components/Divider.js +36 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/Dock.d.ts +38 -0
- package/dist/components/Dock.js +47 -0
- package/dist/components/Dock.js.map +1 -0
- package/dist/components/Drawer.d.ts +81 -0
- package/dist/components/Drawer.js +246 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/Dropdown.d.ts +104 -0
- package/dist/components/Dropdown.js +407 -0
- package/dist/components/Dropdown.js.map +1 -0
- package/dist/components/Empty.d.ts +17 -0
- package/dist/components/Empty.js +145 -0
- package/dist/components/Empty.js.map +1 -0
- package/dist/components/Fieldset.d.ts +21 -0
- package/dist/components/Fieldset.js +21 -0
- package/dist/components/Fieldset.js.map +1 -0
- package/dist/components/FileInput.d.ts +9 -0
- package/dist/components/FileInput.js +38 -0
- package/dist/components/FileInput.js.map +1 -0
- package/dist/components/Filter.d.ts +27 -0
- package/dist/components/Filter.js +57 -0
- package/dist/components/Filter.js.map +1 -0
- package/dist/components/Flex.d.ts +14 -0
- package/dist/components/Flex.js +66 -0
- package/dist/components/Flex.js.map +1 -0
- package/dist/components/FloatButton.d.ts +73 -0
- package/dist/components/FloatButton.js +187 -0
- package/dist/components/FloatButton.js.map +1 -0
- package/dist/components/Footer.d.ts +16 -0
- package/dist/components/Footer.js +22 -0
- package/dist/components/Footer.js.map +1 -0
- package/dist/components/Form.d.ts +107 -0
- package/dist/components/Form.js +277 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/Grid.d.ts +26 -0
- package/dist/components/Grid.js +1090 -0
- package/dist/components/Grid.js.map +1 -0
- package/dist/components/Hero.d.ts +11 -0
- package/dist/components/Hero.js +21 -0
- package/dist/components/Hero.js.map +1 -0
- package/dist/components/HoverGallery.d.ts +10 -0
- package/dist/components/HoverGallery.js +20 -0
- package/dist/components/HoverGallery.js.map +1 -0
- package/dist/components/Image.d.ts +26 -0
- package/dist/components/Image.js +172 -0
- package/dist/components/Image.js.map +1 -0
- package/dist/components/Input.d.ts +36 -0
- package/dist/components/Input.js +263 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/InputNumber.d.ts +19 -0
- package/dist/components/InputNumber.js +158 -0
- package/dist/components/InputNumber.js.map +1 -0
- package/dist/components/Join.d.ts +6 -0
- package/dist/components/Join.js +19 -0
- package/dist/components/Join.js.map +1 -0
- package/dist/components/Kbd.d.ts +9 -0
- package/dist/components/Kbd.js +20 -0
- package/dist/components/Kbd.js.map +1 -0
- package/dist/components/Layout.d.ts +67 -0
- package/dist/components/Layout.js +188 -0
- package/dist/components/Layout.js.map +1 -0
- package/dist/components/List.d.ts +79 -0
- package/dist/components/List.js +128 -0
- package/dist/components/List.js.map +1 -0
- package/dist/components/Loading.d.ts +9 -0
- package/dist/components/Loading.js +40 -0
- package/dist/components/Loading.js.map +1 -0
- package/dist/components/Mask.d.ts +14 -0
- package/dist/components/Mask.js +37 -0
- package/dist/components/Mask.js.map +1 -0
- package/dist/components/Masonry.d.ts +15 -0
- package/dist/components/Masonry.js +84 -0
- package/dist/components/Masonry.js.map +1 -0
- package/dist/components/Mention.d.ts +30 -0
- package/dist/components/Mention.js +179 -0
- package/dist/components/Mention.js.map +1 -0
- package/dist/components/Menu.d.ts +72 -0
- package/dist/components/Menu.js +163 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Message.d.ts +20 -0
- package/dist/components/Message.js +57 -0
- package/dist/components/Message.js.map +1 -0
- package/dist/components/Modal.d.ts +57 -0
- package/dist/components/Modal.js +338 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/MonthCalendar.d.ts +31 -0
- package/dist/components/MonthCalendar.js +205 -0
- package/dist/components/MonthCalendar.js.map +1 -0
- package/dist/components/Navbar.d.ts +22 -0
- package/dist/components/Navbar.js +50 -0
- package/dist/components/Navbar.js.map +1 -0
- package/dist/components/Notification.d.ts +50 -0
- package/dist/components/Notification.js +150 -0
- package/dist/components/Notification.js.map +1 -0
- package/dist/components/OTPInput.d.ts +32 -0
- package/dist/components/OTPInput.js +114 -0
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/components/Pagination.d.ts +18 -0
- package/dist/components/Pagination.js +175 -0
- package/dist/components/Pagination.js.map +1 -0
- package/dist/components/Phone.d.ts +8 -0
- package/dist/components/Phone.js +17 -0
- package/dist/components/Phone.js.map +1 -0
- package/dist/components/Popconfirm.d.ts +17 -0
- package/dist/components/Popconfirm.js +125 -0
- package/dist/components/Popconfirm.js.map +1 -0
- package/dist/components/Popover.d.ts +15 -0
- package/dist/components/Popover.js +89 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.d.ts +5 -0
- package/dist/components/Progress.js +23 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/QRCode.d.ts +19 -0
- package/dist/components/QRCode.js +75 -0
- package/dist/components/QRCode.js.map +1 -0
- package/dist/components/RadialProgress.d.ts +10 -0
- package/dist/components/RadialProgress.js +48 -0
- package/dist/components/RadialProgress.js.map +1 -0
- package/dist/components/Radio.d.ts +26 -0
- package/dist/components/Radio.js +61 -0
- package/dist/components/Radio.js.map +1 -0
- package/dist/components/Range.d.ts +16 -0
- package/dist/components/Range.js +57 -0
- package/dist/components/Range.js.map +1 -0
- package/dist/components/Rating.d.ts +30 -0
- package/dist/components/Rating.js +127 -0
- package/dist/components/Rating.js.map +1 -0
- package/dist/components/Responsive.d.ts +18 -0
- package/dist/components/Responsive.js +17 -0
- package/dist/components/Responsive.js.map +1 -0
- package/dist/components/ResponsiveDrawer.d.ts +34 -0
- package/dist/components/ResponsiveDrawer.js +75 -0
- package/dist/components/ResponsiveDrawer.js.map +1 -0
- package/dist/components/Result.d.ts +12 -0
- package/dist/components/Result.js +110 -0
- package/dist/components/Result.js.map +1 -0
- package/dist/components/RichTextEditor.d.ts +32 -0
- package/dist/components/RichTextEditor.js +335 -0
- package/dist/components/RichTextEditor.js.map +1 -0
- package/dist/components/Segmented.d.ts +37 -0
- package/dist/components/Segmented.js +73 -0
- package/dist/components/Segmented.js.map +1 -0
- package/dist/components/Select.d.ts +18 -0
- package/dist/components/Select.js +78 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Skeleton.d.ts +9 -0
- package/dist/components/Skeleton.js +24 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Space.d.ts +11 -0
- package/dist/components/Space.js +61 -0
- package/dist/components/Space.js.map +1 -0
- package/dist/components/Splitter.d.ts +29 -0
- package/dist/components/Splitter.js +257 -0
- package/dist/components/Splitter.js.map +1 -0
- package/dist/components/Stat.d.ts +18 -0
- package/dist/components/Stat.js +26 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/Status.d.ts +18 -0
- package/dist/components/Status.js +34 -0
- package/dist/components/Status.js.map +1 -0
- package/dist/components/Steps.d.ts +52 -0
- package/dist/components/Steps.js +97 -0
- package/dist/components/Steps.js.map +1 -0
- package/dist/components/Table.d.ts +105 -0
- package/dist/components/Table.js +637 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.d.ts +45 -0
- package/dist/components/Tabs.js +86 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Tag.d.ts +34 -0
- package/dist/components/Tag.js +210 -0
- package/dist/components/Tag.js.map +1 -0
- package/dist/components/TextRotate.d.ts +13 -0
- package/dist/components/TextRotate.js +26 -0
- package/dist/components/TextRotate.js.map +1 -0
- package/dist/components/Textarea.d.ts +9 -0
- package/dist/components/Textarea.js +44 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/ThemeController.d.ts +28 -0
- package/dist/components/ThemeController.js +162 -0
- package/dist/components/ThemeController.js.map +1 -0
- package/dist/components/TimePicker.d.ts +20 -0
- package/dist/components/TimePicker.js +304 -0
- package/dist/components/TimePicker.js.map +1 -0
- package/dist/components/Timeline.d.ts +79 -0
- package/dist/components/Timeline.js +151 -0
- package/dist/components/Timeline.js.map +1 -0
- package/dist/components/Toggle.d.ts +7 -0
- package/dist/components/Toggle.js +39 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/Tooltip.d.ts +9 -0
- package/dist/components/Tooltip.js +37 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/Tour.d.ts +123 -0
- package/dist/components/Tour.js +400 -0
- package/dist/components/Tour.js.map +1 -0
- package/dist/components/Transfer.d.ts +22 -0
- package/dist/components/Transfer.js +214 -0
- package/dist/components/Transfer.js.map +1 -0
- package/dist/components/Tree.d.ts +118 -0
- package/dist/components/Tree.js +444 -0
- package/dist/components/Tree.js.map +1 -0
- package/dist/components/TreeSelect.d.ts +84 -0
- package/dist/components/TreeSelect.js +755 -0
- package/dist/components/TreeSelect.js.map +1 -0
- package/dist/components/Typography.d.ts +53 -0
- package/dist/components/Typography.js +182 -0
- package/dist/components/Typography.js.map +1 -0
- package/dist/components/Upload.d.ts +38 -0
- package/dist/components/Upload.js +261 -0
- package/dist/components/Upload.js.map +1 -0
- package/dist/components/VirtualList.d.ts +29 -0
- package/dist/components/VirtualList.js +69 -0
- package/dist/components/VirtualList.js.map +1 -0
- package/dist/components/Watermark.d.ts +40 -0
- package/dist/components/Watermark.js +129 -0
- package/dist/components/Watermark.js.map +1 -0
- package/dist/components/WeekCalendar.d.ts +35 -0
- package/dist/components/WeekCalendar.js +204 -0
- package/dist/components/WeekCalendar.js.map +1 -0
- package/dist/components/Window.d.ts +7 -0
- package/dist/components/Window.js +10 -0
- package/dist/components/Window.js.map +1 -0
- package/dist/contexts/IconSizeContext.d.ts +2 -0
- package/dist/contexts/IconSizeContext.js +6 -0
- package/dist/contexts/IconSizeContext.js.map +1 -0
- package/dist/editor.d.ts +1 -0
- package/dist/editor.js +5 -0
- package/dist/editor.js.map +1 -0
- package/dist/hooks/useBreakpoint.d.ts +10 -0
- package/dist/hooks/useBreakpoint.js +36 -0
- package/dist/hooks/useBreakpoint.js.map +1 -0
- package/dist/hooks/useClickOutside.d.ts +17 -0
- package/dist/hooks/useClickOutside.js +18 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useClipboard.d.ts +20 -0
- package/dist/hooks/useClipboard.js +17 -0
- package/dist/hooks/useClipboard.js.map +1 -0
- package/dist/hooks/useDebounce.d.ts +18 -0
- package/dist/hooks/useDebounce.js +16 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useDisclosure.d.ts +20 -0
- package/dist/hooks/useDisclosure.js +9 -0
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/hooks/useHover.d.ts +18 -0
- package/dist/hooks/useHover.js +16 -0
- package/dist/hooks/useHover.js.map +1 -0
- package/dist/hooks/useKeyPress.d.ts +40 -0
- package/dist/hooks/useKeyPress.js +34 -0
- package/dist/hooks/useKeyPress.js.map +1 -0
- package/dist/hooks/useLocalStorage.d.ts +12 -0
- package/dist/hooks/useLocalStorage.js +49 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/hooks/usePrevious.d.ts +15 -0
- package/dist/hooks/usePrevious.js +11 -0
- package/dist/hooks/usePrevious.js.map +1 -0
- package/dist/hooks/useWindowSize.d.ts +21 -0
- package/dist/hooks/useWindowSize.js +21 -0
- package/dist/hooks/useWindowSize.js.map +1 -0
- package/dist/index.d.ts +216 -0
- package/dist/index.js +256 -0
- package/dist/index.js.map +1 -0
- package/dist/locale/de-DE.d.ts +3 -0
- package/dist/locale/de-DE.js +100 -0
- package/dist/locale/de-DE.js.map +1 -0
- package/dist/locale/en-CA.d.ts +3 -0
- package/dist/locale/en-CA.js +11 -0
- package/dist/locale/en-CA.js.map +1 -0
- package/dist/locale/en-GB.d.ts +3 -0
- package/dist/locale/en-GB.js +11 -0
- package/dist/locale/en-GB.js.map +1 -0
- package/dist/locale/en-US.d.ts +3 -0
- package/dist/locale/en-US.js +100 -0
- package/dist/locale/en-US.js.map +1 -0
- package/dist/locale/es-ES.d.ts +3 -0
- package/dist/locale/es-ES.js +100 -0
- package/dist/locale/es-ES.js.map +1 -0
- package/dist/locale/fr-FR.d.ts +3 -0
- package/dist/locale/fr-FR.js +100 -0
- package/dist/locale/fr-FR.js.map +1 -0
- package/dist/locale/index.d.ts +107 -0
- package/dist/locale/ja-JP.d.ts +3 -0
- package/dist/locale/ja-JP.js +100 -0
- package/dist/locale/ja-JP.js.map +1 -0
- package/dist/locale/ko-KR.d.ts +3 -0
- package/dist/locale/ko-KR.js +100 -0
- package/dist/locale/ko-KR.js.map +1 -0
- package/dist/locale/pt-BR.d.ts +3 -0
- package/dist/locale/pt-BR.js +100 -0
- package/dist/locale/pt-BR.js.map +1 -0
- package/dist/locale/zh-CN.d.ts +3 -0
- package/dist/locale/zh-CN.js +100 -0
- package/dist/locale/zh-CN.js.map +1 -0
- package/dist/qrcode.d.ts +2 -0
- package/dist/qrcode.js +5 -0
- package/dist/qrcode.js.map +1 -0
- package/dist/virtuallist.d.ts +2 -0
- package/dist/virtuallist.js +5 -0
- package/dist/virtuallist.js.map +1 -0
- package/package.json +130 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { jsxs as P, jsx as i, Fragment as ae } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as L, useState as I, useRef as R, Children as re, isValidElement as ne, useCallback as y, useImperativeHandle as ie, useEffect as ce, cloneElement as ue } from "react";
|
|
3
|
+
const de = "d-carousel", fe = "d-carousel-vertical", me = "d-carousel-item", be = "d-btn", pe = "d-btn-circle", he = "d-btn-sm", T = L(
|
|
4
|
+
({ children: $, className: b = "", "data-testid": g, ...c }, p) => /* @__PURE__ */ i(
|
|
5
|
+
"div",
|
|
6
|
+
{
|
|
7
|
+
ref: p,
|
|
8
|
+
role: "group",
|
|
9
|
+
"aria-roledescription": "slide",
|
|
10
|
+
className: `${me} w-full flex-shrink-0 ${b}`,
|
|
11
|
+
"data-testid": g,
|
|
12
|
+
...c,
|
|
13
|
+
children: $
|
|
14
|
+
}
|
|
15
|
+
)
|
|
16
|
+
);
|
|
17
|
+
T.displayName = "Carousel.Item";
|
|
18
|
+
const z = L(
|
|
19
|
+
({
|
|
20
|
+
children: $,
|
|
21
|
+
activeIndex: b,
|
|
22
|
+
defaultActiveIndex: g = 0,
|
|
23
|
+
autoplay: c = !1,
|
|
24
|
+
autoplaySpeed: p = 3e3,
|
|
25
|
+
speed: h = 500,
|
|
26
|
+
arrows: K = !0,
|
|
27
|
+
dots: d = !0,
|
|
28
|
+
dotPlacement: V = "bottom",
|
|
29
|
+
effect: w = "scrollx",
|
|
30
|
+
infinite: v = !0,
|
|
31
|
+
pauseOnHover: D = !0,
|
|
32
|
+
vertical: a = !1,
|
|
33
|
+
beforeChange: S,
|
|
34
|
+
afterChange: C,
|
|
35
|
+
className: F = "",
|
|
36
|
+
"data-testid": r,
|
|
37
|
+
...G
|
|
38
|
+
}, U) => {
|
|
39
|
+
const x = b !== void 0, [X, Y] = I(g), o = x ? b : X, [A, E] = I(!1), [M, j] = I(!1), _ = R(null), k = R(null), N = re.toArray($).filter(ne), s = N.length, u = y(
|
|
40
|
+
(e, t = !0) => {
|
|
41
|
+
if (M || s === 0) return;
|
|
42
|
+
let l = e;
|
|
43
|
+
v ? l = (e % s + s) % s : l = Math.max(0, Math.min(e, s - 1)), l !== o && (S?.(o, l), t ? (j(!0), setTimeout(() => {
|
|
44
|
+
j(!1), C?.(l);
|
|
45
|
+
}, h)) : C?.(l), x || Y(l));
|
|
46
|
+
},
|
|
47
|
+
[o, s, v, x, S, C, h, M]
|
|
48
|
+
), n = y(() => {
|
|
49
|
+
u(o + 1);
|
|
50
|
+
}, [u, o]), f = y(() => {
|
|
51
|
+
u(o - 1);
|
|
52
|
+
}, [u, o]);
|
|
53
|
+
ie(U, () => ({
|
|
54
|
+
goTo: (e, t = !0) => u(e, t),
|
|
55
|
+
next: n,
|
|
56
|
+
prev: f
|
|
57
|
+
})), ce(() => (c && !A && s > 1 && (k.current = setInterval(() => {
|
|
58
|
+
n();
|
|
59
|
+
}, p)), () => {
|
|
60
|
+
k.current && clearInterval(k.current);
|
|
61
|
+
}), [c, A, p, n, s]);
|
|
62
|
+
const q = y(
|
|
63
|
+
(e) => {
|
|
64
|
+
a ? e.key === "ArrowUp" ? (e.preventDefault(), f()) : e.key === "ArrowDown" && (e.preventDefault(), n()) : e.key === "ArrowLeft" ? (e.preventDefault(), f()) : e.key === "ArrowRight" && (e.preventDefault(), n());
|
|
65
|
+
},
|
|
66
|
+
[a, f, n]
|
|
67
|
+
), H = () => {
|
|
68
|
+
D && c && E(!0);
|
|
69
|
+
}, J = () => {
|
|
70
|
+
D && c && E(!1);
|
|
71
|
+
}, Q = [
|
|
72
|
+
de,
|
|
73
|
+
a ? fe : "",
|
|
74
|
+
F
|
|
75
|
+
].filter(Boolean).join(" "), W = (e) => w === "fade" ? {
|
|
76
|
+
position: e === 0 ? "relative" : "absolute",
|
|
77
|
+
top: 0,
|
|
78
|
+
left: 0,
|
|
79
|
+
opacity: e === o ? 1 : 0,
|
|
80
|
+
transition: `opacity ${h}ms ease-in-out`,
|
|
81
|
+
zIndex: e === o ? 1 : 0
|
|
82
|
+
} : {}, Z = w === "scrollx" ? {
|
|
83
|
+
display: "flex",
|
|
84
|
+
flexDirection: a ? "column" : "row",
|
|
85
|
+
transform: a ? `translateY(-${o * 100}%)` : `translateX(-${o * 100}%)`,
|
|
86
|
+
transition: `transform ${h}ms ease-in-out`,
|
|
87
|
+
height: a ? "100%" : void 0
|
|
88
|
+
} : {
|
|
89
|
+
position: "relative",
|
|
90
|
+
width: "100%",
|
|
91
|
+
height: "100%"
|
|
92
|
+
}, O = () => a ? { height: "100%", flexShrink: 0 } : {}, ee = {
|
|
93
|
+
top: "top-2 left-1/2 -translate-x-1/2 flex-row",
|
|
94
|
+
bottom: "bottom-2 left-1/2 -translate-x-1/2 flex-row",
|
|
95
|
+
start: "left-2 top-1/2 -translate-y-1/2 flex-col",
|
|
96
|
+
end: "right-2 top-1/2 -translate-y-1/2 flex-col"
|
|
97
|
+
}, te = d === !0 || typeof d == "object" && d !== null, oe = typeof d == "object" ? d.className : "", B = ({
|
|
98
|
+
direction: e,
|
|
99
|
+
onClick: t,
|
|
100
|
+
disabled: l
|
|
101
|
+
}) => {
|
|
102
|
+
const m = e === "prev", se = a ? m ? "top-2 left-1/2 -translate-x-1/2" : "bottom-2 left-1/2 -translate-x-1/2" : m ? "left-2 top-1/2 -translate-y-1/2" : "right-2 top-1/2 -translate-y-1/2", le = a ? m ? "▲" : "▼" : m ? "❮" : "❯";
|
|
103
|
+
return /* @__PURE__ */ i(
|
|
104
|
+
"button",
|
|
105
|
+
{
|
|
106
|
+
type: "button",
|
|
107
|
+
onClick: t,
|
|
108
|
+
disabled: l,
|
|
109
|
+
"aria-label": m ? "Previous slide" : "Next slide",
|
|
110
|
+
className: `absolute ${se} ${be} ${pe} ${he} bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`,
|
|
111
|
+
"data-testid": r ? `${r}-${e}` : void 0,
|
|
112
|
+
children: le
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
return /* @__PURE__ */ P(
|
|
117
|
+
"div",
|
|
118
|
+
{
|
|
119
|
+
ref: _,
|
|
120
|
+
role: "region",
|
|
121
|
+
"aria-roledescription": "carousel",
|
|
122
|
+
"aria-label": "Image carousel",
|
|
123
|
+
tabIndex: 0,
|
|
124
|
+
onKeyDown: q,
|
|
125
|
+
onMouseEnter: H,
|
|
126
|
+
onMouseLeave: J,
|
|
127
|
+
className: `relative overflow-hidden focus:outline-none focus-visible:ring-2 focus-visible:ring-primary ${Q}`,
|
|
128
|
+
"data-testid": r,
|
|
129
|
+
"data-active-index": o,
|
|
130
|
+
...G,
|
|
131
|
+
children: [
|
|
132
|
+
/* @__PURE__ */ i(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: w === "fade" ? "relative w-full h-full" : a ? "h-full" : "",
|
|
136
|
+
style: Z,
|
|
137
|
+
"aria-live": "polite",
|
|
138
|
+
children: N.map((e, t) => {
|
|
139
|
+
const l = e;
|
|
140
|
+
return ue(l, {
|
|
141
|
+
key: t,
|
|
142
|
+
"aria-hidden": t !== o,
|
|
143
|
+
"aria-label": `Slide ${t + 1} of ${s}`,
|
|
144
|
+
style: {
|
|
145
|
+
...l.props.style,
|
|
146
|
+
...O(),
|
|
147
|
+
...W(t)
|
|
148
|
+
},
|
|
149
|
+
"data-testid": r ? `${r}-slide-${t}` : void 0
|
|
150
|
+
});
|
|
151
|
+
})
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
K && s > 1 && /* @__PURE__ */ P(ae, { children: [
|
|
155
|
+
/* @__PURE__ */ i(
|
|
156
|
+
B,
|
|
157
|
+
{
|
|
158
|
+
direction: "prev",
|
|
159
|
+
onClick: f,
|
|
160
|
+
disabled: !v && o === 0
|
|
161
|
+
}
|
|
162
|
+
),
|
|
163
|
+
/* @__PURE__ */ i(
|
|
164
|
+
B,
|
|
165
|
+
{
|
|
166
|
+
direction: "next",
|
|
167
|
+
onClick: n,
|
|
168
|
+
disabled: !v && o === s - 1
|
|
169
|
+
}
|
|
170
|
+
)
|
|
171
|
+
] }),
|
|
172
|
+
te && s > 1 && /* @__PURE__ */ i(
|
|
173
|
+
"div",
|
|
174
|
+
{
|
|
175
|
+
className: `absolute flex gap-2 ${ee[V]} ${oe || ""}`,
|
|
176
|
+
role: "tablist",
|
|
177
|
+
"aria-label": "Slide indicators",
|
|
178
|
+
"data-testid": r ? `${r}-dots` : void 0,
|
|
179
|
+
children: N.map((e, t) => /* @__PURE__ */ i(
|
|
180
|
+
"button",
|
|
181
|
+
{
|
|
182
|
+
type: "button",
|
|
183
|
+
role: "tab",
|
|
184
|
+
"aria-selected": t === o,
|
|
185
|
+
"aria-label": `Go to slide ${t + 1}`,
|
|
186
|
+
onClick: () => u(t),
|
|
187
|
+
className: `w-2 h-2 rounded-full transition-all ${t === o ? "bg-primary w-4" : "bg-base-content/30 hover:bg-base-content/50"}`,
|
|
188
|
+
"data-testid": r ? `${r}-dot-${t}` : void 0
|
|
189
|
+
},
|
|
190
|
+
t
|
|
191
|
+
))
|
|
192
|
+
}
|
|
193
|
+
)
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
z.displayName = "Carousel";
|
|
200
|
+
const ve = z;
|
|
201
|
+
ve.Item = T;
|
|
202
|
+
export {
|
|
203
|
+
ve as Carousel
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=Carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../../src/components/Carousel.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n Children,\n cloneElement,\n isValidElement,\n} from 'react'\n\n// DaisyUI classes\nconst dCarousel = 'd-carousel'\nconst dCarouselVertical = 'd-carousel-vertical'\nconst dCarouselItem = 'd-carousel-item'\nconst dBtn = 'd-btn'\nconst dBtnCircle = 'd-btn-circle'\nconst dBtnSm = 'd-btn-sm'\n\nexport type CarouselEffect = 'scrollx' | 'fade'\nexport type CarouselDotPlacement = 'top' | 'bottom' | 'start' | 'end'\n\nexport interface CarouselRef {\n goTo: (index: number, animate?: boolean) => void\n next: () => void\n prev: () => void\n}\n\nexport interface CarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {\n 'data-testid'?: string\n children: React.ReactNode\n}\n\nconst CarouselItemComponent = forwardRef<HTMLDivElement, CarouselItemProps>(\n ({ children, className = '', 'data-testid': testId, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={`${dCarouselItem} w-full flex-shrink-0 ${className}`}\n data-testid={testId}\n {...rest}\n >\n {children}\n </div>\n )\n }\n)\n\nCarouselItemComponent.displayName = 'Carousel.Item'\n\nexport interface CarouselProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Carousel slides */\n children: React.ReactNode\n /** Current slide index (controlled mode) */\n activeIndex?: number\n /** Default slide index (uncontrolled mode) */\n defaultActiveIndex?: number\n /** Auto-advance slides */\n autoplay?: boolean\n /** Autoplay interval in milliseconds */\n autoplaySpeed?: number\n /** Animation duration in milliseconds */\n speed?: number\n /** Show prev/next navigation arrows */\n arrows?: boolean\n /** Show slide indicator dots */\n dots?: boolean | { className?: string }\n /** Position of indicator dots */\n dotPlacement?: CarouselDotPlacement\n /** Transition effect */\n effect?: CarouselEffect\n /** Enable infinite looping */\n infinite?: boolean\n /** Pause autoplay on hover */\n pauseOnHover?: boolean\n /** Vertical carousel orientation */\n vertical?: boolean\n /** Callback before slide change */\n beforeChange?: (current: number, next: number) => void\n /** Callback after slide change */\n afterChange?: (current: number) => void\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nconst CarouselComponent = forwardRef<CarouselRef, CarouselProps>(\n (\n {\n children,\n activeIndex: controlledIndex,\n defaultActiveIndex = 0,\n autoplay = false,\n autoplaySpeed = 3000,\n speed = 500,\n arrows = true,\n dots = true,\n dotPlacement = 'bottom',\n effect = 'scrollx',\n infinite = true,\n pauseOnHover = true,\n vertical = false,\n beforeChange,\n afterChange,\n className = '',\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const isControlled = controlledIndex !== undefined\n const [internalIndex, setInternalIndex] = useState(defaultActiveIndex)\n const currentIndex = isControlled ? controlledIndex : internalIndex\n\n const [isPaused, setIsPaused] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const autoplayRef = useRef<NodeJS.Timeout | null>(null)\n\n const slides = Children.toArray(children).filter(isValidElement)\n const slideCount = slides.length\n\n const goTo = useCallback(\n (index: number, animate = true) => {\n if (isAnimating || slideCount === 0) return\n\n let targetIndex = index\n if (infinite) {\n targetIndex = ((index % slideCount) + slideCount) % slideCount\n } else {\n targetIndex = Math.max(0, Math.min(index, slideCount - 1))\n }\n\n if (targetIndex === currentIndex) return\n\n beforeChange?.(currentIndex, targetIndex)\n\n if (animate) {\n setIsAnimating(true)\n setTimeout(() => {\n setIsAnimating(false)\n afterChange?.(targetIndex)\n }, speed)\n } else {\n afterChange?.(targetIndex)\n }\n\n if (!isControlled) {\n setInternalIndex(targetIndex)\n }\n },\n [currentIndex, slideCount, infinite, isControlled, beforeChange, afterChange, speed, isAnimating]\n )\n\n const next = useCallback(() => {\n goTo(currentIndex + 1)\n }, [goTo, currentIndex])\n\n const prev = useCallback(() => {\n goTo(currentIndex - 1)\n }, [goTo, currentIndex])\n\n // Expose methods via ref\n useImperativeHandle(ref, () => ({\n goTo: (index: number, animate = true) => goTo(index, animate),\n next,\n prev,\n }))\n\n // Autoplay\n useEffect(() => {\n if (autoplay && !isPaused && slideCount > 1) {\n autoplayRef.current = setInterval(() => {\n next()\n }, autoplaySpeed)\n }\n\n return () => {\n if (autoplayRef.current) {\n clearInterval(autoplayRef.current)\n }\n }\n }, [autoplay, isPaused, autoplaySpeed, next, slideCount])\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (vertical) {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n prev()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n next()\n }\n } else {\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n prev()\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n next()\n }\n }\n },\n [vertical, prev, next]\n )\n\n const handleMouseEnter = () => {\n if (pauseOnHover && autoplay) {\n setIsPaused(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (pauseOnHover && autoplay) {\n setIsPaused(false)\n }\n }\n\n // Build carousel classes\n const carouselClasses = [\n dCarousel,\n vertical ? dCarouselVertical : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Slide transform/opacity based on effect\n const getSlideStyle = (index: number): React.CSSProperties => {\n if (effect === 'fade') {\n return {\n position: index === 0 ? 'relative' : 'absolute',\n top: 0,\n left: 0,\n opacity: index === currentIndex ? 1 : 0,\n transition: `opacity ${speed}ms ease-in-out`,\n zIndex: index === currentIndex ? 1 : 0,\n }\n }\n return {}\n }\n\n // Container style for scrollx effect\n const trackStyle: React.CSSProperties =\n effect === 'scrollx'\n ? {\n display: 'flex',\n flexDirection: vertical ? 'column' : 'row',\n transform: vertical\n ? `translateY(-${currentIndex * 100}%)`\n : `translateX(-${currentIndex * 100}%)`,\n transition: `transform ${speed}ms ease-in-out`,\n height: vertical ? '100%' : undefined,\n }\n : {\n position: 'relative',\n width: '100%',\n height: '100%',\n }\n\n // Slide style - ensure proper sizing for vertical/horizontal\n const getSlideContainerStyle = (): React.CSSProperties => {\n if (vertical) {\n return { height: '100%', flexShrink: 0 }\n }\n return {}\n }\n\n // Dots placement classes\n const dotsPlacementClasses: Record<CarouselDotPlacement, string> = {\n top: 'top-2 left-1/2 -translate-x-1/2 flex-row',\n bottom: 'bottom-2 left-1/2 -translate-x-1/2 flex-row',\n start: 'left-2 top-1/2 -translate-y-1/2 flex-col',\n end: 'right-2 top-1/2 -translate-y-1/2 flex-col',\n }\n\n const showDots = dots === true || (typeof dots === 'object' && dots !== null)\n const dotsClassName = typeof dots === 'object' ? dots.className : ''\n\n // Arrow buttons\n const ArrowButton = ({\n direction,\n onClick,\n disabled,\n }: {\n direction: 'prev' | 'next'\n onClick: () => void\n disabled: boolean\n }) => {\n const isPrev = direction === 'prev'\n const positionClass = vertical\n ? isPrev\n ? 'top-2 left-1/2 -translate-x-1/2'\n : 'bottom-2 left-1/2 -translate-x-1/2'\n : isPrev\n ? 'left-2 top-1/2 -translate-y-1/2'\n : 'right-2 top-1/2 -translate-y-1/2'\n\n const arrowIcon = vertical\n ? isPrev\n ? '▲'\n : '▼'\n : isPrev\n ? '❮'\n : '❯'\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n aria-label={isPrev ? 'Previous slide' : 'Next slide'}\n className={`absolute ${positionClass} ${dBtn} ${dBtnCircle} ${dBtnSm} bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`}\n data-testid={testId ? `${testId}-${direction}` : undefined}\n >\n {arrowIcon}\n </button>\n )\n }\n\n return (\n <div\n ref={containerRef}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label=\"Image carousel\"\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={`relative overflow-hidden focus:outline-none focus-visible:ring-2 focus-visible:ring-primary ${carouselClasses}`}\n data-testid={testId}\n data-active-index={currentIndex}\n {...rest}\n >\n {/* Slides track */}\n <div\n className={effect === 'fade' ? 'relative w-full h-full' : vertical ? 'h-full' : ''}\n style={trackStyle}\n aria-live=\"polite\"\n >\n {slides.map((slide, index) => {\n const slideElement = slide as React.ReactElement<CarouselItemProps & { style?: React.CSSProperties }>\n return cloneElement(slideElement, {\n key: index,\n 'aria-hidden': index !== currentIndex,\n 'aria-label': `Slide ${index + 1} of ${slideCount}`,\n style: {\n ...slideElement.props.style,\n ...getSlideContainerStyle(),\n ...getSlideStyle(index),\n },\n 'data-testid': testId ? `${testId}-slide-${index}` : undefined,\n })\n })}\n </div>\n\n {/* Navigation arrows */}\n {arrows && slideCount > 1 && (\n <>\n <ArrowButton\n direction=\"prev\"\n onClick={prev}\n disabled={!infinite && currentIndex === 0}\n />\n <ArrowButton\n direction=\"next\"\n onClick={next}\n disabled={!infinite && currentIndex === slideCount - 1}\n />\n </>\n )}\n\n {/* Dot indicators */}\n {showDots && slideCount > 1 && (\n <div\n className={`absolute flex gap-2 ${dotsPlacementClasses[dotPlacement]} ${dotsClassName || ''}`}\n role=\"tablist\"\n aria-label=\"Slide indicators\"\n data-testid={testId ? `${testId}-dots` : undefined}\n >\n {slides.map((_, index) => (\n <button\n key={index}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === currentIndex}\n aria-label={`Go to slide ${index + 1}`}\n onClick={() => goTo(index)}\n className={`w-2 h-2 rounded-full transition-all ${\n index === currentIndex\n ? 'bg-primary w-4'\n : 'bg-base-content/30 hover:bg-base-content/50'\n }`}\n data-testid={testId ? `${testId}-dot-${index}` : undefined}\n />\n ))}\n </div>\n )}\n </div>\n )\n }\n)\n\nCarouselComponent.displayName = 'Carousel'\n\n// Compound component type\ntype CarouselType = typeof CarouselComponent & {\n Item: typeof CarouselItemComponent\n}\n\nexport const Carousel = CarouselComponent as CarouselType\nCarousel.Item = CarouselItemComponent\n"],"names":["dCarousel","dCarouselVertical","dCarouselItem","dBtn","dBtnCircle","dBtnSm","CarouselItemComponent","forwardRef","children","className","testId","rest","ref","jsx","CarouselComponent","controlledIndex","defaultActiveIndex","autoplay","autoplaySpeed","speed","arrows","dots","dotPlacement","effect","infinite","pauseOnHover","vertical","beforeChange","afterChange","isControlled","internalIndex","setInternalIndex","useState","currentIndex","isPaused","setIsPaused","isAnimating","setIsAnimating","containerRef","useRef","autoplayRef","slides","Children","isValidElement","slideCount","goTo","useCallback","index","animate","targetIndex","next","prev","useImperativeHandle","useEffect","handleKeyDown","handleMouseEnter","handleMouseLeave","carouselClasses","getSlideStyle","trackStyle","getSlideContainerStyle","dotsPlacementClasses","showDots","dotsClassName","ArrowButton","direction","onClick","disabled","isPrev","positionClass","arrowIcon","jsxs","slide","slideElement","cloneElement","Fragment","_","Carousel"],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface CascaderOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
children?: CascaderOption[];
|
|
7
|
+
isLeaf?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type CascaderColor = 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
|
|
10
|
+
export type CascaderSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
11
|
+
export interface CascaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
12
|
+
/** Hierarchical options data */
|
|
13
|
+
options: CascaderOption[];
|
|
14
|
+
/** Controlled selected value path */
|
|
15
|
+
value?: string[];
|
|
16
|
+
/** Default selected value path (uncontrolled) */
|
|
17
|
+
defaultValue?: string[];
|
|
18
|
+
/** Callback when selection changes */
|
|
19
|
+
onChange?: (value: string[], selectedOptions: CascaderOption[]) => void;
|
|
20
|
+
/** Placeholder text */
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
/** Disable the cascader */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** Show clear button */
|
|
25
|
+
allowClear?: boolean;
|
|
26
|
+
/** How to expand sub-menus */
|
|
27
|
+
expandTrigger?: 'click' | 'hover';
|
|
28
|
+
/** Allow selection of any level, not just leaf nodes */
|
|
29
|
+
changeOnSelect?: boolean;
|
|
30
|
+
/** Custom display render function */
|
|
31
|
+
displayRender?: (labels: React.ReactNode[], selectedOptions: CascaderOption[]) => React.ReactNode;
|
|
32
|
+
/** Input size */
|
|
33
|
+
size?: CascaderSize;
|
|
34
|
+
/** Focus ring color */
|
|
35
|
+
color?: CascaderColor;
|
|
36
|
+
/** Validation status */
|
|
37
|
+
status?: 'error' | 'warning';
|
|
38
|
+
/** Enable search/filter functionality */
|
|
39
|
+
showSearch?: boolean | {
|
|
40
|
+
filter?: (inputValue: string, path: CascaderOption[]) => boolean;
|
|
41
|
+
render?: (inputValue: string, path: CascaderOption[]) => React.ReactNode;
|
|
42
|
+
matchInputWidth?: boolean;
|
|
43
|
+
};
|
|
44
|
+
/** Content when no results found */
|
|
45
|
+
notFoundContent?: React.ReactNode;
|
|
46
|
+
/** Async data loading function */
|
|
47
|
+
loadData?: (selectedOptions: CascaderOption[]) => Promise<void>;
|
|
48
|
+
/** Custom field names for data mapping */
|
|
49
|
+
fieldNames?: {
|
|
50
|
+
label?: string;
|
|
51
|
+
value?: string;
|
|
52
|
+
children?: string;
|
|
53
|
+
};
|
|
54
|
+
/** Controlled open state */
|
|
55
|
+
open?: boolean;
|
|
56
|
+
/** Callback when dropdown visibility changes */
|
|
57
|
+
onDropdownVisibleChange?: (open: boolean) => void;
|
|
58
|
+
/** Class name for dropdown */
|
|
59
|
+
popupClassName?: string;
|
|
60
|
+
/** Custom dropdown render wrapper */
|
|
61
|
+
dropdownRender?: (menu: React.ReactNode) => React.ReactNode;
|
|
62
|
+
/** Multiple selection mode */
|
|
63
|
+
multiple?: boolean;
|
|
64
|
+
/** Max tags to show in multiple mode */
|
|
65
|
+
maxTagCount?: number | 'responsive';
|
|
66
|
+
/** Accessible label */
|
|
67
|
+
'aria-label'?: string;
|
|
68
|
+
/** Test ID for the component */
|
|
69
|
+
'data-testid'?: string;
|
|
70
|
+
}
|
|
71
|
+
export declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<HTMLDivElement>>;
|