@salutejs/plasma-new-hope 0.337.0-canary.2184.17981110340.0 → 0.337.0-canary.2184.18005913845.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 (100) hide show
  1. package/cjs/components/TimePicker/TimePicker.css +11 -9
  2. package/cjs/components/TimePicker/TimePicker.js +108 -96
  3. package/cjs/components/TimePicker/TimePicker.js.map +1 -1
  4. package/cjs/components/TimePicker/TimePicker.styles.js +3 -48
  5. package/cjs/components/TimePicker/TimePicker.styles.js.map +1 -1
  6. package/cjs/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
  7. package/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
  8. package/cjs/components/TimePicker/TimePicker.tokens.js.map +1 -1
  9. package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -13
  10. package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -1
  11. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
  12. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  13. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
  14. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +61 -0
  15. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
  16. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
  17. package/cjs/components/TimePicker/utils/index.js +40 -42
  18. package/cjs/components/TimePicker/utils/index.js.map +1 -1
  19. package/cjs/index.css +11 -9
  20. package/emotion/cjs/components/TimePicker/TimePicker.js +104 -92
  21. package/emotion/cjs/components/TimePicker/TimePicker.styles.js +7 -52
  22. package/emotion/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
  23. package/emotion/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
  24. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  25. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +71 -0
  26. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
  27. package/emotion/cjs/components/TimePicker/utils/index.js +40 -42
  28. package/emotion/cjs/examples/components/Combobox/Combobox.js +15 -0
  29. package/emotion/cjs/examples/components/TimePicker/TimePicker.config.js +7 -7
  30. package/emotion/es/components/TimePicker/TimePicker.js +106 -94
  31. package/emotion/es/components/TimePicker/TimePicker.styles.js +7 -34
  32. package/emotion/es/components/TimePicker/TimePicker.tokens.js +3 -2
  33. package/emotion/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
  34. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
  35. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +33 -0
  36. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
  37. package/emotion/es/components/TimePicker/utils/index.js +37 -42
  38. package/emotion/es/examples/components/Combobox/Combobox.js +0 -7
  39. package/emotion/es/examples/components/TimePicker/TimePicker.config.js +7 -7
  40. package/es/components/TimePicker/TimePicker.css +11 -9
  41. package/es/components/TimePicker/TimePicker.js +110 -98
  42. package/es/components/TimePicker/TimePicker.js.map +1 -1
  43. package/es/components/TimePicker/TimePicker.styles.js +4 -43
  44. package/es/components/TimePicker/TimePicker.styles.js.map +1 -1
  45. package/es/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
  46. package/es/components/TimePicker/TimePicker.tokens.js +3 -2
  47. package/es/components/TimePicker/TimePicker.tokens.js.map +1 -1
  48. package/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -13
  49. package/es/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -1
  50. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
  51. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +56 -0
  52. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
  53. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +51 -0
  54. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
  55. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
  56. package/es/components/TimePicker/utils/index.js +40 -43
  57. package/es/components/TimePicker/utils/index.js.map +1 -1
  58. package/es/index.css +11 -9
  59. package/package.json +2 -2
  60. package/styled-components/cjs/components/TimePicker/TimePicker.js +104 -92
  61. package/styled-components/cjs/components/TimePicker/TimePicker.styles.js +6 -88
  62. package/styled-components/cjs/components/TimePicker/TimePicker.tokens.js +3 -2
  63. package/styled-components/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
  64. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  65. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +112 -0
  66. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
  67. package/styled-components/cjs/components/TimePicker/utils/index.js +40 -42
  68. package/styled-components/cjs/examples/components/TimePicker/TimePicker.config.js +29 -11
  69. package/styled-components/es/components/TimePicker/TimePicker.js +106 -94
  70. package/styled-components/es/components/TimePicker/TimePicker.styles.js +6 -70
  71. package/styled-components/es/components/TimePicker/TimePicker.tokens.js +3 -2
  72. package/styled-components/es/components/TimePicker/hooks/useKeyboardNavigation.js +7 -15
  73. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
  74. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +74 -0
  75. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
  76. package/styled-components/es/components/TimePicker/utils/index.js +37 -42
  77. package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
  78. package/styled-components/es/examples/components/TimePicker/TimePicker.config.js +29 -11
  79. package/types/components/TimePicker/TimePicker.d.ts +2 -2
  80. package/types/components/TimePicker/TimePicker.d.ts.map +1 -1
  81. package/types/components/TimePicker/TimePicker.styles.d.ts +0 -8
  82. package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
  83. package/types/components/TimePicker/TimePicker.tokens.d.ts +3 -2
  84. package/types/components/TimePicker/TimePicker.tokens.d.ts.map +1 -1
  85. package/types/components/TimePicker/TimePicker.types.d.ts +1 -1
  86. package/types/components/TimePicker/TimePicker.types.d.ts.map +1 -1
  87. package/types/components/TimePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  88. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts +3 -0
  89. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts.map +1 -0
  90. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts +10 -0
  91. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts.map +1 -0
  92. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts +35 -0
  93. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts.map +1 -0
  94. package/types/components/TimePicker/utils/index.d.ts +1 -0
  95. package/types/components/TimePicker/utils/index.d.ts.map +1 -1
  96. package/types/examples/components/TimePicker/TimePicker.config.d.ts.map +1 -1
  97. package/types/examples/components/TimePicker/TimePicker.d.ts +1 -1
  98. package/types/examples/components/TimePicker/TimePicker.d.ts.map +1 -1
  99. package/cjs/components/TimePicker/TimePicker.styles_dnulzj.css +0 -10
  100. package/es/components/TimePicker/TimePicker.styles_dnulzj.css +0 -10
