@jetbrains/ring-ui-built 7.0.125 → 8.0.0-beta.11

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 (273) hide show
  1. package/components/_helpers/anchor.js +1 -1
  2. package/components/_helpers/avatar-info.js +3 -5
  3. package/components/_helpers/caption.js +1 -1
  4. package/components/_helpers/dialog.js +3 -0
  5. package/components/_helpers/icon-svg.js +37 -52
  6. package/components/_helpers/legacy-table.js +3 -0
  7. package/components/_helpers/tab-link.js +1 -1
  8. package/components/_helpers/table.js +2 -2
  9. package/components/_helpers/theme.js +49 -37
  10. package/components/alert/alert-actions.js +1 -1
  11. package/components/alert/alert-heading.js +1 -1
  12. package/components/alert/alert.js +2 -2
  13. package/components/alert-service/alert-service.js +2 -2
  14. package/components/auth/auth-core.js +2 -2
  15. package/components/auth/auth.js +2 -2
  16. package/components/auth/down-notification.js +2 -2
  17. package/components/auth/iframe-flow.js +15 -10
  18. package/components/auth/storage.js +2 -2
  19. package/components/auth-dialog/auth-dialog.js +11 -6
  20. package/components/auth-dialog-service/auth-dialog-service.js +19 -11
  21. package/components/avatar/avatar-info.js +1 -1
  22. package/components/avatar/avatar-size.d.ts +0 -4
  23. package/components/avatar/avatar-size.js +0 -4
  24. package/components/avatar/avatar.js +1 -8
  25. package/components/avatar/fallback-avatar.js +3 -48
  26. package/components/avatar-stack/avatar-stack.js +5 -5
  27. package/components/banner/banner.js +5 -6
  28. package/components/button/button.d.ts +0 -4
  29. package/components/button/button.js +4 -10
  30. package/components/button-group/button-group.js +1 -1
  31. package/components/button-toolbar/button-toolbar.js +1 -1
  32. package/components/checkbox/checkbox.d.ts +1 -1
  33. package/components/checkbox/checkbox.js +1 -2
  34. package/components/clipboard/clipboard.js +2 -2
  35. package/components/code/code.js +1 -2
  36. package/components/collapse/collapse-content.js +35 -43
  37. package/components/collapse/collapse-context.d.ts +1 -0
  38. package/components/collapse/collapse-context.js +1 -0
  39. package/components/collapse/collapse-control.js +5 -5
  40. package/components/collapse/collapse.js +34 -25
  41. package/components/collapsible-group/collapsible-group.d.ts +5 -1
  42. package/components/collapsible-group/collapsible-group.js +80 -98
  43. package/components/components/util-stories.js +63 -1
  44. package/components/confirm/confirm.js +30 -21
  45. package/components/confirm-service/confirm-service.js +21 -13
  46. package/components/contenteditable/contenteditable.js +4 -5
  47. package/components/control-help/control-help.js +1 -1
  48. package/components/control-label/control-label.js +1 -1
  49. package/components/data-list/data-list.d.ts +4 -4
  50. package/components/data-list/data-list.js +5 -5
  51. package/components/data-list/data-list.mock.d.ts +1 -1
  52. package/components/data-list/data-list.mock.js +2 -2
  53. package/components/data-list/item.d.ts +1 -1
  54. package/components/data-list/item.js +3 -3
  55. package/components/data-list/selection.d.ts +1 -1
  56. package/components/data-list/selection.js +2 -2
  57. package/components/data-list/title.js +1 -2
  58. package/components/date-picker/date-input.js +2 -2
  59. package/components/date-picker/date-picker.js +2 -3
  60. package/components/date-picker/date-popup.js +4 -5
  61. package/components/date-picker/month-names.js +1 -1
  62. package/components/date-picker/month-slider.js +1 -1
  63. package/components/date-picker/month.d.ts +0 -2
  64. package/components/date-picker/month.js +17 -18
  65. package/components/date-picker/months.js +43 -36
  66. package/components/date-picker/use-scroll-behavior.js +45 -45
  67. package/components/date-picker/weekdays.js +1 -1
  68. package/components/date-picker/years.js +61 -55
  69. package/components/dialog/dialog-body-scroll-preventer.js +49 -2
  70. package/components/dialog/dialog-controls.d.ts +13 -0
  71. package/components/dialog/dialog-controls.js +113 -0
  72. package/components/dialog/dialog-geometry.d.ts +31 -0
  73. package/components/dialog/dialog-geometry.js +63 -0
  74. package/components/dialog/dialog.d.ts +15 -7
  75. package/components/dialog/dialog.js +185 -37
  76. package/components/dropdown/anchor.js +3 -3
  77. package/components/dropdown/dropdown.js +3 -3
  78. package/components/dropdown-menu/dropdown-menu.d.ts +4 -4
  79. package/components/dropdown-menu/dropdown-menu.js +63 -58
  80. package/components/editable-heading/editable-heading.d.ts +1 -2
  81. package/components/editable-heading/editable-heading.js +14 -13
  82. package/components/error-bubble/error-bubble.js +1 -1
  83. package/components/error-message/error-message.js +1 -2
  84. package/components/footer/footer.js +1 -1
  85. package/components/global/compose-refs.d.ts +2 -1
  86. package/components/global/compose-refs.js +44 -8
  87. package/components/global/configuration.d.ts +0 -5
  88. package/components/global/configuration.js +2 -10
  89. package/components/global/controls-height.js +1 -1
  90. package/components/global/create-stateful-context.js +11 -11
  91. package/components/global/focus-sensor-hoc.js +1 -0
  92. package/components/global/focus-with-temporary-tabindex.d.ts +11 -0
  93. package/components/global/focus-with-temporary-tabindex.js +23 -0
  94. package/components/global/get-viewport-size.d.ts +5 -0
  95. package/components/global/get-viewport-size.js +6 -0
  96. package/components/global/intersection-observer-context.d.ts +46 -0
  97. package/components/global/intersection-observer-context.js +138 -0
  98. package/components/global/is-within-interactive-element.d.ts +6 -0
  99. package/components/global/is-within-interactive-element.js +11 -0
  100. package/components/global/is-within-navigable-element.d.ts +6 -0
  101. package/components/global/is-within-navigable-element.js +11 -0
  102. package/components/global/parse-css-duration.d.ts +5 -0
  103. package/components/global/parse-css-duration.js +14 -0
  104. package/components/global/rerender-hoc.d.ts +4 -2
  105. package/components/global/rerender-hoc.js +11 -24
  106. package/components/global/schedule-with-cleanup.d.ts +12 -0
  107. package/components/global/schedule-with-cleanup.js +36 -0
  108. package/components/{table/selection.d.ts → global/table-selection.d.ts} +15 -15
  109. package/components/{table/selection.js → global/table-selection.js} +5 -5
  110. package/components/global/theme.d.ts +4 -3
  111. package/components/global/theme.js +1 -1
  112. package/components/global/variables.interface.d.ts +0 -4
  113. package/components/header/header-icon.js +3 -3
  114. package/components/header/header.js +3 -3
  115. package/components/header/links.js +1 -1
  116. package/components/header/logo.js +1 -2
  117. package/components/header/profile.js +5 -5
  118. package/components/header/services.js +3 -3
  119. package/components/header/smart-profile.js +3 -3
  120. package/components/header/smart-services.js +3 -3
  121. package/components/heading/heading.js +1 -1
  122. package/components/http/http.js +6 -23
  123. package/components/i18n/i18n-context.js +4 -4
  124. package/components/icon/icon-svg.js +1 -2
  125. package/components/icon/icon.d.ts +0 -1
  126. package/components/icon/icon.js +2 -6
  127. package/components/icon/index.js +1 -2
  128. package/components/input/input.d.ts +1 -1
  129. package/components/input/input.js +3 -3
  130. package/components/internal/reorder-animation-context.js +159 -0
  131. package/components/internal/reorder-handle.js +750 -0
  132. package/components/internal/reorder-layout-context.js +141 -0
  133. package/components/internal/table-header.js +685 -0
  134. package/components/internal/virtualization.js +368 -0
  135. package/components/island/adaptive-island-hoc.js +3 -3
  136. package/components/island/content.d.ts +7 -2
  137. package/components/island/content.js +27 -18
  138. package/components/island/header.js +4 -3
  139. package/components/island/island.js +1 -1
  140. package/components/{table → legacy-table}/cell.js +1 -1
  141. package/components/{table → legacy-table}/header-cell.js +2 -3
  142. package/components/{table → legacy-table}/header.js +2 -3
  143. package/components/{table → legacy-table}/multitable.d.ts +1 -1
  144. package/components/{table → legacy-table}/row-with-focus-sensor.js +3 -3
  145. package/components/{table → legacy-table}/row.d.ts +1 -1
  146. package/components/{table → legacy-table}/row.js +5 -5
  147. package/components/legacy-table/selection-adapter.d.ts +6 -0
  148. package/components/{table → legacy-table}/selection-shortcuts-hoc.d.ts +5 -5
  149. package/components/{table → legacy-table}/simple-table.d.ts +2 -2
  150. package/components/{table → legacy-table}/simple-table.js +5 -5
  151. package/components/{table → legacy-table}/smart-table.d.ts +5 -5
  152. package/components/{table → legacy-table}/smart-table.js +6 -6
  153. package/components/legacy-table/table.d.ts +109 -0
  154. package/components/legacy-table/table.js +369 -0
  155. package/components/list/consts.d.ts +0 -1
  156. package/components/list/consts.js +0 -1
  157. package/components/list/list-item.js +3 -5
  158. package/components/list/list-users-groups-source.js +1 -2
  159. package/components/list/list.d.ts +0 -4
  160. package/components/list/list.js +1 -2
  161. package/components/login-dialog/login-dialog.js +17 -12
  162. package/components/login-dialog/service.js +19 -11
  163. package/components/message/message.js +1 -1
  164. package/components/pager/pager.js +3 -3
  165. package/components/popup/popup.js +1 -1
  166. package/components/popup/popup.target.d.ts +3 -2
  167. package/components/popup/popup.target.js +32 -28
  168. package/components/popup-menu/popup-menu.js +1 -1
  169. package/components/query-assist/query-assist-suggestions.js +1 -2
  170. package/components/query-assist/query-assist.d.ts +3 -1
  171. package/components/query-assist/query-assist.js +2 -2
  172. package/components/radio/radio-item.d.ts +3 -3
  173. package/components/radio/radio-item.js +33 -19
  174. package/components/radio/radio.d.ts +2 -2
  175. package/components/radio/radio.js +2 -2
  176. package/components/scrollable-section/scrollable-section.js +1 -1
  177. package/components/select/chevron-button.js +3 -3
  178. package/components/select/select-filter.js +3 -3
  179. package/components/select/select-popup.d.ts +3 -2
  180. package/components/select/select-popup.js +9 -4
  181. package/components/select/select.d.ts +6 -2
  182. package/components/select/select.js +5 -4
  183. package/components/selection-toolbar/selection-toolbar.d.ts +11 -0
  184. package/components/selection-toolbar/selection-toolbar.js +200 -0
  185. package/components/slider/slider.js +100 -97
  186. package/components/storage/storage-local.js +2 -2
  187. package/components/storage/storage.js +2 -2
  188. package/components/style.css +1 -1
  189. package/components/tab-trap/tab-trap.d.ts +3 -3
  190. package/components/tab-trap/tab-trap.js +83 -80
  191. package/components/table/default-item-renderer.d.ts +55 -0
  192. package/components/table/default-item-renderer.js +240 -0
  193. package/components/table/internal/reorder-animation-context.d.ts +21 -0
  194. package/components/table/internal/reorder-handle.d.ts +9 -0
  195. package/components/table/internal/reorder-layout-context.d.ts +16 -0
  196. package/components/table/internal/table-header.d.ts +1 -0
  197. package/components/table/internal/virtualization.d.ts +41 -0
  198. package/components/table/item-virtualization.d.ts +37 -0
  199. package/components/table/item-virtualization.js +73 -0
  200. package/components/table/reorder-animation.d.ts +37 -0
  201. package/components/table/reorder-animation.js +18 -0
  202. package/components/table/reorder-item-layout.d.ts +32 -0
  203. package/components/table/reorder-item-layout.js +57 -0
  204. package/components/table/table-const.d.ts +10 -0
  205. package/components/table/table-const.js +13 -0
  206. package/components/table/table-primitives.d.ts +64 -0
  207. package/components/table/table-primitives.js +180 -0
  208. package/components/table/table-props.d.ts +304 -0
  209. package/components/table/table-props.js +1 -0
  210. package/components/table/table.d.ts +231 -107
  211. package/components/table/table.js +351 -346
  212. package/components/tabs/collapsible-more.js +1 -1
  213. package/components/tabs/collapsible-tab.js +1 -1
  214. package/components/tabs/collapsible-tabs.js +1 -1
  215. package/components/tabs/dumb-tabs.js +1 -1
  216. package/components/tabs/smart-tabs.js +1 -1
  217. package/components/tabs/tab-link.js +1 -1
  218. package/components/tabs/tabs.js +1 -1
  219. package/components/tag/tag.js +1 -1
  220. package/components/tags-input/tags-input.d.ts +3 -1
  221. package/components/tags-input/tags-input.js +4 -4
  222. package/components/tags-list/tags-list.js +2 -2
  223. package/components/toggle/toggle.js +1 -1
  224. package/components/tooltip/tooltip.d.ts +2 -1
  225. package/components/tooltip/tooltip.js +5 -3
  226. package/components/upload/upload.d.ts +4 -3
  227. package/components/upload/upload.js +7 -30
  228. package/components/user-agreement/service.js +12 -4
  229. package/components/user-agreement/user-agreement.js +24 -20
  230. package/components/user-card/card.js +4 -4
  231. package/components/user-card/smart-user-card-tooltip.js +3 -3
  232. package/components/user-card/tooltip.js +3 -3
  233. package/components/user-card/user-card.js +5 -5
  234. package/components/util-stories.d.ts +26 -0
  235. package/package.json +11 -12
  236. package/components/__mocks__/old-browsers-message.js +0 -3
  237. package/components/_helpers/dialog-body-scroll-preventer.js +0 -50
  238. package/components/_helpers/grid.js +0 -3
  239. package/components/_helpers/sidebar.js +0 -110
  240. package/components/content-layout/content-layout.d.ts +0 -20
  241. package/components/content-layout/content-layout.js +0 -50
  242. package/components/content-layout/sidebar.d.ts +0 -26
  243. package/components/content-layout/sidebar.js +0 -5
  244. package/components/date-picker/use-intersection-observer.d.ts +0 -6
  245. package/components/date-picker/use-intersection-observer.js +0 -93
  246. package/components/expand/collapsible-group.d.ts +0 -8
  247. package/components/expand/collapsible-group.js +0 -52
  248. package/components/global/composeRefs.d.ts +0 -6
  249. package/components/global/composeRefs.js +0 -9
  250. package/components/global/use-event-callback.d.ts +0 -4
  251. package/components/global/use-event-callback.js +0 -49
  252. package/components/grid/col.d.ts +0 -16
  253. package/components/grid/col.js +0 -63
  254. package/components/grid/grid.d.ts +0 -13
  255. package/components/grid/grid.js +0 -27
  256. package/components/grid/row.d.ts +0 -21
  257. package/components/grid/row.js +0 -72
  258. package/components/old-browsers-message/old-browsers-message-stop.d.ts +0 -1
  259. package/components/old-browsers-message/old-browsers-message-stop.js +0 -5
  260. package/components/old-browsers-message/old-browsers-message.d.ts +0 -5
  261. package/components/old-browsers-message/old-browsers-message.js +0 -89
  262. package/components/old-browsers-message/white-list.d.ts +0 -2
  263. package/components/old-browsers-message/white-list.js +0 -30
  264. package/components/table/selection-adapter.d.ts +0 -6
  265. /package/components/{table → legacy-table}/cell.d.ts +0 -0
  266. /package/components/{table → legacy-table}/disable-hover-hoc.d.ts +0 -0
  267. /package/components/{table → legacy-table}/disable-hover-hoc.js +0 -0
  268. /package/components/{table → legacy-table}/header-cell.d.ts +0 -0
  269. /package/components/{table → legacy-table}/header.d.ts +0 -0
  270. /package/components/{table → legacy-table}/multitable.js +0 -0
  271. /package/components/{table → legacy-table}/row-with-focus-sensor.d.ts +0 -0
  272. /package/components/{table → legacy-table}/selection-adapter.js +0 -0
  273. /package/components/{table → legacy-table}/selection-shortcuts-hoc.js +0 -0
