@tcn/ui 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +38 -3
  2. package/dist/divider.module-FptFV0PX.js +5 -0
  3. package/dist/divider.module-FptFV0PX.js.map +1 -0
  4. package/dist/draggable.css +1 -0
  5. package/dist/feedback/progress/progress_bar.js +1 -1
  6. package/dist/form/field/common/field_description.js +1 -1
  7. package/dist/form/field/common/field_error.js +1 -1
  8. package/dist/form/field/common/field_label.js +1 -1
  9. package/dist/form/field/field.js +1 -1
  10. package/dist/frame.css +1 -0
  11. package/dist/inputs/color_input/color_input.js +1 -1
  12. package/dist/inputs/color_input/color_input.js.map +1 -1
  13. package/dist/inputs/color_input/color_picker.js +1 -1
  14. package/dist/inputs/combo_box/combo_box.js +1 -1
  15. package/dist/inputs/date_picker/date_picker.js +1 -1
  16. package/dist/inputs/date_picker/date_picker_date.js +1 -1
  17. package/dist/inputs/date_picker/date_picker_day.js +1 -1
  18. package/dist/inputs/date_picker/date_picker_input.js +2 -2
  19. package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
  20. package/dist/inputs/date_picker/date_picker_time_selector.js +1 -1
  21. package/dist/inputs/date_picker/date_picker_year_input.js +1 -1
  22. package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
  23. package/dist/inputs/date_picker/date_picker_year_selector.js +2 -2
  24. package/dist/inputs/mask_input/key_capture_input.js +1 -1
  25. package/dist/inputs/mask_input/mask_input.js +1 -1
  26. package/dist/inputs/multiselect/multiselect.js +1 -1
  27. package/dist/inputs/phone_number_input/phone_number_input.d.ts +2 -0
  28. package/dist/inputs/phone_number_input/phone_number_input.d.ts.map +1 -1
  29. package/dist/inputs/phone_number_input/phone_number_input.js +160 -154
  30. package/dist/inputs/phone_number_input/phone_number_input.js.map +1 -1
  31. package/dist/inputs/select/select.js +1 -1
  32. package/dist/inputs/slider/slider.js +1 -1
  33. package/dist/inputs/suggestions/suggestion_list.js +3 -3
  34. package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
  35. package/dist/inputs/switch/switch.js +1 -1
  36. package/dist/inputs/textarea/textarea.d.ts +2 -2
  37. package/dist/inputs/textarea/textarea.d.ts.map +1 -1
  38. package/dist/inputs/textarea/textarea.js.map +1 -1
  39. package/dist/inputs/unit_input/unit_input.js +1 -1
  40. package/dist/layouts/divider/divider.js +24 -23
  41. package/dist/layouts/divider/divider.js.map +1 -1
  42. package/dist/layouts/header/header.d.ts.map +1 -1
  43. package/dist/layouts/header/header.js.map +1 -1
  44. package/dist/layouts/index.d.ts +6 -5
  45. package/dist/layouts/index.d.ts.map +1 -1
  46. package/dist/layouts/index.js +28 -26
  47. package/dist/layouts/index.js.map +1 -1
  48. package/dist/layouts/scaffold/scaffold.d.ts +9 -0
  49. package/dist/layouts/scaffold/scaffold.d.ts.map +1 -0
  50. package/dist/layouts/scaffold/scaffold.js +55 -0
  51. package/dist/layouts/scaffold/scaffold.js.map +1 -0
  52. package/dist/modal.css +1 -1
  53. package/dist/overlay/frame/frame.d.ts +11 -0
  54. package/dist/overlay/frame/frame.d.ts.map +1 -0
  55. package/dist/overlay/frame/frame.js +35 -0
  56. package/dist/overlay/frame/frame.js.map +1 -0
  57. package/dist/overlay/index.d.ts +10 -2
  58. package/dist/overlay/index.d.ts.map +1 -1
  59. package/dist/overlay/index.js +22 -8
  60. package/dist/overlay/index.js.map +1 -1
  61. package/dist/overlay/menu/menu.d.ts +1 -1
  62. package/dist/overlay/menu/menu.d.ts.map +1 -1
  63. package/dist/overlay/menu/menu.js +2 -2
  64. package/dist/overlay/menu/menu.js.map +1 -1
  65. package/dist/overlay/popper/base/base_popper.d.ts +11 -0
  66. package/dist/overlay/popper/base/base_popper.d.ts.map +1 -0
  67. package/dist/overlay/popper/base/base_popper.js +27 -0
  68. package/dist/overlay/popper/base/base_popper.js.map +1 -0
  69. package/dist/overlay/popper/base/dismissal_decorator.d.ts +16 -0
  70. package/dist/overlay/popper/base/dismissal_decorator.d.ts.map +1 -0
  71. package/dist/overlay/popper/base/dismissal_decorator.js +69 -0
  72. package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -0
  73. package/dist/overlay/popper/context_popper.d.ts +11 -0
  74. package/dist/overlay/popper/context_popper.d.ts.map +1 -0
  75. package/dist/overlay/popper/context_popper.js +33 -0
  76. package/dist/overlay/popper/context_popper.js.map +1 -0
  77. package/dist/overlay/popper/element_popper.d.ts +7 -0
  78. package/dist/overlay/popper/element_popper.d.ts.map +1 -0
  79. package/dist/overlay/popper/element_popper.js +33 -0
  80. package/dist/overlay/popper/element_popper.js.map +1 -0
  81. package/dist/overlay/popper/hooks/use_context_trigger.d.ts +7 -0
  82. package/dist/overlay/popper/hooks/use_context_trigger.d.ts.map +1 -0
  83. package/dist/overlay/popper/hooks/use_context_trigger.js +31 -0
  84. package/dist/overlay/popper/hooks/use_context_trigger.js.map +1 -0
  85. package/dist/overlay/popper/hooks/use_hover_trigger.d.ts +6 -0
  86. package/dist/overlay/popper/hooks/use_hover_trigger.d.ts.map +1 -0
  87. package/dist/overlay/popper/hooks/use_hover_trigger.js +17 -0
  88. package/dist/overlay/popper/hooks/use_hover_trigger.js.map +1 -0
  89. package/dist/overlay/popper/hooks/use_restore_focus.d.ts +2 -0
  90. package/dist/overlay/popper/hooks/use_restore_focus.d.ts.map +1 -0
  91. package/dist/overlay/popper/hooks/use_restore_focus.js +18 -0
  92. package/dist/overlay/popper/hooks/use_restore_focus.js.map +1 -0
  93. package/dist/overlay/popper/legacy/popper.d.ts.map +1 -0
  94. package/dist/overlay/popper/{popper.js → legacy/popper.js} +6 -6
  95. package/dist/overlay/popper/legacy/popper.js.map +1 -0
  96. package/dist/overlay/popper/preview_popper.d.ts +7 -0
  97. package/dist/overlay/popper/preview_popper.d.ts.map +1 -0
  98. package/dist/overlay/popper/preview_popper.js +46 -0
  99. package/dist/overlay/popper/preview_popper.js.map +1 -0
  100. package/dist/overlay/tethered/element_tethered.d.ts +8 -0
  101. package/dist/overlay/tethered/element_tethered.d.ts.map +1 -0
  102. package/dist/overlay/tethered/element_tethered.js +33 -0
  103. package/dist/overlay/tethered/element_tethered.js.map +1 -0
  104. package/dist/overlay/tethered/hooks/calculate_position.d.ts +19 -0
  105. package/dist/overlay/tethered/hooks/calculate_position.d.ts.map +1 -0
  106. package/dist/overlay/tethered/hooks/calculate_position.js +43 -0
  107. package/dist/overlay/tethered/hooks/calculate_position.js.map +1 -0
  108. package/dist/overlay/tethered/hooks/useTether.d.ts +19 -0
  109. package/dist/overlay/tethered/hooks/useTether.d.ts.map +1 -0
  110. package/dist/overlay/tethered/hooks/useTether.js +61 -0
  111. package/dist/overlay/tethered/hooks/useTether.js.map +1 -0
  112. package/dist/overlay/tethered/tethered.d.ts +20 -0
  113. package/dist/overlay/tethered/tethered.d.ts.map +1 -0
  114. package/dist/overlay/tethered/tethered.js +59 -0
  115. package/dist/overlay/tethered/tethered.js.map +1 -0
  116. package/dist/overlay/tethered/types.d.ts +3 -0
  117. package/dist/overlay/tethered/types.d.ts.map +1 -0
  118. package/dist/overlay/tethered/types.js +2 -0
  119. package/dist/overlay/tethered/types.js.map +1 -0
  120. package/dist/popper.css +1 -1
  121. package/dist/scaffold.css +1 -0
  122. package/dist/stacks/box/box.d.ts +1 -1
  123. package/dist/stacks/box/box.d.ts.map +1 -1
  124. package/dist/stacks/box/box.js +1 -1
  125. package/dist/stacks/box/box.js.map +1 -1
  126. package/dist/stacks/h_collapsible_box.js +1 -1
  127. package/dist/stacks/v_collapsible_box.js +1 -1
  128. package/dist/surfaces/card/card.d.ts +2 -2
  129. package/dist/surfaces/card/card.d.ts.map +1 -1
  130. package/dist/surfaces/card/card.js +7 -7
  131. package/dist/surfaces/card/card.js.map +1 -1
  132. package/dist/surfaces/index.d.ts +4 -2
  133. package/dist/surfaces/index.d.ts.map +1 -1
  134. package/dist/surfaces/index.js +26 -22
  135. package/dist/surfaces/index.js.map +1 -1
  136. package/dist/surfaces/modal/modal.d.ts +4 -3
  137. package/dist/surfaces/modal/modal.d.ts.map +1 -1
  138. package/dist/surfaces/modal/modal.js +12 -11
  139. package/dist/surfaces/modal/modal.js.map +1 -1
  140. package/dist/surfaces/panel/h_panel.js +23 -24
  141. package/dist/surfaces/panel/h_panel.js.map +1 -1
  142. package/dist/surfaces/panel/v_panel.d.ts +3 -7
  143. package/dist/surfaces/panel/v_panel.d.ts.map +1 -1
  144. package/dist/surfaces/panel/v_panel.js +12 -54
  145. package/dist/surfaces/panel/v_panel.js.map +1 -1
  146. package/dist/surfaces/pop_confirm/pop_confirm.d.ts +5 -0
  147. package/dist/surfaces/pop_confirm/pop_confirm.d.ts.map +1 -0
  148. package/dist/surfaces/pop_confirm/pop_confirm.js +37 -0
  149. package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -0
  150. package/dist/surfaces/popconfirm/pop_confirm.d.ts +5 -0
  151. package/dist/surfaces/popconfirm/pop_confirm.d.ts.map +1 -0
  152. package/dist/surfaces/popconfirm/pop_confirm.js +13 -0
  153. package/dist/surfaces/popconfirm/pop_confirm.js.map +1 -0
  154. package/dist/surfaces/popover/popover.d.ts +1 -1
  155. package/dist/surfaces/popover/popover.d.ts.map +1 -1
  156. package/dist/surfaces/popover/popover.js +1 -1
  157. package/dist/surfaces/popover/popover.js.map +1 -1
  158. package/dist/surfaces/tooltip/tooltip.d.ts +10 -0
  159. package/dist/surfaces/tooltip/tooltip.d.ts.map +1 -0
  160. package/dist/surfaces/tooltip/tooltip.js +38 -0
  161. package/dist/surfaces/tooltip/tooltip.js.map +1 -0
  162. package/dist/surfaces/window/window.d.ts +4 -3
  163. package/dist/surfaces/window/window.d.ts.map +1 -1
  164. package/dist/surfaces/window/window.js +18 -6
  165. package/dist/surfaces/window/window.js.map +1 -1
  166. package/dist/tethered.css +1 -0
  167. package/dist/themes/themes/ergo/ergo_theme.js +166 -158
  168. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  169. package/dist/tooltip.css +1 -1
  170. package/dist/typography/title/title.d.ts +2 -1
  171. package/dist/typography/title/title.d.ts.map +1 -1
  172. package/dist/typography/title/title.js +23 -22
  173. package/dist/typography/title/title.js.map +1 -1
  174. package/dist/utility_bar.css +1 -1
  175. package/dist/utils/click_away_listener.d.ts +1 -0
  176. package/dist/utils/click_away_listener.d.ts.map +1 -1
  177. package/dist/utils/click_away_listener.js +2 -1
  178. package/dist/utils/click_away_listener.js.map +1 -1
  179. package/dist/utils/dnd/context.d.ts +4 -0
  180. package/dist/utils/dnd/context.d.ts.map +1 -0
  181. package/dist/utils/dnd/context.js +20 -0
  182. package/dist/utils/dnd/context.js.map +1 -0
  183. package/dist/utils/dnd/draggable/draggable.d.ts +7 -0
  184. package/dist/utils/dnd/draggable/draggable.d.ts.map +1 -0
  185. package/dist/utils/dnd/draggable/draggable.js +27 -0
  186. package/dist/utils/dnd/draggable/draggable.js.map +1 -0
  187. package/dist/utils/dnd/handle.d.ts +6 -0
  188. package/dist/utils/dnd/handle.d.ts.map +1 -0
  189. package/dist/utils/dnd/handle.js +22 -0
  190. package/dist/utils/dnd/handle.js.map +1 -0
  191. package/dist/utils/dnd/hooks/use_drag_container.d.ts +7 -0
  192. package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +1 -0
  193. package/dist/utils/dnd/hooks/use_drag_container.js +30 -0
  194. package/dist/utils/dnd/hooks/use_drag_container.js.map +1 -0
  195. package/dist/utils/{hooks → dnd/hooks}/use_draggable.d.ts +3 -3
  196. package/dist/utils/dnd/hooks/use_draggable.d.ts.map +1 -0
  197. package/dist/utils/dnd/hooks/use_draggable.js +41 -0
  198. package/dist/utils/dnd/hooks/use_draggable.js.map +1 -0
  199. package/dist/utils/dnd/types.d.ts +10 -0
  200. package/dist/utils/dnd/types.d.ts.map +1 -0
  201. package/dist/utils/dnd/types.js +2 -0
  202. package/dist/utils/dnd/types.js.map +1 -0
  203. package/dist/utils/index.d.ts +6 -5
  204. package/dist/utils/index.d.ts.map +1 -1
  205. package/dist/utils/index.js +26 -23
  206. package/dist/utils/index.js.map +1 -1
  207. package/dist/utils/mouse_leave_region.d.ts +8 -0
  208. package/dist/utils/mouse_leave_region.d.ts.map +1 -0
  209. package/dist/utils/mouse_leave_region.js +26 -0
  210. package/dist/utils/mouse_leave_region.js.map +1 -0
  211. package/dist/utils/types/dimensions.d.ts +11 -1
  212. package/dist/utils/types/dimensions.d.ts.map +1 -1
  213. package/package.json +9 -3
  214. package/src/inputs/color_input/color_input.tsx +1 -1
  215. package/src/inputs/date_picker/date_picker_input.tsx +1 -1
  216. package/src/inputs/date_picker/date_picker_year_input.tsx +1 -1
  217. package/src/inputs/phone_number_input/phone_number_input.tsx +8 -0
  218. package/src/inputs/suggestions/suggestion_list.tsx +1 -1
  219. package/src/inputs/textarea/textarea.tsx +2 -2
  220. package/src/layouts/header/header.tsx +0 -1
  221. package/src/layouts/index.ts +7 -5
  222. package/src/layouts/scaffold/scaffold.module.css +5 -0
  223. package/src/layouts/scaffold/scaffold.tsx +60 -0
  224. package/src/layouts/utility_bar/utility_bar.module.css +0 -3
  225. package/src/overlay/frame/frame.module.css +5 -0
  226. package/src/overlay/frame/frame.stories.tsx +40 -0
  227. package/src/overlay/frame/frame.tsx +50 -0
  228. package/src/overlay/frame/frame_stories.module.css +14 -0
  229. package/src/overlay/index.ts +30 -2
  230. package/src/overlay/menu/menu.tsx +1 -1
  231. package/src/overlay/popper/__stories__/base_args.ts +75 -0
  232. package/src/overlay/popper/__stories__/context_popper.stories.tsx +77 -0
  233. package/src/overlay/popper/__stories__/element_popper.stories.tsx +80 -0
  234. package/src/overlay/popper/__stories__/preview_popper.stories.tsx +73 -0
  235. package/src/overlay/popper/base/base_popper.tsx +55 -0
  236. package/src/overlay/popper/base/dismissal_decorator.tsx +80 -0
  237. package/src/overlay/popper/context_popper.tsx +43 -0
  238. package/src/overlay/popper/element_popper.tsx +42 -0
  239. package/src/overlay/popper/hooks/use_context_trigger.ts +50 -0
  240. package/src/overlay/popper/hooks/use_hover_trigger.ts +24 -0
  241. package/src/overlay/popper/hooks/use_restore_focus.ts +16 -0
  242. package/src/overlay/popper/{popper.stories.tsx → legacy/popper.stories.tsx} +11 -5
  243. package/src/overlay/popper/{popper.tsx → legacy/popper.tsx} +3 -2
  244. package/src/overlay/popper/preview_popper.tsx +54 -0
  245. package/src/overlay/tethered/__stories__/element/element_tethered.stories.tsx +57 -0
  246. package/src/overlay/tethered/__stories__/element/element_tethered_stories.module.css +14 -0
  247. package/src/overlay/tethered/__stories__/shared/base_story_config.ts +52 -0
  248. package/src/overlay/tethered/__stories__/shared/components/sb_point.module.css +20 -0
  249. package/src/overlay/tethered/__stories__/shared/components/sb_point.tsx +34 -0
  250. package/src/overlay/tethered/__stories__/shared/components/sb_reference_points.tsx +54 -0
  251. package/src/overlay/tethered/__stories__/tethered/tethered.stories.tsx +90 -0
  252. package/src/overlay/tethered/__stories__/tethered/tethered_stories.module.css +25 -0
  253. package/src/overlay/tethered/element_tethered.tsx +62 -0
  254. package/src/overlay/tethered/hooks/calculate_position.ts +110 -0
  255. package/src/overlay/tethered/hooks/useTether.ts +85 -0
  256. package/src/overlay/tethered/tethered.module.css +8 -0
  257. package/src/overlay/tethered/tethered.tsx +72 -0
  258. package/src/overlay/tethered/types.ts +2 -0
  259. package/src/stacks/box/box.tsx +8 -2
  260. package/src/stacks/h_stack.stories.tsx +2 -2
  261. package/src/stacks/v_stack.stories.tsx +2 -2
  262. package/src/surfaces/card/card.stories.tsx +64 -0
  263. package/src/surfaces/card/card.tsx +4 -4
  264. package/src/surfaces/card/card_stories.module.css +13 -0
  265. package/src/surfaces/index.ts +4 -2
  266. package/src/surfaces/modal/__stories__/modal.stories.tsx +31 -28
  267. package/src/surfaces/modal/modal.module.css +2 -2
  268. package/src/surfaces/modal/modal.tsx +16 -11
  269. package/src/surfaces/panel/__stories__/panel.stories.tsx +1 -1
  270. package/src/surfaces/panel/v_panel.tsx +8 -53
  271. package/src/surfaces/pop_confirm/pop_confirm.stories.tsx +70 -0
  272. package/src/surfaces/pop_confirm/pop_confirm.tsx +30 -0
  273. package/src/surfaces/popconfirm/pop_confirm.tsx +18 -0
  274. package/src/surfaces/popover/popover.tsx +1 -1
  275. package/src/surfaces/tooltip/tooltip.stories.tsx +54 -0
  276. package/src/surfaces/tooltip/tooltip.tsx +59 -0
  277. package/src/surfaces/window/window.stories.tsx +51 -4
  278. package/src/surfaces/window/window.tsx +19 -7
  279. package/src/themes/themes/ergo/__stories__/components/tone_picker/sb_tone_picker.tsx +7 -9
  280. package/src/themes/themes/ergo/__stories__/material.stories.tsx +2 -6
  281. package/src/themes/themes/ergo/__stories__/sb_materials.module.css +29 -21
  282. package/src/themes/themes/ergo/ergo_theme.css +166 -158
  283. package/src/typography/title/title.tsx +22 -18
  284. package/src/utils/click_away_listener.tsx +1 -1
  285. package/src/utils/dnd/__stories__/draggable.stories.tsx +48 -0
  286. package/src/utils/dnd/__stories__/draggable_stories.module.css +21 -0
  287. package/src/utils/{__stories__ → dnd/__stories__}/use_draggable.stories.tsx +15 -10
  288. package/src/utils/dnd/context.ts +24 -0
  289. package/src/utils/dnd/draggable/draggable.module.css +8 -0
  290. package/src/utils/dnd/draggable/draggable.tsx +42 -0
  291. package/src/utils/dnd/handle.tsx +32 -0
  292. package/src/utils/dnd/hooks/use_drag_container.ts +42 -0
  293. package/src/utils/{hooks → dnd/hooks}/use_draggable.ts +23 -17
  294. package/src/utils/dnd/types.ts +6 -0
  295. package/src/utils/index.ts +7 -5
  296. package/src/utils/mouse_leave_region.tsx +38 -0
  297. package/src/utils/types/dimensions.ts +13 -1
  298. package/tsconfig.json +3 -0
  299. package/dist/overlay/popper/popper.d.ts.map +0 -1
  300. package/dist/overlay/popper/popper.js.map +0 -1
  301. package/dist/overlay/tooltip/tooltip.d.ts +0 -7
  302. package/dist/overlay/tooltip/tooltip.d.ts.map +0 -1
  303. package/dist/overlay/tooltip/tooltip.js +0 -20
  304. package/dist/overlay/tooltip/tooltip.js.map +0 -1
  305. package/dist/panel.module-DwGKncon.js +0 -5
  306. package/dist/panel.module-DwGKncon.js.map +0 -1
  307. package/dist/title.module-B16de2jd.js +0 -5
  308. package/dist/title.module-B16de2jd.js.map +0 -1
  309. package/dist/utils/hooks/use_draggable.d.ts.map +0 -1
  310. package/dist/utils/hooks/use_draggable.js +0 -30
  311. package/dist/utils/hooks/use_draggable.js.map +0 -1
  312. package/src/overlay/tooltip/tooltip.stories.tsx +0 -22
  313. package/src/overlay/tooltip/tooltip.tsx +0 -24
  314. /package/dist/{panel.css → h_panel.css} +0 -0
  315. /package/dist/overlay/popper/{popper.d.ts → legacy/popper.d.ts} +0 -0
  316. /package/src/overlay/popper/{popper.module.css → legacy/popper.module.css} +0 -0
  317. /package/src/{overlay → surfaces}/tooltip/tooltip.module.css +0 -0
