@tcn/ui 0.16.0 → 0.18.0

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 (437) hide show
  1. package/dist/actions/index.d.ts +0 -1
  2. package/dist/actions/index.d.ts.map +1 -1
  3. package/dist/actions/index.js +6 -8
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/card.css +1 -0
  6. package/dist/column.css +1 -1
  7. package/dist/containers.css +1 -1
  8. package/dist/containers.module-BmICKsOK.js +5 -0
  9. package/dist/containers.module-BmICKsOK.js.map +1 -0
  10. package/dist/draggable.css +1 -1
  11. package/dist/draggable.module-DFYR5n3n.js +5 -0
  12. package/dist/draggable.module-DFYR5n3n.js.map +1 -0
  13. package/dist/field_set.css +1 -1
  14. package/dist/field_set.module-BpJTFCi4.js +5 -0
  15. package/dist/field_set.module-BpJTFCi4.js.map +1 -0
  16. package/dist/form/field/field.js +17 -13
  17. package/dist/form/field/field.js.map +1 -1
  18. package/dist/form/field_set/field_set.d.ts +6 -10
  19. package/dist/form/field_set/field_set.d.ts.map +1 -1
  20. package/dist/form/field_set/field_set.js +33 -61
  21. package/dist/form/field_set/field_set.js.map +1 -1
  22. package/dist/form/field_set/legend.d.ts +20 -0
  23. package/dist/form/field_set/legend.d.ts.map +1 -0
  24. package/dist/form/field_set/legend.js +28 -0
  25. package/dist/form/field_set/legend.js.map +1 -0
  26. package/dist/form/index.d.ts +2 -1
  27. package/dist/form/index.d.ts.map +1 -1
  28. package/dist/form/index.js +24 -22
  29. package/dist/form/index.js.map +1 -1
  30. package/dist/inputs/color_input/color_input.js +2 -3
  31. package/dist/inputs/color_input/color_input.js.map +1 -1
  32. package/dist/inputs/color_input/color_picker.js +11 -7
  33. package/dist/inputs/color_input/color_picker.js.map +1 -1
  34. package/dist/inputs/combo_box/combo_box.js +24 -20
  35. package/dist/inputs/combo_box/combo_box.js.map +1 -1
  36. package/dist/inputs/date_picker/date_picker.js +19 -15
  37. package/dist/inputs/date_picker/date_picker.js.map +1 -1
  38. package/dist/inputs/date_picker/date_picker_header.d.ts.map +1 -1
  39. package/dist/inputs/date_picker/date_picker_header.js +15 -14
  40. package/dist/inputs/date_picker/date_picker_header.js.map +1 -1
  41. package/dist/inputs/date_picker/date_picker_input.js +26 -23
  42. package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
  43. package/dist/inputs/date_picker/date_picker_time_selector.js +2 -3
  44. package/dist/inputs/date_picker/date_picker_time_selector.js.map +1 -1
  45. package/dist/inputs/date_picker/date_picker_year_input.js +2 -3
  46. package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
  47. package/dist/inputs/date_picker/date_picker_year_selector.js +24 -21
  48. package/dist/inputs/date_picker/date_picker_year_selector.js.map +1 -1
  49. package/dist/inputs/mask_input/key_capture_input.js +35 -31
  50. package/dist/inputs/mask_input/key_capture_input.js.map +1 -1
  51. package/dist/inputs/mask_input/mask_input.js +18 -14
  52. package/dist/inputs/mask_input/mask_input.js.map +1 -1
  53. package/dist/inputs/multiselect/multiselect.js +28 -24
  54. package/dist/inputs/multiselect/multiselect.js.map +1 -1
  55. package/dist/inputs/multiselect/multiselect_inline_values.d.ts.map +1 -1
  56. package/dist/inputs/multiselect/multiselect_inline_values.js +15 -15
  57. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  58. package/dist/inputs/multiselect/multiselect_values.js +16 -17
  59. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  60. package/dist/inputs/phone_number_input/phone_number_context.js +13 -9
  61. package/dist/inputs/phone_number_input/phone_number_context.js.map +1 -1
  62. package/dist/inputs/phone_number_input/phone_number_input_adapter.js +2 -3
  63. package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -1
  64. package/dist/inputs/phone_number_input/sip_input.js +8 -9
  65. package/dist/inputs/phone_number_input/sip_input.js.map +1 -1
  66. package/dist/inputs/select/select.js +11 -8
  67. package/dist/inputs/select/select.js.map +1 -1
  68. package/dist/inputs/slider/slider.js +28 -24
  69. package/dist/inputs/slider/slider.js.map +1 -1
  70. package/dist/inputs/suggestions/suggestion_list.js +11 -8
  71. package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
  72. package/dist/inputs/switch/switch.js +29 -25
  73. package/dist/inputs/switch/switch.js.map +1 -1
  74. package/dist/inputs/unit_input/unit_input.js +21 -17
  75. package/dist/inputs/unit_input/unit_input.js.map +1 -1
  76. package/dist/layouts/containers/columns/columns.d.ts +6 -1
  77. package/dist/layouts/containers/columns/columns.d.ts.map +1 -1
  78. package/dist/layouts/containers/columns/columns.js +30 -7
  79. package/dist/layouts/containers/columns/columns.js.map +1 -1
  80. package/dist/layouts/containers/rail.d.ts +2 -5
  81. package/dist/layouts/containers/rail.d.ts.map +1 -1
  82. package/dist/layouts/containers/rail.js +17 -55
  83. package/dist/layouts/containers/rail.js.map +1 -1
  84. package/dist/layouts/containers/rows/index.d.ts +3 -0
  85. package/dist/layouts/containers/rows/index.d.ts.map +1 -0
  86. package/dist/layouts/containers/rows/index.js +7 -0
  87. package/dist/layouts/containers/rows/index.js.map +1 -0
  88. package/dist/layouts/containers/rows/row.d.ts +6 -0
  89. package/dist/layouts/containers/rows/row.d.ts.map +1 -0
  90. package/dist/layouts/containers/rows/row.js +20 -0
  91. package/dist/layouts/containers/rows/row.js.map +1 -0
  92. package/dist/layouts/containers/rows/rows.d.ts +11 -0
  93. package/dist/layouts/containers/rows/rows.d.ts.map +1 -0
  94. package/dist/layouts/containers/rows/rows.js +34 -0
  95. package/dist/layouts/containers/rows/rows.js.map +1 -0
  96. package/dist/layouts/containers/scaffold.d.ts +2 -5
  97. package/dist/layouts/containers/scaffold.d.ts.map +1 -1
  98. package/dist/layouts/containers/scaffold.js +17 -55
  99. package/dist/layouts/containers/scaffold.js.map +1 -1
  100. package/dist/layouts/index.d.ts +2 -0
  101. package/dist/layouts/index.d.ts.map +1 -1
  102. package/dist/layouts/index.js +26 -22
  103. package/dist/layouts/index.js.map +1 -1
  104. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js +11 -7
  105. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js.map +1 -1
  106. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js +11 -7
  107. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js.map +1 -1
  108. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js +14 -10
  109. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js.map +1 -1
  110. package/dist/multiselect_values.css +1 -1
  111. package/dist/navigation/tabs/state/link/tab_link.js +15 -11
  112. package/dist/navigation/tabs/state/link/tab_link.js.map +1 -1
  113. package/dist/overlay/frame/frame.d.ts.map +1 -1
  114. package/dist/overlay/frame/frame.js +117 -76
  115. package/dist/overlay/frame/frame.js.map +1 -1
  116. package/dist/overlay/menu/menu.js +21 -17
  117. package/dist/overlay/menu/menu.js.map +1 -1
  118. package/dist/overlay/popper/base/dismissal_decorator.js +3 -3
  119. package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -1
  120. package/dist/overlay/popper/context_popper.js +14 -10
  121. package/dist/overlay/popper/context_popper.js.map +1 -1
  122. package/dist/overlay/popper/element_popper.js +15 -11
  123. package/dist/overlay/popper/element_popper.js.map +1 -1
  124. package/dist/overlay/popper/legacy/popper.js +32 -28
  125. package/dist/overlay/popper/legacy/popper.js.map +1 -1
  126. package/dist/overlay/popper/preview_popper.js +16 -12
  127. package/dist/overlay/popper/preview_popper.js.map +1 -1
  128. package/dist/overlay/tethered/tethered.js +17 -13
  129. package/dist/overlay/tethered/tethered.js.map +1 -1
  130. package/dist/resizable.css +1 -0
  131. package/dist/resizable.module-ur5FBfxo.js +5 -0
  132. package/dist/resizable.module-ur5FBfxo.js.map +1 -0
  133. package/dist/resize_handle.css +1 -0
  134. package/dist/row.css +1 -0
  135. package/dist/stacks/box/box.d.ts +14 -0
  136. package/dist/stacks/box/box.d.ts.map +1 -1
  137. package/dist/stacks/box/box.js +104 -102
  138. package/dist/stacks/box/box.js.map +1 -1
  139. package/dist/stacks/box/detect_resize_bounds.d.ts +1 -0
  140. package/dist/stacks/box/detect_resize_bounds.d.ts.map +1 -1
  141. package/dist/stacks/box/detect_resize_bounds.js +22 -20
  142. package/dist/stacks/box/detect_resize_bounds.js.map +1 -1
  143. package/dist/stacks/box/end_resize_handle.js +5 -5
  144. package/dist/stacks/box/end_resize_handle.js.map +1 -1
  145. package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
  146. package/dist/stacks/box/resize_handlers.js +12 -12
  147. package/dist/stacks/box/resize_handlers.js.map +1 -1
  148. package/dist/stacks/box/start_resize_handle.js +7 -7
  149. package/dist/stacks/box/start_resize_handle.js.map +1 -1
  150. package/dist/stacks/box/types.d.ts +3 -2
  151. package/dist/stacks/box/types.d.ts.map +1 -1
  152. package/dist/stacks/h_collapsible_box.js +24 -20
  153. package/dist/stacks/h_collapsible_box.js.map +1 -1
  154. package/dist/stacks/v_collapsible_box.js +26 -22
  155. package/dist/stacks/v_collapsible_box.js.map +1 -1
  156. package/dist/surfaces/alert/alert.js +7 -8
  157. package/dist/surfaces/alert/alert.js.map +1 -1
  158. package/dist/surfaces/card/card.d.ts.map +1 -1
  159. package/dist/surfaces/card/card.js +14 -6
  160. package/dist/surfaces/card/card.js.map +1 -1
  161. package/dist/surfaces/pop_confirm/pop_confirm.js +4 -2
  162. package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -1
  163. package/dist/test-setup.d.ts +2 -0
  164. package/dist/test-setup.d.ts.map +1 -0
  165. package/dist/test-setup.js +10 -0
  166. package/dist/test-setup.js.map +1 -0
  167. package/dist/themes/stories/button_showcase.d.ts.map +1 -1
  168. package/dist/themes/stories/controls_fieldset.d.ts.map +1 -1
  169. package/dist/themes/stories/menu_showcase.d.ts.map +1 -1
  170. package/dist/themes/theme.d.ts.map +1 -1
  171. package/dist/themes/theme.js +17 -22
  172. package/dist/themes/theme.js.map +1 -1
  173. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  174. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  175. package/dist/themes/themes/ergo/ergo_theme.js +653 -431
  176. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  177. package/dist/themes/themes/ergo/parts/actions.css +1 -0
  178. package/dist/themes/themes/ergo/parts/base.css +1 -0
  179. package/dist/themes/themes/ergo/parts/form.css +1 -0
  180. package/dist/themes/themes/ergo/parts/inputs.css +1 -0
  181. package/dist/themes/themes/ergo/parts/navigation.css +1 -0
  182. package/dist/themes/themes/windows_98/windows_98.css +1 -1
  183. package/dist/themes/themes/windows_98/windows_98_theme.js +32 -43
  184. package/dist/themes/themes/windows_98/windows_98_theme.js.map +1 -1
  185. package/dist/utils/decorators/clone_with_decorator.d.ts +21 -0
  186. package/dist/utils/decorators/clone_with_decorator.d.ts.map +1 -0
  187. package/dist/utils/decorators/clone_with_decorator.js +16 -0
  188. package/dist/utils/decorators/clone_with_decorator.js.map +1 -0
  189. package/dist/utils/decorators/draggable/context.d.ts.map +1 -0
  190. package/dist/utils/decorators/draggable/context.js.map +1 -0
  191. package/dist/utils/{dnd/handle.d.ts → decorators/draggable/drag_handle.d.ts} +1 -1
  192. package/dist/utils/decorators/draggable/drag_handle.d.ts.map +1 -0
  193. package/dist/utils/{dnd/handle.js → decorators/draggable/drag_handle.js} +2 -2
  194. package/dist/utils/decorators/draggable/drag_handle.js.map +1 -0
  195. package/dist/utils/decorators/draggable/draggable.d.ts.map +1 -0
  196. package/dist/utils/{dnd → decorators}/draggable/draggable.js +3 -3
  197. package/dist/utils/decorators/draggable/draggable.js.map +1 -0
  198. package/dist/utils/decorators/draggable/index.d.ts +11 -0
  199. package/dist/utils/decorators/draggable/index.d.ts.map +1 -0
  200. package/dist/utils/decorators/draggable/index.js +14 -0
  201. package/dist/utils/decorators/draggable/index.js.map +1 -0
  202. package/dist/utils/{dnd → decorators/draggable}/types.d.ts +1 -1
  203. package/dist/utils/decorators/draggable/types.d.ts.map +1 -0
  204. package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.d.ts +2 -2
  205. package/dist/utils/decorators/draggable/use_drag_container.d.ts.map +1 -0
  206. package/dist/utils/decorators/draggable/use_drag_container.js.map +1 -0
  207. package/dist/utils/decorators/draggable/use_draggable.d.ts.map +1 -0
  208. package/dist/utils/decorators/draggable/use_draggable.js.map +1 -0
  209. package/dist/utils/decorators/index.d.ts +3 -0
  210. package/dist/utils/decorators/index.d.ts.map +1 -0
  211. package/dist/utils/decorators/index.js +27 -0
  212. package/dist/utils/decorators/index.js.map +1 -0
  213. package/dist/utils/decorators/resizable/context.d.ts +4 -0
  214. package/dist/utils/decorators/resizable/context.d.ts.map +1 -0
  215. package/dist/utils/decorators/resizable/context.js +10 -0
  216. package/dist/utils/decorators/resizable/context.js.map +1 -0
  217. package/dist/utils/decorators/resizable/handle_config.d.ts +32 -0
  218. package/dist/utils/decorators/resizable/handle_config.d.ts.map +1 -0
  219. package/dist/utils/decorators/resizable/handle_config.js +62 -0
  220. package/dist/utils/decorators/resizable/handle_config.js.map +1 -0
  221. package/dist/utils/decorators/resizable/index.d.ts +10 -0
  222. package/dist/utils/decorators/resizable/index.d.ts.map +1 -0
  223. package/dist/utils/decorators/resizable/index.js +16 -0
  224. package/dist/utils/decorators/resizable/index.js.map +1 -0
  225. package/dist/utils/decorators/resizable/resizable.d.ts +11 -0
  226. package/dist/utils/decorators/resizable/resizable.d.ts.map +1 -0
  227. package/dist/utils/decorators/resizable/resizable.js +52 -0
  228. package/dist/utils/decorators/resizable/resizable.js.map +1 -0
  229. package/dist/utils/decorators/resizable/resize_handle.d.ts +7 -0
  230. package/dist/utils/decorators/resizable/resize_handle.d.ts.map +1 -0
  231. package/dist/utils/decorators/resizable/resize_handle.js +100 -0
  232. package/dist/utils/decorators/resizable/resize_handle.js.map +1 -0
  233. package/dist/utils/decorators/resizable/resize_strategy.d.ts +47 -0
  234. package/dist/utils/decorators/resizable/resize_strategy.d.ts.map +1 -0
  235. package/dist/utils/decorators/resizable/resize_strategy.js +108 -0
  236. package/dist/utils/decorators/resizable/resize_strategy.js.map +1 -0
  237. package/dist/utils/decorators/resizable/types.d.ts +28 -0
  238. package/dist/utils/decorators/resizable/types.d.ts.map +1 -0
  239. package/dist/utils/decorators/resizable/types.js +2 -0
  240. package/dist/utils/decorators/resizable/types.js.map +1 -0
  241. package/dist/utils/hooks/labelled_by_context.d.ts +21 -0
  242. package/dist/utils/hooks/labelled_by_context.d.ts.map +1 -0
  243. package/dist/utils/hooks/labelled_by_context.js +12 -0
  244. package/dist/utils/hooks/labelled_by_context.js.map +1 -0
  245. package/dist/utils/index.d.ts +8 -7
  246. package/dist/utils/index.d.ts.map +1 -1
  247. package/dist/utils/index.js +45 -28
  248. package/dist/utils/index.js.map +1 -1
  249. package/dist/utils/listeners/click_away_listener.d.ts.map +1 -0
  250. package/dist/utils/{click_away_listener.js → listeners/click_away_listener.js} +1 -1
  251. package/dist/utils/listeners/click_away_listener.js.map +1 -0
  252. package/dist/utils/listeners/focus_redirect.d.ts.map +1 -0
  253. package/dist/utils/listeners/focus_redirect.js.map +1 -0
  254. package/dist/utils/listeners/index.d.ts +4 -0
  255. package/dist/utils/listeners/index.d.ts.map +1 -0
  256. package/dist/utils/listeners/index.js +10 -0
  257. package/dist/utils/listeners/index.js.map +1 -0
  258. package/dist/utils/listeners/mouse_leave_region.d.ts.map +1 -0
  259. package/dist/utils/listeners/mouse_leave_region.js.map +1 -0
  260. package/dist/utils/listeners/scroll_away_listener.d.ts.map +1 -0
  261. package/dist/utils/{scroll_away_listener.js → listeners/scroll_away_listener.js} +1 -1
  262. package/dist/utils/listeners/scroll_away_listener.js.map +1 -0
  263. package/dist/utils/system/index.d.ts +2 -0
  264. package/dist/utils/system/index.d.ts.map +1 -0
  265. package/dist/utils/system/index.js +2 -0
  266. package/dist/utils/system/index.js.map +1 -0
  267. package/dist/utils/system/variations.d.ts.map +1 -0
  268. package/dist/utils/system/variations.js +2 -0
  269. package/dist/utils/system/variations.js.map +1 -0
  270. package/dist/utils/types/sides.d.ts +3 -0
  271. package/dist/utils/types/sides.d.ts.map +1 -0
  272. package/package.json +3 -9
  273. package/src/actions/button/__stories__/button_group.stories.tsx +23 -24
  274. package/src/actions/index.ts +0 -1
  275. package/src/form/field/field.stories.tsx +2 -2
  276. package/src/form/field/h_field/h_field.stories.tsx +1 -1
  277. package/src/form/field/v_field/v_field.stories.tsx +1 -1
  278. package/src/form/field_set/field_set.module.css +0 -14
  279. package/src/form/field_set/field_set.stories.tsx +101 -1
  280. package/src/form/field_set/field_set.tsx +43 -57
  281. package/src/form/field_set/legend.tsx +44 -0
  282. package/src/form/index.ts +6 -1
  283. package/src/inputs/date_picker/date_picker_header.tsx +7 -5
  284. package/src/inputs/date_picker/date_picker_year_selector.tsx +5 -5
  285. package/src/inputs/multiselect/multiselect_inline_values.tsx +4 -3
  286. package/src/inputs/multiselect/multiselect_values.module.css +1 -0
  287. package/src/inputs/multiselect/multiselect_values.tsx +4 -4
  288. package/src/layouts/__stories__/columns.stories.tsx +31 -0
  289. package/src/layouts/__stories__/composed.stories.tsx +77 -8
  290. package/src/layouts/__stories__/rows.stories.tsx +77 -0
  291. package/src/layouts/__stories__/utils.tsx +2 -84
  292. package/src/layouts/containers/columns/column.module.css +3 -2
  293. package/src/layouts/containers/columns/columns.tsx +29 -3
  294. package/src/layouts/containers/containers.module.css +27 -29
  295. package/src/layouts/containers/rail.tsx +9 -51
  296. package/src/layouts/containers/rows/index.ts +2 -0
  297. package/src/layouts/containers/rows/row.module.css +15 -0
  298. package/src/layouts/containers/rows/row.tsx +22 -0
  299. package/src/layouts/containers/rows/rows.tsx +42 -0
  300. package/src/layouts/containers/scaffold.tsx +9 -49
  301. package/src/layouts/index.ts +2 -0
  302. package/src/overlay/frame/frame.stories.tsx +2 -1
  303. package/src/overlay/frame/frame.tsx +68 -20
  304. package/src/overlay/popper/base/dismissal_decorator.tsx +3 -3
  305. package/src/overlay/slide/slide.stories.tsx +1 -1
  306. package/src/stacks/box/box.tsx +29 -4
  307. package/src/stacks/box/detect_resize_bounds.ts +5 -1
  308. package/src/stacks/box/end_resize_handle.tsx +1 -1
  309. package/src/stacks/box/resize_handlers.ts +1 -1
  310. package/src/stacks/box/start_resize_handle.tsx +1 -1
  311. package/src/stacks/box/types.ts +3 -2
  312. package/src/stacks/collapsible_box.stories.tsx +5 -5
  313. package/src/stacks/demo.stories.tsx +7 -7
  314. package/src/surfaces/card/card.module.css +5 -0
  315. package/src/surfaces/card/card.stories.tsx +66 -8
  316. package/src/surfaces/card/card.tsx +6 -2
  317. package/src/surfaces/page/page.stories.tsx +84 -4
  318. package/src/surfaces/panel/__stories__/panel.stories.tsx +84 -9
  319. package/src/surfaces/window/window.stories.tsx +1 -1
  320. package/src/test-setup.ts +11 -0
  321. package/src/themes/stories/button_showcase.tsx +3 -1
  322. package/src/themes/stories/controls_fieldset.tsx +3 -1
  323. package/src/themes/stories/menu_showcase.tsx +3 -1
  324. package/src/themes/theme.tsx +6 -16
  325. package/src/themes/themes/ergo/INTERACTIVE.md +89 -0
  326. package/src/themes/themes/ergo/ROADMAP.md +116 -0
  327. package/src/themes/themes/ergo/ergo_theme.css +219 -734
  328. package/src/themes/themes/ergo/ergo_theme.ts +15 -1
  329. package/src/themes/themes/ergo/parts/actions.css +287 -0
  330. package/src/themes/themes/ergo/parts/base.css +62 -0
  331. package/src/themes/themes/ergo/parts/form.css +23 -0
  332. package/src/themes/themes/ergo/parts/inputs.css +252 -0
  333. package/src/themes/themes/ergo/parts/navigation.css +104 -0
  334. package/src/themes/themes/windows_98/windows_98.css +32 -43
  335. package/src/tokens/chip/chip.stories.tsx +5 -5
  336. package/src/utils/decorators/DECORATOR_PATTERN.md +86 -0
  337. package/src/utils/decorators/clone_with_decorator.ts +47 -0
  338. package/src/utils/{dnd → decorators/draggable}/__stories__/draggable.stories.tsx +7 -7
  339. package/src/utils/{dnd → decorators/draggable}/__stories__/use_draggable.stories.tsx +2 -2
  340. package/src/utils/{dnd/handle.tsx → decorators/draggable/drag_handle.tsx} +1 -1
  341. package/src/utils/{dnd → decorators}/draggable/draggable.tsx +2 -2
  342. package/src/utils/decorators/draggable/index.ts +15 -0
  343. package/src/utils/{dnd → decorators/draggable}/types.ts +1 -1
  344. package/src/utils/{dnd/hooks → decorators/draggable}/use_drag_container.ts +2 -2
  345. package/src/utils/decorators/index.ts +2 -0
  346. package/src/utils/decorators/resizable/__stories__/resizable.stories.tsx +214 -0
  347. package/src/utils/decorators/resizable/__stories__/resizable_stories.module.css +47 -0
  348. package/src/utils/decorators/resizable/__tests__/handle_config.test.ts +191 -0
  349. package/src/utils/decorators/resizable/__tests__/resize_strategy.test.ts +163 -0
  350. package/src/utils/decorators/resizable/context.ts +9 -0
  351. package/src/utils/decorators/resizable/handle_config.ts +118 -0
  352. package/src/utils/decorators/resizable/index.ts +37 -0
  353. package/src/utils/decorators/resizable/resizable.module.css +5 -0
  354. package/src/utils/decorators/resizable/resizable.tsx +97 -0
  355. package/src/utils/decorators/resizable/resize_handle.module.css +106 -0
  356. package/src/utils/decorators/resizable/resize_handle.tsx +165 -0
  357. package/src/utils/decorators/resizable/resize_strategy.ts +190 -0
  358. package/src/utils/decorators/resizable/types.ts +58 -0
  359. package/src/utils/hooks/labelled_by_context.ts +27 -0
  360. package/src/utils/index.ts +9 -7
  361. package/src/utils/{click_away_listener.tsx → listeners/click_away_listener.tsx} +1 -1
  362. package/src/utils/listeners/index.ts +3 -0
  363. package/src/utils/{scroll_away_listener.tsx → listeners/scroll_away_listener.tsx} +1 -1
  364. package/src/utils/system/index.ts +1 -0
  365. package/src/utils/types/sides.ts +2 -0
  366. package/dist/actions/button/slim_button/slim_button.d.ts +0 -9
  367. package/dist/actions/button/slim_button/slim_button.d.ts.map +0 -1
  368. package/dist/actions/button/slim_button/slim_button.js +0 -18
  369. package/dist/actions/button/slim_button/slim_button.js.map +0 -1
  370. package/dist/containers.module-DlGySre0.js +0 -5
  371. package/dist/containers.module-DlGySre0.js.map +0 -1
  372. package/dist/draggable.module-BgelQsuJ.js +0 -5
  373. package/dist/draggable.module-BgelQsuJ.js.map +0 -1
  374. package/dist/frame.css +0 -1
  375. package/dist/left_resize_handle.css +0 -1
  376. package/dist/right_resize_handle.css +0 -1
  377. package/dist/slim_button.css +0 -1
  378. package/dist/stacks/box/left_resize_handle.d.ts +0 -4
  379. package/dist/stacks/box/left_resize_handle.d.ts.map +0 -1
  380. package/dist/stacks/box/left_resize_handle.js +0 -36
  381. package/dist/stacks/box/left_resize_handle.js.map +0 -1
  382. package/dist/stacks/box/right_resize_handle.d.ts +0 -4
  383. package/dist/stacks/box/right_resize_handle.d.ts.map +0 -1
  384. package/dist/stacks/box/right_resize_handle.js +0 -36
  385. package/dist/stacks/box/right_resize_handle.js.map +0 -1
  386. package/dist/utils/click_away_listener.d.ts.map +0 -1
  387. package/dist/utils/click_away_listener.js.map +0 -1
  388. package/dist/utils/dnd/context.d.ts.map +0 -1
  389. package/dist/utils/dnd/context.js.map +0 -1
  390. package/dist/utils/dnd/draggable/draggable.d.ts.map +0 -1
  391. package/dist/utils/dnd/draggable/draggable.js.map +0 -1
  392. package/dist/utils/dnd/handle.d.ts.map +0 -1
  393. package/dist/utils/dnd/handle.js.map +0 -1
  394. package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +0 -1
  395. package/dist/utils/dnd/hooks/use_drag_container.js.map +0 -1
  396. package/dist/utils/dnd/hooks/use_draggable.d.ts.map +0 -1
  397. package/dist/utils/dnd/hooks/use_draggable.js.map +0 -1
  398. package/dist/utils/dnd/types.d.ts.map +0 -1
  399. package/dist/utils/focus_redirect.d.ts.map +0 -1
  400. package/dist/utils/focus_redirect.js.map +0 -1
  401. package/dist/utils/mouse_leave_region.d.ts.map +0 -1
  402. package/dist/utils/mouse_leave_region.js.map +0 -1
  403. package/dist/utils/scroll_away_listener.d.ts.map +0 -1
  404. package/dist/utils/scroll_away_listener.js.map +0 -1
  405. package/dist/utils/types/variations.d.ts.map +0 -1
  406. package/src/actions/button/__stories__/slim_button.stories.tsx +0 -274
  407. package/src/actions/button/slim_button/slim_button.module.css +0 -9
  408. package/src/actions/button/slim_button/slim_button.tsx +0 -26
  409. package/src/overlay/frame/frame.module.css +0 -5
  410. package/src/stacks/box/left_resize_handle.module.css +0 -12
  411. package/src/stacks/box/left_resize_handle.tsx +0 -39
  412. package/src/stacks/box/right_resize_handle.module.css +0 -12
  413. package/src/stacks/box/right_resize_handle.tsx +0 -38
  414. /package/dist/utils/{dnd → decorators/draggable}/context.d.ts +0 -0
  415. /package/dist/utils/{dnd → decorators/draggable}/context.js +0 -0
  416. /package/dist/utils/{dnd → decorators}/draggable/draggable.d.ts +0 -0
  417. /package/dist/utils/{dnd → decorators/draggable}/types.js +0 -0
  418. /package/dist/utils/{dnd → decorators/draggable}/types.js.map +0 -0
  419. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.js +0 -0
  420. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.d.ts +0 -0
  421. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.js +0 -0
  422. /package/dist/utils/{click_away_listener.d.ts → listeners/click_away_listener.d.ts} +0 -0
  423. /package/dist/utils/{focus_redirect.d.ts → listeners/focus_redirect.d.ts} +0 -0
  424. /package/dist/utils/{focus_redirect.js → listeners/focus_redirect.js} +0 -0
  425. /package/dist/utils/{mouse_leave_region.d.ts → listeners/mouse_leave_region.d.ts} +0 -0
  426. /package/dist/utils/{mouse_leave_region.js → listeners/mouse_leave_region.js} +0 -0
  427. /package/dist/utils/{scroll_away_listener.d.ts → listeners/scroll_away_listener.d.ts} +0 -0
  428. /package/dist/utils/{types → system}/variations.d.ts +0 -0
  429. /package/src/utils/{dnd → decorators/draggable}/__stories__/draggable_stories.module.css +0 -0
  430. /package/src/utils/{dnd → decorators/draggable}/context.ts +0 -0
  431. /package/src/utils/{dnd → decorators}/draggable/draggable.module.css +0 -0
  432. /package/src/utils/{dnd/hooks → decorators/draggable}/use_draggable.ts +0 -0
  433. /package/src/utils/{click_away_listener.stories.tsx → listeners/click_away_listener.stories.tsx} +0 -0
  434. /package/src/utils/{focus_redirect.tsx → listeners/focus_redirect.tsx} +0 -0
  435. /package/src/utils/{mouse_leave_region.tsx → listeners/mouse_leave_region.tsx} +0 -0
  436. /package/src/utils/{scroll_away_listener.stories.tsx → listeners/scroll_away_listener.stories.tsx} +0 -0
  437. /package/src/utils/{types → system}/variations.ts +0 -0
