@central-design-system/components 2.33.0 → 3.0.0-alpha.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 (334) hide show
  1. package/dist/cds.css +1 -111
  2. package/dist/cds.d.ts +48 -0
  3. package/dist/cds.es.js +5454 -0
  4. package/dist/cds.umd.js +1 -0
  5. package/dist/components/CdsBadge/CdsBadge.vue.d.ts +32 -0
  6. package/dist/components/CdsButton/CdsButton.vue.d.ts +140 -0
  7. package/dist/components/CdsCheckbox/CdsCheckbox.vue.d.ts +222 -0
  8. package/dist/components/CdsCheckbox/CdsCheckboxGroup.vue.d.ts +205 -0
  9. package/dist/components/CdsDrawer/CdsDrawer.vue.d.ts +179 -0
  10. package/dist/components/CdsForm/CdsForm.vue.d.ts +99 -0
  11. package/dist/components/CdsGrid/CdsCol.vue.d.ts +73 -0
  12. package/dist/components/CdsGrid/CdsGrid.vue.d.ts +55 -0
  13. package/dist/components/CdsGrid/CdsRow.vue.d.ts +37 -0
  14. package/dist/components/CdsGrid/composable/column.d.ts +84 -0
  15. package/dist/components/CdsGrid/composable/grid.d.ts +24 -0
  16. package/dist/components/CdsGrid/composable/index.d.ts +4 -0
  17. package/dist/components/CdsGrid/composable/subgrid.d.ts +20 -0
  18. package/dist/components/CdsGrid/composable/wide.d.ts +12 -0
  19. package/dist/components/CdsGrid/mode/CSSGrid.d.ts +5 -0
  20. package/dist/components/CdsGrid/mode/FlexGrid.d.ts +5 -0
  21. package/dist/components/CdsGrid/types.d.ts +27 -0
  22. package/dist/components/CdsIcon/CdsIcon.vue.d.ts +44 -0
  23. package/dist/components/CdsIcon/index.d.ts +1 -0
  24. package/dist/components/CdsInput/CdsInput.vue.d.ts +219 -0
  25. package/dist/components/CdsInput/CdsInputCounter.vue.d.ts +39 -0
  26. package/dist/components/CdsInput/CdsInputDescription.vue.d.ts +26 -0
  27. package/dist/components/CdsInput/CdsInputLabel.vue.d.ts +32 -0
  28. package/dist/components/CdsInput/CdsInputMessages.vue.d.ts +221 -0
  29. package/dist/components/CdsInput/index.d.ts +5 -0
  30. package/dist/components/CdsLink/CdsLink.vue.d.ts +50 -0
  31. package/dist/components/CdsList/CdsList.vue.d.ts +158 -0
  32. package/dist/components/CdsList/CdsListGroup.vue.d.ts +125 -0
  33. package/dist/components/CdsList/CdsListItem.vue.d.ts +178 -0
  34. package/dist/components/CdsList/composable/depth.d.ts +3 -0
  35. package/dist/components/CdsList/composable/focus.d.ts +12 -0
  36. package/dist/components/CdsList/composable/index.d.ts +3 -0
  37. package/dist/components/CdsList/composable/list.d.ts +19 -0
  38. package/dist/components/CdsList/index.d.ts +3 -0
  39. package/dist/components/CdsLoader/CdsLoader.vue.d.ts +62 -0
  40. package/dist/components/CdsLoader/index.d.ts +1 -0
  41. package/dist/components/CdsMenu/CdsMenu.vue.d.ts +592 -0
  42. package/dist/components/CdsMenu/shared.d.ts +10 -0
  43. package/dist/components/CdsOverlay/CdsOverlay.vue.d.ts +324 -0
  44. package/dist/components/CdsOverlay/composable/activator.d.ts +81 -0
  45. package/dist/components/CdsOverlay/composable/index.d.ts +6 -0
  46. package/dist/components/CdsOverlay/composable/locationStrategies.d.ts +75 -0
  47. package/dist/components/CdsOverlay/composable/scrim.d.ts +8 -0
  48. package/dist/components/CdsOverlay/composable/scrollStrategies.d.ts +33 -0
  49. package/dist/components/CdsOverlay/composable/stack.d.ts +9 -0
  50. package/dist/components/CdsOverlay/composable/teleport.d.ts +6 -0
  51. package/dist/components/CdsOverlay/utils/index.d.ts +2 -0
  52. package/dist/components/CdsOverlay/utils/point.d.ts +20 -0
  53. package/dist/components/CdsOverlay/utils/requestNewFrame.d.ts +5 -0
  54. package/dist/components/CdsRadioButton/CdsRadio.vue.d.ts +201 -0
  55. package/dist/components/CdsRadioButton/CdsRadioButton.vue.d.ts +200 -0
  56. package/dist/components/CdsSelect/CdsSelect.vue.d.ts +664 -0
  57. package/dist/components/CdsSidebar/CdsSidebar.vue.d.ts +61 -0
  58. package/dist/components/CdsStages/CdsStages.vue.d.ts +102 -0
  59. package/dist/components/CdsStatus/CdsStatus.vue.d.ts +46 -0
  60. package/dist/components/CdsTag/CdsTag.vue.d.ts +96 -0
  61. package/dist/components/CdsTextArea/CdsTextArea.vue.d.ts +681 -0
  62. package/dist/components/CdsTextInput/CdsTextInput.vue.d.ts +600 -0
  63. package/dist/components/index.d.ts +35 -0
  64. package/dist/composable/appearance.d.ts +24 -0
  65. package/dist/composable/color.d.ts +21 -0
  66. package/dist/composable/dark.d.ts +19 -0
  67. package/dist/composable/delay.d.ts +29 -0
  68. package/dist/composable/dimensions.d.ts +47 -0
  69. package/dist/composable/direction.d.ts +24 -0
  70. package/dist/composable/disabled.d.ts +19 -0
  71. package/dist/composable/field.d.ts +138 -0
  72. package/dist/composable/focus.d.ts +22 -0
  73. package/dist/composable/form.d.ts +126 -0
  74. package/dist/composable/hidration.d.ts +1 -0
  75. package/dist/composable/icon.d.ts +57 -0
  76. package/dist/composable/index.d.ts +29 -0
  77. package/dist/composable/input.d.ts +97 -0
  78. package/dist/composable/items.d.ts +79 -0
  79. package/dist/composable/lazy.d.ts +11 -0
  80. package/dist/composable/link.d.ts +35 -0
  81. package/dist/composable/loading.d.ts +20 -0
  82. package/dist/composable/nested/nested.d.ts +85 -0
  83. package/dist/composable/nested/openStrategies.d.ts +25 -0
  84. package/dist/composable/nested/selectStrategies.d.ts +21 -0
  85. package/dist/composable/overlay.d.ts +99 -0
  86. package/dist/composable/proxyModel.d.ts +8 -0
  87. package/dist/composable/render.d.ts +2 -0
  88. package/dist/composable/scopeId.d.ts +5 -0
  89. package/dist/composable/size.d.ts +24 -0
  90. package/dist/composable/status.d.ts +21 -0
  91. package/dist/composable/tag.d.ts +16 -0
  92. package/dist/composable/text.d.ts +17 -0
  93. package/dist/composable/toggleScope.d.ts +2 -0
  94. package/dist/composable/transition.d.ts +22 -0
  95. package/dist/composable/validation.d.ts +136 -0
  96. package/dist/directives/click-outside/index.d.ts +14 -0
  97. package/dist/directives/index.d.ts +1 -0
  98. package/dist/globals.d.ts +16 -0
  99. package/dist/plugins/index.d.ts +2 -0
  100. package/dist/shims-vue.d.ts +24 -0
  101. package/dist/transitions/createTransition.d.ts +38 -0
  102. package/dist/transitions/expandTransition.d.ts +19 -0
  103. package/dist/transitions/index.d.ts +104 -0
  104. package/dist/types/CdsOptions.d.ts +3 -0
  105. package/dist/utils/anchor.d.ts +23 -0
  106. package/dist/utils/animation.d.ts +6 -0
  107. package/dist/utils/box.d.ts +26 -0
  108. package/dist/utils/changeCase/lowerCase.d.ts +8 -0
  109. package/dist/utils/changeCase/noCase.d.ts +10 -0
  110. package/dist/utils/changeCase/paramCase.d.ts +3 -0
  111. package/dist/utils/changeCase/pascalCase.d.ts +5 -0
  112. package/dist/utils/dom.d.ts +6 -0
  113. package/dist/utils/getCurrentInstance.d.ts +13 -0
  114. package/dist/utils/getScrollParent.d.ts +3 -0
  115. package/dist/utils/globals.d.ts +4 -0
  116. package/dist/utils/helpers.d.ts +73 -0
  117. package/dist/utils/index.d.ts +13 -0
  118. package/dist/utils/propsFactory.d.ts +52 -0
  119. package/nuxt.js +13 -0
  120. package/package.json +37 -80
  121. package/src/scss/index.scss +10 -0
  122. package/{dist/mixins/scss → src/scss/mixins}/layout/_convert.scss +4 -2
  123. package/src/scss/mixins/layout/_shadow.scss +4 -0
  124. package/src/scss/mixins/layout/exports/_mini-unit.module.scss +5 -0
  125. package/src/scss/mixins/layout/exports/_spacing-all.module.scss +3 -0
  126. package/src/scss/mixins/layout/exports/_spacing-fluid.module.scss +8 -0
  127. package/src/scss/mixins/layout/exports/_spacing-layout.module.scss +11 -0
  128. package/src/scss/mixins/layout/exports/_spacing.module.scss +16 -0
  129. package/{dist/mixins/scss → src/scss/mixins}/layout/index.scss +1 -2
  130. package/{dist/mixins/scss → src/scss/mixins}/typo.scss +0 -67
  131. package/src/scss/modules/_reset.scss +113 -0
  132. package/src/scss/modules/_transition.scss +54 -0
  133. package/src/scss/modules/_typography.scss +36 -0
  134. package/src/scss/modules/_variables.scss +9 -0
  135. package/src/scss/modules/grid/_aspect-ratio.scss +62 -0
  136. package/src/scss/modules/grid/_breakpoint.scss +195 -0
  137. package/src/scss/modules/grid/_config.scss +88 -0
  138. package/src/scss/modules/grid/_css-grid.scss +445 -0
  139. package/src/scss/modules/grid/_flex-grid.scss +39 -0
  140. package/src/scss/modules/grid/_mixins.scss +307 -0
  141. package/src/scss/modules/grid/exports/_config.module.scss +9 -0
  142. package/src/scss/modules/grid/index.scss +5 -0
  143. package/src/scss/themes/b2b/tokens-map.scss +139 -0
  144. package/src/scss/themes/b2b/tokens.json +2190 -0
  145. package/src/scss/themes/cds/tokens-map.scss +138 -0
  146. package/src/scss/themes/cds/tokens.json +2184 -0
  147. package/{dist/tokens → src/scss/themes}/cds/variables.css +0 -3
  148. package/src/scss/themes/index.ts +43 -0
  149. package/src/scss/utility/display.scss +13 -0
  150. package/src/scss/utility/flexbox.scss +37 -0
  151. package/src/scss/utility/generatedFiles/generatedStyles.json +1 -0
  152. package/src/scss/utility/generatedFiles/generatedStyles.scss +300 -0
  153. package/src/scss/utility/index.scss +7 -0
  154. package/src/scss/utility/layout.scss +11 -0
  155. package/src/scss/utility/lists.scss +76 -0
  156. package/src/scss/utility/spacing.scss +89 -0
  157. package/src/scss/utility/typography.scss +16 -0
  158. package/src/scss/utility/variables.scss +116 -0
  159. package/README.md +0 -87
  160. package/build/utils/postInstall.js +0 -20
  161. package/build/utils/print.js +0 -38
  162. package/dist/CdsAccordion/index.js +0 -8
  163. package/dist/CdsAccordion/styles.css +0 -11
  164. package/dist/CdsBadge/index.js +0 -8
  165. package/dist/CdsBadge/styles.css +0 -9
  166. package/dist/CdsBreadcrumbs/index.js +0 -8
  167. package/dist/CdsBreadcrumbs/styles.css +0 -11
  168. package/dist/CdsButton/index.js +0 -8
  169. package/dist/CdsButton/styles.css +0 -11
  170. package/dist/CdsCheckbox/index.js +0 -8
  171. package/dist/CdsCheckbox/styles.css +0 -15
  172. package/dist/CdsCombobox/index.js +0 -8
  173. package/dist/CdsCombobox/styles.css +0 -15
  174. package/dist/CdsContainer/index.js +0 -8
  175. package/dist/CdsContainer/styles.css +0 -11
  176. package/dist/CdsContentSwitcher/index.js +0 -8
  177. package/dist/CdsContentSwitcher/styles.css +0 -15
  178. package/dist/CdsDataTable/index.js +0 -8
  179. package/dist/CdsDataTable/styles.css +0 -21
  180. package/dist/CdsDatePicker/index.js +0 -24
  181. package/dist/CdsDatePicker/styles.css +0 -15
  182. package/dist/CdsDrawer/index.js +0 -8
  183. package/dist/CdsDrawer/styles.css +0 -17
  184. package/dist/CdsDropdown/index.js +0 -8
  185. package/dist/CdsDropdown/styles.css +0 -15
  186. package/dist/CdsEmptyState/index.js +0 -8
  187. package/dist/CdsEmptyState/styles.css +0 -9
  188. package/dist/CdsFooter/index.js +0 -8
  189. package/dist/CdsFooter/styles.css +0 -17
  190. package/dist/CdsForm/index.js +0 -8
  191. package/dist/CdsForm/styles.css +0 -15
  192. package/dist/CdsGrid/index.js +0 -8
  193. package/dist/CdsGrid/styles.css +0 -9
  194. package/dist/CdsHeader/index.js +0 -8
  195. package/dist/CdsHeader/styles.css +0 -11
  196. package/dist/CdsIcon/index.js +0 -8
  197. package/dist/CdsIcon/styles.css +0 -9
  198. package/dist/CdsImage/index.js +0 -8
  199. package/dist/CdsImage/styles.css +0 -9
  200. package/dist/CdsInput/index.js +0 -8
  201. package/dist/CdsInput/styles.css +0 -13
  202. package/dist/CdsLink/index.js +0 -8
  203. package/dist/CdsLink/styles.css +0 -9
  204. package/dist/CdsList/index.js +0 -8
  205. package/dist/CdsList/styles.css +0 -9
  206. package/dist/CdsLoading/index.js +0 -8
  207. package/dist/CdsLoading/styles.css +0 -9
  208. package/dist/CdsModal/index.js +0 -8
  209. package/dist/CdsModal/styles.css +0 -15
  210. package/dist/CdsMultiselect/index.js +0 -8
  211. package/dist/CdsMultiselect/styles.css +0 -17
  212. package/dist/CdsNotification/index.js +0 -8
  213. package/dist/CdsNotification/styles.css +0 -21
  214. package/dist/CdsOverflowMenu/index.js +0 -8
  215. package/dist/CdsOverflowMenu/styles.css +0 -21
  216. package/dist/CdsPagination/index.js +0 -8
  217. package/dist/CdsPagination/styles.css +0 -13
  218. package/dist/CdsRadioButton/index.js +0 -8
  219. package/dist/CdsRadioButton/styles.css +0 -15
  220. package/dist/CdsSearch/index.js +0 -8
  221. package/dist/CdsSearch/styles.css +0 -19
  222. package/dist/CdsSelect/index.js +0 -8
  223. package/dist/CdsSelect/styles.css +0 -15
  224. package/dist/CdsSidebar/index.js +0 -8
  225. package/dist/CdsSidebar/styles.css +0 -15
  226. package/dist/CdsSkeleton/index.js +0 -8
  227. package/dist/CdsSkeleton/styles.css +0 -9
  228. package/dist/CdsStages/index.js +0 -8
  229. package/dist/CdsStages/styles.css +0 -9
  230. package/dist/CdsStatus/index.js +0 -8
  231. package/dist/CdsStatus/styles.css +0 -15
  232. package/dist/CdsSteps/index.js +0 -8
  233. package/dist/CdsSteps/styles.css +0 -19
  234. package/dist/CdsTable/index.js +0 -16
  235. package/dist/CdsTable/styles.css +0 -21
  236. package/dist/CdsTabs/index.js +0 -8
  237. package/dist/CdsTabs/styles.css +0 -9
  238. package/dist/CdsTag/index.js +0 -8
  239. package/dist/CdsTag/styles.css +0 -11
  240. package/dist/CdsTextArea/index.js +0 -8
  241. package/dist/CdsTextArea/styles.css +0 -17
  242. package/dist/CdsTextInput/index.js +0 -8
  243. package/dist/CdsTextInput/styles.css +0 -15
  244. package/dist/CdsToggle/index.js +0 -8
  245. package/dist/CdsToggle/styles.css +0 -9
  246. package/dist/CdsTooltip/index.js +0 -8
  247. package/dist/CdsTooltip/styles.css +0 -13
  248. package/dist/CdsUploader/index.js +0 -14
  249. package/dist/CdsUploader/styles.css +0 -25
  250. package/dist/cds.js +0 -38
  251. package/dist/cds.min.css +0 -7
  252. package/dist/cds.min.js +0 -38
  253. package/dist/index.html +0 -60
  254. package/dist/mixins/scss/layout/_breakpoint.scss +0 -237
  255. package/dist/mixins/scss/layout/_key-height.scss +0 -90
  256. package/dist/mixins/scss/layout/_spacing-export.scss +0 -34
  257. package/dist/mixins/scss/layout/_utilities.scss +0 -33
  258. package/dist/types/CdsAccordion.ts +0 -4
  259. package/dist/types/CdsAccordionItem.ts +0 -10
  260. package/dist/types/CdsBreadcrumbs.ts +0 -11
  261. package/dist/types/CdsBreadcrumbsItem.ts +0 -12
  262. package/dist/types/CdsButton.ts +0 -30
  263. package/dist/types/CdsCheckbox.ts +0 -20
  264. package/dist/types/CdsCheckboxGroup.ts +0 -14
  265. package/dist/types/CdsCol.ts +0 -38
  266. package/dist/types/CdsCombobox.ts +0 -42
  267. package/dist/types/CdsContainer.ts +0 -32
  268. package/dist/types/CdsContentSwitcher.ts +0 -4
  269. package/dist/types/CdsContentSwitcherButton.ts +0 -21
  270. package/dist/types/CdsDataTable.ts +0 -48
  271. package/dist/types/CdsDatePicker.ts +0 -40
  272. package/dist/types/CdsDrawer.ts +0 -25
  273. package/dist/types/CdsDrawerGroup.ts +0 -8
  274. package/dist/types/CdsDrawerItem.ts +0 -12
  275. package/dist/types/CdsDrawerLabel.ts +0 -4
  276. package/dist/types/CdsDropdown.ts +0 -14
  277. package/dist/types/CdsEmptyState.ts +0 -10
  278. package/dist/types/CdsFooter.ts +0 -17
  279. package/dist/types/CdsFooterService.ts +0 -16
  280. package/dist/types/CdsForm.ts +0 -4
  281. package/dist/types/CdsFormGroup.ts +0 -8
  282. package/dist/types/CdsFormItem.ts +0 -4
  283. package/dist/types/CdsGrid.ts +0 -16
  284. package/dist/types/CdsHeader.ts +0 -27
  285. package/dist/types/CdsHeaderService.ts +0 -4
  286. package/dist/types/CdsIcon.ts +0 -6
  287. package/dist/types/CdsLink.ts +0 -22
  288. package/dist/types/CdsList.ts +0 -6
  289. package/dist/types/CdsLoading.ts +0 -14
  290. package/dist/types/CdsModal.ts +0 -17
  291. package/dist/types/CdsMultiselect.ts +0 -33
  292. package/dist/types/CdsNotification.ts +0 -22
  293. package/dist/types/CdsOverflowMenu.ts +0 -16
  294. package/dist/types/CdsPagination.ts +0 -12
  295. package/dist/types/CdsRadioButton.ts +0 -29
  296. package/dist/types/CdsRow.ts +0 -18
  297. package/dist/types/CdsSearch.ts +0 -24
  298. package/dist/types/CdsSelect.ts +0 -37
  299. package/dist/types/CdsSkeleton.ts +0 -14
  300. package/dist/types/CdsStages.ts +0 -10
  301. package/dist/types/CdsStatus.ts +0 -22
  302. package/dist/types/CdsSteps.ts +0 -22
  303. package/dist/types/CdsStepsItem.ts +0 -12
  304. package/dist/types/CdsTable.ts +0 -46
  305. package/dist/types/CdsTabs.ts +0 -19
  306. package/dist/types/CdsTabsItem.ts +0 -18
  307. package/dist/types/CdsTag.ts +0 -20
  308. package/dist/types/CdsTextArea.ts +0 -26
  309. package/dist/types/CdsTextInput.ts +0 -32
  310. package/dist/types/CdsToggle.ts +0 -18
  311. package/dist/types/CdsTooltip.ts +0 -18
  312. package/dist/types/CdsTooltipDefinition.ts +0 -16
  313. package/dist/types/CdsTooltipInteractive.ts +0 -11
  314. package/dist/types/CdsUploader.ts +0 -44
  315. package/dist/types/Sidebar.ts +0 -17
  316. package/dist/types/types.ts +0 -2
  317. package/dist/utils/convertRemToPx.js +0 -9
  318. package/dist/utils/deepFind.js +0 -14
  319. package/dist/utils/expiringStorage.js +0 -28
  320. package/dist/utils/helpers.js +0 -33
  321. package/dist/utils/index.js +0 -1
  322. package/dist/utils/isCorrectTag.js +0 -5
  323. package/dist/utils/isRightProps.js +0 -5
  324. package/dist/utils/memoize.js +0 -8
  325. package/dist/utils/suffixPropName.js +0 -12
  326. package/dist/utils/test/deepFind.test.js +0 -18
  327. package/dist/utils/test/isCorrectTag.test.js +0 -9
  328. package/dist/utils/test/isCorrectTagDataSet.js +0 -51
  329. package/dist/utils/validationProps.js +0 -7
  330. /package/{dist/mixins/scss → src/scss/mixins}/layout/_layout.scss +0 -0
  331. /package/{dist/mixins/scss → src/scss/mixins}/layout/_mini-unit.scss +0 -0
  332. /package/{dist/mixins/scss → src/scss/mixins}/layout/_spacing.scss +0 -0
  333. /package/{dist/mixins/scss → src/scss/mixins}/motion.scss +0 -0
  334. /package/{dist/tokens → src/scss/themes}/b2b/variables.css +0 -0