@@ -1,20 +1,18 @@
1
- import { c } from 'react-compiler-runtime';
2
- import { useState, useRef, useEffect, useLayoutEffect } from 'react';
1
+ import { c } from 'react/compiler-runtime';
2
+ import { useState, useRef, useEffectEvent, useEffect, useLayoutEffect } from 'react';
3
3
  import units, { isSafariOnIPhone, scrollerReRenderDelayIPhone } from './consts.js';
4
- import useEventCallback from '../global/use-event-callback.js';
5
4
  import 'date-fns/add';
6
5
  import 'date-fns';
7
6
  import '../global/sniffer.js';
8
7
  import 'sniffr';
9
- import 'util-deprecate';
10
8
 
11
9
  function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDateSource, arith, scheduleScroll) {
12
- const $ = c(39);
13
- if ($[0] !== "5ce72fbec5594f0e31b7b5703cf53349d817d9722b565bfa743aaa359a97033d") {
14
- for (let $i = 0; $i < 39; $i += 1) {
10
+ const $ = c(38);
11
+ if ($[0] !== "a3a62d0eaf68edc8b0ddbd21981a78487012d4433139cd433e355b8f989ab2de") {
12
+ for (let $i = 0; $i < 38; $i += 1) {
15
13
  $[$i] = Symbol.for("react.memo_cache_sentinel");
16
14
  }
17
- $[0] = "5ce72fbec5594f0e31b7b5703cf53349d817d9722b565bfa743aaa359a97033d";
15
+ $[0] = "a3a62d0eaf68edc8b0ddbd21981a78487012d4433139cd433e355b8f989ab2de";
18
16
  }
19
17
  let t0;
20
18
  if ($[1] !== arith || $[2] !== scrollDate.date) {
@@ -61,7 +59,7 @@ function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDate
61
59
  } else {
62
60
  t2 = $[12];
63
61
  }
64
- const syncSelfState = useEventCallback(t2);
62
+ const syncSelfState = useEffectEvent(t2);
65
63
  const didMountRef = useRef(false);
66
64
  let t3;
67
65
  if ($[13] !== scrollDate.date || $[14] !== scrollDate.source || $[15] !== selfScrollDateSource || $[16] !== syncSelfState) {
@@ -88,19 +86,18 @@ function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDate
88
86
  t3 = $[17];
89
87
  }
90
88
  let t4;
91
- if ($[18] !== scrollDate || $[19] !== selfScrollDateSource || $[20] !== syncSelfState) {
92
- t4 = [scrollDate, selfScrollDateSource, syncSelfState];
89
+ if ($[18] !== scrollDate || $[19] !== selfScrollDateSource) {
90
+ t4 = [scrollDate, selfScrollDateSource];
93
91
  $[18] = scrollDate;
94
92
  $[19] = selfScrollDateSource;
95
- $[20] = syncSelfState;
96
- $[21] = t4;
93
+ $[20] = t4;
97
94
  } else {
98
- t4 = $[21];
95
+ t4 = $[20];
99
96
  }
100
97
  useEffect(t3, t4);
101
98
  const ignoreNextScrollEventRef = useRef(true);
102
99
  let t5;
103
- if ($[22] !== scrollTop) {
100
+ if ($[21] !== scrollTop) {
104
101
  t5 = function setContainerScrollFromState() {
105
102
  const container_0 = containerRef.current;
106
103
  if (!container_0) {
@@ -109,24 +106,24 @@ function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDate
109
106
  ignoreNextScrollEventRef.current = true;
110
107
  container_0.scrollTop = scrollTop;
111
108
  };
112
- $[22] = scrollTop;
113
- $[23] = t5;
109
+ $[21] = scrollTop;
110
+ $[22] = t5;
114
111
  } else {
115
- t5 = $[23];
112
+ t5 = $[22];
116
113
  }
117
114
  let t6;
118
- if ($[24] !== items || $[25] !== scrollTop) {
115
+ if ($[23] !== items || $[24] !== scrollTop) {
119
116
  t6 = [items, scrollTop];
120
- $[24] = items;
121
- $[25] = scrollTop;
122
- $[26] = t6;
117
+ $[23] = items;
118
+ $[24] = scrollTop;
119
+ $[25] = t6;
123
120
  } else {
124
- t6 = $[26];
121
+ t6 = $[25];
125
122
  }
126
123
  useLayoutEffect(t5, t6);
127
124
  const updateStateTimerRef = useRef(null);
128
125
  let t7;
129
- if ($[27] !== arith || $[28] !== items || $[29] !== locale || $[30] !== onContainerScroll || $[31] !== scheduleScroll || $[32] !== selfScrollDateSource) {
126
+ if ($[26] !== arith || $[27] !== items || $[28] !== locale || $[29] !== onContainerScroll || $[30] !== scheduleScroll || $[31] !== selfScrollDateSource) {
130
127
  t7 = () => {
131
128
  scheduleScroll(() => {
132
129
  if (updateStateTimerRef.current != null) {
@@ -165,20 +162,19 @@ function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDate
165
162
  }
166
163
  });
167
164
  };
168
- $[27] = arith;
169
- $[28] = items;
170
- $[29] = locale;
171
- $[30] = onContainerScroll;
172
- $[31] = scheduleScroll;
173
- $[32] = selfScrollDateSource;
174
- $[33] = t7;
165
+ $[26] = arith;
166
+ $[27] = items;
167
+ $[28] = locale;
168
+ $[29] = onContainerScroll;
169
+ $[30] = scheduleScroll;
170
+ $[31] = selfScrollDateSource;
171
+ $[32] = t7;
175
172
  } else {
176
- t7 = $[33];
173
+ t7 = $[32];
177
174
  }
178
- const handleScroll = useEventCallback(t7);
175
+ const handleScroll = useEffectEvent(t7);
179
176
  let t8;
180
- let t9;
181
- if ($[34] !== handleScroll) {
177
+ if ($[33] !== handleScroll) {
182
178
  t8 = () => {
183
179
  const container_2 = containerRef.current;
184
180
  if (!container_2) {
@@ -193,25 +189,29 @@ function useScrollBehavior(scrollDate, onContainerScroll, locale, selfScrollDate
193
189
  }
194
190
  };
195
191
  };
196
- t9 = [handleScroll];
197
- $[34] = handleScroll;
198
- $[35] = t8;
199
- $[36] = t9;
192
+ $[33] = handleScroll;
193
+ $[34] = t8;
194
+ } else {
195
+ t8 = $[34];
196
+ }
197
+ let t9;
198
+ if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
199
+ t9 = [];
200
+ $[35] = t9;
200
201
  } else {
201
- t8 = $[35];
202
- t9 = $[36];
202
+ t9 = $[35];
203
203
  }
204
204
  useEffect(t8, t9);
205
205
  let t10;
206
- if ($[37] !== items) {
206
+ if ($[36] !== items) {
207
207
  t10 = {
208
208
  containerRef,
209
209
  items
210
210
  };
211
- $[37] = items;
212
- $[38] = t10;
211
+ $[36] = items;
212
+ $[37] = t10;
213
213
  } else {
214
- t10 = $[38];
214
+ t10 = $[37];
215
215
  }
216
216
  return t10;
217
217
  }
@@ -1,5 +1,5 @@
1
1
  import 'core-js/modules/es.array.includes.js';
2
- import { c } from 'react-compiler-runtime';
2
+ import { c } from 'react/compiler-runtime';
3
3
  import classNames from 'classnames';
4
4
  import { getDay } from 'date-fns/getDay';
5
5
  import { format } from 'date-fns/format';
@@ -1,4 +1,4 @@
1
- import { c } from 'react-compiler-runtime';
1
+ import { c } from 'react/compiler-runtime';
2
2
  import { useState, useRef, useEffect } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import { addYears } from 'date-fns/addYears';
@@ -13,15 +13,13 @@ import { ScrollArith } from './scroll-arith.js';
13
13
  import { useScrollBehavior } from './use-scroll-behavior.js';
14
14
  import { animateDate } from './animate-date.js';
15
15
  import scheduleRAF from '../global/schedule-raf.js';
16
- import { useIntersectionObserver, useVisibility } from './use-intersection-observer.js';
16
+ import { useIntersectionObserverHandle, IntersectionObserverContext, useIsIntersecting } from '../global/intersection-observer-context.js';
17
17
  import { s as styles } from '../_helpers/date-picker.js';
18
18
  import { jsx } from 'react/jsx-runtime';
19
19
  import 'date-fns/add';
20
20
  import 'date-fns';
21
21
  import '../global/sniffer.js';
22
22
  import 'sniffr';
23
- import '../global/use-event-callback.js';
24
- import 'util-deprecate';
25
23
 
26
24
  const {
27
25
  yearHeight
@@ -36,14 +34,14 @@ const scheduleScroll = scheduleRAF();
36
34
  /**
37
35
  * Reduces "empty" years during fast scrolling.
38
36
  */
39
- const intersectionObserverScrollMargin = units.calHeight / 2;
37
+ const intersectionObserverRootMargin = units.calHeight / 2;
40
38
  function Years(t0) {
41
- const $ = c(24);
42
- if ($[0] !== "aa5edf1b8146bb2f5048c50f376e591fc6fc5fcb5e70e35dc076528241c541c9") {
43
- for (let $i = 0; $i < 24; $i += 1) {
39
+ const $ = c(25);
40
+ if ($[0] !== "d83f39ae52d8a31382391108984551694ebcf0097c6e55663ca967ea74179702") {
41
+ for (let $i = 0; $i < 25; $i += 1) {
44
42
  $[$i] = Symbol.for("react.memo_cache_sentinel");
45
43
  }
46
- $[0] = "aa5edf1b8146bb2f5048c50f376e591fc6fc5fcb5e70e35dc076528241c541c9";
44
+ $[0] = "d83f39ae52d8a31382391108984551694ebcf0097c6e55663ca967ea74179702";
47
45
  }
48
46
  const {
49
47
  scrollDate,
@@ -154,81 +152,89 @@ function Years(t0) {
154
152
  containerRef,
155
153
  items
156
154
  } = useScrollBehavior(localScrollDate, syncCalendarScrollDate, undefined, "yearsScroll", scrollArith, scheduleScroll);
157
- const intersectionObserverHandle = useIntersectionObserver(containerRef, intersectionObserverScrollMargin);
158
- let t7;
159
- if ($[12] !== handleYearClick || $[13] !== intersectionObserverHandle || $[14] !== items || $[15] !== localScrollDate.date) {
160
- let t8;
161
- if ($[17] !== handleYearClick || $[18] !== intersectionObserverHandle || $[19] !== localScrollDate.date) {
162
- t8 = year_0 => /*#__PURE__*/jsx(Year, {
155
+ const t7 = useIntersectionObserverHandle(containerRef, intersectionObserverRootMargin);
156
+ let t8;
157
+ if ($[12] !== handleYearClick || $[13] !== items || $[14] !== localScrollDate.date) {
158
+ let t9;
159
+ if ($[16] !== handleYearClick || $[17] !== localScrollDate.date) {
160
+ t9 = year_0 => /*#__PURE__*/jsx(Year, {
163
161
  year: year_0,
164
162
  scrollDate: localScrollDate.date,
165
- handleYearClick: handleYearClick,
166
- intersectionObserverHandle: intersectionObserverHandle
163
+ handleYearClick: handleYearClick
167
164
  }, +year_0);
168
- $[17] = handleYearClick;
169
- $[18] = intersectionObserverHandle;
170
- $[19] = localScrollDate.date;
171
- $[20] = t8;
165
+ $[16] = handleYearClick;
166
+ $[17] = localScrollDate.date;
167
+ $[18] = t9;
172
168
  } else {
173
- t8 = $[20];
169
+ t9 = $[18];
174
170
  }
175
- t7 = items.map(t8);
171
+ t8 = items.map(t9);
176
172
  $[12] = handleYearClick;
177
- $[13] = intersectionObserverHandle;
178
- $[14] = items;
179
- $[15] = localScrollDate.date;
180
- $[16] = t7;
173
+ $[13] = items;
174
+ $[14] = localScrollDate.date;
175
+ $[15] = t8;
181
176
  } else {
182
- t7 = $[16];
177
+ t8 = $[15];
183
178
  }
184
- let t8;
185
- if ($[21] !== containerRef || $[22] !== t7) {
186
- t8 = /*#__PURE__*/jsx("div", {
179
+ let t9;
180
+ if ($[19] !== containerRef || $[20] !== t8) {
181
+ t9 = /*#__PURE__*/jsx("div", {
187
182
  className: styles.years,
188
183
  ref: containerRef,
189
184
  "data-test": "ring-date-popup--years",
190
- children: t7
185
+ children: t8
186
+ });
187
+ $[19] = containerRef;
188
+ $[20] = t8;
189
+ $[21] = t9;
190
+ } else {
191
+ t9 = $[21];
192
+ }
193
+ let t10;
194
+ if ($[22] !== t7 || $[23] !== t9) {
195
+ t10 = /*#__PURE__*/jsx(IntersectionObserverContext, {
196
+ value: t7,
197
+ children: t9
191
198
  });
192
- $[21] = containerRef;
193
199
  $[22] = t7;
194
- $[23] = t8;
200
+ $[23] = t9;
201
+ $[24] = t10;
195
202
  } else {
196
- t8 = $[23];
203
+ t10 = $[24];
197
204
  }
198
- return t8;
205
+ return t10;
199
206
  }
200
207
  function Year(t0) {
201
208
  const $ = c(24);
202
- if ($[0] !== "aa5edf1b8146bb2f5048c50f376e591fc6fc5fcb5e70e35dc076528241c541c9") {
209
+ if ($[0] !== "d83f39ae52d8a31382391108984551694ebcf0097c6e55663ca967ea74179702") {
203
210
  for (let $i = 0; $i < 24; $i += 1) {
204
211
  $[$i] = Symbol.for("react.memo_cache_sentinel");
205
212
  }
206
- $[0] = "aa5edf1b8146bb2f5048c50f376e591fc6fc5fcb5e70e35dc076528241c541c9";
213
+ $[0] = "d83f39ae52d8a31382391108984551694ebcf0097c6e55663ca967ea74179702";
207
214
  }
208
215
  const {
209
216
  year,
210
217
  scrollDate,
211
- handleYearClick,
212
- intersectionObserverHandle
218
+ handleYearClick
213
219
  } = t0;
214
220
  const buttonRef = useRef(null);
215
- const visible = useVisibility(intersectionObserverHandle, buttonRef);
221
+ const isIntersecting = useIsIntersecting(buttonRef);
216
222
  const t1 = +year;
217
- const t2 = !visible;
223
+ const t2 = !isIntersecting;
218
224
  let t3;
219
- if ($[1] !== scrollDate || $[2] !== visible || $[3] !== year) {
220
- t3 = visible && isSameYear(year, scrollDate) && styles.currentYear;
221
- $[1] = scrollDate;
222
- $[2] = visible;
225
+ if ($[1] !== isIntersecting || $[2] !== scrollDate || $[3] !== year) {
226
+ t3 = isIntersecting && isSameYear(year, scrollDate) && styles.currentYear;
227
+ $[1] = isIntersecting;
228
+ $[2] = scrollDate;
223
229
  $[3] = year;
224
230
  $[4] = t3;
225
231
  } else {
226
232
  t3 = $[4];
227
233
  }
228
234
  let t4;
229
- if ($[5] !== visible || $[6] !== year) {
230
- t4 = visible && isThisYear(year) && styles.today;
231
- $[5] = visible;
235
+ if ($[5] !== isIntersecting || $[6] !== year) {
236
+ t4 = isIntersecting && isThisYear(year) && styles.today;
237
+ $[5] = isIntersecting;
232
238
  $[6] = year;
233
239
  $[7] = t4;
234
240
  } else {
@@ -244,19 +250,19 @@ function Year(t0) {
244
250
  t5 = $[10];
245
251
  }
246
252
  let t6;
247
- if ($[11] !== handleYearClick || $[12] !== visible || $[13] !== year) {
248
- t6 = visible ? () => handleYearClick(year) : undefined;
253
+ if ($[11] !== handleYearClick || $[12] !== isIntersecting || $[13] !== year) {
254
+ t6 = isIntersecting ? () => handleYearClick(year) : undefined;
249
255
  $[11] = handleYearClick;
250
- $[12] = visible;
256
+ $[12] = isIntersecting;
251
257
  $[13] = year;
252
258
  $[14] = t6;
253
259
  } else {
254
260
  t6 = $[14];
255
261
  }
256
262
  let t7;
257
- if ($[15] !== visible || $[16] !== year) {
258
- t7 = visible ? format(year, "yyyy") : "\xA0";
259
- $[15] = visible;
263
+ if ($[15] !== isIntersecting || $[16] !== year) {
264
+ t7 = isIntersecting ? format(year, "yyyy") : "\xA0";
265
+ $[15] = isIntersecting;
260
266
  $[16] = year;
261
267
  $[17] = t7;
262
268
  } else {
@@ -1,2 +1,49 @@
1
- import 'scrollbar-width';
2
- export { d as default, p as preventerFactory } from '../_helpers/dialog-body-scroll-preventer.js';
1
+ import scrollbarWidth from 'scrollbar-width';
2
+ import { s as styles } from '../_helpers/dialog.js';
3
+
4
+ const isPrevented = new Set();
5
+ let previousDocumentWidth = null;
6
+ const prevent = key => {
7
+ if (isPrevented.has(key)) {
8
+ return;
9
+ }
10
+ isPrevented.add(key);
11
+ if (isPrevented.size > 1) {
12
+ return;
13
+ }
14
+ const documentHasScroll = document.documentElement.scrollHeight > window.innerHeight || getComputedStyle(document.documentElement).overflowY === 'scroll';
15
+ document.documentElement.classList.add(styles.documentWithoutScroll);
16
+ const scrollWidth = scrollbarWidth();
17
+ const {
18
+ scrollbarGutter
19
+ } = getComputedStyle(document.documentElement);
20
+ const documentHasScrollbarGutter = scrollbarGutter === 'stable' || scrollbarGutter === 'both-edges';
21
+ if (documentHasScroll && scrollWidth !== null && scrollWidth !== undefined && scrollWidth > 0 && !documentHasScrollbarGutter) {
22
+ previousDocumentWidth = document.documentElement.style.width;
23
+ document.documentElement.style.width = `calc(100% - ${scrollWidth}px)`;
24
+ }
25
+ };
26
+ const reset = key => {
27
+ if (isPrevented.size === 0) {
28
+ return;
29
+ }
30
+ isPrevented.delete(key);
31
+ if (isPrevented.size > 0) {
32
+ return;
33
+ }
34
+ document.documentElement.classList.remove(styles.documentWithoutScroll);
35
+ if (previousDocumentWidth !== null && previousDocumentWidth !== undefined) {
36
+ document.documentElement.style.width = previousDocumentWidth;
37
+ previousDocumentWidth = null;
38
+ }
39
+ };
40
+ const preventerFactory = key => {
41
+ const preventerKey = key || Math.random();
42
+ return {
43
+ prevent: () => prevent(preventerKey),
44
+ reset: () => reset(preventerKey)
45
+ };
46
+ };
47
+ var dialogBodyScrollPreventer = preventerFactory('default-preventer');
48
+
49
+ export { dialogBodyScrollPreventer as default, preventerFactory };
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { InteractionDirection } from './dialog-geometry';
3
+ interface DialogControlsProps {
4
+ movable: boolean | undefined;
5
+ resizable: boolean | undefined;
6
+ showCloseButton: boolean;
7
+ closeButtonTitle: string | undefined;
8
+ onCloseClick: React.MouseEventHandler<HTMLElement>;
9
+ onStartInteraction: (event: React.PointerEvent<HTMLElement>, direction: InteractionDirection) => void;
10
+ onStopInteraction: React.PointerEventHandler<HTMLElement>;
11
+ }
12
+ export default function DialogControls({ movable, resizable, showCloseButton, closeButtonTitle, onCloseClick, onStartInteraction, onStopInteraction, }: DialogControlsProps): React.JSX.Element;
13
+ export {};
@@ -0,0 +1,113 @@
1
+ import { c } from 'react/compiler-runtime';
2
+ import 'react';
3
+ import closeIcon from '@jetbrains/icons/close';
4
+ import resizeIcon from '@jetbrains/icons/resize-corner-12px';
5
+ import { Button } from '../button/button.js';
6
+ import Icon from '../icon/icon.js';
7
+ import { s as styles } from '../_helpers/dialog.js';
8
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
+ import 'classnames';
10
+ import '@jetbrains/icons/chevron-down';
11
+ import '@jetbrains/icons/chevron-12px-down';
12
+ import '../link/clickable-link.js';
13
+ import '../global/controls-height.js';
14
+ import 'util-deprecate';
15
+ import '../global/configuration.js';
16
+ import '../_helpers/button.classes.js';
17
+ import '../icon/icon.constants.js';
18
+ import '../_helpers/icon-svg.js';
19
+ import '../global/memoize.js';
20
+
21
+ const resizeDirections = ['n', 'ne', 'e', 's', 'sw', 'w', 'nw', 'se'];
22
+ function DialogControls(t0) {
23
+ const $ = c(16);
24
+ if ($[0] !== "3b5393fdb3ab1f8cc9dae0ff6911750d56209b75ddbd239bbce35cfb2f2ab34c") {
25
+ for (let $i = 0; $i < 16; $i += 1) {
26
+ $[$i] = Symbol.for("react.memo_cache_sentinel");
27
+ }
28
+ $[0] = "3b5393fdb3ab1f8cc9dae0ff6911750d56209b75ddbd239bbce35cfb2f2ab34c";
29
+ }
30
+ const {
31
+ movable,
32
+ resizable,
33
+ showCloseButton,
34
+ closeButtonTitle,
35
+ onCloseClick,
36
+ onStartInteraction,
37
+ onStopInteraction
38
+ } = t0;
39
+ let t1;
40
+ if ($[1] !== movable || $[2] !== onStopInteraction) {
41
+ t1 = movable && /*#__PURE__*/jsx("div", {
42
+ "aria-hidden": "true",
43
+ className: styles.moveHandle,
44
+ "data-ring-dialog-move-handle": "",
45
+ "data-test": "ring-dialog-move-handle",
46
+ onLostPointerCapture: onStopInteraction
47
+ });
48
+ $[1] = movable;
49
+ $[2] = onStopInteraction;
50
+ $[3] = t1;
51
+ } else {
52
+ t1 = $[3];
53
+ }
54
+ let t2;
55
+ if ($[4] !== closeButtonTitle || $[5] !== onCloseClick || $[6] !== showCloseButton) {
56
+ t2 = showCloseButton && /*#__PURE__*/jsx(Button, {
57
+ icon: closeIcon,
58
+ "data-test": "ring-dialog-close-button",
59
+ className: styles.closeButton,
60
+ iconClassName: styles.closeIcon,
61
+ onClick: onCloseClick,
62
+ title: closeButtonTitle,
63
+ "aria-label": closeButtonTitle || "close dialog"
64
+ });
65
+ $[4] = closeButtonTitle;
66
+ $[5] = onCloseClick;
67
+ $[6] = showCloseButton;
68
+ $[7] = t2;
69
+ } else {
70
+ t2 = $[7];
71
+ }
72
+ let t3;
73
+ if ($[8] !== onStartInteraction || $[9] !== onStopInteraction || $[10] !== resizable) {
74
+ t3 = resizable && /*#__PURE__*/jsxs(Fragment, {
75
+ children: [resizeDirections.map(direction => /*#__PURE__*/jsx("div", {
76
+ "aria-hidden": "true",
77
+ className: styles.resizeHandle,
78
+ "data-resize-direction": direction,
79
+ "data-test": `ring-dialog-resize-handle-${direction}`,
80
+ onPointerDown: event => onStartInteraction(event, direction),
81
+ onPointerUp: onStopInteraction,
82
+ onPointerCancel: onStopInteraction,
83
+ onLostPointerCapture: onStopInteraction
84
+ }, direction)), /*#__PURE__*/jsx(Icon, {
85
+ "aria-hidden": "true",
86
+ className: styles.resizeMarker,
87
+ "data-test": "ring-dialog-resize-marker",
88
+ glyph: resizeIcon
89
+ })]
90
+ });
91
+ $[8] = onStartInteraction;
92
+ $[9] = onStopInteraction;
93
+ $[10] = resizable;
94
+ $[11] = t3;
95
+ } else {
96
+ t3 = $[11];
97
+ }
98
+ let t4;
99
+ if ($[12] !== t1 || $[13] !== t2 || $[14] !== t3) {
100
+ t4 = /*#__PURE__*/jsxs(Fragment, {
101
+ children: [t1, t2, t3]
102
+ });
103
+ $[12] = t1;
104
+ $[13] = t2;
105
+ $[14] = t3;
106
+ $[15] = t4;
107
+ } else {
108
+ t4 = $[15];
109
+ }
110
+ return t4;
111
+ }
112
+
113
+ export { DialogControls as default };
@@ -0,0 +1,31 @@
1
+ export type ResizeDirection = 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w' | 'nw';
2
+ export type InteractionDirection = 'move' | ResizeDirection;
3
+ export interface Geometry {
4
+ left: number;
5
+ top: number;
6
+ width: number;
7
+ height: number;
8
+ }
9
+ export interface DialogState {
10
+ shortcutsScope: string;
11
+ geometry: Geometry | null;
12
+ resized: boolean;
13
+ }
14
+ export interface Interaction {
15
+ pointerId: number;
16
+ direction: InteractionDirection;
17
+ startX: number;
18
+ startY: number;
19
+ minWidth: number;
20
+ minHeight: number;
21
+ geometry: Geometry;
22
+ }
23
+ export declare const getNativeTabIndex: (autoFocusFirst: boolean | undefined) => -1 | undefined;
24
+ export declare const getTrapDisabled: (trapFocus: boolean, trapDisabled: boolean | undefined) => boolean;
25
+ export declare const getResizeMinimum: (element: Element) => {
26
+ minWidth: number;
27
+ minHeight: number;
28
+ };
29
+ export declare const moveGeometry: (start: Geometry, dx: number, dy: number, viewportWidth: number, viewportHeight: number) => Geometry;
30
+ export declare const fitGeometry: (geometry: Geometry, viewportWidth: number, viewportHeight: number) => Geometry;
31
+ export declare const resizeGeometry: ({ geometry: start, direction, minWidth, minHeight }: Interaction, dx: number, dy: number, viewportWidth: number, viewportHeight: number) => Geometry;
@@ -0,0 +1,63 @@
1
+ import 'core-js/modules/es.array.includes.js';
2
+
3
+ const MIN_WIDTH = 256;
4
+ const MIN_HEIGHT = 160;
5
+ const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
6
+ const getNativeTabIndex = autoFocusFirst => autoFocusFirst ? undefined : -1;
7
+ const getTrapDisabled = (trapFocus, trapDisabled) => trapDisabled !== null && trapDisabled !== void 0 ? trapDisabled : !trapFocus;
8
+ const getResizeMinimum = element => {
9
+ const {
10
+ minWidth,
11
+ minHeight
12
+ } = getComputedStyle(element);
13
+ const parsedWidth = parseFloat(minWidth);
14
+ const parsedHeight = parseFloat(minHeight);
15
+ return {
16
+ minWidth: Number.isNaN(parsedWidth) ? MIN_WIDTH : parsedWidth,
17
+ minHeight: Number.isNaN(parsedHeight) ? MIN_HEIGHT : parsedHeight
18
+ };
19
+ };
20
+ const moveGeometry = (start, dx, dy, viewportWidth, viewportHeight) => ({
21
+ ...start,
22
+ left: clamp(start.left + dx, 0, Math.max(0, viewportWidth - start.width)),
23
+ top: clamp(start.top + dy, 0, Math.max(0, viewportHeight - start.height))
24
+ });
25
+ const fitGeometry = (geometry, viewportWidth, viewportHeight) => {
26
+ const width = Math.min(geometry.width, viewportWidth);
27
+ const height = Math.min(geometry.height, viewportHeight);
28
+ return {
29
+ left: clamp(geometry.left, 0, Math.max(0, viewportWidth - width)),
30
+ top: clamp(geometry.top, 0, Math.max(0, viewportHeight - height)),
31
+ width,
32
+ height
33
+ };
34
+ };
35
+ const resizeGeometry = ({
36
+ geometry: start,
37
+ direction,
38
+ minWidth,
39
+ minHeight
40
+ }, dx, dy, viewportWidth, viewportHeight) => {
41
+ let left = start.left;
42
+ let right = start.left + start.width;
43
+ let top = start.top;
44
+ let bottom = start.top + start.height;
45
+ if (direction.includes('w')) {
46
+ left = clamp(start.left + dx, 0, right - Math.min(minWidth, right));
47
+ } else if (direction.includes('e')) {
48
+ right = clamp(right + dx, left + Math.min(minWidth, viewportWidth - left), viewportWidth);
49
+ }
50
+ if (direction.includes('n')) {
51
+ top = clamp(start.top + dy, 0, bottom - Math.min(minHeight, bottom));
52
+ } else if (direction.includes('s')) {
53
+ bottom = clamp(bottom + dy, top + Math.min(minHeight, viewportHeight - top), viewportHeight);
54
+ }
55
+ return {
56
+ left,
57
+ top,
58
+ width: right - left,
59
+ height: bottom - top
60
+ };
61
+ };
62
+
63
+ export { fitGeometry, getNativeTabIndex, getResizeMinimum, getTrapDisabled, moveGeometry, resizeGeometry };