@tcn/ui 0.3.1 → 0.3.3

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 (580) hide show
  1. package/README.md +2 -1
  2. package/dist/actions/button/base_button/base_button.d.ts.map +1 -1
  3. package/dist/actions/button/base_button/base_button.js +18 -18
  4. package/dist/actions/button/base_button/base_button.js.map +1 -1
  5. package/dist/actions/button/button_group/button_group.d.ts +1 -1
  6. package/dist/actions/button/button_group/button_group.d.ts.map +1 -1
  7. package/dist/actions/button/button_group/button_group.js +10 -7
  8. package/dist/actions/button/button_group/button_group.js.map +1 -1
  9. package/dist/actions/button/select_group/select_group.js +2 -2
  10. package/dist/actions/button/select_group/select_group.js.map +1 -1
  11. package/dist/badge.css +1 -1
  12. package/dist/base_button.css +1 -1
  13. package/dist/body_text.css +1 -1
  14. package/dist/bottom_resize_handle.css +1 -1
  15. package/dist/bubble.css +1 -1
  16. package/dist/button.css +1 -1
  17. package/dist/button_group.css +1 -1
  18. package/dist/callout.css +1 -1
  19. package/dist/caption.css +1 -1
  20. package/dist/checkbox.css +1 -1
  21. package/dist/chip.css +1 -1
  22. package/dist/circle.css +1 -1
  23. package/dist/collapsible_box.css +1 -1
  24. package/dist/color_input.css +1 -1
  25. package/dist/color_picker.css +1 -1
  26. package/dist/column.css +1 -1
  27. package/dist/confirm.css +1 -1
  28. package/dist/css/layers.css +1 -0
  29. package/dist/date_picker.css +1 -1
  30. package/dist/date_picker_date.css +1 -1
  31. package/dist/date_picker_day.css +1 -1
  32. package/dist/date_picker_header.css +1 -1
  33. package/dist/date_picker_input.css +1 -1
  34. package/dist/date_picker_time_selector.css +1 -1
  35. package/dist/date_picker_year_input.css +1 -1
  36. package/dist/date_picker_year_selector.css +1 -1
  37. package/dist/divider.css +1 -1
  38. package/dist/draggable.css +1 -1
  39. package/dist/drawer_bottom.css +1 -1
  40. package/dist/drawer_end.css +1 -1
  41. package/dist/drawer_start.css +1 -1
  42. package/dist/drawer_top.css +1 -1
  43. package/dist/end_resize_handle.css +1 -1
  44. package/dist/feedback/progress/progress_bar.d.ts.map +1 -1
  45. package/dist/feedback/progress/progress_bar.js +34 -26
  46. package/dist/feedback/progress/progress_bar.js.map +1 -1
  47. package/dist/field_control.css +1 -1
  48. package/dist/field_set.css +1 -1
  49. package/dist/footer.css +1 -1
  50. package/dist/footnote.css +1 -1
  51. package/dist/form/field/common/field_control/field_control.js +9 -9
  52. package/dist/form/field/common/field_control/field_control.js.map +1 -1
  53. package/dist/form/field/common/field_description.js +3 -3
  54. package/dist/form/field/common/field_description.js.map +1 -1
  55. package/dist/form/field/common/field_error.js +16 -8
  56. package/dist/form/field/common/field_error.js.map +1 -1
  57. package/dist/form/field/common/field_header.js +7 -7
  58. package/dist/form/field/common/field_header.js.map +1 -1
  59. package/dist/form/field/common/status_input/status_input.d.ts.map +1 -1
  60. package/dist/form/field/common/status_input/status_input.js +15 -9
  61. package/dist/form/field/common/status_input/status_input.js.map +1 -1
  62. package/dist/form/field/h_field/h_field.js +1 -1
  63. package/dist/form/field/h_field/h_field.js.map +1 -1
  64. package/dist/form/field/v_field/v_field.js +5 -5
  65. package/dist/form/field/v_field/v_field.js.map +1 -1
  66. package/dist/form/field_set/field_set.d.ts.map +1 -1
  67. package/dist/form/field_set/field_set.js +17 -10
  68. package/dist/form/field_set/field_set.js.map +1 -1
  69. package/dist/frame.css +1 -1
  70. package/dist/grid.css +1 -1
  71. package/dist/h_body.css +1 -1
  72. package/dist/h_field.css +1 -1
  73. package/dist/h_panel.css +1 -1
  74. package/dist/header.css +1 -1
  75. package/dist/headline.css +1 -1
  76. package/dist/input.css +1 -1
  77. package/dist/inputs/checkbox/checkbox.js +14 -14
  78. package/dist/inputs/checkbox/checkbox.js.map +1 -1
  79. package/dist/inputs/checkbox/checkbox_row.d.ts +1 -1
  80. package/dist/inputs/checkbox/checkbox_row.d.ts.map +1 -1
  81. package/dist/inputs/checkbox/checkbox_row.js +19 -8
  82. package/dist/inputs/checkbox/checkbox_row.js.map +1 -1
  83. package/dist/inputs/color_input/color_input.d.ts.map +1 -1
  84. package/dist/inputs/color_input/color_input.js +32 -28
  85. package/dist/inputs/color_input/color_input.js.map +1 -1
  86. package/dist/inputs/color_input/color_picker.js +16 -16
  87. package/dist/inputs/color_input/color_picker.js.map +1 -1
  88. package/dist/inputs/combo_box/combo_box.js +1 -1
  89. package/dist/inputs/combo_box/combo_box.js.map +1 -1
  90. package/dist/inputs/date_picker/date_picker.js +10 -10
  91. package/dist/inputs/date_picker/date_picker.js.map +1 -1
  92. package/dist/inputs/date_picker/date_picker_body.js +1 -1
  93. package/dist/inputs/date_picker/date_picker_body.js.map +1 -1
  94. package/dist/inputs/date_picker/date_picker_date.js +2 -2
  95. package/dist/inputs/date_picker/date_picker_date.js.map +1 -1
  96. package/dist/inputs/date_picker/date_picker_day.d.ts.map +1 -1
  97. package/dist/inputs/date_picker/date_picker_day.js +16 -8
  98. package/dist/inputs/date_picker/date_picker_day.js.map +1 -1
  99. package/dist/inputs/date_picker/date_picker_header.js +1 -1
  100. package/dist/inputs/date_picker/date_picker_header.js.map +1 -1
  101. package/dist/inputs/date_picker/date_picker_input.js +3 -3
  102. package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
  103. package/dist/inputs/date_picker/date_picker_time_selector.d.ts.map +1 -1
  104. package/dist/inputs/date_picker/date_picker_time_selector.js +14 -11
  105. package/dist/inputs/date_picker/date_picker_time_selector.js.map +1 -1
  106. package/dist/inputs/date_picker/date_picker_year_input.js +4 -4
  107. package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
  108. package/dist/inputs/date_picker/date_picker_year_selector.d.ts.map +1 -1
  109. package/dist/inputs/date_picker/date_picker_year_selector.js +13 -10
  110. package/dist/inputs/date_picker/date_picker_year_selector.js.map +1 -1
  111. package/dist/inputs/index.d.ts +0 -4
  112. package/dist/inputs/index.d.ts.map +1 -1
  113. package/dist/inputs/index.js +53 -61
  114. package/dist/inputs/index.js.map +1 -1
  115. package/dist/inputs/input/input.js +3 -3
  116. package/dist/inputs/input/input.js.map +1 -1
  117. package/dist/inputs/multiselect/multiselect.d.ts.map +1 -1
  118. package/dist/inputs/multiselect/multiselect.js +10 -9
  119. package/dist/inputs/multiselect/multiselect.js.map +1 -1
  120. package/dist/inputs/multiselect/multiselect_inline_values.d.ts.map +1 -1
  121. package/dist/inputs/multiselect/multiselect_inline_values.js +18 -17
  122. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  123. package/dist/inputs/multiselect/multiselect_values.js +20 -20
  124. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  125. package/dist/inputs/phone_number_input/phone_number_input.d.ts.map +1 -1
  126. package/dist/inputs/phone_number_input/phone_number_input.js +94 -81
  127. package/dist/inputs/phone_number_input/phone_number_input.js.map +1 -1
  128. package/dist/inputs/radio/radio.js +11 -11
  129. package/dist/inputs/radio/radio.js.map +1 -1
  130. package/dist/inputs/select/select.d.ts.map +1 -1
  131. package/dist/inputs/select/select.js +33 -33
  132. package/dist/inputs/select/select.js.map +1 -1
  133. package/dist/inputs/slider/slider.js +4 -4
  134. package/dist/inputs/slider/slider.js.map +1 -1
  135. package/dist/inputs/suggestions/suggestion_item.js +9 -9
  136. package/dist/inputs/suggestions/suggestion_item.js.map +1 -1
  137. package/dist/inputs/suggestions/suggestion_list.d.ts.map +1 -1
  138. package/dist/inputs/suggestions/suggestion_list.js +29 -22
  139. package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
  140. package/dist/inputs/switch/switch.js +14 -14
  141. package/dist/inputs/switch/switch.js.map +1 -1
  142. package/dist/inputs/textarea/textarea.js +6 -6
  143. package/dist/inputs/textarea/textarea.js.map +1 -1
  144. package/dist/inputs/unit_input/unit_input.js +8 -8
  145. package/dist/inputs/unit_input/unit_input.js.map +1 -1
  146. package/dist/layouts/body/h_body.js +7 -7
  147. package/dist/layouts/body/h_body.js.map +1 -1
  148. package/dist/layouts/column/column.js +8 -8
  149. package/dist/layouts/column/column.js.map +1 -1
  150. package/dist/layouts/divider/divider.d.ts.map +1 -1
  151. package/dist/layouts/divider/divider.js +11 -12
  152. package/dist/layouts/divider/divider.js.map +1 -1
  153. package/dist/layouts/grid/grid.d.ts.map +1 -1
  154. package/dist/layouts/grid/grid.js +26 -17
  155. package/dist/layouts/grid/grid.js.map +1 -1
  156. package/dist/layouts/header/header.js +4 -4
  157. package/dist/layouts/header/header.js.map +1 -1
  158. package/dist/layouts/list/section_header.d.ts.map +1 -1
  159. package/dist/layouts/list/section_header.js +15 -5
  160. package/dist/layouts/list/section_header.js.map +1 -1
  161. package/dist/layouts/sidebar_end/sidebar_end.js +26 -26
  162. package/dist/layouts/sidebar_end/sidebar_end.js.map +1 -1
  163. package/dist/layouts/sidebar_start/sidebar_start.js +24 -24
  164. package/dist/layouts/sidebar_start/sidebar_start.js.map +1 -1
  165. package/dist/layouts/utility_bar/utility_bar.d.ts.map +1 -1
  166. package/dist/layouts/utility_bar/utility_bar.js +10 -15
  167. package/dist/layouts/utility_bar/utility_bar.js.map +1 -1
  168. package/dist/left_resize_handle.css +1 -1
  169. package/dist/loading.css +1 -1
  170. package/dist/menu.css +1 -1
  171. package/dist/modal.css +1 -1
  172. package/dist/multi_combo_box.css +1 -1
  173. package/dist/multiselect.css +1 -1
  174. package/dist/multiselect_values.css +1 -1
  175. package/dist/navigation/index.d.ts +7 -0
  176. package/dist/navigation/index.d.ts.map +1 -0
  177. package/dist/navigation/index.js +17 -0
  178. package/dist/navigation/index.js.map +1 -0
  179. package/dist/navigation/tabs/primitives/tabs_bar.d.ts +7 -0
  180. package/dist/navigation/tabs/primitives/tabs_bar.d.ts.map +1 -0
  181. package/dist/navigation/tabs/primitives/tabs_bar.js +21 -0
  182. package/dist/navigation/tabs/primitives/tabs_bar.js.map +1 -0
  183. package/dist/navigation/tabs/primitives/tabs_list.d.ts +10 -0
  184. package/dist/navigation/tabs/primitives/tabs_list.d.ts.map +1 -0
  185. package/dist/navigation/tabs/primitives/tabs_list.js +36 -0
  186. package/dist/navigation/tabs/primitives/tabs_list.js.map +1 -0
  187. package/dist/navigation/tabs/state/context.d.ts +21 -0
  188. package/dist/navigation/tabs/state/context.d.ts.map +1 -0
  189. package/dist/navigation/tabs/state/context.js +34 -0
  190. package/dist/navigation/tabs/state/context.js.map +1 -0
  191. package/dist/navigation/tabs/state/link/tab_link.d.ts +9 -0
  192. package/dist/navigation/tabs/state/link/tab_link.d.ts.map +1 -0
  193. package/dist/navigation/tabs/state/link/tab_link.js +36 -0
  194. package/dist/navigation/tabs/state/link/tab_link.js.map +1 -0
  195. package/dist/navigation/tabs/state/link/use_tab_link.d.ts +5 -0
  196. package/dist/navigation/tabs/state/link/use_tab_link.d.ts.map +1 -0
  197. package/dist/navigation/tabs/state/link/use_tab_link.js +13 -0
  198. package/dist/navigation/tabs/state/link/use_tab_link.js.map +1 -0
  199. package/dist/navigation/tabs/state/nav_bar.d.ts +5 -0
  200. package/dist/navigation/tabs/state/nav_bar.d.ts.map +1 -0
  201. package/dist/navigation/tabs/state/nav_bar.js +36 -0
  202. package/dist/navigation/tabs/state/nav_bar.js.map +1 -0
  203. package/dist/navigation/tabs/state/tab.d.ts +6 -0
  204. package/dist/navigation/tabs/state/tab.d.ts.map +1 -0
  205. package/dist/navigation/tabs/state/tab.js +6 -0
  206. package/dist/navigation/tabs/state/tab.js.map +1 -0
  207. package/dist/overlay/context_menu/context_menu.js +5 -5
  208. package/dist/overlay/context_menu/context_menu.js.map +1 -1
  209. package/dist/overlay/menu/menu.js +2 -2
  210. package/dist/overlay/menu/menu.js.map +1 -1
  211. package/dist/overlay/popper/legacy/popper.d.ts.map +1 -1
  212. package/dist/overlay/popper/legacy/popper.js +12 -11
  213. package/dist/overlay/popper/legacy/popper.js.map +1 -1
  214. package/dist/overlay/popper/preview_popper.js +16 -16
  215. package/dist/overlay/popper/preview_popper.js.map +1 -1
  216. package/dist/overlay/portal/portal.css +1 -0
  217. package/dist/overlay/portal/portal_platform.d.ts.map +1 -1
  218. package/dist/overlay/portal/portal_platform.js +8 -7
  219. package/dist/overlay/portal/portal_platform.js.map +1 -1
  220. package/dist/page.css +1 -1
  221. package/dist/phone_number_input.css +1 -1
  222. package/dist/picture_placeholder.css +1 -1
  223. package/dist/popper.css +1 -1
  224. package/dist/progress_bar.css +1 -1
  225. package/dist/radio.css +1 -1
  226. package/dist/rect.css +1 -1
  227. package/dist/right_resize_handle.css +1 -1
  228. package/dist/scaffold.css +1 -1
  229. package/dist/select.css +1 -1
  230. package/dist/select_group.css +1 -1
  231. package/dist/sidebar_end.css +1 -1
  232. package/dist/sidebar_start.css +1 -1
  233. package/dist/slider.css +1 -1
  234. package/dist/slim_button.css +1 -1
  235. package/dist/stack.css +1 -1
  236. package/dist/stacks/box/bottom_resize_handle.js +1 -1
  237. package/dist/stacks/box/bottom_resize_handle.js.map +1 -1
  238. package/dist/stacks/box/box.js +1 -1
  239. package/dist/stacks/box/box.js.map +1 -1
  240. package/dist/stacks/box/end_resize_handle.js +1 -1
  241. package/dist/stacks/box/end_resize_handle.js.map +1 -1
  242. package/dist/stacks/box/left_resize_handle.js +7 -7
  243. package/dist/stacks/box/left_resize_handle.js.map +1 -1
  244. package/dist/stacks/box/right_resize_handle.js +3 -3
  245. package/dist/stacks/box/right_resize_handle.js.map +1 -1
  246. package/dist/stacks/box/start_resize_handle.js +6 -6
  247. package/dist/stacks/box/start_resize_handle.js.map +1 -1
  248. package/dist/stacks/box/top_resize_handle.js +1 -1
  249. package/dist/stacks/box/top_resize_handle.js.map +1 -1
  250. package/dist/stacks/h_collapsible_box.d.ts.map +1 -1
  251. package/dist/stacks/h_collapsible_box.js +8 -4
  252. package/dist/stacks/h_collapsible_box.js.map +1 -1
  253. package/dist/stacks/h_stack.js +5 -5
  254. package/dist/stacks/h_stack.js.map +1 -1
  255. package/dist/stacks/spacer.js +13 -13
  256. package/dist/stacks/spacer.js.map +1 -1
  257. package/dist/stacks/story_components/circle.js +3 -3
  258. package/dist/stacks/story_components/circle.js.map +1 -1
  259. package/dist/stacks/story_components/picture_placeholder.d.ts.map +1 -1
  260. package/dist/stacks/story_components/picture_placeholder.js +5 -1
  261. package/dist/stacks/story_components/picture_placeholder.js.map +1 -1
  262. package/dist/stacks/story_components/rect.js +10 -10
  263. package/dist/stacks/story_components/rect.js.map +1 -1
  264. package/dist/stacks/v_collapsible_box.d.ts.map +1 -1
  265. package/dist/stacks/v_collapsible_box.js +12 -8
  266. package/dist/stacks/v_collapsible_box.js.map +1 -1
  267. package/dist/stacks/v_stack.js +4 -4
  268. package/dist/stacks/v_stack.js.map +1 -1
  269. package/dist/stacks/z_stack.js +7 -7
  270. package/dist/stacks/z_stack.js.map +1 -1
  271. package/dist/start_resize_handle.css +1 -1
  272. package/dist/status_input.css +1 -1
  273. package/dist/subheadline.css +1 -1
  274. package/dist/suggestion_item.css +1 -1
  275. package/dist/suggestion_list.css +1 -1
  276. package/dist/surfaces/alert/alert.js +6 -6
  277. package/dist/surfaces/alert/alert.js.map +1 -1
  278. package/dist/surfaces/confirm/confirm.d.ts.map +1 -1
  279. package/dist/surfaces/confirm/confirm.js +22 -15
  280. package/dist/surfaces/confirm/confirm.js.map +1 -1
  281. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js +3 -3
  282. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js.map +1 -1
  283. package/dist/surfaces/drawers/drawer_end/drawer_end.js +4 -4
  284. package/dist/surfaces/drawers/drawer_end/drawer_end.js.map +1 -1
  285. package/dist/surfaces/drawers/drawer_start/drawer_start.js +1 -1
  286. package/dist/surfaces/drawers/drawer_start/drawer_start.js.map +1 -1
  287. package/dist/surfaces/drawers/drawer_top/drawer_top.js +1 -1
  288. package/dist/surfaces/drawers/drawer_top/drawer_top.js.map +1 -1
  289. package/dist/surfaces/page/h_page.js +1 -1
  290. package/dist/surfaces/page/h_page.js.map +1 -1
  291. package/dist/surfaces/page/v_page.js +4 -4
  292. package/dist/surfaces/page/v_page.js.map +1 -1
  293. package/dist/surfaces/popover/popover.js +1 -1
  294. package/dist/surfaces/popover/popover.js.map +1 -1
  295. package/dist/switch.css +1 -1
  296. package/dist/tabs_bar.css +1 -0
  297. package/dist/tethered.css +1 -1
  298. package/dist/textarea.css +1 -1
  299. package/dist/theme_provider.css +1 -0
  300. package/dist/theme_provider.module-ChZQ5Xsk.js +5 -0
  301. package/dist/theme_provider.module-ChZQ5Xsk.js.map +1 -0
  302. package/dist/themes/stylesheets/reset.css +1 -0
  303. package/dist/themes/stylesheets/reset.js +134 -131
  304. package/dist/themes/stylesheets/reset.js.map +1 -1
  305. package/dist/themes/theme.d.ts +3 -2
  306. package/dist/themes/theme.d.ts.map +1 -1
  307. package/dist/themes/theme.js +24 -5
  308. package/dist/themes/theme.js.map +1 -1
  309. package/dist/themes/themes/ergo/ergo_theme.css +1 -0
  310. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  311. package/dist/themes/themes/ergo/ergo_theme.js +608 -540
  312. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  313. package/dist/themes/themes/windows_98/windows_98.css +1 -0
  314. package/dist/themes/themes/windows_98/windows_98_theme.js +1071 -1167
  315. package/dist/themes/themes/windows_98/windows_98_theme.js.map +1 -1
  316. package/dist/title.css +1 -1
  317. package/dist/tokens/badge/badge.js +6 -6
  318. package/dist/tokens/badge/badge.js.map +1 -1
  319. package/dist/tokens/bubble/bubble.js +35 -27
  320. package/dist/tokens/bubble/bubble.js.map +1 -1
  321. package/dist/tokens/chip/chip.js +17 -9
  322. package/dist/tokens/chip/chip.js.map +1 -1
  323. package/dist/tooltip.css +1 -1
  324. package/dist/top_resize_handle.css +1 -1
  325. package/dist/typography/body_text/body_text.js +9 -9
  326. package/dist/typography/body_text/body_text.js.map +1 -1
  327. package/dist/typography/callout/callout.js +9 -9
  328. package/dist/typography/callout/callout.js.map +1 -1
  329. package/dist/typography/caption/caption.js +5 -5
  330. package/dist/typography/caption/caption.js.map +1 -1
  331. package/dist/typography/footnote/footnote.js +9 -9
  332. package/dist/typography/footnote/footnote.js.map +1 -1
  333. package/dist/typography/headline/headline.js +13 -13
  334. package/dist/typography/headline/headline.js.map +1 -1
  335. package/dist/typography/subheadline/subheadline.js +10 -10
  336. package/dist/typography/subheadline/subheadline.js.map +1 -1
  337. package/dist/typography/title/title.js +6 -6
  338. package/dist/typography/title/title.js.map +1 -1
  339. package/dist/unit_input.css +1 -1
  340. package/dist/utility_bar.css +1 -1
  341. package/dist/utils/css_utils.d.ts +9 -0
  342. package/dist/utils/css_utils.d.ts.map +1 -0
  343. package/dist/utils/css_utils.js +45 -0
  344. package/dist/utils/css_utils.js.map +1 -0
  345. package/dist/v_body.css +1 -1
  346. package/dist/window.css +1 -1
  347. package/package.json +10 -3
  348. package/src/actions/__docs__/actions.mdx +65 -2
  349. package/src/actions/__docs__/actions.stories.tsx +174 -2
  350. package/src/actions/button/__stories__/button_group.stories.tsx +63 -0
  351. package/src/actions/button/__stories__/select_group.stories.tsx +47 -4
  352. package/src/actions/button/base_button/base_button.module.css +15 -13
  353. package/src/actions/button/base_button/base_button.tsx +2 -1
  354. package/src/actions/button/button/button.module.css +52 -50
  355. package/src/actions/button/button_group/button_group.module.css +54 -52
  356. package/src/actions/button/button_group/button_group.tsx +9 -4
  357. package/src/actions/button/select_group/select_group.module.css +54 -52
  358. package/src/actions/button/select_group/select_group.tsx +2 -2
  359. package/src/actions/button/slim_button/slim_button.module.css +7 -5
  360. package/src/css/layers.css +1 -0
  361. package/src/feedback/loading/loading.module.css +17 -15
  362. package/src/feedback/progress/progress_bar.module.css +52 -50
  363. package/src/feedback/progress/progress_bar.tsx +6 -1
  364. package/src/form/field/common/field_control/field_control.module.css +17 -15
  365. package/src/form/field/common/field_control/field_control.tsx +1 -1
  366. package/src/form/field/common/field_description.tsx +1 -1
  367. package/src/form/field/common/field_error.tsx +1 -1
  368. package/src/form/field/common/field_header.tsx +1 -1
  369. package/src/form/field/common/status_input/status_input.module.css +10 -8
  370. package/src/form/field/common/status_input/status_input.tsx +8 -5
  371. package/src/form/field/h_field/h_field.module.css +7 -5
  372. package/src/form/field/h_field/h_field.tsx +1 -1
  373. package/src/form/field/v_field/v_field.tsx +1 -1
  374. package/src/form/field_set/field_set.module.css +16 -14
  375. package/src/form/field_set/field_set.tsx +7 -4
  376. package/src/inputs/checkbox/checkbox.module.css +45 -43
  377. package/src/inputs/checkbox/checkbox.tsx +1 -1
  378. package/src/inputs/checkbox/checkbox_row.tsx +9 -2
  379. package/src/inputs/color_input/color_input.module.css +58 -56
  380. package/src/inputs/color_input/color_input.tsx +8 -4
  381. package/src/inputs/color_input/color_picker.module.css +13 -11
  382. package/src/inputs/color_input/color_picker.tsx +2 -2
  383. package/src/inputs/combo_box/combo_box.tsx +1 -1
  384. package/src/inputs/date_picker/date_picker.module.css +19 -17
  385. package/src/inputs/date_picker/date_picker.tsx +2 -2
  386. package/src/inputs/date_picker/date_picker_body.tsx +1 -1
  387. package/src/inputs/date_picker/date_picker_date.module.css +71 -69
  388. package/src/inputs/date_picker/date_picker_date.tsx +2 -2
  389. package/src/inputs/date_picker/date_picker_day.module.css +5 -3
  390. package/src/inputs/date_picker/date_picker_day.tsx +7 -2
  391. package/src/inputs/date_picker/date_picker_header.module.css +4 -2
  392. package/src/inputs/date_picker/date_picker_header.tsx +1 -1
  393. package/src/inputs/date_picker/date_picker_input.module.css +55 -53
  394. package/src/inputs/date_picker/date_picker_input.tsx +3 -3
  395. package/src/inputs/date_picker/date_picker_time_selector.module.css +29 -28
  396. package/src/inputs/date_picker/date_picker_time_selector.tsx +7 -4
  397. package/src/inputs/date_picker/date_picker_year_input.module.css +46 -44
  398. package/src/inputs/date_picker/date_picker_year_input.tsx +1 -1
  399. package/src/inputs/date_picker/date_picker_year_selector.module.css +48 -46
  400. package/src/inputs/date_picker/date_picker_year_selector.tsx +5 -2
  401. package/src/inputs/index.ts +0 -4
  402. package/src/inputs/input/input.module.css +55 -79
  403. package/src/inputs/input/input.tsx +1 -1
  404. package/src/inputs/multi_combo_box/multi_combo_box.module.css +4 -2
  405. package/src/inputs/multiselect/multiselect.module.css +4 -2
  406. package/src/inputs/multiselect/multiselect.tsx +2 -1
  407. package/src/inputs/multiselect/multiselect_inline_values.tsx +3 -2
  408. package/src/inputs/multiselect/multiselect_values.module.css +28 -26
  409. package/src/inputs/multiselect/multiselect_values.tsx +3 -3
  410. package/src/inputs/phone_number_input/phone_number_input.module.css +54 -52
  411. package/src/inputs/phone_number_input/phone_number_input.tsx +15 -6
  412. package/src/inputs/radio/radio.module.css +48 -66
  413. package/src/inputs/radio/radio.tsx +2 -2
  414. package/src/inputs/select/select.module.css +57 -59
  415. package/src/inputs/select/select.tsx +4 -2
  416. package/src/inputs/slider/slider.module.css +151 -149
  417. package/src/inputs/slider/slider.tsx +1 -1
  418. package/src/inputs/suggestions/suggestion_item.module.css +35 -53
  419. package/src/inputs/suggestions/suggestion_item.tsx +1 -1
  420. package/src/inputs/suggestions/suggestion_list.module.css +29 -27
  421. package/src/inputs/suggestions/suggestion_list.tsx +6 -3
  422. package/src/inputs/switch/switch.module.css +111 -109
  423. package/src/inputs/switch/switch.tsx +3 -3
  424. package/src/inputs/textarea/textarea.module.css +46 -65
  425. package/src/inputs/textarea/textarea.tsx +1 -1
  426. package/src/inputs/unit_input/unit_input.module.css +20 -18
  427. package/src/inputs/unit_input/unit_input.tsx +3 -3
  428. package/src/layouts/body/h_body.module.css +7 -4
  429. package/src/layouts/body/h_body.tsx +1 -1
  430. package/src/layouts/body/v_body.module.css +6 -4
  431. package/src/layouts/column/column.module.css +30 -28
  432. package/src/layouts/column/column.tsx +2 -2
  433. package/src/layouts/divider/divider.module.css +103 -101
  434. package/src/layouts/divider/divider.tsx +1 -2
  435. package/src/layouts/footer/footer.module.css +24 -21
  436. package/src/layouts/grid/grid.module.css +20 -18
  437. package/src/layouts/grid/grid.tsx +6 -1
  438. package/src/layouts/header/header.module.css +7 -5
  439. package/src/layouts/header/header.tsx +1 -1
  440. package/src/layouts/list/section_header.module.css +16 -14
  441. package/src/layouts/list/section_header.tsx +7 -1
  442. package/src/layouts/scaffold/scaffold.module.css +6 -4
  443. package/src/layouts/sidebar_end/sidebar_end.module.css +28 -26
  444. package/src/layouts/sidebar_end/sidebar_end.tsx +2 -2
  445. package/src/layouts/sidebar_start/sidebar_start.module.css +28 -26
  446. package/src/layouts/sidebar_start/sidebar_start.tsx +2 -2
  447. package/src/layouts/utility_bar/utility_bar.module.css +5 -3
  448. package/src/layouts/utility_bar/utility_bar.tsx +1 -6
  449. package/src/navigation/index.ts +18 -0
  450. package/src/navigation/tabs/__stories__/state.stories.tsx +136 -0
  451. package/src/navigation/tabs/__stories__/tabs.stories.tsx +40 -0
  452. package/src/navigation/tabs/primitives/tabs_bar.module.css +13 -0
  453. package/src/navigation/tabs/primitives/tabs_bar.tsx +25 -0
  454. package/src/navigation/tabs/primitives/tabs_list.tsx +42 -0
  455. package/src/navigation/tabs/state/context.tsx +61 -0
  456. package/src/navigation/tabs/state/link/tab_link.tsx +45 -0
  457. package/src/navigation/tabs/state/link/use_tab_link.ts +17 -0
  458. package/src/navigation/tabs/state/nav_bar.tsx +37 -0
  459. package/src/navigation/tabs/state/tab.tsx +12 -0
  460. package/src/overlay/context_menu/context_menu.tsx +1 -1
  461. package/src/overlay/frame/frame.module.css +6 -4
  462. package/src/overlay/frame/frame_stories.module.css +14 -12
  463. package/src/overlay/menu/menu.module.css +30 -28
  464. package/src/overlay/menu/menu.tsx +2 -2
  465. package/src/overlay/popper/legacy/popper.module.css +10 -8
  466. package/src/overlay/popper/legacy/popper.tsx +2 -1
  467. package/src/overlay/popper/preview_popper.tsx +1 -1
  468. package/src/overlay/portal/portal.css +33 -31
  469. package/src/overlay/portal/portal_platform.tsx +6 -5
  470. package/src/overlay/tethered/tethered.module.css +9 -7
  471. package/src/stacks/box/bottom_resize_handle.module.css +11 -9
  472. package/src/stacks/box/bottom_resize_handle.tsx +1 -1
  473. package/src/stacks/box/box.tsx +1 -1
  474. package/src/stacks/box/end_resize_handle.module.css +16 -14
  475. package/src/stacks/box/end_resize_handle.tsx +1 -1
  476. package/src/stacks/box/left_resize_handle.module.css +11 -9
  477. package/src/stacks/box/left_resize_handle.tsx +1 -1
  478. package/src/stacks/box/right_resize_handle.module.css +11 -9
  479. package/src/stacks/box/right_resize_handle.tsx +1 -1
  480. package/src/stacks/box/start_resize_handle.module.css +16 -14
  481. package/src/stacks/box/start_resize_handle.tsx +1 -1
  482. package/src/stacks/box/top_resize_handle.module.css +11 -9
  483. package/src/stacks/box/top_resize_handle.tsx +1 -1
  484. package/src/stacks/collapsible_box.module.css +45 -29
  485. package/src/stacks/demo.module.css +5 -3
  486. package/src/stacks/h_collapsible_box.tsx +5 -1
  487. package/src/stacks/h_stack.tsx +1 -1
  488. package/src/stacks/spacer.tsx +1 -1
  489. package/src/stacks/stack.module.css +400 -393
  490. package/src/stacks/story_components/circle.module.css +8 -6
  491. package/src/stacks/story_components/circle.tsx +1 -1
  492. package/src/stacks/story_components/picture_placeholder.module.css +4 -2
  493. package/src/stacks/story_components/picture_placeholder.tsx +5 -1
  494. package/src/stacks/story_components/rect.module.css +9 -7
  495. package/src/stacks/story_components/rect.tsx +1 -1
  496. package/src/stacks/v_collapsible_box.tsx +5 -1
  497. package/src/stacks/v_stack.tsx +1 -1
  498. package/src/stacks/z_stack.tsx +1 -1
  499. package/src/surfaces/alert/alert.tsx +1 -1
  500. package/src/surfaces/card/card_stories.module.css +13 -11
  501. package/src/surfaces/confirm/confirm.module.css +37 -35
  502. package/src/surfaces/confirm/confirm.tsx +7 -4
  503. package/src/surfaces/drawers/drawer_bottom/drawer_bottom.module.css +4 -2
  504. package/src/surfaces/drawers/drawer_bottom/drawer_bottom.tsx +1 -1
  505. package/src/surfaces/drawers/drawer_end/drawer_end.module.css +4 -2
  506. package/src/surfaces/drawers/drawer_end/drawer_end.tsx +1 -1
  507. package/src/surfaces/drawers/drawer_start/drawer_start.module.css +4 -2
  508. package/src/surfaces/drawers/drawer_start/drawer_start.tsx +1 -1
  509. package/src/surfaces/drawers/drawer_top/drawer_top.module.css +4 -2
  510. package/src/surfaces/drawers/drawer_top/drawer_top.tsx +1 -1
  511. package/src/surfaces/modal/__stories__/modal.stories.tsx +3 -1
  512. package/src/surfaces/modal/modal.module.css +5 -3
  513. package/src/surfaces/page/h_page.tsx +1 -1
  514. package/src/surfaces/page/page.module.css +12 -10
  515. package/src/surfaces/page/v_page.tsx +1 -1
  516. package/src/surfaces/panel/panel.module.css +8 -7
  517. package/src/surfaces/popover/popover.tsx +1 -1
  518. package/src/surfaces/tooltip/tooltip.module.css +4 -2
  519. package/src/surfaces/window/window.module.css +6 -4
  520. package/src/themes/stylesheets/reset.css +134 -131
  521. package/src/themes/theme.tsx +29 -3
  522. package/src/themes/theme_provider.module.css +6 -0
  523. package/src/themes/themes/ergo/ergo_theme.css +607 -540
  524. package/src/themes/themes/ergo/ergo_theme.ts +1 -0
  525. package/src/themes/themes/windows_98/windows_98.css +1067 -1163
  526. package/src/tokens/badge/badge.module.css +13 -11
  527. package/src/tokens/badge/badge.tsx +2 -2
  528. package/src/tokens/bubble/bubble.module.css +12 -10
  529. package/src/tokens/bubble/bubble.tsx +1 -1
  530. package/src/tokens/chip/chip.module.css +14 -12
  531. package/src/tokens/chip/chip.tsx +1 -1
  532. package/src/typography/body_text/body_text.module.css +61 -59
  533. package/src/typography/body_text/body_text.tsx +1 -1
  534. package/src/typography/callout/callout.module.css +56 -54
  535. package/src/typography/callout/callout.tsx +1 -1
  536. package/src/typography/caption/caption.module.css +56 -54
  537. package/src/typography/caption/caption.tsx +1 -1
  538. package/src/typography/footnote/footnote.module.css +56 -54
  539. package/src/typography/footnote/footnote.tsx +1 -1
  540. package/src/typography/headline/headline.module.css +57 -55
  541. package/src/typography/headline/headline.tsx +1 -1
  542. package/src/typography/subheadline/subheadline.module.css +57 -55
  543. package/src/typography/subheadline/subheadline.tsx +1 -1
  544. package/src/typography/title/title.module.css +54 -52
  545. package/src/typography/title/title.tsx +1 -1
  546. package/src/utils/css_utils.ts +64 -0
  547. package/src/utils/dnd/draggable/draggable.module.css +8 -6
  548. package/dist/actions/types.js +0 -2
  549. package/dist/actions/types.js.map +0 -1
  550. package/dist/form/field/common/types.js +0 -2
  551. package/dist/form/field/common/types.js.map +0 -1
  552. package/dist/inputs/mask_input/mask_config.js +0 -2
  553. package/dist/inputs/mask_input/mask_config.js.map +0 -1
  554. package/dist/inputs/mask_input/mask_cursor.js +0 -2
  555. package/dist/inputs/mask_input/mask_cursor.js.map +0 -1
  556. package/dist/inputs/multiselect/multiselect_row.d.ts +0 -10
  557. package/dist/inputs/multiselect/multiselect_row.d.ts.map +0 -1
  558. package/dist/inputs/multiselect/multiselect_row.js +0 -35
  559. package/dist/inputs/multiselect/multiselect_row.js.map +0 -1
  560. package/dist/inputs/switch/switch_row.d.ts +0 -8
  561. package/dist/inputs/switch/switch_row.d.ts.map +0 -1
  562. package/dist/inputs/switch/switch_row.js +0 -16
  563. package/dist/inputs/switch/switch_row.js.map +0 -1
  564. package/dist/inputs/textarea/textarea_row.d.ts +0 -8
  565. package/dist/inputs/textarea/textarea_row.d.ts.map +0 -1
  566. package/dist/inputs/textarea/textarea_row.js +0 -12
  567. package/dist/inputs/textarea/textarea_row.js.map +0 -1
  568. package/dist/overlay/tethered/types.js +0 -2
  569. package/dist/overlay/tethered/types.js.map +0 -1
  570. package/dist/portal_platform.css +0 -1
  571. package/dist/stacks/box/handle_props.js +0 -2
  572. package/dist/stacks/box/handle_props.js.map +0 -1
  573. package/dist/utils/calendar/calendar_date.js +0 -2
  574. package/dist/utils/calendar/calendar_date.js.map +0 -1
  575. package/dist/utils/dnd/types.js +0 -2
  576. package/dist/utils/dnd/types.js.map +0 -1
  577. package/src/inputs/multiselect/multiselect_row.tsx +0 -57
  578. package/src/inputs/switch/TODO.md +0 -3
  579. package/src/inputs/switch/switch_row.tsx +0 -33
  580. package/src/inputs/textarea/textarea_row.tsx +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_date.js","sources":["../../../src/inputs/date_picker/date_picker_date.tsx"],"sourcesContent":["import { useSignalValue } from '@tcn/state';\nimport { BodyText } from '../../typography/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport type { CalendarDate } from '../../utils/calendar/calendar_date.js';\nimport type { DatePickerPresenter } from './date_picker_presenter.js';\nimport styles from './date_picker_date.module.css';\nimport { clsx } from 'clsx';\n\nexport interface DatePickerDateProps {\n date: CalendarDate;\n presenter: DatePickerPresenter;\n}\n\nexport function DatePickerDate({ presenter, date: calendarDate }: DatePickerDateProps) {\n const {\n visibleMonth,\n disabledDates,\n min: minDate,\n max: maxDate,\n } = useSignalValue(presenter.stateBroadcast);\n const selectedDate = useSignalValue(presenter.valueBroadcast);\n\n let minTime = -Infinity;\n let maxTime = Infinity;\n\n if (minDate != null) {\n let normalizedMinDate = new Date(minDate);\n normalizedMinDate.setHours(0, 0, 0, 0);\n minTime = normalizedMinDate.getTime();\n }\n\n if (maxDate != null) {\n let normalizedMaxDate = new Date(maxDate);\n normalizedMaxDate.setHours(23, 59, 59, 999);\n maxTime = normalizedMaxDate.getTime();\n }\n\n const date = new Date();\n\n const time = new Date(\n calendarDate.year,\n calendarDate.month,\n calendarDate.date\n ).getTime();\n\n const isWithinMonth = visibleMonth === calendarDate.month;\n\n const isSelected =\n selectedDate?.getMonth() === calendarDate.month &&\n selectedDate.getFullYear() === calendarDate.year &&\n selectedDate.getDate() === calendarDate.date;\n\n const isDisabled = disabledDates.some(\n d =>\n d.getMonth() === calendarDate.month &&\n d.getFullYear() === calendarDate.year &&\n d.getDate() === calendarDate.date\n );\n\n const isWithinRange = time >= minTime && time < maxTime;\n const isToday =\n date.getMonth() === calendarDate.month &&\n date.getFullYear() === calendarDate.year &&\n date.getDate() === calendarDate.date;\n\n function select() {\n const date = new Date(calendarDate.year, calendarDate.month, calendarDate.date);\n\n if (isSelected && presenter.stateBroadcast.get().showTime) {\n presenter.clear();\n return;\n }\n\n presenter.selectDate(date);\n }\n\n return (\n <button\n disabled={!isWithinMonth || isDisabled || !isWithinRange}\n className={clsx(styles['date-picker-date'], 'date-picker-date')}\n onClick={select}\n data-is-within-month={String(isWithinMonth)}\n data-is-selected={String(isSelected)}\n data-is-disabled={String(isDisabled)}\n data-is-within-range={String(isWithinRange)}\n data-is-today={String(isToday)}\n >\n <ZStack height=\"100%\">\n <BodyText>{String(calendarDate.date)}</BodyText>\n {isToday && (\n <div\n className={clsx(styles['date-picker-today'], 'date-picker-today')}\n data-is-selected={String(isSelected)}\n ></div>\n )}\n </ZStack>\n </button>\n );\n}\n"],"names":["DatePickerDate","presenter","calendarDate","visibleMonth","disabledDates","minDate","maxDate","useSignalValue","selectedDate","minTime","maxTime","normalizedMinDate","normalizedMaxDate","date","time","isWithinMonth","isSelected","isDisabled","d","isWithinRange","isToday","select","jsx","clsx","styles","jsxs","ZStack","BodyText"],"mappings":";;;;;;;;;;;;AAaO,SAASA,EAAe,EAAE,WAAAC,GAAW,MAAMC,KAAqC;AACrF,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,KAAKC;AAAA,IACL,KAAKC;AAAA,EAAA,IACHC,EAAeN,EAAU,cAAc,GACrCO,IAAeD,EAAeN,EAAU,cAAc;AAE5D,MAAIQ,IAAU,QACVC,IAAU;AAEd,MAAIL,KAAW,MAAM;AACnB,QAAIM,IAAoB,IAAI,KAAKN,CAAO;AACxC,IAAAM,EAAkB,SAAS,GAAG,GAAG,GAAG,CAAC,GACrCF,IAAUE,EAAkB,QAAA;AAAA,EAC9B;AAEA,MAAIL,KAAW,MAAM;AACnB,QAAIM,IAAoB,IAAI,KAAKN,CAAO;AACxC,IAAAM,EAAkB,SAAS,IAAI,IAAI,IAAI,GAAG,GAC1CF,IAAUE,EAAkB,QAAA;AAAA,EAC9B;AAEA,QAAMC,wBAAW,KAAA,GAEXC,IAAO,IAAI;AAAA,IACfZ,EAAa;AAAA,IACbA,EAAa;AAAA,IACbA,EAAa;AAAA,EAAA,EACb,QAAA,GAEIa,IAAgBZ,MAAiBD,EAAa,OAE9Cc,IACJR,GAAc,SAAA,MAAeN,EAAa,SAC1CM,EAAa,YAAA,MAAkBN,EAAa,QAC5CM,EAAa,QAAA,MAAcN,EAAa,MAEpCe,IAAab,EAAc;AAAA,IAC/B,CAAAc,MACEA,EAAE,SAAA,MAAehB,EAAa,SAC9BgB,EAAE,YAAA,MAAkBhB,EAAa,QACjCgB,EAAE,QAAA,MAAchB,EAAa;AAAA,EAAA,GAG3BiB,IAAgBL,KAAQL,KAAWK,IAAOJ,GAC1CU,IACJP,EAAK,SAAA,MAAeX,EAAa,SACjCW,EAAK,YAAA,MAAkBX,EAAa,QACpCW,EAAK,QAAA,MAAcX,EAAa;AAElC,WAASmB,IAAS;AAChB,UAAMR,IAAO,IAAI,KAAKX,EAAa,MAAMA,EAAa,OAAOA,EAAa,IAAI;AAE9E,QAAIc,KAAcf,EAAU,eAAe,IAAA,EAAM,UAAU;AACzD,MAAAA,EAAU,MAAA;AACV;AAAA,IACF;AAEA,IAAAA,EAAU,WAAWY,CAAI;AAAA,EAC3B;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU,CAACP,KAAiBE,KAAc,CAACE;AAAA,MAC3C,WAAWI,EAAKC,EAAO,kBAAkB,GAAG,kBAAkB;AAAA,MAC9D,SAASH;AAAA,MACT,wBAAsB,OAAON,CAAa;AAAA,MAC1C,oBAAkB,OAAOC,CAAU;AAAA,MACnC,oBAAkB,OAAOC,CAAU;AAAA,MACnC,wBAAsB,OAAOE,CAAa;AAAA,MAC1C,iBAAe,OAAOC,CAAO;AAAA,MAE7B,UAAA,gBAAAK,EAACC,GAAA,EAAO,QAAO,QACb,UAAA;AAAA,QAAA,gBAAAJ,EAACK,GAAA,EAAU,UAAA,OAAOzB,EAAa,IAAI,GAAE;AAAA,QACpCkB,KACC,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC,EAAKC,EAAO,mBAAmB,GAAG,mBAAmB;AAAA,YAChE,oBAAkB,OAAOR,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACpC,EAAA,CAEL;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"date_picker_date.js","sources":["../../../src/inputs/date_picker/date_picker_date.tsx"],"sourcesContent":["import { useSignalValue } from '@tcn/state';\nimport { BodyText } from '../../typography/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport type { CalendarDate } from '../../utils/calendar/calendar_date.js';\nimport type { DatePickerPresenter } from './date_picker_presenter.js';\nimport styles from './date_picker_date.module.css';\nimport { clsx } from 'clsx';\n\nexport interface DatePickerDateProps {\n date: CalendarDate;\n presenter: DatePickerPresenter;\n}\n\nexport function DatePickerDate({ presenter, date: calendarDate }: DatePickerDateProps) {\n const {\n visibleMonth,\n disabledDates,\n min: minDate,\n max: maxDate,\n } = useSignalValue(presenter.stateBroadcast);\n const selectedDate = useSignalValue(presenter.valueBroadcast);\n\n let minTime = -Infinity;\n let maxTime = Infinity;\n\n if (minDate != null) {\n let normalizedMinDate = new Date(minDate);\n normalizedMinDate.setHours(0, 0, 0, 0);\n minTime = normalizedMinDate.getTime();\n }\n\n if (maxDate != null) {\n let normalizedMaxDate = new Date(maxDate);\n normalizedMaxDate.setHours(23, 59, 59, 999);\n maxTime = normalizedMaxDate.getTime();\n }\n\n const date = new Date();\n\n const time = new Date(\n calendarDate.year,\n calendarDate.month,\n calendarDate.date\n ).getTime();\n\n const isWithinMonth = visibleMonth === calendarDate.month;\n\n const isSelected =\n selectedDate?.getMonth() === calendarDate.month &&\n selectedDate.getFullYear() === calendarDate.year &&\n selectedDate.getDate() === calendarDate.date;\n\n const isDisabled = disabledDates.some(\n d =>\n d.getMonth() === calendarDate.month &&\n d.getFullYear() === calendarDate.year &&\n d.getDate() === calendarDate.date\n );\n\n const isWithinRange = time >= minTime && time < maxTime;\n const isToday =\n date.getMonth() === calendarDate.month &&\n date.getFullYear() === calendarDate.year &&\n date.getDate() === calendarDate.date;\n\n function select() {\n const date = new Date(calendarDate.year, calendarDate.month, calendarDate.date);\n\n if (isSelected && presenter.stateBroadcast.get().showTime) {\n presenter.clear();\n return;\n }\n\n presenter.selectDate(date);\n }\n\n return (\n <button\n disabled={!isWithinMonth || isDisabled || !isWithinRange}\n className={clsx(styles['date-picker-date'], 'tcn-date-picker-date')}\n onClick={select}\n data-is-within-month={String(isWithinMonth)}\n data-is-selected={String(isSelected)}\n data-is-disabled={String(isDisabled)}\n data-is-within-range={String(isWithinRange)}\n data-is-today={String(isToday)}\n >\n <ZStack height=\"100%\">\n <BodyText>{String(calendarDate.date)}</BodyText>\n {isToday && (\n <div\n className={clsx(styles['date-picker-today'], 'tcn-date-picker-today')}\n data-is-selected={String(isSelected)}\n ></div>\n )}\n </ZStack>\n </button>\n );\n}\n"],"names":["DatePickerDate","presenter","calendarDate","visibleMonth","disabledDates","minDate","maxDate","useSignalValue","selectedDate","minTime","maxTime","normalizedMinDate","normalizedMaxDate","date","time","isWithinMonth","isSelected","isDisabled","d","isWithinRange","isToday","select","jsx","clsx","styles","jsxs","ZStack","BodyText"],"mappings":";;;;;;;;;;;;AAaO,SAASA,EAAe,EAAE,WAAAC,GAAW,MAAMC,KAAqC;AACrF,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,KAAKC;AAAA,IACL,KAAKC;AAAA,EAAA,IACHC,EAAeN,EAAU,cAAc,GACrCO,IAAeD,EAAeN,EAAU,cAAc;AAE5D,MAAIQ,IAAU,QACVC,IAAU;AAEd,MAAIL,KAAW,MAAM;AACnB,QAAIM,IAAoB,IAAI,KAAKN,CAAO;AACxC,IAAAM,EAAkB,SAAS,GAAG,GAAG,GAAG,CAAC,GACrCF,IAAUE,EAAkB,QAAA;AAAA,EAC9B;AAEA,MAAIL,KAAW,MAAM;AACnB,QAAIM,IAAoB,IAAI,KAAKN,CAAO;AACxC,IAAAM,EAAkB,SAAS,IAAI,IAAI,IAAI,GAAG,GAC1CF,IAAUE,EAAkB,QAAA;AAAA,EAC9B;AAEA,QAAMC,wBAAW,KAAA,GAEXC,IAAO,IAAI;AAAA,IACfZ,EAAa;AAAA,IACbA,EAAa;AAAA,IACbA,EAAa;AAAA,EAAA,EACb,QAAA,GAEIa,IAAgBZ,MAAiBD,EAAa,OAE9Cc,IACJR,GAAc,SAAA,MAAeN,EAAa,SAC1CM,EAAa,YAAA,MAAkBN,EAAa,QAC5CM,EAAa,QAAA,MAAcN,EAAa,MAEpCe,IAAab,EAAc;AAAA,IAC/B,CAAAc,MACEA,EAAE,SAAA,MAAehB,EAAa,SAC9BgB,EAAE,YAAA,MAAkBhB,EAAa,QACjCgB,EAAE,QAAA,MAAchB,EAAa;AAAA,EAAA,GAG3BiB,IAAgBL,KAAQL,KAAWK,IAAOJ,GAC1CU,IACJP,EAAK,SAAA,MAAeX,EAAa,SACjCW,EAAK,YAAA,MAAkBX,EAAa,QACpCW,EAAK,QAAA,MAAcX,EAAa;AAElC,WAASmB,IAAS;AAChB,UAAMR,IAAO,IAAI,KAAKX,EAAa,MAAMA,EAAa,OAAOA,EAAa,IAAI;AAE9E,QAAIc,KAAcf,EAAU,eAAe,IAAA,EAAM,UAAU;AACzD,MAAAA,EAAU,MAAA;AACV;AAAA,IACF;AAEA,IAAAA,EAAU,WAAWY,CAAI;AAAA,EAC3B;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU,CAACP,KAAiBE,KAAc,CAACE;AAAA,MAC3C,WAAWI,EAAKC,EAAO,kBAAkB,GAAG,sBAAsB;AAAA,MAClE,SAASH;AAAA,MACT,wBAAsB,OAAON,CAAa;AAAA,MAC1C,oBAAkB,OAAOC,CAAU;AAAA,MACnC,oBAAkB,OAAOC,CAAU;AAAA,MACnC,wBAAsB,OAAOE,CAAa;AAAA,MAC1C,iBAAe,OAAOC,CAAO;AAAA,MAE7B,UAAA,gBAAAK,EAACC,GAAA,EAAO,QAAO,QACb,UAAA;AAAA,QAAA,gBAAAJ,EAACK,GAAA,EAAU,UAAA,OAAOzB,EAAa,IAAI,GAAE;AAAA,QACpCkB,KACC,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC,EAAKC,EAAO,mBAAmB,GAAG,uBAAuB;AAAA,YACpE,oBAAkB,OAAOR,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACpC,EAAA,CAEL;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_day.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_day.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,kBAAkB,2CAkB9E"}
