@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
@@ -47,13 +47,14 @@ var useFocusTrap = function useFocusTrap() {
47
47
  var firstFocusSelector = arguments.length > 1 ? arguments[1] : undefined;
48
48
  var focusAfterNode = arguments.length > 2 ? arguments[2] : undefined;
49
49
  var focusAfterAnimation = arguments.length > 3 ? arguments[3] : undefined;
50
+ var enableOnFirstMount = arguments.length > 4 ? arguments[4] : undefined;
50
51
  var ref = useRef();
51
52
  var setRef = useCallback(function (node) {
52
53
  if (ref.current) {
53
54
  focusManager.teardownScopedFocus();
54
55
  focusManager.returnFocus();
55
56
  }
56
- if (active && node) {
57
+ if ((active || enableOnFirstMount) && node) {
57
58
  focusManager.setupScopedFocus(node);
58
59
  focusManager.markForFocusAfter(focusAfterNode);
59
60
 
@@ -71,21 +72,26 @@ var useFocusTrap = function useFocusTrap() {
71
72
  return;
72
73
  }
73
74
  ref.current = null;
74
- }, [active, firstFocusSelector]);
75
+ }, [active, enableOnFirstMount, firstFocusSelector]);
75
76
  useEffect(function () {
76
- if (!active) {
77
+ if (!active && !enableOnFirstMount) {
77
78
  return;
78
79
  }
79
80
  var handleKeyDown = function handleKeyDown(event) {
80
81
  if (event.key === 'Tab' && ref.current) {
81
- scopeTab(ref.current, event);
82
+ scopeTab(ref.current, event, active);
83
+ if (enableOnFirstMount) {
84
+ setTimeout(function () {
85
+ focusManager.teardownScopedFocus();
86
+ });
87
+ }
82
88
  }
83
89
  };
84
90
  document.addEventListener('keydown', handleKeyDown);
85
91
  return function () {
86
92
  document.removeEventListener('keydown', handleKeyDown);
87
93
  };
88
- }, [active]);
94
+ }, [active, enableOnFirstMount]);
89
95
  return setRef;
90
96
  };
91
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusTrap.js","sources":["../../src/hooks/useFocusTrap.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { FocusManager } from '../utils/focusManager';\nimport { focusSelector, isFocusable, isTabble } from '../utils/tabbable';\nimport { scopeTab } from '../utils/scopeTab';\n\n// Находим элемент для фокуса\nconst getFocusElement = (\n node: HTMLElement,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n): HTMLElement | null => {\n let focusElement: HTMLElement | null = null;\n if (firstFocusSelector) {\n if (typeof firstFocusSelector === 'string') {\n focusElement = node.querySelector(firstFocusSelector);\n } else if (firstFocusSelector.current) {\n focusElement = firstFocusSelector.current;\n }\n }\n\n if (!focusElement) {\n const children = Array.from<HTMLElement>(node.querySelectorAll(focusSelector));\n focusElement = children.find((el) => isTabble(el)) || null;\n }\n\n // Если ничего не нашлось, то может ли сама нода быть под фокусом\n if (!focusElement && isFocusable(node)) {\n focusElement = node;\n }\n\n return focusElement;\n};\n\nconst processNode = (\n node: HTMLElement,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n ref?: React.MutableRefObject<HTMLElement | null | undefined>,\n) => {\n if (ref?.current) {\n ref.current.removeEventListener('animationend', () => {\n processNode(node, firstFocusSelector, ref);\n });\n }\n const focusElement = getFocusElement(node, firstFocusSelector);\n\n if (focusElement) {\n focusElement.focus();\n }\n};\n\nconst focusManager = new FocusManager();\n\n/**\n * Захватывает фокус внутри DOM node.\n * */\nexport const useFocusTrap = (\n active = true,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n focusAfterNode?: React.RefObject<HTMLElement>,\n focusAfterAnimation?: boolean,\n): ((instance: HTMLElement | null) => void) => {\n const ref = useRef<HTMLElement | null>();\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n if (ref.current) {\n focusManager.teardownScopedFocus();\n focusManager.returnFocus();\n }\n\n if (active && node) {\n focusManager.setupScopedFocus(node);\n focusManager.markForFocusAfter(focusAfterNode);\n\n // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n setTimeout(() => {\n if (ref?.current && node.ownerDocument && focusAfterAnimation) {\n ref.current.addEventListener('animationend', () => {\n processNode(node, firstFocusSelector, ref);\n });\n } else if (node.ownerDocument) {\n processNode(node, firstFocusSelector);\n }\n });\n\n ref.current = node;\n return;\n }\n\n ref.current = null;\n },\n [active, firstFocusSelector],\n );\n\n useEffect(() => {\n if (!active) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n\n return setRef;\n};\n"],"names":["getFocusElement","node","firstFocusSelector","focusElement","querySelector","current","children","Array","from","querySelectorAll","focusSelector","find","el","isTabble","isFocusable","processNode","ref","removeEventListener","focus","focusManager","FocusManager","useFocusTrap","active","arguments","length","undefined","focusAfterNode","focusAfterAnimation","useRef","setRef","useCallback","teardownScopedFocus","returnFocus","setupScopedFocus","markForFocusAfter","setTimeout","ownerDocument","addEventListener","useEffect","handleKeyDown","event","key","scopeTab","document"],"mappings":"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"}
1
+ {"version":3,"file":"useFocusTrap.js","sources":["../../src/hooks/useFocusTrap.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { FocusManager } from '../utils/focusManager';\nimport { focusSelector, isFocusable, isTabble } from '../utils/tabbable';\nimport { scopeTab } from '../utils/scopeTab';\n\n// Находим элемент для фокуса\nconst getFocusElement = (\n node: HTMLElement,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n): HTMLElement | null => {\n let focusElement: HTMLElement | null = null;\n if (firstFocusSelector) {\n if (typeof firstFocusSelector === 'string') {\n focusElement = node.querySelector(firstFocusSelector);\n } else if (firstFocusSelector.current) {\n focusElement = firstFocusSelector.current;\n }\n }\n\n if (!focusElement) {\n const children = Array.from<HTMLElement>(node.querySelectorAll(focusSelector));\n focusElement = children.find((el) => isTabble(el)) || null;\n }\n\n // Если ничего не нашлось, то может ли сама нода быть под фокусом\n if (!focusElement && isFocusable(node)) {\n focusElement = node;\n }\n\n return focusElement;\n};\n\nconst processNode = (\n node: HTMLElement,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n ref?: React.MutableRefObject<HTMLElement | null | undefined>,\n) => {\n if (ref?.current) {\n ref.current.removeEventListener('animationend', () => {\n processNode(node, firstFocusSelector, ref);\n });\n }\n const focusElement = getFocusElement(node, firstFocusSelector);\n\n if (focusElement) {\n focusElement.focus();\n }\n};\n\nconst focusManager = new FocusManager();\n\n/**\n * Захватывает фокус внутри DOM node.\n * */\nexport const useFocusTrap = (\n active = true,\n firstFocusSelector?: string | React.RefObject<HTMLElement>,\n focusAfterNode?: React.RefObject<HTMLElement>,\n focusAfterAnimation?: boolean,\n enableOnFirstMount?: boolean,\n): ((instance: HTMLElement | null) => void) => {\n const ref = useRef<HTMLElement | null>();\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n if (ref.current) {\n focusManager.teardownScopedFocus();\n focusManager.returnFocus();\n }\n\n if ((active || enableOnFirstMount) && node) {\n focusManager.setupScopedFocus(node);\n focusManager.markForFocusAfter(focusAfterNode);\n\n // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n setTimeout(() => {\n if (ref?.current && node.ownerDocument && focusAfterAnimation) {\n ref.current.addEventListener('animationend', () => {\n processNode(node, firstFocusSelector, ref);\n });\n } else if (node.ownerDocument) {\n processNode(node, firstFocusSelector);\n }\n });\n\n ref.current = node;\n return;\n }\n\n ref.current = null;\n },\n [active, enableOnFirstMount, firstFocusSelector],\n );\n\n useEffect(() => {\n if (!active && !enableOnFirstMount) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event, active);\n\n if (enableOnFirstMount) {\n setTimeout(() => {\n focusManager.teardownScopedFocus();\n });\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active, enableOnFirstMount]);\n\n return setRef;\n};\n"],"names":["getFocusElement","node","firstFocusSelector","focusElement","querySelector","current","children","Array","from","querySelectorAll","focusSelector","find","el","isTabble","isFocusable","processNode","ref","removeEventListener","focus","focusManager","FocusManager","useFocusTrap","active","arguments","length","undefined","focusAfterNode","focusAfterAnimation","enableOnFirstMount","useRef","setRef","useCallback","teardownScopedFocus","returnFocus","setupScopedFocus","markForFocusAfter","setTimeout","ownerDocument","addEventListener","useEffect","handleKeyDown","event","key","scopeTab","document"],"mappings":"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"}
package/es/index.css CHANGED
@@ -461,8 +461,8 @@
461
461
  .Dropdown_styles_3w3l45_s1rwu6ky__59648b20 .Dropdown_styles_3w3l45_popoverTarget__59648b20{display:block;}
