@enact/limestone 1.9.3 → 1.10.1

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 (120) hide show
  1. package/.github/workflows/ci-reusable.yml +2 -2
  2. package/ActionGuide/ActionGuide.module.css +4 -0
  3. package/Alert/Alert.d.ts +9 -0
  4. package/Alert/Alert.js +35 -4
  5. package/Alert/Alert.module.css +12 -1
  6. package/Alert/tests/Alert-specs.js +91 -0
  7. package/BodyText/BodyText.module.css +21 -0
  8. package/Button/Button.module.css +72 -40
  9. package/Button/tests/Button-specs.js +26 -0
  10. package/CHANGELOG.md +74 -0
  11. package/Card/Card.d.ts +4 -4
  12. package/Card/Card.js +10 -8
  13. package/Card/Card.module.css +31 -7
  14. package/Card/tests/Card-specs.js +39 -5
  15. package/Checkbox/Checkbox.module.css +4 -0
  16. package/CheckboxItem/CheckboxItem.js +6 -4
  17. package/Chips/Chip.js +12 -6
  18. package/Chips/Chip.module.css +3 -0
  19. package/Chips/Chips.js +12 -6
  20. package/Chips/tests/Chip-specs.js +25 -5
  21. package/Chips/tests/Chips-specs.js +12 -2
  22. package/ColorPicker/ColorPicker.js +27 -25
  23. package/ContextualPopupDecorator/ContextualPopupDecorator.js +32 -22
  24. package/DayPicker/DaySelectorDecorator.js +12 -7
  25. package/Dropdown/Dropdown.module.css +4 -0
  26. package/Dropdown/DropdownList.js +74 -53
  27. package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
  28. package/Heading/Heading.d.ts +1 -1
  29. package/Heading/Heading.js +2 -2
  30. package/Heading/Heading.module.css +16 -0
  31. package/Icon/Icon.d.ts +1 -0
  32. package/Icon/Icon.js +1 -0
  33. package/Icon/Icon.module.css +12 -0
  34. package/Icon/IconList.js +2 -0
  35. package/IconItem/IconItem.module.css +19 -3
  36. package/IconItem/tests/IconItem-specs.js +30 -1
  37. package/Image/Image.js +6 -4
  38. package/ImageItem/ImageItem.module.css +17 -0
  39. package/Input/Input.js +12 -1
  40. package/Input/Input.module.css +25 -9
  41. package/Input/InputField.js +75 -24
  42. package/Input/InputField.module.css +280 -45
  43. package/Input/InputFieldDecoratorIcon.js +1 -0
  44. package/Input/InputFieldSpotlightDecorator.js +53 -8
  45. package/Input/index.d.ts +105 -93
  46. package/Input/tests/Input-specs.js +26 -0
  47. package/Input/tests/InputField-specs.js +149 -3
  48. package/Input/tests/InputPopup-specs.js +1 -1
  49. package/Item/Item.module.css +2 -1
  50. package/KeyGuide/KeyGuide.js +29 -27
  51. package/KeyGuide/KeyGuide.module.css +10 -0
  52. package/MediaOverlay/MediaOverlay.module.css +16 -4
  53. package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
  54. package/MediaPlayer/MediaControls.module.css +3 -0
  55. package/MediaPlayer/Times.module.css +4 -0
  56. package/MediaPlayer/tests/util-specs.js +4 -1
  57. package/PageViews/PageViews.js +134 -69
  58. package/PageViews/PageViews.module.css +7 -0
  59. package/PageViews/PageViewsRouter.js +91 -42
  60. package/PageViews/tests/PageViews-specs.js +87 -0
  61. package/Panels/Header.js +6 -4
  62. package/Panels/Header.module.css +37 -31
  63. package/Popup/Popup.js +5 -4
  64. package/PopupTabLayout/PopupTabLayout.js +11 -9
  65. package/PopupTabLayout/PopupTabLayout.module.css +18 -0
  66. package/RadioItem/RadioItem.js +7 -5
  67. package/RadioItem/RadioItem.module.css +5 -0
  68. package/Scroller/EditableWrapper.js +19 -15
  69. package/Scroller/Scroller.js +11 -10
  70. package/Scroller/Scroller.module.css +10 -0
  71. package/Scroller/tests/Scroller-specs.js +91 -2
  72. package/Scroller/useThemeScroller.js +6 -3
  73. package/Slider/Slider.d.ts +4 -0
  74. package/Slider/Slider.js +40 -16
  75. package/Slider/Slider.module.css +150 -3
  76. package/Slider/SliderBehaviorDecorator.js +16 -14
  77. package/Slider/tests/Slider-specs.js +51 -0
  78. package/Slider/utils.js +23 -7
  79. package/Spinner/Spinner.js +10 -8
  80. package/Steps/Steps.module.css +3 -0
  81. package/Switch/Switch.module.css +15 -1
  82. package/TabLayout/RefocusDecorator.js +14 -12
  83. package/TabLayout/TabGroup.module.css +1 -1
  84. package/TabLayout/tests/TabGroup-specs.js +1 -1
  85. package/ThemeDecorator/AccessibilityDecorator.js +12 -11
  86. package/ThemeDecorator/I18nFontDecorator.js +6 -4
  87. package/ThemeDecorator/ThemeDecorator.d.ts +7 -0
  88. package/ThemeDecorator/ThemeDecorator.js +24 -9
  89. package/TimePicker/TimePicker.module.css +3 -0
  90. package/TimePicker/TimePickerBase.js +5 -3
  91. package/TooltipDecorator/Tooltip.module.css +4 -0
  92. package/TooltipDecorator/TooltipDecorator.js +12 -7
  93. package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
  94. package/VideoPlayer/Feedback.module.css +3 -0
  95. package/VideoPlayer/FeedbackTooltip.module.css +7 -0
  96. package/VideoPlayer/MediaTitle.module.css +8 -0
  97. package/VideoPlayer/VideoPlayer.js +25 -24
  98. package/VirtualList/VirtualList.js +20 -18
  99. package/VirtualList/useSpotlight.js +1 -1
  100. package/fonts/Limestone_Icons.ttf +0 -0
  101. package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
  102. package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
  103. package/internal/DateTime/DateTime.module.css +3 -0
  104. package/internal/DateTime/DateTimeDecorator.js +5 -4
  105. package/internal/Panels/PanelsRouter.js +35 -29
  106. package/internal/Panels/useAutoFocus.js +10 -6
  107. package/internal/Panels/useFocusOnTransition.js +4 -3
  108. package/internal/Picker/Picker.js +7 -5
  109. package/internal/Picker/Picker.module.css +22 -0
  110. package/internal/Picker/SpottablePicker.js +15 -13
  111. package/internal/SharedStateDecorator/SharedStateDecorator.js +6 -4
  112. package/package.json +15 -12
  113. package/styles/colors.less +1 -0
  114. package/styles/variables.less +118 -26
  115. package/useScroll/HoverToScroll.js +15 -12
  116. package/useScroll/Scrollbar.js +14 -10
  117. package/useScroll/ScrollbarPlaceholder.js +4 -1
  118. package/useScroll/ScrollbarTrack.js +7 -5
  119. package/useScroll/useEvent.js +7 -2
  120. package/useScroll/useScroll.js +10 -2
