@tcn/ui 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/dist/Color-ASIRERSW-B4GaVKuQ.js +990 -0
  2. package/dist/Color-ASIRERSW-B4GaVKuQ.js.map +1 -0
  3. package/dist/WithTooltip-IO6J4KBT-B1oq93K5.js +1485 -0
  4. package/dist/WithTooltip-IO6J4KBT-B1oq93K5.js.map +1 -0
  5. package/dist/actions/__docs__/components/gallery.d.ts +8 -0
  6. package/dist/actions/__docs__/components/gallery.d.ts.map +1 -0
  7. package/dist/actions/__docs__/components/gallery.js +20 -0
  8. package/dist/actions/__docs__/components/gallery.js.map +1 -0
  9. package/dist/actions/__docs__/components/showcase.d.ts +27 -0
  10. package/dist/actions/__docs__/components/showcase.d.ts.map +1 -0
  11. package/dist/actions/__docs__/components/showcase.js +15 -0
  12. package/dist/actions/__docs__/components/showcase.js.map +1 -0
  13. package/dist/actions/button/base_button/base_button.d.ts +2 -0
  14. package/dist/actions/button/base_button/base_button.d.ts.map +1 -1
  15. package/dist/actions/button/base_button/base_button.js +18 -16
  16. package/dist/actions/button/base_button/base_button.js.map +1 -1
  17. package/dist/actions/button/button/button.js +6 -6
  18. package/dist/actions/button/button_group/button_group.js +1 -1
  19. package/dist/actions/button/select_group/select_group.js +13 -13
  20. package/dist/actions/button/select_group/single_select_group.js +6 -6
  21. package/dist/actions/button/slim_button/slim_button.js +2 -2
  22. package/dist/actions/types.d.ts +2 -0
  23. package/dist/actions/types.d.ts.map +1 -0
  24. package/dist/actions/types.js +2 -0
  25. package/dist/actions/types.js.map +1 -0
  26. package/dist/divider.module-FptFV0PX.js +5 -0
  27. package/dist/divider.module-FptFV0PX.js.map +1 -0
  28. package/dist/feedback/loading/loading.js +12 -12
  29. package/dist/feedback/loading/loading.js.map +1 -1
  30. package/dist/feedback/progress/progress_bar.js +1 -1
  31. package/dist/form/field/common/field_control/field_control.js +8 -8
  32. package/dist/form/field/common/status_input/status_input.js +6 -6
  33. package/dist/form/field/field.js +6 -6
  34. package/dist/form/field/h_field/h_field.js +11 -11
  35. package/dist/form/field/v_field/v_field.js +10 -10
  36. package/dist/form/field_set/field_set.js +3 -3
  37. package/dist/formatter-QJ4M4OGQ-DaIl2Wi_.js +6 -0
  38. package/dist/formatter-QJ4M4OGQ-DaIl2Wi_.js.map +1 -0
  39. package/dist/frame.css +1 -0
  40. package/dist/gallery.css +1 -0
  41. package/dist/inputs/checkbox/checkbox.js +11 -11
  42. package/dist/inputs/color_input/color_input.js +1 -1
  43. package/dist/inputs/color_input/color_input.js.map +1 -1
  44. package/dist/inputs/color_input/color_picker.js +6 -6
  45. package/dist/inputs/combo_box/combo_box.js +17 -17
  46. package/dist/inputs/date_picker/date_picker.js +19 -19
  47. package/dist/inputs/date_picker/date_picker_body.js +2 -2
  48. package/dist/inputs/date_picker/date_picker_input.js +20 -20
  49. package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
  50. package/dist/inputs/date_picker/date_picker_year_input.js +1 -1
  51. package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
  52. package/dist/inputs/date_picker/date_picker_year_selector.js +1 -1
  53. package/dist/inputs/input/input.js +5 -5
  54. package/dist/inputs/mask_input/key_capture_input.js +8 -8
  55. package/dist/inputs/mask_input/mask_input.js +5 -5
  56. package/dist/inputs/multi_combo_box/multi_combo_box.js +17 -17
  57. package/dist/inputs/multiselect/multiselect.js +14 -14
  58. package/dist/inputs/multiselect/multiselect_row.js +8 -8
  59. package/dist/inputs/phone_number_input/phone_number_input.js +12 -12
  60. package/dist/inputs/radio/radio.js +10 -10
  61. package/dist/inputs/radio/radio_row.js +3 -3
  62. package/dist/inputs/select/select.js +15 -15
  63. package/dist/inputs/slider/slider.js +11 -11
  64. package/dist/inputs/suggestions/suggestion_list.js +2 -2
  65. package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
  66. package/dist/inputs/switch/switch.js +5 -5
  67. package/dist/inputs/textarea/textarea.js +7 -7
  68. package/dist/inputs/unit_input/unit_input.js +5 -5
  69. package/dist/layouts/body/h_body.js +7 -7
  70. package/dist/layouts/body/v_body.js +6 -6
  71. package/dist/layouts/column/column.js +17 -17
  72. package/dist/layouts/divider/divider.js +24 -23
  73. package/dist/layouts/divider/divider.js.map +1 -1
  74. package/dist/layouts/footer/footer.js +7 -7
  75. package/dist/layouts/grid/grid.js +24 -24
  76. package/dist/layouts/header/header.js +2 -2
  77. package/dist/layouts/index.d.ts +6 -5
  78. package/dist/layouts/index.d.ts.map +1 -1
  79. package/dist/layouts/index.js +28 -26
  80. package/dist/layouts/index.js.map +1 -1
  81. package/dist/layouts/list/item.js +2 -2
  82. package/dist/layouts/list/list.js +7 -7
  83. package/dist/layouts/list/section_header.js +6 -6
  84. package/dist/layouts/scaffold/scaffold.d.ts +9 -0
  85. package/dist/layouts/scaffold/scaffold.d.ts.map +1 -0
  86. package/dist/layouts/scaffold/scaffold.js +55 -0
  87. package/dist/layouts/scaffold/scaffold.js.map +1 -0
  88. package/dist/layouts/sidebar_end/sidebar_end.js +14 -14
  89. package/dist/layouts/sidebar_start/sidebar_start.js +10 -10
  90. package/dist/layouts/utility_bar/utility_bar.js +10 -10
  91. package/dist/modal.css +1 -1
  92. package/dist/overlay/frame/frame.d.ts.map +1 -1
  93. package/dist/overlay/frame/frame.js +22 -5
  94. package/dist/overlay/frame/frame.js.map +1 -1
  95. package/dist/overlay/index.d.ts +9 -2
  96. package/dist/overlay/index.d.ts.map +1 -1
  97. package/dist/overlay/index.js +22 -10
  98. package/dist/overlay/index.js.map +1 -1
  99. package/dist/overlay/menu/menu.d.ts +1 -1
  100. package/dist/overlay/menu/menu.d.ts.map +1 -1
  101. package/dist/overlay/menu/menu.js +36 -36
  102. package/dist/overlay/menu/menu.js.map +1 -1
  103. package/dist/overlay/popper/base/base_popper.d.ts +11 -0
  104. package/dist/overlay/popper/base/base_popper.d.ts.map +1 -0
  105. package/dist/overlay/popper/base/base_popper.js +27 -0
  106. package/dist/overlay/popper/base/base_popper.js.map +1 -0
  107. package/dist/overlay/popper/base/dismissal_decorator.d.ts +16 -0
  108. package/dist/overlay/popper/base/dismissal_decorator.d.ts.map +1 -0
  109. package/dist/overlay/popper/base/dismissal_decorator.js +69 -0
  110. package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -0
  111. package/dist/overlay/popper/context_popper.d.ts +11 -0
  112. package/dist/overlay/popper/context_popper.d.ts.map +1 -0
  113. package/dist/overlay/popper/context_popper.js +33 -0
  114. package/dist/overlay/popper/context_popper.js.map +1 -0
  115. package/dist/overlay/popper/element_popper.d.ts +7 -0
  116. package/dist/overlay/popper/element_popper.d.ts.map +1 -0
  117. package/dist/overlay/popper/element_popper.js +33 -0
  118. package/dist/overlay/popper/element_popper.js.map +1 -0
  119. package/dist/overlay/popper/hooks/use_context_trigger.d.ts +7 -0
  120. package/dist/overlay/popper/hooks/use_context_trigger.d.ts.map +1 -0
  121. package/dist/overlay/popper/hooks/use_context_trigger.js +31 -0
  122. package/dist/overlay/popper/hooks/use_context_trigger.js.map +1 -0
  123. package/dist/overlay/popper/hooks/use_hover_trigger.d.ts +6 -0
  124. package/dist/overlay/popper/hooks/use_hover_trigger.d.ts.map +1 -0
  125. package/dist/overlay/popper/hooks/use_hover_trigger.js +17 -0
  126. package/dist/overlay/popper/hooks/use_hover_trigger.js.map +1 -0
  127. package/dist/overlay/popper/hooks/use_restore_focus.d.ts +2 -0
  128. package/dist/overlay/popper/hooks/use_restore_focus.d.ts.map +1 -0
  129. package/dist/overlay/popper/hooks/use_restore_focus.js +18 -0
  130. package/dist/overlay/popper/hooks/use_restore_focus.js.map +1 -0
  131. package/dist/overlay/popper/legacy/popper.d.ts.map +1 -0
  132. package/dist/overlay/popper/{popper.js → legacy/popper.js} +6 -6
  133. package/dist/overlay/popper/legacy/popper.js.map +1 -0
  134. package/dist/overlay/popper/preview_popper.d.ts +7 -0
  135. package/dist/overlay/popper/preview_popper.d.ts.map +1 -0
  136. package/dist/overlay/popper/preview_popper.js +46 -0
  137. package/dist/overlay/popper/preview_popper.js.map +1 -0
  138. package/dist/overlay/portal/portal_platform_context.js +4 -4
  139. package/dist/overlay/tethered/element_tethered.d.ts +8 -0
  140. package/dist/overlay/tethered/element_tethered.d.ts.map +1 -0
  141. package/dist/overlay/tethered/element_tethered.js +33 -0
  142. package/dist/overlay/tethered/element_tethered.js.map +1 -0
  143. package/dist/overlay/tethered/hooks/calculate_position.d.ts +19 -0
  144. package/dist/overlay/tethered/hooks/calculate_position.d.ts.map +1 -0
  145. package/dist/overlay/tethered/hooks/calculate_position.js +43 -0
  146. package/dist/overlay/tethered/hooks/calculate_position.js.map +1 -0
  147. package/dist/overlay/tethered/hooks/useTether.d.ts +19 -0
  148. package/dist/overlay/tethered/hooks/useTether.d.ts.map +1 -0
  149. package/dist/overlay/tethered/hooks/useTether.js +61 -0
  150. package/dist/overlay/tethered/hooks/useTether.js.map +1 -0
  151. package/dist/overlay/tethered/tethered.d.ts +20 -0
  152. package/dist/overlay/tethered/tethered.d.ts.map +1 -0
  153. package/dist/overlay/tethered/tethered.js +59 -0
  154. package/dist/overlay/tethered/tethered.js.map +1 -0
  155. package/dist/overlay/tethered/types.d.ts +3 -0
  156. package/dist/overlay/tethered/types.d.ts.map +1 -0
  157. package/dist/overlay/tethered/types.js +2 -0
  158. package/dist/overlay/tethered/types.js.map +1 -0
  159. package/dist/popper.css +1 -1
  160. package/dist/scaffold.css +1 -0
  161. package/dist/showcase-WfP6kBEb.js +58401 -0
  162. package/dist/showcase-WfP6kBEb.js.map +1 -0
  163. package/dist/showcase.css +1 -0
  164. package/dist/stacks/box/box.js +24 -24
  165. package/dist/stacks/h_collapsible_box.js +3 -3
  166. package/dist/stacks/h_stack.js +41 -41
  167. package/dist/stacks/spacer.js +11 -11
  168. package/dist/stacks/story_components/circle.js +10 -10
  169. package/dist/stacks/story_components/picture_placeholder.js +9 -9
  170. package/dist/stacks/story_components/rect.js +7 -7
  171. package/dist/stacks/story_components/style_box.js +4 -4
  172. package/dist/stacks/utils/use_is_collapsed.js +6 -6
  173. package/dist/stacks/v_collapsible_box.js +3 -3
  174. package/dist/stacks/v_stack.js +42 -42
  175. package/dist/stacks/z_stack.js +39 -39
  176. package/dist/surfaces/alert/alert.js +4 -4
  177. package/dist/surfaces/card/card.d.ts +2 -2
  178. package/dist/surfaces/card/card.d.ts.map +1 -1
  179. package/dist/surfaces/card/card.js +7 -7
  180. package/dist/surfaces/card/card.js.map +1 -1
  181. package/dist/surfaces/confirm/confirm.js +9 -9
  182. package/dist/surfaces/drawers/drawer_start/drawer_start.js +2 -2
  183. package/dist/surfaces/drawers/drawer_top/drawer_top.js +2 -2
  184. package/dist/surfaces/index.d.ts +2 -0
  185. package/dist/surfaces/index.d.ts.map +1 -1
  186. package/dist/surfaces/index.js +22 -18
  187. package/dist/surfaces/index.js.map +1 -1
  188. package/dist/surfaces/modal/modal.d.ts +3 -3
  189. package/dist/surfaces/modal/modal.d.ts.map +1 -1
  190. package/dist/surfaces/modal/modal.js +14 -14
  191. package/dist/surfaces/modal/modal.js.map +1 -1
  192. package/dist/surfaces/page/h_page.js +7 -7
  193. package/dist/surfaces/page/v_page.js +5 -5
  194. package/dist/surfaces/panel/h_panel.js +29 -30
  195. package/dist/surfaces/panel/h_panel.js.map +1 -1
  196. package/dist/surfaces/panel/v_panel.d.ts +3 -7
  197. package/dist/surfaces/panel/v_panel.d.ts.map +1 -1
  198. package/dist/surfaces/panel/v_panel.js +12 -54
  199. package/dist/surfaces/panel/v_panel.js.map +1 -1
  200. package/dist/surfaces/pop_confirm/pop_confirm.d.ts +5 -0
  201. package/dist/surfaces/pop_confirm/pop_confirm.d.ts.map +1 -0
  202. package/dist/surfaces/pop_confirm/pop_confirm.js +37 -0
  203. package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -0
  204. package/dist/surfaces/popconfirm/pop_confirm.d.ts +5 -0
  205. package/dist/surfaces/popconfirm/pop_confirm.d.ts.map +1 -0
  206. package/dist/surfaces/popconfirm/pop_confirm.js +13 -0
  207. package/dist/surfaces/popconfirm/pop_confirm.js.map +1 -0
  208. package/dist/surfaces/popover/popover.d.ts +1 -1
  209. package/dist/surfaces/popover/popover.d.ts.map +1 -1
  210. package/dist/surfaces/popover/popover.js +1 -1
  211. package/dist/surfaces/popover/popover.js.map +1 -1
  212. package/dist/surfaces/tooltip/tooltip.d.ts +10 -0
  213. package/dist/surfaces/tooltip/tooltip.d.ts.map +1 -0
  214. package/dist/surfaces/tooltip/tooltip.js +38 -0
  215. package/dist/surfaces/tooltip/tooltip.js.map +1 -0
  216. package/dist/surfaces/window/window.d.ts +3 -3
  217. package/dist/surfaces/window/window.d.ts.map +1 -1
  218. package/dist/surfaces/window/window.js +15 -13
  219. package/dist/surfaces/window/window.js.map +1 -1
  220. package/dist/syntaxhighlighter-IQDEPFLK-BX_eF8__.js +3777 -0
  221. package/dist/syntaxhighlighter-IQDEPFLK-BX_eF8__.js.map +1 -0
  222. package/dist/tethered.css +1 -0
  223. package/dist/themes/themes/ergo/ergo_theme.js +177 -206
  224. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  225. package/dist/tokens/badge/badge.js +9 -9
  226. package/dist/tokens/bubble/bubble.js +8 -8
  227. package/dist/tokens/chip/chip.js +3 -3
  228. package/dist/tooltip.css +1 -1
  229. package/dist/utility_bar.css +1 -1
  230. package/dist/utils/click_away_listener.d.ts +1 -0
  231. package/dist/utils/click_away_listener.d.ts.map +1 -1
  232. package/dist/utils/click_away_listener.js +12 -11
  233. package/dist/utils/click_away_listener.js.map +1 -1
  234. package/dist/utils/dnd/draggable/draggable.js +4 -4
  235. package/dist/utils/dnd/handle.js +8 -8
  236. package/dist/utils/focus_redirect.js +5 -5
  237. package/dist/utils/hooks/make_context_hook.js +4 -4
  238. package/dist/utils/hooks/use_media_query.js +2 -2
  239. package/dist/utils/hooks/use_media_query.js.map +1 -1
  240. package/dist/utils/index.d.ts +6 -5
  241. package/dist/utils/index.d.ts.map +1 -1
  242. package/dist/utils/index.js +26 -23
  243. package/dist/utils/index.js.map +1 -1
  244. package/dist/utils/mouse_leave_region.d.ts +8 -0
  245. package/dist/utils/mouse_leave_region.d.ts.map +1 -0
  246. package/dist/utils/mouse_leave_region.js +26 -0
  247. package/dist/utils/mouse_leave_region.js.map +1 -0
  248. package/dist/utils/types/dimensions.d.ts +11 -1
  249. package/dist/utils/types/dimensions.d.ts.map +1 -1
  250. package/package.json +3 -3
  251. package/src/actions/__docs__/actions.mdx +131 -0
  252. package/src/actions/__docs__/actions.stories.tsx +309 -0
  253. package/src/actions/__docs__/components/gallery.module.css +6 -0
  254. package/src/actions/__docs__/components/gallery.tsx +28 -0
  255. package/src/actions/__docs__/components/showcase.module.css +55 -0
  256. package/src/actions/__docs__/components/showcase.tsx +121 -0
  257. package/src/actions/button/base_button/base_button.tsx +5 -1
  258. package/src/actions/types.ts +6 -0
  259. package/src/inputs/color_input/color_input.tsx +1 -1
  260. package/src/inputs/date_picker/date_picker_input.tsx +1 -1
  261. package/src/inputs/date_picker/date_picker_year_input.tsx +1 -1
  262. package/src/inputs/suggestions/suggestion_list.tsx +1 -1
  263. package/src/layouts/index.ts +7 -5
  264. package/src/layouts/scaffold/scaffold.module.css +5 -0
  265. package/src/layouts/scaffold/scaffold.tsx +60 -0
  266. package/src/layouts/utility_bar/utility_bar.module.css +0 -3
  267. package/src/overlay/frame/frame.module.css +5 -0
  268. package/src/overlay/frame/frame.stories.tsx +1 -1
  269. package/src/overlay/frame/frame.tsx +19 -3
  270. package/src/overlay/index.ts +29 -2
  271. package/src/overlay/menu/menu.tsx +1 -1
  272. package/src/overlay/popper/__stories__/base_args.ts +75 -0
  273. package/src/overlay/popper/__stories__/context_popper.stories.tsx +77 -0
  274. package/src/overlay/popper/__stories__/element_popper.stories.tsx +80 -0
  275. package/src/overlay/popper/__stories__/preview_popper.stories.tsx +73 -0
  276. package/src/overlay/popper/base/base_popper.tsx +55 -0
  277. package/src/overlay/popper/base/dismissal_decorator.tsx +80 -0
  278. package/src/overlay/popper/context_popper.tsx +43 -0
  279. package/src/overlay/popper/element_popper.tsx +42 -0
  280. package/src/overlay/popper/hooks/use_context_trigger.ts +50 -0
  281. package/src/overlay/popper/hooks/use_hover_trigger.ts +24 -0
  282. package/src/overlay/popper/hooks/use_restore_focus.ts +16 -0
  283. package/src/overlay/popper/{popper.stories.tsx → legacy/popper.stories.tsx} +11 -5
  284. package/src/overlay/popper/{popper.tsx → legacy/popper.tsx} +3 -2
  285. package/src/overlay/popper/preview_popper.tsx +54 -0
  286. package/src/overlay/tethered/__stories__/element/element_tethered.stories.tsx +57 -0
  287. package/src/overlay/tethered/__stories__/element/element_tethered_stories.module.css +14 -0
  288. package/src/overlay/tethered/__stories__/shared/base_story_config.ts +52 -0
  289. package/src/overlay/tethered/__stories__/shared/components/sb_point.module.css +20 -0
  290. package/src/overlay/tethered/__stories__/shared/components/sb_point.tsx +34 -0
  291. package/src/overlay/tethered/__stories__/shared/components/sb_reference_points.tsx +54 -0
  292. package/src/overlay/tethered/__stories__/tethered/tethered.stories.tsx +90 -0
  293. package/src/overlay/tethered/__stories__/tethered/tethered_stories.module.css +25 -0
  294. package/src/overlay/tethered/element_tethered.tsx +62 -0
  295. package/src/overlay/tethered/hooks/calculate_position.ts +110 -0
  296. package/src/overlay/tethered/hooks/useTether.ts +85 -0
  297. package/src/overlay/tethered/tethered.module.css +8 -0
  298. package/src/overlay/tethered/tethered.tsx +72 -0
  299. package/src/overlay/tethered/types.ts +2 -0
  300. package/src/stacks/h_stack.stories.tsx +2 -2
  301. package/src/stacks/v_stack.stories.tsx +2 -2
  302. package/src/surfaces/card/card.stories.tsx +64 -0
  303. package/src/surfaces/card/card.tsx +4 -4
  304. package/src/surfaces/card/card_stories.module.css +13 -0
  305. package/src/surfaces/index.ts +2 -0
  306. package/src/surfaces/modal/__stories__/modal.stories.tsx +12 -1
  307. package/src/surfaces/modal/modal.module.css +2 -2
  308. package/src/surfaces/modal/modal.tsx +14 -12
  309. package/src/surfaces/panel/__stories__/panel.stories.tsx +1 -1
  310. package/src/surfaces/panel/v_panel.tsx +8 -53
  311. package/src/surfaces/pop_confirm/pop_confirm.stories.tsx +70 -0
  312. package/src/surfaces/pop_confirm/pop_confirm.tsx +30 -0
  313. package/src/surfaces/popconfirm/pop_confirm.tsx +18 -0
  314. package/src/surfaces/popover/popover.tsx +1 -1
  315. package/src/surfaces/tooltip/tooltip.stories.tsx +54 -0
  316. package/src/surfaces/tooltip/tooltip.tsx +59 -0
  317. package/src/surfaces/window/window.stories.tsx +15 -1
  318. package/src/surfaces/window/window.tsx +16 -12
  319. package/src/themes/themes/ergo/__stories__/components/tone_picker/sb_tone_picker.tsx +7 -9
  320. package/src/themes/themes/ergo/__stories__/material.stories.tsx +2 -6
  321. package/src/themes/themes/ergo/__stories__/sb_materials.module.css +29 -21
  322. package/src/themes/themes/ergo/ergo_theme.css +177 -206
  323. package/src/utils/click_away_listener.tsx +1 -1
  324. package/src/utils/index.ts +7 -5
  325. package/src/utils/mouse_leave_region.tsx +38 -0
  326. package/src/utils/types/dimensions.ts +13 -1
  327. package/tsconfig.json +3 -0
  328. package/dist/overlay/popper/popper.d.ts.map +0 -1
  329. package/dist/overlay/popper/popper.js.map +0 -1
  330. package/dist/overlay/tooltip/tooltip.d.ts +0 -7
  331. package/dist/overlay/tooltip/tooltip.d.ts.map +0 -1
  332. package/dist/overlay/tooltip/tooltip.js +0 -20
  333. package/dist/overlay/tooltip/tooltip.js.map +0 -1
  334. package/dist/panel.module-DwGKncon.js +0 -5
  335. package/dist/panel.module-DwGKncon.js.map +0 -1
  336. package/src/overlay/tooltip/tooltip.stories.tsx +0 -22
  337. package/src/overlay/tooltip/tooltip.tsx +0 -24
  338. /package/dist/{panel.css → h_panel.css} +0 -0
  339. /package/dist/overlay/popper/{popper.d.ts → legacy/popper.d.ts} +0 -0
  340. /package/src/overlay/popper/{popper.module.css → legacy/popper.module.css} +0 -0
  341. /package/src/{overlay → surfaces}/tooltip/tooltip.module.css +0 -0
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { clsx } from 'clsx';
3
+ import {
4
+ ElementPopper,
5
+ type ElementPopperProps,
6
+ } from '../../overlay/popper/element_popper.js';
7
+ import { Scaffold } from '../../layouts/index.js';
8
+ import { PopperDismissal } from '../../overlay/popper/base/dismissal_decorator.js';
9
+
10
+ export type PopConfirmProps = ElementPopperProps;
11
+
12
+ export const PopConfirm = React.forwardRef<HTMLDivElement, PopConfirmProps>(
13
+ function PopConfirm(
14
+ { children, className, dismissals = [PopperDismissal.CLICK_AWAY], ...props },
15
+ ref
16
+ ) {
17
+ return (
18
+ <ElementPopper
19
+ ref={ref}
20
+ className={clsx(className, 'tcn-pop-confirm')}
21
+ dismissals={dismissals}
22
+ {...props}
23
+ >
24
+ <Scaffold width={'100%'} height={'100%'}>
25
+ {children}
26
+ </Scaffold>
27
+ </ElementPopper>
28
+ );
29
+ }
30
+ );
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { clsx } from 'clsx';
3
+ import {
4
+ ElementPopper,
5
+ type ElementPopperProps,
6
+ } from '../../overlay/popper/element_popper.js';
7
+
8
+ export type PopConfirmProps = ElementPopperProps;
9
+
10
+ export const PopConfirm = React.forwardRef<HTMLDivElement, PopConfirmProps>(
11
+ function PopConfirm({ children, className, ...props }, ref) {
12
+ return (
13
+ <ElementPopper ref={ref} className={clsx(className, 'tcn-popconfirm')} {...props}>
14
+ {children}
15
+ </ElementPopper>
16
+ );
17
+ }
18
+ );
@@ -1,6 +1,6 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { VStack } from '../../stacks/v_stack.js';
3
- import { Popper, type PopperProps } from '../../overlay/popper/popper.js';
3
+ import { Popper, type PopperProps } from '../../overlay/popper/legacy/popper.js';
4
4
  import { VStackProps } from '../../stacks/v_stack.js';