462
462
  .Dropdown_styles_3w3l45_s10jhp3l__59648b20{box-sizing:border-box;background:var(--plasma-dropdown-background);box-shadow:var(--plasma-dropdown-box-shadow);border-radius:var(--plasma-dropdown-border-radius);width:var(--plasma-dropdown-width);height:var(--plasma-dropdown-height);padding:var(--plasma-dropdown-padding-top) var(--plasma-dropdown-padding-right) var(--plasma-dropdown-padding-bottom) var(--plasma-dropdown-padding-left);}
463
463
 
464
- .Tooltip_styles_1bh0sd0_teczcv4__e6cc0309{padding:var(--plasma-tooltip-padding-top) var(--plasma-tooltip-padding-right) var(--plasma-tooltip-padding-bottom) var(--plasma-tooltip-padding-left);min-height:var(--plasma-tooltip-min-height);box-sizing:border-box;background-color:var(--plasma-tooltip-background-color);border-radius:var(--plasma-tooltip-border-radius);box-shadow:var(--plasma-tooltip-box-shadow);color:var(--plasma-tooltip-color);font-family:var(--plasma-tooltip-text-font-family);font-size:var(--plasma-tooltip-text-font-size);font-style:var(--plasma-tooltip-text-font-style);font-weight:var(--plasma-tooltip-text-font-weight);-webkit-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);-moz-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);-ms-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);line-height:var(--plasma-tooltip-text-font-line-height);max-width:var(--teczcv4-0);min-width:var(--teczcv4-1);width:-webkit-max-content;width:-moz-max-content;width:max-content;word-break:break-word;pointer-events:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
465
- .Tooltip_styles_1bh0sd0_s1j361h1__e6cc0309{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:var(--plasma-tooltip-content-left-margin);height:var(--plasma-tooltip-text-font-line-height);}
464
+ .Tooltip_styles_uldg0s_teczcv4__f329846b{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--plasma-tooltip-padding-top) var(--plasma-tooltip-padding-right) var(--plasma-tooltip-padding-bottom) var(--plasma-tooltip-padding-left);min-height:var(--plasma-tooltip-min-height);max-width:var(--teczcv4-0);min-width:var(--teczcv4-1);width:-webkit-max-content;width:-moz-max-content;width:max-content;background-color:var(--plasma-tooltip-background-color);border-radius:var(--plasma-tooltip-border-radius);box-shadow:var(--plasma-tooltip-box-shadow);color:var(--plasma-tooltip-color);font-family:var(--plasma-tooltip-text-font-family);font-size:var(--plasma-tooltip-text-font-size);font-style:var(--plasma-tooltip-text-font-style);font-weight:var(--plasma-tooltip-text-font-weight);-webkit-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);-moz-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);-ms-letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);letter-spacing:var(--plasma-tooltip-text-font-letter-spacing);line-height:var(--plasma-tooltip-text-font-line-height);box-sizing:border-box;word-break:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
465
+ .Tooltip_styles_uldg0s_s1j361h1__f329846b{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:var(--plasma-tooltip-content-left-margin);height:var(--plasma-tooltip-text-font-line-height);}
466
466
 
467
467
  .Tooltip_1qsg6ij_s1cz8cv8__da7f9e0a{--plasma-popover-arrow-mask-width:var(--plasma-tooltip-arrow-mask-width);--plasma-popover-arrow-mask-height:var(--plasma-tooltip-arrow-mask-height);--plasma-popover-arrow-mask-image:var(--plasma-tooltip-arrow-mask-image);--plasma-popover-arrow-background:var(--plasma-tooltip-arrow-background);--plasma-popover-arrow-height:var(--plasma-tooltip-arrow-height);--plasma-popover-arrow-edge-margin:var(--plasma-tooltip-arrow-edge-margin);}
468
468
 
@@ -949,7 +949,7 @@
949
949
 
950
950
  .base_pq323y_b1ygm22t__ed5da473{background:var(--plasma-note-background);color:var(--plasma-note-color);}.base_pq323y_b1ygm22t__ed5da473 .base_pq323y_c1i6bkpn__ed5da473{color:var(--plasma-note-content-before-color);fill:var(--plasma-note-content-before-color);}
951
951
 
952
- .base_111wwzs_bnp62xb__0c427f65{padding:var(--plasma-note-padding);border-radius:var(--plasma-note-border-radius);height:var(--plasma_private-note-height);width:var(--plasma_private-note-width);gap:var(--plasma-note-gap);}.base_111wwzs_bnp62xb__0c427f65.base_111wwzs_noteStretch__0c427f65{width:100%;height:100%;}.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_c1i6bkpn__0c427f65{width:var(--plasma-note-fixed-content-before-width);height:var(--plasma-note-fixed-content-before-height);padding:var(--plasma-note-fixed-content-before-padding);box-sizing:border-box;}.base_111wwzs_bnp62xb__0c427f65.base_111wwzs_noteContentAlignCenter__0c427f65{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--plasma-note-padding-scalable);gap:var(--plasma-note-gap-scalable);}.base_111wwzs_bnp62xb__0c427f65.base_111wwzs_noteContentAlignCenter__0c427f65 .base_111wwzs_c1i6bkpn__0c427f65{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:unset;}.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_cendmch__0c427f65{width:var(--plasma_private-note-content-width-with-offset);gap:var(--plasma-note-content-gap);}.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_t1wkjxug__0c427f65,.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_te86upw__0c427f65{width:100%;min-height:var(--plasma-note-title-line-height);font-family:var(--plasma-note-title-font-family);font-size:var(--plasma-note-title-font-size);font-style:var(--plasma-note-title-font-style);font-weight:var(--plasma-note-title-font-weight);-webkit-letter-spacing:var(--plasma-note-title-letter-spacing);-moz-letter-spacing:var(--plasma-note-title-letter-spacing);-ms-letter-spacing:var(--plasma-note-title-letter-spacing);letter-spacing:var(--plasma-note-title-letter-spacing);line-height:var(--plasma-note-title-line-height);}.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_t1kp0wa7__0c427f65,.base_111wwzs_bnp62xb__0c427f65 .base_111wwzs_tf1lafs__0c427f65{font-family:var(--plasma-note-text-font-family);font-size:var(--plasma-note-text-font-size);font-style:var(--plasma-note-text-font-style);font-weight:var(--plasma-note-text-font-weight);-webkit-letter-spacing:var(--plasma-note-text-letter-spacing);-moz-letter-spacing:var(--plasma-note-text-letter-spacing);-ms-letter-spacing:var(--plasma-note-text-letter-spacing);letter-spacing:var(--plasma-note-text-letter-spacing);line-height:var(--plasma-note-text-line-height);word-break:break-all;}
952
+ .base_12cn7f7_bnp62xb__4561ac8c{padding:var(--plasma-note-padding);border-radius:var(--plasma-note-border-radius);height:var(--plasma_private-note-height);width:var(--plasma_private-note-width);gap:var(--plasma-note-gap);}.base_12cn7f7_bnp62xb__4561ac8c.base_12cn7f7_noteStretch__4561ac8c{width:100%;height:100%;}.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_c1i6bkpn__4561ac8c{width:var(--plasma-note-fixed-content-before-width);height:var(--plasma-note-fixed-content-before-height);padding:var(--plasma-note-fixed-content-before-padding);box-sizing:border-box;}.base_12cn7f7_bnp62xb__4561ac8c.base_12cn7f7_noteContentAlignCenter__4561ac8c{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--plasma-note-padding-scalable);gap:var(--plasma-note-gap-scalable);}.base_12cn7f7_bnp62xb__4561ac8c.base_12cn7f7_noteContentAlignCenter__4561ac8c .base_12cn7f7_c1i6bkpn__4561ac8c{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:unset;}.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_cendmch__4561ac8c{width:var(--plasma_private-note-content-width-with-offset);gap:var(--plasma-note-content-gap);}.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_t1wkjxug__4561ac8c,.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_te86upw__4561ac8c{width:100%;min-height:var(--plasma-note-title-line-height);font-family:var(--plasma-note-title-font-family);font-size:var(--plasma-note-title-font-size);font-style:var(--plasma-note-title-font-style);font-weight:var(--plasma-note-title-font-weight);-webkit-letter-spacing:var(--plasma-note-title-letter-spacing);-moz-letter-spacing:var(--plasma-note-title-letter-spacing);-ms-letter-spacing:var(--plasma-note-title-letter-spacing);letter-spacing:var(--plasma-note-title-letter-spacing);line-height:var(--plasma-note-title-line-height);}.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_t1kp0wa7__4561ac8c,.base_12cn7f7_bnp62xb__4561ac8c .base_12cn7f7_tf1lafs__4561ac8c{font-family:var(--plasma-note-text-font-family);font-size:var(--plasma-note-text-font-size);font-style:var(--plasma-note-text-font-style);font-weight:var(--plasma-note-text-font-weight);-webkit-letter-spacing:var(--plasma-note-text-letter-spacing);-moz-letter-spacing:var(--plasma-note-text-letter-spacing);-ms-letter-spacing:var(--plasma-note-text-letter-spacing);letter-spacing:var(--plasma-note-text-letter-spacing);line-height:var(--plasma-note-text-line-height);overflow-wrap:break-word;}
953
953
 
