@gunkin/uiify 0.0.24-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 +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 +20 -1
- package/agents/reference/components/candle-chart.md +50 -2
- package/agents/reference/components/carousel.md +30 -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 +20 -9
- package/agents/reference/components/context-menu.md +37 -5
- package/agents/reference/components/drawer.md +30 -5
- package/agents/reference/components/dropdown-menu.md +4 -3
- package/agents/reference/components/field.md +3 -3
- package/agents/reference/components/form-error-summary.md +11 -1
- package/agents/reference/components/line-chart.md +41 -2
- package/agents/reference/components/modal.md +22 -3
- package/agents/reference/components/pagination.md +13 -1
- package/agents/reference/components/radio-group.md +8 -2
- package/agents/reference/components/rating.md +8 -2
- package/agents/reference/components/segmented-control.md +8 -3
- 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 +22 -1
- package/agents/reference/components/toast.md +55 -10
- package/agents/reference/components/toggle-group.md +5 -3
- package/agents/reference/components/toggle.md +16 -3
- package/agents/reference/components/toolbar.md +4 -4
- package/agents/reference/components/virtual-scroll.md +31 -2
- package/agents/reference/elements/choice.md +20 -7
- 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/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,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ComponentPropsWithRef, ElementType } from "react";
|
|
2
2
|
import type { RenderableProps } from "@gunkin/uiify/core/render";
|
|
3
3
|
export interface FieldRootOwnProps {
|
|
4
4
|
/** Stable id for deterministic label/control/error wiring. Required. */
|
|
@@ -18,7 +18,7 @@ export interface FieldLabelOwnProps extends FieldPartOwnProps {
|
|
|
18
18
|
readonly disabled?: boolean;
|
|
19
19
|
readonly required?: boolean;
|
|
20
20
|
}
|
|
21
|
-
export type FieldLabelProps = FieldLabelOwnProps & Omit<
|
|
21
|
+
export type FieldLabelProps = FieldLabelOwnProps & Omit<ComponentPropsWithRef<"label">, "htmlFor" | keyof FieldLabelOwnProps>;
|
|
22
22
|
export interface FieldControlOwnProps extends FieldPartOwnProps {
|
|
23
23
|
readonly disabled?: boolean;
|
|
24
24
|
readonly invalid?: boolean;
|
|
@@ -32,9 +32,9 @@ export type FieldControlProps<TAs extends ElementType = "div"> = RenderableProps
|
|
|
32
32
|
export interface FieldDescriptionOwnProps extends FieldPartOwnProps {
|
|
33
33
|
readonly disabled?: boolean;
|
|
34
34
|
}
|
|
35
|
-
export type FieldDescriptionProps = FieldDescriptionOwnProps & Omit<
|
|
35
|
+
export type FieldDescriptionProps = FieldDescriptionOwnProps & Omit<ComponentPropsWithRef<"p">, keyof FieldDescriptionOwnProps>;
|
|
36
36
|
export interface FieldErrorOwnProps extends FieldPartOwnProps {
|
|
37
37
|
readonly invalid?: boolean;
|
|
38
38
|
}
|
|
39
|
-
export type FieldErrorProps = FieldErrorOwnProps & Omit<
|
|
39
|
+
export type FieldErrorProps = FieldErrorOwnProps & Omit<ComponentPropsWithRef<"p">, keyof FieldErrorOwnProps>;
|
|
40
40
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,CACZ,CAAC;AAEF;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,kBAAkB,CAAC,CAAC;AAE7E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC9E,GAAG,EACH,oBAAoB,EACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAC1D,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormErrorSummary.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FormErrorSummary.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,EAClE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CA8CrB;yBAhDe,gBAAgB"}
|
|
@@ -1,15 +1,47 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createElement } from "react";
|
|
2
3
|
import { useRenderElement } from "@gunkin/uiify/core/render";
|
|
4
|
+
import { omitProps, resolveRepeatedSlotProps } from "../../core/slot-props.js";
|
|
3
5
|
function FormErrorSummary(props) {
|
|
4
|
-
const { as, render, title, errors, ...consumerProps } = props;
|
|
6
|
+
const { as, render, title, errors, slotProps, ...consumerProps } = props;
|
|
5
7
|
const element = useRenderElement({
|
|
6
8
|
as,
|
|
7
9
|
defaultTag: "section",
|
|
8
10
|
props: {
|
|
9
11
|
...consumerProps,
|
|
10
12
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
-
/* @__PURE__ */ jsx(
|
|
12
|
-
|
|
13
|
+
/* @__PURE__ */ jsx(
|
|
14
|
+
"h2",
|
|
15
|
+
{
|
|
16
|
+
...omitProps(slotProps?.title, ["data-part", "children", "dangerouslySetInnerHTML"]),
|
|
17
|
+
"data-part": "title",
|
|
18
|
+
children: title
|
|
19
|
+
}
|
|
20
|
+
),
|
|
21
|
+
/* @__PURE__ */ jsx(
|
|
22
|
+
"ul",
|
|
23
|
+
{
|
|
24
|
+
...omitProps(slotProps?.list, ["data-part", "children", "dangerouslySetInnerHTML"]),
|
|
25
|
+
"data-part": "list",
|
|
26
|
+
children: errors.map((error, index) => /* @__PURE__ */ createElement(
|
|
27
|
+
"li",
|
|
28
|
+
{
|
|
29
|
+
...resolveRepeatedSlotProps(slotProps?.item, error.href, ["data-part"]),
|
|
30
|
+
"data-part": "item",
|
|
31
|
+
key: `${error.href}-${index}`
|
|
32
|
+
},
|
|
33
|
+
/* @__PURE__ */ jsx(
|
|
34
|
+
"a",
|
|
35
|
+
{
|
|
36
|
+
...resolveRepeatedSlotProps(slotProps?.link, error.href, ["data-part", "href"]),
|
|
37
|
+
"data-part": "link",
|
|
38
|
+
href: error.href,
|
|
39
|
+
children: error.message
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
))
|
|
43
|
+
}
|
|
44
|
+
)
|
|
13
45
|
] }),
|
|
14
46
|
"data-uiify-form-error-summary": ""
|
|
15
47
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { FormErrorSummaryProps } from \"./types.js\";\n\nexport function FormErrorSummary<TAs extends ElementType = \"section\">(\n props: FormErrorSummaryProps<TAs>,\n): ReactElement | null {\n const { as, render, title, errors, ...consumerProps }
|
|
1
|
+
{"version":3,"sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { omitProps, resolveRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport type { FormErrorSummaryProps } from \"./types.js\";\n\nexport function FormErrorSummary<TAs extends ElementType = \"section\">(\n props: FormErrorSummaryProps<TAs>,\n): ReactElement | null {\n const { as, render, title, errors, slotProps, ...consumerProps } =\n props as FormErrorSummaryProps<\"section\">;\n\n const element = useRenderElement({\n as,\n defaultTag: \"section\",\n props: {\n ...consumerProps,\n children: (\n <>\n <h2\n {...omitProps(slotProps?.title, [\"data-part\", \"children\", \"dangerouslySetInnerHTML\"])}\n data-part=\"title\"\n >\n {title}\n </h2>\n <ul\n {...omitProps(slotProps?.list, [\"data-part\", \"children\", \"dangerouslySetInnerHTML\"])}\n data-part=\"list\"\n >\n {errors.map((error, index) => (\n <li\n {...resolveRepeatedSlotProps(slotProps?.item, error.href, [\"data-part\"])}\n data-part=\"item\"\n key={`${error.href}-${index}`}\n >\n <a\n {...resolveRepeatedSlotProps(slotProps?.link, error.href, [\"data-part\", \"href\"])}\n data-part=\"link\"\n href={error.href}\n >\n {error.message}\n </a>\n </li>\n ))}\n </ul>\n </>\n ),\n \"data-uiify-form-error-summary\": \"\",\n },\n render,\n state: {},\n });\n\n return errors.length === 0 ? null : element;\n}\n\nFormErrorSummary.displayName = \"FormErrorSummary\";\n"],"mappings":"AAiBQ,mBACE,KADF;AAYM;AA5Bd,SAAS,wBAAwB;AACjC,SAAS,WAAW,gCAAgC;AAG7C,SAAS,iBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,OAAO,QAAQ,WAAW,GAAG,cAAc,IAC7D;AAEF,QAAM,UAAU,iBAAiB;AAAA,IAC/B;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UACE,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,UAAU,WAAW,OAAO,CAAC,aAAa,YAAY,yBAAyB,CAAC;AAAA,YACpF,aAAU;AAAA,YAET;AAAA;AAAA,QACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,UAAU,WAAW,MAAM,CAAC,aAAa,YAAY,yBAAyB,CAAC;AAAA,YACnF,aAAU;AAAA,YAET,iBAAO,IAAI,CAAC,OAAO,UAClB;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG,yBAAyB,WAAW,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC;AAAA,gBACvE,aAAU;AAAA,gBACV,KAAK,GAAG,MAAM,IAAI,IAAI,KAAK;AAAA;AAAA,cAE3B;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,yBAAyB,WAAW,MAAM,MAAM,MAAM,CAAC,aAAa,MAAM,CAAC;AAAA,kBAC/E,aAAU;AAAA,kBACV,MAAM,MAAM;AAAA,kBAEX,gBAAM;AAAA;AAAA,cACT;AAAA,YACF,CACD;AAAA;AAAA,QACH;AAAA,SACF;AAAA,MAEF,iCAAiC;AAAA,IACnC;AAAA,IACA;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AAED,SAAO,OAAO,WAAW,IAAI,OAAO;AACtC;AAEA,iBAAiB,cAAc;","names":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { FormErrorSummary } from "./FormErrorSummary.js";
|
|
2
|
-
export type { FormErrorSummaryError, FormErrorSummaryOwnProps, FormErrorSummaryProps, } from "./types.js";
|
|
2
|
+
export type { FormErrorSummaryError, FormErrorSummaryOwnProps, FormErrorSummaryProps, FormErrorSummarySlotProps, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/form-error-summary/index.ts"],"sourcesContent":["export { FormErrorSummary } from \"./FormErrorSummary.js\";\nexport type {\n FormErrorSummaryError,\n FormErrorSummaryOwnProps,\n FormErrorSummaryProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,wBAAwB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/form-error-summary/index.ts"],"sourcesContent":["export { FormErrorSummary } from \"./FormErrorSummary.js\";\nexport type {\n FormErrorSummaryError,\n FormErrorSummaryOwnProps,\n FormErrorSummaryProps,\n FormErrorSummarySlotProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,wBAAwB;","names":[]}
|
|
@@ -1,12 +1,31 @@
|
|
|
1
|
-
import type { ElementType, ReactNode } from "react";
|
|
1
|
+
import type { ComponentPropsWithRef, ElementType, ReactNode } from "react";
|
|
2
2
|
import type { RenderableProps } from "@gunkin/uiify/core/render";
|
|
3
|
+
import type { ConsumerDataAttributes, RepeatedSlotProps } from "../../core/slot-props.js";
|
|
3
4
|
export interface FormErrorSummaryError {
|
|
4
5
|
readonly href: string;
|
|
5
6
|
readonly message: ReactNode;
|
|
6
7
|
}
|
|
8
|
+
type FormErrorSummaryPartProps<TTag extends ElementType> = Omit<ComponentPropsWithRef<TTag>, "children" | "dangerouslySetInnerHTML" | "data-part">;
|
|
9
|
+
type FormErrorSummaryPartSlotProps<TTag extends ElementType> = FormErrorSummaryPartProps<TTag> & ConsumerDataAttributes & {
|
|
10
|
+
readonly "data-part"?: never;
|
|
11
|
+
};
|
|
12
|
+
type FormErrorSummaryRepeatedSlotProps<TTag extends ElementType, TProtected extends object = object> = RepeatedSlotProps<FormErrorSummaryPartProps<TTag>, TProtected & {
|
|
13
|
+
readonly "data-part"?: never;
|
|
14
|
+
}>;
|
|
15
|
+
export interface FormErrorSummarySlotProps {
|
|
16
|
+
readonly title?: FormErrorSummaryPartSlotProps<"h2">;
|
|
17
|
+
readonly list?: FormErrorSummaryPartSlotProps<"ul">;
|
|
18
|
+
/** Repeated error props may target an error by its stable href value. */
|
|
19
|
+
readonly item?: FormErrorSummaryRepeatedSlotProps<"li">;
|
|
20
|
+
readonly link?: FormErrorSummaryRepeatedSlotProps<"a", {
|
|
21
|
+
readonly href?: never;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
7
24
|
export interface FormErrorSummaryOwnProps {
|
|
8
25
|
readonly title: ReactNode;
|
|
9
26
|
readonly errors: readonly FormErrorSummaryError[];
|
|
27
|
+
readonly slotProps?: FormErrorSummarySlotProps;
|
|
10
28
|
}
|
|
11
29
|
export type FormErrorSummaryProps<TAs extends ElementType = "section"> = RenderableProps<TAs, FormErrorSummaryOwnProps, Record<string, never>, HTMLElement>;
|
|
30
|
+
export {};
|
|
12
31
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B;AAED,KAAK,yBAAyB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAC7D,qBAAqB,CAAC,IAAI,CAAC,EAC3B,UAAU,GAAG,yBAAyB,GAAG,WAAW,CACrD,CAAC;AAEF,KAAK,6BAA6B,CAAC,IAAI,SAAS,WAAW,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAC5F,sBAAsB,GAAG;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CAC9B,CAAC;AAEJ,KAAK,iCAAiC,CACpC,IAAI,SAAS,WAAW,EACxB,UAAU,SAAS,MAAM,GAAG,MAAM,IAChC,iBAAiB,CACnB,yBAAyB,CAAC,IAAI,CAAC,EAC/B,UAAU,GAAG;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAC9C,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACpD,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,IAAI,eAAe,CACtF,GAAG,EACH,wBAAwB,EACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQ1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,UAAU,EAClD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC7B,YAAY,CAoHd;yBAtHe,WAAW"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { createElement } from "react";
|
|
3
|
+
import { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from "../../../core/slot-props.js";
|
|
3
4
|
import {
|
|
4
5
|
ChoiceGroup as ElementChoiceGroup,
|
|
5
6
|
ChoiceItem as ElementChoiceItem
|
|
@@ -16,55 +17,104 @@ function ChoiceGroup(props) {
|
|
|
16
17
|
name,
|
|
17
18
|
orientation,
|
|
18
19
|
className,
|
|
20
|
+
rootProps,
|
|
19
21
|
itemPart = "item",
|
|
20
22
|
labelPart = false,
|
|
21
23
|
rootAttributes,
|
|
22
24
|
labelAttributes,
|
|
23
25
|
itemInputClassName,
|
|
26
|
+
itemProps,
|
|
27
|
+
itemSlotProps,
|
|
28
|
+
slotProps,
|
|
24
29
|
onItemChange,
|
|
25
30
|
renderPanel,
|
|
26
31
|
renderLabel,
|
|
27
|
-
append
|
|
32
|
+
append,
|
|
33
|
+
appendProps
|
|
28
34
|
} = props;
|
|
29
35
|
const groupName = name ?? getChoiceGroupName(id, kind);
|
|
30
36
|
return /* @__PURE__ */ jsxs(
|
|
31
37
|
ElementChoiceGroup,
|
|
32
38
|
{
|
|
33
|
-
...
|
|
39
|
+
...rootProps,
|
|
34
40
|
...rootAttributes,
|
|
35
41
|
className,
|
|
36
42
|
id,
|
|
37
43
|
kind,
|
|
38
44
|
orientation,
|
|
45
|
+
...{ [`data-uiify-${namespace}`]: "" },
|
|
39
46
|
children: [
|
|
40
47
|
items.map((item) => {
|
|
41
48
|
const panel = renderPanel ? renderPanel(item) : void 0;
|
|
49
|
+
const itemSlots = itemSlotProps?.(item);
|
|
50
|
+
const inputSlotProps = mergeRepeatedSlotProps(
|
|
51
|
+
resolveRepeatedSlotProps(slotProps?.input, item.value, ["data-part", "data-uiify-radio"]),
|
|
52
|
+
itemSlots?.input
|
|
53
|
+
);
|
|
54
|
+
const controlClassName = [inputSlotProps.className, itemInputClassName?.(item)].filter(Boolean).join(" ");
|
|
55
|
+
const itemPropsForValue = mergeRepeatedSlotProps(
|
|
56
|
+
resolveRepeatedSlotProps(slotProps?.item, item.value, [
|
|
57
|
+
"checked",
|
|
58
|
+
"defaultChecked",
|
|
59
|
+
"disabled",
|
|
60
|
+
"groupId",
|
|
61
|
+
"kind",
|
|
62
|
+
"label",
|
|
63
|
+
"labelPart",
|
|
64
|
+
"name",
|
|
65
|
+
"onValueChange",
|
|
66
|
+
"panel",
|
|
67
|
+
"part",
|
|
68
|
+
"slotProps",
|
|
69
|
+
"value"
|
|
70
|
+
]),
|
|
71
|
+
itemProps?.(item)
|
|
72
|
+
);
|
|
73
|
+
const labelPropsForValue = mergeRepeatedSlotProps(
|
|
74
|
+
resolveRepeatedSlotProps(slotProps?.label, item.value),
|
|
75
|
+
itemSlots?.label
|
|
76
|
+
);
|
|
77
|
+
const panelPropsForValue = mergeRepeatedSlotProps(
|
|
78
|
+
resolveRepeatedSlotProps(slotProps?.panel, item.value),
|
|
79
|
+
itemSlots?.panel
|
|
80
|
+
);
|
|
42
81
|
return /* @__PURE__ */ createElement(
|
|
43
82
|
ElementChoiceItem,
|
|
44
83
|
{
|
|
84
|
+
...itemPropsForValue,
|
|
45
85
|
...panel === void 0 ? {} : { panel },
|
|
46
86
|
...isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) },
|
|
47
87
|
disabled: item.disabled ?? false,
|
|
48
88
|
groupId: id,
|
|
49
|
-
inputProps: {
|
|
50
|
-
className: itemInputClassName?.(item),
|
|
51
|
-
"data-part": "control",
|
|
52
|
-
...kind === "single" ? { "data-uiify-radio": "" } : {}
|
|
53
|
-
},
|
|
54
89
|
key: item.value,
|
|
55
90
|
kind,
|
|
56
91
|
label: renderLabel ? renderLabel(item) : item.label,
|
|
57
|
-
labelPart:
|
|
58
|
-
|
|
92
|
+
labelPart: labelPart ? "trigger" : "label",
|
|
93
|
+
slotProps: {
|
|
94
|
+
...itemSlots,
|
|
95
|
+
input: {
|
|
96
|
+
...inputSlotProps,
|
|
97
|
+
...controlClassName ? { className: controlClassName } : {},
|
|
98
|
+
"data-part": "control",
|
|
99
|
+
...kind === "single" ? { "data-uiify-radio": "" } : {}
|
|
100
|
+
},
|
|
101
|
+
label: {
|
|
102
|
+
...labelPropsForValue,
|
|
103
|
+
...labelAttributes
|
|
104
|
+
},
|
|
105
|
+
panel: {
|
|
106
|
+
...panelPropsForValue,
|
|
107
|
+
"data-part": "panel"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
59
110
|
name: groupName,
|
|
60
111
|
...onItemChange ? { onValueChange: () => onItemChange(item) } : {},
|
|
61
|
-
panelProps: { "data-part": "panel" },
|
|
62
112
|
part: itemPart,
|
|
63
113
|
value: item.value
|
|
64
114
|
}
|
|
65
115
|
);
|
|
66
116
|
}),
|
|
67
|
-
append ? /* @__PURE__ */ jsx("div", { "data-part": "append", children: append }) : null
|
|
117
|
+
append ? /* @__PURE__ */ jsx("div", { ...appendProps, "data-part": "append", children: append }) : null
|
|
68
118
|
]
|
|
69
119
|
}
|
|
70
120
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n labelAttributes,\n itemInputClassName,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from \"../../../core/slot-props.js\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceItemSlotProps } from \"../../../elements/choice/types.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n rootProps,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n labelAttributes,\n itemInputClassName,\n itemProps,\n itemSlotProps,\n slotProps,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n appendProps,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...rootProps}\n {...rootAttributes}\n className={className}\n id={id}\n kind={kind}\n orientation={orientation}\n {...{ [`data-uiify-${namespace}`]: \"\" }}\n >\n {items.map((item) => {\n const panel = renderPanel ? renderPanel(item) : undefined;\n const itemSlots = itemSlotProps?.(item);\n const inputSlotProps = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.input, item.value, [\"data-part\", \"data-uiify-radio\"]),\n itemSlots?.input,\n );\n const controlClassName = [inputSlotProps.className, itemInputClassName?.(item)]\n .filter(Boolean)\n .join(\" \");\n const itemPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.item, item.value, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"groupId\",\n \"kind\",\n \"label\",\n \"labelPart\",\n \"name\",\n \"onValueChange\",\n \"panel\",\n \"part\",\n \"slotProps\",\n \"value\",\n ]),\n itemProps?.(item),\n );\n const labelPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.label, item.value),\n itemSlots?.label,\n );\n const panelPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.panel, item.value),\n itemSlots?.panel,\n );\n return (\n <ElementChoiceItem\n {...itemPropsForValue}\n {...(panel === undefined ? {} : { panel })}\n {...(isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) })}\n disabled={item.disabled ?? false}\n groupId={id}\n key={item.value}\n kind={kind}\n label={renderLabel ? renderLabel(item) : item.label}\n labelPart={labelPart ? \"trigger\" : \"label\"}\n slotProps={{\n ...itemSlots,\n input: {\n ...inputSlotProps,\n ...(controlClassName ? { className: controlClassName } : {}),\n \"data-part\": \"control\",\n ...(kind === \"single\" ? { \"data-uiify-radio\": \"\" } : {}),\n } as unknown as NonNullable<ChoiceItemSlotProps[\"input\"]>,\n label: {\n ...labelPropsForValue,\n ...labelAttributes,\n } as NonNullable<ChoiceItemSlotProps[\"label\"]>,\n panel: {\n ...panelPropsForValue,\n \"data-part\": \"panel\",\n } as NonNullable<ChoiceItemSlotProps[\"panel\"]>,\n }}\n name={groupName}\n {...(onItemChange ? { onValueChange: () => onItemChange(item) } : {})}\n part={itemPart}\n value={item.value}\n />\n );\n })}\n {append ? (\n <div {...appendProps} data-part=\"append\">\n {append}\n </div>\n ) : null}\n </ElementChoiceGroup>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n"],"mappings":"AA8CI,SAiFI,KAjFJ;AA8CM;AA3FV,SAAS,wBAAwB,gCAAgC;AACjE;AAAA,EACE,eAAe;AAAA,EACf,cAAc;AAAA,OACT;AACP,SAAS,0BAA0B;AAS5B,SAAS,YACd,OACc;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,QAAQ,mBAAmB,IAAI,IAAI;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,EAAE,CAAC,cAAc,SAAS,EAAE,GAAG,GAAG;AAAA,MAErC;AAAA,cAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,cAAc,YAAY,IAAI,IAAI;AAChD,gBAAM,YAAY,gBAAgB,IAAI;AACtC,gBAAM,iBAAiB;AAAA,YACrB,yBAAyB,WAAW,OAAO,KAAK,OAAO,CAAC,aAAa,kBAAkB,CAAC;AAAA,YACxF,WAAW;AAAA,UACb;AACA,gBAAM,mBAAmB,CAAC,eAAe,WAAW,qBAAqB,IAAI,CAAC,EAC3E,OAAO,OAAO,EACd,KAAK,GAAG;AACX,gBAAM,oBAAoB;AAAA,YACxB,yBAAyB,WAAW,MAAM,KAAK,OAAO;AAAA,cACpD;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,YACD,YAAY,IAAI;AAAA,UAClB;AACA,gBAAM,qBAAqB;AAAA,YACzB,yBAAyB,WAAW,OAAO,KAAK,KAAK;AAAA,YACrD,WAAW;AAAA,UACb;AACA,gBAAM,qBAAqB;AAAA,YACzB,yBAAyB,WAAW,OAAO,KAAK,KAAK;AAAA,YACrD,WAAW;AAAA,UACb;AACA,iBACE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG;AAAA,cACH,GAAI,UAAU,SAAY,CAAC,IAAI,EAAE,MAAM;AAAA,cACvC,GAAI,eAAe,EAAE,SAAS,UAAU,IAAI,EAAE,IAAI,EAAE,gBAAgB,UAAU,IAAI,EAAE;AAAA,cACrF,UAAU,KAAK,YAAY;AAAA,cAC3B,SAAS;AAAA,cACT,KAAK,KAAK;AAAA,cACV;AAAA,cACA,OAAO,cAAc,YAAY,IAAI,IAAI,KAAK;AAAA,cAC9C,WAAW,YAAY,YAAY;AAAA,cACnC,WAAW;AAAA,gBACT,GAAG;AAAA,gBACH,OAAO;AAAA,kBACL,GAAG;AAAA,kBACH,GAAI,mBAAmB,EAAE,WAAW,iBAAiB,IAAI,CAAC;AAAA,kBAC1D,aAAa;AAAA,kBACb,GAAI,SAAS,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;AAAA,gBACxD;AAAA,gBACA,OAAO;AAAA,kBACL,GAAG;AAAA,kBACH,GAAG;AAAA,gBACL;AAAA,gBACA,OAAO;AAAA,kBACL,GAAG;AAAA,kBACH,aAAa;AAAA,gBACf;AAAA,cACF;AAAA,cACA,MAAM;AAAA,cACL,GAAI,eAAe,EAAE,eAAe,MAAM,aAAa,IAAI,EAAE,IAAI,CAAC;AAAA,cACnE,MAAM;AAAA,cACN,OAAO,KAAK;AAAA;AAAA,UACd;AAAA,QAEJ,CAAC;AAAA,QACA,SACC,oBAAC,SAAK,GAAG,aAAa,aAAU,UAC7B,kBACH,IACE;AAAA;AAAA;AAAA,EACN;AAEJ;AACA,YAAY,cAAc;","names":[]}
|
|
@@ -1,4 +1,42 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
2
|
+
import type { ConsumerDataAttributes } from "../../../core/slot-props.js";
|
|
3
|
+
import type { ChoiceInputSlotProps, ChoiceItemOwnProps, ChoiceItemSlotProps, ChoiceLabelSlotProps, ChoicePanelSlotProps } from "../../../elements/choice/types.js";
|
|
4
|
+
type ChoiceItemWrapperSlotProps = Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children" | "dangerouslySetInnerHTML" | "data-part" | "data-uiify-choice"> & {
|
|
5
|
+
readonly "data-part"?: never;
|
|
6
|
+
readonly "data-uiify-choice"?: never;
|
|
7
|
+
} & ConsumerDataAttributes;
|
|
8
|
+
type ChoiceInputProtectedProps = {
|
|
9
|
+
readonly "aria-labelledby"?: never;
|
|
10
|
+
readonly checked?: never;
|
|
11
|
+
readonly defaultChecked?: never;
|
|
12
|
+
readonly disabled?: never;
|
|
13
|
+
readonly id?: never;
|
|
14
|
+
readonly name?: never;
|
|
15
|
+
readonly type?: never;
|
|
16
|
+
readonly value?: never;
|
|
17
|
+
readonly "data-part"?: never;
|
|
18
|
+
readonly "data-uiify-choice"?: never;
|
|
19
|
+
readonly "data-uiify-radio"?: never;
|
|
20
|
+
};
|
|
21
|
+
type ChoiceLabelProtectedProps = {
|
|
22
|
+
readonly htmlFor?: never;
|
|
23
|
+
readonly id?: never;
|
|
24
|
+
readonly "data-part"?: never;
|
|
25
|
+
};
|
|
26
|
+
type ChoicePanelProtectedProps = {
|
|
27
|
+
readonly id?: never;
|
|
28
|
+
readonly "data-part"?: never;
|
|
29
|
+
};
|
|
30
|
+
type ChoiceRepeatedSlotProps<TProps extends object, TProtected extends object> = TProps & TProtected & {
|
|
31
|
+
readonly byItemValue?: Readonly<Record<string, TProps & TProtected>>;
|
|
32
|
+
};
|
|
33
|
+
export interface ChoiceGroupSlotProps {
|
|
34
|
+
readonly item?: ChoiceRepeatedSlotProps<ChoiceItemWrapperSlotProps, Pick<ChoiceItemWrapperSlotProps, "data-part" | "data-uiify-choice">>;
|
|
35
|
+
readonly input?: ChoiceRepeatedSlotProps<ChoiceInputSlotProps, ChoiceInputProtectedProps>;
|
|
36
|
+
readonly label?: ChoiceRepeatedSlotProps<ChoiceLabelSlotProps, ChoiceLabelProtectedProps>;
|
|
37
|
+
readonly panel?: ChoiceRepeatedSlotProps<ChoicePanelSlotProps, ChoicePanelProtectedProps>;
|
|
38
|
+
}
|
|
39
|
+
export type ChoiceOptionSlotProps = Omit<ChoiceGroupSlotProps, "panel">;
|
|
2
40
|
export interface ChoiceItem {
|
|
3
41
|
readonly value: string;
|
|
4
42
|
readonly label: ReactNode;
|
|
@@ -8,6 +46,7 @@ export interface ChoicePanelItem extends ChoiceItem {
|
|
|
8
46
|
readonly panel?: ReactNode;
|
|
9
47
|
}
|
|
10
48
|
export type ChoiceOrientation = "horizontal" | "vertical";
|
|
49
|
+
export type ChoiceGroupRootProps = Omit<ComponentPropsWithRef<"div">, "children" | "className" | "dangerouslySetInnerHTML" | "id">;
|
|
11
50
|
/** "single" renders `type="radio"` and a plain group name; "multiple" renders
|
|
12
51
|
* `type="checkbox"` and suffixes the group name (see `getChoiceGroupName`). */
|
|
13
52
|
export type ChoiceGroupKind = "single" | "multiple";
|
|
@@ -22,6 +61,8 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
|
|
|
22
61
|
readonly name?: string;
|
|
23
62
|
readonly orientation: ChoiceOrientation;
|
|
24
63
|
readonly className?: string;
|
|
64
|
+
/** Native props forwarded to the rendered group root. */
|
|
65
|
+
readonly rootProps?: Omit<ComponentPropsWithRef<"div">, "children" | "className" | "dangerouslySetInnerHTML" | "id">;
|
|
25
66
|
/** Part name for each item's wrapper div. Defaults to "item". */
|
|
26
67
|
readonly itemPart?: string;
|
|
27
68
|
/** Adds `data-part="label"` to the label. */
|
|
@@ -32,6 +73,12 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
|
|
|
32
73
|
readonly labelAttributes?: Record<string, string>;
|
|
33
74
|
/** Per-item `className` hook for the input, e.g. RadioGroup's `item.className`. */
|
|
34
75
|
readonly itemInputClassName?: (item: TItem) => string | undefined;
|
|
76
|
+
/** Native props for each generated Choice.Item wrapper. */
|
|
77
|
+
readonly itemProps?: (item: TItem) => Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children">;
|
|
78
|
+
/** Native props for generated Choice.Item subparts. */
|
|
79
|
+
readonly itemSlotProps?: (item: TItem) => ChoiceItemSlotProps;
|
|
80
|
+
/** Props for generated item parts. Repeated values can target one item by value. */
|
|
81
|
+
readonly slotProps?: ChoiceGroupSlotProps;
|
|
35
82
|
/** Fires on the input's native `change` event, e.g. a client wrapper syncing
|
|
36
83
|
* a controlled value. Omitted by every uncontrolled (server) consumer. */
|
|
37
84
|
readonly onItemChange?: (item: TItem) => void;
|
|
@@ -41,5 +88,8 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
|
|
|
41
88
|
readonly renderLabel?: (item: TItem) => ReactNode;
|
|
42
89
|
/** Trailing content rendered inside the root after the mapped items, e.g. Tabs' `append`. */
|
|
43
90
|
readonly append?: ReactNode;
|
|
91
|
+
/** Props for the generated append wrapper. */
|
|
92
|
+
readonly appendProps?: Omit<ComponentPropsWithRef<"div">, "children" | "data-part">;
|
|
44
93
|
}
|
|
94
|
+
export {};
|
|
45
95
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/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/choice-family/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ export interface MenuSelectEvent {
|
|
|
22
22
|
export interface UseMenuSurfaceOptions {
|
|
23
23
|
readonly align?: AnchorAlign;
|
|
24
24
|
readonly defaultOpen?: boolean;
|
|
25
|
+
readonly id?: string;
|
|
25
26
|
/** `"auto"` for click-dismissable surfaces, `"manual"` when the compound drives dismissal. */
|
|
26
27
|
readonly mode: "auto" | "manual";
|
|
27
28
|
readonly onOpenChange?: PopoverChangeHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC/E,GAAG,EACH,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAClC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC/E,GAAG,EACH,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAClC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-menu-surface.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"use-menu-surface.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAmDnF"}
|
|
@@ -5,10 +5,11 @@ import { usePopover } from "@gunkin/uiify/core/popover";
|
|
|
5
5
|
import { useIsomorphicLayoutEffect } from "@gunkin/uiify/hooks";
|
|
6
6
|
import { focusMenuItem } from "./focus-menu-item.js";
|
|
7
7
|
function useMenuSurface(options) {
|
|
8
|
-
const { align, defaultOpen, mode, onOpenChange, open, side } = options;
|
|
8
|
+
const { align, defaultOpen, id, mode, onOpenChange, open, side } = options;
|
|
9
9
|
const triggerRef = useRef(null);
|
|
10
10
|
const contentRef = useRef(null);
|
|
11
11
|
const popover = usePopover({
|
|
12
|
+
...id !== void 0 ? { id } : {},
|
|
12
13
|
mode,
|
|
13
14
|
...defaultOpen !== void 0 ? { defaultOpen } : {},
|
|
14
15
|
...open !== void 0 ? { open } : {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useRef } from \"react\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { focusMenuItem } from \"./focus-menu-item.js\";\nimport type { UseMenuSurfaceOptions, UseMenuSurfaceReturn } from \"./types.js\";\n\n/**\n * Shared body of DropdownMenu and ContextMenu's per-menu state: a popover\n * surface anchored to its invoker, with focus management for opening into the\n * item list and returning to the trigger.\n *\n * `anchorRef`/`positionerRef` are deliberately not part of the return value —\n * `useAnchorPosition` returns no-op refs for both (see core/use-anchor-position.ts),\n * so the menu compounds were merging them into their DOM ref for nothing.\n */\nexport function useMenuSurface(options: UseMenuSurfaceOptions): UseMenuSurfaceReturn {\n const { align, defaultOpen, mode, onOpenChange, open, side } = options;\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const popover = usePopover({\n mode,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const anchor = useAnchorPosition({\n ...(align !== undefined ? { align } : {}),\n ...(side !== undefined ? { side } : {}),\n });\n\n const focusTrigger = useCallback(() => {\n triggerRef.current?.focus({ preventScroll: true });\n }, []);\n\n const setTriggerElement = useCallback((element: HTMLElement | null) => {\n triggerRef.current = element;\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (popover.open) focusMenuItem(contentRef.current);\n }, [popover.open]);\n\n const openToItem = useCallback(\n (last?: boolean) => {\n if (!popover.open) popover.openPopover();\n queueMicrotask(() => focusMenuItem(contentRef.current, last !== undefined ? { last } : {}));\n },\n [popover],\n );\n\n return {\n anchorProps: anchor.anchorProps,\n close: popover.close,\n contentRef,\n focusTrigger,\n open: popover.open,\n openPopover: popover.openPopover,\n openToItem,\n popupProps: popover.popupProps,\n popupRef: popover.popupRef,\n positionerProps: anchor.positionerProps,\n setTriggerElement,\n triggerProps: popover.triggerProps,\n triggerRef,\n };\n}\n"],"mappings":";AAEA,SAAS,aAAa,cAAc;AACpC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,qBAAqB;AAYvB,SAAS,eAAe,SAAsD;AACnF,QAAM,EAAE,OAAO,aAAa,MAAM,cAAc,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useRef } from \"react\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { focusMenuItem } from \"./focus-menu-item.js\";\nimport type { UseMenuSurfaceOptions, UseMenuSurfaceReturn } from \"./types.js\";\n\n/**\n * Shared body of DropdownMenu and ContextMenu's per-menu state: a popover\n * surface anchored to its invoker, with focus management for opening into the\n * item list and returning to the trigger.\n *\n * `anchorRef`/`positionerRef` are deliberately not part of the return value —\n * `useAnchorPosition` returns no-op refs for both (see core/use-anchor-position.ts),\n * so the menu compounds were merging them into their DOM ref for nothing.\n */\nexport function useMenuSurface(options: UseMenuSurfaceOptions): UseMenuSurfaceReturn {\n const { align, defaultOpen, id, mode, onOpenChange, open, side } = options;\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const popover = usePopover({\n ...(id !== undefined ? { id } : {}),\n mode,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const anchor = useAnchorPosition({\n ...(align !== undefined ? { align } : {}),\n ...(side !== undefined ? { side } : {}),\n });\n\n const focusTrigger = useCallback(() => {\n triggerRef.current?.focus({ preventScroll: true });\n }, []);\n\n const setTriggerElement = useCallback((element: HTMLElement | null) => {\n triggerRef.current = element;\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (popover.open) focusMenuItem(contentRef.current);\n }, [popover.open]);\n\n const openToItem = useCallback(\n (last?: boolean) => {\n if (!popover.open) popover.openPopover();\n queueMicrotask(() => focusMenuItem(contentRef.current, last !== undefined ? { last } : {}));\n },\n [popover],\n );\n\n return {\n anchorProps: anchor.anchorProps,\n close: popover.close,\n contentRef,\n focusTrigger,\n open: popover.open,\n openPopover: popover.openPopover,\n openToItem,\n popupProps: popover.popupProps,\n popupRef: popover.popupRef,\n positionerProps: anchor.positionerProps,\n setTriggerElement,\n triggerProps: popover.triggerProps,\n triggerRef,\n };\n}\n"],"mappings":";AAEA,SAAS,aAAa,cAAc;AACpC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,qBAAqB;AAYvB,SAAS,eAAe,SAAsD;AACnF,QAAM,EAAE,OAAO,aAAa,IAAI,MAAM,cAAc,MAAM,KAAK,IAAI;AACnE,QAAM,aAAa,OAA2B,IAAI;AAClD,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,UAAU,WAAW;AAAA,IACzB,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA,IACjC;AAAA,IACA,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,SAAS,kBAAkB;AAAA,IAC/B,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,EACvC,CAAC;AAED,QAAM,eAAe,YAAY,MAAM;AACrC,eAAW,SAAS,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,EACnD,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoB,YAAY,CAAC,YAAgC;AACrE,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,4BAA0B,MAAM;AAC9B,QAAI,QAAQ,KAAM,eAAc,WAAW,OAAO;AAAA,EACpD,GAAG,CAAC,QAAQ,IAAI,CAAC;AAEjB,QAAM,aAAa;AAAA,IACjB,CAAC,SAAmB;AAClB,UAAI,CAAC,QAAQ,KAAM,SAAQ,YAAY;AACvC,qBAAe,MAAM,cAAc,WAAW,SAAS,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,IAC5F;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO;AAAA,IACL,aAAa,OAAO;AAAA,IACpB,OAAO,QAAQ;AAAA,IACf;AAAA,IACA;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB,UAAU,QAAQ;AAAA,IAClB,iBAAiB,OAAO;AAAA,IACxB;AAAA,IACA,cAAc,QAAQ;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCheckControl.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeCheckControl.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CA+F/E;yBA/Fe,kBAAkB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { useMergedRefs } from "@gunkin/uiify/hooks";
|
|
5
|
+
import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
|
|
6
|
+
import { mergeRepeatedSlotProps, omitProps } from "../../../core/slot-props.js";
|
|
4
7
|
function NativeCheckControl(props) {
|
|
5
8
|
const {
|
|
6
9
|
checked,
|
|
@@ -11,12 +14,40 @@ function NativeCheckControl(props) {
|
|
|
11
14
|
name,
|
|
12
15
|
onCheckedChange,
|
|
13
16
|
className,
|
|
17
|
+
slotProps,
|
|
14
18
|
value,
|
|
15
19
|
"aria-label": ariaLabel
|
|
16
20
|
} = props;
|
|
17
21
|
const isControlled = checked !== void 0;
|
|
18
22
|
const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);
|
|
19
23
|
const inputRef = useRef(null);
|
|
24
|
+
const inputProps = omitProps(slotProps?.input, [
|
|
25
|
+
"aria-checked",
|
|
26
|
+
"aria-label",
|
|
27
|
+
"aria-labelledby",
|
|
28
|
+
"checked",
|
|
29
|
+
"children",
|
|
30
|
+
"dangerouslySetInnerHTML",
|
|
31
|
+
"data-disabled",
|
|
32
|
+
"data-part",
|
|
33
|
+
"data-state",
|
|
34
|
+
"data-uiify-checkbox",
|
|
35
|
+
"defaultChecked",
|
|
36
|
+
"defaultValue",
|
|
37
|
+
"disabled",
|
|
38
|
+
"id",
|
|
39
|
+
"name",
|
|
40
|
+
"type",
|
|
41
|
+
"value"
|
|
42
|
+
]);
|
|
43
|
+
const labelProps = omitProps(mergeRepeatedSlotProps({ className }, slotProps?.label), [
|
|
44
|
+
"children",
|
|
45
|
+
"dangerouslySetInnerHTML",
|
|
46
|
+
"data-uiify-checkbox",
|
|
47
|
+
"htmlFor",
|
|
48
|
+
"id"
|
|
49
|
+
]);
|
|
50
|
+
const mergedInputRef = useMergedRefs(inputProps.ref, inputRef);
|
|
20
51
|
const checkedValue = isControlled ? checked === true : uncontrolledChecked;
|
|
21
52
|
useEffect(() => {
|
|
22
53
|
if (inputRef.current) inputRef.current.indeterminate = checked === "indeterminate";
|
|
@@ -31,6 +62,7 @@ function NativeCheckControl(props) {
|
|
|
31
62
|
const input = /* @__PURE__ */ jsx(
|
|
32
63
|
"input",
|
|
33
64
|
{
|
|
65
|
+
...inputProps,
|
|
34
66
|
"aria-checked": checked === "indeterminate" ? "mixed" : void 0,
|
|
35
67
|
"aria-label": label === void 0 ? ariaLabel : void 0,
|
|
36
68
|
"aria-labelledby": label !== void 0 ? `${id}-label` : void 0,
|
|
@@ -41,14 +73,14 @@ function NativeCheckControl(props) {
|
|
|
41
73
|
disabled: disabled || void 0,
|
|
42
74
|
id,
|
|
43
75
|
name,
|
|
44
|
-
onChange: handleChange,
|
|
45
|
-
ref:
|
|
76
|
+
onChange: composeEventHandlers(inputProps.onChange, handleChange),
|
|
77
|
+
ref: mergedInputRef,
|
|
46
78
|
type: "checkbox",
|
|
47
79
|
value,
|
|
48
80
|
...label === void 0 ? { "data-uiify-checkbox": "" } : { "data-part": "control" }
|
|
49
81
|
}
|
|
50
82
|
);
|
|
51
|
-
return label === void 0 ? input : /* @__PURE__ */ jsxs("label", {
|
|
83
|
+
return label === void 0 ? input : /* @__PURE__ */ jsxs("label", { ...labelProps, "data-uiify-checkbox": "", id: `${id}-label`, children: [
|
|
52
84
|
input,
|
|
53
85
|
label
|
|
54
86
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport type { ChangeEvent, ReactElement } from \"react\";\nimport type { NativeCheckControlProps } from \"./types.js\";\n\nexport function NativeCheckControl(props: NativeCheckControlProps): ReactElement {\n const {\n checked,\n defaultChecked,\n disabled = false,\n id,\n label,\n name,\n onCheckedChange,\n className,\n value,\n \"aria-label\": ariaLabel,\n } = props;\n const isControlled = checked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const checkedValue = isControlled ? checked === true : uncontrolledChecked;\n\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = checked === \"indeterminate\";\n }, [checked]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checked === \"indeterminate\" && inputRef.current) {\n inputRef.current.indeterminate = true;\n }\n if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);\n onCheckedChange?.(event.currentTarget.checked);\n };\n\n const input = (\n <input\n aria-checked={checked === \"indeterminate\" ? \"mixed\" : undefined}\n aria-label={label === undefined ? ariaLabel : undefined}\n aria-labelledby={label !== undefined ? `${id}-label` : undefined}\n checked={isControlled ? checkedValue : undefined}\n data-disabled={disabled ? \"\" : undefined}\n data-state={\n isControlled\n ? checked === \"indeterminate\"\n ? \"indeterminate\"\n : checkedValue\n ? \"checked\"\n : \"unchecked\"\n : undefined\n }\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled || undefined}\n id={id}\n name={name}\n onChange={handleChange}\n ref={
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport type { ChangeEvent, ReactElement } from \"react\";\nimport { useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../../core/slot-props.js\";\nimport type { NativeCheckControlProps } from \"./types.js\";\n\nexport function NativeCheckControl(props: NativeCheckControlProps): ReactElement {\n const {\n checked,\n defaultChecked,\n disabled = false,\n id,\n label,\n name,\n onCheckedChange,\n className,\n slotProps,\n value,\n \"aria-label\": ariaLabel,\n } = props;\n const isControlled = checked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const inputProps = omitProps(slotProps?.input, [\n \"aria-checked\",\n \"aria-label\",\n \"aria-labelledby\",\n \"checked\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-disabled\",\n \"data-part\",\n \"data-state\",\n \"data-uiify-checkbox\",\n \"defaultChecked\",\n \"defaultValue\",\n \"disabled\",\n \"id\",\n \"name\",\n \"type\",\n \"value\",\n ]);\n const labelProps = omitProps(mergeRepeatedSlotProps({ className }, slotProps?.label), [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-uiify-checkbox\",\n \"htmlFor\",\n \"id\",\n ]);\n const mergedInputRef = useMergedRefs(inputProps.ref, inputRef);\n const checkedValue = isControlled ? checked === true : uncontrolledChecked;\n\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = checked === \"indeterminate\";\n }, [checked]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checked === \"indeterminate\" && inputRef.current) {\n inputRef.current.indeterminate = true;\n }\n if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);\n onCheckedChange?.(event.currentTarget.checked);\n };\n\n const input = (\n <input\n {...inputProps}\n aria-checked={checked === \"indeterminate\" ? \"mixed\" : undefined}\n aria-label={label === undefined ? ariaLabel : undefined}\n aria-labelledby={label !== undefined ? `${id}-label` : undefined}\n checked={isControlled ? checkedValue : undefined}\n data-disabled={disabled ? \"\" : undefined}\n data-state={\n isControlled\n ? checked === \"indeterminate\"\n ? \"indeterminate\"\n : checkedValue\n ? \"checked\"\n : \"unchecked\"\n : undefined\n }\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled || undefined}\n id={id}\n name={name}\n onChange={composeEventHandlers(inputProps.onChange, handleChange)}\n ref={mergedInputRef}\n type=\"checkbox\"\n value={value}\n {...(label === undefined ? { \"data-uiify-checkbox\": \"\" } : { \"data-part\": \"control\" })}\n />\n );\n\n return label === undefined ? (\n input\n ) : (\n <label {...labelProps} data-uiify-checkbox=\"\" id={`${id}-label`}>\n {input}\n {label}\n </label>\n );\n}\nNativeCheckControl.displayName = \"NativeCheckControl\";\n"],"mappings":";AAoEI,cA+BA,YA/BA;AAlEJ,SAAS,WAAW,QAAQ,gBAAgB;AAE5C,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,wBAAwB,iBAAiB;AAG3C,SAAS,mBAAmB,OAA8C;AAC/E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAChB,IAAI;AACJ,QAAM,eAAe,YAAY;AACjC,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,kBAAkB,KAAK;AACtF,QAAM,WAAW,OAAgC,IAAI;AACrD,QAAM,aAAa,UAAU,WAAW,OAAO;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,UAAU,uBAAuB,EAAE,UAAU,GAAG,WAAW,KAAK,GAAG;AAAA,IACpF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,iBAAiB,cAAc,WAAW,KAAK,QAAQ;AAC7D,QAAM,eAAe,eAAe,YAAY,OAAO;AAEvD,YAAU,MAAM;AACd,QAAI,SAAS,QAAS,UAAS,QAAQ,gBAAgB,YAAY;AAAA,EACrE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,eAAe,CAAC,UAAyC;AAC7D,QAAI,YAAY,mBAAmB,SAAS,SAAS;AACnD,eAAS,QAAQ,gBAAgB;AAAA,IACnC;AACA,QAAI,CAAC,aAAc,wBAAuB,MAAM,cAAc,OAAO;AACrE,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,QACJ;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,gBAAc,YAAY,kBAAkB,UAAU;AAAA,MACtD,cAAY,UAAU,SAAY,YAAY;AAAA,MAC9C,mBAAiB,UAAU,SAAY,GAAG,EAAE,WAAW;AAAA,MACvD,SAAS,eAAe,eAAe;AAAA,MACvC,iBAAe,WAAW,KAAK;AAAA,MAC/B,cACE,eACI,YAAY,kBACV,kBACA,eACE,YACA,cACJ;AAAA,MAEN,gBAAgB,CAAC,eAAe,iBAAiB;AAAA,MACjD,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,MACA,UAAU,qBAAqB,WAAW,UAAU,YAAY;AAAA,MAChE,KAAK;AAAA,MACL,MAAK;AAAA,MACL;AAAA,MACC,GAAI,UAAU,SAAY,EAAE,uBAAuB,GAAG,IAAI,EAAE,aAAa,UAAU;AAAA;AAAA,EACtF;AAGF,SAAO,UAAU,SACf,QAEA,qBAAC,WAAO,GAAG,YAAY,uBAAoB,IAAG,IAAI,GAAG,EAAE,UACpD;AAAA;AAAA,IACA;AAAA,KACH;AAEJ;AACA,mBAAmB,cAAc;","names":[]}
|