@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
@@ -136,6 +136,14 @@ legend {
136
136
  /* ===== CSS VARIABLES ===== */
137
137
  :root {
138
138
  --scalar: 1;
139
+ --accent-color: #cd6b2c;
140
+
141
+ /* Typography */
142
+ --font-color: #395578;
143
+ --font-family: "Lato", sans-serif;
144
+ --font-size: 12px;
145
+
146
+ /* Spacing */
139
147
  --gap-small: 4px;
140
148
  --gap-medium: 8px;
141
149
  --gap-large: 16px;
@@ -144,6 +152,7 @@ legend {
144
152
  --padding-medium: 8px;
145
153
  --padding-large: 16px;
146
154
 
155
+ /* Status Colors */
147
156
  --status-color-disabled: #7f7f7f;
148
157
  --status-color-info: #008cff;
149
158
  --status-color-warning: #ffff00;
@@ -155,6 +164,12 @@ legend {
155
164
  --async-color-success: #00ff00;
156
165
  --async-color-failed: #ff0000;
157
166
 
167
+ /* Shape */
168
+ --shape-radius-small: 2px;
169
+ --shape-radius-medium: 4px;
170
+ --shape-radius-large: 8px;
171
+
172
+ /* Palette */
158
173
  --primary-color-faint: #c0c0c0;
159
174
  --primary-color: #008cff;
160
175
  --primary-color-strong: #008cff;
@@ -171,10 +186,6 @@ legend {
171
186
  --quaternary-color: #008cff;
172
187
  --quaternary-color-strong: #008cff;
173
188
 
174
- --font-color: #395578;
175
- --font-family: "Lato", sans-serif;
176
- --font-size: 12px;
177
-
178
189
  --background-color-primary: #ffffff;
179
190
  --background-color-secondary: #ffffff;
180
191
  --background-color-tertiary: #ffffff;
@@ -189,16 +200,17 @@ legend {
189
200
  --material-secondary-dark: 197 29.1% 40.4%;
190
201
  --material-tan: 33, 22%, 84%;
191
202
 
192
- --shape-radius-small: 2px;
193
- --shape-radius-medium: 4px;
194
- --shape-radius-large: 8px;
195
-
196
- --accent-color: #cd6b2c;
197
-
203
+ /* Default Material */
198
204
  --action: 23, 65%, 49%;
199
205
  --on-action: 0, 0%, 100%;
200
206
  --material: 0, 0%, 100%;
201
207
  --on-material: 213, 35.6%, 34.7%;
208
+
209
+ --action-dangerous: 0, 90%, 50%;
210
+ --action-cautious: 53, 90%, 60%;
211
+ --action-neutral: var(--action);
212
+ --action-suggested: 202, 90%, 40%;
213
+ --action-encouraged: 120, 90%, 40%;
202
214
  }
203
215
 
204
216
  * {
@@ -215,7 +227,7 @@ legend {
215
227
  background 0.1s,
216
228
  color 0.1s;
217
229
 
218
- --act: hsl(var(--action));
230
+ --act: hsl(var(--interactive-color, var(--action)));
219
231
  --on-act: hsl(var(--on-action));
220
232
  /* Could use hsl here if we made three color variables for each of the hsl values */
221
233
  --act-down: color-mix(in srgb, var(--act), black 8%);
@@ -308,6 +320,32 @@ legend {
308
320
  }
309
321
 
310
322
  /* Button */
323
+
324
+ .tcn-base-button {
325
+ --action: var(var(--button-color), var(--action));
326
+ }
327
+
328
+ .tcn-base-button[data-severity="dangerous"] {
329
+ --action: var(--action-dangerous);
330
+ }
331
+
332
+ .tcn-base-button[data-severity="cautious"] {
333
+ --action: var(--action-cautious);
334
+ --on-action: var(--on-material);
335
+ }
336
+
337
+ /* .tcn-base-button[data-severity="neutral"] {
338
+ --action: var(--action-neutral);
339
+ } */
340
+
341
+ .tcn-base-button[data-severity="suggested"] {
342
+ --action: var(--action-suggested);
343
+ }
344
+
345
+ .tcn-base-button[data-severity="encouraged"] {
346
+ --action: var(--action-encouraged);
347
+ }
348
+
311
349
  .tcn-button {
312
350
  border-radius: 4px;
313
351
  }
@@ -373,72 +411,6 @@ legend {
373
411
  }
374
412
  }
375
413
 
376
- /* ===== Materials ===== */
377
-
378
- /* White on Gray */
379
- .material-status-disabled {
380
- --action: 0, 0%, 100%;
381
- --on-action: 0, 0%, 49.8%;
382
- --material: 0, 0%, 49.8%;
383
- --on-material: 0, 0%, 100%;
384
- }
385
-
386
- /* White on Vivid Blue */
387
- .material-status-info {
388
- --action: 0, 0%, 100%;
389
- --on-action: 207, 100%, 50%;
390
- --material: 207, 100%, 50%;
391
- --on-material: 0, 0%, 100%;
392
- }
393
-
394
- /* Navy on Yellow */
395
- .material-status-warning {
396
- --action: 213, 35.6%, 34.7%;
397
- --on-action: 60, 100%, 50%;
398
- --material: 60, 100%, 50%;
399
- --on-material: 213, 35.6%, 34.7%;
400
- }
401
-
402
- /* White on Red */
403
- .material-status-error {
404
- --action: 0, 0%, 100%;
405
- --on-action: 0, 100%, 50%;
406
- --material: 0, 100%, 50%;
407
- --on-material: 0, 0%, 100%;
408
- }
409
-
410
- /* Navy on Light Grey */
411
- .material-async-initial {
412
- --action: 213, 35.6%, 34.7%;
413
- --on-action: 0, 0%, 75.3%;
414
- --material: 0, 0%, 75.3%;
415
- --on-material: 213, 35.6%, 34.7%;
416
- }
417
-
418
- /* White on Loading Blue */
419
- .material-async-pending {
420
- --action: 0, 0%, 100%;
421
- --on-action: 207, 100%, 50%;
422
- --material: 207, 100%, 50%;
423
- --on-material: 0, 0%, 100%;
424
- }
425
-
426
- /* White on Vivid Green */
427
- .material-async-success {
428
- --action: 0, 0%, 100%;
429
- --on-action: 120, 100%, 50%;
430
- --material: 120, 100%, 50%;
431
- --on-material: 0, 0%, 100%;
432
- }
433
-
434
- /* White on Red */
435
- .material-async-failed {
436
- --action: 0, 0%, 100%;
437
- --on-action: 0, 100%, 50%;
438
- --material: 0, 100%, 50%;
439
- --on-material: 0, 0%, 100%;
440
- }
441
-
442
414
  .material {
443
415
  background-color: hsl(var(--material));
444
416
  color: hsl(var(--on-material));
@@ -455,6 +427,14 @@ legend {
455
427
  background-color: rgba(0, 0, 0, 0.5);
456
428
  }
457
429
 
430
+ .tcn-tooltip {
431
+ background: rgba(57, 85, 120, 0.85);
432
+ box-shadow: 0px 4px 7px 0px rgba(65, 65, 65, 0.66);
433
+ color: rgba(255, 255, 255, 1);
434
+ border-radius: var(--shape-radius-medium);
435
+ padding: var(--padding-medium);
436
+ }
437
+
458
438
  .tcn-list {
459
439
  gap: var(--gap-medium);
460
440
  .tcn-item {
@@ -464,19 +444,66 @@ legend {
464
444
  }
465
445
  }
466
446
 
467
- .tcn-veil {
447
+ /* Scaffold: */
448
+ .tcn-scaffold {
449
+ --scaffold-v-inset: var(--v-inset, var(--padding-large));
450
+ --scaffold-header-size: var(--header-size, 40px);
451
+ --scaffold-footer-size: var(--footer-size, 40px);
452
+ --scaffold-utility-bar-size: var(--utility-bar-size, 32px);
453
+ --scaffold-divide-footer: var(--divide-footer, 1);
454
+ --scaffold-divide-header: var(--divide-header, 1);
455
+
456
+ :where(.tcn-header) {
457
+ min-height: var(--scaffold-header-size);
458
+ padding: 0 var(--scaffold-v-inset);
459
+ gap: var(--gap-medium);
460
+ }
461
+
462
+ /* Border appears on body only when it follows header or utility-bar */
463
+ :where(.tcn-header) + :where(.tcn-body),
464
+ :where(.tcn-utility-bar) + :where(.tcn-body) {
465
+ border-top: calc(var(--scaffold-divide-header) * 1px) solid
466
+ var(--foreground-color-primary);
467
+ }
468
+
469
+ /* Border appears on footer only when it follows body and --scaffold-divide-footer is 1 */
470
+ :where(.tcn-body) + :where(.tcn-footer) {
471
+ border-top: calc(var(--scaffold-divide-footer) * 1px) solid
472
+ var(--foreground-color-primary);
473
+ }
474
+
475
+ :where(.tcn-utility-bar) {
476
+ min-height: var(--scaffold-utility-bar-size);
477
+ padding: 0 var(--scaffold-v-inset);
478
+ gap: var(--gap-medium);
479
+ }
480
+
481
+ :where(.tcn-body) {
482
+ padding: 0 var(--scaffold-v-inset);
483
+ gap: var(--gap-medium);
484
+ }
485
+
486
+ :where(.tcn-footer) {
487
+ gap: var(--gap-medium);
488
+ min-height: var(--scaffold-footer-size);
489
+ padding: 0 var(--scaffold-v-inset);
490
+ }
491
+ }
492
+
493
+ .tcn-frame-veil[data-is-veil="true"] {
468
494
  background-color: rgba(0, 0, 0, 0.5);
469
495
  }
470
496
 
471
- /* TODO: FIX Borders on modal header and footer -- when there are multiple header/footers */
472
497
  /* MODAL: */
473
498
  .tcn-modal {
474
- --v-inset: var(--padding-large);
475
- background-color: var(--background-color-primary);
476
- border-radius: var(--shape-radius-medium);
477
- /* TODO: This should be a variable */
478
- border: 1px solid rgba(170, 170, 170, 1);
479
- overflow: hidden;
499
+ --divide-header: 0;
500
+
501
+ :where(.tcn-scaffold) {
502
+ border-radius: var(--shape-radius-medium);
503
+ background-color: var(--background-color-primary);
504
+ overflow: hidden;
505
+ border: 1px solid var(--foreground-color-primary);
506
+ }
480
507
 
481
508
  :where(.tcn-typography) {
482
509
  color: inherit;
@@ -489,53 +516,29 @@ legend {
489
516
  --on-action: 0, 0%, 100%;
490
517
  background-color: hsl(var(--material));
491
518
  color: hsl(var(--on-material));
492
- min-height: 40px;
493
- padding: 0 var(--v-inset);
494
- gap: var(--gap-medium);
495
-
496
- :where(.tcn-divider) {
497
- padding: 4px 0;
498
- :where(.tcn-divider-line) {
499
- width: 1.5px;
500
- min-height: 18px;
501
- height: auto;
502
- }
503
- }
504
519
  }
505
520
 
506
521
  :where(.tcn-utility-bar) {
507
- min-height: 32px;
508
- border-bottom: 1px solid var(--foreground-color-primary);
509
- padding: 0 var(--v-inset);
510
-
511
- :where(.tcn-button) {
512
- padding: 0;
513
- min-width: 18px;
514
- min-height: 18px;
515
- }
516
- }
517
-
518
- :where(.tcn-body) {
519
- padding: 0 var(--v-inset);
520
- gap: var(--gap-medium);
521
- }
522
-
523
- :where(.tcn-footer) {
524
- gap: var(--gap-medium);
525
- min-height: 40px;
526
- border-top: 1px solid var(--foreground-color-primary);
527
- padding: 0 var(--v-inset);
522
+ --material: var(--material-secondary-dark);
523
+ --on-material: 0, 0%, 100%;
524
+ --action: var(--material-tan);
525
+ --on-action: 0, 0%, 100%;
526
+ background-color: hsl(var(--material));
527
+ color: hsl(var(--on-material));
528
528
  }
529
529
  }
530
530
 
531
531
  /* WINDOW: */
532
532
  .tcn-window {
533
- --v-inset: var(--padding-large);
534
- background-color: var(--background-color-primary);
535
- border-radius: var(--shape-radius-medium);
536
- /* TODO: This should be a variable */
537
- border: 1px solid rgba(170, 170, 170, 1);
538
- overflow: hidden;
533
+ --divide-header: 0;
534
+
535
+ :where(.tcn-scaffold) {
536
+ box-shadow: 0px 4px 34px 0px #00000096;
537
+ border-radius: var(--shape-radius-medium);
538
+ background-color: var(--background-color-primary);
539
+ overflow: hidden;
540
+ border: 2px solid white;
541
+ }
539
542
 
540
543
  :where(.tcn-typography) {
541
544
  color: inherit;
@@ -548,111 +551,79 @@ legend {
548
551
  --on-action: 0, 0%, 100%;
549
552
  background-color: hsl(var(--material));
550
553
  color: hsl(var(--on-material));
551
- min-height: 40px;
552
- padding: 0 var(--v-inset);
553
- gap: var(--gap-medium);
554
-
555
- :where(.tcn-divider) {
556
- padding: 4px 0;
557
- :where(.tcn-divider-line) {
558
- width: 1.5px;
559
- min-height: 18px;
560
- height: auto;
561
- }
562
- }
563
554
  }
564
555
 
565
556
  :where(.tcn-utility-bar) {
566
- min-height: 32px;
567
- border-bottom: 1px solid var(--foreground-color-primary);
568
- padding: 0 var(--v-inset);
569
-
570
- :where(.tcn-button) {
571
- padding: 0;
572
- min-width: 18px;
573
- min-height: 18px;
574
- }
575
- }
576
-
577
- :where(.tcn-body) {
578
- padding: 0 var(--v-inset);
579
- gap: var(--gap-medium);
580
- }
581
-
582
- :where(.tcn-footer) {
583
- gap: var(--gap-medium);
584
- min-height: 40px;
585
- border-top: 1px solid var(--foreground-color-primary);
586
- padding: 0 var(--v-inset);
557
+ --material: var(--material-secondary-dark);
558
+ --on-material: 0, 0%, 100%;
559
+ --action: var(--material-tan);
560
+ --on-action: 0, 0%, 100%;
561
+ background-color: hsl(var(--material));
562
+ color: hsl(var(--on-material));
587
563
  }
588
564
  }
589
565
 
590
- /* PANEL */
591
- .tcn-panel {
592
- --v-inset: var(--padding-large);
593
- background-color: var(--background-color-primary);
594
- border-radius: var(--shape-radius-medium);
595
- overflow: hidden;
596
-
597
- :where(.tcn-header) {
598
- min-height: 40px;
599
- padding: 0 var(--v-inset);
600
- gap: var(--gap-medium);
601
-
602
- :where(.tcn-title) {
603
- font-weight: 700;
604
- }
605
-
606
- :where(.tcn-divider) {
607
- padding: 4px 0;
608
- :where(.tcn-divider-line) {
609
- width: 1.5px;
610
- min-height: 18px;
611
- height: auto;
612
- }
613
- }
614
- }
566
+ .tcn-pop-confirm {
567
+ --divide-header: 0;
568
+ --v-inset: var(--padding-medium);
615
569
 
616
- /* Border appears on body only when it follows header or utility-bar */
617
- :where(.tcn-header) + :where(.tcn-body),
618
- :where(.tcn-utility-bar) + :where(.tcn-body) {
619
- border-top: 1px solid var(--foreground-color-primary);
570
+ :where(.tcn-scaffold) {
571
+ box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.4);
572
+ border-radius: var(--shape-radius-medium);
573
+ background-color: var(--background-color-primary);
574
+ overflow: hidden;
620
575
  }
621
576
 
622
- /* Border appears on footer only when it follows body */
623
- :where(.tcn-body) + :where(.tcn-footer) {
624
- border-top: 1px solid var(--foreground-color-primary);
577
+ :where(.tcn-typography) {
578
+ color: inherit;
625
579
  }
626
580
 
627
- :where(.tcn-utility-bar) {
581
+ :where(.tcn-header) {
628
582
  min-height: 32px;
629
- padding: 0 var(--v-inset);
583
+ --material: var(--material-secondary-dark);
584
+ --on-material: 0, 0%, 100%;
585
+ --action: var(--material-tan);
586
+ --on-action: 0, 0%, 100%;
587
+ background-color: hsl(var(--material));
588
+ color: hsl(var(--on-material));
630
589
  }
631
590
 
632
- :where(.tcn-body) {
633
- padding: 0 var(--v-inset);
634
- gap: var(--gap-medium);
591
+ :where(.tcn-utility-bar) {
592
+ --material: var(--material-secondary-dark);
593
+ --on-material: 0, 0%, 100%;
594
+ --action: var(--material-tan);
595
+ --on-action: 0, 0%, 100%;
596
+ background-color: hsl(var(--material));
597
+ color: hsl(var(--on-material));
635
598
  }
599
+ }
636
600
 
637
- :where(.tcn-footer) {
638
- gap: var(--gap-medium);
639
- min-height: 40px;
640
- padding: 0 var(--v-inset);
641
- }
601
+ /* PANEL */
602
+ .tcn-panel {
603
+ background-color: var(--background-color-primary);
604
+ border-radius: var(--shape-radius-medium);
605
+ overflow: hidden;
642
606
  }
643
607
 
644
608
  /* Card */
645
609
  .tcn-card {
646
- padding: 0;
647
- gap: 0px;
648
- border: 1px solid var(--foreground-color-primary);
610
+ --header-size: 32px;
611
+ --footer-size: 32px;
612
+ --utility-bar-size: 24px;
613
+ --divide-header: 0;
614
+
615
+ background-color: var(--background-color-primary);
649
616
  border-radius: var(--shape-radius-medium);
617
+ border: 1px solid var(--foreground-color-primary);
650
618
  overflow: hidden;
619
+
651
620
  :where(.tcn-header) {
652
- /* TODO: Color header */
653
- min-height: 32px;
621
+ /* TODO: This should be a variable */
622
+ background-color: #ecf4fb;
654
623
  }
655
- :where(.tcn-body) {
656
- padding: var(--padding-medium) var(--v-inset);
624
+
625
+ :where(.tcn-utility-bar) {
626
+ /* TODO: This should be a variable */
627
+ background-color: #ecf4fb;
657
628
  }
658
629
  }
@@ -19,7 +19,7 @@ const touchMap = {
19
19
  onTouchEnd: 'touchend',
20
20
  };
21
21
 
22
- function isEventWithinElement(
22
+ export function isEventWithinElement(
23
23
  event: MouseEvent | TouchEvent,
24
24
  node: HTMLElement | null,
25
25
  activated: boolean,
@@ -1,9 +1,9 @@
1
- export * from './focus_redirect.js';
2
1
  export * from './click_away_listener.js';
2
+ export * from './focus_redirect.js';
3
3
  export * from './scroll_away_listener.js';
4
4
 
5
- export * from './hooks/make_context_hook.js';
6
5
  export * from './dnd/hooks/use_draggable.js';
6
+ export * from './hooks/make_context_hook.js';
7
7
  export * from './hooks/use_fork_ref.js';
8
8
  export * from './hooks/use_media_query.js';
9
9
  export * from './hooks/use_resize_observer.js';
@@ -12,9 +12,11 @@ export * from './default_value.js';
12
12
 
13
13
  export * from './calendar/calendar_date.js';
14
14
  export * from './calendar/calendar_dates_generator.js';
15
- export * from './calendar/month.js';
16
- export * from './calendar/get_months_of_year.js';
17
15
  export * from './calendar/get_days_of_week.js';
16
+ export * from './calendar/get_months_of_year.js';
17
+ export * from './calendar/month.js';
18
18
 
19
- export * from './types/variations.js';
20
19
  export * from './types/dimensions.js';
20
+ export * from './types/variations.js';
21
+
22
+ export * from './responsive/responsive_renderer.js';
@@ -0,0 +1,38 @@
1
+ import React, { useEffect } from 'react';
2
+
3
+ export interface MouseLeaveRegionProps {
4
+ elementsRefs: (React.RefObject<Element> | React.MutableRefObject<Element>)[];
5
+ onMouseLeave: () => void;
6
+ buffer?: number;
7
+ }
8
+
9
+ export function MouseLeaveRegion({
10
+ onMouseLeave,
11
+ elementsRefs: elementRefs,
12
+ buffer = 8,
13
+ }: MouseLeaveRegionProps) {
14
+ useEffect(() => {
15
+ const update = (event: MouseEvent) => {
16
+ const intersects = elementRefs.some(ref => {
17
+ const element = ref.current;
18
+ if (element != null) {
19
+ const rect = element.getBoundingClientRect();
20
+ const overlapLeft = Math.max(event.clientX - buffer, rect.left);
21
+ const overlapRight = Math.min(event.clientX + buffer, rect.right);
22
+ const overlapTop = Math.max(event.clientY - buffer, rect.top);
23
+ const overlapBottom = Math.min(event.clientY + buffer, rect.bottom);
24
+ return overlapLeft <= overlapRight && overlapTop <= overlapBottom;
25
+ }
26
+ return false;
27
+ });
28
+ if (!intersects) {
29
+ onMouseLeave();
30
+ }
31
+ };
32
+ window.addEventListener('mousemove', update);
33
+ return () => {
34
+ window.removeEventListener('mousemove', update);
35
+ };
36
+ }, [onMouseLeave, elementRefs, buffer]);
37
+ return null;
38
+ }
@@ -8,7 +8,19 @@ export interface Dimensions {
8
8
  height: number;
9
9
  }
10
10
 
11
- export interface Rect {
11
+ export interface Rectangle {
12
+ dimensions: Dimensions;
13
+ position: Position;
14
+ }
15
+
16
+ export interface RectCorners {
17
+ topLeft: Position;
18
+ topRight: Position;
19
+ bottomLeft: Position;
20
+ bottomRight: Position;
21
+ }
22
+
23
+ export interface RectEdges {
12
24
  top: number;
13
25
  right: number;
14
26
  bottom: number;
package/tsconfig.json CHANGED
@@ -6,6 +6,9 @@
6
6
  "~aip-160/*": [
7
7
  "../aip-160/src/*"
8
8
  ],
9
+ "~aip-160-editor/*": [
10
+ "../aip-160-editor/src/*"
11
+ ],
9
12
  "~icons/*": [
10
13
  "../icons/src/*"
11
14
  ],
@@ -1 +0,0 @@
1
- {"version":3,"file":"popper.d.ts","sourceRoot":"","sources":["../../../src/overlay/popper/popper.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAIjE,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACxE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IAC/C,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IACxD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,MAAM,CAAC,EACrB,aAAa,EACb,cAAyB,EACzB,cAAsB,EACtB,cAAkB,EAClB,gBAA0B,EAC1B,gBAA0B,EAC1B,gBAAoB,EACpB,YAAoB,EACpB,IAAY,EACZ,WAAW,EACX,aAAkB,EAClB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,gBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,GACtB,EAAE,WAAW,kDA8Kb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popper.js","sources":["../../../src/overlay/popper/popper.tsx"],"sourcesContent":["import { ClickAwayListener, ScrollAwayListener } from '../../utils/index.js';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { Portal } from '../portal/portal.js';\nimport styles from './popper.module.css';\n\nexport interface PopperProps {\n anchorElement: HTMLElement | null;\n verticalAnchor?: 'top' | 'center' | 'bottom';\n verticalOrigin?: 'top' | 'center' | 'bottom';\n verticalOffset?: number;\n horizontalAnchor?: 'start' | 'center' | 'end';\n horizontalOrigin?: 'start' | 'center' | 'end';\n horizontalOffset?: number;\n open: boolean;\n onClose: () => void;\n restoreFocus?: boolean;\n children: React.ReactNode;\n veil?: boolean;\n onVeilClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n clickAwayRefs?: React.RefObject<HTMLElement>[];\n isClickAwayException?: (target: HTMLElement) => boolean;\n isScrollAwayException?: (target: HTMLElement) => boolean;\n disableClickAway?: boolean;\n}\n\nexport function Popper({\n anchorElement,\n verticalAnchor = 'bottom',\n verticalOrigin = 'top',\n verticalOffset = 0,\n horizontalAnchor = 'start',\n horizontalOrigin = 'start',\n horizontalOffset = 0,\n restoreFocus = false,\n veil = false,\n onVeilClick,\n clickAwayRefs = [],\n open,\n onClose,\n children,\n disableClickAway = false,\n isClickAwayException,\n isScrollAwayException,\n}: PopperProps) {\n const anchorElementRef = useRef(anchorElement);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const activeElementRef = useRef<HTMLElement | null>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const canOpen = open && anchorElement != null;\n const finalClickAwayRefs: React.RefObject<HTMLElement>[] = clickAwayRefs ?? [];\n const enableClickAway = !disableClickAway;\n const veilRef = useRef<HTMLDivElement>(null);\n function close() {\n onClose && onClose();\n }\n\n // eslint-disable-next-line complexity\n const updatePosition = () => {\n if (!anchorElement || !popoverRef.current) return;\n\n const anchorRect = anchorElement.getBoundingClientRect();\n const popoverRect = popoverRef.current.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Determine the text direction (ltr or rtl)\n const computedStyle = getComputedStyle(anchorElement);\n const isRtl = computedStyle.direction === 'rtl';\n\n let top = anchorRect.top;\n let left = anchorRect.left;\n\n // Calculate vertical position\n switch (verticalAnchor) {\n case 'top':\n top += verticalOffset;\n break;\n case 'center':\n top += anchorRect.height / 2;\n break;\n case 'bottom':\n top += anchorRect.height - verticalOffset;\n break;\n }\n\n switch (verticalOrigin) {\n case 'top':\n break;\n case 'center':\n top -= popoverRect.height / 2;\n break;\n case 'bottom':\n top -= popoverRect.height;\n break;\n }\n\n // Calculate horizontal position with direction sensitivity\n if (horizontalAnchor === 'start') {\n left += isRtl ? anchorRect.width + horizontalOffset : horizontalOffset;\n } else if (horizontalAnchor === 'center') {\n left += anchorRect.width / 2;\n } else if (horizontalAnchor === 'end') {\n left += isRtl ? -horizontalOffset : anchorRect.width + horizontalOffset;\n }\n\n // Adjust the origin based on RTL direction\n let adjustedHorizontalOrigin = horizontalOrigin;\n if (isRtl) {\n if (horizontalOrigin === 'start') {\n adjustedHorizontalOrigin = 'end';\n } else if (horizontalOrigin === 'end') {\n adjustedHorizontalOrigin = 'start';\n }\n }\n\n // Apply adjusted origin to the position calculation\n if (adjustedHorizontalOrigin === 'start') {\n // No adjustment needed\n } else if (adjustedHorizontalOrigin === 'center') {\n left -= popoverRect.width / 2;\n } else if (adjustedHorizontalOrigin === 'end') {\n left -= popoverRect.width;\n }\n\n // Ensure the popover stays within the viewport\n // Prevent overflow to the right\n if (left + popoverRect.width > viewportWidth) {\n left = viewportWidth - popoverRect.width;\n }\n\n // Prevent overflow to the left\n if (left < 0) {\n left = 0;\n }\n\n // Prevent overflow to the bottom\n if (top + popoverRect.height > viewportHeight) {\n top = viewportHeight - popoverRect.height;\n }\n\n // Prevent overflow to the top\n if (top < 0) {\n top = 0;\n }\n\n // Only update if position has changed to avoid unnecessary re-renders\n if (top !== position.top || left !== position.left) {\n setPosition({ top, left });\n }\n };\n\n useLayoutEffect(() => {\n updatePosition();\n window.addEventListener('resize', updatePosition);\n return () => {\n window.removeEventListener('resize', updatePosition);\n };\n });\n\n useLayoutEffect(() => {\n if (open) {\n activeElementRef.current = window.document.activeElement as HTMLElement;\n } else {\n const restoreToElement = activeElementRef.current;\n requestAnimationFrame(() => {\n restoreFocus && restoreToElement?.focus();\n });\n }\n }, [open, restoreFocus]);\n\n if (!canOpen) {\n return null;\n }\n\n anchorElementRef.current = anchorElement;\n\n let content = (\n <ScrollAwayListener onScrollAway={close} isException={isScrollAwayException}>\n <div\n ref={popoverRef}\n className={styles.popover}\n style={{\n top: `${position.top}px`,\n left: `${position.left}px`,\n }}\n >\n {children}\n </div>\n </ScrollAwayListener>\n );\n\n if (enableClickAway) {\n content = (\n <ClickAwayListener\n onClickAway={close}\n refs={[anchorElementRef, ...finalClickAwayRefs]}\n isException={isClickAwayException}\n >\n {content}\n </ClickAwayListener>\n );\n }\n\n return (\n <Portal>\n {veil && (\n <div\n ref={veilRef}\n onClick={e => veilRef.current === e.target && onVeilClick && onVeilClick(e)}\n className={styles['popover-veil']}\n >\n {content}\n </div>\n )}\n {!veil && content}\n </Portal>\n );\n}\n"],"names":["Popper","anchorElement","verticalAnchor","verticalOrigin","verticalOffset","horizontalAnchor","horizontalOrigin","horizontalOffset","restoreFocus","veil","onVeilClick","clickAwayRefs","open","onClose","children","disableClickAway","isClickAwayException","isScrollAwayException","anchorElementRef","useRef","position","setPosition","useState","activeElementRef","popoverRef","canOpen","finalClickAwayRefs","enableClickAway","veilRef","close","updatePosition","anchorRect","popoverRect","viewportWidth","viewportHeight","isRtl","top","left","adjustedHorizontalOrigin","useLayoutEffect","restoreToElement","content","jsx","ScrollAwayListener","styles","ClickAwayListener","Portal"],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { VStackProps } from '../../stacks/v_stack.js';
2
- import { default as React } from 'react';
3
- export interface TooltipProps extends Omit<VStackProps, 'as' | 'children'> {
4
- children?: React.ReactNode;
5
- }
6
- export declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLElement>>;
7
- //# sourceMappingURL=tooltip.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/overlay/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAAC;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,OAAO,kFAclB,CAAC"}
@@ -1,20 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { VStack as i } from "../../stacks/v_stack.js";
3
- import { clsx as e } from "clsx";
4
- import l from "react";
5
- import '../../tooltip.css';const m = "_tooltip_e324d7e", a = { tooltip: m }, u = l.forwardRef(function({ children: o, className: t, ...r }, p) {
6
- return /* @__PURE__ */ s(
7
- i,
8
- {
9
- ref: p,
10
- as: "span",
11
- className: e(t, a.tooltip, "tooltip"),
12
- ...r,
13
- children: o
14
- }
15
- );
16
- });
17
- export {
18
- u as Tooltip
19
- };
20
- //# sourceMappingURL=tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.js","sources":["../../../src/overlay/tooltip/tooltip.tsx"],"sourcesContent":["import { VStack, type VStackProps } from '../../stacks/v_stack.js';\nimport { clsx } from 'clsx';\nimport React from 'react';\nimport styles from './tooltip.module.css';\n\nexport interface TooltipProps extends Omit<VStackProps, 'as' | 'children'> {\n children?: React.ReactNode;\n}\n\nexport const Tooltip = React.forwardRef<HTMLElement, TooltipProps>(function VPanel(\n { children, className, ...props }: TooltipProps,\n ref\n) {\n return (\n <VStack\n ref={ref}\n as=\"span\"\n className={clsx(className, styles.tooltip, 'tooltip')}\n {...props}\n >\n {children}\n </VStack>\n );\n});\n"],"names":["Tooltip","React","children","className","props","ref","jsx","VStack","clsx","styles"],"mappings":";;;;kDASaA,IAAUC,EAAM,WAAsC,SACjE,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAC1BC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,IAAG;AAAA,MACH,WAAWG,EAAKL,GAAWM,EAAO,SAAS,SAAS;AAAA,MACnD,GAAGL;AAAA,MAEH,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}