@@ -138,14 +138,15 @@ function _unsupported_iterable_to_array(o, minLen) {
138
138
  import React, { forwardRef, useRef, useState, useEffect, useCallback } from "react";
139
139
  import cls from "classnames";
140
140
  import { getPlacements } from "../../utils";
141
- import { range, processTimeInput, animateScrollTo } from "./utils";
142
- import { base, StyledInput, StyledPopover, StyledTimeColumn, StyledTimeItem, StyledTimePicker, CustomScrollbar, ScrollbarTrack, ScrollbarThumb, StyledEmpty } from "./TimePicker.styles";
141
+ import { range, processTimeInput, animateScrollTo, delimiter } from "./utils";
142
+ import { base, StyledInput, StyledPopover, StyledTimePicker } 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";
146
146
  import { base as disabledCSS } from "./variations/_disabled/base";
147
147
  import { base as readonlyCSS } from "./variations/_readonly/base";
148
148
  import { useKeyNavigation } from "./hooks/useKeyboardNavigation";
149
+ import { renderTimeColumn } from "./ui/TimeColumn/TimeColumn";
149
150
  export var timePickerRoot = function(Root) {
150
151
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
151
152
  var className = _param.className, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, label = _param.label, _param_labelPlacement = _param.labelPlacement, labelPlacement = _param_labelPlacement === void 0 ? 'outer' : _param_labelPlacement, keepPlaceholder = _param.keepPlaceholder, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, placeholder = _param.placeholder, contentLeft = _param.contentLeft, contentRight = _param.contentRight, textBefore = _param.textBefore, textAfter = _param.textAfter, view = _param.view, size = _param.size, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_readonly = _param.readonly, readonly = _param_readonly === void 0 ? false : _param_readonly, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, offset = _param.offset, stretched = _param.stretched, _param_dropdownAlign = _param.dropdownAlign, dropdownAlign = _param_dropdownAlign === void 0 ? 'left' : _param_dropdownAlign, dropdownWidth = _param.dropdownWidth, dropdownHeight = _param.dropdownHeight, _param_columnsQuantity = _param.columnsQuantity, columnsQuantity = _param_columnsQuantity === void 0 ? 2 : _param_columnsQuantity, onToggle = _param.onToggle, onFocus = _param.onFocus, onChange = _param.onChange, rest = _object_without_properties(_param, [
@@ -229,6 +230,7 @@ export var timePickerRoot = function(Root) {
229
230
  var hours = range(24);
230
231
  var minutes = range(60);
231
232
  var seconds = range(60);
233
+ var minScrollbarTrackHeight = 20;
232
234
  var calculateScrollbar = useCallback(function(columnRef) {
233
235
  if (!columnRef.current) return {
234
236
  thumbHeight: 0,
@@ -236,7 +238,7 @@ export var timePickerRoot = function(Root) {
236
238
  };
237
239
  var _columnRef_current = columnRef.current, scrollTop = _columnRef_current.scrollTop, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
238
240
  var trackHeight = clientHeight;
239
- var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, 20); // Минимальная высота 20px
241
+ var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, minScrollbarTrackHeight);
240
242
  var maxScroll = scrollHeight - clientHeight;
241
243
  var thumbPosition = maxScroll > 0 ? scrollTop / maxScroll * (trackHeight - thumbHeight) : 0;
242
244
  return {
@@ -340,35 +342,37 @@ export var timePickerRoot = function(Root) {
340
342
  };
341
343
  }, []);
342
344
  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);
345
+ if (!isInnerOpen) {
346
+ return;
351
347
  }
348
+ setTimeout(function() {
349
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
350
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
351
+ if (columnsQuantity === 3) {
352
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
353
+ }
354
+ }, 100);
352
355
  }, [
353
356
  isInnerOpen,
354
357
  columnsQuantity,
355
358
  updateScrollbar
356
359
  ]);
357
360
  useEffect(function() {
358
- if (viewValue) {
359
- var timeString = viewValue;
360
- if (format === 'HH:mm' && viewValue.length > 5) {
361
- timeString = viewValue.substring(0, 5);
362
- }
363
- setInnerTime(viewValue);
364
- var _timeString_split_map = _sliced_to_array(timeString.split(':').map(Number), 3), hh = _timeString_split_map[0], mm = _timeString_split_map[1], ss = _timeString_split_map[2];
365
- setActiveTime({
366
- hours: !Number.isNaN(hh) ? hh : null,
367
- minutes: !Number.isNaN(mm) ? mm : null,
368
- seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,
369
- currentColumn: null
370
- });
361
+ if (!viewValue) {
362
+ return;
371
363
  }
364
+ var timeString = viewValue;
365
+ if (format === 'HH:mm' && viewValue.length > 5) {
366
+ timeString = viewValue.substring(0, 5);
367
+ }
368
+ setInnerTime(viewValue);
369
+ var _timeString_split_map = _sliced_to_array(timeString.split(delimiter).map(Number), 3), hh = _timeString_split_map[0], mm = _timeString_split_map[1], ss = _timeString_split_map[2];
370
+ setActiveTime({
371
+ hours: !Number.isNaN(hh) ? hh : null,
372
+ minutes: !Number.isNaN(mm) ? mm : null,
373
+ seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,
374
+ currentColumn: null
375
+ });
372
376
  }, [
373
377
  outerValue,
374
378
  format
@@ -403,13 +407,7 @@ export var timePickerRoot = function(Root) {
403
407
  var scrollPosition = index * (itemHeight + gap);
404
408
  animateScrollTo(columnRef.current, scrollPosition);
405
409
  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
- }
410
+ updateScrollbar(columnRef, setHoursScrollbar);
413
411
  }, 300);
414
412
  }
415
413
  };
@@ -519,7 +517,7 @@ export var timePickerRoot = function(Root) {
519
517
  };
520
518
  var handleTimeItemClick = function(value, column) {
521
519
  var isNextColumn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
522
- var currentTime = innerTime.split(':');
520
+ var currentTime = innerTime.split(delimiter);
523
521
  var newTime = [];
524
522
  if (format === 'HH:mm:ss') {
525
523
  newTime = _to_consumable_array(currentTime);
@@ -539,10 +537,8 @@ export var timePickerRoot = function(Root) {
539
537
  if (!currentTime[1]) {
540
538
  newTime[1] = '00';
541
539
  }
542
- if (format === 'HH:mm:ss') {
543
- if (!currentTime[2]) {
544
- newTime[2] = '00';
545
- }
540
+ if (format === 'HH:mm:ss' && !currentTime[2]) {
541
+ newTime[2] = '00';
546
542
  }
547
543
  break;
548
544
  case 'minutes':
@@ -550,10 +546,8 @@ export var timePickerRoot = function(Root) {
550
546
  if (!currentTime[0]) {
551
547
  newTime[0] = '00';
552
548
  }
553
- if (format === 'HH:mm:ss') {
554
- if (!currentTime[2]) {
555
- newTime[2] = '00';
556
- }
549
+ if (format === 'HH:mm:ss' && !currentTime[2]) {
550
+ newTime[2] = '00';
557
551
  }
558
552
  break;
559
553
  case 'seconds':
@@ -570,7 +564,7 @@ export var timePickerRoot = function(Root) {
570
564
  default:
571
565
  break;
572
566
  }
573
- var newTimeString = newTime.join(':');
567
+ var newTimeString = newTime.join(delimiter);
574
568
  setInnerTime(newTimeString);
575
569
  var nextColumn = null;
576
570
  if (column === 'hours' && isNextColumn) {
@@ -608,12 +602,14 @@ export var timePickerRoot = function(Root) {
608
602
  seconds: values.ss
609
603
  });
610
604
  });
611
- onChange === null || onChange === void 0 ? void 0 : onChange(_object_spread_props(_object_spread({}, event), {
612
- target: _object_spread_props(_object_spread({}, event.target), {
613
- value: innerString,
614
- timeValues: values
615
- })
616
- }));
605
+ if (onChange) {
606
+ onChange(_object_spread_props(_object_spread({}, event), {
607
+ target: _object_spread_props(_object_spread({}, event.target), {
608
+ value: innerString,
609
+ timeValues: values
610
+ })
611
+ }));
612
+ }
617
613
  requestAnimationFrame(function() {
618
614
  if (inputRef.current) {
619
615
  inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);
@@ -632,9 +628,13 @@ export var timePickerRoot = function(Root) {
632
628
  onToggle === null || onToggle === void 0 ? void 0 : onToggle(true);
633
629
  return;
634
630
  }
635
- if (!isInnerOpen) return;
631
+ if (!isInnerOpen) {
632
+ return;
633
+ }
636
634
  var currentColumn = activeTime.currentColumn;
637
- if (!currentColumn) return;
635
+ if (!currentColumn) {
636
+ return;
637
+ }
638
638
  var newIndex = null;
639
639
  var newColumn = currentColumn;
640
640
  if ([
@@ -687,8 +687,11 @@ export var timePickerRoot = function(Root) {
687
687
  }
688
688
  break;
689
689
  case 'ArrowLeft':
690
- if (currentColumn === 'minutes') newColumn = 'hours';
691
- else if (currentColumn === 'seconds') newColumn = 'minutes';
690
+ if (currentColumn === 'minutes') {
691
+ newColumn = 'hours';
692
+ } else if (currentColumn === 'seconds') {
693
+ newColumn = 'minutes';
694
+ }
692
695
  var _activeTime_newColumn1;
693
696
  newIndex = (_activeTime_newColumn1 = activeTime[newColumn]) !== null && _activeTime_newColumn1 !== void 0 ? _activeTime_newColumn1 : 0;
694
697
  setActiveTime(_object_spread_props(_object_spread({}, activeTime), _define_property({
@@ -708,11 +711,15 @@ export var timePickerRoot = function(Root) {
708
711
  handleTimeItemClick(value, column);
709
712
  }
710
713
  };
714
+ var handleOnKeyDown = function(e) {
715
+ onKeyDownNavigation(e);
716
+ handleKeyDown(e);
717
+ };
711
718
  var _useKeyNavigation = useKeyNavigation({
712
719
  isCalendarOpen: isInnerOpen,
713
720
  format: format,
714
721
  maskWithFormat: true,
715
- delimiter: ':',
722
+ delimiter: delimiter,
716
723
  closeOnEsc: closeOnEsc,
717
724
  onToggle: handleToggle
718
725
  }), onKeyDownNavigation = _useKeyNavigation.onKeyDown;
@@ -729,10 +736,7 @@ export var timePickerRoot = function(Root) {
729
736
  textAfter: textAfter,
730
737
  onChange: handleInputChange,
731
738
  onFocus: onFocus,
732
- onKeyDown: function(e) {
733
- onKeyDownNavigation(e);
734
- handleKeyDown(e);
735
- },
739
+ onKeyDown: handleOnKeyDown,
736
740
  required: required,
737
741
  requiredPlacement: requiredPlacement,
738
742
  hasRequiredIndicator: hasRequiredIndicator,
@@ -740,43 +744,6 @@ export var timePickerRoot = function(Root) {
740
744
  labelPlacement: labelPlacement,
741
745
  keepPlaceholder: keepPlaceholder
742
746
  });
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, {
750
- key: column,
751
- ref: columnRef,
752
- height: dropdownHeight,
753
- className: classes.timeColumn
754
- }, values.map(function(value, index) {
755
- return /*#__PURE__*/ React.createElement(StyledTimeItem, {
756
- key: value,
757
- ref: function(el) {
758
- timeItemRefs.current["".concat(column, "-").concat(value)] = el;
759
- },
760
- className: cls(_define_property({}, classes.timeItemActive, activeTime[column] === index)),
761
- onClick: function() {
762
- return handleTimeItemClick(value, column);
763
- },
764
- onKeyDown: function(e) {
765
- return handleTimeItemKeyDown(e, column, value);
766
- }
767
- }, value);
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
- }))));
779
- };
780
747
  return /*#__PURE__*/ React.createElement(Root, _object_spread({
781
748
  stretched: stretched,
782
749
  view: view,
@@ -809,7 +776,52 @@ export var timePickerRoot = function(Root) {
809
776
  stretched: stretched
810
777
  }, /*#__PURE__*/ React.createElement(StyledTimePicker, {
811
778
  width: dropdownWidth
812
- }, 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)))));
779
+ }, renderTimeColumn({
780
+ values: hours,
781
+ dropdownHeight: dropdownHeight,
782
+ column: 'hours',
783
+ columnRef: hoursColumnRef,
784
+ scrollbarState: hoursScrollbar,
785
+ setScrollbar: setHoursScrollbar,
786
+ scrollbarRef: hoursScrollbarRef,
787
+ thumbRef: hoursThumbRef,
788
+ timeoutRef: hoursHideTimeoutRef,
789
+ timeItemRefs: timeItemRefs,
790
+ activeTime: activeTime,
791
+ handleTimeItemClick: handleTimeItemClick,
792
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
793
+ createScrollbarDragHandler: createScrollbarDragHandler
794
+ }), renderTimeColumn({
795
+ values: minutes,
796
+ dropdownHeight: dropdownHeight,
797
+ column: 'minutes',
798
+ columnRef: minutesColumnRef,
799
+ scrollbarState: minutesScrollbar,
800
+ setScrollbar: setMinutesScrollbar,
801
+ scrollbarRef: minutesScrollbarRef,
802
+ thumbRef: minutesThumbRef,
803
+ timeoutRef: minutesHideTimeoutRef,
804
+ timeItemRefs: timeItemRefs,
805
+ activeTime: activeTime,
806
+ handleTimeItemClick: handleTimeItemClick,
807
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
808
+ createScrollbarDragHandler: createScrollbarDragHandler
809
+ }), columnsQuantity === 3 && renderTimeColumn({
810
+ values: seconds,
811
+ dropdownHeight: dropdownHeight,
812
+ column: 'seconds',
813
+ columnRef: secondsColumnRef,
814
+ scrollbarState: secondsScrollbar,
815
+ setScrollbar: setSecondsScrollbar,
816
+ scrollbarRef: secondsScrollbarRef,
817
+ thumbRef: secondsThumbRef,
818
+ timeoutRef: secondsHideTimeoutRef,
819
+ timeItemRefs: timeItemRefs,
820
+ activeTime: activeTime,
821
+ handleTimeItemClick: handleTimeItemClick,
822
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
823
+ createScrollbarDragHandler: createScrollbarDragHandler
824
+ })))));
813
825
  });