1
+ {"version":3,"file":"date_picker_day.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_day.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,kBAAkB,2CAsB9E"}
@@ -1,25 +1,33 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import "clsx";
2
+ import r from "clsx";
3
3
  import "../../body_text.module-h4XQE2pC.js";
4
4
  import "../../callout.module-D8ECmxpO.js";
5
5
  import "../../caption.module-DDq0H4xZ.js";
6
6
  import "../../footnote.module-DEyFuqOr.js";
7
- import { Headline as m } from "../../typography/headline/headline.js";
7
+ import { Headline as c } from "../../typography/headline/headline.js";
8
8
  import "../../subheadline.module-C-v7zMkQ.js";
9
9
  import "../../typography/title/title.js";
10
10
  import { ZStack as p } from "../../stacks/z_stack.js";
11
11
  import { useMemo as s } from "react";
12
- import '../../date_picker_day.css';const c = "_date-picker-day_2945845", r = { "date-picker-day": c };
13
- function g({ dayOfTheWeek: i, countryCode: t }) {
12
+ import '../../date_picker_day.css';const d = "_date-picker-day_2945845", i = { "date-picker-day": d };
13
+ function u({ dayOfTheWeek: o, countryCode: t }) {
14
14
  const e = /* @__PURE__ */ new Date();
15
- e.setDate(e.getDate() - e.getDay() + i);
16
- const o = s(
15
+ e.setDate(e.getDate() - e.getDay() + o);
16
+ const m = s(
17
17
  () => new Intl.DateTimeFormat(t, { weekday: "short" }).format(e).toLocaleUpperCase(),
18
18
  [t, e]
19
19
  );
20
- return /* @__PURE__ */ a(p, { className: r["date-picker-day"], children: /* @__PURE__ */ a(m, { size: "sm", emphasis: "faint", className: r["date-picker-day-text"], children: o[0] }) });
20
+ return /* @__PURE__ */ a(p, { className: r(i["date-picker-day"], "tcn-date-picker-day"), children: /* @__PURE__ */ a(
21
+ c,
22
+ {
23
+ size: "sm",
24
+ emphasis: "faint",
25
+ className: r(i["date-picker-day-text"], "tcn-date-picker-day-text"),
26
+ children: m[0]
27
+ }
28
+ ) });
21
29
  }
22
30
  export {
23
- g as DatePickerDay
31
+ u as DatePickerDay
24
32
  };
25
33
  //# sourceMappingURL=date_picker_day.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_day.js","sources":["../../../src/inputs/date_picker/date_picker_day.tsx"],"sourcesContent":["import { Headline } from '../../typography/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { useMemo } from 'react';\nimport styles from './date_picker_day.module.css';\n\nexport interface DatePickerDayProps {\n dayOfTheWeek: number;\n countryCode: string;\n}\n\nexport function DatePickerDay({ dayOfTheWeek, countryCode }: DatePickerDayProps) {\n const date = new Date();\n date.setDate(date.getDate() - date.getDay() + dayOfTheWeek);\n const weekdayName = useMemo(\n () =>\n new Intl.DateTimeFormat(countryCode, { weekday: 'short' })\n .format(date)\n .toLocaleUpperCase(),\n [countryCode, date]\n );\n\n return (\n <ZStack className={styles['date-picker-day']}>\n <Headline size=\"sm\" emphasis=\"faint\" className={styles['date-picker-day-text']}>\n {weekdayName[0]}\n </Headline>\n </ZStack>\n );\n}\n"],"names":["DatePickerDay","dayOfTheWeek","countryCode","date","weekdayName","useMemo","ZStack","styles","Headline"],"mappings":";;;;;;;;;;;;AAUO,SAASA,EAAc,EAAE,cAAAC,GAAc,aAAAC,KAAmC;AAC/E,QAAMC,wBAAW,KAAA;AACjB,EAAAA,EAAK,QAAQA,EAAK,QAAA,IAAYA,EAAK,OAAA,IAAWF,CAAY;AAC1D,QAAMG,IAAcC;AAAA,IAClB,MACE,IAAI,KAAK,eAAeH,GAAa,EAAE,SAAS,QAAA,CAAS,EACtD,OAAOC,CAAI,EACX,kBAAA;AAAA,IACL,CAACD,GAAaC,CAAI;AAAA,EAAA;AAGpB,2BACGG,GAAA,EAAO,WAAWC,EAAO,iBAAiB,GACzC,4BAACC,GAAA,EAAS,MAAK,MAAK,UAAS,SAAQ,WAAWD,EAAO,sBAAsB,GAC1E,UAAAH,EAAY,CAAC,GAChB,GACF;AAEJ;"}
1
+ {"version":3,"file":"date_picker_day.js","sources":["../../../src/inputs/date_picker/date_picker_day.tsx"],"sourcesContent":["import { Headline } from '../../typography/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { useMemo } from 'react';\nimport styles from './date_picker_day.module.css';\nimport clsx from 'clsx';\n\nexport interface DatePickerDayProps {\n dayOfTheWeek: number;\n countryCode: string;\n}\n\nexport function DatePickerDay({ dayOfTheWeek, countryCode }: DatePickerDayProps) {\n const date = new Date();\n date.setDate(date.getDate() - date.getDay() + dayOfTheWeek);\n const weekdayName = useMemo(\n () =>\n new Intl.DateTimeFormat(countryCode, { weekday: 'short' })\n .format(date)\n .toLocaleUpperCase(),\n [countryCode, date]\n );\n\n return (\n <ZStack className={clsx(styles['date-picker-day'], 'tcn-date-picker-day')}>\n <Headline\n size=\"sm\"\n emphasis=\"faint\"\n className={clsx(styles['date-picker-day-text'], 'tcn-date-picker-day-text')}\n >\n {weekdayName[0]}\n </Headline>\n </ZStack>\n );\n}\n"],"names":["DatePickerDay","dayOfTheWeek","countryCode","date","weekdayName","useMemo","jsx","ZStack","clsx","styles","Headline"],"mappings":";;;;;;;;;;;;AAWO,SAASA,EAAc,EAAE,cAAAC,GAAc,aAAAC,KAAmC;AAC/E,QAAMC,wBAAW,KAAA;AACjB,EAAAA,EAAK,QAAQA,EAAK,QAAA,IAAYA,EAAK,OAAA,IAAWF,CAAY;AAC1D,QAAMG,IAAcC;AAAA,IAClB,MACE,IAAI,KAAK,eAAeH,GAAa,EAAE,SAAS,QAAA,CAAS,EACtD,OAAOC,CAAI,EACX,kBAAA;AAAA,IACL,CAACD,GAAaC,CAAI;AAAA,EAAA;AAGpB,SACE,gBAAAG,EAACC,KAAO,WAAWC,EAAKC,EAAO,iBAAiB,GAAG,qBAAqB,GACtE,UAAA,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAS;AAAA,MACT,WAAWF,EAAKC,EAAO,sBAAsB,GAAG,0BAA0B;AAAA,MAEzE,YAAY,CAAC;AAAA,IAAA;AAAA,EAAA,GAElB;AAEJ;"}
@@ -39,7 +39,7 @@ function J({ presenter: t, countryCode: o }) {
39
39
  }, t.stateBroadcast), /* @__PURE__ */ c(
40
40
  l,
41
41
  {
42
- className: O(R["date-picker-header"], "date-picker-header"),
42
+ className: O(R["date-picker-header"], "tcn-date-picker-header"),
43
43
  minWidth: "35px",
44
44
  width: "100%",
45
45
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_header.js","sources":["../../../src/inputs/date_picker/date_picker_header.tsx"],"sourcesContent":["import { useSignalValue, useSignalValueEffect } from '@tcn/state';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport React, { useMemo, useRef } from 'react';\nimport { SlimButton } from '../../actions/index.js';\nimport { getMonthsOfYear } from '../../utils/calendar/get_months_of_year.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { Select } from '../select/select.js';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { Option, OptionProps } from '../options/option.js';\nimport { DatePickerState } from './date_picker_presenter.js';\nimport styles from './date_picker_header.module.css';\nimport { clsx } from 'clsx';\nimport { DatePickerYearInput } from './date_picker_year_input.js';\n\nfunction makeMonthsOptions(countryCode: string): React.ReactElement<OptionProps>[] {\n const shortMonths = getMonthsOfYear(countryCode, 'short');\n const longMonths = getMonthsOfYear(countryCode, 'long');\n\n return shortMonths.map((m, index) => {\n return (\n <Option key={index} value={String(index)} label={m} keywords={[m]}>\n {longMonths[index]}\n </Option>\n );\n });\n}\n\nexport interface DatePickerHeaderProps {\n presenter: DatePickerPresenter;\n countryCode: string;\n}\n\nexport function DatePickerHeader({ presenter, countryCode }: DatePickerHeaderProps) {\n const state = useSignalValue(presenter.stateBroadcast);\n const yearInputRef = useRef<HTMLInputElement>(null);\n\n function selectMonth(value: string) {\n presenter.setVisibleMonth(Number(value));\n }\n\n function previous() {\n return presenter.setVisibleMonth(presenter.stateBroadcast.get().visibleMonth - 1);\n }\n\n function next() {\n return presenter.setVisibleMonth(presenter.stateBroadcast.get().visibleMonth + 1);\n }\n\n const monthsOptions = useMemo(() => {\n return makeMonthsOptions(countryCode);\n }, [countryCode]);\n\n useSignalValueEffect((state: DatePickerState) => {\n const input = yearInputRef.current;\n if (input && input.value !== String(state.visibleYear)) {\n input.value = String(state.visibleYear);\n }\n }, presenter.stateBroadcast);\n\n return (\n <HStack\n className={clsx(styles['date-picker-header'], 'date-picker-header')}\n minWidth=\"35px\"\n width=\"100%\"\n >\n <SlimButton\n disabled={!state.canNavigateToPreviousMonth}\n hierarchy=\"tertiary\"\n onClick={previous}\n >\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </SlimButton>\n <Spacer />\n <HStack hAlign=\"center\" gap=\"4px\" width=\"auto\">\n <Select\n hierarchy=\"tertiary\"\n width=\"auto\"\n maxWidth=\"150px\"\n value={String(state.visibleMonth)}\n onChange={selectMonth}\n >\n {monthsOptions}\n </Select>\n <DatePickerYearInput presenter={presenter} />\n </HStack>\n <Spacer />\n <SlimButton\n disabled={!state.canNavigateToNextMonth}\n hierarchy=\"tertiary\"\n onClick={next}\n >\n <ChevronRightIcon flipOnRtl size=\"md\" />\n </SlimButton>\n </HStack>\n );\n}\n"],"names":["makeMonthsOptions","countryCode","shortMonths","getMonthsOfYear","longMonths","m","index","jsx","Option","DatePickerHeader","presenter","state","useSignalValue","yearInputRef","useRef","selectMonth","value","previous","next","monthsOptions","useMemo","useSignalValueEffect","input","jsxs","HStack","clsx","styles","SlimButton","ChevronLeftIcon","Spacer","Select","DatePickerYearInput","ChevronRightIcon"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,SAASA,EAAkBC,GAAwD;AACjF,QAAMC,IAAcC,EAAgBF,GAAa,OAAO,GAClDG,IAAaD,EAAgBF,GAAa,MAAM;AAEtD,SAAOC,EAAY,IAAI,CAACG,GAAGC,MAEvB,gBAAAC,EAACC,GAAA,EAAmB,OAAO,OAAOF,CAAK,GAAG,OAAOD,GAAG,UAAU,CAACA,CAAC,GAC7D,UAAAD,EAAWE,CAAK,KADNA,CAEb,CAEH;AACH;AAOO,SAASG,EAAiB,EAAE,WAAAC,GAAW,aAAAT,KAAsC;AAClF,QAAMU,IAAQC,EAAeF,EAAU,cAAc,GAC/CG,IAAeC,EAAyB,IAAI;AAElD,WAASC,EAAYC,GAAe;AAClC,IAAAN,EAAU,gBAAgB,OAAOM,CAAK,CAAC;AAAA,EACzC;AAEA,WAASC,IAAW;AAClB,WAAOP,EAAU,gBAAgBA,EAAU,eAAe,IAAA,EAAM,eAAe,CAAC;AAAA,EAClF;AAEA,WAASQ,IAAO;AACd,WAAOR,EAAU,gBAAgBA,EAAU,eAAe,IAAA,EAAM,eAAe,CAAC;AAAA,EAClF;AAEA,QAAMS,IAAgBC,EAAQ,MACrBpB,EAAkBC,CAAW,GACnC,CAACA,CAAW,CAAC;AAEhB,SAAAoB,EAAqB,CAACV,MAA2B;AAC/C,UAAMW,IAAQT,EAAa;AAC3B,IAAIS,KAASA,EAAM,UAAU,OAAOX,EAAM,WAAW,MACnDW,EAAM,QAAQ,OAAOX,EAAM,WAAW;AAAA,EAE1C,GAAGD,EAAU,cAAc,GAGzB,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKC,EAAO,oBAAoB,GAAG,oBAAoB;AAAA,MAClE,UAAS;AAAA,MACT,OAAM;AAAA,MAEN,UAAA;AAAA,QAAA,gBAAAnB;AAAA,UAACoB;AAAA,UAAA;AAAA,YACC,UAAU,CAAChB,EAAM;AAAA,YACjB,WAAU;AAAA,YACV,SAASM;AAAA,YAET,UAAA,gBAAAV,EAACqB,GAAA,EAAgB,WAAS,IAAC,MAAK,KAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEtCC,GAAA,EAAO;AAAA,0BACPL,GAAA,EAAO,QAAO,UAAS,KAAI,OAAM,OAAM,QACtC,UAAA;AAAA,UAAA,gBAAAjB;AAAA,YAACuB;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAM;AAAA,cACN,UAAS;AAAA,cACT,OAAO,OAAOnB,EAAM,YAAY;AAAA,cAChC,UAAUI;AAAA,cAET,UAAAI;AAAA,YAAA;AAAA,UAAA;AAAA,UAEH,gBAAAZ,EAACwB,KAAoB,WAAArB,EAAA,CAAsB;AAAA,QAAA,GAC7C;AAAA,0BACCmB,GAAA,EAAO;AAAA,QACR,gBAAAtB;AAAA,UAACoB;AAAA,UAAA;AAAA,YACC,UAAU,CAAChB,EAAM;AAAA,YACjB,WAAU;AAAA,YACV,SAASO;AAAA,YAET,UAAA,gBAAAX,EAACyB,GAAA,EAAiB,WAAS,IAAC,MAAK,KAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACxC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"date_picker_header.js","sources":["../../../src/inputs/date_picker/date_picker_header.tsx"],"sourcesContent":["import { useSignalValue, useSignalValueEffect } from '@tcn/state';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport React, { useMemo, useRef } from 'react';\nimport { SlimButton } from '../../actions/index.js';\nimport { getMonthsOfYear } from '../../utils/calendar/get_months_of_year.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { Select } from '../select/select.js';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { Option, OptionProps } from '../options/option.js';\nimport { DatePickerState } from './date_picker_presenter.js';\nimport styles from './date_picker_header.module.css';\nimport { clsx } from 'clsx';\nimport { DatePickerYearInput } from './date_picker_year_input.js';\n\nfunction makeMonthsOptions(countryCode: string): React.ReactElement<OptionProps>[] {\n const shortMonths = getMonthsOfYear(countryCode, 'short');\n const longMonths = getMonthsOfYear(countryCode, 'long');\n\n return shortMonths.map((m, index) => {\n return (\n <Option key={index} value={String(index)} label={m} keywords={[m]}>\n {longMonths[index]}\n </Option>\n );\n });\n}\n\nexport interface DatePickerHeaderProps {\n presenter: DatePickerPresenter;\n countryCode: string;\n}\n\nexport function DatePickerHeader({ presenter, countryCode }: DatePickerHeaderProps) {\n const state = useSignalValue(presenter.stateBroadcast);\n const yearInputRef = useRef<HTMLInputElement>(null);\n\n function selectMonth(value: string) {\n presenter.setVisibleMonth(Number(value));\n }\n\n function previous() {\n return presenter.setVisibleMonth(presenter.stateBroadcast.get().visibleMonth - 1);\n }\n\n function next() {\n return presenter.setVisibleMonth(presenter.stateBroadcast.get().visibleMonth + 1);\n }\n\n const monthsOptions = useMemo(() => {\n return makeMonthsOptions(countryCode);\n }, [countryCode]);\n\n useSignalValueEffect((state: DatePickerState) => {\n const input = yearInputRef.current;\n if (input && input.value !== String(state.visibleYear)) {\n input.value = String(state.visibleYear);\n }\n }, presenter.stateBroadcast);\n\n return (\n <HStack\n className={clsx(styles['date-picker-header'], 'tcn-date-picker-header')}\n minWidth=\"35px\"\n width=\"100%\"\n >\n <SlimButton\n disabled={!state.canNavigateToPreviousMonth}\n hierarchy=\"tertiary\"\n onClick={previous}\n >\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </SlimButton>\n <Spacer />\n <HStack hAlign=\"center\" gap=\"4px\" width=\"auto\">\n <Select\n hierarchy=\"tertiary\"\n width=\"auto\"\n maxWidth=\"150px\"\n value={String(state.visibleMonth)}\n onChange={selectMonth}\n >\n {monthsOptions}\n </Select>\n <DatePickerYearInput presenter={presenter} />\n </HStack>\n <Spacer />\n <SlimButton\n disabled={!state.canNavigateToNextMonth}\n hierarchy=\"tertiary\"\n onClick={next}\n >\n <ChevronRightIcon flipOnRtl size=\"md\" />\n </SlimButton>\n </HStack>\n );\n}\n"],"names":["makeMonthsOptions","countryCode","shortMonths","getMonthsOfYear","longMonths","m","index","jsx","Option","DatePickerHeader","presenter","state","useSignalValue","yearInputRef","useRef","selectMonth","value","previous","next","monthsOptions","useMemo","useSignalValueEffect","input","jsxs","HStack","clsx","styles","SlimButton","ChevronLeftIcon","Spacer","Select","DatePickerYearInput","ChevronRightIcon"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,SAASA,EAAkBC,GAAwD;AACjF,QAAMC,IAAcC,EAAgBF,GAAa,OAAO,GAClDG,IAAaD,EAAgBF,GAAa,MAAM;AAEtD,SAAOC,EAAY,IAAI,CAACG,GAAGC,MAEvB,gBAAAC,EAACC,GAAA,EAAmB,OAAO,OAAOF,CAAK,GAAG,OAAOD,GAAG,UAAU,CAACA,CAAC,GAC7D,UAAAD,EAAWE,CAAK,KADNA,CAEb,CAEH;AACH;AAOO,SAASG,EAAiB,EAAE,WAAAC,GAAW,aAAAT,KAAsC;AAClF,QAAMU,IAAQC,EAAeF,EAAU,cAAc,GAC/CG,IAAeC,EAAyB,IAAI;AAElD,WAASC,EAAYC,GAAe;AAClC,IAAAN,EAAU,gBAAgB,OAAOM,CAAK,CAAC;AAAA,EACzC;AAEA,WAASC,IAAW;AAClB,WAAOP,EAAU,gBAAgBA,EAAU,eAAe,IAAA,EAAM,eAAe,CAAC;AAAA,EAClF;AAEA,WAASQ,IAAO;AACd,WAAOR,EAAU,gBAAgBA,EAAU,eAAe,IAAA,EAAM,eAAe,CAAC;AAAA,EAClF;AAEA,QAAMS,IAAgBC,EAAQ,MACrBpB,EAAkBC,CAAW,GACnC,CAACA,CAAW,CAAC;AAEhB,SAAAoB,EAAqB,CAACV,MAA2B;AAC/C,UAAMW,IAAQT,EAAa;AAC3B,IAAIS,KAASA,EAAM,UAAU,OAAOX,EAAM,WAAW,MACnDW,EAAM,QAAQ,OAAOX,EAAM,WAAW;AAAA,EAE1C,GAAGD,EAAU,cAAc,GAGzB,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKC,EAAO,oBAAoB,GAAG,wBAAwB;AAAA,MACtE,UAAS;AAAA,MACT,OAAM;AAAA,MAEN,UAAA;AAAA,QAAA,gBAAAnB;AAAA,UAACoB;AAAA,UAAA;AAAA,YACC,UAAU,CAAChB,EAAM;AAAA,YACjB,WAAU;AAAA,YACV,SAASM;AAAA,YAET,UAAA,gBAAAV,EAACqB,GAAA,EAAgB,WAAS,IAAC,MAAK,KAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEtCC,GAAA,EAAO;AAAA,0BACPL,GAAA,EAAO,QAAO,UAAS,KAAI,OAAM,OAAM,QACtC,UAAA;AAAA,UAAA,gBAAAjB;AAAA,YAACuB;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAM;AAAA,cACN,UAAS;AAAA,cACT,OAAO,OAAOnB,EAAM,YAAY;AAAA,cAChC,UAAUI;AAAA,cAET,UAAAI;AAAA,YAAA;AAAA,UAAA;AAAA,UAEH,gBAAAZ,EAACwB,KAAoB,WAAArB,EAAA,CAAsB;AAAA,QAAA,GAC7C;AAAA,0BACCmB,GAAA,EAAO;AAAA,QACR,gBAAAtB;AAAA,UAACoB;AAAA,UAAA;AAAA,YACC,UAAU,CAAChB,EAAM;AAAA,YACjB,WAAU;AAAA,YACV,SAASO;AAAA,YAET,UAAA,gBAAAX,EAACyB,GAAA,EAAiB,WAAS,IAAC,MAAK,KAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACxC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -35,7 +35,7 @@ import '../../date_picker_input.css';const U = "_button_f404820", X = "_popover_
35
35
  onTimeSelected: w,
36
36
  ..._
37
37
  }, b) => {
38
- const [n, a] = L(null), v = n != null, i = M(null), p = V((t) => t.closest(".suggestion-list") != null, []), C = W(() => {
38
+ const [n, a] = L(null), v = n != null, i = M(null), p = V((t) => t.closest(".tcn-suggestion-list") != null, []), C = W(() => {
39
39
  const t = {
40
40
  year: "numeric",
41
41
  month: "short",
@@ -72,7 +72,7 @@ import '../../date_picker_input.css';const U = "_button_f404820", X = "_popover_
72
72
  J,
73
73
  {
74
74
  ref: b,
75
- className: m(f.button, "select"),
75
+ className: m(f.button, "tcn-select"),
76
76
  hAlign: "start",
77
77
  disabled: l,
78
78
  hierarchy: A,
@@ -103,7 +103,7 @@ import '../../date_picker_input.css';const U = "_button_f404820", X = "_popover_
103
103
  G,
104
104
  {
105
105
  padding: "8px",
106
- className: m(f.popover, "date-picker-popover"),
106
+ className: m(f.popover, "tcn-date-picker-popover"),
107
107
  onKeyDown: O,
108
108
  children: [
109
109
  /* @__PURE__ */ o(
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_input.js","sources":["../../../src/inputs/date_picker/date_picker_input.tsx"],"sourcesContent":["import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Hierarchy } from '../../utils/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\nimport { clsx } from 'clsx';\nimport { HTMLAttributes } from 'react';\nimport { Button } from '../../actions/index.js';\nimport { DatePicker } from './date_picker.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { FocusRedirect } from '../../utils/index.js';\nimport styles from './date_picker_input.module.css';\n\nexport interface DatePickerInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: Date | null;\n disabled?: boolean;\n onChange?: (date: Date | null) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n showTime?: boolean;\n timeIntervalInMinutes?: number;\n disabledDates?: Date[] | undefined;\n countryCode?: string;\n renderActions?: (datePickerPresenter: DatePickerPresenter) => React.ReactNode;\n min?: Date;\n max?: Date;\n hierarchy?: Hierarchy;\n selectDateMessage?: string;\n onTimeSelected?: (hour: number, minutes: number, seconds: number) => void;\n}\n\nexport const DatePickerInput = React.forwardRef<HTMLButtonElement, DatePickerInputProps>(\n (\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 countryCode,\n renderActions,\n onTimeSelected,\n ...props\n }: DatePickerInputProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\n\n const isException = useCallback((target: HTMLElement) => {\n return target.closest('.suggestion-list') != null;\n }, []);\n\n const formatter = useMemo(() => {\n const formatOptions: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n };\n\n if (showTime) {\n formatOptions.hour = 'numeric';\n formatOptions.minute = '2-digit';\n formatOptions.hour12 = true;\n }\n\n return new Intl.DateTimeFormat(countryCode, formatOptions);\n }, [countryCode, showTime]);\n\n const formattedDate = value != null ? formatter.format(value) : selectDateMessage;\n\n function openPicker(e: React.MouseEvent<HTMLButtonElement>) {\n setAnchorElement(e.currentTarget);\n }\n\n function closePicker() {\n setAnchorElement(null);\n }\n\n useLayoutEffect(() => {\n requestAnimationFrame(() => {\n if (anchorElement != null) {\n pickerRef.current && pickerRef.current.focus();\n }\n });\n }, [anchorElement]);\n\n function processKeyInput(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closePicker();\n }\n }\n\n function handleRedirect() {\n const picker = pickerRef.current;\n\n if (picker != null) {\n picker.focus();\n }\n }\n\n function dateSelected(date: Date | null) {\n onChange?.(date);\n !showTime && closePicker();\n }\n\n function timeSelected(hour: number, minutes: number, seconds: number) {\n onTimeSelected?.(hour, minutes, seconds);\n closePicker();\n }\n\n return (\n <>\n <Button\n ref={ref}\n className={clsx(styles.button, 'select')}\n hAlign=\"start\"\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width={width}\n maxWidth={maxWidth}\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </Button>\n <Popper\n anchorElement={anchorElement}\n disableClickAway\n veil\n onVeilClick={closePicker}\n onClose={closePicker}\n verticalAnchor=\"bottom\"\n horizontalAnchor=\"start\"\n verticalOrigin=\"top\"\n horizontalOrigin=\"start\"\n open={isOpen}\n isClickAwayException={isException}\n isScrollAwayException={isException}\n restoreFocus\n >\n <ZStack\n padding=\"8px\"\n className={clsx(styles.popover, 'date-picker-popover')}\n onKeyDown={processKeyInput}\n >\n <DatePicker\n ref={pickerRef}\n value={value}\n onChange={dateSelected}\n min={min}\n max={max}\n showTime={showTime}\n onError={onError}\n disabled={disabled}\n disabledDates={disabledDates}\n countryCode={countryCode}\n renderActions={renderActions}\n onTimeSelected={timeSelected}\n timeIntervalInMinutes={timeIntervalInMinutes}\n />\n <FocusRedirect onRedirect={handleRedirect} />\n </ZStack>\n </Popper>\n </>\n );\n }\n);\n"],"names":["DatePickerInput","React","value","onChange","onError","min","max","disabled","width","maxWidth","minWidth","showTime","timeIntervalInMinutes","hierarchy","disabledDates","selectDateMessage","countryCode","renderActions","onTimeSelected","props","ref","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","isException","useCallback","target","formatter","useMemo","formatOptions","formattedDate","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","handleRedirect","picker","dateSelected","date","timeSelected","hour","minutes","seconds","jsxs","Fragment","jsx","Button","clsx","styles","Popper","ZStack","DatePicker","FocusRedirect"],"mappings":"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"}
1
+ {"version":3,"file":"date_picker_input.js","sources":["../../../src/inputs/date_picker/date_picker_input.tsx"],"sourcesContent":["import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Hierarchy } from '../../utils/index.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\nimport { clsx } from 'clsx';\nimport { HTMLAttributes } from 'react';\nimport { Button } from '../../actions/index.js';\nimport { DatePicker } from './date_picker.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { FocusRedirect } from '../../utils/index.js';\nimport styles from './date_picker_input.module.css';\n\nexport interface DatePickerInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: Date | null;\n disabled?: boolean;\n onChange?: (date: Date | null) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n showTime?: boolean;\n timeIntervalInMinutes?: number;\n disabledDates?: Date[] | undefined;\n countryCode?: string;\n renderActions?: (datePickerPresenter: DatePickerPresenter) => React.ReactNode;\n min?: Date;\n max?: Date;\n hierarchy?: Hierarchy;\n selectDateMessage?: string;\n onTimeSelected?: (hour: number, minutes: number, seconds: number) => void;\n}\n\nexport const DatePickerInput = React.forwardRef<HTMLButtonElement, DatePickerInputProps>(\n (\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 countryCode,\n renderActions,\n onTimeSelected,\n ...props\n }: DatePickerInputProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\n\n const isException = useCallback((target: HTMLElement) => {\n return target.closest('.tcn-suggestion-list') != null;\n }, []);\n\n const formatter = useMemo(() => {\n const formatOptions: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n };\n\n if (showTime) {\n formatOptions.hour = 'numeric';\n formatOptions.minute = '2-digit';\n formatOptions.hour12 = true;\n }\n\n return new Intl.DateTimeFormat(countryCode, formatOptions);\n }, [countryCode, showTime]);\n\n const formattedDate = value != null ? formatter.format(value) : selectDateMessage;\n\n function openPicker(e: React.MouseEvent<HTMLButtonElement>) {\n setAnchorElement(e.currentTarget);\n }\n\n function closePicker() {\n setAnchorElement(null);\n }\n\n useLayoutEffect(() => {\n requestAnimationFrame(() => {\n if (anchorElement != null) {\n pickerRef.current && pickerRef.current.focus();\n }\n });\n }, [anchorElement]);\n\n function processKeyInput(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closePicker();\n }\n }\n\n function handleRedirect() {\n const picker = pickerRef.current;\n\n if (picker != null) {\n picker.focus();\n }\n }\n\n function dateSelected(date: Date | null) {\n onChange?.(date);\n !showTime && closePicker();\n }\n\n function timeSelected(hour: number, minutes: number, seconds: number) {\n onTimeSelected?.(hour, minutes, seconds);\n closePicker();\n }\n\n return (\n <>\n <Button\n ref={ref}\n className={clsx(styles.button, 'tcn-select')}\n hAlign=\"start\"\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width={width}\n maxWidth={maxWidth}\n {...props}\n >\n <span className=\"ellipsis\">{formattedDate}</span>\n </Button>\n <Popper\n anchorElement={anchorElement}\n disableClickAway\n veil\n onVeilClick={closePicker}\n onClose={closePicker}\n verticalAnchor=\"bottom\"\n horizontalAnchor=\"start\"\n verticalOrigin=\"top\"\n horizontalOrigin=\"start\"\n open={isOpen}\n isClickAwayException={isException}\n isScrollAwayException={isException}\n restoreFocus\n >\n <ZStack\n padding=\"8px\"\n className={clsx(styles.popover, 'tcn-date-picker-popover')}\n onKeyDown={processKeyInput}\n >\n <DatePicker\n ref={pickerRef}\n value={value}\n onChange={dateSelected}\n min={min}\n max={max}\n showTime={showTime}\n onError={onError}\n disabled={disabled}\n disabledDates={disabledDates}\n countryCode={countryCode}\n renderActions={renderActions}\n onTimeSelected={timeSelected}\n timeIntervalInMinutes={timeIntervalInMinutes}\n />\n <FocusRedirect onRedirect={handleRedirect} />\n </ZStack>\n </Popper>\n </>\n );\n }\n);\n"],"names":["DatePickerInput","React","value","onChange","onError","min","max","disabled","width","maxWidth","minWidth","showTime","timeIntervalInMinutes","hierarchy","disabledDates","selectDateMessage","countryCode","renderActions","onTimeSelected","props","ref","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","isException","useCallback","target","formatter","useMemo","formatOptions","formattedDate","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","handleRedirect","picker","dateSelected","date","timeSelected","hour","minutes","seconds","jsxs","Fragment","jsx","Button","clsx","styles","Popper","ZStack","DatePicker","FocusRedirect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_time_selector.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_time_selector.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,4BAA4B,EAAE,MAAM,CAAC;IACrC,4BAA4B,EAAE,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,iBAAiB,EACjB,GAAG,EACH,GAAG,EACH,4BAA4B,EAC5B,4BAA4B,EAC5B,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,2BAA2B,2CA6E7B"}
1
+ {"version":3,"file":"date_picker_time_selector.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_time_selector.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,4BAA4B,EAAE,MAAM,CAAC;IACrC,4BAA4B,EAAE,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,iBAAiB,EACjB,GAAG,EACH,GAAG,EACH,4BAA4B,EAC5B,4BAA4B,EAC5B,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,2BAA2B,2CAgF7B"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as o, jsxs as N } from "react/jsx-runtime";
2
2
  import { VStack as x } from "../../stacks/v_stack.js";
3
3
  import { ZStack as C } from "../../stacks/z_stack.js";
4
- import { clsx as m } from "clsx";
4
+ import { clsx as n } from "clsx";
5
5
  import "../../actions/button/base_button/base_button.js";
6
6
  import "../../actions/button/button_group/button_group.js";
7
7
  import "../../actions/button/slim_button/slim_button.js";
@@ -16,7 +16,7 @@ import "../../headline.module-BiwHBtGf.js";
16
16
  import "../../subheadline.module-C-v7zMkQ.js";
17
17
  import "../../typography/title/title.js";
18
18
  import { ClockIcon as j } from "@tcn/icons/clock_icon.js";
19
- import '../../date_picker_time_selector.css';const z = "_time-box_f3145be", P = "_time-box-title_6cc801b", Z = "_time-box-title-container_22add52", v = "_selected-time_33e3aa3", s = { "time-box": z, "time-box-title": P, "time-box-title-container": Z, "selected-time": v };
19
+ import '../../date_picker_time_selector.css';const z = "_time-box_f3145be", P = "_time-box-title_6cc801b", Z = "_time-box-title-container_22add52", v = "_selected-time_33e3aa3", m = { "time-box": z, "time-box-title": P, "time-box-title-container": Z, "selected-time": v };
20
20
  function it({
21
21
  origin: e,
22
22
  intervalInMinutes: f,
@@ -28,10 +28,10 @@ function it({
28
28
  disabled: l,
29
29
  height: _
30
30
  }) {
31
- const n = f * 1e3 * 60, w = 24 * 1e3 * 60 * 60 / n, a = new Date(e || /* @__PURE__ */ new Date()), d = [], y = g?.getTime() ?? -1 / 0, M = b?.getTime() ?? 1 / 0;
31
+ const s = f * 1e3 * 60, w = 24 * 1e3 * 60 * 60 / s, a = new Date(e || /* @__PURE__ */ new Date()), d = [], y = g?.getTime() ?? -1 / 0, M = b?.getTime() ?? 1 / 0;
32
32
  a.setHours(0, 0, 0, 0);
33
- let p = a.getTime(), r = 0;
34
- for (let c = 0; c < w; c++) {
33
+ let p = a.getTime(), c = 0;
34
+ for (let r = 0; r < w; r++) {
35
35
  const t = new Date(p);
36
36
  let i = t.getHours() % 12;
37
37
  const H = t.getMinutes(), k = t.getHours() >= 12 ? "PM" : "AM";
@@ -41,16 +41,16 @@ function it({
41
41
  {
42
42
  width: "flex",
43
43
  hierarchy: "tertiary",
44
- className: m("selected-time", B && s["selected-time"]),
44
+ className: n("tcn-selected-time", B && m["selected-time"]),
45
45
  disabled: e == null || l || D,
46
46
  onClick: () => {
47
47
  T(t.getHours(), t.getMinutes(), t.getSeconds());
48
48
  },
49
49
  children: `${i.toString().padStart(2, "0")}:${H.toString().padStart(2, "0")} ${k}`
50
50
  },
51
- c
51
+ r
52
52
  );
53
- r >= h && r <= S && d.push(I), p += n, r += n;
53
+ c >= h && c <= S && d.push(I), p += s, c += s;
54
54
  }
55
55
  return /* @__PURE__ */ N(
56
56
  x,
@@ -58,13 +58,16 @@ function it({
58
58
  width: "auto",
59
59
  height: _,
60
60
  "data-is-disabled": l || e == null,
61
- className: m(s["time-box"], "time-box"),
61
+ className: n(m["time-box"], "tcn-time-box"),
62
62
  children: [
63
63
  /* @__PURE__ */ o(
64
64
  C,
65
65
  {
66
- className: m(s["time-box-title-container"], "time-box-title-container"),
67
- children: /* @__PURE__ */ o($, { className: m(s["time-box-title"], "time-box-title"), children: /* @__PURE__ */ o(j, { size: "lg" }) })
66
+ className: n(
67
+ m["time-box-title-container"],
68
+ "tcn-time-box-title-container"
69
+ ),
70
+ children: /* @__PURE__ */ o($, { className: n(m["time-box-title"], "tcn-time-box-title"), children: /* @__PURE__ */ o(j, { size: "lg" }) })
68
71
  }
69
72
  ),
70
73
  /* @__PURE__ */ o(
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_time_selector.js","sources":["../../../src/inputs/date_picker/date_picker_time_selector.tsx"],"sourcesContent":["import { VStack } from '../../stacks/v_stack.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { clsx } from 'clsx';\nimport React from 'react';\nimport { Button } from '../../actions/index.js';\nimport styles from './date_picker_time_selector.module.css';\nimport { BodyText } from '../../typography/index.js';\nimport { ClockIcon } from '@tcn/icons/clock_icon.js';\n\nexport interface DatePickerTimeSelectorProps {\n origin: Date | null;\n intervalInMinutes: number;\n max: Date | null;\n min: Date | null;\n minVisibleTimeInMilliseconds: number;\n maxVisibleTimeInMilliseconds: number;\n onSelect: (hours: number, minutes: number, seconds: number) => void;\n disabled?: boolean;\n height?: string;\n}\n\nexport function DatePickerTimeSelector({\n origin,\n intervalInMinutes,\n max,\n min,\n minVisibleTimeInMilliseconds,\n maxVisibleTimeInMilliseconds,\n onSelect,\n disabled,\n height,\n}: DatePickerTimeSelectorProps) {\n const stepInMilliseconds = intervalInMinutes * 1000 * 60;\n const amountOfSteps = (24 * 1000 * 60 * 60) / stepInMilliseconds;\n const normalizedDate = new Date(origin || new Date());\n const options: React.ReactElement[] = [];\n const minTime = min?.getTime() ?? -Infinity;\n const maxTime = max?.getTime() ?? Infinity;\n\n normalizedDate.setHours(0, 0, 0, 0);\n let offset = normalizedDate.getTime();\n let offsetFromZero = 0;\n\n for (let x = 0; x < amountOfSteps; x++) {\n const date = new Date(offset);\n\n let hour = date.getHours() % 12;\n const minute = date.getMinutes();\n const meridiem = date.getHours() >= 12 ? 'PM' : 'AM';\n hour = hour === 0 ? 12 : hour;\n\n const isSelected =\n origin != null &&\n date.getHours() === origin.getHours() &&\n date.getMinutes() === origin.getMinutes() &&\n date.getSeconds() === origin.getSeconds();\n\n const time = date.getTime();\n const isOutOfRange = time < minTime || time > maxTime;\n\n const button = (\n <Button\n key={x}\n width=\"flex\"\n hierarchy=\"tertiary\"\n className={clsx('selected-time', isSelected && styles['selected-time'])}\n disabled={origin == null || disabled || isOutOfRange}\n onClick={() => {\n onSelect(date.getHours(), date.getMinutes(), date.getSeconds());\n }}\n >{`${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')} ${meridiem}`}</Button>\n );\n\n if (\n offsetFromZero >= minVisibleTimeInMilliseconds &&\n offsetFromZero <= maxVisibleTimeInMilliseconds\n ) {\n options.push(button);\n }\n\n offset += stepInMilliseconds;\n offsetFromZero += stepInMilliseconds;\n }\n\n return (\n <VStack\n width=\"auto\"\n height={height}\n data-is-disabled={disabled || origin == null}\n className={clsx(styles['time-box'], 'time-box')}\n >\n <ZStack\n className={clsx(styles['time-box-title-container'], 'time-box-title-container')}\n >\n <BodyText className={clsx(styles['time-box-title'], 'time-box-title')}>\n <ClockIcon size=\"lg\" />\n </BodyText>\n </ZStack>\n <VStack\n width=\"auto\"\n height=\"flex\"\n overflowY=\"auto\"\n style={{ paddingInline: '4px' }}\n >\n {options}\n </VStack>\n </VStack>\n );\n}\n"],"names":["DatePickerTimeSelector","origin","intervalInMinutes","max","min","minVisibleTimeInMilliseconds","maxVisibleTimeInMilliseconds","onSelect","disabled","height","stepInMilliseconds","amountOfSteps","normalizedDate","options","minTime","maxTime","offset","offsetFromZero","x","date","hour","minute","meridiem","isSelected","time","isOutOfRange","button","jsx","Button","clsx","styles","jsxs","VStack","ZStack","BodyText","ClockIcon"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBO,SAASA,GAAuB;AAAA,EACrC,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AACF,GAAgC;AAC9B,QAAMC,IAAqBR,IAAoB,MAAO,IAChDS,IAAiB,KAAK,MAAO,KAAK,KAAMD,GACxCE,IAAiB,IAAI,KAAKX,KAAU,oBAAI,MAAM,GAC9CY,IAAgC,CAAA,GAChCC,IAAUV,GAAK,QAAA,KAAa,QAC5BW,IAAUZ,GAAK,QAAA,KAAa;AAElC,EAAAS,EAAe,SAAS,GAAG,GAAG,GAAG,CAAC;AAClC,MAAII,IAASJ,EAAe,QAAA,GACxBK,IAAiB;AAErB,WAASC,IAAI,GAAGA,IAAIP,GAAeO,KAAK;AACtC,UAAMC,IAAO,IAAI,KAAKH,CAAM;AAE5B,QAAII,IAAOD,EAAK,SAAA,IAAa;AAC7B,UAAME,IAASF,EAAK,WAAA,GACdG,IAAWH,EAAK,SAAA,KAAc,KAAK,OAAO;AAChD,IAAAC,IAAOA,MAAS,IAAI,KAAKA;AAEzB,UAAMG,IACJtB,KAAU,QACVkB,EAAK,SAAA,MAAelB,EAAO,SAAA,KAC3BkB,EAAK,WAAA,MAAiBlB,EAAO,WAAA,KAC7BkB,EAAK,WAAA,MAAiBlB,EAAO,WAAA,GAEzBuB,IAAOL,EAAK,QAAA,GACZM,IAAeD,IAAOV,KAAWU,IAAOT,GAExCW,IACJ,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAM;AAAA,QACN,WAAU;AAAA,QACV,WAAWC,EAAK,iBAAiBN,KAAcO,EAAO,eAAe,CAAC;AAAA,QACtE,UAAU7B,KAAU,QAAQO,KAAYiB;AAAA,QACxC,SAAS,MAAM;AACb,UAAAlB,EAASY,EAAK,YAAYA,EAAK,cAAcA,EAAK,YAAY;AAAA,QAChE;AAAA,QACA,aAAGC,EAAK,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAAIC,EAAO,WAAW,SAAS,GAAG,GAAG,CAAC,IAAIC,CAAQ;AAAA,MAAA;AAAA,MARhFJ;AAAA,IAAA;AAWT,IACED,KAAkBZ,KAClBY,KAAkBX,KAElBO,EAAQ,KAAKa,CAAM,GAGrBV,KAAUN,GACVO,KAAkBP;AAAA,EACpB;AAEA,SACE,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAAvB;AAAA,MACA,oBAAkBD,KAAYP,KAAU;AAAA,MACxC,WAAW4B,EAAKC,EAAO,UAAU,GAAG,UAAU;AAAA,MAE9C,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAWJ,EAAKC,EAAO,0BAA0B,GAAG,0BAA0B;AAAA,YAE9E,UAAA,gBAAAH,EAACO,GAAA,EAAS,WAAWL,EAAKC,EAAO,gBAAgB,GAAG,gBAAgB,GAClE,UAAA,gBAAAH,EAACQ,GAAA,EAAU,MAAK,MAAK,EAAA,CACvB;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAR;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,WAAU;AAAA,YACV,OAAO,EAAE,eAAe,MAAA;AAAA,YAEvB,UAAAnB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"date_picker_time_selector.js","sources":["../../../src/inputs/date_picker/date_picker_time_selector.tsx"],"sourcesContent":["import { VStack } from '../../stacks/v_stack.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { clsx } from 'clsx';\nimport React from 'react';\nimport { Button } from '../../actions/index.js';\nimport styles from './date_picker_time_selector.module.css';\nimport { BodyText } from '../../typography/index.js';\nimport { ClockIcon } from '@tcn/icons/clock_icon.js';\n\nexport interface DatePickerTimeSelectorProps {\n origin: Date | null;\n intervalInMinutes: number;\n max: Date | null;\n min: Date | null;\n minVisibleTimeInMilliseconds: number;\n maxVisibleTimeInMilliseconds: number;\n onSelect: (hours: number, minutes: number, seconds: number) => void;\n disabled?: boolean;\n height?: string;\n}\n\nexport function DatePickerTimeSelector({\n origin,\n intervalInMinutes,\n max,\n min,\n minVisibleTimeInMilliseconds,\n maxVisibleTimeInMilliseconds,\n onSelect,\n disabled,\n height,\n}: DatePickerTimeSelectorProps) {\n const stepInMilliseconds = intervalInMinutes * 1000 * 60;\n const amountOfSteps = (24 * 1000 * 60 * 60) / stepInMilliseconds;\n const normalizedDate = new Date(origin || new Date());\n const options: React.ReactElement[] = [];\n const minTime = min?.getTime() ?? -Infinity;\n const maxTime = max?.getTime() ?? Infinity;\n\n normalizedDate.setHours(0, 0, 0, 0);\n let offset = normalizedDate.getTime();\n let offsetFromZero = 0;\n\n for (let x = 0; x < amountOfSteps; x++) {\n const date = new Date(offset);\n\n let hour = date.getHours() % 12;\n const minute = date.getMinutes();\n const meridiem = date.getHours() >= 12 ? 'PM' : 'AM';\n hour = hour === 0 ? 12 : hour;\n\n const isSelected =\n origin != null &&\n date.getHours() === origin.getHours() &&\n date.getMinutes() === origin.getMinutes() &&\n date.getSeconds() === origin.getSeconds();\n\n const time = date.getTime();\n const isOutOfRange = time < minTime || time > maxTime;\n\n const button = (\n <Button\n key={x}\n width=\"flex\"\n hierarchy=\"tertiary\"\n className={clsx('tcn-selected-time', isSelected && styles['selected-time'])}\n disabled={origin == null || disabled || isOutOfRange}\n onClick={() => {\n onSelect(date.getHours(), date.getMinutes(), date.getSeconds());\n }}\n >{`${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')} ${meridiem}`}</Button>\n );\n\n if (\n offsetFromZero >= minVisibleTimeInMilliseconds &&\n offsetFromZero <= maxVisibleTimeInMilliseconds\n ) {\n options.push(button);\n }\n\n offset += stepInMilliseconds;\n offsetFromZero += stepInMilliseconds;\n }\n\n return (\n <VStack\n width=\"auto\"\n height={height}\n data-is-disabled={disabled || origin == null}\n className={clsx(styles['time-box'], 'tcn-time-box')}\n >\n <ZStack\n className={clsx(\n styles['time-box-title-container'],\n 'tcn-time-box-title-container'\n )}\n >\n <BodyText className={clsx(styles['time-box-title'], 'tcn-time-box-title')}>\n <ClockIcon size=\"lg\" />\n </BodyText>\n </ZStack>\n <VStack\n width=\"auto\"\n height=\"flex\"\n overflowY=\"auto\"\n style={{ paddingInline: '4px' }}\n >\n {options}\n </VStack>\n </VStack>\n );\n}\n"],"names":["DatePickerTimeSelector","origin","intervalInMinutes","max","min","minVisibleTimeInMilliseconds","maxVisibleTimeInMilliseconds","onSelect","disabled","height","stepInMilliseconds","amountOfSteps","normalizedDate","options","minTime","maxTime","offset","offsetFromZero","x","date","hour","minute","meridiem","isSelected","time","isOutOfRange","button","jsx","Button","clsx","styles","jsxs","VStack","ZStack","BodyText","ClockIcon"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBO,SAASA,GAAuB;AAAA,EACrC,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AACF,GAAgC;AAC9B,QAAMC,IAAqBR,IAAoB,MAAO,IAChDS,IAAiB,KAAK,MAAO,KAAK,KAAMD,GACxCE,IAAiB,IAAI,KAAKX,KAAU,oBAAI,MAAM,GAC9CY,IAAgC,CAAA,GAChCC,IAAUV,GAAK,QAAA,KAAa,QAC5BW,IAAUZ,GAAK,QAAA,KAAa;AAElC,EAAAS,EAAe,SAAS,GAAG,GAAG,GAAG,CAAC;AAClC,MAAII,IAASJ,EAAe,QAAA,GACxBK,IAAiB;AAErB,WAASC,IAAI,GAAGA,IAAIP,GAAeO,KAAK;AACtC,UAAMC,IAAO,IAAI,KAAKH,CAAM;AAE5B,QAAII,IAAOD,EAAK,SAAA,IAAa;AAC7B,UAAME,IAASF,EAAK,WAAA,GACdG,IAAWH,EAAK,SAAA,KAAc,KAAK,OAAO;AAChD,IAAAC,IAAOA,MAAS,IAAI,KAAKA;AAEzB,UAAMG,IACJtB,KAAU,QACVkB,EAAK,SAAA,MAAelB,EAAO,SAAA,KAC3BkB,EAAK,WAAA,MAAiBlB,EAAO,WAAA,KAC7BkB,EAAK,WAAA,MAAiBlB,EAAO,WAAA,GAEzBuB,IAAOL,EAAK,QAAA,GACZM,IAAeD,IAAOV,KAAWU,IAAOT,GAExCW,IACJ,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAM;AAAA,QACN,WAAU;AAAA,QACV,WAAWC,EAAK,qBAAqBN,KAAcO,EAAO,eAAe,CAAC;AAAA,QAC1E,UAAU7B,KAAU,QAAQO,KAAYiB;AAAA,QACxC,SAAS,MAAM;AACb,UAAAlB,EAASY,EAAK,YAAYA,EAAK,cAAcA,EAAK,YAAY;AAAA,QAChE;AAAA,QACA,aAAGC,EAAK,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAAIC,EAAO,WAAW,SAAS,GAAG,GAAG,CAAC,IAAIC,CAAQ;AAAA,MAAA;AAAA,MARhFJ;AAAA,IAAA;AAWT,IACED,KAAkBZ,KAClBY,KAAkBX,KAElBO,EAAQ,KAAKa,CAAM,GAGrBV,KAAUN,GACVO,KAAkBP;AAAA,EACpB;AAEA,SACE,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAAvB;AAAA,MACA,oBAAkBD,KAAYP,KAAU;AAAA,MACxC,WAAW4B,EAAKC,EAAO,UAAU,GAAG,cAAc;AAAA,MAElD,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAWJ;AAAA,cACTC,EAAO,0BAA0B;AAAA,cACjC;AAAA,YAAA;AAAA,YAGF,UAAA,gBAAAH,EAACO,GAAA,EAAS,WAAWL,EAAKC,EAAO,gBAAgB,GAAG,oBAAoB,GACtE,UAAA,gBAAAH,EAACQ,GAAA,EAAU,MAAK,MAAK,EAAA,CACvB;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAR;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,WAAU;AAAA,YACV,OAAO,EAAE,eAAe,MAAA;AAAA,YAEvB,UAAAnB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -12,7 +12,7 @@ import { DatePickerYearSelector as g } from "./date_picker_year_selector.js";
12
12
  import { useSignalValue as b } from "@tcn/state";
13
13
  import '../../date_picker_year_input.css';const k = "_year-select_eb568a7", s = { "year-select": k };
14
14
  function I({ presenter: t }) {
15
- const { visibleYear: a } = b(t.stateBroadcast), [c, i] = n(null), [l, r] = n(!1);
15
+ const { visibleYear: c } = b(t.stateBroadcast), [a, i] = n(null), [l, r] = n(!1);
16
16
  function o() {
17
17
  r(!1);
18
18
  }
@@ -24,17 +24,17 @@ function I({ presenter: t }) {
24
24
  h,
25
25
  {
26
26
  hierarchy: "tertiary",
27
- className: d("date-picker-year-select", s["year-select"]),
27
+ className: d("tcn-date-picker-year-select", s["year-select"]),
28
28
  width: "auto",
29
29
  hAlign: "start",
30
30
  onClick: m,
31
- children: /* @__PURE__ */ e("span", { className: s.selectedLabel, children: a })
31
+ children: /* @__PURE__ */ e("span", { className: s.selectedLabel, children: c })
32
32
  }
33
33
  ),
34
34
  /* @__PURE__ */ e(
35
35
  y,
36
36
  {
37
- anchorElement: c,
37
+ anchorElement: a,
38
38
  horizontalAnchor: "center",
39
39
  horizontalOrigin: "center",
40
40
  onClose: o,
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_year_input.js","sources":["../../../src/inputs/date_picker/date_picker_year_input.tsx"],"sourcesContent":["import { Button } from '../../actions/index.js';\nimport { clsx } from 'clsx';\nimport styles from './date_picker_year_input.module.css';\nimport { useState } from 'react';\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { DatePickerYearSelector } from './date_picker_year_selector.js';\nimport { useSignalValue } from '@tcn/state';\n\nexport interface DatePickerYearInputProps {\n presenter: DatePickerPresenter;\n}\n\nexport function DatePickerYearInput({ presenter }: DatePickerYearInputProps) {\n const { visibleYear } = useSignalValue(presenter.stateBroadcast);\n const [buttonRef, setButtonRef] = useState<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n function close() {\n setIsOpen(false);\n }\n\n function open(event: React.MouseEvent<HTMLButtonElement>) {\n setButtonRef(event.currentTarget);\n setIsOpen(true);\n }\n\n return (\n <>\n <Button\n hierarchy=\"tertiary\"\n className={clsx('date-picker-year-select', styles['year-select'])}\n width=\"auto\"\n hAlign=\"start\"\n onClick={open}\n >\n <span className={styles.selectedLabel}>{visibleYear}</span>\n </Button>\n <Popper\n anchorElement={buttonRef}\n horizontalAnchor=\"center\"\n horizontalOrigin=\"center\"\n onClose={close}\n open={isOpen}\n restoreFocus\n >\n <DatePickerYearSelector presenter={presenter} onClose={close} />\n </Popper>\n </>\n );\n}\n"],"names":["DatePickerYearInput","presenter","visibleYear","useSignalValue","buttonRef","setButtonRef","useState","isOpen","setIsOpen","close","open","event","jsxs","Fragment","jsx","Button","clsx","styles","Popper","DatePickerYearSelector"],"mappings":";;;;;;;;;;;;;AAaO,SAASA,EAAoB,EAAE,WAAAC,KAAuC;AAC3E,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAeF,EAAU,cAAc,GACzD,CAACG,GAAWC,CAAY,IAAIC,EAAmC,IAAI,GACnE,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK;AAE1C,WAASG,IAAQ;AACf,IAAAD,EAAU,EAAK;AAAA,EACjB;AAEA,WAASE,EAAKC,GAA4C;AACxD,IAAAN,EAAaM,EAAM,aAAa,GAChCH,EAAU,EAAI;AAAA,EAChB;AAEA,SACE,gBAAAI,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,WAAWC,EAAK,2BAA2BC,EAAO,aAAa,CAAC;AAAA,QAChE,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAASP;AAAA,QAET,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWG,EAAO,eAAgB,UAAAf,EAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAEtD,gBAAAY;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,eAAed;AAAA,QACf,kBAAiB;AAAA,QACjB,kBAAiB;AAAA,QACjB,SAASK;AAAA,QACT,MAAMF;AAAA,QACN,cAAY;AAAA,QAEZ,UAAA,gBAAAO,EAACK,GAAA,EAAuB,WAAAlB,GAAsB,SAASQ,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAChE,GACF;AAEJ;"}
1
+ {"version":3,"file":"date_picker_year_input.js","sources":["../../../src/inputs/date_picker/date_picker_year_input.tsx"],"sourcesContent":["import { Button } from '../../actions/index.js';\nimport { clsx } from 'clsx';\nimport styles from './date_picker_year_input.module.css';\nimport { useState } from 'react';\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport { DatePickerYearSelector } from './date_picker_year_selector.js';\nimport { useSignalValue } from '@tcn/state';\n\nexport interface DatePickerYearInputProps {\n presenter: DatePickerPresenter;\n}\n\nexport function DatePickerYearInput({ presenter }: DatePickerYearInputProps) {\n const { visibleYear } = useSignalValue(presenter.stateBroadcast);\n const [buttonRef, setButtonRef] = useState<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n function close() {\n setIsOpen(false);\n }\n\n function open(event: React.MouseEvent<HTMLButtonElement>) {\n setButtonRef(event.currentTarget);\n setIsOpen(true);\n }\n\n return (\n <>\n <Button\n hierarchy=\"tertiary\"\n className={clsx('tcn-date-picker-year-select', styles['year-select'])}\n width=\"auto\"\n hAlign=\"start\"\n onClick={open}\n >\n <span className={styles.selectedLabel}>{visibleYear}</span>\n </Button>\n <Popper\n anchorElement={buttonRef}\n horizontalAnchor=\"center\"\n horizontalOrigin=\"center\"\n onClose={close}\n open={isOpen}\n restoreFocus\n >\n <DatePickerYearSelector presenter={presenter} onClose={close} />\n </Popper>\n </>\n );\n}\n"],"names":["DatePickerYearInput","presenter","visibleYear","useSignalValue","buttonRef","setButtonRef","useState","isOpen","setIsOpen","close","open","event","jsxs","Fragment","jsx","Button","clsx","styles","Popper","DatePickerYearSelector"],"mappings":";;;;;;;;;;;;;AAaO,SAASA,EAAoB,EAAE,WAAAC,KAAuC;AAC3E,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAeF,EAAU,cAAc,GACzD,CAACG,GAAWC,CAAY,IAAIC,EAAmC,IAAI,GACnE,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK;AAE1C,WAASG,IAAQ;AACf,IAAAD,EAAU,EAAK;AAAA,EACjB;AAEA,WAASE,EAAKC,GAA4C;AACxD,IAAAN,EAAaM,EAAM,aAAa,GAChCH,EAAU,EAAI;AAAA,EAChB;AAEA,SACE,gBAAAI,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,WAAWC,EAAK,+BAA+BC,EAAO,aAAa,CAAC;AAAA,QACpE,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAASP;AAAA,QAET,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWG,EAAO,eAAgB,UAAAf,EAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAEtD,gBAAAY;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,eAAed;AAAA,QACf,kBAAiB;AAAA,QACjB,kBAAiB;AAAA,QACjB,SAASK;AAAA,QACT,MAAMF;AAAA,QACN,cAAY;AAAA,QAEZ,UAAA,gBAAAO,EAACK,GAAA,EAAuB,WAAAlB,GAAsB,SAASQ,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAChE,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_year_selector.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_year_selector.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKjE,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,GACR,EAAE,2BAA2B,2CAqG7B"}
1
+ {"version":3,"file":"date_picker_year_selector.d.ts","sourceRoot":"","sources":["../../../src/inputs/date_picker/date_picker_year_selector.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKjE,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,GACR,EAAE,2BAA2B,2CAwG7B"}
@@ -31,12 +31,12 @@ function ye({
31
31
  }) {
32
32
  const { min: p, max: m, visibleYear: o, visibleMonth: b } = $(
33
33
  s.stateBroadcast
34
- ), [c, f] = z(0), a = D(null), R = p == null ? -1 / 0 : p.getFullYear(), S = m == null ? 1 / 0 : m.getFullYear(), r = [], d = o % 20;
35
- let u = o - d + c, F = u + 19;
34
+ ), [a, f] = z(0), c = D(null), R = p == null ? -1 / 0 : p.getFullYear(), S = m == null ? 1 / 0 : m.getFullYear(), r = [], d = o % 20;
35
+ let u = o - d + a, F = u + 19;
36
36
  for (let n = 0; n < 20; n++) {
37
37
  let l = !1;
38
38
  const i = new Date(o, b, 1);
39
- i.setFullYear(o - d + n + c), (i.getFullYear() > S || i.getFullYear() < R) && (l = !0);
39
+ i.setFullYear(o - d + n + a), (i.getFullYear() > S || i.getFullYear() < R) && (l = !0);
40
40
  const j = t;
41
41
  r.push(
42
42
  /* @__PURE__ */ e(
@@ -45,7 +45,7 @@ function ye({
45
45
  as: "button",
46
46
  width: "flex",
47
47
  disabled: l,
48
- className: y(Y["date-picker-year-button"], "date-picker-year-button"),
48
+ className: y(Y["date-picker-year-button"], "tcn-date-picker-year-button"),
49
49
  "data-is-disabled": String(l),
50
50
  "data-is-selected": String(i.getFullYear() === o),
51
51
  onClick: () => {
@@ -58,25 +58,28 @@ function ye({
58
58
  );
59
59
  }
60
60
  function w() {
61
- a.current != null && a.current.focus();
61
+ c.current != null && c.current.focus();
62
62
  }
63
63
  H(() => {
64
- a.current != null && a.current.focus();
64
+ c.current != null && c.current.focus();
65
65
  }, []);
66
66
  const v = r.slice(0, 4), B = r.slice(4, 8), C = r.slice(8, 12), I = r.slice(12, 16), _ = r.slice(16, 20);
67
67
  function P() {
68
- f(c - 20);
68
+ f(a - 20);
69
69
  }
70
70
  function V() {
71
- f(c + 20);
71
+ f(a + 20);
72
72
  }
73
73
  return /* @__PURE__ */ h(
74
74
  E,
75
75
  {
76
- ref: a,
76
+ ref: c,
77
77
  tabIndex: 0,
78
78
  padding: "8px",
79
- className: y(Y["date-picker-year-selector"], "date-picker-year-selector"),
79
+ className: y(
80
+ Y["date-picker-year-selector"],
81
+ "tcn-date-picker-year-selector"
82
+ ),
80
83
  gap: "4px",
81
84
  children: [
82
85
  /* @__PURE__ */ h(t, { gap: "4px", children: [
@@ -1 +1 @@
1
- {"version":3,"file":"date_picker_year_selector.js","sources":["../../../src/inputs/date_picker/date_picker_year_selector.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { useSignalValue } from '@tcn/state';\nimport { SlimButton } from '../../actions/index.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { VStack } from '../../stacks/v_stack.js';\nimport { BodyText, Headline } from '../../typography/index.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport styles from './date_picker_year_selector.module.css';\nimport { FocusRedirect } from '../../utils/index.js';\nimport { clsx } from 'clsx';\n\nexport interface DatePickerYearSelectorProps {\n presenter: DatePickerPresenter;\n onClose: () => void;\n}\n\nexport function DatePickerYearSelector({\n presenter,\n onClose,\n}: DatePickerYearSelectorProps) {\n const { min, max, visibleYear, visibleMonth } = useSignalValue(\n presenter.stateBroadcast\n );\n\n const [offset, setOffset] = useState(0);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const minYear = min == null ? -Infinity : min.getFullYear();\n const maxYear = max == null ? Infinity : max.getFullYear();\n const years: React.ReactNode[] = [];\n const remainder = visibleYear % 20;\n let firstYear = visibleYear - remainder + offset;\n let lastYear = firstYear + 19;\n\n for (let x = 0; x < 20; x++) {\n let disabled = false;\n const date = new Date(visibleYear, visibleMonth, 1);\n date.setFullYear(visibleYear - remainder + x + offset);\n\n if (date.getFullYear() > maxYear || date.getFullYear() < minYear) {\n disabled = true;\n }\n\n const Button: any = HStack;\n\n years.push(\n <Button\n as=\"button\"\n key={x}\n width=\"flex\"\n disabled={disabled}\n className={clsx(styles['date-picker-year-button'], 'date-picker-year-button')}\n data-is-disabled={String(disabled)}\n data-is-selected={String(date.getFullYear() === visibleYear)}\n onClick={() => {\n presenter.setVisibleYear(date.getFullYear());\n onClose();\n }}\n >\n <BodyText>{date.getFullYear()}</BodyText>\n </Button>\n );\n }\n\n function focus() {\n if (containerRef.current != null) {\n containerRef.current.focus();\n }\n }\n\n useEffect(() => {\n if (containerRef.current != null) {\n containerRef.current.focus();\n }\n }, []);\n\n const firstRow = years.slice(0, 4);\n const secondRow = years.slice(4, 8);\n const thirdRow = years.slice(8, 12);\n const fourthRow = years.slice(12, 16);\n const fifthRow = years.slice(16, 20);\n\n function prev() {\n setOffset(offset - 20);\n }\n\n function next() {\n setOffset(offset + 20);\n }\n\n return (\n <VStack\n ref={containerRef}\n tabIndex={0}\n padding=\"8px\"\n className={clsx(styles['date-picker-year-selector'], 'date-picker-year-selector')}\n gap=\"4px\"\n >\n <HStack gap=\"4px\">\n <SlimButton onClick={prev} hierarchy=\"tertiary\">\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </SlimButton>\n <Spacer />\n <Headline\n selectable={false}\n emphasis=\"faint\"\n hierarchy=\"tertiary\"\n >{`${firstYear}-${lastYear}`}</Headline>\n <Spacer />\n <SlimButton hierarchy=\"tertiary\" onClick={next}>\n <ChevronRightIcon size=\"md\" />\n </SlimButton>\n </HStack>\n <HStack gap=\"4px\">{firstRow}</HStack>\n <HStack gap=\"4px\">{secondRow}</HStack>\n <HStack gap=\"4px\">{thirdRow}</HStack>\n <HStack gap=\"4px\">{fourthRow}</HStack>\n <HStack gap=\"4px\">{fifthRow}</HStack>\n <FocusRedirect onRedirect={focus} />\n </VStack>\n );\n}\n"],"names":["DatePickerYearSelector","presenter","onClose","min","max","visibleYear","visibleMonth","useSignalValue","offset","setOffset","useState","containerRef","useRef","minYear","maxYear","years","remainder","firstYear","lastYear","x","disabled","date","Button","HStack","jsx","clsx","styles","BodyText","focus","useEffect","firstRow","secondRow","thirdRow","fourthRow","fifthRow","prev","next","jsxs","VStack","SlimButton","ChevronLeftIcon","Spacer","Headline","ChevronRightIcon","FocusRedirect"],"mappings":"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"}
1
+ {"version":3,"file":"date_picker_year_selector.js","sources":["../../../src/inputs/date_picker/date_picker_year_selector.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport { useSignalValue } from '@tcn/state';\nimport { SlimButton } from '../../actions/index.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { VStack } from '../../stacks/v_stack.js';\nimport { BodyText, Headline } from '../../typography/index.js';\nimport { DatePickerPresenter } from './date_picker_presenter.js';\nimport styles from './date_picker_year_selector.module.css';\nimport { FocusRedirect } from '../../utils/index.js';\nimport { clsx } from 'clsx';\n\nexport interface DatePickerYearSelectorProps {\n presenter: DatePickerPresenter;\n onClose: () => void;\n}\n\nexport function DatePickerYearSelector({\n presenter,\n onClose,\n}: DatePickerYearSelectorProps) {\n const { min, max, visibleYear, visibleMonth } = useSignalValue(\n presenter.stateBroadcast\n );\n\n const [offset, setOffset] = useState(0);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const minYear = min == null ? -Infinity : min.getFullYear();\n const maxYear = max == null ? Infinity : max.getFullYear();\n const years: React.ReactNode[] = [];\n const remainder = visibleYear % 20;\n let firstYear = visibleYear - remainder + offset;\n let lastYear = firstYear + 19;\n\n for (let x = 0; x < 20; x++) {\n let disabled = false;\n const date = new Date(visibleYear, visibleMonth, 1);\n date.setFullYear(visibleYear - remainder + x + offset);\n\n if (date.getFullYear() > maxYear || date.getFullYear() < minYear) {\n disabled = true;\n }\n\n const Button: any = HStack;\n\n years.push(\n <Button\n as=\"button\"\n key={x}\n width=\"flex\"\n disabled={disabled}\n className={clsx(styles['date-picker-year-button'], 'tcn-date-picker-year-button')}\n data-is-disabled={String(disabled)}\n data-is-selected={String(date.getFullYear() === visibleYear)}\n onClick={() => {\n presenter.setVisibleYear(date.getFullYear());\n onClose();\n }}\n >\n <BodyText>{date.getFullYear()}</BodyText>\n </Button>\n );\n }\n\n function focus() {\n if (containerRef.current != null) {\n containerRef.current.focus();\n }\n }\n\n useEffect(() => {\n if (containerRef.current != null) {\n containerRef.current.focus();\n }\n }, []);\n\n const firstRow = years.slice(0, 4);\n const secondRow = years.slice(4, 8);\n const thirdRow = years.slice(8, 12);\n const fourthRow = years.slice(12, 16);\n const fifthRow = years.slice(16, 20);\n\n function prev() {\n setOffset(offset - 20);\n }\n\n function next() {\n setOffset(offset + 20);\n }\n\n return (\n <VStack\n ref={containerRef}\n tabIndex={0}\n padding=\"8px\"\n className={clsx(\n styles['date-picker-year-selector'],\n 'tcn-date-picker-year-selector'\n )}\n gap=\"4px\"\n >\n <HStack gap=\"4px\">\n <SlimButton onClick={prev} hierarchy=\"tertiary\">\n <ChevronLeftIcon flipOnRtl size=\"md\" />\n </SlimButton>\n <Spacer />\n <Headline\n selectable={false}\n emphasis=\"faint\"\n hierarchy=\"tertiary\"\n >{`${firstYear}-${lastYear}`}</Headline>\n <Spacer />\n <SlimButton hierarchy=\"tertiary\" onClick={next}>\n <ChevronRightIcon size=\"md\" />\n </SlimButton>\n </HStack>\n <HStack gap=\"4px\">{firstRow}</HStack>\n <HStack gap=\"4px\">{secondRow}</HStack>\n <HStack gap=\"4px\">{thirdRow}</HStack>\n <HStack gap=\"4px\">{fourthRow}</HStack>\n <HStack gap=\"4px\">{fifthRow}</HStack>\n <FocusRedirect onRedirect={focus} />\n </VStack>\n );\n}\n"],"names":["DatePickerYearSelector","presenter","onClose","min","max","visibleYear","visibleMonth","useSignalValue","offset","setOffset","useState","containerRef","useRef","minYear","maxYear","years","remainder","firstYear","lastYear","x","disabled","date","Button","HStack","jsx","clsx","styles","BodyText","focus","useEffect","firstRow","secondRow","thirdRow","fourthRow","fifthRow","prev","next","jsxs","VStack","SlimButton","ChevronLeftIcon","Spacer","Headline","ChevronRightIcon","FocusRedirect"],"mappings":"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"}
@@ -26,21 +26,17 @@ export * from './mask_input/regex_character.js';
26
26
  export * from './multi_combo_box/multi_combo_box.js';
27
27
  export * from './multiselect/multiselect.js';
28
28
  export * from './multiselect/multiselect_inline_values.js';
29
- export * from './multiselect/multiselect_row.js';
30
29
  export * from './multiselect/multiselect_values.js';
31
30
  export * from './options/utils.js';
32
31
  export * from './options/option.js';
33
32
  export * from './phone_number_input/countries_phone_information.js';
34
33
  export * from './phone_number_input/phone_number_input.js';
35
34
  export * from './radio/radio.js';
36
- export * from './radio/radio_row.js';
37
35
  export * from './select/select.js';
38
36
  export * from './slider/slider.js';
39
37
  export * from './suggestions/suggestion_item.js';
40
38
  export * from './suggestions/suggestion_list.js';
41
39
  export * from './switch/switch.js';
42
- export * from './switch/switch_row.js';
43
40
  export * from './textarea/textarea.js';
44
- export * from './textarea/textarea_row.js';
45
41
  export * from './unit_input/unit_input.js';
46
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sCAAsC,CAAC;AAErD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAErC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sCAAsC,CAAC;AAErD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,oBAAoB,CAAC;AAEnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,4BAA4B,CAAC"}