@@ -69,7 +69,9 @@
69
69
  standard-title-line-height: 144px;
70
70
  standard-titles-gap: 18px;
71
71
  standard-subtitle-font-size: 54px;
72
+ standard-subtitle-font-size-large: 66px;
72
73
  standard-subtitle-line-height: 72px;
74
+ standard-subtitle-line-height-large: 84px;
73
75
 
74
76
  wizard-padding: 156px 132px 6px 132px;
75
77
  wizard-title-font-size: 108px;
@@ -115,71 +117,110 @@
115
117
  // Font Sizes
116
118
  // ---------------------------------------
117
119
  @lime-actionguide-label-font-size: var(--primitive-font-size-48);
120
+ @lime-actionguide-label-font-size-large: var(--primitive-font-size-60);
118
121
  @lime-actionguide-label-font-weight: var(--primitive-font-weight-regular);
119
122
  @lime-alert-overlay-font-size: var(--primitive-font-size-60);
120
123
  @lime-alert-subtitle-font-size: @lime-heading-subtitle-font-size;
121
124
  @lime-alert-title-font-size: var(--primitive-font-size-108);
122
125
  @lime-base-font-size: var(--primitive-font-size-60);
126
+ @lime-base-font-size-large: var(--primitive-font-size-72);
123
127
  @lime-body-font-size: @lime-base-font-size;
128
+ @lime-body-font-size-large: @lime-base-font-size-large;
124
129
  @lime-body-small-font-size: var(--primitive-font-size-54);
125
- @lime-button-font-size-large: var(--primitive-font-size-96);
130
+ @lime-body-small-font-size-large: var(--primitive-font-size-66);
131
+ @lime-button-font-size-large: var(--primitive-font-size-72);
126
132
  @lime-button-font-size: var(--primitive-font-size-60);
127
- @lime-button-small-font-size-large: var(--primitive-font-size-72);
133
+ @lime-button-small-font-size-large: var(--primitive-font-size-66);
128
134
  @lime-button-small-font-size: var(--primitive-font-size-54);
129
135
  @lime-card-caption-font-size: var(--primitive-font-size-60);
136
+ @lime-card-caption-font-size-large: var(--primitive-font-size-72);
130
137
  @lime-card-label-font-size: var(--primitive-font-size-48);
138
+ @lime-card-label-font-size-large: var(--primitive-font-size-58);
131
139
  @lime-card-split-caption-label-font-size: var(--primitive-font-size-60);
140
+ @lime-card-split-caption-label-font-size-large: var(--primitive-font-size-72);
132
141
  @lime-header-compact-title-font-size: #guide.header[compact-title-font-size];
133
142
  @lime-header-mini-title-font-size: #guide.header[mini-title-font-size];
134
143
  @lime-header-wizard-title-font-size: #guide.header[wizard-title-font-size];
135
144
  @lime-heading-large-font-size: var(--primitive-font-size-72);
145
+ @lime-heading-large-font-size-large: var(--primitive-font-size-86);
136
146
  @lime-heading-medium-font-size: var(--primitive-font-size-66);
147
+ @lime-heading-medium-font-size-large: var(--primitive-font-size-80);
137
148
  @lime-heading-small-font-size: var(--primitive-font-size-54);
149
+ @lime-heading-small-font-size-large: var(--primitive-font-size-66);
138
150
  @lime-heading-tiny-font-size: var(--primitive-font-size-48);
151
+ @lime-heading-tiny-font-size-large: var(--primitive-font-size-58);
139
152
  @lime-heading-subtitle-font-size: #guide.header[standard-subtitle-font-size];
153
+ @lime-heading-subtitle-font-size-large: #guide.header[standard-subtitle-font-size-large];
140
154
  @lime-heading-title-font-size: #guide.header[standard-title-font-size];
141
155
  @lime-iconitem-label-font-size: var(--primitive-font-size-42);
156
+ @lime-iconitem-label-font-size-large: var(--primitive-font-size-50);
142
157
  @lime-iconitem-title-font-size: var(--primitive-font-size-48);
158
+ @lime-iconitem-title-font-size-large: var(--primitive-font-size-58);
143
159
  @lime-imageitem-caption-font-size: var(--primitive-font-size-60);
160
+ @lime-imageitem-caption-font-size-large: var(--primitive-font-size-72);
144
161
  @lime-imageitem-label-font-size: var(--primitive-font-size-48);
162
+ @lime-imageitem-label-font-size-large: var(--primitive-font-size-58);
145
163
  @lime-input-font-size: var(--primitive-font-size-78);
164
+ @lime-input-font-size-large: var(--primitive-font-size-94);
146
165
  @lime-input-keypad-key-font-size: var(--primitive-font-size-90);
166
+ @lime-input-keypad-key-font-size-large: var(--primitive-font-size-108);
147
167
  @lime-input-fullscreen-title-font-size: var(--primitive-font-size-108);
148
168
  @lime-input-fullscreen-numbercell-font-size: 126px;
149
169
  @lime-input-fullscreen-numbercell-password-font-size: var(--primitive-font-size-48);
170
+ @lime-input-fullscreen-numbercell-password-font-size-large: var(--primitive-font-size-56);
150
171
  @lime-input-fullscreen-numberfield-font-size: @lime-input-font-size;
172
+ @lime-input-fullscreen-numberfield-font-size-large: @lime-input-font-size-large;
151
173
  @lime-input-overlay-title-font-size: var(--primitive-font-size-90);
152
174
  @lime-input-overlay-numbercell-font-size: var(--primitive-font-size-108);
153
175
  @lime-input-overlay-numbercell-password-font-size: var(--primitive-font-size-40);
176
+ @lime-input-overlay-numbercell-password-font-size-large: var(--primitive-font-size-48);
154
177
  @lime-input-overlay-numberfield-font-size: @lime-input-font-size;
178
+ @lime-input-overlay-numberfield-font-size-large: @lime-input-font-size-large;
155
179
  @lime-input-invalid-tooltip-font-size: @lime-inputfield-invalid-tooltip-font-size;
156
180
  @lime-inputfield-invalid-tooltip-font-size: var(--primitive-font-size-48);
