@salutejs/plasma-new-hope 0.337.0-canary.2184.17907394393.0 → 0.337.0-canary.2184.17968380115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +2 -2
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.css +2 -2
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.css +2 -2
  4. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  5. package/cjs/components/DatePicker/SingleDate/SingleDate.css +2 -2
  6. package/cjs/components/InformationWrapper/InformationWrapper.css +2 -2
  7. package/cjs/components/InformationWrapper/ui/Label/Label.css +2 -2
  8. package/cjs/components/Modal/Modal.js +4 -2
  9. package/cjs/components/Modal/Modal.js.map +1 -1
  10. package/cjs/components/Note/Note.css +1 -1
  11. package/cjs/components/Note/Note.js +1 -1
  12. package/cjs/components/Note/Note.js.map +1 -1
  13. package/cjs/components/Note/variations/_size/base.js +1 -1
  14. package/cjs/components/Note/variations/_size/base.js.map +1 -1
  15. package/cjs/components/Note/variations/_size/{base_111wwzs.css → base_12cn7f7.css} +1 -1
  16. package/cjs/components/Pagination/Pagination.css +2 -2
  17. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  18. package/cjs/components/Range/Range.css +2 -2
  19. package/cjs/components/Select/Select.css +2 -2
  20. package/cjs/components/Select/ui/Target/Target.css +2 -2
  21. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.css +2 -2
  22. package/cjs/components/Slider/Slider.css +2 -2
  23. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +2 -2
  24. package/cjs/components/Table/Table.css +2 -2
  25. package/cjs/components/Table/ui/Cell/Cell.css +2 -2
  26. package/cjs/components/Table/ui/EditableCell/EditableCell.css +2 -2
  27. package/cjs/components/Table/ui/HeadCell/HeadCell.css +2 -2
  28. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  29. package/cjs/components/TextArea/ui/Hint/Hint.css +2 -2
  30. package/cjs/components/TextField/ui/Hint/Hint.css +2 -2
  31. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +2 -2
  32. package/cjs/components/TimePicker/TimePicker.css +11 -7
  33. package/cjs/components/TimePicker/TimePicker.js +254 -6
  34. package/cjs/components/TimePicker/TimePicker.js.map +1 -1
  35. package/cjs/components/TimePicker/TimePicker.styles.js +27 -3
  36. package/cjs/components/TimePicker/TimePicker.styles.js.map +1 -1
  37. package/{es/components/TimePicker/TimePicker.styles_1ie9d7j.css → cjs/components/TimePicker/TimePicker.styles_7l6ler.css} +7 -3
  38. package/cjs/components/TimePicker/TimePicker.tokens.js +6 -2
  39. package/cjs/components/TimePicker/TimePicker.tokens.js.map +1 -1
  40. package/cjs/components/Tooltip/Tooltip.styles.js +5 -5
  41. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  42. package/cjs/components/Tooltip/Tooltip.styles_uldg0s.css +2 -0
  43. package/cjs/hooks/useFocusTrap.js +11 -5
  44. package/cjs/hooks/useFocusTrap.js.map +1 -1
  45. package/cjs/index.css +12 -8
  46. package/cjs/utils/scopeTab.js +2 -2
  47. package/cjs/utils/scopeTab.js.map +1 -1
  48. package/emotion/cjs/components/Modal/Modal.js +3 -2
  49. package/emotion/cjs/components/Note/Note.js +1 -1
  50. package/emotion/cjs/components/Note/variations/_size/base.js +1 -1
  51. package/emotion/cjs/components/TimePicker/TimePicker.js +259 -6
  52. package/emotion/cjs/components/TimePicker/TimePicker.styles.js +39 -11
  53. package/emotion/cjs/components/TimePicker/TimePicker.tokens.js +6 -2
  54. package/emotion/cjs/components/Tooltip/Tooltip.styles.js +5 -5
  55. package/emotion/cjs/examples/components/TimePicker/TimePicker.config.js +7 -7
  56. package/emotion/cjs/hooks/useFocusTrap.js +12 -5
  57. package/emotion/cjs/utils/scopeTab.js +2 -2
  58. package/emotion/es/components/Modal/Modal.js +3 -2
  59. package/emotion/es/components/Note/Note.js +1 -1
  60. package/emotion/es/components/Note/variations/_size/base.js +1 -1
  61. package/emotion/es/components/TimePicker/TimePicker.js +261 -8
  62. package/emotion/es/components/TimePicker/TimePicker.styles.js +27 -11
  63. package/emotion/es/components/TimePicker/TimePicker.tokens.js +6 -2
  64. package/emotion/es/components/Tooltip/Tooltip.styles.js +5 -5
  65. package/emotion/es/examples/components/TimePicker/TimePicker.config.js +7 -7
  66. package/emotion/es/hooks/useFocusTrap.js +12 -5
  67. package/emotion/es/utils/scopeTab.js +2 -2
  68. package/es/components/Autocomplete/Autocomplete.css +2 -2
  69. package/es/components/Combobox/ComboboxNew/Combobox.css +2 -2
  70. package/es/components/DatePicker/RangeDate/RangeDate.css +2 -2
  71. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  72. package/es/components/DatePicker/SingleDate/SingleDate.css +2 -2
  73. package/es/components/InformationWrapper/InformationWrapper.css +2 -2
  74. package/es/components/InformationWrapper/ui/Label/Label.css +2 -2
  75. package/es/components/Modal/Modal.js +4 -2
  76. package/es/components/Modal/Modal.js.map +1 -1
  77. package/es/components/Note/Note.css +1 -1
  78. package/es/components/Note/Note.js +1 -1
  79. package/es/components/Note/Note.js.map +1 -1
  80. package/es/components/Note/variations/_size/base.js +1 -1
  81. package/es/components/Note/variations/_size/base.js.map +1 -1
  82. package/es/components/Note/variations/_size/{base_111wwzs.css → base_12cn7f7.css} +1 -1
  83. package/es/components/Pagination/Pagination.css +2 -2
  84. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +2 -2
  85. package/es/components/Range/Range.css +2 -2
  86. package/es/components/Select/Select.css +2 -2
  87. package/es/components/Select/ui/Target/Target.css +2 -2
  88. package/es/components/Select/ui/Target/ui/Textfield/Textfield.css +2 -2
  89. package/es/components/Slider/Slider.css +2 -2
  90. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +2 -2
  91. package/es/components/Table/Table.css +2 -2
  92. package/es/components/Table/ui/Cell/Cell.css +2 -2
  93. package/es/components/Table/ui/EditableCell/EditableCell.css +2 -2
  94. package/es/components/Table/ui/HeadCell/HeadCell.css +2 -2
  95. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +2 -2
  96. package/es/components/TextArea/ui/Hint/Hint.css +2 -2
  97. package/es/components/TextField/ui/Hint/Hint.css +2 -2
  98. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +2 -2
  99. package/es/components/TimePicker/TimePicker.css +11 -7
  100. package/es/components/TimePicker/TimePicker.js +257 -9
  101. package/es/components/TimePicker/TimePicker.js.map +1 -1
  102. package/es/components/TimePicker/TimePicker.styles.js +24 -4
  103. package/es/components/TimePicker/TimePicker.styles.js.map +1 -1
  104. package/{cjs/components/TimePicker/TimePicker.styles_1ie9d7j.css → es/components/TimePicker/TimePicker.styles_7l6ler.css} +7 -3
  105. package/es/components/TimePicker/TimePicker.tokens.js +6 -2
  106. package/es/components/TimePicker/TimePicker.tokens.js.map +1 -1
  107. package/es/components/Tooltip/Tooltip.styles.js +5 -5
  108. package/es/components/Tooltip/Tooltip.styles.js.map +1 -1
  109. package/es/components/Tooltip/Tooltip.styles_uldg0s.css +2 -0
  110. package/es/hooks/useFocusTrap.js +11 -5
  111. package/es/hooks/useFocusTrap.js.map +1 -1
  112. package/es/index.css +12 -8
  113. package/es/utils/scopeTab.js +2 -2
  114. package/es/utils/scopeTab.js.map +1 -1
  115. package/package.json +2 -2
  116. package/styled-components/cjs/components/Modal/Modal.js +3 -2
  117. package/styled-components/cjs/components/Note/Note.js +1 -1
  118. package/styled-components/cjs/components/Note/variations/_size/base.js +1 -1
  119. package/styled-components/cjs/components/TimePicker/TimePicker.js +259 -6
  120. package/styled-components/cjs/components/TimePicker/TimePicker.styles.js +58 -18
  121. package/styled-components/cjs/components/TimePicker/TimePicker.tokens.js +6 -2
  122. package/styled-components/cjs/components/Tooltip/Tooltip.styles.js +9 -9
  123. package/styled-components/cjs/examples/components/TimePicker/TimePicker.config.js +16 -12
  124. package/styled-components/cjs/hooks/useFocusTrap.js +12 -5
  125. package/styled-components/cjs/utils/scopeTab.js +2 -2
  126. package/styled-components/es/components/Modal/Modal.js +3 -2
  127. package/styled-components/es/components/Note/Note.js +1 -1
  128. package/styled-components/es/components/Note/variations/_size/base.js +1 -1
  129. package/styled-components/es/components/TimePicker/TimePicker.js +261 -8
  130. package/styled-components/es/components/TimePicker/TimePicker.styles.js +46 -18
  131. package/styled-components/es/components/TimePicker/TimePicker.tokens.js +6 -2
  132. package/styled-components/es/components/Tooltip/Tooltip.styles.js +9 -9
  133. package/styled-components/es/examples/components/TimePicker/TimePicker.config.js +16 -12
  134. package/styled-components/es/hooks/useFocusTrap.js +12 -5
  135. package/styled-components/es/utils/scopeTab.js +2 -2
  136. package/types/components/Modal/Modal.d.ts.map +1 -1
  137. package/types/components/Modal/Modal.types.d.ts +5 -0
  138. package/types/components/Modal/Modal.types.d.ts.map +1 -1
  139. package/types/components/Note/Note.d.ts +4 -4
  140. package/types/components/Note/Note.d.ts.map +1 -1
  141. package/types/components/Note/Note.types.d.ts +2 -2
  142. package/types/components/Note/Note.types.d.ts.map +1 -1
  143. package/types/components/TimePicker/TimePicker.d.ts.map +1 -1
  144. package/types/components/TimePicker/TimePicker.styles.d.ts +4 -0
  145. package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
  146. package/types/components/TimePicker/TimePicker.tokens.d.ts +4 -0
  147. package/types/components/TimePicker/TimePicker.tokens.d.ts.map +1 -1
  148. package/types/components/Tooltip/Tooltip.styles.d.ts.map +1 -1
  149. package/types/examples/components/Note/Note.d.ts +2 -2
  150. package/types/examples/components/TimePicker/TimePicker.config.d.ts.map +1 -1
  151. package/types/hooks/useFocusTrap.d.ts +1 -1
  152. package/types/hooks/useFocusTrap.d.ts.map +1 -1
  153. package/types/utils/scopeTab.d.ts +1 -1
  154. package/types/utils/scopeTab.d.ts.map +1 -1
  155. package/cjs/components/Tooltip/Tooltip.styles_1bh0sd0.css +0 -2
  156. package/es/components/Tooltip/Tooltip.styles_1bh0sd0.css +0 -2