954
954
  .Note_styles_thpfhk_b1eqam57__3331b1ad{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;}
955
955
  .Note_styles_thpfhk_c1i6bkpn__3331b1ad{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
@@ -1149,11 +1149,15 @@
1149
1149
  .Section_styles_147bzzp_lnmmdxt__60e0567c{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
1150
1150
 
1151
1151
 
1152
- .TimePicker_styles_1ie9d7j_s1ghbm1p__dc9c5ed2{width:100%;--plasma-textfield-color:var(--plasma-time-picker-textfield-color);--plasma-textfield__placeholder-color:var(--plasma-time-picker-textfield-placeholder-color);--plasma-textfield__placeholder-color-focus:var(--plasma-timepicker-textfield__placeholder-color-focus);--plasma-textfield__caret-color:var(--plasma-time-picker-textfield-caret-color);--plasma-textfield-focus-color:var(--plasma-time-picker-textfield-focus-color);--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-focus);--plasma-textfield-border-color:var(--plasma-time-picker_range-border-color);--plasma-textfield-border-color-hover:var(--plasma-time-picker_range-border-color-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker_range-border-color-focus);--plasma-textfield-color-readonly:var(--plasma-time-picker-textfield-color-readonly);--plasma-textfield-bg-color-readonly:var(--plasma-time-picker-textfield-background-color-readonly);--plasma-textfield-border-color-readonly:var(--plasma-time-picker-textfield-border-color-readonly);--plasma-textfield__placeholder-color-readonly:var(--plasma-time-picker-textfield-placeholder-color-readonly);--plasma-textfield-height:var(--plasma-time-picker-textfield-height);--plasma-textfield-border-width:var(--plasma-time-picker-textfield-border-width);--plasma-textfield-border-radius:var(--plasma-time-picker-textfield-border-radius);--plasma-textfield-padding:var(--plasma-time-picker-textfield-padding);--plasma-textfield-placement_inner__label-padding:var(--plasma-time-picker-placement_inner__label-padding);--plasma-textfield-placement_inner__content-padding:var(--plasma-time-picker-placement_inner__content-padding);--plasma-textfield__label-offset:var(--plasma-time-picker__label-offset);--plasma-textfield__label-font-family:var(--plasma-time-picker__label-font-family);--plasma-textfield__label-font-style:var(--plasma-time-picker__label-font-style);--plasma-textfield__label-font-size:var(--plasma-time-picker__label-font-size);--plasma-textfield__label-font-weight:var(--plasma-time-picker__label-font-weight);--plasma-textfield__label-letter-spacing:var(--plasma-time-picker__label-letter-spacing);--plasma-textfield__label-line-height:var(--plasma-time-picker__label-line-height);--plasma-textfield-placement_inner__label-font-family:var(--plasma-time-picker-placement_inner__label-font-family);--plasma-textfield-placement_inner__label-font-size:var(--plasma-time-picker-placement_inner__label-font-size);--plasma-textfield-placement_inner__label-font-style:var(--plasma-time-picker-placement_inner__label-font-style);--plasma-textfield-placement_inner__label-font-weight:var(--plasma-time-picker-placement_inner__label-font-weight);--plasma-textfield-placement_inner__label-letter-spacing:var(--plasma-time-picker-placement_inner__label-letter-spacing);--plasma-textfield-placement_inner__label-line-height:var(--plasma-time-picker-placement_inner__label-line-height);--plasma-textfield__label-color-readonly:var(--plasma-time-picker__label-color-readonly);--plasma-textfield__indicator-color:var(--plasma-time-picker__indicator-color);--plasma-textfield__indicator-size-inner:var(--plasma-time-picker__indicator-size);--plasma-textfield__indicator-size-outer:var(--plasma-time-picker__indicator-size-outer);--plasma-textfield__indicator-placement-inner:var(--plasma-time-picker__indicator-placement);--plasma-textfield__indicator-placement-outer:var(--plasma-time-picker__indicator-placement-outer);--plasma-textfield__indicator-placement-inner-right:var(--plasma-time-picker__indicator-placement-right);--plasma-textfield__indicator-placement-outer-right:var(--plasma-time-picker__indicator-placement-outer-right);--plasma-textfield__left-content-margin:var(--plasma-time-picker-textfield__left-content-margin);--plasma-textfield__right-content-margin:var(--plasma-time-picker-textfield__right-content-margin);--plasma-textfield-font-family:var(--plasma-time-picker-textfield-font-family);--plasma-textfield-font-size:var(--plasma-time-picker-textfield-font-size);--plasma-textfield-font-style:var(--plasma-time-picker-textfield-font-style);--plasma-textfield-font-weight:var(--plasma-time-picker-textfield-font-weight);--plasma-textfield-letter-spacing:var(--plasma-time-picker-textfield-letter-spacing);--plasma-textfield-line-height:var(--plasma-time-picker-textfield-line-height);--plasma-textfield-disabled-opacity:var(--plasma-time-picker-disabled-opacity);--plasma-textfield__before-text-color:var(--plasma-time-picker-textfield__before-text-color);--plasma-textfield__after-text-color:var(--plasma-time-picker-textfield__after-text-color);--plasma-textfield__before-text-margin:var(--plasma-time-picker-textfield__before-text-margin);--plasma-textfield__after-text-margin:var(--plasma-time-picker-textfield__after-text-margin);--plasma-textfield-content-slot-color:var(--plasma-time-picker-textfield__content-color,var(--plasma-time-picker-textfield-color));--plasma-textfield-content-right-slot-color:var(--plasma-time-picker-textfield__content-right-color,var(--plasma-textfield-content-slot-color));--plasma-textfield-content-right-slot-color-hover:var(--plasma-time-picker-textfield__content-right-color-hover,var(--plasma-textfield-content-right-slot-color));}.TimePicker_styles_1ie9d7j_s1ghbm1p__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerError__dc9c5ed2{--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color-error);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-error-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-error-focus);--plasma-textfield-border-color:var(--plasma-time-picker-textfield-border-color-error);--plasma-textfield-border-color-hover:var(--plasma-time-picker-textfield-border-color-error-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker-textfield-border-color-error-focus);}.TimePicker_styles_1ie9d7j_s1ghbm1p__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerSuccess__dc9c5ed2{--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color-success);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-success-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-success-focus);--plasma-textfield-border-color:var(--plasma-time-picker-textfield-border-color-success);--plasma-textfield-border-color-hover:var(--plasma-time-picker-textfield-border-color-success-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker-textfield-border-color-success-focus);}
1153
- .TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2{display:inline-block;width:var(--plasma-time-picker-width);}.TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2 .TimePicker_styles_1ie9d7j_popoverWrapper__dc9c5ed2,.TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2 .TimePicker_styles_1ie9d7j_popoverTarget__dc9c5ed2{width:inherit;}.TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerStretched__dc9c5ed2{width:100%;}.TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerStretched__dc9c5ed2 .TimePicker_styles_1ie9d7j_popoverRoot__dc9c5ed2{width:100%;}.TimePicker_styles_1ie9d7j_b19h9m1x__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerFullWidth__dc9c5ed2{width:100%;}
1154
- .TimePicker_styles_1ie9d7j_slnaiay__dc9c5ed2{background:var(--plasma-time-picker-ui-background);border-radius:var(--plasma-time-picker-ui-border-radius);width:var(--slnaiay-0);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:var(--plasma-time-picker-ui-padding);-webkit-flex:1 1 1;-ms-flex:1 1 1;flex:1 1 1;box-sizing:border-box;position:relative;}
1155
- .TimePicker_styles_1ie9d7j_sh0cawu__dc9c5ed2{height:var(--plasma-time-picker-item-height);padding:var(--plasma-time-picker-item-padding);box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:0.05s;transition:0.05s;border-radius:var(--plasma-time-picker-item-border-radius);cursor:pointer;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;font-family:var(--plasma-time-picker-item-font-family);font-size:var(--plasma-time-picker-item-font-size);font-style:var(--plasma-time-picker-item-font-style);font-weight:var(--plasma-time-picker-item-font-weight);-webkit-letter-spacing:var(--plasma-time-picker-item-letter-spacing);-moz-letter-spacing:var(--plasma-time-picker-item-letter-spacing);-ms-letter-spacing:var(--plasma-time-picker-item-letter-spacing);letter-spacing:var(--plasma-time-picker-item-letter-spacing);line-height:var(--plasma-time-picker-item-line-height);}.TimePicker_styles_1ie9d7j_sh0cawu__dc9c5ed2:hover{background:var(--plasma-time-picker-item-hover-background);}.TimePicker_styles_1ie9d7j_sh0cawu__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerItemActive__dc9c5ed2{background:var(--plasma-time-picker-item-active-background);}
1156
- .TimePicker_styles_1ie9d7j_s15lrh1g__dc9c5ed2{max-height:var(--s15lrh1g-0);overflow-y:scroll;-webkit-flex:1;-ms-flex:1;flex:1;z-index:3;padding:calc(var(--plasma-time-picker-scrollbar-width) / 2);box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--plasma-time-picker-scrollbar-width);width:100%;}.TimePicker_styles_1ie9d7j_s15lrh1g__dc9c5ed2.TimePicker_styles_1ie9d7j_plasmaTimePickerColumnActive__dc9c5ed2{border:0.125rem solid var(--plasma-time-picker-item-hover-background);border-radius:var(--plasma-time-picker-item-border-radius);}.TimePicker_styles_1ie9d7j_s15lrh1g__dc9c5ed2::-webkit-scrollbar{width:var(--plasma-time-picker-scrollbar-width);height:var(--plasma-time-picker-scrollbar-width);}.TimePicker_styles_1ie9d7j_s15lrh1g__dc9c5ed2::-webkit-scrollbar-track{background:var(--plasma-time-picker-scrollbar-track-color);border-radius:var(--plasma-time-picker-scrollbar-width);}.TimePicker_styles_1ie9d7j_s15lrh1g__dc9c5ed2::-webkit-scrollbar-thumb{background:var(--plasma-time-picker-scrollbar-color);border-radius:var(--plasma-time-picker-scrollbar-width);}
1152
+ .TimePicker_styles_7l6ler_s1ghbm1p__7c9ab2c4{width:100%;--plasma-textfield-color:var(--plasma-time-picker-textfield-color);--plasma-textfield__placeholder-color:var(--plasma-time-picker-textfield-placeholder-color);--plasma-textfield__placeholder-color-focus:var(--plasma-timepicker-textfield__placeholder-color-focus);--plasma-textfield__caret-color:var(--plasma-time-picker-textfield-caret-color);--plasma-textfield-focus-color:var(--plasma-time-picker-textfield-focus-color);--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-focus);--plasma-textfield-border-color:var(--plasma-time-picker_range-border-color);--plasma-textfield-border-color-hover:var(--plasma-time-picker_range-border-color-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker_range-border-color-focus);--plasma-textfield-color-readonly:var(--plasma-time-picker-textfield-color-readonly);--plasma-textfield-bg-color-readonly:var(--plasma-time-picker-textfield-background-color-readonly);--plasma-textfield-border-color-readonly:var(--plasma-time-picker-textfield-border-color-readonly);--plasma-textfield__placeholder-color-readonly:var(--plasma-time-picker-textfield-placeholder-color-readonly);--plasma-textfield-height:var(--plasma-time-picker-textfield-height);--plasma-textfield-border-width:var(--plasma-time-picker-textfield-border-width);--plasma-textfield-border-radius:var(--plasma-time-picker-textfield-border-radius);--plasma-textfield-padding:var(--plasma-time-picker-textfield-padding);--plasma-textfield-placement_inner__label-padding:var(--plasma-time-picker-placement_inner__label-padding);--plasma-textfield-placement_inner__content-padding:var(--plasma-time-picker-placement_inner__content-padding);--plasma-textfield__label-offset:var(--plasma-time-picker__label-offset);--plasma-textfield__label-font-family:var(--plasma-time-picker__label-font-family);--plasma-textfield__label-font-style:var(--plasma-time-picker__label-font-style);--plasma-textfield__label-font-size:var(--plasma-time-picker__label-font-size);--plasma-textfield__label-font-weight:var(--plasma-time-picker__label-font-weight);--plasma-textfield__label-letter-spacing:var(--plasma-time-picker__label-letter-spacing);--plasma-textfield__label-line-height:var(--plasma-time-picker__label-line-height);--plasma-textfield-placement_inner__label-font-family:var(--plasma-time-picker-placement_inner__label-font-family);--plasma-textfield-placement_inner__label-font-size:var(--plasma-time-picker-placement_inner__label-font-size);--plasma-textfield-placement_inner__label-font-style:var(--plasma-time-picker-placement_inner__label-font-style);--plasma-textfield-placement_inner__label-font-weight:var(--plasma-time-picker-placement_inner__label-font-weight);--plasma-textfield-placement_inner__label-letter-spacing:var(--plasma-time-picker-placement_inner__label-letter-spacing);--plasma-textfield-placement_inner__label-line-height:var(--plasma-time-picker-placement_inner__label-line-height);--plasma-textfield__label-color-readonly:var(--plasma-time-picker__label-color-readonly);--plasma-textfield__indicator-color:var(--plasma-time-picker__indicator-color);--plasma-textfield__indicator-size-inner:var(--plasma-time-picker__indicator-size);--plasma-textfield__indicator-size-outer:var(--plasma-time-picker__indicator-size-outer);--plasma-textfield__indicator-placement-inner:var(--plasma-time-picker__indicator-placement);--plasma-textfield__indicator-placement-outer:var(--plasma-time-picker__indicator-placement-outer);--plasma-textfield__indicator-placement-inner-right:var(--plasma-time-picker__indicator-placement-right);--plasma-textfield__indicator-placement-outer-right:var(--plasma-time-picker__indicator-placement-outer-right);--plasma-textfield__left-content-margin:var(--plasma-time-picker-textfield__left-content-margin);--plasma-textfield__right-content-margin:var(--plasma-time-picker-textfield__right-content-margin);--plasma-textfield-font-family:var(--plasma-time-picker-textfield-font-family);--plasma-textfield-font-size:var(--plasma-time-picker-textfield-font-size);--plasma-textfield-font-style:var(--plasma-time-picker-textfield-font-style);--plasma-textfield-font-weight:var(--plasma-time-picker-textfield-font-weight);--plasma-textfield-letter-spacing:var(--plasma-time-picker-textfield-letter-spacing);--plasma-textfield-line-height:var(--plasma-time-picker-textfield-line-height);--plasma-textfield-disabled-opacity:var(--plasma-time-picker-disabled-opacity);--plasma-textfield__before-text-color:var(--plasma-time-picker-textfield__before-text-color);--plasma-textfield__after-text-color:var(--plasma-time-picker-textfield__after-text-color);--plasma-textfield__before-text-margin:var(--plasma-time-picker-textfield__before-text-margin);--plasma-textfield__after-text-margin:var(--plasma-time-picker-textfield__after-text-margin);--plasma-textfield-content-slot-color:var(--plasma-time-picker-textfield__content-color,var(--plasma-time-picker-textfield-color));--plasma-textfield-content-right-slot-color:var(--plasma-time-picker-textfield__content-right-color,var(--plasma-textfield-content-slot-color));--plasma-textfield-content-right-slot-color-hover:var(--plasma-time-picker-textfield__content-right-color-hover,var(--plasma-textfield-content-right-slot-color));}.TimePicker_styles_7l6ler_s1ghbm1p__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerError__7c9ab2c4{--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color-error);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-error-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-error-focus);--plasma-textfield-border-color:var(--plasma-time-picker-textfield-border-color-error);--plasma-textfield-border-color-hover:var(--plasma-time-picker-textfield-border-color-error-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker-textfield-border-color-error-focus);}.TimePicker_styles_7l6ler_s1ghbm1p__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerSuccess__7c9ab2c4{--plasma-textfield-bg-color:var(--plasma-time-picker-textfield-background-color-success);--plasma-textfield-bg-color-hover:var(--plasma-time-picker-textfield-background-color-success-hover);--plasma-textfield-bg-color-focus:var(--plasma-time-picker-textfield-background-color-success-focus);--plasma-textfield-border-color:var(--plasma-time-picker-textfield-border-color-success);--plasma-textfield-border-color-hover:var(--plasma-time-picker-textfield-border-color-success-hover);--plasma-textfield-border-color-focus:var(--plasma-time-picker-textfield-border-color-success-focus);}
1153
+ .TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4{display:inline-block;width:var(--plasma-time-picker-width);}.TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4 .TimePicker_styles_7l6ler_popoverWrapper__7c9ab2c4,.TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4 .TimePicker_styles_7l6ler_popoverTarget__7c9ab2c4{width:inherit;}.TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerStretched__7c9ab2c4{width:100%;}.TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerStretched__7c9ab2c4 .TimePicker_styles_7l6ler_popoverRoot__7c9ab2c4{width:100%;}.TimePicker_styles_7l6ler_b19h9m1x__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerFullWidth__7c9ab2c4{width:100%;}
1154
+ .TimePicker_styles_7l6ler_slnaiay__7c9ab2c4{background:var(--plasma-time-picker-ui-background);border-radius:var(--plasma-time-picker-ui-border-radius);width:var(--slnaiay-0);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:var(--plasma-time-picker-ui-padding);-webkit-flex:1 1 1;-ms-flex:1 1 1;flex:1 1 1;gap:var(--plasma-time-picker-scrollbar-width);box-sizing:border-box;position:relative;}
1155
+ .TimePicker_styles_7l6ler_sh0cawu__7c9ab2c4{height:var(--plasma-time-picker-item-height);padding:var(--plasma-time-picker-item-padding);box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:0.05s;transition:0.05s;border-radius:var(--plasma-time-picker-item-border-radius);cursor:pointer;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;overflow:auto;font-family:var(--plasma-time-picker-item-font-family);font-size:var(--plasma-time-picker-item-font-size);font-style:var(--plasma-time-picker-item-font-style);font-weight:var(--plasma-time-picker-item-font-weight);-webkit-letter-spacing:var(--plasma-time-picker-item-letter-spacing);-moz-letter-spacing:var(--plasma-time-picker-item-letter-spacing);-ms-letter-spacing:var(--plasma-time-picker-item-letter-spacing);letter-spacing:var(--plasma-time-picker-item-letter-spacing);line-height:var(--plasma-time-picker-item-line-height);}.TimePicker_styles_7l6ler_sh0cawu__7c9ab2c4:hover{background:var(--plasma-time-picker-item-hover-background);}.TimePicker_styles_7l6ler_sh0cawu__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerItemActive__7c9ab2c4{background:var(--plasma-time-picker-item-active-background);}
1156
+ .TimePicker_styles_7l6ler_s15lrh1g__7c9ab2c4{max-height:var(--s15lrh1g-0);overflow-y:scroll;-webkit-flex:1;-ms-flex:1;flex:1;z-index:3;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--plasma-time-picker-scrollbar-width);width:100%;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;-ms-overflow-style:none;}.TimePicker_styles_7l6ler_s15lrh1g__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerColumnActive__7c9ab2c4{border:0.125rem solid var(--plasma-time-picker-item-hover-background);border-radius:var(--plasma-time-picker-item-border-radius);}.TimePicker_styles_7l6ler_s15lrh1g__7c9ab2c4::-webkit-scrollbar{display:none;width:0;}
1157
+ .TimePicker_styles_7l6ler_c18qymw0__7c9ab2c4{position:absolute;top:var(--plasma-time-picker-scrollbar-margin);right:0;bottom:var(--plasma-time-picker-scrollbar-margin);width:var(--plasma-time-picker-scrollbar-width);opacity:0;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;pointer-events:none;z-index:10;overflow:hidden;}.TimePicker_styles_7l6ler_c18qymw0__7c9ab2c4.TimePicker_styles_7l6ler_plasmaTimePickerScrollbarVisible__7c9ab2c4{opacity:1;pointer-events:auto;}
1158
+ .TimePicker_styles_7l6ler_s1wgh6jw__7c9ab2c4{position:relative;width:100%;height:100%;background:var(--plasma-time-picker-scrollbar-track-color);border-radius:var(--plasma-time-picker-scrollbar-width);}
1159
+ .TimePicker_styles_7l6ler_s1qrdw7l__7c9ab2c4{position:absolute;top:0;left:0;width:100%;background:var(--plasma-time-picker-scrollbar-color);border-radius:var(--plasma-time-picker-scrollbar-width);cursor:pointer;-webkit-transition:background-color 0.2s ease;transition:background-color 0.2s ease;}.TimePicker_styles_7l6ler_s1qrdw7l__7c9ab2c4:hover{background:var(--plasma-time-picker-scrollbar-color);}.TimePicker_styles_7l6ler_s1qrdw7l__7c9ab2c4:active{background:var(--plasma-time-picker-scrollbar-track-color);}
1160
+ .TimePicker_styles_7l6ler_sa62th__7c9ab2c4{width:100%;height:0%.125rem;}
1157
1161
 
