@soxa-ui/plugins 0.0.0-stage → 0.3.0-beta.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 (630) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +125 -2
  3. package/dist/base/base.class.d.ts +54 -0
  4. package/dist/base/base.class.js +69 -0
  5. package/dist/base/bundle.class.d.ts +25 -0
  6. package/dist/base/bundle.class.js +68 -0
  7. package/dist/base/index.d.ts +3 -0
  8. package/dist/base/types.d.ts +147 -0
  9. package/dist/custom/accordion/header.d.ts +19 -0
  10. package/dist/custom/accordion/header.js +38 -0
  11. package/dist/custom/accordion/index.d.ts +2 -0
  12. package/dist/custom/accordion/item-ids/index.d.ts +1 -0
  13. package/dist/custom/accordion/item-ids/item-ids.plugin.d.ts +24 -0
  14. package/dist/custom/accordion/item-ids/item-ids.plugin.js +44 -0
  15. package/dist/custom/action/action.plugin.d.ts +178 -0
  16. package/dist/custom/action/action.plugin.js +339 -0
  17. package/dist/custom/action/index.d.ts +2 -0
  18. package/dist/custom/action/types.d.ts +65 -0
  19. package/dist/custom/calendar/ids/ids.plugin.d.ts +25 -0
  20. package/dist/custom/calendar/ids/ids.plugin.js +44 -0
  21. package/dist/custom/calendar/ids/index.d.ts +1 -0
  22. package/dist/custom/calendar/index.d.ts +5 -0
  23. package/dist/custom/calendar/keyboard/index.d.ts +2 -0
  24. package/dist/custom/calendar/keyboard/keyboard.plugin.d.ts +114 -0
  25. package/dist/custom/calendar/keyboard/keyboard.plugin.js +249 -0
  26. package/dist/custom/calendar/keyboard/types.d.ts +16 -0
  27. package/dist/custom/calendar/names/index.d.ts +1 -0
  28. package/dist/custom/calendar/names/names.plugin.d.ts +24 -0
  29. package/dist/custom/calendar/names/names.plugin.js +45 -0
  30. package/dist/custom/calendar/parts.d.ts +58 -0
  31. package/dist/custom/calendar/parts.js +119 -0
  32. package/dist/custom/calendar/pointer/index.d.ts +2 -0
  33. package/dist/custom/calendar/pointer/pointer.plugin.d.ts +58 -0
  34. package/dist/custom/calendar/pointer/pointer.plugin.js +144 -0
  35. package/dist/custom/calendar/pointer/types.d.ts +6 -0
  36. package/dist/custom/calendar/stop.d.ts +20 -0
  37. package/dist/custom/calendar/stop.js +32 -0
  38. package/dist/custom/calendar/types.d.ts +16 -0
  39. package/dist/custom/clearable/index.d.ts +1 -0
  40. package/dist/custom/clearable/names/index.d.ts +1 -0
  41. package/dist/custom/clearable/names/names.plugin.d.ts +24 -0
  42. package/dist/custom/clearable/names/names.plugin.js +29 -0
  43. package/dist/custom/collection/bundles.plugin.d.ts +55 -0
  44. package/dist/custom/collection/bundles.plugin.js +100 -0
  45. package/dist/custom/collection/collection-bundles-access.plugin.d.ts +29 -0
  46. package/dist/custom/collection/collection-bundles-access.plugin.js +44 -0
  47. package/dist/custom/collection/collection-elements.plugin.d.ts +55 -0
  48. package/dist/custom/collection/collection-elements.plugin.js +100 -0
  49. package/dist/custom/collection/index.d.ts +4 -0
  50. package/dist/custom/collection/leaving-focus.d.ts +119 -0
  51. package/dist/custom/collection/leaving-focus.js +164 -0
  52. package/dist/custom/collection/reachable.d.ts +14 -0
  53. package/dist/custom/collection/reachable.js +18 -0
  54. package/dist/custom/collection/types.d.ts +14 -0
  55. package/dist/custom/component-view/aria.plugin.d.ts +102 -0
  56. package/dist/custom/component-view/aria.plugin.js +190 -0
  57. package/dist/custom/component-view/index.d.ts +2 -0
  58. package/dist/custom/component-view/types.d.ts +62 -0
  59. package/dist/custom/date-input/clipboard/clipboard.plugin.d.ts +41 -0
  60. package/dist/custom/date-input/clipboard/clipboard.plugin.js +98 -0
  61. package/dist/custom/date-input/clipboard/index.d.ts +2 -0
  62. package/dist/custom/date-input/clipboard/types.d.ts +6 -0
  63. package/dist/custom/date-input/ids/ids.plugin.d.ts +21 -0
  64. package/dist/custom/date-input/ids/ids.plugin.js +28 -0
  65. package/dist/custom/date-input/ids/index.d.ts +1 -0
  66. package/dist/custom/date-input/index.d.ts +6 -0
  67. package/dist/custom/date-input/keyboard/index.d.ts +2 -0
  68. package/dist/custom/date-input/keyboard/keyboard.plugin.d.ts +54 -0
  69. package/dist/custom/date-input/keyboard/keyboard.plugin.js +154 -0
  70. package/dist/custom/date-input/keyboard/types.d.ts +9 -0
  71. package/dist/custom/date-input/parts.d.ts +49 -0
  72. package/dist/custom/date-input/parts.js +127 -0
  73. package/dist/custom/date-input/pointer/index.d.ts +2 -0
  74. package/dist/custom/date-input/pointer/pointer.plugin.d.ts +51 -0
  75. package/dist/custom/date-input/pointer/pointer.plugin.js +141 -0
  76. package/dist/custom/date-input/pointer/types.d.ts +6 -0
  77. package/dist/custom/date-input/touch/index.d.ts +2 -0
  78. package/dist/custom/date-input/touch/touch.plugin.d.ts +100 -0
  79. package/dist/custom/date-input/touch/touch.plugin.js +276 -0
  80. package/dist/custom/date-input/touch/types.d.ts +6 -0
  81. package/dist/custom/date-input/types.d.ts +6 -0
  82. package/dist/custom/date-picker/field.d.ts +20 -0
  83. package/dist/custom/date-picker/field.js +27 -0
  84. package/dist/custom/date-picker/focus/focus.plugin.d.ts +56 -0
  85. package/dist/custom/date-picker/focus/focus.plugin.js +81 -0
  86. package/dist/custom/date-picker/focus/index.d.ts +2 -0
  87. package/dist/custom/date-picker/focus/types.d.ts +3 -0
  88. package/dist/custom/date-picker/ids/ids.plugin.d.ts +19 -0
  89. package/dist/custom/date-picker/ids/ids.plugin.js +28 -0
  90. package/dist/custom/date-picker/ids/index.d.ts +1 -0
  91. package/dist/custom/date-picker/index.d.ts +5 -0
  92. package/dist/custom/date-picker/names/index.d.ts +2 -0
  93. package/dist/custom/date-picker/names/names.plugin.d.ts +33 -0
  94. package/dist/custom/date-picker/names/names.plugin.js +80 -0
  95. package/dist/custom/date-picker/names/types.d.ts +12 -0
  96. package/dist/custom/date-picker/trigger/index.d.ts +2 -0
  97. package/dist/custom/date-picker/trigger/trigger.plugin.d.ts +37 -0
  98. package/dist/custom/date-picker/trigger/trigger.plugin.js +69 -0
  99. package/dist/custom/date-picker/trigger/types.d.ts +3 -0
  100. package/dist/custom/dialog/ids/ids.plugin.d.ts +15 -0
  101. package/dist/custom/dialog/ids/ids.plugin.js +28 -0
  102. package/dist/custom/dialog/ids/index.d.ts +1 -0
  103. package/dist/custom/dialog/index.d.ts +3 -0
  104. package/dist/custom/dialog/layout/index.d.ts +3 -0
  105. package/dist/custom/dialog/layout/layout.plugin.d.ts +42 -0
  106. package/dist/custom/dialog/layout/layout.plugin.js +78 -0
  107. package/dist/custom/dialog/layout/offset-event.d.ts +35 -0
  108. package/dist/custom/dialog/layout/offset-event.js +44 -0
  109. package/dist/custom/dialog/layout/types.d.ts +12 -0
  110. package/dist/custom/dialog/names/index.d.ts +1 -0
  111. package/dist/custom/dialog/names/names.plugin.d.ts +13 -0
  112. package/dist/custom/dialog/names/names.plugin.js +17 -0
  113. package/dist/custom/dismiss/dismiss.plugin.d.ts +174 -0
  114. package/dist/custom/dismiss/dismiss.plugin.js +287 -0
  115. package/dist/custom/dismiss/index.d.ts +2 -0
  116. package/dist/custom/dismiss/types.d.ts +59 -0
  117. package/dist/custom/drag-and-drop/drag.plugin.d.ts +87 -0
  118. package/dist/custom/drag-and-drop/drag.plugin.js +310 -0
  119. package/dist/custom/drag-and-drop/index.d.ts +2 -0
  120. package/dist/custom/drag-and-drop/types.d.ts +13 -0
  121. package/dist/custom/drawer/index.d.ts +1 -0
  122. package/dist/custom/drawer/layout/index.d.ts +2 -0
  123. package/dist/custom/drawer/layout/layout.plugin.d.ts +17 -0
  124. package/dist/custom/drawer/layout/layout.plugin.js +22 -0
  125. package/dist/custom/drawer/layout/types.d.ts +3 -0
  126. package/dist/custom/element/element.plugin.d.ts +35 -0
  127. package/dist/custom/element/element.plugin.js +58 -0
  128. package/dist/custom/element/index.d.ts +2 -0
  129. package/dist/custom/element/types.d.ts +18 -0
  130. package/dist/custom/field/ids/ids.plugin.d.ts +64 -0
  131. package/dist/custom/field/ids/ids.plugin.js +126 -0
  132. package/dist/custom/field/ids/index.d.ts +2 -0
  133. package/dist/custom/field/ids/types.d.ts +28 -0
  134. package/dist/custom/field/index.d.ts +1 -0
  135. package/dist/custom/frame/anchor/anchor.plugin.d.ts +483 -0
  136. package/dist/custom/frame/anchor/anchor.plugin.js +820 -0
  137. package/dist/custom/frame/anchor/index.d.ts +2 -0
  138. package/dist/custom/frame/anchor/types.d.ts +83 -0
  139. package/dist/custom/frame/index.d.ts +2 -0
  140. package/dist/custom/frame/layout/index.d.ts +2 -0
  141. package/dist/custom/frame/layout/layout.plugin.d.ts +24 -0
  142. package/dist/custom/frame/layout/layout.plugin.js +65 -0
  143. package/dist/custom/frame/layout/types.d.ts +5 -0
  144. package/dist/custom/icon/index.d.ts +2 -0
  145. package/dist/custom/icon/layout.plugin.d.ts +21 -0
  146. package/dist/custom/icon/layout.plugin.js +51 -0
  147. package/dist/custom/icon/types.d.ts +5 -0
  148. package/dist/custom/id/id.plugin.d.ts +32 -0
  149. package/dist/custom/id/id.plugin.js +42 -0
  150. package/dist/custom/id/index.d.ts +2 -0
  151. package/dist/custom/id/types.d.ts +6 -0
  152. package/dist/custom/index.d.ts +42 -0
  153. package/dist/custom/input/field.d.ts +16 -0
  154. package/dist/custom/input/field.js +27 -0
  155. package/dist/custom/input/index.d.ts +3 -0
  156. package/dist/custom/input/input.plugin.d.ts +12 -0
  157. package/dist/custom/input/input.plugin.js +46 -0
  158. package/dist/custom/input/types.d.ts +2 -0
  159. package/dist/custom/input-bool/index.d.ts +2 -0
  160. package/dist/custom/input-bool/input-bool.plugin.d.ts +30 -0
  161. package/dist/custom/input-bool/input-bool.plugin.js +77 -0
  162. package/dist/custom/input-bool/types.d.ts +5 -0
  163. package/dist/custom/input-control/index.d.ts +2 -0
  164. package/dist/custom/input-control/input-control.plugin.d.ts +12 -0
  165. package/dist/custom/input-control/input-control.plugin.js +40 -0
  166. package/dist/custom/input-control/types.d.ts +2 -0
  167. package/dist/custom/item-group/ids/ids.plugin.d.ts +19 -0
  168. package/dist/custom/item-group/ids/ids.plugin.js +32 -0
  169. package/dist/custom/item-group/ids/index.d.ts +1 -0
  170. package/dist/custom/item-group/index.d.ts +1 -0
  171. package/dist/custom/label/index.d.ts +1 -0
  172. package/dist/custom/label/nested-warn/index.d.ts +1 -0
  173. package/dist/custom/label/nested-warn/nested-warn.plugin.d.ts +21 -0
  174. package/dist/custom/label/nested-warn/nested-warn.plugin.js +41 -0
  175. package/dist/custom/list/height/height.plugin.d.ts +129 -0
  176. package/dist/custom/list/height/height.plugin.js +272 -0
  177. package/dist/custom/list/height/index.d.ts +2 -0
  178. package/dist/custom/list/height/types.d.ts +10 -0
  179. package/dist/custom/list/index.d.ts +7 -0
  180. package/dist/custom/list/item/index.d.ts +2 -0
  181. package/dist/custom/list/item/item.plugin.d.ts +25 -0
  182. package/dist/custom/list/item/item.plugin.js +46 -0
  183. package/dist/custom/list/item/types.d.ts +5 -0
  184. package/dist/custom/list/keyboard/index.d.ts +2 -0
  185. package/dist/custom/list/keyboard/keyboard.plugin.d.ts +133 -0
  186. package/dist/custom/list/keyboard/keyboard.plugin.js +199 -0
  187. package/dist/custom/list/keyboard/types.d.ts +3 -0
  188. package/dist/custom/list/navigation/index.d.ts +2 -0
  189. package/dist/custom/list/navigation/navigation.plugin.d.ts +262 -0
  190. package/dist/custom/list/navigation/navigation.plugin.js +402 -0
  191. package/dist/custom/list/navigation/types.d.ts +25 -0
  192. package/dist/custom/list/newly-selected.d.ts +17 -0
  193. package/dist/custom/list/newly-selected.js +22 -0
  194. package/dist/custom/list/option-ids/index.d.ts +1 -0
  195. package/dist/custom/list/option-ids/option-ids.plugin.d.ts +29 -0
  196. package/dist/custom/list/option-ids/option-ids.plugin.js +43 -0
  197. package/dist/custom/list/row.d.ts +50 -0
  198. package/dist/custom/list/row.js +99 -0
  199. package/dist/custom/list/scroll/index.d.ts +2 -0
  200. package/dist/custom/list/scroll/scroll.plugin.d.ts +132 -0
  201. package/dist/custom/list/scroll/scroll.plugin.js +286 -0
  202. package/dist/custom/list/scroll/types.d.ts +21 -0
  203. package/dist/custom/list/typeahead.d.ts +53 -0
  204. package/dist/custom/list/typeahead.js +58 -0
  205. package/dist/custom/menu/focus/focus.plugin.d.ts +61 -0
  206. package/dist/custom/menu/focus/focus.plugin.js +105 -0
  207. package/dist/custom/menu/focus/index.d.ts +2 -0
  208. package/dist/custom/menu/focus/types.d.ts +2 -0
  209. package/dist/custom/menu/hover/hover.plugin.d.ts +99 -0
  210. package/dist/custom/menu/hover/hover.plugin.js +235 -0
  211. package/dist/custom/menu/hover/index.d.ts +2 -0
  212. package/dist/custom/menu/hover/types.d.ts +2 -0
  213. package/dist/custom/menu/ids/ids.plugin.d.ts +29 -0
  214. package/dist/custom/menu/ids/ids.plugin.js +46 -0
  215. package/dist/custom/menu/ids/index.d.ts +1 -0
  216. package/dist/custom/menu/index.d.ts +11 -0
  217. package/dist/custom/menu/keyboard/index.d.ts +2 -0
  218. package/dist/custom/menu/keyboard/keyboard.plugin.d.ts +41 -0
  219. package/dist/custom/menu/keyboard/keyboard.plugin.js +68 -0
  220. package/dist/custom/menu/keyboard/types.d.ts +2 -0
  221. package/dist/custom/menu/navigation/index.d.ts +2 -0
  222. package/dist/custom/menu/navigation/navigation.plugin.d.ts +116 -0
  223. package/dist/custom/menu/navigation/navigation.plugin.js +222 -0
  224. package/dist/custom/menu/navigation/types.d.ts +2 -0
  225. package/dist/custom/menu/nested-layer.d.ts +13 -0
  226. package/dist/custom/menu/nested-layer.js +20 -0
  227. package/dist/custom/menu/pointer/index.d.ts +2 -0
  228. package/dist/custom/menu/pointer/pointer.plugin.d.ts +45 -0
  229. package/dist/custom/menu/pointer/pointer.plugin.js +95 -0
  230. package/dist/custom/menu/pointer/strategies/context.strategy.d.ts +70 -0
  231. package/dist/custom/menu/pointer/strategies/context.strategy.js +170 -0
  232. package/dist/custom/menu/pointer/strategies/index.d.ts +3 -0
  233. package/dist/custom/menu/pointer/strategies/press.strategy.d.ts +23 -0
  234. package/dist/custom/menu/pointer/strategies/press.strategy.js +33 -0
  235. package/dist/custom/menu/pointer/strategies/types.d.ts +49 -0
  236. package/dist/custom/menu/pointer/types.d.ts +2 -0
  237. package/dist/custom/menu/popover-item-focus/focus.plugin.d.ts +54 -0
  238. package/dist/custom/menu/popover-item-focus/focus.plugin.js +70 -0
  239. package/dist/custom/menu/popover-item-focus/index.d.ts +2 -0
  240. package/dist/custom/menu/popover-item-focus/types.d.ts +10 -0
  241. package/dist/custom/menu/popover-item-keyboard/index.d.ts +2 -0
  242. package/dist/custom/menu/popover-item-keyboard/keyboard.plugin.d.ts +43 -0
  243. package/dist/custom/menu/popover-item-keyboard/keyboard.plugin.js +79 -0
  244. package/dist/custom/menu/popover-item-keyboard/types.d.ts +2 -0
  245. package/dist/custom/menu/popup-ids/ids.plugin.d.ts +27 -0
  246. package/dist/custom/menu/popup-ids/ids.plugin.js +47 -0
  247. package/dist/custom/menu/popup-ids/index.d.ts +1 -0
  248. package/dist/custom/menu/submenu-focus/focus.plugin.d.ts +53 -0
  249. package/dist/custom/menu/submenu-focus/focus.plugin.js +84 -0
  250. package/dist/custom/menu/submenu-focus/index.d.ts +2 -0
  251. package/dist/custom/menu/submenu-focus/types.d.ts +10 -0
  252. package/dist/custom/menu/submenu-keyboard/index.d.ts +2 -0
  253. package/dist/custom/menu/submenu-keyboard/keyboard.plugin.d.ts +43 -0
  254. package/dist/custom/menu/submenu-keyboard/keyboard.plugin.js +74 -0
  255. package/dist/custom/menu/submenu-keyboard/types.d.ts +2 -0
  256. package/dist/custom/number-input/index.d.ts +5 -0
  257. package/dist/custom/number-input/keyboard/index.d.ts +2 -0
  258. package/dist/custom/number-input/keyboard/keyboard.plugin.d.ts +36 -0
  259. package/dist/custom/number-input/keyboard/keyboard.plugin.js +80 -0
  260. package/dist/custom/number-input/keyboard/types.d.ts +3 -0
  261. package/dist/custom/number-input/names/index.d.ts +1 -0
  262. package/dist/custom/number-input/names/names.plugin.d.ts +17 -0
  263. package/dist/custom/number-input/names/names.plugin.js +24 -0
  264. package/dist/custom/number-input/parts.d.ts +21 -0
  265. package/dist/custom/number-input/parts.js +39 -0
  266. package/dist/custom/number-input/stepper/index.d.ts +2 -0
  267. package/dist/custom/number-input/stepper/stepper.plugin.d.ts +59 -0
  268. package/dist/custom/number-input/stepper/stepper.plugin.js +166 -0
  269. package/dist/custom/number-input/stepper/types.d.ts +19 -0
  270. package/dist/custom/number-input/touch/index.d.ts +2 -0
  271. package/dist/custom/number-input/touch/touch.plugin.d.ts +25 -0
  272. package/dist/custom/number-input/touch/touch.plugin.js +53 -0
  273. package/dist/custom/number-input/touch/types.d.ts +3 -0
  274. package/dist/custom/number-input/types.d.ts +8 -0
  275. package/dist/custom/number-input/typing/index.d.ts +2 -0
  276. package/dist/custom/number-input/typing/types.d.ts +6 -0
  277. package/dist/custom/number-input/typing/typing.plugin.d.ts +47 -0
  278. package/dist/custom/number-input/typing/typing.plugin.js +149 -0
  279. package/dist/custom/overlay/focus/focus.plugin.d.ts +150 -0
  280. package/dist/custom/overlay/focus/focus.plugin.js +242 -0
  281. package/dist/custom/overlay/focus/index.d.ts +1 -0
  282. package/dist/custom/overlay/hide-outside/hide-outside.plugin.d.ts +84 -0
  283. package/dist/custom/overlay/hide-outside/hide-outside.plugin.js +187 -0
  284. package/dist/custom/overlay/hide-outside/index.d.ts +2 -0
  285. package/dist/custom/overlay/hide-outside/marks.d.ts +19 -0
  286. package/dist/custom/overlay/hide-outside/marks.js +43 -0
  287. package/dist/custom/overlay/hide-outside/types.d.ts +17 -0
  288. package/dist/custom/overlay/index.d.ts +9 -0
  289. package/dist/custom/overlay/modal-focus/index.d.ts +1 -0
  290. package/dist/custom/overlay/modal-focus/modal-focus.plugin.d.ts +72 -0
  291. package/dist/custom/overlay/modal-focus/modal-focus.plugin.js +109 -0
  292. package/dist/custom/overlay/modal-ids/index.d.ts +1 -0
  293. package/dist/custom/overlay/modal-ids/modal-ids.plugin.d.ts +21 -0
  294. package/dist/custom/overlay/modal-ids/modal-ids.plugin.js +30 -0
  295. package/dist/custom/overlay/modal-layout/index.d.ts +2 -0
  296. package/dist/custom/overlay/modal-layout/modal-layout.plugin.d.ts +66 -0
  297. package/dist/custom/overlay/modal-layout/modal-layout.plugin.js +119 -0
  298. package/dist/custom/overlay/modal-layout/types.d.ts +13 -0
  299. package/dist/custom/overlay/modal-names/index.d.ts +1 -0
  300. package/dist/custom/overlay/modal-names/modal-names.plugin.d.ts +14 -0
  301. package/dist/custom/overlay/modal-names/modal-names.plugin.js +17 -0
  302. package/dist/custom/overlay/open-state.d.ts +12 -0
  303. package/dist/custom/overlay/open-state.js +42 -0
  304. package/dist/custom/overlay/scroll-lock/index.d.ts +2 -0
  305. package/dist/custom/overlay/scroll-lock/lock.d.ts +17 -0
  306. package/dist/custom/overlay/scroll-lock/lock.js +83 -0
  307. package/dist/custom/overlay/scroll-lock/scroll-lock.plugin.d.ts +78 -0
  308. package/dist/custom/overlay/scroll-lock/scroll-lock.plugin.js +134 -0
  309. package/dist/custom/overlay/scroll-lock/types.d.ts +17 -0
  310. package/dist/custom/overlay/swipe/index.d.ts +2 -0
  311. package/dist/custom/overlay/swipe/swipe.plugin.d.ts +150 -0
  312. package/dist/custom/overlay/swipe/swipe.plugin.js +432 -0
  313. package/dist/custom/overlay/swipe/types.d.ts +62 -0
  314. package/dist/custom/overlay/types.d.ts +40 -0
  315. package/dist/custom/pagination/current.d.ts +24 -0
  316. package/dist/custom/pagination/current.js +34 -0
  317. package/dist/custom/pagination/focus/focus.plugin.d.ts +57 -0
  318. package/dist/custom/pagination/focus/focus.plugin.js +106 -0
  319. package/dist/custom/pagination/focus/index.d.ts +2 -0
  320. package/dist/custom/pagination/focus/types.d.ts +8 -0
  321. package/dist/custom/pagination/index.d.ts +3 -0
  322. package/dist/custom/pagination/names/index.d.ts +1 -0
  323. package/dist/custom/pagination/names/names.plugin.d.ts +15 -0
  324. package/dist/custom/pagination/names/names.plugin.js +19 -0
  325. package/dist/custom/popover/focus/focus.plugin.d.ts +69 -0
  326. package/dist/custom/popover/focus/focus.plugin.js +107 -0
  327. package/dist/custom/popover/focus/index.d.ts +2 -0
  328. package/dist/custom/popover/focus/types.d.ts +2 -0
  329. package/dist/custom/popover/ids/ids.plugin.d.ts +18 -0
  330. package/dist/custom/popover/ids/ids.plugin.js +27 -0
  331. package/dist/custom/popover/ids/index.d.ts +1 -0
  332. package/dist/custom/popover/index.d.ts +4 -0
  333. package/dist/custom/popover/names/index.d.ts +1 -0
  334. package/dist/custom/popover/names/names.plugin.d.ts +7 -0
  335. package/dist/custom/popover/names/names.plugin.js +10 -0
  336. package/dist/custom/popover/pointer/index.d.ts +2 -0
  337. package/dist/custom/popover/pointer/pointer.plugin.d.ts +35 -0
  338. package/dist/custom/popover/pointer/pointer.plugin.js +65 -0
  339. package/dist/custom/popover/pointer/types.d.ts +2 -0
  340. package/dist/custom/radio-group/checked/checked.plugin.d.ts +45 -0
  341. package/dist/custom/radio-group/checked/checked.plugin.js +81 -0
  342. package/dist/custom/radio-group/checked/index.d.ts +1 -0
  343. package/dist/custom/radio-group/index.d.ts +3 -0
  344. package/dist/custom/radio-group/name/index.d.ts +1 -0
  345. package/dist/custom/radio-group/name/name.plugin.d.ts +21 -0
  346. package/dist/custom/radio-group/name/name.plugin.js +39 -0
  347. package/dist/custom/radio-group/stop.d.ts +17 -0
  348. package/dist/custom/radio-group/stop.js +30 -0
  349. package/dist/custom/rating/hover/hover.plugin.d.ts +36 -0
  350. package/dist/custom/rating/hover/hover.plugin.js +71 -0
  351. package/dist/custom/rating/hover/index.d.ts +2 -0
  352. package/dist/custom/rating/hover/types.d.ts +7 -0
  353. package/dist/custom/rating/index.d.ts +3 -0
  354. package/dist/custom/rating/names/index.d.ts +1 -0
  355. package/dist/custom/rating/names/names.plugin.d.ts +25 -0
  356. package/dist/custom/rating/names/names.plugin.js +45 -0
  357. package/dist/custom/rating/validity/index.d.ts +2 -0
  358. package/dist/custom/rating/validity/types.d.ts +7 -0
  359. package/dist/custom/rating/validity/validity.plugin.d.ts +48 -0
  360. package/dist/custom/rating/validity/validity.plugin.js +91 -0
  361. package/dist/custom/ready/index.d.ts +1 -0
  362. package/dist/custom/ready/ready.plugin.d.ts +14 -0
  363. package/dist/custom/ready/ready.plugin.js +28 -0
  364. package/dist/custom/scroller/index.d.ts +2 -0
  365. package/dist/custom/scroller/names/index.d.ts +1 -0
  366. package/dist/custom/scroller/names/names.plugin.d.ts +11 -0
  367. package/dist/custom/scroller/names/names.plugin.js +15 -0
  368. package/dist/custom/scroller/viewport/edges.d.ts +34 -0
  369. package/dist/custom/scroller/viewport/edges.js +29 -0
  370. package/dist/custom/scroller/viewport/focus.d.ts +39 -0
  371. package/dist/custom/scroller/viewport/focus.js +61 -0
  372. package/dist/custom/scroller/viewport/index.d.ts +6 -0
  373. package/dist/custom/scroller/viewport/stop.d.ts +24 -0
  374. package/dist/custom/scroller/viewport/stop.js +34 -0
  375. package/dist/custom/scroller/viewport/types.d.ts +31 -0
  376. package/dist/custom/scroller/viewport/viewport.plugin.d.ts +163 -0
  377. package/dist/custom/scroller/viewport/viewport.plugin.js +352 -0
  378. package/dist/custom/select/backspace/backspace.plugin.d.ts +50 -0
  379. package/dist/custom/select/backspace/backspace.plugin.js +125 -0
  380. package/dist/custom/select/backspace/index.d.ts +2 -0
  381. package/dist/custom/select/backspace/types.d.ts +2 -0
  382. package/dist/custom/select/editable/editable.plugin.d.ts +193 -0
  383. package/dist/custom/select/editable/editable.plugin.js +347 -0
  384. package/dist/custom/select/editable/index.d.ts +2 -0
  385. package/dist/custom/select/editable/types.d.ts +6 -0
  386. package/dist/custom/select/ids/ids.plugin.d.ts +22 -0
  387. package/dist/custom/select/ids/ids.plugin.js +31 -0
  388. package/dist/custom/select/ids/index.d.ts +1 -0
  389. package/dist/custom/select/index.d.ts +5 -0
  390. package/dist/custom/select/keyboard/index.d.ts +2 -0
  391. package/dist/custom/select/keyboard/keyboard.plugin.d.ts +125 -0
  392. package/dist/custom/select/keyboard/keyboard.plugin.js +205 -0
  393. package/dist/custom/select/keyboard/strategies/base.strategy.d.ts +37 -0
  394. package/dist/custom/select/keyboard/strategies/base.strategy.js +81 -0
  395. package/dist/custom/select/keyboard/strategies/editable.strategy.d.ts +16 -0
  396. package/dist/custom/select/keyboard/strategies/editable.strategy.js +20 -0
  397. package/dist/custom/select/keyboard/strategies/index.d.ts +4 -0
  398. package/dist/custom/select/keyboard/strategies/select-only.strategy.d.ts +13 -0
  399. package/dist/custom/select/keyboard/strategies/select-only.strategy.js +59 -0
  400. package/dist/custom/select/keyboard/strategies/types.d.ts +29 -0
  401. package/dist/custom/select/keyboard/types.d.ts +18 -0
  402. package/dist/custom/select/pointer/index.d.ts +2 -0
  403. package/dist/custom/select/pointer/pointer.plugin.d.ts +59 -0
  404. package/dist/custom/select/pointer/pointer.plugin.js +104 -0
  405. package/dist/custom/select/pointer/types.d.ts +2 -0
  406. package/dist/custom/skeleton/index.d.ts +2 -0
  407. package/dist/custom/skeleton/layout.plugin.d.ts +18 -0
  408. package/dist/custom/skeleton/layout.plugin.js +47 -0
  409. package/dist/custom/skeleton/types.d.ts +5 -0
  410. package/dist/custom/slide/direction.d.ts +30 -0
  411. package/dist/custom/slide/direction.js +75 -0
  412. package/dist/custom/slide/index.d.ts +4 -0
  413. package/dist/custom/slide/keyboard/index.d.ts +2 -0
  414. package/dist/custom/slide/keyboard/keyboard.plugin.d.ts +46 -0
  415. package/dist/custom/slide/keyboard/keyboard.plugin.js +106 -0
  416. package/dist/custom/slide/keyboard/types.d.ts +6 -0
  417. package/dist/custom/slide/parts.d.ts +7 -0
  418. package/dist/custom/slide/parts.js +26 -0
  419. package/dist/custom/slide/pointer/index.d.ts +2 -0
  420. package/dist/custom/slide/pointer/pointer.plugin.d.ts +100 -0
  421. package/dist/custom/slide/pointer/pointer.plugin.js +268 -0
  422. package/dist/custom/slide/pointer/strategies/base.strategy.d.ts +16 -0
  423. package/dist/custom/slide/pointer/strategies/base.strategy.js +23 -0
  424. package/dist/custom/slide/pointer/strategies/hold.strategy.d.ts +28 -0
  425. package/dist/custom/slide/pointer/strategies/hold.strategy.js +48 -0
  426. package/dist/custom/slide/pointer/strategies/index.d.ts +7 -0
  427. package/dist/custom/slide/pointer/strategies/magnet.strategy.d.ts +11 -0
  428. package/dist/custom/slide/pointer/strategies/magnet.strategy.js +17 -0
  429. package/dist/custom/slide/pointer/strategies/none.strategy.d.ts +7 -0
  430. package/dist/custom/slide/pointer/strategies/none.strategy.js +9 -0
  431. package/dist/custom/slide/pointer/strategies/plateau.strategy.d.ts +24 -0
  432. package/dist/custom/slide/pointer/strategies/plateau.strategy.js +81 -0
  433. package/dist/custom/slide/pointer/strategies/points.d.ts +16 -0
  434. package/dist/custom/slide/pointer/strategies/points.js +32 -0
  435. package/dist/custom/slide/pointer/strategies/settle.strategy.d.ts +11 -0
  436. package/dist/custom/slide/pointer/strategies/settle.strategy.js +17 -0
  437. package/dist/custom/slide/pointer/strategies/types.d.ts +57 -0
  438. package/dist/custom/slide/pointer/types.d.ts +46 -0
  439. package/dist/custom/slide/types.d.ts +14 -0
  440. package/dist/custom/table/column-ids/column-ids.plugin.d.ts +26 -0
  441. package/dist/custom/table/column-ids/column-ids.plugin.js +36 -0
  442. package/dist/custom/table/column-ids/index.d.ts +1 -0
  443. package/dist/custom/table/column-names/column-names.plugin.d.ts +18 -0
  444. package/dist/custom/table/column-names/column-names.plugin.js +24 -0
  445. package/dist/custom/table/column-names/index.d.ts +1 -0
  446. package/dist/custom/table/column-reorder/column-reorder.plugin.d.ts +169 -0
  447. package/dist/custom/table/column-reorder/column-reorder.plugin.js +465 -0
  448. package/dist/custom/table/column-reorder/index.d.ts +2 -0
  449. package/dist/custom/table/column-reorder/types.d.ts +81 -0
  450. package/dist/custom/table/column-resize/column-resize.plugin.d.ts +96 -0
  451. package/dist/custom/table/column-resize/column-resize.plugin.js +271 -0
  452. package/dist/custom/table/column-resize/index.d.ts +2 -0
  453. package/dist/custom/table/column-resize/types.d.ts +38 -0
  454. package/dist/custom/table/grid/grid.plugin.d.ts +119 -0
  455. package/dist/custom/table/grid/grid.plugin.js +356 -0
  456. package/dist/custom/table/grid/index.d.ts +2 -0
  457. package/dist/custom/table/grid/types.d.ts +22 -0
  458. package/dist/custom/table/index.d.ts +8 -0
  459. package/dist/custom/table/layout/index.d.ts +2 -0
  460. package/dist/custom/table/layout/layout.plugin.d.ts +52 -0
  461. package/dist/custom/table/layout/layout.plugin.js +122 -0
  462. package/dist/custom/table/layout/types.d.ts +7 -0
  463. package/dist/custom/table/names/index.d.ts +2 -0
  464. package/dist/custom/table/names/names.plugin.d.ts +18 -0
  465. package/dist/custom/table/names/names.plugin.js +31 -0
  466. package/dist/custom/table/names/types.d.ts +6 -0
  467. package/dist/custom/table/row-ids/index.d.ts +1 -0
  468. package/dist/custom/table/row-ids/row-ids.plugin.d.ts +21 -0
  469. package/dist/custom/table/row-ids/row-ids.plugin.js +28 -0
  470. package/dist/custom/tabs/active-tab/active-tab.plugin.d.ts +42 -0
  471. package/dist/custom/tabs/active-tab/active-tab.plugin.js +103 -0
  472. package/dist/custom/tabs/active-tab/index.d.ts +2 -0
  473. package/dist/custom/tabs/active-tab/types.d.ts +17 -0
  474. package/dist/custom/tabs/content-warn/content-warn.plugin.d.ts +21 -0
  475. package/dist/custom/tabs/content-warn/content-warn.plugin.js +41 -0
  476. package/dist/custom/tabs/content-warn/index.d.ts +1 -0
  477. package/dist/custom/tabs/index.d.ts +7 -0
  478. package/dist/custom/tabs/item-ids/index.d.ts +1 -0
  479. package/dist/custom/tabs/item-ids/item-ids.plugin.d.ts +60 -0
  480. package/dist/custom/tabs/item-ids/item-ids.plugin.js +94 -0
  481. package/dist/custom/tabs/item-names/index.d.ts +1 -0
  482. package/dist/custom/tabs/item-names/item-names.plugin.d.ts +17 -0
  483. package/dist/custom/tabs/item-names/item-names.plugin.js +23 -0
  484. package/dist/custom/tabs/keyboard/index.d.ts +2 -0
  485. package/dist/custom/tabs/keyboard/keyboard.plugin.d.ts +105 -0
  486. package/dist/custom/tabs/keyboard/keyboard.plugin.js +206 -0
  487. package/dist/custom/tabs/keyboard/types.d.ts +6 -0
  488. package/dist/custom/tabs/layout/index.d.ts +2 -0
  489. package/dist/custom/tabs/layout/layout.plugin.d.ts +37 -0
  490. package/dist/custom/tabs/layout/layout.plugin.js +81 -0
  491. package/dist/custom/tabs/layout/types.d.ts +4 -0
  492. package/dist/custom/tabs/parts.d.ts +15 -0
  493. package/dist/custom/tabs/parts.js +21 -0
  494. package/dist/custom/tabs/tab.d.ts +29 -0
  495. package/dist/custom/tabs/tab.js +44 -0
  496. package/dist/custom/tags/index.d.ts +4 -0
  497. package/dist/custom/tags/item-names/index.d.ts +1 -0
  498. package/dist/custom/tags/item-names/item-names.plugin.d.ts +12 -0
  499. package/dist/custom/tags/item-names/item-names.plugin.js +18 -0
  500. package/dist/custom/tags/keyboard/index.d.ts +2 -0
  501. package/dist/custom/tags/keyboard/keyboard.plugin.d.ts +133 -0
  502. package/dist/custom/tags/keyboard/keyboard.plugin.js +253 -0
  503. package/dist/custom/tags/keyboard/types.d.ts +6 -0
  504. package/dist/custom/tags/scroll/index.d.ts +2 -0
  505. package/dist/custom/tags/scroll/scroll.plugin.d.ts +68 -0
  506. package/dist/custom/tags/scroll/scroll.plugin.js +120 -0
  507. package/dist/custom/tags/scroll/types.d.ts +6 -0
  508. package/dist/custom/tags/tag.d.ts +41 -0
  509. package/dist/custom/tags/tag.js +66 -0
  510. package/dist/custom/textarea/autoresize/autoresize.plugin.d.ts +70 -0
  511. package/dist/custom/textarea/autoresize/autoresize.plugin.js +176 -0
  512. package/dist/custom/textarea/autoresize/index.d.ts +2 -0
  513. package/dist/custom/textarea/autoresize/types.d.ts +6 -0
  514. package/dist/custom/textarea/ids/ids.plugin.d.ts +26 -0
  515. package/dist/custom/textarea/ids/ids.plugin.js +44 -0
  516. package/dist/custom/textarea/ids/index.d.ts +1 -0
  517. package/dist/custom/textarea/index.d.ts +3 -0
  518. package/dist/custom/textarea/names/index.d.ts +2 -0
  519. package/dist/custom/textarea/names/names.plugin.d.ts +33 -0
  520. package/dist/custom/textarea/names/names.plugin.js +65 -0
  521. package/dist/custom/textarea/names/types.d.ts +8 -0
  522. package/dist/custom/toasts/cascade/cascade.plugin.d.ts +81 -0
  523. package/dist/custom/toasts/cascade/cascade.plugin.js +214 -0
  524. package/dist/custom/toasts/cascade/index.d.ts +2 -0
  525. package/dist/custom/toasts/cascade/types.d.ts +15 -0
  526. package/dist/custom/toasts/index.d.ts +7 -0
  527. package/dist/custom/toasts/item-names/index.d.ts +1 -0
  528. package/dist/custom/toasts/item-names/item-names.plugin.d.ts +12 -0
  529. package/dist/custom/toasts/item-names/item-names.plugin.js +18 -0
  530. package/dist/custom/toasts/keyboard/index.d.ts +2 -0
  531. package/dist/custom/toasts/keyboard/keyboard.plugin.d.ts +57 -0
  532. package/dist/custom/toasts/keyboard/keyboard.plugin.js +136 -0
  533. package/dist/custom/toasts/keyboard/types.d.ts +6 -0
  534. package/dist/custom/toasts/layout/index.d.ts +2 -0
  535. package/dist/custom/toasts/layout/layout.plugin.d.ts +23 -0
  536. package/dist/custom/toasts/layout/layout.plugin.js +39 -0
  537. package/dist/custom/toasts/layout/types.d.ts +5 -0
  538. package/dist/custom/toasts/names/index.d.ts +1 -0
  539. package/dist/custom/toasts/names/names.plugin.d.ts +10 -0
  540. package/dist/custom/toasts/names/names.plugin.js +13 -0
  541. package/dist/custom/toasts/removal/index.d.ts +2 -0
  542. package/dist/custom/toasts/removal/removal.plugin.d.ts +35 -0
  543. package/dist/custom/toasts/removal/removal.plugin.js +69 -0
  544. package/dist/custom/toasts/removal/types.d.ts +6 -0
  545. package/dist/custom/toasts/timer/index.d.ts +2 -0
  546. package/dist/custom/toasts/timer/timer.plugin.d.ts +71 -0
  547. package/dist/custom/toasts/timer/timer.plugin.js +213 -0
  548. package/dist/custom/toasts/timer/types.d.ts +15 -0
  549. package/dist/custom/tooltip/ids/ids.plugin.d.ts +22 -0
  550. package/dist/custom/tooltip/ids/ids.plugin.js +42 -0
  551. package/dist/custom/tooltip/ids/index.d.ts +1 -0
  552. package/dist/custom/tooltip/index.d.ts +2 -0
  553. package/dist/custom/tooltip/trigger/document-state.d.ts +42 -0
  554. package/dist/custom/tooltip/trigger/document-state.js +50 -0
  555. package/dist/custom/tooltip/trigger/index.d.ts +2 -0
  556. package/dist/custom/tooltip/trigger/trigger.plugin.d.ts +133 -0
  557. package/dist/custom/tooltip/trigger/trigger.plugin.js +271 -0
  558. package/dist/custom/tooltip/trigger/types.d.ts +20 -0
  559. package/dist/custom/virtual/index.d.ts +2 -0
  560. package/dist/custom/virtual/types.d.ts +6 -0
  561. package/dist/custom/virtual/virtual.plugin.d.ts +126 -0
  562. package/dist/custom/virtual/virtual.plugin.js +311 -0
  563. package/dist/index.d.ts +7 -0
  564. package/dist/index.js +149 -0
  565. package/dist/locale/index.d.ts +6 -0
  566. package/dist/locale/locale.d.ts +38 -0
  567. package/dist/locale/locale.js +93 -0
  568. package/dist/locale/locale.plugin.d.ts +26 -0
  569. package/dist/locale/locale.plugin.js +35 -0
  570. package/dist/locale/locales/ar.d.ts +5 -0
  571. package/dist/locale/locales/ar.js +59 -0
  572. package/dist/locale/locales/en.d.ts +7 -0
  573. package/dist/locale/locales/en.js +61 -0
  574. package/dist/locale/locales/es.d.ts +2 -0
  575. package/dist/locale/locales/es.js +56 -0
  576. package/dist/locale/locales/fr.d.ts +2 -0
  577. package/dist/locale/locales/fr.js +56 -0
  578. package/dist/locale/locales/index.d.ts +6 -0
  579. package/dist/locale/locales/ru.d.ts +2 -0
  580. package/dist/locale/locales/ru.js +56 -0
  581. package/dist/locale/locales/zh.d.ts +2 -0
  582. package/dist/locale/locales/zh.js +56 -0
  583. package/dist/locale/names.plugin.d.ts +32 -0
  584. package/dist/locale/names.plugin.js +39 -0
  585. package/dist/locale/source.class.d.ts +22 -0
  586. package/dist/locale/source.class.js +32 -0
  587. package/dist/locale/types.d.ts +197 -0
  588. package/dist/motion/index.d.ts +2 -0
  589. package/dist/motion/motion.d.ts +28 -0
  590. package/dist/motion/motion.js +67 -0
  591. package/dist/motion/types.d.ts +14 -0
  592. package/dist/utils/afterTransitions.d.ts +49 -0
  593. package/dist/utils/afterTransitions.js +79 -0
  594. package/dist/utils/focusFirst.d.ts +13 -0
  595. package/dist/utils/focusFirst.js +24 -0
  596. package/dist/utils/graceArea.d.ts +21 -0
  597. package/dist/utils/graceArea.js +66 -0
  598. package/dist/utils/index.d.ts +18 -0
  599. package/dist/utils/isAboveLayer.d.ts +14 -0
  600. package/dist/utils/isAboveLayer.js +24 -0
  601. package/dist/utils/isAppleTouch.d.ts +10 -0
  602. package/dist/utils/isAppleTouch.js +17 -0
  603. package/dist/utils/isFocusableElement.d.ts +8 -0
  604. package/dist/utils/isFocusableElement.js +13 -0
  605. package/dist/utils/isMeasurableElement.d.ts +11 -0
  606. package/dist/utils/isMeasurableElement.js +16 -0
  607. package/dist/utils/isPrintableKey.d.ts +7 -0
  608. package/dist/utils/isPrintableKey.js +12 -0
  609. package/dist/utils/layerOf.d.ts +12 -0
  610. package/dist/utils/layerOf.js +21 -0
  611. package/dist/utils/nearestShift.d.ts +19 -0
  612. package/dist/utils/nearestShift.js +58 -0
  613. package/dist/utils/positionOrigin.d.ts +34 -0
  614. package/dist/utils/positionOrigin.js +71 -0
  615. package/dist/utils/scrollParent.d.ts +12 -0
  616. package/dist/utils/scrollParent.js +23 -0
  617. package/dist/utils/scrollWindow.d.ts +27 -0
  618. package/dist/utils/scrollWindow.js +50 -0
  619. package/dist/utils/tabStops.d.ts +44 -0
  620. package/dist/utils/tabStops.js +102 -0
  621. package/dist/utils/tabStopsAfter.d.ts +10 -0
  622. package/dist/utils/tabStopsAfter.js +16 -0
  623. package/dist/utils/tabStopsBefore.d.ts +11 -0
  624. package/dist/utils/tabStopsBefore.js +17 -0
  625. package/dist/utils/toCssValue.d.ts +8 -0
  626. package/dist/utils/toCssValue.js +17 -0
  627. package/dist/utils/trapTab.d.ts +16 -0
  628. package/dist/utils/trapTab.js +36 -0
  629. package/dist/utils/types.d.ts +64 -0
  630. package/package.json +43 -4
