@toptal/picasso-lab 9.3.0 → 9.3.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/CHANGELOG.md +1385 -0
- package/{Calendar → dist-package/Calendar}/Calendar.d.ts +0 -0
- package/{Calendar → dist-package/Calendar}/Calendar.js +0 -0
- package/{Calendar → dist-package/Calendar}/Calendar.js.map +0 -0
- package/{Calendar → dist-package/Calendar}/index.d.ts +0 -0
- package/{Calendar → dist-package/Calendar}/index.js +0 -0
- package/{Calendar → dist-package/Calendar}/index.js.map +0 -0
- package/{Calendar → dist-package/Calendar}/styles.d.ts +0 -0
- package/{Calendar → dist-package/Calendar}/styles.js +0 -0
- package/{Calendar → dist-package/Calendar}/styles.js.map +0 -0
- package/{Calendar → dist-package/Calendar}/types.d.ts +0 -0
- package/{Calendar → dist-package/Calendar}/types.js +0 -0
- package/{Calendar → dist-package/Calendar}/types.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/DatePicker.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/DatePicker.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/DatePicker.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/constants.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/constants.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/constants.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/index.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/index.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/index.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/styles.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/styles.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/styles.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/types.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/types.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/types.js.map +0 -0
- package/{DatePicker → dist-package/DatePicker}/utils.d.ts +0 -0
- package/{DatePicker → dist-package/DatePicker}/utils.js +0 -0
- package/{DatePicker → dist-package/DatePicker}/utils.js.map +0 -0
- package/{Drawer → dist-package/Drawer}/Drawer.d.ts +0 -0
- package/{Drawer → dist-package/Drawer}/Drawer.js +0 -0
- package/{Drawer → dist-package/Drawer}/Drawer.js.map +0 -0
- package/{Drawer → dist-package/Drawer}/index.d.ts +0 -0
- package/{Drawer → dist-package/Drawer}/index.js +0 -0
- package/{Drawer → dist-package/Drawer}/index.js.map +0 -0
- package/{Drawer → dist-package/Drawer}/styles.d.ts +0 -0
- package/{Drawer → dist-package/Drawer}/styles.js +0 -0
- package/{Drawer → dist-package/Drawer}/styles.js.map +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/DrawerTitle.d.ts +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/DrawerTitle.js +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/DrawerTitle.js.map +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/index.d.ts +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/index.js +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/index.js.map +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/styles.d.ts +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/styles.js +0 -0
- package/{DrawerTitle → dist-package/DrawerTitle}/styles.js.map +0 -0
- package/{Dropzone → dist-package/Dropzone}/Dropzone.d.ts +0 -0
- package/{Dropzone → dist-package/Dropzone}/Dropzone.js +1 -1
- package/{Dropzone → dist-package/Dropzone}/Dropzone.js.map +1 -1
- package/{Dropzone → dist-package/Dropzone}/index.d.ts +0 -0
- package/{Dropzone → dist-package/Dropzone}/index.js +0 -0
- package/{Dropzone → dist-package/Dropzone}/index.js.map +0 -0
- package/{Dropzone → dist-package/Dropzone}/styles.d.ts +0 -0
- package/{Dropzone → dist-package/Dropzone}/styles.js +0 -0
- package/{Dropzone → dist-package/Dropzone}/styles.js.map +0 -0
- package/{Dropzone → dist-package/Dropzone}/types.d.ts +0 -0
- package/{Dropzone → dist-package/Dropzone}/types.js +0 -0
- package/{Dropzone → dist-package/Dropzone}/types.js.map +0 -0
- package/{EmptyState → dist-package/EmptyState}/EmptyState.d.ts +0 -0
- package/{EmptyState → dist-package/EmptyState}/EmptyState.js +0 -0
- package/{EmptyState → dist-package/EmptyState}/EmptyState.js.map +0 -0
- package/{EmptyState → dist-package/EmptyState}/index.d.ts +0 -0
- package/{EmptyState → dist-package/EmptyState}/index.js +0 -0
- package/{EmptyState → dist-package/EmptyState}/index.js.map +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/EmptyStateCollection.d.ts +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/EmptyStateCollection.js +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/EmptyStateCollection.js.map +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/index.d.ts +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/index.js +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/index.js.map +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/styles.d.ts +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/styles.js +0 -0
- package/{EmptyStateCollection → dist-package/EmptyStateCollection}/styles.js.map +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/EmptyStatePage.d.ts +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/EmptyStatePage.js +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/EmptyStatePage.js.map +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/index.d.ts +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/index.js +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/index.js.map +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/styles.d.ts +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/styles.js +0 -0
- package/{EmptyStatePage → dist-package/EmptyStatePage}/styles.js.map +0 -0
- package/{Note → dist-package/Note}/Note.d.ts +0 -0
- package/{Note → dist-package/Note}/Note.js +0 -0
- package/{Note → dist-package/Note}/Note.js.map +0 -0
- package/{Note → dist-package/Note}/index.d.ts +0 -0
- package/{Note → dist-package/Note}/index.js +0 -0
- package/{Note → dist-package/Note}/index.js.map +0 -0
- package/{Note → dist-package/Note}/styles.d.ts +0 -0
- package/{Note → dist-package/Note}/styles.js +0 -0
- package/{Note → dist-package/Note}/styles.js.map +0 -0
- package/{NoteContent → dist-package/NoteContent}/NoteContent.d.ts +0 -0
- package/{NoteContent → dist-package/NoteContent}/NoteContent.js +0 -0
- package/{NoteContent → dist-package/NoteContent}/NoteContent.js.map +0 -0
- package/{NoteContent → dist-package/NoteContent}/index.d.ts +0 -0
- package/{NoteContent → dist-package/NoteContent}/index.js +0 -0
- package/{NoteContent → dist-package/NoteContent}/index.js.map +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/NoteSubtitle.d.ts +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/NoteSubtitle.js +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/NoteSubtitle.js.map +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/index.d.ts +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/index.js +0 -0
- package/{NoteSubtitle → dist-package/NoteSubtitle}/index.js.map +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/NoteTitle.d.ts +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/NoteTitle.js +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/NoteTitle.js.map +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/index.d.ts +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/index.js +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/index.js.map +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/styles.d.ts +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/styles.js +0 -0
- package/{NoteTitle → dist-package/NoteTitle}/styles.js.map +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/OverviewBlock.d.ts +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/OverviewBlock.js +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/OverviewBlock.js.map +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/index.d.ts +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/index.js +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/index.js.map +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/styles.d.ts +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/styles.js +0 -0
- package/{OverviewBlock → dist-package/OverviewBlock}/styles.js.map +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroup.d.ts +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroup.js +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroup.js.map +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroupContext.d.ts +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroupContext.js +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/OverviewBlockGroupContext.js.map +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/index.d.ts +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/index.js +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/index.js.map +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/settings.d.ts +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/settings.js +0 -0
- package/{OverviewBlockGroup → dist-package/OverviewBlockGroup}/settings.js.map +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/OverviewBlockRow.d.ts +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/OverviewBlockRow.js +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/OverviewBlockRow.js.map +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/index.d.ts +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/index.js +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/index.js.map +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/styles.d.ts +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/styles.js +0 -0
- package/{OverviewBlockRow → dist-package/OverviewBlockRow}/styles.js.map +0 -0
- package/dist-package/README.md +26 -0
- package/{Section → dist-package/Section}/Section.d.ts +0 -0
- package/{Section → dist-package/Section}/Section.js +0 -0
- package/{Section → dist-package/Section}/Section.js.map +0 -0
- package/{Section → dist-package/Section}/index.d.ts +0 -0
- package/{Section → dist-package/Section}/index.js +0 -0
- package/{Section → dist-package/Section}/index.js.map +0 -0
- package/{Section → dist-package/Section}/styles.d.ts +0 -0
- package/{Section → dist-package/Section}/styles.js +0 -0
- package/{Section → dist-package/Section}/styles.js.map +0 -0
- package/{Timeline → dist-package/Timeline}/Timeline.d.ts +0 -0
- package/{Timeline → dist-package/Timeline}/Timeline.js +0 -0
- package/{Timeline → dist-package/Timeline}/Timeline.js.map +0 -0
- package/{Timeline → dist-package/Timeline}/index.d.ts +0 -0
- package/{Timeline → dist-package/Timeline}/index.js +0 -0
- package/{Timeline → dist-package/Timeline}/index.js.map +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/TimelineRow.d.ts +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/TimelineRow.js +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/TimelineRow.js.map +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/index.d.ts +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/index.js +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/index.js.map +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/styles.d.ts +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/styles.js +0 -0
- package/{TimelineRow → dist-package/TimelineRow}/styles.js.map +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/TypographyOverflow.d.ts +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/TypographyOverflow.js +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/TypographyOverflow.js.map +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/index.d.ts +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/index.js +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/index.js.map +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/styles.d.ts +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/styles.js +0 -0
- package/{TypographyOverflow → dist-package/TypographyOverflow}/styles.js.map +0 -0
- package/{index.d.ts → dist-package/index.d.ts} +0 -0
- package/{index.js → dist-package/index.js} +0 -0
- package/{index.js.map → dist-package/index.js.map} +0 -0
- package/dist-package/package.json +53 -0
- package/package.json +3 -4
- package/src/Calendar/Calendar.tsx +215 -0
- package/src/Calendar/__snapshots__/test.tsx.snap +447 -0
- package/src/Calendar/index.ts +2 -0
- package/src/Calendar/styles.ts +104 -0
- package/src/Calendar/test.tsx +20 -0
- package/src/Calendar/types.ts +42 -0
- package/src/DatePicker/DatePicker.tsx +366 -0
- package/src/DatePicker/__image_snapshots__/datepicker-full-width-snap.png +0 -0
- package/src/DatePicker/__image_snapshots__/datepicker-with-custom-day-rendering-snap.png +0 -0
- package/src/DatePicker/__snapshots__/test.tsx.snap +51 -0
- package/src/DatePicker/constants.ts +2 -0
- package/src/DatePicker/index.ts +5 -0
- package/src/DatePicker/story/AllowCustomValue.example.tsx +33 -0
- package/src/DatePicker/story/Autocomplete.example.tsx +47 -0
- package/src/DatePicker/story/Default.example.tsx +19 -0
- package/src/DatePicker/story/Error.example.tsx +26 -0
- package/src/DatePicker/story/Range.example.tsx +22 -0
- package/src/DatePicker/story/WithCustomDayRendering.example.tsx +47 -0
- package/src/DatePicker/story/WithInitialValue.example.tsx +19 -0
- package/src/DatePicker/story/WithInputProps.example.tsx +24 -0
- package/src/DatePicker/story/WithNoHideOnSelect.example.tsx +20 -0
- package/src/DatePicker/story/WithOnBlurHandler.example.tsx +22 -0
- package/src/DatePicker/story/WithSelectionLimits.example.tsx +32 -0
- package/src/DatePicker/story/WithTimezone.example.tsx +25 -0
- package/src/DatePicker/story/index.jsx +50 -0
- package/src/DatePicker/styles.ts +8 -0
- package/src/DatePicker/test.tsx +370 -0
- package/src/DatePicker/types.ts +13 -0
- package/src/DatePicker/utils.ts +123 -0
- package/src/Drawer/Drawer.tsx +105 -0
- package/src/Drawer/__image_snapshots__/drawer-custom-title-effect-1-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-custom-title-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-default-effect-1-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-default-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-effect-1-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-effect-2-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-effect-3-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-effect-4-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-effect-5-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-width-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-without-title-effect-1-snap.png +0 -0
- package/src/Drawer/__image_snapshots__/drawer-without-title-snap.png +0 -0
- package/src/Drawer/index.ts +6 -0
- package/src/Drawer/story/CustomTitle.example.tsx +32 -0
- package/src/Drawer/story/Default.example.tsx +29 -0
- package/src/Drawer/story/DrawerAndNotification.example.tsx +34 -0
- package/src/Drawer/story/Widths.example.tsx +46 -0
- package/src/Drawer/story/WithoutTitle.example.tsx +22 -0
- package/src/Drawer/story/index.jsx +80 -0
- package/src/Drawer/styles.ts +42 -0
- package/src/DrawerTitle/DrawerTitle.tsx +35 -0
- package/src/DrawerTitle/index.ts +1 -0
- package/src/DrawerTitle/styles.ts +12 -0
- package/src/Dropzone/Dropzone.tsx +146 -0
- package/src/Dropzone/__snapshots__/test.tsx.snap +40 -0
- package/src/Dropzone/index.ts +7 -0
- package/src/Dropzone/story/Default.example.tsx +8 -0
- package/src/Dropzone/story/Disabled.example.tsx +25 -0
- package/src/Dropzone/story/Error.example.tsx +16 -0
- package/src/Dropzone/story/Multiple.example.tsx +30 -0
- package/src/Dropzone/story/Uploader.example.tsx +116 -0
- package/src/Dropzone/story/Uploading.example.tsx +16 -0
- package/src/Dropzone/story/index.jsx +85 -0
- package/src/Dropzone/styles.ts +43 -0
- package/src/Dropzone/test.tsx +33 -0
- package/src/Dropzone/types.ts +56 -0
- package/src/EmptyState/EmptyState.tsx +7 -0
- package/src/EmptyState/index.tsx +1 -0
- package/src/EmptyState/story/index.jsx +13 -0
- package/src/EmptyStateCollection/EmptyStateCollection.tsx +56 -0
- package/src/EmptyStateCollection/__image_snapshots__/emptystate-collection-emptystatecollection-snap.png +0 -0
- package/src/EmptyStateCollection/index.tsx +1 -0
- package/src/EmptyStateCollection/story/Default.example.tsx +11 -0
- package/src/EmptyStateCollection/story/index.jsx +20 -0
- package/src/EmptyStateCollection/styles.ts +10 -0
- package/src/EmptyStatePage/EmptyStatePage.tsx +65 -0
- package/src/EmptyStatePage/__image_snapshots__/emptystate-page-emptystatepage-snap.png +0 -0
- package/src/EmptyStatePage/index.tsx +1 -0
- package/src/EmptyStatePage/story/Default.example.tsx +21 -0
- package/src/EmptyStatePage/story/index.jsx +21 -0
- package/src/EmptyStatePage/styles.ts +9 -0
- package/src/Note/Note.tsx +36 -0
- package/src/Note/__snapshots__/test.tsx.snap +37 -0
- package/src/Note/index.ts +6 -0
- package/src/Note/story/Default.example.tsx +14 -0
- package/src/Note/story/index.jsx +23 -0
- package/src/Note/styles.ts +27 -0
- package/src/Note/test.tsx +22 -0
- package/src/NoteContent/NoteContent.tsx +23 -0
- package/src/NoteContent/index.ts +1 -0
- package/src/NoteContent/story/index.jsx +12 -0
- package/src/NoteSubtitle/NoteSubtitle.tsx +25 -0
- package/src/NoteSubtitle/index.ts +1 -0
- package/src/NoteSubtitle/story/index.jsx +12 -0
- package/src/NoteTitle/NoteTitle.tsx +34 -0
- package/src/NoteTitle/index.ts +1 -0
- package/src/NoteTitle/story/index.jsx +12 -0
- package/src/NoteTitle/styles.ts +8 -0
- package/src/OverviewBlock/OverviewBlock.tsx +125 -0
- package/src/OverviewBlock/__image_snapshots__/overviewblock-default-snap.png +0 -0
- package/src/OverviewBlock/__image_snapshots__/overviewblock-multi-line-snap.png +0 -0
- package/src/OverviewBlock/__image_snapshots__/overviewblock-number-snap.png +0 -0
- package/src/OverviewBlock/__image_snapshots__/overviewblock-routing-snap.png +0 -0
- package/src/OverviewBlock/__image_snapshots__/overviewblock-text-snap.png +0 -0
- package/src/OverviewBlock/index.ts +6 -0
- package/src/OverviewBlock/story/Default.example.tsx +35 -0
- package/src/OverviewBlock/story/Multiline.example.tsx +51 -0
- package/src/OverviewBlock/story/Number.example.tsx +20 -0
- package/src/OverviewBlock/story/Routing.example.tsx +40 -0
- package/src/OverviewBlock/story/Text.example.tsx +15 -0
- package/src/OverviewBlock/story/index.jsx +100 -0
- package/src/OverviewBlock/styles.ts +44 -0
- package/src/OverviewBlock/test.tsx +111 -0
- package/src/OverviewBlockGroup/OverviewBlockGroup.tsx +56 -0
- package/src/OverviewBlockGroup/OverviewBlockGroupContext.tsx +21 -0
- package/src/OverviewBlockGroup/__image_snapshots__/visual-variants-of-the-groups-block-width-snap.png +0 -0
- package/src/OverviewBlockGroup/__image_snapshots__/visual-variants-of-the-groups-center-aligned-snap.png +0 -0
- package/src/OverviewBlockGroup/index.ts +1 -0
- package/src/OverviewBlockGroup/settings.ts +2 -0
- package/src/OverviewBlockGroup/story/BlockWidth.example.tsx +38 -0
- package/src/OverviewBlockGroup/story/CenterAligned.example.tsx +17 -0
- package/src/OverviewBlockGroup/story/index.jsx +25 -0
- package/src/OverviewBlockGroup/test.tsx +17 -0
- package/src/OverviewBlockRow/OverviewBlockRow.tsx +22 -0
- package/src/OverviewBlockRow/index.ts +1 -0
- package/src/OverviewBlockRow/story/index.jsx +11 -0
- package/src/OverviewBlockRow/styles.ts +27 -0
- package/src/Section/Section.tsx +163 -0
- package/src/Section/__snapshots__/test.tsx.snap +186 -0
- package/src/Section/index.ts +6 -0
- package/src/Section/story/Actions.example.tsx +85 -0
- package/src/Section/story/Collapsible.example.tsx +113 -0
- package/src/Section/story/Default.example.tsx +77 -0
- package/src/Section/story/TitleSize.example.tsx +34 -0
- package/src/Section/story/Variant.example.tsx +108 -0
- package/src/Section/story/index.jsx +35 -0
- package/src/Section/styles.ts +65 -0
- package/src/Section/test.tsx +115 -0
- package/src/Timeline/Timeline.tsx +25 -0
- package/src/Timeline/__snapshots__/test.tsx.snap +332 -0
- package/src/Timeline/index.ts +6 -0
- package/src/Timeline/story/Dates.example.tsx +52 -0
- package/src/Timeline/story/Default.example.tsx +34 -0
- package/src/Timeline/story/TrimLastConnector.example.tsx +29 -0
- package/src/Timeline/story/index.jsx +27 -0
- package/src/Timeline/test.tsx +101 -0
- package/src/TimelineRow/TimelineRow.tsx +83 -0
- package/src/TimelineRow/index.ts +6 -0
- package/src/TimelineRow/story/index.jsx +11 -0
- package/src/TimelineRow/styles.ts +47 -0
- package/src/TypographyOverflow/TypographyOverflow.tsx +153 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-checkbox-label-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-checkbox-label-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-custom-tooltip-content-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-custom-tooltip-content-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-default-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-default-effect-2-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-default-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-delay-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-delay-effect-2-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-delay-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-light-tooltip-background-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-light-tooltip-background-effect-2-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-light-tooltip-background-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-multiline-effect-1-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-multiline-effect-2-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-multiline-effect-3-snap.png +0 -0
- package/src/TypographyOverflow/__image_snapshots__/typographyoverflow-multiline-snap.png +0 -0
- package/src/TypographyOverflow/index.ts +6 -0
- package/src/TypographyOverflow/story/CheckboxLabel.example.tsx +21 -0
- package/src/TypographyOverflow/story/CustomTooltip.example.tsx +22 -0
- package/src/TypographyOverflow/story/Default.example.tsx +32 -0
- package/src/TypographyOverflow/story/Delay.example.tsx +29 -0
- package/src/TypographyOverflow/story/GridWithControls.example.tsx +64 -0
- package/src/TypographyOverflow/story/Multiline.example.tsx +59 -0
- package/src/TypographyOverflow/story/TooltipVariants.example.tsx +23 -0
- package/src/TypographyOverflow/story/index.jsx +83 -0
- package/src/TypographyOverflow/styles.ts +29 -0
- package/src/TypographyOverflow/test.tsx +60 -0
- package/src/index.ts +35 -0
- package/src/story/index.jsx +10 -0
- package/tsconfig.build.json +7 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
import { Container, Typography } from '@toptal/picasso'
|
2
|
+
import React, {
|
3
|
+
forwardRef,
|
4
|
+
HTMLAttributes,
|
5
|
+
ReactElement,
|
6
|
+
cloneElement
|
7
|
+
} from 'react'
|
8
|
+
import { makeStyles, Theme } from '@material-ui/core/styles'
|
9
|
+
import { Search16 as Search } from '@toptal/picasso/Icon'
|
10
|
+
|
11
|
+
import styles from './styles'
|
12
|
+
|
13
|
+
export interface Props extends HTMLAttributes<HTMLDivElement> {
|
14
|
+
/** Adds <Icon /> before EmptyStateCollection content */
|
15
|
+
icon?: ReactElement
|
16
|
+
}
|
17
|
+
|
18
|
+
const useStyles = makeStyles<Theme>(styles, {
|
19
|
+
name: 'PicassoEmptyStateCollection'
|
20
|
+
})
|
21
|
+
|
22
|
+
export const EmptyStateCollection = forwardRef<HTMLDivElement, Props>(
|
23
|
+
function EmptyStateCollection(props, ref) {
|
24
|
+
const classes = useStyles()
|
25
|
+
const { icon, children, style, ...rest } = props
|
26
|
+
const iconProps = {
|
27
|
+
className: classes.icon,
|
28
|
+
color: 'dark-grey' as const
|
29
|
+
}
|
30
|
+
const iconElement = icon ? (
|
31
|
+
cloneElement(icon, iconProps)
|
32
|
+
) : (
|
33
|
+
<Search {...iconProps} />
|
34
|
+
)
|
35
|
+
|
36
|
+
return (
|
37
|
+
<Container {...rest} alignItems='center' flex ref={ref} style={style}>
|
38
|
+
<Container
|
39
|
+
alignItems='center'
|
40
|
+
className={classes.iconWrapper}
|
41
|
+
flex
|
42
|
+
right='xsmall'
|
43
|
+
>
|
44
|
+
{iconElement}
|
45
|
+
</Container>
|
46
|
+
<Container>
|
47
|
+
<Typography size='small'>{children}</Typography>
|
48
|
+
</Container>
|
49
|
+
</Container>
|
50
|
+
)
|
51
|
+
}
|
52
|
+
)
|
53
|
+
|
54
|
+
EmptyStateCollection.displayName = 'EmptyStateCollection'
|
55
|
+
|
56
|
+
export default EmptyStateCollection
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './EmptyStateCollection'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { EmptyState } from '@toptal/picasso-lab'
|
3
|
+
import { Container } from '@toptal/picasso'
|
4
|
+
|
5
|
+
const DefaultExample = () => (
|
6
|
+
<Container>
|
7
|
+
<EmptyState.Collection>No memorandums were added yet</EmptyState.Collection>
|
8
|
+
</Container>
|
9
|
+
)
|
10
|
+
|
11
|
+
export default DefaultExample
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { EmptyStateCollection } from '../EmptyStateCollection'
|
2
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
3
|
+
|
4
|
+
const componentDocs = PicassoBook.createComponentDocs(
|
5
|
+
EmptyStateCollection,
|
6
|
+
'EmptyState.Collection'
|
7
|
+
)
|
8
|
+
|
9
|
+
const chapter = PicassoBook.connectToPage(page =>
|
10
|
+
page
|
11
|
+
.createChapter('EmptyState.Collection')
|
12
|
+
.addExample('EmptyStateCollection/story/Default.example.tsx', {
|
13
|
+
id: 'EmptyStateCollection'
|
14
|
+
})
|
15
|
+
)
|
16
|
+
|
17
|
+
export default {
|
18
|
+
componentDocs,
|
19
|
+
chapter
|
20
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { Container, Typography } from '@toptal/picasso'
|
2
|
+
import React, {
|
3
|
+
forwardRef,
|
4
|
+
HTMLAttributes,
|
5
|
+
ReactElement,
|
6
|
+
cloneElement
|
7
|
+
} from 'react'
|
8
|
+
import { makeStyles, Theme } from '@material-ui/core/styles'
|
9
|
+
|
10
|
+
import styles from './styles'
|
11
|
+
|
12
|
+
export interface Props extends HTMLAttributes<HTMLDivElement> {
|
13
|
+
/** Adds <Icon /> above EmptyStatePage content */
|
14
|
+
image: ReactElement
|
15
|
+
/** Adds Title string below the main image */
|
16
|
+
title?: string
|
17
|
+
}
|
18
|
+
|
19
|
+
const useStyles = makeStyles<Theme>(styles, {
|
20
|
+
name: 'PicassoEmptyStatePage'
|
21
|
+
})
|
22
|
+
|
23
|
+
export const EmptyStatePage = forwardRef<HTMLDivElement, Props>(
|
24
|
+
function EmptyStatePage(props, ref) {
|
25
|
+
const classes = useStyles()
|
26
|
+
const { image, title, children, style, ...rest } = props
|
27
|
+
|
28
|
+
return (
|
29
|
+
<Container
|
30
|
+
{...rest}
|
31
|
+
direction='column'
|
32
|
+
alignItems='center'
|
33
|
+
flex
|
34
|
+
ref={ref}
|
35
|
+
style={style}
|
36
|
+
>
|
37
|
+
<Container
|
38
|
+
alignItems='center'
|
39
|
+
justifyContent='center'
|
40
|
+
bottom='small'
|
41
|
+
flex
|
42
|
+
>
|
43
|
+
{cloneElement(image, { className: classes.image })}
|
44
|
+
</Container>
|
45
|
+
{title && (
|
46
|
+
<Container bottom='xsmall'>
|
47
|
+
<Typography variant='heading' size='medium'>
|
48
|
+
{title}
|
49
|
+
</Typography>
|
50
|
+
</Container>
|
51
|
+
)}
|
52
|
+
<Typography
|
53
|
+
size='small'
|
54
|
+
as={typeof children === 'string' ? 'p' : 'div'}
|
55
|
+
>
|
56
|
+
{children}
|
57
|
+
</Typography>
|
58
|
+
</Container>
|
59
|
+
)
|
60
|
+
}
|
61
|
+
)
|
62
|
+
|
63
|
+
EmptyStatePage.displayName = 'EmptyStatePage'
|
64
|
+
|
65
|
+
export default EmptyStatePage
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './EmptyStatePage'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { EmptyState } from '@toptal/picasso-lab'
|
3
|
+
import { Container, Image } from '@toptal/picasso'
|
4
|
+
|
5
|
+
const DefaultExample = () => (
|
6
|
+
<Container>
|
7
|
+
<EmptyState.Page
|
8
|
+
title='Memorandums page is empty'
|
9
|
+
image={
|
10
|
+
<Image
|
11
|
+
src='./jacqueline-with-flowers-1954-square.jpg'
|
12
|
+
alt='Placeholder image'
|
13
|
+
/>
|
14
|
+
}
|
15
|
+
>
|
16
|
+
No memorandums were added yet
|
17
|
+
</EmptyState.Page>
|
18
|
+
</Container>
|
19
|
+
)
|
20
|
+
|
21
|
+
export default DefaultExample
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { EmptyStatePage } from '../EmptyStatePage'
|
2
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
3
|
+
|
4
|
+
const componentDocs = PicassoBook.createComponentDocs(
|
5
|
+
EmptyStatePage,
|
6
|
+
'EmptyState.Page'
|
7
|
+
)
|
8
|
+
|
9
|
+
const chapter = PicassoBook.connectToPage(page =>
|
10
|
+
page
|
11
|
+
.createChapter('EmptyState.Page')
|
12
|
+
.addExample('EmptyStatePage/story/Default.example.tsx', {
|
13
|
+
id: 'EmptyStatePage',
|
14
|
+
waitUntilImagesLoaded: true
|
15
|
+
})
|
16
|
+
)
|
17
|
+
|
18
|
+
export default {
|
19
|
+
componentDocs,
|
20
|
+
chapter
|
21
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import React, { forwardRef } from 'react'
|
2
|
+
import { makeStyles, Theme } from '@material-ui/core/styles'
|
3
|
+
import { BaseProps } from '@toptal/picasso-shared'
|
4
|
+
import cx from 'classnames'
|
5
|
+
|
6
|
+
import NoteTitle from '../NoteTitle'
|
7
|
+
import NoteSubtitle from '../NoteSubtitle'
|
8
|
+
import NoteContent from '../NoteContent'
|
9
|
+
import styles from './styles'
|
10
|
+
|
11
|
+
export interface Props extends BaseProps {
|
12
|
+
children: React.ReactNode
|
13
|
+
}
|
14
|
+
|
15
|
+
const useStyles = makeStyles<Theme>(styles)
|
16
|
+
|
17
|
+
export const Note = forwardRef<HTMLDivElement, Props>(function Note(
|
18
|
+
{ children, className, ...rest },
|
19
|
+
ref
|
20
|
+
) {
|
21
|
+
const classes = useStyles()
|
22
|
+
|
23
|
+
return (
|
24
|
+
<div ref={ref} className={cx(classes.root, className)} {...rest}>
|
25
|
+
{children}
|
26
|
+
</div>
|
27
|
+
)
|
28
|
+
})
|
29
|
+
|
30
|
+
Note.displayName = 'Note'
|
31
|
+
|
32
|
+
export default Object.assign(Note, {
|
33
|
+
Title: NoteTitle,
|
34
|
+
Subtitle: NoteSubtitle,
|
35
|
+
Content: NoteContent
|
36
|
+
})
|
@@ -0,0 +1,37 @@
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
+
|
3
|
+
exports[`Note renders 1`] = `
|
4
|
+
<div>
|
5
|
+
<div
|
6
|
+
class="Picasso-root"
|
7
|
+
>
|
8
|
+
<div
|
9
|
+
class="makeStyles-root"
|
10
|
+
>
|
11
|
+
<div
|
12
|
+
class="makeStyles-root"
|
13
|
+
>
|
14
|
+
<h4
|
15
|
+
class="MuiTypography-root MuiTypography-h4"
|
16
|
+
>
|
17
|
+
Title
|
18
|
+
</h4>
|
19
|
+
</div>
|
20
|
+
<div
|
21
|
+
class="PicassoContainer-bottomsmallMargin"
|
22
|
+
>
|
23
|
+
<p
|
24
|
+
class="MuiTypography-root PicassoTypography-bodySmall PicassoTypography-darkGrey MuiTypography-body1"
|
25
|
+
>
|
26
|
+
Subtitle
|
27
|
+
</p>
|
28
|
+
</div>
|
29
|
+
<p
|
30
|
+
class="MuiTypography-root PicassoTypography-bodyMedium PicassoTypography-black MuiTypography-body1"
|
31
|
+
>
|
32
|
+
Content
|
33
|
+
</p>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
`;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Note } from '@toptal/picasso-lab'
|
3
|
+
|
4
|
+
const Example = () => (
|
5
|
+
<Note>
|
6
|
+
<Note.Title>Awesome title</Note.Title>
|
7
|
+
<Note.Subtitle>added on November 14, 2019 at 3:46</Note.Subtitle>
|
8
|
+
<Note.Content>
|
9
|
+
This is a dummy content comment used for example purpouses
|
10
|
+
</Note.Content>
|
11
|
+
</Note>
|
12
|
+
)
|
13
|
+
|
14
|
+
export default Example
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
2
|
+
import noteTitleStory from '../../NoteTitle/story'
|
3
|
+
import noteSubtitleStory from '../../NoteSubtitle/story'
|
4
|
+
import noteContentStory from '../../NoteContent/story'
|
5
|
+
import { Note } from '../Note'
|
6
|
+
|
7
|
+
const page = PicassoBook.section('Picasso Lab').createPage(
|
8
|
+
'Note',
|
9
|
+
`
|
10
|
+
${PicassoBook.createBaseDocsLink(
|
11
|
+
'https://app.abstract.com/projects/1b06c884-06af-482a-bf12-a82f521a19a1/branches/master/commits/cd38a6cc5bf8f8b535b142fb9a2c9578c641dd82/files/96635516-c961-460f-988e-7ca2f565a7ec/layers/3B863FAB-C94C-4EE2-8061-FBFAB45778AE?mode=design&present=true&selected=root-699B47BF-FAEA-4D18-8474-A2EB3EA863B2'
|
12
|
+
)}
|
13
|
+
`
|
14
|
+
)
|
15
|
+
|
16
|
+
page
|
17
|
+
.createTabChapter('Props')
|
18
|
+
.addComponentDocs({ component: Note, name: 'Note' })
|
19
|
+
.addComponentDocs(noteTitleStory.componentDocs)
|
20
|
+
.addComponentDocs(noteSubtitleStory.componentDocs)
|
21
|
+
.addComponentDocs(noteContentStory.componentDocs)
|
22
|
+
|
23
|
+
page.createChapter().addExample('Note/story/Default.example.tsx', 'Default') // picasso-skip-visuals
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { Theme, createStyles } from '@material-ui/core/styles'
|
2
|
+
|
3
|
+
const barWidth = 4
|
4
|
+
|
5
|
+
export default ({ palette, sizes, spacing }: Theme) =>
|
6
|
+
createStyles({
|
7
|
+
root: {
|
8
|
+
borderRadius: sizes.borderRadius.medium,
|
9
|
+
border: `1px solid ${palette.grey.lighter2}`,
|
10
|
+
padding: `${spacing(3)}px ${spacing(3)}px ${spacing(3)}px ${
|
11
|
+
spacing(3) + barWidth
|
12
|
+
}px`,
|
13
|
+
position: 'relative',
|
14
|
+
overflow: 'hidden',
|
15
|
+
backgroundColor: palette.common.white,
|
16
|
+
'&:before': {
|
17
|
+
background: palette.yellow.main,
|
18
|
+
display: 'block',
|
19
|
+
height: '100%',
|
20
|
+
left: 0,
|
21
|
+
position: 'absolute',
|
22
|
+
content: '""',
|
23
|
+
top: 0,
|
24
|
+
width: barWidth
|
25
|
+
}
|
26
|
+
}
|
27
|
+
})
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { render } from '@toptal/picasso/test-utils'
|
3
|
+
|
4
|
+
import Note from './Note'
|
5
|
+
|
6
|
+
const renderNote = () => {
|
7
|
+
return render(
|
8
|
+
<Note>
|
9
|
+
<Note.Title>Title</Note.Title>
|
10
|
+
<Note.Subtitle>Subtitle</Note.Subtitle>
|
11
|
+
<Note.Content>Content</Note.Content>
|
12
|
+
</Note>
|
13
|
+
)
|
14
|
+
}
|
15
|
+
|
16
|
+
describe('Note', () => {
|
17
|
+
it('renders', () => {
|
18
|
+
const { container } = renderNote()
|
19
|
+
|
20
|
+
expect(container).toMatchSnapshot()
|
21
|
+
})
|
22
|
+
})
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import React, { forwardRef, ReactNode } from 'react'
|
2
|
+
import { BaseProps } from '@toptal/picasso-shared'
|
3
|
+
import { Typography } from '@toptal/picasso'
|
4
|
+
|
5
|
+
export interface Props extends BaseProps {
|
6
|
+
children: ReactNode
|
7
|
+
}
|
8
|
+
|
9
|
+
export const NoteContent = forwardRef<HTMLDivElement, Props>(
|
10
|
+
function NoteContent({ children, ...rest }, ref) {
|
11
|
+
return (
|
12
|
+
<Typography ref={ref} as='p' size='medium' color='black' {...rest}>
|
13
|
+
{children}
|
14
|
+
</Typography>
|
15
|
+
)
|
16
|
+
}
|
17
|
+
)
|
18
|
+
|
19
|
+
NoteContent.defaultProps = {}
|
20
|
+
|
21
|
+
NoteContent.displayName = 'NoteContent'
|
22
|
+
|
23
|
+
export default NoteContent
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './NoteContent'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
2
|
+
import { NoteContent } from '../NoteContent'
|
3
|
+
|
4
|
+
const componentDocs = PicassoBook.createComponentDocs(
|
5
|
+
NoteContent,
|
6
|
+
'Note.Content',
|
7
|
+
'Note content'
|
8
|
+
)
|
9
|
+
|
10
|
+
export default {
|
11
|
+
componentDocs
|
12
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React, { forwardRef, ReactNode } from 'react'
|
2
|
+
import { BaseProps } from '@toptal/picasso-shared'
|
3
|
+
import { Container, Typography } from '@toptal/picasso'
|
4
|
+
|
5
|
+
export interface Props extends BaseProps {
|
6
|
+
children: ReactNode
|
7
|
+
}
|
8
|
+
|
9
|
+
export const NoteSubtitle = forwardRef<HTMLDivElement, Props>(
|
10
|
+
function NoteSubtitle({ children, ...rest }, ref) {
|
11
|
+
return (
|
12
|
+
<Container ref={ref} bottom='small' {...rest}>
|
13
|
+
<Typography color='dark-grey' size='small'>
|
14
|
+
{children}
|
15
|
+
</Typography>
|
16
|
+
</Container>
|
17
|
+
)
|
18
|
+
}
|
19
|
+
)
|
20
|
+
|
21
|
+
NoteSubtitle.defaultProps = {}
|
22
|
+
|
23
|
+
NoteSubtitle.displayName = 'NoteSubtitle'
|
24
|
+
|
25
|
+
export default NoteSubtitle
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './NoteSubtitle'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
2
|
+
import { NoteSubtitle } from '../NoteSubtitle'
|
3
|
+
|
4
|
+
const componentDocs = PicassoBook.createComponentDocs(
|
5
|
+
NoteSubtitle,
|
6
|
+
'Note.Subtitle',
|
7
|
+
'Note subtitle'
|
8
|
+
)
|
9
|
+
|
10
|
+
export default {
|
11
|
+
componentDocs
|
12
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import React, { forwardRef } from 'react'
|
2
|
+
import { makeStyles, Theme } from '@material-ui/core/styles'
|
3
|
+
import { BaseProps } from '@toptal/picasso-shared'
|
4
|
+
import cx from 'classnames'
|
5
|
+
import { Typography } from '@toptal/picasso'
|
6
|
+
|
7
|
+
import styles from './styles'
|
8
|
+
|
9
|
+
export interface Props extends BaseProps {
|
10
|
+
children: React.ReactNode
|
11
|
+
}
|
12
|
+
|
13
|
+
const useStyles = makeStyles<Theme>(styles)
|
14
|
+
|
15
|
+
export const NoteTitle = forwardRef<HTMLDivElement, Props>(function NoteTitle(
|
16
|
+
{ children, className, ...rest },
|
17
|
+
ref
|
18
|
+
) {
|
19
|
+
const classes = useStyles()
|
20
|
+
|
21
|
+
return (
|
22
|
+
<div ref={ref} className={cx(classes.root, className)} {...rest}>
|
23
|
+
<Typography variant='heading' size='small'>
|
24
|
+
{children}
|
25
|
+
</Typography>
|
26
|
+
</div>
|
27
|
+
)
|
28
|
+
})
|
29
|
+
|
30
|
+
NoteTitle.defaultProps = {}
|
31
|
+
|
32
|
+
NoteTitle.displayName = 'NoteTitle'
|
33
|
+
|
34
|
+
export default NoteTitle
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './NoteTitle'
|
@@ -0,0 +1,125 @@
|
|
1
|
+
import React, {
|
2
|
+
forwardRef,
|
3
|
+
ElementType,
|
4
|
+
HTMLAttributes,
|
5
|
+
MouseEvent,
|
6
|
+
ReactNode
|
7
|
+
} from 'react'
|
8
|
+
import { Theme, makeStyles } from '@material-ui/core/styles'
|
9
|
+
import cx from 'classnames'
|
10
|
+
import {
|
11
|
+
OverridableComponent,
|
12
|
+
ColorType,
|
13
|
+
BaseProps,
|
14
|
+
TextLabelProps,
|
15
|
+
useTitleCase
|
16
|
+
} from '@toptal/picasso-shared'
|
17
|
+
import { Container, Typography } from '@toptal/picasso'
|
18
|
+
import { toTitleCase } from '@toptal/picasso/utils'
|
19
|
+
|
20
|
+
import styles from './styles'
|
21
|
+
import { useOverviewBlockGroupContext } from '../OverviewBlockGroup/OverviewBlockGroupContext'
|
22
|
+
import OverviewBlockGroup from '../OverviewBlockGroup'
|
23
|
+
import OverviewBlockRow from '../OverviewBlockRow'
|
24
|
+
|
25
|
+
type VariantColorType = Extract<ColorType, 'red' | 'green' | 'yellow'>
|
26
|
+
|
27
|
+
type Variant = `value-${VariantColorType}` | `label-${VariantColorType}`
|
28
|
+
|
29
|
+
type ColorSchema = {
|
30
|
+
value: ColorType
|
31
|
+
label: ColorType
|
32
|
+
}
|
33
|
+
|
34
|
+
export type Props = BaseProps &
|
35
|
+
TextLabelProps &
|
36
|
+
HTMLAttributes<HTMLButtonElement> & {
|
37
|
+
/** Counter value */
|
38
|
+
value: ReactNode
|
39
|
+
/** Counter title */
|
40
|
+
label: string
|
41
|
+
/** The color variant */
|
42
|
+
variant?: Variant
|
43
|
+
/** Component used for the root node. Either a string to use a DOM element or a component. */
|
44
|
+
as?: ElementType
|
45
|
+
/** Callback invoked when component is clicked */
|
46
|
+
onClick?: (event: MouseEvent) => void
|
47
|
+
}
|
48
|
+
|
49
|
+
const useStyles = makeStyles<Theme>(styles, {
|
50
|
+
name: 'PicassoOverviewBlock'
|
51
|
+
})
|
52
|
+
|
53
|
+
export const OverviewBlock: OverridableComponent<Props> = forwardRef<
|
54
|
+
HTMLButtonElement,
|
55
|
+
Props
|
56
|
+
>(function OverviewBlock(props, ref) {
|
57
|
+
const {
|
58
|
+
value,
|
59
|
+
label,
|
60
|
+
variant,
|
61
|
+
as,
|
62
|
+
className,
|
63
|
+
onClick,
|
64
|
+
titleCase: propsTitleCase,
|
65
|
+
...rest
|
66
|
+
} = props
|
67
|
+
const classes = useStyles()
|
68
|
+
const { align, blockWidth } = useOverviewBlockGroupContext()
|
69
|
+
|
70
|
+
const color: ColorSchema = {
|
71
|
+
value: 'black',
|
72
|
+
label: 'dark-grey'
|
73
|
+
}
|
74
|
+
|
75
|
+
if (variant) {
|
76
|
+
const [partName, colorName] = variant.split('-') as [
|
77
|
+
keyof ColorSchema,
|
78
|
+
ColorType
|
79
|
+
]
|
80
|
+
|
81
|
+
color[partName] = colorName
|
82
|
+
}
|
83
|
+
|
84
|
+
const isClickable = Boolean(onClick) || typeof as !== 'string'
|
85
|
+
|
86
|
+
const Component = isClickable && as ? as : 'div'
|
87
|
+
|
88
|
+
const titleCase = useTitleCase(propsTitleCase)
|
89
|
+
|
90
|
+
return (
|
91
|
+
<Component
|
92
|
+
{...rest}
|
93
|
+
ref={ref}
|
94
|
+
className={cx(
|
95
|
+
{ [classes.clickable]: isClickable },
|
96
|
+
{ [classes.disableOutline]: !isClickable },
|
97
|
+
classes[`${align}Align`],
|
98
|
+
classes[`${blockWidth}Width`],
|
99
|
+
classes.root,
|
100
|
+
className
|
101
|
+
)}
|
102
|
+
onClick={onClick}
|
103
|
+
>
|
104
|
+
<Container align='left'>
|
105
|
+
<Typography size='xsmall' weight='semibold' color={color.label}>
|
106
|
+
{titleCase ? toTitleCase(label) : label}
|
107
|
+
</Typography>
|
108
|
+
<Typography size='large' weight='semibold' color={color.value}>
|
109
|
+
{value}
|
110
|
+
</Typography>
|
111
|
+
</Container>
|
112
|
+
</Component>
|
113
|
+
)
|
114
|
+
})
|
115
|
+
|
116
|
+
OverviewBlock.defaultProps = {
|
117
|
+
as: 'button'
|
118
|
+
}
|
119
|
+
|
120
|
+
OverviewBlock.displayName = 'OverviewBlock'
|
121
|
+
|
122
|
+
export default Object.assign(OverviewBlock, {
|
123
|
+
Group: OverviewBlockGroup,
|
124
|
+
Row: OverviewBlockRow
|
125
|
+
})
|