@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.
Files changed (252) hide show
  1. package/.nuxt/b24ui/advice.ts +10 -2
  2. package/.nuxt/b24ui/alert.ts +10 -2
  3. package/.nuxt/b24ui/avatar-group.ts +10 -2
  4. package/.nuxt/b24ui/avatar.ts +10 -2
  5. package/.nuxt/b24ui/badge.ts +10 -2
  6. package/.nuxt/b24ui/button-group.ts +10 -2
  7. package/.nuxt/b24ui/button.ts +16 -6
  8. package/.nuxt/b24ui/calendar.ts +10 -2
  9. package/.nuxt/b24ui/checkbox.ts +10 -2
  10. package/.nuxt/b24ui/chip.ts +10 -2
  11. package/.nuxt/b24ui/collapsible.ts +10 -2
  12. package/.nuxt/b24ui/container.ts +10 -2
  13. package/.nuxt/b24ui/countdown.ts +10 -2
  14. package/.nuxt/b24ui/description-list.ts +10 -2
  15. package/.nuxt/b24ui/dropdown-menu.ts +10 -2
  16. package/.nuxt/b24ui/form-field.ts +10 -2
  17. package/.nuxt/b24ui/form.ts +10 -2
  18. package/.nuxt/b24ui/input-menu.ts +12 -4
  19. package/.nuxt/b24ui/input-number.ts +10 -2
  20. package/.nuxt/b24ui/input.ts +10 -2
  21. package/.nuxt/b24ui/kbd.ts +10 -2
  22. package/.nuxt/b24ui/link.ts +10 -2
  23. package/.nuxt/b24ui/modal.ts +10 -2
  24. package/.nuxt/b24ui/navbar-divider.ts +10 -2
  25. package/.nuxt/b24ui/navbar-section.ts +10 -2
  26. package/.nuxt/b24ui/navbar-spacer.ts +10 -2
  27. package/.nuxt/b24ui/navbar.ts +10 -2
  28. package/.nuxt/b24ui/navigation-menu.ts +10 -2
  29. package/.nuxt/b24ui/popover.ts +10 -2
  30. package/.nuxt/b24ui/progress.ts +10 -2
  31. package/.nuxt/b24ui/radio-group.ts +10 -2
  32. package/.nuxt/b24ui/range.ts +10 -2
  33. package/.nuxt/b24ui/select-menu.ts +14 -6
  34. package/.nuxt/b24ui/select.ts +12 -4
  35. package/.nuxt/b24ui/separator.ts +10 -2
  36. package/.nuxt/b24ui/sidebar-body.ts +10 -2
  37. package/.nuxt/b24ui/sidebar-footer.ts +10 -2
  38. package/.nuxt/b24ui/sidebar-header.ts +10 -2
  39. package/.nuxt/b24ui/sidebar-heading.ts +10 -2
  40. package/.nuxt/b24ui/sidebar-layout.ts +10 -2
  41. package/.nuxt/b24ui/sidebar-section.ts +10 -2
  42. package/.nuxt/b24ui/sidebar-spacer.ts +10 -2
  43. package/.nuxt/b24ui/sidebar.ts +10 -2
  44. package/.nuxt/b24ui/skeleton.ts +10 -2
  45. package/.nuxt/b24ui/slideover.ts +10 -2
  46. package/.nuxt/b24ui/stacked-layout.ts +10 -2
  47. package/.nuxt/b24ui/switch.ts +10 -2
  48. package/.nuxt/b24ui/tabs.ts +10 -2
  49. package/.nuxt/b24ui/textarea.ts +10 -2
  50. package/.nuxt/b24ui/toast.ts +10 -2
  51. package/.nuxt/b24ui/toaster.ts +10 -2
  52. package/.nuxt/b24ui/tooltip.ts +10 -2
  53. package/cli/templates.mjs +19 -15
  54. package/dist/meta.d.mts +5675 -7513
  55. package/dist/meta.mjs +5675 -7513
  56. package/dist/module.json +3 -3
  57. package/dist/module.mjs +2 -2
  58. package/dist/runtime/components/Advice.vue +27 -55
  59. package/dist/runtime/components/Advice.vue.d.ts +56 -0
  60. package/dist/runtime/components/Alert.vue +35 -97
  61. package/dist/runtime/components/Alert.vue.d.ts +97 -0
  62. package/dist/runtime/components/App.vue +24 -34
  63. package/dist/runtime/components/App.vue.d.ts +23 -0
  64. package/dist/runtime/components/Avatar.vue +43 -82
  65. package/dist/runtime/components/Avatar.vue.d.ts +62 -0
  66. package/dist/runtime/components/AvatarGroup.vue +40 -77
  67. package/dist/runtime/components/AvatarGroup.vue.d.ts +40 -0
  68. package/dist/runtime/components/Badge.vue +40 -84
  69. package/dist/runtime/components/Badge.vue.d.ts +78 -0
  70. package/dist/runtime/components/Button.vue +107 -164
  71. package/dist/runtime/components/Button.vue.d.ts +115 -0
  72. package/dist/runtime/components/ButtonGroup.vue +25 -52
  73. package/dist/runtime/components/ButtonGroup.vue.d.ts +63 -0
  74. package/dist/runtime/components/Calendar.vue +73 -153
  75. package/dist/runtime/components/Calendar.vue.d.ts +107 -0
  76. package/dist/runtime/components/Checkbox.vue +42 -74
  77. package/dist/runtime/components/Checkbox.vue.d.ts +55 -0
  78. package/dist/runtime/components/Chip.vue +26 -75
  79. package/dist/runtime/components/Chip.vue.d.ts +77 -0
  80. package/dist/runtime/components/Collapsible.vue +22 -41
  81. package/dist/runtime/components/Collapsible.vue.d.ts +50 -0
  82. package/dist/runtime/components/Container.vue +15 -28
  83. package/dist/runtime/components/Container.vue.d.ts +27 -0
  84. package/dist/runtime/components/Countdown.vue +153 -379
  85. package/dist/runtime/components/Countdown.vue.d.ts +122 -0
  86. package/dist/runtime/components/DescriptionList.vue +78 -150
  87. package/dist/runtime/components/DescriptionList.vue.d.ts +109 -0
  88. package/dist/runtime/components/DropdownMenu.vue +38 -140
  89. package/dist/runtime/components/DropdownMenu.vue.d.ts +133 -0
  90. package/dist/runtime/components/DropdownMenuContent.vue +65 -79
  91. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
  92. package/dist/runtime/components/Form.vue +132 -218
  93. package/dist/runtime/components/Form.vue.d.ts +55 -0
  94. package/dist/runtime/components/FormField.vue +36 -81
  95. package/dist/runtime/components/FormField.vue.d.ts +73 -0
  96. package/dist/runtime/components/Input.vue +79 -180
  97. package/dist/runtime/components/Input.vue.d.ts +135 -0
  98. package/dist/runtime/components/InputMenu.vue +185 -382
  99. package/dist/runtime/components/InputMenu.vue.d.ts +357 -0
  100. package/dist/runtime/components/InputNumber.vue +77 -176
  101. package/dist/runtime/components/InputNumber.vue.d.ts +238 -0
  102. package/dist/runtime/components/Kbd.vue +20 -46
  103. package/dist/runtime/components/Kbd.vue.d.ts +55 -0
  104. package/dist/runtime/components/Link.vue +99 -179
  105. package/dist/runtime/components/Link.vue.d.ts +129 -0
  106. package/dist/runtime/components/LinkBase.vue +33 -42
  107. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  108. package/dist/runtime/components/Modal.vue +48 -128
  109. package/dist/runtime/components/Modal.vue.d.ts +124 -0
  110. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  111. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  112. package/dist/runtime/components/Navbar.vue +15 -33
  113. package/dist/runtime/components/Navbar.vue.d.ts +46 -0
  114. package/dist/runtime/components/NavbarDivider.vue +15 -33
  115. package/dist/runtime/components/NavbarDivider.vue.d.ts +46 -0
  116. package/dist/runtime/components/NavbarSection.vue +15 -33
  117. package/dist/runtime/components/NavbarSection.vue.d.ts +46 -0
  118. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  119. package/dist/runtime/components/NavbarSpacer.vue.d.ts +46 -0
  120. package/dist/runtime/components/NavigationMenu.vue +74 -209
  121. package/dist/runtime/components/NavigationMenu.vue.d.ts +159 -0
  122. package/dist/runtime/components/OverlayProvider.vue +14 -18
  123. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  124. package/dist/runtime/components/Popover.vue +40 -82
  125. package/dist/runtime/components/Popover.vue.d.ts +79 -0
  126. package/dist/runtime/components/Progress.vue +70 -137
  127. package/dist/runtime/components/Progress.vue.d.ts +103 -0
  128. package/dist/runtime/components/RadioGroup.vue +59 -135
  129. package/dist/runtime/components/RadioGroup.vue.d.ts +88 -0
  130. package/dist/runtime/components/Range.vue +46 -86
  131. package/dist/runtime/components/Range.vue.d.ts +73 -0
  132. package/dist/runtime/components/Select.vue +110 -261
  133. package/dist/runtime/components/Select.vue.d.ts +170 -0
  134. package/dist/runtime/components/SelectMenu.vue +161 -348
  135. package/dist/runtime/components/SelectMenu.vue.d.ts +217 -0
  136. package/dist/runtime/components/Separator.vue +28 -72
  137. package/dist/runtime/components/Separator.vue.d.ts +77 -0
  138. package/dist/runtime/components/Sidebar.vue +15 -33
  139. package/dist/runtime/components/Sidebar.vue.d.ts +46 -0
  140. package/dist/runtime/components/SidebarBody.vue +17 -39
  141. package/dist/runtime/components/SidebarBody.vue.d.ts +53 -0
  142. package/dist/runtime/components/SidebarFooter.vue +15 -33
  143. package/dist/runtime/components/SidebarFooter.vue.d.ts +46 -0
  144. package/dist/runtime/components/SidebarHeader.vue +15 -33
  145. package/dist/runtime/components/SidebarHeader.vue.d.ts +46 -0
  146. package/dist/runtime/components/SidebarHeading.vue +15 -33
  147. package/dist/runtime/components/SidebarHeading.vue.d.ts +46 -0
  148. package/dist/runtime/components/SidebarLayout.vue +34 -71
  149. package/dist/runtime/components/SidebarLayout.vue.d.ts +65 -0
  150. package/dist/runtime/components/SidebarSection.vue +15 -33
  151. package/dist/runtime/components/SidebarSection.vue.d.ts +46 -0
  152. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  153. package/dist/runtime/components/SidebarSpacer.vue.d.ts +46 -0
  154. package/dist/runtime/components/Skeleton.vue +14 -23
  155. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  156. package/dist/runtime/components/Slideover.vue +50 -132
  157. package/dist/runtime/components/Slideover.vue.d.ts +127 -0
  158. package/dist/runtime/components/StackedLayout.vue +34 -74
  159. package/dist/runtime/components/StackedLayout.vue.d.ts +65 -0
  160. package/dist/runtime/components/Switch.vue +46 -96
  161. package/dist/runtime/components/Switch.vue.d.ts +77 -0
  162. package/dist/runtime/components/Tabs.vue +41 -106
  163. package/dist/runtime/components/Tabs.vue.d.ts +104 -0
  164. package/dist/runtime/components/Textarea.vue +92 -202
  165. package/dist/runtime/components/Textarea.vue.d.ts +141 -0
  166. package/dist/runtime/components/Toast.vue +47 -106
  167. package/dist/runtime/components/Toast.vue.d.ts +95 -0
  168. package/dist/runtime/components/Toaster.vue +70 -116
  169. package/dist/runtime/components/Toaster.vue.d.ts +70 -0
  170. package/dist/runtime/components/Tooltip.vue +36 -65
  171. package/dist/runtime/components/Tooltip.vue.d.ts +65 -0
  172. package/dist/runtime/components/content/TableWrapper.vue +24 -71
  173. package/dist/runtime/components/content/TableWrapper.vue.d.ts +83 -0
  174. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  175. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  176. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  177. package/dist/runtime/composables/useFormField.d.ts +2 -2
  178. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  179. package/dist/runtime/composables/useOverlay.js +14 -6
  180. package/dist/runtime/prose/A.vue +16 -26
  181. package/dist/runtime/prose/A.vue.d.ts +27 -0
  182. package/dist/runtime/prose/Blockquote.vue +14 -26
  183. package/dist/runtime/prose/Blockquote.vue.d.ts +27 -0
  184. package/dist/runtime/prose/Code.vue +15 -32
  185. package/dist/runtime/prose/Code.vue.d.ts +31 -0
  186. package/dist/runtime/prose/Em.vue +16 -26
  187. package/dist/runtime/prose/Em.vue.d.ts +27 -0
  188. package/dist/runtime/prose/H1.vue +14 -26
  189. package/dist/runtime/prose/H1.vue.d.ts +27 -0
  190. package/dist/runtime/prose/H2.vue +14 -26
  191. package/dist/runtime/prose/H2.vue.d.ts +27 -0
  192. package/dist/runtime/prose/H3.vue +14 -26
  193. package/dist/runtime/prose/H3.vue.d.ts +27 -0
  194. package/dist/runtime/prose/H4.vue +14 -26
  195. package/dist/runtime/prose/H4.vue.d.ts +27 -0
  196. package/dist/runtime/prose/H5.vue +14 -26
  197. package/dist/runtime/prose/H5.vue.d.ts +27 -0
  198. package/dist/runtime/prose/H6.vue +14 -26
  199. package/dist/runtime/prose/H6.vue.d.ts +27 -0
  200. package/dist/runtime/prose/Hr.vue +13 -22
  201. package/dist/runtime/prose/Hr.vue.d.ts +19 -0
  202. package/dist/runtime/prose/Img.vue +13 -26
  203. package/dist/runtime/prose/Img.vue.d.ts +19 -0
  204. package/dist/runtime/prose/Li.vue +14 -26
  205. package/dist/runtime/prose/Li.vue.d.ts +27 -0
  206. package/dist/runtime/prose/Ol.vue +14 -26
  207. package/dist/runtime/prose/Ol.vue.d.ts +27 -0
  208. package/dist/runtime/prose/P.vue +14 -26
  209. package/dist/runtime/prose/P.vue.d.ts +27 -0
  210. package/dist/runtime/prose/Pre.vue +17 -33
  211. package/dist/runtime/prose/Pre.vue.d.ts +47 -0
  212. package/dist/runtime/prose/Strong.vue +14 -26
  213. package/dist/runtime/prose/Strong.vue.d.ts +27 -0
  214. package/dist/runtime/prose/Table.vue +21 -57
  215. package/dist/runtime/prose/Table.vue.d.ts +74 -0
  216. package/dist/runtime/prose/Tbody.vue +14 -26
  217. package/dist/runtime/prose/Tbody.vue.d.ts +27 -0
  218. package/dist/runtime/prose/Td.vue +14 -26
  219. package/dist/runtime/prose/Td.vue.d.ts +27 -0
  220. package/dist/runtime/prose/Th.vue +14 -26
  221. package/dist/runtime/prose/Th.vue.d.ts +27 -0
  222. package/dist/runtime/prose/Thead.vue +14 -26
  223. package/dist/runtime/prose/Thead.vue.d.ts +27 -0
  224. package/dist/runtime/prose/Tr.vue +14 -26
  225. package/dist/runtime/prose/Tr.vue.d.ts +27 -0
  226. package/dist/runtime/prose/Ul.vue +14 -26
  227. package/dist/runtime/prose/Ul.vue.d.ts +27 -0
  228. package/dist/runtime/types/form.d.ts +1 -0
  229. package/dist/runtime/types/utils.d.ts +42 -3
  230. package/dist/runtime/utils/link.d.ts +3 -3
  231. package/dist/runtime/utils/tv.js +2 -2
  232. package/dist/runtime/vue/components/Link.vue +122 -208
  233. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  234. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.wBs9vEU5.mjs} +33 -8
  235. package/dist/types.d.mts +3 -5
  236. package/dist/unplugin.mjs +1 -1
  237. package/dist/vite.mjs +1 -1
  238. package/package.json +19 -27
  239. package/dist/meta.cjs +0 -72112
  240. package/dist/meta.d.cts +0 -72110
  241. package/dist/meta.d.ts +0 -72110
  242. package/dist/module.cjs +0 -63
  243. package/dist/module.d.cts +0 -15
  244. package/dist/module.d.ts +0 -15
  245. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  246. package/dist/types.d.ts +0 -7
  247. package/dist/unplugin.cjs +0 -236
  248. package/dist/unplugin.d.cts +0 -33
  249. package/dist/unplugin.d.ts +0 -33
  250. package/dist/vite.cjs +0 -21
  251. package/dist/vite.d.cts +0 -14
  252. package/dist/vite.d.ts +0 -14