181
+ @lime-input-invalid-tooltip-font-size-large: @lime-inputfield-invalid-tooltip-font-size-large;
182
+ @lime-inputfield-invalid-tooltip-font-size-large: var(--primitive-font-size-58);
157
183
  @lime-inputfield-small-font-size: var(--primitive-font-size-60);
184
+ @lime-inputfield-small-font-size-large: var(--primitive-font-size-72);
158
185
  @lime-item-font-size: var(--primitive-font-size-60);
159
186
  @lime-item-font-size-large: var(--primitive-font-size-72);
160
187
  @lime-item-label-font-size: var(--primitive-font-size-48);
161
- @lime-item-label-font-size-large: var(--primitive-font-size-54);
188
+ @lime-item-label-font-size-large: var(--primitive-font-size-58);
162
189
  @lime-item-small-font-size: var(--primitive-font-size-60);
163
190
  @lime-item-small-font-size-large: var(--primitive-font-size-72);
164
191
  @lime-item-small-label-font-size: var(--primitive-font-size-48);
165
192
  @lime-keyguide-font-size: var(--primitive-font-size-60);
193
+ @lime-keyguide-font-size-large: var(--primitive-font-size-72);
166
194
  @lime-mediaoverlay-caption-font-size: var(--primitive-font-size-60);
195
+ @lime-mediaoverlay-caption-font-size-large: var(--primitive-font-size-72);
167
196
  @lime-mediaoverlay-text-font-size: var(--primitive-font-size-48);
197
+ @lime-mediaoverlay-text-font-size-large: var(--primitive-font-size-60);
168
198
  @lime-mediaoverlay-subtitle-font-size: var(--primitive-font-size-48);
199
+ @lime-mediaoverlay-subtitle-font-size-large: var(--primitive-font-size-58);
169
200
  @lime-mediaplayer-times-text-size: var(--primitive-font-size-48);
201
+ @lime-mediaplayer-times-text-size-large: var(--primitive-font-size-58);
202
+ @lime-pageviews-number-steps-number-font-size: @lime-base-font-size;
203
+ @lime-pageviews-number-steps-number-font-size-large: @lime-base-font-size-large;
170
204
  @lime-picker-font-size: var(--primitive-font-size-54);
205
+ @lime-picker-font-size-large: var(--primitive-font-size-66);
171
206
  @lime-picker-joined-font-size: var(--primitive-font-size-66);
207
+ @lime-picker-joined-font-size-large: var(--primitive-font-size-80);
172
208
  @lime-radioitem-icon-font-size: var(--primitive-font-size-48);
209
+ @lime-radioitem-icon-font-size-large: var(--primitive-font-size-56);
173
210
  @lime-steps-step-number-font-size: var(--primitive-font-size-48);
211
+ @lime-steps-step-number-font-size-large: var(--primitive-font-size-58);
174
212
  @lime-switch-icon-font-size: var(--primitive-font-size-84);
175
- @lime-switch-icon-font-size-large: 138px;
176
213
  @lime-tablayout-tab-small-font-size: var(--primitive-font-size-48);
177
214
  @lime-tablayout-tab-font-size: var(--primitive-font-size-60);
215
+ @lime-tablayout-tab-font-size-large: var(--primitive-font-size-72);
178
216
  @lime-tooltip-label-font-size: var(--primitive-font-size-54);
217
+ @lime-tooltip-label-font-size-large: var(--primitive-font-size-66);
179
218
  @lime-tallglyph-alert-title-font-size: @lime-alert-title-font-size;
180
219
  @lime-non-latin-body-font-size: var(--primitive-font-size-54);
181
220
  @lime-non-latin-body-small-font-size: var(--primitive-font-size-48);
221
+ @lime-non-latin-body-small-font-size-large: var(--primitive-font-size-60);
182
222
  @lime-tallglyph-body-small-font-size: var(--primitive-font-size-48);
223
+ @lime-tallglyph-body-small-font-size-large: var(--primitive-font-size-60);
183
224
  @lime-non-latin-button-large-font-size: var(--primitive-font-size-54);
184
225
  @lime-non-latin-button-small-font-size: var(--primitive-font-size-48);
185
226
  @lime-non-latin-header-compact-title-font-size: @lime-header-compact-title-font-size;
@@ -251,6 +292,7 @@
251
292
  @lime-heading-subtitle-font-family: @lime-font-family;
252
293
  @lime-heading-subtitle-font-weight: var(--primitive-font-weight-regular);
253
294
  @lime-heading-subtitle-line-height: @lime-heading-title-line-height;
295
+ @lime-heading-subtitle-line-height-large: #guide.header[standard-subtitle-line-height-large];
254
296
  @lime-heading-large-font-family: @lime-font-family;
255
297
  @lime-heading-large-font-weight: @lime-spottable-font-weight;
256
298
  @lime-heading-medium-font-family: @lime-heading-large-font-family;
@@ -293,6 +335,7 @@
293
335
  @lime-item-line-height: @lime-common-line-height;
294
336
  @lime-item-line-height-large: @lime-item-line-height;
295
337
  @lime-item-label-line-height: 1.25em;
338
+ @lime-item-label-line-height-large: 1.2em;
296
339
  @lime-item-small-font-weight: @lime-item-font-weight;
297
340
  @lime-item-small-label-font-weight: @lime-item-label-font-weight;
298
341
  @lime-item-small-line-height: @lime-common-line-height;
@@ -317,6 +360,7 @@
317
360
  // ---------------------------------------
318
361
  @lime-actionguide-max-width: 1500px;
319
362
  @lime-actionguide-label-height: 60px;
363
+ @lime-actionguide-label-height-large: 70px;
320
364
  @lime-actionguide-icon-height: 84px;
321
365
  @lime-actionguide-icon-margin: 0 0 ~"calc("var(--primitive-spacing-12) ~"* -1)" 0;
322
366
  @lime-actionguide-padding: var(--primitive-spacing-12) 0 var(--primitive-spacing-36) 0;
@@ -335,6 +379,7 @@
335
379
  @lime-alert-overlay-body-padding: 0 var(--primitive-spacing-84);
336
380
  @lime-alert-overlay-image-padding: 0 var(--primitive-spacing-84);
337
381
  @lime-alert-overlay-width: 1128px;
382
+ @lime-alert-overlay-max-width: calc(100vw - 2 * @lime-popup-position-corner-margin);
338
383
 
339
384
  // AlertImage
340
385
  // ---------------------------------------
@@ -358,8 +403,8 @@
358
403
  @lime-button-margin: var(--primitive-spacing-36);
359
404
  @lime-button-focusexpand-margin: 9px .extract(@lime-button-margin, right)[]; // 9px provides enough space for the expanded focus state
360
405
  @lime-button-h-padding: var(--primitive-spacing-60);
361
- @lime-button-height-large: 192px;
362
406
  @lime-button-height: 132px;
