@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
@@ -23,6 +23,7 @@ import {
23
23
  type ListSlots
24
24
  } from './types'
25
25
  import type { WindowControlItem } from '../Window'
26
+ import type { ListGroupSlotsPropsInclude } from '../ListGroup'
26
27
 
27
28
  /**
28
29
  * ListDesign
@@ -33,14 +34,14 @@ export class ListDesign<
33
34
  CLASSES extends ListClasses,
34
35
  P extends ListPropsBasic
35
36
  > extends DesignConstructorAbstract<
36
- HTMLDivElement,
37
- COMP,
38
- ListEmits,
39
- EXPOSE,
40
- ListSlots,
41
- CLASSES,
42
- P
43
- > {
37
+ HTMLDivElement,
38
+ COMP,
39
+ ListEmits,
40
+ EXPOSE,
41
+ ListSlots,
42
+ CLASSES,
43
+ P
44
+ > {
44
45
  protected readonly item: List
45
46
 
46
47
  /**
@@ -95,7 +96,7 @@ export class ListDesign<
95
96
  */
96
97
  protected initClasses(): Partial<CLASSES> {
97
98
  return {
98
- main: {},
99
+ main: this.item.classes.value,
99
100
  ...{
100
101
  // :classes [!] System label / Системная метка
101
102
  space: this.getSubClass('space'),
@@ -168,12 +169,12 @@ export class ListDesign<
168
169
  *
169
170
  * Генерирует групповой элемент.
170
171
  * @param item selected element/ выбранный элемент
171
- * @param open is the group open/ открыта ли группа
172
+ * @param props data for working with the group/ данные для работы с группой
172
173
  */
173
- readonly renderItemGroup = (item: ListDataItem, open: boolean): VNode => {
174
+ readonly renderItemGroup = (item: ListDataItem, props: ListGroupSlotsPropsInclude): VNode => {
174
175
  return this.components.renderOne(
175
176
  'listItem',
176
- this.item.getItemManagementFormGroup(item, open)
177
+ this.item.getItemManagementFormGroup(item, props)
177
178
  ) as VNode
178
179
  }
179
180
 
@@ -284,10 +285,11 @@ export class ListDesign<
284
285
  'listGroup',
285
286
  {
286
287
  open: this.item.isOpenGroup(item),
287
- divider: this.props.divider
288
+ divider: this.props.divider,
289
+ disabled: item.disabled
288
290
  },
289
291
  {
290
- head: ({ open }: { open: boolean }) => this.renderItemGroup(item, open),
292
+ head: (props: ListGroupSlotsPropsInclude) => this.renderItemGroup(item, props),
291
293
  list: () => this.renderDataByItem('group', this.item.getList(item))
292
294
  }
293
295
  ) as VNode
@@ -305,7 +307,8 @@ export class ListDesign<
305
307
  'listMenu',
306
308
  {
307
309
  divider: this.props.divider,
308
- axis: first ? (this.props.axis === 'x' ? 'y' : 'x') : 'x'
310
+ axis: first ? (this.props.axis === 'x' ? 'y' : 'x') : 'x',
311
+ disabled: item.disabled
309
312
  },
310
313
  {
311
314
  head: (props: WindowControlItem) => this.renderItemMenu(item, props),
@@ -314,27 +317,6 @@ export class ListDesign<
314
317
  ) as VNode
315
318
  }
316
319
 
317
- /**
318
- * Returns binding properties for the item.
319
- *
320
- * Возвращает привязочные свойства для элемента.
321
- * @param type type of list/ тип списка
322
- * @param item selected element/ выбранный элемент
323
- */
324
- protected getItemAttrs(
325
- type: ListType,
326
- item: ListDataItem
327
- ) {
328
- switch (type) {
329
- case 'group':
330
- return this.item.getItemGroup(item)
331
- case 'menu':
332
- return this.item.getItemMenu(item)
333
- default:
334
- return this.item.getItem(item)
335
- }
336
- }
337
-
338
320
  /**
339
321
  * Generates all elements from the list.
340
322
  *
@@ -365,10 +347,14 @@ export class ListDesign<
365
347
  children.push(this.renderHtml(item))
366
348
  break
367
349
  case 'group':
368
- children.push(this.renderGroup(item))
350
+ if (this.isHighlight(item)) {
351
+ children.push(this.renderGroup(item))
352
+ }
369
353
  break
370
354
  case 'menu':
371
- children.push(this.renderMenu(item, first))
355
+ if (this.isHighlight(item)) {
356
+ children.push(this.renderMenu(item, first))
357
+ }
372
358
  break
373
359
  default:
374
360
  children.push(this.renderItem(type, item))
@@ -379,4 +365,39 @@ export class ListDesign<
379
365
  children.push(h('div'))
380
366
  return children
381
367
  }
368
+
369
+ /**
370
+ * Determines if highlighting is required.
371
+ *
372
+ * Определяет, требуется ли выделение.
373
+ * @param item selected element/ выбранный элемент
374
+ */
375
+ protected isHighlight(item: ListDataItem): boolean {
376
+ if (!this.props.filterMode) {
377
+ return true
378
+ }
379
+
380
+ return this.item.data.getSubList(item).isHighlightActive()
381
+ }
382
+
383
+ /**
384
+ * Returns binding properties for the item.
385
+ *
386
+ * Возвращает привязочные свойства для элемента.
387
+ * @param type type of list/ тип списка
388
+ * @param item selected element/ выбранный элемент
389
+ */
390
+ protected getItemAttrs(
391
+ type: ListType,
392
+ item: ListDataItem
393
+ ) {
394
+ switch (type) {
395
+ case 'group':
396
+ return this.item.getItemGroup(item)
397
+ case 'menu':
398
+ return this.item.getItemMenu(item)
399
+ default:
400
+ return this.item.getItem(item)
401
+ }
402
+ }
382
403
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  type ConstrEmit,
3
3
  isSelected,
4
- ListData
4
+ ListDataRef
5
5
  } from '@dxtmisha/functional'
6
6
 
7
7
  import { ListFocus } from './ListFocus'
@@ -27,7 +27,7 @@ export class ListGo {
27
27
  constructor(
28
28
  protected readonly props: ListProps,
29
29
  protected readonly focus: ListFocus,
30
- protected readonly data: ListData,
30
+ protected readonly data: ListDataRef,
31
31
  protected readonly emits?: ConstrEmit<ListEmits>
32
32
  ) {
33
33
  }
@@ -135,7 +135,9 @@ export class ListGo {
135
135
  * Открывает окно, если элемент в нем.
136
136
  */
137
137
  open(): void {
138
- if (
138
+ if (this.focus.isItem()) {
139
+ this.focus.click()
140
+ } else if (
139
141
  this.focus.isGroup()
140
142
  || this.focus.isMenu()
141
143
  ) {
@@ -1,16 +1,16 @@
1
- {
2
- "#space": {},
3
- "#line": {},
4
- "#subtitle": {},
5
- "#html": {},
6
- "#management": {},
7
- "#group": {},
8
- "#menu": {},
9
- "#menuGroup": {},
10
- "~axis": {
11
- "~x": {},
12
- "~y": {},
13
- "_default": "y"
14
- },
15
- "~divider": {}
16
- }
1
+ {
2
+ "#space": {},
3
+ "#line": {},
4
+ "#subtitle": {},
5
+ "#html": {},
6
+ "#management": {},
7
+ "#group": {},
8
+ "#menu": {},
9
+ "#menuGroup": {},
10
+ "~axis": {
11
+ "~x": {},
12
+ "~y": {},
13
+ "_default": "y"
14
+ },
15
+ "~divider": {}
16
+ }
@@ -5,6 +5,7 @@ import type {
5
5
  ListSelectedList
6
6
  } from '@dxtmisha/functional'
7
7
  import type { IconPropsBasic, IconValue } from '../Icon'
8
+ import type { RoleType } from '../../types/roleTypes'
8
9
  import type { ListItemPropsBasic } from '../ListItem'
9
10
 
10
11
  interface ListPropsToken {
@@ -29,10 +30,13 @@ export interface ListPropsBasic<
29
30
  liteThreshold?: number
30
31
  highlight?: string
31
32
  highlightLengthStart?: number
33
+ filterMode?: boolean
32
34
 
33
35
  keyLabel?: string
34
36
  keyValue?: string
35
37
 
38
+ max?: string | number
39
+
36
40
  // Style
37
41
  tag?: 'div' | 'button' | 'a' | 'span' | string
38
42
 
@@ -47,6 +51,9 @@ export interface ListPropsBasic<
47
51
  iconArrowDown?: IconValue<Icon>
48
52
  iconArrowRight?: IconValue<Icon>
49
53
 
54
+ // ARIA
55
+ roleItem?: RoleType
56
+
50
57
  // Technical
51
58
  control?: boolean
52
59
  }
@@ -33,4 +33,18 @@
33
33
  }
34
34
  }
35
35
  }
36
+
37
+ &--highlightActive {
38
+ @include ui.subclass('space') {
39
+ display: none;
40
+ }
41
+
42
+ @include ui.subclass('line') {
43
+ display: none;
44
+ }
45
+
46
+ @include ui.subclass('subtitle') {
47
+ display: none;
48
+ }
49
+ }
36
50
  }
@@ -53,14 +53,14 @@ export type ListSlots = Record<string, (props: any) => any>
53
53
  */
54
54
  export type ListClasses = {
55
55
  main: ConstrClass
56
- // :classes [!] System label / Системная метка
57
- space: string
58
- line: string
59
- subtitle: string
60
- html: string
61
- management: string
62
- group: string
63
- menu: string
64
- menuGroup: string
56
+ // :classes [!] System label / Системная метка
57
+ space: string
58
+ line: string
59
+ subtitle: string
60
+ html: string
61
+ management: string
62
+ group: string
63
+ menu: string
64
+ menuGroup: string
65
65
  // :classes [!] System label / Системная метка
66
66
  }
@@ -5,6 +5,7 @@ import {
5
5
  DesignConstructorAbstract
6
6
  } from '@dxtmisha/functional'
7
7
 
8
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
8
9
  import { ListGroup } from './ListGroup'
9
10
 
10
11
  import {
@@ -17,6 +18,7 @@ import {
17
18
  type ListGroupExpose,
18
19
  type ListGroupSlots
19
20
  } from './types'
21
+ import type { MotionTransformControlItem } from '../MotionTransform'
20
22
 
21
23
  /**
22
24
  * ListGroupDesign
@@ -117,7 +119,8 @@ export class ListGroupDesign<
117
119
  ...this.getAttrs(),
118
120
  'class': this.classes?.value.main,
119
121
  'data-open': this.item.open.is.value ? 'open' : 'close',
120
- 'data-divider': this.props.divider ? 'divider' : undefined
122
+ 'data-divider': this.props.divider ? 'divider' : undefined,
123
+ ...AriaStaticInclude.role('group')
121
124
  },
122
125
  this.renderTransform()
123
126
  )
@@ -146,8 +149,9 @@ export class ListGroupDesign<
146
149
  * Render title element.
147
150
  *
148
151
  * Рендер элемента заголовка.
152
+ * @param item motion transform item/ элемент движения трансформации
149
153
  */
150
- readonly renderHead = (): VNode => {
154
+ readonly renderHead = (item: MotionTransformControlItem): VNode => {
151
155
  return h(
152
156
  'div',
153
157
  {
@@ -157,7 +161,8 @@ export class ListGroupDesign<
157
161
  'head',
158
162
  undefined,
159
163
  {
160
- open: this.item.open.is.value
164
+ open: this.item.open.is.value,
165
+ ...item.binds
161
166
  }
162
167
  )
163
168
  )
@@ -1,3 +1,10 @@
1
+ import type { MotionTransformControlItem } from '../MotionTransform'
2
+
1
3
  export type ListGroupComponentInclude = {
2
4
  listGroup?: object
3
5
  }
6
+
7
+ export interface ListGroupSlotsPropsInclude
8
+ extends MotionTransformControlItem {
9
+ open: boolean
10
+ }
@@ -1,15 +1,15 @@
1
- {
2
- "border-width": {
3
- "_type": "var"
4
- },
5
- "border-color": {
6
- "_type": "var"
7
- },
8
- "border-opacity": {
9
- "_type": "var"
10
- },
11
- "#head": {},
12
- "#list": {},
13
- "~open": {},
14
- "~divider": {}
15
- }
1
+ {
2
+ "border-width": {
3
+ "_type": "var"
4
+ },
5
+ "border-color": {
6
+ "_type": "var"
7
+ },
8
+ "border-opacity": {
9
+ "_type": "var"
10
+ },
11
+ "#head": {},
12
+ "#list": {},
13
+ "~open": {},
14
+ "~divider": {}
15
+ }
@@ -1,7 +1,7 @@
1
1
  interface ListGroupPropsToken {
2
- // :type [!] System label / Системная метка
3
- open?: boolean
4
- divider?: boolean
2
+ // :type [!] System label / Системная метка
3
+ open?: boolean
4
+ divider?: boolean
5
5
  // :type [!] System label / Системная метка
6
6
  }
7
7
 
@@ -24,7 +24,7 @@ export interface ListGroupProps extends ListGroupPropsBasic, ListGroupPropsToken
24
24
  */
25
25
  export const defaultsListGroup = {
26
26
  ...{
27
- // :default [!] System label / Системная метка
27
+ // :default [!] System label / Системная метка
28
28
  // :default [!] System label / Системная метка
29
29
  }
30
30
  }
@@ -2,6 +2,7 @@ import type { ComputedRef } from 'vue'
2
2
  import type { ConstrClass } from '@dxtmisha/functional'
3
3
 
4
4
  import type { MotionTransformComponentInclude } from '../MotionTransform'
5
+ import type { ListGroupSlotsPropsInclude } from './basicTypes'
5
6
 
6
7
  /**
7
8
  * Interface for describing which components need to be connected for work.
@@ -33,7 +34,7 @@ export interface ListGroupExpose {
33
34
  * Тип, описывающий доступные слоты.
34
35
  */
35
36
  export interface ListGroupSlots {
36
- head?(props: { open: boolean }): any
37
+ head?(props: ListGroupSlotsPropsInclude): any
37
38
  list?(props: any): any
38
39
  }
39
40
 
@@ -1,12 +1,14 @@
1
1
  import { computed, type Ref, type ToRefs } from 'vue'
2
2
  import { type ConstrClassObject, type ConstrEmit, DesignComp } from '@dxtmisha/functional'
3
3
 
4
- import { getClassTegAStatic } from '../../functions/getClassTegAStatic'
4
+ import { getClassTagAStatic } from '../../functions/getClassTagAStatic'
5
5
 
6
6
  import { IconTrailingInclude } from '../Icon'
7
7
  import { ProgressInclude } from '../Progress'
8
8
  import { RippleInclude } from '../Ripple'
9
9
  import { SkeletonInclude } from '../Skeleton'
10
+ import { EventClickInclude } from '../../classes/EventClickInclude'
11
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
10
12
 
11
13
  import { LabelHighlightInclude } from '../../classes/LabelHighlightInclude'
12
14
  import { PrefixInclude } from '../../classes/PrefixInclude'
@@ -18,8 +20,7 @@ import { BadgeInclude } from '../Badge/BadgeInclude'
18
20
  import { EnabledInclude } from '../../classes/EnabledInclude'
19
21
 
20
22
  import type { ListItemComponents, ListItemEmits, ListItemSlots } from './types'
21
- import type { ListItemPropsBasic } from './props'
22
- import { EventClickInclude } from '../../classes/EventClickInclude'
23
+ import type { ListItemProps } from './props'
23
24
 
24
25
  /**
25
26
  * ListItem
@@ -52,12 +53,12 @@ export class ListItem {
52
53
  * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
53
54
  */
54
55
  constructor(
55
- protected readonly props: ListItemPropsBasic,
56
- protected readonly refs: ToRefs<ListItemPropsBasic>,
56
+ protected readonly props: ListItemProps,
57
+ protected readonly refs: ToRefs<ListItemProps>,
57
58
  protected readonly element: Ref<HTMLElement | undefined>,
58
59
  protected readonly classDesign: string,
59
60
  protected readonly className: string,
60
- protected readonly components?: DesignComp<ListItemComponents, ListItemPropsBasic>,
61
+ protected readonly components?: DesignComp<ListItemComponents, ListItemProps>,
61
62
  protected readonly slots?: ListItemSlots,
62
63
  protected readonly emits?: ConstrEmit<ListItemEmits>
63
64
  ) {
@@ -107,9 +108,68 @@ export class ListItem {
107
108
  this.event = new EventClickInclude(props, enabled, emits)
108
109
  }
109
110
 
111
+ /** tag type/ тип тега */
112
+ readonly tag = computed<string>(() => {
113
+ if (this.props.tag) {
114
+ return this.props.tag
115
+ }
116
+
117
+ if (this.props.href) {
118
+ return 'a'
119
+ }
120
+
121
+ return 'div'
122
+ })
123
+
110
124
  /** values for the class/ значения для класса */
111
125
  readonly classes = computed<ConstrClassObject>(() => ({
112
126
  [`${this.className}--description`]: this.description.is.value,
113
- [getClassTegAStatic(this.classDesign)]: true
127
+ [getClassTagAStatic(this.classDesign)]: true
114
128
  }))
129
+
130
+ /** values for attributes/ значения для атрибутов */
131
+ readonly binds = computed(() => {
132
+ const data = {
133
+ 'data-value': this.props.index ?? this.props.value,
134
+ 'data-divider': this.props.divider ? 'active' : undefined,
135
+ 'data-parent': this.props.parent,
136
+ 'data-list-id': this.props.listId,
137
+ 'tabindex': this.props.tabindex,
138
+ 'role': this.props.role,
139
+ ...AriaStaticInclude.disabled(Boolean(this.props.disabled)),
140
+ 'onClick': this.event.onClick
141
+ }
142
+
143
+ if (this.props.isMenu) {
144
+ Object.assign(
145
+ data,
146
+ AriaStaticInclude.haspopup('menu')
147
+ )
148
+ }
149
+
150
+ return data
151
+ })
152
+
153
+ /** values for attributes with open state/ значения для атрибутов с состоянием open */
154
+ readonly bindsAndOpen = computed(() => {
155
+ const data = {
156
+ ...this.binds.value
157
+ }
158
+
159
+ if (this.props.isMenu) {
160
+ Object.assign(
161
+ data,
162
+ AriaStaticInclude.expanded(Boolean(this.props.open))
163
+ )
164
+ }
165
+
166
+ if (this.props.isItemMenu) {
167
+ Object.assign(
168
+ data,
169
+ AriaStaticInclude.checked(Boolean(this.props.selected))
170
+ )
171
+ }
172
+
173
+ return data
174
+ })
115
175
  }
@@ -119,7 +119,14 @@ export class ListItemDesign<
119
119
  *
120
120
  * Метод для рендеринга.
121
121
  */
122
- protected initRender(): VNode {
122
+ protected initRender(): VNode | undefined {
123
+ if (
124
+ this.props.filterMode
125
+ && !this.item.label.isHighlight()
126
+ ) {
127
+ return undefined
128
+ }
129
+
123
130
  const children: any[] = []
124
131
 
125
132
  this.initSlot('leading', children)
@@ -133,17 +140,13 @@ export class ListItemDesign<
133
140
  )
134
141
 
135
142
  return h(
136
- this.props.tag ?? 'div',
143
+ this.item.tag.value,
137
144
  {
138
145
  ...this.getAttrs(),
139
- 'ref': this.element,
140
- 'class': this.classes?.value.main,
141
- 'style': this.styles?.value,
142
- 'data-value': this.props.index ?? this.props.value,
143
- 'data-divider': this.props.divider ? 'active' : undefined,
144
- 'data-parent': this.props.parent,
145
- 'data-list-id': this.props.listId,
146
- 'onClick': this.item.event.onClick
146
+ ref: this.element,
147
+ class: this.classes?.value.main,
148
+ style: this.styles?.value,
149
+ ...this.item.bindsAndOpen.value
147
150
  },
148
151
  children
149
152
  )
@@ -1,52 +1,52 @@
1
- {
2
- "paddingX": {
3
- "_type": "var"
4
- },
5
- "paddingY": {
6
- "_type": "var"
7
- },
8
- "shift": {
9
- "_type": "var"
10
- },
11
- "height": {
12
- "_type": "var"
13
- },
14
- "border-width": {
15
- "_type": "var"
16
- },
17
- "border-color": {
18
- "_type": "var"
19
- },
20
- "transition-property": "background-color, background-image, border, box-shadow",
21
- "transition-duration": "{d.sys.transitionDuration.fade.enter}",
22
- "transition-function": "{d.sys.transitionFunction.standard}",
23
- "#body": {},
24
- "#context": {},
25
- "#label": {},
26
- "#highlight": {},
27
- "#prefix": {},
28
- "#caption": {},
29
- "#description": {},
30
- "#icon": {},
31
- "#trailing": {},
32
- "#badge": {},
33
- "#input": {},
34
- "~focus": {},
35
- "~open": {},
36
- "~selected": {},
37
- "~selectedChild": {},
38
- "~readonly": {},
39
- "~disabled": {},
40
- "~iconTop": {},
41
- "~iconAlign": {
42
- "~center": {},
43
- "~edge": {},
44
- "_default": "center"
45
- },
46
- "~fill": {
47
- "_type": "state",
48
- "_var": true,
49
- "_style": true
50
- },
51
- "~divider": {}
52
- }
1
+ {
2
+ "paddingX": {
3
+ "_type": "var"
4
+ },
5
+ "paddingY": {
6
+ "_type": "var"
7
+ },
8
+ "shift": {
9
+ "_type": "var"
10
+ },
11
+ "height": {
12
+ "_type": "var"
13
+ },
14
+ "border-width": {
15
+ "_type": "var"
16
+ },
17
+ "border-color": {
18
+ "_type": "var"
19
+ },
20
+ "transition-property": "background-color, background-image, border, box-shadow",
21
+ "transition-duration": "{d.sys.transitionDuration.fade.enter}",
22
+ "transition-function": "{d.sys.transitionFunction.standard}",
23
+ "#body": {},
24
+ "#context": {},
25
+ "#label": {},
26
+ "#highlight": {},
27
+ "#prefix": {},
28
+ "#caption": {},
29
+ "#description": {},
30
+ "#icon": {},
31
+ "#trailing": {},
32
+ "#badge": {},
33
+ "#input": {},
34
+ "~focus": {},
35
+ "~open": {},
36
+ "~selected": {},
37
+ "~selectedChild": {},
38
+ "~readonly": {},
39
+ "~disabled": {},
40
+ "~iconTop": {},
41
+ "~iconAlign": {
42
+ "~center": {},
43
+ "~edge": {},
44
+ "_default": "center"
45
+ },
46
+ "~fill": {
47
+ "_type": "state",
48
+ "_var": true,
49
+ "_style": true
50
+ },
51
+ "~divider": {}
52
+ }