@rio-cloud/uikit-mcp 1.1.4 → 1.1.6
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 +1 -0
- package/dist/doc-metadata.json +188 -88
- package/dist/docs/components/accentBar.md +35 -3
- package/dist/docs/components/activity.md +14 -3
- package/dist/docs/components/animatedNumber.md +17 -4
- package/dist/docs/components/animatedTextReveal.md +54 -8
- package/dist/docs/components/animations.md +33 -33
- package/dist/docs/components/appHeader.md +65 -9
- package/dist/docs/components/appLayout.md +566 -61
- package/dist/docs/components/appNavigationBar.md +55 -3
- package/dist/docs/components/areaCharts.md +14 -14
- package/dist/docs/components/aspectRatioPlaceholder.md +11 -3
- package/dist/docs/components/assetTree.md +1174 -328
- package/dist/docs/components/autosuggests.md +2 -2
- package/dist/docs/components/avatar.md +25 -3
- package/dist/docs/components/banner.md +3 -3
- package/dist/docs/components/barCharts.md +38 -38
- package/dist/docs/components/barList.md +22 -10
- package/dist/docs/components/basicMap.md +2 -2
- package/dist/docs/components/bottomSheet.md +100 -3
- package/dist/docs/components/button.md +549 -36
- package/dist/docs/components/buttonToolbar.md +10 -3
- package/dist/docs/components/calendarStripe.md +127 -85
- package/dist/docs/components/card.md +11 -3
- package/dist/docs/components/carousel.md +2 -2
- package/dist/docs/components/chartColors.md +2 -2
- package/dist/docs/components/chartsGettingStarted.md +2 -2
- package/dist/docs/components/chat.md +3 -3
- package/dist/docs/components/checkbox.md +67 -45
- package/dist/docs/components/circularProgress.md +465 -0
- package/dist/docs/components/clearableInput.md +18 -18
- package/dist/docs/components/collapse.md +28 -4
- package/dist/docs/components/composedCharts.md +20 -20
- package/dist/docs/components/contentLoader.md +126 -105
- package/dist/docs/components/dataTabs.md +191 -11
- package/dist/docs/components/datepickers.md +735 -723
- package/dist/docs/components/dialogs.md +362 -2
- package/dist/docs/components/divider.md +15 -3
- package/dist/docs/components/dropdowns.md +4548 -4355
- package/dist/docs/components/editableContent.md +187 -3
- package/dist/docs/components/expander.md +52 -5
- package/dist/docs/components/fade.md +42 -7
- package/dist/docs/components/fadeExpander.md +13 -4
- package/dist/docs/components/fadeUp.md +22 -4
- package/dist/docs/components/feedback.md +44 -3
- package/dist/docs/components/filePickers.md +45 -3
- package/dist/docs/components/formLabel.md +20 -5
- package/dist/docs/components/groupedItemList.md +54 -3
- package/dist/docs/components/iconList.md +5 -5
- package/dist/docs/components/imagePreloader.md +7 -3
- package/dist/docs/components/labeledElement.md +13 -3
- package/dist/docs/components/licensePlate.md +11 -3
- package/dist/docs/components/lineCharts.md +10 -10
- package/dist/docs/components/listMenu.md +78 -8
- package/dist/docs/components/loadMore.md +29 -3
- package/dist/docs/components/mainNavigation.md +5 -5
- package/dist/docs/components/mapCircle.md +2 -2
- package/dist/docs/components/mapCluster.md +2 -2
- package/dist/docs/components/mapContext.md +2 -2
- package/dist/docs/components/mapDraggableMarker.md +2 -2
- package/dist/docs/components/mapGettingStarted.md +2 -2
- package/dist/docs/components/mapInfoBubble.md +2 -2
- package/dist/docs/components/mapLayerGroup.md +2 -2
- package/dist/docs/components/mapMarker.md +2 -2
- package/dist/docs/components/mapPolygon.md +2 -2
- package/dist/docs/components/mapRoute.md +2 -2
- package/dist/docs/components/mapRouteGenerator.md +2 -2
- package/dist/docs/components/mapSettings.md +9 -9
- package/dist/docs/components/mapUtils.md +2 -2
- package/dist/docs/components/multiselects.md +2 -2
- package/dist/docs/components/noData.md +23 -3
- package/dist/docs/components/notifications.md +2 -2
- package/dist/docs/components/numbercontrol.md +54 -5
- package/dist/docs/components/onboarding.md +26 -2
- package/dist/docs/components/page.md +33 -3
- package/dist/docs/components/pager.md +15 -3
- package/dist/docs/components/pieCharts.md +89 -78
- package/dist/docs/components/popover.md +40 -2
- package/dist/docs/components/position.md +11 -3
- package/dist/docs/components/radialBarCharts.md +2054 -2012
- package/dist/docs/components/radioCardGroup.md +487 -0
- package/dist/docs/components/radiobutton.md +138 -10
- package/dist/docs/components/releaseNotes.md +19 -2
- package/dist/docs/components/resizer.md +14 -3
- package/dist/docs/components/responsiveColumnStripe.md +20 -3
- package/dist/docs/components/responsiveVideo.md +12 -3
- package/dist/docs/components/rioglyph.md +13 -3
- package/dist/docs/components/rules.md +95 -5
- package/dist/docs/components/saveableInput.md +400 -276
- package/dist/docs/components/selects.md +2 -2
- package/dist/docs/components/sidebar.md +39 -3
- package/dist/docs/components/sliders.md +38 -3
- package/dist/docs/components/smoothScrollbars.md +93 -3
- package/dist/docs/components/spinners.md +51 -3
- package/dist/docs/components/states.md +217 -2
- package/dist/docs/components/statsWidgets.md +123 -3
- package/dist/docs/components/statusBar.md +29 -3
- package/dist/docs/components/stepButton.md +9 -3
- package/dist/docs/components/steppedProgressBars.md +67 -3
- package/dist/docs/components/subNavigation.md +24 -17
- package/dist/docs/components/supportMarker.md +2 -2
- package/dist/docs/components/svgImage.md +13 -3
- package/dist/docs/components/switch.md +218 -82
- package/dist/docs/components/tables.md +2 -2
- package/dist/docs/components/tagManager.md +56 -2
- package/dist/docs/components/tags.md +33 -3
- package/dist/docs/components/teaser.md +30 -3
- package/dist/docs/components/textTruncateMiddle.md +151 -0
- package/dist/docs/components/timeline.md +2 -2
- package/dist/docs/components/timepicker.md +687 -63
- package/dist/docs/components/toggleButton.md +96 -10
- package/dist/docs/components/tooltip.md +30 -21
- package/dist/docs/components/tracker.md +631 -0
- package/dist/docs/components/virtualList.md +107 -84
- package/dist/docs/foundations.md +647 -275
- package/dist/docs/start/changelog.md +2 -738
- package/dist/docs/start/goodtoknow.md +2 -2
- package/dist/docs/start/guidelines/color-combinations.md +2 -2
- package/dist/docs/start/guidelines/custom-css.md +2 -2
- package/dist/docs/start/guidelines/custom-rioglyph.md +2 -2
- package/dist/docs/start/guidelines/formatting.md +2 -2
- package/dist/docs/start/guidelines/iframe.md +2 -2
- package/dist/docs/start/guidelines/obfuscate-data.md +2 -2
- package/dist/docs/start/guidelines/print-css.md +2 -2
- package/dist/docs/start/guidelines/spinner.md +82 -82
- package/dist/docs/start/guidelines/state-in-url.md +263 -0
- package/dist/docs/start/guidelines/supported-browsers.md +2 -2
- package/dist/docs/start/guidelines/writing.md +2 -2
- package/dist/docs/start/howto.md +10 -10
- package/dist/docs/start/intro.md +2 -2
- package/dist/docs/start/responsiveness.md +2 -2
- package/dist/docs/templates/common-table.md +15 -14
- package/dist/docs/templates/detail-views.md +3 -3
- package/dist/docs/templates/expandable-details.md +2 -2
- package/dist/docs/templates/feature-cards.md +56 -56
- package/dist/docs/templates/form-summary.md +23 -23
- package/dist/docs/templates/form-toggle.md +2 -2
- package/dist/docs/templates/list-blocks.md +204 -204
- package/dist/docs/templates/loading-progress.md +2 -2
- package/dist/docs/templates/options-panel.md +2 -2
- package/dist/docs/templates/panel-variants.md +2 -2
- package/dist/docs/templates/progress-cards.md +2 -2
- package/dist/docs/templates/progress-success.md +2 -2
- package/dist/docs/templates/settings-form.md +24 -24
- package/dist/docs/templates/stats-blocks.md +18 -18
- package/dist/docs/templates/table-panel.md +2 -2
- package/dist/docs/templates/table-row-animation.md +2 -2
- package/dist/docs/templates/usage-cards.md +2 -2
- package/dist/docs/utilities/classNames.md +191 -0
- package/dist/docs/utilities/deviceUtils.md +2 -2
- package/dist/docs/utilities/featureToggles.md +2 -2
- package/dist/docs/utilities/fuelTypeUtils.md +2 -2
- package/dist/docs/utilities/routeUtils.md +326 -90
- package/dist/docs/utilities/useAfterMount.md +2 -2
- package/dist/docs/utilities/useAutoAnimate.md +2 -2
- package/dist/docs/utilities/useAverage.md +2 -2
- package/dist/docs/utilities/useClickOutside.md +2 -2
- package/dist/docs/utilities/useClipboard.md +3 -3
- package/dist/docs/utilities/useCookies.md +188 -0
- package/dist/docs/utilities/useCount.md +2 -2
- package/dist/docs/utilities/useDarkMode.md +2 -2
- package/dist/docs/utilities/useDebugInfo.md +5 -5
- package/dist/docs/utilities/useEffectOnce.md +2 -2
- package/dist/docs/utilities/useElapsedTime.md +2 -2
- package/dist/docs/utilities/useElementSize.md +2 -2
- package/dist/docs/utilities/useEsc.md +2 -2
- package/dist/docs/utilities/useEvent.md +2 -2
- package/dist/docs/utilities/useFocusTrap.md +2 -2
- package/dist/docs/utilities/useFullscreen.md +2 -2
- package/dist/docs/utilities/useHover.md +2 -2
- package/dist/docs/utilities/useIncomingPostMessages.md +2 -2
- package/dist/docs/utilities/useInterval.md +2 -2
- package/dist/docs/utilities/useIsFocusWithin.md +2 -2
- package/dist/docs/utilities/useKey.md +2 -2
- package/dist/docs/utilities/useLocalStorage.md +2 -2
- package/dist/docs/utilities/useLocationSuggestions.md +2 -2
- package/dist/docs/utilities/useMax.md +2 -2
- package/dist/docs/utilities/useMin.md +2 -2
- package/dist/docs/utilities/useMutationObserver.md +2 -2
- package/dist/docs/utilities/useOnScreen.md +2 -2
- package/dist/docs/utilities/useOnlineStatus.md +2 -2
- package/dist/docs/utilities/usePostMessage.md +3 -3
- package/dist/docs/utilities/usePostMessageSender.md +2 -2
- package/dist/docs/utilities/usePrevious.md +2 -2
- package/dist/docs/utilities/useResizeObserver.md +2 -2
- package/dist/docs/utilities/useRioCookieConsent.md +90 -0
- package/dist/docs/utilities/useScrollPosition.md +2 -2
- package/dist/docs/utilities/useSearch.md +2 -2
- package/dist/docs/utilities/useSearchHighlight.md +815 -0
- package/dist/docs/utilities/useSorting.md +2 -2
- package/dist/docs/utilities/useStateWithValidation.md +2 -2
- package/dist/docs/utilities/useSum.md +2 -2
- package/dist/docs/utilities/useTableExport.md +53 -53
- package/dist/docs/utilities/useTableSelection.md +90 -90
- package/dist/docs/utilities/useTimeout.md +2 -2
- package/dist/docs/utilities/useToggle.md +3 -3
- package/dist/docs/utilities/useUrlState.md +418 -0
- package/dist/docs/utilities/useWindowResize.md +2 -2
- package/dist/index.mjs +8 -8
- package/dist/version.json +2 -2
- package/package.json +9 -9
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
*Category:* Components
|
|
4
4
|
*Section:* Interaction
|
|
5
|
-
*Source:* https://uikit.developers.rio.cloud
|
|
6
|
-
*Captured:* 2026-
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#/components/checkbox
|
|
6
|
+
*Captured:* 2026-02-23T13:41:39.429Z
|
|
7
7
|
|
|
8
8
|
## Checkbox
|
|
9
9
|
|
|
@@ -333,12 +333,17 @@ export default () => (
|
|
|
333
333
|
</div>
|
|
334
334
|
```
|
|
335
335
|
|
|
336
|
-
#### Props
|
|
336
|
+
#### Props (json)
|
|
337
337
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
338
|
+
```json
|
|
339
|
+
<div className='checkbox-text-wrapper display-flex justify-content-between'>
|
|
340
|
+
<div className='margin-right-15'>
|
|
341
|
+
<div className='text-medium text-size-16 text-color-darker'>Option 1</div>
|
|
342
|
+
<div className='text-color-dark'>This option is a first option</div>
|
|
343
|
+
</div>
|
|
344
|
+
<div className='checkbox-text' />
|
|
345
|
+
</div>
|
|
346
|
+
```
|
|
342
347
|
|
|
343
348
|
## Controlled example
|
|
344
349
|
|
|
@@ -354,7 +359,6 @@ Option 1Option 2Option 3
|
|
|
354
359
|
|
|
355
360
|
```tsx
|
|
356
361
|
import { useState } from 'react';
|
|
357
|
-
import { pull } from 'es-toolkit/compat';
|
|
358
362
|
|
|
359
363
|
import Checkbox from '@rio-cloud/rio-uikit/Checkbox';
|
|
360
364
|
|
|
@@ -362,11 +366,11 @@ export default () => {
|
|
|
362
366
|
const [selectedOptions, setSelectedOptions] = useState([1]);
|
|
363
367
|
|
|
364
368
|
const handleSelect = (selected: number) => {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
369
|
+
setSelectedOptions(prevSelectedOptions =>
|
|
370
|
+
prevSelectedOptions.includes(selected)
|
|
371
|
+
? prevSelectedOptions.filter(value => value !== selected)
|
|
372
|
+
: [...prevSelectedOptions, selected]
|
|
373
|
+
);
|
|
370
374
|
};
|
|
371
375
|
|
|
372
376
|
return (
|
|
@@ -410,12 +414,17 @@ export default () => {
|
|
|
410
414
|
</div>
|
|
411
415
|
```
|
|
412
416
|
|
|
413
|
-
#### Props
|
|
417
|
+
#### Props (json)
|
|
414
418
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
+
```json
|
|
420
|
+
<div className='checkbox-text-wrapper display-flex justify-content-between'>
|
|
421
|
+
<div className='margin-right-15'>
|
|
422
|
+
<div className='text-medium text-size-16 text-color-darker'>Option 1</div>
|
|
423
|
+
<div className='text-color-dark'>This option is a first option</div>
|
|
424
|
+
</div>
|
|
425
|
+
<div className='checkbox-text' />
|
|
426
|
+
</div>
|
|
427
|
+
```
|
|
419
428
|
|
|
420
429
|
## Custom card example
|
|
421
430
|
|
|
@@ -457,7 +466,6 @@ Strawberry
|
|
|
457
466
|
|
|
458
467
|
```tsx
|
|
459
468
|
import { useState } from 'react';
|
|
460
|
-
import { pull } from 'es-toolkit/compat';
|
|
461
469
|
|
|
462
470
|
import Checkbox from '@rio-cloud/rio-uikit/Checkbox';
|
|
463
471
|
|
|
@@ -471,11 +479,11 @@ export default () => {
|
|
|
471
479
|
const [selectedOptions, setSelectedOptions] = useState([1]);
|
|
472
480
|
|
|
473
481
|
const handleSelect = (selected: number) => {
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
482
|
+
setSelectedOptions(prevSelectedOptions =>
|
|
483
|
+
prevSelectedOptions.includes(selected)
|
|
484
|
+
? prevSelectedOptions.filter(value => value !== selected)
|
|
485
|
+
: [...prevSelectedOptions, selected]
|
|
486
|
+
);
|
|
479
487
|
};
|
|
480
488
|
|
|
481
489
|
return (
|
|
@@ -628,12 +636,17 @@ export default () => {
|
|
|
628
636
|
</form>
|
|
629
637
|
```
|
|
630
638
|
|
|
631
|
-
#### Props
|
|
639
|
+
#### Props (json)
|
|
632
640
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
641
|
+
```json
|
|
642
|
+
<div className='checkbox-text-wrapper display-flex justify-content-between'>
|
|
643
|
+
<div className='margin-right-15'>
|
|
644
|
+
<div className='text-medium text-size-16 text-color-darker'>Option 1</div>
|
|
645
|
+
<div className='text-color-dark'>This option is a first option</div>
|
|
646
|
+
</div>
|
|
647
|
+
<div className='checkbox-text' />
|
|
648
|
+
</div>
|
|
649
|
+
```
|
|
637
650
|
|
|
638
651
|
## Custom list example
|
|
639
652
|
|
|
@@ -665,7 +678,6 @@ This option is a third option
|
|
|
665
678
|
|
|
666
679
|
```tsx
|
|
667
680
|
import { useState } from 'react';
|
|
668
|
-
import { pull } from 'es-toolkit/compat';
|
|
669
681
|
|
|
670
682
|
import Checkbox from '@rio-cloud/rio-uikit/Checkbox';
|
|
671
683
|
|
|
@@ -673,11 +685,11 @@ export default () => {
|
|
|
673
685
|
const [selectedOptions, setSelectedOptions] = useState([1]);
|
|
674
686
|
|
|
675
687
|
const handleSelect = (selected: number) => {
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
688
|
+
setSelectedOptions(prevSelectedOptions =>
|
|
689
|
+
prevSelectedOptions.includes(selected)
|
|
690
|
+
? prevSelectedOptions.filter(value => value !== selected)
|
|
691
|
+
: [...prevSelectedOptions, selected]
|
|
692
|
+
);
|
|
681
693
|
};
|
|
682
694
|
|
|
683
695
|
return (
|
|
@@ -775,12 +787,17 @@ export default () => {
|
|
|
775
787
|
</fieldset>
|
|
776
788
|
```
|
|
777
789
|
|
|
778
|
-
#### Props
|
|
790
|
+
#### Props (json)
|
|
779
791
|
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
792
|
+
```json
|
|
793
|
+
<div className='checkbox-text-wrapper display-flex justify-content-between'>
|
|
794
|
+
<div className='margin-right-15'>
|
|
795
|
+
<div className='text-medium text-size-16 text-color-darker'>Option 1</div>
|
|
796
|
+
<div className='text-color-dark'>This option is a first option</div>
|
|
797
|
+
</div>
|
|
798
|
+
<div className='checkbox-text' />
|
|
799
|
+
</div>
|
|
800
|
+
```
|
|
784
801
|
|
|
785
802
|
## Checkbox with custom icon
|
|
786
803
|
|
|
@@ -888,9 +905,14 @@ export default () => (
|
|
|
888
905
|
</div>
|
|
889
906
|
```
|
|
890
907
|
|
|
891
|
-
#### Props
|
|
908
|
+
#### Props (json)
|
|
892
909
|
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
910
|
+
```json
|
|
911
|
+
<div className='checkbox-text-wrapper display-flex justify-content-between'>
|
|
912
|
+
<div className='margin-right-15'>
|
|
913
|
+
<div className='text-medium text-size-16 text-color-darker'>Option 1</div>
|
|
914
|
+
<div className='text-color-dark'>This option is a first option</div>
|
|
915
|
+
</div>
|
|
916
|
+
<div className='checkbox-text' />
|
|
917
|
+
</div>
|
|
918
|
+
```
|
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
# CircularProgress
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Progress
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#/components/circularProgress
|
|
6
|
+
*Captured:* 2026-02-23T13:42:02.752Z
|
|
7
|
+
|
|
8
|
+
## CircularProgress
|
|
9
|
+
|
|
10
|
+
### Example: Default circular progress
|
|
11
|
+
|
|
12
|
+
Default circular progress
|
|
13
|
+
30
|
|
14
|
+
|
|
15
|
+
Circular progress customizations
|
|
16
|
+
85 km/h
|
|
17
|
+
|
|
18
|
+
Speed
|
|
19
|
+
|
|
20
|
+
40%
|
|
21
|
+
|
|
22
|
+
Custom label
|
|
23
|
+
|
|
24
|
+
100
|
|
25
|
+
|
|
26
|
+
With max value
|
|
27
|
+
|
|
28
|
+
Different sizes with custom value label
|
|
29
|
+
|
|
30
|
+
xs
|
|
31
|
+
|
|
32
|
+
sm
|
|
33
|
+
|
|
34
|
+
md
|
|
35
|
+
|
|
36
|
+
lg
|
|
37
|
+
|
|
38
|
+
xl
|
|
39
|
+
|
|
40
|
+
Strong customization
|
|
41
|
+
40%
|
|
42
|
+
|
|
43
|
+
3200 Points
|
|
44
|
+
|
|
45
|
+
#### Summary
|
|
46
|
+
|
|
47
|
+
Default circular progress
|
|
48
|
+
30
|
|
49
|
+
|
|
50
|
+
Circular progress customizations
|
|
51
|
+
85 km/h
|
|
52
|
+
|
|
53
|
+
Speed
|
|
54
|
+
|
|
55
|
+
40%
|
|
56
|
+
|
|
57
|
+
Custom label
|
|
58
|
+
|
|
59
|
+
100
|
|
60
|
+
|
|
61
|
+
With max value
|
|
62
|
+
|
|
63
|
+
Different sizes with custom value label
|
|
64
|
+
|
|
65
|
+
xs
|
|
66
|
+
|
|
67
|
+
sm
|
|
68
|
+
|
|
69
|
+
md
|
|
70
|
+
|
|
71
|
+
lg
|
|
72
|
+
|
|
73
|
+
xl
|
|
74
|
+
|
|
75
|
+
Strong customization
|
|
76
|
+
40%
|
|
77
|
+
|
|
78
|
+
3200 Points
|
|
79
|
+
|
|
80
|
+
#### React (tsx)
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import CircularProgress from '@rio-cloud/rio-uikit/CircularProgress';
|
|
84
|
+
import Divider from '@rio-cloud/rio-uikit/Divider';
|
|
85
|
+
import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
|
|
86
|
+
|
|
87
|
+
export default () => (
|
|
88
|
+
<>
|
|
89
|
+
<FormLabel>Default circular progress</FormLabel>
|
|
90
|
+
<div className='display-flex gap-50 margin-top-15'>
|
|
91
|
+
<CircularProgress value={30} />
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<Divider spacing={25} />
|
|
95
|
+
|
|
96
|
+
<FormLabel>Circular progress customizations</FormLabel>
|
|
97
|
+
<div className='display-flex gap-50 margin-top-15'>
|
|
98
|
+
<CircularProgress
|
|
99
|
+
color='warning'
|
|
100
|
+
formatOptions={{ style: 'unit', unit: 'kilometer-per-hour' }}
|
|
101
|
+
valueLabelClassName='text-italic'
|
|
102
|
+
label='Speed'
|
|
103
|
+
size='lg'
|
|
104
|
+
strokeWidth={4}
|
|
105
|
+
value={85}
|
|
106
|
+
/>
|
|
107
|
+
<CircularProgress
|
|
108
|
+
color='info'
|
|
109
|
+
formatOptions={{ style: 'unit', unit: 'percent' }}
|
|
110
|
+
valueLabelClassName='text-size-16 text-medium text-color-dark'
|
|
111
|
+
label='Custom label'
|
|
112
|
+
strokeWidth={3}
|
|
113
|
+
value={40}
|
|
114
|
+
/>
|
|
115
|
+
<CircularProgress valueLabelClassName='text-size-' label='With max value' value={100} maxValue={300} />
|
|
116
|
+
<CircularProgress showValueLabel={false} value={0} />
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<Divider spacing={25} />
|
|
120
|
+
|
|
121
|
+
<FormLabel>Different sizes with custom value label</FormLabel>
|
|
122
|
+
<div className='display-flex gap-50 margin-top-15'>
|
|
123
|
+
<CircularProgress
|
|
124
|
+
color='success'
|
|
125
|
+
valueLabel={<span className='rioglyph rioglyph-ok text-color-success text-size-14' />}
|
|
126
|
+
size='xs'
|
|
127
|
+
label='xs'
|
|
128
|
+
animationDelay={1}
|
|
129
|
+
value={70}
|
|
130
|
+
/>
|
|
131
|
+
<CircularProgress
|
|
132
|
+
color='success'
|
|
133
|
+
valueLabel={<span className='rioglyph rioglyph-ok text-color-success text-size-18' />}
|
|
134
|
+
size='sm'
|
|
135
|
+
label='sm'
|
|
136
|
+
animationDelay={1.2}
|
|
137
|
+
value={70}
|
|
138
|
+
/>
|
|
139
|
+
<CircularProgress
|
|
140
|
+
color='success'
|
|
141
|
+
valueLabel={<span className='rioglyph rioglyph-ok text-color-success text-size-h3' />}
|
|
142
|
+
size='md'
|
|
143
|
+
label='md'
|
|
144
|
+
animationDelay={1.4}
|
|
145
|
+
value={70}
|
|
146
|
+
/>
|
|
147
|
+
<CircularProgress
|
|
148
|
+
color='success'
|
|
149
|
+
valueLabel={<span className='rioglyph rioglyph-ok text-color-success text-size-h2' />}
|
|
150
|
+
size='lg'
|
|
151
|
+
label='lg'
|
|
152
|
+
animationDelay={1.6}
|
|
153
|
+
value={70}
|
|
154
|
+
/>
|
|
155
|
+
<CircularProgress
|
|
156
|
+
color='success'
|
|
157
|
+
valueLabel={<span className='rioglyph rioglyph-ok text-color-success text-size-h1' />}
|
|
158
|
+
size='xl'
|
|
159
|
+
label='xl'
|
|
160
|
+
animationDelay={1.8}
|
|
161
|
+
value={70}
|
|
162
|
+
/>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<Divider spacing={25} />
|
|
166
|
+
|
|
167
|
+
<FormLabel>Strong customization</FormLabel>
|
|
168
|
+
<div className='display-grid place-items-center bg-primary width-200 height-200 rounded'>
|
|
169
|
+
<CircularProgress
|
|
170
|
+
color='white'
|
|
171
|
+
formatOptions={{ style: 'unit', unit: 'percent' }}
|
|
172
|
+
valueLabelClassName='text-medium text-size-h2 text-color-white'
|
|
173
|
+
trackClassName='opacity-30'
|
|
174
|
+
label={
|
|
175
|
+
<div className='border border-color-white rounded-circle padding-x-10 padding-y-5'>3200 Points</div>
|
|
176
|
+
}
|
|
177
|
+
strokeWidth={12}
|
|
178
|
+
size='xl'
|
|
179
|
+
animationDelay={2}
|
|
180
|
+
value={40}
|
|
181
|
+
/>
|
|
182
|
+
</div>
|
|
183
|
+
</>
|
|
184
|
+
);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
#### HTML (html)
|
|
188
|
+
|
|
189
|
+
```html
|
|
190
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Default circular progress</div>
|
|
191
|
+
<div class="display-flex gap-50 margin-top-15">
|
|
192
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 ">
|
|
193
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="30" aria-valuetext="30" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
194
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
195
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
196
|
+
</circle>
|
|
197
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-primary)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="233.9594855253046">
|
|
198
|
+
</circle>
|
|
199
|
+
</svg>
|
|
200
|
+
<div class="position-absolute display-grid place-items-center">30</div>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="Divider position-relative width-100pct" style="padding-top: 25px; padding-bottom: 25px;">
|
|
205
|
+
<div class="divider-line bg-light" style="width: 100%; height: 1px;">
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Circular progress customizations</div>
|
|
209
|
+
<div class="display-flex gap-50 margin-top-15">
|
|
210
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r1:">
|
|
211
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="85" aria-valuetext="85 km/h" style="width: 80px; height: 80px; position: relative; display: grid; place-items: center;">
|
|
212
|
+
<svg width="80" height="80" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
213
|
+
<circle cx="50" cy="50" r="48" fill="none" stroke="var(--gray-lighter)" stroke-width="4" class="">
|
|
214
|
+
</circle>
|
|
215
|
+
<circle cx="50" cy="50" r="48" fill="none" stroke="var(--brand-warning)" stroke-width="4" stroke-linecap="round" stroke-dasharray="301.59289474462014" stroke-dashoffset="138.78599799953176">
|
|
216
|
+
</circle>
|
|
217
|
+
</svg>
|
|
218
|
+
<div class="position-absolute display-grid place-items-center text-italic">85 km/h</div>
|
|
219
|
+
</div>
|
|
220
|
+
<div id="circular-progress-label-:r1:" class="">Speed</div>
|
|
221
|
+
</div>
|
|
222
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r2:">
|
|
223
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="40" aria-valuetext="40%" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
224
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
225
|
+
<circle cx="50" cy="50" r="48.5" fill="none" stroke="var(--gray-lighter)" stroke-width="3" class="">
|
|
226
|
+
</circle>
|
|
227
|
+
<circle cx="50" cy="50" r="48.5" fill="none" stroke="var(--brand-info)" stroke-width="3" stroke-linecap="round" stroke-dasharray="304.7344873982099" stroke-dashoffset="227.32140414196692">
|
|
228
|
+
</circle>
|
|
229
|
+
</svg>
|
|
230
|
+
<div class="position-absolute display-grid place-items-center text-size-16 text-medium text-color-dark">40%</div>
|
|
231
|
+
</div>
|
|
232
|
+
<div id="circular-progress-label-:r2:" class="">Custom label</div>
|
|
233
|
+
</div>
|
|
234
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r3:">
|
|
235
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="300" aria-valuenow="100" aria-valuetext="100" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
236
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
237
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
238
|
+
</circle>
|
|
239
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-primary)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="227.84092568030945">
|
|
240
|
+
</circle>
|
|
241
|
+
</svg>
|
|
242
|
+
<div class="position-absolute display-grid place-items-center text-size-">100</div>
|
|
243
|
+
</div>
|
|
244
|
+
<div id="circular-progress-label-:r3:" class="">With max value</div>
|
|
245
|
+
</div>
|
|
246
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 ">
|
|
247
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
248
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
249
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
250
|
+
</circle>
|
|
251
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-primary)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
252
|
+
</circle>
|
|
253
|
+
</svg>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
</div>
|
|
257
|
+
<div class="Divider position-relative width-100pct" style="padding-top: 25px; padding-bottom: 25px;">
|
|
258
|
+
<div class="divider-line bg-light" style="width: 100%; height: 1px;">
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Different sizes with custom value label</div>
|
|
262
|
+
<div class="display-flex gap-50 margin-top-15">
|
|
263
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r5:">
|
|
264
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70" style="width: 32px; height: 32px; position: relative; display: grid; place-items: center;">
|
|
265
|
+
<svg width="32" height="32" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
266
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
267
|
+
</circle>
|
|
268
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-success)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
269
|
+
</circle>
|
|
270
|
+
</svg>
|
|
271
|
+
<div class="position-absolute display-grid place-items-center">
|
|
272
|
+
<span class="rioglyph rioglyph-ok text-color-success text-size-14">
|
|
273
|
+
</span>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
<div id="circular-progress-label-:r5:" class="">xs</div>
|
|
277
|
+
</div>
|
|
278
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r6:">
|
|
279
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70" style="width: 48px; height: 48px; position: relative; display: grid; place-items: center;">
|
|
280
|
+
<svg width="48" height="48" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
281
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
282
|
+
</circle>
|
|
283
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-success)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
284
|
+
</circle>
|
|
285
|
+
</svg>
|
|
286
|
+
<div class="position-absolute display-grid place-items-center">
|
|
287
|
+
<span class="rioglyph rioglyph-ok text-color-success text-size-18">
|
|
288
|
+
</span>
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
<div id="circular-progress-label-:r6:" class="">sm</div>
|
|
292
|
+
</div>
|
|
293
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r7:">
|
|
294
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
295
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
296
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
297
|
+
</circle>
|
|
298
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-success)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
299
|
+
</circle>
|
|
300
|
+
</svg>
|
|
301
|
+
<div class="position-absolute display-grid place-items-center">
|
|
302
|
+
<span class="rioglyph rioglyph-ok text-color-success text-size-h3">
|
|
303
|
+
</span>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
<div id="circular-progress-label-:r7:" class="">md</div>
|
|
307
|
+
</div>
|
|
308
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r8:">
|
|
309
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70" style="width: 80px; height: 80px; position: relative; display: grid; place-items: center;">
|
|
310
|
+
<svg width="80" height="80" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
311
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
312
|
+
</circle>
|
|
313
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-success)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
314
|
+
</circle>
|
|
315
|
+
</svg>
|
|
316
|
+
<div class="position-absolute display-grid place-items-center">
|
|
317
|
+
<span class="rioglyph rioglyph-ok text-color-success text-size-h2">
|
|
318
|
+
</span>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
<div id="circular-progress-label-:r8:" class="">lg</div>
|
|
322
|
+
</div>
|
|
323
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:r9:">
|
|
324
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70" style="width: 120px; height: 120px; position: relative; display: grid; place-items: center;">
|
|
325
|
+
<svg width="120" height="120" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
326
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
327
|
+
</circle>
|
|
328
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-success)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="289.02652413026095">
|
|
329
|
+
</circle>
|
|
330
|
+
</svg>
|
|
331
|
+
<div class="position-absolute display-grid place-items-center">
|
|
332
|
+
<span class="rioglyph rioglyph-ok text-color-success text-size-h1">
|
|
333
|
+
</span>
|
|
334
|
+
</div>
|
|
335
|
+
</div>
|
|
336
|
+
<div id="circular-progress-label-:r9:" class="">xl</div>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
<div class="Divider position-relative width-100pct" style="padding-top: 25px; padding-bottom: 25px;">
|
|
340
|
+
<div class="divider-line bg-light" style="width: 100%; height: 1px;">
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Strong customization</div>
|
|
344
|
+
<div class="display-grid place-items-center bg-primary width-200 height-200 rounded">
|
|
345
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:ra:">
|
|
346
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="40" aria-valuetext="40%" style="width: 120px; height: 120px; position: relative; display: grid; place-items: center;">
|
|
347
|
+
<svg width="120" height="120" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
348
|
+
<circle cx="50" cy="50" r="44" fill="none" stroke="var(--gray-lighter)" stroke-width="12" class="opacity-30">
|
|
349
|
+
</circle>
|
|
350
|
+
<circle cx="50" cy="50" r="44" fill="none" stroke="var(--color-white)" stroke-width="12" stroke-linecap="round" stroke-dasharray="276.46015351590177" stroke-dashoffset="276.46015351590177">
|
|
351
|
+
</circle>
|
|
352
|
+
</svg>
|
|
353
|
+
<div class="position-absolute display-grid place-items-center text-medium text-size-h2 text-color-white">40%</div>
|
|
354
|
+
</div>
|
|
355
|
+
<div id="circular-progress-label-:ra:" class="">
|
|
356
|
+
<div class="border border-color-white rounded-circle padding-x-10 padding-y-5">3200 Points</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
#### Props
|
|
363
|
+
|
|
364
|
+
| Name | Type | Default | Description |
|
|
365
|
+
| --- | --- | --- | --- |
|
|
366
|
+
| label | React.ReactNode | — | Optional text or node shown below the ring. |
|
|
367
|
+
| size | CircularProgressSize | 'md' | Preset size for the component. Possible values are: 'xs' 'sm' 'md' 'lg' 'xl' |
|
|
368
|
+
| color | CircularProgressColor | 'primary' | Color preset for the progress ring. Possible values are: 'default' 'primary' 'secondary' 'info' 'success' 'warning' 'danger' 'white' |
|
|
369
|
+
| value | number | 0 | Defaults to 0 to avoid indeterminate/spinner visuals. |
|
|
370
|
+
| valueLabel | React.ReactNode | — | Override the rendered value label content. |
|
|
371
|
+
| minValue | number | 0 | Minimum value for the range. |
|
|
372
|
+
| maxValue | number | 100 | Maximum value for the range. |
|
|
373
|
+
| formatOptions | Intl.NumberFormatOptions | — | Formatting for the visible value label. - If style === "percent": formats ratio (value-min)/(max-min) - Otherwise: formats the raw value (e.g. unit) |
|
|
374
|
+
| isIndeterminate | boolean | false | Indeterminate mode is opt-in. Animates the progress indefinitely. May come in handy when the value still loads to prevent layout shifting. |
|
|
375
|
+
| showValueLabel | boolean | true | Toggles the value label in the center of the ring. |
|
|
376
|
+
| strokeWidth | number | 8 | Stroke width used for the ring and track. |
|
|
377
|
+
| trackColor | CircularProgressTrackColor | 'lighter' | Track color preset for the background ring. Possible values are: 'decent' 'lightest' 'lighter' 'light' 'gray' 'dark' 'darker' 'darkest' 'white' |
|
|
378
|
+
| trackClassName | string | — | Class name for the track (background ring). |
|
|
379
|
+
| disableAnimation | boolean | false | Disable motion even if the user allows animations. |
|
|
380
|
+
| animationDelay | number | 0 | Delay before the progress animation starts (in seconds). |
|
|
381
|
+
| className | string | — | Class name for the outer wrapper. |
|
|
382
|
+
| ringWrapClassName | string | — | Class name for the ring wrapper. |
|
|
383
|
+
| valueLabelClassName | string | — | Class name for the center value label. |
|
|
384
|
+
| labelClassName | string | — | Class name for the label under the ring. |
|
|
385
|
+
|
|
386
|
+
### Example: Example 2
|
|
387
|
+
|
|
388
|
+
0%
|
|
389
|
+
|
|
390
|
+
Processing configuration...
|
|
391
|
+
|
|
392
|
+
#### Summary
|
|
393
|
+
|
|
394
|
+
0%
|
|
395
|
+
|
|
396
|
+
Processing configuration...
|
|
397
|
+
|
|
398
|
+
#### React (tsx)
|
|
399
|
+
|
|
400
|
+
```tsx
|
|
401
|
+
import CircularProgress from '@rio-cloud/rio-uikit/CircularProgress';
|
|
402
|
+
import { useEffect, useState } from 'react';
|
|
403
|
+
|
|
404
|
+
export default () => {
|
|
405
|
+
const [value, setValue] = useState(0);
|
|
406
|
+
|
|
407
|
+
useEffect(() => {
|
|
408
|
+
const interval = setInterval(() => {
|
|
409
|
+
setValue(v => (v >= 100 ? 0 : v + 10));
|
|
410
|
+
}, 500);
|
|
411
|
+
|
|
412
|
+
return () => clearInterval(interval);
|
|
413
|
+
}, []);
|
|
414
|
+
|
|
415
|
+
return (
|
|
416
|
+
<CircularProgress
|
|
417
|
+
label='Processing configuration...'
|
|
418
|
+
color='info'
|
|
419
|
+
value={value}
|
|
420
|
+
formatOptions={{ style: 'unit', unit: 'percent' }}
|
|
421
|
+
/>
|
|
422
|
+
);
|
|
423
|
+
};
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
#### HTML (html)
|
|
427
|
+
|
|
428
|
+
```html
|
|
429
|
+
<div class="display-flex flex-column align-items-center text-center gap-10 " aria-labelledby="circular-progress-label-:rb:">
|
|
430
|
+
<div class="" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="10" aria-valuetext="10%" style="width: 64px; height: 64px; position: relative; display: grid; place-items: center;">
|
|
431
|
+
<svg width="64" height="64" viewBox="0 0 100 100" style="transform: rotate(-90deg);">
|
|
432
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--gray-lighter)" stroke-width="8" class="">
|
|
433
|
+
</circle>
|
|
434
|
+
<circle cx="50" cy="50" r="46" fill="none" stroke="var(--brand-info)" stroke-width="8" stroke-linecap="round" stroke-dasharray="289.02652413026095" stroke-dashoffset="262.6697810682584">
|
|
435
|
+
</circle>
|
|
436
|
+
</svg>
|
|
437
|
+
<div class="position-absolute display-grid place-items-center">10%</div>
|
|
438
|
+
</div>
|
|
439
|
+
<div id="circular-progress-label-:rb:" class="">Processing configuration...</div>
|
|
440
|
+
</div>
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
#### Props
|
|
444
|
+
|
|
445
|
+
| Name | Type | Default | Description |
|
|
446
|
+
| --- | --- | --- | --- |
|
|
447
|
+
| label | React.ReactNode | — | Optional text or node shown below the ring. |
|
|
448
|
+
| size | CircularProgressSize | 'md' | Preset size for the component. Possible values are: 'xs' 'sm' 'md' 'lg' 'xl' |
|
|
449
|
+
| color | CircularProgressColor | 'primary' | Color preset for the progress ring. Possible values are: 'default' 'primary' 'secondary' 'info' 'success' 'warning' 'danger' 'white' |
|
|
450
|
+
| value | number | 0 | Defaults to 0 to avoid indeterminate/spinner visuals. |
|
|
451
|
+
| valueLabel | React.ReactNode | — | Override the rendered value label content. |
|
|
452
|
+
| minValue | number | 0 | Minimum value for the range. |
|
|
453
|
+
| maxValue | number | 100 | Maximum value for the range. |
|
|
454
|
+
| formatOptions | Intl.NumberFormatOptions | — | Formatting for the visible value label. - If style === "percent": formats ratio (value-min)/(max-min) - Otherwise: formats the raw value (e.g. unit) |
|
|
455
|
+
| isIndeterminate | boolean | false | Indeterminate mode is opt-in. Animates the progress indefinitely. May come in handy when the value still loads to prevent layout shifting. |
|
|
456
|
+
| showValueLabel | boolean | true | Toggles the value label in the center of the ring. |
|
|
457
|
+
| strokeWidth | number | 8 | Stroke width used for the ring and track. |
|
|
458
|
+
| trackColor | CircularProgressTrackColor | 'lighter' | Track color preset for the background ring. Possible values are: 'decent' 'lightest' 'lighter' 'light' 'gray' 'dark' 'darker' 'darkest' 'white' |
|
|
459
|
+
| trackClassName | string | — | Class name for the track (background ring). |
|
|
460
|
+
| disableAnimation | boolean | false | Disable motion even if the user allows animations. |
|
|
461
|
+
| animationDelay | number | 0 | Delay before the progress animation starts (in seconds). |
|
|
462
|
+
| className | string | — | Class name for the outer wrapper. |
|
|
463
|
+
| ringWrapClassName | string | — | Class name for the ring wrapper. |
|
|
464
|
+
| valueLabelClassName | string | — | Class name for the center value label. |
|
|
465
|
+
| labelClassName | string | — | Class name for the label under the ring. |
|