@gunkin/uiify 0.0.25-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/reference/components/accordion.md +4 -4
- package/agents/reference/components/alert-modal.md +10 -10
- package/agents/reference/components/alert.md +1 -1
- package/agents/reference/components/aspect-ratio.md +1 -1
- package/agents/reference/components/avatar.md +2 -2
- package/agents/reference/components/breadcrumb.md +9 -10
- package/agents/reference/components/candle-chart.md +35 -35
- package/agents/reference/components/carousel.md +10 -14
- package/agents/reference/components/collapsible.md +3 -3
- package/agents/reference/components/color-picker.md +6 -6
- package/agents/reference/components/combobox.md +7 -17
- package/agents/reference/components/context-menu.md +5 -26
- package/agents/reference/components/date-picker.md +2 -1
- package/agents/reference/components/drawer.md +17 -31
- package/agents/reference/components/dropdown-menu.md +2 -3
- package/agents/reference/components/field.md +11 -11
- package/agents/reference/components/form-error-summary.md +4 -4
- package/agents/reference/components/input-group.md +1 -0
- package/agents/reference/components/input.md +1 -0
- package/agents/reference/components/line-chart.md +29 -29
- package/agents/reference/components/modal.md +13 -15
- package/agents/reference/components/number-field.md +1 -1
- package/agents/reference/components/otp-input.md +2 -1
- package/agents/reference/components/pagination.md +7 -8
- package/agents/reference/components/rating.md +1 -1
- package/agents/reference/components/segmented-control.md +1 -0
- package/agents/reference/components/select.md +1 -0
- package/agents/reference/components/slider.md +4 -4
- package/agents/reference/components/spinner.md +1 -1
- package/agents/reference/components/table.md +1 -1
- package/agents/reference/components/tabs.md +6 -6
- package/agents/reference/components/tags-input.md +5 -12
- package/agents/reference/components/toast.md +8 -15
- package/agents/reference/components/toggle.md +4 -3
- package/agents/reference/components/virtual-scroll.md +4 -5
- package/agents/reference/elements/choice.md +3 -3
- package/agents/reference/elements/details.md +2 -2
- package/agents/reference/elements/popover.md +3 -3
- package/dist/components/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/accordion/Accordion.js +20 -46
- package/dist/components/accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/types.d.ts +6 -15
- 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 +5 -14
- package/dist/components/alert/Alert.js.map +1 -1
- package/dist/components/alert/types.d.ts +3 -7
- package/dist/components/alert/types.d.ts.map +1 -1
- package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
- package/dist/components/alert-modal/AlertModal.js +28 -137
- 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 +4 -37
- package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
- package/dist/components/alert-modal/types.d.ts +15 -33
- 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 +4 -12
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/aspect-ratio/types.d.ts +3 -6
- 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 +4 -21
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/types.d.ts +4 -14
- package/dist/components/avatar/types.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.js +43 -123
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/types.d.ts +12 -35
- package/dist/components/breadcrumb/types.d.ts.map +1 -1
- package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
- package/dist/components/candle-chart/CandleChart.js +122 -186
- 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 +8 -15
- package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
- package/dist/components/candle-chart/types.d.ts +42 -116
- package/dist/components/candle-chart/types.d.ts.map +1 -1
- package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
- package/dist/components/carousel/CarouselMarkup.js +55 -142
- package/dist/components/carousel/CarouselMarkup.js.map +1 -1
- package/dist/components/carousel/types.d.ts +13 -80
- package/dist/components/carousel/types.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.d.ts +1 -5
- package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.js +3 -33
- package/dist/components/collapsible/Collapsible.js.map +1 -1
- package/dist/components/collapsible/types.d.ts +4 -18
- 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 +28 -123
- package/dist/components/color-picker/ColorPicker.js.map +1 -1
- package/dist/components/color-picker/types.d.ts +11 -30
- 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 +30 -23
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/types.d.ts +9 -29
- 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 +30 -53
- package/dist/components/context-menu/ContextMenu.js.map +1 -1
- package/dist/components/context-menu/types.d.ts +6 -31
- 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 +12 -12
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
- package/dist/components/drawer/DrawerNative.js +47 -252
- package/dist/components/drawer/DrawerNative.js.map +1 -1
- package/dist/components/drawer/types.d.ts +25 -30
- 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 +30 -27
- 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 +3 -7
- package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
- package/dist/components/dropdown-menu/types.d.ts +2 -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 +11 -11
- 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 +20 -34
- package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
- package/dist/components/form-error-summary/types.d.ts +6 -16
- 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 +14 -51
- package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
- package/dist/components/internal/choice-family/types.d.ts +8 -40
- 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/native-check-control/NativeCheckControl.d.ts.map +1 -1
- package/dist/components/internal/native-check-control/NativeCheckControl.js +8 -32
- package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
- package/dist/components/internal/native-check-control/types.d.ts +4 -18
- package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
- package/dist/components/line-chart/LineChart.d.ts.map +1 -1
- package/dist/components/line-chart/LineChart.js +134 -208
- 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 +8 -15
- package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
- package/dist/components/line-chart/types.d.ts +36 -103
- package/dist/components/line-chart/types.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +34 -115
- 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/types.d.ts +19 -19
- 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 +9 -9
- 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 +26 -69
- 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/types.d.ts +9 -32
- package/dist/components/pagination/types.d.ts.map +1 -1
- package/dist/components/rating/types.d.ts +1 -5
- 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 +4 -2
- 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 +4 -2
- package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
- package/dist/components/segmented-control/types.d.ts +3 -0
- 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 +53 -100
- package/dist/components/slider/client/SliderClient.js.map +1 -1
- package/dist/components/slider/types.d.ts +8 -38
- 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 +2 -10
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/spinner/types.d.ts +3 -6
- package/dist/components/spinner/types.d.ts.map +1 -1
- package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
- package/dist/components/table/client/TableColumnHeader.js +1 -15
- package/dist/components/table/client/TableColumnHeader.js.map +1 -1
- package/dist/components/table/types.d.ts +2 -6
- package/dist/components/table/types.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +9 -43
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/types.d.ts +8 -21
- 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 +16 -27
- package/dist/components/tags-input/TagsInput.js.map +1 -1
- package/dist/components/tags-input/types.d.ts +8 -23
- package/dist/components/tags-input/types.d.ts.map +1 -1
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/Toast.js +13 -62
- 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 +20 -57
- package/dist/components/toast/ToastElements.js.map +1 -1
- package/dist/components/toast/types.d.ts +9 -36
- 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 +36 -61
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/types.d.ts +5 -24
- package/dist/components/toggle/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 +65 -43
- package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
- package/dist/components/virtual-scroll/VirtualScrollRowShell.js +2 -2
- package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
- package/dist/components/virtual-scroll/types.d.ts +7 -20
- 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 +9 -7
- package/dist/core/slot-props.d.ts.map +1 -1
- package/dist/core/slot-props.js +4 -14
- package/dist/core/slot-props.js.map +1 -1
- package/dist/elements/choice/Choice.d.ts.map +1 -1
- package/dist/elements/choice/Choice.js +5 -42
- package/dist/elements/choice/Choice.js.map +1 -1
- package/dist/elements/choice/types.d.ts +4 -11
- 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/styles/index.css +1 -1
- package/dist/styles/tailwind.css +2 -2
- package/dist/styles/tokens.css +1 -1
- package/package.json +1 -1
- package/skills/uiify/references/elements/aspect-ratio.md +1 -1
- package/skills/uiify/references/elements/field.md +1 -1
- package/skills/uiify/references/elements/toggle.md +1 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useRenderElement } from "@gunkin/uiify/core/render";
|
|
3
|
-
import { omitProps } from "../../core/slot-props.js";
|
|
4
3
|
const DEFAULT_SPINNER_LABELS = { loading: "Loading" };
|
|
5
4
|
function Spinner(props) {
|
|
6
5
|
const {
|
|
@@ -25,7 +24,6 @@ function Spinner(props) {
|
|
|
25
24
|
as,
|
|
26
25
|
defaultTag: "div",
|
|
27
26
|
props: {
|
|
28
|
-
...consumerProps,
|
|
29
27
|
"aria-label": resolvedLabel,
|
|
30
28
|
"aria-live": determinate ? void 0 : "polite",
|
|
31
29
|
"aria-valuemax": determinate ? 100 : void 0,
|
|
@@ -38,15 +36,9 @@ function Spinner(props) {
|
|
|
38
36
|
"data-uiify-spinner": "",
|
|
39
37
|
"data-value": percent,
|
|
40
38
|
role: determinate ? "progressbar" : "status",
|
|
39
|
+
...consumerProps,
|
|
41
40
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42
|
-
showLabel ? /* @__PURE__ */ jsx(
|
|
43
|
-
"span",
|
|
44
|
-
{
|
|
45
|
-
...omitProps(slotProps?.label, ["data-part", "data-uiify-spinner"]),
|
|
46
|
-
"data-part": "label",
|
|
47
|
-
children: resolvedLabel
|
|
48
|
-
}
|
|
49
|
-
) : null,
|
|
41
|
+
showLabel ? /* @__PURE__ */ jsx("span", { "data-part": "label", ...slotProps?.label, children: resolvedLabel }) : null,
|
|
50
42
|
children
|
|
51
43
|
] })
|
|
52
44
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { PolymorphicProps } from \"@gunkin/uiify/core/render\";\nimport type { SpinnerLabels, SpinnerOwnProps, SpinnerProps } from \"./types.js\";\n\nconst DEFAULT_SPINNER_LABELS: SpinnerLabels = { loading: \"Loading\" };\n\nexport function Spinner<TAs extends ElementType = \"div\">(\n props: SpinnerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n align,\n render,\n delay = 0,\n label,\n labels,\n showLabel = false,\n size = \"md\",\n value,\n slotProps,\n children,\n ...consumerProps\n } = props as PolymorphicProps<\"div\", SpinnerOwnProps>;\n\n const visible = delay === 0;\n const determinate = value !== undefined;\n const percent = determinate ? Math.min(100, Math.max(0, value)) : undefined;\n const resolvedLabel = label ?? labels?.loading ?? DEFAULT_SPINNER_LABELS.loading;\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n \"aria-label\": resolvedLabel,\n \"aria-live\": determinate ? undefined : \"polite\",\n \"aria-valuemax\": determinate ? 100 : undefined,\n \"aria-valuemin\": determinate ? 0 : undefined,\n \"aria-valuenow\": percent,\n \"data-align\": align,\n \"data-delay\": delay > 0 ? `${delay}ms` : undefined,\n \"data-size\": size,\n \"data-state\": visible ? \"visible\" : \"delayed\",\n \"data-uiify-spinner\": \"\",\n \"data-value\": percent,\n role: determinate ? \"progressbar\" : \"status\",\n ...consumerProps,\n children: (\n <>\n {showLabel ? (\n <span data-part=\"label\" {...slotProps?.label}>\n {resolvedLabel}\n </span>\n ) : null}\n {children}\n </>\n ),\n },\n render,\n state: { visible },\n });\n}\nSpinner.displayName = \"Spinner\";\n"],"mappings":"AAgDQ,mBAEI,KAFJ;AA/CR,SAAS,wBAAwB;AAIjC,MAAM,yBAAwC,EAAE,SAAS,UAAU;AAE5D,SAAS,QACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,UAAU,UAAU;AAC1B,QAAM,cAAc,UAAU;AAC9B,QAAM,UAAU,cAAc,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI;AAClE,QAAM,gBAAgB,SAAS,QAAQ,WAAW,uBAAuB;AAEzE,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,cAAc;AAAA,MACd,aAAa,cAAc,SAAY;AAAA,MACvC,iBAAiB,cAAc,MAAM;AAAA,MACrC,iBAAiB,cAAc,IAAI;AAAA,MACnC,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,cAAc,QAAQ,IAAI,GAAG,KAAK,OAAO;AAAA,MACzC,aAAa;AAAA,MACb,cAAc,UAAU,YAAY;AAAA,MACpC,sBAAsB;AAAA,MACtB,cAAc;AAAA,MACd,MAAM,cAAc,gBAAgB;AAAA,MACpC,GAAG;AAAA,MACH,UACE,iCACG;AAAA,oBACC,oBAAC,UAAK,aAAU,SAAS,GAAG,WAAW,OACpC,yBACH,IACE;AAAA,QACH;AAAA,SACH;AAAA,IAEJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,QAAQ;AAAA,EACnB,CAAC;AACH;AACA,QAAQ,cAAc;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { ElementType, ReactNode } from "react";
|
|
2
|
+
import type { SlotProps } from "../../core/slot-props.js";
|
|
3
3
|
import type { RenderableProps } from "@gunkin/uiify/core/render";
|
|
4
4
|
export type SpinnerAlign = "center" | "fixed" | "absolute";
|
|
5
5
|
export type SpinnerSize = "sm" | "md" | "lg";
|
|
@@ -20,10 +20,7 @@ export interface SpinnerOwnProps {
|
|
|
20
20
|
export type SpinnerProps<TAs extends ElementType = "div"> = RenderableProps<TAs, SpinnerOwnProps, {
|
|
21
21
|
visible: boolean;
|
|
22
22
|
}, HTMLElement>;
|
|
23
|
-
export type SpinnerLabelSlotProps =
|
|
24
|
-
readonly "data-part"?: never;
|
|
25
|
-
readonly "data-uiify-spinner"?: never;
|
|
26
|
-
} & ConsumerDataAttributes;
|
|
23
|
+
export type SpinnerLabelSlotProps = SlotProps<"span">;
|
|
27
24
|
export interface SpinnerSlotProps {
|
|
28
25
|
readonly label?: SpinnerLabelSlotProps;
|
|
29
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CACzE,GAAG,EACH,eAAe,EACf;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumnHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/table/client/TableColumnHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TableColumnHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/table/client/TableColumnHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAkB,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAWhF,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC9D,KAAK,EAAE,4BAA4B,CAAC,GAAG,CAAC,GACvC,YAAY,GAAG,IAAI,CAmErB;yBArEe,iBAAiB"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useSyncExternalStore } from "react";
|
|
4
4
|
import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
|
|
5
|
-
import { omitProps } from "../../../core/slot-props.js";
|
|
6
5
|
import { TableColumnHeader as TableColumnHeaderElement } from "../TableShell.js";
|
|
7
6
|
import { useTableContext } from "./table-context.js";
|
|
8
7
|
function ariaSortForColumn(descriptor, column) {
|
|
@@ -29,20 +28,7 @@ function TableColumnHeader(props) {
|
|
|
29
28
|
...rest,
|
|
30
29
|
allowsSorting,
|
|
31
30
|
id,
|
|
32
|
-
children: allowsSorting ? /* @__PURE__ */ jsx(
|
|
33
|
-
"button",
|
|
34
|
-
{
|
|
35
|
-
...omitProps(slotProps?.sortButton, [
|
|
36
|
-
"children",
|
|
37
|
-
"dangerouslySetInnerHTML",
|
|
38
|
-
"data-part",
|
|
39
|
-
"type"
|
|
40
|
-
]),
|
|
41
|
-
"data-part": "sort-button",
|
|
42
|
-
type: "button",
|
|
43
|
-
children: rest.children
|
|
44
|
-
}
|
|
45
|
-
) : rest.children,
|
|
31
|
+
children: allowsSorting ? /* @__PURE__ */ jsx("button", { "data-part": "sort-button", type: "button", ...slotProps?.sortButton, children: rest.children }) : rest.children,
|
|
46
32
|
sortDirection: allowsSorting ? ariaSortForColumn(sortDescriptor, id) ?? null : null
|
|
47
33
|
};
|
|
48
34
|
if (allowsSorting) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/client/TableColumnHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport { useSyncExternalStore } from \"react\";\nimport type { ElementType, ReactElement } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/client/TableColumnHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport { useSyncExternalStore } from \"react\";\nimport type { ElementType, ReactElement } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { TableColumnHeader as TableColumnHeaderElement } from \"../TableShell.js\";\nimport type { SortDescriptor, TableClientColumnHeaderProps } from \"../types.js\";\nimport { useTableContext } from \"./table-context.js\";\n\nfunction ariaSortForColumn(\n descriptor: SortDescriptor | null,\n column: string,\n): SortDescriptor[\"direction\"] | undefined {\n if (!descriptor || descriptor.column !== column) return undefined;\n return descriptor.direction;\n}\n\nexport function TableColumnHeader<TAs extends ElementType = \"th\">(\n props: TableClientColumnHeaderProps<TAs>,\n): ReactElement | null {\n const {\n allowsSorting = false,\n id,\n onClick,\n as,\n render,\n slotProps,\n ...rest\n } = props as TableClientColumnHeaderProps<ElementType>;\n const { store } = useTableContext(\"ColumnHeader\");\n const sortDescriptor = useSyncExternalStore(\n store.subscribeSort,\n store.getSortSnapshot,\n store.getServerSortSnapshot,\n );\n\n const shared = {\n ...rest,\n allowsSorting,\n id,\n children: allowsSorting ? (\n <button data-part=\"sort-button\" type=\"button\" {...slotProps?.sortButton}>\n {rest.children}\n </button>\n ) : (\n rest.children\n ),\n sortDirection: allowsSorting ? (ariaSortForColumn(sortDescriptor, id) ?? null) : null,\n };\n\n if (allowsSorting) {\n if (render) {\n return (\n <TableColumnHeaderElement\n {...shared}\n onClick={composeEventHandlers(onClick, () => store.toggleSort(id))}\n render={render}\n />\n );\n }\n return (\n <TableColumnHeaderElement\n {...shared}\n onClick={composeEventHandlers(onClick, () => store.toggleSort(id))}\n {...(as !== undefined ? { as } : {})}\n />\n );\n }\n\n if (render) {\n return (\n <TableColumnHeaderElement\n {...shared}\n {...(onClick !== undefined ? { onClick } : {})}\n render={render}\n />\n );\n }\n\n return (\n <TableColumnHeaderElement\n {...shared}\n {...(onClick !== undefined ? { onClick } : {})}\n {...(as !== undefined ? { as } : {})}\n />\n );\n}\nTableColumnHeader.displayName = \"TableColumnHeader\";\n"],"mappings":";AAyCM;AAvCN,SAAS,4BAA4B;AAErC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB,gCAAgC;AAE9D,SAAS,uBAAuB;AAEhC,SAAS,kBACP,YACA,QACyC;AACzC,MAAI,CAAC,cAAc,WAAW,WAAW,OAAQ,QAAO;AACxD,SAAO,WAAW;AACpB;AAEO,SAAS,kBACd,OACqB;AACrB,QAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,EAAE,MAAM,IAAI,gBAAgB,cAAc;AAChD,QAAM,iBAAiB;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAEA,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,UAAU,gBACR,oBAAC,YAAO,aAAU,eAAc,MAAK,UAAU,GAAG,WAAW,YAC1D,eAAK,UACR,IAEA,KAAK;AAAA,IAEP,eAAe,gBAAiB,kBAAkB,gBAAgB,EAAE,KAAK,OAAQ;AAAA,EACnF;AAEA,MAAI,eAAe;AACjB,QAAI,QAAQ;AACV,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,SAAS,qBAAqB,SAAS,MAAM,MAAM,WAAW,EAAE,CAAC;AAAA,UACjE;AAAA;AAAA,MACF;AAAA,IAEJ;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,SAAS,qBAAqB,SAAS,MAAM,MAAM,WAAW,EAAE,CAAC;AAAA,QAChE,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA;AAAA,IACpC;AAAA,EAEJ;AAEA,MAAI,QAAQ;AACV,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,QAC5C;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,MAC3C,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA;AAAA,EACpC;AAEJ;AACA,kBAAkB,cAAc;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentPropsWithRef, ElementType, ReactNode } from "react";
|
|
2
2
|
import type { RenderableProps } from "@gunkin/uiify/core/render";
|
|
3
|
-
import type {
|
|
3
|
+
import type { SlotProps } from "../../core/slot-props.js";
|
|
4
4
|
import type { NativeCheckControlSlotProps } from "../internal/native-check-control/types.js";
|
|
5
5
|
export type SortDirection = "ascending" | "descending";
|
|
6
6
|
export interface SortDescriptor {
|
|
@@ -98,11 +98,8 @@ export interface TableSelectAllOwnProps {
|
|
|
98
98
|
readonly slotProps?: TableSelectionSlotProps;
|
|
99
99
|
}
|
|
100
100
|
export type TableSelectionSlotProps = NativeCheckControlSlotProps;
|
|
101
|
-
type TableSortButtonOwnedAttributes = {
|
|
102
|
-
readonly "data-part"?: never;
|
|
103
|
-
};
|
|
104
101
|
export interface TableClientColumnHeaderSlotProps {
|
|
105
|
-
readonly sortButton?:
|
|
102
|
+
readonly sortButton?: SlotProps<"button">;
|
|
106
103
|
}
|
|
107
104
|
export type TableClientColumnHeaderProps<TAs extends ElementType = "th"> = TableColumnHeaderProps<TAs> & {
|
|
108
105
|
readonly slotProps?: TableClientColumnHeaderSlotProps;
|
|
@@ -142,5 +139,4 @@ export interface TableExpandTriggerProps extends Omit<ComponentPropsWithRef<"but
|
|
|
142
139
|
export interface TableExpandedRowProps extends Omit<ComponentPropsWithRef<"tr">, "hidden" | "id"> {
|
|
143
140
|
readonly rowId: string;
|
|
144
141
|
}
|
|
145
|
-
export {};
|
|
146
142
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/table/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,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/table/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,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAE7F,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClF,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAC1D,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,eAAe,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACxE,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACxE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAC7D,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,CAClB,EAAE,EAAE,MAAM,EACV,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;KAC7B,KACE,IAAI,CAAC;IACV,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,IAAI,eAAe,CAC7E,GAAG,EACH,iBAAiB,EACjB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,gBAAgB,CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,IAAI,eAAe,CAC/E,GAAG,EACH,0BAA0B,EAC1B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,uBAAuB,CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,IAAI,eAAe,CAC7E,GAAG,EACH;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EACjC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,uBAAuB,CACxB,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,0BAA0B;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CACzE,GAAG,EACH,gBAAgB,EAChB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,EACrB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,4BAA4B,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IACrE,sBAAsB,CAAC,GAAG,CAAC,GAAG;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,gCAAgC,CAAC;CACvD,CAAC;AAEJ,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CAClF,GAAG,EACH,yBAAyB,EACzB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,oBAAoB,CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CAC1E,GAAG,EACH,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,oBAAoB,CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,IAAI,eAAe,CAClF,GAAG,EACH;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EACjC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,uBAAuB,CACxB,CAAC;AAEF,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACzD;AACD,MAAM,MAAM,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,IAAI,eAAe,CACnF,GAAG,EACH,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,gBAAgB,CACjB,CAAC;AACF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AACD,MAAM,MAAM,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,IAAI,eAAe,CAC/E,GAAG,EACH,0BAA0B,EAC1B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,uBAAuB,CACxB,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CAC/E,GAAG,EACH,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,oBAAoB,CACrB,CAAC;AACF,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CACnD,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,eAAe,GAAG,eAAe,CAClC;IACC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,YAAY,EACZ,WAA0B,EAC1B,SAAS,EACT,MAAM,EACN,SAAS,EACT,GAAG,SAAS,EACb,EAAE,SAAS,GAAG,YAAY,CAuB1B;yBAhCe,IAAI"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { ChoiceGroup } from "../internal/choice-family/ChoiceGroup.js";
|
|
3
|
-
import { omitProps, resolveRepeatedSlotProps } from "../../core/slot-props.js";
|
|
4
3
|
function Tabs({
|
|
5
4
|
id,
|
|
6
5
|
items,
|
|
@@ -15,56 +14,23 @@ function Tabs({
|
|
|
15
14
|
ChoiceGroup,
|
|
16
15
|
{
|
|
17
16
|
...className !== void 0 ? { className } : {},
|
|
18
|
-
rootProps
|
|
17
|
+
rootProps,
|
|
19
18
|
...append !== void 0 ? { append } : {},
|
|
20
|
-
...slotProps?.append !== void 0 ? {
|
|
21
|
-
appendProps: omitProps(slotProps.append, [
|
|
22
|
-
"children",
|
|
23
|
-
"dangerouslySetInnerHTML",
|
|
24
|
-
"data-part",
|
|
25
|
-
"data-uiify-tabs"
|
|
26
|
-
])
|
|
27
|
-
} : {},
|
|
19
|
+
...slotProps?.append !== void 0 ? { appendProps: slotProps.append } : {},
|
|
28
20
|
id,
|
|
29
21
|
items,
|
|
30
22
|
isChecked: (item) => item.value === defaultValue,
|
|
31
|
-
itemProps: (item) => resolveRepeatedSlotProps(slotProps?.item, item.value, [
|
|
32
|
-
"data-part",
|
|
33
|
-
"data-uiify-choice",
|
|
34
|
-
"data-uiify-tabs"
|
|
35
|
-
]),
|
|
36
|
-
itemSlotProps: (item) => ({
|
|
37
|
-
input: resolveRepeatedSlotProps(slotProps?.input, item.value, [
|
|
38
|
-
"aria-labelledby",
|
|
39
|
-
"checked",
|
|
40
|
-
"defaultChecked",
|
|
41
|
-
"disabled",
|
|
42
|
-
"id",
|
|
43
|
-
"name",
|
|
44
|
-
"type",
|
|
45
|
-
"value",
|
|
46
|
-
"data-part",
|
|
47
|
-
"data-uiify-choice",
|
|
48
|
-
"data-uiify-radio",
|
|
49
|
-
"data-uiify-tabs"
|
|
50
|
-
]),
|
|
51
|
-
label: resolveRepeatedSlotProps(slotProps?.trigger, item.value, [
|
|
52
|
-
"htmlFor",
|
|
53
|
-
"id",
|
|
54
|
-
"data-part",
|
|
55
|
-
"data-uiify-tabs"
|
|
56
|
-
]),
|
|
57
|
-
panel: resolveRepeatedSlotProps(slotProps?.panel, item.value, [
|
|
58
|
-
"id",
|
|
59
|
-
"data-part",
|
|
60
|
-
"data-uiify-tabs"
|
|
61
|
-
])
|
|
62
|
-
}),
|
|
63
23
|
kind: "single",
|
|
64
24
|
labelPart: true,
|
|
65
25
|
namespace: "tabs",
|
|
66
26
|
orientation,
|
|
67
|
-
renderPanel: (item) => item.panel
|
|
27
|
+
renderPanel: (item) => item.panel,
|
|
28
|
+
slotProps: {
|
|
29
|
+
item: slotProps?.item,
|
|
30
|
+
input: slotProps?.input,
|
|
31
|
+
label: slotProps?.trigger,
|
|
32
|
+
panel: slotProps?.panel
|
|
33
|
+
}
|
|
68
34
|
}
|
|
69
35
|
);
|
|
70
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { TabsItem, TabsProps } from \"./types.js\";\n\nexport function Tabs({\n id,\n items,\n defaultValue,\n orientation = \"horizontal\",\n className,\n append,\n slotProps,\n ...rootProps\n}: TabsProps): ReactElement {\n return (\n <ChoiceGroup<TabsItem>\n {...(className !== undefined ? { className } : {})}\n rootProps={rootProps}\n {...(append !== undefined ? { append } : {})}\n {...(slotProps?.append !== undefined ? { appendProps: slotProps.append } : {})}\n id={id}\n items={items}\n isChecked={(item) => item.value === defaultValue}\n kind=\"single\"\n labelPart\n namespace=\"tabs\"\n orientation={orientation}\n renderPanel={(item) => item.panel}\n slotProps={{\n item: slotProps?.item,\n input: slotProps?.input,\n label: slotProps?.trigger,\n panel: slotProps?.panel,\n }}\n />\n );\n}\nTabs.displayName = \"Tabs\";\n"],"mappings":"AAeI;AAdJ,SAAS,mBAAmB;AAGrB,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4B;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD;AAAA,MACC,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,MACzC,GAAI,WAAW,WAAW,SAAY,EAAE,aAAa,UAAU,OAAO,IAAI,CAAC;AAAA,MAC5E;AAAA,MACA;AAAA,MACA,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,MAAK;AAAA,MACL,WAAS;AAAA,MACT,WAAU;AAAA,MACV;AAAA,MACA,aAAa,CAAC,SAAS,KAAK;AAAA,MAC5B,WAAW;AAAA,QACT,MAAM,WAAW;AAAA,QACjB,OAAO,WAAW;AAAA,QAClB,OAAO,WAAW;AAAA,QAClB,OAAO,WAAW;AAAA,MACpB;AAAA;AAAA,EACF;AAEJ;AACA,KAAK,cAAc;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { SlotProps } from "../../core/slot-props.js";
|
|
3
|
+
import type { ChoiceGroupSlotProps, ChoiceOrientation, ChoicePanelItem } from "../internal/choice-family/types.js";
|
|
4
4
|
export interface TabsStore {
|
|
5
5
|
readonly getValue: () => string | undefined;
|
|
6
6
|
readonly isSelected: (itemValue: string) => boolean;
|
|
@@ -10,28 +10,16 @@ export interface TabsStore {
|
|
|
10
10
|
}
|
|
11
11
|
export interface TabsItem extends ChoicePanelItem {
|
|
12
12
|
}
|
|
13
|
-
type
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
type TabsControlOwnedAttributes = TabsItemOwnedAttributes & {
|
|
19
|
-
readonly "data-uiify-radio"?: never;
|
|
20
|
-
};
|
|
21
|
-
type TabsPartOwnedAttributes = {
|
|
22
|
-
readonly "data-part"?: never;
|
|
23
|
-
readonly "data-uiify-tabs"?: never;
|
|
24
|
-
};
|
|
25
|
-
export type TabsItemSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "data-part" | "data-uiify-choice" | "data-uiify-tabs">, TabsItemOwnedAttributes>;
|
|
26
|
-
export type TabsInputSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"input">, "aria-labelledby" | "checked" | "defaultChecked" | "disabled" | "id" | "name" | "type" | "value" | "data-part" | "data-uiify-choice" | "data-uiify-radio" | "data-uiify-tabs">, TabsControlOwnedAttributes>;
|
|
27
|
-
export type TabsTriggerSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"label">, "children" | "dangerouslySetInnerHTML" | "htmlFor" | "id" | "data-part" | "data-uiify-tabs">, TabsPartOwnedAttributes>;
|
|
28
|
-
export type TabsPanelSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "id" | "data-part" | "data-uiify-tabs">, TabsPartOwnedAttributes>;
|
|
13
|
+
export type TabsItemSlotProps = NonNullable<ChoiceGroupSlotProps["item"]>;
|
|
14
|
+
export type TabsInputSlotProps = NonNullable<ChoiceGroupSlotProps["input"]>;
|
|
15
|
+
export type TabsTriggerSlotProps = NonNullable<ChoiceGroupSlotProps["label"]>;
|
|
16
|
+
export type TabsPanelSlotProps = NonNullable<ChoiceGroupSlotProps["panel"]>;
|
|
29
17
|
export interface TabsSlotProps {
|
|
30
18
|
readonly item?: TabsItemSlotProps;
|
|
31
19
|
readonly input?: TabsInputSlotProps;
|
|
32
20
|
readonly trigger?: TabsTriggerSlotProps;
|
|
33
21
|
readonly panel?: TabsPanelSlotProps;
|
|
34
|
-
readonly append?:
|
|
22
|
+
readonly append?: SlotProps<"div">;
|
|
35
23
|
}
|
|
36
24
|
export interface TabsOwnProps {
|
|
37
25
|
readonly id: string;
|
|
@@ -42,6 +30,5 @@ export interface TabsOwnProps {
|
|
|
42
30
|
readonly append?: ReactNode;
|
|
43
31
|
readonly slotProps?: TabsSlotProps;
|
|
44
32
|
}
|
|
45
|
-
export type TabsProps = TabsOwnProps & Omit<ComponentPropsWithRef<"div">, keyof TabsOwnProps | "children" | "dangerouslySetInnerHTML"
|
|
46
|
-
export {};
|
|
33
|
+
export type TabsProps = TabsOwnProps & Omit<ComponentPropsWithRef<"div">, keyof TabsOwnProps | "children" | "dangerouslySetInnerHTML">;
|
|
47
34
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CACjF;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;CAAG;AAEpD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;CACpC;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,YAAY,GAAG,UAAU,GAAG,yBAAyB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/TagsInput.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAStF,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAE3B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/TagsInput.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAStF,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAE3B,MAAM,YAAY,CAAC;AAapB,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAwG5E;yBAxGe,aAAa;;;AA2G7B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC9D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CA6ErB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA2C/E;yBA3Ce,aAAa;;;AA8C7B,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACzD,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CA4CrB;yBA9Ce,YAAY;;;AAiD5B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,YAAY,GAAG,IAAI,CAiBzF;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
|
|
@@ -16,12 +16,12 @@ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers"
|
|
|
16
16
|
import { isComposingKeyEvent } from "@gunkin/uiify/core/ime";
|
|
17
17
|
import { RovingFocusItem, RovingFocusRoot } from "@gunkin/uiify/core/roving-focus";
|
|
18
18
|
import { useRenderElement } from "@gunkin/uiify/core/render";
|
|
19
|
-
import { mergeRepeatedSlotProps
|
|
19
|
+
import { mergeRepeatedSlotProps } from "../../core/slot-props.js";
|
|
20
20
|
import { createTagsInputStore, splitTags } from "./tags-input-store.js";
|
|
21
21
|
const [TagsInputProvider, useTagsInputContext] = createPartContext("TagsInput");
|
|
22
|
-
function resolveIndexedSlotProps(slotProps, index
|
|
22
|
+
function resolveIndexedSlotProps(slotProps, index) {
|
|
23
23
|
const { byItemIndex, ...common } = slotProps ?? {};
|
|
24
|
-
return
|
|
24
|
+
return mergeRepeatedSlotProps(common, byItemIndex?.[index]);
|
|
25
25
|
}
|
|
26
26
|
function TagsInputRoot(props) {
|
|
27
27
|
const {
|
|
@@ -110,11 +110,11 @@ function TagsInputRoot(props) {
|
|
|
110
110
|
return /* @__PURE__ */ jsx(TagsInputProvider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
111
111
|
"div",
|
|
112
112
|
{
|
|
113
|
+
"data-disabled": disabled ? "" : void 0,
|
|
114
|
+
"data-uiify-tags-input": "",
|
|
113
115
|
...consumerProps,
|
|
114
116
|
...id !== void 0 ? { id } : {},
|
|
115
117
|
className,
|
|
116
|
-
"data-disabled": disabled ? "" : void 0,
|
|
117
|
-
"data-uiify-tags-input": "",
|
|
118
118
|
children
|
|
119
119
|
}
|
|
120
120
|
) });
|
|
@@ -169,7 +169,6 @@ function TagsInputInput(props) {
|
|
|
169
169
|
as,
|
|
170
170
|
defaultTag: "input",
|
|
171
171
|
props: {
|
|
172
|
-
...consumerProps,
|
|
173
172
|
id: inputId,
|
|
174
173
|
type: "text",
|
|
175
174
|
role: "combobox",
|
|
@@ -178,6 +177,7 @@ function TagsInputInput(props) {
|
|
|
178
177
|
disabled: disabled || void 0,
|
|
179
178
|
"data-part": "input",
|
|
180
179
|
value: inputValue,
|
|
180
|
+
...consumerProps,
|
|
181
181
|
placeholder,
|
|
182
182
|
...className ? { className } : {},
|
|
183
183
|
onChange: composeEventHandlers(consumerOnChange, handleChange),
|
|
@@ -197,30 +197,25 @@ function TagsInputList(props) {
|
|
|
197
197
|
{
|
|
198
198
|
as: "ul",
|
|
199
199
|
orientation: "horizontal",
|
|
200
|
-
...consumerProps,
|
|
201
|
-
...className ? { className } : {},
|
|
202
200
|
id: listId,
|
|
203
201
|
"data-part": "list",
|
|
202
|
+
...consumerProps,
|
|
203
|
+
...className ? { className } : {},
|
|
204
204
|
children: [
|
|
205
205
|
tags.map((tag, index) => {
|
|
206
|
-
const tagProps = resolveIndexedSlotProps(slotProps?.tag, index
|
|
207
|
-
|
|
208
|
-
"data-part",
|
|
209
|
-
"data-value"
|
|
210
|
-
]);
|
|
211
|
-
return /* @__PURE__ */ createElement("li", { ...tagProps, "data-index": index, "data-value": tag, key: `${tag}-${index}` }, tag);
|
|
206
|
+
const tagProps = resolveIndexedSlotProps(slotProps?.tag, index);
|
|
207
|
+
return /* @__PURE__ */ createElement("li", { "data-index": index, "data-value": tag, ...tagProps, key: `${tag}-${index}` }, tag);
|
|
212
208
|
}),
|
|
213
209
|
Children.map(
|
|
214
210
|
children,
|
|
215
211
|
(child) => isValidElement(child) && child.type === TagsInputTag ? child : /* @__PURE__ */ jsx(
|
|
216
212
|
"li",
|
|
217
213
|
{
|
|
214
|
+
"data-part": "input-slot",
|
|
218
215
|
...resolveIndexedSlotProps(
|
|
219
216
|
slotProps?.input,
|
|
220
|
-
0
|
|
221
|
-
["data-part"]
|
|
217
|
+
0
|
|
222
218
|
),
|
|
223
|
-
"data-part": "input-slot",
|
|
224
219
|
children: child
|
|
225
220
|
}
|
|
226
221
|
)
|
|
@@ -241,10 +236,10 @@ function TagsInputTag(props) {
|
|
|
241
236
|
}
|
|
242
237
|
};
|
|
243
238
|
const tagProps = {
|
|
244
|
-
...consumerProps,
|
|
245
239
|
role: "listitem",
|
|
246
240
|
"data-part": "tag",
|
|
247
241
|
"data-value": value,
|
|
242
|
+
...consumerProps,
|
|
248
243
|
...className ? { className } : {},
|
|
249
244
|
onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),
|
|
250
245
|
children
|
|
@@ -272,22 +267,16 @@ function TagsInputTag(props) {
|
|
|
272
267
|
}
|
|
273
268
|
TagsInputTag.displayName = "TagsInputTag";
|
|
274
269
|
function TagsInputTagRemove(props) {
|
|
275
|
-
const {
|
|
276
|
-
"aria-label": ariaLabel,
|
|
277
|
-
className,
|
|
278
|
-
index,
|
|
279
|
-
onClick: consumerOnClick,
|
|
280
|
-
...consumerProps
|
|
281
|
-
} = props;
|
|
270
|
+
const { className, index, onClick: consumerOnClick, ...consumerProps } = props;
|
|
282
271
|
const { disabled, removeAt } = useTagsInputContext("TagRemove");
|
|
283
272
|
return useRenderElement({
|
|
284
273
|
defaultTag: "button",
|
|
285
274
|
props: {
|
|
286
|
-
...consumerProps,
|
|
287
275
|
type: "button",
|
|
288
|
-
"aria-label":
|
|
276
|
+
"aria-label": "Remove tag",
|
|
289
277
|
"data-part": "tag-remove",
|
|
290
278
|
disabled: disabled || void 0,
|
|
279
|
+
...consumerProps,
|
|
291
280
|
...className ? { className } : {},
|
|
292
281
|
onClick: composeEventHandlers(consumerOnClick, () => removeAt(index))
|
|
293
282
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { isComposingKeyEvent } from \"@gunkin/uiify/core/ime\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../core/slot-props.js\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n TagsInputListSlotProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nfunction resolveIndexedSlotProps<TProps extends object>(\n slotProps: (TProps & { readonly byItemIndex?: Readonly<Record<number, TProps>> }) | undefined,\n index: number,\n protectedKeys: readonly string[],\n): TProps {\n const { byItemIndex, ...common } = slotProps ?? {};\n return omitProps(mergeRepeatedSlotProps(common as TProps, byItemIndex?.[index]), protectedKeys);\n}\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n className,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n id,\n items: _items,\n maxTags,\n onValueChange,\n validate,\n value: controlledValue,\n ...consumerProps\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onValueChange ? { onChange: onValueChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div\n {...consumerProps}\n {...(id !== undefined ? { id } : {})}\n className={className}\n data-disabled={disabled ? \"\" : undefined}\n data-uiify-tags-input=\"\"\n >\n {children}\n </div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (isComposingKeyEvent(event)) return;\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n ...consumerProps,\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n \"data-part\": \"input\",\n value: inputValue,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className, slotProps, ...consumerProps } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n orientation=\"horizontal\"\n {...consumerProps}\n {...(className ? { className } : {})}\n id={listId}\n data-part=\"list\"\n >\n {tags.map((tag, index) => {\n const tagProps = resolveIndexedSlotProps(slotProps?.tag, index, [\n \"data-index\",\n \"data-part\",\n \"data-value\",\n ]);\n return (\n <li {...tagProps} data-index={index} data-value={tag} key={`${tag}-${index}`}>\n {tag}\n </li>\n );\n })}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li\n {...resolveIndexedSlotProps<TagsInputListSlotProps[\"input\"] & object>(\n slotProps?.input,\n 0,\n [\"data-part\"],\n )}\n data-part=\"input-slot\"\n >\n {child}\n </li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n ...consumerProps,\n role: \"listitem\",\n \"data-part\": \"tag\",\n \"data-value\": value,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const {\n \"aria-label\": ariaLabel,\n className,\n index,\n onClick: consumerOnClick,\n ...consumerProps\n } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n type: \"button\",\n \"aria-label\": ariaLabel ?? \"Remove tag\",\n \"data-part\": \"tag-remove\",\n disabled: disabled || undefined,\n ...(className ? { className } : {}),\n onClick: composeEventHandlers(consumerOnClick, () => removeAt(index)),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { isComposingKeyEvent } from \"@gunkin/uiify/core/ime\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n TagsInputListSlotProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nfunction resolveIndexedSlotProps<TProps extends object>(\n slotProps: (TProps & { readonly byItemIndex?: Readonly<Record<number, TProps>> }) | undefined,\n index: number,\n): TProps {\n const { byItemIndex, ...common } = slotProps ?? {};\n return mergeRepeatedSlotProps(common as TProps, byItemIndex?.[index]);\n}\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n className,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n id,\n items: _items,\n maxTags,\n onValueChange,\n validate,\n value: controlledValue,\n ...consumerProps\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onValueChange ? { onChange: onValueChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div\n data-disabled={disabled ? \"\" : undefined}\n data-uiify-tags-input=\"\"\n {...consumerProps}\n {...(id !== undefined ? { id } : {})}\n className={className}\n >\n {children}\n </div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (isComposingKeyEvent(event)) return;\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n \"data-part\": \"input\",\n value: inputValue,\n ...consumerProps,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className, slotProps, ...consumerProps } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n orientation=\"horizontal\"\n id={listId}\n data-part=\"list\"\n {...consumerProps}\n {...(className ? { className } : {})}\n >\n {tags.map((tag, index) => {\n const tagProps = resolveIndexedSlotProps(slotProps?.tag, index);\n return (\n <li data-index={index} data-value={tag} {...tagProps} key={`${tag}-${index}`}>\n {tag}\n </li>\n );\n })}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li\n data-part=\"input-slot\"\n {...resolveIndexedSlotProps<TagsInputListSlotProps[\"input\"] & object>(\n slotProps?.input,\n 0,\n )}\n >\n {child}\n </li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n role: \"listitem\",\n \"data-part\": \"tag\",\n \"data-value\": value,\n ...consumerProps,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const { className, index, onClick: consumerOnClick, ...consumerProps } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n type: \"button\",\n \"aria-label\": \"Remove tag\",\n \"data-part\": \"tag-remove\",\n disabled: disabled || undefined,\n ...consumerProps,\n ...(className ? { className } : {}),\n onClick: composeEventHandlers(consumerOnClick, () => removeAt(index)),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":";AAuIM,cAqGF,YArGE;AAgHI;AArPV;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,sBAAsB,OAAO,iCAAiC;AACvE,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;AACpC,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AACvC,SAAS,sBAAsB,iBAAiB;AAYhD,MAAM,CAAC,mBAAmB,mBAAmB,IAC3C,kBAAyC,WAAW;AAEtD,SAAS,wBACP,WACA,OACQ;AACR,QAAM,EAAE,aAAa,GAAG,OAAO,IAAI,aAAa,CAAC;AACjD,SAAO,uBAAuB,QAAkB,cAAc,KAAK,CAAC;AACtE;AAEO,SAAS,cAAc,OAAgD;AAC5E,QAAM;AAAA,IACJ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA,eAAe,CAAC;AAAA,IAChB,aAAa,CAAC,GAAG;AAAA,IACjB,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,SAAS,MAAM;AACrB,QAAM,UAAU,MAAM;AACtB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,EAAE;AAC/C,QAAM,CAAC,MAAM,OAAO,IAAI,qBAA+B;AAAA,IACrD,cAAc,CAAC,GAAG,YAAY;AAAA,IAC9B,GAAI,oBAAoB,SAAY,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,IAAI,CAAC;AAAA,IACvE,GAAI,gBAAgB,EAAE,UAAU,cAAc,IAAI,CAAC;AAAA,EACrD,CAAC;AAED,QAAM,WAAW,OAA8B,IAAI;AACnD,WAAS,YAAY,qBAAqB,MAAM;AAAA,IAC9C;AAAA,IACA,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC3C,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACjC,CAAC;AACD,QAAM,QAAQ,SAAS;AAEvB,4BAA0B,MAAM;AAC9B,UAAM,QAAQ,IAAI;AAClB,UAAM,cAAc;AAAA,MAClB;AAAA,MACA,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,MAC3C,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACjC,CAAC;AAAA,EACH,GAAG,CAAC,iBAAiB,SAAS,OAAO,MAAM,QAAQ,CAAC;AAEpD,QAAM,SAAS;AAAA,IACb,CAAC,QAAgB;AACf,UAAI,SAAU;AACd,UAAI,MAAM,OAAO,GAAG,GAAG;AACrB,gBAAQ,MAAM,QAAQ,CAAC;AACvB,sBAAc,EAAE;AAAA,MAClB;AAAA,IACF;AAAA,IACA,CAAC,UAAU,SAAS,KAAK;AAAA,EAC3B;AAEA,QAAM,WAAW;AAAA,IACf,CAAC,UAAkB;AACjB,UAAI,SAAU;AACd,YAAM,SAAS,KAAK;AACpB,cAAQ,MAAM,QAAQ,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,UAAU,SAAS,KAAK;AAAA,EAC3B;AAEA,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAAC,qBAAkB,OAAO,cACxB;AAAA,IAAC;AAAA;AAAA,MACC,iBAAe,WAAW,KAAK;AAAA,MAC/B,yBAAsB;AAAA,MACrB,GAAG;AAAA,MACH,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA,MAClC;AAAA,MAEC;AAAA;AAAA,EACH,GACF;AAEJ;AACA,cAAc,cAAc;AAErB,SAAS,eACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,WAAW,aAAa,GAAG,cAAc,IAC3D;AACF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,oBAAoB,OAAO;AAC/B,QAAM,OAAO,qBAAqB,MAAM,WAAW,MAAM,SAAS,MAAM,OAAO;AAC/E,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,SAAS;AAAA,EACX,IAAI;AAMJ,QAAM,cAAc,MAAM;AACxB,QAAI,WAAW,KAAK,EAAG,QAAO,UAAU;AAAA,EAC1C;AAEA,QAAM,eAAe,CAAC,UAA4C;AAChE,kBAAc,MAAM,cAAc,KAAK;AAAA,EACzC;AAEA,QAAM,gBAAgB,CAAC,UAA2C;AAChE,QAAI,oBAAoB,KAAK,EAAG;AAChC,QAAI,MAAM,QAAQ,WAAW,WAAW,SAAS,MAAM,GAAG,GAAG;AAC3D,YAAM,eAAe;AACrB,kBAAY;AAAA,IACd,WAAW,MAAM,QAAQ,eAAe,CAAC,cAAc,KAAK,SAAS,GAAG;AACtE,YAAM,eAAe;AACrB,eAAS,KAAK,SAAS,CAAC;AAAA,IAC1B;AAAA,EACF;AAEA,QAAM,cAAc,CAAC,UAAkD;AACrE,QAAI,CAAC,WAAY;AACjB,UAAM,OAAO,MAAM,cAAc,QAAQ,MAAM;AAC/C,UAAM,aAAa,CAAC,GAAG,YAAY,MAAM,GAAI;AAC7C,QAAI,CAAC,WAAW,KAAK,CAAC,cAAc,KAAK,SAAS,SAAS,CAAC,EAAG;AAC/D,UAAM,eAAe;AACrB,UAAM,QAAQ,UAAU,MAAM,UAAU;AACxC,eAAW,QAAQ,MAAO,QAAO,IAAI;AAAA,EACvC;AAEA,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,UAAU,YAAY;AAAA,MACtB,aAAa;AAAA,MACb,OAAO;AAAA,MACP,GAAG;AAAA,MACH;AAAA,MACA,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,WAAW,qBAAqB,mBAAmB,aAAa;AAAA,MAChE,SAAS,qBAAqB,iBAAiB,WAAW;AAAA,IAC5D;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAAmD;AAC/E,QAAM,EAAE,UAAU,WAAW,WAAW,GAAG,cAAc,IAAI;AAC7D,QAAM,EAAE,QAAQ,MAAM,IAAI,oBAAoB,MAAM;AACpD,QAAM,OAAO,qBAAqB,MAAM,WAAW,MAAM,SAAS,MAAM,OAAO;AAE/E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,aAAY;AAAA,MACZ,IAAI;AAAA,MACJ,aAAU;AAAA,MACT,GAAG;AAAA,MACH,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAEjC;AAAA,aAAK,IAAI,CAAC,KAAK,UAAU;AACxB,gBAAM,WAAW,wBAAwB,WAAW,KAAK,KAAK;AAC9D,iBACE,8BAAC,QAAG,cAAY,OAAO,cAAY,KAAM,GAAG,UAAU,KAAK,GAAG,GAAG,IAAI,KAAK,MACvE,GACH;AAAA,QAEJ,CAAC;AAAA,QAKA,SAAS;AAAA,UAAI;AAAA,UAAU,CAAC,UACvB,eAAe,KAAK,KAAK,MAAM,SAAS,eACtC,QAEA;AAAA,YAAC;AAAA;AAAA,cACC,aAAU;AAAA,cACT,GAAG;AAAA,gBACF,WAAW;AAAA,gBACX;AAAA,cACF;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,QAEJ;AAAA;AAAA;AAAA,EACF;AAEJ;AACA,cAAc,cAAc;AAErB,SAAS,aACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,WAAW,OAAO,OAAO,GAAG,cAAc,IACtE;AACF,QAAM,EAAE,UAAU,SAAS,IAAI,oBAAoB,KAAK;AACxD,QAAM,EAAE,WAAW,kBAAkB,IAAI;AAIzC,QAAM,gBAAgB,CAAC,UAAsC;AAC3D,QAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,UAAU;AACvD,YAAM,eAAe;AACrB,eAAS,KAAK;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,WAAW;AAAA,IACf,MAAM;AAAA,IACN,aAAa;AAAA,IACb,cAAc;AAAA,IACd,GAAG;AAAA,IACH,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IACjC,WAAW,qBAAqB,mBAAmB,aAAa;AAAA,IAChE;AAAA,EACF;AAEA,MAAI,QAAQ;AACV,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,QAAQ,CAAC,aAAa,UAAU,OAAO,aAAa,EAAE,SAAS,MAAM,QAAQ,CAAC;AAAA,QAC9E,WAAW;AAAA,QACV,GAAI;AAAA;AAAA,IACP;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAI,MAAM;AAAA,MACV;AAAA,MACA,WAAW;AAAA,MACV,GAAI;AAAA;AAAA,EACP;AAEJ;AACA,aAAa,cAAc;AAEpB,SAAS,mBAAmB,OAAwD;AACzF,QAAM,EAAE,WAAW,OAAO,SAAS,iBAAiB,GAAG,cAAc,IAAI;AACzE,QAAM,EAAE,UAAU,SAAS,IAAI,oBAAoB,WAAW;AAE9D,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,cAAc;AAAA,MACd,aAAa;AAAA,MACb,UAAU,YAAY;AAAA,MACtB,GAAG;AAAA,MACH,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,SAAS,qBAAqB,iBAAiB,MAAM,SAAS,KAAK,CAAC;AAAA,IACtE;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,MAAM,YAAY;AAAA,EACvB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AACb;","names":[]}
|