407
+ @lime-button-height-large: @lime-button-height;
363
408
  @lime-button-icon-h-margin: var(--primitive-spacing-24);
364
409
  @lime-button-icon-margin-end: @lime-button-icon-h-margin;
365
410
  @lime-button-icon-margin-start: 0;
@@ -379,25 +424,29 @@
379
424
  @lime-button-small-margin: var(--primitive-spacing-24);
380
425
  @lime-button-small-focusexpand-margin: @lime-button-focusexpand-margin;
381
426
  @lime-button-small-h-padding: var(--primitive-spacing-60);
382
- @lime-button-small-height-large: 144px;
383
427
  @lime-button-small-height: 108px;
428
+ @lime-button-small-height-large: @lime-button-small-height;
384
429
  @lime-button-small-max-width: 1020px;
385
430
  @lime-button-small-min-width: 264px;
386
431
  @lime-button-small-min-width-default: 720px;
387
432
  @lime-button-colordot-bottom: var(--primitive-spacing-12);
388
433
  @lime-button-colordot-border-radius: var(--semantic-radius-full);
389
434
  @lime-button-colordot-width: 60px;
435
+ @lime-button-colordot-width-font-size-large: 72px;
390
436
  @lime-button-colordot-h-margin: var(--primitive-spacing-84);
391
- @lime-button-colordot-height: 12px;
437
+ @lime-button-colordot-height: 24px;
438
+ @lime-button-colordot-height-font-size-large: 30px;
392
439
  @lime-button-colordot-h-padding: var(--primitive-spacing-24);
393
440
  @lime-button-colordot-padding-start: var(--primitive-spacing-36);
394
441
  @lime-button-small-colordot-bottom: var(--primitive-spacing-12);
395
442
  @lime-button-small-colordot-width: 51px;
443
+ @lime-button-small-colordot-width-font-size-large: 60px;
396
444
  @lime-button-small-colordot-h-margin: var(--primitive-spacing-72);
397
- @lime-button-small-colordot-height: 9px;
445
+ @lime-button-small-colordot-height: 21px;
446
+ @lime-button-small-colordot-height-font-size-large: 24px;
398
447
  @lime-button-small-colordot-padding-start: var(--primitive-spacing-30);
399
- @lime-button-icon-only-colordot-width: 66px;
400
- @lime-button-icon-only-colordot-height: 9px;
448
+ @lime-button-icon-only-colordot-width: 30px;
449
+ @lime-button-icon-only-colordot-height: 12px;
401
450
  @lime-button-collapse-duration: 300ms;
402
451
  @lime-button-collapsable-icon-margin: 0 var(--primitive-spacing-24);
403
452
 
@@ -407,20 +456,25 @@
407
456
  @lime-card-border-radius: var(--semantic-radius-container);
408
457
  @lime-card-image-border-width: 6px;
409
458
  @lime-card-resting-border-width: 3px;
410
- @lime-card-selection-check-icon-size: 90px;
411
- @lime-card-selection-icon-size: 120px;
459
+ @lime-card-selection-check-icon-size: 48px;
460
+ @lime-card-selection-check-icon-size-large: 58px;
461
+ @lime-card-selection-icon-size: 144px;
462
+ @lime-card-selection-icon-size-large: (@lime-card-selection-icon-size * 1.2);
412
463
  @lime-card-selection-icon-border-radius: 50%;
413
464
  @lime-card-selection-icon-margin: 0;
414
- @lime-card-selection-check-icon-line-height: 90px;
415
- @lime-card-selection-icon-line-height: 144px;
465
+ @lime-card-selection-check-icon-container-large: 72px;
466
+ @lime-card-selection-check-icon-line-height: 60px;
467
+ @lime-card-selection-check-icon-line-height-large: 70px;
468
+ @lime-card-selection-icon-line-height: 180px;
416
469
  @lime-card-badge-size: 108px;
417
470
  @lime-card-badge-margin: 0;
418
471
  @lime-card-badge-top: var(--primitive-spacing-24);
419
472
  @lime-card-badge-left: var(--primitive-spacing-24);
420
473
  @lime-card-badge-right: var(--primitive-spacing-24);
421
474
  @lime-card-caption-line-height: 84px;
475
+ @lime-card-caption-line-height-large: 100px;
422
476
  @lime-card-label-line-height: 60px;
423
- @lime-card-split-caption-label-line-height: 84px;
477
+ @lime-card-label-line-height-large: 70px;
424
478
  @lime-card-split-caption-label-padding: 0 var(--primitive-spacing-48);
425
479
  @lime-card-split-caption-lower-label-padding: var(--primitive-spacing-18);
426
480
  @lime-card-vertical-captions-padding: var(--primitive-spacing-36) 0;
@@ -477,7 +531,9 @@
477
531
  // Date and Time Picker
478
532
  @lime-datecomponentpicker-margin: 0 var(--primitive-spacing-24);
479
533
  @lime-datetime-fontsize: var(--primitive-font-size-66);
534
+ @lime-datetime-fontsize-large: var(--primitive-font-size-80);
480
535
  @lime-datetime-heading-margin: 0 0 var(--primitive-spacing-132);
536
+ @lime-timepicker-colon-fontsize-large: var(--primitive-font-size-72);
481
537
  @lime-timepicker-colon-margin: 0 var(--primitive-spacing-6);
482
538
 
483
539
  // Dropdown
@@ -600,8 +656,8 @@
600
656
  @lime-header-compact-titles-row-padding: 0 0 #guide.header[compact-subtitle-height];
601
657
  @lime-header-compact-subtitle-padding: 0;
602
658
  @lime-header-compact-subtitle-margin-top: (#guide.header[compact-subtitle-height] - #guide.header[compact-subtitle-line-height]);
603
- @lime-header-compact-slotbefore-margin-end: var(--primitive-spacing-24);
604
- @lime-header-compact-slotafter-margin-start: var(--primitive-spacing-30);
659
+ @lime-header-compact-slotbefore-margin-end: var(--primitive-spacing-12);
660
+ @lime-header-compact-slotafter-margin-start: var(--primitive-spacing-12);
605
661
  @lime-header-mini-margin:
606
662
  var(--primitive-spacing-6)
607
663
  @lime-component-spacing
@@ -627,6 +683,8 @@
627
683
  )[@result]
628
684
  )
