@bitrix24/b24ui-nuxt 0.5.11 → 0.6.1
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/.nuxt/b24ui/advice.ts +10 -2
- package/.nuxt/b24ui/alert.ts +10 -2
- package/.nuxt/b24ui/avatar-group.ts +10 -2
- package/.nuxt/b24ui/avatar.ts +10 -2
- package/.nuxt/b24ui/badge.ts +10 -2
- package/.nuxt/b24ui/button-group.ts +10 -2
- package/.nuxt/b24ui/button.ts +16 -6
- package/.nuxt/b24ui/calendar.ts +10 -2
- package/.nuxt/b24ui/checkbox.ts +10 -2
- package/.nuxt/b24ui/chip.ts +10 -2
- package/.nuxt/b24ui/collapsible.ts +10 -2
- package/.nuxt/b24ui/container.ts +10 -2
- package/.nuxt/b24ui/countdown.ts +10 -2
- package/.nuxt/b24ui/description-list.ts +10 -2
- package/.nuxt/b24ui/dropdown-menu.ts +10 -2
- package/.nuxt/b24ui/form-field.ts +10 -2
- package/.nuxt/b24ui/form.ts +10 -2
- package/.nuxt/b24ui/input-menu.ts +12 -4
- package/.nuxt/b24ui/input-number.ts +10 -2
- package/.nuxt/b24ui/input.ts +10 -2
- package/.nuxt/b24ui/kbd.ts +10 -2
- package/.nuxt/b24ui/link.ts +10 -2
- package/.nuxt/b24ui/modal.ts +10 -2
- package/.nuxt/b24ui/navbar-divider.ts +10 -2
- package/.nuxt/b24ui/navbar-section.ts +10 -2
- package/.nuxt/b24ui/navbar-spacer.ts +10 -2
- package/.nuxt/b24ui/navbar.ts +10 -2
- package/.nuxt/b24ui/navigation-menu.ts +10 -2
- package/.nuxt/b24ui/popover.ts +10 -2
- package/.nuxt/b24ui/progress.ts +10 -2
- package/.nuxt/b24ui/radio-group.ts +10 -2
- package/.nuxt/b24ui/range.ts +10 -2
- package/.nuxt/b24ui/select-menu.ts +14 -6
- package/.nuxt/b24ui/select.ts +12 -4
- package/.nuxt/b24ui/separator.ts +10 -2
- package/.nuxt/b24ui/sidebar-body.ts +10 -2
- package/.nuxt/b24ui/sidebar-footer.ts +10 -2
- package/.nuxt/b24ui/sidebar-header.ts +10 -2
- package/.nuxt/b24ui/sidebar-heading.ts +10 -2
- package/.nuxt/b24ui/sidebar-layout.ts +10 -2
- package/.nuxt/b24ui/sidebar-section.ts +10 -2
- package/.nuxt/b24ui/sidebar-spacer.ts +10 -2
- package/.nuxt/b24ui/sidebar.ts +10 -2
- package/.nuxt/b24ui/skeleton.ts +10 -2
- package/.nuxt/b24ui/slideover.ts +10 -2
- package/.nuxt/b24ui/stacked-layout.ts +10 -2
- package/.nuxt/b24ui/switch.ts +10 -2
- package/.nuxt/b24ui/tabs.ts +10 -2
- package/.nuxt/b24ui/textarea.ts +10 -2
- package/.nuxt/b24ui/toast.ts +10 -2
- package/.nuxt/b24ui/toaster.ts +10 -2
- package/.nuxt/b24ui/tooltip.ts +10 -2
- package/cli/templates.mjs +19 -15
- package/dist/meta.d.mts +5675 -7513
- package/dist/meta.mjs +5675 -7513
- package/dist/module.json +3 -3
- package/dist/module.mjs +2 -2
- package/dist/runtime/components/Advice.vue +27 -55
- package/dist/runtime/components/Advice.vue.d.ts +56 -0
- package/dist/runtime/components/Alert.vue +35 -97
- package/dist/runtime/components/Alert.vue.d.ts +97 -0
- package/dist/runtime/components/App.vue +24 -34
- package/dist/runtime/components/App.vue.d.ts +23 -0
- package/dist/runtime/components/Avatar.vue +43 -82
- package/dist/runtime/components/Avatar.vue.d.ts +62 -0
- package/dist/runtime/components/AvatarGroup.vue +40 -77
- package/dist/runtime/components/AvatarGroup.vue.d.ts +40 -0
- package/dist/runtime/components/Badge.vue +40 -84
- package/dist/runtime/components/Badge.vue.d.ts +78 -0
- package/dist/runtime/components/Button.vue +107 -164
- package/dist/runtime/components/Button.vue.d.ts +115 -0
- package/dist/runtime/components/ButtonGroup.vue +25 -52
- package/dist/runtime/components/ButtonGroup.vue.d.ts +63 -0
- package/dist/runtime/components/Calendar.vue +73 -153
- package/dist/runtime/components/Calendar.vue.d.ts +107 -0
- package/dist/runtime/components/Checkbox.vue +42 -74
- package/dist/runtime/components/Checkbox.vue.d.ts +55 -0
- package/dist/runtime/components/Chip.vue +26 -75
- package/dist/runtime/components/Chip.vue.d.ts +77 -0
- package/dist/runtime/components/Collapsible.vue +22 -41
- package/dist/runtime/components/Collapsible.vue.d.ts +50 -0
- package/dist/runtime/components/Container.vue +15 -28
- package/dist/runtime/components/Container.vue.d.ts +27 -0
- package/dist/runtime/components/Countdown.vue +153 -379
- package/dist/runtime/components/Countdown.vue.d.ts +122 -0
- package/dist/runtime/components/DescriptionList.vue +78 -150
- package/dist/runtime/components/DescriptionList.vue.d.ts +109 -0
- package/dist/runtime/components/DropdownMenu.vue +38 -140
- package/dist/runtime/components/DropdownMenu.vue.d.ts +133 -0
- package/dist/runtime/components/DropdownMenuContent.vue +65 -79
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
- package/dist/runtime/components/Form.vue +132 -218
- package/dist/runtime/components/Form.vue.d.ts +55 -0
- package/dist/runtime/components/FormField.vue +36 -81
- package/dist/runtime/components/FormField.vue.d.ts +73 -0
- package/dist/runtime/components/Input.vue +79 -180
- package/dist/runtime/components/Input.vue.d.ts +135 -0
- package/dist/runtime/components/InputMenu.vue +185 -382
- package/dist/runtime/components/InputMenu.vue.d.ts +357 -0
- package/dist/runtime/components/InputNumber.vue +77 -176
- package/dist/runtime/components/InputNumber.vue.d.ts +238 -0
- package/dist/runtime/components/Kbd.vue +20 -46
- package/dist/runtime/components/Kbd.vue.d.ts +55 -0
- package/dist/runtime/components/Link.vue +99 -179
- package/dist/runtime/components/Link.vue.d.ts +129 -0
- package/dist/runtime/components/LinkBase.vue +33 -42
- package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
- package/dist/runtime/components/Modal.vue +48 -128
- package/dist/runtime/components/Modal.vue.d.ts +124 -0
- package/dist/runtime/components/ModalDialogClose.vue +5 -8
- package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
- package/dist/runtime/components/Navbar.vue +15 -33
- package/dist/runtime/components/Navbar.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarDivider.vue +15 -33
- package/dist/runtime/components/NavbarDivider.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarSection.vue +15 -33
- package/dist/runtime/components/NavbarSection.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarSpacer.vue +15 -33
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +46 -0
- package/dist/runtime/components/NavigationMenu.vue +74 -209
- package/dist/runtime/components/NavigationMenu.vue.d.ts +159 -0
- package/dist/runtime/components/OverlayProvider.vue +14 -18
- package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
- package/dist/runtime/components/Popover.vue +40 -82
- package/dist/runtime/components/Popover.vue.d.ts +79 -0
- package/dist/runtime/components/Progress.vue +70 -137
- package/dist/runtime/components/Progress.vue.d.ts +103 -0
- package/dist/runtime/components/RadioGroup.vue +59 -135
- package/dist/runtime/components/RadioGroup.vue.d.ts +88 -0
- package/dist/runtime/components/Range.vue +46 -86
- package/dist/runtime/components/Range.vue.d.ts +73 -0
- package/dist/runtime/components/Select.vue +110 -261
- package/dist/runtime/components/Select.vue.d.ts +170 -0
- package/dist/runtime/components/SelectMenu.vue +161 -348
- package/dist/runtime/components/SelectMenu.vue.d.ts +217 -0
- package/dist/runtime/components/Separator.vue +28 -72
- package/dist/runtime/components/Separator.vue.d.ts +77 -0
- package/dist/runtime/components/Sidebar.vue +15 -33
- package/dist/runtime/components/Sidebar.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarBody.vue +17 -39
- package/dist/runtime/components/SidebarBody.vue.d.ts +53 -0
- package/dist/runtime/components/SidebarFooter.vue +15 -33
- package/dist/runtime/components/SidebarFooter.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarHeader.vue +15 -33
- package/dist/runtime/components/SidebarHeader.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarHeading.vue +15 -33
- package/dist/runtime/components/SidebarHeading.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarLayout.vue +34 -71
- package/dist/runtime/components/SidebarLayout.vue.d.ts +65 -0
- package/dist/runtime/components/SidebarSection.vue +15 -33
- package/dist/runtime/components/SidebarSection.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarSpacer.vue +15 -33
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +46 -0
- package/dist/runtime/components/Skeleton.vue +14 -23
- package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
- package/dist/runtime/components/Slideover.vue +50 -132
- package/dist/runtime/components/Slideover.vue.d.ts +127 -0
- package/dist/runtime/components/StackedLayout.vue +34 -74
- package/dist/runtime/components/StackedLayout.vue.d.ts +65 -0
- package/dist/runtime/components/Switch.vue +46 -96
- package/dist/runtime/components/Switch.vue.d.ts +77 -0
- package/dist/runtime/components/Tabs.vue +41 -106
- package/dist/runtime/components/Tabs.vue.d.ts +104 -0
- package/dist/runtime/components/Textarea.vue +92 -202
- package/dist/runtime/components/Textarea.vue.d.ts +141 -0
- package/dist/runtime/components/Toast.vue +47 -106
- package/dist/runtime/components/Toast.vue.d.ts +95 -0
- package/dist/runtime/components/Toaster.vue +70 -116
- package/dist/runtime/components/Toaster.vue.d.ts +70 -0
- package/dist/runtime/components/Tooltip.vue +36 -65
- package/dist/runtime/components/Tooltip.vue.d.ts +65 -0
- package/dist/runtime/components/content/TableWrapper.vue +24 -71
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +83 -0
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
- package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
- package/dist/runtime/composables/useFormField.d.ts +2 -2
- package/dist/runtime/composables/useOverlay.d.ts +14 -7
- package/dist/runtime/composables/useOverlay.js +14 -6
- package/dist/runtime/prose/A.vue +16 -26
- package/dist/runtime/prose/A.vue.d.ts +27 -0
- package/dist/runtime/prose/Blockquote.vue +14 -26
- package/dist/runtime/prose/Blockquote.vue.d.ts +27 -0
- package/dist/runtime/prose/Code.vue +15 -32
- package/dist/runtime/prose/Code.vue.d.ts +31 -0
- package/dist/runtime/prose/Em.vue +16 -26
- package/dist/runtime/prose/Em.vue.d.ts +27 -0
- package/dist/runtime/prose/H1.vue +14 -26
- package/dist/runtime/prose/H1.vue.d.ts +27 -0
- package/dist/runtime/prose/H2.vue +14 -26
- package/dist/runtime/prose/H2.vue.d.ts +27 -0
- package/dist/runtime/prose/H3.vue +14 -26
- package/dist/runtime/prose/H3.vue.d.ts +27 -0
- package/dist/runtime/prose/H4.vue +14 -26
- package/dist/runtime/prose/H4.vue.d.ts +27 -0
- package/dist/runtime/prose/H5.vue +14 -26
- package/dist/runtime/prose/H5.vue.d.ts +27 -0
- package/dist/runtime/prose/H6.vue +14 -26
- package/dist/runtime/prose/H6.vue.d.ts +27 -0
- package/dist/runtime/prose/Hr.vue +13 -22
- package/dist/runtime/prose/Hr.vue.d.ts +19 -0
- package/dist/runtime/prose/Img.vue +13 -26
- package/dist/runtime/prose/Img.vue.d.ts +19 -0
- package/dist/runtime/prose/Li.vue +14 -26
- package/dist/runtime/prose/Li.vue.d.ts +27 -0
- package/dist/runtime/prose/Ol.vue +14 -26
- package/dist/runtime/prose/Ol.vue.d.ts +27 -0
- package/dist/runtime/prose/P.vue +14 -26
- package/dist/runtime/prose/P.vue.d.ts +27 -0
- package/dist/runtime/prose/Pre.vue +17 -33
- package/dist/runtime/prose/Pre.vue.d.ts +47 -0
- package/dist/runtime/prose/Strong.vue +14 -26
- package/dist/runtime/prose/Strong.vue.d.ts +27 -0
- package/dist/runtime/prose/Table.vue +21 -57
- package/dist/runtime/prose/Table.vue.d.ts +74 -0
- package/dist/runtime/prose/Tbody.vue +14 -26
- package/dist/runtime/prose/Tbody.vue.d.ts +27 -0
- package/dist/runtime/prose/Td.vue +14 -26
- package/dist/runtime/prose/Td.vue.d.ts +27 -0
- package/dist/runtime/prose/Th.vue +14 -26
- package/dist/runtime/prose/Th.vue.d.ts +27 -0
- package/dist/runtime/prose/Thead.vue +14 -26
- package/dist/runtime/prose/Thead.vue.d.ts +27 -0
- package/dist/runtime/prose/Tr.vue +14 -26
- package/dist/runtime/prose/Tr.vue.d.ts +27 -0
- package/dist/runtime/prose/Ul.vue +14 -26
- package/dist/runtime/prose/Ul.vue.d.ts +27 -0
- package/dist/runtime/types/form.d.ts +1 -0
- package/dist/runtime/types/utils.d.ts +42 -3
- package/dist/runtime/utils/link.d.ts +3 -3
- package/dist/runtime/utils/tv.js +2 -2
- package/dist/runtime/vue/components/Link.vue +122 -208
- package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
- package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.wBs9vEU5.mjs} +33 -8
- package/dist/types.d.mts +3 -5
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +19 -27
- package/dist/meta.cjs +0 -72112
- package/dist/meta.d.cts +0 -72110
- package/dist/meta.d.ts +0 -72110
- package/dist/module.cjs +0 -63
- package/dist/module.d.cts +0 -15
- package/dist/module.d.ts +0 -15
- package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
- package/dist/types.d.ts +0 -7
- package/dist/unplugin.cjs +0 -236
- package/dist/unplugin.d.cts +0 -33
- package/dist/unplugin.d.ts +0 -33
- package/dist/vite.cjs +0 -21
- package/dist/vite.d.cts +0 -14
- package/dist/vite.d.ts +0 -14
|
@@ -1,111 +1,43 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import type { RadioGroupRootProps, RadioGroupRootEmits } from 'reka-ui'
|
|
4
|
-
import type { AppConfig } from '@nuxt/schema'
|
|
5
|
-
import _appConfig from '#build/app.config'
|
|
6
|
-
import theme from '#build/b24ui/radio-group'
|
|
7
|
-
import { tv } from '../utils/tv'
|
|
8
|
-
import type { AcceptableValue } from '../types/utils'
|
|
9
|
-
|
|
10
|
-
const appConfigRadioGroup = _appConfig as AppConfig & { b24ui: { radioGroup: Partial<typeof theme> } }
|
|
11
|
-
|
|
12
|
-
const radioGroup = tv({ extend: tv(theme), ...(appConfigRadioGroup.b24ui?.radioGroup || {}) })
|
|
13
|
-
|
|
14
|
-
type RadioGroupVariants = VariantProps<typeof radioGroup>
|
|
15
|
-
|
|
16
|
-
export type RadioGroupValue = AcceptableValue
|
|
17
|
-
export type RadioGroupItem = {
|
|
18
|
-
label?: string
|
|
19
|
-
description?: string
|
|
20
|
-
disabled?: boolean
|
|
21
|
-
value?: string
|
|
22
|
-
[key: string]: any
|
|
23
|
-
} | RadioGroupValue
|
|
24
|
-
|
|
25
|
-
export interface RadioGroupProps<T extends RadioGroupItem = RadioGroupItem> extends Pick<RadioGroupRootProps, 'defaultValue' | 'disabled' | 'loop' | 'modelValue' | 'name' | 'required'> {
|
|
26
|
-
/**
|
|
27
|
-
* The element or component this component should render as.
|
|
28
|
-
* @defaultValue 'div'
|
|
29
|
-
*/
|
|
30
|
-
as?: any
|
|
31
|
-
legend?: string
|
|
32
|
-
/**
|
|
33
|
-
* When `items` is an array of objects, select the field to use as the value.
|
|
34
|
-
* @defaultValue 'value'
|
|
35
|
-
*/
|
|
36
|
-
valueKey?: string
|
|
37
|
-
/**
|
|
38
|
-
* When `items` is an array of objects, select the field to use as the label.
|
|
39
|
-
* @defaultValue 'label'
|
|
40
|
-
*/
|
|
41
|
-
labelKey?: string
|
|
42
|
-
/**
|
|
43
|
-
* When `items` is an array of objects, select the field to use as the description.
|
|
44
|
-
* @defaultValue 'description'
|
|
45
|
-
*/
|
|
46
|
-
descriptionKey?: string
|
|
47
|
-
items?: T[]
|
|
48
|
-
/**
|
|
49
|
-
* @defaultValue 'md'
|
|
50
|
-
*/
|
|
51
|
-
size?: RadioGroupVariants['size']
|
|
52
|
-
/**
|
|
53
|
-
* @defaultValue 'list'
|
|
54
|
-
*/
|
|
55
|
-
variant?: RadioGroupVariants['variant']
|
|
56
|
-
/**
|
|
57
|
-
* @defaultValue 'primary'
|
|
58
|
-
*/
|
|
59
|
-
color?: RadioGroupVariants['color']
|
|
60
|
-
/**
|
|
61
|
-
* The orientation the radio buttons are laid out.
|
|
62
|
-
* @defaultValue 'vertical'
|
|
63
|
-
*/
|
|
64
|
-
orientation?: RadioGroupRootProps['orientation']
|
|
65
|
-
/**
|
|
66
|
-
* Position of the indicator.
|
|
67
|
-
* @defaultValue 'start'
|
|
68
|
-
*/
|
|
69
|
-
indicator?: RadioGroupVariants['indicator']
|
|
70
|
-
class?: any
|
|
71
|
-
b24ui?: Partial<typeof radioGroup.slots>
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export type RadioGroupEmits = RadioGroupRootEmits & {
|
|
75
|
-
change: [payload: Event]
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
type SlotProps<T extends RadioGroupItem> = (props: { item: T & { id: string }, modelValue?: RadioGroupValue }) => any
|
|
79
|
-
|
|
80
|
-
export interface RadioGroupSlots<T extends RadioGroupItem = RadioGroupItem> {
|
|
81
|
-
legend(props?: {}): any
|
|
82
|
-
label: SlotProps<T>
|
|
83
|
-
description: SlotProps<T>
|
|
84
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/radio-group";
|
|
85
3
|
</script>
|
|
86
4
|
|
|
87
|
-
<script setup
|
|
88
|
-
import { computed, useId } from
|
|
89
|
-
import { RadioGroupRoot, RadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from
|
|
90
|
-
import { reactivePick } from
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed, useId } from "vue";
|
|
7
|
+
import { RadioGroupRoot, RadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from "reka-ui";
|
|
8
|
+
import { reactivePick } from "@vueuse/core";
|
|
9
|
+
import { useAppConfig } from "#imports";
|
|
10
|
+
import { useFormField } from "../composables/useFormField";
|
|
11
|
+
import { get } from "../utils";
|
|
12
|
+
import { tv } from "../utils/tv";
|
|
13
|
+
const props = defineProps({
|
|
14
|
+
as: { type: null, required: false },
|
|
15
|
+
legend: { type: String, required: false },
|
|
16
|
+
valueKey: { type: String, required: false, default: "value" },
|
|
17
|
+
labelKey: { type: String, required: false, default: "label" },
|
|
18
|
+
descriptionKey: { type: String, required: false, default: "description" },
|
|
19
|
+
items: { type: Array, required: false },
|
|
20
|
+
size: { type: null, required: false },
|
|
21
|
+
variant: { type: null, required: false },
|
|
22
|
+
color: { type: null, required: false },
|
|
23
|
+
orientation: { type: null, required: false, default: "vertical" },
|
|
24
|
+
indicator: { type: null, required: false },
|
|
25
|
+
class: { type: null, required: false },
|
|
26
|
+
b24ui: { type: null, required: false },
|
|
27
|
+
defaultValue: { type: [String, Number, Object, null], required: false },
|
|
28
|
+
disabled: { type: Boolean, required: false },
|
|
29
|
+
loop: { type: Boolean, required: false },
|
|
30
|
+
modelValue: { type: [String, Number, Object, null], required: false },
|
|
31
|
+
name: { type: String, required: false },
|
|
32
|
+
required: { type: Boolean, required: false }
|
|
33
|
+
});
|
|
34
|
+
const emits = defineEmits(["update:modelValue", "change"]);
|
|
35
|
+
const slots = defineSlots();
|
|
36
|
+
const appConfig = useAppConfig();
|
|
37
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "orientation", "loop", "required"), emits);
|
|
38
|
+
const { emitFormChange, emitFormInput, color, name, size, id: _id, disabled, ariaAttrs } = useFormField(props, { bind: false });
|
|
39
|
+
const id = _id.value ?? useId();
|
|
40
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.radioGroup || {} })({
|
|
109
41
|
size: size.value,
|
|
110
42
|
color: color.value,
|
|
111
43
|
disabled: disabled.value,
|
|
@@ -113,52 +45,44 @@ const b24ui = computed(() => radioGroup({
|
|
|
113
45
|
orientation: props.orientation,
|
|
114
46
|
variant: props.variant,
|
|
115
47
|
indicator: props.indicator
|
|
116
|
-
}))
|
|
117
|
-
|
|
118
|
-
function normalizeItem(item: any) {
|
|
48
|
+
}));
|
|
49
|
+
function normalizeItem(item) {
|
|
119
50
|
if (item === null) {
|
|
120
51
|
return {
|
|
121
52
|
id: `${id}:null`,
|
|
122
|
-
value:
|
|
123
|
-
label:
|
|
124
|
-
}
|
|
53
|
+
value: void 0,
|
|
54
|
+
label: void 0
|
|
55
|
+
};
|
|
125
56
|
}
|
|
126
|
-
|
|
127
|
-
if (typeof item === 'string' || typeof item === 'number') {
|
|
57
|
+
if (typeof item === "string" || typeof item === "number") {
|
|
128
58
|
return {
|
|
129
59
|
id: `${id}:${item}`,
|
|
130
60
|
value: String(item),
|
|
131
61
|
label: String(item)
|
|
132
|
-
}
|
|
62
|
+
};
|
|
133
63
|
}
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
const description = get(item, props.descriptionKey as string)
|
|
138
|
-
|
|
64
|
+
const value = get(item, props.valueKey);
|
|
65
|
+
const label = get(item, props.labelKey);
|
|
66
|
+
const description = get(item, props.descriptionKey);
|
|
139
67
|
return {
|
|
140
68
|
...item,
|
|
141
69
|
value,
|
|
142
70
|
label,
|
|
143
71
|
description,
|
|
144
72
|
id: `${id}:${value}`
|
|
145
|
-
}
|
|
73
|
+
};
|
|
146
74
|
}
|
|
147
|
-
|
|
148
75
|
const normalizedItems = computed(() => {
|
|
149
76
|
if (!props.items) {
|
|
150
|
-
return []
|
|
77
|
+
return [];
|
|
151
78
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
emits('change', event)
|
|
160
|
-
emitFormChange()
|
|
161
|
-
emitFormInput()
|
|
79
|
+
return props.items.map(normalizeItem);
|
|
80
|
+
});
|
|
81
|
+
function onUpdate(value) {
|
|
82
|
+
const event = new Event("change", { target: { value } });
|
|
83
|
+
emits("change", event);
|
|
84
|
+
emitFormChange();
|
|
85
|
+
emitFormInput();
|
|
162
86
|
}
|
|
163
87
|
</script>
|
|
164
88
|
|
|
@@ -192,12 +116,12 @@ function onUpdate(value: any) {
|
|
|
192
116
|
|
|
193
117
|
<div :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
|
|
194
118
|
<component :is="variant === 'list' ? Label : 'p'" :class="b24ui.label({ class: props.b24ui?.label })" :for="item.id">
|
|
195
|
-
<slot name="label" :item="item" :model-value="
|
|
119
|
+
<slot name="label" :item="item" :model-value="modelValue">
|
|
196
120
|
{{ item.label }}
|
|
197
121
|
</slot>
|
|
198
122
|
</component>
|
|
199
123
|
<p v-if="item.description || !!slots.description" :class="b24ui.description({ class: props.b24ui?.description })">
|
|
200
|
-
<slot name="description" :item="item" :model-value="
|
|
124
|
+
<slot name="description" :item="item" :model-value="modelValue">
|
|
201
125
|
{{ item.description }}
|
|
202
126
|
</slot>
|
|
203
127
|
</p>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { RadioGroupRootProps, RadioGroupRootEmits } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/b24ui/radio-group';
|
|
4
|
+
import type { AcceptableValue, ComponentConfig } from '../types/utils';
|
|
5
|
+
type RadioGroup = ComponentConfig<typeof theme, AppConfig, 'radioGroup'>;
|
|
6
|
+
export type RadioGroupValue = AcceptableValue;
|
|
7
|
+
export type RadioGroupItem = {
|
|
8
|
+
label?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
value?: string;
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
} | RadioGroupValue;
|
|
14
|
+
export interface RadioGroupProps<T extends RadioGroupItem = RadioGroupItem> extends Pick<RadioGroupRootProps, 'defaultValue' | 'disabled' | 'loop' | 'modelValue' | 'name' | 'required'> {
|
|
15
|
+
/**
|
|
16
|
+
* The element or component this component should render as.
|
|
17
|
+
* @defaultValue 'div'
|
|
18
|
+
*/
|
|
19
|
+
as?: any;
|
|
20
|
+
legend?: string;
|
|
21
|
+
/**
|
|
22
|
+
* When `items` is an array of objects, select the field to use as the value.
|
|
23
|
+
* @defaultValue 'value'
|
|
24
|
+
*/
|
|
25
|
+
valueKey?: string;
|
|
26
|
+
/**
|
|
27
|
+
* When `items` is an array of objects, select the field to use as the label.
|
|
28
|
+
* @defaultValue 'label'
|
|
29
|
+
*/
|
|
30
|
+
labelKey?: string;
|
|
31
|
+
/**
|
|
32
|
+
* When `items` is an array of objects, select the field to use as the description.
|
|
33
|
+
* @defaultValue 'description'
|
|
34
|
+
*/
|
|
35
|
+
descriptionKey?: string;
|
|
36
|
+
items?: T[];
|
|
37
|
+
/**
|
|
38
|
+
* @defaultValue 'md'
|
|
39
|
+
*/
|
|
40
|
+
size?: RadioGroup['variants']['size'];
|
|
41
|
+
/**
|
|
42
|
+
* @defaultValue 'list'
|
|
43
|
+
*/
|
|
44
|
+
variant?: RadioGroup['variants']['variant'];
|
|
45
|
+
/**
|
|
46
|
+
* @defaultValue 'primary'
|
|
47
|
+
*/
|
|
48
|
+
color?: RadioGroup['variants']['color'];
|
|
49
|
+
/**
|
|
50
|
+
* The orientation the radio buttons are laid out.
|
|
51
|
+
* @defaultValue 'vertical'
|
|
52
|
+
*/
|
|
53
|
+
orientation?: RadioGroupRootProps['orientation'];
|
|
54
|
+
/**
|
|
55
|
+
* Position of the indicator.
|
|
56
|
+
* @defaultValue 'start'
|
|
57
|
+
*/
|
|
58
|
+
indicator?: RadioGroup['variants']['indicator'];
|
|
59
|
+
class?: any;
|
|
60
|
+
b24ui?: RadioGroup['slots'];
|
|
61
|
+
}
|
|
62
|
+
export type RadioGroupEmits = RadioGroupRootEmits & {
|
|
63
|
+
change: [payload: Event];
|
|
64
|
+
};
|
|
65
|
+
type SlotProps<T extends RadioGroupItem> = (props: {
|
|
66
|
+
item: T & {
|
|
67
|
+
id: string;
|
|
68
|
+
};
|
|
69
|
+
modelValue?: RadioGroupValue;
|
|
70
|
+
}) => any;
|
|
71
|
+
export interface RadioGroupSlots<T extends RadioGroupItem = RadioGroupItem> {
|
|
72
|
+
legend(props?: {}): any;
|
|
73
|
+
label: SlotProps<T>;
|
|
74
|
+
description: SlotProps<T>;
|
|
75
|
+
}
|
|
76
|
+
declare const _default: <T extends RadioGroupItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
77
|
+
props: __VLS_PrettifyLocal<any & RadioGroupProps<T> & Partial<{}>> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps);
|
|
78
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
79
|
+
attrs: any;
|
|
80
|
+
slots: Readonly<RadioGroupSlots<T>> & RadioGroupSlots<T>;
|
|
81
|
+
emit: ((evt: "change", payload: Event) => void) & ((evt: "update:modelValue", payload: string) => void);
|
|
82
|
+
}>) => import("vue").VNode & {
|
|
83
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
84
|
+
};
|
|
85
|
+
export default _default;
|
|
86
|
+
type __VLS_PrettifyLocal<T> = {
|
|
87
|
+
[K in keyof T]: T[K];
|
|
88
|
+
} & {};
|
|
@@ -1,103 +1,63 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import type { SliderRootProps } from 'reka-ui'
|
|
4
|
-
import type { AppConfig } from '@nuxt/schema'
|
|
5
|
-
import _appConfig from '#build/app.config'
|
|
6
|
-
import theme from '#build/b24ui/range'
|
|
7
|
-
import { tv } from '../utils/tv'
|
|
8
|
-
|
|
9
|
-
const appConfigRange = _appConfig as AppConfig & { b24ui: { range: Partial<typeof theme> } }
|
|
10
|
-
|
|
11
|
-
const range = tv({ extend: tv(theme), ...(appConfigRange.b24ui?.range || {}) })
|
|
12
|
-
|
|
13
|
-
type RangeVariants = VariantProps<typeof range>
|
|
14
|
-
|
|
15
|
-
export interface RangeProps extends Pick<SliderRootProps, 'name' | 'disabled' | 'inverted' | 'min' | 'max' | 'step' | 'minStepsBetweenThumbs'> {
|
|
16
|
-
/**
|
|
17
|
-
* The element or component this component should render as.
|
|
18
|
-
* @defaultValue 'div'
|
|
19
|
-
*/
|
|
20
|
-
as?: any
|
|
21
|
-
/**
|
|
22
|
-
* @defaultValue 'md'
|
|
23
|
-
*/
|
|
24
|
-
size?: RangeVariants['size']
|
|
25
|
-
/**
|
|
26
|
-
* @defaultValue 'primary'
|
|
27
|
-
*/
|
|
28
|
-
color?: RangeVariants['color']
|
|
29
|
-
/**
|
|
30
|
-
* The orientation of the Range.
|
|
31
|
-
* @defaultValue 'horizontal'
|
|
32
|
-
*/
|
|
33
|
-
orientation?: SliderRootProps['orientation']
|
|
34
|
-
/**
|
|
35
|
-
* The value of the Range when initially rendered. Use when you do not need to control the state of the Range
|
|
36
|
-
*/
|
|
37
|
-
defaultValue?: number | number[]
|
|
38
|
-
class?: any
|
|
39
|
-
b24ui?: Partial<typeof range.slots>
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface RangeEmits {
|
|
43
|
-
(e: 'update:modelValue', payload: number | number[]): void
|
|
44
|
-
(e: 'change', payload: Event): void
|
|
45
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/range";
|
|
46
3
|
</script>
|
|
47
4
|
|
|
48
|
-
<script setup
|
|
49
|
-
import { computed } from
|
|
50
|
-
import { SliderRoot, SliderRange, SliderTrack, SliderThumb, useForwardPropsEmits } from
|
|
51
|
-
import { reactivePick } from
|
|
52
|
-
import {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed } from "vue";
|
|
7
|
+
import { SliderRoot, SliderRange, SliderTrack, SliderThumb, useForwardPropsEmits } from "reka-ui";
|
|
8
|
+
import { reactivePick } from "@vueuse/core";
|
|
9
|
+
import { useAppConfig } from "#imports";
|
|
10
|
+
import { useFormField } from "../composables/useFormField";
|
|
11
|
+
import { tv } from "../utils/tv";
|
|
12
|
+
const props = defineProps({
|
|
13
|
+
as: { type: null, required: false },
|
|
14
|
+
size: { type: null, required: false },
|
|
15
|
+
color: { type: null, required: false },
|
|
16
|
+
orientation: { type: null, required: false, default: "horizontal" },
|
|
17
|
+
defaultValue: { type: [Number, Array], required: false },
|
|
18
|
+
class: { type: null, required: false },
|
|
19
|
+
b24ui: { type: null, required: false },
|
|
20
|
+
name: { type: String, required: false },
|
|
21
|
+
disabled: { type: Boolean, required: false },
|
|
22
|
+
inverted: { type: Boolean, required: false },
|
|
23
|
+
min: { type: Number, required: false, default: 0 },
|
|
24
|
+
max: { type: Number, required: false, default: 100 },
|
|
25
|
+
step: { type: Number, required: false, default: 1 },
|
|
26
|
+
minStepsBetweenThumbs: { type: Number, required: false }
|
|
27
|
+
});
|
|
28
|
+
const emits = defineEmits(["update:modelValue", "change"]);
|
|
29
|
+
const modelValue = defineModel({ type: [Number, Array] });
|
|
30
|
+
const appConfig = useAppConfig();
|
|
31
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "orientation", "min", "max", "step", "minStepsBetweenThumbs", "inverted"), emits);
|
|
32
|
+
const { id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField(props);
|
|
68
33
|
const defaultRangeValue = computed(() => {
|
|
69
|
-
if (typeof props.defaultValue ===
|
|
70
|
-
return [props.defaultValue]
|
|
34
|
+
if (typeof props.defaultValue === "number") {
|
|
35
|
+
return [props.defaultValue];
|
|
71
36
|
}
|
|
72
|
-
return props.defaultValue
|
|
73
|
-
})
|
|
74
|
-
|
|
37
|
+
return props.defaultValue;
|
|
38
|
+
});
|
|
75
39
|
const rangeValue = computed({
|
|
76
40
|
get() {
|
|
77
|
-
if (typeof modelValue.value ===
|
|
78
|
-
return [modelValue.value]
|
|
41
|
+
if (typeof modelValue.value === "number") {
|
|
42
|
+
return [modelValue.value];
|
|
79
43
|
}
|
|
80
|
-
return modelValue.value ?? defaultRangeValue.value
|
|
44
|
+
return modelValue.value ?? defaultRangeValue.value;
|
|
81
45
|
},
|
|
82
46
|
set(value) {
|
|
83
|
-
modelValue.value = value?.length !== 1 ? value : value[0]
|
|
47
|
+
modelValue.value = value?.length !== 1 ? value : value[0];
|
|
84
48
|
}
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
const b24ui = computed(() => range({
|
|
49
|
+
});
|
|
50
|
+
const thumbsCount = computed(() => rangeValue.value?.length ?? 1);
|
|
51
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.range || {} })({
|
|
90
52
|
disabled: disabled.value,
|
|
91
53
|
size: size.value,
|
|
92
54
|
color: color.value,
|
|
93
55
|
orientation: props.orientation
|
|
94
|
-
}))
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
emits('change', event)
|
|
100
|
-
emitFormChange()
|
|
56
|
+
}));
|
|
57
|
+
function onChange(value) {
|
|
58
|
+
const event = new Event("change", { target: { value } });
|
|
59
|
+
emits("change", event);
|
|
60
|
+
emitFormChange();
|
|
101
61
|
}
|
|
102
62
|
</script>
|
|
103
63
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { SliderRootProps } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/b24ui/range';
|
|
4
|
+
import type { ComponentConfig } from '../types/utils';
|
|
5
|
+
type Range = ComponentConfig<typeof theme, AppConfig, 'range'>;
|
|
6
|
+
export interface RangeProps extends Pick<SliderRootProps, 'name' | 'disabled' | 'inverted' | 'min' | 'max' | 'step' | 'minStepsBetweenThumbs'> {
|
|
7
|
+
/**
|
|
8
|
+
* The element or component this component should render as.
|
|
9
|
+
* @defaultValue 'div'
|
|
10
|
+
*/
|
|
11
|
+
as?: any;
|
|
12
|
+
/**
|
|
13
|
+
* @defaultValue 'md'
|
|
14
|
+
*/
|
|
15
|
+
size?: Range['variants']['size'];
|
|
16
|
+
/**
|
|
17
|
+
* @defaultValue 'primary'
|
|
18
|
+
*/
|
|
19
|
+
color?: Range['variants']['color'];
|
|
20
|
+
/**
|
|
21
|
+
* The orientation of the Range.
|
|
22
|
+
* @defaultValue 'horizontal'
|
|
23
|
+
*/
|
|
24
|
+
orientation?: SliderRootProps['orientation'];
|
|
25
|
+
/**
|
|
26
|
+
* The value of the Range when initially rendered. Use when you do not need to control the state of the Range
|
|
27
|
+
*/
|
|
28
|
+
defaultValue?: number | number[];
|
|
29
|
+
class?: any;
|
|
30
|
+
b24ui?: Range['slots'];
|
|
31
|
+
}
|
|
32
|
+
export interface RangeEmits {
|
|
33
|
+
(e: 'update:modelValue', payload: number | number[]): void;
|
|
34
|
+
(e: 'change', payload: Event): void;
|
|
35
|
+
}
|
|
36
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
|
|
37
|
+
modelValue?: number | number[];
|
|
38
|
+
} & RangeProps>, {
|
|
39
|
+
min: number;
|
|
40
|
+
max: number;
|
|
41
|
+
step: number;
|
|
42
|
+
orientation: string;
|
|
43
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
|
|
44
|
+
modelValue?: number | number[];
|
|
45
|
+
} & RangeProps>, {
|
|
46
|
+
min: number;
|
|
47
|
+
max: number;
|
|
48
|
+
step: number;
|
|
49
|
+
orientation: string;
|
|
50
|
+
}>>> & Readonly<{}>, {
|
|
51
|
+
orientation: "horizontal" | "vertical";
|
|
52
|
+
step: number;
|
|
53
|
+
max: number;
|
|
54
|
+
min: number;
|
|
55
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
56
|
+
export default _default;
|
|
57
|
+
type __VLS_WithDefaults<P, D> = {
|
|
58
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
59
|
+
default: D[K];
|
|
60
|
+
}> : P[K];
|
|
61
|
+
};
|
|
62
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
63
|
+
type __VLS_TypePropsToOption<T> = {
|
|
64
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
65
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
66
|
+
} : {
|
|
67
|
+
type: import('vue').PropType<T[K]>;
|
|
68
|
+
required: true;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
type __VLS_PrettifyLocal<T> = {
|
|
72
|
+
[K in keyof T]: T[K];
|
|
73
|
+
} & {};
|