mblabs-roccato-frontend-commons 0.2.27 → 0.2.28
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 +3 -3
- package/dist/mblabs-roccato-frontend-commons.css +1 -1
- package/dist/mblabs-roccato-frontend-commons.js +32 -17
- package/package.json +157 -157
- 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/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/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/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 +303 -303
- package/src/components/atoms/Calendar/calendar.stories.tsx +65 -65
- package/src/components/atoms/Calendar/calendar.test.tsx +93 -93
- package/src/components/atoms/Calendar/calendar.tsx +185 -185
- 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/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/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/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/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/index.ts +1 -1
- package/src/components/atoms/Input/input.stories.tsx +704 -704
- package/src/components/atoms/Input/input.test.tsx +99 -99
- package/src/components/atoms/Input/input.tsx +170 -170
- 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 +98 -98
- package/src/components/atoms/InputMoney/input-money.tsx +254 -254
- 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 +433 -433
- package/src/components/atoms/InputWithButton/index.ts +2 -2
- package/src/components/atoms/InputWithButton/input-with-button.stories.tsx +510 -510
- package/src/components/atoms/InputWithButton/input-with-button.test.tsx +127 -127
- package/src/components/atoms/InputWithButton/input-with-button.tsx +179 -179
- 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/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/rich-text-editor.stories.tsx +236 -236
- package/src/components/atoms/RichTextEditor/rich-text-editor.test.tsx +441 -441
- package/src/components/atoms/RichTextEditor/rich-text-editor.tsx +230 -230
- package/src/components/atoms/RichTextRenderer/rich-text-renderer.stories.tsx +84 -84
- package/src/components/atoms/RichTextRenderer/rich-text-renderer.test.tsx +49 -49
- package/src/components/atoms/RichTextRenderer/rich-text-renderer.tsx +17 -17
- 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/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/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/index.ts +1 -1
- package/src/components/atoms/Sonner/sonner.css +39 -39
- package/src/components/atoms/Sonner/sonner.stories.tsx +260 -260
- package/src/components/atoms/Sonner/sonner.test.tsx +24 -24
- package/src/components/atoms/Sonner/sonner.tsx +13 -13
- 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/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/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/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 +361 -361
- 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 +32 -32
- 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/annotation-question.tsx +14 -14
- package/src/components/icons/annotation.tsx +22 -22
- 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/book-open-01.tsx +14 -14
- 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-check-01.tsx +22 -22
- 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-double.tsx +22 -22
- package/src/components/icons/chevron-left.tsx +16 -16
- package/src/components/icons/chevron-right-double.tsx +22 -22
- 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/clock-stopwatch.tsx +14 -14
- 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 +19 -19
- package/src/components/icons/countries/es.tsx +18 -18
- package/src/components/icons/countries/index.ts +2 -2
- package/src/components/icons/countries/us.tsx +20 -20
- 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/face-happy.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 +141 -141
- 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/route.tsx +22 -22
- 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-minus-02.tsx +14 -14
- package/src/components/icons/user-plus-01.tsx +22 -22
- package/src/components/icons/user-plus-02.tsx +14 -14
- 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/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/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/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 +176 -172
- package/src/components/molecules/AlertDialog/index.ts +1 -1
- 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/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/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/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 +106 -106
- 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/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/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/date-picker.stories.tsx +233 -233
- package/src/components/molecules/DatePicker/date-picker.test.tsx +27 -27
- package/src/components/molecules/DatePicker/date-picker.tsx +512 -512
- 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 +155 -150
- 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 +211 -206
- package/src/components/molecules/Drawer/index.ts +1 -1
- 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/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/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/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/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/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/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 +358 -358
- 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/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/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/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/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/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/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/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 +138 -133
- 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/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/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/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/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/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/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/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 +34 -34
- package/src/hooks/useSidebar.ts +23 -23
- package/src/hooks/useToast.tsx +62 -62
- 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 +169 -169
- 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 +185 -185
- package/src/utils/string/string.ts +157 -157
- 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/src/components/atoms/AudioPlayer/__snapshots__/audio-player.test.tsx.snap +0 -22
- package/src/components/atoms/Badge/__snapshots__/badge.test.tsx.snap +0 -12
- package/src/components/atoms/Box/__snapshots__/box.test.tsx.snap +0 -10
- package/src/components/atoms/Button/__snapshots__/button.test.tsx.snap +0 -13
- package/src/components/atoms/Calendar/__snapshots__/calendar.test.tsx.snap +0 -936
- package/src/components/atoms/Checkbox/__snapshots__/checkbox.test.tsx.snap +0 -16
- package/src/components/atoms/Flex/__snapshots__/flex.test.tsx.snap +0 -10
- package/src/components/atoms/Grid/__snapshots__/grid.test.tsx.snap +0 -10
- package/src/components/atoms/Icon/__snapshots__/icon.test.tsx.snap +0 -103
- package/src/components/atoms/Input/__snapshots__/input.test.tsx.snap +0 -50
- package/src/components/atoms/Label/__snapshots__/label.test.tsx.snap +0 -17
- package/src/components/atoms/Progress/__snapshots__/progress.test.tsx.snap +0 -25
- package/src/components/atoms/RichTextEditor/__snapshots__/rich-text-editor.test.tsx.snap +0 -314
- package/src/components/atoms/Separator/__snapshots__/separator.test.tsx.snap +0 -13
- package/src/components/atoms/Skeleton/__snapshots__/skeleton.test.tsx.snap +0 -11
- package/src/components/atoms/Slider/__snapshots__/slider.test.tsx.snap +0 -240
- package/src/components/atoms/Sonner/__snapshots__/sonner.test.tsx.snap +0 -13
- package/src/components/atoms/Switch/__snapshots__/switch.test.tsx.snap +0 -22
- package/src/components/atoms/Textarea/__snapshots__/textarea.test.tsx.snap +0 -10
- package/src/components/atoms/Toggle/__snapshots__/toggle.test.tsx.snap +0 -13
- package/src/components/atoms/Typography/__snapshots__/typography.test.tsx.snap +0 -12
- package/src/components/atoms/VideoPlayer/__snapshots__/video-player.test.tsx.snap +0 -17
- package/src/components/molecules/Accordion/__snapshots__/accordion.test.tsx.snap +0 -123
- package/src/components/molecules/Alert/__snapshots__/alert.test.tsx.snap +0 -27
- package/src/components/molecules/AlertDialog/__snapshots__/alert-dialog.test.tsx.snap +0 -18
- package/src/components/molecules/Avatar/__snapshots__/avatar.test.tsx.snap +0 -11
- package/src/components/molecules/Breadcrumb/__snapshots__/breadcrumb.test.tsx.snap +0 -11
- package/src/components/molecules/Card/__snapshots__/card.test.tsx.snap +0 -11
- package/src/components/molecules/Collapsible/__snapshots__/collapsible.test.tsx.snap +0 -27
- package/src/components/molecules/Command/__snapshots__/command.test.tsx.snap +0 -31
- package/src/components/molecules/ContextMenu/__snapshots__/context-menu.test.tsx.snap +0 -14
- package/src/components/molecules/DatePicker/__snapshots__/date-picker.test.tsx.snap +0 -38
- package/src/components/molecules/Dialog/__snapshots__/dialog.test.tsx.snap +0 -18
- package/src/components/molecules/Drawer/__snapshots__/drawer.test.tsx.snap +0 -3
- package/src/components/molecules/Dropdown/__snapshots__/dropdown.test.tsx.snap +0 -86
- package/src/components/molecules/DropdownMenu/__snapshots__/dropdown-menu.test.tsx.snap +0 -3
- package/src/components/molecules/HoverCard/__snapshots__/hover-card.test.tsx.snap +0 -14
- package/src/components/molecules/InputOTP/__snapshots__/input-otp.test.tsx.snap +0 -89
- package/src/components/molecules/Menubar/__snapshots__/menubar.test.tsx.snap +0 -80
- package/src/components/molecules/NavigationMenu/__snapshots__/navigation-menu.test.tsx.snap +0 -20
- package/src/components/molecules/PDFViewer/__snapshots__/pdf-viewer.test.tsx.snap +0 -257
- package/src/components/molecules/Pagination/__snapshots__/pagination.test.tsx.snap +0 -200
- package/src/components/molecules/PaginationDotGroup/__snapshots__/pagination-dot-group.test.tsx.snap +0 -193
- package/src/components/molecules/ProgressSteps/__snapshots__/progress-steps.test.tsx.snap +0 -524
- package/src/components/molecules/RadioGroup/__snapshots__/radio-group.test.tsx.snap +0 -122
- package/src/components/molecules/Resizable/__snapshots__/resizable.test.tsx.snap +0 -121
- package/src/components/molecules/ScrollArea/__snapshots__/scroll-area.test.tsx.snap +0 -636
- package/src/components/molecules/Select/__snapshots__/select.test.tsx.snap +0 -15
- package/src/components/molecules/Sheet/__snapshots__/sheet.test.tsx.snap +0 -3
- package/src/components/molecules/Tabs/__snapshots__/tabs.test.tsx.snap +0 -25
- package/src/components/molecules/ToggleGroup/__snapshots__/toggle-group.test.tsx.snap +0 -42
- package/src/components/molecules/Tooltip/__snapshots__/tooltip.test.tsx.snap +0 -13
- package/src/components/organisms/Carousel/__snapshots__/carousel.test.tsx.snap +0 -219
- package/src/components/organisms/Chart/__snapshots__/chart.test.tsx.snap +0 -154
- package/src/components/organisms/Form/__snapshots__/form.test.tsx.snap +0 -194
- package/src/components/organisms/Sidebar/__snapshots__/sidebar.test.tsx.snap +0 -224
- package/src/components/organisms/Table/__snapshots__/table.test.tsx.snap +0 -318
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
|
@@ -831,7 +831,7 @@ export declare function Dialog({ ...props }: React_2.ComponentProps<typeof Dialo
|
|
|
831
831
|
|
|
832
832
|
export declare function DialogClose({ ...props }: React_2.ComponentProps<typeof DialogPrimitive.Close>): React_2.JSX.Element;
|
|
833
833
|
|
|
834
|
-
export declare function DialogContent({ className, children, showCloseButton, ...props }: React_2.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
834
|
+
export declare function DialogContent({ className, children, showCloseButton, onCloseAutoFocus, ...props }: React_2.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
835
835
|
showCloseButton?: boolean;
|
|
836
836
|
}): React_2.JSX.Element;
|
|
837
837
|
|
|
@@ -867,7 +867,7 @@ export declare function DrawerClose({ ...props }: React_2.ComponentProps<typeof
|
|
|
867
867
|
|
|
868
868
|
export declare function DrawerCloseButton(): React_2.JSX.Element;
|
|
869
869
|
|
|
870
|
-
export declare function DrawerContent({ className, children, variant, ...props }: DrawerContentProps): React_2.JSX.Element;
|
|
870
|
+
export declare function DrawerContent({ className, children, variant, onCloseAutoFocus, ...props }: DrawerContentProps): React_2.JSX.Element;
|
|
871
871
|
|
|
872
872
|
declare type DrawerContentProps = React_2.ComponentProps<typeof Drawer_2.Content> & {
|
|
873
873
|
variant?: DrawerVariant;
|
|
@@ -1686,7 +1686,7 @@ export declare function Sheet({ ...props }: React_2.ComponentProps<typeof Dialog
|
|
|
1686
1686
|
|
|
1687
1687
|
export declare function SheetClose({ ...props }: React_2.ComponentProps<typeof DialogPrimitive.Close>): React_2.JSX.Element;
|
|
1688
1688
|
|
|
1689
|
-
export declare function SheetContent({ className, children, side, ...props }: React_2.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
1689
|
+
export declare function SheetContent({ className, children, side, onCloseAutoFocus, ...props }: React_2.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
1690
1690
|
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
1691
1691
|
}): React_2.JSX.Element;
|
|
1692
1692
|
|