814
826
  };
815
827
  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-d0bdbdc5-0"
13
+ componentId: "sc-8a747fd1-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-d0bdbdc5-1"
20
+ componentId: "sc-8a747fd1-1"
21
21
  })([
22
22
  "width:100%;",
23
23
  ":var(",
@@ -131,6 +131,8 @@ export var StyledInput = styled(TextField).withConfig({
131
131
  ":var(",
132
132
  ");",
133
133
  ":var(",
134
+ ");",
135
+ ":var(",
134
136
  ",var(",
135
137
  "));",
136
138
  ":var(",
@@ -165,7 +167,7 @@ export var StyledInput = styled(TextField).withConfig({
165
167
  ");",
166
168
  ":var(",
167
169
  ");}"
168
- ], textFieldTokens.color, tokens.textFieldColor, textFieldTokens.placeholderColor, tokens.textFieldPlaceholderColor, textFieldTokens.placeholderColorFocus, tokens.textFieldPlaceholderColorFocus, textFieldTokens.caretColor, tokens.textFieldCaretColor, textFieldTokens.focusColor, tokens.textFieldFocusColor, textFieldTokens.backgroundColor, tokens.textFieldBackgroundColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundColorFocus, textFieldTokens.borderColor, tokens.borderColor, textFieldTokens.borderColorHover, tokens.borderColorHover, textFieldTokens.borderColorFocus, tokens.borderColorFocus, textFieldTokens.colorReadOnly, tokens.textFieldColorReadOnly, textFieldTokens.backgroundColorReadOnly, tokens.textFieldBackgroundColorReadOnly, textFieldTokens.borderColorReadOnly, tokens.textFieldBorderColorReadOnly, textFieldTokens.placeholderColorReadOnly, tokens.textFieldPlaceholderColorReadOnly, textFieldTokens.height, tokens.textFieldHeight, textFieldTokens.borderWidth, tokens.textFieldBorderWidth, textFieldTokens.borderRadius, tokens.textFieldBorderRadius, textFieldTokens.padding, tokens.textFieldPadding, textFieldTokens.labelInnerPadding, tokens.labelInnerPadding, textFieldTokens.contentLabelInnerPadding, tokens.contentLabelInnerPadding, textFieldTokens.labelOffset, tokens.labelOffset, textFieldTokens.labelFontFamily, tokens.labelFontFamily, textFieldTokens.labelFontStyle, tokens.labelFontStyle, textFieldTokens.labelFontSize, tokens.labelFontSize, textFieldTokens.labelFontWeight, tokens.labelFontWeight, textFieldTokens.labelLetterSpacing, tokens.labelLetterSpacing, textFieldTokens.labelLineHeight, tokens.labelLineHeight, textFieldTokens.labelInnerFontFamily, tokens.labelInnerFontFamily, textFieldTokens.labelInnerFontSize, tokens.labelInnerFontSize, textFieldTokens.labelInnerFontStyle, tokens.labelInnerFontStyle, textFieldTokens.labelInnerFontWeight, tokens.labelInnerFontWeight, textFieldTokens.labelInnerLetterSpacing, tokens.labelInnerLetterSpacing, textFieldTokens.labelInnerLineHeight, tokens.labelInnerLineHeight, textFieldTokens.labelColorReadOnly, tokens.labelColorReadOnly, textFieldTokens.indicatorColor, tokens.indicatorColor, textFieldTokens.indicatorSizeInner, tokens.indicatorSize, textFieldTokens.indicatorSizeOuter, tokens.indicatorSizeOuter, textFieldTokens.indicatorLabelPlacementInner, tokens.indicatorPlacement, textFieldTokens.indicatorLabelPlacementOuter, tokens.indicatorOuterPlacement, textFieldTokens.indicatorLabelPlacementInnerRight, tokens.indicatorPlacementRight, textFieldTokens.indicatorLabelPlacementOuterRight, tokens.indicatorOuterPlacementRight, textFieldTokens.leftContentMargin, tokens.textFieldLeftContentMargin, textFieldTokens.rightContentMargin, tokens.textFieldRightContentMargin, textFieldTokens.fontFamily, tokens.textFieldFontFamily, textFieldTokens.fontSize, tokens.textFieldFontSize, textFieldTokens.fontStyle, tokens.textFieldFontStyle, textFieldTokens.fontWeight, tokens.textFieldFontWeight, textFieldTokens.letterSpacing, tokens.textFieldLetterSpacing, textFieldTokens.lineHeight, tokens.textFieldLineHeight, textFieldTokens.disabledOpacity, tokens.disabledOpacity, textFieldTokens.textBeforeColor, tokens.textFieldTextBeforeColor, textFieldTokens.textAfterColor, tokens.textFieldTextAfterColor, textFieldTokens.textBeforeMargin, tokens.textFieldTextBeforeMargin, textFieldTokens.textAfterMargin, tokens.textFieldTextAfterMargin, textFieldTokens.contentSlotColor, tokens.textFieldContentSlotColor, tokens.textFieldColor, textFieldTokens.contentSlotRightColor, tokens.textFieldContentRightSlotColor, textFieldTokens.contentSlotColor, textFieldTokens.contentSlotRightColorHover, tokens.textFieldContentRightSlotColorHover, textFieldTokens.contentSlotRightColor, classes.timePickerError, textFieldTokens.backgroundColor, tokens.textFieldBackgroundErrorColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundErrorColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundErrorColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorError, textFieldTokens.borderColorHover, tokens.textFieldBorderColorErrorHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorErrorFocus, classes.timePickerSuccess, textFieldTokens.backgroundColor, tokens.textFieldBackgroundSuccessColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundSuccessColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundSuccessColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorSuccess, textFieldTokens.borderColorHover, tokens.textFieldBorderColorSuccessHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorSuccessFocus);
170
+ ], textFieldTokens.color, tokens.textFieldColor, textFieldTokens.placeholderColor, tokens.textFieldPlaceholderColor, textFieldTokens.placeholderColorFocus, tokens.textFieldPlaceholderColorFocus, textFieldTokens.caretColor, tokens.textFieldCaretColor, textFieldTokens.focusColor, tokens.textFieldFocusColor, textFieldTokens.backgroundColor, tokens.textFieldBackgroundColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundColorFocus, textFieldTokens.borderColor, tokens.borderColor, textFieldTokens.borderColorHover, tokens.borderColorHover, textFieldTokens.borderColorFocus, tokens.borderColorFocus, textFieldTokens.boxShadow, tokens.textFieldBoxShadow, textFieldTokens.colorReadOnly, tokens.textFieldColorReadOnly, textFieldTokens.backgroundColorReadOnly, tokens.textFieldBackgroundColorReadOnly, textFieldTokens.borderColorReadOnly, tokens.textFieldBorderColorReadOnly, textFieldTokens.placeholderColorReadOnly, tokens.textFieldPlaceholderColorReadOnly, textFieldTokens.height, tokens.textFieldHeight, textFieldTokens.borderWidth, tokens.textFieldBorderWidth, textFieldTokens.borderRadius, tokens.textFieldBorderRadius, textFieldTokens.padding, tokens.textFieldPadding, textFieldTokens.labelInnerPadding, tokens.labelInnerPadding, textFieldTokens.contentLabelInnerPadding, tokens.contentLabelInnerPadding, textFieldTokens.labelOffset, tokens.labelOffset, textFieldTokens.labelFontFamily, tokens.labelFontFamily, textFieldTokens.labelFontStyle, tokens.labelFontStyle, textFieldTokens.labelFontSize, tokens.labelFontSize, textFieldTokens.labelFontWeight, tokens.labelFontWeight, textFieldTokens.labelLetterSpacing, tokens.labelLetterSpacing, textFieldTokens.labelLineHeight, tokens.labelLineHeight, textFieldTokens.labelInnerFontFamily, tokens.labelInnerFontFamily, textFieldTokens.labelInnerFontSize, tokens.labelInnerFontSize, textFieldTokens.labelInnerFontStyle, tokens.labelInnerFontStyle, textFieldTokens.labelInnerFontWeight, tokens.labelInnerFontWeight, textFieldTokens.labelInnerLetterSpacing, tokens.labelInnerLetterSpacing, textFieldTokens.labelInnerLineHeight, tokens.labelInnerLineHeight, textFieldTokens.labelColorReadOnly, tokens.labelColorReadOnly, textFieldTokens.indicatorColor, tokens.indicatorColor, textFieldTokens.indicatorSizeInner, tokens.indicatorSize, textFieldTokens.indicatorSizeOuter, tokens.indicatorSizeOuter, textFieldTokens.indicatorLabelPlacementInner, tokens.indicatorPlacement, textFieldTokens.indicatorLabelPlacementOuter, tokens.indicatorOuterPlacement, textFieldTokens.indicatorLabelPlacementInnerRight, tokens.indicatorPlacementRight, textFieldTokens.indicatorLabelPlacementOuterRight, tokens.indicatorOuterPlacementRight, textFieldTokens.leftContentMargin, tokens.textFieldLeftContentMargin, textFieldTokens.rightContentMargin, tokens.textFieldRightContentMargin, textFieldTokens.fontFamily, tokens.textFieldFontFamily, textFieldTokens.fontSize, tokens.textFieldFontSize, textFieldTokens.fontStyle, tokens.textFieldFontStyle, textFieldTokens.fontWeight, tokens.textFieldFontWeight, textFieldTokens.letterSpacing, tokens.textFieldLetterSpacing, textFieldTokens.lineHeight, tokens.textFieldLineHeight, textFieldTokens.disabledOpacity, tokens.disabledOpacity, textFieldTokens.textBeforeColor, tokens.textFieldTextBeforeColor, textFieldTokens.textAfterColor, tokens.textFieldTextAfterColor, textFieldTokens.textBeforeMargin, tokens.textFieldTextBeforeMargin, textFieldTokens.textAfterMargin, tokens.textFieldTextAfterMargin, textFieldTokens.contentSlotColor, tokens.textFieldContentSlotColor, tokens.textFieldColor, textFieldTokens.contentSlotRightColor, tokens.textFieldContentRightSlotColor, textFieldTokens.contentSlotColor, textFieldTokens.contentSlotRightColorHover, tokens.textFieldContentRightSlotColorHover, textFieldTokens.contentSlotRightColor, classes.timePickerError, textFieldTokens.backgroundColor, tokens.textFieldBackgroundErrorColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundErrorColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundErrorColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorError, textFieldTokens.borderColorHover, tokens.textFieldBorderColorErrorHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorErrorFocus, classes.timePickerSuccess, textFieldTokens.backgroundColor, tokens.textFieldBackgroundSuccessColor, textFieldTokens.backgroundColorHover, tokens.textFieldBackgroundSuccessColorHover, textFieldTokens.backgroundColorFocus, tokens.textFieldBackgroundSuccessColorFocus, textFieldTokens.borderColor, tokens.textFieldBorderColorSuccess, textFieldTokens.borderColorHover, tokens.textFieldBorderColorSuccessHover, textFieldTokens.borderColorFocus, tokens.textFieldBorderColorSuccessFocus);
169
171
  export var base = css([
170
172
  "display:flex;width:var(",
171
173
  ");margin-top:var(",
@@ -179,7 +181,7 @@ export var base = css([
179
181
  ], tokens.width, tokens.dropdownMarginTop, popoverClasses.wrapper, popoverClasses.target, classes.timePickerstretched, popoverClasses.root, classes.timePickerFullWidth, classes.timePickerPlacementRight);
180
182
  export var StyledTimePicker = styled.div.withConfig({
181
183
  displayName: "TimePicker.styles__StyledTimePicker",
182
- componentId: "sc-d0bdbdc5-2"
184
+ componentId: "sc-8a747fd1-2"
183
185
  })([
184
186
  "background:var(",
185
187
  ");border-radius:var(",
@@ -191,69 +193,3 @@ export var StyledTimePicker = styled.div.withConfig({
191
193
  var width = param.width;
192
194
  return (width === 'fullWidth' ? "var(".concat(tokens.width, ")") : width) || "var(".concat(tokens.timePickerWidth, ")");
193
195
  }, tokens.timePickerPadding, tokens.scrollbarWidth);
194
- export var StyledTimeItem = styled.div.withConfig({
195
- displayName: "TimePicker.styles__StyledTimeItem",
196
- componentId: "sc-d0bdbdc5-3"
197
- })([
198
- "height:var(",
199
- ");padding:var(",
200
- ");box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:0.05s;border-radius:var(",
201
- ");cursor:pointer;flex-shrink:0;overflow:auto;font-family:var(",
202
- ");font-size:var(",
203
- ");font-style:var(",
204
- ");font-weight:var(",
205
- ");letter-spacing:var(",
206
- ");line-height:var(",
207
- ");&:hover{background:var(",
208
- ");}&.",
209
- "{background:var(",
210
- ");}"
211
- ], tokens.itemHeight, tokens.itemPadding, tokens.itemBorderRadius, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemHoverBackground, classes.timeItemActive, tokens.itemActiveBackground);
212
- export var StyledTimeColumn = styled.div.withConfig({
213
- displayName: "TimePicker.styles__StyledTimeColumn",
214
- componentId: "sc-d0bdbdc5-4"
215
- })([
216
- "max-height:",
217
- ";overflow-y:scroll;flex:1;z-index:3;box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
218
- ");width:100%;&.",
219
- "{border:0.125rem solid var(",
220
- ");border-radius:var(",
221
- ");}scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;width:0;}"
222
- ], function(param) {
223
- var height = param.height;
224
- return height || "var(".concat(tokens.columnHeight, ")");
225
- }, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemHoverBackground, tokens.itemBorderRadius);
226
- export var CustomScrollbar = styled.div.withConfig({
227
- displayName: "TimePicker.styles__CustomScrollbar",
228
- componentId: "sc-d0bdbdc5-5"
229
- })([
230
- "position:absolute;top:var(",
231
- ");right:0;bottom:var(",
232
- ");width:var(",
233
- ");opacity:0;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;&.",
234
- "{opacity:1;pointer-events:auto;}"
235
- ], tokens.scrollbarMargin, tokens.scrollbarMargin, tokens.scrollbarWidth, classes.scrollbarVisible);
236
- export var ScrollbarTrack = styled.div.withConfig({
237
- displayName: "TimePicker.styles__ScrollbarTrack",
238
- componentId: "sc-d0bdbdc5-6"
239
- })([
240
- "position:relative;width:100%;height:100%;background:var(",
241
- ");border-radius:var(",
242
- ");"
243
- ], tokens.scrollbarTrackColor, tokens.scrollbarWidth);
244
- export var ScrollbarThumb = styled.div.withConfig({
245
- displayName: "TimePicker.styles__ScrollbarThumb",
246
- componentId: "sc-d0bdbdc5-7"
247
- })([
248
- "position:absolute;top:0;left:0;width:100%;background:var(",
249
- ");border-radius:var(",
250
- ");cursor:pointer;transition:background-color 0.2s ease;&:hover{background:var(",
251
- ");}&:active{background:var(",
252
- ");}"
253
- ], tokens.scrollbarColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarTrackColor);
254
- export var StyledEmpty = styled.div.withConfig({
255
- displayName: "TimePicker.styles__StyledEmpty",
256
- componentId: "sc-d0bdbdc5-8"
257
- })([
258
- "width:100%;height:0%.125rem;"
259
- ]);
@@ -75,6 +75,7 @@ export var tokens = {
75
75
  textFieldBorderColorSuccess: '--plasma-time-picker-textfield-border-color-success',
76
76
  textFieldBorderColorSuccessHover: '--plasma-time-picker-textfield-border-color-success-hover',
77
77
  textFieldBorderColorSuccessFocus: '--plasma-time-picker-textfield-border-color-success-focus',
78
+ textFieldBoxShadow: '--plasma-time-picker-textfield-box-shadow',
78
79
  textFieldColorReadOnly: '--plasma-time-picker-textfield-color-readonly',
79
80
  textFieldBackgroundColorReadOnly: '--plasma-time-picker-textfield-background-color-readonly',
80
81
  textFieldBorderColorReadOnly: '--plasma-time-picker-textfield-border-color-readonly',
@@ -108,8 +109,8 @@ export var tokens = {
108
109
  itemHeight: '--plasma-time-picker-item-height',
109
110
  itemBorderRadius: '--plasma-time-picker-item-border-radius',
110
111
  itemPadding: '--plasma-time-picker-item-padding',
111
- itemHoverBackground: '--plasma-time-picker-item-hover-background',
112
- itemActiveBackground: '--plasma-time-picker-item-active-background',
112
+ itemBackgroundHover: '--plasma-time-picker-item-hover-background',
113
+ itemBackgroundActive: '--plasma-time-picker-item-active-background',
113
114
  itemFontFamily: '--plasma-time-picker-item-font-family',
114
115
  itemFontStyle: '--plasma-time-picker-item-font-style',
115
116
  itemFontSize: '--plasma-time-picker-item-font-size',
@@ -5,21 +5,13 @@ export var useKeyNavigation = function(param) {
5
5
  event.preventDefault();
6
6
  return;
7
7
  }
8
- switch(event.code){
9
- case 'Space':
10
- if (!isCalendarOpen) {
11
- event.preventDefault();
12
- onToggle(true, event);
13
- }
14
- break;
15
- case 'Escape':
16
- if (isCalendarOpen && closeOnEsc) {
17
- event.preventDefault();
18
- onToggle(false, event);
19
- }
20
- break;
21
- default:
22
- break;
8
+ if (event.code === 'Space' && !isCalendarOpen) {
9
+ event.preventDefault();
10
+ onToggle(true, event);
11
+ }
12
+ if (event.code === 'Escape' && isCalendarOpen && closeOnEsc) {
13
+ event.preventDefault();
14
+ onToggle(false, event);
23
15
  }
24
16
  };
25
17
  return {
@@ -0,0 +1,50 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ import React from "react";
15
+ import cls from "classnames";
16
+ import { classes } from "../../TimePicker.tokens";
17
+ import { StyledTimeColumn, StyledTimeItem, StyledEmpty, CustomScrollbar, ScrollbarTrack, ScrollbarThumb, StyledRoot } from "./TimeColumn.styles";
18
+ export var renderTimeColumn = function(param) {
19
+ var values = param.values, dropdownHeight = param.dropdownHeight, column = param.column, columnRef = param.columnRef, scrollbarState = param.scrollbarState, setScrollbar = param.setScrollbar, scrollbarRef = param.scrollbarRef, thumbRef = param.thumbRef, timeoutRef = param.timeoutRef, timeItemRefs = param.timeItemRefs, activeTime = param.activeTime, handleTimeItemClick = param.handleTimeItemClick, handleTimeItemKeyDown = param.handleTimeItemKeyDown, createScrollbarDragHandler = param.createScrollbarDragHandler;
20
+ return /*#__PURE__*/ React.createElement(StyledRoot, null, /*#__PURE__*/ React.createElement(StyledTimeColumn, {
21
+ key: column,
22
+ ref: columnRef,
23
+ height: dropdownHeight,
24
+ className: classes.timeColumn
25
+ }, values.map(function(value, index) {
26
+ return /*#__PURE__*/ React.createElement(StyledTimeItem, {
27
+ key: value,
28
+ ref: function(el) {
29
+ timeItemRefs.current["".concat(column, "-").concat(value)] = el;
30
+ },
31
+ className: cls(_define_property({}, classes.timeItemActive, activeTime[column] === index)),
32
+ onClick: function() {
33
+ return handleTimeItemClick(value, column);
34
+ },
35
+ onKeyDown: function(e) {
36
+ return handleTimeItemKeyDown(e, column, value);
37
+ }
38
+ }, value);
39
+ }), /*#__PURE__*/ React.createElement(StyledEmpty, null)), /*#__PURE__*/ React.createElement(CustomScrollbar, {
40
+ ref: scrollbarRef,
41
+ className: cls(_define_property({}, classes.scrollbarVisible, scrollbarState.isVisible))
42
+ }, /*#__PURE__*/ React.createElement(ScrollbarTrack, null, /*#__PURE__*/ React.createElement(ScrollbarThumb, {
43
+ ref: thumbRef,
44
+ style: {
45
+ height: "".concat(scrollbarState.thumbHeight, "px"),
46
+ top: "".concat(scrollbarState.thumbPosition, "px")
47
+ },
48
+ onMouseDown: createScrollbarDragHandler(columnRef, setScrollbar, timeoutRef)
49
+ }))));
50
+ };
@@ -0,0 +1,74 @@
1
+ import styled from "styled-components";
2
+ import { classes, tokens } from "../../TimePicker.tokens";
3
+ export var StyledRoot = styled.div.withConfig({
4
+ displayName: "TimeColumn.styles__StyledRoot",
5
+ componentId: "sc-a5ee4233-0"
6
+ })([
7
+ "position:relative;width:100%;"
8
+ ]);
9
+ export var StyledTimeItem = styled.div.withConfig({
10
+ displayName: "TimeColumn.styles__StyledTimeItem",
11
+ componentId: "sc-a5ee4233-1"
12
+ })([
13
+ "height:var(",
14
+ ");padding:var(",
15
+ ");box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:0.05s;border-radius:var(",
16
+ ");cursor:pointer;flex-shrink:0;overflow:auto;font-family:var(",
17
+ ");font-size:var(",
18
+ ");font-style:var(",
19
+ ");font-weight:var(",
20
+ ");letter-spacing:var(",
21
+ ");line-height:var(",
22
+ ");&:hover{background:var(",
23
+ ");}&.",
24
+ "{background:var(",
25
+ ");}"
26
+ ], tokens.itemHeight, tokens.itemPadding, tokens.itemBorderRadius, tokens.itemFontFamily, tokens.itemFontSize, tokens.itemFontStyle, tokens.itemFontWeight, tokens.itemLetterSpacing, tokens.itemLineHeight, tokens.itemBackgroundHover, classes.timeItemActive, tokens.itemBackgroundActive);
27
+ export var StyledTimeColumn = styled.div.withConfig({
28
+ displayName: "TimeColumn.styles__StyledTimeColumn",
29
+ componentId: "sc-a5ee4233-2"
30
+ })([
31
+ "max-height:",
32
+ ";overflow-y:scroll;flex:1;z-index:3;box-sizing:border-box;display:flex;flex-direction:column;gap:var(",
33
+ ");width:100%;&.",
34
+ "{border:0.125rem solid var(",
35
+ ");border-radius:var(",
36
+ ");}scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;width:0;}"
37
+ ], function(param) {
38
+ var height = param.height;
39
+ return height || "var(".concat(tokens.columnHeight, ")");
40
+ }, tokens.scrollbarWidth, classes.timeColumnActive, tokens.itemBackgroundHover, tokens.itemBorderRadius);
41
+ export var CustomScrollbar = styled.div.withConfig({
42
+ displayName: "TimeColumn.styles__CustomScrollbar",
43
+ componentId: "sc-a5ee4233-3"
44
+ })([
45
+ "position:absolute;top:var(",
46
+ ");right:0;bottom:var(",
47
+ ");width:var(",
48
+ ");opacity:0;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;&.",
49
+ "{opacity:1;pointer-events:auto;}"
50
+ ], tokens.scrollbarMargin, tokens.scrollbarMargin, tokens.scrollbarWidth, classes.scrollbarVisible);
51
+ export var ScrollbarTrack = styled.div.withConfig({
52
+ displayName: "TimeColumn.styles__ScrollbarTrack",
53
+ componentId: "sc-a5ee4233-4"
54
+ })([
55
+ "position:relative;width:100%;height:100%;background:var(",
56
+ ");border-radius:var(",
57
+ ");"
58
+ ], tokens.scrollbarTrackColor, tokens.scrollbarWidth);
59
+ export var ScrollbarThumb = styled.div.withConfig({
60
+ displayName: "TimeColumn.styles__ScrollbarThumb",
61
+ componentId: "sc-a5ee4233-5"
62
+ })([
63
+ "position:absolute;top:0;left:0;width:100%;background:var(",
64
+ ");border-radius:var(",
65
+ ");cursor:pointer;transition:background-color 0.2s ease;&:hover{background:var(",
66
+ ");}&:active{background:var(",
67
+ ");}"
68
+ ], tokens.scrollbarColor, tokens.scrollbarWidth, tokens.scrollbarColor, tokens.scrollbarTrackColor);
69
+ export var StyledEmpty = styled.div.withConfig({
70
+ displayName: "TimeColumn.styles__StyledEmpty",
71
+ componentId: "sc-a5ee4233-6"
72
+ })([
73
+ "width:100%;height:0%.125rem;"
74
+ ]);