package/README.md CHANGED
@@ -1,11 +1,46 @@
1
1
  # @tcn/ui
2
2
 
3
+ A comprehensive React component library providing a complete set of UI components for building modern web applications.
3
4
 
5
+ ## Overview
6
+
7
+ `@tcn/ui` is the main UI component package in the Blackcat design system. It provides a unified API with organized sub-exports for different component categories.
8
+
9
+ ## Usage
10
+
11
+ Import components from the main package or use sub-exports for better tree-shaking:
12
+
13
+ ```tsx
14
+ // Use sub-exports for better tree-shaking
15
+ import { Button } from '@tcn/ui/actions';
16
+ import { Input } from '@tcn/ui/inputs';
17
+ import { VStack } from '@tcn/ui/stacks';
18
+ ```
19
+
20
+ ## Available Sub-exports
21
+
22
+ - **`@tcn/ui/actions`** - Buttons, button groups, and action elements
23
+ - **`@tcn/ui/inputs`** - Text inputs, selects, date pickers, checkboxes, switches, and more
24
+ - **`@tcn/ui/form`** - Form fields, field sets, and form components
25
+ - **`@tcn/ui/layouts`** - Grid, columns, lists, headers, footers, and page structure
26
+ - **`@tcn/ui/stacks`** - Horizontal, vertical, and z-stack components
27
+ - **`@tcn/ui/overlay`** - Modals, tooltips, popovers, menus, and portals
28
+ - **`@tcn/ui/feedback`** - Loading indicators and progress bars
29
+ - **`@tcn/ui/surfaces`** - Cards, panels, drawers, modals, and windows
30
+ - **`@tcn/ui/typography`** - Text components, headings, and typography utilities
31
+ - **`@tcn/ui/tokens`** - Badges, bubbles, and chips
32
+ - **`@tcn/ui/themes`** - Theme system and preconfigured themes
33
+ - **`@tcn/ui/utils`** - Utility functions, hooks, and helpers
34
+ - **`@tcn/ui/dnd`** - Drag and drop utilities
4
35
 
