@central-design-system/components 4.0.0-alpha.4 → 4.0.0-alpha.5

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 (970) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/MIGRATION.md +14 -42
  3. package/dist/browser/entry.js +4917 -2238
  4. package/dist/browser/iconsets/cdsLegacy.js +1 -1
  5. package/dist/cds.d.ts +119065 -0
  6. package/dist/cjs/entry.js +9 -9
  7. package/dist/es/entry.css +0 -18
  8. package/dist/es/entry.js +3 -2
  9. package/dist/es/entry.js.map +1 -1
  10. package/dist/es/src/cds.js +1 -1
  11. package/dist/es/src/components/CdsApp/CdsApp.css +0 -18
  12. package/dist/es/src/components/CdsApp/api/CdsApp.props.js +1 -0
  13. package/dist/es/src/components/CdsApp/api/CdsApp.props.js.map +1 -1
  14. package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.css +0 -18
  15. package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.js +20 -5
  16. package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  17. package/dist/es/src/components/CdsAutocomplete/api/CdsAutocomplete.props.js +9 -2
  18. package/dist/es/src/components/CdsAutocomplete/api/CdsAutocomplete.props.js.map +1 -1
  19. package/dist/es/src/components/CdsAvatar/CdsAvatar.css +0 -18
  20. package/dist/es/src/components/CdsAvatar/api/CdsAvatar.props.js +20 -5
  21. package/dist/es/src/components/CdsAvatar/api/CdsAvatar.props.js.map +1 -1
  22. package/dist/es/src/components/CdsBadge/CdsBadge.css +0 -18
  23. package/dist/es/src/components/CdsBadge/api/CdsBadge.props.js +37 -9
  24. package/dist/es/src/components/CdsBadge/api/CdsBadge.props.js.map +1 -1
  25. package/dist/es/src/components/CdsBreadcrumbs/CdsBreadcrumbs.css +0 -18
  26. package/dist/es/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.js +32 -8
  27. package/dist/es/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.js.map +1 -1
  28. package/dist/es/src/components/CdsButton/CdsButton.css +0 -18
  29. package/dist/es/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.js +4 -1
  30. package/dist/es/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  31. package/dist/es/src/components/CdsButton/api/CdsButton.props.js +28 -7
  32. package/dist/es/src/components/CdsButton/api/CdsButton.props.js.map +1 -1
  33. package/dist/es/src/components/CdsButtonGroup/CdsButtonGroup.css +0 -18
  34. package/dist/es/src/components/CdsButtonGroup/api/CdsButtonGroup.props.js +4 -1
  35. package/dist/es/src/components/CdsButtonGroup/api/CdsButtonGroup.props.js.map +1 -1
  36. package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.css +0 -18
  37. package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.js +20 -5
  38. package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  39. package/dist/es/src/components/CdsCard/CdsCard.css +0 -18
  40. package/dist/es/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.js +20 -5
  41. package/dist/es/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/es/src/components/CdsCard/api/CdsCard.props.js +84 -20
  43. package/dist/es/src/components/CdsCard/api/CdsCard.props.js.map +1 -1
  44. package/dist/es/src/components/CdsCarousel/CdsCarousel.css +0 -18
  45. package/dist/es/src/components/CdsCarousel/api/CdsCarousel.props.js +36 -9
  46. package/dist/es/src/components/CdsCarousel/api/CdsCarousel.props.js.map +1 -1
  47. package/dist/es/src/components/CdsCheckbox/CdsCheckbox.css +0 -18
  48. package/dist/es/src/components/CdsCheckboxButton/CdsCheckboxButton.css +0 -18
  49. package/dist/es/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.js +8 -2
  50. package/dist/es/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.js.map +1 -1
  51. package/dist/es/src/components/CdsCombobox/CdsCombobox.css +0 -18
  52. package/dist/es/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.js +24 -6
  53. package/dist/es/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  54. package/dist/es/src/components/CdsCombobox/api/CdsCombobox.props.js +13 -3
  55. package/dist/es/src/components/CdsCombobox/api/CdsCombobox.props.js.map +1 -1
  56. package/dist/es/src/components/CdsCounter/CdsCounter.css +0 -18
  57. package/dist/es/src/components/CdsCounter/api/CdsCounter.props.js +12 -3
  58. package/dist/es/src/components/CdsCounter/api/CdsCounter.props.js.map +1 -1
  59. package/dist/es/src/components/CdsDateInput/CdsDateInput.css +0 -18
  60. package/dist/es/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.js +8 -0
  61. package/dist/es/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  62. package/dist/es/src/components/CdsDateInput/api/CdsDateInput.props.js +31 -7
  63. package/dist/es/src/components/CdsDateInput/api/CdsDateInput.props.js.map +1 -1
  64. package/dist/es/src/components/CdsDatePicker/CdsDatePicker.css +0 -18
  65. package/dist/es/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.js +20 -0
  66. package/dist/es/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/es/src/components/CdsDatePicker/api/CdsDatePicker.props.js +64 -15
  68. package/dist/es/src/components/CdsDatePicker/api/CdsDatePicker.props.js.map +1 -1
  69. package/dist/es/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.js +5 -0
  70. package/dist/es/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.js.map +1 -1
  71. package/dist/es/src/components/CdsDescription/CdsDescription.css +0 -18
  72. package/dist/es/src/components/CdsDivider/CdsDivider.css +0 -18
  73. package/dist/es/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  74. package/dist/es/src/components/CdsDivider/api/CdsDivider.props.js +33 -8
  75. package/dist/es/src/components/CdsDivider/api/CdsDivider.props.js.map +1 -1
  76. package/dist/es/src/components/CdsDrawer/CdsDrawer.css +0 -18
  77. package/dist/es/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.js +4 -0
  78. package/dist/es/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/es/src/components/CdsDrawer/api/CdsDrawer.props.js +32 -8
  80. package/dist/es/src/components/CdsDrawer/api/CdsDrawer.props.js.map +1 -1
  81. package/dist/es/src/components/CdsEmptyState/CdsEmptyState.css +0 -18
  82. package/dist/es/src/components/CdsEmptyState/api/CdsEmptyState.props.js +33 -8
  83. package/dist/es/src/components/CdsEmptyState/api/CdsEmptyState.props.js.map +1 -1
  84. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.js +16 -4
  85. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  86. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.js +8 -2
  87. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.css +0 -18
  89. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.js +8 -2
  90. package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/es/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.js +38 -9
  92. package/dist/es/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.js.map +1 -1
  93. package/dist/es/src/components/CdsField/CdsField.css +0 -18
  94. package/dist/es/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.js +13 -3
  95. package/dist/es/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/es/src/components/CdsField/api/CdsField.props.js +56 -14
  97. package/dist/es/src/components/CdsField/api/CdsField.props.js.map +1 -1
  98. package/dist/es/src/components/CdsField/composables/useAutocomplete.js +1 -0
  99. package/dist/es/src/components/CdsField/composables/useAutocomplete.js.map +1 -1
  100. package/dist/es/src/components/CdsFileInput/CdsFileInput.css +0 -18
  101. package/dist/es/src/components/CdsFileInput/api/CdsFileInput.props.js +40 -10
  102. package/dist/es/src/components/CdsFileInput/api/CdsFileInput.props.js.map +1 -1
  103. package/dist/es/src/components/CdsFileInput/composables/useFileFilter.js +4 -1
  104. package/dist/es/src/components/CdsFileInput/composables/useFileFilter.js.map +1 -1
  105. package/dist/es/src/components/CdsFileUpload/CdsFileUpload.css +0 -18
  106. package/dist/es/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.js +4 -0
  107. package/dist/es/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/es/src/components/CdsFileUpload/api/CdsFileUpload.props.js +85 -21
  109. package/dist/es/src/components/CdsFileUpload/api/CdsFileUpload.props.js.map +1 -1
  110. package/dist/es/src/components/CdsFooter/CdsFooter.css +0 -18
  111. package/dist/es/src/components/CdsForm/CdsForm.css +0 -18
  112. package/dist/es/src/components/CdsForm/api/CdsForm.props.js +8 -2
  113. package/dist/es/src/components/CdsForm/api/CdsForm.props.js.map +1 -1
  114. package/dist/es/src/components/CdsFunctionalButton/CdsFunctionalButton.css +0 -18
  115. package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js +4 -1
  116. package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js.map +1 -1
  117. package/dist/es/src/components/CdsGrid/api/CdsGrid.props.js +40 -10
  118. package/dist/es/src/components/CdsGrid/api/CdsGrid.props.js.map +1 -1
  119. package/dist/es/src/components/CdsGrid/components/CSSGrid.css +0 -18
  120. package/dist/es/src/components/CdsGrid/components/FlexGrid.css +0 -18
  121. package/dist/es/src/components/CdsHeader/CdsHeader.css +0 -18
  122. package/dist/es/src/components/CdsHighlight/CdsHighlight.css +0 -18
  123. package/dist/es/src/components/CdsHighlight/api/CdsHighlight.props.js +32 -8
  124. package/dist/es/src/components/CdsHighlight/api/CdsHighlight.props.js.map +1 -1
  125. package/dist/es/src/components/CdsIcon/CdsIcon.css +0 -18
  126. package/dist/es/src/components/CdsIcon/api/CdsIcon.props.js +17 -4
  127. package/dist/es/src/components/CdsIcon/api/CdsIcon.props.js.map +1 -1
  128. package/dist/es/src/components/CdsImage/CdsImage.css +0 -18
  129. package/dist/es/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.js +20 -0
  130. package/dist/es/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  131. package/dist/es/src/components/CdsImage/api/CdsImage.props.js +64 -16
  132. package/dist/es/src/components/CdsImage/api/CdsImage.props.js.map +1 -1
  133. package/dist/es/src/components/CdsInput/CdsInput.css +0 -18
  134. package/dist/es/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.js +44 -11
  135. package/dist/es/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/es/src/components/CdsInput/api/CdsInput.props.js +48 -12
  137. package/dist/es/src/components/CdsInput/api/CdsInput.props.js.map +1 -1
  138. package/dist/es/src/components/CdsLabel/CdsLabel.css +0 -18
  139. package/dist/es/src/components/CdsLabel/api/CdsLabel.props.js +4 -0
  140. package/dist/es/src/components/CdsLabel/api/CdsLabel.props.js.map +1 -1
  141. package/dist/es/src/components/CdsLayout/CdsLayout.css +0 -18
  142. package/dist/es/src/components/CdsLayout/api/CdsLayout.props.js +5 -1
  143. package/dist/es/src/components/CdsLayout/api/CdsLayout.props.js.map +1 -1
  144. package/dist/es/src/components/CdsLink/CdsLink.css +0 -18
  145. package/dist/es/src/components/CdsLink/api/CdsLink.props.js +4 -1
  146. package/dist/es/src/components/CdsLink/api/CdsLink.props.js.map +1 -1
  147. package/dist/es/src/components/CdsList/CdsList.css +0 -18
  148. package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js +25 -7
  149. package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/es/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.js +5 -2
  151. package/dist/es/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  152. package/dist/es/src/components/CdsList/CdsListItem.css +0 -18
  153. package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js +29 -8
  154. package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  155. package/dist/es/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.js +8 -2
  156. package/dist/es/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  157. package/dist/es/src/components/CdsList/CdsListItemDivider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  158. package/dist/es/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.js +8 -2
  159. package/dist/es/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
  160. package/dist/es/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.js +1 -1
  161. package/dist/es/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/es/src/components/CdsList/api/CdsList.constants.js +4 -4
  163. package/dist/es/src/components/CdsList/api/CdsList.props.js +147 -39
  164. package/dist/es/src/components/CdsList/api/CdsList.props.js.map +1 -1
  165. package/dist/es/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.js +8 -2
  166. package/dist/es/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.js.map +1 -1
  167. package/dist/es/src/components/CdsList/components/ListGroupActivator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/es/src/components/CdsList/index.js +5 -2
  169. package/dist/es/src/components/CdsList/index.js.map +1 -1
  170. package/dist/es/src/components/CdsLoader/CdsLoader.css +0 -18
  171. package/dist/es/src/components/CdsLoader/api/CdsLoader.props.js +12 -3
  172. package/dist/es/src/components/CdsLoader/api/CdsLoader.props.js.map +1 -1
  173. package/dist/es/src/components/CdsMain/CdsMain.css +0 -18
  174. package/dist/es/src/components/CdsMenu/CdsMenu.css +0 -18
  175. package/dist/es/src/components/CdsMenu/api/CdsMenu.props.js +8 -2
  176. package/dist/es/src/components/CdsMenu/api/CdsMenu.props.js.map +1 -1
  177. package/dist/es/src/components/CdsMessages/CdsMessages.css +0 -18
  178. package/dist/es/src/components/CdsMessages/api/CdsMessages.props.js +12 -3
  179. package/dist/es/src/components/CdsMessages/api/CdsMessages.props.js.map +1 -1
  180. package/dist/es/src/components/CdsModal/CdsModal.css +0 -18
  181. package/dist/es/src/components/CdsModal/api/CdsModal.props.js +8 -2
  182. package/dist/es/src/components/CdsModal/api/CdsModal.props.js.map +1 -1
  183. package/dist/es/src/components/CdsNotification/CdsNotification.css +0 -18
  184. package/dist/es/src/components/CdsNotification/api/CdsNotification.props.js +28 -7
  185. package/dist/es/src/components/CdsNotification/api/CdsNotification.props.js.map +1 -1
  186. package/dist/es/src/components/CdsNotificationAlert/CdsNotificationAlert.css +0 -18
  187. package/dist/es/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.js +28 -7
  188. package/dist/es/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.js.map +1 -1
  189. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.css +0 -18
  190. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js +20 -5
  191. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  192. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js +52 -13
  193. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js.map +1 -1
  194. package/dist/es/src/components/CdsOverlay/CdsOverlay.css +0 -18
  195. package/dist/es/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.js +44 -11
  196. package/dist/es/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  197. package/dist/es/src/components/CdsOverlay/api/CdsOverlay.props.js +36 -8
  198. package/dist/es/src/components/CdsOverlay/api/CdsOverlay.props.js.map +1 -1
  199. package/dist/es/src/components/CdsOverlay/composables/useActivator.js +25 -6
  200. package/dist/es/src/components/CdsOverlay/composables/useActivator.js.map +1 -1
  201. package/dist/es/src/components/CdsOverlay/composables/useLocationStrategies.js +18 -4
  202. package/dist/es/src/components/CdsOverlay/composables/useLocationStrategies.js.map +1 -1
  203. package/dist/es/src/components/CdsOverlay/composables/useScrollStrategies.js +4 -1
  204. package/dist/es/src/components/CdsOverlay/composables/useScrollStrategies.js.map +1 -1
  205. package/dist/es/src/components/CdsPage/CdsPage.css +0 -18
  206. package/dist/es/src/components/CdsPage/api/CdsPage.props.js +5 -1
  207. package/dist/es/src/components/CdsPage/api/CdsPage.props.js.map +1 -1
  208. package/dist/es/src/components/CdsPagination/CdsPagination.css +0 -18
  209. package/dist/es/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.js +16 -0
  210. package/dist/es/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/es/src/components/CdsPagination/api/CdsPagination.props.js +84 -21
  212. package/dist/es/src/components/CdsPagination/api/CdsPagination.props.js.map +1 -1
  213. package/dist/es/src/components/CdsProgressBar/CdsProgressBar.css +0 -18
  214. package/dist/es/src/components/CdsProgressBar/api/CdsProgressBar.props.js +64 -16
  215. package/dist/es/src/components/CdsProgressBar/api/CdsProgressBar.props.js.map +1 -1
  216. package/dist/es/src/components/CdsProgressBar/composables/useChunk.js +4 -0
  217. package/dist/es/src/components/CdsProgressBar/composables/useChunk.js.map +1 -1
  218. package/dist/es/src/components/CdsProgressCircle/CdsProgressCircle.css +0 -18
  219. package/dist/es/src/components/CdsProgressCircle/api/CdsProgressCircle.props.js +28 -7
  220. package/dist/es/src/components/CdsProgressCircle/api/CdsProgressCircle.props.js.map +1 -1
  221. package/dist/es/src/components/CdsRadio/CdsRadio.css +0 -18
  222. package/dist/es/src/components/CdsRadioGroup/CdsRadioGroup.css +0 -18
  223. package/dist/es/src/components/CdsRadioGroup/api/CdsRadioGroup.props.js +16 -4
  224. package/dist/es/src/components/CdsRadioGroup/api/CdsRadioGroup.props.js.map +1 -1
  225. package/dist/es/src/components/CdsResponsive/CdsResponsive.css +0 -18
  226. package/dist/es/src/components/CdsResponsive/api/CdsResponsive.props.js +12 -3
  227. package/dist/es/src/components/CdsResponsive/api/CdsResponsive.props.js.map +1 -1
  228. package/dist/es/src/components/CdsSelect/CdsSelect.css +0 -18
  229. package/dist/es/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.js +16 -4
  230. package/dist/es/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  231. package/dist/es/src/components/CdsSelect/api/CdsSelect.props.js +4 -1
  232. package/dist/es/src/components/CdsSelect/api/CdsSelect.props.js.map +1 -1
  233. package/dist/es/src/components/CdsSelect/composables/useMenuActivator.js +8 -2
  234. package/dist/es/src/components/CdsSelect/composables/useMenuActivator.js.map +1 -1
  235. package/dist/es/src/components/CdsSelect/composables/useSelect.js +69 -17
  236. package/dist/es/src/components/CdsSelect/composables/useSelect.js.map +1 -1
  237. package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.css +0 -18
  238. package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.js +8 -0
  239. package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.js.map +1 -1
  240. package/dist/es/src/components/CdsSelectionControl/api/CdsSelectionControl.props.js +12 -3
  241. package/dist/es/src/components/CdsSelectionControl/api/CdsSelectionControl.props.js.map +1 -1
  242. package/dist/es/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.css +0 -18
  243. package/dist/es/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.js +44 -11
  244. package/dist/es/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.js.map +1 -1
  245. package/dist/es/src/components/CdsSkeletonLoader/CdsSkeletonLoader.css +0 -18
  246. package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.js +16 -4
  247. package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.js.map +1 -1
  248. package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.types.js.map +1 -1
  249. package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.css +0 -18
  250. package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.js +24 -6
  251. package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  252. package/dist/es/src/components/CdsSlideGroup/api/CdsSlideGroup.props.js +25 -6
  253. package/dist/es/src/components/CdsSlideGroup/api/CdsSlideGroup.props.js.map +1 -1
  254. package/dist/es/src/components/CdsSlideView/CdsSlideView.css +0 -18
  255. package/dist/es/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.js +4 -0
  256. package/dist/es/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/es/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.js +5 -1
  258. package/dist/es/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  259. package/dist/es/src/components/CdsSlideView/api/CdsSlideView.props.js +44 -0
  260. package/dist/es/src/components/CdsSlideView/api/CdsSlideView.props.js.map +1 -1
  261. package/dist/es/src/components/CdsStages/CdsStages.css +0 -18
  262. package/dist/es/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.js +8 -0
  263. package/dist/es/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.js.map +1 -1
  264. package/dist/es/src/components/CdsStages/api/CdsStages.props.js +8 -2
  265. package/dist/es/src/components/CdsStages/api/CdsStages.props.js.map +1 -1
  266. package/dist/es/src/components/CdsStatus/CdsStatus.css +0 -18
  267. package/dist/es/src/components/CdsStatus/api/CdsStatus.props.js +4 -1
  268. package/dist/es/src/components/CdsStatus/api/CdsStatus.props.js.map +1 -1
  269. package/dist/es/src/components/CdsSteps/CdsSteps.css +0 -18
  270. package/dist/es/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.js +8 -0
  271. package/dist/es/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/es/src/components/CdsSteps/api/CdsSteps.props.js +44 -11
  273. package/dist/es/src/components/CdsSteps/api/CdsSteps.props.js.map +1 -1
  274. package/dist/es/src/components/CdsSurface/CdsSurface.css +0 -18
  275. package/dist/es/src/components/CdsSurface/api/CdsSurface.props.js +4 -1
  276. package/dist/es/src/components/CdsSurface/api/CdsSurface.props.js.map +1 -1
  277. package/dist/es/src/components/CdsTable/CdsTable.css +0 -18
  278. package/dist/es/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.js +4 -0
  279. package/dist/es/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/es/src/components/CdsTable/composable/table.js +47 -0
  281. package/dist/es/src/components/CdsTable/composable/table.js.map +1 -1
  282. package/dist/es/src/components/CdsTabs/CdsTabs.css +0 -18
  283. package/dist/es/src/components/CdsTabs/api/CdsTabs.props.js +56 -0
  284. package/dist/es/src/components/CdsTabs/api/CdsTabs.props.js.map +1 -1
  285. package/dist/es/src/components/CdsTag/CdsTag.css +0 -18
  286. package/dist/es/src/components/CdsTag/api/CdsTag.props.js +72 -18
  287. package/dist/es/src/components/CdsTag/api/CdsTag.props.js.map +1 -1
  288. package/dist/es/src/components/CdsTagGroup/CdsTagGroup.css +0 -18
  289. package/dist/es/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.js +20 -5
  290. package/dist/es/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  291. package/dist/es/src/components/CdsTagGroup/api/CdsTagGroup.props.js +11 -3
  292. package/dist/es/src/components/CdsTagGroup/api/CdsTagGroup.props.js.map +1 -1
  293. package/dist/es/src/components/CdsTextArea/CdsTextArea.css +0 -18
  294. package/dist/es/src/components/CdsTextArea/api/CdsTextArea.props.js +52 -13
  295. package/dist/es/src/components/CdsTextArea/api/CdsTextArea.props.js.map +1 -1
  296. package/dist/es/src/components/CdsTextInput/CdsTextInput.css +0 -18
  297. package/dist/es/src/components/CdsTextInput/api/CdsTextInput.props.js +40 -10
  298. package/dist/es/src/components/CdsTextInput/api/CdsTextInput.props.js.map +1 -1
  299. package/dist/es/src/components/CdsTimePicker/CdsTimePicker.css +0 -18
  300. package/dist/es/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.js +24 -0
  301. package/dist/es/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  302. package/dist/es/src/components/CdsTimePicker/api/CdsTimePicker.props.js +32 -8
  303. package/dist/es/src/components/CdsTimePicker/api/CdsTimePicker.props.js.map +1 -1
  304. package/dist/es/src/components/CdsToast/CdsToast.css +0 -18
  305. package/dist/es/src/components/CdsToast/api/CdsToast.props.js +48 -12
  306. package/dist/es/src/components/CdsToast/api/CdsToast.props.js.map +1 -1
  307. package/dist/es/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.js +4 -1
  308. package/dist/es/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  309. package/dist/es/src/components/CdsToastQueue/api/CdsToastQueue.props.js +28 -7
  310. package/dist/es/src/components/CdsToastQueue/api/CdsToastQueue.props.js.map +1 -1
  311. package/dist/es/src/components/CdsToggle/CdsToggle.css +0 -18
  312. package/dist/es/src/components/CdsToggle/api/CdsToggle.props.js +12 -3
  313. package/dist/es/src/components/CdsToggle/api/CdsToggle.props.js.map +1 -1
  314. package/dist/es/src/components/CdsToolbar/CdsToolbar.css +0 -18
  315. package/dist/es/src/components/CdsToolbar/api/CdsToolbar.props.js +20 -5
  316. package/dist/es/src/components/CdsToolbar/api/CdsToolbar.props.js.map +1 -1
  317. package/dist/es/src/components/CdsTooltip/CdsTooltip.css +0 -18
  318. package/dist/es/src/components/CdsTooltip/api/CdsTooltip.props.js +20 -5
  319. package/dist/es/src/components/CdsTooltip/api/CdsTooltip.props.js.map +1 -1
  320. package/dist/es/src/components/CdsTree/CdsTree.css +0 -18
  321. package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js +16 -0
  322. package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  323. package/dist/es/src/components/CdsTree/composable/tree.js +28 -0
  324. package/dist/es/src/components/CdsTree/composable/tree.js.map +1 -1
  325. package/dist/es/src/components/CdsTree/composable/treeNode.js +68 -2
  326. package/dist/es/src/components/CdsTree/composable/treeNode.js.map +1 -1
  327. package/dist/es/src/components/CdsUploader/CdsUploader.css +0 -18
  328. package/dist/es/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.js +8 -0
  329. package/dist/es/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  330. package/dist/es/src/components/CdsUploader/composables/useUpload.js +104 -26
  331. package/dist/es/src/components/CdsUploader/composables/useUpload.js.map +1 -1
  332. package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.css +0 -18
  333. package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.js +8 -0
  334. package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.js.map +1 -1
  335. package/dist/es/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.js +12 -3
  336. package/dist/es/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.js.map +1 -1
  337. package/dist/es/src/components/index.js +2 -1
  338. package/dist/es/src/components/index.js.map +1 -1
  339. package/dist/es/src/composables/useAppearance/useAppearance.js +4 -1
  340. package/dist/es/src/composables/useAppearance/useAppearance.js.map +1 -1
  341. package/dist/es/src/composables/useColor/useColor.js +20 -5
  342. package/dist/es/src/composables/useColor/useColor.js.map +1 -1
  343. package/dist/es/src/composables/useDatetime/useDatetime.js +3 -0
  344. package/dist/es/src/composables/useDatetime/useDatetime.js.map +1 -1
  345. package/dist/es/src/composables/useDelay/useDelay.js +8 -2
  346. package/dist/es/src/composables/useDelay/useDelay.js.map +1 -1
  347. package/dist/es/src/composables/useDimensions/useDimensions.js +24 -6
  348. package/dist/es/src/composables/useDimensions/useDimensions.js.map +1 -1
  349. package/dist/es/src/composables/useDirection/useDirection.js +4 -1
  350. package/dist/es/src/composables/useDirection/useDirection.js.map +1 -1
  351. package/dist/es/src/composables/useDisabled/useDisabled.js +4 -1
  352. package/dist/es/src/composables/useDisabled/useDisabled.js.map +1 -1
  353. package/dist/es/src/composables/useDisplay/useDisplay.js +2 -0
  354. package/dist/es/src/composables/useDisplay/useDisplay.js.map +1 -1
  355. package/dist/es/src/composables/useFilter/useFilter.js +20 -0
  356. package/dist/es/src/composables/useFilter/useFilter.js.map +1 -1
  357. package/dist/es/src/composables/useFocus/useFocus.js +12 -3
  358. package/dist/es/src/composables/useFocus/useFocus.js.map +1 -1
  359. package/dist/es/src/composables/useFocus/useFocusTrap.js +8 -2
  360. package/dist/es/src/composables/useFocus/useFocusTrap.js.map +1 -1
  361. package/dist/es/src/composables/useForm/useForm.js +45 -0
  362. package/dist/es/src/composables/useForm/useForm.js.map +1 -1
  363. package/dist/es/src/composables/useGroup/useGroup.js +24 -6
  364. package/dist/es/src/composables/useGroup/useGroup.js.map +1 -1
  365. package/dist/es/src/composables/useGroup/useGroupItem.js +8 -2
  366. package/dist/es/src/composables/useGroup/useGroupItem.js.map +1 -1
  367. package/dist/es/src/composables/useItems/useItems.js +32 -8
  368. package/dist/es/src/composables/useItems/useItems.js.map +1 -1
  369. package/dist/es/src/composables/useLayout/context.js.map +1 -1
  370. package/dist/es/src/composables/useLayout/useLayout.js +24 -6
  371. package/dist/es/src/composables/useLayout/useLayout.js.map +1 -1
  372. package/dist/es/src/composables/useLazy/useLazy.js +1 -0
  373. package/dist/es/src/composables/useLazy/useLazy.js.map +1 -1
  374. package/dist/es/src/composables/useLoader/useLoader.js +4 -1
  375. package/dist/es/src/composables/useLoader/useLoader.js.map +1 -1
  376. package/dist/es/src/composables/useLocation/useLocation.js +4 -1
  377. package/dist/es/src/composables/useLocation/useLocation.js.map +1 -1
  378. package/dist/es/src/composables/useNested/useNested.js +44 -11
  379. package/dist/es/src/composables/useNested/useNested.js.map +1 -1
  380. package/dist/es/src/composables/usePosition/usePosition.js +4 -0
  381. package/dist/es/src/composables/usePosition/usePosition.js.map +1 -1
  382. package/dist/es/src/composables/useReadonly/useReadonly.js +4 -1
  383. package/dist/es/src/composables/useReadonly/useReadonly.js.map +1 -1
  384. package/dist/es/src/composables/useReveal/useReveal.js +4 -1
  385. package/dist/es/src/composables/useReveal/useReveal.js.map +1 -1
  386. package/dist/es/src/composables/useRouter/useRouter.js +16 -4
  387. package/dist/es/src/composables/useRouter/useRouter.js.map +1 -1
  388. package/dist/es/src/composables/useSize/useSize.js +4 -1
  389. package/dist/es/src/composables/useSize/useSize.js.map +1 -1
  390. package/dist/es/src/composables/useStatus/useStatus.js +4 -1
  391. package/dist/es/src/composables/useStatus/useStatus.js.map +1 -1
  392. package/dist/es/src/composables/useText/useText.js +8 -2
  393. package/dist/es/src/composables/useText/useText.js.map +1 -1
  394. package/dist/es/src/composables/useTheme/useTheme.js +4 -1
  395. package/dist/es/src/composables/useTheme/useTheme.js.map +1 -1
  396. package/dist/es/src/composables/useTransition/useTransition.js +4 -1
  397. package/dist/es/src/composables/useTransition/useTransition.js.map +1 -1
  398. package/dist/es/src/composables/useValidation/useValidation.js +26 -6
  399. package/dist/es/src/composables/useValidation/useValidation.js.map +1 -1
  400. package/dist/es/src/composables/useVirtual/useVirtual.js +12 -3
  401. package/dist/es/src/composables/useVirtual/useVirtual.js.map +1 -1
  402. package/dist/es/src/core/defineComponent.js +4 -1
  403. package/dist/es/src/core/defineComponent.js.map +1 -1
  404. package/dist/es/src/themes/lumaDark.js +8 -4
  405. package/dist/es/src/themes/lumaDark.js.map +1 -1
  406. package/dist/es/src/utils/date/date.js +4 -4
  407. package/dist/es/src/utils/date/date.js.map +1 -1
  408. package/dist/esm-node/entry.css +0 -18
  409. package/dist/esm-node/entry.mjs +3 -2
  410. package/dist/esm-node/src/cds.mjs +1 -1
  411. package/dist/esm-node/src/components/CdsApp/CdsApp.css +0 -18
  412. package/dist/esm-node/src/components/CdsApp/api/CdsApp.props.mjs +1 -0
  413. package/dist/esm-node/src/components/CdsAutocomplete/CdsAutocomplete.css +0 -18
  414. package/dist/esm-node/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.mjs +20 -5
  415. package/dist/esm-node/src/components/CdsAutocomplete/api/CdsAutocomplete.props.mjs +9 -2
  416. package/dist/esm-node/src/components/CdsAvatar/CdsAvatar.css +0 -18
  417. package/dist/esm-node/src/components/CdsAvatar/api/CdsAvatar.props.mjs +20 -5
  418. package/dist/esm-node/src/components/CdsBadge/CdsBadge.css +0 -18
  419. package/dist/esm-node/src/components/CdsBadge/api/CdsBadge.props.mjs +37 -9
  420. package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbs.css +0 -18
  421. package/dist/esm-node/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.mjs +32 -8
  422. package/dist/esm-node/src/components/CdsButton/CdsButton.css +0 -18
  423. package/dist/esm-node/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.mjs +4 -1
  424. package/dist/esm-node/src/components/CdsButton/api/CdsButton.props.mjs +28 -7
  425. package/dist/esm-node/src/components/CdsButtonGroup/CdsButtonGroup.css +0 -18
  426. package/dist/esm-node/src/components/CdsButtonGroup/api/CdsButtonGroup.props.mjs +4 -1
  427. package/dist/esm-node/src/components/CdsButtonToggle/CdsButtonToggle.css +0 -18
  428. package/dist/esm-node/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.mjs +20 -5
  429. package/dist/esm-node/src/components/CdsCard/CdsCard.css +0 -18
  430. package/dist/esm-node/src/components/CdsCard/CdsCard.vue_vue_type_script_setup_true_lang.mjs +1 -1
  431. package/dist/esm-node/src/components/CdsCard/CdsCardActions.vue_vue_type_script_setup_true_lang.mjs +1 -1
  432. package/dist/esm-node/src/components/CdsCard/CdsCardDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
  433. package/dist/esm-node/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.mjs +21 -6
  434. package/dist/esm-node/src/components/CdsCard/CdsCardItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
  435. package/dist/esm-node/src/components/CdsCard/CdsCardSubtitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
  436. package/dist/esm-node/src/components/CdsCard/CdsCardText.vue_vue_type_script_setup_true_lang.mjs +1 -1
  437. package/dist/esm-node/src/components/CdsCard/CdsCardTitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
  438. package/dist/esm-node/src/components/CdsCard/api/CdsCard.constants.mjs +9 -9
  439. package/dist/esm-node/src/components/CdsCard/api/CdsCard.props.mjs +85 -21
  440. package/dist/esm-node/src/components/CdsCard/index.mjs +1 -1
  441. package/dist/esm-node/src/components/CdsCarousel/CdsCarousel.css +0 -18
  442. package/dist/esm-node/src/components/CdsCarousel/api/CdsCarousel.props.mjs +36 -9
  443. package/dist/esm-node/src/components/CdsCheckbox/CdsCheckbox.css +0 -18
  444. package/dist/esm-node/src/components/CdsCheckboxButton/CdsCheckboxButton.css +0 -18
  445. package/dist/esm-node/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.mjs +8 -2
  446. package/dist/esm-node/src/components/CdsCombobox/CdsCombobox.css +0 -18
  447. package/dist/esm-node/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.mjs +24 -6
  448. package/dist/esm-node/src/components/CdsCombobox/api/CdsCombobox.props.mjs +13 -3
  449. package/dist/esm-node/src/components/CdsCounter/CdsCounter.css +0 -18
  450. package/dist/esm-node/src/components/CdsCounter/api/CdsCounter.props.mjs +12 -3
  451. package/dist/esm-node/src/components/CdsDateInput/CdsDateInput.css +0 -18
  452. package/dist/esm-node/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.mjs +8 -0
  453. package/dist/esm-node/src/components/CdsDateInput/api/CdsDateInput.props.mjs +31 -7
  454. package/dist/esm-node/src/components/CdsDatePicker/CdsDatePicker.css +0 -18
  455. package/dist/esm-node/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.mjs +20 -0
  456. package/dist/esm-node/src/components/CdsDatePicker/api/CdsDatePicker.props.mjs +64 -15
  457. package/dist/esm-node/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.mjs +5 -0
  458. package/dist/esm-node/src/components/CdsDescription/CdsDescription.css +0 -18
  459. package/dist/esm-node/src/components/CdsDivider/CdsDivider.css +0 -18
  460. package/dist/esm-node/src/components/CdsDivider/api/CdsDivider.props.mjs +33 -8
  461. package/dist/esm-node/src/components/CdsDrawer/CdsDrawer.css +0 -18
  462. package/dist/esm-node/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.mjs +4 -0
  463. package/dist/esm-node/src/components/CdsDrawer/api/CdsDrawer.props.mjs +32 -8
  464. package/dist/esm-node/src/components/CdsEmptyState/CdsEmptyState.css +0 -18
  465. package/dist/esm-node/src/components/CdsEmptyState/api/CdsEmptyState.props.mjs +33 -8
  466. package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.mjs +16 -4
  467. package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.mjs +8 -2
  468. package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanels.css +0 -18
  469. package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.mjs +8 -2
  470. package/dist/esm-node/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.mjs +38 -9
  471. package/dist/esm-node/src/components/CdsField/CdsField.css +0 -18
  472. package/dist/esm-node/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.mjs +13 -3
  473. package/dist/esm-node/src/components/CdsField/api/CdsField.props.mjs +56 -14
  474. package/dist/esm-node/src/components/CdsField/composables/useAutocomplete.mjs +1 -0
  475. package/dist/esm-node/src/components/CdsFileInput/CdsFileInput.css +0 -18
  476. package/dist/esm-node/src/components/CdsFileInput/api/CdsFileInput.props.mjs +40 -10
  477. package/dist/esm-node/src/components/CdsFileInput/composables/useFileFilter.mjs +4 -1
  478. package/dist/esm-node/src/components/CdsFileUpload/CdsFileUpload.css +0 -18
  479. package/dist/esm-node/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.mjs +4 -0
  480. package/dist/esm-node/src/components/CdsFileUpload/api/CdsFileUpload.props.mjs +85 -21
  481. package/dist/esm-node/src/components/CdsFooter/CdsFooter.css +0 -18
  482. package/dist/esm-node/src/components/CdsForm/CdsForm.css +0 -18
  483. package/dist/esm-node/src/components/CdsForm/api/CdsForm.props.mjs +8 -2
  484. package/dist/esm-node/src/components/CdsFunctionalButton/CdsFunctionalButton.css +0 -18
  485. package/dist/esm-node/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.mjs +4 -1
  486. package/dist/esm-node/src/components/CdsGrid/api/CdsGrid.props.mjs +40 -10
  487. package/dist/esm-node/src/components/CdsGrid/components/CSSGrid.css +0 -18
  488. package/dist/esm-node/src/components/CdsGrid/components/FlexGrid.css +0 -18
  489. package/dist/esm-node/src/components/CdsHeader/CdsHeader.css +0 -18
  490. package/dist/esm-node/src/components/CdsHighlight/CdsHighlight.css +0 -18
  491. package/dist/esm-node/src/components/CdsHighlight/api/CdsHighlight.props.mjs +32 -8
  492. package/dist/esm-node/src/components/CdsIcon/CdsIcon.css +0 -18
  493. package/dist/esm-node/src/components/CdsIcon/api/CdsIcon.props.mjs +17 -4
  494. package/dist/esm-node/src/components/CdsImage/CdsImage.css +0 -18
  495. package/dist/esm-node/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.mjs +20 -0
  496. package/dist/esm-node/src/components/CdsImage/api/CdsImage.props.mjs +64 -16
  497. package/dist/esm-node/src/components/CdsInput/CdsInput.css +0 -18
  498. package/dist/esm-node/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.mjs +44 -11
  499. package/dist/esm-node/src/components/CdsInput/api/CdsInput.props.mjs +48 -12
  500. package/dist/esm-node/src/components/CdsLabel/CdsLabel.css +0 -18
  501. package/dist/esm-node/src/components/CdsLabel/api/CdsLabel.props.mjs +4 -0
  502. package/dist/esm-node/src/components/CdsLayout/CdsLayout.css +0 -18
  503. package/dist/esm-node/src/components/CdsLayout/api/CdsLayout.props.mjs +5 -1
  504. package/dist/esm-node/src/components/CdsLink/CdsLink.css +0 -18
  505. package/dist/esm-node/src/components/CdsLink/api/CdsLink.props.mjs +4 -1
  506. package/dist/esm-node/src/components/CdsList/CdsList.css +0 -18
  507. package/dist/esm-node/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.mjs +24 -6
  508. package/dist/esm-node/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.mjs +4 -1
  509. package/dist/esm-node/src/components/CdsList/CdsListItem.css +0 -18
  510. package/dist/esm-node/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.mjs +28 -7
  511. package/dist/esm-node/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.mjs +8 -2
  512. package/dist/esm-node/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.mjs +8 -2
  513. package/dist/esm-node/src/components/CdsList/api/CdsList.props.mjs +144 -36
  514. package/dist/esm-node/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.mjs +8 -2
  515. package/dist/esm-node/src/components/CdsList/index.mjs +5 -2
  516. package/dist/esm-node/src/components/CdsLoader/CdsLoader.css +0 -18
  517. package/dist/esm-node/src/components/CdsLoader/api/CdsLoader.props.mjs +12 -3
  518. package/dist/esm-node/src/components/CdsMain/CdsMain.css +0 -18
  519. package/dist/esm-node/src/components/CdsMenu/CdsMenu.css +0 -18
  520. package/dist/esm-node/src/components/CdsMenu/api/CdsMenu.props.mjs +8 -2
  521. package/dist/esm-node/src/components/CdsMessages/CdsMessages.css +0 -18
  522. package/dist/esm-node/src/components/CdsMessages/api/CdsMessages.props.mjs +12 -3
  523. package/dist/esm-node/src/components/CdsModal/CdsModal.css +0 -18
  524. package/dist/esm-node/src/components/CdsModal/api/CdsModal.props.mjs +8 -2
  525. package/dist/esm-node/src/components/CdsNotification/CdsNotification.css +0 -18
  526. package/dist/esm-node/src/components/CdsNotification/api/CdsNotification.props.mjs +28 -7
  527. package/dist/esm-node/src/components/CdsNotificationAlert/CdsNotificationAlert.css +0 -18
  528. package/dist/esm-node/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.mjs +28 -7
  529. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.css +0 -18
  530. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.mjs +20 -5
  531. package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.props.mjs +52 -13
  532. package/dist/esm-node/src/components/CdsOverlay/CdsOverlay.css +0 -18
  533. package/dist/esm-node/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.mjs +44 -11
  534. package/dist/esm-node/src/components/CdsOverlay/api/CdsOverlay.props.mjs +36 -8
  535. package/dist/esm-node/src/components/CdsOverlay/composables/useActivator.mjs +25 -6
  536. package/dist/esm-node/src/components/CdsOverlay/composables/useLocationStrategies.mjs +18 -4
  537. package/dist/esm-node/src/components/CdsOverlay/composables/useScrollStrategies.mjs +4 -1
  538. package/dist/esm-node/src/components/CdsPage/CdsPage.css +0 -18
  539. package/dist/esm-node/src/components/CdsPage/api/CdsPage.props.mjs +5 -1
  540. package/dist/esm-node/src/components/CdsPagination/CdsPagination.css +0 -18
  541. package/dist/esm-node/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.mjs +16 -0
  542. package/dist/esm-node/src/components/CdsPagination/api/CdsPagination.props.mjs +84 -21
  543. package/dist/esm-node/src/components/CdsProgressBar/CdsProgressBar.css +0 -18
  544. package/dist/esm-node/src/components/CdsProgressBar/api/CdsProgressBar.props.mjs +64 -16
  545. package/dist/esm-node/src/components/CdsProgressBar/composables/useChunk.mjs +4 -0
  546. package/dist/esm-node/src/components/CdsProgressCircle/CdsProgressCircle.css +0 -18
  547. package/dist/esm-node/src/components/CdsProgressCircle/api/CdsProgressCircle.props.mjs +28 -7
  548. package/dist/esm-node/src/components/CdsRadio/CdsRadio.css +0 -18
  549. package/dist/esm-node/src/components/CdsRadioGroup/CdsRadioGroup.css +0 -18
  550. package/dist/esm-node/src/components/CdsRadioGroup/api/CdsRadioGroup.props.mjs +16 -4
  551. package/dist/esm-node/src/components/CdsResponsive/CdsResponsive.css +0 -18
  552. package/dist/esm-node/src/components/CdsResponsive/api/CdsResponsive.props.mjs +12 -3
  553. package/dist/esm-node/src/components/CdsSelect/CdsSelect.css +0 -18
  554. package/dist/esm-node/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.mjs +16 -4
  555. package/dist/esm-node/src/components/CdsSelect/api/CdsSelect.props.mjs +4 -1
  556. package/dist/esm-node/src/components/CdsSelect/composables/useMenuActivator.mjs +8 -2
  557. package/dist/esm-node/src/components/CdsSelect/composables/useSelect.mjs +69 -17
  558. package/dist/esm-node/src/components/CdsSelectionControl/CdsSelectionControl.css +0 -18
  559. package/dist/esm-node/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.mjs +8 -0
  560. package/dist/esm-node/src/components/CdsSelectionControl/api/CdsSelectionControl.props.mjs +12 -3
  561. package/dist/esm-node/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.css +0 -18
  562. package/dist/esm-node/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.mjs +44 -11
  563. package/dist/esm-node/src/components/CdsSkeletonLoader/CdsSkeletonLoader.css +0 -18
  564. package/dist/esm-node/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.mjs +16 -4
  565. package/dist/esm-node/src/components/CdsSlideGroup/CdsSlideGroup.css +0 -18
  566. package/dist/esm-node/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.mjs +24 -6
  567. package/dist/esm-node/src/components/CdsSlideGroup/api/CdsSlideGroup.props.mjs +25 -6
  568. package/dist/esm-node/src/components/CdsSlideView/CdsSlideView.css +0 -18
  569. package/dist/esm-node/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.mjs +4 -0
  570. package/dist/esm-node/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.mjs +5 -1
  571. package/dist/esm-node/src/components/CdsSlideView/api/CdsSlideView.props.mjs +44 -0
  572. package/dist/esm-node/src/components/CdsStages/CdsStages.css +0 -18
  573. package/dist/esm-node/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.mjs +8 -0
  574. package/dist/esm-node/src/components/CdsStages/api/CdsStages.props.mjs +8 -2
  575. package/dist/esm-node/src/components/CdsStatus/CdsStatus.css +0 -18
  576. package/dist/esm-node/src/components/CdsStatus/api/CdsStatus.props.mjs +4 -1
  577. package/dist/esm-node/src/components/CdsSteps/CdsSteps.css +0 -18
  578. package/dist/esm-node/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.mjs +8 -0
  579. package/dist/esm-node/src/components/CdsSteps/api/CdsSteps.props.mjs +44 -11
  580. package/dist/esm-node/src/components/CdsSurface/CdsSurface.css +0 -18
  581. package/dist/esm-node/src/components/CdsSurface/api/CdsSurface.props.mjs +4 -1
  582. package/dist/esm-node/src/components/CdsTable/CdsTable.css +0 -18
  583. package/dist/esm-node/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.mjs +4 -0
  584. package/dist/esm-node/src/components/CdsTable/composable/table.mjs +47 -0
  585. package/dist/esm-node/src/components/CdsTabs/CdsTabs.css +0 -18
  586. package/dist/esm-node/src/components/CdsTabs/api/CdsTabs.props.mjs +56 -0
  587. package/dist/esm-node/src/components/CdsTag/CdsTag.css +0 -18
  588. package/dist/esm-node/src/components/CdsTag/api/CdsTag.props.mjs +72 -18
  589. package/dist/esm-node/src/components/CdsTagGroup/CdsTagGroup.css +0 -18
  590. package/dist/esm-node/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.mjs +20 -5
  591. package/dist/esm-node/src/components/CdsTagGroup/api/CdsTagGroup.props.mjs +11 -3
  592. package/dist/esm-node/src/components/CdsTextArea/CdsTextArea.css +0 -18
  593. package/dist/esm-node/src/components/CdsTextArea/api/CdsTextArea.props.mjs +52 -13
  594. package/dist/esm-node/src/components/CdsTextInput/CdsTextInput.css +0 -18
  595. package/dist/esm-node/src/components/CdsTextInput/api/CdsTextInput.props.mjs +40 -10
  596. package/dist/esm-node/src/components/CdsTimePicker/CdsTimePicker.css +0 -18
  597. package/dist/esm-node/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.mjs +24 -0
  598. package/dist/esm-node/src/components/CdsTimePicker/api/CdsTimePicker.props.mjs +32 -8
  599. package/dist/esm-node/src/components/CdsToast/CdsToast.css +0 -18
  600. package/dist/esm-node/src/components/CdsToast/api/CdsToast.props.mjs +48 -12
  601. package/dist/esm-node/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.mjs +4 -1
  602. package/dist/esm-node/src/components/CdsToastQueue/api/CdsToastQueue.props.mjs +28 -7
  603. package/dist/esm-node/src/components/CdsToggle/CdsToggle.css +0 -18
  604. package/dist/esm-node/src/components/CdsToggle/api/CdsToggle.props.mjs +12 -3
  605. package/dist/esm-node/src/components/CdsToolbar/CdsToolbar.css +0 -18
  606. package/dist/esm-node/src/components/CdsToolbar/api/CdsToolbar.props.mjs +20 -5
  607. package/dist/esm-node/src/components/CdsTooltip/CdsTooltip.css +0 -18
  608. package/dist/esm-node/src/components/CdsTooltip/api/CdsTooltip.props.mjs +20 -5
  609. package/dist/esm-node/src/components/CdsTree/CdsTree.css +0 -18
  610. package/dist/esm-node/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.mjs +16 -0
  611. package/dist/esm-node/src/components/CdsTree/composable/tree.mjs +28 -0
  612. package/dist/esm-node/src/components/CdsTree/composable/treeNode.mjs +68 -2
  613. package/dist/esm-node/src/components/CdsUploader/CdsUploader.css +0 -18
  614. package/dist/esm-node/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.mjs +8 -0
  615. package/dist/esm-node/src/components/CdsUploader/composables/useUpload.mjs +104 -26
  616. package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScroll.css +0 -18
  617. package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.mjs +8 -0
  618. package/dist/esm-node/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.mjs +12 -3
  619. package/dist/esm-node/src/components/index.mjs +2 -1
  620. package/dist/esm-node/src/composables/useAppearance/useAppearance.mjs +4 -1
  621. package/dist/esm-node/src/composables/useColor/useColor.mjs +20 -5
  622. package/dist/esm-node/src/composables/useDatetime/useDatetime.mjs +3 -0
  623. package/dist/esm-node/src/composables/useDelay/useDelay.mjs +8 -2
  624. package/dist/esm-node/src/composables/useDimensions/useDimensions.mjs +24 -6
  625. package/dist/esm-node/src/composables/useDirection/useDirection.mjs +4 -1
  626. package/dist/esm-node/src/composables/useDisabled/index.mjs +1 -1
  627. package/dist/esm-node/src/composables/useDisabled/useDisabled.mjs +4 -1
  628. package/dist/esm-node/src/composables/useDisplay/useDisplay.mjs +2 -0
  629. package/dist/esm-node/src/composables/useFilter/useFilter.mjs +20 -0
  630. package/dist/esm-node/src/composables/useFocus/useFocus.mjs +12 -3
  631. package/dist/esm-node/src/composables/useFocus/useFocusTrap.mjs +8 -2
  632. package/dist/esm-node/src/composables/useForm/useForm.mjs +45 -0
  633. package/dist/esm-node/src/composables/useGroup/useGroup.mjs +24 -6
  634. package/dist/esm-node/src/composables/useGroup/useGroupItem.mjs +8 -2
  635. package/dist/esm-node/src/composables/useItems/useItems.mjs +32 -8
  636. package/dist/esm-node/src/composables/useLayout/useLayout.mjs +24 -6
  637. package/dist/esm-node/src/composables/useLazy/useLazy.mjs +1 -0
  638. package/dist/esm-node/src/composables/useLoader/index.mjs +1 -1
  639. package/dist/esm-node/src/composables/useLoader/useLoader.mjs +4 -1
  640. package/dist/esm-node/src/composables/useLocation/index.mjs +1 -1
  641. package/dist/esm-node/src/composables/useLocation/useLocation.mjs +4 -1
  642. package/dist/esm-node/src/composables/useNested/useNested.mjs +44 -11
  643. package/dist/esm-node/src/composables/usePosition/usePosition.mjs +4 -0
  644. package/dist/esm-node/src/composables/useReadonly/useReadonly.mjs +4 -1
  645. package/dist/esm-node/src/composables/useReveal/useReveal.mjs +4 -1
  646. package/dist/esm-node/src/composables/useRouter/index.mjs +1 -1
  647. package/dist/esm-node/src/composables/useRouter/useRouter.mjs +16 -4
  648. package/dist/esm-node/src/composables/useSize/useSize.mjs +4 -1
  649. package/dist/esm-node/src/composables/useStatus/useStatus.mjs +4 -1
  650. package/dist/esm-node/src/composables/useText/useText.mjs +8 -2
  651. package/dist/esm-node/src/composables/useTheme/useTheme.mjs +4 -1
  652. package/dist/esm-node/src/composables/useTransition/useTransition.mjs +4 -1
  653. package/dist/esm-node/src/composables/useValidation/useValidation.mjs +26 -6
  654. package/dist/esm-node/src/composables/useVirtual/useVirtual.mjs +12 -3
  655. package/dist/esm-node/src/core/defineComponent.mjs +4 -1
  656. package/dist/esm-node/src/themes/lumaDark.mjs +8 -4
  657. package/dist/esm-node/src/utils/date/date.mjs +4 -4
  658. package/dist/iife/entry.js +9 -9
  659. package/dist/styles/common.css +1 -1
  660. package/dist/styles/core.css +1 -1
  661. package/dist/styles/tailwind.css +1 -1
  662. package/dist/styles.css +2 -2
  663. package/dist/types/components/CdsApp/api/CdsApp.types.d.ts +4 -1
  664. package/dist/types/components/CdsAutocomplete/CdsAutocomplete.vue.d.ts +59 -20
  665. package/dist/types/components/CdsAutocomplete/api/CdsAutocomplete.types.d.ts +60 -15
  666. package/dist/types/components/CdsAutocomplete/index.d.ts +57 -30
  667. package/dist/types/components/CdsAvatar/api/CdsAvatar.types.d.ts +8 -2
  668. package/dist/types/components/CdsBadge/api/CdsBadge.types.d.ts +8 -2
  669. package/dist/types/components/CdsBreadcrumbs/api/CdsBreadcrumbs.types.d.ts +28 -7
  670. package/dist/types/components/CdsButton/CdsButton.vue.d.ts +4 -1
  671. package/dist/types/components/CdsButton/api/CdsButton.types.d.ts +20 -5
  672. package/dist/types/components/CdsButtonGroup/api/CdsButtonGroup.types.d.ts +4 -1
  673. package/dist/types/components/CdsButtonToggle/CdsButtonToggle.vue.d.ts +20 -5
  674. package/dist/types/components/CdsButtonToggle/api/CdsButtonToggle.types.d.ts +8 -2
  675. package/dist/types/components/CdsCard/CdsCardGroup.vue.d.ts +20 -5
  676. package/dist/types/components/CdsCard/api/CdsCard.types.d.ts +68 -17
  677. package/dist/types/components/CdsCarousel/api/CdsCarousel.types.d.ts +12 -3
  678. package/dist/types/components/CdsCheckbox/api/CdsCheckbox.types.d.ts +8 -2
  679. package/dist/types/components/CdsCheckboxButton/api/CdsCheckboxButton.types.d.ts +8 -0
  680. package/dist/types/components/CdsCombobox/CdsCombobox.vue.d.ts +67 -22
  681. package/dist/types/components/CdsCombobox/api/CdsCombobox.types.d.ts +60 -15
  682. package/dist/types/components/CdsCombobox/index.d.ts +57 -30
  683. package/dist/types/components/CdsCounter/api/CdsCounter.types.d.ts +4 -0
  684. package/dist/types/components/CdsDateInput/CdsDateInput.vue.d.ts +35 -10
  685. package/dist/types/components/CdsDateInput/api/CdsDateInput.types.d.ts +44 -11
  686. package/dist/types/components/CdsDateInput/index.d.ts +57 -30
  687. package/dist/types/components/CdsDatePicker/CdsDatePicker.vue.d.ts +20 -0
  688. package/dist/types/components/CdsDatePicker/api/CdsDatePicker.types.d.ts +28 -7
  689. package/dist/types/components/CdsDefaultsProvider/api/CdsDefaultsProvider.types.d.ts +1 -0
  690. package/dist/types/components/CdsDescription/api/CdsDescription.types.d.ts +4 -0
  691. package/dist/types/components/CdsDivider/CdsDivider.vue.d.ts +4 -0
  692. package/dist/types/components/CdsDrawer/CdsDrawer.vue.d.ts +4 -0
  693. package/dist/types/components/CdsDrawer/api/CdsDrawer.types.d.ts +24 -6
  694. package/dist/types/components/CdsEmptyState/api/CdsEmptyState.types.d.ts +36 -9
  695. package/dist/types/components/CdsExpandablePanel/CdsExpandablePanel.vue.d.ts +16 -4
  696. package/dist/types/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue.d.ts +8 -2
  697. package/dist/types/components/CdsExpandablePanel/CdsExpandablePanels.vue.d.ts +8 -2
  698. package/dist/types/components/CdsExpandablePanel/api/CdsExpandablePanel.types.d.ts +56 -14
  699. package/dist/types/components/CdsField/CdsField.vue.d.ts +18 -2
  700. package/dist/types/components/CdsField/api/CdsField.types.d.ts +33 -7
  701. package/dist/types/components/CdsField/index.d.ts +5 -0
  702. package/dist/types/components/CdsFileInput/CdsFileInput.vue.d.ts +5 -2
  703. package/dist/types/components/CdsFileInput/api/CdsFileInput.types.d.ts +28 -7
  704. package/dist/types/components/CdsFileInput/index.d.ts +15 -6
  705. package/dist/types/components/CdsFileUpload/CdsFileUpload.vue.d.ts +8 -0
  706. package/dist/types/components/CdsFileUpload/api/CdsFileUpload.types.d.ts +116 -29
  707. package/dist/types/components/CdsFooter/api/CdsFooter.types.d.ts +12 -3
  708. package/dist/types/components/CdsForm/api/CdsForm.types.d.ts +20 -5
  709. package/dist/types/components/CdsFunctionalButton/api/CdsFunctionalButton.types.d.ts +8 -2
  710. package/dist/types/components/CdsGrid/api/CdsGrid.types.d.ts +12 -0
  711. package/dist/types/components/CdsHeader/api/CdsHeader.types.d.ts +12 -3
  712. package/dist/types/components/CdsIcon/api/CdsIcon.types.d.ts +4 -1
  713. package/dist/types/components/CdsImage/CdsImage.vue.d.ts +20 -0
  714. package/dist/types/components/CdsImage/api/CdsImage.props.d.ts +4 -1
  715. package/dist/types/components/CdsImage/api/CdsImage.types.d.ts +28 -7
  716. package/dist/types/components/CdsInput/CdsInput.vue.d.ts +44 -11
  717. package/dist/types/components/CdsInput/api/CdsInput.types.d.ts +36 -9
  718. package/dist/types/components/CdsLabel/api/CdsLabel.types.d.ts +4 -0
  719. package/dist/types/components/CdsLayout/api/CdsLayout.types.d.ts +16 -4
  720. package/dist/types/components/CdsLink/api/CdsLink.types.d.ts +8 -2
  721. package/dist/types/components/CdsList/CdsList.vue.d.ts +24 -6
  722. package/dist/types/components/CdsList/CdsListGroup.vue.d.ts +4 -1
  723. package/dist/types/components/CdsList/CdsListItem.vue.d.ts +28 -7
  724. package/dist/types/components/CdsList/CdsListItemAction.vue.d.ts +20 -5
  725. package/dist/types/components/CdsList/CdsListItemDivider.vue.d.ts +4 -0
  726. package/dist/types/components/CdsList/CdsListItemMedia.vue.d.ts +20 -5
  727. package/dist/types/components/CdsList/CdsListSubheader.vue.d.ts +4 -1
  728. package/dist/types/components/CdsList/api/CdsList.types.d.ts +84 -21
  729. package/dist/types/components/CdsList/components/ListChildren.vue.d.ts +16 -4
  730. package/dist/types/components/CdsList/components/ListGroupActivator.vue.d.ts +4 -1
  731. package/dist/types/components/CdsList/index.d.ts +76 -0
  732. package/dist/types/components/CdsMain/api/CdsMain.types.d.ts +4 -1
  733. package/dist/types/components/CdsMenu/api/CdsMenu.types.d.ts +12 -0
  734. package/dist/types/components/CdsMessages/api/CdsMessages.types.d.ts +8 -0
  735. package/dist/types/components/CdsModal/api/CdsModal.types.d.ts +12 -3
  736. package/dist/types/components/CdsNotification/api/CdsNotification.types.d.ts +36 -9
  737. package/dist/types/components/CdsNotificationAlert/api/CdsNotificationAlert.types.d.ts +40 -10
  738. package/dist/types/components/CdsOtpInput/CdsOtpInput.vue.d.ts +20 -5
  739. package/dist/types/components/CdsOtpInput/api/CdsOtpInput.types.d.ts +36 -9
  740. package/dist/types/components/CdsOverlay/CdsOverlay.vue.d.ts +44 -11
  741. package/dist/types/components/CdsOverlay/api/CdsOverlay.types.d.ts +28 -3
  742. package/dist/types/components/CdsPage/api/CdsPage.types.d.ts +4 -1
  743. package/dist/types/components/CdsPagination/CdsPagination.vue.d.ts +16 -0
  744. package/dist/types/components/CdsPagination/api/CdsPagination.types.d.ts +44 -11
  745. package/dist/types/components/CdsProgressBar/api/CdsProgressBar.types.d.ts +8 -0
  746. package/dist/types/components/CdsProgressCircle/api/CdsProgressCircle.types.d.ts +4 -1
  747. package/dist/types/components/CdsRadioGroup/api/CdsRadioGroup.types.d.ts +8 -2
  748. package/dist/types/components/CdsResponsive/api/CdsResponsive.types.d.ts +8 -2
  749. package/dist/types/components/CdsSelect/CdsSelect.vue.d.ts +51 -18
  750. package/dist/types/components/CdsSelect/api/CdsSelect.types.d.ts +60 -15
  751. package/dist/types/components/CdsSelect/index.d.ts +57 -30
  752. package/dist/types/components/CdsSelectionControl/CdsSelectionControl.vue.d.ts +8 -0
  753. package/dist/types/components/CdsSelectionControl/api/CdsSelectionControl.types.d.ts +12 -3
  754. package/dist/types/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.types.d.ts +8 -0
  755. package/dist/types/components/CdsSkeletonLoader/api/CdsSkeletonLoader.types.d.ts +4 -1
  756. package/dist/types/components/CdsSlideGroup/CdsSlideGroup.vue.d.ts +24 -6
  757. package/dist/types/components/CdsSlideGroup/api/CdsSlideGroup.types.d.ts +20 -5
  758. package/dist/types/components/CdsSlideView/CdsSlideView.vue.d.ts +4 -0
  759. package/dist/types/components/CdsSlideView/CdsSlideViewItem.vue.d.ts +4 -0
  760. package/dist/types/components/CdsSlideView/api/CdsSlideView.types.d.ts +31 -0
  761. package/dist/types/components/CdsStages/CdsStages.vue.d.ts +8 -0
  762. package/dist/types/components/CdsStatus/api/CdsStatus.types.d.ts +4 -1
  763. package/dist/types/components/CdsSteps/CdsSteps.vue.d.ts +8 -0
  764. package/dist/types/components/CdsSteps/api/CdsSteps.types.d.ts +72 -18
  765. package/dist/types/components/CdsSurface/api/CdsSurface.types.d.ts +4 -1
  766. package/dist/types/components/CdsTable/CdsTable.vue.d.ts +4 -0
  767. package/dist/types/components/CdsTable/api/CdsTable.types.d.ts +96 -24
  768. package/dist/types/components/CdsTabs/api/CdsTabs.types.d.ts +32 -0
  769. package/dist/types/components/CdsTag/api/CdsTag.types.d.ts +64 -16
  770. package/dist/types/components/CdsTagGroup/CdsTagGroup.vue.d.ts +20 -5
  771. package/dist/types/components/CdsTagGroup/api/CdsTagGroup.types.d.ts +8 -2
  772. package/dist/types/components/CdsTextArea/CdsTextArea.vue.d.ts +5 -2
  773. package/dist/types/components/CdsTextArea/api/CdsTextArea.types.d.ts +24 -6
  774. package/dist/types/components/CdsTextArea/index.d.ts +15 -6
  775. package/dist/types/components/CdsTextInput/CdsTextInput.vue.d.ts +7 -4
  776. package/dist/types/components/CdsTextInput/api/CdsTextInput.types.d.ts +44 -11
  777. package/dist/types/components/CdsTextInput/index.d.ts +20 -11
  778. package/dist/types/components/CdsTimePicker/CdsTimePicker.vue.d.ts +24 -0
  779. package/dist/types/components/CdsTimePicker/api/CdsTimePicker.types.d.ts +4 -1
  780. package/dist/types/components/CdsToast/api/CdsToast.types.d.ts +40 -10
  781. package/dist/types/components/CdsToastQueue/CdsToastQueue.vue.d.ts +4 -1
  782. package/dist/types/components/CdsToastQueue/api/CdsToastQueue.types.d.ts +20 -5
  783. package/dist/types/components/CdsToggle/api/CdsToggle.types.d.ts +28 -7
  784. package/dist/types/components/CdsToolbar/api/CdsToolbar.types.d.ts +8 -2
  785. package/dist/types/components/CdsTooltip/api/CdsTooltip.types.d.ts +4 -0
  786. package/dist/types/components/CdsTree/CdsTree.vue.d.ts +16 -0
  787. package/dist/types/components/CdsTree/api/CdsTree.types.d.ts +84 -21
  788. package/dist/types/components/CdsUploader/CdsUploader.vue.d.ts +8 -0
  789. package/dist/types/components/CdsUploader/api/CdsUploader.types.d.ts +68 -17
  790. package/dist/types/components/CdsVirtualScroll/CdsVirtualScroll.vue.d.ts +8 -0
  791. package/dist/types/components/CdsVirtualScroll/api/CdsVirtualScroll.types.d.ts +20 -5
  792. package/dist/types/composables/useForm/useForm.d.ts +33 -0
  793. package/dist/types/composables/useLayout/context.d.ts +61 -0
  794. package/dist/types/composables/useNested/useNested.d.ts +8 -2
  795. package/dist/types/entry.d.ts +1 -0
  796. package/dist/types/themes/lumaDark.d.ts +4 -4
  797. package/dist/types/utils/date/date.d.ts +1 -1
  798. package/llms/llms-components.txt +8861 -10675
  799. package/llms/llms-full.txt +10309 -11489
  800. package/llms/llms-guides.txt +1400 -738
  801. package/llms/llms-migration.txt +18 -46
  802. package/llms/llms-tokens.txt +55 -55
  803. package/llms/llms.txt +110 -109
  804. package/package.json +24 -11
  805. package/src/components/CdsApp/CdsApp.scss +43 -0
  806. package/src/components/CdsApp/styles/_CdsApp.variables.scss +2 -0
  807. package/src/components/CdsAutocomplete/CdsAutocomplete.scss +158 -0
  808. package/src/components/CdsAutocomplete/styles/_CdsAutocomplete.variables.scss +9 -0
  809. package/src/components/CdsAvatar/CdsAvatar.scss +42 -0
  810. package/src/components/CdsAvatar/styles/_CdsAvatar.variables.scss +22 -0
  811. package/src/components/CdsBadge/CdsBadge.scss +69 -0
  812. package/src/components/CdsBadge/styles/_CdsBadge.variables.scss +22 -0
  813. package/src/components/CdsBreadcrumbs/CdsBreadcrumbs.scss +49 -0
  814. package/src/components/CdsBreadcrumbs/styles/_CdsBreadcrumbs.variables.scss +14 -0
  815. package/src/components/CdsButton/CdsButton.scss +138 -0
  816. package/src/components/CdsButton/styles/_CdsButton.mixins.scss +76 -0
  817. package/src/components/CdsButton/styles/_CdsButton.variables.scss +180 -0
  818. package/src/components/CdsButtonGroup/CdsButtonGroup.scss +62 -0
  819. package/src/components/CdsButtonGroup/styles/_CdsButtonGroup.variables.scss +7 -0
  820. package/src/components/CdsButtonToggle/CdsButtonToggle.scss +19 -0
  821. package/src/components/CdsButtonToggle/styles/_CdsButtonToggle.variables.scss +3 -0
  822. package/src/components/CdsCard/CdsCard.scss +194 -0
  823. package/src/components/CdsCard/styles/CdsCard.variables.scss +36 -0
  824. package/src/components/CdsCarousel/CdsCarousel.scss +76 -0
  825. package/src/components/CdsCarousel/styles/_CdsCarousel.variables.scss +7 -0
  826. package/src/components/CdsCheckbox/CdsCheckbox.scss +20 -0
  827. package/src/components/CdsCheckbox/styles/_CdsCheckbox.mixins.scss +24 -0
  828. package/src/components/CdsCheckbox/styles/_CdsCheckbox.variables.scss +8 -0
  829. package/src/components/CdsCheckboxButton/CdsCheckboxButton.scss +78 -0
  830. package/src/components/CdsCheckboxButton/styles/_CdsCheckboxButton.variables.scss +46 -0
  831. package/src/components/CdsCombobox/CdsCombobox.scss +158 -0
  832. package/src/components/CdsCombobox/styles/_CdsCombobox.variables.scss +9 -0
  833. package/src/components/CdsCounter/CdsCounter.scss +11 -0
  834. package/src/components/CdsCounter/styles/_CdsCounter.variables.scss +1 -0
  835. package/src/components/CdsDateInput/CdsDateInput.scss +28 -0
  836. package/src/components/CdsDateInput/styles/_CdsDateInput.variables.scss +6 -0
  837. package/src/components/CdsDatePicker/CdsDatePicker.scss +574 -0
  838. package/src/components/CdsDatePicker/styles/_CdsDatePicker.variables.scss +56 -0
  839. package/src/components/CdsDescription/CdsDescription.scss +12 -0
  840. package/src/components/CdsDescription/styles/_CdsDescription.variables.scss +1 -0
  841. package/src/components/CdsDivider/CdsDivider.scss +83 -0
  842. package/src/components/CdsDivider/styles/_CdsDivider.variables.scss +28 -0
  843. package/src/components/CdsDrawer/CdsDrawer.scss +144 -0
  844. package/src/components/CdsDrawer/styles/_CdsDrawer.variables.scss +17 -0
  845. package/src/components/CdsEmptyState/CdsEmptyState.scss +103 -0
  846. package/src/components/CdsEmptyState/styles/_CdsEmptyState.variables.scss +15 -0
  847. package/src/components/CdsExpandablePanel/CdsExpandablePanel.scss +221 -0
  848. package/src/components/CdsExpandablePanel/styles/_CdsExpandablePanel.variables.scss +24 -0
  849. package/src/components/CdsField/CdsField.scss +209 -0
  850. package/src/components/CdsField/styles/_CdsField.mixins.scss +39 -0
  851. package/src/components/CdsField/styles/_CdsField.variables.scss +84 -0
  852. package/src/components/CdsFileInput/CdsFileInput.scss +40 -0
  853. package/src/components/CdsFileInput/styles/_CdsFileInput.variables.scss +5 -0
  854. package/src/components/CdsFileUpload/CdsFileUpload.scss +173 -0
  855. package/src/components/CdsFileUpload/styles/_CdsFileUpload.variables.scss +40 -0
  856. package/src/components/CdsFooter/CdsFooter.scss +36 -0
  857. package/src/components/CdsFooter/styles/_CdsFooter.variables.scss +4 -0
  858. package/src/components/CdsForm/CdsForm.scss +24 -0
  859. package/src/components/CdsForm/styles/_CdsForm.variables.scss +5 -0
  860. package/src/components/CdsFunctionalButton/CdsFunctionalButton.scss +49 -0
  861. package/src/components/CdsFunctionalButton/styles/_CdsFunctionalButton.variables.scss +25 -0
  862. package/src/components/CdsGrid/components/CSSGrid.scss +3 -0
  863. package/src/components/CdsGrid/components/FlexGrid.scss +3 -0
  864. package/src/components/CdsHeader/CdsHeader.scss +36 -0
  865. package/src/components/CdsHeader/styles/_CdsHeader.variables.scss +3 -0
  866. package/src/components/CdsHighlight/CdsHighlight.scss +16 -0
  867. package/src/components/CdsHighlight/styles/_CdsHighlight.variables.scss +8 -0
  868. package/src/components/CdsIcon/CdsIcon.scss +54 -0
  869. package/src/components/CdsIcon/styles/_CdsIcon.variables.scss +20 -0
  870. package/src/components/CdsImage/CdsImage.scss +62 -0
  871. package/src/components/CdsImage/styles/_CdsImage.variables.scss +4 -0
  872. package/src/components/CdsInput/CdsInput.scss +108 -0
  873. package/src/components/CdsInput/styles/_CdsInput.mixins.scss +54 -0
  874. package/src/components/CdsInput/styles/_CdsInput.variables.scss +98 -0
  875. package/src/components/CdsLabel/CdsLabel.scss +23 -0
  876. package/src/components/CdsLabel/styles/_CdsLabel.variables.scss +2 -0
  877. package/src/components/CdsLayout/CdsLayout.scss +61 -0
  878. package/src/components/CdsLayout/styles/_CdsLayout.variables.scss +2 -0
  879. package/src/components/CdsLink/CdsLink.scss +33 -0
  880. package/src/components/CdsLink/styles/_CdsLink.variables.scss +6 -0
  881. package/src/components/CdsList/CdsList.scss +104 -0
  882. package/src/components/CdsList/CdsListItem.scss +330 -0
  883. package/src/components/CdsList/styles/_CdsList.variables.scss +115 -0
  884. package/src/components/CdsLoader/CdsLoader.scss +78 -0
  885. package/src/components/CdsLoader/styles/_CdsLoader.mixins.scss +9 -0
  886. package/src/components/CdsLoader/styles/_CdsLoader.variables.scss +40 -0
  887. package/src/components/CdsMain/CdsMain.scss +7 -0
  888. package/src/components/CdsMenu/CdsMenu.scss +33 -0
  889. package/src/components/CdsMenu/styles/_CdsMenu.variables.scss +11 -0
  890. package/src/components/CdsMessages/CdsMessages.scss +20 -0
  891. package/src/components/CdsMessages/styles/_CdsMessages.variables.scss +5 -0
  892. package/src/components/CdsModal/CdsModal.scss +106 -0
  893. package/src/components/CdsModal/styles/_CdsModal.variables.scss +12 -0
  894. package/src/components/CdsNotification/CdsNotification.scss +99 -0
  895. package/src/components/CdsNotification/styles/_CdsNotification.variables.scss +13 -0
  896. package/src/components/CdsNotificationAlert/CdsNotificationAlert.scss +48 -0
  897. package/src/components/CdsNotificationAlert/styles/_CdsNotificationAlert.variables.scss +5 -0
  898. package/src/components/CdsOtpInput/CdsOtpInput.scss +192 -0
  899. package/src/components/CdsOtpInput/styles/_CdsOtpInput.variables.scss +31 -0
  900. package/src/components/CdsOverlay/CdsOverlay.scss +74 -0
  901. package/src/components/CdsOverlay/styles/_CdsOverlay.variables.scss +2 -0
  902. package/src/components/CdsPage/CdsPage.scss +9 -0
  903. package/src/components/CdsPagination/CdsPagination.scss +69 -0
  904. package/src/components/CdsPagination/styles/_CdsPagination.variables.scss +10 -0
  905. package/src/components/CdsProgressBar/CdsProgressBar.scss +285 -0
  906. package/src/components/CdsProgressBar/styles/_CdsProgressBar.variables.scss +23 -0
  907. package/src/components/CdsProgressCircle/CdsProgressCircle.scss +116 -0
  908. package/src/components/CdsProgressCircle/styles/_CdsProgressCircle.variables.scss +21 -0
  909. package/src/components/CdsRadio/CdsRadio.scss +42 -0
  910. package/src/components/CdsRadio/styles/_CdsRadio.variables.scss +26 -0
  911. package/src/components/CdsRadioGroup/CdsRadioGroup.scss +24 -0
  912. package/src/components/CdsRadioGroup/styles/_CdsRadioGroup.variables.scss +4 -0
  913. package/src/components/CdsResponsive/CdsResponsive.scss +33 -0
  914. package/src/components/CdsResponsive/styles/_CdsResponsive.variables.scss +3 -0
  915. package/src/components/CdsSelect/CdsSelect.scss +149 -0
  916. package/src/components/CdsSelect/styles/_CdsSelect.variables.scss +7 -0
  917. package/src/components/CdsSelectionControl/CdsSelectionControl.scss +104 -0
  918. package/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.scss +17 -0
  919. package/src/components/CdsSkeletonLoader/CdsSkeletonLoader.scss +292 -0
  920. package/src/components/CdsSkeletonLoader/styles/_CdsSkeletonLoader.variables.scss +52 -0
  921. package/src/components/CdsSlideGroup/CdsSlideGroup.scss +63 -0
  922. package/src/components/CdsSlideGroup/styles/_CdsSlideGroup.variables.scss +1 -0
  923. package/src/components/CdsSlideView/CdsSlideView.scss +183 -0
  924. package/src/components/CdsSlideView/styles/_CdsSlideView.variables.scss +4 -0
  925. package/src/components/CdsStages/CdsStages.scss +109 -0
  926. package/src/components/CdsStages/styles/_CdsStages.variables.scss +17 -0
  927. package/src/components/CdsStatus/CdsStatus.scss +49 -0
  928. package/src/components/CdsStatus/styles/_CdsStatus.variables.scss +7 -0
  929. package/src/components/CdsSteps/CdsSteps.scss +216 -0
  930. package/src/components/CdsSteps/styles/_CdsSteps.variables.scss +42 -0
  931. package/src/components/CdsSurface/CdsSurface.scss +16 -0
  932. package/src/components/CdsTable/CdsTable.scss +1140 -0
  933. package/src/components/CdsTable/styles/_CdsTable.mixins.scss +86 -0
  934. package/src/components/CdsTable/styles/_CdsTable.variables.scss +82 -0
  935. package/src/components/CdsTabs/CdsTabs.scss +94 -0
  936. package/src/components/CdsTabs/styles/_CdsTabs.variables.scss +30 -0
  937. package/src/components/CdsTag/CdsTag.scss +141 -0
  938. package/src/components/CdsTag/styles/_CdsTag.variables.scss +57 -0
  939. package/src/components/CdsTagGroup/CdsTagGroup.scss +32 -0
  940. package/src/components/CdsTagGroup/styles/_CdsTagGroup.variables.scss +8 -0
  941. package/src/components/CdsTextArea/CdsTextArea.scss +129 -0
  942. package/src/components/CdsTextArea/styles/_CdsTextArea.variables.scss +6 -0
  943. package/src/components/CdsTextInput/CdsTextInput.scss +84 -0
  944. package/src/components/CdsTextInput/styles/_CdsTextInput.variables.scss +7 -0
  945. package/src/components/CdsTimePicker/CdsTimePicker.scss +93 -0
  946. package/src/components/CdsTimePicker/styles/_CdsTimePicker.variables.scss +13 -0
  947. package/src/components/CdsToast/CdsToast.scss +207 -0
  948. package/src/components/CdsToast/styles/_CdsToast.variables.scss +16 -0
  949. package/src/components/CdsToggle/CdsToggle.scss +192 -0
  950. package/src/components/CdsToggle/styles/_CdsToggle.variables.scss +81 -0
  951. package/src/components/CdsToolbar/CdsToolbar.scss +72 -0
  952. package/src/components/CdsToolbar/styles/_CdsToolbar.variables.scss +3 -0
  953. package/src/components/CdsTooltip/CdsTooltip.scss +111 -0
  954. package/src/components/CdsTooltip/styles/_CdsTooltip.variables.scss +15 -0
  955. package/src/components/CdsTree/CdsTree.scss +290 -0
  956. package/src/components/CdsTree/styles/_CdsTree.variables.scss +29 -0
  957. package/src/components/CdsUploader/CdsUploader.scss +109 -0
  958. package/src/components/CdsUploader/styles/_CdsUploader.variables.scss +16 -0
  959. package/src/components/CdsVirtualScroll/CdsVirtualScroll.scss +16 -0
  960. package/src/components/CdsVirtualScroll/styles/_CdsVirtualScroll.variables.scss +3 -0
  961. package/src/styles/component-settings.scss +75 -0
  962. package/src/styles/generic/_fonts.scss +2 -2
  963. package/src/styles/settings/_index.scss +6 -0
  964. package/src/styles/tools/_absolute.sass +9 -0
  965. package/src/styles/tools/_border.sass +10 -0
  966. package/src/styles/tools/_motion.scss +11 -17
  967. package/src/styles/utilities/grid/_config.scss +0 -1
  968. package/src/themes/lumaDark.ts +8 -4
  969. package/dist/styles/breakpoints.css +0 -1
  970. package/dist/styles/index.css +0 -1
