@dxtmisha/constructor 0.23.0 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/package.json +36 -6
  2. package/src/classes/AriaStaticInclude.ts +269 -0
  3. package/src/classes/DescriptionInclude.ts +19 -2
  4. package/src/classes/EnabledInclude.ts +11 -0
  5. package/src/classes/EventClickInclude.ts +2 -2
  6. package/src/classes/LabelHighlightInclude.ts +35 -0
  7. package/src/classes/LabelInclude.ts +40 -5
  8. package/src/classes/ModelInclude.ts +50 -1
  9. package/src/classes/ModelValueInclude.ts +73 -0
  10. package/src/classes/TabIndexInclude.ts +260 -0
  11. package/src/classes/TextInclude.ts +102 -0
  12. package/src/classes/TouchEventInclude.ts +284 -0
  13. package/src/classes/field/FieldArrowInclude.ts +189 -0
  14. package/src/classes/field/FieldAttributesInclude.ts +87 -28
  15. package/src/classes/field/FieldChangeInclude.ts +1 -1
  16. package/src/classes/field/FieldElementInclude.ts +1 -1
  17. package/src/classes/field/FieldEventInclude.ts +253 -0
  18. package/src/classes/field/FieldInputModeInclude.ts +48 -0
  19. package/src/classes/field/FieldMatchInclude.ts +9 -3
  20. package/src/classes/field/FieldTypeInclude.ts +11 -6
  21. package/src/classes/field/FieldValidationInclude.ts +1 -4
  22. package/src/classes/field/FieldValueInclude.ts +10 -0
  23. package/src/constructors/Accordion/Accordion.ts +68 -0
  24. package/src/constructors/Accordion/AccordionDesign.tsx +192 -0
  25. package/src/constructors/Accordion/basicTypes.ts +0 -0
  26. package/src/constructors/Accordion/index.ts +5 -0
  27. package/src/constructors/Accordion/properties.json +16 -0
  28. package/src/constructors/Accordion/props.ts +55 -0
  29. package/src/constructors/Accordion/style.scss +12 -0
  30. package/src/constructors/Accordion/types.ts +63 -0
  31. package/src/constructors/ActionSheet/ActionSheet.ts +78 -0
  32. package/src/constructors/ActionSheet/ActionSheetDesign.tsx +125 -0
  33. package/src/constructors/ActionSheet/basicTypes.ts +0 -0
  34. package/src/constructors/ActionSheet/index.ts +5 -0
  35. package/src/constructors/ActionSheet/properties.json +14 -0
  36. package/src/constructors/ActionSheet/props.ts +44 -0
  37. package/src/constructors/ActionSheet/style.scss +25 -0
  38. package/src/constructors/ActionSheet/types.ts +54 -0
  39. package/src/constructors/Actions/Actions.ts +60 -0
  40. package/src/constructors/Actions/ActionsDesign.tsx +212 -0
  41. package/src/constructors/Actions/ActionsInclude.ts +109 -0
  42. package/src/constructors/Actions/basicTypes.ts +40 -0
  43. package/src/constructors/Actions/index.ts +6 -0
  44. package/src/constructors/Actions/properties.json +63 -0
  45. package/src/constructors/Actions/props.ts +42 -0
  46. package/src/constructors/Actions/style.scss +11 -0
  47. package/src/constructors/Actions/types.ts +52 -0
  48. package/src/constructors/Anchor/Anchor.ts +113 -0
  49. package/src/constructors/Anchor/AnchorDesign.tsx +242 -0
  50. package/src/constructors/Anchor/AnchorEvent.ts +76 -0
  51. package/src/constructors/Anchor/AnchorHref.ts +54 -0
  52. package/src/constructors/Anchor/AnchorIcon.ts +54 -0
  53. package/src/constructors/Anchor/AnchorTo.ts +46 -0
  54. package/src/constructors/Anchor/basicTypes.ts +9 -0
  55. package/src/constructors/Anchor/index.ts +5 -0
  56. package/src/constructors/Anchor/properties.json +3 -0
  57. package/src/constructors/Anchor/props.ts +54 -0
  58. package/src/constructors/Anchor/style.scss +10 -0
  59. package/src/constructors/Anchor/types.ts +47 -0
  60. package/src/constructors/Arrow/Arrow.ts +134 -0
  61. package/src/constructors/Arrow/ArrowDesign.tsx +226 -0
  62. package/src/constructors/Arrow/ArrowElement.ts +139 -0
  63. package/src/constructors/Arrow/ArrowElementTarget.ts +72 -0
  64. package/src/constructors/Arrow/ArrowEvent.ts +126 -0
  65. package/src/constructors/Arrow/ArrowInclude.ts +85 -0
  66. package/src/constructors/Arrow/ArrowParent.ts +100 -0
  67. package/src/constructors/Arrow/ArrowPosition.ts +231 -0
  68. package/src/constructors/Arrow/basicTypes.ts +50 -0
  69. package/src/constructors/Arrow/index.ts +6 -0
  70. package/src/constructors/Arrow/properties.json +23 -0
  71. package/src/constructors/Arrow/props.ts +31 -0
  72. package/src/constructors/Arrow/style.scss +133 -0
  73. package/src/constructors/Arrow/types.ts +54 -0
  74. package/src/constructors/Badge/BadgeDesign.tsx +4 -1
  75. package/src/constructors/Badge/properties.json +36 -36
  76. package/src/constructors/Badge/props.ts +3 -1
  77. package/src/constructors/Badge/types.ts +3 -3
  78. package/src/constructors/Bars/Bars.ts +10 -4
  79. package/src/constructors/Bars/BarsDesign.tsx +17 -11
  80. package/src/constructors/Bars/BarsInclude.ts +5 -2
  81. package/src/constructors/Bars/properties.json +6 -6
  82. package/src/constructors/Bars/props.ts +3 -1
  83. package/src/constructors/Bars/style.scss +4 -0
  84. package/src/constructors/Bars/types.ts +3 -3
  85. package/src/constructors/Block/Block.ts +105 -0
  86. package/src/constructors/Block/BlockDesign.tsx +219 -0
  87. package/src/constructors/Block/basicTypes.ts +0 -0
  88. package/src/constructors/Block/index.ts +5 -0
  89. package/src/constructors/Block/properties.json +10 -0
  90. package/src/constructors/Block/props.ts +46 -0
  91. package/src/constructors/Block/style.scss +11 -0
  92. package/src/constructors/Block/types.ts +64 -0
  93. package/src/constructors/Button/Button.ts +26 -2
  94. package/src/constructors/Button/ButtonDesign.tsx +11 -6
  95. package/src/constructors/Button/ButtonInclude.ts +8 -5
  96. package/src/constructors/Button/index.ts +1 -0
  97. package/src/constructors/Button/properties.json +84 -84
  98. package/src/constructors/Button/props.ts +5 -1
  99. package/src/constructors/Button/style.scss +1 -1
  100. package/src/constructors/Button/types.ts +2 -2
  101. package/src/constructors/Cell/Cell.ts +23 -6
  102. package/src/constructors/Cell/CellDesign.tsx +53 -22
  103. package/src/constructors/Cell/basicTypes.ts +33 -0
  104. package/src/constructors/Cell/properties.json +52 -52
  105. package/src/constructors/Cell/props.ts +16 -13
  106. package/src/constructors/Cell/style.scss +1 -1
  107. package/src/constructors/Cell/types.ts +3 -3
  108. package/src/constructors/Chip/ChipDesign.tsx +5 -5
  109. package/src/constructors/Chip/ChipInclude.ts +83 -0
  110. package/src/constructors/Chip/basicTypes.ts +12 -0
  111. package/src/constructors/Chip/index.ts +2 -0
  112. package/src/constructors/Chip/properties.json +3 -3
  113. package/src/constructors/Chip/types.ts +5 -5
  114. package/src/constructors/ChipGroup/ChipGroup.ts +74 -0
  115. package/src/constructors/ChipGroup/ChipGroupDesign.tsx +162 -0
  116. package/src/constructors/ChipGroup/basicTypes.ts +6 -0
  117. package/src/constructors/ChipGroup/index.ts +5 -0
  118. package/src/constructors/ChipGroup/properties.json +3 -0
  119. package/src/constructors/ChipGroup/props.ts +50 -0
  120. package/src/constructors/ChipGroup/style.scss +6 -0
  121. package/src/constructors/ChipGroup/types.ts +47 -0
  122. package/src/constructors/Dialog/Dialog.ts +145 -0
  123. package/src/constructors/Dialog/DialogDesign.tsx +135 -0
  124. package/src/constructors/Dialog/basicTypes.ts +0 -0
  125. package/src/constructors/Dialog/index.ts +5 -0
  126. package/src/constructors/Dialog/properties.json +23 -0
  127. package/src/constructors/Dialog/props.ts +76 -0
  128. package/src/constructors/Dialog/style.scss +18 -0
  129. package/src/constructors/Dialog/types.ts +67 -0
  130. package/src/constructors/Field/Field.ts +58 -19
  131. package/src/constructors/Field/FieldDesign.tsx +35 -17
  132. package/src/constructors/Field/FieldInclude.ts +141 -11
  133. package/src/constructors/Field/basicTypes.ts +35 -19
  134. package/src/constructors/Field/properties.json +92 -86
  135. package/src/constructors/Field/props.ts +6 -3
  136. package/src/constructors/Field/style.scss +36 -20
  137. package/src/constructors/Field/types.ts +13 -13
  138. package/src/constructors/FieldCounter/FieldCounterDesign.tsx +1 -0
  139. package/src/constructors/FieldCounter/FieldCounterInclude.ts +3 -1
  140. package/src/constructors/FieldCounter/basicTypes.ts +1 -0
  141. package/src/constructors/FieldCounter/properties.json +3 -3
  142. package/src/constructors/FieldCounter/props.ts +5 -2
  143. package/src/constructors/FieldCounter/types.ts +1 -1
  144. package/src/constructors/FieldLabel/FieldLabelDesign.tsx +6 -2
  145. package/src/constructors/FieldLabel/FieldLabelInclude.ts +13 -4
  146. package/src/constructors/FieldLabel/properties.json +4 -4
  147. package/src/constructors/FieldLabel/props.ts +2 -2
  148. package/src/constructors/FieldLabel/types.ts +2 -2
  149. package/src/constructors/FieldMessage/FieldMessage.ts +19 -0
  150. package/src/constructors/FieldMessage/FieldMessageDesign.tsx +36 -4
  151. package/src/constructors/FieldMessage/FieldMessageInclude.ts +11 -1
  152. package/src/constructors/FieldMessage/basicTypes.ts +15 -1
  153. package/src/constructors/FieldMessage/properties.json +10 -9
  154. package/src/constructors/FieldMessage/props.ts +4 -0
  155. package/src/constructors/FieldMessage/style.scss +16 -1
  156. package/src/constructors/FieldMessage/types.ts +4 -2
  157. package/src/constructors/Icon/Icon.ts +37 -2
  158. package/src/constructors/Icon/IconDesign.tsx +46 -39
  159. package/src/constructors/Icon/properties.json +25 -25
  160. package/src/constructors/Icon/props.ts +22 -16
  161. package/src/constructors/Icon/types.ts +1 -1
  162. package/src/constructors/Image/Image.ts +68 -10
  163. package/src/constructors/Image/ImageBackground.ts +15 -2
  164. package/src/constructors/Image/ImageCoordinator.ts +4 -2
  165. package/src/constructors/Image/ImageData.ts +4 -0
  166. package/src/constructors/Image/ImageDesign.tsx +81 -15
  167. package/src/constructors/Image/ImageFile.ts +2 -13
  168. package/src/constructors/Image/ImageImg.ts +218 -0
  169. package/src/constructors/Image/ImagePdf.ts +2 -2
  170. package/src/constructors/Image/basicTypes.ts +5 -0
  171. package/src/constructors/Image/properties.json +17 -17
  172. package/src/constructors/Image/props.ts +34 -7
  173. package/src/constructors/Image/style.scss +42 -0
  174. package/src/constructors/Image/types.ts +1 -1
  175. package/src/constructors/Input/Input.ts +146 -0
  176. package/src/constructors/Input/InputDesign.tsx +174 -0
  177. package/src/constructors/Input/InputPassword.ts +54 -0
  178. package/src/constructors/Input/basicTypes.ts +3 -0
  179. package/src/constructors/Input/index.ts +5 -0
  180. package/src/constructors/Input/properties.json +2 -0
  181. package/src/constructors/Input/props.ts +53 -0
  182. package/src/constructors/Input/style.scss +5 -0
  183. package/src/constructors/Input/types.ts +48 -0
  184. package/src/constructors/List/List.ts +36 -11
  185. package/src/constructors/List/ListControl.ts +2 -2
  186. package/src/constructors/List/ListDesign.tsx +59 -38
  187. package/src/constructors/List/ListGo.ts +5 -3
  188. package/src/constructors/List/properties.json +16 -16
  189. package/src/constructors/List/props.ts +7 -0
  190. package/src/constructors/List/style.scss +14 -0
  191. package/src/constructors/List/types.ts +9 -9
  192. package/src/constructors/ListGroup/ListGroupDesign.tsx +8 -3
  193. package/src/constructors/ListGroup/basicTypes.ts +7 -0
  194. package/src/constructors/ListGroup/properties.json +15 -15
  195. package/src/constructors/ListGroup/props.ts +4 -4
  196. package/src/constructors/ListGroup/types.ts +2 -1
  197. package/src/constructors/ListItem/ListItem.ts +67 -7
  198. package/src/constructors/ListItem/ListItemDesign.tsx +13 -10
  199. package/src/constructors/ListItem/properties.json +52 -52
  200. package/src/constructors/ListItem/props.ts +24 -15
  201. package/src/constructors/ListItem/types.ts +12 -12
  202. package/src/constructors/ListMenu/ListMenu.ts +2 -1
  203. package/src/constructors/ListMenu/ListMenuDesign.tsx +3 -3
  204. package/src/constructors/ListMenu/properties.json +19 -19
  205. package/src/constructors/ListMenu/types.ts +3 -3
  206. package/src/constructors/Mask/MaskDesign.tsx +33 -28
  207. package/src/constructors/Mask/MaskEvent.ts +41 -2
  208. package/src/constructors/Mask/MaskInclude.ts +147 -0
  209. package/src/constructors/Mask/basicTypes.ts +19 -1
  210. package/src/constructors/Mask/properties.json +30 -29
  211. package/src/constructors/Mask/props.ts +1 -1
  212. package/src/constructors/Mask/style.scss +2 -4
  213. package/src/constructors/Mask/types.ts +4 -4
  214. package/src/constructors/Menu/Menu.ts +17 -5
  215. package/src/constructors/Menu/MenuDesign.tsx +11 -11
  216. package/src/constructors/Menu/MenuGo.ts +72 -0
  217. package/src/constructors/Menu/MenuInclude.ts +20 -10
  218. package/src/constructors/Menu/MenuSearch.ts +20 -1
  219. package/src/constructors/Menu/MenuValue.ts +7 -3
  220. package/src/constructors/Menu/MenuWindow.ts +2 -1
  221. package/src/constructors/Menu/basicTypes.ts +21 -4
  222. package/src/constructors/Menu/properties.json +17 -17
  223. package/src/constructors/Menu/props.ts +15 -3
  224. package/src/constructors/Menu/types.ts +6 -16
  225. package/src/constructors/Modal/Modal.ts +53 -0
  226. package/src/constructors/Modal/ModalAbstract.ts +74 -0
  227. package/src/constructors/Modal/ModalDesign.tsx +63 -0
  228. package/src/constructors/Modal/ModalDesignAbstract.tsx +226 -0
  229. package/src/constructors/Modal/basicTypes.ts +0 -0
  230. package/src/constructors/Modal/index.ts +5 -0
  231. package/src/constructors/Modal/properties.json +17 -0
  232. package/src/constructors/Modal/props.ts +45 -0
  233. package/src/constructors/Modal/style.scss +20 -0
  234. package/src/constructors/Modal/types.ts +62 -0
  235. package/src/constructors/MotionTransform/MotionTransform.ts +65 -8
  236. package/src/constructors/MotionTransform/MotionTransformDesign.tsx +55 -21
  237. package/src/constructors/MotionTransform/MotionTransformElement.ts +7 -2
  238. package/src/constructors/MotionTransform/MotionTransformInclude.ts +2 -1
  239. package/src/constructors/MotionTransform/MotionTransformState.ts +5 -0
  240. package/src/constructors/MotionTransform/basicTypes.ts +18 -2
  241. package/src/constructors/MotionTransform/properties.json +35 -35
  242. package/src/constructors/MotionTransform/props.ts +13 -7
  243. package/src/constructors/MotionTransform/style.scss +24 -2
  244. package/src/constructors/MotionTransform/types.ts +7 -7
  245. package/src/constructors/Progress/Progress.ts +12 -2
  246. package/src/constructors/Progress/ProgressDesign.tsx +75 -53
  247. package/src/constructors/Progress/ProgressInclude.ts +13 -1
  248. package/src/constructors/Progress/properties.json +47 -47
  249. package/src/constructors/Progress/props.ts +5 -1
  250. package/src/constructors/Progress/style.scss +2 -2
  251. package/src/constructors/Progress/types.ts +4 -4
  252. package/src/constructors/Ripple/Ripple.ts +1 -1
  253. package/src/constructors/Ripple/RippleDesign.tsx +7 -4
  254. package/src/constructors/Ripple/RippleItem.ts +1 -1
  255. package/src/constructors/Ripple/style.scss +4 -0
  256. package/src/constructors/Ripple/types.ts +2 -2
  257. package/src/constructors/Scrollbar/Scrollbar.ts +3 -3
  258. package/src/constructors/Scrollbar/ScrollbarDesign.tsx +1 -1
  259. package/src/constructors/Scrollbar/properties.json +33 -33
  260. package/src/constructors/Scrollbar/types.ts +1 -1
  261. package/src/constructors/Section/Section.ts +33 -0
  262. package/src/constructors/Section/SectionDesign.tsx +127 -0
  263. package/src/constructors/Section/basicTypes.ts +0 -0
  264. package/src/constructors/Section/index.ts +5 -0
  265. package/src/constructors/Section/properties.json +2 -0
  266. package/src/constructors/Section/props.ts +29 -0
  267. package/src/constructors/Section/style.scss +5 -0
  268. package/src/constructors/Section/types.ts +47 -0
  269. package/src/constructors/Select/Select.ts +172 -0
  270. package/src/constructors/Select/SelectDesign.tsx +288 -0
  271. package/src/constructors/Select/SelectFilter.ts +43 -0
  272. package/src/constructors/Select/SelectInput.ts +68 -0
  273. package/src/constructors/Select/basicTypes.ts +0 -0
  274. package/src/constructors/Select/index.ts +5 -0
  275. package/src/constructors/Select/properties.json +3 -0
  276. package/src/constructors/Select/props.ts +63 -0
  277. package/src/constructors/Select/style.scss +5 -0
  278. package/src/constructors/Select/types.ts +53 -0
  279. package/src/constructors/SelectValue/SelectValue.ts +95 -0
  280. package/src/constructors/SelectValue/SelectValueDesign.tsx +198 -0
  281. package/src/constructors/SelectValue/SelectValueInclude.ts +92 -0
  282. package/src/constructors/SelectValue/basicTypes.ts +17 -0
  283. package/src/constructors/SelectValue/index.ts +6 -0
  284. package/src/constructors/SelectValue/properties.json +7 -0
  285. package/src/constructors/SelectValue/props.ts +48 -0
  286. package/src/constructors/SelectValue/style.scss +14 -0
  287. package/src/constructors/SelectValue/types.ts +47 -0
  288. package/src/constructors/Skeleton/Skeleton.ts +1 -3
  289. package/src/constructors/Skeleton/SkeletonDesign.tsx +7 -1
  290. package/src/constructors/Skeleton/SkeletonInclude.ts +5 -0
  291. package/src/constructors/Skeleton/properties.json +24 -24
  292. package/src/constructors/Skeleton/types.ts +1 -1
  293. package/src/constructors/TextareaAutosize/TextareaAutosize.ts +41 -0
  294. package/src/constructors/TextareaAutosize/TextareaAutosizeDesign.tsx +147 -0
  295. package/src/constructors/TextareaAutosize/TextareaAutosizeResize.ts +109 -0
  296. package/src/constructors/TextareaAutosize/TextareaAutosizeValue.ts +69 -0
  297. package/src/constructors/TextareaAutosize/basicTypes.ts +0 -0
  298. package/src/constructors/TextareaAutosize/index.ts +5 -0
  299. package/src/constructors/TextareaAutosize/properties.json +6 -0
  300. package/src/constructors/TextareaAutosize/props.ts +34 -0
  301. package/src/constructors/TextareaAutosize/style.scss +31 -0
  302. package/src/constructors/TextareaAutosize/types.ts +50 -0
  303. package/src/constructors/Tooltip/Tooltip.ts +138 -0
  304. package/src/constructors/Tooltip/TooltipClasses.ts +90 -0
  305. package/src/constructors/Tooltip/TooltipDesign.tsx +198 -0
  306. package/src/constructors/Tooltip/TooltipEvent.ts +103 -0
  307. package/src/constructors/Tooltip/TooltipInclude.ts +114 -0
  308. package/src/constructors/Tooltip/TooltipOpen.ts +128 -0
  309. package/src/constructors/Tooltip/TooltipPosition.ts +92 -0
  310. package/src/constructors/Tooltip/TooltipStatus.ts +97 -0
  311. package/src/constructors/Tooltip/TooltipStyle.ts +123 -0
  312. package/src/constructors/Tooltip/basicTypes.ts +39 -0
  313. package/src/constructors/Tooltip/index.ts +6 -0
  314. package/src/constructors/Tooltip/properties.json +14 -0
  315. package/src/constructors/Tooltip/props.ts +49 -0
  316. package/src/constructors/Tooltip/style.scss +43 -0
  317. package/src/constructors/Tooltip/types.ts +58 -0
  318. package/src/constructors/Window/Window.ts +52 -16
  319. package/src/constructors/Window/WindowClasses.ts +33 -0
  320. package/src/constructors/Window/WindowClient.ts +39 -0
  321. package/src/constructors/Window/WindowDesign.tsx +31 -14
  322. package/src/constructors/Window/WindowEsc.ts +114 -0
  323. package/src/constructors/Window/WindowHidden.ts +120 -0
  324. package/src/constructors/Window/WindowInclude.ts +2 -2
  325. package/src/constructors/Window/WindowOpen.ts +10 -1
  326. package/src/constructors/Window/WindowOrigin.ts +5 -1
  327. package/src/constructors/Window/WindowStatic.ts +3 -1
  328. package/src/constructors/Window/WindowVerification.ts +8 -5
  329. package/src/constructors/Window/basicTypes.ts +26 -16
  330. package/src/constructors/Window/properties.json +239 -236
  331. package/src/constructors/Window/props.ts +10 -1
  332. package/src/constructors/Window/style.scss +11 -0
  333. package/src/constructors/Window/types.ts +2 -2
  334. package/src/functions/{getClassTegAStatic.ts → getClassTagAStatic.ts} +1 -1
  335. package/src/library.ts +13 -1
  336. package/src/types/ariaTypes.ts +366 -0
  337. package/src/types/descriptionTypes.ts +8 -0
  338. package/src/types/fieldTypes.ts +120 -16
  339. package/src/types/labelTypes.ts +39 -0
  340. package/src/types/modelTypes.ts +16 -0
  341. package/src/types/roleTypes.ts +88 -0
  342. package/src/types/textTypes.ts +33 -0
  343. package/src/types/touchEventTypes.ts +43 -0