5
36
  ## Scripts
6
37
 
7
- - build: `pnpm ws ui build`
8
- - storybook: `pnpm ws ui storybook`
9
- - test: `pnpm ws ui test`
38
+ - **build**: `pnpm ws ui build` - Build the package
39
+ - **storybook**: `pnpm ws ui start` - Start Storybook development server
40
+ - **test**: `pnpm ws ui test` - Run tests
41
+ - **check-all**: `pnpm ws ui check-all` - Run all checks (types, lint, format)
42
+
43
+ ## Development
10
44
 
45
+ Each component category is organized in its own directory under `src/` with its own index file for clean sub-exports. The package uses Vite for building and Storybook for component documentation.
11
46
 
@@ -0,0 +1,5 @@
1
+ import './divider.css';const i = "_divider_af0a0c6", e = "_divider-line_cae0189", d = { divider: i, "divider-line": e };
2
+ export {
3
+ d as s
4
+ };
5
+ //# sourceMappingURL=divider.module-FptFV0PX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.module-FptFV0PX.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1 @@
1
+ ._draggable_db40376{position:relative}._draggable_db40376[data-is-draggable=true]{left:var(--position-x);top:var(--position-y)}
@@ -7,7 +7,7 @@ import "../../caption.module-DDq0H4xZ.js";
7
7
  import "../../footnote.module-DEyFuqOr.js";
