@ark-ui/solid 3.0.0-7 → 3.0.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.
- package/README.md +41 -35
- package/dist/cjs/index.js +49 -24
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +47 -25
- package/dist/esm/index.js.map +1 -1
- package/dist/source/components/color-picker/color-picker-view.jsx +0 -1
- package/dist/source/components/pagination/pagination-root.jsx +1 -0
- package/dist/source/components/radio-group/index.js +1 -0
- package/dist/source/components/radio-group/radio-group-item-control.jsx +1 -4
- package/dist/source/components/radio-group/radio-group-item-hidden-input.jsx +10 -0
- package/dist/source/components/radio-group/radio-group.js +1 -0
- package/dist/source/components/segment-group/index.js +1 -0
- package/dist/source/components/segment-group/segment-group-item-control.jsx +1 -4
- package/dist/source/components/segment-group/segment-group-item-hidden-input.jsx +10 -0
- package/dist/source/components/segment-group/segment-group.js +1 -0
- package/dist/source/components/slider/index.js +1 -0
- package/dist/source/components/slider/slider-hidden-input.jsx +10 -0
- package/dist/source/components/slider/slider-thumb.jsx +6 -3
- package/dist/source/components/slider/slider.js +1 -0
- package/dist/source/components/slider/use-slider-thumb-props-context.js +5 -0
- package/dist/types/components/color-picker/color-picker-view.d.ts +3 -4
- package/dist/types/components/pagination/index.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +1 -1
- package/dist/types/components/radio-group/index.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group-item-hidden-input.d.ts +4 -0
- package/dist/types/components/radio-group/radio-group.d.ts +1 -0
- package/dist/types/components/segment-group/index.d.ts +3 -2
- package/dist/types/components/segment-group/segment-group-item-hidden-input.d.ts +4 -0
- package/dist/types/components/segment-group/segment-group.d.ts +1 -0
- package/dist/types/components/slider/index.d.ts +2 -1
- package/dist/types/components/slider/slider-hidden-input.d.ts +4 -0
- package/dist/types/components/slider/slider.d.ts +1 -0
- package/dist/types/components/slider/use-slider-thumb-props-context.d.ts +2 -0
- package/package.json +45 -45
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Welcome to Ark UI
|
|
2
2
|
|
|
3
|
-
Ark UI is a headless, open-source UI library with over 30+ components designed for building
|
|
3
|
+
Ark UI is a headless, open-source UI library with over 30+ components designed for building
|
|
4
|
+
reusable, scalable Design Systems. It supports a wide range of JavaScript frameworks, offering
|
|
5
|
+
dedciated packages for each supported framework.
|
|
4
6
|
|
|
5
7
|
## Supported Frameworks
|
|
6
8
|
|
|
@@ -12,37 +14,37 @@ Ark UI is available for the following JavaScript frameworks:
|
|
|
12
14
|
|
|
13
15
|
## Available Components
|
|
14
16
|
|
|
15
|
-
- [Accordion](https://ark-ui.com/docs/components/accordion)
|
|
16
|
-
- [Avatar](https://ark-ui.com/docs/components/avatar)
|
|
17
|
-
- [Carousel](https://ark-ui.com/docs/components/carousel)
|
|
18
|
-
- [Checkbox](https://ark-ui.com/docs/components/checkbox)
|
|
19
|
-
- [Color Picker](https://ark-ui.com/docs/components/color-picker)
|
|
20
|
-
- [Combobox](https://ark-ui.com/docs/components/combobox)
|
|
21
|
-
- [Date Picker](https://ark-ui.com/docs/components/date-picker)
|
|
22
|
-
- [Dialog](https://ark-ui.com/docs/components/dialog)
|
|
23
|
-
- [Editable](https://ark-ui.com/docs/components/editable)
|
|
24
|
-
- [File Upload](https://ark-ui.com/docs/components/file-upload)
|
|
25
|
-
- [Hover Card](https://ark-ui.com/docs/components/hover-card)
|
|
26
|
-
- [Menu](https://ark-ui.com/docs/components/menu)
|
|
27
|
-
- [Number Input](https://ark-ui.com/docs/components/number-input)
|
|
28
|
-
- [Pagination](https://ark-ui.com/docs/components/pagination)
|
|
29
|
-
- [Pin Input](https://ark-ui.com/docs/components/pin-input)
|
|
30
|
-
- [Popover](https://ark-ui.com/docs/components/popover)
|
|
31
|
-
- [Progress](https://ark-ui.com/docs/components/progress)
|
|
32
|
-
- [Radio Group](https://ark-ui.com/docs/components/radio-group)
|
|
33
|
-
- [Range Slider](https://ark-ui.com/docs/components/slider)
|
|
34
|
-
- [Rating Group](https://ark-ui.com/docs/components/rating-group)
|
|
35
|
-
- [Segment Group](https://ark-ui.com/docs/components/segment-group)
|
|
36
|
-
- [Select](https://ark-ui.com/docs/components/select)
|
|
37
|
-
- [Slider](https://ark-ui.com/docs/components/slider)
|
|
38
|
-
- [Splitter](https://ark-ui.com/docs/components/splitter)
|
|
39
|
-
- [Switch](https://ark-ui.com/docs/components/switch)
|
|
40
|
-
- [Tabs](https://ark-ui.com/docs/components/tabs)
|
|
41
|
-
- [Tags Input](https://ark-ui.com/docs/components/tags-input)
|
|
42
|
-
- [Toast](https://ark-ui.com/docs/components/toast)
|
|
43
|
-
- [Toggle Group](https://ark-ui.com/docs/components/toggle-group)
|
|
44
|
-
- [Tooltip](https://ark-ui.com/docs/components/tooltip)
|
|
45
|
-
- [Tree View](https://ark-ui.com/docs/components/tree-view)
|
|
17
|
+
- [Accordion](https://ark-ui.com/solid/docs/components/accordion)
|
|
18
|
+
- [Avatar](https://ark-ui.com/solid/docs/components/avatar)
|
|
19
|
+
- [Carousel](https://ark-ui.com/solid/docs/components/carousel)
|
|
20
|
+
- [Checkbox](https://ark-ui.com/solid/docs/components/checkbox)
|
|
21
|
+
- [Color Picker](https://ark-ui.com/solid/docs/components/color-picker)
|
|
22
|
+
- [Combobox](https://ark-ui.com/solid/docs/components/combobox)
|
|
23
|
+
- [Date Picker](https://ark-ui.com/solid/docs/components/date-picker)
|
|
24
|
+
- [Dialog](https://ark-ui.com/solid/docs/components/dialog)
|
|
25
|
+
- [Editable](https://ark-ui.com/solid/docs/components/editable)
|
|
26
|
+
- [File Upload](https://ark-ui.com/solid/docs/components/file-upload)
|
|
27
|
+
- [Hover Card](https://ark-ui.com/solid/docs/components/hover-card)
|
|
28
|
+
- [Menu](https://ark-ui.com/solid/docs/components/menu)
|
|
29
|
+
- [Number Input](https://ark-ui.com/solid/docs/components/number-input)
|
|
30
|
+
- [Pagination](https://ark-ui.com/solid/docs/components/pagination)
|
|
31
|
+
- [Pin Input](https://ark-ui.com/solid/docs/components/pin-input)
|
|
32
|
+
- [Popover](https://ark-ui.com/solid/docs/components/popover)
|
|
33
|
+
- [Progress](https://ark-ui.com/solid/docs/components/progress)
|
|
34
|
+
- [Radio Group](https://ark-ui.com/solid/docs/components/radio-group)
|
|
35
|
+
- [Range Slider](https://ark-ui.com/solid/docs/components/slider)
|
|
36
|
+
- [Rating Group](https://ark-ui.com/solid/docs/components/rating-group)
|
|
37
|
+
- [Segment Group](https://ark-ui.com/solid/docs/components/segment-group)
|
|
38
|
+
- [Select](https://ark-ui.com/solid/docs/components/select)
|
|
39
|
+
- [Slider](https://ark-ui.com/solid/docs/components/slider)
|
|
40
|
+
- [Splitter](https://ark-ui.com/solid/docs/components/splitter)
|
|
41
|
+
- [Switch](https://ark-ui.com/solid/docs/components/switch)
|
|
42
|
+
- [Tabs](https://ark-ui.com/solid/docs/components/tabs)
|
|
43
|
+
- [Tags Input](https://ark-ui.com/solid/docs/components/tags-input)
|
|
44
|
+
- [Toast](https://ark-ui.com/solid/docs/components/toast)
|
|
45
|
+
- [Toggle Group](https://ark-ui.com/solid/docs/components/toggle-group)
|
|
46
|
+
- [Tooltip](https://ark-ui.com/solid/docs/components/tooltip)
|
|
47
|
+
- [Tree View](https://ark-ui.com/solid/docs/components/tree-view)
|
|
46
48
|
|
|
47
49
|
## Installation
|
|
48
50
|
|
|
@@ -97,7 +99,8 @@ export const MySlider = (props: SliderProps) => {
|
|
|
97
99
|
|
|
98
100
|
## Documentation
|
|
99
101
|
|
|
100
|
-
For more detailed documentation and examples, please visit the
|
|
102
|
+
For more detailed documentation and examples, please visit the
|
|
103
|
+
[official documentation](https://ark-ui.com/).
|
|
101
104
|
|
|
102
105
|
## Roadmap
|
|
103
106
|
|
|
@@ -105,8 +108,11 @@ You can request, vote for, and check upcoming features on our [roadmap](https://
|
|
|
105
108
|
|
|
106
109
|
## Contribution
|
|
107
110
|
|
|
108
|
-
We welcome contributions to Ark UI. Please read our
|
|
111
|
+
We welcome contributions to Ark UI. Please read our
|
|
112
|
+
[contributing guidelines](https://github.com/chakra-ui/ark/blob/main/CONTRIBUTING.md) for more
|
|
113
|
+
information on how to contribute.
|
|
109
114
|
|
|
110
115
|
## License
|
|
111
116
|
|
|
112
|
-
This project is licensed under the terms of the
|
|
117
|
+
This project is licensed under the terms of the
|
|
118
|
+
[MIT license](https://github.com/chakra-ui/ark/blob/main/LICENSE).
|
package/dist/cjs/index.js
CHANGED
|
@@ -201,7 +201,7 @@ const [EnvironmentContextProvider, useEnvironmentContext] = createContext({
|
|
|
201
201
|
})
|
|
202
202
|
});
|
|
203
203
|
|
|
204
|
-
var _tmpl$$
|
|
204
|
+
var _tmpl$$4 = /*#__PURE__*/web.template(`<span hidden>`);
|
|
205
205
|
const EnvironmentProvider = props => {
|
|
206
206
|
const [spanRef, setSpanRef] = solidJs.createSignal();
|
|
207
207
|
const getRootNode = () => runIfFn(props.value) ?? spanRef()?.ownerDocument ?? document;
|
|
@@ -218,7 +218,7 @@ const EnvironmentProvider = props => {
|
|
|
218
218
|
return !props.value;
|
|
219
219
|
},
|
|
220
220
|
get children() {
|
|
221
|
-
var _el$ = _tmpl$$
|
|
221
|
+
var _el$ = _tmpl$$4();
|
|
222
222
|
web.use(setSpanRef, _el$);
|
|
223
223
|
return _el$;
|
|
224
224
|
}
|
|
@@ -1044,8 +1044,6 @@ const ColorPickerValueText = props => {
|
|
|
1044
1044
|
const ColorPickerView = props => {
|
|
1045
1045
|
const api = useColorPickerContext();
|
|
1046
1046
|
const mergedProps = solid.mergeProps(() => anatomy.colorPickerAnatomy.build().view.attrs, props);
|
|
1047
|
-
|
|
1048
|
-
// TODO @segunadebayo
|
|
1049
1047
|
return web.createComponent(solidJs.Show, {
|
|
1050
1048
|
get when() {
|
|
1051
1049
|
return api().format === props.format;
|
|
@@ -1337,14 +1335,14 @@ const DatePickerLabel = props => {
|
|
|
1337
1335
|
return web.createComponent(ark.label, mergedProps);
|
|
1338
1336
|
};
|
|
1339
1337
|
|
|
1340
|
-
var _tmpl$$
|
|
1338
|
+
var _tmpl$$3 = /*#__PURE__*/web.template(`<option>`);
|
|
1341
1339
|
const DatePickerMonthSelect = props => {
|
|
1342
1340
|
const api = useDatePickerContext();
|
|
1343
1341
|
const mergedProps = solid.mergeProps(() => api().monthSelectProps, props);
|
|
1344
1342
|
return web.createComponent(ark.select, web.mergeProps(mergedProps, {
|
|
1345
1343
|
get children() {
|
|
1346
1344
|
return api().getMonths().map(month => (() => {
|
|
1347
|
-
var _el$ = _tmpl$$
|
|
1345
|
+
var _el$ = _tmpl$$3();
|
|
1348
1346
|
web.insert(_el$, () => month.label);
|
|
1349
1347
|
web.effect(() => _el$.value = month.value);
|
|
1350
1348
|
return _el$;
|
|
@@ -1573,7 +1571,7 @@ const DatePickerViewTrigger = props => {
|
|
|
1573
1571
|
return web.createComponent(ark.button, mergedProps);
|
|
1574
1572
|
};
|
|
1575
1573
|
|
|
1576
|
-
var _tmpl$$
|
|
1574
|
+
var _tmpl$$2 = /*#__PURE__*/web.template(`<option>`);
|
|
1577
1575
|
const DatePickerYearSelect = props => {
|
|
1578
1576
|
const api = useDatePickerContext();
|
|
1579
1577
|
const mergedProps = solid.mergeProps(() => api().yearSelectProps, props);
|
|
@@ -1583,7 +1581,7 @@ const DatePickerYearSelect = props => {
|
|
|
1583
1581
|
from: 1_000,
|
|
1584
1582
|
to: 4_000
|
|
1585
1583
|
}).map(year => (() => {
|
|
1586
|
-
var _el$ = _tmpl$$
|
|
1584
|
+
var _el$ = _tmpl$$2();
|
|
1587
1585
|
_el$.value = year;
|
|
1588
1586
|
web.insert(_el$, year);
|
|
1589
1587
|
return _el$;
|
|
@@ -2578,7 +2576,7 @@ const usePagination = props => {
|
|
|
2578
2576
|
};
|
|
2579
2577
|
|
|
2580
2578
|
const PaginationRoot = props => {
|
|
2581
|
-
const [usePaginationProps, localProps] = createSplitProps()(props, ['count', 'defaultPage', 'id', 'ids', 'onPageChange', 'page', 'pageSize', 'siblingCount', 'translations', 'type']);
|
|
2579
|
+
const [usePaginationProps, localProps] = createSplitProps()(props, ['count', 'defaultPage', 'id', 'ids', 'onPageChange', 'onPageSizeChange', 'page', 'pageSize', 'siblingCount', 'translations', 'type']);
|
|
2582
2580
|
const api = usePagination(usePaginationProps);
|
|
2583
2581
|
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
2584
2582
|
return web.createComponent(PaginationProvider, {
|
|
@@ -2955,16 +2953,18 @@ const RadioGroupItem = props => {
|
|
|
2955
2953
|
|
|
2956
2954
|
const RadioGroupItemContext = props => props.children(useRadioGroupItemContext());
|
|
2957
2955
|
|
|
2958
|
-
var _tmpl$$3 = /*#__PURE__*/web.template(`<input>`);
|
|
2959
2956
|
const RadioGroupItemControl = props => {
|
|
2960
2957
|
const radioGroup = useRadioGroupContext();
|
|
2961
2958
|
const itemProps = useRadioGroupItemPropsContext();
|
|
2962
2959
|
const mergedProps = solid.mergeProps(() => radioGroup().getItemControlProps(itemProps), props);
|
|
2963
|
-
return
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2960
|
+
return web.createComponent(ark.div, mergedProps);
|
|
2961
|
+
};
|
|
2962
|
+
|
|
2963
|
+
const RadioGroupItemHiddenInput = props => {
|
|
2964
|
+
const radioGroup = useRadioGroupContext();
|
|
2965
|
+
const itemProps = useRadioGroupItemPropsContext();
|
|
2966
|
+
const mergedProps = solid.mergeProps(() => radioGroup().getItemHiddenInputProps(itemProps), props);
|
|
2967
|
+
return web.createComponent(ark.input, mergedProps);
|
|
2968
2968
|
};
|
|
2969
2969
|
|
|
2970
2970
|
const RadioGroupItemText = props => {
|
|
@@ -3016,6 +3016,7 @@ var radioGroup = /*#__PURE__*/Object.freeze({
|
|
|
3016
3016
|
Item: RadioGroupItem,
|
|
3017
3017
|
ItemContext: RadioGroupItemContext,
|
|
3018
3018
|
ItemControl: RadioGroupItemControl,
|
|
3019
|
+
ItemHiddenInput: RadioGroupItemHiddenInput,
|
|
3019
3020
|
ItemText: RadioGroupItemText,
|
|
3020
3021
|
Label: RadioGroupLabel,
|
|
3021
3022
|
Root: RadioGroupRoot
|
|
@@ -3149,16 +3150,18 @@ const SegmentGroupItem = props => {
|
|
|
3149
3150
|
|
|
3150
3151
|
const SegmentGroupItemContext = props => props.children(useSegmentGroupItemContext());
|
|
3151
3152
|
|
|
3152
|
-
var _tmpl$$2 = /*#__PURE__*/web.template(`<input>`);
|
|
3153
3153
|
const SegmentGroupItemControl = props => {
|
|
3154
3154
|
const segmentGroup = useSegmentGroupContext();
|
|
3155
3155
|
const itemProps = useSegmentGroupItemPropsContext();
|
|
3156
3156
|
const mergedProps = solid.mergeProps(() => segmentGroup().getItemControlProps(itemProps), anatomy.segmentGroupAnatomy.build().itemControl.attrs, props);
|
|
3157
|
-
return
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3157
|
+
return web.createComponent(ark.div, mergedProps);
|
|
3158
|
+
};
|
|
3159
|
+
|
|
3160
|
+
const SegmentGroupItemHiddenInput = props => {
|
|
3161
|
+
const segmentGroup = useSegmentGroupContext();
|
|
3162
|
+
const itemProps = useSegmentGroupItemPropsContext();
|
|
3163
|
+
const mergedProps = solid.mergeProps(() => segmentGroup().getItemHiddenInputProps(itemProps), props);
|
|
3164
|
+
return web.createComponent(ark.input, mergedProps);
|
|
3162
3165
|
};
|
|
3163
3166
|
|
|
3164
3167
|
const SegmentGroupItemText = props => {
|
|
@@ -3210,6 +3213,7 @@ var segmentGroup = /*#__PURE__*/Object.freeze({
|
|
|
3210
3213
|
Item: SegmentGroupItem,
|
|
3211
3214
|
ItemContext: SegmentGroupItemContext,
|
|
3212
3215
|
ItemControl: SegmentGroupItemControl,
|
|
3216
|
+
ItemHiddenInput: SegmentGroupItemHiddenInput,
|
|
3213
3217
|
ItemText: SegmentGroupItemText,
|
|
3214
3218
|
Label: SegmentGroupLabel,
|
|
3215
3219
|
Root: SegmentGroupRoot
|
|
@@ -3471,6 +3475,18 @@ const SliderControl = props => {
|
|
|
3471
3475
|
return web.createComponent(ark.div, mergedProps);
|
|
3472
3476
|
};
|
|
3473
3477
|
|
|
3478
|
+
const [SliderThumbPropsProvider, useSliderThumbPropsContext] = createContext({
|
|
3479
|
+
hookName: 'useSliderThumbPropsContext',
|
|
3480
|
+
providerName: '<SliderThumbPropsProvider />'
|
|
3481
|
+
});
|
|
3482
|
+
|
|
3483
|
+
const SliderHiddenInput = props => {
|
|
3484
|
+
const slider = useSliderContext();
|
|
3485
|
+
const thumbProps = useSliderThumbPropsContext();
|
|
3486
|
+
const mergedProps = solid.mergeProps(slider().getHiddenInputProps(thumbProps), props);
|
|
3487
|
+
return web.createComponent(ark.input, mergedProps);
|
|
3488
|
+
};
|
|
3489
|
+
|
|
3474
3490
|
const SliderLabel = props => {
|
|
3475
3491
|
const api = useSliderContext();
|
|
3476
3492
|
const mergedProps = solid.mergeProps(() => api().labelProps, props);
|
|
@@ -3527,9 +3543,14 @@ const SliderRoot = props => {
|
|
|
3527
3543
|
|
|
3528
3544
|
const SliderThumb = props => {
|
|
3529
3545
|
const [thumbProps, localProps] = createSplitProps()(props, ['index', 'name']);
|
|
3530
|
-
const
|
|
3531
|
-
const mergedProps = solid.mergeProps(() =>
|
|
3532
|
-
return web.createComponent(
|
|
3546
|
+
const slider = useSliderContext();
|
|
3547
|
+
const mergedProps = solid.mergeProps(() => slider().getThumbProps(thumbProps), localProps);
|
|
3548
|
+
return web.createComponent(SliderThumbPropsProvider, {
|
|
3549
|
+
value: thumbProps,
|
|
3550
|
+
get children() {
|
|
3551
|
+
return web.createComponent(ark.div, mergedProps);
|
|
3552
|
+
}
|
|
3553
|
+
});
|
|
3533
3554
|
};
|
|
3534
3555
|
|
|
3535
3556
|
const SliderTrack = props => {
|
|
@@ -3552,6 +3573,7 @@ var slider = /*#__PURE__*/Object.freeze({
|
|
|
3552
3573
|
__proto__: null,
|
|
3553
3574
|
Context: SliderContext,
|
|
3554
3575
|
Control: SliderControl,
|
|
3576
|
+
HiddenInput: SliderHiddenInput,
|
|
3555
3577
|
Label: SliderLabel,
|
|
3556
3578
|
Marker: SliderMarker,
|
|
3557
3579
|
MarkerGroup: SliderMarkerGroup,
|
|
@@ -4602,6 +4624,7 @@ exports.RadioGroupIndicator = RadioGroupIndicator;
|
|
|
4602
4624
|
exports.RadioGroupItem = RadioGroupItem;
|
|
4603
4625
|
exports.RadioGroupItemContext = RadioGroupItemContext;
|
|
4604
4626
|
exports.RadioGroupItemControl = RadioGroupItemControl;
|
|
4627
|
+
exports.RadioGroupItemHiddenInput = RadioGroupItemHiddenInput;
|
|
4605
4628
|
exports.RadioGroupItemText = RadioGroupItemText;
|
|
4606
4629
|
exports.RadioGroupLabel = RadioGroupLabel;
|
|
4607
4630
|
exports.RadioGroupRoot = RadioGroupRoot;
|
|
@@ -4619,6 +4642,7 @@ exports.SegmentGroupIndicator = SegmentGroupIndicator;
|
|
|
4619
4642
|
exports.SegmentGroupItem = SegmentGroupItem;
|
|
4620
4643
|
exports.SegmentGroupItemContext = SegmentGroupItemContext;
|
|
4621
4644
|
exports.SegmentGroupItemControl = SegmentGroupItemControl;
|
|
4645
|
+
exports.SegmentGroupItemHiddenInput = SegmentGroupItemHiddenInput;
|
|
4622
4646
|
exports.SegmentGroupItemText = SegmentGroupItemText;
|
|
4623
4647
|
exports.SegmentGroupLabel = SegmentGroupLabel;
|
|
4624
4648
|
exports.SegmentGroupRoot = SegmentGroupRoot;
|
|
@@ -4643,6 +4667,7 @@ exports.SelectValueText = SelectValueText;
|
|
|
4643
4667
|
exports.Slider = slider;
|
|
4644
4668
|
exports.SliderContext = SliderContext;
|
|
4645
4669
|
exports.SliderControl = SliderControl;
|
|
4670
|
+
exports.SliderHiddenInput = SliderHiddenInput;
|
|
4646
4671
|
exports.SliderLabel = SliderLabel;
|
|
4647
4672
|
exports.SliderMarker = SliderMarker;
|
|
4648
4673
|
exports.SliderMarkerGroup = SliderMarkerGroup;
|