@jetbrains/ring-ui-built 7.0.123 → 8.0.0-beta.10

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 (257) hide show
  1. package/components/_helpers/anchor.js +1 -1
  2. package/components/_helpers/avatar-info.js +3 -5
  3. package/components/_helpers/icon-svg.js +2 -2
  4. package/components/_helpers/legacy-table.js +3 -0
  5. package/components/_helpers/tab-link.js +1 -1
  6. package/components/_helpers/table.js +2 -2
  7. package/components/_helpers/theme.js +49 -37
  8. package/components/alert/alert-actions.js +1 -1
  9. package/components/alert/alert-heading.js +1 -1
  10. package/components/alert/alert.js +1 -1
  11. package/components/alert-service/alert-service.js +1 -1
  12. package/components/auth/auth-core.js +1 -1
  13. package/components/auth/auth.js +1 -1
  14. package/components/auth/down-notification.js +1 -1
  15. package/components/auth/iframe-flow.js +1 -1
  16. package/components/auth/storage.js +1 -1
  17. package/components/auth-dialog/auth-dialog.js +2 -2
  18. package/components/auth-dialog-service/auth-dialog-service.js +2 -2
  19. package/components/avatar/avatar-info.js +1 -1
  20. package/components/avatar/avatar-size.d.ts +0 -4
  21. package/components/avatar/avatar-size.js +0 -4
  22. package/components/avatar/avatar.js +1 -8
  23. package/components/avatar/fallback-avatar.js +3 -48
  24. package/components/avatar-stack/avatar-stack.js +4 -4
  25. package/components/banner/banner.js +1 -1
  26. package/components/button/button.d.ts +0 -4
  27. package/components/button/button.js +3 -9
  28. package/components/button-group/button-group.js +1 -1
  29. package/components/checkbox/checkbox.d.ts +1 -1
  30. package/components/checkbox/checkbox.js +1 -1
  31. package/components/clipboard/clipboard.js +1 -1
  32. package/components/collapse/collapse-content.js +35 -43
  33. package/components/collapse/collapse-context.d.ts +1 -0
  34. package/components/collapse/collapse-context.js +1 -0
  35. package/components/collapse/collapse-control.js +5 -5
  36. package/components/collapse/collapse.js +34 -25
  37. package/components/collapsible-group/collapsible-group.d.ts +5 -1
  38. package/components/collapsible-group/collapsible-group.js +80 -97
  39. package/components/components/util-stories.js +63 -1
  40. package/components/confirm/confirm.js +2 -2
  41. package/components/confirm-service/confirm-service.js +3 -3
  42. package/components/contenteditable/contenteditable.js +1 -1
  43. package/components/control-help/control-help.js +1 -1
  44. package/components/control-label/control-label.js +1 -1
  45. package/components/data-list/data-list.d.ts +4 -4
  46. package/components/data-list/data-list.js +4 -4
  47. package/components/data-list/data-list.mock.d.ts +1 -1
  48. package/components/data-list/data-list.mock.js +1 -1
  49. package/components/data-list/item.d.ts +1 -1
  50. package/components/data-list/item.js +2 -2
  51. package/components/data-list/selection.d.ts +1 -1
  52. package/components/data-list/selection.js +2 -2
  53. package/components/data-list/title.js +1 -1
  54. package/components/date-picker/date-input.js +2 -2
  55. package/components/date-picker/date-picker.js +2 -3
  56. package/components/date-picker/date-popup.js +3 -4
  57. package/components/date-picker/month-names.js +1 -1
  58. package/components/date-picker/month-slider.js +1 -1
  59. package/components/date-picker/month.d.ts +0 -2
  60. package/components/date-picker/month.js +17 -18
  61. package/components/date-picker/months.js +43 -36
  62. package/components/date-picker/use-scroll-behavior.js +45 -45
  63. package/components/date-picker/weekdays.js +1 -1
  64. package/components/date-picker/years.js +61 -55
  65. package/components/dialog/dialog.d.ts +2 -2
  66. package/components/dialog/dialog.js +4 -4
  67. package/components/dropdown/anchor.js +2 -2
  68. package/components/dropdown/dropdown.js +2 -2
  69. package/components/dropdown-menu/dropdown-menu.d.ts +4 -4
  70. package/components/dropdown-menu/dropdown-menu.js +62 -57
  71. package/components/editable-heading/editable-heading.d.ts +1 -2
  72. package/components/editable-heading/editable-heading.js +13 -12
  73. package/components/error-bubble/error-bubble.js +1 -1
  74. package/components/error-message/error-message.js +1 -1
  75. package/components/footer/footer.js +1 -1
  76. package/components/global/compose-refs.d.ts +2 -1
  77. package/components/global/compose-refs.js +44 -8
  78. package/components/global/create-stateful-context.js +11 -11
  79. package/components/global/focus-sensor-hoc.js +1 -0
  80. package/components/global/focus-with-temporary-tabindex.d.ts +11 -0
  81. package/components/global/focus-with-temporary-tabindex.js +23 -0
  82. package/components/global/intersection-observer-context.d.ts +46 -0
  83. package/components/global/intersection-observer-context.js +138 -0
  84. package/components/global/is-within-interactive-element.d.ts +6 -0
  85. package/components/global/is-within-interactive-element.js +11 -0
  86. package/components/global/is-within-navigable-element.d.ts +6 -0
  87. package/components/global/is-within-navigable-element.js +11 -0
  88. package/components/global/parse-css-duration.d.ts +5 -0
  89. package/components/global/parse-css-duration.js +14 -0
  90. package/components/global/rerender-hoc.d.ts +4 -2
  91. package/components/global/rerender-hoc.js +11 -24
  92. package/components/global/schedule-with-cleanup.d.ts +12 -0
  93. package/components/global/schedule-with-cleanup.js +36 -0
  94. package/components/{table/selection.d.ts → global/table-selection.d.ts} +15 -15
  95. package/components/{table/selection.js → global/table-selection.js} +5 -5
  96. package/components/global/theme.d.ts +4 -3
  97. package/components/global/theme.js +1 -1
  98. package/components/global/variables.interface.d.ts +0 -4
  99. package/components/header/header-icon.js +2 -2
  100. package/components/header/header.js +2 -2
  101. package/components/header/links.js +1 -1
  102. package/components/header/logo.js +1 -1
  103. package/components/header/profile.js +4 -4
  104. package/components/header/services.js +2 -2
  105. package/components/header/smart-profile.js +2 -2
  106. package/components/header/smart-services.js +2 -2
  107. package/components/heading/heading.js +1 -1
  108. package/components/i18n/i18n-context.js +4 -4
  109. package/components/icon/icon-svg.js +1 -1
  110. package/components/icon/icon.d.ts +0 -1
  111. package/components/icon/icon.js +2 -5
  112. package/components/icon/index.js +1 -1
  113. package/components/input/input.d.ts +1 -1
  114. package/components/input/input.js +2 -2
  115. package/components/internal/reorder-animation-context.js +159 -0
  116. package/components/internal/reorder-handle.js +750 -0
  117. package/components/internal/reorder-layout-context.js +141 -0
  118. package/components/internal/table-header.js +685 -0
  119. package/components/internal/virtualization.js +368 -0
  120. package/components/island/adaptive-island-hoc.js +3 -3
  121. package/components/island/content.d.ts +7 -2
  122. package/components/island/content.js +27 -18
  123. package/components/island/header.js +1 -1
  124. package/components/island/island.js +1 -1
  125. package/components/{table → legacy-table}/cell.js +1 -1
  126. package/components/{table → legacy-table}/header-cell.js +2 -2
  127. package/components/{table → legacy-table}/header.js +2 -2
  128. package/components/{table → legacy-table}/multitable.d.ts +1 -1
  129. package/components/{table → legacy-table}/row-with-focus-sensor.js +2 -2
  130. package/components/{table → legacy-table}/row.d.ts +1 -1
  131. package/components/{table → legacy-table}/row.js +4 -4
  132. package/components/legacy-table/selection-adapter.d.ts +6 -0
  133. package/components/{table → legacy-table}/selection-shortcuts-hoc.d.ts +5 -5
  134. package/components/{table → legacy-table}/simple-table.d.ts +2 -2
  135. package/components/{table → legacy-table}/simple-table.js +4 -4
  136. package/components/{table → legacy-table}/smart-table.d.ts +5 -5
  137. package/components/{table → legacy-table}/smart-table.js +5 -5
  138. package/components/legacy-table/table.d.ts +109 -0
  139. package/components/legacy-table/table.js +369 -0
  140. package/components/list/consts.d.ts +0 -1
  141. package/components/list/consts.js +0 -1
  142. package/components/list/list-item.js +3 -4
  143. package/components/list/list-users-groups-source.js +1 -1
  144. package/components/list/list.d.ts +0 -4
  145. package/components/list/list.js +1 -1
  146. package/components/login-dialog/login-dialog.js +2 -2
  147. package/components/login-dialog/service.js +2 -2
  148. package/components/message/message.js +1 -1
  149. package/components/pager/pager.js +3 -3
  150. package/components/popup/popup.js +1 -1
  151. package/components/popup/popup.target.d.ts +3 -2
  152. package/components/popup/popup.target.js +32 -28
  153. package/components/popup-menu/popup-menu.js +1 -1
  154. package/components/query-assist/query-assist-suggestions.js +1 -1
  155. package/components/query-assist/query-assist.d.ts +3 -1
  156. package/components/query-assist/query-assist.js +2 -2
  157. package/components/radio/radio-item.d.ts +3 -3
  158. package/components/radio/radio-item.js +33 -19
  159. package/components/radio/radio.d.ts +2 -2
  160. package/components/radio/radio.js +2 -2
  161. package/components/scrollable-section/scrollable-section.js +1 -1
  162. package/components/select/chevron-button.js +2 -2
  163. package/components/select/select-filter.js +2 -2
  164. package/components/select/select-popup.d.ts +3 -2
  165. package/components/select/select-popup.js +9 -4
  166. package/components/select/select.d.ts +6 -2
  167. package/components/select/select.js +5 -4
  168. package/components/selection-toolbar/selection-toolbar.d.ts +11 -0
  169. package/components/selection-toolbar/selection-toolbar.js +200 -0
  170. package/components/slider/slider.js +100 -97
  171. package/components/storage/storage-local.js +1 -1
  172. package/components/storage/storage.js +1 -1
  173. package/components/style.css +1 -1
  174. package/components/tab-trap/tab-trap.d.ts +3 -3
  175. package/components/tab-trap/tab-trap.js +83 -80
  176. package/components/table/default-item-renderer.d.ts +55 -0
  177. package/components/table/default-item-renderer.js +240 -0
  178. package/components/table/internal/reorder-animation-context.d.ts +21 -0
  179. package/components/table/internal/reorder-handle.d.ts +9 -0
  180. package/components/table/internal/reorder-layout-context.d.ts +16 -0
  181. package/components/table/internal/table-header.d.ts +1 -0
  182. package/components/table/internal/virtualization.d.ts +41 -0
  183. package/components/table/item-virtualization.d.ts +37 -0
  184. package/components/table/item-virtualization.js +73 -0
  185. package/components/table/reorder-animation.d.ts +37 -0
  186. package/components/table/reorder-animation.js +18 -0
  187. package/components/table/reorder-item-layout.d.ts +32 -0
  188. package/components/table/reorder-item-layout.js +57 -0
  189. package/components/table/table-const.d.ts +10 -0
  190. package/components/table/table-const.js +13 -0
  191. package/components/table/table-primitives.d.ts +64 -0
  192. package/components/table/table-primitives.js +180 -0
  193. package/components/table/table-props.d.ts +304 -0
  194. package/components/table/table-props.js +1 -0
  195. package/components/table/table.d.ts +231 -107
  196. package/components/table/table.js +351 -346
  197. package/components/tabs/collapsible-more.js +1 -1
  198. package/components/tabs/collapsible-tab.js +1 -1
  199. package/components/tabs/collapsible-tabs.js +1 -1
  200. package/components/tabs/dumb-tabs.js +1 -1
  201. package/components/tabs/smart-tabs.js +1 -1
  202. package/components/tabs/tab-link.js +1 -1
  203. package/components/tabs/tabs.js +1 -1
  204. package/components/tag/tag.js +1 -1
  205. package/components/tags-input/tags-input.d.ts +3 -1
  206. package/components/tags-input/tags-input.js +3 -3
  207. package/components/tags-list/tags-list.js +1 -1
  208. package/components/toggle/toggle.js +1 -1
  209. package/components/tooltip/tooltip.d.ts +2 -1
  210. package/components/tooltip/tooltip.js +5 -3
  211. package/components/upload/upload.d.ts +4 -3
  212. package/components/upload/upload.js +7 -29
  213. package/components/user-agreement/service.js +2 -2
  214. package/components/user-agreement/user-agreement.js +2 -2
  215. package/components/user-card/card.js +4 -4
  216. package/components/user-card/smart-user-card-tooltip.js +2 -2
  217. package/components/user-card/tooltip.js +2 -2
  218. package/components/user-card/user-card.js +4 -4
  219. package/components/util-stories.d.ts +26 -0
  220. package/package.json +6 -7
  221. package/components/__mocks__/old-browsers-message.js +0 -3
  222. package/components/_helpers/grid.js +0 -3
  223. package/components/_helpers/sidebar.js +0 -110
  224. package/components/content-layout/content-layout.d.ts +0 -20
  225. package/components/content-layout/content-layout.js +0 -50
  226. package/components/content-layout/sidebar.d.ts +0 -26
  227. package/components/content-layout/sidebar.js +0 -5
  228. package/components/date-picker/use-intersection-observer.d.ts +0 -6
  229. package/components/date-picker/use-intersection-observer.js +0 -93
  230. package/components/expand/collapsible-group.d.ts +0 -8
  231. package/components/expand/collapsible-group.js +0 -51
  232. package/components/global/composeRefs.d.ts +0 -6
  233. package/components/global/composeRefs.js +0 -9
  234. package/components/global/use-event-callback.d.ts +0 -4
  235. package/components/global/use-event-callback.js +0 -49
  236. package/components/grid/col.d.ts +0 -16
  237. package/components/grid/col.js +0 -63
  238. package/components/grid/grid.d.ts +0 -13
  239. package/components/grid/grid.js +0 -27
  240. package/components/grid/row.d.ts +0 -21
  241. package/components/grid/row.js +0 -72
  242. package/components/old-browsers-message/old-browsers-message-stop.d.ts +0 -1
  243. package/components/old-browsers-message/old-browsers-message-stop.js +0 -5
  244. package/components/old-browsers-message/old-browsers-message.d.ts +0 -5
  245. package/components/old-browsers-message/old-browsers-message.js +0 -89
  246. package/components/old-browsers-message/white-list.d.ts +0 -2
  247. package/components/old-browsers-message/white-list.js +0 -30
  248. package/components/table/selection-adapter.d.ts +0 -6
  249. /package/components/{table → legacy-table}/cell.d.ts +0 -0
  250. /package/components/{table → legacy-table}/disable-hover-hoc.d.ts +0 -0
  251. /package/components/{table → legacy-table}/disable-hover-hoc.js +0 -0
  252. /package/components/{table → legacy-table}/header-cell.d.ts +0 -0
  253. /package/components/{table → legacy-table}/header.d.ts +0 -0
  254. /package/components/{table → legacy-table}/multitable.js +0 -0
  255. /package/components/{table → legacy-table}/row-with-focus-sensor.d.ts +0 -0
  256. /package/components/{table → legacy-table}/selection-adapter.js +0 -0
  257. /package/components/{table → legacy-table}/selection-shortcuts-hoc.js +0 -0
