mblabs-roccato-frontend-commons 0.2.0 → 0.2.2
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 +241 -241
- package/dist/index.d.ts +6 -0
- package/dist/mblabs-roccato-frontend-commons.js +2617 -2579
- package/package.json +157 -157
- package/src/components/atoms/AudioPlayer/__snapshots__/audio-player.test.tsx.snap +22 -0
- package/src/components/atoms/AudioPlayer/audio-player.stories.tsx +36 -36
- package/src/components/atoms/AudioPlayer/audio-player.test.tsx +19 -19
- package/src/components/atoms/AudioPlayer/audio-player.tsx +13 -13
- package/src/components/atoms/AudioPlayer/index.ts +1 -1
- package/src/components/atoms/Badge/__snapshots__/badge.test.tsx.snap +12 -0
- package/src/components/atoms/Badge/badge.stories.tsx +80 -80
- package/src/components/atoms/Badge/badge.test.tsx +59 -59
- package/src/components/atoms/Badge/badge.tsx +47 -47
- package/src/components/atoms/Badge/index.ts +1 -1
- package/src/components/atoms/Box/__snapshots__/box.test.tsx.snap +10 -0
- package/src/components/atoms/Box/box.stories.tsx +37 -37
- package/src/components/atoms/Box/box.test.tsx +47 -47
- package/src/components/atoms/Box/box.tsx +7 -7
- package/src/components/atoms/Box/index.ts +1 -1
- package/src/components/atoms/Button/__snapshots__/button.test.tsx.snap +13 -0
- package/src/components/atoms/Button/button.stories.tsx +108 -108
- package/src/components/atoms/Button/button.test.tsx +54 -54
- package/src/components/atoms/Button/button.tsx +96 -96
- package/src/components/atoms/Button/index.ts +1 -1
- package/src/components/atoms/ButtonUpload/button-upload.stories.tsx +137 -137
- package/src/components/atoms/ButtonUpload/button-upload.tsx +299 -299
- package/src/components/atoms/Calendar/__snapshots__/calendar.test.tsx.snap +501 -0
- package/src/components/atoms/Calendar/calendar.stories.tsx +51 -51
- package/src/components/atoms/Calendar/calendar.test.tsx +41 -41
- package/src/components/atoms/Calendar/calendar.tsx +102 -102
- package/src/components/atoms/Calendar/index.ts +1 -1
- package/src/components/atoms/CheckIcon/check-icon.stories.tsx +38 -38
- package/src/components/atoms/CheckIcon/check-icon.test.tsx +269 -269
- package/src/components/atoms/CheckIcon/check-icon.tsx +140 -140
- package/src/components/atoms/Checkbox/__snapshots__/checkbox.test.tsx.snap +16 -0
- package/src/components/atoms/Checkbox/checkbox.stories.tsx +133 -133
- package/src/components/atoms/Checkbox/checkbox.test.tsx +70 -70
- package/src/components/atoms/Checkbox/checkbox.tsx +31 -31
- package/src/components/atoms/Checkbox/index.ts +1 -1
- package/src/components/atoms/Flex/__snapshots__/flex.test.tsx.snap +10 -0
- package/src/components/atoms/Flex/flex.stories.tsx +33 -33
- package/src/components/atoms/Flex/flex.test.tsx +47 -47
- package/src/components/atoms/Flex/flex.tsx +7 -7
- package/src/components/atoms/Flex/index.ts +1 -1
- package/src/components/atoms/Grid/__snapshots__/grid.test.tsx.snap +10 -0
- package/src/components/atoms/Grid/grid.stories.tsx +33 -33
- package/src/components/atoms/Grid/grid.test.tsx +47 -47
- package/src/components/atoms/Grid/grid.tsx +7 -7
- package/src/components/atoms/Grid/index.ts +1 -1
- package/src/components/atoms/Icon/__snapshots__/icon.test.tsx.snap +103 -0
- package/src/components/atoms/Icon/icon.stories.tsx +169 -169
- package/src/components/atoms/Icon/icon.test.tsx +272 -272
- package/src/components/atoms/Icon/icon.tsx +119 -119
- package/src/components/atoms/Input/__snapshots__/input.test.tsx.snap +49 -0
- package/src/components/atoms/Input/index.ts +1 -1
- package/src/components/atoms/Input/input.stories.tsx +704 -704
- package/src/components/atoms/Input/input.test.tsx +86 -86
- package/src/components/atoms/Input/input.tsx +161 -161
- package/src/components/atoms/InputMoney/index.ts +2 -2
- package/src/components/atoms/InputMoney/input-money.stories.tsx +240 -240
- package/src/components/atoms/InputMoney/input-money.test.tsx +95 -95
- package/src/components/atoms/InputMoney/input-money.tsx +250 -250
- package/src/components/atoms/InputPhone/index.ts +1 -1
- package/src/components/atoms/InputPhone/input-phone.stories.tsx +446 -446
- package/src/components/atoms/InputPhone/input-phone.test.tsx +147 -147
- package/src/components/atoms/InputPhone/input-phone.tsx +267 -267
- package/src/components/atoms/InputSearch/index.ts +1 -1
- package/src/components/atoms/InputSearch/input-search.stories.tsx +359 -359
- package/src/components/atoms/InputSearch/input-search.test.tsx +238 -238
- package/src/components/atoms/InputSearch/input-search.tsx +209 -209
- package/src/components/atoms/InputUpload/index.ts +1 -1
- package/src/components/atoms/InputUpload/input-upload.stories.tsx +229 -229
- package/src/components/atoms/InputUpload/input-upload.test.tsx +555 -555
- package/src/components/atoms/InputUpload/input-upload.tsx +425 -425
- package/src/components/atoms/InputWithButton/index.ts +2 -2
- package/src/components/atoms/InputWithButton/input-with-button.stories.tsx +502 -502
- package/src/components/atoms/InputWithButton/input-with-button.test.tsx +127 -127
- package/src/components/atoms/InputWithButton/input-with-button.tsx +170 -170
- package/src/components/atoms/Label/__snapshots__/label.test.tsx.snap +17 -0
- package/src/components/atoms/Label/index.ts +1 -1
- package/src/components/atoms/Label/label.stories.tsx +90 -90
- package/src/components/atoms/Label/label.test.tsx +59 -59
- package/src/components/atoms/Label/label.tsx +43 -43
- package/src/components/atoms/Progress/__snapshots__/progress.test.tsx.snap +25 -0
- package/src/components/atoms/Progress/index.ts +1 -1
- package/src/components/atoms/Progress/progress.stories.tsx +30 -30
- package/src/components/atoms/Progress/progress.test.tsx +62 -62
- package/src/components/atoms/Progress/progress.tsx +32 -32
- package/src/components/atoms/RenderCondition/index.ts +1 -1
- package/src/components/atoms/RenderCondition/render-condition.stories.tsx +28 -28
- package/src/components/atoms/RenderCondition/render-condition.test.tsx +27 -27
- package/src/components/atoms/RenderCondition/render-condition.tsx +9 -9
- package/src/components/atoms/RichTextEditor/__snapshots__/rich-text-editor.test.tsx.snap +314 -0
- package/src/components/atoms/RichTextEditor/rich-text-editor.stories.tsx +214 -214
- package/src/components/atoms/RichTextEditor/rich-text-editor.test.tsx +441 -441
- package/src/components/atoms/RichTextEditor/rich-text-editor.tsx +202 -202
- package/src/components/atoms/Separator/__snapshots__/separator.test.tsx.snap +13 -0
- package/src/components/atoms/Separator/index.ts +1 -1
- package/src/components/atoms/Separator/separator.stories.tsx +117 -117
- package/src/components/atoms/Separator/separator.test.tsx +50 -50
- package/src/components/atoms/Separator/separator.tsx +28 -28
- package/src/components/atoms/Skeleton/__snapshots__/skeleton.test.tsx.snap +11 -0
- package/src/components/atoms/Skeleton/index.ts +1 -1
- package/src/components/atoms/Skeleton/skeleton.stories.tsx +84 -84
- package/src/components/atoms/Skeleton/skeleton.test.tsx +39 -39
- package/src/components/atoms/Skeleton/skeleton.tsx +14 -14
- package/src/components/atoms/Slider/__snapshots__/slider.test.tsx.snap +240 -0
- package/src/components/atoms/Slider/index.ts +1 -1
- package/src/components/atoms/Slider/slider.stories.tsx +28 -28
- package/src/components/atoms/Slider/slider.test.tsx +89 -89
- package/src/components/atoms/Slider/slider.tsx +54 -54
- package/src/components/atoms/Sonner/__snapshots__/sonner.test.tsx.snap +13 -0
- package/src/components/atoms/Sonner/index.ts +1 -1
- package/src/components/atoms/Sonner/sonner.css +39 -39
- package/src/components/atoms/Sonner/sonner.stories.tsx +186 -186
- package/src/components/atoms/Sonner/sonner.test.tsx +24 -24
- package/src/components/atoms/Sonner/sonner.tsx +13 -13
- package/src/components/atoms/Switch/__snapshots__/switch.test.tsx.snap +22 -0
- package/src/components/atoms/Switch/index.ts +1 -1
- package/src/components/atoms/Switch/switch.stories.tsx +128 -128
- package/src/components/atoms/Switch/switch.test.tsx +70 -70
- package/src/components/atoms/Switch/switch.tsx +61 -61
- package/src/components/atoms/Textarea/__snapshots__/textarea.test.tsx.snap +10 -0
- package/src/components/atoms/Textarea/index.ts +1 -1
- package/src/components/atoms/Textarea/textarea.stories.tsx +169 -169
- package/src/components/atoms/Textarea/textarea.test.tsx +56 -56
- package/src/components/atoms/Textarea/textarea.tsx +26 -26
- package/src/components/atoms/Toggle/__snapshots__/toggle.test.tsx.snap +13 -0
- package/src/components/atoms/Toggle/index.ts +1 -1
- package/src/components/atoms/Toggle/toggle.stories.tsx +170 -170
- package/src/components/atoms/Toggle/toggle.test.tsx +62 -62
- package/src/components/atoms/Toggle/toggle.tsx +47 -47
- package/src/components/atoms/Typography/__snapshots__/typography.test.tsx.snap +12 -0
- package/src/components/atoms/Typography/index.ts +1 -1
- package/src/components/atoms/Typography/typography.stories.tsx +95 -95
- package/src/components/atoms/Typography/typography.test.tsx +66 -66
- package/src/components/atoms/Typography/typography.tsx +63 -63
- package/src/components/atoms/UploadImageField/upload-image-field.stories.tsx +249 -249
- package/src/components/atoms/UploadImageField/upload-image-field.test.tsx +347 -347
- package/src/components/atoms/UploadImageField/upload-image-field.tsx +353 -353
- package/src/components/atoms/VideoPlayer/__snapshots__/video-player.test.tsx.snap +17 -0
- package/src/components/atoms/VideoPlayer/index.ts +1 -1
- package/src/components/atoms/VideoPlayer/video-player.stories.tsx +37 -37
- package/src/components/atoms/VideoPlayer/video-player.test.tsx +19 -19
- package/src/components/atoms/VideoPlayer/video-player.tsx +26 -26
- package/src/components/atoms/index.ts +31 -31
- package/src/components/icons/alert-circle.tsx +22 -22
- package/src/components/icons/align-center.tsx +21 -21
- package/src/components/icons/align-left.tsx +21 -21
- package/src/components/icons/annotation-dots.tsx +16 -16
- package/src/components/icons/announcement-01.tsx +14 -14
- package/src/components/icons/announcement-02.tsx +14 -14
- package/src/components/icons/apple-logo.tsx +8 -8
- package/src/components/icons/arrow-circle-broken-right.tsx +16 -16
- package/src/components/icons/arrow-down.tsx +8 -8
- package/src/components/icons/arrow-up.tsx +8 -8
- package/src/components/icons/at-sign.tsx +21 -21
- package/src/components/icons/award-01.tsx +15 -15
- package/src/components/icons/award-03.tsx +16 -16
- package/src/components/icons/bank-note-01.tsx +14 -14
- package/src/components/icons/bar-chart-square-02.tsx +8 -8
- package/src/components/icons/bell-01.tsx +8 -8
- package/src/components/icons/bell-04.tsx +16 -16
- package/src/components/icons/bold-01.tsx +21 -21
- package/src/components/icons/brackets-ellipses.tsx +21 -21
- package/src/components/icons/briefcase-01.tsx +8 -8
- package/src/components/icons/brush-01.tsx +21 -21
- package/src/components/icons/building-02.tsx +8 -8
- package/src/components/icons/building-06.tsx +9 -9
- package/src/components/icons/calendar-minus-02.tsx +14 -14
- package/src/components/icons/calendar.tsx +8 -8
- package/src/components/icons/certificate-01.tsx +16 -16
- package/src/components/icons/chart-breakout-square.tsx +16 -16
- package/src/components/icons/check-circle-02.tsx +15 -15
- package/src/components/icons/check-circle.tsx +15 -15
- package/src/components/icons/check.tsx +21 -21
- package/src/components/icons/chevron-down-double.tsx +16 -16
- package/src/components/icons/chevron-down.tsx +8 -8
- package/src/components/icons/chevron-left.tsx +16 -16
- package/src/components/icons/chevron-right.tsx +16 -16
- package/src/components/icons/chevron-up-double.tsx +16 -16
- package/src/components/icons/clock-rewind.tsx +15 -15
- package/src/components/icons/coins-hand.tsx +14 -14
- package/src/components/icons/coins-stacked-01.tsx +14 -14
- package/src/components/icons/coins-stacked-02.tsx +14 -14
- package/src/components/icons/container.tsx +8 -8
- package/src/components/icons/copy-02.tsx +16 -16
- package/src/components/icons/copy-04.tsx +21 -21
- package/src/components/icons/corner-down-right.tsx +9 -9
- package/src/components/icons/countries/br.tsx +20 -0
- package/src/components/icons/countries/es.tsx +19 -0
- package/src/components/icons/countries/index.ts +3 -0
- package/src/components/icons/countries/us.tsx +21 -0
- package/src/components/icons/dataflow-03.tsx +14 -14
- package/src/components/icons/dotpoints-01.tsx +21 -21
- package/src/components/icons/dots-vertical.tsx +35 -35
- package/src/components/icons/download-03.tsx +16 -16
- package/src/components/icons/download-cloud-02.tsx +14 -14
- package/src/components/icons/drag.tsx +14 -14
- package/src/components/icons/dropper.tsx +21 -21
- package/src/components/icons/edit-01.tsx +15 -15
- package/src/components/icons/edit-02.tsx +8 -8
- package/src/components/icons/edit-03.tsx +23 -23
- package/src/components/icons/eye.tsx +21 -21
- package/src/components/icons/face-frown.tsx +14 -14
- package/src/components/icons/file-06.tsx +14 -14
- package/src/components/icons/file-attachment-04.tsx +14 -14
- package/src/components/icons/file-download-02.tsx +15 -15
- package/src/components/icons/file-plus-02.tsx +15 -15
- package/src/components/icons/file-search-01.tsx +22 -22
- package/src/components/icons/file-search-03.tsx +14 -14
- package/src/components/icons/filter-lines.tsx +21 -21
- package/src/components/icons/first-category.tsx +15 -15
- package/src/components/icons/first-stage.tsx +19 -19
- package/src/components/icons/folder.tsx +14 -14
- package/src/components/icons/google.tsx +12 -12
- package/src/components/icons/graduation-hat-02.tsx +14 -14
- package/src/components/icons/grid-01.tsx +35 -35
- package/src/components/icons/help-circle.tsx +15 -15
- package/src/components/icons/help-square.tsx +16 -16
- package/src/components/icons/home-line.tsx +21 -21
- package/src/components/icons/icons.stories.tsx +198 -198
- package/src/components/icons/index.ts +130 -129
- package/src/components/icons/info-circle.tsx +14 -14
- package/src/components/icons/italic-01.tsx +21 -21
- package/src/components/icons/last-category.tsx +10 -10
- package/src/components/icons/last-stage.tsx +19 -19
- package/src/components/icons/layout-alt-04.tsx +9 -9
- package/src/components/icons/lightbulb-02.tsx +16 -16
- package/src/components/icons/link-01.tsx +15 -15
- package/src/components/icons/link-broken-01.tsx +16 -16
- package/src/components/icons/linkedin-logo.tsx +16 -16
- package/src/components/icons/lock-01.tsx +21 -21
- package/src/components/icons/log-out-01.tsx +8 -8
- package/src/components/icons/mail-01.tsx +15 -15
- package/src/components/icons/marker-pin-02.tsx +9 -9
- package/src/components/icons/menu-01.tsx +8 -8
- package/src/components/icons/middle-category.tsx +9 -9
- package/src/components/icons/middle-stage.tsx +19 -19
- package/src/components/icons/ms-outlook.tsx +47 -47
- package/src/components/icons/paragraph-spacing.tsx +14 -14
- package/src/components/icons/phone-01.tsx +21 -21
- package/src/components/icons/pie-chart-02.tsx +21 -21
- package/src/components/icons/plus-circle.tsx +15 -15
- package/src/components/icons/portal-logo.tsx +76 -76
- package/src/components/icons/presentation-chart-02.tsx +13 -13
- package/src/components/icons/save-01.tsx +14 -14
- package/src/components/icons/search-lg.tsx +14 -14
- package/src/components/icons/search-sm.tsx +8 -8
- package/src/components/icons/send-03.tsx +14 -14
- package/src/components/icons/settings-01.tsx +16 -16
- package/src/components/icons/settings-03.tsx +13 -13
- package/src/components/icons/share-05.tsx +15 -15
- package/src/components/icons/share-06.tsx +14 -14
- package/src/components/icons/slash-circle-01.tsx +8 -8
- package/src/components/icons/star-01.tsx +8 -8
- package/src/components/icons/step-icon-active.tsx +10 -10
- package/src/components/icons/step-icon-checked.tsx +9 -9
- package/src/components/icons/step-icon-default.tsx +10 -10
- package/src/components/icons/switch-horizontal-01.tsx +9 -9
- package/src/components/icons/table-01.tsx +14 -14
- package/src/components/icons/tag-01.tsx +14 -14
- package/src/components/icons/tag-03.tsx +14 -14
- package/src/components/icons/tool-02.tsx +13 -13
- package/src/components/icons/trash-01.tsx +15 -15
- package/src/components/icons/underline-01.tsx +21 -21
- package/src/components/icons/upload-cloud-02.tsx +14 -14
- package/src/components/icons/user-01.tsx +8 -8
- package/src/components/icons/user-03.tsx +9 -9
- package/src/components/icons/user-check-01.tsx +13 -13
- package/src/components/icons/user-circle.tsx +13 -13
- package/src/components/icons/user-edit.tsx +16 -16
- package/src/components/icons/user-plus-01.tsx +22 -22
- package/src/components/icons/user-square.tsx +16 -16
- package/src/components/icons/users-01.tsx +13 -13
- package/src/components/icons/users-plus-01.tsx +21 -21
- package/src/components/icons/users-plus.tsx +16 -16
- package/src/components/icons/vertical-drag.tsx +21 -21
- package/src/components/icons/x-circle.tsx +14 -14
- package/src/components/icons/x-close.tsx +8 -8
- package/src/components/icons/zap-fast.tsx +16 -16
- package/src/components/icons/zap.tsx +8 -8
- package/src/components/index.ts +4 -4
- package/src/components/molecules/Accordion/__snapshots__/accordion.test.tsx.snap +123 -0
- package/src/components/molecules/Accordion/accordion.stories.tsx +81 -81
- package/src/components/molecules/Accordion/accordion.test.tsx +91 -91
- package/src/components/molecules/Accordion/accordion.tsx +65 -65
- package/src/components/molecules/Accordion/index.ts +1 -1
- package/src/components/molecules/Alert/__snapshots__/alert.test.tsx.snap +27 -0
- package/src/components/molecules/Alert/alert.stories.tsx +75 -75
- package/src/components/molecules/Alert/alert.test.tsx +58 -58
- package/src/components/molecules/Alert/alert.tsx +67 -67
- package/src/components/molecules/Alert/index.ts +1 -1
- package/src/components/molecules/AlertDialog/__snapshots__/alert-dialog.test.tsx.snap +18 -0
- package/src/components/molecules/AlertDialog/alert-dialog.stories.tsx +55 -55
- package/src/components/molecules/AlertDialog/alert-dialog.test.tsx +34 -34
- package/src/components/molecules/AlertDialog/alert-dialog.tsx +172 -172
- package/src/components/molecules/AlertDialog/index.ts +1 -1
- package/src/components/molecules/Avatar/__snapshots__/avatar.test.tsx.snap +11 -0
- package/src/components/molecules/Avatar/avatar.stories.tsx +98 -98
- package/src/components/molecules/Avatar/avatar.test.tsx +55 -55
- package/src/components/molecules/Avatar/avatar.tsx +55 -55
- package/src/components/molecules/Avatar/index.ts +1 -1
- package/src/components/molecules/Breadcrumb/__snapshots__/breadcrumb.test.tsx.snap +11 -0
- package/src/components/molecules/Breadcrumb/breadcrumb.stories.tsx +125 -125
- package/src/components/molecules/Breadcrumb/breadcrumb.test.tsx +118 -118
- package/src/components/molecules/Breadcrumb/breadcrumb.tsx +120 -120
- package/src/components/molecules/Breadcrumb/index.ts +1 -1
- package/src/components/molecules/Card/__snapshots__/card.test.tsx.snap +11 -0
- package/src/components/molecules/Card/card.stories.tsx +109 -109
- package/src/components/molecules/Card/card.test.tsx +103 -103
- package/src/components/molecules/Card/card.tsx +78 -78
- package/src/components/molecules/Card/index.ts +1 -1
- package/src/components/molecules/Collapsible/__snapshots__/collapsible.test.tsx.snap +27 -0
- package/src/components/molecules/Collapsible/collapsible.stories.tsx +27 -27
- package/src/components/molecules/Collapsible/collapsible.test.tsx +35 -35
- package/src/components/molecules/Collapsible/collapsible.tsx +31 -31
- package/src/components/molecules/Collapsible/index.ts +1 -1
- package/src/components/molecules/ColorPicker/color-picker.stories.tsx +40 -40
- package/src/components/molecules/ColorPicker/color-picker.tsx +103 -103
- package/src/components/molecules/ColorPicker/index.ts +1 -1
- package/src/components/molecules/ColorScale/color-scale.stories.tsx +31 -31
- package/src/components/molecules/ColorScale/color-scale.tsx +74 -74
- package/src/components/molecules/ColorScale/index.ts +1 -1
- package/src/components/molecules/Command/__snapshots__/command.test.tsx.snap +31 -0
- package/src/components/molecules/Command/command.stories.tsx +70 -70
- package/src/components/molecules/Command/command.test.tsx +49 -49
- package/src/components/molecules/Command/command.tsx +177 -177
- package/src/components/molecules/Command/index.ts +1 -1
- package/src/components/molecules/ContextMenu/__snapshots__/context-menu.test.tsx.snap +14 -0
- package/src/components/molecules/ContextMenu/context-menu.stories.tsx +68 -68
- package/src/components/molecules/ContextMenu/context-menu.test.tsx +24 -24
- package/src/components/molecules/ContextMenu/context-menu.tsx +259 -259
- package/src/components/molecules/ContextMenu/index.ts +1 -1
- package/src/components/molecules/DatePicker/__snapshots__/date-picker.test.tsx.snap +38 -0
- package/src/components/molecules/DatePicker/date-picker.stories.tsx +151 -151
- package/src/components/molecules/DatePicker/date-picker.test.tsx +27 -27
- package/src/components/molecules/DatePicker/date-picker.tsx +201 -201
- package/src/components/molecules/Dialog/__snapshots__/dialog.test.tsx.snap +18 -0
- package/src/components/molecules/Dialog/dialog.stories.tsx +48 -48
- package/src/components/molecules/Dialog/dialog.test.tsx +51 -51
- package/src/components/molecules/Dialog/dialog.tsx +144 -144
- package/src/components/molecules/Drawer/__snapshots__/drawer.test.tsx.snap +3 -0
- package/src/components/molecules/Drawer/drawer.stories.tsx +182 -182
- package/src/components/molecules/Drawer/drawer.test.tsx +100 -100
- package/src/components/molecules/Drawer/drawer.tsx +206 -206
- package/src/components/molecules/Drawer/index.ts +1 -1
- package/src/components/molecules/Dropdown/__snapshots__/dropdown.test.tsx.snap +86 -0
- package/src/components/molecules/Dropdown/dropdown-async.stories.tsx +14 -14
- package/src/components/molecules/Dropdown/dropdown.stories.tsx +111 -111
- package/src/components/molecules/Dropdown/dropdown.test.tsx +128 -128
- package/src/components/molecules/Dropdown/dropdown.tsx +321 -321
- package/src/components/molecules/DropdownMenu/__snapshots__/dropdown-menu.test.tsx.snap +3 -0
- package/src/components/molecules/DropdownMenu/dropdown-menu.stories.tsx +154 -154
- package/src/components/molecules/DropdownMenu/dropdown-menu.test.tsx +163 -163
- package/src/components/molecules/DropdownMenu/dropdown-menu.tsx +313 -313
- package/src/components/molecules/DropdownMenu/index.ts +1 -1
- package/src/components/molecules/HoverCard/__snapshots__/hover-card.test.tsx.snap +14 -0
- package/src/components/molecules/HoverCard/hover-card.stories.tsx +48 -48
- package/src/components/molecules/HoverCard/hover-card.test.tsx +42 -42
- package/src/components/molecules/HoverCard/hover-card.tsx +44 -44
- package/src/components/molecules/HoverCard/index.ts +1 -1
- package/src/components/molecules/InputOTP/__snapshots__/input-otp.test.tsx.snap +89 -0
- package/src/components/molecules/InputOTP/index.ts +1 -1
- package/src/components/molecules/InputOTP/input-otp.stories.tsx +52 -52
- package/src/components/molecules/InputOTP/input-otp.test.tsx +28 -28
- package/src/components/molecules/InputOTP/input-otp.tsx +76 -76
- package/src/components/molecules/Menubar/__snapshots__/menubar.test.tsx.snap +80 -0
- package/src/components/molecules/Menubar/index.ts +1 -1
- package/src/components/molecules/Menubar/menubar.stories.tsx +113 -113
- package/src/components/molecules/Menubar/menubar.test.tsx +42 -42
- package/src/components/molecules/Menubar/menubar.tsx +314 -314
- package/src/components/molecules/NavigationMenu/__snapshots__/navigation-menu.test.tsx.snap +20 -0
- package/src/components/molecules/NavigationMenu/index.ts +1 -1
- package/src/components/molecules/NavigationMenu/navigation-menu.stories.tsx +143 -143
- package/src/components/molecules/NavigationMenu/navigation-menu.test.tsx +69 -69
- package/src/components/molecules/NavigationMenu/navigation-menu.tsx +174 -174
- package/src/components/molecules/PDFViewer/__snapshots__/pdf-viewer.test.tsx.snap +257 -0
- package/src/components/molecules/PDFViewer/index.ts +1 -1
- package/src/components/molecules/PDFViewer/pdf-viewer.stories.tsx +34 -34
- package/src/components/molecules/PDFViewer/pdf-viewer.test.tsx +26 -26
- package/src/components/molecules/PDFViewer/pdf-viewer.tsx +167 -167
- package/src/components/molecules/Pagination/__snapshots__/pagination.test.tsx.snap +200 -0
- package/src/components/molecules/Pagination/index.ts +1 -1
- package/src/components/molecules/Pagination/pagination.stories.tsx +193 -193
- package/src/components/molecules/Pagination/pagination.test.tsx +447 -447
- package/src/components/molecules/Pagination/pagination.tsx +206 -206
- package/src/components/molecules/PaginationDotGroup/__snapshots__/pagination-dot-group.test.tsx.snap +193 -0
- package/src/components/molecules/PaginationDotGroup/index.ts +1 -1
- package/src/components/molecules/PaginationDotGroup/pagination-dot-group.stories.tsx +211 -211
- package/src/components/molecules/PaginationDotGroup/pagination-dot-group.test.tsx +384 -384
- package/src/components/molecules/PaginationDotGroup/pagination-dot-group.tsx +119 -119
- package/src/components/molecules/Popover/index.ts +1 -1
- package/src/components/molecules/Popover/popover-menu.stories.tsx +27 -27
- package/src/components/molecules/Popover/popover.test.tsx +50 -50
- package/src/components/molecules/Popover/popover.tsx +38 -38
- package/src/components/molecules/ProgressSteps/__snapshots__/progress-steps.test.tsx.snap +524 -0
- package/src/components/molecules/ProgressSteps/index.ts +1 -1
- package/src/components/molecules/ProgressSteps/progress-steps.stories.tsx +36 -36
- package/src/components/molecules/ProgressSteps/progress-steps.test.tsx +470 -470
- package/src/components/molecules/ProgressSteps/progress-steps.tsx +140 -140
- package/src/components/molecules/RadioGroup/__snapshots__/radio-group.test.tsx.snap +122 -0
- package/src/components/molecules/RadioGroup/index.ts +1 -1
- package/src/components/molecules/RadioGroup/radio-group.stories.tsx +42 -42
- package/src/components/molecules/RadioGroup/radio-group.test.tsx +22 -22
- package/src/components/molecules/RadioGroup/radio-group.tsx +55 -55
- package/src/components/molecules/Resizable/__snapshots__/resizable.test.tsx.snap +121 -0
- package/src/components/molecules/Resizable/index.ts +1 -1
- package/src/components/molecules/Resizable/resizable.stories.tsx +52 -52
- package/src/components/molecules/Resizable/resizable.test.tsx +22 -22
- package/src/components/molecules/Resizable/resizable.tsx +55 -55
- package/src/components/molecules/ScrollArea/__snapshots__/scroll-area.test.tsx.snap +636 -0
- package/src/components/molecules/ScrollArea/index.ts +1 -1
- package/src/components/molecules/ScrollArea/scroll-area.stories.tsx +93 -93
- package/src/components/molecules/ScrollArea/scroll-area.test.tsx +28 -28
- package/src/components/molecules/ScrollArea/scroll-area.tsx +57 -57
- package/src/components/molecules/Select/__snapshots__/select.test.tsx.snap +15 -0
- package/src/components/molecules/Select/index.ts +1 -1
- package/src/components/molecules/Select/select.stories.tsx +63 -63
- package/src/components/molecules/Select/select.test.tsx +80 -80
- package/src/components/molecules/Select/select.tsx +172 -172
- package/src/components/molecules/Sheet/__snapshots__/sheet.test.tsx.snap +3 -0
- package/src/components/molecules/Sheet/index.ts +1 -1
- package/src/components/molecules/Sheet/sheet.stories.tsx +141 -141
- package/src/components/molecules/Sheet/sheet.test.tsx +70 -70
- package/src/components/molecules/Sheet/sheet.tsx +133 -133
- package/src/components/molecules/Tabs/__snapshots__/tabs.test.tsx.snap +25 -0
- package/src/components/molecules/Tabs/index.ts +1 -1
- package/src/components/molecules/Tabs/tabs.stories.tsx +221 -221
- package/src/components/molecules/Tabs/tabs.test.tsx +113 -113
- package/src/components/molecules/Tabs/tabs.tsx +102 -102
- package/src/components/molecules/ToggleGroup/__snapshots__/toggle-group.test.tsx.snap +42 -0
- package/src/components/molecules/ToggleGroup/index.ts +1 -1
- package/src/components/molecules/ToggleGroup/toggle-group.stories.tsx +117 -117
- package/src/components/molecules/ToggleGroup/toggle-group.test.tsx +100 -100
- package/src/components/molecules/ToggleGroup/toggle-group.tsx +70 -70
- package/src/components/molecules/Tooltip/__snapshots__/tooltip.test.tsx.snap +13 -0
- package/src/components/molecules/Tooltip/index.ts +1 -1
- package/src/components/molecules/Tooltip/tooltip.stories.tsx +133 -133
- package/src/components/molecules/Tooltip/tooltip.test.tsx +58 -58
- package/src/components/molecules/Tooltip/tooltip.tsx +58 -58
- package/src/components/molecules/index.ts +33 -33
- package/src/components/organisms/Carousel/__snapshots__/carousel.test.tsx.snap +219 -0
- package/src/components/organisms/Carousel/carousel.stories.tsx +94 -94
- package/src/components/organisms/Carousel/carousel.test.tsx +24 -24
- package/src/components/organisms/Carousel/carousel.tsx +383 -383
- package/src/components/organisms/Carousel/index.ts +1 -1
- package/src/components/organisms/Chart/__snapshots__/chart.test.tsx.snap +154 -0
- package/src/components/organisms/Chart/chart.stories.tsx +102 -102
- package/src/components/organisms/Chart/chart.test.tsx +105 -105
- package/src/components/organisms/Chart/chart.tsx +294 -294
- package/src/components/organisms/Chart/index.ts +1 -1
- package/src/components/organisms/FileUpload/FilePreview/file-preview.tsx +55 -55
- package/src/components/organisms/FileUpload/FilePreview/index.ts +1 -1
- package/src/components/organisms/FileUpload/file-upload.stories.tsx +20 -20
- package/src/components/organisms/FileUpload/file-upload.test.tsx +59 -59
- package/src/components/organisms/FileUpload/file-upload.tsx +175 -175
- package/src/components/organisms/FileUpload/file.d.ts +20 -20
- package/src/components/organisms/Form/__snapshots__/form.test.tsx.snap +194 -0
- package/src/components/organisms/Form/form.stories.tsx +155 -155
- package/src/components/organisms/Form/form.test.tsx +49 -49
- package/src/components/organisms/Form/form.tsx +133 -133
- package/src/components/organisms/Form/index.ts +1 -1
- package/src/components/organisms/Sidebar/__snapshots__/sidebar.test.tsx.snap +224 -0
- package/src/components/organisms/Sidebar/index.ts +1 -1
- package/src/components/organisms/Sidebar/sidebar.stories.tsx +86 -86
- package/src/components/organisms/Sidebar/sidebar.test.tsx +101 -101
- package/src/components/organisms/Sidebar/sidebar.tsx +666 -666
- package/src/components/organisms/Table/__snapshots__/table.test.tsx.snap +318 -0
- package/src/components/organisms/Table/index.ts +1 -1
- package/src/components/organisms/Table/table.stories.tsx +86 -86
- package/src/components/organisms/Table/table.test.tsx +42 -42
- package/src/components/organisms/Table/table.tsx +120 -120
- package/src/components/organisms/index.ts +6 -6
- package/src/constants/brazilian-states.ts +29 -29
- package/src/constants/index.ts +1 -1
- package/src/hooks/index.ts +10 -10
- package/src/hooks/useEditorActiveMarks.ts +62 -62
- package/src/hooks/useForm.ts +7 -7
- package/src/hooks/useFormContext.ts +6 -6
- package/src/hooks/useFormField.ts +41 -41
- package/src/hooks/useMobile.ts +61 -61
- package/src/hooks/useOnToggle.ts +28 -28
- package/src/hooks/usePDFNavigation.ts +40 -40
- package/src/hooks/usePDFZoom.ts +28 -28
- package/src/hooks/useSidebar.ts +23 -23
- package/src/hooks/useToast.tsx +37 -37
- package/src/index.css +73 -73
- package/src/main.ts +6 -6
- package/src/theme.css +387 -387
- package/src/utils/api/api.test.ts +63 -63
- package/src/utils/api/api.ts +33 -33
- package/src/utils/api/index.ts +1 -1
- package/src/utils/array/array.test.ts +159 -159
- package/src/utils/array/array.ts +43 -43
- package/src/utils/array/index.ts +1 -1
- package/src/utils/clipboard/clipboard.test.ts +217 -217
- package/src/utils/clipboard/clipboard.ts +40 -40
- package/src/utils/cn/cn.test.ts +42 -42
- package/src/utils/cn/cn.ts +6 -6
- package/src/utils/cn/index.ts +1 -1
- package/src/utils/color-utils/color-utils.test.ts +46 -46
- package/src/utils/color-utils/color-utils.ts +97 -97
- package/src/utils/color-utils/index.ts +1 -1
- package/src/utils/countries/countries.ts +69 -69
- package/src/utils/currency/currency.test.ts +113 -113
- package/src/utils/currency/currency.ts +133 -133
- package/src/utils/currency/index.ts +1 -1
- package/src/utils/date/date.test.ts +166 -166
- package/src/utils/date/date.ts +83 -83
- package/src/utils/date/index.ts +1 -1
- package/src/utils/file/file.ts +44 -44
- package/src/utils/file/index.ts +1 -1
- package/src/utils/get-initials/get-initials.test.ts +40 -40
- package/src/utils/get-initials/get-initials.ts +13 -13
- package/src/utils/get-initials/index.ts +1 -1
- package/src/utils/index.ts +14 -14
- package/src/utils/masks/index.ts +1 -1
- package/src/utils/masks/masks.ts +179 -179
- package/src/utils/render-highlighted-text/render-highlighted-text.tsx +24 -24
- package/src/utils/string/index.ts +1 -1
- package/src/utils/string/string.test.ts +170 -170
- package/src/utils/string/string.ts +154 -154
- package/src/utils/video/index.ts +1 -1
- package/src/utils/video/video.ts +8 -8
- package/src/vite-env.d.ts +3 -3
package/README.md
CHANGED
|
@@ -1,241 +1,241 @@
|
|
|
1
|
-
# 🧩 mblabs-roccato-frontend-commons
|
|
2
|
-
|
|
3
|
-
Uma coleção de componentes e utilitários de front-end reutilizáveis, desenvolvidos com tecnologias modernas como React 19, TailwindCSS, Radix UI e muito mais. Criado para ser compartilhado entre projetos dentro do ecossistema MB Labs Roccato.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 📦 Instalação
|
|
8
|
-
|
|
9
|
-
Utilize o [pnpm](https://pnpm.io/) como gerenciador de pacotes (Node.js 22+):
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm add mblabs-roccato-frontend-commons
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Certifique-se de instalar também as dependências peer:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pnpm add react@^19.0.0 react-dom@^19.0.0 react-hook-form@^7.55.0
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 🚀 Como usar
|
|
24
|
-
|
|
25
|
-
Importe os componentes ou utilitários diretamente do pacote:
|
|
26
|
-
|
|
27
|
-
```tsx
|
|
28
|
-
import { MeuComponente } from 'mblabs-roccato-frontend-commons';
|
|
29
|
-
import 'mblabs-roccato-frontend-commons/css'; // estilos padrões
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## ✨ Destaques
|
|
35
|
-
|
|
36
|
-
- ✅ Suporte ao React 19
|
|
37
|
-
- 🎨 TailwindCSS 4 com variantes dinâmicas
|
|
38
|
-
- ⚙️ Componentes acessíveis via Radix UI
|
|
39
|
-
- 🧰 Drag & drop com DnD Kit
|
|
40
|
-
- 📊 Visualizações com Recharts
|
|
41
|
-
- 🧪 Totalmente tipado com TypeScript
|
|
42
|
-
- 📚 Documentação interativa com Storybook
|
|
43
|
-
- ⚡ Build otimizado com Vite
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 📂 Estrutura do Projeto
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
📁 src/
|
|
51
|
-
┣ 📦 components/
|
|
52
|
-
┣ ┣ 📦 atoms/
|
|
53
|
-
┣ ┣ 📦 molecules/
|
|
54
|
-
┣ ┣ 📦 organisms/
|
|
55
|
-
┣ ┣ 📄 index.ts
|
|
56
|
-
┣ 📦 hooks/
|
|
57
|
-
┣ 📦 utils/
|
|
58
|
-
┗ 📄 index.ts
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 🧪 Scripts
|
|
64
|
-
|
|
65
|
-
| Comando | Descrição |
|
|
66
|
-
| ---------------------- | ------------------------------------------------- |
|
|
67
|
-
| `pnpm build` | Compila a lib com TypeScript e Vite |
|
|
68
|
-
| `pnpm lint` | Lint no projeto com ESLint |
|
|
69
|
-
| `pnpm storybook` | Inicia o Storybook em ambiente de desenvolvimento |
|
|
70
|
-
| `pnpm build-storybook` | Gera versão estática do Storybook |
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 📦 Adicionando novos ícones
|
|
75
|
-
|
|
76
|
-
Para adicionar novos ícones ao projeto, siga este processo passo a passo:
|
|
77
|
-
|
|
78
|
-
### 1. Copiar nome do ícone do Figma
|
|
79
|
-
- Identifique o nome exato do ícone no design do Figma
|
|
80
|
-
- Exemplo: `check-circle`, `info-circle`, `user-01`
|
|
81
|
-
|
|
82
|
-
### 2. Buscar ícone no Untitled UI
|
|
83
|
-
- Acesse [https://www.untitledui.com/free-icons](https://www.untitledui.com/free-icons)
|
|
84
|
-
- Use a barra de pesquisa para encontrar o ícone pelo nome
|
|
85
|
-
- Certifique-se de que é o ícone correto visualmente
|
|
86
|
-
|
|
87
|
-
### 3. Copiar SVG
|
|
88
|
-
- Clique no ícone desejado
|
|
89
|
-
- Copie o código SVG fornecido
|
|
90
|
-
- O SVG deve ter viewBox="0 0 24 24" e ser otimizado
|
|
91
|
-
|
|
92
|
-
### 4. Criar componente reutilizável
|
|
93
|
-
Crie um novo arquivo em `src/components/icons/` seguindo o padrão:
|
|
94
|
-
|
|
95
|
-
```tsx
|
|
96
|
-
// src/components/icons/nome-do-icone.tsx
|
|
97
|
-
import { ComponentProps } from 'react';
|
|
98
|
-
|
|
99
|
-
export function NomeDoIcone(props: ComponentProps<'svg'>) {
|
|
100
|
-
return (
|
|
101
|
-
<svg
|
|
102
|
-
width="100%"
|
|
103
|
-
height="100%"
|
|
104
|
-
viewBox="0 0 24 24"
|
|
105
|
-
fill="none"
|
|
106
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
107
|
-
{...props}
|
|
108
|
-
>
|
|
109
|
-
{/* Cole o conteúdo SVG aqui */}
|
|
110
|
-
</svg>
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 5. Corrigir propriedades CSS
|
|
116
|
-
Converta propriedades kebab-case para camelCase:
|
|
117
|
-
|
|
118
|
-
```tsx
|
|
119
|
-
// ❌ Incorreto
|
|
120
|
-
stroke-width="2" → strokeWidth="2"
|
|
121
|
-
stroke-linecap="round" → strokeLinecap="round"
|
|
122
|
-
stroke-linejoin="round" → strokeLinejoin="round"
|
|
123
|
-
fill-rule="evenodd" → fillRule="evenodd"
|
|
124
|
-
clip-rule="evenodd" → clipRule="evenodd"
|
|
125
|
-
|
|
126
|
-
// ✅ Correto
|
|
127
|
-
strokeWidth="2"
|
|
128
|
-
strokeLinecap="round"
|
|
129
|
-
strokeLinejoin="round"
|
|
130
|
-
fillRule="evenodd"
|
|
131
|
-
clipRule="evenodd"
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### 6. Adicionar ao index.ts
|
|
135
|
-
Adicione a exportação no arquivo `src/components/icons/index.ts`:
|
|
136
|
-
|
|
137
|
-
```tsx
|
|
138
|
-
// Adicione no final do arquivo, em ordem alfabética
|
|
139
|
-
export * from './nome-do-icone';
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Exemplo Completo
|
|
143
|
-
|
|
144
|
-
**Nome do ícone:** `check-circle`
|
|
145
|
-
|
|
146
|
-
**Arquivo criado:** `src/components/icons/check-circle.tsx`
|
|
147
|
-
|
|
148
|
-
```tsx
|
|
149
|
-
import { ComponentProps } from 'react';
|
|
150
|
-
|
|
151
|
-
export function CheckCircle(props: ComponentProps<'svg'>) {
|
|
152
|
-
return (
|
|
153
|
-
<svg
|
|
154
|
-
width="100%"
|
|
155
|
-
height="100%"
|
|
156
|
-
viewBox="0 0 24 24"
|
|
157
|
-
fill="none"
|
|
158
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
159
|
-
{...props}
|
|
160
|
-
>
|
|
161
|
-
<path
|
|
162
|
-
d="M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"
|
|
163
|
-
stroke="currentColor"
|
|
164
|
-
strokeWidth="2"
|
|
165
|
-
strokeLinecap="round"
|
|
166
|
-
strokeLinejoin="round"
|
|
167
|
-
/>
|
|
168
|
-
</svg>
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
**Adicionado ao index.ts:**
|
|
174
|
-
```tsx
|
|
175
|
-
export * from './check-circle';
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Boas Práticas
|
|
179
|
-
|
|
180
|
-
- ✅ Use `currentColor` para stroke/fill para permitir customização
|
|
181
|
-
- ✅ Mantenha viewBox="0 0 24 24" para consistência
|
|
182
|
-
- ✅ Use width="100%" height="100%" para responsividade
|
|
183
|
-
- ✅ Nomeie o componente em PascalCase
|
|
184
|
-
- ✅ Nomeie o arquivo em kebab-case
|
|
185
|
-
- ✅ Mantenha ordem alfabética no index.ts
|
|
186
|
-
- ✅ Teste o ícone no Storybook após adicionar
|
|
187
|
-
|
|
188
|
-
### Uso do Ícone
|
|
189
|
-
|
|
190
|
-
Após adicionar, o ícone estará disponível para uso:
|
|
191
|
-
|
|
192
|
-
```tsx
|
|
193
|
-
import { CheckCircle } from '@/components/icons';
|
|
194
|
-
|
|
195
|
-
// Uso básico
|
|
196
|
-
<CheckCircle />
|
|
197
|
-
|
|
198
|
-
// Com customização
|
|
199
|
-
<CheckCircle className="w-6 h-6 text-blue-500" />
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## 📚 Storybook
|
|
205
|
-
|
|
206
|
-
Explore e teste os componentes interativamente:
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
pnpm storybook
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Ou gere a versão estática:
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
pnpm build-storybook
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## 🧩 Tecnologias Utilizadas
|
|
221
|
-
|
|
222
|
-
- React 19
|
|
223
|
-
- TailwindCSS
|
|
224
|
-
- Radix UI
|
|
225
|
-
- DnD Kit
|
|
226
|
-
- Tanstack react-table
|
|
227
|
-
- Tabler icons-react
|
|
228
|
-
- Date fns
|
|
229
|
-
- Recharts
|
|
230
|
-
- React Hook Form
|
|
231
|
-
- Zod
|
|
232
|
-
- Storybook
|
|
233
|
-
- Vite
|
|
234
|
-
- TypeScript
|
|
235
|
-
- ESLint
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
## 📝 Licença
|
|
240
|
-
|
|
241
|
-
MIT © Roccato — Feito com ❤️ pelo time MB Labs.
|
|
1
|
+
# 🧩 mblabs-roccato-frontend-commons
|
|
2
|
+
|
|
3
|
+
Uma coleção de componentes e utilitários de front-end reutilizáveis, desenvolvidos com tecnologias modernas como React 19, TailwindCSS, Radix UI e muito mais. Criado para ser compartilhado entre projetos dentro do ecossistema MB Labs Roccato.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📦 Instalação
|
|
8
|
+
|
|
9
|
+
Utilize o [pnpm](https://pnpm.io/) como gerenciador de pacotes (Node.js 22+):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add mblabs-roccato-frontend-commons
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Certifique-se de instalar também as dependências peer:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add react@^19.0.0 react-dom@^19.0.0 react-hook-form@^7.55.0
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 🚀 Como usar
|
|
24
|
+
|
|
25
|
+
Importe os componentes ou utilitários diretamente do pacote:
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import { MeuComponente } from 'mblabs-roccato-frontend-commons';
|
|
29
|
+
import 'mblabs-roccato-frontend-commons/css'; // estilos padrões
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## ✨ Destaques
|
|
35
|
+
|
|
36
|
+
- ✅ Suporte ao React 19
|
|
37
|
+
- 🎨 TailwindCSS 4 com variantes dinâmicas
|
|
38
|
+
- ⚙️ Componentes acessíveis via Radix UI
|
|
39
|
+
- 🧰 Drag & drop com DnD Kit
|
|
40
|
+
- 📊 Visualizações com Recharts
|
|
41
|
+
- 🧪 Totalmente tipado com TypeScript
|
|
42
|
+
- 📚 Documentação interativa com Storybook
|
|
43
|
+
- ⚡ Build otimizado com Vite
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 📂 Estrutura do Projeto
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
📁 src/
|
|
51
|
+
┣ 📦 components/
|
|
52
|
+
┣ ┣ 📦 atoms/
|
|
53
|
+
┣ ┣ 📦 molecules/
|
|
54
|
+
┣ ┣ 📦 organisms/
|
|
55
|
+
┣ ┣ 📄 index.ts
|
|
56
|
+
┣ 📦 hooks/
|
|
57
|
+
┣ 📦 utils/
|
|
58
|
+
┗ 📄 index.ts
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🧪 Scripts
|
|
64
|
+
|
|
65
|
+
| Comando | Descrição |
|
|
66
|
+
| ---------------------- | ------------------------------------------------- |
|
|
67
|
+
| `pnpm build` | Compila a lib com TypeScript e Vite |
|
|
68
|
+
| `pnpm lint` | Lint no projeto com ESLint |
|
|
69
|
+
| `pnpm storybook` | Inicia o Storybook em ambiente de desenvolvimento |
|
|
70
|
+
| `pnpm build-storybook` | Gera versão estática do Storybook |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 📦 Adicionando novos ícones
|
|
75
|
+
|
|
76
|
+
Para adicionar novos ícones ao projeto, siga este processo passo a passo:
|
|
77
|
+
|
|
78
|
+
### 1. Copiar nome do ícone do Figma
|
|
79
|
+
- Identifique o nome exato do ícone no design do Figma
|
|
80
|
+
- Exemplo: `check-circle`, `info-circle`, `user-01`
|
|
81
|
+
|
|
82
|
+
### 2. Buscar ícone no Untitled UI
|
|
83
|
+
- Acesse [https://www.untitledui.com/free-icons](https://www.untitledui.com/free-icons)
|
|
84
|
+
- Use a barra de pesquisa para encontrar o ícone pelo nome
|
|
85
|
+
- Certifique-se de que é o ícone correto visualmente
|
|
86
|
+
|
|
87
|
+
### 3. Copiar SVG
|
|
88
|
+
- Clique no ícone desejado
|
|
89
|
+
- Copie o código SVG fornecido
|
|
90
|
+
- O SVG deve ter viewBox="0 0 24 24" e ser otimizado
|
|
91
|
+
|
|
92
|
+
### 4. Criar componente reutilizável
|
|
93
|
+
Crie um novo arquivo em `src/components/icons/` seguindo o padrão:
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
// src/components/icons/nome-do-icone.tsx
|
|
97
|
+
import { ComponentProps } from 'react';
|
|
98
|
+
|
|
99
|
+
export function NomeDoIcone(props: ComponentProps<'svg'>) {
|
|
100
|
+
return (
|
|
101
|
+
<svg
|
|
102
|
+
width="100%"
|
|
103
|
+
height="100%"
|
|
104
|
+
viewBox="0 0 24 24"
|
|
105
|
+
fill="none"
|
|
106
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
107
|
+
{...props}
|
|
108
|
+
>
|
|
109
|
+
{/* Cole o conteúdo SVG aqui */}
|
|
110
|
+
</svg>
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 5. Corrigir propriedades CSS
|
|
116
|
+
Converta propriedades kebab-case para camelCase:
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
// ❌ Incorreto
|
|
120
|
+
stroke-width="2" → strokeWidth="2"
|
|
121
|
+
stroke-linecap="round" → strokeLinecap="round"
|
|
122
|
+
stroke-linejoin="round" → strokeLinejoin="round"
|
|
123
|
+
fill-rule="evenodd" → fillRule="evenodd"
|
|
124
|
+
clip-rule="evenodd" → clipRule="evenodd"
|
|
125
|
+
|
|
126
|
+
// ✅ Correto
|
|
127
|
+
strokeWidth="2"
|
|
128
|
+
strokeLinecap="round"
|
|
129
|
+
strokeLinejoin="round"
|
|
130
|
+
fillRule="evenodd"
|
|
131
|
+
clipRule="evenodd"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 6. Adicionar ao index.ts
|
|
135
|
+
Adicione a exportação no arquivo `src/components/icons/index.ts`:
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
// Adicione no final do arquivo, em ordem alfabética
|
|
139
|
+
export * from './nome-do-icone';
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Exemplo Completo
|
|
143
|
+
|
|
144
|
+
**Nome do ícone:** `check-circle`
|
|
145
|
+
|
|
146
|
+
**Arquivo criado:** `src/components/icons/check-circle.tsx`
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
import { ComponentProps } from 'react';
|
|
150
|
+
|
|
151
|
+
export function CheckCircle(props: ComponentProps<'svg'>) {
|
|
152
|
+
return (
|
|
153
|
+
<svg
|
|
154
|
+
width="100%"
|
|
155
|
+
height="100%"
|
|
156
|
+
viewBox="0 0 24 24"
|
|
157
|
+
fill="none"
|
|
158
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
159
|
+
{...props}
|
|
160
|
+
>
|
|
161
|
+
<path
|
|
162
|
+
d="M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"
|
|
163
|
+
stroke="currentColor"
|
|
164
|
+
strokeWidth="2"
|
|
165
|
+
strokeLinecap="round"
|
|
166
|
+
strokeLinejoin="round"
|
|
167
|
+
/>
|
|
168
|
+
</svg>
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**Adicionado ao index.ts:**
|
|
174
|
+
```tsx
|
|
175
|
+
export * from './check-circle';
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Boas Práticas
|
|
179
|
+
|
|
180
|
+
- ✅ Use `currentColor` para stroke/fill para permitir customização
|
|
181
|
+
- ✅ Mantenha viewBox="0 0 24 24" para consistência
|
|
182
|
+
- ✅ Use width="100%" height="100%" para responsividade
|
|
183
|
+
- ✅ Nomeie o componente em PascalCase
|
|
184
|
+
- ✅ Nomeie o arquivo em kebab-case
|
|
185
|
+
- ✅ Mantenha ordem alfabética no index.ts
|
|
186
|
+
- ✅ Teste o ícone no Storybook após adicionar
|
|
187
|
+
|
|
188
|
+
### Uso do Ícone
|
|
189
|
+
|
|
190
|
+
Após adicionar, o ícone estará disponível para uso:
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
import { CheckCircle } from '@/components/icons';
|
|
194
|
+
|
|
195
|
+
// Uso básico
|
|
196
|
+
<CheckCircle />
|
|
197
|
+
|
|
198
|
+
// Com customização
|
|
199
|
+
<CheckCircle className="w-6 h-6 text-blue-500" />
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 📚 Storybook
|
|
205
|
+
|
|
206
|
+
Explore e teste os componentes interativamente:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
pnpm storybook
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Ou gere a versão estática:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
pnpm build-storybook
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 🧩 Tecnologias Utilizadas
|
|
221
|
+
|
|
222
|
+
- React 19
|
|
223
|
+
- TailwindCSS
|
|
224
|
+
- Radix UI
|
|
225
|
+
- DnD Kit
|
|
226
|
+
- Tanstack react-table
|
|
227
|
+
- Tabler icons-react
|
|
228
|
+
- Date fns
|
|
229
|
+
- Recharts
|
|
230
|
+
- React Hook Form
|
|
231
|
+
- Zod
|
|
232
|
+
- Storybook
|
|
233
|
+
- Vite
|
|
234
|
+
- TypeScript
|
|
235
|
+
- ESLint
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 📝 Licença
|
|
240
|
+
|
|
241
|
+
MIT © Roccato — Feito com ❤️ pelo time MB Labs.
|
package/dist/index.d.ts
CHANGED
|
@@ -229,6 +229,8 @@ export declare function BreadcrumbPage({ className, ...props }: React_2.Componen
|
|
|
229
229
|
|
|
230
230
|
export declare function BreadcrumbSeparator({ children, className, ...props }: React_2.ComponentProps<'li'>): JSX.Element;
|
|
231
231
|
|
|
232
|
+
export declare function BrIcon(props: ComponentProps<'svg'>): JSX.Element;
|
|
233
|
+
|
|
232
234
|
export declare function Briefcase01(props: ComponentProps<'svg'>): JSX.Element;
|
|
233
235
|
|
|
234
236
|
export declare function Brush01(props: ComponentProps<'svg'>): JSX.Element;
|
|
@@ -934,6 +936,8 @@ export declare function Edit02(props: ComponentProps<'svg'>): JSX.Element;
|
|
|
934
936
|
|
|
935
937
|
export declare function Edit03(props: ComponentProps<'svg'>): JSX.Element;
|
|
936
938
|
|
|
939
|
+
export declare function EsIcon(props: ComponentProps<'svg'>): JSX.Element;
|
|
940
|
+
|
|
937
941
|
export declare function Eye(props: ComponentProps<'svg'>): JSX.Element;
|
|
938
942
|
|
|
939
943
|
export declare const FaceFrown: (props: ComponentProps<"svg">) => JSX.Element;
|
|
@@ -2001,6 +2005,8 @@ declare interface UseToggleReturn {
|
|
|
2001
2005
|
setValue: (value: boolean) => void;
|
|
2002
2006
|
}
|
|
2003
2007
|
|
|
2008
|
+
export declare function UsIcon(props: ComponentProps<'svg'>): JSX.Element;
|
|
2009
|
+
|
|
2004
2010
|
export declare function VerticalDrag(props: ComponentProps<'svg'>): JSX.Element;
|
|
2005
2011
|
|
|
2006
2012
|
export declare function VideoPlayer({ videoUrl, className }: {
|