@enact/limestone 1.3.0 → 1.10.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.
- package/.github/workflows/ci-branch.yml +21 -0
- package/.github/workflows/ci-pull-request.yml +16 -0
- package/.github/workflows/ci-reusable.yml +73 -0
- package/ActionGuide/ActionGuide.d.ts +5 -4
- package/ActionGuide/ActionGuide.module.css +1 -1
- package/Alert/Alert.d.ts +13 -2
- package/Alert/Alert.js +39 -5
- package/Alert/Alert.module.css +48 -1
- package/Alert/tests/Alert-specs.js +91 -0
- package/BodyText/BodyText.d.ts +5 -4
- package/BodyText/BodyText.module.css +7 -7
- package/Button/Button.d.ts +17 -12
- package/Button/Button.js +1 -1
- package/Button/Button.module.css +195 -268
- package/Button/tests/Button-specs.js +26 -0
- package/CHANGELOG.md +254 -0
- package/Card/Card.d.ts +40 -12
- package/Card/Card.js +164 -28
- package/Card/Card.module.css +277 -58
- package/Card/tests/Card-specs.js +67 -3
- package/Checkbox/Checkbox.d.ts +8 -7
- package/Checkbox/Checkbox.js +3 -1
- package/Checkbox/Checkbox.module.css +213 -120
- package/Checkbox/tests/Checkbox-specs.js +1 -1
- package/CheckboxItem/CheckboxItem.d.ts +22 -7
- package/CheckboxItem/CheckboxItem.js +71 -4
- package/Chips/Chip.js +72 -13
- package/Chips/Chip.module.css +3 -3
- package/Chips/Chips.js +37 -17
- package/Chips/Chips.module.css +1 -1
- package/Chips/tests/Chip-specs.js +43 -13
- package/Chips/tests/Chips-specs.js +31 -21
- package/ColorPicker/ColorPicker.js +27 -25
- package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +4 -5
- package/ContextualPopupDecorator/ContextualPopup.module.css +34 -34
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +567 -549
- package/DatePicker/DatePicker.d.ts +4 -5
- package/DayPicker/DayPicker.d.ts +8 -7
- package/DayPicker/DaySelectorDecorator.js +12 -7
- package/Dropdown/Dropdown.d.ts +11 -13
- package/Dropdown/Dropdown.module.css +13 -9
- package/Dropdown/DropdownList.js +80 -54
- package/FixedPopupPanels/FixedPopupPanels.d.ts +4 -2
- package/FixedPopupPanels/FixedPopupPanels.module.css +18 -18
- package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +23 -23
- package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
- package/FormCheckboxItem/FormCheckboxItem.d.ts +5 -4
- package/Heading/Heading.d.ts +9 -8
- package/Heading/Heading.js +2 -2
- package/Heading/Heading.module.css +5 -5
- package/Icon/Icon.d.ts +15 -4
- package/Icon/Icon.js +49 -2
- package/Icon/Icon.module.css +1 -1
- package/Icon/IconList.js +27 -1
- package/IconItem/IconItem.d.ts +13 -12
- package/IconItem/IconItem.js +15 -0
- package/IconItem/IconItem.module.css +107 -1
- package/IconItem/tests/IconItem-specs.js +30 -1
- package/Image/Image.d.ts +5 -4
- package/Image/Image.js +6 -4
- package/ImageItem/ImageItem.d.ts +11 -10
- package/ImageItem/ImageItem.js +37 -31
- package/ImageItem/ImageItem.module.css +30 -30
- package/ImageItem/tests/ImageItem-specs.js +3 -10
- package/Input/Input.js +21 -3
- package/Input/Input.module.css +37 -8
- package/Input/InputField.js +79 -24
- package/Input/InputField.module.css +273 -41
- package/Input/InputFieldDecoratorIcon.js +1 -0
- package/Input/InputFieldSpotlightDecorator.js +257 -228
- package/Input/index.d.ts +120 -111
- package/Input/tests/Input-specs.js +26 -0
- package/Input/tests/InputField-specs.js +170 -3
- package/Input/tests/InputPopup-specs.js +1 -1
- package/Item/Item.d.ts +16 -9
- package/Item/Item.js +20 -2
- package/Item/Item.module.css +1 -1
- package/KeyGuide/KeyGuide.d.ts +8 -7
- package/KeyGuide/KeyGuide.js +29 -27
- package/KeyGuide/KeyGuide.module.css +25 -1
- package/Marquee/Marquee.d.ts +2 -4
- package/MediaOverlay/MediaOverlay.d.ts +12 -11
- package/MediaOverlay/MediaOverlay.js +43 -21
- package/MediaOverlay/MediaOverlay.module.css +114 -15
- package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
- package/MediaPlayer/MediaControls.js +195 -13
- package/MediaPlayer/MediaControls.module.css +3 -2
- package/MediaPlayer/MediaSlider.module.css +7 -20
- package/MediaPlayer/index.d.ts +59 -7
- package/MediaPlayer/tests/util-specs.js +4 -1
- package/PageViews/PageViews.js +232 -82
- package/PageViews/PageViews.module.css +3 -0
- package/PageViews/PageViewsRouter.js +100 -42
- package/PageViews/tests/PageViews-specs.js +171 -0
- package/Panels/Header.js +54 -34
- package/Panels/Header.module.css +83 -31
- package/Panels/Panel.module.css +1 -1
- package/Panels/index.d.ts +7 -8
- package/Picker/Picker.d.ts +4 -5
- package/Picker/Picker.module.css +2 -2
- package/Popup/Popup.js +245 -242
- package/Popup/Popup.module.css +24 -24
- package/PopupTabLayout/PopupTabLayout.d.ts +5 -7
- package/PopupTabLayout/PopupTabLayout.js +26 -18
- package/PopupTabLayout/PopupTabLayout.module.css +53 -16
- package/PopupTabLayout/PopupTabLayoutStateContext.js +8 -0
- package/ProgressBar/ProgressBar.d.ts +5 -4
- package/ProgressBar/ProgressBarTooltip.module.css +12 -12
- package/ProgressButton/ProgressButton.d.ts +4 -5
- package/QuickGuidePanels/QuickGuidePanels.module.css +2 -2
- package/RadioItem/RadioItem.d.ts +18 -5
- package/RadioItem/RadioItem.js +69 -2
- package/RadioItem/RadioItem.module.css +36 -36
- package/RangePicker/RangePicker.module.css +2 -2
- package/Scroller/EditableWrapper.js +28 -18
- package/Scroller/Scroller.d.ts +20 -16
- package/Scroller/Scroller.js +20 -13
- package/Scroller/Scroller.module.css +4 -4
- package/Scroller/useThemeScroller.js +3 -3
- package/Slider/Slider.d.ts +20 -14
- package/Slider/Slider.js +71 -14
- package/Slider/Slider.module.css +464 -91
- package/Slider/SliderBehaviorDecorator.js +16 -14
- package/Slider/tests/Slider-specs.js +53 -1
- package/Slider/utils.js +23 -7
- package/Spinner/Spinner.d.ts +5 -4
- package/Spinner/Spinner.js +10 -8
- package/Spinner/Spinner.module.css +9 -9
- package/Steps/Steps.d.ts +5 -4
- package/Steps/Steps.js +9 -5
- package/Switch/Switch.d.ts +8 -7
- package/Switch/Switch.module.css +100 -13
- package/SwitchItem/SwitchItem.d.ts +9 -6
- package/TabLayout/RefocusDecorator.js +26 -18
- package/TabLayout/TabGroup.js +3 -2
- package/TabLayout/TabGroup.module.css +2 -2
- package/TabLayout/TabLayout.d.ts +6 -0
- package/TabLayout/TabLayout.js +11 -1
- package/TabLayout/TabLayout.module.css +18 -0
- package/TabLayout/tests/TabGroup-specs.js +1 -1
- package/TabLayout/tests/TabLayout-specs.js +52 -0
- package/ThemeDecorator/AccessibilityDecorator.js +12 -11
- package/ThemeDecorator/I18nFontDecorator.js +6 -4
- package/ThemeDecorator/ThemeDecorator.d.ts +16 -10
- package/ThemeDecorator/ThemeDecorator.js +24 -9
- package/ThemeDecorator/fontGenerator.js +1 -1
- package/ThemeDecorator/screenTypes.json +1 -0
- package/TimePicker/TimePicker.module.css +1 -1
- package/TimePicker/TimePickerBase.js +5 -3
- package/TooltipDecorator/Tooltip.module.css +1 -2
- package/TooltipDecorator/TooltipDecorator.js +12 -7
- package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
- package/TooltipDecorator/tests/util-specs.js +12 -0
- package/TooltipDecorator/useTooltip.js +1 -1
- package/TooltipDecorator/util.js +18 -11
- package/VideoPlayer/Feedback.js +3 -0
- package/VideoPlayer/Feedback.module.css +5 -9
- package/VideoPlayer/FeedbackIcons.js +1 -1
- package/VideoPlayer/FeedbackTooltip.module.css +55 -11
- package/VideoPlayer/VideoPlayer.d.ts +44 -18
- package/VideoPlayer/VideoPlayer.js +153 -47
- package/VideoPlayer/VideoPlayer.module.css +28 -11
- package/VirtualList/VirtualList.d.ts +9 -2
- package/VirtualList/VirtualList.js +51 -24
- package/VirtualList/tests/VirtualGridList-translate-specs.js +3 -0
- package/VirtualList/tests/VirtualList-specs.js +28 -1
- package/VirtualList/tests/VirtualList-translate-specs.js +4 -1
- package/VirtualList/useSpotlight.js +1 -1
- package/WizardPanels/WizardPanels.module.css +2 -2
- package/WizardPanels/index.d.ts +4 -2
- package/fonts/Limestone_Icons.ttf +0 -0
- package/internal/$L/$L.js +3 -3
- package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
- package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
- package/internal/DateComponentPicker/DateComponentPicker.module.css +2 -2
- package/internal/DateTime/DateTime.module.css +1 -0
- package/internal/DateTime/DateTimeDecorator.js +5 -4
- package/internal/Panels/PanelsRouter.js +48 -31
- package/internal/Panels/useAutoFocus.js +10 -6
- package/internal/Panels/useFocusOnTransition.js +4 -3
- package/internal/Picker/Picker.js +7 -5
- package/internal/Picker/Picker.module.css +2 -2
- package/internal/Picker/SpottablePicker.js +15 -13
- package/internal/SharedStateDecorator/SharedStateDecorator.js +78 -99
- package/internal/validators/validators.js +21 -2
- package/package.json +18 -15
- package/styles/colors-highcontrast.less +9 -1
- package/styles/colors.less +12 -7
- package/styles/motion-mixins.less +66 -0
- package/styles/motions.less +78 -0
- package/styles/variables.less +176 -150
- package/useScroll/HoverToScroll.js +23 -17
- package/useScroll/Scrollbar.js +14 -10
- package/useScroll/ScrollbarPlaceholder.js +3 -5
- package/useScroll/ScrollbarTrack.js +7 -5
- package/useScroll/ScrollbarTrack.module.css +8 -8
- package/useScroll/useEvent.js +14 -3
- package/useScroll/useScroll.js +12 -2
- package/useScroll/useScroll.module.css +6 -6
- package/.travis.yml +0 -40
package/Popup/Popup.module.css
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
height: 100%;
|
|
3
3
|
max-height: 100%;
|
|
4
4
|
max-width: 100%;
|
|
5
|
-
border-radius:
|
|
5
|
+
border-radius: var(--primitive-radius-24);
|
|
6
6
|
}
|
|
7
7
|
.popup .body {
|
|
8
8
|
font-family: "Limestone";
|
|
9
9
|
font-weight: normal;
|
|
10
10
|
font-size: var(--primitive-font-size-60);
|
|
11
11
|
line-height: 1.4em;
|
|
12
|
-
padding:
|
|
12
|
+
padding: var(--primitive-spacing-48) var(--primitive-spacing-72);
|
|
13
13
|
box-sizing: border-box;
|
|
14
14
|
pointer-events: auto;
|
|
15
15
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
line-height: 1.7em;
|
|
31
31
|
}
|
|
32
32
|
:global(.enact-locale-right-to-left) .popup .body {
|
|
33
|
-
padding:
|
|
33
|
+
padding: var(--primitive-spacing-48) var(--primitive-spacing-72) var(--primitive-spacing-48) var(--primitive-spacing-72);
|
|
34
34
|
}
|
|
35
35
|
:global(.enact-locale-ja) .popup .body {
|
|
36
36
|
line-break: strict;
|
|
@@ -44,26 +44,26 @@
|
|
|
44
44
|
height: 100%;
|
|
45
45
|
}
|
|
46
46
|
.popup.top {
|
|
47
|
-
margin: 3.125rem
|
|
47
|
+
margin: 3.125rem var(--primitive-spacing-120) 1.625rem var(--primitive-spacing-120);
|
|
48
48
|
}
|
|
49
49
|
.popup.top.left,
|
|
50
50
|
.popup.top.right {
|
|
51
|
-
margin:
|
|
51
|
+
margin: var(--primitive-spacing-60);
|
|
52
52
|
}
|
|
53
53
|
.popup.right {
|
|
54
|
-
margin:
|
|
55
|
-
max-height: calc(100% -
|
|
54
|
+
margin: var(--primitive-spacing-120) var(--primitive-spacing-60) var(--primitive-spacing-120) var(--primitive-spacing-36);
|
|
55
|
+
max-height: calc(100% - (var(--primitive-spacing-120) + var(--primitive-spacing-120)));
|
|
56
56
|
}
|
|
57
57
|
.popup.bottom {
|
|
58
|
-
margin: 0
|
|
58
|
+
margin: 0 var(--primitive-spacing-120) 3.125rem var(--primitive-spacing-120);
|
|
59
59
|
}
|
|
60
60
|
.popup.bottom.left,
|
|
61
61
|
.popup.bottom.right {
|
|
62
|
-
margin:
|
|
62
|
+
margin: var(--primitive-spacing-60);
|
|
63
63
|
}
|
|
64
64
|
.popup.left {
|
|
65
|
-
margin:
|
|
66
|
-
max-height: calc(100% -
|
|
65
|
+
margin: var(--primitive-spacing-120) var(--primitive-spacing-36) var(--primitive-spacing-120) var(--primitive-spacing-60);
|
|
66
|
+
max-height: calc(100% - (var(--primitive-spacing-120) + var(--primitive-spacing-120)));
|
|
67
67
|
}
|
|
68
68
|
.popup.center {
|
|
69
69
|
position: absolute;
|
|
@@ -85,17 +85,17 @@
|
|
|
85
85
|
.popup:global(.neutral).outline {
|
|
86
86
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
87
87
|
outline-style: solid;
|
|
88
|
-
outline-width: 0.
|
|
89
|
-
outline-offset: -0.
|
|
88
|
+
outline-width: 0.063rem;
|
|
89
|
+
outline-offset: -0.063rem;
|
|
90
90
|
}
|
|
91
91
|
:global(.enact-a11y-high-contrast) .popup:global(.neutral):global(.highContrast) {
|
|
92
92
|
background-color: var(--semantic-color-background-overlay-default);
|
|
93
93
|
}
|
|
94
94
|
:global(.enact-a11y-high-contrast) .popup:global(.neutral):global(.highContrast).outline {
|
|
95
|
-
outline-color:
|
|
95
|
+
outline-color: var(--semantic-color-stroke-main);
|
|
96
96
|
outline-style: solid;
|
|
97
|
-
outline-width: 0.
|
|
98
|
-
outline-offset: -0.
|
|
97
|
+
outline-width: 0.063rem;
|
|
98
|
+
outline-offset: -0.063rem;
|
|
99
99
|
}
|
|
100
100
|
.popup:global(.light) {
|
|
101
101
|
background-color: color(from var(--semantic-color-background-overlay-default) srgb r g b / 0.9);
|
|
@@ -103,8 +103,8 @@
|
|
|
103
103
|
.popup:global(.light).outline {
|
|
104
104
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
105
105
|
outline-style: solid;
|
|
106
|
-
outline-width: 0.
|
|
107
|
-
outline-offset: -0.
|
|
106
|
+
outline-width: 0.063rem;
|
|
107
|
+
outline-offset: -0.063rem;
|
|
108
108
|
}
|
|
109
109
|
.popup:global(.game) {
|
|
110
110
|
--semantic-color-surface-default: #2d224c;
|
|
@@ -115,8 +115,8 @@
|
|
|
115
115
|
.popup:global(.game).outline {
|
|
116
116
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
117
117
|
outline-style: solid;
|
|
118
|
-
outline-width: 0.
|
|
119
|
-
outline-offset: -0.
|
|
118
|
+
outline-width: 0.063rem;
|
|
119
|
+
outline-offset: -0.063rem;
|
|
120
120
|
}
|
|
121
121
|
:global(.green) .popup:global(.game) {
|
|
122
122
|
--semantic-color-surface-default: #1F2C24;
|
|
@@ -126,8 +126,8 @@
|
|
|
126
126
|
:global(.green) .popup:global(.game).outline {
|
|
127
127
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
128
128
|
outline-style: solid;
|
|
129
|
-
outline-width: 0.
|
|
130
|
-
outline-offset: -0.
|
|
129
|
+
outline-width: 0.063rem;
|
|
130
|
+
outline-offset: -0.063rem;
|
|
131
131
|
}
|
|
132
132
|
:global(.orange) .popup:global(.game) {
|
|
133
133
|
--semantic-color-surface-default: #422923;
|
|
@@ -137,8 +137,8 @@
|
|
|
137
137
|
:global(.orange) .popup:global(.game).outline {
|
|
138
138
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
139
139
|
outline-style: solid;
|
|
140
|
-
outline-width: 0.
|
|
141
|
-
outline-offset: -0.
|
|
140
|
+
outline-width: 0.063rem;
|
|
141
|
+
outline-offset: -0.063rem;
|
|
142
142
|
}
|
|
143
143
|
.popupTransitionContainer {
|
|
144
144
|
position: absolute;
|
|
@@ -11,11 +11,10 @@ import { TabLayoutProps as limestone_TabLayout_TabLayoutProps } from "limestone/
|
|
|
11
11
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
12
12
|
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
13
13
|
|
|
14
|
-
export interface PopupTabLayoutBaseProps
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
> {
|
|
14
|
+
export interface PopupTabLayoutBaseProps extends Merge<
|
|
15
|
+
limestone_Popup_PopupProps,
|
|
16
|
+
limestone_TabLayout_TabLayoutProps
|
|
17
|
+
> {
|
|
19
18
|
/**
|
|
20
19
|
* Collection of to render.
|
|
21
20
|
*/
|
|
@@ -99,8 +98,7 @@ export class PopupTabLayoutBase extends React.Component<
|
|
|
99
98
|
Merge<React.HTMLProps<HTMLElement>, PopupTabLayoutBaseProps>
|
|
100
99
|
> {}
|
|
101
100
|
|
|
102
|
-
export interface PopupTabLayoutDecoratorProps
|
|
103
|
-
extends limestone_Skinnable_SkinnableProps {}
|
|
101
|
+
export interface PopupTabLayoutDecoratorProps extends limestone_Skinnable_SkinnableProps {}
|
|
104
102
|
export function PopupTabLayoutDecorator<P>(
|
|
105
103
|
Component: React.ComponentType<P> | string,
|
|
106
104
|
): React.ComponentType<P & PopupTabLayoutDecoratorProps>;
|
|
@@ -30,6 +30,7 @@ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
|
30
30
|
var _Panels = _interopRequireWildcard(require("../Panels"));
|
|
31
31
|
var _TabLayout = _interopRequireWildcard(require("../TabLayout"));
|
|
32
32
|
var _Popup = _interopRequireDefault(require("../Popup"));
|
|
33
|
+
var _PopupTabLayoutStateContext = require("./PopupTabLayoutStateContext");
|
|
33
34
|
var _PopupTabLayoutModule = _interopRequireDefault(require("./PopupTabLayout.module.css"));
|
|
34
35
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
36
|
var _excluded = ["children", "css", "optimized", "PopupComponent"],
|
|
@@ -327,15 +328,20 @@ var PopupTabLayoutBase = exports.PopupTabLayoutBase = (0, _kind["default"])({
|
|
|
327
328
|
delete popupProps.onShow;
|
|
328
329
|
delete popupProps.scrimType;
|
|
329
330
|
}
|
|
330
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
331
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PopupTabLayoutStateContext.PopupTabLayoutStateContext, {
|
|
332
|
+
value: {
|
|
333
|
+
type: 'popupTabLayout'
|
|
334
|
+
},
|
|
335
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PopupComponent, _objectSpread(_objectSpread({}, popupProps), {}, {
|
|
336
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabLayout["default"], _objectSpread(_objectSpread({}, rest), {}, {
|
|
337
|
+
css: css,
|
|
338
|
+
align: "start",
|
|
339
|
+
anchorTo: "left",
|
|
340
|
+
type: "popup",
|
|
341
|
+
children: children
|
|
342
|
+
}))
|
|
337
343
|
}))
|
|
338
|
-
})
|
|
344
|
+
});
|
|
339
345
|
}
|
|
340
346
|
});
|
|
341
347
|
var OptimizedFocusDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
@@ -385,7 +391,7 @@ var OptimizedFocusDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
|
385
391
|
}
|
|
386
392
|
}
|
|
387
393
|
}]);
|
|
388
|
-
}(_react.Component), _Class.displayName = 'OptimizedFocusDecorator', _Class.propTypes = /** @lends
|
|
394
|
+
}(_react.Component), _Class.displayName = 'OptimizedFocusDecorator', _Class.propTypes = /** @lends limestone/PopupTabLayout.OptimizedFocusDecorator.prototype */{
|
|
389
395
|
/**
|
|
390
396
|
* Controls the visibility of the PopupTabLayout.
|
|
391
397
|
*
|
|
@@ -521,9 +527,10 @@ var tabPanelsHandlers = {
|
|
|
521
527
|
* @ui
|
|
522
528
|
* @public
|
|
523
529
|
*/
|
|
524
|
-
var
|
|
525
|
-
|
|
526
|
-
|
|
530
|
+
var _TabPanelsBase = exports.TabPanelsBase = function TabPanelsBase(props) {
|
|
531
|
+
(0, _util.checkPropTypes)(_TabPanelsBase, props);
|
|
532
|
+
var rtl = props.rtl,
|
|
533
|
+
rest = _objectWithoutProperties(props, _excluded2);
|
|
527
534
|
var onTransition = (0, _react.use)(_TabLayout.TabLayoutContext);
|
|
528
535
|
var handlers = (0, _useHandlers["default"])(tabPanelsHandlers, _objectSpread({
|
|
529
536
|
rtl: rtl
|
|
@@ -536,7 +543,7 @@ var TabPanelsBase = exports.TabPanelsBase = function TabPanelsBase(_ref9) {
|
|
|
536
543
|
css: _PopupTabLayoutModule["default"]
|
|
537
544
|
}, handlers));
|
|
538
545
|
};
|
|
539
|
-
|
|
546
|
+
_TabPanelsBase.propTypes = {
|
|
540
547
|
rtl: _propTypes["default"].bool
|
|
541
548
|
};
|
|
542
549
|
|
|
@@ -551,7 +558,7 @@ TabPanelsBase.propTypes = {
|
|
|
551
558
|
*/
|
|
552
559
|
var TabPanels = exports.TabPanels = (0, _I18nDecorator.I18nContextDecorator)({
|
|
553
560
|
rtlProp: 'rtl'
|
|
554
|
-
},
|
|
561
|
+
}, _TabPanelsBase);
|
|
555
562
|
|
|
556
563
|
/**
|
|
557
564
|
* Omits the close button.
|
|
@@ -579,9 +586,10 @@ var TabPanels = exports.TabPanels = (0, _I18nDecorator.I18nContextDecorator)({
|
|
|
579
586
|
* @ui
|
|
580
587
|
* @public
|
|
581
588
|
*/
|
|
582
|
-
var
|
|
583
|
-
|
|
584
|
-
|
|
589
|
+
var _TabPanel = exports.TabPanel = function TabPanel(props) {
|
|
590
|
+
(0, _util.checkPropTypes)(_TabPanel, props);
|
|
591
|
+
var spotlightId = props.spotlightId,
|
|
592
|
+
rest = _objectWithoutProperties(props, _excluded3);
|
|
585
593
|
(0, _react.useEffect)(function () {
|
|
586
594
|
_spotlight["default"].set(spotlightId, {
|
|
587
595
|
partition: true
|
|
@@ -593,7 +601,7 @@ var TabPanel = exports.TabPanel = function TabPanel(_ref0) {
|
|
|
593
601
|
spotlightId: spotlightId
|
|
594
602
|
}));
|
|
595
603
|
};
|
|
596
|
-
|
|
604
|
+
_TabPanel.propTypes = {
|
|
597
605
|
/**
|
|
598
606
|
* The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
|
|
599
607
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.popupTabLayout.popup,
|
|
2
2
|
.popupTabLayout.optimized {
|
|
3
|
-
margin:
|
|
4
|
-
max-height: calc(100vh -
|
|
3
|
+
margin: var(--primitive-spacing-60) auto var(--primitive-spacing-132) var(--primitive-spacing-60);
|
|
4
|
+
max-height: calc(100vh - (var(--primitive-spacing-60) + var(--primitive-spacing-132)));
|
|
5
5
|
}
|
|
6
6
|
.popupTabLayout .tabLayout .tabs {
|
|
7
7
|
bottom: auto;
|
|
@@ -54,9 +54,15 @@
|
|
|
54
54
|
background-color: var(--semantic-color-background-overlay-default);
|
|
55
55
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
56
56
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
57
|
-
outline-width: 0.
|
|
57
|
+
outline-width: 0.063rem;
|
|
58
58
|
outline-style: solid;
|
|
59
|
-
outline-offset: -0.
|
|
59
|
+
outline-offset: -0.063rem;
|
|
60
|
+
}
|
|
61
|
+
.popupTabLayout:global(.neutral) .tabGroup {
|
|
62
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
63
|
+
}
|
|
64
|
+
.popupTabLayout:global(.neutral) .tabGroup .tab .icon {
|
|
65
|
+
--icon-size: 2rem;
|
|
60
66
|
}
|
|
61
67
|
:global(.noAnimation) .popupTabLayout:global(.neutral) .tabs,
|
|
62
68
|
:global(.noAnimation) .popupTabLayout:global(.neutral) .content .panels::before {
|
|
@@ -75,10 +81,16 @@
|
|
|
75
81
|
:global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .content .panels::before {
|
|
76
82
|
background-color: var(--semantic-color-background-overlay-default);
|
|
77
83
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
78
|
-
outline-color:
|
|
79
|
-
outline-width: 0.
|
|
84
|
+
outline-color: var(--semantic-color-stroke-main);
|
|
85
|
+
outline-width: 0.063rem;
|
|
80
86
|
outline-style: solid;
|
|
81
|
-
outline-offset: -0.
|
|
87
|
+
outline-offset: -0.063rem;
|
|
88
|
+
}
|
|
89
|
+
:global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabGroup {
|
|
90
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
91
|
+
}
|
|
92
|
+
:global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabGroup .tab .icon {
|
|
93
|
+
--icon-size: 2rem;
|
|
82
94
|
}
|
|
83
95
|
:global(.noAnimation) :global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .tabs,
|
|
84
96
|
:global(.noAnimation) :global(.enact-a11y-high-contrast) .popupTabLayout:global(.neutral):global(.highContrast) .content .panels::before {
|
|
@@ -98,9 +110,15 @@
|
|
|
98
110
|
background-color: var(--semantic-color-background-overlay-default);
|
|
99
111
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
100
112
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
101
|
-
outline-width: 0.
|
|
113
|
+
outline-width: 0.063rem;
|
|
102
114
|
outline-style: solid;
|
|
103
|
-
outline-offset: -0.
|
|
115
|
+
outline-offset: -0.063rem;
|
|
116
|
+
}
|
|
117
|
+
.popupTabLayout:global(.light) .tabGroup {
|
|
118
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
119
|
+
}
|
|
120
|
+
.popupTabLayout:global(.light) .tabGroup .tab .icon {
|
|
121
|
+
--icon-size: 2rem;
|
|
104
122
|
}
|
|
105
123
|
:global(.noAnimation) .popupTabLayout:global(.light) .tabs,
|
|
106
124
|
:global(.noAnimation) .popupTabLayout:global(.light) .content .panels::before {
|
|
@@ -123,9 +141,15 @@
|
|
|
123
141
|
background-color: var(--semantic-color-background-overlay-default);
|
|
124
142
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
125
143
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
126
|
-
outline-width: 0.
|
|
144
|
+
outline-width: 0.063rem;
|
|
127
145
|
outline-style: solid;
|
|
128
|
-
outline-offset: -0.
|
|
146
|
+
outline-offset: -0.063rem;
|
|
147
|
+
}
|
|
148
|
+
.popupTabLayout:global(.game) .tabGroup {
|
|
149
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
150
|
+
}
|
|
151
|
+
.popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
152
|
+
--icon-size: 2rem;
|
|
129
153
|
}
|
|
130
154
|
:global(.noAnimation) .popupTabLayout:global(.game) .tabs,
|
|
131
155
|
:global(.noAnimation) .popupTabLayout:global(.game) .content .panels::before {
|
|
@@ -147,9 +171,15 @@
|
|
|
147
171
|
background-color: var(--semantic-color-background-overlay-default);
|
|
148
172
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
149
173
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
150
|
-
outline-width: 0.
|
|
174
|
+
outline-width: 0.063rem;
|
|
151
175
|
outline-style: solid;
|
|
152
|
-
outline-offset: -0.
|
|
176
|
+
outline-offset: -0.063rem;
|
|
177
|
+
}
|
|
178
|
+
:global(.green) .popupTabLayout:global(.game) .tabGroup {
|
|
179
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
180
|
+
}
|
|
181
|
+
:global(.green) .popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
182
|
+
--icon-size: 2rem;
|
|
153
183
|
}
|
|
154
184
|
:global(.noAnimation) :global(.green) .popupTabLayout:global(.game) .tabs,
|
|
155
185
|
:global(.noAnimation) :global(.green) .popupTabLayout:global(.game) .content .panels::before {
|
|
@@ -171,9 +201,15 @@
|
|
|
171
201
|
background-color: var(--semantic-color-background-overlay-default);
|
|
172
202
|
box-shadow: 0 0.75rem 1rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
|
|
173
203
|
outline-color: var(--semantic-color-stroke-overlay-default);
|
|
174
|
-
outline-width: 0.
|
|
204
|
+
outline-width: 0.063rem;
|
|
175
205
|
outline-style: solid;
|
|
176
|
-
outline-offset: -0.
|
|
206
|
+
outline-offset: -0.063rem;
|
|
207
|
+
}
|
|
208
|
+
:global(.orange) .popupTabLayout:global(.game) .tabGroup {
|
|
209
|
+
background-color: var(--semantic-color-background-overlay-default);
|
|
210
|
+
}
|
|
211
|
+
:global(.orange) .popupTabLayout:global(.game) .tabGroup .tab .icon {
|
|
212
|
+
--icon-size: 2rem;
|
|
177
213
|
}
|
|
178
214
|
:global(.noAnimation) :global(.orange) .popupTabLayout:global(.game) .tabs,
|
|
179
215
|
:global(.noAnimation) :global(.orange) .popupTabLayout:global(.game) .content .panels::before {
|
|
@@ -206,7 +242,8 @@
|
|
|
206
242
|
}
|
|
207
243
|
.panel {
|
|
208
244
|
padding: 0;
|
|
209
|
-
max-height: calc(100vh -
|
|
245
|
+
max-height: calc(100vh - (var(--primitive-spacing-60) + var(--primitive-spacing-132)));
|
|
246
|
+
min-height: 20.75rem;
|
|
210
247
|
}
|
|
211
248
|
.panel > .body {
|
|
212
249
|
display: flex;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PopupTabLayoutStateContext = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var PopupTabLayoutStateContext = exports.PopupTabLayoutStateContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
@@ -152,14 +152,15 @@ export class ProgressBarTooltip extends React.Component<
|
|
|
152
152
|
Merge<React.HTMLProps<HTMLElement>, ProgressBarTooltipProps>
|
|
153
153
|
> {}
|
|
154
154
|
|
|
155
|
-
export interface ProgressBarDecoratorProps
|
|
156
|
-
extends limestone_Skinnable_SkinnableProps {}
|
|
155
|
+
export interface ProgressBarDecoratorProps extends limestone_Skinnable_SkinnableProps {}
|
|
157
156
|
export function ProgressBarDecorator<P>(
|
|
158
157
|
Component: React.ComponentType<P> | string,
|
|
159
158
|
): React.ComponentType<P & ProgressBarDecoratorProps>;
|
|
160
159
|
|
|
161
|
-
export interface ProgressBarProps
|
|
162
|
-
|
|
160
|
+
export interface ProgressBarProps extends Merge<
|
|
161
|
+
ProgressBarBaseProps,
|
|
162
|
+
ProgressBarDecoratorProps
|
|
163
|
+
> {}
|
|
163
164
|
/**
|
|
164
165
|
* The ready-to-use Limestone-styled ProgressBar.
|
|
165
166
|
*/
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
left: var(--tooltip-progress-percent);
|
|
7
7
|
}
|
|
8
8
|
.tooltip.horizontal.above {
|
|
9
|
-
bottom:
|
|
9
|
+
bottom: calc(var(--primitive-spacing-12) + 12px);
|
|
10
10
|
}
|
|
11
11
|
.tooltip.horizontal.below {
|
|
12
|
-
top:
|
|
12
|
+
top: calc(var(--primitive-spacing-12) + 12px);
|
|
13
13
|
}
|
|
14
14
|
.tooltip.vertical {
|
|
15
15
|
bottom: var(--tooltip-progress-percent);
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
.tooltip.vertical.left,
|
|
18
18
|
.tooltip.vertical.before,
|
|
19
19
|
:global(.enact-locale-right-to-left) .tooltip.vertical.after {
|
|
20
|
-
right:
|
|
20
|
+
right: calc(var(--primitive-spacing-12) + 12px);
|
|
21
21
|
}
|
|
22
22
|
.tooltip.vertical.right,
|
|
23
23
|
.tooltip.vertical.after,
|
|
24
24
|
:global(.enact-locale-right-to-left) .tooltip.vertical.before {
|
|
25
|
-
left:
|
|
25
|
+
left: calc(var(--primitive-spacing-12) + 12px);
|
|
26
26
|
}
|
|
27
27
|
.tooltip.radial {
|
|
28
28
|
left: 50%;
|
|
@@ -49,38 +49,38 @@
|
|
|
49
49
|
left: 50%;
|
|
50
50
|
}
|
|
51
51
|
.tooltip.radial.center.above {
|
|
52
|
-
bottom: calc(100% +
|
|
52
|
+
bottom: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
53
53
|
}
|
|
54
54
|
.tooltip.radial.center.below {
|
|
55
|
-
top: calc(100% +
|
|
55
|
+
top: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
56
56
|
}
|
|
57
57
|
.tooltip.radial.left,
|
|
58
58
|
.tooltip.radial.before,
|
|
59
59
|
:global(.enact-locale-right-to-left) .tooltip.radial.after {
|
|
60
|
-
left: -
|
|
60
|
+
left: calc(calc(var(--primitive-spacing-12) + 12px) * -1);
|
|
61
61
|
}
|
|
62
62
|
.tooltip.radial.left.above,
|
|
63
63
|
.tooltip.radial.before.above,
|
|
64
64
|
:global(.enact-locale-right-to-left) .tooltip.radial.after.above {
|
|
65
|
-
bottom: calc(100% +
|
|
65
|
+
bottom: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
66
66
|
}
|
|
67
67
|
.tooltip.radial.left.below,
|
|
68
68
|
.tooltip.radial.before.below,
|
|
69
69
|
:global(.enact-locale-right-to-left) .tooltip.radial.after.below {
|
|
70
|
-
top: calc(100% +
|
|
70
|
+
top: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
71
71
|
}
|
|
72
72
|
.tooltip.radial.right,
|
|
73
73
|
.tooltip.radial.after,
|
|
74
74
|
:global(.enact-locale-right-to-left) .tooltip.radial.before {
|
|
75
|
-
left: calc(100% +
|
|
75
|
+
left: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
76
76
|
}
|
|
77
77
|
.tooltip.radial.right.above,
|
|
78
78
|
.tooltip.radial.after.above,
|
|
79
79
|
:global(.enact-locale-right-to-left) .tooltip.radial.before.above {
|
|
80
|
-
bottom: calc(100% +
|
|
80
|
+
bottom: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
81
81
|
}
|
|
82
82
|
.tooltip.radial.right.below,
|
|
83
83
|
.tooltip.radial.after.below,
|
|
84
84
|
:global(.enact-locale-right-to-left) .tooltip.radial.before.below {
|
|
85
|
-
top: calc(100% +
|
|
85
|
+
top: calc(100% + calc(var(--primitive-spacing-12) + 12px) );
|
|
86
86
|
}
|
|
@@ -7,11 +7,10 @@ import { ProgressBarProps as limestone_ProgressBar_ProgressBarProps } from "lime
|
|
|
7
7
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
8
8
|
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
9
9
|
|
|
10
|
-
export interface ProgressButtonBaseProps
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
> {
|
|
10
|
+
export interface ProgressButtonBaseProps extends Merge<
|
|
11
|
+
limestone_Button_ButtonBaseProps,
|
|
12
|
+
limestone_ProgressBar_ProgressBarProps
|
|
13
|
+
> {
|
|
15
14
|
/**
|
|
16
15
|
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
17
16
|
corresponding internal elements and states of this component.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
justify-content: center;
|
|
8
8
|
align-items: center;
|
|
9
9
|
width: 100%;
|
|
10
|
-
margin-top:
|
|
10
|
+
margin-top: var(--primitive-spacing-90);
|
|
11
11
|
min-height: 1rem;
|
|
12
12
|
}
|
|
13
13
|
.quickGuidePanels .contentHeader .close {
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
z-index: 10;
|
|
23
23
|
}
|
|
24
24
|
.quickGuidePanels .navigationButtonContainer .navigationButton {
|
|
25
|
-
margin: 0
|
|
25
|
+
margin: 0 var(--primitive-spacing-12);
|
|
26
26
|
}
|
package/RadioItem/RadioItem.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Type definitions for limestone/RadioItem
|
|
2
2
|
|
|
3
3
|
import { ToggleableProps as ui_Toggleable_ToggleableProps } from "@enact/ui/Toggleable";
|
|
4
|
-
import { ItemProps as limestone_Item_ItemProps } from "limestone/Item";
|
|
5
4
|
import * as React from "react";
|
|
5
|
+
import { ItemProps as limestone_Item_ItemProps } from "limestone/Item";
|
|
6
6
|
|
|
7
7
|
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
8
8
|
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
@@ -19,8 +19,10 @@ export class RadioItemBase extends React.Component<
|
|
|
19
19
|
Merge<React.HTMLProps<HTMLElement>, RadioItemBaseProps>
|
|
20
20
|
> {}
|
|
21
21
|
|
|
22
|
-
export interface RadioItemProps
|
|
23
|
-
|
|
22
|
+
export interface RadioItemProps extends Merge<
|
|
23
|
+
RadioItemBaseProps,
|
|
24
|
+
RadioItemDecoratorProps
|
|
25
|
+
> {
|
|
24
26
|
/**
|
|
25
27
|
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
26
28
|
corresponding internal elements and states of this component.
|
|
@@ -50,10 +52,21 @@ export class RadioItem extends React.Component<
|
|
|
50
52
|
Merge<React.HTMLProps<HTMLElement>, RadioItemProps>
|
|
51
53
|
> {}
|
|
52
54
|
|
|
53
|
-
export interface RadioItemDecoratorProps
|
|
54
|
-
extends ui_Toggleable_ToggleableProps {}
|
|
55
|
+
export interface RadioItemDecoratorProps extends ui_Toggleable_ToggleableProps {}
|
|
55
56
|
export function RadioItemDecorator<P>(
|
|
56
57
|
Component: React.ComponentType<P> | string,
|
|
57
58
|
): React.ComponentType<P & RadioItemDecoratorProps>;
|
|
58
59
|
|
|
60
|
+
export interface RadioItemGroupProps {}
|
|
61
|
+
/**
|
|
62
|
+
* A container that surrounds multiple RadioItems.
|
|
63
|
+
*
|
|
64
|
+
* A list of multiple RadioItems wrapped with a RadioItemGroup component gets
|
|
65
|
+
required audio guidance.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
export class RadioItemGroup extends React.Component<
|
|
69
|
+
Merge<React.HTMLProps<HTMLElement>, RadioItemGroupProps>
|
|
70
|
+
> {}
|
|
71
|
+
|
|
59
72
|
export default RadioItem;
|
package/RadioItem/RadioItem.js
CHANGED
|
@@ -3,18 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.RadioItemDecorator = exports.RadioItemBase = exports.RadioItem = void 0;
|
|
6
|
+
exports["default"] = exports.RadioItemGroup = exports.RadioItemDecorator = exports.RadioItemBase = exports.RadioItem = void 0;
|
|
7
7
|
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _util = require("@enact/core/util");
|
|
9
|
+
var _Group = _interopRequireDefault(require("@enact/ui/Group"));
|
|
8
10
|
var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
|
|
9
11
|
var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
|
|
10
12
|
var _Toggleable = _interopRequireDefault(require("@enact/ui/Toggleable"));
|
|
13
|
+
var _IString = _interopRequireDefault(require("ilib/lib/IString"));
|
|
11
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
15
|
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
13
16
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
17
|
+
var _$L = _interopRequireDefault(require("../internal/$L"));
|
|
14
18
|
var _Item = require("../Item");
|
|
15
19
|
var _RadioItemModule = _interopRequireDefault(require("./RadioItem.module.css"));
|
|
16
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
var _excluded = ["children", "css", "icon", "selected", "slotBefore"]
|
|
21
|
+
var _excluded = ["children", "css", "icon", "selected", "slotBefore"],
|
|
22
|
+
_excluded2 = ["children", "groupId", "itemProps"],
|
|
23
|
+
_excluded3 = ["children"];
|
|
18
24
|
/**
|
|
19
25
|
* Provides a Limestone-themed Item component with an interactive radio toggle icon.
|
|
20
26
|
*
|
|
@@ -143,4 +149,65 @@ var RadioItemDecorator = exports.RadioItemDecorator = (0, _compose["default"])((
|
|
|
143
149
|
* @public
|
|
144
150
|
*/
|
|
145
151
|
var RadioItem = exports.RadioItem = (0, _Pure["default"])(RadioItemDecorator(RadioItemBase));
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* A container that surrounds multiple RadioItems.
|
|
155
|
+
*
|
|
156
|
+
* A list of multiple RadioItems wrapped with a RadioItemGroup component gets
|
|
157
|
+
* required audio guidance.
|
|
158
|
+
*
|
|
159
|
+
* @class RadioItemGroup
|
|
160
|
+
* @memberof limestone/RadioItem
|
|
161
|
+
* @ui
|
|
162
|
+
* @public
|
|
163
|
+
*/
|
|
164
|
+
var _RadioItemGroup = exports.RadioItemGroup = function RadioItemGroup(props) {
|
|
165
|
+
(0, _util.checkPropTypes)(_RadioItemGroup, props);
|
|
166
|
+
var children = props.children,
|
|
167
|
+
groupId = props.groupId,
|
|
168
|
+
itemProps = props.itemProps,
|
|
169
|
+
rest = _objectWithoutProperties(props, _excluded2);
|
|
170
|
+
if (typeof children[0] === 'string') {
|
|
171
|
+
// The case of multiple radio items are represented by string array instead of `RadioItem` components using `ui/Group`
|
|
172
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
173
|
+
role: "region",
|
|
174
|
+
"aria-labelledby": groupId || "radioItemGroup",
|
|
175
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Group["default"], _objectSpread(_objectSpread({}, rest), {}, {
|
|
176
|
+
id: groupId || "radioItemGroup",
|
|
177
|
+
"aria-label": new _IString["default"]((0, _$L["default"])('{total} items in total')).format({
|
|
178
|
+
'total': children.length
|
|
179
|
+
}),
|
|
180
|
+
childComponent: RadioItem,
|
|
181
|
+
childSelect: "onToggle",
|
|
182
|
+
itemProps: _objectSpread({}, itemProps),
|
|
183
|
+
children: children
|
|
184
|
+
}))
|
|
185
|
+
});
|
|
186
|
+
} else {
|
|
187
|
+
// The case of multiple radio items are represented by `RadioItem` components
|
|
188
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
189
|
+
role: "region",
|
|
190
|
+
"aria-labelledby": groupId || "radioItemGroup",
|
|
191
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
192
|
+
role: "group",
|
|
193
|
+
id: groupId || "radioItemGroup",
|
|
194
|
+
"aria-label": new _IString["default"]((0, _$L["default"])('{total} items in total')).format({
|
|
195
|
+
'total': children.length
|
|
196
|
+
}),
|
|
197
|
+
children: children.map(function (child, index) {
|
|
198
|
+
var _child$props = child.props,
|
|
199
|
+
itemValue = _child$props.children,
|
|
200
|
+
childRest = _objectWithoutProperties(_child$props, _excluded3);
|
|
201
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioItem, _objectSpread(_objectSpread(_objectSpread({}, childRest), itemProps), {}, {
|
|
202
|
+
children: itemValue
|
|
203
|
+
}), index);
|
|
204
|
+
})
|
|
205
|
+
}))
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
_RadioItemGroup.propTypes = {
|
|
210
|
+
groupId: _propTypes["default"].string,
|
|
211
|
+
itemProps: _propTypes["default"].object
|
|
212
|
+
};
|
|
146
213
|
var _default = exports["default"] = RadioItem;
|