5
5
 
6
6
  export interface PopoverProps extends Omit<PopperProps, 'children'>, VStackProps {}
@@ -0,0 +1,54 @@
1
+ import { StyleBox } from '../../stacks/story_components/style_box.js';
2
+ import { BodyText } from '../../typography/index.js';
3
+ import { Tooltip as TooltipComponent } from './tooltip.js';
4
+
5
+ export default {
6
+ title: 'Surfaces/Tooltip',
7
+ component: TooltipComponent,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ docs: {
11
+ description: {
12
+ component: 'A tooltip component that displays a tooltip when hovered.',
13
+ },
14
+ },
15
+ },
16
+ };
17
+
18
+ export const DefaultTooltip = () => {
19
+ return (
20
+ <TooltipComponent label={'Tooltip content'}>
21
+ <StyleBox
22
+ backgroundColor="red"
23
+ padding="8px"
24
+ borderRadius={'8px'}
25
+ width="200px"
26
+ height="100px"
27
+ display="flex"
28
+ justifyContent="center"
29
+ alignItems="center"
30
+ >
31
+ Hover to open
32
+ </StyleBox>
33
+ </TooltipComponent>
34
+ );
35
+ };
36
+
37
+ export const CustomTooltip = () => {
38
+ return (
39
+ <TooltipComponent label={<BodyText>Tooltip content</BodyText>}>
40
+ <StyleBox
41
+ backgroundColor="red"
42
+ padding="8px"
43
+ borderRadius={'8px'}
44
+ width="200px"
45
+ height="100px"
46
+ display="flex"
47
+ justifyContent="center"
48
+ alignItems="center"
49
+ >
50
+ Hover to open
51
+ </StyleBox>
52
+ </TooltipComponent>
53
+ );
54
+ };
@@ -0,0 +1,59 @@
1
+ import { clsx } from 'clsx';
2
+ import React, { isValidElement, cloneElement, useRef } from 'react';
3
+ import styles from './tooltip.module.css';
4
+ import {
5
+ PreviewPopper,
6
+ type PreviewPopperProps,
7
+ } from '../../overlay/popper/preview_popper.js';
8
+ import { HStack } from '../../stacks/h_stack.js';
9
+
10
+ export interface TooltipProps extends Omit<PreviewPopperProps, 'anchorElement'> {
11
+ /** The element that triggers the tooltip on hover */
12
+ children: React.ReactNode;
13
+ /** Content to display in the tooltip */
14
+ label: React.ReactNode;
15
+ }
16
+
17
+ export const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(
18
+ {
19
+ children,
20
+ className,
21
+ verticalAnchor = 'top',
22
+ verticalOrigin = 'bottom',
23
+ horizontalAnchor = 'center',
24
+ horizontalOrigin = 'center',
25
+ label,
26
+ ...props
27
+ },
28
+ ref
29
+ ) {
30
+ const anchorRef = useRef<HTMLElement>(null);
31
+
32
+ // If children is a valid element, clone it and attach the ref
33
+ // Otherwise, wrap it in a span
34
+ const anchor = isValidElement(children) ? (
35
+ cloneElement(children, { ref: anchorRef } as React.Attributes)
36
+ ) : (
37
+ <HStack as="span" ref={anchorRef}>
38
+ {children}
39
+ </HStack>
40
+ );
41
+
42
+ return (
43
+ <>
44
+ {anchor}
45
+ <PreviewPopper
46
+ ref={ref}
47
+ anchorElement={anchorRef}
48
+ verticalAnchor={verticalAnchor}
49
+ verticalOrigin={verticalOrigin}
50
+ horizontalAnchor={horizontalAnchor}
51
+ horizontalOrigin={horizontalOrigin}
52
+ className={clsx(className, styles.tooltip, 'tcn-surface', 'tcn-tooltip')}
53
+ {...props}
54
+ >
55
+ {label}
56
+ </PreviewPopper>
57
+ </>
58
+ );
59
+ });
@@ -1,12 +1,13 @@
1
1
  import { useState } from 'react';