@@ -0,0 +1,25 @@
1
+ import { TBasePlugin } from '../../../base';
2
+ import type { IPluginContext } from '../../../base';
3
+ /**
4
+ * TCalendarIdsPlugin — имена сеток календаря в документе: сетку называет её
5
+ * заголовок, панель выбора месяца и года — её шапка.
6
+ *
7
+ * На каждом месте сетки пишет `id` заголовка и ссылку на него
8
+ * `aria-labelledby` у таблицы — в наборы места (`gridSets` вида), которые вид
9
+ * раскладывает в `grids`. Место, а не месяц: листание меняет месяц сетки, а
10
+ * заголовок, его `id` и живая область остаются. Месяцев стало больше —
11
+ * новым местам пишется то же (`change:months`).
12
+ *
13
+ * Там же — `id` шапки панели выбора (`pickerSets` расширения `picker`).
14
+ * Ссылку на шапку панель и список получают пропом `aria_labelledBy` из
15
+ * выхода `pickers`, а не записью в их наборы: их имя пишет их собственный
16
+ * `TAriaPlugin` и снял бы чужую запись.
17
+ *
18
+ * `id` — от монтирования календаря (`createId`), а не от экземпляра: он нужен
19
+ * только документу, и на сервере и в браузере обязан совпасть. Движок
20
+ * привязывается при сборке (`engine:bound`), до первой отрисовки, — имена
21
+ * сеток есть уже в серверной разметке.
22
+ */
23
+ export declare class TCalendarIdsPlugin extends TBasePlugin {
24
+ install(ctx: IPluginContext): void;
25
+ }
@@ -0,0 +1,44 @@
1
+ import { TBasePlugin } from "../../../base/base.class.js";
2
+ import { TCollectionBundlesPlugin } from "../../collection/bundles.plugin.js";
3
+ //#region src/custom/calendar/ids/ids.plugin.ts
4
+ /**
5
+ * TCalendarIdsPlugin — имена сеток календаря в документе: сетку называет её
6
+ * заголовок, панель выбора месяца и года — её шапка.
7
+ *
8
+ * На каждом месте сетки пишет `id` заголовка и ссылку на него
9
+ * `aria-labelledby` у таблицы — в наборы места (`gridSets` вида), которые вид
10
+ * раскладывает в `grids`. Место, а не месяц: листание меняет месяц сетки, а
11
+ * заголовок, его `id` и живая область остаются. Месяцев стало больше —
12
+ * новым местам пишется то же (`change:months`).
13
+ *
14
+ * Там же — `id` шапки панели выбора (`pickerSets` расширения `picker`).
15
+ * Ссылку на шапку панель и список получают пропом `aria_labelledBy` из
16
+ * выхода `pickers`, а не записью в их наборы: их имя пишет их собственный
17
+ * `TAriaPlugin` и снял бы чужую запись.
18
+ *
19
+ * `id` — от монтирования календаря (`createId`), а не от экземпляра: он нужен
20
+ * только документу, и на сервере и в браузере обязан совпасть. Движок
21
+ * привязывается при сборке (`engine:bound`), до первой отрисовки, — имена
22
+ * сеток есть уже в серверной разметке.
23
+ */
24
+ var TCalendarIdsPlugin = class extends TBasePlugin {
25
+ install(ctx) {
26
+ super.install(ctx);
27
+ ctx.get(TCollectionBundlesPlugin)?.events.on("engine:bound", (engine) => {
28
+ const { view, picker } = engine.extensions;
29
+ const name = () => {
30
+ view.months.forEach((_, index) => {
31
+ const titleId = ctx.createId(`title-${index}`);
32
+ const sets = view.gridSets(index);
33
+ sets.title.add("id", titleId);
34
+ sets.grid.add("aria-labelledby", titleId);
35
+ picker.pickerSets(index).heading.add("id", ctx.createId(`picker-${index}`));
36
+ });
37
+ };
38
+ name();
39
+ this._listenTo(view.events, "change:months", name);
40
+ });
41
+ }
42
+ };
43
+ //#endregion
44
+ export { TCalendarIdsPlugin };
@@ -0,0 +1 @@
1
+ export * from './ids.plugin';
@@ -0,0 +1,5 @@
1
+ export * from './ids';
2
+ export * from './keyboard';
3
+ export * from './pointer';
4
+ export * from './names';
5
+ export { gridStopOf } from './stop';
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './keyboard.plugin';
@@ -0,0 +1,114 @@
1
+ import type { ICalendar } from '@soxa-ui/core';
2
+ import { TBasePlugin } from '../../../base';
3
+ import type { IPluginContext } from '../../../base';
4
+ import type { TCalendarKeyboardPluginEvents } from './types';
5
+ /**
6
+ * TCalendarKeyboardPlugin — клавиатура календаря по APG (Date Picker Dialog)
7
+ * и DOM-фокус, который идёт за фокусом коллекции.
8
+ *
9
+ * Все сетки — одна остановка Tab (roving tabindex): `tabindex` дней пишет
10
+ * расширение фокуса коллекции, потому что атрибут обязан стоять с первой
11
+ * отрисовки, включая серверную. Здесь только то, что требует DOM: слушатели
12
+ * на корне и перенос фокуса.
13
+ *
14
+ * **Клавиши** берутся только с самой ячейки дня: у содержимого слота дня свои
15
+ * клавиши. Переходы (`MOVES`) — команды расширения фокуса, Enter и пробел —
16
+ * выбор дня, Escape — отмена начатого диапазона, и только когда якорь стоит:
17
+ * без него клавиша не наша, её ждёт панель DatePicker. Обработанная клавиша
18
+ * гасится `preventDefault`, а не `stopPropagation`. Перед переходом плагин
19
+ * снимает день под указателем: предпросмотр диапазона идёт за клавишами, а не
20
+ * за указателем, который остался где был.
21
+ *
22
+ * Enter и пробел на ячейке — только здесь: `click` из них браузер у `td` не
23
+ * делает, а плагин указателя слушает нажатия, так что день выбирается один раз.
24
+ *
25
+ * **Фокус.** `focusin` на дне сообщает фокусу коллекции день — от клавиш,
26
+ * нажатия и `focus()` из кода, одним путём. Обратно — `change:focusedDate`:
27
+ * если DOM-фокус стоял на дне, он переходит на день новой даты. Узла этого
28
+ * дня может ещё не быть — PageDown увёл сетку в новый месяц, а разметка его
29
+ * ещё не нарисовала. Тогда плагин ждёт узла помощником реестра узлов
30
+ * (`TCollectionElements.waitFor`): на регистрацию дня в коллекции и на
31
+ * `ready` его узла. Ждёт он день с фокусом коллекции на момент прихода узла,
32
+ * а не дату, запомненную заранее: ожидание одно, и фокус, сменившийся за
33
+ * время ожидания, его заменяет. Снимают ожидание фокус, ушедший из
34
+ * календаря, фокус на не-дне и `destroy()`.
35
+ *
36
+ * Фокус на кнопке листания остаётся на ней: листание двигает фокус коллекции
37
+ * вместе с сеткой, но не DOM. Кроме случая, когда кнопка погасла у края под
38
+ * фокусом (`change:paging`): выключенная кнопка фокус теряет, и он упал бы на
39
+ * страницу, поэтому плагин переводит его на остановку сетки, как React Aria.
40
+ *
41
+ * То же у стрелок панели выбора месяца и года (`change:pickers`): стрелка
42
+ * погасла у границы лет под фокусом — фокус на список той же панели. Решает
43
+ * выход расширения, а не атрибут: разметка выключит кнопку позже, а фокус
44
+ * должен уйти с неё раньше.
45
+ */
46
+ export declare class TCalendarKeyboardPlugin extends TBasePlugin<ICalendar, TCalendarKeyboardPluginEvents> {
47
+ private _owner;
48
+ /** Корень: на нём слушатели, по нему же направление письма. */
49
+ private _root;
50
+ private _elements;
51
+ private _engine;
52
+ /**
53
+ * Снять ожидание узла дня с фокусом коллекции; `null` — DOM-фокус узла не
54
+ * ждёт.
55
+ */
56
+ private _waiting;
57
+ install(ctx: IPluginContext): void;
58
+ destroy(): void;
59
+ private _bindEngine;
60
+ /** Корень сменился — слушатели переезжают, ожидание узла прежнего корня снимается. */
61
+ private _bind;
62
+ private readonly _onKeyDown;
63
+ /**
64
+ * Фокус пришёл на день — фокус коллекции переходит к нему: один путь для
65
+ * клавиш (их `focus()` тоже даёт `focusin`), нажатия и `focus()` из кода.
66
+ * Фокус пришёл не на день — ожидание узла больше не нужно: пользователь
67
+ * уже там, куда ушёл.
68
+ */
69
+ private readonly _onFocusIn;
70
+ /**
71
+ * Фокус ушёл из календаря — ожидание снимается. Без `relatedTarget` фокус
72
+ * ушёл «никуда»: узел дня с фокусом убрала разметка или кнопка погасла под
73
+ * фокусом, — тогда ожидание как раз и нужно.
74
+ */
75
+ private readonly _onFocusOut;
76
+ /**
77
+ * Фокус коллекции перешёл — DOM-фокус идёт за ним, если стоял на дне или
78
+ * уже ждал узла: тогда он ждёт уже новый день. Без корня — выход: до узла
79
+ * DOM-фокуса нет, а ожидание снимает `_bind`. Событие приходит и при сборке
80
+ * на сервере — смена месяцев и границ двигает фокус, — а проверке узла там
81
+ * не на что опереться: в Node типов DOM нет.
82
+ */
83
+ private readonly _onFocusedDate;
84
+ /**
85
+ * Кнопка листания погасла, пока на ней фокус, — фокус на остановку сетки.
86
+ * У выключенного календаря остановки нет, и переносить некуда.
87
+ */
88
+ private readonly _onPaging;
89
+ /**
90
+ * Стрелка панели выбора погасла, пока на ней фокус, — фокус на список панели.
91
+ * Список — ListBox, и остановка Tab у него — узел списка (`pickerListOf`),
92
+ * а не корень с классом части календаря. Без корня — выход, как у листания:
93
+ * `change:pickers` приходит уже при сборке — плагины связок и имён пишут
94
+ * наборы мест, — а DOM-фокуса до узла нет.
95
+ */
96
+ private readonly _onPickers;
97
+ /**
98
+ * DOM-фокус — на день с фокусом коллекции; узла ещё нет — ждать его
99
+ * помощником реестра узлов: день войдёт в коллекцию, и его узел объявят.
100
+ */
101
+ private _follow;
102
+ /**
103
+ * Узел дня с фокусом коллекции в документе — ожидание снято, фокус на нём.
104
+ * Нашёлся ли узел — ответ для помощника ожидания: `false` — ждать дальше.
105
+ */
106
+ private _focusFollowed;
107
+ private _stopFollowing;
108
+ private get _activeElement();
109
+ /**
110
+ * Направление письма берётся вычисленным: `direction` компонента бывает
111
+ * `inherit`, и тогда его задаёт предок.
112
+ */
113
+ private get _rtl();
114
+ }
@@ -0,0 +1,249 @@
1
+ import { TBasePlugin } from "../../../base/base.class.js";
2
+ import { TCollectionBundlesPlugin } from "../../collection/bundles.plugin.js";
3
+ import { TElementPlugin } from "../../element/element.plugin.js";
4
+ import { TCollectionElements } from "../../collection/collection-elements.plugin.js";
5
+ import { isFocusableElement } from "../../../utils/isFocusableElement.js";
6
+ import { dayElementOf, dayOf, pagerOf, pickerListOf, pickerPartOf } from "../parts.js";
7
+ //#region src/custom/calendar/keyboard/keyboard.plugin.ts
8
+ /**
9
+ * Переходы фокуса по клавишам — APG, Date Picker Dialog: ←/→ — день, ↑/↓ —
10
+ * неделя, Home/End — края недели, PageUp/PageDown — месяц, с Shift — год.
11
+ * Даты считает расширение фокуса, клавиша только называет команду.
12
+ */
13
+ var MOVES = {
14
+ ArrowLeft: (focus, { rtl }) => focus.shiftFocus("day", rtl ? 1 : -1),
15
+ ArrowRight: (focus, { rtl }) => focus.shiftFocus("day", rtl ? -1 : 1),
16
+ ArrowUp: (focus) => focus.shiftFocus("week", -1),
17
+ ArrowDown: (focus) => focus.shiftFocus("week", 1),
18
+ Home: (focus) => focus.moveFocusToEdge("start"),
19
+ End: (focus) => focus.moveFocusToEdge("end"),
20
+ PageUp: (focus, { shift }) => focus.shiftFocus(shift ? "year" : "month", -1),
21
+ PageDown: (focus, { shift }) => focus.shiftFocus(shift ? "year" : "month", 1)
22
+ };
23
+ /** Клавиши выбора дня под фокусом. */
24
+ var CHOOSE_KEYS = /* @__PURE__ */ new Set(["Enter", " "]);
25
+ /** Погасла ли кнопка листания — по выходу вида коллекции. */
26
+ var PAGER_OFF = {
27
+ prev: (view) => view.prevDisabled,
28
+ next: (view) => view.nextDisabled
29
+ };
30
+ /**
31
+ * TCalendarKeyboardPlugin — клавиатура календаря по APG (Date Picker Dialog)
32
+ * и DOM-фокус, который идёт за фокусом коллекции.
33
+ *
34
+ * Все сетки — одна остановка Tab (roving tabindex): `tabindex` дней пишет
35
+ * расширение фокуса коллекции, потому что атрибут обязан стоять с первой
36
+ * отрисовки, включая серверную. Здесь только то, что требует DOM: слушатели
37
+ * на корне и перенос фокуса.
38
+ *
39
+ * **Клавиши** берутся только с самой ячейки дня: у содержимого слота дня свои
40
+ * клавиши. Переходы (`MOVES`) — команды расширения фокуса, Enter и пробел —
41
+ * выбор дня, Escape — отмена начатого диапазона, и только когда якорь стоит:
42
+ * без него клавиша не наша, её ждёт панель DatePicker. Обработанная клавиша
43
+ * гасится `preventDefault`, а не `stopPropagation`. Перед переходом плагин
44
+ * снимает день под указателем: предпросмотр диапазона идёт за клавишами, а не
45
+ * за указателем, который остался где был.
46
+ *
47
+ * Enter и пробел на ячейке — только здесь: `click` из них браузер у `td` не
48
+ * делает, а плагин указателя слушает нажатия, так что день выбирается один раз.
49
+ *
50
+ * **Фокус.** `focusin` на дне сообщает фокусу коллекции день — от клавиш,
51
+ * нажатия и `focus()` из кода, одним путём. Обратно — `change:focusedDate`:
52
+ * если DOM-фокус стоял на дне, он переходит на день новой даты. Узла этого
53
+ * дня может ещё не быть — PageDown увёл сетку в новый месяц, а разметка его
54
+ * ещё не нарисовала. Тогда плагин ждёт узла помощником реестра узлов
55
+ * (`TCollectionElements.waitFor`): на регистрацию дня в коллекции и на
56
+ * `ready` его узла. Ждёт он день с фокусом коллекции на момент прихода узла,
57
+ * а не дату, запомненную заранее: ожидание одно, и фокус, сменившийся за
58
+ * время ожидания, его заменяет. Снимают ожидание фокус, ушедший из
59
+ * календаря, фокус на не-дне и `destroy()`.
60
+ *
61
+ * Фокус на кнопке листания остаётся на ней: листание двигает фокус коллекции
62
+ * вместе с сеткой, но не DOM. Кроме случая, когда кнопка погасла у края под
63
+ * фокусом (`change:paging`): выключенная кнопка фокус теряет, и он упал бы на
64
+ * страницу, поэтому плагин переводит его на остановку сетки, как React Aria.
65
+ *
66
+ * То же у стрелок панели выбора месяца и года (`change:pickers`): стрелка
67
+ * погасла у границы лет под фокусом — фокус на список той же панели. Решает
68
+ * выход расширения, а не атрибут: разметка выключит кнопку позже, а фокус
69
+ * должен уйти с неё раньше.
70
+ */
71
+ var TCalendarKeyboardPlugin = class extends TBasePlugin {
72
+ _owner = null;
73
+ /** Корень: на нём слушатели, по нему же направление письма. */
74
+ _root = null;
75
+ _elements = null;
76
+ _engine = null;
77
+ /**
78
+ * Снять ожидание узла дня с фокусом коллекции; `null` — DOM-фокус узла не
79
+ * ждёт.
80
+ */
81
+ _waiting = null;
82
+ install(ctx) {
83
+ super.install(ctx);
84
+ this._owner = ctx.getInstance() ?? null;
85
+ this._elements = ctx.get(TCollectionElements) ?? null;
86
+ const elementPlugin = ctx.get(TElementPlugin);
87
+ elementPlugin?.events.on("ready", (element) => this._bind(element));
88
+ elementPlugin?.events.on("removed", () => this._bind(null));
89
+ ctx.get(TCollectionBundlesPlugin)?.events.on("engine:bound", (engine) => this._bindEngine(engine));
90
+ }
91
+ destroy() {
92
+ this._bind(null);
93
+ this._owner = null;
94
+ this._elements = null;
95
+ this._engine = null;
96
+ super.destroy();
97
+ }
98
+ _bindEngine(engine) {
99
+ this._engine = engine;
100
+ this._listenTo(engine.extensions.focus.events, "change:focusedDate", this._onFocusedDate);
101
+ this._listenTo(engine.extensions.view.events, "change:paging", this._onPaging);
102
+ this._listenTo(engine.extensions.picker.events, "change:pickers", this._onPickers);
103
+ }
104
+ /** Корень сменился — слушатели переезжают, ожидание узла прежнего корня снимается. */
105
+ _bind(root) {
106
+ const previous = this._root;
107
+ previous?.removeEventListener("keydown", this._onKeyDown);
108
+ previous?.removeEventListener("focusin", this._onFocusIn);
109
+ previous?.removeEventListener("focusout", this._onFocusOut);
110
+ this._stopFollowing();
111
+ this._root = root;
112
+ const target = root;
113
+ target?.addEventListener("keydown", this._onKeyDown);
114
+ target?.addEventListener("focusin", this._onFocusIn);
115
+ target?.addEventListener("focusout", this._onFocusOut);
116
+ }
117
+ _onKeyDown = (event) => {
118
+ if (event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return;
119
+ const engine = this._engine;
120
+ const day = engine ? dayOf(engine, this._elements, event.target) : void 0;
121
+ if (!engine || !day || day.element !== event.target) return;
122
+ const { focus, selection } = engine.extensions;
123
+ if (CHOOSE_KEYS.has(event.key)) {
124
+ event.preventDefault();
125
+ selection.chooseDate(day.item.date);
126
+ return;
127
+ }
128
+ if (event.key === "Escape") {
129
+ if (selection.anchor === void 0) return;
130
+ event.preventDefault();
131
+ selection.cancelRange();
132
+ return;
133
+ }
134
+ const move = MOVES[event.key];
135
+ if (!move) return;
136
+ event.preventDefault();
137
+ selection.notifyHover(void 0);
138
+ move(focus, {
139
+ rtl: this._rtl,
140
+ shift: event.shiftKey
141
+ });
142
+ };
143
+ /**
144
+ * Фокус пришёл на день — фокус коллекции переходит к нему: один путь для
145
+ * клавиш (их `focus()` тоже даёт `focusin`), нажатия и `focus()` из кода.
146
+ * Фокус пришёл не на день — ожидание узла больше не нужно: пользователь
147
+ * уже там, куда ушёл.
148
+ */
149
+ _onFocusIn = (event) => {
150
+ const engine = this._engine;
151
+ if (!engine) return;
152
+ const day = dayOf(engine, this._elements, event.target);
153
+ if (!day) {
154
+ this._stopFollowing();
155
+ return;
156
+ }
157
+ engine.extensions.focus.focusDate(day.item.date);
158
+ };
159
+ /**
160
+ * Фокус ушёл из календаря — ожидание снимается. Без `relatedTarget` фокус
161
+ * ушёл «никуда»: узел дня с фокусом убрала разметка или кнопка погасла под
162
+ * фокусом, — тогда ожидание как раз и нужно.
163
+ */
164
+ _onFocusOut = (event) => {
165
+ const next = event.relatedTarget;
166
+ if (next instanceof Node && !this._root?.contains(next)) this._stopFollowing();
167
+ };
168
+ /**
169
+ * Фокус коллекции перешёл — DOM-фокус идёт за ним, если стоял на дне или
170
+ * уже ждал узла: тогда он ждёт уже новый день. Без корня — выход: до узла
171
+ * DOM-фокуса нет, а ожидание снимает `_bind`. Событие приходит и при сборке
172
+ * на сервере — смена месяцев и границ двигает фокус, — а проверке узла там
173
+ * не на что опереться: в Node типов DOM нет.
174
+ */
175
+ _onFocusedDate = () => {
176
+ const engine = this._engine;
177
+ if (!engine || !this._root) return;
178
+ if (this._waiting || dayOf(engine, this._elements, this._activeElement)) this._follow();
179
+ };
180
+ /**
181
+ * Кнопка листания погасла, пока на ней фокус, — фокус на остановку сетки.
182
+ * У выключенного календаря остановки нет, и переносить некуда.
183
+ */
184
+ _onPaging = () => {
185
+ const engine = this._engine;
186
+ const owner = this._owner;
187
+ const root = this._root;
188
+ if (!engine || !owner || !root || owner.disabled) return;
189
+ const pager = pagerOf(owner, root, this._activeElement);
190
+ if (pager && PAGER_OFF[pager](engine.extensions.view)) this._follow();
191
+ };
192
+ /**
193
+ * Стрелка панели выбора погасла, пока на ней фокус, — фокус на список панели.
194
+ * Список — ListBox, и остановка Tab у него — узел списка (`pickerListOf`),
195
+ * а не корень с классом части календаря. Без корня — выход, как у листания:
196
+ * `change:pickers` приходит уже при сборке — плагины связок и имён пишут
197
+ * наборы мест, — а DOM-фокуса до узла нет.
198
+ */
199
+ _onPickers = () => {
200
+ const engine = this._engine;
201
+ const owner = this._owner;
202
+ if (!engine || !owner || !this._root) return;
203
+ const pickers = engine.extensions.picker.pickers;
204
+ const hit = pickerPartOf(owner, pickers, this._activeElement);
205
+ const picker = hit ? pickers[hit.index] : void 0;
206
+ if (!hit || !picker || hit.part === "heading") return;
207
+ if (!(hit.part === "prev" ? picker.prevDisabled : picker.nextDisabled)) return;
208
+ const list = pickerListOf(owner, hit.panel);
209
+ if (isFocusableElement(list)) list.focus();
210
+ };
211
+ /**
212
+ * DOM-фокус — на день с фокусом коллекции; узла ещё нет — ждать его
213
+ * помощником реестра узлов: день войдёт в коллекцию, и его узел объявят.
214
+ */
215
+ _follow() {
216
+ this._stopFollowing();
217
+ if (this._focusFollowed()) return;
218
+ this._waiting = this._elements?.waitFor(() => this._focusFollowed()) ?? null;
219
+ }
220
+ /**
221
+ * Узел дня с фокусом коллекции в документе — ожидание снято, фокус на нём.
222
+ * Нашёлся ли узел — ответ для помощника ожидания: `false` — ждать дальше.
223
+ */
224
+ _focusFollowed() {
225
+ const engine = this._engine;
226
+ const element = engine ? dayElementOf(engine, this._elements, engine.extensions.focus.focusedDate) : null;
227
+ if (!element) return false;
228
+ this._stopFollowing();
229
+ if (!element.contains(this._activeElement) && isFocusableElement(element)) element.focus();
230
+ return true;
231
+ }
232
+ _stopFollowing() {
233
+ const stop = this._waiting;
234
+ this._waiting = null;
235
+ stop?.();
236
+ }
237
+ get _activeElement() {
238
+ return this._root?.ownerDocument.activeElement ?? null;
239
+ }
240
+ /**
241
+ * Направление письма берётся вычисленным: `direction` компонента бывает
242
+ * `inherit`, и тогда его задаёт предок.
243
+ */
244
+ get _rtl() {
245
+ return this._root !== null && getComputedStyle(this._root).direction === "rtl";
246
+ }
247
+ };
248
+ //#endregion
249
+ export { TCalendarKeyboardPlugin };
@@ -0,0 +1,16 @@
1
+ import type { ICalendarFocusExtension } from '@soxa-ui/core';
2
+ import type { TPluginEvents } from '../../../base';
3
+ /**
4
+ * Своих событий у плагина нет: результат нажатия виден и так — фокус сообщает
5
+ * DOM, выбор и фокус сетки — расширения коллекции.
6
+ */
7
+ export type TCalendarKeyboardPluginEvents = TPluginEvents;
8
+ /** Что клавише нужно знать, кроме фокуса: направление письма и Shift. */
9
+ export type TCalendarMoveContext = {
10
+ /** Правое-левое письмо: ←/→ меняются местами */
11
+ rtl: boolean;
12
+ /** С Shift PageUp/PageDown листают год, а не месяц */
13
+ shift: boolean;
14
+ };
15
+ /** Переход фокуса сетки по клавише — команда расширения фокуса. */
16
+ export type TCalendarMove = (focus: ICalendarFocusExtension, context: TCalendarMoveContext) => void;
@@ -0,0 +1 @@
1
+ export * from './names.plugin';
@@ -0,0 +1,24 @@
1
+ import type { ICalendar } from '@soxa-ui/core';
2
+ import { TNamesPlugin } from '../../../locale/names.plugin';
3
+ import type { IPluginContext } from '../../../base';
4
+ import type { TTranslations } from '../../../locale/types';
5
+ /**
6
+ * TCalendarNamesPlugin — имена кнопок календаря от локали.
7
+ *
8
+ * Кнопки листания месяцев — в наборы календаря (`prevAria`, `nextAria`).
9
+ * Стрелки панели выбора месяца и года — в наборы мест панели
10
+ * (`pickerSets` расширения `picker`), по уровню места: на месяцах стрелка
11
+ * листает год, на годах — страницу из 12 лет. Уровень сменился, мест стало
12
+ * больше (`change:pickers`) — имена переписываются; та же строка в наборе
13
+ * ничего не меняет, поэтому запись из этого события в него же не
14
+ * возвращается.
15
+ *
16
+ * Движок привязывается при сборке (`engine:bound`), до первой отрисовки, —
17
+ * имена стрелок есть уже в серверной разметке.
18
+ */
19
+ export declare class TCalendarNamesPlugin extends TNamesPlugin<ICalendar> {
20
+ private _engine;
21
+ protected _name(owner: ICalendar, translations: TTranslations): void;
22
+ protected _watch(_owner: ICalendar, name: () => void, ctx: IPluginContext): void;
23
+ destroy(): void;
24
+ }
@@ -0,0 +1,45 @@
1
+ import { TCollectionBundlesPlugin } from "../../collection/bundles.plugin.js";
2
+ import { TNamesPlugin } from "../../../locale/names.plugin.js";
3
+ //#region src/custom/calendar/names/names.plugin.ts
4
+ /**
5
+ * TCalendarNamesPlugin — имена кнопок календаря от локали.
6
+ *
7
+ * Кнопки листания месяцев — в наборы календаря (`prevAria`, `nextAria`).
8
+ * Стрелки панели выбора месяца и года — в наборы мест панели
9
+ * (`pickerSets` расширения `picker`), по уровню места: на месяцах стрелка
10
+ * листает год, на годах — страницу из 12 лет. Уровень сменился, мест стало
11
+ * больше (`change:pickers`) — имена переписываются; та же строка в наборе
12
+ * ничего не меняет, поэтому запись из этого события в него же не
13
+ * возвращается.
14
+ *
15
+ * Движок привязывается при сборке (`engine:bound`), до первой отрисовки, —
16
+ * имена стрелок есть уже в серверной разметке.
17
+ */
18
+ var TCalendarNamesPlugin = class extends TNamesPlugin {
19
+ _engine = null;
20
+ _name(owner, translations) {
21
+ const names = translations.calendar;
22
+ owner.prevAria.add("aria-label", names.prevMonth);
23
+ owner.nextAria.add("aria-label", names.nextMonth);
24
+ const picker = this._engine?.extensions.picker;
25
+ picker?.pickers.forEach(({ level }, index) => {
26
+ const sets = picker.pickerSets(index);
27
+ const months = level === "months";
28
+ sets.prev.add("aria-label", months ? names.prevYear : names.prevYears);
29
+ sets.next.add("aria-label", months ? names.nextYear : names.nextYears);
30
+ });
31
+ }
32
+ _watch(_owner, name, ctx) {
33
+ ctx.get(TCollectionBundlesPlugin)?.events.on("engine:bound", (engine) => {
34
+ this._engine = engine;
35
+ name();
36
+ this._listenTo(engine.extensions.picker.events, "change:pickers", name);
37
+ });
38
+ }
39
+ destroy() {
40
+ this._engine = null;
41
+ super.destroy();
42
+ }
43
+ };
44
+ //#endregion
45
+ export { TCalendarNamesPlugin };
@@ -0,0 +1,58 @@
1
+ import type { ICalendar, TCalendarCollection, TCalendarDate, TCalendarPicker } from '@soxa-ui/core';
2
+ import type { TCollectionElements } from '../collection';
3
+ import type { TCalendarDay, TCalendarPager, TCalendarPickerHit } from './types';
4
+ /**
5
+ * День календаря, в узле которого лежит `target`, — один поиск на оба плагина
6
+ * календаря: клавиша, фокус, нажатие и наведение находят день одинаково.
7
+ *
8
+ * Узел дня — его корень, ячейка сетки; внутри неё плитка и содержимое слота,
9
+ * и событие с них — тоже событие дня. Кому нужна сама ячейка (клавиши берутся
10
+ * только с неё), сверяет `element` с целью события. Заполнитель соседнего
11
+ * месяца днём не бывает: элемента коллекции у него нет, и узла среди узлов
12
+ * дней — тоже.
13
+ */
14
+ export declare function dayOf(engine: TCalendarCollection, elements: TCollectionElements | null, target: EventTarget | null): TCalendarDay | undefined;
15
+ /** Узел дня с такой датой, пока он в документе. */
16
+ export declare function dayElementOf(engine: TCalendarCollection, elements: TCollectionElements | null, date: TCalendarDate): Element | null;
17
+ /**
18
+ * Кнопка шапки панели выбора месяца и года, в которой лежит `target`, панель
19
+ * этой кнопки и место панели среди `pickers` — один поиск на оба плагина
20
+ * календаря.
21
+ *
22
+ * Своей панель делает шапка места (`holdsHeading`). Части находят по классам
23
+ * владельца (`classes.resolve`), как кнопки листания.
24
+ */
25
+ export declare function pickerPartOf(owner: ICalendar, pickers: readonly TCalendarPicker[], target: EventTarget | null): TCalendarPickerHit | undefined;
26
+ /**
27
+ * Карточка панели выбора места `picker` в корне — ту же карточку отдаёт
28
+ * `pickerPartOf` от кнопки её шапки. Своей её делает шапка места
29
+ * (`holdsHeading`), часть находят по классу владельца (`classes.resolve`).
30
+ * `null` — карточки в документе нет: содержимое поповера не смонтировано до
31
+ * первого открытия.
32
+ */
33
+ export declare function pickerPanelOf(owner: ICalendar, root: Element, picker: TCalendarPicker): Element | null;
34
+ /**
35
+ * Список карточки панели выбора — узел списка ListBox (`listOf`): остановка
36
+ * Tab у списка — он, а не корень ListBox с классом части календаря. `null` —
37
+ * карточки или списка в ней нет.
38
+ *
39
+ * Один на клавиатуру календаря (кому отдать фокус со стрелки, погасшей у
40
+ * границы лет) и остановку календаря, пока панель открыта (`gridStopOf`).
41
+ */
42
+ export declare function pickerListOf(owner: ICalendar, panel: Element | null): Element | null;
43
+ /**
44
+ * Место, чья подложка — `target`; `target` не подложка — `undefined`.
45
+ *
46
+ * Подложка — сама панель поповера места, а не узел в ней: панель накрывает
47
+ * календарь, а выбирают в её содержимом, и у нажатия мимо содержимого цель —
48
+ * панель. Псевдоэлемент панели — тоже панель: у нажатия по нему та же цель.
49
+ * Панель находят по классу её поповера (`classes.resolve`), своей её делает
50
+ * шапка места (`holdsHeading`).
51
+ */
52
+ export declare function pickerBackdropOf(pickers: readonly TCalendarPicker[], target: EventTarget | null): number | undefined;
53
+ /**
54
+ * Кнопка листания, в которой лежит `target`. Кнопки находят по классам
55
+ * владельца (`classes.resolve`), а не строкой в плагине, и только внутри его
56
+ * корня.
57
+ */
58
+ export declare function pagerOf(owner: ICalendar, root: Element, target: EventTarget | null): TCalendarPager | undefined;