@@ -135,11 +135,11 @@ function _unsupported_iterable_to_array(o, minLen) {
135
135
  if (n === "Map" || n === "Set") return Array.from(n);
136
136
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
137
137
  }
138
- import React, { forwardRef, useRef, useState, useEffect } from "react";
138
+ import React, { forwardRef, useRef, useState, useEffect, useCallback } from "react";
139
139
  import cls from "classnames";
140
140
  import { getPlacements } from "../../utils";
141
141
  import { range, processTimeInput, animateScrollTo } from "./utils";
142
- import { base, StyledInput, StyledPopover, StyledTimeColumn, StyledTimeItem, StyledTimePicker } from "./TimePicker.styles";
142
+ import { base, StyledInput, StyledPopover, StyledTimeColumn, StyledTimeItem, StyledTimePicker, CustomScrollbar, ScrollbarTrack, ScrollbarThumb, StyledEmpty } from "./TimePicker.styles";
143
143
  import { classes } from "./TimePicker.tokens";
144
144
  import { base as sizeCSS } from "./variations/_size/base";
145
145
  import { base as viewCSS } from "./variations/_view/base";
@@ -187,6 +187,15 @@ export var timePickerRoot = function(Root) {
187
187
  var minutesColumnRef = useRef(null);
188
188
  var secondsColumnRef = useRef(null);
189
189
  var timeItemRefs = useRef({});
190
+ var hoursScrollbarRef = useRef(null);
191
+ var minutesScrollbarRef = useRef(null);
192
+ var secondsScrollbarRef = useRef(null);
193
+ var hoursThumbRef = useRef(null);
194
+ var minutesThumbRef = useRef(null);
195
+ var secondsThumbRef = useRef(null);
196
+ var hoursHideTimeoutRef = useRef(null);
197
+ var minutesHideTimeoutRef = useRef(null);
198
+ var secondsHideTimeoutRef = useRef(null);
190
199
  var _useState = _sliced_to_array(useState(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
191
200
  var _useState1 = _sliced_to_array(useState(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
192
201
  var _useState2 = _sliced_to_array(useState({
@@ -197,11 +206,154 @@ export var timePickerRoot = function(Root) {
197
206
  }), 2), activeTime = _useState2[0], setActiveTime = _useState2[1];
198
207
  var _useState3 = _sliced_to_array(useState(0), 2), itemHeight = _useState3[0], setItemHeight = _useState3[1];
199
208
  var _useState4 = _sliced_to_array(useState(0), 2), gap = _useState4[0], setGap = _useState4[1];
209
+ var _useState5 = _sliced_to_array(useState({
210
+ isVisible: false,
211
+ thumbHeight: 0,
212
+ thumbPosition: 0,
213
+ isDragging: false
214
+ }), 2), hoursScrollbar = _useState5[0], setHoursScrollbar = _useState5[1];
215
+ var _useState6 = _sliced_to_array(useState({
216
+ isVisible: false,
217
+ thumbHeight: 0,
218
+ thumbPosition: 0,
219
+ isDragging: false
220
+ }), 2), minutesScrollbar = _useState6[0], setMinutesScrollbar = _useState6[1];
221
+ var _useState7 = _sliced_to_array(useState({
222
+ isVisible: false,
223
+ thumbHeight: 0,
224
+ thumbPosition: 0,
225
+ isDragging: false
226
+ }), 2), secondsScrollbar = _useState7[0], setSecondsScrollbar = _useState7[1];
200
227
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
201
228
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
202
229
  var hours = range(24);
203
230
  var minutes = range(60);
204
231
  var seconds = range(60);
232
+ var calculateScrollbar = useCallback(function(columnRef) {
233
+ if (!columnRef.current) return {
234
+ thumbHeight: 0,
235
+ thumbPosition: 0
236
+ };
237
+ var _columnRef_current = columnRef.current, scrollTop = _columnRef_current.scrollTop, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
238
+ var trackHeight = clientHeight;
239
+ var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, 20); // Минимальная высота 20px
240
+ var maxScroll = scrollHeight - clientHeight;
241
+ var thumbPosition = maxScroll > 0 ? scrollTop / maxScroll * (trackHeight - thumbHeight) : 0;
242
+ return {
243
+ thumbHeight: thumbHeight,
244
+ thumbPosition: thumbPosition
245
+ };
246
+ }, []);
247
+ var showScrollbarWithDelay = useCallback(function(setScrollbar, timeoutRef, columnRef) {
248
+ if (timeoutRef.current) {
249
+ clearTimeout(timeoutRef.current);
250
+ }
251
+ updateScrollbar(columnRef, setScrollbar, true);
252
+ timeoutRef.current = setTimeout(function() {
253
+ setScrollbar(function(prev) {
254
+ return _object_spread_props(_object_spread({}, prev), {
255
+ isVisible: false
256
+ });
257
+ });
258
+ timeoutRef.current = null;
259
+ }, 2000);
260
+ }, []);
261
+ var updateScrollbar = useCallback(function(columnRef, setScrollbar) {
262
+ var show = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
263
+ if (!columnRef.current) return;
264
+ var _calculateScrollbar = calculateScrollbar(columnRef), thumbHeight = _calculateScrollbar.thumbHeight, thumbPosition = _calculateScrollbar.thumbPosition;
265
+ setScrollbar(function(prev) {
266
+ return _object_spread_props(_object_spread({}, prev), {
267
+ thumbHeight: thumbHeight,
268
+ thumbPosition: thumbPosition,
269
+ isVisible: show || prev.isVisible
270
+ });
271
+ });
272
+ }, [
273
+ calculateScrollbar
274
+ ]);
275
+ var handleColumnScroll = useCallback(function(columnRef, setScrollbar, timeoutRef) {
276
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
277
+ }, [
278
+ showScrollbarWithDelay
279
+ ]);
280
+ var createScrollbarDragHandler = useCallback(function(columnRef, setScrollbar, timeoutRef) {
281
+ return function(e) {
282
+ e.preventDefault();
283
+ var thumb = e.currentTarget;
284
+ var track = thumb.parentElement;
285
+ if (!columnRef.current || !track) return;
286
+ if (timeoutRef.current) {
287
+ clearTimeout(timeoutRef.current);
288
+ timeoutRef.current = null;
289
+ }
290
+ var startY = e.clientY;
291
+ var startThumbPosition = parseFloat(thumb.style.top || '0');
292
+ var trackRect = track.getBoundingClientRect();
293
+ var trackHeight = trackRect.height;
294
+ var thumbHeight = thumb.offsetHeight;
295
+ var _columnRef_current = columnRef.current, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
296
+ var maxScroll = scrollHeight - clientHeight;
297
+ var handleMouseMove = function(moveEvent) {
298
+ var deltaY = moveEvent.clientY - startY;
299
+ var newThumbPosition = Math.max(0, Math.min(trackHeight - thumbHeight, startThumbPosition + deltaY));
300
+ var scrollPercentage = newThumbPosition / (trackHeight - thumbHeight);
301
+ var newScrollTop = scrollPercentage * maxScroll;
302
+ if (columnRef.current) {
303
+ columnRef.current.scrollTop = newScrollTop;
304
+ }
305
+ setScrollbar(function(prev) {
306
+ return _object_spread_props(_object_spread({}, prev), {
307
+ thumbPosition: newThumbPosition,
308
+ isDragging: true,
309
+ isVisible: true
310
+ });
311
+ });
312
+ };
313
+ var handleMouseUp = function() {
314
+ document.removeEventListener('mousemove', handleMouseMove);
315
+ document.removeEventListener('mouseup', handleMouseUp);
316
+ setScrollbar(function(prev) {
317
+ return _object_spread_props(_object_spread({}, prev), {
318
+ isDragging: false
319
+ });
320
+ });
321
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
322
+ };
323
+ document.addEventListener('mousemove', handleMouseMove);
324
+ document.addEventListener('mouseup', handleMouseUp);
325
+ };
326
+ }, [
327
+ showScrollbarWithDelay
328
+ ]);
329
+ useEffect(function() {
330
+ return function() {
331
+ [
332
+ hoursHideTimeoutRef,
333
+ minutesHideTimeoutRef,
334
+ secondsHideTimeoutRef
335
+ ].forEach(function(timeoutRef) {
336
+ if (timeoutRef.current) {
337
+ clearTimeout(timeoutRef.current);
338
+ }
339
+ });
340
+ };
341
+ }, []);
342
+ useEffect(function() {
343
+ if (isInnerOpen) {
344
+ setTimeout(function() {
345
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
346
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
347
+ if (columnsQuantity === 3) {
348
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
349
+ }
350
+ }, 100);
351
+ }
352
+ }, [
353
+ isInnerOpen,
354
+ columnsQuantity,
355
+ updateScrollbar
356
+ ]);
205
357
  useEffect(function() {
206
358
  if (viewValue) {
207
359
  var timeString = viewValue;
@@ -250,6 +402,15 @@ export var timePickerRoot = function(Root) {
250
402
  if (columnRef.current && index !== null) {
251
403
  var scrollPosition = index * (itemHeight + gap);
252
404
  animateScrollTo(columnRef.current, scrollPosition);
405
+ setTimeout(function() {
406
+ if (columnRef === hoursColumnRef) {
407
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
408
+ } else if (columnRef === minutesColumnRef) {
409
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
410
+ } else if (columnRef === secondsColumnRef) {
411
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
412
+ }
413
+ }, 300);
253
414
  }
254
415
  };
255
416
  scrollToActiveItem(hoursColumnRef, activeTime.hours);
@@ -258,7 +419,83 @@ export var timePickerRoot = function(Root) {
258
419
  }, [
259
420
  activeTime,
260
421
  isInnerOpen,
261
- itemHeight
422
+ itemHeight,
423
+ gap,
424
+ updateScrollbar
425
+ ]);
426
+ useEffect(function() {
427
+ var hoursColumn = hoursColumnRef.current;
428
+ var minutesColumn = minutesColumnRef.current;
429
+ var secondsColumn = secondsColumnRef.current;
430
+ var handleHoursScroll = function() {
431
+ return handleColumnScroll(hoursColumnRef, setHoursScrollbar, hoursHideTimeoutRef);
432
+ };
433
+ var handleMinutesScroll = function() {
434
+ return handleColumnScroll(minutesColumnRef, setMinutesScrollbar, minutesHideTimeoutRef);
435
+ };
436
+ var handleSecondsScroll = function() {
437
+ return handleColumnScroll(secondsColumnRef, setSecondsScrollbar, secondsHideTimeoutRef);
438
+ };
439
+ if (hoursColumn) {
440
+ hoursColumn.addEventListener('scroll', handleHoursScroll);
441
+ }
442
+ if (minutesColumn) {
443
+ minutesColumn.addEventListener('scroll', handleMinutesScroll);
444
+ }
445
+ if (secondsColumn) {
446
+ secondsColumn.addEventListener('scroll', handleSecondsScroll);
447
+ }
448
+ return function() {
449
+ if (hoursColumn) {
450
+ hoursColumn.removeEventListener('scroll', handleHoursScroll);
451
+ }
452
+ if (minutesColumn) {
453
+ minutesColumn.removeEventListener('scroll', handleMinutesScroll);
454
+ }
455
+ if (secondsColumn) {
456
+ secondsColumn.removeEventListener('scroll', handleSecondsScroll);
457
+ }
458
+ };
459
+ }, [
460
+ isInnerOpen,
461
+ handleColumnScroll
462
+ ]);
463
+ useEffect(function() {
464
+ var hoursColumn = hoursColumnRef.current;
465
+ var minutesColumn = minutesColumnRef.current;
466
+ var secondsColumn = secondsColumnRef.current;
467
+ var handleHoursMouseEnter = function() {
468
+ return showScrollbarWithDelay(setHoursScrollbar, hoursHideTimeoutRef, hoursColumnRef);
469
+ };
470
+ var handleMinutesMouseEnter = function() {
471
+ return showScrollbarWithDelay(setMinutesScrollbar, minutesHideTimeoutRef, minutesColumnRef);
472
+ };
473
+ var handleSecondsMouseEnter = function() {
474
+ return showScrollbarWithDelay(setSecondsScrollbar, secondsHideTimeoutRef, secondsColumnRef);
475
+ };
476
+ if (hoursColumn) {
477
+ hoursColumn.addEventListener('mouseenter', handleHoursMouseEnter);
478
+ }
479
+ if (minutesColumn) {
480
+ minutesColumn.addEventListener('mouseenter', handleMinutesMouseEnter);
481
+ }
482
+ if (secondsColumn) {
483
+ secondsColumn.addEventListener('mouseenter', handleSecondsMouseEnter);
484
+ }
485
+ return function() {
486
+ if (hoursColumn) {
487
+ hoursColumn.removeEventListener('mouseenter', handleHoursMouseEnter);
488
+ }
489
+ if (minutesColumn) {
490
+ minutesColumn.removeEventListener('mouseenter', handleMinutesMouseEnter);
491
+ }
492
+ if (secondsColumn) {
493
+ secondsColumn.removeEventListener('mouseenter', handleSecondsMouseEnter);
494
+ }
495
+ };
496
+ }, [
497
+ isInnerOpen,
498
+ showScrollbarWithDelay
262
499
  ]);
263
500
  var handleToggle = function() {
264
501
  if (disabled || readonly) return;
@@ -503,11 +740,17 @@ export var timePickerRoot = function(Root) {
503
740
  labelPlacement: labelPlacement,
504
741
  keepPlaceholder: keepPlaceholder
505
742
  });
506
- var renderTimeColumn = function(values, column, columnRef) {
507
- return /*#__PURE__*/ React.createElement(StyledTimeColumn, {
743
+ var renderTimeColumn = function(values, column, columnRef, scrollbarState, setScrollbar, scrollbarRef, thumbRef, timeoutRef) {
744
+ return /*#__PURE__*/ React.createElement("div", {
745
+ style: {
746
+ position: 'relative',
747
+ width: '100%'
748
+ }
749
+ }, /*#__PURE__*/ React.createElement(StyledTimeColumn, {
508
750
  key: column,
509
751
  ref: columnRef,
510
- height: dropdownHeight
752
+ height: dropdownHeight,
753
+ className: classes.timeColumn
511
754
  }, values.map(function(value, index) {
512
755
  return /*#__PURE__*/ React.createElement(StyledTimeItem, {
513
756
  key: value,
@@ -522,7 +765,17 @@ export var timePickerRoot = function(Root) {
522
765
  return handleTimeItemKeyDown(e, column, value);
523
766
  }
524
767
  }, value);
525
- }));
768
+ }), /*#__PURE__*/ React.createElement(StyledEmpty, null)), /*#__PURE__*/ React.createElement(CustomScrollbar, {
769
+ ref: scrollbarRef,
770
+ className: cls(_define_property({}, classes.scrollbarVisible, scrollbarState.isVisible))
771
+ }, /*#__PURE__*/ React.createElement(ScrollbarTrack, null, /*#__PURE__*/ React.createElement(ScrollbarThumb, {
772
+ ref: thumbRef,
773
+ style: {
774
+ height: "".concat(scrollbarState.thumbHeight, "px"),
775
+ top: "".concat(scrollbarState.thumbPosition, "px")
776
+ },
777
+ onMouseDown: createScrollbarDragHandler(columnRef, setScrollbar, timeoutRef)
778
+ }))));
526
779
  };
527
780
  return /*#__PURE__*/ React.createElement(Root, _object_spread({
528
781
  stretched: stretched,
@@ -555,7 +808,7 @@ export var timePickerRoot = function(Root) {
555
808
  stretched: stretched
556
809
  }, /*#__PURE__*/ React.createElement(StyledTimePicker, {
557
810
  width: dropdownWidth
558
- }, renderTimeColumn(hours, 'hours', hoursColumnRef), renderTimeColumn(minutes, 'minutes', minutesColumnRef), columnsQuantity === 3 && renderTimeColumn(seconds, 'seconds', secondsColumnRef)))));
811
+ }, renderTimeColumn(hours, 'hours', hoursColumnRef, hoursScrollbar, setHoursScrollbar, hoursScrollbarRef, hoursThumbRef, hoursHideTimeoutRef), renderTimeColumn(minutes, 'minutes', minutesColumnRef, minutesScrollbar, setMinutesScrollbar, minutesScrollbarRef, minutesThumbRef, minutesHideTimeoutRef), columnsQuantity === 3 && renderTimeColumn(seconds, 'seconds', secondsColumnRef, secondsScrollbar, setSecondsScrollbar, secondsScrollbarRef, secondsThumbRef, secondsHideTimeoutRef)))));
559
812
  });