@@ -0,0 +1,136 @@
1
+ import type { PropType, ComputedRef, Ref } from 'vue';
2
+ import type { MaybeRef } from '../utils';
3
+ export declare type TValidationResult = string | boolean;
4
+ export declare type TValidationRule = TValidationResult | PromiseLike<TValidationResult> | ((value: any) => TValidationResult) | ((value: any) => PromiseLike<TValidationResult>);
5
+ export declare type TValidationOn = typeof allowedValidationOn[number];
6
+ export interface IValidationProps {
7
+ disabled: boolean;
8
+ error: boolean;
9
+ errorMessages: string | string[];
10
+ focused: boolean;
11
+ maxErrors: string | number;
12
+ name: string | undefined;
13
+ label: string | undefined;
14
+ readonly: boolean;
15
+ rules: TValidationRule[];
16
+ modelValue: any;
17
+ validateOn?: TValidationOn;
18
+ validationValue: any;
19
+ hideMessages: boolean;
20
+ }
21
+ export interface IUseValidation {
22
+ errorMessages: ComputedRef<string[]>;
23
+ isDisabled: ComputedRef<boolean>;
24
+ isReadonly: ComputedRef<boolean>;
25
+ isDirty: ComputedRef<boolean>;
26
+ isPure: Ref<boolean>;
27
+ isValid: ComputedRef<boolean | null>;
28
+ isValidating: Ref<boolean>;
29
+ validate: () => Promise<string[]>;
30
+ reset: () => void;
31
+ resetValidation: () => void;
32
+ validationClasses: ComputedRef<Record<string, boolean>>;
33
+ }
34
+ export declare const allowedValidationOn: readonly ["blur", "input", "submit"];
35
+ export declare const makeValidationProps: <Defaults extends {
36
+ disabled?: unknown;
37
+ error?: unknown;
38
+ errorMessages?: unknown;
39
+ maxErrors?: unknown;
40
+ name?: unknown;
41
+ label?: unknown;
42
+ readonly?: unknown;
43
+ rules?: unknown;
44
+ modelValue?: unknown;
45
+ validateOn?: unknown;
46
+ validationValue?: unknown;
47
+ hideMessages?: unknown;
48
+ } = {}>(defaults?: Defaults | undefined) => import('../utils').AppendDefault<{
49
+ /**
50
+ * Заблокированное состояние
51
+ */
52
+ disabled: {
53
+ type: PropType<boolean>;
54
+ default: boolean;
55
+ };
56
+ /**
57
+ * Состояние ошибки
58
+ */
59
+ error: {
60
+ type: PropType<boolean>;
61
+ default: boolean;
62
+ };
63
+ /**
64
+ * Сообщения об ошибках
65
+ */
66
+ errorMessages: {
67
+ type: PropType<string | string[]>;
68
+ default: () => never[];
69
+ };
70
+ /**
71
+ * Максимально количество выводимых ошибок
72
+ */
73
+ maxErrors: {
74
+ type: PropType<string | number>;
75
+ default: number;
76
+ };
77
+ /**
78
+ * Имя поля
79
+ */
80
+ name: {
81
+ type: PropType<string | undefined>;
82
+ default: undefined;
83
+ };
84
+ /**
85
+ * Лейбл поля
86
+ */
87
+ label: {
88
+ type: PropType<string | undefined>;
89
+ default: undefined;
90
+ };
91
+ /**
92
+ * Только для чтения
93
+ */
94
+ readonly: {
95
+ type: PropType<boolean>;
96
+ default: boolean;
97
+ };
98
+ /**
99
+ * Правила валидации
100
+ */
101
+ rules: {
102
+ type: PropType<TValidationRule[]>;
103
+ default: () => never[];
104
+ };
105
+ /**
106
+ * Значение модели
107
+ */
108
+ modelValue: {
109
+ type: PropType<any>;
110
+ default: null;
111
+ };
112
+ /**
113
+ * Событие для валидации
114
+ */
115
+ validateOn: {
116
+ type: PropType<"input" | "blur" | "submit">;
117
+ default: string;
118
+ available: readonly ["blur", "input", "submit"];
119
+ validator: (value: TValidationOn) => boolean;
120
+ };
121
+ /**
122
+ * Значение для валидации
123
+ */
124
+ validationValue: {
125
+ type: PropType<any>;
126
+ default: undefined;
127
+ };
128
+ /**
129
+ * Убирает слот для сообщений об ошибках, если ошибок нет
130
+ */
131
+ hideMessages: {
132
+ type: PropType<boolean>;
133
+ default: boolean;
134
+ };
135
+ }, Defaults>;
136
+ export declare function useValidation(props: IValidationProps, name: string, id?: MaybeRef<string | number>): IUseValidation;
@@ -0,0 +1,14 @@
1
+ import type { DirectiveBinding } from 'vue';
2
+ interface IClickOutsideBindingArgs {
3
+ handler: (event: MouseEvent) => void;
4
+ closeConditional?: (event: Event) => boolean;
5
+ include?: () => HTMLElement[];
6
+ }
7
+ interface IClickOutsideDirectiveBinding extends DirectiveBinding {
8
+ value: ((event: MouseEvent) => void) | IClickOutsideBindingArgs;
9
+ }
10
+ export declare const ClickOutside: {
11
+ mounted(el: HTMLElement, binding: IClickOutsideDirectiveBinding): void;
12
+ unmounted(el: HTMLElement, binding: IClickOutsideDirectiveBinding): void;
13
+ };
14
+ export default ClickOutside;
@@ -0,0 +1 @@
1
+ export { ClickOutside } from './click-outside';
@@ -0,0 +1,16 @@
1
+ declare global {
2
+ interface HTMLCollection {
3
+ [Symbol.iterator](): IterableIterator<Element>;
4
+ }
5
+
6
+ interface HTMLElement {
7
+ _clickOutside?: Record<
8
+ number,
9
+ | {
10
+ onClick: EventListener;
11
+ onMousedown: EventListener;
12
+ }
13
+ | undefined
14
+ > & { lastMousedownWasOutside: boolean };
15
+ }
16
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,24 @@
1
+ /// <reference types="vite/client" />
2
+ import { PropType } from 'vue';
3
+
4
+ declare module '*.vue' {
5
+ import type { DefineComponent } from 'vue';
6
+ const component: DefineComponent<{}, {}, any>;
7
+ export default component;
8
+ }
9
+
10
+ export type ComponentObjectPropsOptions<P = Data> = {
11
+ [K in keyof P]: Prop<P[K]> | null;
12
+ };
13
+
14
+ type Data = Record<string, unknown>;
15
+ type Prop<T, D = T> = PropOptions<T, D> | PropType<T>;
16
+ type DefaultFactory<T> = (props: Data) => T | null | undefined;
17
+
18
+ interface PropOptions<T = any, D = T> {
19
+ type?: PropType<T> | true | null;
20
+ required?: boolean;
21
+ default?: D | DefaultFactory<D> | null | undefined | object;
22
+ available?: readonly string[] | readonly number[];
23
+ validator?(value: unknown): boolean;
24
+ }
@@ -0,0 +1,38 @@
1
+ import type { PropType, Prop } from 'vue';
2
+ export declare function createCssTransition(name: string, origin?: string, mode?: string): import("vue").DefineComponent<{
3
+ group: PropType<boolean>;
4
+ hideOnLeave: PropType<boolean>;
5
+ leaveAbsolute: PropType<boolean>;
6
+ mode: {
7
+ type: PropType<string>;
8
+ default: string | undefined;
9
+ };
10
+ origin: {
11
+ type: PropType<string>;
12
+ default: string;
13
+ };
14
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
15
+ [key: string]: any;
16
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
+ group: PropType<boolean>;
18
+ hideOnLeave: PropType<boolean>;
19
+ leaveAbsolute: PropType<boolean>;
20
+ mode: {
21
+ type: PropType<string>;
22
+ default: string | undefined;
23
+ };
24
+ origin: {
25
+ type: PropType<string>;
26
+ default: string;
27
+ };
28
+ }>>, {
29
+ mode: string;
30
+ origin: string;
31
+ }>;
32
+ export declare function createJSTransition(name: string, functions: Record<string, any>, mode?: string): import("vue").DefineComponent<{
33
+ mode: Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
34
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
+ [key: string]: any;
36
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
37
+ mode: Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
38
+ }>>, {}>;
@@ -0,0 +1,19 @@
1
+ interface HTMLExpandElement extends HTMLElement {
2
+ _parent?: (Node & ParentNode & HTMLElement) | null;
3
+ _initialStyle?: {
4
+ transition: string;
5
+ overflow: string;
6
+ height?: string | null;
7
+ width?: string | null;
8
+ };
9
+ }
10
+ export default function (expandedParentClass?: string, x?: boolean): {
11
+ onBeforeEnter(el: HTMLExpandElement): void;
12
+ onEnter(el: HTMLExpandElement): void;
13
+ onAfterEnter: (el: HTMLExpandElement) => void;
14
+ onEnterCancelled: (el: HTMLExpandElement) => void;
15
+ onLeave(el: HTMLExpandElement): void;
16
+ onAfterLeave: (el: HTMLExpandElement) => void;
17
+ onLeaveCancelled: (el: HTMLExpandElement) => void;
18
+ };
19
+ export {};
@@ -0,0 +1,104 @@
1
+ export declare const CdsTransitionExpand: import("vue").DefineComponent<{
2
+ mode: import("vue").Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
3
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
4
+ [key: string]: any;
5
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
6
+ mode: import("vue").Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
7
+ }>>, {}>;
8
+ export declare const CdsTransitionExpandX: import("vue").DefineComponent<{
9
+ mode: import("vue").Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
10
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
11
+ [key: string]: any;
12
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
+ mode: import("vue").Prop<"default" | "in-out" | "out-in", "default" | "in-out" | "out-in">;
14
+ }>>, {}>;
15
+ export declare const CdsTransitionFade: import("vue").DefineComponent<{
16
+ group: import("vue").PropType<boolean>;
17
+ hideOnLeave: import("vue").PropType<boolean>;
18
+ leaveAbsolute: import("vue").PropType<boolean>;
19
+ mode: {
20
+ type: import("vue").PropType<string>;
21
+ default: string | undefined;
22
+ };
23
+ origin: {
24
+ type: import("vue").PropType<string>;
25
+ default: string;
26
+ };
27
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
28
+ [key: string]: any;
29
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
+ group: import("vue").PropType<boolean>;
31
+ hideOnLeave: import("vue").PropType<boolean>;
32
+ leaveAbsolute: import("vue").PropType<boolean>;
33
+ mode: {
34
+ type: import("vue").PropType<string>;
35
+ default: string | undefined;
36
+ };
37
+ origin: {
38
+ type: import("vue").PropType<string>;
39
+ default: string;
40
+ };
41
+ }>>, {
42
+ mode: string;
43
+ origin: string;
44
+ }>;
45
+ export declare const CdsTransitionSlideY: import("vue").DefineComponent<{
46
+ group: import("vue").PropType<boolean>;
47
+ hideOnLeave: import("vue").PropType<boolean>;
48
+ leaveAbsolute: import("vue").PropType<boolean>;
49
+ mode: {
50
+ type: import("vue").PropType<string>;
51
+ default: string | undefined;
52
+ };
53
+ origin: {
54
+ type: import("vue").PropType<string>;
55
+ default: string;
56
+ };
57
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
58
+ [key: string]: any;
59
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
60
+ group: import("vue").PropType<boolean>;
61
+ hideOnLeave: import("vue").PropType<boolean>;
62
+ leaveAbsolute: import("vue").PropType<boolean>;
63
+ mode: {
64
+ type: import("vue").PropType<string>;
65
+ default: string | undefined;
66
+ };
67
+ origin: {
68
+ type: import("vue").PropType<string>;
69
+ default: string;
70
+ };
71
+ }>>, {
72
+ mode: string;
73
+ origin: string;
74
+ }>;
75
+ export declare const CdsTransitionSlideX: import("vue").DefineComponent<{
76
+ group: import("vue").PropType<boolean>;
77
+ hideOnLeave: import("vue").PropType<boolean>;
78
+ leaveAbsolute: import("vue").PropType<boolean>;
79
+ mode: {
80
+ type: import("vue").PropType<string>;
81
+ default: string | undefined;
82
+ };
83
+ origin: {
84
+ type: import("vue").PropType<string>;
85
+ default: string;
86
+ };
87
+ }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
88
+ [key: string]: any;
89
+ }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
90
+ group: import("vue").PropType<boolean>;
91
+ hideOnLeave: import("vue").PropType<boolean>;
92
+ leaveAbsolute: import("vue").PropType<boolean>;
93
+ mode: {
94
+ type: import("vue").PropType<string>;
95
+ default: string | undefined;
96
+ };
97
+ origin: {
98
+ type: import("vue").PropType<string>;
99
+ default: string;
100
+ };
101
+ }>>, {
102
+ mode: string;
103
+ origin: string;
104
+ }>;
@@ -0,0 +1,3 @@
1
+ export interface ICdsOptions {
2
+ cssGrid?: boolean;
3
+ }
@@ -0,0 +1,23 @@
1
+ declare const block: readonly ["top", "bottom"];
2
+ declare const inline: readonly ["start", "end", "left", "right"];
3
+ declare type Tblock = typeof block[number];
4
+ declare type Tinline = typeof inline[number];
5
+ export declare type TAnchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`;
6
+ export declare type ParsedAnchor = {
7
+ side: 'center';
8
+ align: 'center';
9
+ } | {
10
+ side: Tblock;
11
+ align: 'left' | 'right' | 'center';
12
+ } | {
13
+ side: 'left' | 'right';
14
+ align: Tblock | 'center';
15
+ };
16
+ /** Parse a raw anchor string into an object */
17
+ export declare function parseAnchor(anchor: TAnchor): ParsedAnchor;
18
+ export declare function toPhysical(str: 'center' | Tblock | Tinline): "right" | "top" | "bottom" | "left" | "center";
19
+ export declare function flipSide(anchor: ParsedAnchor): ParsedAnchor;
20
+ export declare function flipAlign(anchor: ParsedAnchor): ParsedAnchor;
21
+ export declare function flipCorner(anchor: ParsedAnchor): ParsedAnchor;
22
+ export declare function getAxis(anchor: ParsedAnchor): "y" | "x";
23
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Box } from './box';
2
+ /** @see https://stackoverflow.com/a/57876601/2074736 */
3
+ export declare function nullifyTransforms(el: HTMLElement): Box;
4
+ export declare function animate(el: Element, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation | {
5
+ finished: Promise<void>;
6
+ };
@@ -0,0 +1,26 @@
1
+ export declare class Box {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ constructor({ x, y, width, height }: {
7
+ x: number;
8
+ y: number;
9
+ width: number;
10
+ height: number;
11
+ });
12
+ get top(): number;
13
+ get bottom(): number;
14
+ get left(): number;
15
+ get right(): number;
16
+ }
17
+ export declare function getOverflow(a: Box, b: Box): {
18
+ x: {
19
+ before: number;
20
+ after: number;
21
+ };
22
+ y: {
23
+ before: number;
24
+ after: number;
25
+ };
26
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Localized lower case.
3
+ */
4
+ export declare function localeLowerCase(str: string, locale: string): string;
5
+ /**
6
+ * Lower case as a function.
7
+ */
8
+ export declare function lowerCase(str: string): string;
@@ -0,0 +1,10 @@
1
+ export interface IChangeCaseOptions {
2
+ splitRegexp?: RegExp | RegExp[];
3
+ stripRegexp?: RegExp | RegExp[];
4
+ delimiter?: string;
5
+ transform?: (part: string, index: number, parts: string[]) => string;
6
+ }
7
+ /**
8
+ * Normalize the string into something other libraries can manipulate easier.
9
+ */
10
+ export declare function noCase(input: string, options?: IChangeCaseOptions): string;
@@ -0,0 +1,3 @@
1
+ import type { IChangeCaseOptions } from './noCase';
2
+ export type { IChangeCaseOptions };
3
+ export declare function paramCase(input: string, options?: IChangeCaseOptions): string;
@@ -0,0 +1,5 @@
1
+ import { IChangeCaseOptions } from './noCase';
2
+ export type { IChangeCaseOptions };
3
+ export declare function pascalCaseTransform(input: string, index: number): string;
4
+ export declare function pascalCaseTransformMerge(input: string): string;
5
+ export declare function pascalCase(input: string, options?: IChangeCaseOptions): string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Returns:
3
+ * - 'null' if the node is not attached to the DOM
4
+ * - the root node (HTMLDocument | ShadowRoot) otherwise
5
+ */
6
+ export declare function attachedRoot(node: Node): null | HTMLDocument | ShadowRoot;
@@ -0,0 +1,13 @@
1
+ import type { ComponentInternalInstance } from 'vue';
2
+ /**
3
+ * This is a wrapper around Vue's getCurrentInstance
4
+ * WARNING! It's not a public API and can be removed in the future
5
+ * @param name
6
+ * @param message
7
+ */
8
+ export declare function getCurrentInstance(name: string, message?: string): ComponentInternalInstance;
9
+ export declare function getCurrentInstanceName(name?: string): string;
10
+ export declare function getUid(): number;
11
+ export declare namespace getUid {
12
+ var reset: () => void;
13
+ }
@@ -0,0 +1,3 @@
1
+ export declare function getScrollParent(el?: HTMLElement): HTMLElement;
2
+ export declare function getScrollParents(el?: Element | null, stopAt?: Element | null): HTMLElement[];
3
+ export declare function hasScrollbar(el?: Element | null): boolean;
@@ -0,0 +1,4 @@
1
+ export declare const IN_BROWSER: boolean;
2
+ export declare const SUPPORTS_INTERSECTION: boolean;
3
+ export declare const SUPPORTS_TOUCH: boolean;
4
+ export declare const SUPPORTS_FOCUS_VISIBLE: boolean;
@@ -0,0 +1,73 @@
1
+ import type { ComponentPublicInstance, ComputedGetter, PropType, Ref, ToRefs } from 'vue';
2
+ import type { TItemKey } from '../composable';
3
+ export declare const keyCodes: Readonly<{
4
+ enter: 13;
5
+ tab: 9;
6
+ delete: 46;
7
+ esc: 27;
8
+ space: 32;
9
+ up: 38;
10
+ down: 40;
11
+ left: 37;
12
+ right: 39;
13
+ end: 35;
14
+ home: 36;
15
+ del: 46;
16
+ backspace: 8;
17
+ insert: 45;
18
+ pageup: 33;
19
+ pagedown: 34;
20
+ shift: 16;
21
+ }>;
22
+ export declare const classesStates: Readonly<{
23
+ hover: "cds-state-hover";
24
+ focus: "cds-state-focus";
25
+ active: "cds-state-active";
26
+ visited: "cds-state-visited";
27
+ disabled: "cds-state-disabled";
28
+ checked: "cds-state-checked";
29
+ indeterminate: "cds-state-indeterminate";
30
+ invalid: "cds-state-invalid";
31
+ empty: "cds-state-empty";
32
+ loading: "cds-state-loading";
33
+ }>;
34
+ export declare function isObject(obj: any): obj is object;
35
+ export declare function mergeDeep(source?: Record<string, any>, target?: Record<string, any>, arrayFn?: (a: unknown[], b: unknown[]) => unknown[]): Record<string, any>;
36
+ /**
37
+ * Wrap value in array if it's not already an array
38
+ * @param value
39
+ */
40
+ export declare function wrapInArray<T>(value: T | T[] | null | undefined): T[];
41
+ export declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any;
42
+ export declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any;
43
+ export declare function getPropertyFromItem(item: any, property: SelectItemKey, fallback?: any): any;
44
+ /**
45
+ * @description This function is used to return a copy of the object that is composed of the picked object properties.
46
+ * @param obj
47
+ * @param paths
48
+ */
49
+ export declare function pick<T extends object, U extends Extract<keyof T, string>>(obj: T, paths: U[]): [yes: MaybePick<T, U>, no: Omit<T, U>];
50
+ /**
51
+ * Convert a computed ref to a record of refs.
52
+ * The getter function must always return an object with the same keys.
53
+ */
54
+ export declare function destructComputed<T extends object>(getter: ComputedGetter<T & NotAUnion<T>>): ToRefs<T>;
55
+ /** Array.includes but value can be any type */
56
+ export declare function includes(arr: readonly any[], val: any): boolean;
57
+ export declare function convertToUnit(str: number, unit?: string): string;
58
+ export declare function convertToUnit(str: string | number | null | undefined, unit?: string): string | undefined;
59
+ export declare function clamp(value: number, min?: number, max?: number): number;
60
+ export declare const isOn: (key: string) => boolean;
61
+ export declare const EventProp: PropType<(...args: any[]) => any>;
62
+ export declare function isComponentInstance(obj: any): obj is ComponentPublicInstance;
63
+ export declare function isFixedPosition(el?: HTMLElement): boolean;
64
+ /**
65
+ * Types
66
+ */
67
+ export declare type MaybeRef<T> = T | Ref<T>;
68
+ export declare type SelectItemKey = TItemKey;
69
+ export declare type MaybePick<T extends object, U extends Extract<keyof T, string>> = Record<string, unknown> extends T ? Partial<Pick<T, U>> : Pick<T, U>;
70
+ export declare type EventProp<T = (...args: any[]) => any> = T;
71
+ declare type NotAUnion<T> = [T] extends [infer U] ? _NotAUnion<U, U> : never;
72
+ declare type _NotAUnion<T, U> = U extends any ? ([T] extends [U] ? unknown : never) : never;
73
+ export {};
@@ -0,0 +1,13 @@
1
+ export * from './propsFactory';
2
+ export * from './helpers';
3
+ export * from './getCurrentInstance';
4
+ export * from './getScrollParent';
5
+ export * from './globals';
6
+ export * from './dom';
7
+ export * from './anchor';
8
+ export * from './box';
9
+ export * from './animation';
10
+ export * from './changeCase/noCase';
11
+ export * from './changeCase/lowerCase';
12
+ export * from './changeCase/pascalCase';
13
+ export * from './changeCase/paramCase';
@@ -0,0 +1,52 @@
1
+ import type { PropType } from 'vue';
2
+ import type { Prop, ComponentObjectPropsOptions } from '../shims-vue';
3
+ /**
4
+ * Creates a factory function for props definitions.
5
+ * This is used to define props in a composable then override
6
+ * default values in an implementing component.
7
+ *
8
+ * @example Simplified signature
9
+ * (props: Props) => (defaults?: Record<keyof props, any>) => Props
10
+ *
11
+ * @example Usage
12
+ * const makeProps = propsFactory({
13
+ * foo: String,
14
+ * })
15
+ *
16
+ * defineComponent({
17
+ * props: {
18
+ * ...makeProps({
19
+ * foo: 'a',
20
+ * }),
21
+ * },
22
+ * setup (props) {
23
+ * // would be "string | undefined", now "string" because a default has been provided
24
+ * props.foo
25
+ * },
26
+ * }
27
+ */
28
+ export declare function propsFactory<PropsOptions extends ComponentObjectPropsOptions = ComponentObjectPropsOptions>(props: PropsOptions, source: string): <Defaults extends PartialKeys<PropsOptions> = {}>(defaults?: Defaults | undefined) => AppendDefault<PropsOptions, Defaults>;
29
+ export declare type AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {
30
+ [P in keyof T]-?: unknown extends D[P] ? T[P] : T[P] extends Record<string, unknown> ? Omit<T[P], 'type' | 'default'> & {
31
+ type: PropType<MergeDefaults<T[P], D[P]>>;
32
+ default: MergeDefaults<T[P], D[P]>;
33
+ } : {
34
+ type: PropType<MergeDefaults<T[P], D[P]>>;
35
+ default: MergeDefaults<T[P], D[P]>;
36
+ };
37
+ };
38
+ declare type MergeDefaults<T, D> = unknown extends D ? InferPropType<T> : NonNullable<InferPropType<T>> | D;
39
+ /**
40
+ * Like `Partial<T>` but doesn't care what the value is
41
+ */
42
+ declare type PartialKeys<T> = {
43
+ [P in keyof T]?: unknown;
44
+ };
45
+ declare type InferPropType<T> = T extends null ? any : T extends {
46
+ type: null | true;
47
+ } ? any : T extends ObjectConstructor | {
48
+ type: ObjectConstructor;
49
+ } ? Record<string, any> : T extends BooleanConstructor | {
50
+ type: BooleanConstructor;
51
+ } ? boolean : T extends Prop<infer V, infer D> ? unknown extends V ? D : V : T;
52
+ export {};
package/nuxt.js ADDED
@@ -0,0 +1,13 @@
1
+ import { defineNuxtModule } from '@nuxt/kit';
2
+ import { fileURLToPath } from 'node:url';
3
+
4
+ export default defineNuxtModule({
5
+ hooks: {
6
+ 'components:dirs'(dirs) {
7
+ dirs.push({
8
+ path: fileURLToPath(new URL('./src/components', import.meta.url)),
9
+ extensions: ['vue']
10
+ });
11
+ }
12
+ }
13
+ });