@@ -10,7 +10,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
10
10
  import 'util-deprecate';
11
11
  import '../icon/icon.constants.js';
12
12
  import '../_helpers/icon-svg.js';
13
- import 'react-compiler-runtime';
13
+ import 'react/compiler-runtime';
14
14
  import '../global/memoize.js';
15
15
  import 'memoize-one';
16
16
 
@@ -14,7 +14,7 @@ import '../icon/icon.js';
14
14
  import 'util-deprecate';
15
15
  import '../icon/icon.constants.js';
16
16
  import '../_helpers/icon-svg.js';
17
- import 'react-compiler-runtime';
17
+ import 'react/compiler-runtime';
18
18
  import '../global/memoize.js';
19
19
  import 'react/jsx-runtime';
20
20
  import '../loader-inline/loader-inline.js';
@@ -1,8 +1,9 @@
1
- import { c } from 'react-compiler-runtime';
2
- import React__default, { useContext, useRef, useState, useEffect } from 'react';
1
+ import { c } from 'react/compiler-runtime';
2
+ import { use, useRef, useState, useEffect } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import joinDataTestAttributes from '../global/data-tests.js';
5
5
  import { getRect } from '../global/dom.js';
6
+ import { parseCssDuration } from '../global/parse-css-duration.js';
6
7
  import { toPx } from './utils.js';