@@ -0,0 +1,7 @@
1
+ import { Row as e } from "./row.js";
2
+ import { Rows as m } from "./rows.js";
3
+ export {
4
+ e as Row,
5
+ m as Rows
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { HStackProps } from '../../../stacks/h_stack.js';
3
+ export interface RowProps extends Omit<HStackProps, 'as'> {
4
+ }
5
+ export declare const Row: React.ForwardRefExoticComponent<RowProps & React.RefAttributes<HTMLElement>>;
6
+ //# sourceMappingURL=row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../../../src/layouts/containers/rows/row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGtE,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;CAAG;AAE5D,eAAO,MAAM,GAAG,8EAcd,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import f from "react";
3
+ import { clsx as m } from "clsx";
4
+ import { HStack as e } from "../../../stacks/h_stack.js";
5
+ import '../../../row.css';const n = "_row_121bbbf", a = { row: n }, _ = f.forwardRef(function({ children: o, className: r, ...t }, s) {
6
+ return /* @__PURE__ */ c(
7
+ e,
8
+ {
9
+ ref: s,
10
+ as: "section",
11
+ className: m("tcn-row", a.row, r),
12
+ ...t,
13
+ children: o
14
+ }
15
+ );
16
+ });
17
+ export {
18
+ _ as Row
19
+ };
20
+ //# sourceMappingURL=row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.js","sources":["../../../../src/layouts/containers/rows/row.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { HStack, type HStackProps } from '../../../stacks/h_stack.js';\nimport styles from './row.module.css';\n\nexport interface RowProps extends Omit<HStackProps, 'as'> {}\n\nexport const Row = React.forwardRef<HTMLElement, RowProps>(function Row(\n { children, className, ...props }: RowProps,\n ref\n) {\n return (\n <HStack\n ref={ref}\n as=\"section\"\n className={clsx('tcn-row', styles['row'], className)}\n {...props}\n >\n {children}\n </HStack>\n );\n});\n"],"names":["Row","React","children","className","props","ref","jsx","HStack","clsx","styles"],"mappings":";;;;0CAOaA,IAAMC,EAAM,WAAkC,SACzD,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAC1BC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,IAAG;AAAA,MACH,WAAWG,EAAK,WAAWC,EAAO,KAAQN,CAAS;AAAA,MAClD,GAAGC;AAAA,MAEH,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { ScaffoldProps } from '../scaffold.js';
3
+ export interface RowsOwnProps {
4
+ rowsMinHeight?: string | number;
5
+ rowsHeight?: string | number;
6
+ rowsMaxHeight?: string | number;
7
+ }
8
+ export interface RowsProps extends Omit<ScaffoldProps, 'as'>, RowsOwnProps {
9
+ }
10
+ export declare const Rows: React.ForwardRefExoticComponent<RowsProps & React.RefAttributes<HTMLElement>>;
11
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../../src/layouts/containers/rows/rows.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG9D,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,YAAY;CAAG;AAE7E,eAAO,MAAM,IAAI,+EA4Bf,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import c from "react";
3
+ import { clsx as w } from "clsx";
4
+ import { Scaffold as p } from "../scaffold.js";
5
+ import { removeUndefinedProperties as h } from "../../../stacks/utils/remove_undefined_properties.js";
6
+ const _ = c.forwardRef(function({
7
+ children: o,
8
+ className: r,
9
+ rowsMinHeight: t,
10
+ rowsHeight: e,
11
+ rowsMaxHeight: s,
12
+ style: m,
13
+ ...f
14
+ }, i) {
15
+ const n = h({
16
+ "--rows-min-height": t,
17
+ "--rows-height": e,
18
+ "--rows-max-height": s
19
+ });
20
+ return /* @__PURE__ */ a(
21
+ p,
22
+ {
23
+ ref: i,
24
+ className: w("tcn-rows", r),
25
+ style: { ...n, ...m },
26
+ ...f,
27
+ children: o
28
+ }
29
+ );
30
+ });
31
+ export {
32
+ _ as Rows
33
+ };
34
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sources":["../../../../src/layouts/containers/rows/rows.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { Scaffold, type ScaffoldProps } from '../scaffold.js';\nimport { removeUndefinedProperties } from '../../../stacks/utils/remove_undefined_properties.js';\n\nexport interface RowsOwnProps {\n rowsMinHeight?: string | number;\n rowsHeight?: string | number;\n rowsMaxHeight?: string | number;\n}\n\nexport interface RowsProps extends Omit<ScaffoldProps, 'as'>, RowsOwnProps {}\n\nexport const Rows = React.forwardRef<HTMLElement, RowsProps>(function Rows(\n {\n children,\n className,\n rowsMinHeight,\n rowsHeight,\n rowsMaxHeight,\n style,\n ...props\n }: RowsProps,\n ref\n) {\n const rowVars = removeUndefinedProperties({\n '--rows-min-height': rowsMinHeight,\n '--rows-height': rowsHeight,\n '--rows-max-height': rowsMaxHeight,\n });\n\n return (\n <Scaffold\n ref={ref}\n className={clsx('tcn-rows', className)}\n style={{ ...rowVars, ...style }}\n {...props}\n >\n {children}\n </Scaffold>\n );\n});\n"],"names":["Rows","React","children","className","rowsMinHeight","rowsHeight","rowsMaxHeight","style","props","ref","rowVars","removeUndefinedProperties","jsx","Scaffold","clsx"],"mappings":";;;;;AAaO,MAAMA,IAAOC,EAAM,WAAmC,SAC3D;AAAA,EACE,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAUC,EAA0B;AAAA,IACxC,qBAAqBP;AAAA,IACrB,iBAAiBC;AAAA,IACjB,qBAAqBC;AAAA,EAAA,CACtB;AAED,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAJ;AAAA,MACA,WAAWK,EAAK,YAAYX,CAAS;AAAA,MACrC,OAAO,EAAE,GAAGO,GAAS,GAAGH,EAAA;AAAA,MACvB,GAAGC;AAAA,MAEH,UAAAN;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -1,9 +1,6 @@
1
1
  import { default as React } from 'react';
2
- import { BoxProps } from '../../stacks/box/box.js';
3
- import { Alignment } from '../../stacks/types/alignment.js';
4
- export interface ScaffoldProps extends Omit<BoxProps, 'as'> {
5
- vAlign?: Alignment;
6
- hAlign?: Alignment;
2
+ import { VStackProps } from '../../stacks/v_stack.js';
3
+ export interface ScaffoldProps extends Omit<VStackProps, 'as'> {
7
4
  }
8
5
  export declare const Scaffold: React.ForwardRefExoticComponent<ScaffoldProps & React.RefAttributes<HTMLElement>>;
9
6
  //# sourceMappingURL=scaffold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/layouts/containers/scaffold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,mFAyDnB,CAAC"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/layouts/containers/scaffold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGnE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;CAAG;AAEjE,eAAO,MAAM,QAAQ,mFAsBnB,CAAC"}
@@ -1,67 +1,29 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import u from "react";
3
- import { clsx as l } from "clsx";
4
- import { Box as x } from "../../stacks/box/box.js";
5
- import { VStack as S } from "../../stacks/v_stack.js";
6
- import { s as t } from "../../containers.module-DlGySre0.js";
7
- const B = u.forwardRef(function({
8
- children: m,
9
- width: d,
10
- height: i,
11
- minWidth: a,
12
- maxWidth: o,
13
- minHeight: c,
14
- maxHeight: r,
15
- hAlign: s = "start",
16
- vAlign: f = "start",
17
- className: p,
18
- ...k
19
- }, n) {
20
- return /* @__PURE__ */ e(
21
- x,
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import n from "react";
3
+ import { clsx as e } from "clsx";
4
+ import { VStack as i } from "../../stacks/v_stack.js";
5
+ import { s as t } from "../../containers.module-BmICKsOK.js";
6
+ const R = n.forwardRef(function({ children: o, className: r, vAlign: f = "start", hAlign: a = "start", ...c }, s) {
7
+ return /* @__PURE__ */ m(
8
+ i,
22
9
  {
23
- ref: n,
24
- width: d,
25
- height: i,
26
- minWidth: a,
27
- maxWidth: o,
28
- minHeight: c,
29
- maxHeight: r,
30
- "data-h-alignment": s,
31
- "data-v-alignment": f,
32
- className: l(
33
- p,
10
+ ref: s,
11
+ as: "section",
12
+ vAlign: f,
13
+ hAlign: a,
14
+ className: e(
15
+ r,
34
16
  t.scaffold,
35
17
  t.container,
36
18
  "tcn-container",
37
19
  "tcn-scaffold"
38
20
  ),
39
- ...k,
40
- children: /* @__PURE__ */ e(
41
- S,
42
- {
43
- as: "section",
44
- minWidth: a,
45
- maxWidth: o,
46
- minHeight: c,
47
- maxHeight: r,
48
- hAlign: s,
49
- vAlign: f,
50
- ref: n,
51
- className: l(
52
- t["scaffold-stack"],
53
- t["container-stack"],
54
- "tcn-container-stack",
55
- "tcn-scaffold-stack"
56
- ),
57
- zIndex: 0,
58
- children: m
59
- }
60
- )
21
+ ...c,
22
+ children: o
61
23
  }
62
24
  );
63
25
  });
64
26
  export {
65
- B as Scaffold
27
+ R as Scaffold
66
28
  };
67
29
  //# sourceMappingURL=scaffold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sources":["../../../src/layouts/containers/scaffold.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { Box, type BoxProps } from '../../stacks/box/box.js';\nimport type { Alignment } from '../../stacks/types/alignment.js';\nimport { VStack } from '../../stacks/v_stack.js';\nimport styles from './containers.module.css';\n\nexport interface ScaffoldProps extends Omit<BoxProps, 'as'> {\n vAlign?: Alignment;\n hAlign?: Alignment;\n}\n\nexport const Scaffold = React.forwardRef<HTMLElement, ScaffoldProps>(function Scaffold(\n {\n children,\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n hAlign = 'start',\n vAlign = 'start',\n className,\n ...props\n }: ScaffoldProps,\n ref\n) {\n return (\n <Box\n ref={ref}\n width={width}\n height={height}\n minWidth={minWidth}\n maxWidth={maxWidth}\n minHeight={minHeight}\n maxHeight={maxHeight}\n data-h-alignment={hAlign}\n data-v-alignment={vAlign}\n className={clsx(\n className,\n styles['scaffold'],\n styles['container'],\n 'tcn-container',\n 'tcn-scaffold'\n )}\n {...props}\n >\n <VStack\n as=\"section\"\n minWidth={minWidth}\n maxWidth={maxWidth}\n minHeight={minHeight}\n maxHeight={maxHeight}\n hAlign={hAlign}\n vAlign={vAlign}\n ref={ref}\n className={clsx(\n styles['scaffold-stack'],\n styles['container-stack'],\n 'tcn-container-stack',\n 'tcn-scaffold-stack'\n )}\n zIndex={0}\n >\n {children}\n </VStack>\n </Box>\n );\n});\n"],"names":["Scaffold","React","children","width","height","minWidth","maxWidth","minHeight","maxHeight","hAlign","vAlign","className","props","ref","jsx","Box","clsx","styles","VStack"],"mappings":";;;;;;AAYO,MAAMA,IAAWC,EAAM,WAAuC,SACnE;AAAA,EACE,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,QAAAC,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,OAAAV;AAAA,MACA,QAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,WAAAC;AAAA,MACA,oBAAkBC;AAAA,MAClB,oBAAkBC;AAAA,MAClB,WAAWM;AAAA,QACTL;AAAA,QACAM,EAAO;AAAA,QACPA,EAAO;AAAA,QACP;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAGL;AAAA,MAEJ,UAAA,gBAAAE;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,UAAAb;AAAA,UACA,UAAAC;AAAA,UACA,WAAAC;AAAA,UACA,WAAAC;AAAA,UACA,QAAAC;AAAA,UACA,QAAAC;AAAA,UACA,KAAAG;AAAA,UACA,WAAWG;AAAA,YACTC,EAAO,gBAAgB;AAAA,YACvBA,EAAO,iBAAiB;AAAA,YACxB;AAAA,YACA;AAAA,UAAA;AAAA,UAEF,QAAQ;AAAA,UAEP,UAAAf;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;"}
1
+ {"version":3,"file":"scaffold.js","sources":["../../../src/layouts/containers/scaffold.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { VStack, type VStackProps } from '../../stacks/v_stack.js';\nimport styles from './containers.module.css';\n\nexport interface ScaffoldProps extends Omit<VStackProps, 'as'> {}\n\nexport const Scaffold = React.forwardRef<HTMLElement, ScaffoldProps>(function Scaffold(\n { children, className, vAlign = 'start', hAlign = 'start', ...props }: ScaffoldProps,\n ref\n) {\n return (\n <VStack\n ref={ref}\n as=\"section\"\n vAlign={vAlign}\n hAlign={hAlign}\n className={clsx(\n className,\n styles['scaffold'],\n styles['container'],\n 'tcn-container',\n 'tcn-scaffold'\n )}\n {...props}\n >\n {children}\n </VStack>\n );\n});\n"],"names":["Scaffold","React","children","className","vAlign","hAlign","props","ref","jsx","VStack","clsx","styles"],"mappings":";;;;;AAOO,MAAMA,IAAWC,EAAM,WAAuC,SACnE,EAAE,UAAAC,GAAU,WAAAC,GAAW,QAAAC,IAAS,SAAS,QAAAC,IAAS,SAAS,GAAGC,EAAA,GAC9DC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,IAAG;AAAA,MACH,QAAAH;AAAA,MACA,QAAAC;AAAA,MACA,WAAWK;AAAA,QACTP;AAAA,QACAQ,EAAO;AAAA,QACPA,EAAO;AAAA,QACP;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAGL;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
@@ -17,5 +17,7 @@ export { Breakpoint, type BreakpointProps } from './responsive/breakpoint.js';
17
17
  export { TTable, THead, TBody, TFoot, TR, TH, TD } from './table/table.js';
18
18
  export { Rail, type RailProps } from './containers/rail.js';
19
19
  export { Columns, type ColumnsProps } from './containers/columns/columns.js';
20
+ export { Row, type RowProps } from './containers/rows/row.js';
21
+ export { Rows, type RowsProps } from './containers/rows/rows.js';
20
22
  export { UtilityStrip, type UtilityStripProps, } from './containers/utility_strip/utility_strip.js';
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layouts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC1E,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layouts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC1E,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,6CAA6C,CAAC"}
@@ -5,39 +5,43 @@ import { Item as i } from "./list/item.js";
5
5
  import { List as d } from "./list/list.js";
6
6
  import { SidebarEnd as T } from "./sidebar_end/sidebar_end.js";
7
7
  import { SidebarStart as S } from "./sidebar_start/sidebar_start.js";
8
- import { Scaffold as B } from "./containers/scaffold.js";
9
- import { Footer as b } from "./footer/footer.js";
10
- import { Header as y } from "./header/header.js";
11
- import { UtilityBar as R } from "./utility_bar/utility_bar.js";
8
+ import { Scaffold as R } from "./containers/scaffold.js";
9
+ import { Footer as H } from "./footer/footer.js";
10
+ import { Header as u } from "./header/header.js";
11
+ import { UtilityBar as D } from "./utility_bar/utility_bar.js";
12
12
  import { Group as v } from "./group/group.js";
13
- import { Bar as F } from "./bar/bar.js";
14
- import { Section as U } from "./section/section.js";
15
- import { Heading as k } from "./section/heading.js";
16
- import { Detail as I } from "./section/detail.js";
17
- import { Responsive as h } from "./responsive/responsive.js";
18
- import { Breakpoint as q } from "./responsive/breakpoint.js";
13
+ import { Bar as C } from "./bar/bar.js";
14
+ import { Section as G } from "./section/section.js";
15
+ import { Heading as g } from "./section/heading.js";
16
+ import { Detail as E } from "./section/detail.js";
17
+ import { Responsive as L } from "./responsive/responsive.js";
18
+ import { Breakpoint as j } from "./responsive/breakpoint.js";
19
19
  import { TBody as z, TD as A, TFoot as J, TH as K, THead as M, TR as N, TTable as O } from "./table/table.js";
20
20
  import { Rail as Q } from "./containers/rail.js";
21
21
  import { Columns as W } from "./containers/columns/columns.js";
22
- import { UtilityStrip as Y } from "./containers/utility_strip/utility_strip.js";
22
+ import { Row as Y } from "./containers/rows/row.js";
23
+ import { Rows as _ } from "./containers/rows/rows.js";
24
+ import { UtilityStrip as oo } from "./containers/utility_strip/utility_strip.js";
23
25
  export {
24
- F as Bar,
25
- q as Breakpoint,
26
+ C as Bar,
27
+ j as Breakpoint,
26
28
  e as Column,
27
29
  W as Columns,
28
- I as Detail,
30
+ E as Detail,
29
31
  p as Divider,
30
- b as Footer,
32
+ H as Footer,
31
33
  f as Grid,
32
34
  v as Group,
33
- y as Header,
34
- k as Heading,
35
+ u as Header,
36
+ g as Heading,
35
37
  i as Item,
36
38
  d as List,
37
39
  Q as Rail,
38
- h as Responsive,
39
- B as Scaffold,
40
- U as Section,
40
+ L as Responsive,
41
+ Y as Row,
42
+ _ as Rows,
43
+ R as Scaffold,
44
+ G as Section,
41
45
  T as SidebarEnd,
42
46
  S as SidebarStart,
43
47
  z as TBody,
@@ -47,7 +51,7 @@ export {
47
51
  M as THead,
48
52
  N as TR,
49
53
  O as TTable,
50
- R as UtilityBar,
51
- Y as UtilityStrip
54
+ D as UtilityBar,
55
+ oo as UtilityStrip
52
56
  };
53
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,17 +9,21 @@ import { MobileDatePickerYearSelector as j } from "./mobile_date_picker_year_sel
9
9
  import { MobileButton as n } from "../../actions/button/mobile_button.js";
10
10
  import { MobilePortal as x } from "../../portal/mobile_portal.js";
11
11
  import { MobileOverlayHeader as O } from "./mobile_overlay_header.js";
12
- import "../../../utils/click_away_listener.js";
13
- import { FocusRedirect as q } from "../../../utils/focus_redirect.js";
14
- import "../../../utils/scroll_away_listener.js";
12
+ import "../../../utils/listeners/click_away_listener.js";
13
+ import { FocusRedirect as q } from "../../../utils/listeners/focus_redirect.js";
14
+ import "../../../utils/listeners/scroll_away_listener.js";
15
15
  import "../../../utils/hooks/use_resize_observer.js";
16
- import "../../../utils/dnd/context.js";
16
+ import "../../../utils/hooks/labelled_by_context.js";
17
+ import "../../../utils/decorators/draggable/context.js";
17
18
  import { clsx as z } from "clsx";
18
- import "../../../draggable.module-BgelQsuJ.js";
19
+ import "../../../draggable.module-DFYR5n3n.js";
20
+ import "../../../utils/decorators/resizable/context.js";
21
+ import "../../../resizable.module-ur5FBfxo.js";
22
+ import "../../../utils/decorators/resizable/resize_handle.js";
19
23
  import { ChevronLeftIcon as E } from "@tcn/icons/chevron_left_icon.js";
20
24
  import { ChevronRightIcon as T } from "@tcn/icons/chevron_right_icon.js";
21
25
  import '../../../mobile_date_picker_header.css';const W = "_mobile-date-picker-header_0678759", G = "_mobile-date-picker-overlay_d1d8dc4", J = "_mobile-month-list_1081f6a", Q = "_mobile-year-overlay_daba362", l = { "mobile-date-picker-header": W, "mobile-date-picker-overlay": G, "mobile-month-list": J, "mobile-year-overlay": Q };
22
- function be({
26
+ function ke({
23
27
  presenter: r,
24
28
  countryCode: a,
25
29
  selectMonthMessage: R = "Select Month",
@@ -158,6 +162,6 @@ function be({
158
162
  ] });
159
163
  }
160
164
  export {
161
- be as MobileDatePickerHeader
165
+ ke as MobileDatePickerHeader
162
166
  };
163
167
  //# sourceMappingURL=mobile_date_picker_header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile_date_picker_header.js","sources":["../../../../src/mobile/inputs/date_picker/mobile_date_picker_header.tsx"],"sourcesContent":["import { useSignalValue } from '@tcn/state';\nimport { HStack } from '../../../stacks/h_stack.js';\nimport { VStack } from '../../../stacks/v_stack.js';\nimport { Spacer } from '../../../stacks/spacer.js';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { getMonthsOfYear } from '../../../utils/calendar/get_months_of_year.js';\nimport { DatePickerPresenter } from '../../../inputs/date_picker/date_picker_presenter.js';\nimport { MobileDatePickerYearSelector } from './mobile_date_picker_year_selector.js';\nimport { MobileButton } from '../../actions/button/mobile_button.js';\nimport { MobilePortal } from '../../portal/mobile_portal.js';\nimport { MobileOverlayHeader } from './mobile_overlay_header.js';\nimport { FocusRedirect } from '../../../utils/index.js';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { clsx } from 'clsx';\nimport styles from './mobile_date_picker_header.module.css';\n\nexport interface MobileDatePickerHeaderProps {\n presenter: DatePickerPresenter;\n countryCode: string;\n selectMonthMessage?: string;\n selectYearMessage?: string;\n}\n\nexport function MobileDatePickerHeader({\n presenter,\n countryCode,\n selectMonthMessage = 'Select Month',\n selectYearMessage = 'Select Year',\n}: MobileDatePickerHeaderProps) {\n const state = useSignalValue(presenter.stateBroadcast);\n const [monthOpen, setMonthOpen] = useState(false);\n const [yearOpen, setYearOpen] = useState(false);\n const monthButtonRef = useRef<HTMLButtonElement | null>(null);\n const yearButtonRef = useRef<HTMLButtonElement | null>(null);\n const monthListRef = useRef<HTMLDivElement | null>(null);\n\n const longMonths = useMemo(() => getMonthsOfYear(countryCode, 'long'), [countryCode]);\n const shortMonths = useMemo(() => getMonthsOfYear(countryCode, 'short'), [countryCode]);\n\n function selectMonth(value: string) {\n presenter.setVisibleMonth(Number(value));\n }\n\n function previous() {\n presenter.setVisibleMonth(state.visibleMonth - 1);\n }\n\n function next() {\n presenter.setVisibleMonth(state.visibleMonth + 1);\n }\n\n function openMonths() {\n setMonthOpen(true);\n }\n\n function closeMonths() {\n setMonthOpen(false);\n requestAnimationFrame(() => monthButtonRef.current?.focus());\n }\n\n function openYears() {\n setYearOpen(true);\n }\n\n function closeYears() {\n setYearOpen(false);\n requestAnimationFrame(() => yearButtonRef.current?.focus());\n }\n\n function handleMonthKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeMonths();\n }\n }\n\n function handleYearKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeYears();\n }\n }\n\n function handleMonthRedirect() {\n monthListRef.current?.focus();\n }\n\n return (\n <>\n <HStack\n className={clsx(\n styles['mobile-date-picker-header'],\n 'tcn-mobile-date-picker-header'\n )}\n minWidth=\"35px\"\n width=\"100%\"\n >\n <MobileButton\n disabled={!state.canNavigateToPreviousMonth}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={previous}\n >\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </MobileButton>\n <Spacer />\n <HStack hAlign=\"center\" gap=\"4px\" width=\"auto\">\n <MobileButton\n ref={monthButtonRef}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={openMonths}\n >\n {shortMonths[state.visibleMonth]}\n </MobileButton>\n <MobileButton\n ref={yearButtonRef}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={openYears}\n >\n {String(state.visibleYear)}\n </MobileButton>\n </HStack>\n <Spacer />\n <MobileButton\n disabled={!state.canNavigateToNextMonth}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={next}\n >\n <ChevronRightIcon flipOnRtl size=\"md\" />\n </MobileButton>\n </HStack>\n\n {monthOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-date-picker-overlay']}\n onKeyDown={handleMonthKeyDown}\n >\n <MobileOverlayHeader title={selectMonthMessage} onClose={closeMonths} />\n <VStack\n ref={monthListRef}\n tabIndex={0}\n padding=\"16px\"\n gap=\"8px\"\n height=\"flex\"\n overflowY=\"auto\"\n className={styles['mobile-month-list']}\n >\n {longMonths.map((month, index) => (\n <MobileButton\n key={index}\n hierarchy={index === state.visibleMonth ? 'primary' : 'secondary'}\n width=\"100%\"\n onClick={() => {\n selectMonth(String(index));\n closeMonths();\n }}\n >\n {month}\n </MobileButton>\n ))}\n <FocusRedirect onRedirect={handleMonthRedirect} />\n </VStack>\n </VStack>\n </MobilePortal>\n )}\n\n {yearOpen && (\n <MobilePortal>\n <VStack className={styles['mobile-year-overlay']} onKeyDown={handleYearKeyDown}>\n <MobileOverlayHeader title={selectYearMessage} onClose={closeYears} />\n <MobileDatePickerYearSelector presenter={presenter} onClose={closeYears} />\n </VStack>\n </MobilePortal>\n )}\n </>\n );\n}\n"],"names":["MobileDatePickerHeader","presenter","countryCode","selectMonthMessage","selectYearMessage","state","useSignalValue","monthOpen","setMonthOpen","useState","yearOpen","setYearOpen","monthButtonRef","useRef","yearButtonRef","monthListRef","longMonths","useMemo","getMonthsOfYear","shortMonths","selectMonth","value","previous","next","openMonths","closeMonths","openYears","closeYears","handleMonthKeyDown","event","handleYearKeyDown","handleMonthRedirect","jsxs","Fragment","HStack","clsx","styles","jsx","MobileButton","ChevronLeftIcon","Spacer","ChevronRightIcon","MobilePortal","VStack","MobileOverlayHeader","month","index","FocusRedirect","MobileDatePickerYearSelector"],"mappings":"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"}
1
+ {"version":3,"file":"mobile_date_picker_header.js","sources":["../../../../src/mobile/inputs/date_picker/mobile_date_picker_header.tsx"],"sourcesContent":["import { useSignalValue } from '@tcn/state';\nimport { HStack } from '../../../stacks/h_stack.js';\nimport { VStack } from '../../../stacks/v_stack.js';\nimport { Spacer } from '../../../stacks/spacer.js';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { getMonthsOfYear } from '../../../utils/calendar/get_months_of_year.js';\nimport { DatePickerPresenter } from '../../../inputs/date_picker/date_picker_presenter.js';\nimport { MobileDatePickerYearSelector } from './mobile_date_picker_year_selector.js';\nimport { MobileButton } from '../../actions/button/mobile_button.js';\nimport { MobilePortal } from '../../portal/mobile_portal.js';\nimport { MobileOverlayHeader } from './mobile_overlay_header.js';\nimport { FocusRedirect } from '../../../utils/index.js';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { clsx } from 'clsx';\nimport styles from './mobile_date_picker_header.module.css';\n\nexport interface MobileDatePickerHeaderProps {\n presenter: DatePickerPresenter;\n countryCode: string;\n selectMonthMessage?: string;\n selectYearMessage?: string;\n}\n\nexport function MobileDatePickerHeader({\n presenter,\n countryCode,\n selectMonthMessage = 'Select Month',\n selectYearMessage = 'Select Year',\n}: MobileDatePickerHeaderProps) {\n const state = useSignalValue(presenter.stateBroadcast);\n const [monthOpen, setMonthOpen] = useState(false);\n const [yearOpen, setYearOpen] = useState(false);\n const monthButtonRef = useRef<HTMLButtonElement | null>(null);\n const yearButtonRef = useRef<HTMLButtonElement | null>(null);\n const monthListRef = useRef<HTMLDivElement | null>(null);\n\n const longMonths = useMemo(() => getMonthsOfYear(countryCode, 'long'), [countryCode]);\n const shortMonths = useMemo(() => getMonthsOfYear(countryCode, 'short'), [countryCode]);\n\n function selectMonth(value: string) {\n presenter.setVisibleMonth(Number(value));\n }\n\n function previous() {\n presenter.setVisibleMonth(state.visibleMonth - 1);\n }\n\n function next() {\n presenter.setVisibleMonth(state.visibleMonth + 1);\n }\n\n function openMonths() {\n setMonthOpen(true);\n }\n\n function closeMonths() {\n setMonthOpen(false);\n requestAnimationFrame(() => monthButtonRef.current?.focus());\n }\n\n function openYears() {\n setYearOpen(true);\n }\n\n function closeYears() {\n setYearOpen(false);\n requestAnimationFrame(() => yearButtonRef.current?.focus());\n }\n\n function handleMonthKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeMonths();\n }\n }\n\n function handleYearKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeYears();\n }\n }\n\n function handleMonthRedirect() {\n monthListRef.current?.focus();\n }\n\n return (\n <>\n <HStack\n className={clsx(\n styles['mobile-date-picker-header'],\n 'tcn-mobile-date-picker-header'\n )}\n minWidth=\"35px\"\n width=\"100%\"\n >\n <MobileButton\n disabled={!state.canNavigateToPreviousMonth}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={previous}\n >\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </MobileButton>\n <Spacer />\n <HStack hAlign=\"center\" gap=\"4px\" width=\"auto\">\n <MobileButton\n ref={monthButtonRef}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={openMonths}\n >\n {shortMonths[state.visibleMonth]}\n </MobileButton>\n <MobileButton\n ref={yearButtonRef}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={openYears}\n >\n {String(state.visibleYear)}\n </MobileButton>\n </HStack>\n <Spacer />\n <MobileButton\n disabled={!state.canNavigateToNextMonth}\n hierarchy=\"tertiary\"\n width=\"auto\"\n onClick={next}\n >\n <ChevronRightIcon flipOnRtl size=\"md\" />\n </MobileButton>\n </HStack>\n\n {monthOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-date-picker-overlay']}\n onKeyDown={handleMonthKeyDown}\n >\n <MobileOverlayHeader title={selectMonthMessage} onClose={closeMonths} />\n <VStack\n ref={monthListRef}\n tabIndex={0}\n padding=\"16px\"\n gap=\"8px\"\n height=\"flex\"\n overflowY=\"auto\"\n className={styles['mobile-month-list']}\n >\n {longMonths.map((month, index) => (\n <MobileButton\n key={index}\n hierarchy={index === state.visibleMonth ? 'primary' : 'secondary'}\n width=\"100%\"\n onClick={() => {\n selectMonth(String(index));\n closeMonths();\n }}\n >\n {month}\n </MobileButton>\n ))}\n <FocusRedirect onRedirect={handleMonthRedirect} />\n </VStack>\n </VStack>\n </MobilePortal>\n )}\n\n {yearOpen && (\n <MobilePortal>\n <VStack className={styles['mobile-year-overlay']} onKeyDown={handleYearKeyDown}>\n <MobileOverlayHeader title={selectYearMessage} onClose={closeYears} />\n <MobileDatePickerYearSelector presenter={presenter} onClose={closeYears} />\n </VStack>\n </MobilePortal>\n )}\n </>\n );\n}\n"],"names":["MobileDatePickerHeader","presenter","countryCode","selectMonthMessage","selectYearMessage","state","useSignalValue","monthOpen","setMonthOpen","useState","yearOpen","setYearOpen","monthButtonRef","useRef","yearButtonRef","monthListRef","longMonths","useMemo","getMonthsOfYear","shortMonths","selectMonth","value","previous","next","openMonths","closeMonths","openYears","closeYears","handleMonthKeyDown","event","handleYearKeyDown","handleMonthRedirect","jsxs","Fragment","HStack","clsx","styles","jsx","MobileButton","ChevronLeftIcon","Spacer","ChevronRightIcon","MobilePortal","VStack","MobileOverlayHeader","month","index","FocusRedirect","MobileDatePickerYearSelector"],"mappings":"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"}
@@ -6,15 +6,19 @@ import { MobilePortal as x } from "../../portal/mobile_portal.js";
6
6
  import { MobileDatePicker as se } from "./mobile_date_picker.js";
7
7
  import { MobileDatePickerTimeSelector as fe } from "./mobile_date_picker_time_selector.js";
8
8
  import { MobileOverlayHeader as j } from "./mobile_overlay_header.js";
9
- import "../../../utils/click_away_listener.js";
10
- import { FocusRedirect as v } from "../../../utils/focus_redirect.js";
11
- import "../../../utils/scroll_away_listener.js";
9
+ import "../../../utils/listeners/click_away_listener.js";
10
+ import { FocusRedirect as v } from "../../../utils/listeners/focus_redirect.js";
11
+ import "../../../utils/listeners/scroll_away_listener.js";
12
12
  import "../../../utils/hooks/use_resize_observer.js";
13
- import "../../../utils/dnd/context.js";
13
+ import "../../../utils/hooks/labelled_by_context.js";
14
+ import "../../../utils/decorators/draggable/context.js";
14
15
  import "clsx";
15
- import "../../../draggable.module-BgelQsuJ.js";
16
+ import "../../../draggable.module-DFYR5n3n.js";
17
+ import "../../../utils/decorators/resizable/context.js";
18
+ import "../../../resizable.module-ur5FBfxo.js";
19
+ import "../../../utils/decorators/resizable/resize_handle.js";
16
20
  import { VStack as C } from "../../../stacks/v_stack.js";
17
- import '../../../mobile_date_picker_input.css';const ue = "_mobile-date-picker-overlay_099a224", pe = "_mobile-time-picker-overlay_6622396", H = { "mobile-date-picker-overlay": ue, "mobile-time-picker-overlay": pe }, Ie = le.forwardRef(function({
21
+ import '../../../mobile_date_picker_input.css';const ue = "_mobile-date-picker-overlay_099a224", pe = "_mobile-time-picker-overlay_6622396", H = { "mobile-date-picker-overlay": ue, "mobile-time-picker-overlay": pe }, xe = le.forwardRef(function({
18
22
  value: i = /* @__PURE__ */ new Date(),
19
23
  onChange: D,
20
24
  onError: K,
@@ -185,6 +189,6 @@ import '../../../mobile_date_picker_input.css';const ue = "_mobile-date-picker-o
185
189
  ] });
186
190
  });
187
191
  export {
188
- Ie as MobileDatePickerInput
192
+ xe as MobileDatePickerInput
189
193
  };
190
194
  //# sourceMappingURL=mobile_date_picker_input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile_date_picker_input.js","sources":["../../../../src/mobile/inputs/date_picker/mobile_date_picker_input.tsx"],"sourcesContent":["import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { MobileButton } from '../../actions/button/mobile_button.js';\nimport { ButtonGroup } from '../../../actions/button/button_group/button_group.js';\nimport { MobilePortal } from '../../portal/mobile_portal.js';\nimport { MobileDatePicker } from './mobile_date_picker.js';\nimport { MobileDatePickerTimeSelector } from './mobile_date_picker_time_selector.js';\nimport { MobileOverlayHeader } from './mobile_overlay_header.js';\nimport { FocusRedirect } from '../../../utils/index.js';\nimport { VStack } from '../../../stacks/v_stack.js';\nimport type { DatePickerInputProps } from '../../../inputs/date_picker/date_picker_input.js';\nimport styles from './mobile_date_picker_input.module.css';\n\nexport interface MobileDatePickerInputProps extends DatePickerInputProps {\n selectTimeMessage?: string;\n selectMonthMessage?: string;\n selectYearMessage?: string;\n}\n\nexport const MobileDatePickerInput = React.forwardRef<\n HTMLButtonElement,\n MobileDatePickerInputProps\n>(function MobileDatePickerInput(\n {\n value = new Date(),\n onChange,\n onError,\n min = new Date('01/01/1924'),\n max = new Date('01/01/2124'),\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n showTime = false,\n timeIntervalInMinutes = 15,\n hierarchy = 'secondary',\n disabledDates,\n selectDateMessage = 'Select Date',\n selectTimeMessage = 'Select Time',\n selectMonthMessage,\n selectYearMessage,\n countryCode,\n renderActions,\n onTimeSelected,\n ...props\n },\n ref\n) {\n const [dateOpen, setDateOpen] = useState(false);\n const [timeOpen, setTimeOpen] = useState(false);\n const pickerRef = useRef<HTMLDivElement | null>(null);\n const timeRef = useRef<HTMLDivElement | null>(null);\n const dateButtonRef = useRef<HTMLButtonElement | null>(null);\n const timeButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const setDateButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n dateButtonRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref != null) {\n (ref as React.MutableRefObject<HTMLButtonElement | null>).current = node;\n }\n },\n [ref]\n );\n\n const dateFormatter = useMemo(() => {\n return new Intl.DateTimeFormat(countryCode, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }, [countryCode]);\n\n const timeFormatter = useMemo(() => {\n return new Intl.DateTimeFormat(countryCode, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n }, [countryCode]);\n\n const formattedDate = value != null ? dateFormatter.format(value) : selectDateMessage;\n const formattedTime = value != null ? timeFormatter.format(value) : selectTimeMessage;\n\n function openDatePicker() {\n setDateOpen(true);\n }\n\n function closeDatePicker() {\n setDateOpen(false);\n requestAnimationFrame(() => dateButtonRef.current?.focus());\n }\n\n function openTimePicker() {\n setTimeOpen(true);\n }\n\n function closeTimePicker() {\n setTimeOpen(false);\n requestAnimationFrame(() => timeButtonRef.current?.focus());\n }\n\n useLayoutEffect(() => {\n if (dateOpen) {\n requestAnimationFrame(() => pickerRef.current?.focus());\n }\n }, [dateOpen]);\n\n useLayoutEffect(() => {\n if (timeOpen) {\n requestAnimationFrame(() => timeRef.current?.focus());\n }\n }, [timeOpen]);\n\n function handleDateEscape(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeDatePicker();\n }\n }\n\n function handleTimeEscape(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeTimePicker();\n }\n }\n\n function handleDateRedirect() {\n pickerRef.current?.focus();\n }\n\n function handleTimeRedirect() {\n timeRef.current?.focus();\n }\n\n function dateSelected(date: Date | null) {\n onChange?.(date);\n closeDatePicker();\n }\n\n function timeSelected(hour: number, minutes: number, seconds: number) {\n if (value != null) {\n const updated = new Date(value);\n updated.setHours(hour, minutes, seconds);\n onChange?.(updated);\n }\n onTimeSelected?.(hour, minutes, seconds);\n closeTimePicker();\n }\n\n return (\n <>\n {showTime ? (\n <ButtonGroup hierarchy={hierarchy} width={width}>\n <MobileButton\n ref={setDateButtonRef}\n hAlign=\"start\"\n disabled={disabled}\n onClick={openDatePicker}\n width=\"flex\"\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </MobileButton>\n <MobileButton\n ref={timeButtonRef}\n hAlign=\"start\"\n disabled={disabled || value == null}\n onClick={openTimePicker}\n width=\"auto\"\n >\n <span className=\"ellipsis\">{formattedTime}</span>\n </MobileButton>\n </ButtonGroup>\n ) : (\n <MobileButton\n ref={setDateButtonRef}\n hAlign=\"start\"\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openDatePicker}\n width={width}\n maxWidth={maxWidth}\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </MobileButton>\n )}\n\n {dateOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-date-picker-overlay']}\n onKeyDown={handleDateEscape}\n >\n <MobileOverlayHeader title={selectDateMessage} onClose={closeDatePicker} />\n <MobileDatePicker\n ref={pickerRef}\n value={value}\n onChange={dateSelected}\n min={min}\n max={max}\n onError={onError}\n disabled={disabled}\n disabledDates={disabledDates}\n countryCode={countryCode}\n renderActions={renderActions}\n selectMonthMessage={selectMonthMessage}\n selectYearMessage={selectYearMessage}\n />\n <FocusRedirect onRedirect={handleDateRedirect} />\n </VStack>\n </MobilePortal>\n )}\n\n {timeOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-time-picker-overlay']}\n onKeyDown={handleTimeEscape}\n >\n <MobileOverlayHeader title={selectTimeMessage} onClose={closeTimePicker} />\n <MobileDatePickerTimeSelector\n ref={timeRef}\n origin={value}\n min={min}\n max={max}\n intervalInMinutes={timeIntervalInMinutes}\n disabled={disabled}\n onSelect={(hour, minutes, seconds) => {\n timeSelected(hour, minutes, seconds);\n }}\n />\n <FocusRedirect onRedirect={handleTimeRedirect} />\n </VStack>\n </MobilePortal>\n )}\n </>\n );\n});\n"],"names":["MobileDatePickerInput","React","value","onChange","onError","min","max","disabled","width","maxWidth","minWidth","showTime","timeIntervalInMinutes","hierarchy","disabledDates","selectDateMessage","selectTimeMessage","selectMonthMessage","selectYearMessage","countryCode","renderActions","onTimeSelected","props","ref","dateOpen","setDateOpen","useState","timeOpen","setTimeOpen","pickerRef","useRef","timeRef","dateButtonRef","timeButtonRef","setDateButtonRef","useCallback","node","dateFormatter","useMemo","timeFormatter","formattedDate","formattedTime","openDatePicker","closeDatePicker","openTimePicker","closeTimePicker","useLayoutEffect","handleDateEscape","event","handleTimeEscape","handleDateRedirect","handleTimeRedirect","dateSelected","date","timeSelected","hour","minutes","seconds","updated","jsxs","Fragment","ButtonGroup","jsx","MobileButton","MobilePortal","VStack","styles","MobileOverlayHeader","MobileDatePicker","FocusRedirect","MobileDatePickerTimeSelector"],"mappings":"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"}
1
+ {"version":3,"file":"mobile_date_picker_input.js","sources":["../../../../src/mobile/inputs/date_picker/mobile_date_picker_input.tsx"],"sourcesContent":["import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { MobileButton } from '../../actions/button/mobile_button.js';\nimport { ButtonGroup } from '../../../actions/button/button_group/button_group.js';\nimport { MobilePortal } from '../../portal/mobile_portal.js';\nimport { MobileDatePicker } from './mobile_date_picker.js';\nimport { MobileDatePickerTimeSelector } from './mobile_date_picker_time_selector.js';\nimport { MobileOverlayHeader } from './mobile_overlay_header.js';\nimport { FocusRedirect } from '../../../utils/index.js';\nimport { VStack } from '../../../stacks/v_stack.js';\nimport type { DatePickerInputProps } from '../../../inputs/date_picker/date_picker_input.js';\nimport styles from './mobile_date_picker_input.module.css';\n\nexport interface MobileDatePickerInputProps extends DatePickerInputProps {\n selectTimeMessage?: string;\n selectMonthMessage?: string;\n selectYearMessage?: string;\n}\n\nexport const MobileDatePickerInput = React.forwardRef<\n HTMLButtonElement,\n MobileDatePickerInputProps\n>(function MobileDatePickerInput(\n {\n value = new Date(),\n onChange,\n onError,\n min = new Date('01/01/1924'),\n max = new Date('01/01/2124'),\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n showTime = false,\n timeIntervalInMinutes = 15,\n hierarchy = 'secondary',\n disabledDates,\n selectDateMessage = 'Select Date',\n selectTimeMessage = 'Select Time',\n selectMonthMessage,\n selectYearMessage,\n countryCode,\n renderActions,\n onTimeSelected,\n ...props\n },\n ref\n) {\n const [dateOpen, setDateOpen] = useState(false);\n const [timeOpen, setTimeOpen] = useState(false);\n const pickerRef = useRef<HTMLDivElement | null>(null);\n const timeRef = useRef<HTMLDivElement | null>(null);\n const dateButtonRef = useRef<HTMLButtonElement | null>(null);\n const timeButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const setDateButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n dateButtonRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref != null) {\n (ref as React.MutableRefObject<HTMLButtonElement | null>).current = node;\n }\n },\n [ref]\n );\n\n const dateFormatter = useMemo(() => {\n return new Intl.DateTimeFormat(countryCode, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }, [countryCode]);\n\n const timeFormatter = useMemo(() => {\n return new Intl.DateTimeFormat(countryCode, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n }, [countryCode]);\n\n const formattedDate = value != null ? dateFormatter.format(value) : selectDateMessage;\n const formattedTime = value != null ? timeFormatter.format(value) : selectTimeMessage;\n\n function openDatePicker() {\n setDateOpen(true);\n }\n\n function closeDatePicker() {\n setDateOpen(false);\n requestAnimationFrame(() => dateButtonRef.current?.focus());\n }\n\n function openTimePicker() {\n setTimeOpen(true);\n }\n\n function closeTimePicker() {\n setTimeOpen(false);\n requestAnimationFrame(() => timeButtonRef.current?.focus());\n }\n\n useLayoutEffect(() => {\n if (dateOpen) {\n requestAnimationFrame(() => pickerRef.current?.focus());\n }\n }, [dateOpen]);\n\n useLayoutEffect(() => {\n if (timeOpen) {\n requestAnimationFrame(() => timeRef.current?.focus());\n }\n }, [timeOpen]);\n\n function handleDateEscape(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeDatePicker();\n }\n }\n\n function handleTimeEscape(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeTimePicker();\n }\n }\n\n function handleDateRedirect() {\n pickerRef.current?.focus();\n }\n\n function handleTimeRedirect() {\n timeRef.current?.focus();\n }\n\n function dateSelected(date: Date | null) {\n onChange?.(date);\n closeDatePicker();\n }\n\n function timeSelected(hour: number, minutes: number, seconds: number) {\n if (value != null) {\n const updated = new Date(value);\n updated.setHours(hour, minutes, seconds);\n onChange?.(updated);\n }\n onTimeSelected?.(hour, minutes, seconds);\n closeTimePicker();\n }\n\n return (\n <>\n {showTime ? (\n <ButtonGroup hierarchy={hierarchy} width={width}>\n <MobileButton\n ref={setDateButtonRef}\n hAlign=\"start\"\n disabled={disabled}\n onClick={openDatePicker}\n width=\"flex\"\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </MobileButton>\n <MobileButton\n ref={timeButtonRef}\n hAlign=\"start\"\n disabled={disabled || value == null}\n onClick={openTimePicker}\n width=\"auto\"\n >\n <span className=\"ellipsis\">{formattedTime}</span>\n </MobileButton>\n </ButtonGroup>\n ) : (\n <MobileButton\n ref={setDateButtonRef}\n hAlign=\"start\"\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openDatePicker}\n width={width}\n maxWidth={maxWidth}\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </MobileButton>\n )}\n\n {dateOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-date-picker-overlay']}\n onKeyDown={handleDateEscape}\n >\n <MobileOverlayHeader title={selectDateMessage} onClose={closeDatePicker} />\n <MobileDatePicker\n ref={pickerRef}\n value={value}\n onChange={dateSelected}\n min={min}\n max={max}\n onError={onError}\n disabled={disabled}\n disabledDates={disabledDates}\n countryCode={countryCode}\n renderActions={renderActions}\n selectMonthMessage={selectMonthMessage}\n selectYearMessage={selectYearMessage}\n />\n <FocusRedirect onRedirect={handleDateRedirect} />\n </VStack>\n </MobilePortal>\n )}\n\n {timeOpen && (\n <MobilePortal>\n <VStack\n className={styles['mobile-time-picker-overlay']}\n onKeyDown={handleTimeEscape}\n >\n <MobileOverlayHeader title={selectTimeMessage} onClose={closeTimePicker} />\n <MobileDatePickerTimeSelector\n ref={timeRef}\n origin={value}\n min={min}\n max={max}\n intervalInMinutes={timeIntervalInMinutes}\n disabled={disabled}\n onSelect={(hour, minutes, seconds) => {\n timeSelected(hour, minutes, seconds);\n }}\n />\n <FocusRedirect onRedirect={handleTimeRedirect} />\n </VStack>\n </MobilePortal>\n )}\n </>\n );\n});\n"],"names":["MobileDatePickerInput","React","value","onChange","onError","min","max","disabled","width","maxWidth","minWidth","showTime","timeIntervalInMinutes","hierarchy","disabledDates","selectDateMessage","selectTimeMessage","selectMonthMessage","selectYearMessage","countryCode","renderActions","onTimeSelected","props","ref","dateOpen","setDateOpen","useState","timeOpen","setTimeOpen","pickerRef","useRef","timeRef","dateButtonRef","timeButtonRef","setDateButtonRef","useCallback","node","dateFormatter","useMemo","timeFormatter","formattedDate","formattedTime","openDatePicker","closeDatePicker","openTimePicker","closeTimePicker","useLayoutEffect","handleDateEscape","event","handleTimeEscape","handleDateRedirect","handleTimeRedirect","dateSelected","date","timeSelected","hour","minutes","seconds","updated","jsxs","Fragment","ButtonGroup","jsx","MobileButton","MobilePortal","VStack","styles","MobileOverlayHeader","MobileDatePicker","FocusRedirect","MobileDatePickerTimeSelector"],"mappings":"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"}
@@ -14,24 +14,28 @@ import "../../../typography/footnote/footnote.js";
14
14
  import { Headline as N } from "../../../typography/headline/headline.js";
15
15
  import "../../../typography/subheadline/subheadline.js";
16
16
  import "../../../typography/title/title.js";
17
- import "../../../utils/click_away_listener.js";
18
- import { FocusRedirect as O } from "../../../utils/focus_redirect.js";
19
- import "../../../utils/scroll_away_listener.js";
17
+ import "../../../utils/listeners/click_away_listener.js";
18
+ import { FocusRedirect as O } from "../../../utils/listeners/focus_redirect.js";
19
+ import "../../../utils/listeners/scroll_away_listener.js";
20
20
  import "../../../utils/hooks/use_resize_observer.js";
21
- import "../../../utils/dnd/context.js";
21
+ import "../../../utils/hooks/labelled_by_context.js";
22
+ import "../../../utils/decorators/draggable/context.js";
22
23
  import { clsx as Y } from "clsx";
23
- import "../../../draggable.module-BgelQsuJ.js";
24
+ import "../../../draggable.module-DFYR5n3n.js";
25
+ import "../../../utils/decorators/resizable/context.js";
26
+ import "../../../resizable.module-ur5FBfxo.js";
27
+ import "../../../utils/decorators/resizable/resize_handle.js";
24
28
  import '../../../mobile_date_picker_year_selector.css';const $ = "_mobile-year-selector_31f3a58", E = "_mobile-year-button_494c1af", g = { "mobile-year-selector": $, "mobile-year-button": E };
25
- function me({
29
+ function de({
26
30
  presenter: n,
27
31
  onClose: x
28
32
  }) {
29
33
  const { min: c, max: s, visibleYear: i, visibleMonth: F } = z(
30
34
  n.stateBroadcast
31
- ), [a, m] = B(0), l = _(null), S = c == null ? -1 / 0 : c.getFullYear(), k = s == null ? 1 / 0 : s.getFullYear(), r = [], f = i % 20, p = i - f + a, w = p + 19;
35
+ ), [a, m] = B(0), l = _(null), S = c == null ? -1 / 0 : c.getFullYear(), k = s == null ? 1 / 0 : s.getFullYear(), r = [], p = i % 20, f = i - p + a, w = f + 19;
32
36
  for (let o = 0; o < 20; o++) {
33
37
  const t = new Date(i, F, 1);
34
- t.setFullYear(i - f + o + a);
38
+ t.setFullYear(i - p + o + a);
35
39
  const u = t.getFullYear() > k || t.getFullYear() < S;
36
40
  r.push(
37
41
  /* @__PURE__ */ e(
@@ -91,7 +95,7 @@ function me({
91
95
  selectable: !1,
92
96
  emphasis: "faint",
93
97
  hierarchy: "tertiary",
94
- children: `${p}-${w}`
98
+ children: `${f}-${w}`
95
99
  }
96
100
  ),
97
101
  /* @__PURE__ */ e(y, {}),
@@ -104,6 +108,6 @@ function me({
104
108
  );
105
109
  }
106
110
  export {
107
- me as MobileDatePickerYearSelector
111
+ de as MobileDatePickerYearSelector
108
112
  };
109
113
  //# sourceMappingURL=mobile_date_picker_year_selector.js.map