mblabs-roccato-frontend-commons 0.1.76 → 0.1.78
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 +2 -0
- package/dist/mblabs-roccato-frontend-commons.js +1018 -994
- 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/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 +49 -49
- 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 +159 -159
- 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 +249 -249
- 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 +266 -266
- 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 +208 -208
- 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 +169 -169
- 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 +295 -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 +91 -91
- package/src/components/atoms/Slider/slider.tsx +66 -66
- 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 +25 -25
- 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 +30 -30
- 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/announcement-02.tsx +14 -14
- package/src/components/icons/apple-logo.tsx +8 -8
- 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/bar-chart-square-02.tsx +8 -8
- package/src/components/icons/bell-01.tsx +8 -8
- 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-06.tsx +9 -9
- package/src/components/icons/calendar.tsx +8 -8
- package/src/components/icons/certificate-01.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.tsx +8 -8
- 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/container.tsx +8 -8
- package/src/components/icons/corner-down-right.tsx +9 -9
- 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-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/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-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/filter-lines.tsx +21 -21
- package/src/components/icons/first-category.tsx +15 -15
- package/src/components/icons/folder.tsx +14 -14
- package/src/components/icons/google-logo.tsx +19 -19
- 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/home-line.tsx +21 -21
- package/src/components/icons/icons.stories.tsx +198 -198
- package/src/components/icons/index.ts +93 -92
- 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/link-01.tsx +15 -15
- package/src/components/icons/linkedin-logo.tsx +16 -16
- package/src/components/icons/lock-01.tsx +21 -0
- 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/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/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-plus-01.tsx +22 -22
- package/src/components/icons/users-01.tsx +13 -13
- package/src/components/icons/users-plus-01.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.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 +33 -33
- package/src/components/molecules/PDFViewer/pdf-viewer.test.tsx +26 -26
- package/src/components/molecules/PDFViewer/pdf-viewer.tsx +213 -213
- 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 +207 -207
- 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 +192 -192
- package/src/components/molecules/Tabs/tabs.test.tsx +113 -113
- package/src/components/molecules/Tabs/tabs.tsx +93 -93
- 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 +225 -0
- package/src/components/organisms/Carousel/carousel.stories.tsx +46 -46
- package/src/components/organisms/Carousel/carousel.test.tsx +24 -24
- package/src/components/organisms/Carousel/carousel.tsx +244 -244
- 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 +5 -5
- package/src/constants/brazilian-states.ts +29 -29
- package/src/constants/index.ts +1 -1
- package/src/hooks/index.ts +8 -8
- 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/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 +150 -150
- 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
|
@@ -1134,6 +1134,8 @@ export declare function Link01(props: ComponentProps<'svg'>): JSX.Element;
|
|
|
1134
1134
|
|
|
1135
1135
|
export declare function LinkedinLogo(props: ComponentProps<'svg'>): JSX.Element;
|
|
1136
1136
|
|
|
1137
|
+
export declare function Lock01(props: ComponentProps<'svg'>): JSX.Element;
|
|
1138
|
+
|
|
1137
1139
|
export declare function LogOut01(props: ComponentProps<'svg'>): JSX.Element;
|
|
1138
1140
|
|
|
1139
1141
|
export declare function Mail01(props: ComponentProps<'svg'>): JSX.Element;
|