@gunkin/uiify 0.0.22-alpha → 0.0.25-alpha
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/agents/index.md +1 -1
- package/agents/reference/components/accordion.md +23 -3
- package/agents/reference/components/alert-modal.md +25 -7
- package/agents/reference/components/alert.md +13 -1
- package/agents/reference/components/aspect-ratio.md +12 -0
- package/agents/reference/components/avatar.md +14 -0
- package/agents/reference/components/badge.md +4 -0
- package/agents/reference/components/breadcrumb.md +25 -1
- package/agents/reference/components/button.md +4 -0
- package/agents/reference/components/candle-chart.md +54 -2
- package/agents/reference/components/card.md +4 -0
- package/agents/reference/components/carousel.md +34 -1
- package/agents/reference/components/checkbox.md +7 -1
- package/agents/reference/components/collapsible.md +21 -3
- package/agents/reference/components/color-picker.md +22 -2
- package/agents/reference/components/combobox.md +24 -9
- package/agents/reference/components/context-menu.md +41 -5
- package/agents/reference/components/date-picker.md +4 -0
- package/agents/reference/components/description-list.md +4 -0
- package/agents/reference/components/drawer.md +35 -5
- package/agents/reference/components/dropdown-menu.md +8 -3
- package/agents/reference/components/empty.md +4 -0
- package/agents/reference/components/field.md +8 -3
- package/agents/reference/components/fieldset.md +4 -0
- package/agents/reference/components/file-upload.md +4 -0
- package/agents/reference/components/form-error-summary.md +15 -1
- package/agents/reference/components/form.md +4 -0
- package/agents/reference/components/header.md +4 -0
- package/agents/reference/components/hover-card.md +4 -0
- package/agents/reference/components/input-group.md +4 -0
- package/agents/reference/components/input.md +4 -0
- package/agents/reference/components/item.md +4 -0
- package/agents/reference/components/line-chart.md +45 -2
- package/agents/reference/components/modal.md +27 -3
- package/agents/reference/components/number-field.md +4 -0
- package/agents/reference/components/otp-input.md +4 -0
- package/agents/reference/components/pagination.md +17 -1
- package/agents/reference/components/popup.md +5 -0
- package/agents/reference/components/progress.md +4 -0
- package/agents/reference/components/radio-group.md +13 -2
- package/agents/reference/components/rating.md +13 -2
- package/agents/reference/components/segmented-control.md +13 -3
- package/agents/reference/components/select.md +5 -0
- package/agents/reference/components/skeleton.md +4 -0
- package/agents/reference/components/slider.md +17 -1
- package/agents/reference/components/spinner.md +14 -1
- package/agents/reference/components/switch.md +4 -0
- package/agents/reference/components/table-of-contents.md +4 -0
- package/agents/reference/components/table.md +20 -0
- package/agents/reference/components/tabs.md +26 -3
- package/agents/reference/components/tags-input.md +26 -1
- package/agents/reference/components/textarea.md +4 -0
- package/agents/reference/components/toast.md +59 -10
- package/agents/reference/components/toggle-group.md +10 -3
- package/agents/reference/components/toggle.md +20 -3
- package/agents/reference/components/toolbar.md +8 -4
- package/agents/reference/components/tooltip.md +4 -0
- package/agents/reference/components/virtual-scroll.md +35 -2
- package/agents/reference/elements/choice.md +21 -8
- package/agents/reference/elements/details.md +1 -1
- package/agents/reference/elements/dialog.md +1 -1
- package/agents/reference/elements/invoker.md +1 -1
- package/agents/reference/elements/popover.md +1 -1
- package/dist/components/accordion/Accordion.d.ts +1 -1
- package/dist/components/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/accordion/Accordion.js +62 -15
- package/dist/components/accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/index.d.ts +1 -1
- package/dist/components/accordion/index.d.ts.map +1 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/types.d.ts +23 -2
- package/dist/components/accordion/types.d.ts.map +1 -1
- package/dist/components/alert/Alert.d.ts.map +1 -1
- package/dist/components/alert/Alert.js +11 -1
- package/dist/components/alert/Alert.js.map +1 -1
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/alert/index.d.ts.map +1 -1
- package/dist/components/alert/index.js.map +1 -1
- package/dist/components/alert/types.d.ts +11 -1
- package/dist/components/alert/types.d.ts.map +1 -1
- package/dist/components/alert-modal/AlertModal.d.ts +1 -1
- package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
- package/dist/components/alert-modal/AlertModal.js +139 -20
- package/dist/components/alert-modal/AlertModal.js.map +1 -1
- package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
- package/dist/components/alert-modal/AlertModalParts.js +37 -4
- package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
- package/dist/components/alert-modal/index.d.ts +1 -1
- package/dist/components/alert-modal/index.d.ts.map +1 -1
- package/dist/components/alert-modal/index.js.map +1 -1
- package/dist/components/alert-modal/types.d.ts +40 -6
- package/dist/components/alert-modal/types.d.ts.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js +10 -2
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/aspect-ratio/types.d.ts +10 -1
- package/dist/components/aspect-ratio/types.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +19 -2
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/types.d.ts +19 -1
- package/dist/components/avatar/types.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.js +118 -26
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/index.d.ts +1 -1
- package/dist/components/breadcrumb/index.d.ts.map +1 -1
- package/dist/components/breadcrumb/index.js.map +1 -1
- package/dist/components/breadcrumb/types.d.ts +40 -1
- package/dist/components/breadcrumb/types.d.ts.map +1 -1
- package/dist/components/candle-chart/CandleChart.d.ts +1 -1
- package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
- package/dist/components/candle-chart/CandleChart.js +269 -119
- package/dist/components/candle-chart/CandleChart.js.map +1 -1
- package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
- package/dist/components/candle-chart/client/CandleChartClient.js +21 -1
- package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
- package/dist/components/candle-chart/client/index.d.ts +1 -1
- package/dist/components/candle-chart/client/index.d.ts.map +1 -1
- package/dist/components/candle-chart/client/index.js.map +1 -1
- package/dist/components/candle-chart/index.d.ts +1 -1
- package/dist/components/candle-chart/index.d.ts.map +1 -1
- package/dist/components/candle-chart/index.js.map +1 -1
- package/dist/components/candle-chart/types.d.ts +129 -1
- package/dist/components/candle-chart/types.d.ts.map +1 -1
- package/dist/components/carousel/Carousel.d.ts +2 -2
- package/dist/components/carousel/Carousel.d.ts.map +1 -1
- package/dist/components/carousel/Carousel.js +2 -1
- package/dist/components/carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
- package/dist/components/carousel/CarouselMarkup.js +137 -22
- package/dist/components/carousel/CarouselMarkup.js.map +1 -1
- package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
- package/dist/components/carousel/client/CarouselClient.js +3 -2
- package/dist/components/carousel/client/CarouselClient.js.map +1 -1
- package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
- package/dist/components/carousel/client/carousel-controls.js +2 -2
- package/dist/components/carousel/client/carousel-controls.js.map +1 -1
- package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
- package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
- package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
- package/dist/components/carousel/index.d.ts +1 -1
- package/dist/components/carousel/index.d.ts.map +1 -1
- package/dist/components/carousel/index.js.map +1 -1
- package/dist/components/carousel/types.d.ts +85 -2
- package/dist/components/carousel/types.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts +6 -1
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.js +6 -1
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +1 -1
- package/dist/components/checkbox/index.d.ts.map +1 -1
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/types.d.ts +3 -0
- package/dist/components/checkbox/types.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.d.ts +1 -1
- package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.js +35 -4
- package/dist/components/collapsible/Collapsible.js.map +1 -1
- package/dist/components/collapsible/index.d.ts +1 -1
- package/dist/components/collapsible/index.d.ts.map +1 -1
- package/dist/components/collapsible/index.js.map +1 -1
- package/dist/components/collapsible/types.d.ts +25 -3
- package/dist/components/collapsible/types.d.ts.map +1 -1
- package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/color-picker/ColorPicker.js +165 -49
- package/dist/components/color-picker/ColorPicker.js.map +1 -1
- package/dist/components/color-picker/index.d.ts +1 -1
- package/dist/components/color-picker/index.d.ts.map +1 -1
- package/dist/components/color-picker/index.js.map +1 -1
- package/dist/components/color-picker/types.d.ts +37 -0
- package/dist/components/color-picker/types.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +44 -25
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/combobox/index.d.ts.map +1 -1
- package/dist/components/combobox/index.js.map +1 -1
- package/dist/components/combobox/types.d.ts +29 -4
- package/dist/components/combobox/types.d.ts.map +1 -1
- package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
- package/dist/components/context-menu/ContextMenu.js +48 -11
- package/dist/components/context-menu/ContextMenu.js.map +1 -1
- package/dist/components/context-menu/index.d.ts +1 -1
- package/dist/components/context-menu/index.d.ts.map +1 -1
- package/dist/components/context-menu/index.js.map +1 -1
- package/dist/components/context-menu/types.d.ts +35 -9
- package/dist/components/context-menu/types.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.js +5 -1
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/DrawerNative.d.ts +1 -1
- package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
- package/dist/components/drawer/DrawerNative.js +254 -44
- package/dist/components/drawer/DrawerNative.js.map +1 -1
- package/dist/components/drawer/index.d.ts +1 -1
- package/dist/components/drawer/index.d.ts.map +1 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/types.d.ts +31 -6
- package/dist/components/drawer/types.d.ts.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.js +8 -2
- package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenuBar.js +47 -29
- package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
- package/dist/components/dropdown-menu/types.d.ts +7 -5
- package/dist/components/dropdown-menu/types.d.ts.map +1 -1
- package/dist/components/field/types.d.ts +4 -4
- package/dist/components/field/types.d.ts.map +1 -1
- package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
- package/dist/components/form-error-summary/FormErrorSummary.js +35 -3
- package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
- package/dist/components/form-error-summary/index.d.ts +1 -1
- package/dist/components/form-error-summary/index.d.ts.map +1 -1
- package/dist/components/form-error-summary/index.js.map +1 -1
- package/dist/components/form-error-summary/types.d.ts +20 -1
- package/dist/components/form-error-summary/types.d.ts.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.js +61 -11
- package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
- package/dist/components/internal/choice-family/types.d.ts +51 -1
- package/dist/components/internal/choice-family/types.d.ts.map +1 -1
- package/dist/components/internal/menu/types.d.ts +1 -0
- package/dist/components/internal/menu/types.d.ts.map +1 -1
- package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
- package/dist/components/internal/menu/use-menu-surface.js +2 -1
- package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
- package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
- package/dist/components/internal/native-check-control/NativeCheckControl.js +35 -3
- package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
- package/dist/components/internal/native-check-control/types.d.ts +21 -1
- package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
- package/dist/components/line-chart/LineChart.d.ts +1 -1
- package/dist/components/line-chart/LineChart.d.ts.map +1 -1
- package/dist/components/line-chart/LineChart.js +260 -79
- package/dist/components/line-chart/LineChart.js.map +1 -1
- package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
- package/dist/components/line-chart/client/LineChartClient.js +21 -1
- package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
- package/dist/components/line-chart/client/index.d.ts +1 -1
- package/dist/components/line-chart/client/index.d.ts.map +1 -1
- package/dist/components/line-chart/client/index.js.map +1 -1
- package/dist/components/line-chart/index.d.ts +1 -1
- package/dist/components/line-chart/index.d.ts.map +1 -1
- package/dist/components/line-chart/index.js.map +1 -1
- package/dist/components/line-chart/types.d.ts +113 -1
- package/dist/components/line-chart/types.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +118 -43
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/index.d.ts +1 -1
- package/dist/components/modal/index.d.ts.map +1 -1
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/modal/types.d.ts +24 -2
- package/dist/components/modal/types.d.ts.map +1 -1
- package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
- package/dist/components/otp-input/OtpInput.js +4 -2
- package/dist/components/otp-input/OtpInput.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +172 -55
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/index.d.ts +1 -1
- package/dist/components/pagination/index.d.ts.map +1 -1
- package/dist/components/pagination/index.js.map +1 -1
- package/dist/components/pagination/types.d.ts +33 -1
- package/dist/components/pagination/types.d.ts.map +1 -1
- package/dist/components/radio-group/RadioGroup.d.ts +1 -1
- package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/components/radio-group/RadioGroup.js +5 -1
- package/dist/components/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/radio-group/index.d.ts +1 -1
- package/dist/components/radio-group/index.d.ts.map +1 -1
- package/dist/components/radio-group/index.js.map +1 -1
- package/dist/components/radio-group/types.d.ts +4 -2
- package/dist/components/radio-group/types.d.ts.map +1 -1
- package/dist/components/rating/Rating.d.ts +1 -1
- package/dist/components/rating/Rating.d.ts.map +1 -1
- package/dist/components/rating/Rating.js +5 -1
- package/dist/components/rating/Rating.js.map +1 -1
- package/dist/components/rating/client/RatingClient.d.ts +1 -1
- package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
- package/dist/components/rating/client/RatingClient.js +5 -1
- package/dist/components/rating/client/RatingClient.js.map +1 -1
- package/dist/components/rating/index.d.ts +1 -1
- package/dist/components/rating/index.d.ts.map +1 -1
- package/dist/components/rating/index.js.map +1 -1
- package/dist/components/rating/types.d.ts +12 -1
- package/dist/components/rating/types.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
- package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/components/segmented-control/SegmentedControl.js +5 -1
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.js +5 -1
- package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
- package/dist/components/segmented-control/index.d.ts +1 -1
- package/dist/components/segmented-control/index.d.ts.map +1 -1
- package/dist/components/segmented-control/index.js.map +1 -1
- package/dist/components/segmented-control/types.d.ts +4 -4
- package/dist/components/segmented-control/types.d.ts.map +1 -1
- package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
- package/dist/components/slider/client/SliderClient.js +102 -20
- package/dist/components/slider/client/SliderClient.js.map +1 -1
- package/dist/components/slider/client/index.d.ts +1 -1
- package/dist/components/slider/client/index.d.ts.map +1 -1
- package/dist/components/slider/client/index.js.map +1 -1
- package/dist/components/slider/types.d.ts +46 -1
- package/dist/components/slider/types.d.ts.map +1 -1
- package/dist/components/spinner/Spinner.d.ts.map +1 -1
- package/dist/components/spinner/Spinner.js +19 -3
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/spinner/index.d.ts +1 -1
- package/dist/components/spinner/index.d.ts.map +1 -1
- package/dist/components/spinner/index.js.map +1 -1
- package/dist/components/spinner/types.d.ts +11 -1
- package/dist/components/spinner/types.d.ts.map +1 -1
- package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
- package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
- package/dist/components/table/client/TableColumnHeader.js +24 -2
- package/dist/components/table/client/TableColumnHeader.js.map +1 -1
- package/dist/components/table/client/TableSelection.d.ts +3 -3
- package/dist/components/table/client/TableSelection.d.ts.map +1 -1
- package/dist/components/table/client/TableSelection.js +6 -4
- package/dist/components/table/client/TableSelection.js.map +1 -1
- package/dist/components/table/client.d.ts +1 -1
- package/dist/components/table/client.d.ts.map +1 -1
- package/dist/components/table/client.js.map +1 -1
- package/dist/components/table/types.d.ts +17 -0
- package/dist/components/table/types.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +45 -1
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/index.d.ts.map +1 -1
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/types.d.ts +29 -3
- package/dist/components/tabs/types.d.ts.map +1 -1
- package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
- package/dist/components/tags-input/TagsInput.js +54 -9
- package/dist/components/tags-input/TagsInput.js.map +1 -1
- package/dist/components/tags-input/index.d.ts +1 -1
- package/dist/components/tags-input/index.d.ts.map +1 -1
- package/dist/components/tags-input/index.js.map +1 -1
- package/dist/components/tags-input/types.d.ts +27 -4
- package/dist/components/tags-input/types.d.ts.map +1 -1
- package/dist/components/toast/Toast.d.ts +1 -1
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/Toast.js +123 -35
- package/dist/components/toast/Toast.js.map +1 -1
- package/dist/components/toast/ToastElements.d.ts.map +1 -1
- package/dist/components/toast/ToastElements.js +73 -12
- package/dist/components/toast/ToastElements.js.map +1 -1
- package/dist/components/toast/index.d.ts +1 -1
- package/dist/components/toast/index.d.ts.map +1 -1
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/toast/types.d.ts +49 -16
- package/dist/components/toast/types.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.d.ts +1 -1
- package/dist/components/toggle/Toggle.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.js +63 -29
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/index.d.ts +1 -1
- package/dist/components/toggle/index.d.ts.map +1 -1
- package/dist/components/toggle/index.js.map +1 -1
- package/dist/components/toggle/types.d.ts +31 -3
- package/dist/components/toggle/types.d.ts.map +1 -1
- package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
- package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
- package/dist/components/toggle-group/ToggleGroup.js +5 -1
- package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
- package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
- package/dist/components/toggle-group/index.d.ts +1 -1
- package/dist/components/toggle-group/index.d.ts.map +1 -1
- package/dist/components/toggle-group/index.js.map +1 -1
- package/dist/components/toggle-group/types.d.ts +4 -4
- package/dist/components/toggle-group/types.d.ts.map +1 -1
- package/dist/components/toolbar/Toolbar.d.ts +3 -12
- package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
- package/dist/components/toolbar/Toolbar.js +22 -2
- package/dist/components/toolbar/Toolbar.js.map +1 -1
- package/dist/components/toolbar/types.d.ts +5 -5
- package/dist/components/toolbar/types.d.ts.map +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.js +53 -20
- package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
- package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
- package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
- package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
- package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
- package/dist/components/virtual-scroll/index.d.ts +1 -1
- package/dist/components/virtual-scroll/index.d.ts.map +1 -1
- package/dist/components/virtual-scroll/index.js.map +1 -1
- package/dist/components/virtual-scroll/types.d.ts +35 -2
- package/dist/components/virtual-scroll/types.d.ts.map +1 -1
- package/dist/components/virtual-scroll/types.js.map +1 -1
- package/dist/core/slot-props.d.ts +19 -0
- package/dist/core/slot-props.d.ts.map +1 -0
- package/dist/core/slot-props.js +59 -0
- package/dist/core/slot-props.js.map +1 -0
- package/dist/core/use-popover.d.ts +2 -1
- package/dist/core/use-popover.d.ts.map +1 -1
- package/dist/core/use-popover.js +3 -1
- package/dist/core/use-popover.js.map +1 -1
- package/dist/elements/choice/Choice.d.ts.map +1 -1
- package/dist/elements/choice/Choice.js +47 -7
- package/dist/elements/choice/Choice.js.map +1 -1
- package/dist/elements/choice/index.d.ts +1 -1
- package/dist/elements/choice/index.d.ts.map +1 -1
- package/dist/elements/choice/index.js.map +1 -1
- package/dist/elements/choice/types.d.ts +25 -10
- package/dist/elements/choice/types.d.ts.map +1 -1
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/tailwind.css +17 -16
- package/package.json +1 -1
- package/skills/uiify/SKILL.md +1 -1
- package/skills/uiify/references/elements/accordion.md +1 -1
- package/skills/uiify/references/elements/breadcrumb.md +1 -0
- package/skills/uiify/references/elements/checkbox.md +1 -1
- package/skills/uiify/references/elements/color-picker.md +1 -1
- package/skills/uiify/references/elements/combobox.md +1 -1
- package/skills/uiify/references/elements/context-menu.md +1 -1
- package/skills/uiify/references/elements/dropdown-menu.md +1 -1
- package/skills/uiify/references/elements/form-error-summary.md +5 -0
- package/skills/uiify/references/elements/pagination.md +1 -1
- package/skills/uiify/references/elements/radio-group.md +1 -0
- package/skills/uiify/references/elements/rating.md +1 -1
- package/skills/uiify/references/elements/segmented-control.md +1 -0
- package/skills/uiify/references/elements/spinner.md +1 -1
- package/skills/uiify/references/elements/table.md +1 -1
- package/skills/uiify/references/elements/tabs.md +1 -1
- package/skills/uiify/references/elements/tags-input.md +1 -1
- package/skills/uiify/references/elements/toast.md +1 -0
- package/skills/uiify/references/elements/toggle-group.md +1 -0
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
2
|
+
import type { ConsumerDataAttributes } from "../../../core/slot-props.js";
|
|
2
3
|
export type CheckedState = boolean | "indeterminate";
|
|
4
|
+
type NativeCheckControlInputOwnedAttributes = {
|
|
5
|
+
readonly "aria-checked"?: never;
|
|
6
|
+
readonly "aria-label"?: never;
|
|
7
|
+
readonly "aria-labelledby"?: never;
|
|
8
|
+
readonly "data-disabled"?: never;
|
|
9
|
+
readonly "data-part"?: never;
|
|
10
|
+
readonly "data-state"?: never;
|
|
11
|
+
readonly "data-uiify-checkbox"?: never;
|
|
12
|
+
};
|
|
13
|
+
type NativeCheckControlLabelOwnedAttributes = {
|
|
14
|
+
readonly "data-uiify-checkbox"?: never;
|
|
15
|
+
readonly id?: never;
|
|
16
|
+
};
|
|
17
|
+
export interface NativeCheckControlSlotProps {
|
|
18
|
+
readonly input?: Omit<ComponentPropsWithRef<"input">, "aria-checked" | "aria-label" | "aria-labelledby" | "checked" | "children" | "defaultChecked" | "defaultValue" | "disabled" | "dangerouslySetInnerHTML" | "id" | "name" | "type" | "value" | "data-disabled" | "data-part" | "data-state" | "data-uiify-checkbox"> & ConsumerDataAttributes & NativeCheckControlInputOwnedAttributes;
|
|
19
|
+
readonly label?: Omit<ComponentPropsWithRef<"label">, "children" | "dangerouslySetInnerHTML" | "htmlFor" | "id" | "data-uiify-checkbox"> & ConsumerDataAttributes & NativeCheckControlLabelOwnedAttributes;
|
|
20
|
+
}
|
|
3
21
|
export interface NativeCheckControlProps {
|
|
4
22
|
readonly id: string;
|
|
5
23
|
readonly label?: ReactNode;
|
|
@@ -10,6 +28,8 @@ export interface NativeCheckControlProps {
|
|
|
10
28
|
readonly value?: string;
|
|
11
29
|
readonly className?: string;
|
|
12
30
|
readonly onCheckedChange?: (checked: boolean) => void;
|
|
31
|
+
readonly slotProps?: NativeCheckControlSlotProps;
|
|
13
32
|
readonly "aria-label"?: string;
|
|
14
33
|
}
|
|
34
|
+
export {};
|
|
15
35
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,KAAK,sCAAsC,GAAG;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC;CACxC,CAAC;AAEF,KAAK,sCAAsC,GAAG;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACnB,qBAAqB,CAAC,OAAO,CAAC,EAC5B,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,SAAS,GACT,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,yBAAyB,GACzB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,eAAe,GACf,WAAW,GACX,YAAY,GACZ,qBAAqB,CACxB,GACC,sBAAsB,GACtB,sCAAsC,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACnB,qBAAqB,CAAC,OAAO,CAAC,EAC9B,UAAU,GAAG,yBAAyB,GAAG,SAAS,GAAG,IAAI,GAAG,qBAAqB,CAClF,GACC,sBAAsB,GACtB,sCAAsC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ElementType, ReactElement } from "react";
|
|
2
2
|
import type { LineChartPointProps, LineChartProps } from "./types.js";
|
|
3
3
|
/** One point and the segment from its predecessor; shared by the static list and virtual rows. */
|
|
4
|
-
export declare function LineChartPoint({ as: Tag, point, previousPoint, index, count, min, max, interactive, isActive, isSelected, cursorY, onPointClick, onPointPointerLeave, onPointPointerMove, }: LineChartPointProps): ReactElement;
|
|
4
|
+
export declare function LineChartPoint({ as: Tag, point, previousPoint, index, count, min, max, interactive, isActive, isSelected, cursorY, onPointClick, onPointPointerLeave, onPointPointerMove, slotProps, }: LineChartPointProps): ReactElement;
|
|
5
5
|
export declare namespace LineChartPoint {
|
|
6
6
|
var displayName: string;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,YAAY,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,YAAY,EAAO,MAAM,OAAO,CAAC;AAiBzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAyC1F,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EAAE,GAAG,EACP,KAAK,EACL,aAAa,EACb,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,WAAW,EACX,QAAQ,EACR,UAAU,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACV,EAAE,mBAAmB,GAAG,YAAY,CAmEpC;yBAnFe,cAAc;;;AAsF9B,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC1D,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CAqOrB;yBAvOe,SAAS"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useRenderElement } from "@gunkin/uiify/core/render";
|
|
3
|
+
import { mergeRepeatedSlotProps, omitProps } from "../../core/slot-props.js";
|
|
4
|
+
import { assignRef } from "../../hooks/utils/assign-ref.js";
|
|
3
5
|
import {
|
|
4
6
|
axisLabelsFor,
|
|
5
7
|
axisStyle,
|
|
@@ -13,6 +15,31 @@ import {
|
|
|
13
15
|
slotCrosshairStyle,
|
|
14
16
|
valueLabelsFor
|
|
15
17
|
} from "./line-chart-geometry.js";
|
|
18
|
+
function getPartProps(props, protectedKeys = []) {
|
|
19
|
+
return omitProps(props, ["children", "dangerouslySetInnerHTML", ...protectedKeys]);
|
|
20
|
+
}
|
|
21
|
+
function getIndexedPartProps(props, index, protectedKeys = []) {
|
|
22
|
+
const { byItemIndex, ...common } = props ?? {};
|
|
23
|
+
const merged = mergeRepeatedSlotProps(common, byItemIndex?.[index]);
|
|
24
|
+
return omitProps(merged, [
|
|
25
|
+
"children",
|
|
26
|
+
"dangerouslySetInnerHTML",
|
|
27
|
+
"byItemIndex",
|
|
28
|
+
...protectedKeys
|
|
29
|
+
]);
|
|
30
|
+
}
|
|
31
|
+
function withGeneratedStyle(props, generatedStyle) {
|
|
32
|
+
return { ...props, style: { ...props.style, ...generatedStyle } };
|
|
33
|
+
}
|
|
34
|
+
function forwardPointRef(ref) {
|
|
35
|
+
return (element) => {
|
|
36
|
+
const cleanup = assignRef(ref, element);
|
|
37
|
+
if (typeof cleanup === "function") return cleanup;
|
|
38
|
+
if (ref && typeof ref !== "function" && element !== null) {
|
|
39
|
+
return () => assignRef(ref, null);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
16
43
|
function LineChartPoint({
|
|
17
44
|
as: Tag,
|
|
18
45
|
point,
|
|
@@ -27,10 +54,29 @@ function LineChartPoint({
|
|
|
27
54
|
cursorY,
|
|
28
55
|
onPointClick,
|
|
29
56
|
onPointPointerLeave,
|
|
30
|
-
onPointPointerMove
|
|
57
|
+
onPointPointerMove,
|
|
58
|
+
slotProps
|
|
31
59
|
}) {
|
|
32
60
|
const geometry = geometryFor(point, previousPoint, index, count, min, max);
|
|
61
|
+
const pointSlotProps = getIndexedPartProps(slotProps?.point, index, [
|
|
62
|
+
"aria-hidden",
|
|
63
|
+
"data-crosshair-active",
|
|
64
|
+
"data-first",
|
|
65
|
+
"data-part",
|
|
66
|
+
"data-point-selected",
|
|
67
|
+
"data-time",
|
|
68
|
+
"data-trend"
|
|
69
|
+
]);
|
|
70
|
+
const { ref: pointRef, ...pointProps } = pointSlotProps;
|
|
71
|
+
const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index, [
|
|
72
|
+
"aria-label",
|
|
73
|
+
"aria-pressed",
|
|
74
|
+
"data-part",
|
|
75
|
+
"type"
|
|
76
|
+
]);
|
|
33
77
|
const handleKeyDown = (event) => {
|
|
78
|
+
pointHitSlotProps.onKeyDown?.(event);
|
|
79
|
+
if (event.defaultPrevented) return;
|
|
34
80
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
35
81
|
event.preventDefault();
|
|
36
82
|
onPointClick?.(index);
|
|
@@ -38,6 +84,8 @@ function LineChartPoint({
|
|
|
38
84
|
return /* @__PURE__ */ jsx(
|
|
39
85
|
Tag,
|
|
40
86
|
{
|
|
87
|
+
...pointProps,
|
|
88
|
+
...pointRef ? { ref: forwardPointRef(pointRef) } : {},
|
|
41
89
|
"aria-hidden": interactive ? void 0 : true,
|
|
42
90
|
"data-part": "point",
|
|
43
91
|
"data-first": previousPoint === void 0 ? "" : void 0,
|
|
@@ -45,18 +93,32 @@ function LineChartPoint({
|
|
|
45
93
|
"data-point-selected": interactive && isSelected ? "" : void 0,
|
|
46
94
|
"data-time": String(point.time),
|
|
47
95
|
"data-trend": geometry.trend,
|
|
48
|
-
style:
|
|
96
|
+
style: {
|
|
97
|
+
...pointSlotProps.style,
|
|
98
|
+
...pointStyle(geometry, isActive ? cursorY : void 0)
|
|
99
|
+
},
|
|
49
100
|
children: interactive ? /* @__PURE__ */ jsx(
|
|
50
101
|
"button",
|
|
51
102
|
{
|
|
103
|
+
...pointHitSlotProps,
|
|
52
104
|
"data-part": "point-hit",
|
|
53
105
|
type: "button",
|
|
54
106
|
"aria-label": `Point ${String(point.time)}`,
|
|
55
107
|
"aria-pressed": isSelected,
|
|
56
|
-
onClick: () =>
|
|
108
|
+
onClick: (event) => {
|
|
109
|
+
pointHitSlotProps.onClick?.(event);
|
|
110
|
+
if (!event.defaultPrevented) onPointClick?.(index);
|
|
111
|
+
},
|
|
57
112
|
onKeyDown: handleKeyDown,
|
|
58
|
-
onPointerLeave:
|
|
59
|
-
|
|
113
|
+
onPointerLeave: (event) => {
|
|
114
|
+
pointHitSlotProps.onPointerLeave?.(event);
|
|
115
|
+
if (!event.defaultPrevented) onPointPointerLeave?.();
|
|
116
|
+
},
|
|
117
|
+
onPointerMove: (event) => {
|
|
118
|
+
pointHitSlotProps.onPointerMove?.(event);
|
|
119
|
+
if (!event.defaultPrevented)
|
|
120
|
+
onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY });
|
|
121
|
+
}
|
|
60
122
|
}
|
|
61
123
|
) : null
|
|
62
124
|
}
|
|
@@ -79,6 +141,7 @@ function LineChart(props) {
|
|
|
79
141
|
onPointPointerLeave,
|
|
80
142
|
onPointPointerMove,
|
|
81
143
|
selectedPointIndex,
|
|
144
|
+
slotProps,
|
|
82
145
|
pointLayer,
|
|
83
146
|
announceReadout = true,
|
|
84
147
|
slotCount,
|
|
@@ -92,26 +155,36 @@ function LineChart(props) {
|
|
|
92
155
|
const readoutIndex = activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : void 0);
|
|
93
156
|
const readoutPoint = readoutIndex === void 0 ? void 0 : data[readoutIndex];
|
|
94
157
|
const crosshairPoint = activePointIndex === void 0 ? void 0 : data[activePointIndex];
|
|
95
|
-
const points = pointLayer ?? /* @__PURE__ */ jsx(
|
|
96
|
-
|
|
158
|
+
const points = pointLayer ?? /* @__PURE__ */ jsx(
|
|
159
|
+
"ol",
|
|
97
160
|
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
161
|
+
...getPartProps(slotProps?.points, ["aria-label", "data-part"]),
|
|
162
|
+
"data-part": "points",
|
|
163
|
+
"aria-label": `${label} points`,
|
|
164
|
+
style: { ...slotProps?.points?.style, ...pointsStyle(data.length) },
|
|
165
|
+
children: data.map((point, index) => /* @__PURE__ */ jsx(
|
|
166
|
+
LineChartPoint,
|
|
167
|
+
{
|
|
168
|
+
as: "li",
|
|
169
|
+
point,
|
|
170
|
+
previousPoint: data[index - 1],
|
|
171
|
+
index,
|
|
172
|
+
count: data.length,
|
|
173
|
+
min,
|
|
174
|
+
max,
|
|
175
|
+
interactive,
|
|
176
|
+
isActive: activePointIndex === index,
|
|
177
|
+
isSelected: selectedPointIndex === index,
|
|
178
|
+
cursorY,
|
|
179
|
+
onPointClick,
|
|
180
|
+
onPointPointerLeave,
|
|
181
|
+
onPointPointerMove,
|
|
182
|
+
slotProps
|
|
183
|
+
},
|
|
184
|
+
`${point.time}-${index}`
|
|
185
|
+
))
|
|
186
|
+
}
|
|
187
|
+
);
|
|
115
188
|
const crosshairFor = (index, y) => slotCount === void 0 ? crosshairStyle(index, data.length, y) : slotCrosshairStyle(slotOffset + index, slotCount, y);
|
|
116
189
|
return useRenderElement({
|
|
117
190
|
as,
|
|
@@ -122,66 +195,174 @@ function LineChart(props) {
|
|
|
122
195
|
"data-uiify-line-chart": "",
|
|
123
196
|
"data-interactive": interactive ? "" : void 0,
|
|
124
197
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
125
|
-
/* @__PURE__ */ jsx("figcaption", { children: label }),
|
|
126
|
-
interactive && readoutPoint ? /* @__PURE__ */ jsxs(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"div",
|
|
198
|
+
/* @__PURE__ */ jsx("figcaption", { ...getPartProps(slotProps?.caption), children: label }),
|
|
199
|
+
interactive && readoutPoint ? /* @__PURE__ */ jsxs(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
...getPartProps(slotProps?.readout, ["aria-live", "data-part"]),
|
|
203
|
+
"data-part": "readout",
|
|
204
|
+
"aria-live": announceReadout ? "polite" : "off",
|
|
205
|
+
children: [
|
|
206
|
+
/* @__PURE__ */ jsx(
|
|
207
|
+
"span",
|
|
136
208
|
{
|
|
137
|
-
"data-part"
|
|
138
|
-
"
|
|
139
|
-
|
|
140
|
-
children: /* @__PURE__ */ jsx("span", { "data-part": "crosshair-marker", children: "+" })
|
|
209
|
+
...getPartProps(slotProps?.readoutTime, ["data-part"]),
|
|
210
|
+
"data-part": "readout-time",
|
|
211
|
+
children: String(readoutPoint.time)
|
|
141
212
|
}
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
213
|
+
),
|
|
214
|
+
/* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutValue), children: readoutPoint.value })
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
) : null,
|
|
218
|
+
/* @__PURE__ */ jsxs(
|
|
219
|
+
"div",
|
|
220
|
+
{
|
|
221
|
+
...getPartProps(slotProps?.plot, ["aria-hidden", "data-part"]),
|
|
222
|
+
"data-part": "plot",
|
|
223
|
+
"aria-hidden": interactive ? void 0 : true,
|
|
224
|
+
children: [
|
|
225
|
+
/* @__PURE__ */ jsx(
|
|
226
|
+
"div",
|
|
147
227
|
{
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
228
|
+
...getPartProps(slotProps?.scrollViewport, ["data-part"]),
|
|
229
|
+
"data-part": "scroll-viewport",
|
|
230
|
+
children: /* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.canvas, ["data-part"]), "data-part": "canvas", children: [
|
|
231
|
+
/* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.viewport, ["data-part"]), "data-part": "viewport", children: [
|
|
232
|
+
points,
|
|
233
|
+
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
234
|
+
"div",
|
|
235
|
+
{
|
|
236
|
+
...getPartProps(slotProps?.crosshair, ["aria-hidden", "data-part"]),
|
|
237
|
+
"data-part": "crosshair",
|
|
238
|
+
"aria-hidden": "true",
|
|
239
|
+
style: {
|
|
240
|
+
...slotProps?.crosshair?.style,
|
|
241
|
+
...crosshairFor(activePointIndex, cursorY)
|
|
242
|
+
},
|
|
243
|
+
children: /* @__PURE__ */ jsx(
|
|
244
|
+
"span",
|
|
245
|
+
{
|
|
246
|
+
...getPartProps(slotProps?.crosshairMarker, ["data-part"]),
|
|
247
|
+
"data-part": "crosshair-marker",
|
|
248
|
+
children: "+"
|
|
249
|
+
}
|
|
250
|
+
)
|
|
251
|
+
}
|
|
252
|
+
) : null
|
|
253
|
+
] }),
|
|
254
|
+
/* @__PURE__ */ jsx(
|
|
255
|
+
"div",
|
|
256
|
+
{
|
|
257
|
+
...getPartProps(slotProps?.timeViewport, ["data-part"]),
|
|
258
|
+
"data-part": "time-viewport",
|
|
259
|
+
children: /* @__PURE__ */ jsxs(
|
|
260
|
+
"ol",
|
|
261
|
+
{
|
|
262
|
+
...getPartProps(slotProps?.timeAxis, ["aria-label", "data-axis", "data-part"]),
|
|
263
|
+
"data-part": "time-axis",
|
|
264
|
+
"data-axis": "time",
|
|
265
|
+
"aria-label": `${label} dates`,
|
|
266
|
+
children: [
|
|
267
|
+
timeLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
|
|
268
|
+
"li",
|
|
269
|
+
{
|
|
270
|
+
...withGeneratedStyle(
|
|
271
|
+
getIndexedPartProps(slotProps?.timeAxisLabel, index, ["data-part"]),
|
|
272
|
+
axisStyle("x", axisLabel.position)
|
|
273
|
+
),
|
|
274
|
+
children: axisLabel.label
|
|
275
|
+
},
|
|
276
|
+
`${axisLabel.position}-${index}`
|
|
277
|
+
)),
|
|
278
|
+
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
279
|
+
"li",
|
|
280
|
+
{
|
|
281
|
+
...getPartProps(slotProps?.crosshairTime, ["data-part"]),
|
|
282
|
+
"data-part": "crosshair-time",
|
|
283
|
+
style: {
|
|
284
|
+
...slotProps?.crosshairTime?.style,
|
|
285
|
+
...crosshairFor(activePointIndex, void 0)
|
|
286
|
+
},
|
|
287
|
+
children: String(crosshairPoint.time)
|
|
288
|
+
}
|
|
289
|
+
) : null
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
)
|
|
293
|
+
}
|
|
294
|
+
)
|
|
295
|
+
] })
|
|
296
|
+
}
|
|
297
|
+
),
|
|
298
|
+
/* @__PURE__ */ jsxs(
|
|
299
|
+
"ol",
|
|
155
300
|
{
|
|
156
|
-
"data-
|
|
157
|
-
|
|
158
|
-
|
|
301
|
+
...getPartProps(slotProps?.valueAxis, ["aria-label", "data-axis", "data-part"]),
|
|
302
|
+
"data-part": "value-axis",
|
|
303
|
+
"data-axis": "value",
|
|
304
|
+
"aria-label": `${label} values`,
|
|
305
|
+
children: [
|
|
306
|
+
valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
|
|
307
|
+
"li",
|
|
308
|
+
{
|
|
309
|
+
...withGeneratedStyle(
|
|
310
|
+
getIndexedPartProps(slotProps?.valueAxisLabel, index, ["data-part"]),
|
|
311
|
+
axisStyle("y", axisLabel.position)
|
|
312
|
+
),
|
|
313
|
+
children: axisLabel.label
|
|
314
|
+
},
|
|
315
|
+
`${axisLabel.position}-${index}`
|
|
316
|
+
)),
|
|
317
|
+
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
318
|
+
"li",
|
|
319
|
+
{
|
|
320
|
+
...getPartProps(slotProps?.crosshairValue, ["data-part"]),
|
|
321
|
+
"data-part": "crosshair-value",
|
|
322
|
+
style: { ...slotProps?.crosshairValue?.style, ...cursorStyle(cursorY) },
|
|
323
|
+
children: crosshairPoint.value
|
|
324
|
+
}
|
|
325
|
+
) : null
|
|
326
|
+
]
|
|
159
327
|
}
|
|
160
|
-
)
|
|
161
|
-
]
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
328
|
+
)
|
|
329
|
+
]
|
|
330
|
+
}
|
|
331
|
+
),
|
|
332
|
+
/* @__PURE__ */ jsxs(
|
|
333
|
+
"table",
|
|
334
|
+
{
|
|
335
|
+
...getPartProps(slotProps?.dataTable, ["aria-label", "data-part"]),
|
|
336
|
+
"data-part": "data",
|
|
337
|
+
"aria-label": `${label} data`,
|
|
338
|
+
children: [
|
|
339
|
+
/* @__PURE__ */ jsx("thead", { ...getPartProps(slotProps?.dataTableHead), children: /* @__PURE__ */ jsxs("tr", { ...getPartProps(slotProps?.dataTableHeaderRow), children: [
|
|
340
|
+
/* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableTimeHeader, ["scope"]), scope: "col", children: "Time" }),
|
|
341
|
+
/* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableValueHeader, ["scope"]), scope: "col", children: "Value" })
|
|
342
|
+
] }) }),
|
|
343
|
+
/* @__PURE__ */ jsx("tbody", { ...getPartProps(slotProps?.dataTableBody), children: data.map((point, index) => /* @__PURE__ */ jsxs(
|
|
344
|
+
"tr",
|
|
345
|
+
{
|
|
346
|
+
...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index),
|
|
347
|
+
children: [
|
|
348
|
+
/* @__PURE__ */ jsx(
|
|
349
|
+
"th",
|
|
350
|
+
{
|
|
351
|
+
...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index, [
|
|
352
|
+
"scope"
|
|
353
|
+
]),
|
|
354
|
+
scope: "row",
|
|
355
|
+
children: String(point.time)
|
|
356
|
+
}
|
|
357
|
+
),
|
|
358
|
+
/* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index), children: point.value })
|
|
359
|
+
]
|
|
360
|
+
},
|
|
361
|
+
`${point.time}-${index}`
|
|
362
|
+
)) })
|
|
363
|
+
]
|
|
364
|
+
}
|
|
365
|
+
)
|
|
185
366
|
] })
|
|
186
367
|
},
|
|
187
368
|
render,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/line-chart/LineChart.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n axisLabelsFor,\n axisStyle,\n crosshairStyle,\n cursorStyle,\n geometryFor,\n getValueBounds,\n monthLabelsFor,\n pointStyle,\n pointsStyle,\n slotCrosshairStyle,\n valueLabelsFor,\n} from \"./line-chart-geometry.js\";\nimport type { LineChartPointProps, LineChartProps, LineChartViewProps } from \"./types.js\";\n\n/** One point and the segment from its predecessor; shared by the static list and virtual rows. */\nexport function LineChartPoint({\n as: Tag,\n point,\n previousPoint,\n index,\n count,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n}: LineChartPointProps): ReactElement {\n const geometry = geometryFor(point, previousPoint, index, count, min, max);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onPointClick?.(index);\n };\n\n return (\n <Tag\n aria-hidden={interactive ? undefined : true}\n data-part=\"point\"\n data-first={previousPoint === undefined ? \"\" : undefined}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-point-selected={interactive && isSelected ? \"\" : undefined}\n data-time={String(point.time)}\n data-trend={geometry.trend}\n style={pointStyle(geometry, isActive ? cursorY : undefined)}\n >\n {interactive ? (\n <button\n data-part=\"point-hit\"\n type=\"button\"\n aria-label={`Point ${String(point.time)}`}\n aria-pressed={isSelected}\n onClick={() => onPointClick?.(index)}\n onKeyDown={handleKeyDown}\n onPointerLeave={onPointPointerLeave}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) =>\n onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY })\n }\n />\n ) : null}\n </Tag>\n );\n}\nLineChartPoint.displayName = \"LineChartPoint\";\n\nexport function LineChart<TAs extends ElementType = \"figure\">(\n props: LineChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n activePointIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n selectedPointIndex,\n pointLayer,\n announceReadout = true,\n slotCount,\n slotOffset = 0,\n ...consumerProps\n } = props as LineChartProps<\"figure\"> & LineChartViewProps;\n const { min, max } = getValueBounds(data);\n const label = ariaLabel ?? \"Line chart\";\n const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));\n const readoutIndex =\n activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutPoint = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairPoint = activePointIndex === undefined ? undefined : data[activePointIndex];\n const points = pointLayer ?? (\n <ol data-part=\"points\" aria-label={`${label} points`} style={pointsStyle(data.length)}>\n {data.map((point, index) => (\n <LineChartPoint\n key={`${point.time}-${index}`}\n as=\"li\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activePointIndex === index}\n isSelected={selectedPointIndex === index}\n cursorY={cursorY}\n onPointClick={onPointClick}\n onPointPointerLeave={onPointPointerLeave}\n onPointPointerMove={onPointPointerMove}\n />\n ))}\n </ol>\n );\n const crosshairFor = (index: number, y: number | undefined) =>\n slotCount === undefined\n ? crosshairStyle(index, data.length, y)\n : slotCrosshairStyle(slotOffset + index, slotCount, y);\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div data-part=\"readout\" aria-live={announceReadout ? \"polite\" : \"off\"}>\n <span data-part=\"readout-time\">{String(readoutPoint.time)}</span>\n <span>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div data-part=\"plot\" aria-hidden={interactive ? undefined : true}>\n <div data-part=\"scroll-viewport\">\n <div data-part=\"canvas\">\n <div data-part=\"viewport\">\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n style={crosshairFor(activePointIndex, cursorY)}\n >\n <span data-part=\"crosshair-marker\">+</span>\n </div>\n ) : null}\n </div>\n <div data-part=\"time-viewport\">\n <ol data-part=\"time-axis\" data-axis=\"time\" aria-label={`${label} dates`}>\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n style={axisStyle(\"x\", axisLabel.position)}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-time\"\n style={crosshairFor(activePointIndex, undefined)}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol data-part=\"value-axis\" data-axis=\"value\" aria-label={`${label} values`}>\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n style={axisStyle(\"y\", axisLabel.position)}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li data-part=\"crosshair-value\" style={cursorStyle(cursorY)}>\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table data-part=\"data\" aria-label={`${label} data`}>\n <thead>\n <tr>\n <th scope=\"col\">Time</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n <tbody>\n {data.map((point, index) => (\n <tr key={`${point.time}-${index}`}>\n <th scope=\"row\">{String(point.time)}</th>\n <td>{point.value}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nLineChart.displayName = \"LineChart\";\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/line-chart/LineChart.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, PointerEvent, ReactElement, Ref } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../core/slot-props.js\";\nimport { assignRef } from \"../../hooks/utils/assign-ref.js\";\nimport {\n axisLabelsFor,\n axisStyle,\n crosshairStyle,\n cursorStyle,\n geometryFor,\n getValueBounds,\n monthLabelsFor,\n pointStyle,\n pointsStyle,\n slotCrosshairStyle,\n valueLabelsFor,\n} from \"./line-chart-geometry.js\";\nimport type { LineChartPointProps, LineChartProps, LineChartViewProps } from \"./types.js\";\n\nfunction getPartProps<T extends object>(\n props: T | undefined,\n protectedKeys: readonly string[] = [],\n): T {\n return omitProps(props, [\"children\", \"dangerouslySetInnerHTML\", ...protectedKeys]);\n}\n\nfunction getIndexedPartProps<T extends object>(\n props: (T & { readonly byItemIndex?: Readonly<Record<number, T>> }) | undefined,\n index: number,\n protectedKeys: readonly string[] = [],\n): T {\n const { byItemIndex, ...common } = props ?? {};\n const merged = mergeRepeatedSlotProps(common as T, byItemIndex?.[index]);\n return omitProps(merged, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"byItemIndex\",\n ...protectedKeys,\n ]);\n}\n\nfunction withGeneratedStyle<T extends { readonly style?: object | undefined }>(\n props: T,\n generatedStyle: object,\n): T {\n return { ...props, style: { ...props.style, ...generatedStyle } };\n}\n\nfunction forwardPointRef(ref: Ref<HTMLElement> | undefined) {\n return (element: HTMLLIElement | HTMLDivElement | null): void | (() => void) => {\n const cleanup = assignRef(ref, element);\n if (typeof cleanup === \"function\") return cleanup;\n if (ref && typeof ref !== \"function\" && element !== null) {\n return () => assignRef(ref, null);\n }\n };\n}\n\n/** One point and the segment from its predecessor; shared by the static list and virtual rows. */\nexport function LineChartPoint({\n as: Tag,\n point,\n previousPoint,\n index,\n count,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n slotProps,\n}: LineChartPointProps): ReactElement {\n const geometry = geometryFor(point, previousPoint, index, count, min, max);\n const pointSlotProps = getIndexedPartProps(slotProps?.point, index, [\n \"aria-hidden\",\n \"data-crosshair-active\",\n \"data-first\",\n \"data-part\",\n \"data-point-selected\",\n \"data-time\",\n \"data-trend\",\n ]);\n const { ref: pointRef, ...pointProps } = pointSlotProps;\n const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index, [\n \"aria-label\",\n \"aria-pressed\",\n \"data-part\",\n \"type\",\n ]);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n pointHitSlotProps.onKeyDown?.(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onPointClick?.(index);\n };\n\n return (\n <Tag\n {...pointProps}\n {...(pointRef ? { ref: forwardPointRef(pointRef) } : {})}\n aria-hidden={interactive ? undefined : true}\n data-part=\"point\"\n data-first={previousPoint === undefined ? \"\" : undefined}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-point-selected={interactive && isSelected ? \"\" : undefined}\n data-time={String(point.time)}\n data-trend={geometry.trend}\n style={{\n ...pointSlotProps.style,\n ...pointStyle(geometry, isActive ? cursorY : undefined),\n }}\n >\n {interactive ? (\n <button\n {...pointHitSlotProps}\n data-part=\"point-hit\"\n type=\"button\"\n aria-label={`Point ${String(point.time)}`}\n aria-pressed={isSelected}\n onClick={(event) => {\n pointHitSlotProps.onClick?.(event);\n if (!event.defaultPrevented) onPointClick?.(index);\n }}\n onKeyDown={handleKeyDown}\n onPointerLeave={(event) => {\n pointHitSlotProps.onPointerLeave?.(event);\n if (!event.defaultPrevented) onPointPointerLeave?.();\n }}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) => {\n pointHitSlotProps.onPointerMove?.(event);\n if (!event.defaultPrevented)\n onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY });\n }}\n />\n ) : null}\n </Tag>\n );\n}\nLineChartPoint.displayName = \"LineChartPoint\";\n\nexport function LineChart<TAs extends ElementType = \"figure\">(\n props: LineChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n activePointIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n selectedPointIndex,\n slotProps,\n pointLayer,\n announceReadout = true,\n slotCount,\n slotOffset = 0,\n ...consumerProps\n } = props as LineChartProps<\"figure\"> & LineChartViewProps;\n const { min, max } = getValueBounds(data);\n const label = ariaLabel ?? \"Line chart\";\n const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));\n const readoutIndex =\n activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutPoint = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairPoint = activePointIndex === undefined ? undefined : data[activePointIndex];\n const points = pointLayer ?? (\n <ol\n {...getPartProps(slotProps?.points, [\"aria-label\", \"data-part\"])}\n data-part=\"points\"\n aria-label={`${label} points`}\n style={{ ...slotProps?.points?.style, ...pointsStyle(data.length) }}\n >\n {data.map((point, index) => (\n <LineChartPoint\n key={`${point.time}-${index}`}\n as=\"li\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activePointIndex === index}\n isSelected={selectedPointIndex === index}\n cursorY={cursorY}\n onPointClick={onPointClick}\n onPointPointerLeave={onPointPointerLeave}\n onPointPointerMove={onPointPointerMove}\n slotProps={slotProps}\n />\n ))}\n </ol>\n );\n const crosshairFor = (index: number, y: number | undefined) =>\n slotCount === undefined\n ? crosshairStyle(index, data.length, y)\n : slotCrosshairStyle(slotOffset + index, slotCount, y);\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption {...getPartProps(slotProps?.caption)}>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div\n {...getPartProps(slotProps?.readout, [\"aria-live\", \"data-part\"])}\n data-part=\"readout\"\n aria-live={announceReadout ? \"polite\" : \"off\"}\n >\n <span\n {...getPartProps(slotProps?.readoutTime, [\"data-part\"])}\n data-part=\"readout-time\"\n >\n {String(readoutPoint.time)}\n </span>\n <span {...getPartProps(slotProps?.readoutValue)}>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div\n {...getPartProps(slotProps?.plot, [\"aria-hidden\", \"data-part\"])}\n data-part=\"plot\"\n aria-hidden={interactive ? undefined : true}\n >\n <div\n {...getPartProps(slotProps?.scrollViewport, [\"data-part\"])}\n data-part=\"scroll-viewport\"\n >\n <div {...getPartProps(slotProps?.canvas, [\"data-part\"])} data-part=\"canvas\">\n <div {...getPartProps(slotProps?.viewport, [\"data-part\"])} data-part=\"viewport\">\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n {...getPartProps(slotProps?.crosshair, [\"aria-hidden\", \"data-part\"])}\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n style={{\n ...slotProps?.crosshair?.style,\n ...crosshairFor(activePointIndex, cursorY),\n }}\n >\n <span\n {...getPartProps(slotProps?.crosshairMarker, [\"data-part\"])}\n data-part=\"crosshair-marker\"\n >\n +\n </span>\n </div>\n ) : null}\n </div>\n <div\n {...getPartProps(slotProps?.timeViewport, [\"data-part\"])}\n data-part=\"time-viewport\"\n >\n <ol\n {...getPartProps(slotProps?.timeAxis, [\"aria-label\", \"data-axis\", \"data-part\"])}\n data-part=\"time-axis\"\n data-axis=\"time\"\n aria-label={`${label} dates`}\n >\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.timeAxisLabel, index, [\"data-part\"]),\n axisStyle(\"x\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairTime, [\"data-part\"])}\n data-part=\"crosshair-time\"\n style={{\n ...slotProps?.crosshairTime?.style,\n ...crosshairFor(activePointIndex, undefined),\n }}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n {...getPartProps(slotProps?.valueAxis, [\"aria-label\", \"data-axis\", \"data-part\"])}\n data-part=\"value-axis\"\n data-axis=\"value\"\n aria-label={`${label} values`}\n >\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.valueAxisLabel, index, [\"data-part\"]),\n axisStyle(\"y\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairValue, [\"data-part\"])}\n data-part=\"crosshair-value\"\n style={{ ...slotProps?.crosshairValue?.style, ...cursorStyle(cursorY) }}\n >\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table\n {...getPartProps(slotProps?.dataTable, [\"aria-label\", \"data-part\"])}\n data-part=\"data\"\n aria-label={`${label} data`}\n >\n <thead {...getPartProps(slotProps?.dataTableHead)}>\n <tr {...getPartProps(slotProps?.dataTableHeaderRow)}>\n <th {...getPartProps(slotProps?.dataTableTimeHeader, [\"scope\"])} scope=\"col\">\n Time\n </th>\n <th {...getPartProps(slotProps?.dataTableValueHeader, [\"scope\"])} scope=\"col\">\n Value\n </th>\n </tr>\n </thead>\n <tbody {...getPartProps(slotProps?.dataTableBody)}>\n {data.map((point, index) => (\n <tr\n key={`${point.time}-${index}`}\n {...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index)}\n >\n <th\n {...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index, [\n \"scope\",\n ])}\n scope=\"row\"\n >\n {String(point.time)}\n </th>\n <td {...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index)}>\n {point.value}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nLineChart.displayName = \"LineChart\";\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LineChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;AAa3E,OAAO,KAAK,EACV,oBAAoB,EAKrB,MAAM,aAAa,CAAC;AAwBrB,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAChE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAwKrB;yBA1Ke,eAAe"}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
useLiveChartWindow
|
|
10
10
|
} from "../../internal/live-chart/use-live-chart-window.js";
|
|
11
11
|
import { useScrollbarReserve } from "../../internal/chart-scrollbar/use-scrollbar-reserve.js";
|
|
12
|
+
import { omitProps } from "../../../core/slot-props.js";
|
|
12
13
|
import { VirtualScroll } from "../../virtual-scroll/VirtualScroll.js";
|
|
13
14
|
import { LineChart, LineChartPoint } from "../LineChart.js";
|
|
14
15
|
import { getValueBounds } from "../line-chart-geometry.js";
|
|
@@ -23,6 +24,7 @@ function LineChartClient(props) {
|
|
|
23
24
|
onPointClick: consumerOnPointClick,
|
|
24
25
|
onPointPointerLeave: consumerOnPointPointerLeave,
|
|
25
26
|
onPointPointerMove: consumerOnPointPointerMove,
|
|
27
|
+
slotProps,
|
|
26
28
|
...consumerProps
|
|
27
29
|
} = props;
|
|
28
30
|
const live = visibleCount !== void 0 && visibleCount > 0;
|
|
@@ -83,6 +85,7 @@ function LineChartClient(props) {
|
|
|
83
85
|
onPointClick: handlePointClick,
|
|
84
86
|
onPointPointerLeave: handlePointPointerLeave,
|
|
85
87
|
onPointPointerMove: handlePointPointerMove,
|
|
88
|
+
...slotProps ? { slotProps } : {},
|
|
86
89
|
ref: chartRef,
|
|
87
90
|
selectedPointIndex,
|
|
88
91
|
style
|
|
@@ -93,6 +96,7 @@ function LineChartClient(props) {
|
|
|
93
96
|
const slice = data.slice(sliceStart, sliceEnd);
|
|
94
97
|
const { min, max } = getValueBounds(slice);
|
|
95
98
|
const toSliceIndex = (index) => index !== void 0 && index >= sliceStart && index < sliceEnd ? index - sliceStart : void 0;
|
|
99
|
+
const { ref: liveScrollportRef, ...liveScrollportProps } = slotProps?.liveScrollport ?? {};
|
|
96
100
|
const pointLayer = /* @__PURE__ */ jsx(
|
|
97
101
|
VirtualScroll,
|
|
98
102
|
{
|
|
@@ -122,9 +126,24 @@ function LineChartClient(props) {
|
|
|
122
126
|
cursorY: isActive ? cursor?.offsetY : void 0,
|
|
123
127
|
onPointClick: handlePointClick,
|
|
124
128
|
onPointPointerLeave: handlePointPointerLeave,
|
|
125
|
-
onPointPointerMove: handlePointPointerMove
|
|
129
|
+
onPointPointerMove: handlePointPointerMove,
|
|
130
|
+
slotProps
|
|
126
131
|
}
|
|
127
132
|
);
|
|
133
|
+
},
|
|
134
|
+
...omitProps(liveScrollportProps, [
|
|
135
|
+
"children",
|
|
136
|
+
"dangerouslySetInnerHTML",
|
|
137
|
+
"data-dynamic-layout",
|
|
138
|
+
"data-orientation",
|
|
139
|
+
"data-part",
|
|
140
|
+
"data-uiify-virtual-scroll",
|
|
141
|
+
"role"
|
|
142
|
+
]),
|
|
143
|
+
...liveScrollportRef ? { ref: liveScrollportRef } : {},
|
|
144
|
+
slotProps: {
|
|
145
|
+
...slotProps?.liveSpacer ? { spacer: slotProps.liveSpacer } : {},
|
|
146
|
+
...slotProps?.livePointRow ? { row: slotProps.livePointRow } : {}
|
|
128
147
|
}
|
|
129
148
|
}
|
|
130
149
|
);
|
|
@@ -144,6 +163,7 @@ function LineChartClient(props) {
|
|
|
144
163
|
pointLayer,
|
|
145
164
|
cursorY: cursor?.offsetY,
|
|
146
165
|
interactive: true,
|
|
166
|
+
...slotProps ? { slotProps } : {},
|
|
147
167
|
ref: chartRef,
|
|
148
168
|
selectedPointIndex: toSliceIndex(selectedPointIndex),
|
|
149
169
|
slotCount: data.length,
|