629
685
  .extract(#guide.header[mini-padding], left)[];
686
+ @lime-header-mini-slotbefore-margin-end: var(--primitive-spacing-12);
687
+ @lime-header-mini-slotafter-margin-start: var(--primitive-spacing-12);
630
688
  @lime-header-wizard-nosubtitle-padding-bottom: ~"calc(@{lime-header-subtitle-height} + var(--primitive-spacing-6))";
631
689
  @lime-header-wizard-margin: 0;
632
690
  @lime-header-wizard-padding:
@@ -664,30 +722,37 @@
664
722
  // Icon
665
723
  // ---------------------------------------
666
724
  @lime-icon-large-size: 84px;
725
+ @lime-icon-large-size-large: (@lime-icon-large-size * 1.2);
667
726
  @lime-icon-medium-size: 78px;
727
+ @lime-icon-medium-size-large: (@lime-icon-medium-size * 1.2);
668
728
  @lime-icon-small-size: 72px;
729
+ @lime-icon-small-size-large: (@lime-icon-small-size * 1.2);
669
730
  @lime-icon-tiny-size: 60px;
731
+ @lime-icon-tiny-size-large: (@lime-icon-tiny-size * 1.2);
670
732
  @lime-icon-margin: var(--primitive-spacing-24);
671
- @lime-icon-large-size-large: (@lime-icon-large-size * 1.2);
672
- @lime-icon-small-size-large: (@lime-icon-small-size * 1.2);
673
733
 
674
734
  // IconItem
675
735
  // ---------------------------------------
676
736
  @lime-iconitem-height: 256px;
677
737
  @lime-iconitem-width: 334px;
678
738
  @lime-iconitem-title-height: ~"calc("@lime-iconitem-height ~"+ "@lime-iconitem-title-line-height ~"+ 24px)";
739
+ @lime-iconitem-title-height-large: ~"calc("@lime-iconitem-height ~"+ "@lime-iconitem-title-line-height-large ~"+ 24px)";
679
740
  @lime-iconitem-border-radius: var(--semantic-radius-container);
680
741
  @lime-iconitem-border-style: solid;
681
742
  @lime-iconitem-border-width: 4px;
682
743
  @lime-iconitem-icon-margin: 0;
683
744
  @lime-iconitem-icon-height: 120px;
745
+ @lime-iconitem-icon-height-large: 146px;
684
746
  @lime-iconitem-icon-width: @lime-iconitem-icon-height;
747
+ @lime-iconitem-icon-width-large: @lime-iconitem-icon-height-large;
685
748
  @lime-iconitem-image-height: 230px;
686
749
  @lime-iconitem-image-width: @lime-iconitem-image-height;
687
750
  @lime-iconitem-label-image-height: ~"calc("@lime-iconitem-height ~"- "@lime-iconitem-label-line-height ~"- 24px)";
688
751
  @lime-iconitem-label-line-height: 54px;
752
+ @lime-iconitem-label-line-height-large: 64px;
689
753
  @lime-iconitem-label-padding: 0 var(--primitive-spacing-12);
690
754
  @lime-iconitem-title-line-height: 60px;
755
+ @lime-iconitem-title-line-height-large: 70px;
691
756
  @lime-iconitem-title-margin: var(--primitive-spacing-24) 0 0 0;
692
757
 
693
758
  // ImageItem
@@ -696,7 +761,9 @@
696
761
  @lime-imageitem-border-radius: var(--semantic-radius-button);
697
762
  @lime-imageitem-image-border-width: 6px;
698
763
  @lime-imageitem-caption-line-height: 84px;
764
+ @lime-imageitem-caption-line-height-large: 100px;
699
765
  @lime-imageitem-label-line-height: 60px;
766
+ @lime-imageitem-label-line-height-large: 70px;
700
767
  @lime-imageitem-placeholder-caption-height: 102px;
701
768
  @lime-imageitem-placeholder-label-height: 66px;
702
769
  @lime-imageitem-horizontal-padding: var(--primitive-spacing-30);
@@ -717,7 +784,9 @@
717
784
  @lime-imageitem-vertical-focus-image-transform: scale(1.1);
718
785
  @lime-imageitem-vertical-image-icon-margin: 0 var(--primitive-spacing-24) 0 0;
719
786
  @lime-imageitem-vertical-image-icon-size: 132px;
787
+ @lime-imageitem-vertical-image-icon-size-large: (@lime-imageitem-vertical-image-icon-size * 1.2);
720
788
  @lime-imageitem-vertical-selection-icon-size: 120px;
789
+ @lime-imageitem-vertical-selection-icon-size-large: (@lime-imageitem-vertical-selection-icon-size * 1.2);
721
790
 
722
791
  // Input
723
792
  // ---------------------------------------
@@ -780,6 +849,7 @@
780
849
  @lime-input-overlay-title-margin: 0 var(--primitive-spacing-144) 0 var(--primitive-spacing-144);
781
850
  @lime-input-invalid-tooltip-margin-top: var(--primitive-spacing-24);
782
851
  @lime-input-invalid-tooltip-line-height: 60px;
852
+ @lime-input-invalid-tooltip-line-height-large: 70px;
783
853
 
784
854
  // InputField
785
855
  // ---------------------------------------
@@ -791,11 +861,14 @@
791
861
  @lime-inputfield-text-indent: 0.2em;
792
862
  @lime-inputfield-border-radius: var(--semantic-radius-button);
793
863
  @lime-inputfield-invalid-tooltip-margin-top: var(--primitive-spacing-30);
864
+ @lime-inputfield-invalid-tooltip-line-height: @lime-input-invalid-tooltip-line-height;
865
+ @lime-inputfield-invalid-tooltip-line-height-large: @lime-input-invalid-tooltip-line-height-large;
794
866
  @lime-inputfield-height: 168px;
795
867
  @lime-inputfield-width: 1560px;
796
868
  @lime-inputfield-withoneicon-width: 1386px;
797
869
  @lime-inputfield-withtwoicons-width: 1272px;
798
870
  @lime-inputfield-small-height: 132px;
871
+ @lime-inputfield-small-height-large: 156px;
799
872
  @lime-inputfield-highlight-height: 100%;
800
873
  @lime-inputfield-small-width: 1200px;
801
874
  @lime-inputfield-small-withoneicon-width: 990px;
@@ -821,8 +894,10 @@
821
894
  // Keyguide
822
895
  // ---------------------------------------
823
896
  @lime-keyguide-colordot-height: 12px;
897
+ @lime-keyguide-colordot-height-large: calc(@lime-keyguide-colordot-height * 1.2);
824
898
  @lime-keyguide-colordot-margin: 0 ((@lime-icon-large-size - @lime-keyguide-colordot-width) / 2); // Keep this centered by adapting its margins
825
899
  @lime-keyguide-colordot-width: 60px;
900
+ @lime-keyguide-colordot-width-large: calc(@lime-keyguide-colordot-width * 1.2);
826
901
  @lime-keyguide-colordot-border-radius: var(--semantic-radius-full);
827
902
  @lime-keyguide-font-weight: var(--primitive-font-weight-regular);
828
903
  @lime-keyguide-icon-border-radius: var(--semantic-radius-container);
@@ -849,7 +924,8 @@
849
924
  @lime-mediaoverlay-caption-margin-bottom: var(--primitive-spacing-36);
850
925
  @lime-mediaoverlay-caption-font-weight: var(--primitive-font-weight-semibold);
851
926
  @lime-mediaoverlay-font-weight: var(--primitive-font-weight-regular);
852
- @lime-mediaoverlay-line-height: 1.3em;
927
+ @lime-mediaoverlay-line-height: 60px;
928
+ @lime-mediaoverlay-line-height-large: 70px;
853
929
  @lime-mediaoverlay-caption-line-height: 1.4em;
854
930
  @lime-mediaoverlay-padding: var(--primitive-spacing-24);
855
931
  @lime-mediaoverlay-progressbar-margin: var(--primitive-spacing-24);
@@ -864,6 +940,7 @@
864
940
  @lime-mediaplayer-button-border-radius: 96px;
865
941
  @lime-mediaplayer-button-height: 180px;
866
942
  @lime-mediaplayer-button-icon-size: 108px;
943
+ @lime-mediaplayer-button-icon-size-large: 130px;
867
944
  @lime-mediaplayer-button-padding: var(--primitive-spacing-36);
868
945
  @lime-mediaplayer-controls-actionguide-height: 168px;
869
946
  @lime-mediaplayer-controls-actionguide-padding-bottom: 0;
@@ -880,6 +957,7 @@
880
957
  @lime-mediaplayer-slider-knob-size: 36px;
881
958
  @lime-mediaplayer-slider-tap-area: 60px;
882
959
  @lime-mediaplayer-times-line-height: 60px;
960
+ @lime-mediaplayer-times-line-height-large: 70px;
883
961
  @lime-mediaplayer-times-min-width: 192px;
884
962
 
885
963
  // PageViews
@@ -917,6 +995,7 @@
917
995
  @lime-picker-item-padding: 0 @lime-spotlight-outset;
918
996
  @lime-picker-focus-duration: @lime-spotlight-focus-animation-duration;
919
997
  @lime-picker-value-height: 72px;
998
+ @lime-picker-value-height-large: 84px;
920
999
  @lime-picker-vertical-height: 362px;
921
1000
  @lime-picker-vertical-large-value-width: 696px;
922
1001
  @lime-picker-joined-horizontal-border-radius: var(--semantic-radius-full);
@@ -926,13 +1005,16 @@
926
1005
  @lime-picker-joined-horizontal-value-margin: 0 0 var(--primitive-spacing-48) 0;
927
1006
  @lime-picker-joined-vertical-border-radius: var(--semantic-radius-button);
928
1007
  @lime-picker-joined-value-height: 90px;
1008
+ @lime-picker-joined-value-height-large: 110px;
929
1009
  @lime-picker-small-value-width: (@lime-icon-large-size + (@lime-spotlight-outset * 3));
930
1010
  @lime-picker-medium-value-width: 360px;
931
1011
  @lime-picker-large-value-width: 468px;
932
1012
  @lime-picker-incrementer-margin: var(--primitive-spacing-36);
933
1013
  @lime-picker-incrementer-width: 120px;
934
1014
  @lime-picker-indicator-width: 24px;
1015
+ @lime-picker-indicator-width-large: calc(@lime-picker-indicator-width * 1.2);
935
1016
  @lime-picker-indicator-height: 24px;
1017
+ @lime-picker-indicator-height-large: calc(@lime-picker-indicator-height * 1.2);
936
1018
  @lime-picker-indicator-border-radius: @lime-picker-indicator-width;
937
1019
  @lime-picker-indicator-inactive-scale: 0.75;
938
1020
  @lime-picker-indicator-active-scale: 1;
@@ -953,6 +1035,7 @@
953
1035
  // ---------------------------------------
954
1036
  @lime-popuptablayout-margin: var(--primitive-spacing-60) auto var(--primitive-spacing-132) var(--primitive-spacing-60);
955
1037
  @lime-popuptablayout-tab-icon-size: 96px;
1038
+ @lime-popuptablayout-tab-icon-size-large: (@lime-popuptablayout-tab-icon-size * 1.2);
956
1039
  @lime-popuptablayout-tabs-border-radius: var(--semantic-radius-container);
957
1040
  @lime-popuptablayout-tabs-content-spacing: var(--primitive-spacing-36);
958
1041
  @lime-popuptablayout-content-border-radius: var(--semantic-radius-popup);
@@ -1054,7 +1137,6 @@
1054
1137
  @lime-slider-knob-height: @lime-slider-knob-width;
1055
1138
  @lime-slider-knob-height-large: @lime-slider-knob-height;
1056
1139
  @lime-slider-tooltip-offset: (@lime-slider-knob-height / 2);
1057
- @lime-slider-knob-resting-state-scale: 1;
1058
1140
  @lime-slider-min-max-margin-top: var(--primitive-spacing-24);
1059
1141
  @lime-slider-min-max-font-size: var(--primitive-font-size-48);
1060
1142
  @lime-slider-min-max-font-weight: var(--primitive-font-weight-regular);
@@ -1094,16 +1176,17 @@
1094
1176
 
1095
1177
  // Switch
1096
1178
  // ---------------------------------------
1097
- @lime-switch-border-radius: var(--primitive-radius-30);
1179
+ @lime-switch-border-radius: var(--primitive-radius-999);
1098
1180
  @lime-switch-height: 60px;
1099
1181
  @lime-switch-width: 120px;
1100
1182
  @lime-switch-icon-height: 48px;
1183
+ @lime-switch-icon-height-large: 57px;
1101
1184
  @lime-switch-icon-line-height: @lime-switch-height;
1102
- @lime-switch-height-large: @lime-icon-small-size-large;
1103
- @lime-switch-width-large: 162px;
1104
- @lime-switch-icon-height-large: @lime-icon-small-size-large;
1105
- @lime-switch-icon-line-height-large: @lime-switch-icon-height-large;
1185
+ @lime-switch-icon-line-height-large: @lime-switch-height-large;
1186
+ @lime-switch-height-large: 72px;
1187
+ @lime-switch-width-large: 144px;
1106
1188
  @lime-switch-icon-top: ((@lime-switch-height - @lime-switch-icon-height) / 2);
1189
+ @lime-switch-icon-top-large: ((@lime-switch-height-large - @lime-switch-icon-height-large) / 2);
1107
1190
  @lime-switch-spottable-margin: @lime-component-spacing;
1108
1191
  @lime-switch-spottable-border-radius: var(--primitive-radius-24);
1109
1192
  @lime-switch-spottable-position: ~"calc(@{lime-component-spacing} * -1)"; // These correlate with the numbers from 'margin" above
@@ -1144,6 +1227,7 @@
1144
1227
  @lime-tooltip-point-height: 37px; // actual value is 36px. +1px to ensure no gaps
1145
1228
  @lime-tooltip-border-radius: var(--semantic-radius-button);
1146
1229
  @lime-tooltip-label-line-height: 72px;
1230
+ @lime-tooltip-label-line-height-large: 84px;
1147
1231
  @lime-tooltip-padding: var(--primitive-spacing-12) var(--primitive-spacing-48);
1148
1232
  @lime-tooltip-margin-offset: var(--primitive-spacing-18); // GUI for the length of the arrow
1149
1233
  @lime-tooltip-marquee-width: 600px;
@@ -1160,10 +1244,13 @@
1160
1244
  @lime-video-slider-tooltip-shift-position-bottom: ~"calc(@{lime-video-slider-tooltip-position-bottom} + @{lime-video-slider-tooltip-arrow-border-top})";
1161
1245
  @lime-video-slider-tooltip-margin-bottom: var(--primitive-spacing-6);
1162
1246
  @lime-video-slider-tooltip-font-size: var(--primitive-font-size-48);
1247
+ @lime-video-slider-tooltip-font-size-large: var(--primitive-font-size-58);
1163
1248
  @lime-video-slider-tooltip-font-weight: var(--primitive-font-weight-regular);
1164
1249
  @lime-video-slider-tooltip-line-height: 72px;
1250
+ @lime-video-slider-tooltip-line-height-large: 84px;
1165
1251
  @lime-video-slider-tooltip-gutter-width: var(--primitive-spacing-42);
1166
1252
  @lime-video-slider-tooltip-thumbnail-content-font-size: var(--primitive-font-size-54);
1253
+ @lime-video-slider-tooltip-thumbnail-content-font-size-large: var(--primitive-font-size-56);
1167
1254
  @lime-video-slider-tooltip-thumbnail-content-margin-bottom: var(--primitive-spacing-30);
1168
1255
  @lime-video-slider-tooltip-thumbnail-border-radius: var(--primitive-radius-12);
1169
1256
  @lime-video-slider-tooltip-thumbnail-border-width: 12px;
@@ -1171,6 +1258,7 @@
1171
1258
  @lime-video-slider-tooltip-thumbnail-height: 240px;
1172
1259
  @lime-video-slider-tooltip-deactivated-thumbnail-opacity: 0.5;
1173
1260
  @lime-video-feedback-icon-font-size: 1.25em;
1261
+ @lime-video-feedback-icon-font-size-large: 1.5em;
1174
1262
  @lime-video-feedback-mini-font-size: var(--primitive-font-size-66);
1175
1263
  @lime-video-feedback-mini-font-weight: var(--primitive-font-weight-regular);
1176
1264
  @lime-video-feedback-mini-padding: var(--primitive-spacing-18) var(--primitive-spacing-60);
@@ -1181,9 +1269,11 @@
1181
1269
  @lime-video-feedback-message-font-weight: var(--primitive-font-weight-semibold);
1182
1270
  @lime-video-player-badge-text-size: var(--primitive-font-size-48);
1183
1271
  @lime-video-player-info-font-size: var(--primitive-font-size-54);
1272
+ @lime-video-player-info-font-size-large: var(--primitive-font-size-66);
1184
1273
  @lime-video-player-info-font-weight: var(--primitive-font-weight-regular);
1185
1274
  @lime-video-player-info-height: 84px;
1186
1275
  @lime-video-player-info-line-height: 72px;
1276
+ @lime-video-player-info-line-height-large: 84px;
1187
1277
  @lime-video-player-info-padding: var(--primitive-spacing-72) var(--primitive-spacing-48) 0;
1188
1278
  @lime-video-player-info-margin-bottom: var(--primitive-spacing-60);
1189
1279
  @lime-video-player-slider-container-height: 132px;
@@ -1191,8 +1281,10 @@
1191
1281
  @lime-video-player-padding-bottom: 0;
1192
1282
  @lime-video-player-padding-side: var(--primitive-spacing-132);
1193
1283
  @lime-video-player-label-font-size: var(--primitive-font-size-90);
1284
+ @lime-video-player-label-font-size-large: var(--primitive-font-size-108);
1194
1285
  @lime-video-player-label-font-weight: var(--primitive-font-weight-semibold);
1195
1286
  @lime-video-player-label-line-height: 120px;
1287
+ @lime-video-player-label-line-height-large: 146px;
1196
1288
 
1197
1289
  // VirtualList
1198
1290
  // ---------------------------------------
@@ -71,7 +71,8 @@ var directionToFocus = {
71
71
  * @ui
72
72
  * @private
73
73
  */
74
- var HoverToScrollBase = function HoverToScrollBase(props) {
74
+ var _HoverToScrollBase = function HoverToScrollBase(props) {
75
+ (0, _util.checkPropTypes)(_HoverToScrollBase, props);
75
76
  var direction = props.direction,
76
77
  scrollContainer = props.scrollContainerHandle.current,
77
78
  _props$scrollObserver = props.scrollObserver,
@@ -150,7 +151,8 @@ var HoverToScrollBase = function HoverToScrollBase(props) {
150
151
  hoverToScrollMultiplier[direction]; // a scrolling speed factor
151
152
  var startTime = (0, _util.perfNow)();
152
153
  mutableRef.current.hoveredPosition = position;
153
- mutableRef.current.stopScrollByHover = false;
154
+ mutableRef.current.stopScrollByHover = scrollContainer.scrolling; // stop scrollByHover when it is in scrolling
155
+
154
156
  var _scrollByHover = function scrollByHover(currentTime) {
155
157
  if (!mutableRef.current.stopScrollByHover) {
156
158
  var elapsed = (currentTime - startTime) / 1000;
@@ -232,8 +234,8 @@ var HoverToScrollBase = function HoverToScrollBase(props) {
232
234
  children: [before ? renderHoverArea('before') : null, after ? renderHoverArea('after') : null]
233
235
  });
234
236
  };
235
- HoverToScrollBase.displayName = 'HoverToScrollBase';
236
- HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.HoverToScrollBase.prototype */{
237
+ _HoverToScrollBase.displayName = 'HoverToScrollBase';
238
+ _HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.HoverToScrollBase.prototype */{
237
239
  direction: _propTypes["default"].string,
238
240
  scrollContainerHandle: _propTypes["default"].object
239
241
  };
@@ -246,23 +248,24 @@ HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.Hover
246
248
  * @ui
247
249
  * @private
248
250
  */
249
- var HoverToScroll = exports.HoverToScroll = function HoverToScroll(_ref2) {
250
- var scrollContainerHandle = _ref2.scrollContainerHandle,
251
- rest = _objectWithoutProperties(_ref2, _excluded);
251
+ var _HoverToScroll = exports.HoverToScroll = function HoverToScroll(props) {
252
+ (0, _util.checkPropTypes)(_HoverToScroll, props);
253
+ var scrollContainerHandle = props.scrollContainerHandle,
254
+ rest = _objectWithoutProperties(props, _excluded);
252
255
  return scrollContainerHandle ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
253
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(HoverToScrollBase, _objectSpread(_objectSpread({
256
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScrollBase, _objectSpread(_objectSpread({
254
257
  scrollContainerHandle: scrollContainerHandle
255
258
  }, rest), {}, {
256
259
  direction: "horizontal"
257
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(HoverToScrollBase, _objectSpread(_objectSpread({
260
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScrollBase, _objectSpread(_objectSpread({
258
261
  scrollContainerHandle: scrollContainerHandle
259
262
  }, rest), {}, {
260
263
  direction: "vertical"
261
264
  }))]
262
265
  }) : null;
263
266
  };
264
- HoverToScroll.displayName = 'HoverToScroll';
265
- HoverToScroll.propTypes = /** @lends limestone/useScroll.HoverToScroll.prototype */{
267
+ _HoverToScroll.displayName = 'HoverToScroll';
268
+ _HoverToScroll.propTypes = /** @lends limestone/useScroll.HoverToScroll.prototype */{
266
269
  scrollContainerHandle: _propTypes["default"].object
267
270
  };
268
- var _default = exports["default"] = HoverToScroll;
271
+ var _default = exports["default"] = _HoverToScroll;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = exports.ScrollbarBase = exports.Scrollbar = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _util = require("@enact/core/util");
8
9
  var _Scrollbar = require("@enact/ui/useScroll/Scrollbar");
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
11
  var _react = require("react");
@@ -92,20 +93,23 @@ var useThemeScrollbar = function useThemeScrollbar(props) {
92
93
  * @ui
93
94
  * @private
94
95
  */
95
- var ScrollbarBase = exports.ScrollbarBase = /*#__PURE__*/(0, _react.memo)(function (_ref) {
96
- var _ref$css = _ref.css,
97
- css = _ref$css === void 0 ? _ScrollbarModule["default"] : _ref$css,
98
- _ref$minThumbSize = _ref.minThumbSize,
99
- minThumbSize = _ref$minThumbSize === void 0 ? 120 : _ref$minThumbSize,
100
- _ref$vertical = _ref.vertical,
101
- vertical = _ref$vertical === void 0 ? true : _ref$vertical,
102
- rest = _objectWithoutProperties(_ref, _excluded3);
103
- var props = _objectSpread({
96
+ var ScrollbarBase = exports.ScrollbarBase = /*#__PURE__*/(0, _react.memo)(function (props) {
97
+ var scrollbarBaseProps = (0, _util.setDefaultProps)(props, {
98
+ css: _ScrollbarModule["default"],
99
+ minThumbSize: 120,
100
+ vertical: true
101
+ });
102
+ (0, _util.checkPropTypes)(ScrollbarBase, scrollbarBaseProps);
103
+ var css = scrollbarBaseProps.css,
104
+ minThumbSize = scrollbarBaseProps.minThumbSize,
105
+ vertical = scrollbarBaseProps.vertical,
106
+ rest = _objectWithoutProperties(scrollbarBaseProps, _excluded3);
107
+ var propsForHook = _objectSpread({
104
108
  css: css,
105
109
  minThumbSize: minThumbSize,
106
110
  vertical: vertical
107
111
  }, rest);
108
- var _useThemeScrollbar = useThemeScrollbar(props),
112
+ var _useThemeScrollbar = useThemeScrollbar(propsForHook),
109
113
  restProps = _useThemeScrollbar.restProps,
110
114
  scrollbarProps = _useThemeScrollbar.scrollbarProps,
111
115
  scrollbarTrackProps = _useThemeScrollbar.scrollbarTrackProps;
@@ -30,9 +30,12 @@ var ScrollbarPlaceholder = exports.ScrollbarPlaceholder = function ScrollbarPlac
30
30
  _useState2 = _slicedToArray(_useState, 2),
31
31
  showPlaceholder = _useState2[0],
32
32
  setShowPlaceholder = _useState2[1];
33
+
34
+ // The placeholder needs to mount and then unmount so its `onSpotlightDisappear` fires and
35
+ // hands focus over to the real scrollbar once it is ready.
33
36
  (0, _react.useEffect)(function () {
34
37
  if (showPlaceholder) {
35
- setShowPlaceholder(false);
38
+ setShowPlaceholder(false); // eslint-disable-line react-hooks/set-state-in-effect
36
39
  }
37
40
  }, [showPlaceholder]);
38
41
  var resetFocus = (0, _react.useCallback)(function () {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = exports.ScrollbarTrackBase = exports.ScrollbarTrack = void 0;
7
7
  var _classnames = _interopRequireDefault(require("classnames"));
8
8
  var _keymap = require("@enact/core/keymap");
9
+ var _util = require("@enact/core/util");
9
10
  var _Accelerator = _interopRequireDefault(require("@enact/spotlight/Accelerator"));
10
11
  var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
11
12
  var _AnnounceDecorator = require("@enact/ui/AnnounceDecorator");
@@ -43,7 +44,8 @@ var SpottableDiv = (0, _Spottable["default"])('div');
43
44
  * @ui
44
45
  * @private
45
46
  */
46
- var ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = function ScrollbarTrack(props) {
47
+ var _ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = function ScrollbarTrack(props) {
48
+ (0, _util.checkPropTypes)(_ScrollbarTrack, props);
47
49
  var ariaLabel = props['aria-label'],
48
50
  cbAlertScrollbarTrack = props.cbAlertScrollbarTrack,
49
51
  focusableScrollbar = props.focusableScrollbar,
@@ -132,8 +134,8 @@ var ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = funct
132
134
  }, "announce")]
133
135
  }));
134
136
  };
135
- ScrollbarTrack.displayName = 'ScrollbarTrack';
136
- ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototype */{
137
+ _ScrollbarTrack.displayName = 'ScrollbarTrack';
138
+ _ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototype */{
137
139
  /**
138
140
  * The aria label for the component.
139
141
  *
@@ -199,11 +201,11 @@ ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototy
199
201
  */
200
202
  vertical: _propTypes["default"].bool
201
203
  };
202
- ScrollbarTrack.defaultProps = {
204
+ _ScrollbarTrack.defaultProps = {
203
205
  cbAlertScrollbarTrack: nop,
204
206
  focusableScrollbar: false,
205
207
  onInteractionForScroll: nop,
206
208
  rtl: false,
207
209
  vertical: true
208
210
  };
209
- var _default = exports["default"] = ScrollbarTrack;
211
+ var _default = exports["default"] = _ScrollbarTrack;