@gunkin/uiify 0.0.24-alpha → 0.0.26-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 +18 -3
- package/agents/reference/components/alert-modal.md +19 -7
- package/agents/reference/components/alert.md +9 -1
- package/agents/reference/components/aspect-ratio.md +8 -0
- package/agents/reference/components/avatar.md +10 -0
- package/agents/reference/components/breadcrumb.md +22 -4
- package/agents/reference/components/candle-chart.md +51 -3
- package/agents/reference/components/carousel.md +26 -1
- package/agents/reference/components/checkbox.md +3 -1
- package/agents/reference/components/collapsible.md +16 -3
- package/agents/reference/components/color-picker.md +18 -2
- package/agents/reference/components/combobox.md +15 -14
- package/agents/reference/components/context-menu.md +16 -5
- package/agents/reference/components/date-picker.md +2 -1
- package/agents/reference/components/drawer.md +28 -17
- package/agents/reference/components/dropdown-menu.md +3 -3
- package/agents/reference/components/field.md +13 -13
- package/agents/reference/components/form-error-summary.md +11 -1
- package/agents/reference/components/input-group.md +1 -0
- package/agents/reference/components/input.md +1 -0
- package/agents/reference/components/line-chart.md +42 -3
- package/agents/reference/components/modal.md +22 -5
- package/agents/reference/components/number-field.md +1 -1
- package/agents/reference/components/otp-input.md +2 -1
- package/agents/reference/components/pagination.md +15 -4
- package/agents/reference/components/radio-group.md +8 -2
- package/agents/reference/components/rating.md +8 -2
- package/agents/reference/components/segmented-control.md +9 -3
- package/agents/reference/components/select.md +1 -0
- package/agents/reference/components/slider.md +13 -1
- package/agents/reference/components/spinner.md +10 -1
- package/agents/reference/components/table.md +15 -0
- package/agents/reference/components/tabs.md +21 -3
- package/agents/reference/components/tags-input.md +15 -1
- package/agents/reference/components/toast.md +50 -12
- package/agents/reference/components/toggle-group.md +5 -3
- package/agents/reference/components/toggle.md +17 -3
- package/agents/reference/components/toolbar.md +4 -4
- package/agents/reference/components/virtual-scroll.md +32 -4
- package/agents/reference/elements/choice.md +20 -7
- package/agents/reference/elements/details.md +2 -2
- package/agents/reference/elements/popover.md +3 -3
- 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 +36 -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 +14 -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 +6 -5
- 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 +6 -0
- 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 +18 -8
- 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 +1 -1
- 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 +23 -7
- 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 +5 -5
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/aspect-ratio/types.d.ts +6 -0
- 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 +5 -5
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/types.d.ts +8 -0
- 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 +59 -47
- 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 +19 -3
- 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 +161 -75
- 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 +19 -6
- 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 +56 -2
- 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 +38 -10
- 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 +18 -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 +2 -6
- package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.js +5 -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 +11 -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 +73 -52
- 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 +20 -2
- 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 +59 -33
- 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 +13 -8
- 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 +33 -19
- 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 +10 -9
- package/dist/components/context-menu/types.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts +1 -1
- package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.js +2 -1
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/date-picker/types.d.ts +4 -1
- package/dist/components/date-picker/types.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.js +17 -13
- 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 +30 -25
- 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 -11
- 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 +34 -25
- 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 +43 -29
- package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
- package/dist/components/dropdown-menu/types.d.ts +4 -5
- package/dist/components/dropdown-menu/types.d.ts.map +1 -1
- package/dist/components/field/Field.js +7 -7
- package/dist/components/field/Field.js.map +1 -1
- package/dist/components/field/types.d.ts +14 -14
- 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 +23 -5
- 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 +9 -0
- package/dist/components/form-error-summary/types.d.ts.map +1 -1
- package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
- package/dist/components/hover-card/HoverCard.js +9 -9
- package/dist/components/hover-card/HoverCard.js.map +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.js +2 -0
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input/types.d.ts +3 -0
- package/dist/components/input/types.d.ts.map +1 -1
- package/dist/components/input-group/InputGroup.d.ts.map +1 -1
- package/dist/components/input-group/InputGroup.js +2 -1
- package/dist/components/input-group/InputGroup.js.map +1 -1
- package/dist/components/input-group/types.d.ts +3 -0
- package/dist/components/input-group/types.d.ts.map +1 -1
- package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts +2 -2
- package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts.map +1 -1
- package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js +11 -3
- package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
- package/dist/components/internal/choice-family/ChoiceGroup.js +25 -12
- package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
- package/dist/components/internal/choice-family/types.d.ts +19 -1
- package/dist/components/internal/choice-family/types.d.ts.map +1 -1
- package/dist/components/internal/control-size/types.d.ts +3 -0
- package/dist/components/internal/control-size/types.d.ts.map +1 -0
- package/dist/components/internal/control-size/types.js +1 -0
- package/dist/components/internal/control-size/types.js.map +1 -0
- package/dist/components/internal/live-chart/types.d.ts +3 -1
- package/dist/components/internal/live-chart/types.d.ts.map +1 -1
- package/dist/components/internal/live-chart/use-live-chart-window.d.ts.map +1 -1
- package/dist/components/internal/live-chart/use-live-chart-window.js +21 -5
- package/dist/components/internal/live-chart/use-live-chart-window.js.map +1 -1
- package/dist/components/internal/menu/menu-parts.d.ts.map +1 -1
- package/dist/components/internal/menu/menu-parts.js +3 -3
- package/dist/components/internal/menu/menu-parts.js.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 +12 -4
- package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
- package/dist/components/internal/native-check-control/types.d.ts +6 -0
- 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 +182 -75
- 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 +19 -6
- 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 +47 -2
- 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 +21 -27
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/ModalAnatomy.js +6 -6
- package/dist/components/modal/ModalAnatomy.js.map +1 -1
- package/dist/components/modal/ModalParts.js +1 -1
- package/dist/components/modal/ModalParts.js.map +1 -1
- package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
- package/dist/components/modal/client/ModalClientContent.js +2 -2
- package/dist/components/modal/client/ModalClientContent.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 +26 -4
- package/dist/components/modal/types.d.ts.map +1 -1
- package/dist/components/number-field/NumberField.d.ts.map +1 -1
- package/dist/components/number-field/NumberField.js +13 -11
- package/dist/components/number-field/NumberField.js.map +1 -1
- package/dist/components/number-field/types.d.ts +1 -1
- package/dist/components/number-field/types.d.ts.map +1 -1
- package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
- package/dist/components/otp-input/OtpInput.js +12 -10
- package/dist/components/otp-input/OtpInput.js.map +1 -1
- package/dist/components/otp-input/types.d.ts +4 -1
- package/dist/components/otp-input/types.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +135 -61
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
- package/dist/components/pagination/PaginationShell.js +5 -6
- package/dist/components/pagination/PaginationShell.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 +12 -3
- 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 +8 -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 +9 -3
- 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 +9 -3
- 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 +7 -4
- package/dist/components/segmented-control/types.d.ts.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +2 -0
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/types.d.ts +3 -0
- package/dist/components/select/types.d.ts.map +1 -1
- package/dist/components/slider/Slider.d.ts.map +1 -1
- package/dist/components/slider/Slider.js +12 -7
- package/dist/components/slider/Slider.js.map +1 -1
- package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
- package/dist/components/slider/client/SliderClient.js +55 -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 +15 -0
- 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 +12 -4
- 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 +7 -0
- 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 +10 -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 +13 -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 +12 -2
- 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 +17 -4
- 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 +45 -11
- 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 +12 -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 +74 -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 +36 -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 +32 -26
- 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 +13 -4
- 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 +12 -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/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.js +4 -4
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.js +99 -44
- 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 +23 -3
- package/dist/components/virtual-scroll/types.d.ts.map +1 -1
- package/dist/components/virtual-scroll/types.js.map +1 -1
- package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts +3 -0
- package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts.map +1 -1
- package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +11 -2
- package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
- package/dist/core/class-names.d.ts +3 -0
- package/dist/core/class-names.d.ts.map +1 -0
- package/dist/core/class-names.js +7 -0
- package/dist/core/class-names.js.map +1 -0
- package/dist/core/part-names.d.ts +8 -0
- package/dist/core/part-names.d.ts.map +1 -0
- package/dist/core/part-names.js +111 -0
- package/dist/core/part-names.js.map +1 -0
- package/dist/core/polymorphic.d.ts +10 -3
- package/dist/core/polymorphic.d.ts.map +1 -1
- package/dist/core/render-native-invoker.d.ts +1 -0
- package/dist/core/render-native-invoker.d.ts.map +1 -1
- package/dist/core/render-native-invoker.js +6 -6
- package/dist/core/render-native-invoker.js.map +1 -1
- package/dist/core/roving-focus.d.ts +2 -2
- package/dist/core/roving-focus.d.ts.map +1 -1
- package/dist/core/roving-focus.js +6 -7
- package/dist/core/roving-focus.js.map +1 -1
- package/dist/core/slot-props.d.ts +21 -0
- package/dist/core/slot-props.d.ts.map +1 -0
- package/dist/core/slot-props.js +49 -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 +13 -10
- 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 +18 -10
- package/dist/elements/choice/types.d.ts.map +1 -1
- package/dist/elements/details/Details.d.ts.map +1 -1
- package/dist/elements/details/Details.js +4 -5
- package/dist/elements/details/Details.js.map +1 -1
- package/dist/elements/details/types.d.ts +3 -3
- package/dist/elements/details/types.d.ts.map +1 -1
- package/dist/elements/dialog/Dialog.d.ts.map +1 -1
- package/dist/elements/dialog/Dialog.js +1 -1
- package/dist/elements/dialog/Dialog.js.map +1 -1
- package/dist/elements/invoker/Invoker.js +3 -3
- package/dist/elements/invoker/Invoker.js.map +1 -1
- package/dist/elements/popover/Popover.d.ts.map +1 -1
- package/dist/elements/popover/Popover.js +3 -3
- package/dist/elements/popover/Popover.js.map +1 -1
- package/dist/elements/popover/types.d.ts +6 -4
- package/dist/elements/popover/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/dist/styles/tokens.css +1 -1
- package/package.json +1 -1
- package/skills/uiify/references/elements/accordion.md +1 -1
- package/skills/uiify/references/elements/aspect-ratio.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/field.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
- package/skills/uiify/references/elements/toggle.md +1 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
|
|
2
3
|
import { useRenderElement } from "@gunkin/uiify/core/render";
|
|
4
|
+
import { mergeRepeatedSlotProps } from "../../core/slot-props.js";
|
|
5
|
+
import { assignRef } from "../../hooks/utils/assign-ref.js";
|
|
3
6
|
import {
|
|
4
7
|
axisLabelsFor,
|
|
5
8
|
axisStyle,
|
|
@@ -13,6 +16,22 @@ import {
|
|
|
13
16
|
slotCrosshairStyle,
|
|
14
17
|
valueLabelsFor
|
|
15
18
|
} from "./line-chart-geometry.js";
|
|
19
|
+
function getIndexedPartProps(props, index) {
|
|
20
|
+
const { byItemIndex, ...common } = props ?? {};
|
|
21
|
+
return mergeRepeatedSlotProps(common, byItemIndex?.[index]);
|
|
22
|
+
}
|
|
23
|
+
function withGeneratedStyle(props, generatedStyle) {
|
|
24
|
+
return { ...props, style: { ...generatedStyle, ...props.style } };
|
|
25
|
+
}
|
|
26
|
+
function forwardPointRef(ref) {
|
|
27
|
+
return (element) => {
|
|
28
|
+
const cleanup = assignRef(ref, element);
|
|
29
|
+
if (typeof cleanup === "function") return cleanup;
|
|
30
|
+
if (ref && typeof ref !== "function" && element !== null) {
|
|
31
|
+
return () => assignRef(ref, null);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
16
35
|
function LineChartPoint({
|
|
17
36
|
as: Tag,
|
|
18
37
|
point,
|
|
@@ -27,9 +46,13 @@ function LineChartPoint({
|
|
|
27
46
|
cursorY,
|
|
28
47
|
onPointClick,
|
|
29
48
|
onPointPointerLeave,
|
|
30
|
-
onPointPointerMove
|
|
49
|
+
onPointPointerMove,
|
|
50
|
+
slotProps
|
|
31
51
|
}) {
|
|
32
52
|
const geometry = geometryFor(point, previousPoint, index, count, min, max);
|
|
53
|
+
const pointSlotProps = getIndexedPartProps(slotProps?.point, index);
|
|
54
|
+
const { ref: pointRef, ...pointProps } = pointSlotProps;
|
|
55
|
+
const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index);
|
|
33
56
|
const handleKeyDown = (event) => {
|
|
34
57
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
35
58
|
event.preventDefault();
|
|
@@ -45,7 +68,12 @@ function LineChartPoint({
|
|
|
45
68
|
"data-point-selected": interactive && isSelected ? "" : void 0,
|
|
46
69
|
"data-time": String(point.time),
|
|
47
70
|
"data-trend": geometry.trend,
|
|
48
|
-
|
|
71
|
+
...pointProps,
|
|
72
|
+
...pointRef ? { ref: forwardPointRef(pointRef) } : {},
|
|
73
|
+
style: {
|
|
74
|
+
...pointStyle(geometry, isActive ? cursorY : void 0),
|
|
75
|
+
...pointSlotProps.style
|
|
76
|
+
},
|
|
49
77
|
children: interactive ? /* @__PURE__ */ jsx(
|
|
50
78
|
"button",
|
|
51
79
|
{
|
|
@@ -53,10 +81,17 @@ function LineChartPoint({
|
|
|
53
81
|
type: "button",
|
|
54
82
|
"aria-label": `Point ${String(point.time)}`,
|
|
55
83
|
"aria-pressed": isSelected,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
84
|
+
...pointHitSlotProps,
|
|
85
|
+
onClick: composeEventHandlers(pointHitSlotProps.onClick, () => onPointClick?.(index)),
|
|
86
|
+
onKeyDown: composeEventHandlers(pointHitSlotProps.onKeyDown, handleKeyDown),
|
|
87
|
+
onPointerLeave: composeEventHandlers(
|
|
88
|
+
pointHitSlotProps.onPointerLeave,
|
|
89
|
+
() => onPointPointerLeave?.()
|
|
90
|
+
),
|
|
91
|
+
onPointerMove: composeEventHandlers(
|
|
92
|
+
pointHitSlotProps.onPointerMove,
|
|
93
|
+
(event) => onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY })
|
|
94
|
+
)
|
|
60
95
|
}
|
|
61
96
|
) : null
|
|
62
97
|
}
|
|
@@ -70,7 +105,6 @@ function LineChart(props) {
|
|
|
70
105
|
data,
|
|
71
106
|
xAxis,
|
|
72
107
|
yAxis,
|
|
73
|
-
"aria-label": ariaLabel,
|
|
74
108
|
activePointIndex,
|
|
75
109
|
cursorY,
|
|
76
110
|
interactive = false,
|
|
@@ -79,6 +113,7 @@ function LineChart(props) {
|
|
|
79
113
|
onPointPointerLeave,
|
|
80
114
|
onPointPointerMove,
|
|
81
115
|
selectedPointIndex,
|
|
116
|
+
slotProps,
|
|
82
117
|
pointLayer,
|
|
83
118
|
announceReadout = true,
|
|
84
119
|
slotCount,
|
|
@@ -86,101 +121,173 @@ function LineChart(props) {
|
|
|
86
121
|
...consumerProps
|
|
87
122
|
} = props;
|
|
88
123
|
const { min, max } = getValueBounds(data);
|
|
89
|
-
const label =
|
|
124
|
+
const label = consumerProps["aria-label"] ?? "Line chart";
|
|
90
125
|
const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));
|
|
91
126
|
const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));
|
|
92
127
|
const readoutIndex = activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : void 0);
|
|
93
128
|
const readoutPoint = readoutIndex === void 0 ? void 0 : data[readoutIndex];
|
|
94
129
|
const crosshairPoint = activePointIndex === void 0 ? void 0 : data[activePointIndex];
|
|
95
|
-
const points = pointLayer ?? /* @__PURE__ */ jsx(
|
|
96
|
-
|
|
130
|
+
const points = pointLayer ?? /* @__PURE__ */ jsx(
|
|
131
|
+
"ol",
|
|
97
132
|
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
133
|
+
"data-part": "points",
|
|
134
|
+
"aria-label": `${label} points`,
|
|
135
|
+
...slotProps?.points,
|
|
136
|
+
style: { ...pointsStyle(data.length), ...slotProps?.points?.style },
|
|
137
|
+
children: data.map((point, index) => /* @__PURE__ */ jsx(
|
|
138
|
+
LineChartPoint,
|
|
139
|
+
{
|
|
140
|
+
as: "li",
|
|
141
|
+
point,
|
|
142
|
+
previousPoint: data[index - 1],
|
|
143
|
+
index,
|
|
144
|
+
count: data.length,
|
|
145
|
+
min,
|
|
146
|
+
max,
|
|
147
|
+
interactive,
|
|
148
|
+
isActive: activePointIndex === index,
|
|
149
|
+
isSelected: selectedPointIndex === index,
|
|
150
|
+
cursorY,
|
|
151
|
+
onPointClick,
|
|
152
|
+
onPointPointerLeave,
|
|
153
|
+
onPointPointerMove,
|
|
154
|
+
slotProps
|
|
155
|
+
},
|
|
156
|
+
`${point.time}-${index}`
|
|
157
|
+
))
|
|
158
|
+
}
|
|
159
|
+
);
|
|
115
160
|
const crosshairFor = (index, y) => slotCount === void 0 ? crosshairStyle(index, data.length, y) : slotCrosshairStyle(slotOffset + index, slotCount, y);
|
|
116
161
|
return useRenderElement({
|
|
117
162
|
as,
|
|
118
163
|
defaultTag: "figure",
|
|
119
164
|
props: {
|
|
120
|
-
...consumerProps,
|
|
121
165
|
"aria-label": label,
|
|
122
166
|
"data-uiify-line-chart": "",
|
|
123
167
|
"data-interactive": interactive ? "" : void 0,
|
|
168
|
+
...consumerProps,
|
|
124
169
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
125
|
-
/* @__PURE__ */ jsx("figcaption", { children: label }),
|
|
126
|
-
interactive && readoutPoint ? /* @__PURE__ */ jsxs(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
170
|
+
/* @__PURE__ */ jsx("figcaption", { ...slotProps?.caption, children: label }),
|
|
171
|
+
interactive && readoutPoint ? /* @__PURE__ */ jsxs(
|
|
172
|
+
"div",
|
|
173
|
+
{
|
|
174
|
+
"data-part": "readout",
|
|
175
|
+
"aria-live": announceReadout ? "polite" : "off",
|
|
176
|
+
...slotProps?.readout,
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ jsx("span", { "data-part": "readout-time", ...slotProps?.readoutTime, children: String(readoutPoint.time) }),
|
|
179
|
+
/* @__PURE__ */ jsx("span", { ...slotProps?.readoutValue, children: readoutPoint.value })
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
) : null,
|
|
183
|
+
/* @__PURE__ */ jsxs("div", { "data-part": "plot", "aria-hidden": interactive ? void 0 : true, ...slotProps?.plot, children: [
|
|
184
|
+
/* @__PURE__ */ jsx("div", { "data-part": "scroll-viewport", ...slotProps?.scrollViewport, children: /* @__PURE__ */ jsxs("div", { "data-part": "canvas", ...slotProps?.canvas, children: [
|
|
185
|
+
/* @__PURE__ */ jsxs("div", { "data-part": "viewport", ...slotProps?.viewport, children: [
|
|
133
186
|
points,
|
|
134
187
|
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
135
188
|
"div",
|
|
136
189
|
{
|
|
137
190
|
"data-part": "crosshair",
|
|
138
191
|
"aria-hidden": "true",
|
|
139
|
-
|
|
140
|
-
|
|
192
|
+
...slotProps?.crosshair,
|
|
193
|
+
style: {
|
|
194
|
+
...crosshairFor(activePointIndex, cursorY),
|
|
195
|
+
...slotProps?.crosshair?.style
|
|
196
|
+
},
|
|
197
|
+
children: /* @__PURE__ */ jsx("span", { "data-part": "crosshair-marker", ...slotProps?.crosshairMarker, children: "+" })
|
|
141
198
|
}
|
|
142
199
|
) : null
|
|
143
200
|
] }),
|
|
144
|
-
/* @__PURE__ */ jsx("div", { "data-part": "time-viewport", children: /* @__PURE__ */ jsxs(
|
|
145
|
-
|
|
146
|
-
"li",
|
|
147
|
-
{
|
|
148
|
-
style: axisStyle("x", axisLabel.position),
|
|
149
|
-
children: axisLabel.label
|
|
150
|
-
},
|
|
151
|
-
`${axisLabel.position}-${index}`
|
|
152
|
-
)),
|
|
153
|
-
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
154
|
-
"li",
|
|
155
|
-
{
|
|
156
|
-
"data-part": "crosshair-time",
|
|
157
|
-
style: crosshairFor(activePointIndex, void 0),
|
|
158
|
-
children: String(crosshairPoint.time)
|
|
159
|
-
}
|
|
160
|
-
) : null
|
|
161
|
-
] }) })
|
|
162
|
-
] }) }),
|
|
163
|
-
/* @__PURE__ */ jsxs("ol", { "data-part": "value-axis", "data-axis": "value", "aria-label": `${label} values`, children: [
|
|
164
|
-
valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
|
|
165
|
-
"li",
|
|
201
|
+
/* @__PURE__ */ jsx("div", { "data-part": "time-viewport", ...slotProps?.timeViewport, children: /* @__PURE__ */ jsxs(
|
|
202
|
+
"ol",
|
|
166
203
|
{
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
204
|
+
"data-part": "time-axis",
|
|
205
|
+
"data-axis": "time",
|
|
206
|
+
"aria-label": `${label} dates`,
|
|
207
|
+
...slotProps?.timeAxis,
|
|
208
|
+
children: [
|
|
209
|
+
timeLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
|
|
210
|
+
"li",
|
|
211
|
+
{
|
|
212
|
+
...withGeneratedStyle(
|
|
213
|
+
getIndexedPartProps(slotProps?.timeAxisLabel, index),
|
|
214
|
+
axisStyle("x", axisLabel.position)
|
|
215
|
+
),
|
|
216
|
+
children: axisLabel.label
|
|
217
|
+
},
|
|
218
|
+
`${axisLabel.position}-${index}`
|
|
219
|
+
)),
|
|
220
|
+
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
221
|
+
"li",
|
|
222
|
+
{
|
|
223
|
+
"data-part": "crosshair-time",
|
|
224
|
+
...slotProps?.crosshairTime,
|
|
225
|
+
style: {
|
|
226
|
+
...crosshairFor(activePointIndex, void 0),
|
|
227
|
+
...slotProps?.crosshairTime?.style
|
|
228
|
+
},
|
|
229
|
+
children: String(crosshairPoint.time)
|
|
230
|
+
}
|
|
231
|
+
) : null
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
) })
|
|
235
|
+
] }) }),
|
|
236
|
+
/* @__PURE__ */ jsxs(
|
|
237
|
+
"ol",
|
|
238
|
+
{
|
|
239
|
+
"data-part": "value-axis",
|
|
240
|
+
"data-axis": "value",
|
|
241
|
+
"aria-label": `${label} values`,
|
|
242
|
+
...slotProps?.valueAxis,
|
|
243
|
+
children: [
|
|
244
|
+
valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
|
|
245
|
+
"li",
|
|
246
|
+
{
|
|
247
|
+
...withGeneratedStyle(
|
|
248
|
+
getIndexedPartProps(slotProps?.valueAxisLabel, index),
|
|
249
|
+
axisStyle("y", axisLabel.position)
|
|
250
|
+
),
|
|
251
|
+
children: axisLabel.label
|
|
252
|
+
},
|
|
253
|
+
`${axisLabel.position}-${index}`
|
|
254
|
+
)),
|
|
255
|
+
interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
|
|
256
|
+
"li",
|
|
257
|
+
{
|
|
258
|
+
"data-part": "crosshair-value",
|
|
259
|
+
...slotProps?.crosshairValue,
|
|
260
|
+
style: { ...cursorStyle(cursorY), ...slotProps?.crosshairValue?.style },
|
|
261
|
+
children: crosshairPoint.value
|
|
262
|
+
}
|
|
263
|
+
) : null
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
)
|
|
174
267
|
] }),
|
|
175
|
-
/* @__PURE__ */ jsxs("table", { "data-part": "data", "aria-label": `${label} data`, children: [
|
|
176
|
-
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
177
|
-
/* @__PURE__ */ jsx("th", { scope: "col", children: "Time" }),
|
|
178
|
-
/* @__PURE__ */ jsx("th", { scope: "col", children: "Value" })
|
|
268
|
+
/* @__PURE__ */ jsxs("table", { "data-part": "data", "aria-label": `${label} data`, ...slotProps?.dataTable, children: [
|
|
269
|
+
/* @__PURE__ */ jsx("thead", { ...slotProps?.dataTableHead, children: /* @__PURE__ */ jsxs("tr", { ...slotProps?.dataTableHeaderRow, children: [
|
|
270
|
+
/* @__PURE__ */ jsx("th", { scope: "col", ...slotProps?.dataTableTimeHeader, children: "Time" }),
|
|
271
|
+
/* @__PURE__ */ jsx("th", { scope: "col", ...slotProps?.dataTableValueHeader, children: "Value" })
|
|
179
272
|
] }) }),
|
|
180
|
-
/* @__PURE__ */ jsx("tbody", { children: data.map((point, index) => /* @__PURE__ */ jsxs(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
273
|
+
/* @__PURE__ */ jsx("tbody", { ...slotProps?.dataTableBody, children: data.map((point, index) => /* @__PURE__ */ jsxs(
|
|
274
|
+
"tr",
|
|
275
|
+
{
|
|
276
|
+
...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index),
|
|
277
|
+
children: [
|
|
278
|
+
/* @__PURE__ */ jsx(
|
|
279
|
+
"th",
|
|
280
|
+
{
|
|
281
|
+
scope: "row",
|
|
282
|
+
...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index),
|
|
283
|
+
children: String(point.time)
|
|
284
|
+
}
|
|
285
|
+
),
|
|
286
|
+
/* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index), children: point.value })
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
`${point.time}-${index}`
|
|
290
|
+
)) })
|
|
184
291
|
] })
|
|
185
292
|
] })
|
|
186
293
|
},
|
|
@@ -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 { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps } 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 getIndexedPartProps<T extends object>(\n props: (T & { readonly byItemIndex?: Readonly<Record<number, T>> }) | undefined,\n index: number,\n): T {\n const { byItemIndex, ...common } = props ?? {};\n return mergeRepeatedSlotProps(common as T, byItemIndex?.[index]);\n}\n\nfunction withGeneratedStyle<T extends { readonly style?: object | undefined }>(\n props: T,\n generatedStyle: object,\n): T {\n return { ...props, style: { ...generatedStyle, ...props.style } };\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 const { ref: pointRef, ...pointProps } = pointSlotProps;\n const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index);\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 {...pointProps}\n {...(pointRef ? { ref: forwardPointRef(pointRef) } : {})}\n style={{\n ...pointStyle(geometry, isActive ? cursorY : undefined),\n ...pointSlotProps.style,\n }}\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 {...pointHitSlotProps}\n onClick={composeEventHandlers(pointHitSlotProps.onClick, () => onPointClick?.(index))}\n onKeyDown={composeEventHandlers(pointHitSlotProps.onKeyDown, handleKeyDown)}\n onPointerLeave={composeEventHandlers(pointHitSlotProps.onPointerLeave, () =>\n onPointPointerLeave?.(),\n )}\n onPointerMove={composeEventHandlers(\n pointHitSlotProps.onPointerMove,\n (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 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 = consumerProps[\"aria-label\"] ?? \"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 data-part=\"points\"\n aria-label={`${label} points`}\n {...slotProps?.points}\n style={{ ...pointsStyle(data.length), ...slotProps?.points?.style }}\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 \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n ...consumerProps,\n children: (\n <>\n <figcaption {...slotProps?.caption}>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div\n data-part=\"readout\"\n aria-live={announceReadout ? \"polite\" : \"off\"}\n {...slotProps?.readout}\n >\n <span data-part=\"readout-time\" {...slotProps?.readoutTime}>\n {String(readoutPoint.time)}\n </span>\n <span {...slotProps?.readoutValue}>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div data-part=\"plot\" aria-hidden={interactive ? undefined : true} {...slotProps?.plot}>\n <div data-part=\"scroll-viewport\" {...slotProps?.scrollViewport}>\n <div data-part=\"canvas\" {...slotProps?.canvas}>\n <div data-part=\"viewport\" {...slotProps?.viewport}>\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n {...slotProps?.crosshair}\n style={{\n ...crosshairFor(activePointIndex, cursorY),\n ...slotProps?.crosshair?.style,\n }}\n >\n <span data-part=\"crosshair-marker\" {...slotProps?.crosshairMarker}>\n +\n </span>\n </div>\n ) : null}\n </div>\n <div data-part=\"time-viewport\" {...slotProps?.timeViewport}>\n <ol\n data-part=\"time-axis\"\n data-axis=\"time\"\n aria-label={`${label} dates`}\n {...slotProps?.timeAxis}\n >\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.timeAxisLabel, index),\n axisStyle(\"x\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-time\"\n {...slotProps?.crosshairTime}\n style={{\n ...crosshairFor(activePointIndex, undefined),\n ...slotProps?.crosshairTime?.style,\n }}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n data-part=\"value-axis\"\n data-axis=\"value\"\n aria-label={`${label} values`}\n {...slotProps?.valueAxis}\n >\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.valueAxisLabel, index),\n axisStyle(\"y\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-value\"\n {...slotProps?.crosshairValue}\n style={{ ...cursorStyle(cursorY), ...slotProps?.crosshairValue?.style }}\n >\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table data-part=\"data\" aria-label={`${label} data`} {...slotProps?.dataTable}>\n <thead {...slotProps?.dataTableHead}>\n <tr {...slotProps?.dataTableHeaderRow}>\n <th scope=\"col\" {...slotProps?.dataTableTimeHeader}>\n Time\n </th>\n <th scope=\"col\" {...slotProps?.dataTableValueHeader}>\n Value\n </th>\n </tr>\n </thead>\n <tbody {...slotProps?.dataTableBody}>\n {data.map((point, index) => (\n <tr\n key={`${point.time}-${index}`}\n {...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index)}\n >\n <th\n scope=\"row\"\n {...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index)}\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;AAY3E,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,
|
|
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;AAY3E,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,CAkKrB;yBApKe,eAAe"}
|
|
@@ -23,6 +23,7 @@ function LineChartClient(props) {
|
|
|
23
23
|
onPointClick: consumerOnPointClick,
|
|
24
24
|
onPointPointerLeave: consumerOnPointPointerLeave,
|
|
25
25
|
onPointPointerMove: consumerOnPointPointerMove,
|
|
26
|
+
slotProps,
|
|
26
27
|
...consumerProps
|
|
27
28
|
} = props;
|
|
28
29
|
const live = visibleCount !== void 0 && visibleCount > 0;
|
|
@@ -40,9 +41,10 @@ function LineChartClient(props) {
|
|
|
40
41
|
visibleCount,
|
|
41
42
|
itemWidth: viewport.itemWidth,
|
|
42
43
|
figureHeight: figureSize?.height,
|
|
43
|
-
scrollVariable: "--line-scroll-x"
|
|
44
|
+
scrollVariable: "--line-scroll-x",
|
|
45
|
+
consumerStyle
|
|
44
46
|
});
|
|
45
|
-
useScrollbarReserve(liveWindow.chartRef, "--line-scrollbar-size");
|
|
47
|
+
useScrollbarReserve(liveWindow.chartRef, "--line-scrollbar-size", consumerStyle);
|
|
46
48
|
const [cursor, setCursor] = useState(null);
|
|
47
49
|
const [selectedPointIndex, setSelectedPointIndex] = useState();
|
|
48
50
|
const chartRef = useMergedRefs(viewport.ref, consumerRef, liveWindow.chartRef);
|
|
@@ -69,8 +71,8 @@ function LineChartClient(props) {
|
|
|
69
71
|
[data, live]
|
|
70
72
|
);
|
|
71
73
|
const style = {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
"--line-scale": String(viewport.scale),
|
|
75
|
+
...consumerStyle
|
|
74
76
|
};
|
|
75
77
|
if (!live) {
|
|
76
78
|
const chartProps2 = {
|
|
@@ -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,16 @@ 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
|
+
...liveScrollportProps,
|
|
135
|
+
...liveScrollportRef ? { ref: liveScrollportRef } : {},
|
|
136
|
+
slotProps: {
|
|
137
|
+
...slotProps?.liveSpacer ? { spacer: slotProps.liveSpacer } : {},
|
|
138
|
+
...slotProps?.livePointRow ? { row: slotProps.livePointRow } : {}
|
|
128
139
|
}
|
|
129
140
|
}
|
|
130
141
|
);
|
|
@@ -133,7 +144,8 @@ function LineChartClient(props) {
|
|
|
133
144
|
"--line-content-size": `${contentSize}px`,
|
|
134
145
|
"--line-plot-height": `${plotHeight}px`,
|
|
135
146
|
// One virtual row: the viewport holds `visibleCount` of them.
|
|
136
|
-
"--line-run": String(100 / visibleCount)
|
|
147
|
+
"--line-run": String(100 / visibleCount),
|
|
148
|
+
...consumerStyle
|
|
137
149
|
};
|
|
138
150
|
const chartProps = {
|
|
139
151
|
...consumerProps,
|
|
@@ -144,6 +156,7 @@ function LineChartClient(props) {
|
|
|
144
156
|
pointLayer,
|
|
145
157
|
cursorY: cursor?.offsetY,
|
|
146
158
|
interactive: true,
|
|
159
|
+
...slotProps ? { slotProps } : {},
|
|
147
160
|
ref: chartRef,
|
|
148
161
|
selectedPointIndex: toSliceIndex(selectedPointIndex),
|
|
149
162
|
slotCount: data.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport type { CSSProperties, ElementType, ReactElement, Ref } from \"react\";\nimport { useChartViewport } from \"../../../hooks/use-chart-viewport.js\";\nimport { useMergedRefs } from \"../../../hooks/use-merged-refs.js\";\nimport { useResizeObserver } from \"../../../hooks/use-resize-observer.js\";\nimport {\n liveTimeAxis,\n useLiveChartWindow,\n} from \"../../internal/live-chart/use-live-chart-window.js\";\nimport { useScrollbarReserve } from \"../../internal/chart-scrollbar/use-scrollbar-reserve.js\";\nimport { VirtualScroll } from \"../../virtual-scroll/VirtualScroll.js\";\nimport { LineChart, LineChartPoint } from \"../LineChart.js\";\nimport { getValueBounds } from \"../line-chart-geometry.js\";\nimport type {\n LineChartClientProps,\n LineChartData,\n LineChartPointerPosition,\n LineChartProps,\n LineChartViewProps,\n} from \"../types.js\";\n\ninterface CursorState extends LineChartPointerPosition {}\n\ninterface InteractiveLineStyle extends CSSProperties {\n \"--line-scale\": string;\n \"--line-content-size\"?: string;\n \"--line-plot-height\"?: string;\n \"--line-run\"?: string;\n}\n\ninterface LivePoint {\n readonly id: string;\n readonly point: LineChartData;\n}\n\n/**\n * `[data-part=\"plot\"]`'s fixed price-axis column (4.5rem) plus its grid gap\n * (0.75rem) — see line-chart.css. `useChartViewport` measures the whole\n * `<figure>`, but points only ever get the width left over after this\n * column, so it must be subtracted before sizing `minItemWidth`.\n */\nconst Y_AXIS_COLUMN_WIDTH = 72 + 12;\n\nexport function LineChartClient<TAs extends ElementType = \"figure\">(\n props: LineChartClientProps<TAs>,\n): ReactElement | null {\n const {\n data,\n visibleCount,\n xAxis,\n ref: consumerRef,\n style: consumerStyle,\n onPointClick: consumerOnPointClick,\n onPointPointerLeave: consumerOnPointPointerLeave,\n onPointPointerMove: consumerOnPointPointerMove,\n ...consumerProps\n } = props as LineChartClientProps<\"figure\"> & {\n ref?: Ref<HTMLElement>;\n style?: CSSProperties;\n };\n const live = visibleCount !== undefined && visibleCount > 0;\n const viewport = useChartViewport(\n live\n ? {\n enabled: false,\n initialScale: 1,\n itemCount: visibleCount,\n measuredWidthOffset: Y_AXIS_COLUMN_WIDTH,\n }\n : { itemCount: data.length, measuredWidthOffset: Y_AXIS_COLUMN_WIDTH, minItemWidth: 24 },\n );\n const figureSize = useResizeObserver(viewport.ref);\n const liveWindow = useLiveChartWindow({\n count: data.length,\n visibleCount,\n itemWidth: viewport.itemWidth,\n figureHeight: figureSize?.height,\n scrollVariable: \"--line-scroll-x\",\n });\n useScrollbarReserve(liveWindow.chartRef, \"--line-scrollbar-size\");\n // Cursor and selection hold absolute indices so they survive scrolling and appends.\n const [cursor, setCursor] = useState<CursorState | null>(null);\n const [selectedPointIndex, setSelectedPointIndex] = useState<number | undefined>();\n const chartRef = useMergedRefs<HTMLElement>(viewport.ref, consumerRef, liveWindow.chartRef);\n const handlePointClick = useCallback(\n (index: number) => {\n setSelectedPointIndex(index);\n consumerOnPointClick?.(index);\n },\n [consumerOnPointClick],\n );\n const handlePointPointerLeave = useCallback(() => {\n setCursor(null);\n consumerOnPointPointerLeave?.();\n }, [consumerOnPointPointerLeave]);\n const handlePointPointerMove = useCallback(\n (position: LineChartPointerPosition) => {\n setCursor(position);\n consumerOnPointPointerMove?.(position);\n },\n [consumerOnPointPointerMove],\n );\n const liveItems = useMemo<readonly LivePoint[]>(\n () => (live ? data.map((point, index) => ({ id: String(index), point })) : []),\n [data, live],\n );\n\n const style: InteractiveLineStyle = {\n ...consumerStyle,\n \"--line-scale\": String(viewport.scale),\n };\n\n if (!live) {\n const chartProps = {\n ...consumerProps,\n ...(xAxis ? { xAxis } : {}),\n data,\n activePointIndex: cursor?.index,\n cursorY: cursor?.offsetY,\n interactive: true,\n onPointClick: handlePointClick,\n onPointPointerLeave: handlePointPointerLeave,\n onPointPointerMove: handlePointPointerMove,\n ref: chartRef,\n selectedPointIndex,\n style,\n } as LineChartProps<\"figure\">;\n return <LineChart {...chartProps} />;\n }\n\n const { sliceStart, sliceEnd, contentSize, plotHeight } = liveWindow;\n const slice = data.slice(sliceStart, sliceEnd);\n const { min, max } = getValueBounds(slice);\n const toSliceIndex = (index: number | undefined): number | undefined =>\n index !== undefined && index >= sliceStart && index < sliceEnd ? index - sliceStart : undefined;\n const pointLayer = (\n <VirtualScroll\n height={plotHeight}\n items={liveItems}\n orientation=\"horizontal\"\n overscan={2}\n rowHeight={viewport.itemWidth}\n scrollRef={liveWindow.scrollRef}\n onRangeChange={liveWindow.onRangeChange}\n renderRow={({ point }, index) => {\n // Overscan points stay inert, so focus never scrolls hidden points into view.\n const inSlice = index >= sliceStart && index < sliceEnd;\n const isActive = cursor?.index === index;\n return (\n <LineChartPoint\n as=\"div\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={inSlice}\n isActive={isActive}\n isSelected={selectedPointIndex === index}\n cursorY={isActive ? cursor?.offsetY : undefined}\n onPointClick={handlePointClick}\n onPointPointerLeave={handlePointPointerLeave}\n onPointPointerMove={handlePointPointerMove}\n />\n );\n }}\n />\n );\n\n const liveStyle: InteractiveLineStyle = {\n ...style,\n \"--line-content-size\": `${contentSize}px`,\n \"--line-plot-height\": `${plotHeight}px`,\n // One virtual row: the viewport holds `visibleCount` of them.\n \"--line-run\": String(100 / visibleCount),\n };\n const chartProps = {\n ...consumerProps,\n data: slice,\n xAxis: xAxis ?? liveTimeAxis(data, sliceStart, sliceEnd, visibleCount),\n activePointIndex: toSliceIndex(cursor?.index),\n announceReadout: false,\n pointLayer,\n cursorY: cursor?.offsetY,\n interactive: true,\n ref: chartRef,\n selectedPointIndex: toSliceIndex(selectedPointIndex),\n slotCount: data.length,\n slotOffset: sliceStart,\n style: liveStyle,\n } as LineChartProps<\"figure\"> & LineChartViewProps;\n\n return <LineChart {...chartProps} />;\n}\nLineChartClient.displayName = \"LineChartClient\";\n"],"mappings":"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","names":["chartProps"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport type { CSSProperties, ElementType, ReactElement, Ref } from \"react\";\nimport { useChartViewport } from \"../../../hooks/use-chart-viewport.js\";\nimport { useMergedRefs } from \"../../../hooks/use-merged-refs.js\";\nimport { useResizeObserver } from \"../../../hooks/use-resize-observer.js\";\nimport {\n liveTimeAxis,\n useLiveChartWindow,\n} from \"../../internal/live-chart/use-live-chart-window.js\";\nimport { useScrollbarReserve } from \"../../internal/chart-scrollbar/use-scrollbar-reserve.js\";\nimport { VirtualScroll } from \"../../virtual-scroll/VirtualScroll.js\";\nimport { LineChart, LineChartPoint } from \"../LineChart.js\";\nimport { getValueBounds } from \"../line-chart-geometry.js\";\nimport type {\n LineChartClientProps,\n LineChartData,\n LineChartPointerPosition,\n LineChartProps,\n LineChartViewProps,\n} from \"../types.js\";\n\ninterface CursorState extends LineChartPointerPosition {}\n\ninterface InteractiveLineStyle extends CSSProperties {\n \"--line-scale\": string;\n \"--line-content-size\"?: string;\n \"--line-plot-height\"?: string;\n \"--line-run\"?: string;\n}\n\ninterface LivePoint {\n readonly id: string;\n readonly point: LineChartData;\n}\n\n/**\n * `[data-part=\"plot\"]`'s fixed price-axis column (4.5rem) plus its grid gap\n * (0.75rem) — see line-chart.css. `useChartViewport` measures the whole\n * `<figure>`, but points only ever get the width left over after this\n * column, so it must be subtracted before sizing `minItemWidth`.\n */\nconst Y_AXIS_COLUMN_WIDTH = 72 + 12;\n\nexport function LineChartClient<TAs extends ElementType = \"figure\">(\n props: LineChartClientProps<TAs>,\n): ReactElement | null {\n const {\n data,\n visibleCount,\n xAxis,\n ref: consumerRef,\n style: consumerStyle,\n onPointClick: consumerOnPointClick,\n onPointPointerLeave: consumerOnPointPointerLeave,\n onPointPointerMove: consumerOnPointPointerMove,\n slotProps,\n ...consumerProps\n } = props as LineChartClientProps<\"figure\"> & {\n ref?: Ref<HTMLElement>;\n style?: CSSProperties;\n };\n const live = visibleCount !== undefined && visibleCount > 0;\n const viewport = useChartViewport(\n live\n ? {\n enabled: false,\n initialScale: 1,\n itemCount: visibleCount,\n measuredWidthOffset: Y_AXIS_COLUMN_WIDTH,\n }\n : { itemCount: data.length, measuredWidthOffset: Y_AXIS_COLUMN_WIDTH, minItemWidth: 24 },\n );\n const figureSize = useResizeObserver(viewport.ref);\n const liveWindow = useLiveChartWindow({\n count: data.length,\n visibleCount,\n itemWidth: viewport.itemWidth,\n figureHeight: figureSize?.height,\n scrollVariable: \"--line-scroll-x\",\n consumerStyle,\n });\n useScrollbarReserve(liveWindow.chartRef, \"--line-scrollbar-size\", consumerStyle);\n // Cursor and selection hold absolute indices so they survive scrolling and appends.\n const [cursor, setCursor] = useState<CursorState | null>(null);\n const [selectedPointIndex, setSelectedPointIndex] = useState<number | undefined>();\n const chartRef = useMergedRefs<HTMLElement>(viewport.ref, consumerRef, liveWindow.chartRef);\n const handlePointClick = useCallback(\n (index: number) => {\n setSelectedPointIndex(index);\n consumerOnPointClick?.(index);\n },\n [consumerOnPointClick],\n );\n const handlePointPointerLeave = useCallback(() => {\n setCursor(null);\n consumerOnPointPointerLeave?.();\n }, [consumerOnPointPointerLeave]);\n const handlePointPointerMove = useCallback(\n (position: LineChartPointerPosition) => {\n setCursor(position);\n consumerOnPointPointerMove?.(position);\n },\n [consumerOnPointPointerMove],\n );\n const liveItems = useMemo<readonly LivePoint[]>(\n () => (live ? data.map((point, index) => ({ id: String(index), point })) : []),\n [data, live],\n );\n\n const style: InteractiveLineStyle = {\n \"--line-scale\": String(viewport.scale),\n ...consumerStyle,\n };\n\n if (!live) {\n const chartProps = {\n ...consumerProps,\n ...(xAxis ? { xAxis } : {}),\n data,\n activePointIndex: cursor?.index,\n cursorY: cursor?.offsetY,\n interactive: true,\n onPointClick: handlePointClick,\n onPointPointerLeave: handlePointPointerLeave,\n onPointPointerMove: handlePointPointerMove,\n ...(slotProps ? { slotProps } : {}),\n ref: chartRef,\n selectedPointIndex,\n style,\n } as LineChartProps<\"figure\">;\n return <LineChart {...chartProps} />;\n }\n\n const { sliceStart, sliceEnd, contentSize, plotHeight } = liveWindow;\n const slice = data.slice(sliceStart, sliceEnd);\n const { min, max } = getValueBounds(slice);\n const toSliceIndex = (index: number | undefined): number | undefined =>\n index !== undefined && index >= sliceStart && index < sliceEnd ? index - sliceStart : undefined;\n const { ref: liveScrollportRef, ...liveScrollportProps } = slotProps?.liveScrollport ?? {};\n const pointLayer = (\n <VirtualScroll\n height={plotHeight}\n items={liveItems}\n orientation=\"horizontal\"\n overscan={2}\n rowHeight={viewport.itemWidth}\n scrollRef={liveWindow.scrollRef}\n onRangeChange={liveWindow.onRangeChange}\n renderRow={({ point }, index) => {\n // Overscan points stay inert, so focus never scrolls hidden points into view.\n const inSlice = index >= sliceStart && index < sliceEnd;\n const isActive = cursor?.index === index;\n return (\n <LineChartPoint\n as=\"div\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={inSlice}\n isActive={isActive}\n isSelected={selectedPointIndex === index}\n cursorY={isActive ? cursor?.offsetY : undefined}\n onPointClick={handlePointClick}\n onPointPointerLeave={handlePointPointerLeave}\n onPointPointerMove={handlePointPointerMove}\n slotProps={slotProps}\n />\n );\n }}\n {...liveScrollportProps}\n {...(liveScrollportRef ? { ref: liveScrollportRef } : {})}\n slotProps={{\n ...(slotProps?.liveSpacer ? { spacer: slotProps.liveSpacer } : {}),\n ...(slotProps?.livePointRow ? { row: slotProps.livePointRow } : {}),\n }}\n />\n );\n\n const liveStyle: InteractiveLineStyle = {\n ...style,\n \"--line-content-size\": `${contentSize}px`,\n \"--line-plot-height\": `${plotHeight}px`,\n // One virtual row: the viewport holds `visibleCount` of them.\n \"--line-run\": String(100 / visibleCount),\n ...consumerStyle,\n };\n const chartProps = {\n ...consumerProps,\n data: slice,\n xAxis: xAxis ?? liveTimeAxis(data, sliceStart, sliceEnd, visibleCount),\n activePointIndex: toSliceIndex(cursor?.index),\n announceReadout: false,\n pointLayer,\n cursorY: cursor?.offsetY,\n interactive: true,\n ...(slotProps ? { slotProps } : {}),\n ref: chartRef,\n selectedPointIndex: toSliceIndex(selectedPointIndex),\n slotCount: data.length,\n slotOffset: sliceStart,\n style: liveStyle,\n } as LineChartProps<\"figure\"> & LineChartViewProps;\n\n return <LineChart {...chartProps} />;\n}\nLineChartClient.displayName = \"LineChartClient\";\n"],"mappings":"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","names":["chartProps"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { LineChartClient } from "./LineChartClient.js";
|
|
2
|
-
export type { LineChartAxisLabel, LineChartClientOwnProps, LineChartClientProps, LineChartData, LineChartOwnProps, LineChartPointerPosition, LineChartProps, } from "../types.js";
|
|
2
|
+
export type { LineChartAxisLabel, LineChartClientOwnProps, LineChartClientProps, LineChartData, LineChartOwnProps, LineChartPointerPosition, LineChartProps, LineChartSlotProps, } from "../types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/line-chart/client/index.ts"],"sourcesContent":["export { LineChartClient } from \"./LineChartClient.js\";\nexport type {\n LineChartAxisLabel,\n LineChartClientOwnProps,\n LineChartClientProps,\n LineChartData,\n LineChartOwnProps,\n LineChartPointerPosition,\n LineChartProps,\n} from \"../types.js\";\n"],"mappings":"AAAA,SAAS,uBAAuB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/line-chart/client/index.ts"],"sourcesContent":["export { LineChartClient } from \"./LineChartClient.js\";\nexport type {\n LineChartAxisLabel,\n LineChartClientOwnProps,\n LineChartClientProps,\n LineChartData,\n LineChartOwnProps,\n LineChartPointerPosition,\n LineChartProps,\n LineChartSlotProps,\n} from \"../types.js\";\n"],"mappings":"AAAA,SAAS,uBAAuB;","names":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { LineChart } from "./LineChart.js";
|
|
2
|
-
export type { LineChartAxisLabel, LineChartData, LineChartOwnProps, LineChartPointerPosition, LineChartProps, } from "./types.js";
|
|
2
|
+
export type { LineChartAxisLabel, LineChartData, LineChartOwnProps, LineChartPointerPosition, LineChartProps, LineChartSlotProps, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/line-chart/index.ts"],"sourcesContent":["export { LineChart } from \"./LineChart.js\";\nexport type {\n LineChartAxisLabel,\n LineChartData,\n LineChartOwnProps,\n LineChartPointerPosition,\n LineChartProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,iBAAiB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/line-chart/index.ts"],"sourcesContent":["export { LineChart } from \"./LineChart.js\";\nexport type {\n LineChartAxisLabel,\n LineChartData,\n LineChartOwnProps,\n LineChartPointerPosition,\n LineChartProps,\n LineChartSlotProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,iBAAiB;","names":[]}
|