7
8
  import { CollapseContext } from './collapse-context.js';
8
9
  import { COLLAPSE_CONTENT_CONTAINER_TEST_ID, COLLAPSE_CONTENT_TEST_ID } from './consts.js';
@@ -10,30 +11,22 @@ import { jsx, jsxs } from 'react/jsx-runtime';
10
11
 
11
12
  var styles = {"container":"ring-collapse-container","transition":"ring-collapse-transition","summary":"ring-collapse-summary","trigger":"ring-collapse-trigger","fade":"ring-collapse-fade"};
12
13
 
13
- const DURATION_FACTOR = 0.5;
14
14
  const DEFAULT_HEIGHT = 0;
15
15
  const VISIBLE = 1;
16
16
  const HIDDEN = 0;
17
17
  // margin for the hide fallback timer, so it fires only if transitionend never did
18
18
  const HIDE_FALLBACK_EXTRA_DELAY = 100;
19
- // React 18 renders unknown attributes from strings only, while React 19 treats `inert`
20
- // as a real boolean and removes the attribute when it gets ''
21
- // TODO drop the React 18 branch in develop-8.0 — Ring UI 8.0 supports React 19 only
22
- const REACT_MAJOR_WITH_INERT_SUPPORT = 19;
23
- const getInertAttributeValue = reactMajor => reactMajor >= REACT_MAJOR_WITH_INERT_SUPPORT ? true : '';
24
- // the cast is confined to the JSX assignment: React 18 actually receives the string form
25
- const INERT = getInertAttributeValue(Number(React__default.version.split('.')[0]));
26
19
  const isFullyCollapsed = (collapsed, initialContentHeight) => collapsed && initialContentHeight <= DEFAULT_HEIGHT;