@@ -1,111 +1,43 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
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 lang="ts" generic="T extends RadioGroupItem">
88
- import { computed, useId } from 'vue'
89
- import { RadioGroupRoot, RadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from 'reka-ui'
90
- import { reactivePick } from '@vueuse/core'
91
- import { useFormField } from '../composables/useFormField'
92
- import { get } from '../utils'
93
-
94
- const props = withDefaults(defineProps<RadioGroupProps<T>>(), {
95
- valueKey: 'value',
96
- labelKey: 'label',
97
- descriptionKey: 'description',
98
- orientation: 'vertical'
99
- })
100
- const emits = defineEmits<RadioGroupEmits>()
101
- const slots = defineSlots<RadioGroupSlots<T>>()
102
-
103
- const rootProps = useForwardPropsEmits(reactivePick(props, 'as', 'modelValue', 'defaultValue', 'orientation', 'loop', 'required'), emits)
104
-
105
- const { emitFormChange, emitFormInput, color, name, size, id: _id, disabled, ariaAttrs } = useFormField<RadioGroupProps<T>>(props, { bind: false })
106
- const id = _id.value ?? useId()
107
-
108
- const b24ui = computed(() => radioGroup({
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: undefined,
123
- label: undefined
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 value = get(item, props.valueKey as string)
136
- const label = get(item, props.labelKey as string)
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
- return props.items.map(normalizeItem)
154
- })
155
-
156
- function onUpdate(value: any) {
157
- // @ts-expect-error - 'target' does not exist in type 'EventInit'
158
- const event = new Event('change', { target: { value } })
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="(modelValue as RadioGroupValue)">
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="(modelValue as RadioGroupValue)">
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 lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
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 lang="ts">
49
- import { computed } from 'vue'
50
- import { SliderRoot, SliderRange, SliderTrack, SliderThumb, useForwardPropsEmits } from 'reka-ui'
51
- import { reactivePick } from '@vueuse/core'
52
- import { useFormField } from '../composables/useFormField'
53
-
54
- const props = withDefaults(defineProps<RangeProps>(), {
55
- min: 0,
56
- max: 100,
57
- step: 1,
58
- orientation: 'horizontal'
59
- })
60
- const emits = defineEmits<RangeEmits>()
61
-
62
- const modelValue = defineModel<number | number[]>()
63
-
64
- const rootProps = useForwardPropsEmits(reactivePick(props, 'as', 'orientation', 'min', 'max', 'step', 'minStepsBetweenThumbs', 'inverted'), emits)
65
-
66
- const { id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField<RangeProps>(props)
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 === 'number') {
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 === 'number') {
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 thumbsCount = computed(() => rangeValue.value?.length ?? 1)
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
- function onChange(value: any) {
97
- // @ts-expect-error - 'target' does not exist in type 'EventInit'
98
- const event = new Event('change', { target: { value } })
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
+ } & {};