1158
1162
  .base_nyid0i_bxyi89k__8a89f178[disabled]{opacity:var(--plasma-time-picker-disabled-opacity);cursor:not-allowed;}
1159
1163
 
@@ -5,7 +5,7 @@ import { findTabbableDescendants } from './tabbable.js';
5
5
  * @param node
6
6
  * @param event
7
7
  */
8
- var scopeTab = function scopeTab(node, event) {
8
+ var scopeTab = function scopeTab(node, event, activeFocusTrap) {
9
9
  var tabbable = findTabbableDescendants(node);
10
10
  if (!tabbable.length) {
11
11
  event.preventDefault();
@@ -17,7 +17,7 @@ var scopeTab = function scopeTab(node, event) {
17
17
  var leavingFinalTabbable = finalTabbable === document.activeElement || node === document.activeElement;
18
18
 
19
19
  // если не является, то передаем обработку таба самому браузеру
20
- if (!leavingFinalTabbable) {
20
+ if (!leavingFinalTabbable || !activeFocusTrap) {
21
21
  return;
22
22
  }
23
23
 
@@ -1 +1 @@
1
- {"version":3,"file":"scopeTab.js","sources":["../../src/utils/scopeTab.ts"],"sourcesContent":["import { findTabbableDescendants } from './tabbable';\n\n/**\n * Управлление фокусом лишь внутри ноды через tab\n * @param node\n * @param event\n */\nexport const scopeTab = (node: HTMLElement, event: KeyboardEvent) => {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n // смотрим, является ли элемент крайним - первый или последним\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const leavingFinalTabbable = finalTabbable === document.activeElement || node === document.activeElement;\n\n // если не является, то передаем обработку таба самому браузеру\n if (!leavingFinalTabbable) {\n return;\n }\n\n // иначе зацкливаемся\n event.preventDefault();\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) {\n target.focus();\n }\n};\n"],"names":["scopeTab","node","event","tabbable","findTabbableDescendants","length","preventDefault","finalTabbable","shiftKey","leavingFinalTabbable","document","activeElement","target","focus"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAAiB,EAAEC,KAAoB,EAAK;AACjE,EAAA,IAAMC,QAAQ,GAAGC,uBAAuB,CAACH,IAAI,CAAC,CAAA;AAC9C,EAAA,IAAI,CAACE,QAAQ,CAACE,MAAM,EAAE;IAClBH,KAAK,CAACI,cAAc,EAAE,CAAA;AACtB,IAAA,OAAA;AACJ,GAAA;;AAEA;AACA,EAAA,IAAMC,aAAa,GAAGJ,QAAQ,CAACD,KAAK,CAACM,QAAQ,GAAG,CAAC,GAAGL,QAAQ,CAACE,MAAM,GAAG,CAAC,CAAC,CAAA;AACxE,EAAA,IAAMI,oBAAoB,GAAGF,aAAa,KAAKG,QAAQ,CAACC,aAAa,IAAIV,IAAI,KAAKS,QAAQ,CAACC,aAAa,CAAA;;AAExG;EACA,IAAI,CAACF,oBAAoB,EAAE;AACvB,IAAA,OAAA;AACJ,GAAA;;AAEA;EACAP,KAAK,CAACI,cAAc,EAAE,CAAA;AACtB,EAAA,IAAMM,MAAM,GAAGT,QAAQ,CAACD,KAAK,CAACM,QAAQ,GAAGL,QAAQ,CAACE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACjE,EAAA,IAAIO,MAAM,EAAE;IACRA,MAAM,CAACC,KAAK,EAAE,CAAA;AAClB,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"scopeTab.js","sources":["../../src/utils/scopeTab.ts"],"sourcesContent":["import { findTabbableDescendants } from './tabbable';\n\n/**\n * Управлление фокусом лишь внутри ноды через tab\n * @param node\n * @param event\n */\nexport const scopeTab = (node: HTMLElement, event: KeyboardEvent, activeFocusTrap?: boolean) => {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n // смотрим, является ли элемент крайним - первый или последним\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const leavingFinalTabbable = finalTabbable === document.activeElement || node === document.activeElement;\n\n // если не является, то передаем обработку таба самому браузеру\n if (!leavingFinalTabbable || !activeFocusTrap) {\n return;\n }\n\n // иначе зацкливаемся\n event.preventDefault();\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) {\n target.focus();\n }\n};\n"],"names":["scopeTab","node","event","activeFocusTrap","tabbable","findTabbableDescendants","length","preventDefault","finalTabbable","shiftKey","leavingFinalTabbable","document","activeElement","target","focus"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAAiB,EAAEC,KAAoB,EAAEC,eAAyB,EAAK;AAC5F,EAAA,IAAMC,QAAQ,GAAGC,uBAAuB,CAACJ,IAAI,CAAC,CAAA;AAC9C,EAAA,IAAI,CAACG,QAAQ,CAACE,MAAM,EAAE;IAClBJ,KAAK,CAACK,cAAc,EAAE,CAAA;AACtB,IAAA,OAAA;AACJ,GAAA;;AAEA;AACA,EAAA,IAAMC,aAAa,GAAGJ,QAAQ,CAACF,KAAK,CAACO,QAAQ,GAAG,CAAC,GAAGL,QAAQ,CAACE,MAAM,GAAG,CAAC,CAAC,CAAA;AACxE,EAAA,IAAMI,oBAAoB,GAAGF,aAAa,KAAKG,QAAQ,CAACC,aAAa,IAAIX,IAAI,KAAKU,QAAQ,CAACC,aAAa,CAAA;;AAExG;AACA,EAAA,IAAI,CAACF,oBAAoB,IAAI,CAACP,eAAe,EAAE;AAC3C,IAAA,OAAA;AACJ,GAAA;;AAEA;EACAD,KAAK,CAACK,cAAc,EAAE,CAAA;AACtB,EAAA,IAAMM,MAAM,GAAGT,QAAQ,CAACF,KAAK,CAACO,QAAQ,GAAGL,QAAQ,CAACE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACjE,EAAA,IAAIO,MAAM,EAAE;IACRA,MAAM,CAACC,KAAK,EAAE,CAAA;AAClB,GAAA;AACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.337.0-canary.2184.17907394393.0",
3
+ "version": "0.337.0-canary.2184.17968380115.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "7e6b2936c5f27154878cfe83db0d88d838b58906"
140
+ "gitHead": "69aa823b906b3178f4212cbcad44b4e8f35e4a76"
141
141
  }
@@ -130,7 +130,7 @@ function _object_without_properties_loose(source, excluded) {
130
130
  var Popup = (0, _engines.component)(_Popup.popupConfig);
131
131
  var modalRoot = function(Root) {
132
132
  return /*#__PURE__*/ (0, _react.forwardRef)(function(_param, outerRootRef) {
133
- var id = _param.id, withAnimation = _param.withAnimation, onClose = _param.onClose, onOverlayClick = _param.onOverlayClick, onEscKeyDown = _param.onEscKeyDown, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, withBlur = _param.withBlur, initialFocusRef = _param.initialFocusRef, focusAfterRef = _param.focusAfterRef, zIndex = _param.zIndex, popupInfo = _param.popupInfo, children = _param.children, view = _param.view, opened = _param.opened, isOpen = _param.isOpen, hasBody = _param.hasBody, hasClose = _param.hasClose, resizable = _param.resizable, draggable = _param.draggable, rest = _object_without_properties(_param, [
133
+ var id = _param.id, withAnimation = _param.withAnimation, onClose = _param.onClose, onOverlayClick = _param.onOverlayClick, onEscKeyDown = _param.onEscKeyDown, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, withBlur = _param.withBlur, _param_isFocusTrapped = _param.isFocusTrapped, isFocusTrapped = _param_isFocusTrapped === void 0 ? true : _param_isFocusTrapped, initialFocusRef = _param.initialFocusRef, focusAfterRef = _param.focusAfterRef, zIndex = _param.zIndex, popupInfo = _param.popupInfo, children = _param.children, view = _param.view, opened = _param.opened, isOpen = _param.isOpen, hasBody = _param.hasBody, hasClose = _param.hasClose, resizable = _param.resizable, draggable = _param.draggable, rest = _object_without_properties(_param, [
134
134
  "id",
135
135
  "withAnimation",
136
136
  "onClose",
@@ -139,6 +139,7 @@ var modalRoot = function(Root) {
139
139
  "closeOnEsc",
140
140
  "closeOnOverlayClick",
141
141
  "withBlur",
142
+ "isFocusTrapped",
142
143
  "initialFocusRef",
143
144
  "focusAfterRef",
144
145
  "zIndex",
@@ -154,7 +155,7 @@ var modalRoot = function(Root) {
154
155
  ]);
155
156
  var innerIsOpen = Boolean(isOpen || opened);
156
157
  var innerHasClose = hasClose === undefined && hasBody || hasClose;
157
- var trapRef = (0, _hooks.useFocusTrap)(true, initialFocusRef, focusAfterRef, true);
158
+ var trapRef = (0, _hooks.useFocusTrap)(isFocusTrapped, initialFocusRef, focusAfterRef, true, !isFocusTrapped);
158
159
  var popupController = (0, _Popup.usePopupContext)();
159
160
  var innerRef = (0, _plasmacore.useForkRef)(trapRef, outerRootRef);
160
161
  var uniqId = (0, _utils.safeUseId)();
@@ -219,7 +219,7 @@ var noteRoot = function(Root) {
219
219
  var contentWidthWithOffsetToken = contentBefore ? "calc(100% - ".concat(contentBeforeWidth, " - var(").concat(contentGapToken, "))") : '100%';
220
220
  var setTruncatedText = function() {
221
221
  var _titleHelperRef_current;
222
- if (!_utils.canUseDOM || !text || !(contentWrapperRef === null || contentWrapperRef === void 0 ? void 0 : contentWrapperRef.current) || !(textRenderHelperRef === null || textRenderHelperRef === void 0 ? void 0 : textRenderHelperRef.current) || !width && !height) {
222
+ if (!_utils.canUseDOM || !text || typeof text !== 'string' || !(contentWrapperRef === null || contentWrapperRef === void 0 ? void 0 : contentWrapperRef.current) || !(textRenderHelperRef === null || textRenderHelperRef === void 0 ? void 0 : textRenderHelperRef.current) || !width && !height) {
223
223
  return;
224
224
  }
225
225
  var contentHeight = contentWrapperRef.current.offsetHeight;
@@ -46,5 +46,5 @@ var base = (0, _styledcomponents.css)([
46
46
  ");font-weight:var(",
47
47
  ");letter-spacing:var(",
48
48
  ");line-height:var(",
49
- ");word-break:break-all;}"
49
+ ");overflow-wrap:break-word;}"
50
50
  ], _Notetokens.tokens.padding, _Notetokens.tokens.borderRadius, _Notetokens.privateTokens.height, _Notetokens.privateTokens.width, _Notetokens.tokens.gap, _Notetokens.classes.stretch, _Notestyles.ContentBefore, _Notetokens.tokens.fixedContentBeforeWidth, _Notetokens.tokens.fixedContentBeforeHeight, _Notetokens.tokens.fixedContentBeforePadding, _Notetokens.classes.contentAlignCenter, _Notetokens.tokens.paddingScalable, _Notetokens.tokens.gapScalable, _Notestyles.ContentBefore, _Notestyles.ContentWrapper, _Notetokens.privateTokens.contentWidthWithOffset, _Notetokens.tokens.contentGap, _Notestyles.Title, _Notestyles.TitleHelper, _Notetokens.tokens.titleLineHeight, _Notetokens.tokens.titleFontFamily, _Notetokens.tokens.titleFontSize, _Notetokens.tokens.titleFontStyle, _Notetokens.tokens.titleFontWeight, _Notetokens.tokens.titleLetterSpacing, _Notetokens.tokens.titleLineHeight, _Notestyles.Text, _Notestyles.TextHelper, _Notetokens.tokens.textFontFamily, _Notetokens.tokens.textFontSize, _Notetokens.tokens.textFontStyle, _Notetokens.tokens.textFontWeight, _Notetokens.tokens.textLetterSpacing, _Notetokens.tokens.textLineHeight);
@@ -251,6 +251,15 @@ var timePickerRoot = function(Root) {
251
251
  var minutesColumnRef = (0, _react.useRef)(null);
252
252
  var secondsColumnRef = (0, _react.useRef)(null);
253
253
  var timeItemRefs = (0, _react.useRef)({});
254
+ var hoursScrollbarRef = (0, _react.useRef)(null);
255
+ var minutesScrollbarRef = (0, _react.useRef)(null);
256
+ var secondsScrollbarRef = (0, _react.useRef)(null);
257
+ var hoursThumbRef = (0, _react.useRef)(null);
258
+ var minutesThumbRef = (0, _react.useRef)(null);
259
+ var secondsThumbRef = (0, _react.useRef)(null);
260
+ var hoursHideTimeoutRef = (0, _react.useRef)(null);
261
+ var minutesHideTimeoutRef = (0, _react.useRef)(null);
262
+ var secondsHideTimeoutRef = (0, _react.useRef)(null);
254
263
  var _useState = _sliced_to_array((0, _react.useState)(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
255
264
  var _useState1 = _sliced_to_array((0, _react.useState)(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
256
265
  var _useState2 = _sliced_to_array((0, _react.useState)({
@@ -261,11 +270,154 @@ var timePickerRoot = function(Root) {
261
270
  }), 2), activeTime = _useState2[0], setActiveTime = _useState2[1];
262
271
  var _useState3 = _sliced_to_array((0, _react.useState)(0), 2), itemHeight = _useState3[0], setItemHeight = _useState3[1];
263
272
  var _useState4 = _sliced_to_array((0, _react.useState)(0), 2), gap = _useState4[0], setGap = _useState4[1];
273
+ var _useState5 = _sliced_to_array((0, _react.useState)({
274
+ isVisible: false,
275
+ thumbHeight: 0,
276
+ thumbPosition: 0,
277
+ isDragging: false
278
+ }), 2), hoursScrollbar = _useState5[0], setHoursScrollbar = _useState5[1];
279
+ var _useState6 = _sliced_to_array((0, _react.useState)({
280
+ isVisible: false,
281
+ thumbHeight: 0,
282
+ thumbPosition: 0,
283
+ isDragging: false
284
+ }), 2), minutesScrollbar = _useState6[0], setMinutesScrollbar = _useState6[1];
285
+ var _useState7 = _sliced_to_array((0, _react.useState)({
286
+ isVisible: false,
287
+ thumbHeight: 0,
288
+ thumbPosition: 0,
289
+ isDragging: false
290
+ }), 2), secondsScrollbar = _useState7[0], setSecondsScrollbar = _useState7[1];
264
291
  var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
265
292
  var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
266
293
  var hours = (0, _utils1.range)(24);
267
294
  var minutes = (0, _utils1.range)(60);
268
295
  var seconds = (0, _utils1.range)(60);
296
+ var calculateScrollbar = (0, _react.useCallback)(function(columnRef) {
297
+ if (!columnRef.current) return {
298
+ thumbHeight: 0,
299
+ thumbPosition: 0
300
+ };
301
+ var _columnRef_current = columnRef.current, scrollTop = _columnRef_current.scrollTop, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
302
+ var trackHeight = clientHeight;
303
+ var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, 20); // Минимальная высота 20px
304
+ var maxScroll = scrollHeight - clientHeight;
305
+ var thumbPosition = maxScroll > 0 ? scrollTop / maxScroll * (trackHeight - thumbHeight) : 0;
306
+ return {
307
+ thumbHeight: thumbHeight,
308
+ thumbPosition: thumbPosition
309
+ };
310
+ }, []);
311
+ var showScrollbarWithDelay = (0, _react.useCallback)(function(setScrollbar, timeoutRef, columnRef) {
312
+ if (timeoutRef.current) {
313
+ clearTimeout(timeoutRef.current);
314
+ }
315
+ updateScrollbar(columnRef, setScrollbar, true);
316
+ timeoutRef.current = setTimeout(function() {
317
+ setScrollbar(function(prev) {
318
+ return _object_spread_props(_object_spread({}, prev), {
319
+ isVisible: false
320
+ });
321
+ });
322
+ timeoutRef.current = null;
323
+ }, 2000);
324
+ }, []);
325
+ var updateScrollbar = (0, _react.useCallback)(function(columnRef, setScrollbar) {
326
+ var show = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
327
+ if (!columnRef.current) return;
328
+ var _calculateScrollbar = calculateScrollbar(columnRef), thumbHeight = _calculateScrollbar.thumbHeight, thumbPosition = _calculateScrollbar.thumbPosition;
329
+ setScrollbar(function(prev) {
330
+ return _object_spread_props(_object_spread({}, prev), {
331
+ thumbHeight: thumbHeight,
332
+ thumbPosition: thumbPosition,
333
+ isVisible: show || prev.isVisible
334
+ });
335
+ });
336
+ }, [
337
+ calculateScrollbar
338
+ ]);
339
+ var handleColumnScroll = (0, _react.useCallback)(function(columnRef, setScrollbar, timeoutRef) {
340
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
341
+ }, [
342
+ showScrollbarWithDelay
343
+ ]);
344
+ var createScrollbarDragHandler = (0, _react.useCallback)(function(columnRef, setScrollbar, timeoutRef) {
345
+ return function(e) {
346
+ e.preventDefault();
347
+ var thumb = e.currentTarget;
348
+ var track = thumb.parentElement;
349
+ if (!columnRef.current || !track) return;
350
+ if (timeoutRef.current) {
351
+ clearTimeout(timeoutRef.current);
352
+ timeoutRef.current = null;
353
+ }
354
+ var startY = e.clientY;
355
+ var startThumbPosition = parseFloat(thumb.style.top || '0');
356
+ var trackRect = track.getBoundingClientRect();
357
+ var trackHeight = trackRect.height;
358
+ var thumbHeight = thumb.offsetHeight;
359
+ var _columnRef_current = columnRef.current, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
360
+ var maxScroll = scrollHeight - clientHeight;
361
+ var handleMouseMove = function(moveEvent) {
362
+ var deltaY = moveEvent.clientY - startY;
363
+ var newThumbPosition = Math.max(0, Math.min(trackHeight - thumbHeight, startThumbPosition + deltaY));
364
+ var scrollPercentage = newThumbPosition / (trackHeight - thumbHeight);
365
+ var newScrollTop = scrollPercentage * maxScroll;
366
+ if (columnRef.current) {
367
+ columnRef.current.scrollTop = newScrollTop;
368
+ }
369
+ setScrollbar(function(prev) {
370
+ return _object_spread_props(_object_spread({}, prev), {
371
+ thumbPosition: newThumbPosition,
372
+ isDragging: true,
373
+ isVisible: true
374
+ });
375
+ });
376
+ };
377
+ var handleMouseUp = function() {
378
+ document.removeEventListener('mousemove', handleMouseMove);
379
+ document.removeEventListener('mouseup', handleMouseUp);
380
+ setScrollbar(function(prev) {
381
+ return _object_spread_props(_object_spread({}, prev), {
382
+ isDragging: false
383
+ });
384
+ });
385
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
386
+ };
387
+ document.addEventListener('mousemove', handleMouseMove);
388
+ document.addEventListener('mouseup', handleMouseUp);
389
+ };
390
+ }, [
391
+ showScrollbarWithDelay
392
+ ]);
393
+ (0, _react.useEffect)(function() {
394
+ return function() {
395
+ [
396
+ hoursHideTimeoutRef,
397
+ minutesHideTimeoutRef,
398
+ secondsHideTimeoutRef
399
+ ].forEach(function(timeoutRef) {
400
+ if (timeoutRef.current) {
401
+ clearTimeout(timeoutRef.current);
402
+ }
403
+ });
404
+ };
405
+ }, []);
406
+ (0, _react.useEffect)(function() {
407
+ if (isInnerOpen) {
408
+ setTimeout(function() {
409
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
410
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
411
+ if (columnsQuantity === 3) {
412
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
413
+ }
414
+ }, 100);
415
+ }
416
+ }, [
417
+ isInnerOpen,
418
+ columnsQuantity,
419
+ updateScrollbar
420
+ ]);
269
421
  (0, _react.useEffect)(function() {
270
422
  if (viewValue) {
271
423
  var timeString = viewValue;
@@ -314,6 +466,15 @@ var timePickerRoot = function(Root) {
314
466
  if (columnRef.current && index !== null) {
315
467
  var scrollPosition = index * (itemHeight + gap);
316
468
  (0, _utils1.animateScrollTo)(columnRef.current, scrollPosition);
469
+ setTimeout(function() {
470
+ if (columnRef === hoursColumnRef) {
471
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
472
+ } else if (columnRef === minutesColumnRef) {
473
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
474
+ } else if (columnRef === secondsColumnRef) {
475
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
476
+ }
477
+ }, 300);
317
478
  }
318
479
  };
319
480
  scrollToActiveItem(hoursColumnRef, activeTime.hours);
@@ -322,7 +483,83 @@ var timePickerRoot = function(Root) {
322
483
  }, [
323
484
  activeTime,
324
485
  isInnerOpen,
325
- itemHeight
486
+ itemHeight,
487
+ gap,
488
+ updateScrollbar
489
+ ]);
490
+ (0, _react.useEffect)(function() {
491
+ var hoursColumn = hoursColumnRef.current;
492
+ var minutesColumn = minutesColumnRef.current;
493
+ var secondsColumn = secondsColumnRef.current;
494
+ var handleHoursScroll = function() {
495
+ return handleColumnScroll(hoursColumnRef, setHoursScrollbar, hoursHideTimeoutRef);
496
+ };
497
+ var handleMinutesScroll = function() {
498
+ return handleColumnScroll(minutesColumnRef, setMinutesScrollbar, minutesHideTimeoutRef);
499
+ };
500
+ var handleSecondsScroll = function() {
501
+ return handleColumnScroll(secondsColumnRef, setSecondsScrollbar, secondsHideTimeoutRef);
502
+ };
503
+ if (hoursColumn) {
504
+ hoursColumn.addEventListener('scroll', handleHoursScroll);
505
+ }
506
+ if (minutesColumn) {
507
+ minutesColumn.addEventListener('scroll', handleMinutesScroll);
508
+ }
509
+ if (secondsColumn) {
510
+ secondsColumn.addEventListener('scroll', handleSecondsScroll);
511
+ }
512
+ return function() {
513
+ if (hoursColumn) {
514
+ hoursColumn.removeEventListener('scroll', handleHoursScroll);
515
+ }
516
+ if (minutesColumn) {
517
+ minutesColumn.removeEventListener('scroll', handleMinutesScroll);
518
+ }
519
+ if (secondsColumn) {
520
+ secondsColumn.removeEventListener('scroll', handleSecondsScroll);
521
+ }
522
+ };
523
+ }, [
524
+ isInnerOpen,
525
+ handleColumnScroll
526
+ ]);
527
+ (0, _react.useEffect)(function() {
528
+ var hoursColumn = hoursColumnRef.current;
529
+ var minutesColumn = minutesColumnRef.current;
530
+ var secondsColumn = secondsColumnRef.current;
531
+ var handleHoursMouseEnter = function() {
532
+ return showScrollbarWithDelay(setHoursScrollbar, hoursHideTimeoutRef, hoursColumnRef);
533
+ };
534
+ var handleMinutesMouseEnter = function() {
535
+ return showScrollbarWithDelay(setMinutesScrollbar, minutesHideTimeoutRef, minutesColumnRef);
536
+ };
537
+ var handleSecondsMouseEnter = function() {
538
+ return showScrollbarWithDelay(setSecondsScrollbar, secondsHideTimeoutRef, secondsColumnRef);
539
+ };
540
+ if (hoursColumn) {
541
+ hoursColumn.addEventListener('mouseenter', handleHoursMouseEnter);
542
+ }
543
+ if (minutesColumn) {
544
+ minutesColumn.addEventListener('mouseenter', handleMinutesMouseEnter);
545
+ }
546
+ if (secondsColumn) {
547
+ secondsColumn.addEventListener('mouseenter', handleSecondsMouseEnter);
548
+ }
549
+ return function() {
550
+ if (hoursColumn) {
551
+ hoursColumn.removeEventListener('mouseenter', handleHoursMouseEnter);
552
+ }
553
+ if (minutesColumn) {
554
+ minutesColumn.removeEventListener('mouseenter', handleMinutesMouseEnter);
555
+ }
556
+ if (secondsColumn) {
557
+ secondsColumn.removeEventListener('mouseenter', handleSecondsMouseEnter);
558
+ }
559
+ };
560
+ }, [
561
+ isInnerOpen,
562
+ showScrollbarWithDelay
326
563
  ]);
327
564
  var handleToggle = function() {
328
565
  if (disabled || readonly) return;
@@ -567,11 +804,17 @@ var timePickerRoot = function(Root) {
567
804
  labelPlacement: labelPlacement,
568
805
  keepPlaceholder: keepPlaceholder
569
806
  });
570
- var renderTimeColumn = function(values, column, columnRef) {
571
- return /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledTimeColumn, {
807
+ var renderTimeColumn = function(values, column, columnRef, scrollbarState, setScrollbar, scrollbarRef, thumbRef, timeoutRef) {
808
+ return /*#__PURE__*/ _react.default.createElement("div", {
809
+ style: {
810
+ position: 'relative',
811
+ width: '100%'
812
+ }
813
+ }, /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledTimeColumn, {
572
814
  key: column,
573
815
  ref: columnRef,
574
- height: dropdownHeight
816
+ height: dropdownHeight,
817
+ className: _TimePickertokens.classes.timeColumn
575
818
  }, values.map(function(value, index) {
576
819
  return /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledTimeItem, {
577
820
  key: value,
@@ -586,7 +829,17 @@ var timePickerRoot = function(Root) {
586
829
  return handleTimeItemKeyDown(e, column, value);
587
830
  }
588
831
  }, value);
589
- }));
832
+ }), /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledEmpty, null)), /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.CustomScrollbar, {
833
+ ref: scrollbarRef,
834
+ className: (0, _classnames.default)(_define_property({}, _TimePickertokens.classes.scrollbarVisible, scrollbarState.isVisible))
835
+ }, /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.ScrollbarTrack, null, /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.ScrollbarThumb, {
836
+ ref: thumbRef,
837
+ style: {
838
+ height: "".concat(scrollbarState.thumbHeight, "px"),
839
+ top: "".concat(scrollbarState.thumbPosition, "px")
840
+ },
841
+ onMouseDown: createScrollbarDragHandler(columnRef, setScrollbar, timeoutRef)
842
+ }))));
590
843
  };
591
844
  return /*#__PURE__*/ _react.default.createElement(Root, _object_spread({
592
845
  stretched: stretched,
@@ -619,7 +872,7 @@ var timePickerRoot = function(Root) {
619
872
  stretched: stretched
620
873
  }, /*#__PURE__*/ _react.default.createElement(_TimePickerstyles.StyledTimePicker, {
621
874
  width: dropdownWidth
622
- }, renderTimeColumn(hours, 'hours', hoursColumnRef), renderTimeColumn(minutes, 'minutes', minutesColumnRef), columnsQuantity === 3 && renderTimeColumn(seconds, 'seconds', secondsColumnRef)))));
875
+ }, 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)))));
623
876
  });
624
877
  };
625
878
  var timePickerConfig = {