8
8
  import "../../headline.module-BiwHBtGf.js";
9
9
  import "../../subheadline.module-C-v7zMkQ.js";
10
- import "../../title.module-B16de2jd.js";
10
+ import "../../typography/title/title.js";
11
11
  import { HStack as l } from "../../stacks/h_stack.js";
12
12
  import { Spacer as a } from "../../stacks/spacer.js";
13
13
  import { VStack as d } from "../../stacks/v_stack.js";
@@ -6,7 +6,7 @@ import "../../../caption.module-DDq0H4xZ.js";
6
6
  import "../../../footnote.module-DEyFuqOr.js";
7
7
  import "../../../headline.module-BiwHBtGf.js";
8
8
  import "../../../subheadline.module-C-v7zMkQ.js";
9
- import "../../../title.module-B16de2jd.js";
9
+ import "../../../typography/title/title.js";
10
10
  const y = ({ children: r, id: t }) => r ? typeof r == "string" ? /* @__PURE__ */ o(
11
11
  i,
12
12
  {
@@ -6,7 +6,7 @@ import "../../../caption.module-DDq0H4xZ.js";
6
6
  import "../../../footnote.module-DEyFuqOr.js";
7
7
  import "../../../headline.module-BiwHBtGf.js";
8
8
  import "../../../subheadline.module-C-v7zMkQ.js";
9
- import "../../../title.module-B16de2jd.js";
9
+ import "../../../typography/title/title.js";
10
10
  import { theme as i } from "../../../themes/theme_variables.js";
11
11
  import "react";
12
12
  import "../../../themes/stylesheets/reset.js";
@@ -6,7 +6,7 @@ import "../../../caption.module-DDq0H4xZ.js";
6
6
  import "../../../footnote.module-DEyFuqOr.js";
7
7
  import "../../../headline.module-BiwHBtGf.js";
8
8
  import "../../../subheadline.module-C-v7zMkQ.js";
9
- import "../../../title.module-B16de2jd.js";
9
+ import "../../../typography/title/title.js";
10
10
  const x = ({ children: r, id: e, required: i }) => r ? typeof r == "string" ? /* @__PURE__ */ o(
11
11
  t,
12
12
  {
@@ -2,8 +2,8 @@ import { jsx as r, Fragment as a } from "react/jsx-runtime";
2
2
  import c, { useState as u } from "react";
3
3
  import { HField as F } from "./h_field/h_field.js";
4
4
  import { VField as R } from "./v_field/v_field.js";
5
- import "../../utils/focus_redirect.js";
6
5
  import "../../utils/click_away_listener.js";
6
+ import "../../utils/focus_redirect.js";
7
7
  import "../../utils/scroll_away_listener.js";
8
8
  import { useForkRef as l } from "../../utils/hooks/use_fork_ref.js";
9
9
  import { useResizeObserver as p } from "../../utils/hooks/use_resize_observer.js";
package/dist/frame.css ADDED
@@ -0,0 +1 @@
1
+ ._frame_ce82001{padding:0;border:none;background:none}
@@ -13,7 +13,7 @@ import "../../actions/button/select_group/select_group.js";
13
13
  import "../../actions/button/select_group/single_select_group.js";
14
14
  import { ColorPicker as B } from "./color_picker.js";
15
15
  import { Input as F } from "../input/input.js";
16
- import { Popper as j } from "../../overlay/popper/popper.js";
16
+ import { Popper as j } from "../../overlay/popper/legacy/popper.js";
17
17
  import '../../color_input.css';const z = "_checker-board_2cc94a9", K = "_color-input-select_abe3066", f = { "checker-board": z, "color-input-select": K };
18
18
  function rr({
19
19
  value: c = "#000",
@@ -1 +1 @@
1
- {"version":3,"file":"color_input.js","sources":["../../../src/inputs/color_input/color_input.tsx"],"sourcesContent":["import { Box } from '../../stacks/box/box.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { clsx } from 'clsx';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { HTMLAttributes } from 'react';\nimport { ColorState } from 'react-color';\nimport { Button } from '../../actions/index.js';\nimport { ColorPicker } from './color_picker.js';\nimport { Input } from '../input/input.js';\nimport styles from './color_input.module.css';\n\nimport { Popper } from '../../overlay/popper/popper.js';\n\nexport interface ColorInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: string;\n disabled?: boolean;\n onChange?: (color: string) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n hierarchy?: 'primary' | 'secondary' | 'tertiary';\n}\n\nexport function ColorInput({\n value = '#000',\n onChange,\n onError,\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n hierarchy = 'secondary',\n ...props\n}: ColorInputProps) {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\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 updateColor(value: ColorState) {\n const rgb = value.rgb;\n let color = value.hex;\n\n if (rgb.a != null) {\n color = `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.a})`;\n } else {\n color = `rgb(${rgb.r},${rgb.g},${rgb.b})`;\n }\n\n onChange && onChange(color);\n }\n\n return (\n <>\n <HStack\n height=\"auto\"\n width={width}\n minWidth={minWidth}\n maxWidth={maxWidth}\n className=\"color-input-wrapper\"\n {...props}\n >\n <ZStack width=\"flex\">\n <Input\n disabled={disabled}\n value={value}\n style={{\n borderEndEndRadius: 0,\n borderStartEndRadius: 0,\n textAlign: 'start',\n paddingInlineEnd: '8px',\n }}\n className=\"color-input\"\n onChange={onChange}\n />\n </ZStack>\n <Button\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width=\"70px\"\n maxWidth=\"70px\"\n className={clsx(styles['color-input-select'], 'color-input-select', 'select')}\n style={{\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n paddingInlineEnd: 0,\n }}\n >\n <HStack height=\"14px\" gap=\"4px\" hAlign=\"start\">\n <Spacer width=\"4px\" />\n <Box\n width=\"flex\"\n height=\"30px\"\n className={styles['checker-board']}\n style={{ borderRadius: '2px', overflow: 'hidden' }}\n >\n <Box\n height=\"100%\"\n style={{ backgroundColor: value, borderRadius: '2px' }}\n ></Box>\n </Box>\n <Spacer />\n </HStack>\n <Spacer width=\"4px\" />\n </Button>\n </HStack>\n <Popper\n anchorElement={anchorElement}\n onClose={closePicker}\n open={isOpen}\n restoreFocus\n horizontalAnchor=\"end\"\n horizontalOrigin=\"end\"\n >\n <ColorPicker\n color={value}\n onKeyDown={processKeyInput}\n onColorChange={updateColor}\n />\n </Popper>\n </>\n );\n}\n"],"names":["ColorInput","value","onChange","onError","disabled","width","maxWidth","minWidth","hierarchy","props","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","updateColor","rgb","color","jsxs","Fragment","HStack","jsx","ZStack","Input","Button","clsx","styles","Spacer","Box","Popper","ColorPicker"],"mappings":"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"}
1
+ {"version":3,"file":"color_input.js","sources":["../../../src/inputs/color_input/color_input.tsx"],"sourcesContent":["import { Box } from '../../stacks/box/box.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { clsx } from 'clsx';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { HTMLAttributes } from 'react';\nimport { ColorState } from 'react-color';\nimport { Button } from '../../actions/index.js';\nimport { ColorPicker } from './color_picker.js';\nimport { Input } from '../input/input.js';\nimport styles from './color_input.module.css';\n\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\n\nexport interface ColorInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: string;\n disabled?: boolean;\n onChange?: (color: string) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n hierarchy?: 'primary' | 'secondary' | 'tertiary';\n}\n\nexport function ColorInput({\n value = '#000',\n onChange,\n onError,\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n hierarchy = 'secondary',\n ...props\n}: ColorInputProps) {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\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 updateColor(value: ColorState) {\n const rgb = value.rgb;\n let color = value.hex;\n\n if (rgb.a != null) {\n color = `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.a})`;\n } else {\n color = `rgb(${rgb.r},${rgb.g},${rgb.b})`;\n }\n\n onChange && onChange(color);\n }\n\n return (\n <>\n <HStack\n height=\"auto\"\n width={width}\n minWidth={minWidth}\n maxWidth={maxWidth}\n className=\"color-input-wrapper\"\n {...props}\n >\n <ZStack width=\"flex\">\n <Input\n disabled={disabled}\n value={value}\n style={{\n borderEndEndRadius: 0,\n borderStartEndRadius: 0,\n textAlign: 'start',\n paddingInlineEnd: '8px',\n }}\n className=\"color-input\"\n onChange={onChange}\n />\n </ZStack>\n <Button\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width=\"70px\"\n maxWidth=\"70px\"\n className={clsx(styles['color-input-select'], 'color-input-select', 'select')}\n style={{\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n paddingInlineEnd: 0,\n }}\n >\n <HStack height=\"14px\" gap=\"4px\" hAlign=\"start\">\n <Spacer width=\"4px\" />\n <Box\n width=\"flex\"\n height=\"30px\"\n className={styles['checker-board']}\n style={{ borderRadius: '2px', overflow: 'hidden' }}\n >\n <Box\n height=\"100%\"\n style={{ backgroundColor: value, borderRadius: '2px' }}\n ></Box>\n </Box>\n <Spacer />\n </HStack>\n <Spacer width=\"4px\" />\n </Button>\n </HStack>\n <Popper\n anchorElement={anchorElement}\n onClose={closePicker}\n open={isOpen}\n restoreFocus\n horizontalAnchor=\"end\"\n horizontalOrigin=\"end\"\n >\n <ColorPicker\n color={value}\n onKeyDown={processKeyInput}\n onColorChange={updateColor}\n />\n </Popper>\n </>\n );\n}\n"],"names":["ColorInput","value","onChange","onError","disabled","width","maxWidth","minWidth","hierarchy","props","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","updateColor","rgb","color","jsxs","Fragment","HStack","jsx","ZStack","Input","Button","clsx","styles","Spacer","Box","Popper","ColorPicker"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import "../../utils/focus_redirect.js";
3
2
  import "../../utils/click_away_listener.js";
3
+ import "../../utils/focus_redirect.js";
4
4
  import "../../utils/scroll_away_listener.js";
5
5
  import s, { useRef as n, useLayoutEffect as a } from "react";
6
6
  import { useForkRef as k } from "../../utils/hooks/use_fork_ref.js";
@@ -1,6 +1,6 @@
1
1
  import { jsxs as D, Fragment as L, jsx as S } from "react/jsx-runtime";
2
- import "../../utils/focus_redirect.js";
3
2
  import "../../utils/click_away_listener.js";
3
+ import "../../utils/focus_redirect.js";
4
4
  import "../../utils/scroll_away_listener.js";
5
5
  import N, { useRef as s, useState as x } from "react";
6
6
  import { useForkRef as V } from "../../utils/hooks/use_fork_ref.js";
@@ -1,7 +1,7 @@
1
1
  import { jsxs as l, jsx as n, Fragment as T } from "react/jsx-runtime";
2
2
  import { useSignalValue as y, useSignalValueEffect as B } from "@tcn/state";
3
- import "../../utils/focus_redirect.js";
4
3
  import "../../utils/click_away_listener.js";
4
+ import "../../utils/focus_redirect.js";
5
5
  import "../../utils/scroll_away_listener.js";
6
6
  import Y, { useState as R, useRef as L, useLayoutEffect as r } from "react";
7
7
  import { useResizeObserver as O } from "../../utils/hooks/use_resize_observer.js";
@@ -7,7 +7,7 @@ import "../../caption.module-DDq0H4xZ.js";
7
7
  import "../../footnote.module-DEyFuqOr.js";
8
8
  import "../../headline.module-BiwHBtGf.js";
9
9
  import "../../subheadline.module-C-v7zMkQ.js";
10
- import "../../title.module-B16de2jd.js";
10
+ import "../../typography/title/title.js";
11
11
  import { ZStack as M } from "../../stacks/z_stack.js";
12
12
  import '../../date_picker_date.css';const B = "_date-picker-date_38d540e", _ = "_date-picker-today_af9d1ab", k = { "date-picker-date": B, "date-picker-today": _ };
13
13
  function C({ presenter: i, date: t }) {
@@ -6,7 +6,7 @@ import "../../caption.module-DDq0H4xZ.js";
6
6
  import "../../footnote.module-DEyFuqOr.js";
7
7
  import { Headline as m } from "../../typography/headline/headline.js";
8
8
  import "../../subheadline.module-C-v7zMkQ.js";
9
- import "../../title.module-B16de2jd.js";
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
12
  import '../../date_picker_day.css';const c = "_date-picker-day_2945845", r = { "date-picker-day": c };
@@ -1,7 +1,7 @@
1
1
  import { jsxs as m, Fragment as q, jsx as o } from "react/jsx-runtime";
2
2
  import B, { useState as L, useRef as M, useCallback as V, useMemo as W, useLayoutEffect as Z } from "react";
3
3
  import { ZStack as G } from "../../stacks/z_stack.js";
4
- import { Popper as H } from "../../overlay/popper/popper.js";
4
+ import { Popper as H } from "../../overlay/popper/legacy/popper.js";
5
5
  import { clsx as u } from "clsx";
6
6
  import "../../actions/button/base_button/base_button.js";
7
7
  import "../../actions/button/button_group/button_group.js";
@@ -10,8 +10,8 @@ import { Button as J } from "../../actions/button/button/button.js";
10
10
  import "../../actions/button/select_group/select_group.js";
11
11
  import "../../actions/button/select_group/single_select_group.js";
12
12
  import { DatePicker as Q } from "./date_picker.js";
13
- import { FocusRedirect as T } from "../../utils/focus_redirect.js";
14
13
  import "../../utils/click_away_listener.js";
14
+ import { FocusRedirect as T } from "../../utils/focus_redirect.js";
15
15
  import "../../utils/scroll_away_listener.js";
16
16
  import "../../utils/hooks/use_resize_observer.js";
17
17
  import '../../date_picker_input.css';const U = "_button_f404820", X = "_popover_708f951", f = { button: U, popover: X }, ht = B.forwardRef(
@@ -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/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('.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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"}
@@ -14,7 +14,7 @@ import "../../caption.module-DDq0H4xZ.js";
14
14
  import "../../footnote.module-DEyFuqOr.js";
15
15
  import "../../headline.module-BiwHBtGf.js";
16
16
  import "../../subheadline.module-C-v7zMkQ.js";
17
- import "../../title.module-B16de2jd.js";
17
+ import "../../typography/title/title.js";
18
18
  import { ClockIcon as j } from "@tcn/icons/clock_icon.js";
19
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 };
20
20
  function it({
@@ -7,7 +7,7 @@ import "../../actions/button/select_group/select_group.js";
7
7
  import "../../actions/button/select_group/single_select_group.js";
8
8
  import { clsx as d } from "clsx";
9
9
  import { useState as n } from "react";
10
- import { Popper as y } from "../../overlay/popper/popper.js";
10
+ import { Popper as y } from "../../overlay/popper/legacy/popper.js";
11
11
  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 };
@@ -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/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('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;"}
@@ -19,9 +19,9 @@ import "../../caption.module-DDq0H4xZ.js";
19
19
  import "../../footnote.module-DEyFuqOr.js";
20
20
  import { Headline as M } from "../../typography/headline/headline.js";
21
21
  import "../../subheadline.module-C-v7zMkQ.js";
22
- import "../../title.module-B16de2jd.js";
23
- import { FocusRedirect as T } from "../../utils/focus_redirect.js";
22
+ import "../../typography/title/title.js";
24
23
  import "../../utils/click_away_listener.js";
24
+ import { FocusRedirect as T } from "../../utils/focus_redirect.js";
25
25
  import "../../utils/scroll_away_listener.js";
26
26
  import "../../utils/hooks/use_resize_observer.js";
27
27
  import '../../date_picker_year_selector.css';const q = "_date-picker-year-selector_ab05e1f", A = "_date-picker-year-button_fded757", Y = { "date-picker-year-selector": q, "date-picker-year-button": A };
@@ -1,6 +1,6 @@
1
1
  import { jsx as L } from "react/jsx-runtime";
2
- import "../../utils/focus_redirect.js";
3
2
  import "../../utils/click_away_listener.js";
3
+ import "../../utils/focus_redirect.js";
4
4
  import "../../utils/scroll_away_listener.js";
5
5
  import j, { useRef as e } from "react";
6
6
  import { useForkRef as B } from "../../utils/hooks/use_fork_ref.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx as V } from "react/jsx-runtime";
2
2
  import { useSignalValue as B } from "@tcn/state";
3
- import "../../utils/focus_redirect.js";
4
3
  import "../../utils/click_away_listener.js";
4
+ import "../../utils/focus_redirect.js";
5
5
  import "../../utils/scroll_away_listener.js";
6
6
  import A, { useRef as I, useState as j, useLayoutEffect as p } from "react";
7
7
  import { useForkRef as K } from "../../utils/hooks/use_fork_ref.js";
@@ -6,8 +6,8 @@ import { MultiselectInlineValues as N } from "./multiselect_inline_values.js";
6
6
  import { MultiselectValues as _ } from "./multiselect_values.js";
7
7
  import { makeAvailableOptions as g, makeValuesAsOptions as I } from "../options/utils.js";
8
8
  import { Select as S } from "../select/select.js";
9
- import "../../utils/focus_redirect.js";
10
9
  import "../../utils/click_away_listener.js";
10
+ import "../../utils/focus_redirect.js";
11
11
  import "../../utils/scroll_away_listener.js";
12
12
  import { useForkRef as L } from "../../utils/hooks/use_fork_ref.js";
13
13
  import "../../utils/hooks/use_resize_observer.js";
@@ -3,6 +3,8 @@ import { default as React } from 'react';
3
3
  import { OptionProps } from '../options/option.js';
4
4
  export interface PhoneNumberInputProps extends Omit<HStackProps, 'onChange' | 'children'> {
5
5
  value?: string;
6
+ name?: string;
7
+ autoComplete?: string;
6
8
  defaultCountry?: string;
7
9
  /**
8
10
  * Callback fired when the phone number value changes.
@@ -1 +1 @@
1
- {"version":3,"file":"phone_number_input.d.ts","sourceRoot":"","sources":["../../../src/inputs/phone_number_input/phone_number_input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAU,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAiG3D,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChD,mBAAmB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;CAChF;AAED,eAAO,MAAM,gBAAgB,2FAkR3B,CAAC"}
1
+ {"version":3,"file":"phone_number_input.d.ts","sourceRoot":"","sources":["../../../src/inputs/phone_number_input/phone_number_input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAU,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAiG3D,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChD,mBAAmB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;CAChF;AAED,eAAO,MAAM,gBAAgB,2FAwR3B,CAAC"}