@@ -10,27 +10,60 @@ import { m as multipleOpenStrategy, s as singleOpenStrategy, l as listOpenStrate
10
10
  import { c as classicSelectStrategy, b as branchSelectStrategy, t as trunkSelectStrategy, i as independentSingleSelectStrategy, a as independentSelectStrategy, l as leafSelectStrategy, d as leafSingleSelectStrategy } from "./strategies/selectStrategies.js";
11
11
  const defineNestedProps = propsFactory(
12
12
  {
13
- /** Разрешает активацию элементов (выделение текущего элемента без режима выбора) */
13
+ /**
14
+ * Разрешает активацию элементов (выделение текущего элемента без режима выбора)
15
+ * @en Allows items to be activated (highlighting the current item without selection mode)
16
+ */
14
17
  activatable: Boolean,
15
- /** Разрешает выбор элементов */
18
+ /**
19
+ * Разрешает выбор элементов
20
+ * @en Allows items to be selected
21
+ */
16
22
  selectable: Boolean,
17
- /** Стратегия активации элементов (одиночная, множественная и т.д.) */
23
+ /**
24
+ * Стратегия активации элементов (одиночная, множественная и т.д.)
25
+ * @en Activation strategy for items (single, multiple, and so on)
26
+ */
18
27
  activeStrategy: [String, Function, Object],
19
- /** Стратегия выбора элементов (`single-leaf`, `leaf`, `independent`, `classic` и т.д.) */
28
+ /**
29
+ * Стратегия выбора элементов (`single-leaf`, `leaf`, `independent`, `classic` и т.д.)
30
+ * @en Selection strategy for items (`single-leaf`, `leaf`, `independent`, `classic`, and so on)
31
+ */
20
32
  selectStrategy: [String, Function, Object],
21
- /** Стратегия раскрытия групп (`list`, `single`, `multiple`) */
33
+ /**
34
+ * Стратегия раскрытия групп (`list`, `single`, `multiple`)
35
+ * @en Expansion strategy for groups (`list`, `single`, `multiple`)
36
+ */
22
37
  openStrategy: [String, Object],
23
- /** Идентификаторы раскрытых групп (поддерживает v-model через `update:opened`) */
38
+ /**
39
+ * Идентификаторы раскрытых групп (поддерживает v-model через `update:opened`)
40
+ * @en Identifiers of the expanded groups (supports v-model through `update:opened`)
41
+ */
24
42
  opened: null,
25
- /** Идентификаторы активных элементов (поддерживает v-model через `update:activated`) */
43
+ /**
44
+ * Идентификаторы активных элементов (поддерживает v-model через `update:activated`)
45
+ * @en Identifiers of the active items (supports v-model through `update:activated`)
46
+ */
26
47
  activated: null,
27
- /** Идентификаторы выбранных элементов (поддерживает v-model через `update:selected`) */
48
+ /**
49
+ * Идентификаторы выбранных элементов (поддерживает v-model через `update:selected`)
50
+ * @en Identifiers of the selected items (supports v-model through `update:selected`)
51
+ */
28
52
  selected: null,
29
- /** Делает выбор обязательным: запрещает снимать выбор с последнего элемента */
53
+ /**
54
+ * Делает выбор обязательным: запрещает снимать выбор с последнего элемента
55
+ * @en Makes the selection mandatory: forbids clearing the selection of the last item
56
+ */
30
57
  mandatory: Boolean,
31
- /** Делает выбор обязательным: запрещает снимать выбор с последнего элемента */
58
+ /**
59
+ * Делает выбор обязательным: запрещает снимать выбор с последнего элемента
60
+ * @en Makes the selection mandatory: forbids clearing the selection of the last item
61
+ */
32
62
  required: Boolean,
33
- /** Стратегия регистрации элементов: `render` — по мере рендеринга, иначе единоразово */
63
+ /**
64
+ * Стратегия регистрации элементов: `render` — по мере рендеринга, иначе единоразово
65
+ * @en Item registration strategy: `render` — as they are rendered, otherwise all at once
66
+ */
34
67
  itemsRegistration: {
35
68
  type: String,
36
69
  default: "render"
@@ -1 +1 @@
1
- {"version":3,"file":"useNested.js","sources":["../../../../../src/composables/useNested/useNested.ts"],"sourcesContent":["import type { ListItem } from '@cds/composables/useItems';\nimport { getCurrentInstance, propsFactory, useProxyModel } from '@cds/core';\nimport { error, throttle } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n inject,\n type MaybeRefOrGetter,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n provide,\n type Ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n unref,\n watch\n} from 'vue';\n\nimport { CdsNestedSymbol, emptyNested } from './internal/useNested.constants';\nimport type {\n ActiveStrategyProp,\n ItemsRegistrationType,\n NestedProvide,\n OpenStrategyProp,\n SelectStrategyProp\n} from './internal/useNested.types';\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy\n} from './strategies/activeStrategies';\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './strategies/openStrategies';\nimport {\n branchSelectStrategy,\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy\n} from './strategies/selectStrategies';\n\nexport const defineNestedProps = propsFactory(\n {\n /** Разрешает активацию элементов (выделение текущего элемента без режима выбора) */\n activatable: Boolean,\n /** Разрешает выбор элементов */\n selectable: Boolean,\n /** Стратегия активации элементов (одиночная, множественная и т.д.) */\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n /** Стратегия выбора элементов (`single-leaf`, `leaf`, `independent`, `classic` и т.д.) */\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n /** Стратегия раскрытия групп (`list`, `single`, `multiple`) */\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n /** Идентификаторы раскрытых групп (поддерживает v-model через `update:opened`) */\n opened: null,\n /** Идентификаторы активных элементов (поддерживает v-model через `update:activated`) */\n activated: null,\n /** Идентификаторы выбранных элементов (поддерживает v-model через `update:selected`) */\n selected: null,\n /** Делает выбор обязательным: запрещает снимать выбор с последнего элемента */\n mandatory: Boolean,\n /** Делает выбор обязательным: запрещает снимать выбор с последнего элемента */\n required: Boolean,\n /** Стратегия регистрации элементов: `render` — по мере рендеринга, иначе единоразово */\n itemsRegistration: {\n type: String as PropType<ItemsRegistrationType>,\n default: 'render'\n }\n },\n 'nested'\n);\n\nexport interface NestedProps extends ExtractPublicPropTypes<ReturnType<typeof defineNestedProps>> {}\n\n/**\n * Provides functionality to manage nested structures of items, including operations like activation, selection,\n * and opening or collapsing sub-items. It handles interactions with hierarchical data structures and maintains\n * internal mappings for children, parents, and disabled states of items.\n *\n * @param {NestedProps} props - Properties that define the nested behavior and configurations.\n * @param {Object} param1 - Additional configuration options.\n * @param {Ref<ListItem[]>} param1.items - Reactive reference to the list of items in the nested structure.\n * @param {MaybeRefOrGetter<boolean>} param1.returnObject - Controls whether the item raw object or its value is returned.\n * @param {MaybeRefOrGetter<boolean>} param1.scrollToActive - Determines if the nested structure should scroll to the active item.\n * @return {NestedProvide} - An object containing methods and properties to manage nested items, including registration,\n * unregistration, and updating states like selection or opening.\n */\nexport function useNested(\n props: NestedProps,\n {\n items,\n returnObject,\n scrollToActive\n }: {\n items: Ref<ListItem[]>;\n returnObject: MaybeRefOrGetter<boolean>;\n scrollToActive: MaybeRefOrGetter<boolean>;\n }\n) {\n let isUnmounted = false;\n const children = shallowRef(new Map<unknown, unknown[]>());\n const parents = shallowRef(new Map<unknown, unknown>());\n const disabled = shallowRef(new Set<unknown>());\n\n const vm = getCurrentInstance('nested');\n\n const opened = useProxyModel(\n props,\n 'opened',\n props.opened,\n (value) => new Set(Array.isArray(value) ? value.map((item) => toRaw(item)) : value),\n (value) => [...value.values()]\n );\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'trunk':\n return trunkSelectStrategy(props.mandatory);\n case 'branch':\n return branchSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n\n const activated = useProxyModel(\n props,\n 'activated',\n props.activated,\n (value) => unref(activeStrategy).in(value, unref(children), unref(parents)),\n (value) => unref(activeStrategy).out(value, unref(children), unref(parents))\n );\n const selected = useProxyModel(\n props,\n 'selected',\n props.selected,\n (value) => unref(selectStrategy).in(value, unref(children), unref(parents), unref(disabled)),\n (value) => unref(selectStrategy).out(value, unref(children), unref(parents))\n );\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n const nodeIds = new Set<unknown>();\n\n const itemsUpdatePropagation = throttle(() => {\n nextTick(() => {\n children.value = new Map(children.value);\n parents.value = new Map(parents.value);\n });\n }, 100);\n\n watch(\n () => [items.value, toValue(returnObject)],\n () => {\n if (props.itemsRegistration === 'props') {\n updateInternalMaps();\n }\n },\n { immediate: true }\n );\n\n function getPath(id: unknown) {\n const path: unknown[] = [];\n let parent: unknown = toRaw(id);\n\n while (parent !== undefined) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n\n return path;\n }\n\n function updateInternalMaps() {\n const _parents = new Map();\n const _children = new Map();\n const _disabled = new Set();\n\n const getValue = toValue(returnObject) ? (item: ListItem) => toRaw(item.raw) : (item: ListItem) => item.value;\n\n const stack = [...items.value];\n let i = 0;\n while (i < stack.length) {\n const item = stack[i++];\n const itemValue = getValue(item);\n\n if (item.children) {\n const childValues = [];\n for (const child of item.children) {\n const childValue = getValue(child);\n _parents.set(childValue, itemValue);\n childValues.push(childValue);\n stack.push(child);\n }\n _children.set(itemValue, childValues);\n }\n\n if (item.props.disabled) {\n _disabled.add(itemValue);\n }\n }\n\n children.value = _children;\n parents.value = _parents;\n disabled.value = _disabled;\n }\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n scrollToActive: toRef(() => toValue(scrollToActive)),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n\n return arr;\n }),\n itemsRegistration: toRef(() => props.itemsRegistration),\n register: (id, parentId, isDisabled, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n error(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId);\n\n isDisabled && disabled.value.add(id);\n isGroup && children.value.set(id, []);\n\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n itemsUpdatePropagation();\n },\n unregister: (id) => {\n if (isUnmounted) return;\n\n nodeIds.delete(id);\n children.value.delete(id);\n disabled.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(\n parent,\n list.filter((child) => child !== id)\n );\n }\n parents.value.delete(id);\n itemsUpdatePropagation();\n },\n updateDisabled: (id, isDisabled) => {\n if (isDisabled) {\n disabled.value.add(id);\n } else {\n disabled.value.delete(id);\n }\n // classic selection requires refresh to re-evaluate on/off/indeterminate but\n // currently it is only run for selection interactions, so it will set new disabled\n // to \"off\" and the visual state becomes out of sync\n // -- selected.value = new Map(selected.value)\n // it is not clear if the framework should un-select when disabled changed to true\n // more discussion is needed\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event });\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event });\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n disabled: disabled.value,\n event\n });\n newSelected && (selected.value = newSelected);\n\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event });\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated;\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n }\n },\n children,\n parents,\n disabled,\n getPath\n }\n };\n\n provide(CdsNestedSymbol, nested);\n\n return nested.root;\n}\n\n/**\n * Function `useNestedItem` provides a mechanism to manage and interact with a nested item in a hierarchical structure.\n * This function is designed to work within a system dependent on reactivity and provides integration with a parent context.\n *\n * @param {MaybeRefOrGetter<unknown>} id - A unique identifier for the nested item. It can be a reactive reference, a getter, or a raw value.\n * @param {MaybeRefOrGetter<boolean>} isDisabled - A flag indicating whether the nested item is disabled. It supports reactivity.\n * @param {boolean} isGroup - A boolean value specifying if the nested item acts as a group parent.\n * @returns {Object} - Returns an item object containing reactive properties and methods to interact with the nested item and its hierarchy.\n *\n * Reactive State and Methods:\n * - `id`: The unique identifier of the nested item, resolved reactively.\n * - `open(open: boolean, e: Event)`: Toggles the open state for this item.\n * - `openOnSelect(open: boolean, e?: Event)`: Toggles the open state based on selection changes.\n * - `isOpen`: A computed property reflecting whether the item is currently open.\n * - `parent`: A computed property referring to the item's immediate parent in the hierarchy.\n * - `activate(activated: boolean, e?: Event)`: Activates or deactivates the item.\n * - `isActivated`: A computed property reflecting whether the item is currently activated.\n * - `scrollToActive`: Scrolls to the active item in the hierarchy.\n * - `select(selected: boolean, e?: Event)`: Selects or deselects the item.\n * - `isSelected`: A computed property indicating if the item is selected.\n * - `isIndeterminate`: A computed property indicating if the item selection is in an indeterminate state.\n * - `isLeaf`: A computed property indicating if the item is a leaf node (i.e., without children).\n * - `isGroupActivator`: A flag inherited from the parent, used for group-specific activation.\n *\n * Lifecycle Management:\n * - Registers the nested item with its parent context upon mounting unless `isGroupActivator` or specific parent configuration prevents registration.\n * - Unregisters the nested item from its parent context upon unmounting unless `isGroupActivator` or specific parent configuration prevents it.\n * - Tracks updates to `id` or `isDisabled` and notifies the parent context to ensure consistency.\n *\n * Dependency Injection:\n * - Injects a parent context using the symbol `CdsNestedSymbol`.\n * - Provides the current item to descendant contexts if `isGroup` is true.\n */\nexport const useNestedItem = (\n id: MaybeRefOrGetter<unknown>,\n isDisabled: MaybeRefOrGetter<boolean>,\n isGroup: boolean\n) => {\n const parent = inject(CdsNestedSymbol, emptyNested);\n\n const uidSymbol = Symbol('nested item');\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id));\n return idValue !== undefined ? idValue : uidSymbol;\n });\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n scrollToActive: parent.root.scrollToActive,\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n\n onBeforeMount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);\n });\n });\n\n onBeforeUnmount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n parent.root.unregister(computedId.value);\n });\n\n watch(computedId, (val, oldVal) => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n parent.root.unregister(oldVal);\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup);\n });\n });\n\n watch(\n () => toValue(isDisabled),\n (val) => {\n parent.root.updateDisabled(computedId.value, val);\n }\n );\n\n isGroup && provide(CdsNestedSymbol, item);\n\n return item;\n};\n\n/**\n * A composable function that sets up and provides a nested group activator context.\n *\n * This function injects the current context associated with the CdsNestedSymbol and merges it with a\n * new property `isGroupActivator` set to `true`. The updated context is provided back\n * for nested components to access. This is typically used in hierarchical component structures\n * to activate nested group functionality.\n *\n * Dependencies:\n * - `inject` is used to retrieve the parent context of the CdsNestedSymbol.\n * - `provide` is used to supply the updated context to the component tree.\n *\n * Context Symbols:\n * - `CdsNestedSymbol` represents the unique symbol key used for nested data manipulation.\n * - `emptyNested` is the default context provided when no parent context is available.\n */\nexport const useNestedGroupActivator = () => {\n const parent = inject(CdsNestedSymbol, emptyNested);\n\n provide(CdsNestedSymbol, { ...parent, isGroupActivator: true });\n};\n"],"names":["value"],"mappings":"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"}
1
+ {"version":3,"file":"useNested.js","sources":["../../../../../src/composables/useNested/useNested.ts"],"sourcesContent":["import type { ListItem } from '@cds/composables/useItems';\nimport { getCurrentInstance, propsFactory, useProxyModel } from '@cds/core';\nimport { error, throttle } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n inject,\n type MaybeRefOrGetter,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n provide,\n type Ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n unref,\n watch\n} from 'vue';\n\nimport { CdsNestedSymbol, emptyNested } from './internal/useNested.constants';\nimport type {\n ActiveStrategyProp,\n ItemsRegistrationType,\n NestedProvide,\n OpenStrategyProp,\n SelectStrategyProp\n} from './internal/useNested.types';\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy\n} from './strategies/activeStrategies';\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './strategies/openStrategies';\nimport {\n branchSelectStrategy,\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy\n} from './strategies/selectStrategies';\n\nexport const defineNestedProps = propsFactory(\n {\n /**\n * Разрешает активацию элементов (выделение текущего элемента без режима выбора)\n * @en Allows items to be activated (highlighting the current item without selection mode)\n */\n activatable: Boolean,\n /**\n * Разрешает выбор элементов\n * @en Allows items to be selected\n */\n selectable: Boolean,\n /**\n * Стратегия активации элементов (одиночная, множественная и т.д.)\n * @en Activation strategy for items (single, multiple, and so on)\n */\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n /**\n * Стратегия выбора элементов (`single-leaf`, `leaf`, `independent`, `classic` и т.д.)\n * @en Selection strategy for items (`single-leaf`, `leaf`, `independent`, `classic`, and so on)\n */\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n /**\n * Стратегия раскрытия групп (`list`, `single`, `multiple`)\n * @en Expansion strategy for groups (`list`, `single`, `multiple`)\n */\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n /**\n * Идентификаторы раскрытых групп (поддерживает v-model через `update:opened`)\n * @en Identifiers of the expanded groups (supports v-model through `update:opened`)\n */\n opened: null,\n /**\n * Идентификаторы активных элементов (поддерживает v-model через `update:activated`)\n * @en Identifiers of the active items (supports v-model through `update:activated`)\n */\n activated: null,\n /**\n * Идентификаторы выбранных элементов (поддерживает v-model через `update:selected`)\n * @en Identifiers of the selected items (supports v-model through `update:selected`)\n */\n selected: null,\n /**\n * Делает выбор обязательным: запрещает снимать выбор с последнего элемента\n * @en Makes the selection mandatory: forbids clearing the selection of the last item\n */\n mandatory: Boolean,\n /**\n * Делает выбор обязательным: запрещает снимать выбор с последнего элемента\n * @en Makes the selection mandatory: forbids clearing the selection of the last item\n */\n required: Boolean,\n /**\n * Стратегия регистрации элементов: `render` — по мере рендеринга, иначе единоразово\n * @en Item registration strategy: `render` — as they are rendered, otherwise all at once\n */\n itemsRegistration: {\n type: String as PropType<ItemsRegistrationType>,\n default: 'render'\n }\n },\n 'nested'\n);\n\nexport interface NestedProps extends ExtractPublicPropTypes<ReturnType<typeof defineNestedProps>> {}\n\n/**\n * Provides functionality to manage nested structures of items, including operations like activation, selection,\n * and opening or collapsing sub-items. It handles interactions with hierarchical data structures and maintains\n * internal mappings for children, parents, and disabled states of items.\n *\n * @param {NestedProps} props - Properties that define the nested behavior and configurations.\n * @param {Object} param1 - Additional configuration options.\n * @param {Ref<ListItem[]>} param1.items - Reactive reference to the list of items in the nested structure.\n * @param {MaybeRefOrGetter<boolean>} param1.returnObject - Controls whether the item raw object or its value is returned.\n * @param {MaybeRefOrGetter<boolean>} param1.scrollToActive - Determines if the nested structure should scroll to the active item.\n * @return {NestedProvide} - An object containing methods and properties to manage nested items, including registration,\n * unregistration, and updating states like selection or opening.\n */\nexport function useNested(\n props: NestedProps,\n {\n items,\n returnObject,\n scrollToActive\n }: {\n items: Ref<ListItem[]>;\n returnObject: MaybeRefOrGetter<boolean>;\n scrollToActive: MaybeRefOrGetter<boolean>;\n }\n) {\n let isUnmounted = false;\n const children = shallowRef(new Map<unknown, unknown[]>());\n const parents = shallowRef(new Map<unknown, unknown>());\n const disabled = shallowRef(new Set<unknown>());\n\n const vm = getCurrentInstance('nested');\n\n const opened = useProxyModel(\n props,\n 'opened',\n props.opened,\n (value) => new Set(Array.isArray(value) ? value.map((item) => toRaw(item)) : value),\n (value) => [...value.values()]\n );\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'trunk':\n return trunkSelectStrategy(props.mandatory);\n case 'branch':\n return branchSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n\n const activated = useProxyModel(\n props,\n 'activated',\n props.activated,\n (value) => unref(activeStrategy).in(value, unref(children), unref(parents)),\n (value) => unref(activeStrategy).out(value, unref(children), unref(parents))\n );\n const selected = useProxyModel(\n props,\n 'selected',\n props.selected,\n (value) => unref(selectStrategy).in(value, unref(children), unref(parents), unref(disabled)),\n (value) => unref(selectStrategy).out(value, unref(children), unref(parents))\n );\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n const nodeIds = new Set<unknown>();\n\n const itemsUpdatePropagation = throttle(() => {\n nextTick(() => {\n children.value = new Map(children.value);\n parents.value = new Map(parents.value);\n });\n }, 100);\n\n watch(\n () => [items.value, toValue(returnObject)],\n () => {\n if (props.itemsRegistration === 'props') {\n updateInternalMaps();\n }\n },\n { immediate: true }\n );\n\n function getPath(id: unknown) {\n const path: unknown[] = [];\n let parent: unknown = toRaw(id);\n\n while (parent !== undefined) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n\n return path;\n }\n\n function updateInternalMaps() {\n const _parents = new Map();\n const _children = new Map();\n const _disabled = new Set();\n\n const getValue = toValue(returnObject) ? (item: ListItem) => toRaw(item.raw) : (item: ListItem) => item.value;\n\n const stack = [...items.value];\n let i = 0;\n while (i < stack.length) {\n const item = stack[i++];\n const itemValue = getValue(item);\n\n if (item.children) {\n const childValues = [];\n for (const child of item.children) {\n const childValue = getValue(child);\n _parents.set(childValue, itemValue);\n childValues.push(childValue);\n stack.push(child);\n }\n _children.set(itemValue, childValues);\n }\n\n if (item.props.disabled) {\n _disabled.add(itemValue);\n }\n }\n\n children.value = _children;\n parents.value = _parents;\n disabled.value = _disabled;\n }\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n scrollToActive: toRef(() => toValue(scrollToActive)),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n\n return arr;\n }),\n itemsRegistration: toRef(() => props.itemsRegistration),\n register: (id, parentId, isDisabled, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n error(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId);\n\n isDisabled && disabled.value.add(id);\n isGroup && children.value.set(id, []);\n\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n itemsUpdatePropagation();\n },\n unregister: (id) => {\n if (isUnmounted) return;\n\n nodeIds.delete(id);\n children.value.delete(id);\n disabled.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(\n parent,\n list.filter((child) => child !== id)\n );\n }\n parents.value.delete(id);\n itemsUpdatePropagation();\n },\n updateDisabled: (id, isDisabled) => {\n if (isDisabled) {\n disabled.value.add(id);\n } else {\n disabled.value.delete(id);\n }\n // classic selection requires refresh to re-evaluate on/off/indeterminate but\n // currently it is only run for selection interactions, so it will set new disabled\n // to \"off\" and the visual state becomes out of sync\n // -- selected.value = new Map(selected.value)\n // it is not clear if the framework should un-select when disabled changed to true\n // more discussion is needed\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event });\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event });\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n disabled: disabled.value,\n event\n });\n newSelected && (selected.value = newSelected);\n\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event });\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated;\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n }\n },\n children,\n parents,\n disabled,\n getPath\n }\n };\n\n provide(CdsNestedSymbol, nested);\n\n return nested.root;\n}\n\n/**\n * Function `useNestedItem` provides a mechanism to manage and interact with a nested item in a hierarchical structure.\n * This function is designed to work within a system dependent on reactivity and provides integration with a parent context.\n *\n * @param {MaybeRefOrGetter<unknown>} id - A unique identifier for the nested item. It can be a reactive reference, a getter, or a raw value.\n * @param {MaybeRefOrGetter<boolean>} isDisabled - A flag indicating whether the nested item is disabled. It supports reactivity.\n * @param {boolean} isGroup - A boolean value specifying if the nested item acts as a group parent.\n * @returns {Object} - Returns an item object containing reactive properties and methods to interact with the nested item and its hierarchy.\n *\n * Reactive State and Methods:\n * - `id`: The unique identifier of the nested item, resolved reactively.\n * - `open(open: boolean, e: Event)`: Toggles the open state for this item.\n * - `openOnSelect(open: boolean, e?: Event)`: Toggles the open state based on selection changes.\n * - `isOpen`: A computed property reflecting whether the item is currently open.\n * - `parent`: A computed property referring to the item's immediate parent in the hierarchy.\n * - `activate(activated: boolean, e?: Event)`: Activates or deactivates the item.\n * - `isActivated`: A computed property reflecting whether the item is currently activated.\n * - `scrollToActive`: Scrolls to the active item in the hierarchy.\n * - `select(selected: boolean, e?: Event)`: Selects or deselects the item.\n * - `isSelected`: A computed property indicating if the item is selected.\n * - `isIndeterminate`: A computed property indicating if the item selection is in an indeterminate state.\n * - `isLeaf`: A computed property indicating if the item is a leaf node (i.e., without children).\n * - `isGroupActivator`: A flag inherited from the parent, used for group-specific activation.\n *\n * Lifecycle Management:\n * - Registers the nested item with its parent context upon mounting unless `isGroupActivator` or specific parent configuration prevents registration.\n * - Unregisters the nested item from its parent context upon unmounting unless `isGroupActivator` or specific parent configuration prevents it.\n * - Tracks updates to `id` or `isDisabled` and notifies the parent context to ensure consistency.\n *\n * Dependency Injection:\n * - Injects a parent context using the symbol `CdsNestedSymbol`.\n * - Provides the current item to descendant contexts if `isGroup` is true.\n */\nexport const useNestedItem = (\n id: MaybeRefOrGetter<unknown>,\n isDisabled: MaybeRefOrGetter<boolean>,\n isGroup: boolean\n) => {\n const parent = inject(CdsNestedSymbol, emptyNested);\n\n const uidSymbol = Symbol('nested item');\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id));\n return idValue !== undefined ? idValue : uidSymbol;\n });\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n scrollToActive: parent.root.scrollToActive,\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n\n onBeforeMount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);\n });\n });\n\n onBeforeUnmount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n parent.root.unregister(computedId.value);\n });\n\n watch(computedId, (val, oldVal) => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return;\n parent.root.unregister(oldVal);\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup);\n });\n });\n\n watch(\n () => toValue(isDisabled),\n (val) => {\n parent.root.updateDisabled(computedId.value, val);\n }\n );\n\n isGroup && provide(CdsNestedSymbol, item);\n\n return item;\n};\n\n/**\n * A composable function that sets up and provides a nested group activator context.\n *\n * This function injects the current context associated with the CdsNestedSymbol and merges it with a\n * new property `isGroupActivator` set to `true`. The updated context is provided back\n * for nested components to access. This is typically used in hierarchical component structures\n * to activate nested group functionality.\n *\n * Dependencies:\n * - `inject` is used to retrieve the parent context of the CdsNestedSymbol.\n * - `provide` is used to supply the updated context to the component tree.\n *\n * Context Symbols:\n * - `CdsNestedSymbol` represents the unique symbol key used for nested data manipulation.\n * - `emptyNested` is the default context provided when no parent context is available.\n */\nexport const useNestedGroupActivator = () => {\n const parent = inject(CdsNestedSymbol, emptyNested);\n\n provide(CdsNestedSymbol, { ...parent, isGroupActivator: true });\n};\n"],"names":["value"],"mappings":"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"}
@@ -4,6 +4,10 @@ import { toRef } from "vue";
4
4
  const positionValues = ["static", "relative", "fixed", "absolute", "sticky"];
5
5
  const definePositionProps = propsFactory(
6
6
  {
7
+ /**
8
+ * CSS-позиционирование компонента — значение свойства `position`
9
+ * @en CSS positioning of the component — the value of the `position` property
10
+ */
7
11
  position: {
8
12
  type: String,
9
13
  validator: (v) => positionValues.includes(v)
@@ -1 +1 @@
1
- {"version":3,"file":"usePosition.js","sources":["../../../../../src/composables/usePosition/usePosition.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { type ExtractPublicPropTypes, type PropType, toRef } from 'vue';\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const;\ntype Position = (typeof positionValues)[number];\n\n/**\n * A factory function that defines and creates position-related component props.\n *\n * @constant\n * @type {Object}\n *\n * @property {Object} position - Defines the position property for a component.\n * @property {String} position.type - The expected type of the position property.\n * @property {Function} position.validator - Validates if the provided value for the position property\n * is included in the predefined position values.\n */\nexport const definePositionProps = propsFactory(\n {\n position: {\n type: String as PropType<Position>,\n validator: (v: any) => positionValues.includes(v)\n }\n },\n 'position'\n);\n\nexport interface PositionProps extends ExtractPublicPropTypes<ReturnType<typeof definePositionProps>> {}\n\n/**\n * A custom hook that generates CSS class names based on the provided position property.\n *\n * @param {PositionProps} props - The properties object containing the position property.\n * @param {string} [name=getCurrentInstanceName()] - The base name used for generating the CSS class name.\n * @return {Object} An object containing the computed `positionClasses`.\n */\nexport function usePosition(props: PositionProps, name = getCurrentInstanceName()) {\n const positionClasses = toRef(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n\n return { positionClasses };\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,iBAAiB,CAAC,UAAU,YAAY,SAAS,YAAY,QAAQ;AAcpE,MAAM,sBAAsB;AAAA,EACjC;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW,CAAC,MAAW,eAAe,SAAS,CAAC;AAAA,IAAA;AAAA,EAClD;AAAA,EAEF;AACF;AAWO,SAAS,YAAY,OAAsB,OAAO,0BAA0B;AACjF,QAAM,kBAAkB,MAAM,MAAM;AAClC,WAAO,MAAM,WAAW,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAAA,EACzD,CAAC;AAED,SAAO,EAAE,gBAAA;AACX;"}
1
+ {"version":3,"file":"usePosition.js","sources":["../../../../../src/composables/usePosition/usePosition.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { type ExtractPublicPropTypes, type PropType, toRef } from 'vue';\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const;\ntype Position = (typeof positionValues)[number];\n\n/**\n * A factory function that defines and creates position-related component props.\n *\n * @constant\n * @type {Object}\n *\n * @property {Object} position - Defines the position property for a component.\n * @property {String} position.type - The expected type of the position property.\n * @property {Function} position.validator - Validates if the provided value for the position property\n * is included in the predefined position values.\n */\nexport const definePositionProps = propsFactory(\n {\n /**\n * CSS-позиционирование компонента — значение свойства `position`\n * @en CSS positioning of the component — the value of the `position` property\n */\n position: {\n type: String as PropType<Position>,\n validator: (v: any) => positionValues.includes(v)\n }\n },\n 'position'\n);\n\nexport interface PositionProps extends ExtractPublicPropTypes<ReturnType<typeof definePositionProps>> {}\n\n/**\n * A custom hook that generates CSS class names based on the provided position property.\n *\n * @param {PositionProps} props - The properties object containing the position property.\n * @param {string} [name=getCurrentInstanceName()] - The base name used for generating the CSS class name.\n * @return {Object} An object containing the computed `positionClasses`.\n */\nexport function usePosition(props: PositionProps, name = getCurrentInstanceName()) {\n const positionClasses = toRef(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n\n return { positionClasses };\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,iBAAiB,CAAC,UAAU,YAAY,SAAS,YAAY,QAAQ;AAcpE,MAAM,sBAAsB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW,CAAC,MAAW,eAAe,SAAS,CAAC;AAAA,IAAA;AAAA,EAClD;AAAA,EAEF;AACF;AAWO,SAAS,YAAY,OAAsB,OAAO,0BAA0B;AACjF,QAAM,kBAAkB,MAAM,MAAM;AAClC,WAAO,MAAM,WAAW,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAAA,EACzD,CAAC;AAED,SAAO,EAAE,gBAAA;AACX;"}
@@ -2,7 +2,10 @@ import { p as propsFactory } from "../../core/propsFactory.js";
2
2
  import "vue";
3
3
  const defineReadonlyProps = propsFactory(
4
4
  {
5
- /** Только для чтения */
5
+ /**
6
+ * Только для чтения
7
+ * @en Read-only state
8
+ */
6
9
  readonly: {
7
10
  type: Boolean,
8
11
  default: null
@@ -1 +1 @@
1
- {"version":3,"file":"useReadonly.js","sources":["../../../../../src/composables/useReadonly/useReadonly.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { type ExtractPublicPropTypes, type PropType, toRef, toValue } from 'vue';\n\n/**\n * A factory-generated configuration object for defining a readonly property within a Vue component.\n * This utility creates a `readonly` prop with a Boolean type and a default value set to `false`.\n *\n * The prop is intended to specify whether a component property should be immutable,\n * allowing only read operations.\n *\n * @constant {Object} defineReadonlyProps\n */\nexport const defineReadonlyProps = propsFactory(\n {\n /** Только для чтения */\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null\n }\n },\n 'readonly'\n);\n\nexport type ReadonlyProps = ExtractPublicPropTypes<ReturnType<typeof defineReadonlyProps>>;\n\nexport function useReadonly(props: ReadonlyProps, name = getCurrentInstanceName()) {\n const readonlyClasses = toRef(() => ({\n [`${name}--readonly`]: toValue(props).readonly\n }));\n\n return { readonlyClasses };\n}\n"],"names":[],"mappings":";;AAYO,MAAM,sBAAsB;AAAA,EACjC;AAAA;AAAA,IAEE,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;"}
1
+ {"version":3,"file":"useReadonly.js","sources":["../../../../../src/composables/useReadonly/useReadonly.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { type ExtractPublicPropTypes, type PropType, toRef, toValue } from 'vue';\n\n/**\n * A factory-generated configuration object for defining a readonly property within a Vue component.\n * This utility creates a `readonly` prop with a Boolean type and a default value set to `false`.\n *\n * The prop is intended to specify whether a component property should be immutable,\n * allowing only read operations.\n *\n * @constant {Object} defineReadonlyProps\n */\nexport const defineReadonlyProps = propsFactory(\n {\n /**\n * Только для чтения\n * @en Read-only state\n */\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null\n }\n },\n 'readonly'\n);\n\nexport type ReadonlyProps = ExtractPublicPropTypes<ReturnType<typeof defineReadonlyProps>>;\n\nexport function useReadonly(props: ReadonlyProps, name = getCurrentInstanceName()) {\n const readonlyClasses = toRef(() => ({\n [`${name}--readonly`]: toValue(props).readonly\n }));\n\n return { readonlyClasses };\n}\n"],"names":[],"mappings":";;AAYO,MAAM,sBAAsB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;"}
@@ -2,7 +2,10 @@ import { p as propsFactory } from "../../core/propsFactory.js";
2
2
  import { toRef, shallowRef, onMounted } from "vue";
3
3
  const defineRevealProps = propsFactory(
4
4
  {
5
- /** Анимирует индикатор от нуля до текущего значения при появлении компонента. Объект `{ duration }` задаёт длительность анимации в миллисекундах */
5
+ /**
6
+ * Анимирует индикатор от нуля до текущего значения при появлении компонента. Объект `{ duration }` задаёт длительность анимации в миллисекундах
7
+ * @en Animates the indicator from zero to the current value when the component appears. The `{ duration }` object sets the animation duration in milliseconds
8
+ */
6
9
  reveal: {
7
10
  type: [Boolean, Object],
8
11
  default: false
@@ -1 +1 @@
1
- {"version":3,"file":"useReveal.js","sources":["../../../../../src/composables/useReveal/useReveal.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { onMounted, type PropType, shallowRef, toRef } from 'vue';\n\nexport interface RevealProps {\n reveal: boolean | { duration?: number };\n}\n\n/**\n * Define the reveal properties for components.\n */\nexport const defineRevealProps = propsFactory(\n {\n /** Анимирует индикатор от нуля до текущего значения при появлении компонента. Объект `{ duration }` задаёт длительность анимации в миллисекундах */\n reveal: {\n type: [Boolean, Object] as PropType<\n | boolean\n | {\n duration?: number;\n }\n >,\n default: false\n }\n },\n 'reveal'\n);\n\nexport function useReveal(props: RevealProps) {\n const defaultDuration = 900;\n const duration = toRef(() =>\n typeof props.reveal === 'object' ? Math.max(0, Number(props.reveal.duration ?? defaultDuration)) : defaultDuration\n );\n\n const state = shallowRef(props.reveal ? 'initial' : 'disabled');\n\n onMounted(async () => {\n if (props.reveal) {\n state.value = 'initial';\n await new Promise((resolve) => requestAnimationFrame(resolve));\n state.value = 'pending';\n await new Promise((resolve) => setTimeout(resolve, duration.value));\n state.value = 'done';\n }\n });\n\n return {\n duration,\n state\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA,IAEE,QAAQ;AAAA,MACN,MAAM,CAAC,SAAS,MAAM;AAAA,MAMtB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAEO,SAAS,UAAU,OAAoB;AAC5C,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAAA,IAAM,MACrB,OAAO,MAAM,WAAW,WAAW,KAAK,IAAI,GAAG,OAAO,MAAM,OAAO,YAAY,eAAe,CAAC,IAAI;AAAA,EAAA;AAGrG,QAAM,QAAQ,WAAW,MAAM,SAAS,YAAY,UAAU;AAE9D,YAAU,YAAY;AACpB,QAAI,MAAM,QAAQ;AAChB,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,sBAAsB,OAAO,CAAC;AAC7D,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,SAAS,KAAK,CAAC;AAClE,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useReveal.js","sources":["../../../../../src/composables/useReveal/useReveal.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { onMounted, type PropType, shallowRef, toRef } from 'vue';\n\nexport interface RevealProps {\n reveal: boolean | { duration?: number };\n}\n\n/**\n * Define the reveal properties for components.\n */\nexport const defineRevealProps = propsFactory(\n {\n /**\n * Анимирует индикатор от нуля до текущего значения при появлении компонента. Объект `{ duration }` задаёт длительность анимации в миллисекундах\n * @en Animates the indicator from zero to the current value when the component appears. The `{ duration }` object sets the animation duration in milliseconds\n */\n reveal: {\n type: [Boolean, Object] as PropType<\n | boolean\n | {\n duration?: number;\n }\n >,\n default: false\n }\n },\n 'reveal'\n);\n\nexport function useReveal(props: RevealProps) {\n const defaultDuration = 900;\n const duration = toRef(() =>\n typeof props.reveal === 'object' ? Math.max(0, Number(props.reveal.duration ?? defaultDuration)) : defaultDuration\n );\n\n const state = shallowRef(props.reveal ? 'initial' : 'disabled');\n\n onMounted(async () => {\n if (props.reveal) {\n state.value = 'initial';\n await new Promise((resolve) => requestAnimationFrame(resolve));\n state.value = 'pending';\n await new Promise((resolve) => setTimeout(resolve, duration.value));\n state.value = 'done';\n }\n });\n\n return {\n duration,\n state\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,QAAQ;AAAA,MACN,MAAM,CAAC,SAAS,MAAM;AAAA,MAMtB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAEO,SAAS,UAAU,OAAoB;AAC5C,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAAA,IAAM,MACrB,OAAO,MAAM,WAAW,WAAW,KAAK,IAAI,GAAG,OAAO,MAAM,OAAO,YAAY,eAAe,CAAC,IAAI;AAAA,EAAA;AAGrG,QAAM,QAAQ,WAAW,MAAM,SAAS,YAAY,UAAU;AAE9D,YAAU,YAAY;AACpB,QAAI,MAAM,QAAQ;AAChB,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,sBAAsB,OAAO,CAAC;AAC7D,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,SAAS,KAAK,CAAC;AAClE,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -5,22 +5,34 @@ import { a as IN_BROWSER } from "../../utils/dom/globals.js";
5
5
  import { resolveDynamicComponent, toRef, computed, unref, reactive, nextTick, onScopeDispose } from "vue";
6
6
  const defineRouterProps = propsFactory(
7
7
  {
8
- /** Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка */
8
+ /**
9
+ * Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка
10
+ * @en The `href` attribute of the link. When set, the component behaves as a regular link
11
+ */
9
12
  href: {
10
13
  type: String,
11
14
  default: void 0
12
15
  },
13
- /** Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой */
16
+ /**
17
+ * Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой
18
+ * @en If true, navigation replaces the current history entry instead of pushing a new one
19
+ */
14
20
  replace: {
15
21
  type: Boolean,
16
22
  default: void 0
17
23
  },
18
- /** Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink */
24
+ /**
25
+ * Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink
26
+ * @en Target route or route location object for RouterLink. When set, the component behaves as a RouterLink
27
+ */
19
28
  to: {
20
29
  type: [String, Object],
21
30
  default: void 0
22
31
  },
23
- /** Если true, активное состояние будет применяться только при точном совпадении маршрута */
32
+ /**
33
+ * Если true, активное состояние будет применяться только при точном совпадении маршрута
34
+ * @en If true, the active state applies only on an exact route match
35
+ */
24
36
  exact: {
25
37
  type: Boolean,
26
38
  default: void 0
@@ -1 +1 @@
1
- {"version":3,"file":"useRouter.js","sources":["../../../../../src/composables/useRouter/useRouter.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { deepEqual, type EventProp, hasEvent, IN_BROWSER } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n reactive,\n type Ref,\n resolveDynamicComponent,\n type SetupContext,\n toRef,\n unref\n} from 'vue';\nimport type {\n NavigationGuardReturn,\n RouteLocation,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n RouterLink as _RouterLink,\n useLink as _useLink\n} from 'vue-router';\n\nexport interface LinkProps extends ExtractPublicPropTypes<ReturnType<typeof defineRouterProps>> {\n disabled?: boolean | null;\n}\n\nexport interface LinkListeners {\n onClick?: EventProp;\n onClickOnce?: EventProp;\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href' | 'route' | 'navigate'> {\n isLink: Readonly<Ref<boolean>>;\n isRouterLink: Readonly<Ref<boolean>>;\n isClickable: Readonly<Ref<boolean>>;\n href: Ref<string | undefined>;\n linkProps: Record<string, string | undefined>;\n route: Readonly<Ref<(RouteLocation & { href: string }) | undefined>>;\n navigate: Readonly<Ref<ReturnType<typeof _useLink>['navigate'] | undefined>>;\n}\n\n/**\n * Factory for defining props related to router behavior for a component.\n *\n * The created props include options for assigning link targets, handling route navigation,\n * and defining how the component behaves in relation to the Vue Router.\n *\n * @prop {string|undefined} href - The `href` attribute for a link. If provided, the component behaves like a standard HTML link.\n * @prop {boolean|undefined} replace - If `true`, navigation will replace the current history entry instead of adding a new one.\n * @prop {string|object|undefined} to - Target route or a route location object for `RouterLink`. If provided, the component behaves as a `RouterLink`.\n * @prop {boolean|undefined} exact - If `true`, active state is applied only if the route matches exactly.\n */\nexport const defineRouterProps = propsFactory(\n {\n /** Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка */\n href: {\n type: String as PropType<string>,\n default: undefined\n },\n /** Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой */\n replace: {\n type: Boolean as PropType<boolean>,\n default: undefined\n },\n /** Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink */\n to: {\n type: [String, Object] as PropType<RouteLocationRaw>,\n default: undefined\n },\n /** Если true, активное состояние будет применяться только при точном совпадении маршрута */\n exact: {\n type: Boolean as PropType<boolean>,\n default: undefined\n }\n },\n 'router'\n);\n\n/**\n * Provides functionality and properties for handling links, including router links\n * and standard anchor tags, with reactive properties for navigation and interactivity.\n *\n * @param {LinkProps} props - The props for the link, including attributes like `href`, `to`, `replace`, and more.\n * @param {SetupContext['attrs']} attrs - The attributes passed to the link, e.g., event listeners like `click`.\n * @return {UseLink} An object containing properties and methods for managing the link:\n * - `route`: The route information for a router link, if applicable.\n * - `navigate`: A function to navigate the link if it's a router link.\n * - `href`: A computed property resolving the `href` for the link.\n * - `isLink`: A reactive boolean indicating whether the link is defined (`href` or `to`).\n * - `isRouterLink`: A reactive boolean indicating whether the link is a router link.\n * - `isClickable`: A reactive boolean indicating whether the link is interactable.\n * - `isActive`: A reactive boolean indicating if the route is active for router links.\n * - `linkProps`: Reactive link attributes such as `href`, `aria-current`, `aria-disabled`, and `tabindex`.\n */\nexport function useLink(props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const route = useRoute();\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string;\n const isLink = toRef(() => !!(props.href || props.to));\n const isClickable = computed(() => unref(isLink) || hasEvent(attrs, 'click') || hasEvent(props, 'click'));\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(() => props.href);\n\n return {\n isLink,\n isRouterLink: toRef(() => false),\n isClickable,\n href,\n linkProps: reactive({ href }),\n route: toRef(() => undefined),\n navigate: toRef(() => undefined)\n };\n }\n\n const routerLink = RouterLink.useLink({\n to: toRef(() => props.to || ''),\n replace: toRef(() => props.replace)\n });\n const link = computed(() => (props.to ? routerLink : undefined));\n const href = computed(() => (props.to ? unref(link)?.route.value.href : props.href));\n\n const isRouterLink = toRef(() => !!props.to);\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n\n return {\n href,\n isLink,\n isRouterLink,\n isClickable,\n isActive,\n linkProps: reactive({\n href,\n 'aria-current': toRef(() => (unref(isActive) ? 'page' : undefined)),\n 'aria-disabled': toRef(() => (props.disabled && unref(isLink) ? 'true' : undefined)),\n tabindex: toRef(() => (props.disabled && unref(isLink) ? '-1' : undefined))\n }),\n route: toRef(() => unref(link)?.route.value),\n navigate: toRef(() => unref(link)?.navigate)\n };\n}\n\n/**\n * A composable function that provides a reactive reference to the current route.\n * It retrieves the current route from the Vue instance and wraps it in a computed reference.\n * This allows for reactive updates when the route changes.\n *\n * @return {Ref<RouteLocationNormalizedLoaded | undefined>} A reactive reference to the current normalized loaded route or undefined if no route is available.\n */\nexport function useRoute(): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\n\n/**\n * Provides access to the current Vue Router instance.\n *\n * This method retrieves the router instance associated with the current Vue component\n * instance, if available. The router instance can be used for navigation and accessing\n * route-specific data.\n *\n * @return {Router | undefined} The Vue Router instance if the current component is associated\n * with a router, or undefined if it is not found.\n */\nexport function useRouter(): Router | undefined {\n const vm = getCurrentInstance('useRouter');\n return vm?.proxy?.$router;\n}\n\nlet inTransition = false;\n\n/**\n * Sets up a back button handler using the provided router and callback function.\n * Listens for browser back button events and triggers the given callback during navigation.\n * Ensures safe handling of navigation transitions.\n *\n * @param {Router | undefined} router - The router instance to integrate with, which can be undefined if no router is used.\n * @param {() => NavigationGuardReturn} cb - A callback function that will be invoked during a back button interaction or navigation guard step.\n * @return {void} No return value.\n */\nexport function useBackButton(router: Router | undefined, cb: () => NavigationGuardReturn) {\n let popped = false;\n let removeBefore: (() => void) | undefined;\n let removeAfter: (() => void) | undefined;\n\n if (IN_BROWSER && router?.beforeEach) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router.beforeEach(() => {\n if (!inTransition) {\n inTransition = true;\n return new Promise<NavigationGuardReturn>((resolve) => {\n setTimeout(() => resolve(popped ? cb() : undefined));\n });\n }\n return popped ? cb() : undefined;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n\n function onPopstate(e: PopStateEvent) {\n if (e.state?.replaced) return;\n\n popped = true;\n setTimeout(() => (popped = false));\n }\n}\n"],"names":["href"],"mappings":"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"}
1
+ {"version":3,"file":"useRouter.js","sources":["../../../../../src/composables/useRouter/useRouter.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { deepEqual, type EventProp, hasEvent, IN_BROWSER } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n reactive,\n type Ref,\n resolveDynamicComponent,\n type SetupContext,\n toRef,\n unref\n} from 'vue';\nimport type {\n NavigationGuardReturn,\n RouteLocation,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n RouterLink as _RouterLink,\n useLink as _useLink\n} from 'vue-router';\n\nexport interface LinkProps extends ExtractPublicPropTypes<ReturnType<typeof defineRouterProps>> {\n disabled?: boolean | null;\n}\n\nexport interface LinkListeners {\n onClick?: EventProp;\n onClickOnce?: EventProp;\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href' | 'route' | 'navigate'> {\n isLink: Readonly<Ref<boolean>>;\n isRouterLink: Readonly<Ref<boolean>>;\n isClickable: Readonly<Ref<boolean>>;\n href: Ref<string | undefined>;\n linkProps: Record<string, string | undefined>;\n route: Readonly<Ref<(RouteLocation & { href: string }) | undefined>>;\n navigate: Readonly<Ref<ReturnType<typeof _useLink>['navigate'] | undefined>>;\n}\n\n/**\n * Factory for defining props related to router behavior for a component.\n *\n * The created props include options for assigning link targets, handling route navigation,\n * and defining how the component behaves in relation to the Vue Router.\n *\n * @prop {string|undefined} href - The `href` attribute for a link. If provided, the component behaves like a standard HTML link.\n * @prop {boolean|undefined} replace - If `true`, navigation will replace the current history entry instead of adding a new one.\n * @prop {string|object|undefined} to - Target route or a route location object for `RouterLink`. If provided, the component behaves as a `RouterLink`.\n * @prop {boolean|undefined} exact - If `true`, active state is applied only if the route matches exactly.\n */\nexport const defineRouterProps = propsFactory(\n {\n /**\n * Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка\n * @en The `href` attribute of the link. When set, the component behaves as a regular link\n */\n href: {\n type: String as PropType<string>,\n default: undefined\n },\n /**\n * Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой\n * @en If true, navigation replaces the current history entry instead of pushing a new one\n */\n replace: {\n type: Boolean as PropType<boolean>,\n default: undefined\n },\n /**\n * Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink\n * @en Target route or route location object for RouterLink. When set, the component behaves as a RouterLink\n */\n to: {\n type: [String, Object] as PropType<RouteLocationRaw>,\n default: undefined\n },\n /**\n * Если true, активное состояние будет применяться только при точном совпадении маршрута\n * @en If true, the active state applies only on an exact route match\n */\n exact: {\n type: Boolean as PropType<boolean>,\n default: undefined\n }\n },\n 'router'\n);\n\n/**\n * Provides functionality and properties for handling links, including router links\n * and standard anchor tags, with reactive properties for navigation and interactivity.\n *\n * @param {LinkProps} props - The props for the link, including attributes like `href`, `to`, `replace`, and more.\n * @param {SetupContext['attrs']} attrs - The attributes passed to the link, e.g., event listeners like `click`.\n * @return {UseLink} An object containing properties and methods for managing the link:\n * - `route`: The route information for a router link, if applicable.\n * - `navigate`: A function to navigate the link if it's a router link.\n * - `href`: A computed property resolving the `href` for the link.\n * - `isLink`: A reactive boolean indicating whether the link is defined (`href` or `to`).\n * - `isRouterLink`: A reactive boolean indicating whether the link is a router link.\n * - `isClickable`: A reactive boolean indicating whether the link is interactable.\n * - `isActive`: A reactive boolean indicating if the route is active for router links.\n * - `linkProps`: Reactive link attributes such as `href`, `aria-current`, `aria-disabled`, and `tabindex`.\n */\nexport function useLink(props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const route = useRoute();\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string;\n const isLink = toRef(() => !!(props.href || props.to));\n const isClickable = computed(() => unref(isLink) || hasEvent(attrs, 'click') || hasEvent(props, 'click'));\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(() => props.href);\n\n return {\n isLink,\n isRouterLink: toRef(() => false),\n isClickable,\n href,\n linkProps: reactive({ href }),\n route: toRef(() => undefined),\n navigate: toRef(() => undefined)\n };\n }\n\n const routerLink = RouterLink.useLink({\n to: toRef(() => props.to || ''),\n replace: toRef(() => props.replace)\n });\n const link = computed(() => (props.to ? routerLink : undefined));\n const href = computed(() => (props.to ? unref(link)?.route.value.href : props.href));\n\n const isRouterLink = toRef(() => !!props.to);\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n\n return {\n href,\n isLink,\n isRouterLink,\n isClickable,\n isActive,\n linkProps: reactive({\n href,\n 'aria-current': toRef(() => (unref(isActive) ? 'page' : undefined)),\n 'aria-disabled': toRef(() => (props.disabled && unref(isLink) ? 'true' : undefined)),\n tabindex: toRef(() => (props.disabled && unref(isLink) ? '-1' : undefined))\n }),\n route: toRef(() => unref(link)?.route.value),\n navigate: toRef(() => unref(link)?.navigate)\n };\n}\n\n/**\n * A composable function that provides a reactive reference to the current route.\n * It retrieves the current route from the Vue instance and wraps it in a computed reference.\n * This allows for reactive updates when the route changes.\n *\n * @return {Ref<RouteLocationNormalizedLoaded | undefined>} A reactive reference to the current normalized loaded route or undefined if no route is available.\n */\nexport function useRoute(): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\n\n/**\n * Provides access to the current Vue Router instance.\n *\n * This method retrieves the router instance associated with the current Vue component\n * instance, if available. The router instance can be used for navigation and accessing\n * route-specific data.\n *\n * @return {Router | undefined} The Vue Router instance if the current component is associated\n * with a router, or undefined if it is not found.\n */\nexport function useRouter(): Router | undefined {\n const vm = getCurrentInstance('useRouter');\n return vm?.proxy?.$router;\n}\n\nlet inTransition = false;\n\n/**\n * Sets up a back button handler using the provided router and callback function.\n * Listens for browser back button events and triggers the given callback during navigation.\n * Ensures safe handling of navigation transitions.\n *\n * @param {Router | undefined} router - The router instance to integrate with, which can be undefined if no router is used.\n * @param {() => NavigationGuardReturn} cb - A callback function that will be invoked during a back button interaction or navigation guard step.\n * @return {void} No return value.\n */\nexport function useBackButton(router: Router | undefined, cb: () => NavigationGuardReturn) {\n let popped = false;\n let removeBefore: (() => void) | undefined;\n let removeAfter: (() => void) | undefined;\n\n if (IN_BROWSER && router?.beforeEach) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router.beforeEach(() => {\n if (!inTransition) {\n inTransition = true;\n return new Promise<NavigationGuardReturn>((resolve) => {\n setTimeout(() => resolve(popped ? cb() : undefined));\n });\n }\n return popped ? cb() : undefined;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n\n function onPopstate(e: PopStateEvent) {\n if (e.state?.replaced) return;\n\n popped = true;\n setTimeout(() => (popped = false));\n }\n}\n"],"names":["href"],"mappings":"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"}
@@ -5,7 +5,10 @@ import { toValue } from "vue";
5
5
  const availableSizes = ["xs", "sm", "md", "lg", "xl"];
6
6
  const defineSizeProps = propsFactory(
7
7
  {
8
- /** Размер компонента */
8
+ /**
9
+ * Размер компонента
10
+ * @en Size of the component
11
+ */
9
12
  size: {
10
13
  type: [String, Number],
11
14
  default: "md",
@@ -1 +1 @@
1
- {"version":3,"file":"useSize.js","sources":["../../../../../src/composables/useSize/useSize.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { convertToUnit, destructComputed, includes } from '@cds/utils';\nimport { type ExtractPublicPropTypes, type MaybeRefOrGetter, type PropType, toValue } from 'vue';\n\nexport const availableSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type Size = (typeof availableSizes)[number];\n\n/**\n * A factory function defining properties related to size configuration for components.\n *\n * @constant\n * @name defineSizeProps\n * @type {Function}\n *\n * Properties:\n * - `size`: Defines the size of the component.\n * - Type: String or Number\n * - Default: `'md'`\n * - Validator: Validates if the value is a number or one of the predefined sizes in `availableSizes`.\n *\n * This function is typically used to generate size-related props for reusable or configurable UI components.\n */\nexport const defineSizeProps = propsFactory(\n {\n /** Размер компонента */\n size: {\n type: [String, Number] as PropType<Size | number>,\n default: 'md',\n validator: (value: Size | any) => typeof value === 'number' || availableSizes.includes(value)\n }\n },\n 'size'\n);\n\nexport type SizeProps = ExtractPublicPropTypes<ReturnType<typeof defineSizeProps>>;\n\n/**\n * Computes size-related classes and styles based on the provided properties.\n *\n * @param {MaybeRefOrGetter<SizeProps>} props - The properties containing size information.\n * @param {string} [name=getCurrentInstanceName()] - The name of the current component instance.\n * @return {Object} An object containing `sizeClasses` for CSS class names and `sizeStyles` for inline styles.\n */\nexport function useSize(props: MaybeRefOrGetter<SizeProps>, name = getCurrentInstanceName()) {\n return destructComputed(() => {\n const { size } = toValue(props);\n let sizeClasses, sizeStyles;\n\n if (includes(availableSizes, size)) {\n sizeClasses = `${name}--size-${size}`;\n } else if (size) {\n sizeStyles = {\n width: convertToUnit(size),\n height: convertToUnit(size)\n };\n }\n\n return { sizeClasses, sizeStyles };\n });\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,iBAAiB,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAkBpD,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA,IAEE,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,CAAC,UAAsB,OAAO,UAAU,YAAY,eAAe,SAAS,KAAK;AAAA,IAAA;AAAA,EAC9F;AAAA,EAEF;AACF;AAWO,SAAS,QAAQ,OAAoC,OAAO,0BAA0B;AAC3F,SAAO,iBAAiB,MAAM;AAC5B,UAAM,EAAE,KAAA,IAAS,QAAQ,KAAK;AAC9B,QAAI,aAAa;AAEjB,QAAI,SAAS,gBAAgB,IAAI,GAAG;AAClC,oBAAc,GAAG,IAAI,UAAU,IAAI;AAAA,IACrC,WAAW,MAAM;AACf,mBAAa;AAAA,QACX,OAAO,cAAc,IAAI;AAAA,QACzB,QAAQ,cAAc,IAAI;AAAA,MAAA;AAAA,IAE9B;AAEA,WAAO,EAAE,aAAa,WAAA;AAAA,EACxB,CAAC;AACH;"}
1
+ {"version":3,"file":"useSize.js","sources":["../../../../../src/composables/useSize/useSize.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { convertToUnit, destructComputed, includes } from '@cds/utils';\nimport { type ExtractPublicPropTypes, type MaybeRefOrGetter, type PropType, toValue } from 'vue';\n\nexport const availableSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type Size = (typeof availableSizes)[number];\n\n/**\n * A factory function defining properties related to size configuration for components.\n *\n * @constant\n * @name defineSizeProps\n * @type {Function}\n *\n * Properties:\n * - `size`: Defines the size of the component.\n * - Type: String or Number\n * - Default: `'md'`\n * - Validator: Validates if the value is a number or one of the predefined sizes in `availableSizes`.\n *\n * This function is typically used to generate size-related props for reusable or configurable UI components.\n */\nexport const defineSizeProps = propsFactory(\n {\n /**\n * Размер компонента\n * @en Size of the component\n */\n size: {\n type: [String, Number] as PropType<Size | number>,\n default: 'md',\n validator: (value: Size | any) => typeof value === 'number' || availableSizes.includes(value)\n }\n },\n 'size'\n);\n\nexport type SizeProps = ExtractPublicPropTypes<ReturnType<typeof defineSizeProps>>;\n\n/**\n * Computes size-related classes and styles based on the provided properties.\n *\n * @param {MaybeRefOrGetter<SizeProps>} props - The properties containing size information.\n * @param {string} [name=getCurrentInstanceName()] - The name of the current component instance.\n * @return {Object} An object containing `sizeClasses` for CSS class names and `sizeStyles` for inline styles.\n */\nexport function useSize(props: MaybeRefOrGetter<SizeProps>, name = getCurrentInstanceName()) {\n return destructComputed(() => {\n const { size } = toValue(props);\n let sizeClasses, sizeStyles;\n\n if (includes(availableSizes, size)) {\n sizeClasses = `${name}--size-${size}`;\n } else if (size) {\n sizeStyles = {\n width: convertToUnit(size),\n height: convertToUnit(size)\n };\n }\n\n return { sizeClasses, sizeStyles };\n });\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,iBAAiB,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAkBpD,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,CAAC,UAAsB,OAAO,UAAU,YAAY,eAAe,SAAS,KAAK;AAAA,IAAA;AAAA,EAC9F;AAAA,EAEF;AACF;AAWO,SAAS,QAAQ,OAAoC,OAAO,0BAA0B;AAC3F,SAAO,iBAAiB,MAAM;AAC5B,UAAM,EAAE,KAAA,IAAS,QAAQ,KAAK;AAC9B,QAAI,aAAa;AAEjB,QAAI,SAAS,gBAAgB,IAAI,GAAG;AAClC,oBAAc,GAAG,IAAI,UAAU,IAAI;AAAA,IACrC,WAAW,MAAM;AACf,mBAAa;AAAA,QACX,OAAO,cAAc,IAAI;AAAA,QACzB,QAAQ,cAAc,IAAI;AAAA,MAAA;AAAA,IAE9B;AAEA,WAAO,EAAE,aAAa,WAAA;AAAA,EACxB,CAAC;AACH;"}
@@ -3,7 +3,10 @@ import { computed } from "vue";
3
3
  import { s as statusIcons } from "./internal/useStatus.constants.js";
4
4
  const defineStatusProps = propsFactory(
5
5
  {
6
- /** Семантический статус — определяет цвет и дефолтную иконку. */
6
+ /**
7
+ * Семантический статус — определяет цвет и дефолтную иконку.
8
+ * @en Semantic status — drives the color and the default icon.
9
+ */
7
10
  status: {
8
11
  type: String,
9
12
  default: "info"
@@ -1 +1 @@
1
- {"version":3,"file":"useStatus.js","sources":["../../../../../src/composables/useStatus/useStatus.ts"],"sourcesContent":["import type { IconValue } from '@cds/composables/useIcons';\nimport { propsFactory } from '@cds/core';\nimport { computed, type ComputedRef, type PropType } from 'vue';\n\nimport { type CdsStatusValue, statusIcons } from './internal/useStatus.constants';\n\nexport const defineStatusProps = propsFactory(\n {\n /** Семантический статус — определяет цвет и дефолтную иконку. */\n status: {\n type: String as PropType<CdsStatusValue>,\n default: 'info'\n }\n },\n 'status'\n);\n\nexport interface UseStatusOptions {\n /** Переопределение набора иконок статуса (например, не-`fill` для алертов). */\n icons?: Record<CdsStatusValue, IconValue>;\n}\n\nexport interface UseStatusReturn {\n status: ComputedRef<CdsStatusValue>;\n statusIcon: ComputedRef<IconValue>;\n}\n\n/**\n * Резолвит семантику статуса: текущий статус и иконку для него.\n * `options.icons` позволяет компоненту подменить набор иконок.\n */\nexport function useStatus(props: { status: CdsStatusValue }, options: UseStatusOptions = {}): UseStatusReturn {\n const icons = options.icons ?? statusIcons;\n\n return {\n status: computed(() => props.status),\n statusIcon: computed(() => icons[props.status])\n };\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA,IAEE,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAgBO,SAAS,UAAU,OAAmC,UAA4B,IAAqB;AAC5G,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO;AAAA,IACL,QAAQ,SAAS,MAAM,MAAM,MAAM;AAAA,IACnC,YAAY,SAAS,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,EAAA;AAElD;"}
1
+ {"version":3,"file":"useStatus.js","sources":["../../../../../src/composables/useStatus/useStatus.ts"],"sourcesContent":["import type { IconValue } from '@cds/composables/useIcons';\nimport { propsFactory } from '@cds/core';\nimport { computed, type ComputedRef, type PropType } from 'vue';\n\nimport { type CdsStatusValue, statusIcons } from './internal/useStatus.constants';\n\nexport const defineStatusProps = propsFactory(\n {\n /**\n * Семантический статус — определяет цвет и дефолтную иконку.\n * @en Semantic status — drives the color and the default icon.\n */\n status: {\n type: String as PropType<CdsStatusValue>,\n default: 'info'\n }\n },\n 'status'\n);\n\nexport interface UseStatusOptions {\n /** Переопределение набора иконок статуса (например, не-`fill` для алертов). */\n icons?: Record<CdsStatusValue, IconValue>;\n}\n\nexport interface UseStatusReturn {\n status: ComputedRef<CdsStatusValue>;\n statusIcon: ComputedRef<IconValue>;\n}\n\n/**\n * Резолвит семантику статуса: текущий статус и иконку для него.\n * `options.icons` позволяет компоненту подменить набор иконок.\n */\nexport function useStatus(props: { status: CdsStatusValue }, options: UseStatusOptions = {}): UseStatusReturn {\n const icons = options.icons ?? statusIcons;\n\n return {\n status: computed(() => props.status),\n statusIcon: computed(() => icons[props.status])\n };\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAgBO,SAAS,UAAU,OAAmC,UAA4B,IAAqB;AAC5G,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO;AAAA,IACL,QAAQ,SAAS,MAAM,MAAM,MAAM;AAAA,IACnC,YAAY,SAAS,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,EAAA;AAElD;"}
@@ -2,9 +2,15 @@ import { p as propsFactory } from "../../core/propsFactory.js";
2
2
  import { computed, toDisplayString } from "vue";
3
3
  const defineTextProps = propsFactory(
4
4
  {
5
- /** Текст, отображаемый в компоненте. */
5
+ /**
6
+ * Текст, отображаемый в компоненте.
7
+ * @en Text displayed in the component.
8
+ */
6
9
  text: [String, Number],
7
- /** Контент, отображаемый в компоненте. */
10
+ /**
11
+ * Контент, отображаемый в компоненте.
12
+ * @en Content displayed in the component.
13
+ */
8
14
  content: [String, Number]
9
15
  },
10
16
  "text"
@@ -1 +1 @@
1
- {"version":3,"file":"useText.js","sources":["../../../../../src/composables/useText/useText.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { computed, type ExtractPublicPropTypes, toDisplayString } from 'vue';\n\n/**\n * Factory function to define the text-related properties for a component.\n *\n * @typedef {Object} defineTextProps\n * @property {(String|Number)} text - The text displayed in the component.\n * @property {(String|Number)} content - The content displayed in the component.\n */\nexport const defineTextProps = propsFactory(\n {\n /** Текст, отображаемый в компоненте. */\n text: [String, Number],\n /** Контент, отображаемый в компоненте. */\n content: [String, Number]\n },\n 'text'\n);\n\nexport type TextProps = ExtractPublicPropTypes<ReturnType<typeof defineTextProps>>;\n\n/**\n * Processes the input text properties and generates plain content and displayable text.\n *\n * @param {TextProps} props - The text properties containing the input text or content.\n * @return {Object} An object containing `plainContent` and `displayText`:\n * - `plainContent`: Реактивный (computed) исходный контент из `text`/`content`.\n * - `displayText`: Реактивная (computed) строка для отображения.\n */\nexport function useText(props: TextProps) {\n const plainContent = computed(() => props.text ?? props.content);\n const displayText = computed(() => toDisplayString(plainContent.value));\n\n return {\n plainContent,\n displayText\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA,IAEE,MAAM,CAAC,QAAQ,MAAM;AAAA;AAAA,IAErB,SAAS,CAAC,QAAQ,MAAM;AAAA,EAAA;AAAA,EAE1B;AACF;AAYO,SAAS,QAAQ,OAAkB;AACxC,QAAM,eAAe,SAAS,MAAM,MAAM,QAAQ,MAAM,OAAO;AAC/D,QAAM,cAAc,SAAS,MAAM,gBAAgB,aAAa,KAAK,CAAC;AAEtE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useText.js","sources":["../../../../../src/composables/useText/useText.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { computed, type ExtractPublicPropTypes, toDisplayString } from 'vue';\n\n/**\n * Factory function to define the text-related properties for a component.\n *\n * @typedef {Object} defineTextProps\n * @property {(String|Number)} text - The text displayed in the component.\n * @property {(String|Number)} content - The content displayed in the component.\n */\nexport const defineTextProps = propsFactory(\n {\n /**\n * Текст, отображаемый в компоненте.\n * @en Text displayed in the component.\n */\n text: [String, Number],\n /**\n * Контент, отображаемый в компоненте.\n * @en Content displayed in the component.\n */\n content: [String, Number]\n },\n 'text'\n);\n\nexport type TextProps = ExtractPublicPropTypes<ReturnType<typeof defineTextProps>>;\n\n/**\n * Processes the input text properties and generates plain content and displayable text.\n *\n * @param {TextProps} props - The text properties containing the input text or content.\n * @return {Object} An object containing `plainContent` and `displayText`:\n * - `plainContent`: Реактивный (computed) исходный контент из `text`/`content`.\n * - `displayText`: Реактивная (computed) строка для отображения.\n */\nexport function useText(props: TextProps) {\n const plainContent = computed(() => props.text ?? props.content);\n const displayText = computed(() => toDisplayString(plainContent.value));\n\n return {\n plainContent,\n displayText\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,MAAM,CAAC,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKrB,SAAS,CAAC,QAAQ,MAAM;AAAA,EAAA;AAAA,EAE1B;AACF;AAYO,SAAS,QAAQ,OAAkB;AACxC,QAAM,eAAe,SAAS,MAAM,MAAM,QAAQ,MAAM,OAAO;AAC/D,QAAM,cAAc,SAAS,MAAM,gBAAgB,aAAa,KAAK,CAAC;AAEtE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -7,7 +7,10 @@ import { D as DEFAULT_THEME, T as ThemeSymbol } from "./internal/useTheme.consta
7
7
  import { p as parseThemeOptions, g as generateVariations, a as generateOnColors, c as createCssClass, b as generateCssVariables, u as upsertStyles } from "./internal/useTheme.utils.js";
8
8
  const defineThemeProps = propsFactory(
9
9
  {
10
- /** Тема компонента */
10
+ /**
11
+ * Тема компонента
12
+ * @en Component theme
13
+ */
11
14
  theme: {
12
15
  type: String,
13
16
  default: void 0
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.js","sources":["../../../../../src/composables/useTheme/useTheme.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { IN_BROWSER, mergeDeep } from '@cds/utils';\nimport { type App, computed, inject, type PropType, provide, ref, shallowRef, unref, watch, watchEffect } from 'vue';\n\nimport { DEFAULT_THEME, ThemeSymbol } from './internal/useTheme.constants';\nimport type { InternalThemeDefinition, Theme, ThemeInstance, ThemeOptions } from './internal/useTheme.types';\nimport {\n createCssClass,\n generateCssVariables,\n generateOnColors,\n generateVariations,\n parseThemeOptions,\n upsertStyles\n} from './internal/useTheme.utils';\n\n/**\n * Defines props related to theming for a Vue component.\n *\n * The `defineThemeProps` variable facilitates the creation of a property configuration\n * to manage the component's theme. It provides flexibility to set a theme either as a\n * predefined object or as a string-based theme identifier.\n */\nexport const defineThemeProps = propsFactory(\n {\n /** Тема компонента */\n theme: {\n type: String as PropType<Theme | string>,\n default: undefined\n }\n },\n 'theme'\n);\n\n/**\n * Creates a theme instance with support for generating color variations,\n * CSS classes, and dynamic theme installation in a Vue application.\n *\n * @param {ThemeOptions} [options] - Configuration options for the theme, including default theme name, themes, variations, and other settings.\n * @return {ThemeInstance & { install: (app: App) => void }} An object containing the theme instance properties, computed values, and an `install` function for integrating with a Vue app.\n */\nexport function createTheme(options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options);\n const _name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const systemName = shallowRef(DEFAULT_THEME);\n\n const name = computed({\n get() {\n return _name.value === 'system' ? systemName.value : _name.value;\n },\n set(val: string) {\n _name.value = val;\n }\n });\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {};\n\n for (const [name, original] of Object.entries(unref(themes))) {\n const defaultTheme = original.dark || name === 'dark' ? unref(themes).cdsDark : unref(themes).cdsLight;\n\n const merged = mergeDeep(defaultTheme, original) as InternalThemeDefinition;\n\n const colors = {\n ...merged.colors,\n ...generateVariations(merged.colors, parsedOptions.variations)\n };\n\n acc[name] = {\n ...merged,\n colors: {\n ...colors,\n ...generateOnColors(colors, merged.variables)\n }\n };\n }\n\n return acc;\n });\n\n const current = computed(() => unref(computedThemes)[unref(name)]);\n\n // const isSystem = toRef(() => _name.value === 'system');\n\n const styles = computed(() => {\n const lines: string[] = [];\n\n lines.push('@layer theme-base {\\n');\n\n if (unref(current).dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);\n }\n\n createCssClass(lines, ':root', generateCssVariables(unref(current), parsedOptions.prefix), parsedOptions.scope);\n\n for (const [themeName, theme] of Object.entries(unref(computedThemes))) {\n createCssClass(\n lines,\n `.${parsedOptions.prefix}-theme--${themeName}`,\n [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...generateCssVariables(theme, parsedOptions.prefix)],\n parsedOptions.scope\n );\n }\n\n lines.push('}\\n');\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = [];\n const fgLines: string[] = [];\n\n const colors = new Set(Object.values(unref(computedThemes)).flatMap((theme) => Object.keys(theme.colors)));\n\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`]);\n } else {\n if (parsedOptions.legacyClasses) {\n createCssClass(bgLines, `.${parsedOptions.prefix}-bg-${key}`, [\n `--${parsedOptions.prefix}-color-overlay-multiplier: var(--${parsedOptions.prefix}-color-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`,\n `color: rgb(var(--${parsedOptions.prefix}-color-on-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-text-${key}`, [\n `color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-border-${key}`, [\n `border-color: rgb(var(--${parsedOptions.prefix}-color-${key}))`\n ]);\n }\n }\n }\n\n lines.push(\n '@layer theme-background {\\n',\n ...bgLines.map((v) => ` ${v}`),\n '}\\n',\n '@layer theme-foreground {\\n',\n ...fgLines.map((v) => ` ${v}`),\n '}\\n'\n );\n }\n\n return '@layer cds-utilities {\\n' + lines.map((v) => ` ${v}`).join('') + '\\n}';\n });\n\n function getHead() {\n return {\n style: [\n {\n children: unref(styles),\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || (false as never)\n }\n ]\n };\n }\n\n function install(app: App) {\n if (parsedOptions.isDisabled) return;\n\n const head = app._context.provides.usehead;\n\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n\n if (IN_BROWSER) {\n watch(styles, () => entry.patch(getHead));\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true });\n } else {\n updateStyles();\n }\n\n function updateStyles() {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);\n }\n }\n }\n\n const themeClasses = computed(() => (parsedOptions.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\n\n/**\n * Provides a theme to the current component and its descendants.\n *\n * This method injects an existing theme instance, validates its existence, and creates\n * a new extended theme instance with additional properties based on the provided or\n * inherited theme configuration. The new theme is then provided to the component's\n * context for usage in child components.\n *\n * @param {Object} props - Configuration options for the theme.\n * @param {string} [props.theme] - A string representing the name of the theme to be applied. If not provided, the theme is inherited from the injected theme instance.\n * @return {ThemeInstance} The newly created theme instance with updated properties, which includes the computed name, current theme object, and the theme's CSS class.\n */\nexport function provideTheme(props: { theme?: string }) {\n getCurrentInstance('provideTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find CDS theme injection');\n\n const name = computed<string>(() => {\n return props.theme ?? unref(theme.name);\n });\n const current = computed(() => unref(theme.themes)[unref(name)]);\n\n const themeClasses = computed(() => (theme.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses\n };\n\n provide(ThemeSymbol, newTheme);\n\n return newTheme;\n}\n\n/**\n * A function to retrieve the current theme object from the Vue context. This function relies on\n * Vue's dependency injection system to provide the theme associated with the current component.\n * If the theme cannot be found, it throws an error.\n *\n * @return {Object} The injected theme object associated with the current Vue context.\n * @throws {Error} If the theme injection cannot be found in the current context.\n */\nexport function useTheme() {\n getCurrentInstance('useTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find theme injection');\n\n return theme;\n}\n"],"names":["name"],"mappings":"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"}
1
+ {"version":3,"file":"useTheme.js","sources":["../../../../../src/composables/useTheme/useTheme.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { IN_BROWSER, mergeDeep } from '@cds/utils';\nimport { type App, computed, inject, type PropType, provide, ref, shallowRef, unref, watch, watchEffect } from 'vue';\n\nimport { DEFAULT_THEME, ThemeSymbol } from './internal/useTheme.constants';\nimport type { InternalThemeDefinition, Theme, ThemeInstance, ThemeOptions } from './internal/useTheme.types';\nimport {\n createCssClass,\n generateCssVariables,\n generateOnColors,\n generateVariations,\n parseThemeOptions,\n upsertStyles\n} from './internal/useTheme.utils';\n\n/**\n * Defines props related to theming for a Vue component.\n *\n * The `defineThemeProps` variable facilitates the creation of a property configuration\n * to manage the component's theme. It provides flexibility to set a theme either as a\n * predefined object or as a string-based theme identifier.\n */\nexport const defineThemeProps = propsFactory(\n {\n /**\n * Тема компонента\n * @en Component theme\n */\n theme: {\n type: String as PropType<Theme | string>,\n default: undefined\n }\n },\n 'theme'\n);\n\n/**\n * Creates a theme instance with support for generating color variations,\n * CSS classes, and dynamic theme installation in a Vue application.\n *\n * @param {ThemeOptions} [options] - Configuration options for the theme, including default theme name, themes, variations, and other settings.\n * @return {ThemeInstance & { install: (app: App) => void }} An object containing the theme instance properties, computed values, and an `install` function for integrating with a Vue app.\n */\nexport function createTheme(options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options);\n const _name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const systemName = shallowRef(DEFAULT_THEME);\n\n const name = computed({\n get() {\n return _name.value === 'system' ? systemName.value : _name.value;\n },\n set(val: string) {\n _name.value = val;\n }\n });\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {};\n\n for (const [name, original] of Object.entries(unref(themes))) {\n const defaultTheme = original.dark || name === 'dark' ? unref(themes).cdsDark : unref(themes).cdsLight;\n\n const merged = mergeDeep(defaultTheme, original) as InternalThemeDefinition;\n\n const colors = {\n ...merged.colors,\n ...generateVariations(merged.colors, parsedOptions.variations)\n };\n\n acc[name] = {\n ...merged,\n colors: {\n ...colors,\n ...generateOnColors(colors, merged.variables)\n }\n };\n }\n\n return acc;\n });\n\n const current = computed(() => unref(computedThemes)[unref(name)]);\n\n // const isSystem = toRef(() => _name.value === 'system');\n\n const styles = computed(() => {\n const lines: string[] = [];\n\n lines.push('@layer theme-base {\\n');\n\n if (unref(current).dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);\n }\n\n createCssClass(lines, ':root', generateCssVariables(unref(current), parsedOptions.prefix), parsedOptions.scope);\n\n for (const [themeName, theme] of Object.entries(unref(computedThemes))) {\n createCssClass(\n lines,\n `.${parsedOptions.prefix}-theme--${themeName}`,\n [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...generateCssVariables(theme, parsedOptions.prefix)],\n parsedOptions.scope\n );\n }\n\n lines.push('}\\n');\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = [];\n const fgLines: string[] = [];\n\n const colors = new Set(Object.values(unref(computedThemes)).flatMap((theme) => Object.keys(theme.colors)));\n\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`]);\n } else {\n if (parsedOptions.legacyClasses) {\n createCssClass(bgLines, `.${parsedOptions.prefix}-bg-${key}`, [\n `--${parsedOptions.prefix}-color-overlay-multiplier: var(--${parsedOptions.prefix}-color-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`,\n `color: rgb(var(--${parsedOptions.prefix}-color-on-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-text-${key}`, [\n `color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-border-${key}`, [\n `border-color: rgb(var(--${parsedOptions.prefix}-color-${key}))`\n ]);\n }\n }\n }\n\n lines.push(\n '@layer theme-background {\\n',\n ...bgLines.map((v) => ` ${v}`),\n '}\\n',\n '@layer theme-foreground {\\n',\n ...fgLines.map((v) => ` ${v}`),\n '}\\n'\n );\n }\n\n return '@layer cds-utilities {\\n' + lines.map((v) => ` ${v}`).join('') + '\\n}';\n });\n\n function getHead() {\n return {\n style: [\n {\n children: unref(styles),\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || (false as never)\n }\n ]\n };\n }\n\n function install(app: App) {\n if (parsedOptions.isDisabled) return;\n\n const head = app._context.provides.usehead;\n\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n\n if (IN_BROWSER) {\n watch(styles, () => entry.patch(getHead));\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true });\n } else {\n updateStyles();\n }\n\n function updateStyles() {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);\n }\n }\n }\n\n const themeClasses = computed(() => (parsedOptions.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\n\n/**\n * Provides a theme to the current component and its descendants.\n *\n * This method injects an existing theme instance, validates its existence, and creates\n * a new extended theme instance with additional properties based on the provided or\n * inherited theme configuration. The new theme is then provided to the component's\n * context for usage in child components.\n *\n * @param {Object} props - Configuration options for the theme.\n * @param {string} [props.theme] - A string representing the name of the theme to be applied. If not provided, the theme is inherited from the injected theme instance.\n * @return {ThemeInstance} The newly created theme instance with updated properties, which includes the computed name, current theme object, and the theme's CSS class.\n */\nexport function provideTheme(props: { theme?: string }) {\n getCurrentInstance('provideTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find CDS theme injection');\n\n const name = computed<string>(() => {\n return props.theme ?? unref(theme.name);\n });\n const current = computed(() => unref(theme.themes)[unref(name)]);\n\n const themeClasses = computed(() => (theme.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses\n };\n\n provide(ThemeSymbol, newTheme);\n\n return newTheme;\n}\n\n/**\n * A function to retrieve the current theme object from the Vue context. This function relies on\n * Vue's dependency injection system to provide the theme associated with the current component.\n * If the theme cannot be found, it throws an error.\n *\n * @return {Object} The injected theme object associated with the current Vue context.\n * @throws {Error} If the theme injection cannot be found in the current context.\n */\nexport function useTheme() {\n getCurrentInstance('useTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find theme injection');\n\n return theme;\n}\n"],"names":["name"],"mappings":"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"}
@@ -22,7 +22,10 @@ const easingPatterns = {
22
22
  };
23
23
  const defineTransitionProps = propsFactory(
24
24
  {
25
- /** Анимация перехода */
25
+ /**
26
+ * Анимация перехода
27
+ * @en Transition animation
28
+ */
26
29
  transition: {
27
30
  type: null,
28
31
  default: "fade-transition",