@@ -1,7 +1,7 @@
1
1
  import { computed, type Ref } from 'vue'
2
2
  import { getElementId } from '@dxtmisha/functional'
3
3
 
4
- import type { MotionTransformClassList, MotionTransformStyle } from './basicTypes'
4
+ import { __MOTION_TRANSFORM_TYPE_BODY_NAME, type MotionTransformClassList, type MotionTransformStyle } from './basicTypes'
5
5
  import type { MotionTransformProps } from './props'
6
6
 
7
7
  /**
@@ -10,6 +10,10 @@ import type { MotionTransformProps } from './props'
10
10
  * Класс для работы с элементами и классами.
11
11
  */
12
12
  export class MotionTransformElement {
13
+ readonly id = getElementId()
14
+ readonly idControl = `${this.id}-control`
15
+ readonly idBody = `${this.id}-body`
16
+
13
17
  readonly classes: MotionTransformClassList
14
18
  readonly style: MotionTransformStyle
15
19
 
@@ -122,7 +126,8 @@ export class MotionTransformElement {
122
126
  isWindow(): boolean {
123
127
  return Boolean(
124
128
  this.element.value
125
- && getComputedStyle(this.element.value).content === '"--WINDOW--"'
129
+ && getComputedStyle(this.element.value)
130
+ .getPropertyValue(__MOTION_TRANSFORM_TYPE_BODY_NAME) === '"--WINDOW--"'
126
131
  )
127
132
  }
128
133
 
@@ -12,7 +12,8 @@ import type { MotionTransformProps } from './props'
12
12
  import type { MotionTransformEmits, MotionTransformExpose, MotionTransformSlots } from './types'
13
13
  import type {
14
14
  MotionTransformComponentInclude,
15
- MotionTransformEmitOptions, MotionTransformExposeInclude,
15
+ MotionTransformEmitOptions,
16
+ MotionTransformExposeInclude,
16
17
  MotionTransformPropsInclude
17
18
  } from './basicTypes'
18
19
 
@@ -1,5 +1,6 @@
1
1
  import { computed, ref, watch } from 'vue'
2
2
 
3
+ import { TabIndexInclude } from '../../classes/TabIndexInclude'
3
4
  import { MotionTransformElement } from './MotionTransformElement'
4
5
  import { MotionTransformSize } from './MotionTransformSize'
5
6
 
@@ -24,13 +25,16 @@ export class MotionTransformState {
24
25
  * Конструктор.
25
26
  * @param props input data/ входные данные
26
27
  * @param element class object for managing an element/ объект класса для управления элементом
28
+ * @param tabIndex class object for managing tab indices/ объект класса для управления табуляцией
27
29
  * @param size class object for managing sizes/ объект класса для управления размерами
28
30
  */
29
31
  constructor(
30
32
  props: MotionTransformProps,
31
33
  protected element: MotionTransformElement,
34
+ protected tabIndex: TabIndexInclude<HTMLDivElement>,
32
35
  protected size: MotionTransformSize
33
36
  ) {
37
+ watch([this.element.element, this.show], this.makeShow)
34
38
  watch([this.element.element, this.open], this.makeOpen)
35
39
  watch([this.element.element, this.teleport], this.makeTeleport)
36
40
 
@@ -115,6 +119,7 @@ export class MotionTransformState {
115
119
  }
116
120
 
117
121
  this.make()
122
+ this.tabIndex.toggle(this.open.value)
118
123
  }
119
124
 
120
125
  return this
@@ -1,6 +1,7 @@
1
1
  import type { ComputedRef, Ref } from 'vue'
2
2
  import type { ConstrBind } from '@dxtmisha/functional'
3
3
 
4
+ import type { AriaRoleControlPropsInclude } from '../../types/ariaTypes'
4
5
  import type { MotionTransformEmits, MotionTransformExpose } from './types'
5
6
  import type { MotionTransformProps } from './props'
6
7
 
@@ -75,6 +76,13 @@ export type MotionTransformControlItem = {
75
76
  isShow: ComputedRef<boolean>
76
77
  /** Helper CSS classes/ Вспомогательные CSS‑классы */
77
78
  classes: MotionTransformClassList
79
+ /** Helper style variables/ Вспомогательные стилевые переменные */
80
+ idControl: string
81
+ /** Helper style variables/ Вспомогательные стилевые переменные */
82
+ idBody: string
83
+
84
+ /** Binding attributes for element/ Атрибуты привязки для элемента */
85
+ binds: AriaRoleControlPropsInclude
78
86
  }
79
87
 
80
88
  /**
@@ -109,7 +117,9 @@ export interface MotionTransformExposeInclude extends MotionTransformExpose {
109
117
  * Props used to include and configure MotionTransform/
110
118
  * Свойства для подключения и настройки MotionTransform
111
119
  */
112
- export interface MotionTransformPropsInclude {
120
+ export interface MotionTransformPropsInclude<
121
+ MotionTransform extends MotionTransformProps = MotionTransformProps
122
+ > {
113
123
  /** Open state/ Состояние открытия */
114
124
  open?: boolean
115
125
  /** Click on head opens component/ Клик по заголовку открывает компонент */
@@ -117,5 +127,11 @@ export interface MotionTransformPropsInclude {
117
127
  /** Auto close on outside click/ Авто‑закрытие при клике вне */
118
128
  autoClose?: boolean
119
129
  /** Additional attributes for MotionTransform/ Дополнительные атрибуты для MotionTransform */
120
- motionTransformAttrs?: ConstrBind<MotionTransformProps>
130
+ motionTransformAttrs?: ConstrBind<MotionTransform>
121
131
  }
132
+
133
+ /**
134
+ * CSS variable name for MotionTransform body type/
135
+ * Имя CSS‑переменной для типа тела MotionTransform
136
+ */
137
+ export const __MOTION_TRANSFORM_TYPE_BODY_NAME = '--sys-type-body'
@@ -1,35 +1,35 @@
1
- {
2
- "z-index": {
3
- "_type": "var"
4
- },
5
- "background-full": {
6
- "_type": "var"
7
- },
8
- "background-color": {
9
- "_type": "var"
10
- },
11
- "box-shadow": {
12
- "_type": "var"
13
- },
14
- "#context": {},
15
- "#head": {},
16
- "#body": {},
17
- "#backdrop": {},
18
- "#scrim": {},
19
- "#clickNone": {},
20
- "~section": {},
21
- "~animationHeadPosition": {
22
- "~top": {},
23
- "~toBottom": {},
24
- "_default": "top"
25
- },
26
- "~adaptive": {
27
- "~planeAlways": {
28
- "content": "none"
29
- },
30
- "group|plane": {
31
- "link|plane": "{??adaptive.planeAlways}",
32
- "_type": "media-group"
33
- }
34
- }
35
- }
1
+ {
2
+ "z-index": {
3
+ "_type": "var"
4
+ },
5
+ "background-full": {
6
+ "_type": "var"
7
+ },
8
+ "background-color": {
9
+ "_type": "var"
10
+ },
11
+ "box-shadow": {
12
+ "_type": "var"
13
+ },
14
+ "#context": {},
15
+ "#head": {},
16
+ "#body": {},
17
+ "#backdrop": {},
18
+ "#scrim": {},
19
+ "#clickNone": {},
20
+ "~section": {},
21
+ "~animationHeadPosition": {
22
+ "~top": {},
23
+ "~toBottom": {},
24
+ "_default": "top"
25
+ },
26
+ "~adaptive": {
27
+ "~planeAlways": {
28
+ "=sys-type-body": "unset"
29
+ },
30
+ "group|plane": {
31
+ "link|plane": "{??adaptive.planeAlways}",
32
+ "_type": "media-group"
33
+ }
34
+ }
35
+ }
@@ -1,14 +1,17 @@
1
+ import type { AriaRoleByPropsInclude } from '../../types/ariaTypes'
2
+
1
3
  interface MotionTransformPropsToken {
2
- // :type [!] System label / Системная метка
3
- section?: boolean
4
- animationHeadPosition?: 'top' | 'toBottom'
5
- adaptive?: 'planeAlways'
4
+ // :type [!] System label / Системная метка
5
+ section?: boolean
6
+ animationHeadPosition?: 'top' | 'toBottom'
7
+ adaptive?: 'planeAlways'
6
8
  // :type [!] System label / Системная метка
7
9
  }
8
10
 
9
- export interface MotionTransformPropsBasic {
11
+ export interface MotionTransformPropsBasic extends AriaRoleByPropsInclude {
10
12
  // Status
11
13
  'open'?: boolean
14
+ 'inDom'?: boolean
12
15
 
13
16
  // Value
14
17
  'ignore'?: HTMLElement | string
@@ -19,6 +22,8 @@ export interface MotionTransformPropsBasic {
19
22
  'autoClose'?: boolean
20
23
  'animationShow'?: boolean
21
24
 
25
+ 'tagBody'?: string
26
+
22
27
  // Event
23
28
  'modelOpen'?: boolean
24
29
  'onUpdate:open'?: (value: boolean) => void
@@ -42,9 +47,10 @@ export const defaultsMotionTransform = {
42
47
  clickOpen: true,
43
48
  autoClose: true,
44
49
  animationShow: true,
50
+ tagBody: 'section',
45
51
  ...{
46
- // :default [!] System label / Системная метка
47
- animationHeadPosition: 'top'
52
+ // :default [!] System label / Системная метка
53
+ animationHeadPosition: 'top'
48
54
  // :default [!] System label / Системная метка
49
55
  }
50
56
  }
@@ -19,8 +19,9 @@
19
19
  background-color: transparent;
20
20
  box-shadow: none;
21
21
 
22
- content: "--WINDOW--";
22
+ --sys-type-body: "--WINDOW--";
23
23
 
24
+ will-change: background-color, box-shadow, height, transform, scale;
24
25
  transition-property: background-color, box-shadow, height, transform, scale;
25
26
  transition-timing-function: ui.v('d.ref.transitionFunction.e40i80');
26
27
  transition-duration: ui.v('d.sys.transitionDuration.container.close');
@@ -29,18 +30,22 @@
29
30
  width: ui.v('??sys.context.width', auto);
30
31
  height: ui.v('??sys.context.height', auto);
31
32
 
32
- content: "--ANIMATION--";
33
+ --sys-type-body: "--ANIMATION--";
33
34
  }
34
35
 
35
36
  &__head {
36
37
  opacity: 1;
38
+ will-change: inherit;
37
39
  }
38
40
 
39
41
  &__body {
42
+ display: flow-root block;
40
43
  position: absolute;
41
44
  top: 0;
42
45
  opacity: 0;
46
+ outline: none;
43
47
 
48
+ will-change: inherit;
44
49
  transition: opacity 67ms linear 50ms;
45
50
  }
46
51
 
@@ -82,10 +87,17 @@
82
87
  }
83
88
  }
84
89
 
90
+ &[data-open="none"][data-show="none"] {
91
+ @include ui.subclass('body') {
92
+ display: none;
93
+ }
94
+ }
95
+
85
96
  &[data-show="show"] {
86
97
  overflow-y: hidden;
87
98
 
88
99
  @include ui.subclass('head') {
100
+ overflow: hidden;
89
101
  transition: opacity 67ms linear 50ms, visibility 67ms linear 50ms;
90
102
 
91
103
  > * {
@@ -177,4 +189,14 @@
177
189
  bottom: 0;
178
190
  }
179
191
  }
192
+
193
+ @include ui.mediaPrefersReducedMotion {
194
+ &,
195
+ &__head,
196
+ &__body,
197
+ &__background {
198
+ transition-delay: 0.1ms !important;
199
+ transition-duration: 0.1ms !important;
200
+ }
201
+ }
180
202
  }
@@ -75,12 +75,12 @@ export interface MotionTransformSlots {
75
75
  */
76
76
  export type MotionTransformClasses = {
77
77
  main: ConstrClass
78
- // :classes [!] System label / Системная метка
79
- context: string
80
- head: string
81
- body: string
82
- backdrop: string
83
- scrim: string
84
- clickNone: string
78
+ // :classes [!] System label / Системная метка
79
+ context: string
80
+ head: string
81
+ body: string
82
+ backdrop: string
83
+ scrim: string
84
+ clickNone: string
85
85
  // :classes [!] System label / Системная метка
86
86
  }
@@ -1,5 +1,11 @@
1
- import { computed, ref, type Ref, type ToRefs, watch } from 'vue'
2
- import { type ConstrClassObject, type ConstrEmit, type ConstrStyles, DesignComp, toNumber } from '@dxtmisha/functional'
1
+ import { computed, onUnmounted, ref, type Ref, type ToRefs, watch } from 'vue'
2
+ import {
3
+ type ConstrClassObject,
4
+ type ConstrEmit,
5
+ type ConstrStyles,
6
+ DesignComp,
7
+ toNumber
8
+ } from '@dxtmisha/functional'
3
9
 
4
10
  import type { ProgressComponents, ProgressEmits, ProgressSlots } from './types'
5
11
  import type { ProgressProps } from './props'
@@ -41,6 +47,10 @@ export class Progress {
41
47
  this.switch,
42
48
  { immediate: true }
43
49
  )
50
+
51
+ onUnmounted(() => {
52
+ clearTimeout(this.timeout)
53
+ })
44
54
  }
45
55
 
46
56
  /**
@@ -1,10 +1,11 @@
1
- import { h, type VNode } from 'vue'
1
+ import { computed, h, type VNode } from 'vue'
2
2
  import {
3
3
  type ConstrOptions,
4
4
  type ConstrStyles,
5
5
  DesignConstructorAbstract
6
6
  } from '@dxtmisha/functional'
7
7
 
8
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
8
9
  import { Progress } from './Progress'
9
10
 
10
11
  import {
@@ -68,51 +69,6 @@ export class ProgressDesign<
68
69
  this.init()
69
70
  }
70
71
 
71
- /**
72
- * Render elements for the circular loader.
73
- *
74
- * Рендер элементов для кругового загрузчика.
75
- */
76
- readonly renderCircle = (): VNode[] => {
77
- if (this.props.circular) {
78
- return [
79
- h('circle', {
80
- class: this.classes?.value.circleSub,
81
- cx: '24',
82
- cy: '24',
83
- r: '20'
84
- }),
85
- h('circle', {
86
- class: this.classes?.value.circle,
87
- cx: '24',
88
- cy: '24',
89
- r: '20'
90
- })
91
- ]
92
- }
93
-
94
- return []
95
- }
96
-
97
- /**
98
- * Render dot at the end.
99
- *
100
- * Рендер точки в конце.
101
- */
102
- readonly renderPoint = (): VNode[] => {
103
- if (
104
- this.props.linear
105
- && this.props.point && (
106
- this.props.value
107
- || ((this.props as any).indeterminate) === 'type1'
108
- )
109
- ) {
110
- return [h('span', { class: this.classes?.value.point })]
111
- }
112
-
113
- return []
114
- }
115
-
116
72
  /**
117
73
  * Initialization of all the necessary properties for work
118
74
  *
@@ -162,14 +118,80 @@ export class ProgressDesign<
162
118
 
163
119
  return h(
164
120
  this.item.tag.value,
165
- {
166
- ...this.getAttrs(),
167
- class: this.classes?.value.main,
168
- style: this.styles?.value,
169
- viewBox: '0 0 48 48',
170
- onAnimationend: this.item.onAnimation
171
- },
121
+ this.propsMain.value,
172
122
  children
173
123
  )
174
124
  }
125
+
126
+ /**
127
+ * Render elements for the circular loader.
128
+ *
129
+ * Рендер элементов для кругового загрузчика.
130
+ */
131
+ readonly renderCircle = (): VNode[] => {
132
+ if (this.props.circular) {
133
+ return [
134
+ h('circle', {
135
+ class: this.classes?.value.circleSub,
136
+ cx: '24',
137
+ cy: '24',
138
+ r: '20'
139
+ }),
140
+ h('circle', {
141
+ class: this.classes?.value.circle,
142
+ cx: '24',
143
+ cy: '24',
144
+ r: '20'
145
+ })
146
+ ]
147
+ }
148
+
149
+ return []
150
+ }
151
+
152
+ /**
153
+ * Render dot at the end.
154
+ *
155
+ * Рендер точки в конце.
156
+ */
157
+ readonly renderPoint = (): VNode[] => {
158
+ if (
159
+ this.props.linear
160
+ && this.props.point && (
161
+ this.props.value
162
+ || ((this.props as any).indeterminate) === 'type1'
163
+ )
164
+ ) {
165
+ return [h('span', { class: this.classes?.value.point })]
166
+ }
167
+
168
+ return []
169
+ }
170
+
171
+ /**
172
+ * Props for the main element/ Свойства для главного элемента
173
+ */
174
+ protected readonly propsMain = computed(() => {
175
+ const props = {
176
+ ...this.getAttrs(),
177
+ class: this.classes?.value.main,
178
+ style: this.styles?.value,
179
+ viewBox: '0 0 48 48',
180
+ onAnimationend: this.item.onAnimation,
181
+ ...AriaStaticInclude.role('progressbar')
182
+ }
183
+
184
+ if (this.props.value) {
185
+ return {
186
+ ...props,
187
+ ...AriaStaticInclude.valueMinMax(
188
+ this.props.value,
189
+ 0,
190
+ this.props.max
191
+ )
192
+ }
193
+ }
194
+
195
+ return props
196
+ })
175
197
  }
@@ -1,6 +1,9 @@
1
1
  import { computed, type VNode } from 'vue'
2
2
  import { type ConstrBind, DesignComponents, getBind, getRef, type RefOrNormal } from '@dxtmisha/functional'
3
3
 
4
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
5
+
6
+ import type { AriaList } from '../../types/ariaTypes'
4
7
  import type { ProgressComponentInclude, ProgressPropsInclude } from './basicTypes'
5
8
  import type { ProgressProps } from './props'
6
9
 
@@ -26,10 +29,19 @@ export class ProgressInclude {
26
29
  }
27
30
 
28
31
  /**
29
- * Checks if data is available for the Progress component/ Проверяет, есть ли данные для компонента Progress
32
+ * Checks if data is available for the Progress component/
33
+ * Проверяет, есть ли данные для компонента Progress
30
34
  */
31
35
  readonly is = computed<boolean>(() => Boolean(this.props.loading))
32
36
 
37
+ /**
38
+ * list of aria properties for the progress component/
39
+ * список aria свойств для компонента Progress
40
+ */
41
+ readonly aria = computed<AriaList>(
42
+ () => AriaStaticInclude.busy(this.is.value)
43
+ )
44
+
33
45
  /**
34
46
  * list of properties for the progress component/ список свойств для компонента Progress
35
47
  */
@@ -1,47 +1,47 @@
1
- {
2
- "height": {
3
- "_type": "var"
4
- },
5
- "background-color": {
6
- "_type": "var"
7
- },
8
- "border-radius": {
9
- "_type": "var"
10
- },
11
- "opacity": {
12
- "_type": "var"
13
- },
14
- "#circle": {},
15
- "#circleSub": {},
16
- "point": {
17
- "_type": "state",
18
- "_subclass": true
19
- },
20
- "~linear": {
21
- "_category": "appearance",
22
- "_default": true
23
- },
24
- "~circular": {
25
- "inset": {
26
- "_type": "var"
27
- },
28
- "width": {
29
- "_type": "var"
30
- },
31
- "_category": "appearance"
32
- },
33
- "~indeterminate": {
34
- "~type1": {},
35
- "~type2": {},
36
- "~type3": {},
37
- "_default": "type1"
38
- },
39
- "~position": {
40
- "~top": {},
41
- "~bottom": {},
42
- "~static": {},
43
- "_default": "top"
44
- },
45
- "~dense": {},
46
- "~inverse": {}
47
- }
1
+ {
2
+ "height": {
3
+ "_type": "var"
4
+ },
5
+ "background-color": {
6
+ "_type": "var"
7
+ },
8
+ "border-radius": {
9
+ "_type": "var"
10
+ },
11
+ "opacity": {
12
+ "_type": "var"
13
+ },
14
+ "#circle": {},
15
+ "#circleSub": {},
16
+ "point": {
17
+ "_type": "state",
18
+ "_subclass": true
19
+ },
20
+ "~linear": {
21
+ "_category": "appearance",
22
+ "_default": true
23
+ },
24
+ "~circular": {
25
+ "inset": {
26
+ "_type": "var"
27
+ },
28
+ "width": {
29
+ "_type": "var"
30
+ },
31
+ "_category": "appearance"
32
+ },
33
+ "~indeterminate": {
34
+ "~type1": {},
35
+ "~type2": {},
36
+ "~type3": {},
37
+ "_default": "type1"
38
+ },
39
+ "~position": {
40
+ "~top": {},
41
+ "~bottom": {},
42
+ "~static": {},
43
+ "_default": "top"
44
+ },
45
+ "~dense": {},
46
+ "~inverse": {}
47
+ }
@@ -1,3 +1,5 @@
1
+ import type { AriaLabelPropsInclude, AriaLivePropsInclude } from '../../types/ariaTypes'
2
+
1
3
  interface ProgressPropsToken {
2
4
  // :type [!] System label / Системная метка
3
5
  point?: boolean
@@ -10,7 +12,8 @@ interface ProgressPropsToken {
10
12
  // :type [!] System label / Системная метка
11
13
  }
12
14
 
13
- export interface ProgressPropsBasic {
15
+ export interface ProgressPropsBasic extends AriaLabelPropsInclude,
16
+ AriaLivePropsInclude {
14
17
  // Status
15
18
  visible?: boolean
16
19
 
@@ -44,6 +47,7 @@ export const defaultsProgress = {
44
47
  max: 100,
45
48
  delay: 360,
46
49
  delayHide: 200,
50
+ ariaLive: 'polite',
47
51
  ...{
48
52
  // :default [!] System label / Системная метка
49
53
  linear: true,
@@ -64,7 +64,7 @@
64
64
 
65
65
  @include ui.subclass('circle') {
66
66
  animation-name: none !important;
67
- stroke-dasharray: calc(#{ui.v('??sys.value')} * #{ui.v('??circular.dasharray')}) #{ui.v('??circular.length')} !important;
67
+ stroke-dasharray: calc(#{ui.v('??sys.value', '0%')} * #{ui.v('??circular.dasharray')}) #{ui.v('??circular.length')} !important;
68
68
  stroke-linecap: butt;
69
69
  }
70
70
  }
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  &::before {
110
- right: ui.v('??sys.value');
110
+ right: ui.v('??sys.value', '0%');
111
111
  transition-property: right;
112
112
  }
113
113
  }
@@ -35,9 +35,9 @@ export interface ProgressSlots {}
35
35
  */
36
36
  export type ProgressClasses = {
37
37
  main: ConstrClass
38
- // :classes [!] System label / Системная метка
39
- circle: string
40
- circleSub: string
41
- point: string
38
+ // :classes [!] System label / Системная метка
39
+ circle: string
40
+ circleSub: string
41
+ point: string
42
42
  // :classes [!] System label / Системная метка
43
43
  }