2
2
  import { Window } from './window.js';
3
- import { Footer, Header, VBody } from '../../layouts/index.js';
3
+ import { Footer, Header, UtilityBar, VBody } from '../../layouts/index.js';
4
4
  import { BodyText, Title } from '../../typography/index.js';
5
5
  import { Spacer } from '../../stacks/spacer.js';
6
6
  import { Button, SlimButton } from '../../actions/index.js';
7
7
  import { CrossIcon } from '@tcn/icons/cross_icon.js';
8
8
  import { ZStack } from '../../stacks/z_stack.js';
9
9
  import { DragHandle } from '../../utils/dnd/handle.js';
10
+ import { BugIcon } from '@tcn/icons/bug_icon.js';
10
11
 
11
12
  export default {
12
13
  title: 'Surfaces/Window',
@@ -34,6 +35,19 @@ export const WindowStory = () => {
34
35
  </SlimButton>
35
36
  </Header>
36
37
  </DragHandle>
38
+ <UtilityBar>
39
+ <Title>Utility Bar</Title>
40
+ <Spacer />
41
+ <SlimButton hierarchy="tertiary">
42
+ <BugIcon />
43
+ </SlimButton>
44
+ <SlimButton hierarchy="tertiary">
45
+ <BugIcon />
46
+ </SlimButton>
47
+ <SlimButton size="md" hierarchy="tertiary">
48
+ <BugIcon />
49
+ </SlimButton>
50
+ </UtilityBar>
37
51
  <VBody>
38
52
  <BodyText>This is a window</BodyText>
39
53
  </VBody>
@@ -1,25 +1,29 @@
1
- import { VStack, type VStackProps } from '../../stacks/v_stack.js';
2
1
  import { clsx } from 'clsx';
3
2
  import React from 'react';
4
- import styles from './window.module.css';
5
3
  import { Frame, type FrameOwnProps } from '../../overlay/frame/frame.js';
4
+ import { Scaffold, type ScaffoldProps } from '../../layouts/scaffold/scaffold.js';
5
+
6
+ // Styles
7
+ import styles from './window.module.css';
6
8
 
7
- export type WindowProps = FrameOwnProps & Omit<VStackProps<HTMLDialogElement>, 'as'>;
9
+ export type WindowProps = FrameOwnProps & ScaffoldProps;
8
10
 
9
- export const Window = React.forwardRef<HTMLDialogElement, WindowProps>(function Window(
11
+ export const Window = React.forwardRef<HTMLElement, WindowProps>(function Window(
10
12
  { children, className, isOpen, draggable = true, veil = false, ...props }: WindowProps,
11
13
  ref
12
14
  ) {
13
15
  return (
14
- <Frame isOpen={isOpen} draggable={draggable} veil={veil}>
15
- <VStack
16
- ref={ref}
17
- className={clsx(styles['window'], 'tcn-window', className)}
18
- as="dialog"
19
- {...props}
20
- >
16
+ <Frame
17
+ isOpen={isOpen}
18
+ draggable={draggable}
19
+ veil={veil}
20
+ className={clsx(styles['window'], 'tcn-surface', 'tcn-window', className)}
21
+ width="auto"
22
+ height="auto"
23
+ >
24
+ <Scaffold ref={ref} {...props}>
21
25
  {children}
22
- </VStack>
26
+ </Scaffold>
23
27
  </Frame>
24
28
  );
25
29
  });
@@ -48,22 +48,20 @@ export const SB_TonePicker = () => {
48
48
  growWeight={1}
49
49
  paddingTop={theme.padding.md}
50
50
  paddingBottom={theme.padding.md}
51
+ vAlign="start"
52
+ hAlign="start"
51
53
  >
52
54
  <VStack
53
55
  height="100%"
54
56
  width="auto"
55
57
  gap={theme.gap.md}
56
58
  hAlign="start"
57
- minWidth="300px"
59
+ vAlign="start"
60
+ maxWidth="300px"
61
+ minWidth="200px"
58
62
  >
59
63
  <SectionHeader>Tone Picker (WIP)</SectionHeader>
60
- <List
61
- padding={theme.padding.md}
62
- maxWidth="200px"
63
- growWeight={1}
64
- height="100%"
65
- overflowY="auto"
66
- >
64
+ <List padding={theme.padding.md} growWeight={1} height="100%" overflowY="auto">
67
65
  {items.map(item => (
68
66
  <Item
69
67
  key={item.id}
@@ -75,7 +73,7 @@ export const SB_TonePicker = () => {
75
73
  ))}
76
74
  </List>
77
75
  </VStack>
78
- <VStack height="100%">
76
+ <VStack height="100%" minWidth="200px" growWeight={1}>
79
77
  <SB_ToneCard item={selectedItem || null} />
80
78
  </VStack>
81
79
  </HStack>
@@ -87,10 +87,6 @@ export const DynamicSurface = (args: {
87
87
  </Header>
88
88
  <SB_MaterialPicker handleSurfaceClick={handleSurfaceClick} />
89
89
  <VPanel
90
- // TODO: Find a better way to have typography inherit the on material color
91
- style={{
92
- color: 'inherit',
93
- }}
94
90
  minHeight="200px"
95
91
  maxHeight="700px"
96
92
  height="100%"
@@ -105,7 +101,7 @@ export const DynamicSurface = (args: {
105
101
  <SlimButton hierarchy="secondary">
106
102
  <PlusIcon />
107
103
  </SlimButton>
108
- <Divider vertical />
104
+ <Divider vertical length="md" />
109
105
  <SlimButton hierarchy="primary">
110
106
  <PlusIcon />
111
107
  </SlimButton>
@@ -119,7 +115,7 @@ export const DynamicSurface = (args: {
119
115
  <SlimButton hierarchy="secondary" disabled>
120
116
  <PlusIcon />
121
117
  </SlimButton>
122
- <Divider vertical />
118
+ <Divider vertical length="md" />
123
119
  <SlimButton hierarchy="primary" disabled>
124
120
  <PlusIcon />
125
121
  </SlimButton>
@@ -24,34 +24,47 @@
24
24
  }
25
25
  }
26
26
 
27
+ :global(.tcn-surface) {
28
+ background: hsl(var(--material));
29
+ color: hsl(var(--on-material));
30
+ }
31
+
27
32
  :global(.tcn-card[data-tone="positive"]) {
28
- --material: var(--positive);
29
- --on-material: var(--white);
30
- --action: var(--white);
31
- --on-action: var(--positive);
33
+ :global(.tcn-header) {
34
+ --material: var(--positive);
35
+ --on-material: var(--white);
36
+ --action: var(--white);
37
+ --on-action: var(--positive);
38
+ }
32
39
  }
33
40
 
34
41
  :global(.tcn-card[data-tone="notice"]) {
35
- --material: var(--notice);
36
- --on-material: var(--white);
37
- --action: var(--white);
38
- --on-action: var(--notice);
42
+ :global(.tcn-header) {
43
+ --material: var(--notice);
44
+ --on-material: var(--white);
45
+ --action: var(--white);
46
+ --on-action: var(--notice);
47
+ }
39
48
  }
40
49
 
41
50
  /* :global(.tcn-card[data-tone="neutral"]) {} */
42
51
 
43
52
  :global(.tcn-card[data-tone="warning"]) {
44
- --material: var(--warning);
45
- --on-material: var(--navy);
46
- --action: var(--navy);
47
- --on-action: var(--white);
53
+ :global(.tcn-header) {
54
+ --material: var(--warning);
55
+ --on-material: var(--navy);
56
+ --action: var(--navy);
57
+ --on-action: var(--white);
58
+ }
48
59
  }
49
60
 
50
61
  :global(.tcn-card[data-tone="danger"]) {
51
- --material: var(--danger);
52
- --on-material: var(--white);
53
- --action: var(--white);
54
- --on-action: var(--danger);
62
+ :global(.tcn-header) {
63
+ --material: var(--danger);
64
+ --on-material: var(--white);
65
+ --action: var(--white);
66
+ --on-action: var(--danger);
67
+ }
55
68
  }
56
69
  }
57
70
 
@@ -103,8 +116,3 @@
103
116
  --material: var(--navy);
104
117
  --on-material: var(--white);
105
118
  }
106
-
107
- .surface {
108
- background: hsl(var(--material));
109
- color: hsl(var(--on-material));
110
- }