react-jupiter 5.11.34 → 6.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +12 -0
- package/.env +3 -0
- package/.eslintignore +2 -0
- package/.eslintrc +18 -0
- package/.eslintrc.js +47 -0
- package/.eslintrc.json +16 -0
- package/.flowconfig +0 -0
- package/.storybook/main.js +27 -0
- package/.storybook/preview-head.html +1 -0
- package/.storybook/preview.js +30 -0
- package/.storybook/style.css +9 -0
- package/.vscode/settings.json +4 -0
- package/__mocks__/fileMock.js +1 -0
- package/config-overrides.js +34 -0
- package/dist/App.js +13 -0
- package/dist/components/accordion/index.js +25 -0
- package/dist/components/accordion/index.stories.js +82 -0
- package/dist/components/accordion/index.styles.js +52 -0
- package/dist/components/accordion/panel.js +41 -0
- package/dist/components/avatar/index.js +41 -0
- package/dist/components/avatar/index.stories.js +59 -0
- package/dist/components/avatar/index.styles.js +17 -0
- package/dist/components/avatar/index.test.js +10 -0
- package/dist/components/avatar/theme.js +13 -0
- package/dist/components/button/__snapshots__/index.test.js.snap +489 -0
- package/dist/components/button/index.js +209 -0
- package/dist/components/button/index.stories.js +304 -0
- package/dist/components/button/index.styles.js +104 -0
- package/dist/components/button/theme.js +58 -0
- package/dist/components/button/utils.js +12 -0
- package/dist/components/card/card-template/index.js +74 -0
- package/dist/components/card/card-template/index.stories.js +110 -0
- package/dist/components/card/card-template/index.style.js +25 -0
- package/dist/components/card/card-template/index.test.js +85 -0
- package/dist/components/card/event-card/constants.js +3 -0
- package/dist/components/card/event-card/event-card-label/index.js +24 -0
- package/dist/components/card/event-card/event-card-label/index.style.js +10 -0
- package/dist/components/card/event-card/event-card-label/index.test.js +23 -0
- package/dist/components/card/event-card/index.js +227 -0
- package/dist/components/card/event-card/index.stories.js +166 -0
- package/dist/components/card/event-card/index.style.js +129 -0
- package/dist/components/card/event-card/index.test.js +79 -0
- package/dist/components/card/index.js +16 -0
- package/dist/components/card/organization-card/index.js +59 -0
- package/dist/components/card/organization-card/index.stories.js +49 -0
- package/dist/components/card/organization-card/index.style.js +10 -0
- package/dist/components/card/organization-card/index.test.js +25 -0
- package/dist/components/card/orgnizer-card/buttons.js +48 -0
- package/dist/components/card/orgnizer-card/index.js +179 -0
- package/dist/components/card/orgnizer-card/index.stories.js +81 -0
- package/dist/components/card/orgnizer-card/index.style.js +58 -0
- package/dist/components/cover/index.js +74 -0
- package/dist/components/cover/index.style.js +48 -0
- package/dist/components/cover/index.test.js +25 -0
- package/dist/components/display/index.js +42 -0
- package/dist/components/display/index.style.js +79 -0
- package/dist/components/file-item/fileImgIcon.js +37 -0
- package/dist/components/file-item/fileImgsFont.js +800 -0
- package/dist/components/file-item/index.js +101 -0
- package/dist/components/file-item/index.stories.js +71 -0
- package/dist/components/file-item/index.style.js +31 -0
- package/dist/components/file-item/index.test.js +106 -0
- package/dist/components/file-item/theme.js +12 -0
- package/dist/components/file-item/utils.js +3 -0
- package/dist/components/form/captcha/index.js +86 -0
- package/dist/components/form/captcha/index.stories.js +42 -0
- package/dist/components/form/captcha/index.style.js +38 -0
- package/dist/components/form/captcha/index.test.js +31 -0
- package/dist/components/form/checkbox/checkbox-option.js +41 -0
- package/dist/components/form/checkbox/checkbox.js +54 -0
- package/dist/components/form/checkbox/index.js +10 -0
- package/dist/components/form/checkbox/index.stories.js +121 -0
- package/dist/components/form/checkbox/index.style.js +62 -0
- package/dist/components/form/dropdown/index.js +10 -0
- package/dist/components/form/dropdown/index.stories.js +119 -0
- package/dist/components/form/dropdown/index.style.js +57 -0
- package/dist/components/form/dropdown/index.test.js +20 -0
- package/dist/components/form/dropdown/option.js +22 -0
- package/dist/components/form/dropdown/select.js +68 -0
- package/dist/components/form/errorMsg.js +21 -0
- package/dist/components/form/index.js +22 -0
- package/dist/components/form/radio/index.js +10 -0
- package/dist/components/form/radio/index.stories.js +119 -0
- package/dist/components/form/radio/index.style.js +61 -0
- package/dist/components/form/radio/radio-option.js +45 -0
- package/dist/components/form/radio/radio.js +56 -0
- package/dist/components/form/text-input/index.js +92 -0
- package/dist/components/form/text-input/index.stories.js +77 -0
- package/dist/components/form/text-input/index.style.js +57 -0
- package/dist/components/form/text-input/index.test.js +63 -0
- package/dist/components/form/textarea/index.js +59 -0
- package/dist/components/form/textarea/index.stories.js +90 -0
- package/dist/components/form/textarea/index.style.js +25 -0
- package/dist/components/form/theme.js +16 -0
- package/dist/components/form-v7/captcha/index.js +101 -0
- package/dist/components/form-v7/captcha/index.stories.js +60 -0
- package/dist/components/form-v7/captcha/index.style.js +38 -0
- package/dist/components/form-v7/captcha/index.test.js +31 -0
- package/dist/components/form-v7/checkbox/checkbox-option.js +44 -0
- package/dist/components/form-v7/checkbox/checkbox.js +70 -0
- package/dist/components/form-v7/checkbox/index.js +10 -0
- package/dist/components/form-v7/checkbox/index.stories.js +113 -0
- package/dist/components/form-v7/checkbox/index.style.js +62 -0
- package/dist/components/form-v7/dropdown/index.js +10 -0
- package/dist/components/form-v7/dropdown/index.stories.js +130 -0
- package/dist/components/form-v7/dropdown/index.style.js +57 -0
- package/dist/components/form-v7/dropdown/index.test.js +20 -0
- package/dist/components/form-v7/dropdown/option.js +18 -0
- package/dist/components/form-v7/dropdown/select.js +85 -0
- package/dist/components/form-v7/errorMsg.js +21 -0
- package/dist/components/form-v7/file-input/index.js +73 -0
- package/dist/components/form-v7/file-input/index.stories.js +73 -0
- package/dist/components/form-v7/file-input/index.style.js +62 -0
- package/dist/components/form-v7/file-input/index.test.js +63 -0
- package/dist/components/form-v7/form/index.stories.js +276 -0
- package/dist/components/form-v7/index.js +25 -0
- package/dist/components/form-v7/index.style.js +11 -0
- package/dist/components/form-v7/label/index.js +31 -0
- package/dist/components/form-v7/label/index.style.js +12 -0
- package/dist/components/form-v7/radio/index.js +10 -0
- package/dist/components/form-v7/radio/index.stories.js +117 -0
- package/dist/components/form-v7/radio/index.style.js +61 -0
- package/dist/components/form-v7/radio/radio-option.js +45 -0
- package/dist/components/form-v7/radio/radio.js +75 -0
- package/dist/components/form-v7/text-input/index.js +132 -0
- package/dist/components/form-v7/text-input/index.stories.js +96 -0
- package/dist/components/form-v7/text-input/index.style.js +49 -0
- package/dist/components/form-v7/text-input/index.test.js +63 -0
- package/dist/components/form-v7/textarea/index.js +71 -0
- package/dist/components/form-v7/textarea/index.stories.js +91 -0
- package/dist/components/form-v7/textarea/index.style.js +25 -0
- package/dist/components/form-v7/theme.js +20 -0
- package/dist/components/globalStyle.js +28 -0
- package/dist/components/grid/index.js +83 -0
- package/dist/components/icon/iconFont.js +806 -0
- package/dist/components/icon/index.js +116 -0
- package/dist/components/icon/index.stories.js +45 -0
- package/dist/components/icon/index.styles.js +12 -0
- package/dist/components/icon/index.test.js +66 -0
- package/dist/components/icon/theme.js +23 -0
- package/dist/components/index.js +75 -0
- package/dist/components/modal/index.js +100 -0
- package/dist/components/modal/index.stories.js +86 -0
- package/dist/components/modal/index.style.js +40 -0
- package/dist/components/modal/theme.js +11 -0
- package/dist/components/numeric-summery-report/index.js +28 -0
- package/dist/components/numeric-summery-report/index.stories.js +37 -0
- package/dist/components/numeric-summery-report/index.style.js +16 -0
- package/dist/components/numeric-summery-report/index.test.js +22 -0
- package/dist/components/product-menu/index.js +10 -0
- package/dist/components/product-menu/index.stories.js +33 -0
- package/dist/components/product-menu/index.style.js +38 -0
- package/dist/components/product-menu/index.test.js +27 -0
- package/dist/components/product-menu/menu-item.js +23 -0
- package/dist/components/product-menu/menu.js +88 -0
- package/dist/components/product-menu/theme.js +16 -0
- package/dist/components/product-owner/index.js +85 -0
- package/dist/components/product-owner/index.style.js +16 -0
- package/dist/components/product-owner/index.test.js +75 -0
- package/dist/components/product-properties/index.js +65 -0
- package/dist/components/product-properties/index.stories.js +52 -0
- package/dist/components/product-properties/index.style.js +14 -0
- package/dist/components/product-properties/index.test.js +31 -0
- package/dist/components/product-properties/product-property/index.js +49 -0
- package/dist/components/product-properties/product-property/index.style.js +9 -0
- package/dist/components/progress-bar/index.js +46 -0
- package/dist/components/progress-bar/index.stories.js +33 -0
- package/dist/components/progress-bar/index.styles.js +65 -0
- package/dist/components/responsive/index.js +44 -0
- package/dist/components/show-date/index.js +25 -0
- package/dist/components/show-date/index.stories.js +51 -0
- package/dist/components/show-date/index.test.js +24 -0
- package/dist/components/spacing/core.js +106 -0
- package/dist/components/spacing/index.js +10 -0
- package/dist/components/spacing/margin/index.js +26 -0
- package/dist/components/spacing/padding/index.js +26 -0
- package/dist/components/storybook.css +54 -0
- package/dist/components/table/actionCell.js +57 -0
- package/dist/components/table/index.js +56 -0
- package/dist/components/table/index.stories.js +188 -0
- package/dist/components/table/index.style.js +107 -0
- package/dist/components/table/index.test.js +119 -0
- package/dist/components/table/tableHeaderRow.js +28 -0
- package/dist/components/table/tableRow.js +60 -0
- package/dist/components/table/theme.js +8 -0
- package/dist/components/tabs/index.js +10 -0
- package/dist/components/tabs/index.stories.js +61 -0
- package/dist/components/tabs/index.style.js +35 -0
- package/dist/components/tabs/index.test.js +30 -0
- package/dist/components/tabs/tabPanel.js +17 -0
- package/dist/components/tabs/tabs.js +71 -0
- package/dist/components/tabs/theme.js +10 -0
- package/dist/components/themes.js +97 -0
- package/dist/components/titled-avatar/index.js +48 -0
- package/dist/components/titled-avatar/index.stories.js +52 -0
- package/dist/components/titled-avatar/index.style.js +30 -0
- package/dist/components/titled-avatar/index.test.js +25 -0
- package/dist/components/typography/heading/index.js +59 -0
- package/dist/components/typography/heading/index.stories.js +94 -0
- package/dist/components/typography/heading/index.styles.js +69 -0
- package/dist/components/typography/heading/index.test.js +122 -0
- package/dist/components/typography/index.js +16 -0
- package/dist/components/typography/link/index.js +82 -0
- package/dist/components/typography/link/index.stories.js +70 -0
- package/dist/components/typography/link/index.styles.js +8 -0
- package/dist/components/typography/link/index.test.js +60 -0
- package/dist/components/typography/paragraph/index.js +37 -0
- package/dist/components/typography/paragraph/index.stories.js +56 -0
- package/dist/components/typography/paragraph/index.styles.js +12 -0
- package/dist/components/typography/paragraph/index.test.js +47 -0
- package/dist/components/typography/text/index.js +156 -0
- package/dist/components/typography/text/index.stories.js +196 -0
- package/dist/components/typography/text/index.styles.js +73 -0
- package/dist/components/typography/text/index.test.js +333 -0
- package/dist/components/typography/theme.js +66 -0
- package/dist/components/typography/utils.js +53 -0
- package/dist/components/typography/utils.test.js +188 -0
- package/dist/components/utils/date.js +7 -0
- package/dist/components/utils/date.test.js +15 -0
- package/dist/components/utils/detectMobile.js +15 -0
- package/dist/components/utils/index.js +7 -0
- package/dist/components/utils/media-query.js +12 -0
- package/dist/components/utils/numbers.js +25 -0
- package/dist/components/utils/test.js +6 -0
- package/dist/components/utils/theme.js +67 -0
- package/dist/docs/App.css +33 -0
- package/dist/docs/App.js +52 -0
- package/dist/docs/assets/ads-label.svg +13 -0
- package/dist/docs/assets/avatar-sample.jpeg +0 -0
- package/dist/docs/assets/cover-sample.png +0 -0
- package/dist/docs/assets/fonts/filesImgs.woff +0 -0
- package/dist/docs/assets/fonts/icomoon.woff +0 -0
- package/dist/docs/assets/fonts/iransharp_bold_web.woff +0 -0
- package/dist/docs/assets/fonts/iransharp_bold_web.woff2 +0 -0
- package/dist/docs/assets/fonts/iransharp_regular_web.woff +0 -0
- package/dist/docs/assets/fonts/iransharp_regular_web.woff2 +0 -0
- package/dist/docs/assets/fonts/wer6t7890- +0 -0
- package/dist/docs/assets/logo.svg +7 -0
- package/dist/docs/components/header/index.js +10 -0
- package/dist/docs/components/header/index.styles.js +10 -0
- package/dist/docs/components/side-navigation/index.js +167 -0
- package/dist/docs/components/side-navigation/index.styles.js +46 -0
- package/dist/docs/containers/avatar/index.js +92 -0
- package/dist/docs/containers/button/index.js +295 -0
- package/dist/docs/containers/card/index.js +153 -0
- package/dist/docs/containers/cover/index.js +77 -0
- package/dist/docs/containers/form/index.js +41 -0
- package/dist/docs/containers/home/index.js +41 -0
- package/dist/docs/containers/icon/index.js +56 -0
- package/dist/docs/containers/icons/index.js +1488 -0
- package/dist/docs/containers/product/index.js +123 -0
- package/dist/docs/containers/typography/index.js +138 -0
- package/dist/docs/globalStyle.js +58 -0
- package/dist/index.css +3 -0
- package/dist/index.js +18 -0
- package/dist/playground/index.js +144 -0
- package/dist/playground.css +26 -0
- package/dist/serviceWorker.js +135 -0
- package/dist/setupTests.js +24 -0
- package/dist/stories/Page.js +67 -0
- package/dist/storybook.css +58 -0
- package/dist/styles.css +3 -0
- package/dist/test-utils.js +21 -0
- package/doctor-storybook.log +25 -0
- package/migration-storybook.log +329 -0
- package/package.json +19 -10
- package/package.lib.json +47 -0
- package/postcss.config.js +6 -0
- package/public/assets/fonts/iransharp_bold_web.woff2 +0 -0
- package/public/assets/fonts/iransharp_light_web.woff2 +0 -0
- package/public/assets/fonts/iransharp_regular_web.woff2 +0 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +43 -0
- package/public/logo.svg +1 -0
- package/public/logo142.svg +1 -0
- package/public/manifest.json +25 -0
- package/public/robots.txt +2 -0
- package/src/App.js +13 -0
- package/src/components/accordion/index.js +25 -0
- package/src/components/accordion/index.stories.js +82 -0
- package/src/components/accordion/index.styles.js +52 -0
- package/src/components/accordion/panel.js +41 -0
- package/src/components/avatar/index.js +41 -0
- package/src/components/avatar/index.stories.js +59 -0
- package/src/components/avatar/index.styles.js +17 -0
- package/src/components/avatar/index.test.js +10 -0
- package/src/components/avatar/theme.js +13 -0
- package/src/components/button/__snapshots__/index.test.js.snap +489 -0
- package/src/components/button/index.js +209 -0
- package/src/components/button/index.stories.js +304 -0
- package/src/components/button/index.styles.js +104 -0
- package/src/components/button/theme.js +60 -0
- package/src/components/button/utils.js +12 -0
- package/src/components/card/card-template/index.js +74 -0
- package/src/components/card/card-template/index.stories.js +110 -0
- package/src/components/card/card-template/index.style.js +25 -0
- package/src/components/card/card-template/index.test.js +85 -0
- package/src/components/card/event-card/constants.js +3 -0
- package/src/components/card/event-card/event-card-label/index.js +24 -0
- package/src/components/card/event-card/event-card-label/index.style.js +10 -0
- package/src/components/card/event-card/event-card-label/index.test.js +23 -0
- package/src/components/card/event-card/index.js +227 -0
- package/src/components/card/event-card/index.stories.js +166 -0
- package/src/components/card/event-card/index.style.js +129 -0
- package/src/components/card/event-card/index.test.js +79 -0
- package/src/components/card/index.js +16 -0
- package/src/components/card/organization-card/index.js +59 -0
- package/src/components/card/organization-card/index.stories.js +49 -0
- package/src/components/card/organization-card/index.style.js +10 -0
- package/src/components/card/organization-card/index.test.js +25 -0
- package/src/components/card/orgnizer-card/buttons.js +48 -0
- package/src/components/card/orgnizer-card/index.js +179 -0
- package/src/components/card/orgnizer-card/index.stories.js +81 -0
- package/src/components/card/orgnizer-card/index.style.js +58 -0
- package/src/components/cover/index.js +74 -0
- package/src/components/cover/index.style.js +48 -0
- package/src/components/cover/index.test.js +25 -0
- package/src/components/display/index.js +42 -0
- package/src/components/display/index.style.js +80 -0
- package/src/components/file-item/fileImgIcon.js +37 -0
- package/src/components/file-item/fileImgsFont.js +800 -0
- package/src/components/file-item/index.js +101 -0
- package/src/components/file-item/index.stories.js +71 -0
- package/src/components/file-item/index.style.js +31 -0
- package/src/components/file-item/index.test.js +106 -0
- package/src/components/file-item/theme.js +12 -0
- package/src/components/file-item/utils.js +3 -0
- package/src/components/form/captcha/index.js +86 -0
- package/src/components/form/captcha/index.stories.js +42 -0
- package/src/components/form/captcha/index.style.js +38 -0
- package/src/components/form/captcha/index.test.js +31 -0
- package/src/components/form/checkbox/checkbox-option.js +41 -0
- package/src/components/form/checkbox/checkbox.js +54 -0
- package/src/components/form/checkbox/index.js +10 -0
- package/src/components/form/checkbox/index.stories.js +121 -0
- package/src/components/form/checkbox/index.style.js +62 -0
- package/src/components/form/dropdown/index.js +10 -0
- package/src/components/form/dropdown/index.stories.js +119 -0
- package/src/components/form/dropdown/index.style.js +57 -0
- package/src/components/form/dropdown/index.test.js +20 -0
- package/src/components/form/dropdown/option.js +22 -0
- package/src/components/form/dropdown/select.js +68 -0
- package/src/components/form/errorMsg.js +21 -0
- package/src/components/form/index.js +22 -0
- package/src/components/form/radio/index.js +10 -0
- package/src/components/form/radio/index.stories.js +119 -0
- package/src/components/form/radio/index.style.js +61 -0
- package/src/components/form/radio/radio-option.js +45 -0
- package/src/components/form/radio/radio.js +56 -0
- package/src/components/form/text-input/index.js +92 -0
- package/src/components/form/text-input/index.stories.js +77 -0
- package/src/components/form/text-input/index.style.js +57 -0
- package/src/components/form/text-input/index.test.js +63 -0
- package/src/components/form/textarea/index.js +59 -0
- package/src/components/form/textarea/index.stories.js +90 -0
- package/src/components/form/textarea/index.style.js +25 -0
- package/src/components/form/theme.js +16 -0
- package/src/components/form-v7/captcha/index.js +101 -0
- package/src/components/form-v7/captcha/index.stories.js +60 -0
- package/src/components/form-v7/captcha/index.style.js +38 -0
- package/src/components/form-v7/captcha/index.test.js +31 -0
- package/src/components/form-v7/checkbox/checkbox-option.js +44 -0
- package/src/components/form-v7/checkbox/checkbox.js +70 -0
- package/src/components/form-v7/checkbox/index.js +10 -0
- package/src/components/form-v7/checkbox/index.stories.js +113 -0
- package/src/components/form-v7/checkbox/index.style.js +62 -0
- package/src/components/form-v7/dropdown/index.js +10 -0
- package/src/components/form-v7/dropdown/index.stories.js +130 -0
- package/src/components/form-v7/dropdown/index.style.js +57 -0
- package/src/components/form-v7/dropdown/index.test.js +20 -0
- package/src/components/form-v7/dropdown/option.js +18 -0
- package/src/components/form-v7/dropdown/select.js +85 -0
- package/src/components/form-v7/errorMsg.js +21 -0
- package/src/components/form-v7/file-input/index.js +73 -0
- package/src/components/form-v7/file-input/index.stories.js +73 -0
- package/src/components/form-v7/file-input/index.style.js +62 -0
- package/src/components/form-v7/file-input/index.test.js +63 -0
- package/src/components/form-v7/form/index.stories.js +276 -0
- package/src/components/form-v7/index.js +25 -0
- package/src/components/form-v7/index.style.js +11 -0
- package/src/components/form-v7/label/index.js +31 -0
- package/src/components/form-v7/label/index.style.js +12 -0
- package/src/components/form-v7/radio/index.js +10 -0
- package/src/components/form-v7/radio/index.stories.js +117 -0
- package/src/components/form-v7/radio/index.style.js +61 -0
- package/src/components/form-v7/radio/radio-option.js +45 -0
- package/src/components/form-v7/radio/radio.js +75 -0
- package/src/components/form-v7/text-input/index.js +132 -0
- package/src/components/form-v7/text-input/index.stories.js +96 -0
- package/src/components/form-v7/text-input/index.style.js +49 -0
- package/src/components/form-v7/text-input/index.test.js +63 -0
- package/src/components/form-v7/textarea/index.js +71 -0
- package/src/components/form-v7/textarea/index.stories.js +91 -0
- package/src/components/form-v7/textarea/index.style.js +25 -0
- package/src/components/form-v7/theme.js +20 -0
- package/src/components/globalStyle.js +28 -0
- package/src/components/grid/index.js +83 -0
- package/src/components/icon/iconFont.js +806 -0
- package/src/components/icon/index.js +116 -0
- package/src/components/icon/index.stories.js +45 -0
- package/src/components/icon/index.styles.js +12 -0
- package/src/components/icon/index.test.js +66 -0
- package/src/components/icon/theme.js +23 -0
- package/src/components/index.js +75 -0
- package/src/components/modal/index.js +100 -0
- package/src/components/modal/index.stories.js +86 -0
- package/src/components/modal/index.style.js +40 -0
- package/src/components/modal/theme.js +11 -0
- package/src/components/numeric-summery-report/index.js +28 -0
- package/src/components/numeric-summery-report/index.stories.js +37 -0
- package/src/components/numeric-summery-report/index.style.js +16 -0
- package/src/components/numeric-summery-report/index.test.js +22 -0
- package/src/components/product-menu/index.js +10 -0
- package/src/components/product-menu/index.stories.js +33 -0
- package/src/components/product-menu/index.style.js +38 -0
- package/src/components/product-menu/index.test.js +27 -0
- package/src/components/product-menu/menu-item.js +23 -0
- package/src/components/product-menu/menu.js +88 -0
- package/src/components/product-menu/theme.js +16 -0
- package/src/components/product-owner/index.js +85 -0
- package/src/components/product-owner/index.style.js +16 -0
- package/src/components/product-owner/index.test.js +75 -0
- package/src/components/product-properties/index.js +65 -0
- package/src/components/product-properties/index.stories.js +52 -0
- package/src/components/product-properties/index.style.js +14 -0
- package/src/components/product-properties/index.test.js +31 -0
- package/src/components/product-properties/product-property/index.js +49 -0
- package/src/components/product-properties/product-property/index.style.js +9 -0
- package/src/components/progress-bar/index.js +46 -0
- package/src/components/progress-bar/index.stories.js +33 -0
- package/src/components/progress-bar/index.styles.js +65 -0
- package/src/components/responsive/index.js +44 -0
- package/src/components/show-date/index.js +25 -0
- package/src/components/show-date/index.stories.js +51 -0
- package/src/components/show-date/index.style.js +1 -0
- package/src/components/show-date/index.test.js +24 -0
- package/src/components/spacing/core.js +106 -0
- package/src/components/spacing/index.js +10 -0
- package/src/components/spacing/margin/index.js +26 -0
- package/src/components/spacing/padding/index.js +26 -0
- package/src/components/storybook.css +54 -0
- package/src/components/table/actionCell.js +57 -0
- package/src/components/table/index.js +56 -0
- package/src/components/table/index.stories.js +188 -0
- package/src/components/table/index.style.js +107 -0
- package/src/components/table/index.test.js +119 -0
- package/src/components/table/tableHeaderRow.js +28 -0
- package/src/components/table/tableRow.js +60 -0
- package/src/components/table/theme.js +8 -0
- package/src/components/tabs/index.js +10 -0
- package/src/components/tabs/index.stories.js +61 -0
- package/src/components/tabs/index.style.js +35 -0
- package/src/components/tabs/index.test.js +30 -0
- package/src/components/tabs/tabPanel.js +17 -0
- package/src/components/tabs/tabs.js +71 -0
- package/src/components/tabs/theme.js +10 -0
- package/src/components/themes.js +97 -0
- package/src/components/titled-avatar/index.js +48 -0
- package/src/components/titled-avatar/index.stories.js +52 -0
- package/src/components/titled-avatar/index.style.js +30 -0
- package/src/components/titled-avatar/index.test.js +25 -0
- package/src/components/typography/heading/index.js +59 -0
- package/src/components/typography/heading/index.stories.js +94 -0
- package/src/components/typography/heading/index.styles.js +69 -0
- package/src/components/typography/heading/index.test.js +122 -0
- package/src/components/typography/index.js +16 -0
- package/src/components/typography/index.styles.js +1 -0
- package/src/components/typography/link/index.js +82 -0
- package/src/components/typography/link/index.stories.js +70 -0
- package/src/components/typography/link/index.styles.js +8 -0
- package/src/components/typography/link/index.test.js +60 -0
- package/src/components/typography/paragraph/index.js +37 -0
- package/src/components/typography/paragraph/index.stories.js +56 -0
- package/src/components/typography/paragraph/index.styles.js +12 -0
- package/src/components/typography/paragraph/index.test.js +47 -0
- package/src/components/typography/text/index.js +156 -0
- package/src/components/typography/text/index.stories.js +196 -0
- package/src/components/typography/text/index.styles.js +73 -0
- package/src/components/typography/text/index.test.js +333 -0
- package/src/components/typography/theme.js +66 -0
- package/src/components/typography/utils.js +53 -0
- package/src/components/typography/utils.test.js +188 -0
- package/src/components/utils/date.js +7 -0
- package/src/components/utils/date.test.js +15 -0
- package/src/components/utils/detectMobile.js +15 -0
- package/src/components/utils/index.js +7 -0
- package/src/components/utils/media-query.js +12 -0
- package/src/components/utils/numbers.js +25 -0
- package/src/components/utils/test.js +6 -0
- package/src/components/utils/theme.js +67 -0
- package/src/docs/App.css +33 -0
- package/src/docs/App.js +52 -0
- package/src/docs/assets/ads-label.svg +13 -0
- package/src/docs/assets/avatar-sample.jpeg +0 -0
- package/src/docs/assets/cover-sample.png +0 -0
- package/src/docs/assets/fonts/filesImgs.woff +0 -0
- package/src/docs/assets/fonts/icomoon.woff +0 -0
- package/src/docs/assets/fonts/iransharp_bold_web.woff +0 -0
- package/src/docs/assets/fonts/iransharp_bold_web.woff2 +0 -0
- package/src/docs/assets/fonts/iransharp_regular_web.woff +0 -0
- package/src/docs/assets/fonts/iransharp_regular_web.woff2 +0 -0
- package/src/docs/assets/fonts/wer6t7890- +0 -0
- package/src/docs/assets/logo.svg +7 -0
- package/src/docs/components/header/index.js +10 -0
- package/src/docs/components/header/index.styles.js +10 -0
- package/src/docs/components/side-navigation/index.js +167 -0
- package/src/docs/components/side-navigation/index.styles.js +46 -0
- package/src/docs/containers/avatar/index.js +92 -0
- package/src/docs/containers/button/index.js +295 -0
- package/src/docs/containers/card/index.js +153 -0
- package/src/docs/containers/cover/index.js +77 -0
- package/src/docs/containers/form/index.js +41 -0
- package/src/docs/containers/home/index.js +41 -0
- package/src/docs/containers/icon/index.js +56 -0
- package/src/docs/containers/icons/index.js +1488 -0
- package/src/docs/containers/product/index.js +123 -0
- package/src/docs/containers/typography/index.js +138 -0
- package/src/docs/globalStyle.js +58 -0
- package/src/index.css +3 -0
- package/src/index.js +18 -0
- package/src/playground/index.js +144 -0
- package/src/playground.css +26 -0
- package/src/serviceWorker.js +135 -0
- package/src/setupTests.js +24 -0
- package/src/stories/Page.jsx +67 -0
- package/src/storybook.css +58 -0
- package/src/styles.css +3 -0
- package/src/test-utils.js +21 -0
- package/storybook.log +113 -0
- package/tailwind.config.js +26 -0
- package/update-stories.js +41 -0
- package/accordion/index.js +0 -25
- package/accordion/index.styles.js +0 -10
- package/accordion/panel.js +0 -41
- package/avatar/index.js +0 -41
- package/avatar/index.styles.js +0 -17
- package/avatar/theme.js +0 -13
- package/button/index.js +0 -116
- package/button/index.styles.js +0 -101
- package/button/theme.js +0 -34
- package/button/utils.js +0 -12
- package/card/card-template/index.js +0 -74
- package/card/card-template/index.stories.js +0 -70
- package/card/card-template/index.style.js +0 -25
- package/card/card-template/index.test.js +0 -85
- package/card/event-card/constants.js +0 -3
- package/card/event-card/event-card-label/index.js +0 -24
- package/card/event-card/event-card-label/index.style.js +0 -10
- package/card/event-card/event-card-label/index.test.js +0 -23
- package/card/event-card/index.js +0 -227
- package/card/event-card/index.stories.js +0 -155
- package/card/event-card/index.style.js +0 -119
- package/card/event-card/index.test.js +0 -79
- package/card/index.js +0 -16
- package/card/organization-card/index.js +0 -59
- package/card/organization-card/index.stories.js +0 -19
- package/card/organization-card/index.style.js +0 -10
- package/card/organization-card/index.test.js +0 -25
- package/card/orgnizer-card/buttons.js +0 -48
- package/card/orgnizer-card/index.js +0 -179
- package/card/orgnizer-card/index.stories.js +0 -25
- package/card/orgnizer-card/index.style.js +0 -47
- package/cover/index.js +0 -74
- package/cover/index.style.js +0 -41
- package/display/index.js +0 -42
- package/display/index.style.js +0 -78
- package/file-item/fileImgIcon.js +0 -37
- package/file-item/fileImgsFont.js +0 -800
- package/file-item/index.js +0 -101
- package/file-item/index.style.js +0 -30
- package/file-item/theme.js +0 -12
- package/file-item/utils.js +0 -3
- package/form/captcha/index.js +0 -86
- package/form/captcha/index.stories.js +0 -23
- package/form/captcha/index.style.js +0 -36
- package/form/captcha/index.test.js +0 -31
- package/form/checkbox/checkbox-option.js +0 -41
- package/form/checkbox/checkbox.js +0 -54
- package/form/checkbox/index.js +0 -10
- package/form/checkbox/index.stories.js +0 -56
- package/form/checkbox/index.style.js +0 -40
- package/form/dropdown/index.js +0 -10
- package/form/dropdown/index.stories.js +0 -62
- package/form/dropdown/index.style.js +0 -55
- package/form/dropdown/index.test.js +0 -20
- package/form/dropdown/option.js +0 -22
- package/form/dropdown/select.js +0 -68
- package/form/errorMsg.js +0 -21
- package/form/index.js +0 -22
- package/form/radio/index.js +0 -10
- package/form/radio/index.stories.js +0 -56
- package/form/radio/index.style.js +0 -52
- package/form/radio/radio-option.js +0 -45
- package/form/radio/radio.js +0 -56
- package/form/text-input/index.js +0 -92
- package/form/text-input/index.stories.js +0 -26
- package/form/text-input/index.style.js +0 -55
- package/form/text-input/index.test.js +0 -63
- package/form/textarea/index.js +0 -59
- package/form/textarea/index.stories.js +0 -31
- package/form/textarea/index.style.js +0 -25
- package/form/theme.js +0 -16
- package/form-v7/captcha/index.js +0 -101
- package/form-v7/captcha/index.stories.js +0 -30
- package/form-v7/captcha/index.style.js +0 -36
- package/form-v7/captcha/index.test.js +0 -31
- package/form-v7/checkbox/checkbox-option.js +0 -42
- package/form-v7/checkbox/checkbox.js +0 -68
- package/form-v7/checkbox/index.js +0 -10
- package/form-v7/checkbox/index.stories.js +0 -80
- package/form-v7/checkbox/index.style.js +0 -40
- package/form-v7/dropdown/index.js +0 -10
- package/form-v7/dropdown/index.stories.js +0 -121
- package/form-v7/dropdown/index.style.js +0 -55
- package/form-v7/dropdown/index.test.js +0 -20
- package/form-v7/dropdown/option.js +0 -18
- package/form-v7/dropdown/select.js +0 -84
- package/form-v7/errorMsg.js +0 -21
- package/form-v7/file-input/index.js +0 -73
- package/form-v7/file-input/index.stories.js +0 -32
- package/form-v7/file-input/index.style.js +0 -54
- package/form-v7/file-input/index.test.js +0 -63
- package/form-v7/form/index.stories.js +0 -173
- package/form-v7/index.js +0 -25
- package/form-v7/index.style.js +0 -3
- package/form-v7/label/index.js +0 -31
- package/form-v7/label/index.style.js +0 -12
- package/form-v7/radio/index.js +0 -10
- package/form-v7/radio/index.stories.js +0 -82
- package/form-v7/radio/index.style.js +0 -52
- package/form-v7/radio/radio-option.js +0 -43
- package/form-v7/radio/radio.js +0 -73
- package/form-v7/text-input/index.js +0 -131
- package/form-v7/text-input/index.stories.js +0 -77
- package/form-v7/text-input/index.style.js +0 -41
- package/form-v7/text-input/index.test.js +0 -63
- package/form-v7/textarea/index.js +0 -70
- package/form-v7/textarea/index.stories.js +0 -45
- package/form-v7/textarea/index.style.js +0 -25
- package/form-v7/theme.js +0 -20
- package/globalStyle.js +0 -28
- package/icon/iconFont.js +0 -796
- package/icon/index.js +0 -52
- package/icon/index.styles.js +0 -12
- package/icon/theme.js +0 -23
- package/icons/index.js +0 -29
- package/icons/index.style.js +0 -30
- package/icons/theme.js +0 -12
- package/icons/utils.js +0 -672
- package/index.js +0 -75
- package/modal/index.js +0 -100
- package/modal/index.style.js +0 -40
- package/modal/theme.js +0 -11
- package/numeric-summery-report/index.js +0 -28
- package/numeric-summery-report/index.style.js +0 -11
- package/product-menu/index.js +0 -10
- package/product-menu/index.style.js +0 -37
- package/product-menu/menu-item.js +0 -23
- package/product-menu/menu.js +0 -88
- package/product-menu/theme.js +0 -12
- package/product-owner/index.js +0 -85
- package/product-owner/index.style.js +0 -10
- package/product-properties/index.js +0 -65
- package/product-properties/index.style.js +0 -11
- package/product-properties/product-property/index.js +0 -49
- package/product-properties/product-property/index.style.js +0 -9
- package/progress-bar/index.js +0 -46
- package/progress-bar/index.styles.js +0 -63
- package/responsive/index.js +0 -44
- package/show-date/index.js +0 -25
- package/spacing/index.js +0 -10
- package/spacing/margin/index.js +0 -12
- package/spacing/padding/index.js +0 -12
- package/table/actionCell.js +0 -57
- package/table/index.js +0 -56
- package/table/index.style.js +0 -106
- package/table/tableHeaderRow.js +0 -28
- package/table/tableRow.js +0 -60
- package/table/theme.js +0 -8
- package/tabs/index.js +0 -10
- package/tabs/index.style.js +0 -32
- package/tabs/tabPanel.js +0 -17
- package/tabs/tabs.js +0 -71
- package/tabs/theme.js +0 -10
- package/themes.js +0 -97
- package/titled-avatar/index.js +0 -48
- package/titled-avatar/index.style.js +0 -25
- package/typography/heading/index.js +0 -59
- package/typography/heading/index.stories.js +0 -41
- package/typography/heading/index.styles.js +0 -67
- package/typography/heading/index.test.js +0 -122
- package/typography/index.js +0 -16
- package/typography/link/index.js +0 -82
- package/typography/link/index.stories.js +0 -12
- package/typography/link/index.styles.js +0 -8
- package/typography/link/index.test.js +0 -60
- package/typography/paragraph/index.js +0 -37
- package/typography/paragraph/index.stories.js +0 -27
- package/typography/paragraph/index.styles.js +0 -12
- package/typography/paragraph/index.test.js +0 -47
- package/typography/text/index.js +0 -156
- package/typography/text/index.stories.js +0 -26
- package/typography/text/index.styles.js +0 -72
- package/typography/text/index.test.js +0 -333
- package/typography/theme.js +0 -66
- package/typography/utils.js +0 -53
- package/utils/date.js +0 -7
- package/utils/detectMobile.js +0 -15
- package/utils/index.js +0 -7
- package/utils/media-query.js +0 -12
- package/utils/numbers.js +0 -25
- package/utils/test.js +0 -6
- package/utils/theme.js +0 -67
- /package/{show-date → dist/components/show-date}/index.style.js +0 -0
- /package/{typography → dist/components/typography}/index.styles.js +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import * as HeroIcons from '@heroicons/react/24/outline';
|
|
6
|
+
import * as HeroIconsSolid from '@heroicons/react/24/solid';
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
name: string,
|
|
10
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | number,
|
|
11
|
+
color?: string,
|
|
12
|
+
className?: string,
|
|
13
|
+
style?: Object,
|
|
14
|
+
onClick?: (SyntheticMouseEvent<HTMLDivElement>) => void,
|
|
15
|
+
variant?: 'outline' | 'solid',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const Icon = ({
|
|
19
|
+
name,
|
|
20
|
+
size = 'md',
|
|
21
|
+
color,
|
|
22
|
+
className,
|
|
23
|
+
style,
|
|
24
|
+
onClick,
|
|
25
|
+
variant = 'outline',
|
|
26
|
+
...rest
|
|
27
|
+
}: Props) => {
|
|
28
|
+
// Map old size values to new size values in pixels
|
|
29
|
+
const getSizeInPixels = () => {
|
|
30
|
+
switch (size) {
|
|
31
|
+
case 'xs':
|
|
32
|
+
return 12;
|
|
33
|
+
case 'sm':
|
|
34
|
+
return 16;
|
|
35
|
+
case 'md':
|
|
36
|
+
return 20;
|
|
37
|
+
case 'lg':
|
|
38
|
+
return 24;
|
|
39
|
+
case 'xl':
|
|
40
|
+
return 32;
|
|
41
|
+
case '2xl':
|
|
42
|
+
return 40;
|
|
43
|
+
default:
|
|
44
|
+
// If it's already a number, return it directly
|
|
45
|
+
return typeof size === 'number' ? size : 20;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Map old color values to new color tokens
|
|
50
|
+
const getColor = () => {
|
|
51
|
+
switch (color) {
|
|
52
|
+
case 'white':
|
|
53
|
+
return 'white';
|
|
54
|
+
case 'black':
|
|
55
|
+
return '#000000';
|
|
56
|
+
case 'gray':
|
|
57
|
+
return '#6B7280'; // gray-500
|
|
58
|
+
case 'darkGray':
|
|
59
|
+
return '#374151'; // gray-700
|
|
60
|
+
case 'darkBlue':
|
|
61
|
+
return '#6941C6'; // primary-700
|
|
62
|
+
case 'red':
|
|
63
|
+
return '#EF4444'; // error-500
|
|
64
|
+
case 'green':
|
|
65
|
+
return '#10B981'; // success-500
|
|
66
|
+
case 'yellow':
|
|
67
|
+
return '#F59E0B'; // warning-500
|
|
68
|
+
case 'blue':
|
|
69
|
+
return '#3B82F6'; // info-500
|
|
70
|
+
default:
|
|
71
|
+
// If it's not a known color name, pass it through as a custom color
|
|
72
|
+
return color;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// Get the appropriate Heroicon component
|
|
77
|
+
const getHeroIcon = () => {
|
|
78
|
+
const iconName = name
|
|
79
|
+
.split('-')
|
|
80
|
+
.map((part, index) => index === 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part.charAt(0).toUpperCase() + part.slice(1))
|
|
81
|
+
.join('') + 'Icon';
|
|
82
|
+
const icons = variant === 'solid' ? HeroIconsSolid : HeroIcons;
|
|
83
|
+
console.log(iconName, icons[iconName]);
|
|
84
|
+
return icons[iconName];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// Apply styles and colors
|
|
88
|
+
const iconSize = getSizeInPixels();
|
|
89
|
+
const iconColor = getColor();
|
|
90
|
+
|
|
91
|
+
const iconStyle = {
|
|
92
|
+
...style,
|
|
93
|
+
color: iconColor,
|
|
94
|
+
width: iconSize,
|
|
95
|
+
height: iconSize
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const HeroIcon = getHeroIcon();
|
|
99
|
+
if (!HeroIcon) {
|
|
100
|
+
console.log(`Icon "${HeroIcon}" not found in Heroicons`);
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<div
|
|
106
|
+
className={twMerge('inline-block', className)}
|
|
107
|
+
onClick={onClick}
|
|
108
|
+
aria-hidden="true"
|
|
109
|
+
{...rest}
|
|
110
|
+
>
|
|
111
|
+
<HeroIcon style={iconStyle} />
|
|
112
|
+
</div>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export default Icon;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { action } from '@storybook/addon-actions';
|
|
3
|
+
import Icon from './index';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Components/Icon',
|
|
7
|
+
component: Icon,
|
|
8
|
+
argTypes: {
|
|
9
|
+
name: {
|
|
10
|
+
control: 'text',
|
|
11
|
+
description: 'Name of the icon to display',
|
|
12
|
+
},
|
|
13
|
+
size: {
|
|
14
|
+
control: 'select',
|
|
15
|
+
options: ['2xl', 'xl', 'lg', 'md', 'sm', 'xs'],
|
|
16
|
+
description: 'Size of the icon',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const Template = (args) => <Icon {...args} />;
|
|
22
|
+
|
|
23
|
+
export const Default = Template.bind({});
|
|
24
|
+
Default.args = {
|
|
25
|
+
name: 'academic-cap',
|
|
26
|
+
size: 'md',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const Small = Template.bind({});
|
|
30
|
+
Small.args = {
|
|
31
|
+
name: 'academic-cap',
|
|
32
|
+
size: 'sm',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const Medium = Template.bind({});
|
|
36
|
+
Medium.args = {
|
|
37
|
+
name: 'academic-cap',
|
|
38
|
+
size: 'md',
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const Large = Template.bind({});
|
|
42
|
+
Large.args = {
|
|
43
|
+
name: 'academic-cap',
|
|
44
|
+
size: 'lg',
|
|
45
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { getColorFromName } from '../utils/theme';
|
|
3
|
+
|
|
4
|
+
const StyledIcon = styled.i`
|
|
5
|
+
font-size: ${({ theme, size }) => `${theme.size[size]}px`};
|
|
6
|
+
color: ${({ theme, IconColor }) => getColorFromName(theme, IconColor)};
|
|
7
|
+
margin: ${({
|
|
8
|
+
theme, size, stickyLeft, stickyRight, marginRight, marginLeft,
|
|
9
|
+
}) => `0 ${marginRight || (stickyRight ? 0 : theme.marginSize[size])}px 0 ${marginLeft || (stickyLeft ? 0 : theme.marginSize[size])}px`};
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
export default StyledIcon;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { shallow, mount } from 'enzyme';
|
|
3
|
+
import 'jest-styled-components';
|
|
4
|
+
|
|
5
|
+
import findByTestAtrr from '../utils/test';
|
|
6
|
+
import Icon from './index';
|
|
7
|
+
import theme from './theme';
|
|
8
|
+
|
|
9
|
+
const setupShallow = (props = {}) => (
|
|
10
|
+
shallow(<Icon name={props.icon} {...props} />)
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const setupMount = (props = {}) => (
|
|
14
|
+
mount(<Icon name={props.icon} {...props} />)
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
describe('Icons Tests', () => {
|
|
18
|
+
it('should not render component when name prop is undefined', () => {
|
|
19
|
+
const component = setupShallow();
|
|
20
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
21
|
+
expect(Icon.length).toBe(0);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('should render icon component', () => {
|
|
25
|
+
const component = setupShallow({ name: 'watch-later' });
|
|
26
|
+
const wrapper = findByTestAtrr(component, 'icon');
|
|
27
|
+
expect(wrapper.length).toBe(1);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should render icon component with medium size', () => {
|
|
31
|
+
const component = setupMount({ name: 'watch-later' });
|
|
32
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
33
|
+
expect(Icon).toHaveStyleRule('font-size', `${theme.size.md}px`);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should render icon component with large size', () => {
|
|
37
|
+
const component = setupMount({ name: 'watch-later', size: 'lg' });
|
|
38
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
39
|
+
expect(Icon).toHaveStyleRule('font-size', `${theme.size.lg}px`);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should render icon component with small size', () => {
|
|
43
|
+
const component = setupMount({ name: 'watch-later', size: 'sm' });
|
|
44
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
45
|
+
expect(Icon).toHaveStyleRule('font-size', `${theme.size.sm}px`);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should render gray icon component with small size', () => {
|
|
49
|
+
const component = setupMount({ name: 'watch-later', size: 'sm', color: 'gray' });
|
|
50
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
51
|
+
expect(Icon).toHaveStyleRule('font-size', `${theme.size.sm}px`);
|
|
52
|
+
expect(Icon).toHaveStyleRule('color', `${theme.colors.gray800}`);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('should render sticky left and sticky right icon', () => {
|
|
56
|
+
const component = setupMount({ name: 'watch-later', stickyLeft: true, stickyRight: true });
|
|
57
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
58
|
+
expect(Icon).toHaveStyleRule('margin', '0 0px 0 0px');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('should render sticky right icon', () => {
|
|
62
|
+
const component = setupMount({ name: 'watch-later', stickyRight: true });
|
|
63
|
+
const Icon = findByTestAtrr(component, 'icon');
|
|
64
|
+
expect(Icon).toHaveStyleRule('margin', `0 0px 0 ${theme.marginSize.md}px`);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import defaultTheme from '../themes';
|
|
2
|
+
|
|
3
|
+
const iconTheme = {
|
|
4
|
+
size: {
|
|
5
|
+
xxlg: 48,
|
|
6
|
+
xlg: 32,
|
|
7
|
+
lg: 24,
|
|
8
|
+
md: 20,
|
|
9
|
+
sm: 16,
|
|
10
|
+
xs: 12,
|
|
11
|
+
},
|
|
12
|
+
marginSize: {
|
|
13
|
+
xxlg: 18,
|
|
14
|
+
xlg: 16,
|
|
15
|
+
lg: 12,
|
|
16
|
+
md: 10,
|
|
17
|
+
sm: 8,
|
|
18
|
+
},
|
|
19
|
+
colors: defaultTheme.colors,
|
|
20
|
+
defaultColor: defaultTheme.colors.riverBedDark,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default iconTheme;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import Grid from './grid';
|
|
2
|
+
import Spacing from './spacing';
|
|
3
|
+
import utils from './utils';
|
|
4
|
+
import Typography from './typography';
|
|
5
|
+
import ShowDate from './show-date';
|
|
6
|
+
import Avatar from './avatar';
|
|
7
|
+
import Icon from './icon';
|
|
8
|
+
import Button from './button';
|
|
9
|
+
import TitledAvatar from './titled-avatar';
|
|
10
|
+
import NumericSummeryReport from './numeric-summery-report';
|
|
11
|
+
import Card from './card';
|
|
12
|
+
import ProductProperties from './product-properties';
|
|
13
|
+
import Cover from './cover';
|
|
14
|
+
import Form from './form';
|
|
15
|
+
import Display from './display';
|
|
16
|
+
import Responsive from './responsive';
|
|
17
|
+
import ProductOwner from './product-owner';
|
|
18
|
+
import FileItem from './file-item';
|
|
19
|
+
import Modal from './modal';
|
|
20
|
+
import ProductMenu from './product-menu';
|
|
21
|
+
import Table from './table';
|
|
22
|
+
import Tab from './tabs';
|
|
23
|
+
import defaultTheme from './themes';
|
|
24
|
+
|
|
25
|
+
const { colors } = defaultTheme;
|
|
26
|
+
|
|
27
|
+
export { default as Grid } from './grid';
|
|
28
|
+
export { default as Spacing } from './spacing';
|
|
29
|
+
export { default as utils } from './utils';
|
|
30
|
+
export { default as Typography } from './typography';
|
|
31
|
+
export { default as ShowDate } from './show-date';
|
|
32
|
+
export { default as Avatar } from './avatar';
|
|
33
|
+
export { default as Icon } from './icon';
|
|
34
|
+
export { default as Button } from './button';
|
|
35
|
+
export { default as TitledAvatar } from './titled-avatar';
|
|
36
|
+
export { default as NumericSummeryReport } from './numeric-summery-report';
|
|
37
|
+
export { default as Card } from './card';
|
|
38
|
+
export { default as ProductProperties } from './product-properties';
|
|
39
|
+
export { default as Cover } from './cover';
|
|
40
|
+
export { default as Form } from './form';
|
|
41
|
+
export { default as FormV7 } from './form-v7';
|
|
42
|
+
export { default as Responsive } from './responsive';
|
|
43
|
+
export { default as ProductOwner } from './product-owner';
|
|
44
|
+
export { default as FileItem } from './file-item';
|
|
45
|
+
export { default as Modal } from './modal';
|
|
46
|
+
export { default as ProductMenu } from './product-menu';
|
|
47
|
+
export { default as Table } from './table';
|
|
48
|
+
export { default as Tab } from './tabs';
|
|
49
|
+
export { colors as jupiterColors };
|
|
50
|
+
export { default as Display } from './display';
|
|
51
|
+
|
|
52
|
+
export default {
|
|
53
|
+
Grid,
|
|
54
|
+
Spacing,
|
|
55
|
+
utils,
|
|
56
|
+
Typography,
|
|
57
|
+
ShowDate,
|
|
58
|
+
Avatar,
|
|
59
|
+
Icon,
|
|
60
|
+
Button,
|
|
61
|
+
TitledAvatar,
|
|
62
|
+
NumericSummeryReport,
|
|
63
|
+
Card,
|
|
64
|
+
ProductProperties,
|
|
65
|
+
Cover,
|
|
66
|
+
Form,
|
|
67
|
+
Responsive,
|
|
68
|
+
ProductOwner,
|
|
69
|
+
FileItem,
|
|
70
|
+
Modal,
|
|
71
|
+
ProductMenu,
|
|
72
|
+
Table,
|
|
73
|
+
Tab,
|
|
74
|
+
Display,
|
|
75
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Modal from 'react-modal';
|
|
3
|
+
import GlobalStyle from '../globalStyle';
|
|
4
|
+
import { StyledIcon, StyledWrapper } from './index.style';
|
|
5
|
+
import Icon from '../icon';
|
|
6
|
+
|
|
7
|
+
type Props = {
|
|
8
|
+
children: * => Node,
|
|
9
|
+
isOpen: boolean,
|
|
10
|
+
hasCloseButton?: boolean,
|
|
11
|
+
disabledClose?: boolean,
|
|
12
|
+
onRequestClose?: () => void,
|
|
13
|
+
onAfterOpen?: () => void,
|
|
14
|
+
modalWidth?: string,
|
|
15
|
+
modalWidthMobile?: string,
|
|
16
|
+
fullHeight?: boolean,
|
|
17
|
+
className?: String,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// bind modal to the body of the app
|
|
21
|
+
Modal.setAppElement('body');
|
|
22
|
+
|
|
23
|
+
function JupiterModal({
|
|
24
|
+
onRequestClose = () => {},
|
|
25
|
+
onAfterOpen = () => {},
|
|
26
|
+
hasCloseButton = true,
|
|
27
|
+
disabledClose = false,
|
|
28
|
+
modalWidth = '80%',
|
|
29
|
+
modalWidthMobile = '100%',
|
|
30
|
+
fullHeight = false,
|
|
31
|
+
isOpen,
|
|
32
|
+
className = '',
|
|
33
|
+
children,
|
|
34
|
+
}: Props) {
|
|
35
|
+
const customStyles = {
|
|
36
|
+
overlay: {
|
|
37
|
+
position: 'fixed',
|
|
38
|
+
top: 0,
|
|
39
|
+
left: 0,
|
|
40
|
+
right: 0,
|
|
41
|
+
bottom: 0,
|
|
42
|
+
backgroundColor: 'rgba(0, 0, 0, 0.75)',
|
|
43
|
+
zIndex: 99,
|
|
44
|
+
},
|
|
45
|
+
content: {
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
top: '50%',
|
|
48
|
+
left: '50%',
|
|
49
|
+
right: 'auto',
|
|
50
|
+
bottom: 'auto',
|
|
51
|
+
marginRight: '-50%',
|
|
52
|
+
transform: 'translate(-50%, -50%)',
|
|
53
|
+
maxWidth: '990px',
|
|
54
|
+
padding: '20px',
|
|
55
|
+
backgroundColor: 'white',
|
|
56
|
+
height: fullHeight ? '100%' : 'auto',
|
|
57
|
+
display: 'flex',
|
|
58
|
+
flexDirection: 'column',
|
|
59
|
+
pointerEvents: 'auto',
|
|
60
|
+
backgroundClip: 'padding-box',
|
|
61
|
+
border: '1px solid rgba(0,0,0,.2)',
|
|
62
|
+
borderRadius: '.2rem',
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
return (
|
|
66
|
+
<Modal
|
|
67
|
+
isOpen={isOpen}
|
|
68
|
+
onAfterOpen={onAfterOpen}
|
|
69
|
+
onRequestClose={onRequestClose}
|
|
70
|
+
shouldCloseOnOverlayClick={!disabledClose}
|
|
71
|
+
overlayClassName="modal"
|
|
72
|
+
className={`content ${className}`}
|
|
73
|
+
style={customStyles}
|
|
74
|
+
>
|
|
75
|
+
<GlobalStyle />
|
|
76
|
+
<StyledWrapper>
|
|
77
|
+
{(!disabledClose && hasCloseButton) && (
|
|
78
|
+
<StyledIcon onClick={onRequestClose} aria-hidden="true">
|
|
79
|
+
<Icon name="close" size="md" />
|
|
80
|
+
</StyledIcon>
|
|
81
|
+
)}
|
|
82
|
+
{children}
|
|
83
|
+
</StyledWrapper>
|
|
84
|
+
<style>
|
|
85
|
+
{`
|
|
86
|
+
.content {
|
|
87
|
+
width: ${modalWidth};
|
|
88
|
+
}
|
|
89
|
+
@media(max-width: 767px){
|
|
90
|
+
.content {
|
|
91
|
+
width: ${modalWidthMobile};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
`}
|
|
95
|
+
</style>
|
|
96
|
+
</Modal>
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export default JupiterModal;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import { action } from '@storybook/addon-actions';
|
|
4
|
+
import Modal from './index';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Modal',
|
|
8
|
+
component: Modal,
|
|
9
|
+
|
|
10
|
+
argTypes: {
|
|
11
|
+
modalWidth: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
defaultValue: '30%',
|
|
14
|
+
},
|
|
15
|
+
modalWidthMobile: {
|
|
16
|
+
control: 'text',
|
|
17
|
+
defaultValue: '80%',
|
|
18
|
+
},
|
|
19
|
+
hasCloseButton: {
|
|
20
|
+
control: 'boolean',
|
|
21
|
+
defaultValue: true,
|
|
22
|
+
},
|
|
23
|
+
disabledClose: {
|
|
24
|
+
control: 'boolean',
|
|
25
|
+
defaultValue: false,
|
|
26
|
+
},
|
|
27
|
+
isOpen: {
|
|
28
|
+
control: 'boolean',
|
|
29
|
+
defaultValue: true,
|
|
30
|
+
},
|
|
31
|
+
onRequestClose: {
|
|
32
|
+
action: 'onRequestClose',
|
|
33
|
+
},
|
|
34
|
+
onAfterOpen: {
|
|
35
|
+
action: 'onAfterOpen',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const Template = (args) => {
|
|
41
|
+
const [show, setShow] = useState(false);
|
|
42
|
+
return (
|
|
43
|
+
<div>
|
|
44
|
+
<button type="button" onClick={() => setShow(true)}>نمایش مودال</button>
|
|
45
|
+
<div>
|
|
46
|
+
<article>
|
|
47
|
+
<p>لورم ایپسوم متن ساختگی</p>
|
|
48
|
+
</article>
|
|
49
|
+
</div>
|
|
50
|
+
<Modal {...args} isOpen={show} onRequestClose={() => setShow(false)}>
|
|
51
|
+
<h1>سلام</h1>
|
|
52
|
+
<p>این یک نمونه است</p>
|
|
53
|
+
</Modal>
|
|
54
|
+
</div>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const Minimal = Template.bind({});
|
|
59
|
+
Minimal.args = {
|
|
60
|
+
modalWidth: '30%',
|
|
61
|
+
modalWidthMobile: '80%',
|
|
62
|
+
hasCloseButton: true,
|
|
63
|
+
disabledClose: false,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const FullOptions = Template.bind({});
|
|
67
|
+
FullOptions.args = {
|
|
68
|
+
modalWidth: '100px',
|
|
69
|
+
modalWidthMobile: '80%',
|
|
70
|
+
hasCloseButton: true,
|
|
71
|
+
disabledClose: false,
|
|
72
|
+
onRequestClose: action('trigger what you want to do in onRequestClose function'),
|
|
73
|
+
onAfterOpen: action('trigger what you want to do in onAfterOpen function'),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const WithoutCloseButton = Template.bind({});
|
|
77
|
+
WithoutCloseButton.args = {
|
|
78
|
+
...Minimal.args,
|
|
79
|
+
hasCloseButton: false,
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export const DisabledClose = Template.bind({});
|
|
83
|
+
DisabledClose.args = {
|
|
84
|
+
...Minimal.args,
|
|
85
|
+
disabledClose: true,
|
|
86
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { isMobile } from '../utils/detectMobile';
|
|
3
|
+
|
|
4
|
+
export const StyledIcon = styled.span`
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
position: absolute;
|
|
7
|
+
right: 0;
|
|
8
|
+
top: 8px;
|
|
9
|
+
z-index: 999;
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
export const StyledWrapper = styled.div`
|
|
13
|
+
width: 100%;
|
|
14
|
+
min-height: 300px;
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
`;
|
|
17
|
+
|
|
18
|
+
export function customModalStyles(
|
|
19
|
+
borderRadius, overlayBackground, width, widthMobile, shadow, fullHeight,
|
|
20
|
+
) {
|
|
21
|
+
return {
|
|
22
|
+
content: {
|
|
23
|
+
top: '50%',
|
|
24
|
+
left: '50%',
|
|
25
|
+
right: 'auto',
|
|
26
|
+
bottom: 'auto',
|
|
27
|
+
transform: 'translate(-50%, -50%)',
|
|
28
|
+
borderRadius: `${borderRadius}px`,
|
|
29
|
+
border: '0',
|
|
30
|
+
padding: isMobile ? '50px 0' : '0',
|
|
31
|
+
margin: '0',
|
|
32
|
+
width: isMobile ? widthMobile : width,
|
|
33
|
+
boxShadow: `0 0 ${shadow.blur}px ${shadow.spread}px rgba(0, 0, 0, ${shadow.opacity})`,
|
|
34
|
+
height: fullHeight ? '100%' : 'auto',
|
|
35
|
+
},
|
|
36
|
+
overlay: {
|
|
37
|
+
background: overlayBackground,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import defaultTheme from '../themes';
|
|
2
|
+
|
|
3
|
+
const theme = {
|
|
4
|
+
borderRadius: defaultTheme.borderRadius.low,
|
|
5
|
+
overlayColor: defaultTheme.colors.gray800,
|
|
6
|
+
white: defaultTheme.colors.white,
|
|
7
|
+
defaultColor: defaultTheme.colors.riverBedDark,
|
|
8
|
+
modalShadow: defaultTheme.shadows[5],
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default theme;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import GlobalStyle from '../globalStyle';
|
|
5
|
+
import { Text } from '../typography';
|
|
6
|
+
import { toPersianNumber } from '../utils/numbers';
|
|
7
|
+
import { ListContainer, ListItem } from './index.style';
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
data: [],
|
|
11
|
+
textColor?: string,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const NumericSummeryReport = ({ data, textColor = 'gray' }: Props) => (
|
|
15
|
+
<>
|
|
16
|
+
<GlobalStyle />
|
|
17
|
+
<ListContainer data-test="numeric-summery-report">
|
|
18
|
+
{data.map((report) => (
|
|
19
|
+
<ListItem key={report.id}>
|
|
20
|
+
<Text size="12" color={textColor}>{report.title}</Text>
|
|
21
|
+
<Text size="16" bold>{toPersianNumber(report.count, {})}</Text>
|
|
22
|
+
</ListItem>
|
|
23
|
+
))}
|
|
24
|
+
</ListContainer>
|
|
25
|
+
</>
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
export default NumericSummeryReport;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import NumericSummeryReport from './index';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Components/NumericSummeryReport',
|
|
6
|
+
component: NumericSummeryReport,
|
|
7
|
+
argTypes: {
|
|
8
|
+
title: {
|
|
9
|
+
control: 'text',
|
|
10
|
+
description: 'Title of the report',
|
|
11
|
+
},
|
|
12
|
+
value: {
|
|
13
|
+
control: 'number',
|
|
14
|
+
description: 'Numeric value to display',
|
|
15
|
+
},
|
|
16
|
+
textColor: {
|
|
17
|
+
control: 'color',
|
|
18
|
+
description: 'Color of the text',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const Template = (args) => <NumericSummeryReport {...args} />;
|
|
24
|
+
|
|
25
|
+
export const Default = Template.bind({});
|
|
26
|
+
Default.args = {
|
|
27
|
+
title: 'Total Users',
|
|
28
|
+
value: 1234,
|
|
29
|
+
textColor: '#000000',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const WithColor = Template.bind({});
|
|
33
|
+
WithColor.args = {
|
|
34
|
+
title: 'Active Users',
|
|
35
|
+
value: 567,
|
|
36
|
+
textColor: '#2196F3',
|
|
37
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
|
|
3
|
+
export const ListContainer = styled.ul`
|
|
4
|
+
display: flex;
|
|
5
|
+
height: 57px;
|
|
6
|
+
width: 100%;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: space-around;
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
export const ListItem = styled.li`
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
`;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { shallow } from 'enzyme';
|
|
3
|
+
import findByTestAtrr from '../utils/test';
|
|
4
|
+
import NumericSummeryReport from './index';
|
|
5
|
+
|
|
6
|
+
const setupShallow = (props = {}) => (
|
|
7
|
+
shallow(<NumericSummeryReport data={props.data} {...props} />)
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
describe('Numeric Summery Report', () => {
|
|
11
|
+
it('should render correctly', () => {
|
|
12
|
+
const component = setupShallow({
|
|
13
|
+
data: [
|
|
14
|
+
{ id: 1, title: 'برگزار شده', count: 12 },
|
|
15
|
+
{ id: 2, title: 'فعال', count: 2 },
|
|
16
|
+
{ id: 3, title: 'دنبال کنندهها', count: 346 },
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
const NumericSummeryReport = findByTestAtrr(component, 'numeric-summery-report');
|
|
20
|
+
expect(NumericSummeryReport.length).toBe(1);
|
|
21
|
+
});
|
|
22
|
+
});
|