27
20
  /**
28
21
  * @name CollapseContent
29
22
  */
30
23
  const CollapseContent = t0 => {
31
24
  const $ = c(33);
32
- if ($[0] !== "47b29aa882db3160a9eb92f6edb4f7c80dfcfaaa3f079e25b6f03c957cb3c632") {
25
+ if ($[0] !== "e3da703013c1e2308afa08a0649f729dead9cb8e25336ece00ca1a0416bee9c3") {
33
26
  for (let $i = 0; $i < 33; $i += 1) {
34
27
  $[$i] = Symbol.for("react.memo_cache_sentinel");
35
28
  }
36
- $[0] = "47b29aa882db3160a9eb92f6edb4f7c80dfcfaaa3f079e25b6f03c957cb3c632";
29
+ $[0] = "e3da703013c1e2308afa08a0649f729dead9cb8e25336ece00ca1a0416bee9c3";
37
30
  }
38
31
  const {
39
32
  children,
@@ -45,9 +38,10 @@ const CollapseContent = t0 => {
45
38
  collapsed,
46
39
  duration,
47
40
  id,
41
+ animate,
48
42
  disableAnimation,
49
43
  keepMounted
50
- } = useContext(CollapseContext);
44
+ } = use(CollapseContext);
51
45
  const containerRef = useRef(null);
52
46
  const contentRef = useRef(null);
53
47
  const [initialContentHeight] = useState(minHeight);
@@ -79,7 +73,7 @@ const CollapseContent = t0 => {
79
73
  }
80
74
  };
81
75
  container?.addEventListener("transitionend", onTransitionEnd);
82
- const cssDuration = parseFloat(container?.style.getPropertyValue("--duration") || "") || 0;
76
+ const cssDuration = parseCssDuration(container?.style.getPropertyValue("--duration") || "");
83
77
  const fallbackTimeout = window.setTimeout(finalizeCollapse, cssDuration + HIDE_FALLBACK_EXTRA_DELAY);
84
78
  return () => {
85
79
  container?.removeEventListener("transitionend", onTransitionEnd);
@@ -121,8 +115,7 @@ const CollapseContent = t0 => {
121
115
  t6 = $[8];
122
116
  }
123
117
  useEffect(t5, t6);
124
- const calculatedDuration = duration + contentHeight * DURATION_FACTOR;
125
- const t7 = `${calculatedDuration}ms`;
118
+ const t7 = `${duration}ms`;
126
119
  const t8 = collapsed && !minHeight ? HIDDEN : VISIBLE;
127
120
  let t9;
128
121
  if ($[9] !== height || $[10] !== t7 || $[11] !== t8) {
@@ -151,7 +144,7 @@ const CollapseContent = t0 => {
151
144
  } else {
152
145
  t11 = $[13];
153
146
  }
154
- const t12 = !disableAnimation;
147
+ const t12 = animate && !disableAnimation;
155
148
  let t13;
156
149
  if ($[14] !== t12) {
157
150
  t13 = classNames(styles.container, {
@@ -180,55 +173,54 @@ const CollapseContent = t0 => {
180
173
  } else {
181
174
  t15 = $[19];
182
175
  }
183
- const t16 = contentInert ? INERT : undefined;
184
- const t17 = keepMounted || contentVisible ? children : null;
185
- let t18;
186
- if ($[20] !== t14 || $[21] !== t15 || $[22] !== t16 || $[23] !== t17) {
187
- t18 = /*#__PURE__*/jsx("div", {
176
+ const t16 = keepMounted || contentVisible ? children : null;
177
+ let t17;
178
+ if ($[20] !== contentInert || $[21] !== t14 || $[22] !== t15 || $[23] !== t16) {
179
+ t17 = /*#__PURE__*/jsx("div", {
188
180
  ref: contentRef,
189
181
  "data-test": t14,
190
182
  style: t15,
191
- inert: t16,
192
- children: t17
183
+ inert: contentInert,
184
+ children: t16
193
185
  });
194
- $[20] = t14;
195
- $[21] = t15;
196
- $[22] = t16;
197
- $[23] = t17;
198
- $[24] = t18;
186
+ $[20] = contentInert;
187
+ $[21] = t14;
188
+ $[22] = t15;
189
+ $[23] = t16;
190
+ $[24] = t17;
199
191
  } else {
200
- t18 = $[24];
192
+ t17 = $[24];
201
193
  }
202
- let t19;
194
+ let t18;
203
195
  if ($[25] !== fadeShouldBeVisible) {
204
- t19 = fadeShouldBeVisible && /*#__PURE__*/jsx("div", {
196
+ t18 = fadeShouldBeVisible && /*#__PURE__*/jsx("div", {
205
197
  className: styles.fade
206
198
  });
207
199
  $[25] = fadeShouldBeVisible;
208
- $[26] = t19;
200
+ $[26] = t18;
209
201
  } else {
210
- t19 = $[26];
202
+ t18 = $[26];
211
203
  }
212
- let t20;
213
- if ($[27] !== style || $[28] !== t10 || $[29] !== t13 || $[30] !== t18 || $[31] !== t19) {
214
- t20 = /*#__PURE__*/jsxs("div", {
204
+ let t19;
205
+ if ($[27] !== style || $[28] !== t10 || $[29] !== t13 || $[30] !== t17 || $[31] !== t18) {
206
+ t19 = /*#__PURE__*/jsxs("div", {
215
207
  ref: containerRef,
216
208
  id: t10,
217
209
  "data-test": t11,
218
210
  className: t13,
219
211
  style: style,
220
- children: [t18, t19]
212
+ children: [t17, t18]
221
213
  });
222
214
  $[27] = style;
223
215
  $[28] = t10;
224
216
  $[29] = t13;
225
- $[30] = t18;
226
- $[31] = t19;
227
- $[32] = t20;
217
+ $[30] = t17;
218
+ $[31] = t18;
219
+ $[32] = t19;
228
220
  } else {
229
- t20 = $[32];
221
+ t19 = $[32];
230
222
  }
231
- return t20;
223
+ return t19;
232
224
  };
233
225
 
234
226
  export { CollapseContent, CollapseContent as default };
@@ -1,6 +1,7 @@
1
1
  interface CollapseContextInterface {
2
2
  collapsed: boolean;
3
3
  duration: number;
4
+ animate: boolean;
4
5
  disableAnimation: boolean;
5
6
  keepMounted?: boolean;
6
7
  setCollapsed: () => void;
@@ -4,6 +4,7 @@ import { BASE_ANIMATION_DURATION } from './consts.js';
4
4
  const CollapseContext = /*#__PURE__*/createContext({
5
5
  collapsed: true,
6
6
  duration: BASE_ANIMATION_DURATION,
7
+ animate: false,
7
8
  disableAnimation: false,
8
9
  keepMounted: false,
9
10
  setCollapsed: () => {},
@@ -1,5 +1,5 @@
1
- import { c } from 'react-compiler-runtime';
2
- import { useContext, cloneElement } from 'react';
1
+ import { c } from 'react/compiler-runtime';
2
+ import { use, cloneElement } from 'react';
3
3
  import joinDataTestAttributes from '../global/data-tests.js';
4
4
  import { CollapseContext } from './collapse-context.js';
5
5
  import { COLLAPSE_CONTROL_TEST_ID } from './consts.js';
@@ -7,11 +7,11 @@ import { jsx } from 'react/jsx-runtime';
7
7
 
8
8
  const CollapseControl = t0 => {
9
9
  const $ = c(13);
10
- if ($[0] !== "37a6daba1dc720b937e7d2a844af157177f8338140503553968cf8ae1ecf6263") {
10
+ if ($[0] !== "10418ecc7774e31a4915bc1ad8a8ad001213057f5df8fc3f9a59adab69451dd6") {
11
11
  for (let $i = 0; $i < 13; $i += 1) {
12
12
  $[$i] = Symbol.for("react.memo_cache_sentinel");
13
13
  }
14
- $[0] = "37a6daba1dc720b937e7d2a844af157177f8338140503553968cf8ae1ecf6263";
14
+ $[0] = "10418ecc7774e31a4915bc1ad8a8ad001213057f5df8fc3f9a59adab69451dd6";
15
15
  }
16
16
  const {
17
17
  children,
@@ -21,7 +21,7 @@ const CollapseControl = t0 => {
21
21
  setCollapsed,
22
22
  collapsed,
23
23
  id
24
- } = useContext(CollapseContext);
24
+ } = use(CollapseContext);
25
25
  let t1;
26
26
  let t2;
27
27
  if ($[1] !== children || $[2] !== collapsed || $[3] !== dataTest || $[4] !== id || $[5] !== setCollapsed) {
@@ -1,16 +1,16 @@
1
- import { c } from 'react-compiler-runtime';
1
+ import { c } from 'react/compiler-runtime';
2
2
  import { useState, useId } from 'react';
3
3
  import { CollapseContext } from './collapse-context.js';
4
4
  import { BASE_ANIMATION_DURATION } from './consts.js';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
7
  const Collapse = t0 => {
8
- const $ = c(17);
9
- if ($[0] !== "3330160d096e3f437f4f27543e39ff405e76a4e1f92b7ab6836337ac8d11cb7e") {
10
- for (let $i = 0; $i < 17; $i += 1) {
8
+ const $ = c(18);
9
+ if ($[0] !== "dd05ee204290a7a80b9dd7bc0906391032441237b921ff3f0a33117d0cb388ac") {
10
+ for (let $i = 0; $i < 18; $i += 1) {
11
11
  $[$i] = Symbol.for("react.memo_cache_sentinel");
12
12
  }
13
- $[0] = "3330160d096e3f437f4f27543e39ff405e76a4e1f92b7ab6836337ac8d11cb7e";
13
+ $[0] = "dd05ee204290a7a80b9dd7bc0906391032441237b921ff3f0a33117d0cb388ac";
14
14
  }
15
15
  const {
16
16
  children,
@@ -32,9 +32,16 @@ const Collapse = t0 => {
32
32
  const [innerCollapsed, setInnerCollapsed] = useState(defaultCollapsed);
33
33
  const id = useId();
34
34
  const finalCollapsedValue = collapsed !== null && collapsed !== void 0 ? collapsed : innerCollapsed;
35
+ const [previousCollapsedValue, setPreviousCollapsedValue] = useState(finalCollapsedValue);
36
+ const [animate, setAnimate] = useState(false);
37
+ if (previousCollapsedValue !== finalCollapsedValue) {
38
+ setPreviousCollapsedValue(finalCollapsedValue);
39
+ setAnimate(true);
40
+ }
35
41
  let t8;
36
42
  if ($[1] !== finalCollapsedValue || $[2] !== onChange) {
37
43
  t8 = () => {
44
+ setAnimate(true);
38
45
  setInnerCollapsed(!finalCollapsedValue);
39
46
  onChange(!finalCollapsedValue);
40
47
  };
@@ -46,48 +53,50 @@ const Collapse = t0 => {
46
53
  }
47
54
  const setCollapsed = t8;
48
55
  let t9;
49
- if ($[4] !== disableAnimation || $[5] !== duration || $[6] !== finalCollapsedValue || $[7] !== id || $[8] !== keepMounted || $[9] !== setCollapsed) {
56
+ if ($[4] !== animate || $[5] !== disableAnimation || $[6] !== duration || $[7] !== finalCollapsedValue || $[8] !== id || $[9] !== keepMounted || $[10] !== setCollapsed) {
50
57
  t9 = {
51
58
  collapsed: finalCollapsedValue,
52
59
  setCollapsed,
53
60
  duration,
61
+ animate,
54
62
  disableAnimation,
55
63
  keepMounted,
56
64
  id
57
65
  };
58
- $[4] = disableAnimation;
59
- $[5] = duration;
60
- $[6] = finalCollapsedValue;
61
- $[7] = id;
62
- $[8] = keepMounted;
63
- $[9] = setCollapsed;
64
- $[10] = t9;
66
+ $[4] = animate;
67
+ $[5] = disableAnimation;
68
+ $[6] = duration;
69
+ $[7] = finalCollapsedValue;
70
+ $[8] = id;
71
+ $[9] = keepMounted;
72
+ $[10] = setCollapsed;
73
+ $[11] = t9;
65
74
  } else {
66
- t9 = $[10];
75
+ t9 = $[11];
67
76
  }
68
77
  let t10;
69
- if ($[11] !== children || $[12] !== t9) {
70
- t10 = /*#__PURE__*/jsx(CollapseContext.Provider, {
78
+ if ($[12] !== children || $[13] !== t9) {
79
+ t10 = /*#__PURE__*/jsx(CollapseContext, {
71
80
  value: t9,
72
81
  children: children
73
82
  });
74
- $[11] = children;
75
- $[12] = t9;
76
- $[13] = t10;
83
+ $[12] = children;
84
+ $[13] = t9;
85
+ $[14] = t10;
77
86
  } else {
78
- t10 = $[13];
87
+ t10 = $[14];
79
88
  }
80
89
  let t11;
81
- if ($[14] !== className || $[15] !== t10) {
90
+ if ($[15] !== className || $[16] !== t10) {
82
91
  t11 = /*#__PURE__*/jsx("div", {
83
92
  className: className,
84
93
  children: t10
85
94
  });
86
- $[14] = className;
87
- $[15] = t10;
88
- $[16] = t11;
95
+ $[15] = className;
96
+ $[16] = t10;
97
+ $[17] = t11;
89
98
  } else {
90
- t11 = $[16];
99
+ t11 = $[17];
91
100
  }
92
101
  return t11;
93
102
  };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  export interface CollapsibleGroupProps {
3
+ ref?: React.Ref<HTMLDivElement>;
3
4
  avatar?: React.ReactNode;
4
5
  title: React.ReactNode;
5
6
  subtitle?: React.ReactNode;
@@ -25,5 +26,8 @@ export interface CollapsibleGroupProps {
25
26
  headingLevel?: 2 | 3 | 4 | 5 | 6;
26
27
  'data-test'?: string | null | undefined;
27
28
  }
28
- declare const CollapsibleGroup: React.ForwardRefExoticComponent<CollapsibleGroupProps & React.RefAttributes<HTMLDivElement>>;
29
+ declare const CollapsibleGroup: {
30
+ ({ ref, avatar, title, subtitle, children, className, defaultExpanded, expanded, onChange, disableAnimation, interactive, keepMounted, headingLevel, "data-test": dataTest, }: CollapsibleGroupProps): React.JSX.Element;
31
+ displayName: string;
32
+ };
29
33
  export default CollapsibleGroup;
@@ -1,5 +1,5 @@
1
- import { c } from 'react-compiler-runtime';
2
- import React__default, { forwardRef, useState, useContext } from 'react';
1
+ import { c } from 'react/compiler-runtime';
2
+ import React__default, { useState, use } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import chevronRightIcon from '@jetbrains/icons/chevron-12px-right';
5
5
  import chevron12pxDown from '@jetbrains/icons/chevron-12px-down';
@@ -15,17 +15,18 @@ import '../global/memoize.js';
15
15
  import '../collapse/consts.js';
16
16
  import '../global/data-tests.js';
17
17
  import '../global/dom.js';
18
+ import '../global/parse-css-duration.js';
18
19
  import '../collapse/utils.js';
19
20
 
20
- var styles = {"expand":"ring-collapsible-group-expand","collapseRoot":"ring-collapsible-group-collapseRoot","hovered":"ring-collapsible-group-hovered","expanded":"ring-collapsible-group-expanded","focused":"ring-collapsible-group-focused","header":"ring-collapsible-group-header","heading":"ring-collapsible-group-heading","headerButton":"ring-collapsible-group-headerButton","headerStatic":"ring-collapsible-group-headerStatic","headerContent":"ring-collapsible-group-headerContent","avatarGroup":"ring-collapsible-group-avatarGroup","title":"ring-collapsible-group-title","subtitleGroup":"ring-collapsible-group-subtitleGroup","subtitle":"ring-collapsible-group-subtitle","subtitleChevron":"ring-collapsible-group-subtitleChevron","toggle":"ring-collapsible-group-toggle","toggleIcon":"ring-collapsible-group-toggleIcon","body":"ring-collapsible-group-body"};
21
+ var styles = {"expand":"ring-collapsible-group-expand","collapseRoot":"ring-collapsible-group-collapseRoot","hovered":"ring-collapsible-group-hovered","expanded":"ring-collapsible-group-expanded","headerButton":"ring-collapsible-group-headerButton","header":"ring-collapsible-group-header","heading":"ring-collapsible-group-heading","headerStatic":"ring-collapsible-group-headerStatic","headerContent":"ring-collapsible-group-headerContent","avatarGroup":"ring-collapsible-group-avatarGroup","title":"ring-collapsible-group-title","subtitleGroup":"ring-collapsible-group-subtitleGroup","subtitle":"ring-collapsible-group-subtitle","subtitleChevron":"ring-collapsible-group-subtitleChevron","toggle":"ring-collapsible-group-toggle","toggleIcon":"ring-collapsible-group-toggleIcon","body":"ring-collapsible-group-body"};
21
22
 
22
23
  function CollapsibleGroupHeaderContent(t0) {
23
24
  const $ = c(16);
24
- if ($[0] !== "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa") {
25
+ if ($[0] !== "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037") {
25
26
  for (let $i = 0; $i < 16; $i += 1) {
26
27
  $[$i] = Symbol.for("react.memo_cache_sentinel");
27
28
  }
28
- $[0] = "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa";
29
+ $[0] = "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037";
29
30
  }
30
31
  const {
31
32
  avatar,
@@ -34,7 +35,7 @@ function CollapsibleGroupHeaderContent(t0) {
34
35
  } = t0;
35
36
  const {
36
37
  collapsed
37
- } = useContext(CollapseContext);
38
+ } = use(CollapseContext);
38
39
  let t1;
39
40
  if ($[1] !== titleContent) {
40
41
  t1 = /*#__PURE__*/jsx("span", {
@@ -120,11 +121,11 @@ function CollapsibleGroupHeaderContent(t0) {
120
121
  }
121
122
  function CollapsibleGroupHeader(t0) {
122
123
  const $ = c(16);
123
- if ($[0] !== "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa") {
124
+ if ($[0] !== "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037") {
124
125
  for (let $i = 0; $i < 16; $i += 1) {
125
126
  $[$i] = Symbol.for("react.memo_cache_sentinel");
126
127
  }
127
- $[0] = "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa";
128
+ $[0] = "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037";
128
129
  }
129
130
  let avatar;
130
131
  let buttonProps;
@@ -152,7 +153,7 @@ function CollapsibleGroupHeader(t0) {
152
153
  setCollapsed,
153
154
  collapsed,
154
155
  id
155
- } = useContext(CollapseContext);
156
+ } = use(CollapseContext);
156
157
  const t1 = `collapse-content-${id}`;
157
158
  const t2 = !collapsed;
158
159
  let t3;
@@ -193,11 +194,11 @@ function CollapsibleGroupHeader(t0) {
193
194
  }
194
195
  function CollapsibleGroupHeaderStatic(t0) {
195
196
  const $ = c(5);
196
- if ($[0] !== "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa") {
197
+ if ($[0] !== "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037") {
197
198
  for (let $i = 0; $i < 5; $i += 1) {
198
199
  $[$i] = Symbol.for("react.memo_cache_sentinel");
199
200
  }
200
- $[0] = "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa";
201
+ $[0] = "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037";
201
202
  }
202
203
  const {
203
204
  avatar,
@@ -223,15 +224,16 @@ function CollapsibleGroupHeaderStatic(t0) {
223
224
  }
224
225
  return t1;
225
226
  }
226
- const CollapsibleGroup = /*#__PURE__*/forwardRef((t0, ref) => {
227
- const $ = c(33);
228
- if ($[0] !== "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa") {
229
- for (let $i = 0; $i < 33; $i += 1) {
227
+ const CollapsibleGroup = t0 => {
228
+ const $ = c(31);
229
+ if ($[0] !== "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037") {
230
+ for (let $i = 0; $i < 31; $i += 1) {
230
231
  $[$i] = Symbol.for("react.memo_cache_sentinel");
231
232
  }
232
- $[0] = "cbe0597c73ab62ed991f87044cb9b2d934802c6afcf5a086cbdf67a67a6010fa";
233
+ $[0] = "1f361c2ded768218a0a90f8cd47ebb79eb0ef7a40f501eb82fe1f1443b14d037";
233
234
  }
234
235
  const {
236
+ ref,
235
237
  avatar,
236
238
  title,
237
239
  subtitle,
@@ -254,7 +256,6 @@ const CollapsibleGroup = /*#__PURE__*/forwardRef((t0, ref) => {
254
256
  const keepMounted = t6 === undefined ? false : t6;
255
257
  const [innerExpanded, setInnerExpanded] = useState(defaultExpanded);
256
258
  const [hovered, setHovered] = useState(false);
257
- const [focused, setFocused] = useState(false);
258
259
  const isExpanded = expanded !== null && expanded !== void 0 ? expanded : innerExpanded;
259
260
  let t7;
260
261
  if ($[1] !== expanded || $[2] !== onChange) {
@@ -273,125 +274,107 @@ const CollapsibleGroup = /*#__PURE__*/forwardRef((t0, ref) => {
273
274
  }
274
275
  const handleChange = t7;
275
276
  let t8;
276
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
277
- t8 = event => {
278
- const nextTarget = event.relatedTarget;
279
- if (nextTarget instanceof Node && event.currentTarget.contains(nextTarget)) {
280
- return;
281
- }
282
- setFocused(false);
283
- };
284
- $[4] = t8;
285
- } else {
286
- t8 = $[4];
287
- }
288
- const onBlur = t8;
289
- let t9;
290
- if ($[5] !== className || $[6] !== focused || $[7] !== hovered || $[8] !== isExpanded) {
291
- t9 = classNames(styles.expand, className, {
277
+ if ($[4] !== className || $[5] !== hovered || $[6] !== isExpanded) {
278
+ t8 = classNames(styles.expand, className, {
292
279
  [styles.hovered]: hovered,
293
- [styles.expanded]: isExpanded,
294
- [styles.focused]: focused
280
+ [styles.expanded]: isExpanded
295
281
  });
296
- $[5] = className;
297
- $[6] = focused;
298
- $[7] = hovered;
299
- $[8] = isExpanded;
300
- $[9] = t9;
282
+ $[4] = className;
283
+ $[5] = hovered;
284
+ $[6] = isExpanded;
285
+ $[7] = t8;
301
286
  } else {
302
- t9 = $[9];
287
+ t8 = $[7];
303
288
  }
304
- const classes = t9;
305
- let t10;
306
- if ($[10] !== avatar || $[11] !== interactive || $[12] !== subtitle || $[13] !== title) {
307
- t10 = interactive ? /*#__PURE__*/jsx(CollapsibleGroupHeader, {
289
+ const classes = t8;
290
+ let t9;
291
+ if ($[8] !== avatar || $[9] !== interactive || $[10] !== subtitle || $[11] !== title) {
292
+ t9 = interactive ? /*#__PURE__*/jsx(CollapsibleGroupHeader, {
308
293
  avatar: avatar,
309
294
  titleContent: title,
310
295
  subtitle: subtitle,
311
296
  onMouseEnter: () => setHovered(true),
312
- onMouseLeave: () => setHovered(false),
313
- onFocus: () => setFocused(true),
314
- onBlur: onBlur
297
+ onMouseLeave: () => setHovered(false)
315
298
  }) : /*#__PURE__*/jsx(CollapsibleGroupHeaderStatic, {
316
299
  avatar: avatar,
317
300
  titleContent: title,
318
301
  subtitle: subtitle
319
302
  });
320
- $[10] = avatar;
321
- $[11] = interactive;
322
- $[12] = subtitle;
323
- $[13] = title;
324
- $[14] = t10;
303
+ $[8] = avatar;
304
+ $[9] = interactive;
305
+ $[10] = subtitle;
306
+ $[11] = title;
307
+ $[12] = t9;
325
308
  } else {
326
- t10 = $[14];
309
+ t9 = $[12];
327
310
  }
328
- const header = t10;
329
- const t11 = !defaultExpanded;
330
- const t12 = expanded == null ? null : !expanded;
331
- let t13;
332
- if ($[15] !== header || $[16] !== headingLevel) {
333
- t13 = headingLevel != null ? /*#__PURE__*/React__default.createElement(`h${headingLevel}`, {
311
+ const header = t9;
312
+ const t10 = !defaultExpanded;
313
+ const t11 = expanded == null ? null : !expanded;
314
+ let t12;
315
+ if ($[13] !== header || $[14] !== headingLevel) {
316
+ t12 = headingLevel != null ? /*#__PURE__*/React__default.createElement(`h${headingLevel}`, {
334
317
  className: styles.heading
335
318
  }, header) : header;
336
- $[15] = header;
337
- $[16] = headingLevel;
338
- $[17] = t13;
319
+ $[13] = header;
320
+ $[14] = headingLevel;
321
+ $[15] = t12;
339
322
  } else {
340
- t13 = $[17];
323
+ t12 = $[15];
341
324
  }
342
- let t14;
343
- if ($[18] !== children) {
344
- t14 = /*#__PURE__*/jsx(CollapseContent, {
325
+ let t13;
326
+ if ($[16] !== children) {
327
+ t13 = /*#__PURE__*/jsx(CollapseContent, {
345
328
  children: /*#__PURE__*/jsx("div", {
346
329
  className: styles.body,
347
330
  children: children
348
331
  })
349
332
  });
350
- $[18] = children;
351
- $[19] = t14;
333
+ $[16] = children;
334
+ $[17] = t13;
352
335
  } else {
353
- t14 = $[19];
336
+ t13 = $[17];
354
337
  }
355
- let t15;
356
- if ($[20] !== disableAnimation || $[21] !== handleChange || $[22] !== keepMounted || $[23] !== t11 || $[24] !== t12 || $[25] !== t13 || $[26] !== t14) {
357
- t15 = /*#__PURE__*/jsxs(Collapse, {
358
- defaultCollapsed: t11,
359
- collapsed: t12,
338
+ let t14;
339
+ if ($[18] !== disableAnimation || $[19] !== handleChange || $[20] !== keepMounted || $[21] !== t10 || $[22] !== t11 || $[23] !== t12 || $[24] !== t13) {
340
+ t14 = /*#__PURE__*/jsxs(Collapse, {
341
+ defaultCollapsed: t10,
342
+ collapsed: t11,
360
343
  onChange: handleChange,
361
344
  disableAnimation: disableAnimation,
362
345
  keepMounted: keepMounted,
363
346
  className: styles.collapseRoot,
364
- children: [t13, t14]
347
+ children: [t12, t13]
365
348
  });
366
- $[20] = disableAnimation;
367
- $[21] = handleChange;
368
- $[22] = keepMounted;
369
- $[23] = t11;
370
- $[24] = t12;
371
- $[25] = t13;
372
- $[26] = t14;
373
- $[27] = t15;
349
+ $[18] = disableAnimation;
350
+ $[19] = handleChange;
351
+ $[20] = keepMounted;
352
+ $[21] = t10;
353
+ $[22] = t11;
354
+ $[23] = t12;
355
+ $[24] = t13;
356
+ $[25] = t14;
374
357
  } else {
375
- t15 = $[27];
358
+ t14 = $[25];
376
359
  }
377
- let t16;
378
- if ($[28] !== classes || $[29] !== dataTest || $[30] !== ref || $[31] !== t15) {
379
- t16 = /*#__PURE__*/jsx("div", {
360
+ let t15;
361
+ if ($[26] !== classes || $[27] !== dataTest || $[28] !== ref || $[29] !== t14) {
362
+ t15 = /*#__PURE__*/jsx("div", {
380
363
  ref: ref,
381
364
  className: classes,
382
365
  "data-test": dataTest,
383
- children: t15
366
+ children: t14
384
367
  });
385
- $[28] = classes;
386
- $[29] = dataTest;
387
- $[30] = ref;
388
- $[31] = t15;
389
- $[32] = t16;
368
+ $[26] = classes;
369
+ $[27] = dataTest;
370
+ $[28] = ref;
371
+ $[29] = t14;
372
+ $[30] = t15;
390
373
  } else {
391
- t16 = $[32];
374
+ t15 = $[30];
392
375
  }
393
- return t16;
394
- });
376
+ return t15;
377
+ };
395
378
  CollapsibleGroup.displayName = 'CollapsibleGroup';
396
379
  function _temp() {}
397
380