560
813
  };
561
814
  export var timePickerConfig = {
@@ -10,14 +10,14 @@ var mergedPopoverConfig = mergeConfig(popoverConfig);
10
10
  var Popover = component(mergedPopoverConfig);
11
11
  export var StyledPopover = styled(Popover).withConfig({
12
12
  displayName: "TimePicker.styles__StyledPopover",
13
- componentId: "sc-ed479252-0"
13
+ componentId: "sc-919eca14-0"
14
14
  })([
15
15
  ""
16
16
  ]);
17
17
  // NOTE: переопределение токенов TextField
18
18
  export var StyledInput = styled(TextField).withConfig({
19
19
  displayName: "TimePicker.styles__StyledInput",
20
- componentId: "sc-ed479252-1"
20
+ componentId: "sc-919eca14-1"
21
21
  })([
22
22
  "width:100%;",
23
23
  ":var(",
@@ -177,25 +177,26 @@ export var base = css([
177
177
  ], tokens.width, popoverClasses.wrapper, popoverClasses.target, classes.timePickerstretched, popoverClasses.root, classes.timePickerFullWidth);
178
178
  export var StyledTimePicker = styled.div.withConfig({
179
179
  displayName: "TimePicker.styles__StyledTimePicker",
180
- componentId: "sc-ed479252-2"
180
+ componentId: "sc-919eca14-2"
181
181
  })([
182
182
  "background:var(",
183
183
  ");border-radius:var(",
184
184
  ");width:",
185
185
  ";display:flex;padding:var(",
186
- ");flex:1 1 1;box-sizing:border-box;position:relative;"
186
+ ");flex:1 1 1;gap:var(",
187
+ ");box-sizing:border-box;position:relative;"
187
188
  ], tokens.timePickerBackground, tokens.timePickerBorderRadius, function(param) {
188
189
  var width = param.width;
189
190
  return (width === 'fullWidth' ? "var(".concat(tokens.width, ")") : width) || "var(".concat(tokens.timePickerWidth, ")");
190
- }, tokens.timePickerPadding);
191
+ }, tokens.timePickerPadding, tokens.scrollbarWidth);
191
192
  export var StyledTimeItem = styled.div.withConfig({
192
193
  displayName: "TimePicker.styles__StyledTimeItem",
193
- componentId: "sc-ed479252-3"
194
+ componentId: "sc-919eca14-3"
194
195
  })([
195
196
  "height:var(",
196
197
  ");padding:var(",
197
198
  ");box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:0.05s;border-radius:var(",
198
- ");cursor:pointer;flex-shrink:0;font-family:var(",
199
+ ");cursor:pointer;flex-shrink:0;overflow:auto;font-family:var(",
199
200
  ");font-size:var(",
200
201
  ");font-style:var(",
201
202
  ");font-weight:var(",
@@ -208,22 +209,49 @@ export var StyledTimeItem = styled.div.withConfig({
208
209
  ], tokens.itemHeight, tokens.itemPadding, tokens.itemBorderRadius, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHoverBackground, classes.timeItemActive, tokens.itemActiveBackground);
209
210
  export var StyledTimeColumn = styled.div.withConfig({
210
211
  displayName: "TimePicker.styles__StyledTimeColumn",
211
- componentId: "sc-ed479252-4"
212
+ componentId: "sc-919eca14-4"
212
213
  })([
213
214
  "max-height:",
214
- ";overflow-y:scroll;flex:1;z-index:3;padding:calc(var(",
215
- ") / 2);box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
215
+ ";overflow-y:scroll;flex:1;z-index:3;box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
216
216
  ");width:100%;&.",
217
217
  "{border:0.125rem solid var(",
218
218
  ");border-radius:var(",
219
- ");}&::-webkit-scrollbar{width:var(",
220
- ");height:var(",
221
- ");}&::-webkit-scrollbar-track{background:var(",
222
- ");border-radius:var(",
223
- ");}&::-webkit-scrollbar-thumb{background:var(",
224
- ");border-radius:var(",
225
- ");}"
219
+ ");}scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;width:0;}"
226
220
  ], function(param) {
227
221
  var height = param.height;
228
222
  return height || "var(".concat(tokens.columnHeight, ")");
229
- }, tokens.scrollbarWidth, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemHoverBackground, tokens.itemBorderRadius, tokens.scrollbarWidth, tokens.scrollbarWidth, tokens.scrollbarTrackColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarWidth);
223
+ }, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemHoverBackground, tokens.itemBorderRadius);
224
+ export var CustomScrollbar = styled.div.withConfig({
225
+ displayName: "TimePicker.styles__CustomScrollbar",
226
+ componentId: "sc-919eca14-5"
227
+ })([
228
+ "position:absolute;top:var(",
229
+ ");right:0;bottom:var(",
230
+ ");width:var(",
231
+ ");opacity:0;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;&.",
232
+ "{opacity:1;pointer-events:auto;}"
233
+ ], tokens.scrollbarMargin, tokens.scrollbarMargin, tokens.scrollbarWidth, classes.scrollbarVisible);
234
+ export var ScrollbarTrack = styled.div.withConfig({
235
+ displayName: "TimePicker.styles__ScrollbarTrack",
236
+ componentId: "sc-919eca14-6"
237
+ })([
238
+ "position:relative;width:100%;height:100%;background:var(",
239
+ ");border-radius:var(",
240
+ ");"
241
+ ], tokens.scrollbarTrackColor, tokens.scrollbarWidth);
242
+ export var ScrollbarThumb = styled.div.withConfig({
243
+ displayName: "TimePicker.styles__ScrollbarThumb",
244
+ componentId: "sc-919eca14-7"
245
+ })([
246
+ "position:absolute;top:0;left:0;width:100%;background:var(",
247
+ ");border-radius:var(",
248
+ ");cursor:pointer;transition:background-color 0.2s ease;&:hover{background:var(",
249
+ ");}&:active{background:var(",
250
+ ");}"
251
+ ], tokens.scrollbarColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarTrackColor);
252
+ export var StyledEmpty = styled.div.withConfig({
253
+ displayName: "TimePicker.styles__StyledEmpty",
254
+ componentId: "sc-919eca14-8"
255
+ })([
256
+ "width:100%;height:0%.125rem;"
257
+ ]);
@@ -7,7 +7,10 @@ export var classes = {
7
7
  timeItemActive: 'plasma-time-picker-item-active',
8
8
  timePickerFullWidth: 'plasma-time-picker-full-width',
9
9
  timePickerActive: 'plasma-time-picker-active',
10
- timeColumnActive: 'plasma-time-picker-column-active'
10
+ timeColumnActive: 'plasma-time-picker-column-active',
11
+ timeColumn: 'plasma-time-picker-column',
12
+ timeColumnScrolling: 'plasma-time-picker-column-scrolling',
13
+ scrollbarVisible: 'plasma-time-picker-scrollbar-visible'
11
14
  };
12
15
  export var tokens = {
13
16
  width: '--plasma-time-picker-width',
@@ -113,5 +116,6 @@ export var tokens = {
113
116
  itemLineHeight: '--plasma-time-picker-item-line-height',
114
117
  scrollbarWidth: '--plasma-time-picker-scrollbar-width',
115
118
  scrollbarColor: '--plasma-time-picker-scrollbar-color',
116
- scrollbarTrackColor: '--plasma-time-picker-scrollbar-track-color'
119
+ scrollbarTrackColor: '--plasma-time-picker-scrollbar-track-color',
120
+ scrollbarMargin: '--plasma-time-picker-scrollbar-margin'
117
121
  };
@@ -2,14 +2,16 @@ import styled from "styled-components";
2
2
  import { tokens } from "./Tooltip.tokens";
3
3
  export var TooltipRoot = styled.div.withConfig({
4
4
  displayName: "Tooltip.styles__TooltipRoot",
5
- componentId: "sc-e6446bfb-0"
5
+ componentId: "sc-7a496a90-0"
6
6
  })([
7
- "padding:var(",
7
+ "display:flex;align-items:center;padding:var(",
8
8
  ") var(",
9
9
  ") var(",
10
10
  ") var(",
11
11
  ");min-height:var(",
12
- ");box-sizing:border-box;background-color:var(",
12
+ ");max-width:",
13
+ ";min-width:",
14
+ ";width:max-content;background-color:var(",
13
15
  ");border-radius:var(",
14
16
  ");box-shadow:var(",
15
17
  ");color:var(",
@@ -19,19 +21,17 @@ export var TooltipRoot = styled.div.withConfig({
19
21
  ");font-weight:var(",
20
22
  ");letter-spacing:var(",
21
23
  ");line-height:var(",
22
- ");max-width:",
23
- ";min-width:",
24
- ";width:max-content;word-break:break-word;pointer-events:none;display:flex;align-items:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;"
25
- ], tokens.paddingTop, tokens.paddingRight, tokens.paddingBottom, tokens.paddingLeft, tokens.minHeight, tokens.backgroundColor, tokens.borderRadius, tokens.boxShadow, tokens.color, tokens.textFontFamily, tokens.textFontSize, tokens.textFontStyle, tokens.textFontWeight, tokens.textFontLetterSpacing, tokens.textFontLineHeight, function(param) {
24
+ ");box-sizing:border-box;word-break:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;"
25
+ ], tokens.paddingTop, tokens.paddingRight, tokens.paddingBottom, tokens.paddingLeft, tokens.minHeight, function(param) {
26
26
  var maxWidth = param.maxWidth;
27
27
  return maxWidth || 'unset';
28
28
  }, function(param) {
29
29
  var minWidth = param.minWidth;
30
30
  return minWidth || 'unset';
31
- });
31
+ }, tokens.backgroundColor, tokens.borderRadius, tokens.boxShadow, tokens.color, tokens.textFontFamily, tokens.textFontSize, tokens.textFontStyle, tokens.textFontWeight, tokens.textFontLetterSpacing, tokens.textFontLineHeight);
32
32
  export var StyledContentLeft = styled.div.withConfig({
33
33
  displayName: "Tooltip.styles__StyledContentLeft",
34
- componentId: "sc-e6446bfb-1"
34
+ componentId: "sc-7a496a90-1"
35
35
  })([
36
36
  "display:flex;align-items:center;margin-right:var(",
37
37
  ");height:var(",
@@ -77,7 +77,7 @@ export var config = {
77
77
  ":0.875rem;",
78
78
  ":15rem;",
79
79
  ":0.125rem;",
80
- ":35.25rem;",
80
+ ":36.25rem;",
81
81
  ":var(--plasma-typo-body-l-font-family);",
82
82
  ":var(--plasma-typo-body-l-font-size);",
83
83
  ":var(--plasma-typo-body-l-font-style);",
@@ -87,8 +87,9 @@ export var config = {
87
87
  ":3.5rem;",
88
88
  ":0.75rem;",
89
89
  ":0rem;",
90
- ":0.125rem;"
91
- ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth),
90
+ ":0.125rem;",
91
+ ":0.5rem;"
92
+ ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth, tokens.scrollbarMargin),
92
93
  m: css([
93
94
  "",
94
95
  ":20rem;",
@@ -126,7 +127,7 @@ export var config = {
126
127
  ":0.75rem;",
127
128
  ":13.75rem;",
128
129
  ":0.125rem;",
129
- ":30.125rem;",
130
+ ":31.25rem;",
130
131
  ":var(--plasma-typo-body-m-font-family);",
131
132
  ":var(--plasma-typo-body-m-font-size);",
132
133
  ":var(--plasma-typo-body-m-font-style);",
@@ -136,8 +137,9 @@ export var config = {
136
137
  ":3rem;",
137
138
  ":0.625rem;",
138
139
  ":0rem;",
139
- ":0.125rem;"
140
- ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth),
140
+ ":0.125rem;",
141
+ ":0.375rem;"
142
+ ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth, tokens.scrollbarMargin),
141
143
  s: css([
142
144
  "",
143
145
  ":20rem;",
@@ -175,7 +177,7 @@ export var config = {
175
177
  ":0.625rem;",
176
178
  ":12rem;",
177
179
  ":0.125rem;",
178
- ":25.125rem;",
180
+ ":26.25rem;",
179
181
  ":var(--plasma-typo-body-s-font-family);",
180
182
  ":var(--plasma-typo-body-s-font-size);",
181
183
  ":var(--plasma-typo-body-s-font-style);",
@@ -185,8 +187,9 @@ export var config = {
185
187
  ":2.5rem;",
186
188
  ":0.5rem;",
187
189
  ":0rem;",
188
- ":0.125rem;"
189
- ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth),
190
+ ":0.125rem;",
191
+ ":0.25rem;"
192
+ ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth, tokens.scrollbarMargin),
190
193
  xs: css([
191
194
  "",
192
195
  ":20rem;",
@@ -224,7 +227,7 @@ export var config = {
224
227
  ":0.5rem;",
225
228
  ":10rem;",
226
229
  ":0.125rem;",
227
- ":30rem;",
230
+ ":21.25rem;",
228
231
  ":var(--plasma-typo-body-xs-font-family);",
229
232
  ":var(--plasma-typo-body-xs-font-size);",
230
233
  ":var(--plasma-typo-body-xs-font-style);",
@@ -234,8 +237,9 @@ export var config = {
234
237
  ":2rem;",
235
238
  ":0.375rem;",
236
239
  ":0rem;",
237
- ":0.125rem;"
238
- ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth)
240
+ ":0.125rem;",
241
+ ":0.25rem;"
242
+ ], tokens.width, tokens.borderRadius, tokens.leftContentMargin, tokens.rightContentMargin, tokens.labelOffset, tokens.labelInnerPadding, tokens.contentLabelInnerPadding, tokens.labelFontFamily, tokens.labelFontStyle, tokens.labelFontSize, tokens.labelFontWeight, tokens.labelLetterSpacing, tokens.labelLineHeight, tokens.indicatorSize, tokens.indicatorSizeOuter, tokens.indicatorPlacement, tokens.indicatorOuterPlacement, tokens.indicatorPlacementRight, tokens.indicatorOuterPlacementRight, tokens.textFieldHeight, tokens.textFieldBorderRadius, tokens.textFieldPadding, tokens.textFieldFontFamily, tokens.textFieldFontStyle, tokens.textFieldFontSize, tokens.textFieldFontWeight, tokens.textFieldLetterSpacing, tokens.textFieldLineHeight, tokens.textFieldLeftContentMargin, tokens.textFieldRightContentMargin, tokens.textFieldTextBeforeMargin, tokens.textFieldTextAfterMargin, tokens.timePickerBorderRadius, tokens.timePickerWidth, tokens.timePickerPadding, tokens.columnHeight, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHeight, tokens.itemBorderRadius, tokens.itemPadding, tokens.scrollbarWidth, tokens.scrollbarMargin)
239
243
  },
240
244
  disabled: {
241
245
  true: css([
@@ -39,14 +39,14 @@ var focusManager = new FocusManager();
39
39
  /**
40
40
  * Захватывает фокус внутри DOM node.
41
41
  * */ export var useFocusTrap = function() {
42
- var active = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true, firstFocusSelector = arguments.length > 1 ? arguments[1] : void 0, focusAfterNode = arguments.length > 2 ? arguments[2] : void 0, focusAfterAnimation = arguments.length > 3 ? arguments[3] : void 0;
42
+ var active = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true, firstFocusSelector = arguments.length > 1 ? arguments[1] : void 0, focusAfterNode = arguments.length > 2 ? arguments[2] : void 0, focusAfterAnimation = arguments.length > 3 ? arguments[3] : void 0, enableOnFirstMount = arguments.length > 4 ? arguments[4] : void 0;
43
43
  var ref = useRef();
44
44
  var setRef = useCallback(function(node) {
45
45
  if (ref.current) {
46
46
  focusManager.teardownScopedFocus();
47
47
  focusManager.returnFocus();
48
48
  }
49
- if (active && node) {
49
+ if ((active || enableOnFirstMount) && node) {
50
50
  focusManager.setupScopedFocus(node);
51
51
  focusManager.markForFocusAfter(focusAfterNode);
52
52
  // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.
@@ -65,15 +65,21 @@ var focusManager = new FocusManager();
65
65
  ref.current = null;
66
66
  }, [
67
67
  active,
68
+ enableOnFirstMount,
68
69
  firstFocusSelector
69
70
  ]);
70
71
  useEffect(function() {
71
- if (!active) {
72
+ if (!active && !enableOnFirstMount) {
72
73
  return;
73
74
  }
74
75
  var handleKeyDown = function(event) {
75
76
  if (event.key === 'Tab' && ref.current) {
76
- scopeTab(ref.current, event);
77
+ scopeTab(ref.current, event, active);
78
+ if (enableOnFirstMount) {
79
+ setTimeout(function() {
80
+ focusManager.teardownScopedFocus();
81
+ });
82
+ }
77
83
  }
78
84
  };
79
85
  document.addEventListener('keydown', handleKeyDown);
@@ -81,7 +87,8 @@ var focusManager = new FocusManager();
81
87
  document.removeEventListener('keydown', handleKeyDown);
82
88
  };
83
89
  }, [
84
- active
90
+ active,
91
+ enableOnFirstMount
85
92
  ]);
86
93
  return setRef;
87
94
  };