@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,29 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { TypographyOverflow } from '@toptal/picasso-lab'
|
3
|
+
import { Container } from '@toptal/picasso'
|
4
|
+
|
5
|
+
const Example = () => {
|
6
|
+
return (
|
7
|
+
<Container flex>
|
8
|
+
<div style={{ width: 300, marginTop: 100 }}>
|
9
|
+
<TypographyOverflow data-testid='default-delay-tooltip'>
|
10
|
+
Default delay. This typography is very long and therefore it
|
11
|
+
overflows.
|
12
|
+
</TypographyOverflow>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<Container left='large'>
|
16
|
+
<div style={{ width: 300, marginTop: 100 }}>
|
17
|
+
<TypographyOverflow
|
18
|
+
tooltipDelay='long'
|
19
|
+
data-testid='long-delay-tooltip'
|
20
|
+
>
|
21
|
+
Long delay. This typography is very long and therefore it overflows.
|
22
|
+
</TypographyOverflow>
|
23
|
+
</div>
|
24
|
+
</Container>
|
25
|
+
</Container>
|
26
|
+
)
|
27
|
+
}
|
28
|
+
|
29
|
+
export default Example
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Checkbox, Radio, Grid } from '@toptal/picasso'
|
3
|
+
import { TypographyOverflow } from '@toptal/picasso-lab'
|
4
|
+
|
5
|
+
const checkboxOptions = [
|
6
|
+
{ label: 'Inbound sales', value: 'inbound_sales' },
|
7
|
+
{ label: 'Legal', value: 'legal' },
|
8
|
+
{
|
9
|
+
label: 'VIP talent screening',
|
10
|
+
value: 'vip_talent_screening'
|
11
|
+
},
|
12
|
+
{ label: 'English screening', value: 'engish_screening' },
|
13
|
+
{ label: 'Designer screening', value: 'designer_screening' },
|
14
|
+
{
|
15
|
+
label: 'Technical screening',
|
16
|
+
value: 'technical_screening'
|
17
|
+
}
|
18
|
+
]
|
19
|
+
|
20
|
+
const radioOptions = [
|
21
|
+
{ label: 'Recruiting', value: 'recruiting' },
|
22
|
+
{ label: 'Customer service', value: 'customer_service' },
|
23
|
+
{ label: 'Staff', value: 'staff' },
|
24
|
+
{
|
25
|
+
label: 'Accounts receivable',
|
26
|
+
value: 'accounts_receivable'
|
27
|
+
},
|
28
|
+
{ label: 'Accounts payable', value: 'accounts_payable' },
|
29
|
+
{ label: 'Sourcing', value: 'sourcing' }
|
30
|
+
]
|
31
|
+
|
32
|
+
const Example = () => {
|
33
|
+
return (
|
34
|
+
<div style={{ width: '660px' }}>
|
35
|
+
<Grid spacing={16}>
|
36
|
+
<Grid.Item small={12}>
|
37
|
+
<Grid>
|
38
|
+
{checkboxOptions.map(({ label: optionLabel, value }) => (
|
39
|
+
<Grid.Item key={value} small={2} large={2}>
|
40
|
+
<Checkbox
|
41
|
+
label={<TypographyOverflow>{optionLabel}</TypographyOverflow>}
|
42
|
+
value={value}
|
43
|
+
/>
|
44
|
+
</Grid.Item>
|
45
|
+
))}
|
46
|
+
</Grid>
|
47
|
+
|
48
|
+
<Grid>
|
49
|
+
{radioOptions.map(({ label: optionLabel, value }) => (
|
50
|
+
<Grid.Item key={value} small={2} large={2}>
|
51
|
+
<Radio
|
52
|
+
label={<TypographyOverflow>{optionLabel}</TypographyOverflow>}
|
53
|
+
value={value}
|
54
|
+
/>
|
55
|
+
</Grid.Item>
|
56
|
+
))}
|
57
|
+
</Grid>
|
58
|
+
</Grid.Item>
|
59
|
+
</Grid>
|
60
|
+
</div>
|
61
|
+
)
|
62
|
+
}
|
63
|
+
|
64
|
+
export default Example
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { TypographyOverflow } from '@toptal/picasso-lab'
|
3
|
+
import styled from 'styled-components'
|
4
|
+
import { Container } from '@toptal/picasso'
|
5
|
+
|
6
|
+
const DynamicWidthContainer = styled(Container)`
|
7
|
+
margin-top: 1rem;
|
8
|
+
width: 300px;
|
9
|
+
padding-right: 20px;
|
10
|
+
resize: horizontal;
|
11
|
+
overflow: auto;
|
12
|
+
border-right: 3px solid black;
|
13
|
+
`
|
14
|
+
|
15
|
+
const Example = () => {
|
16
|
+
return (
|
17
|
+
<>
|
18
|
+
<DynamicWidthContainer style={{ marginTop: 150 }}>
|
19
|
+
<TypographyOverflow
|
20
|
+
lines={2}
|
21
|
+
as='p'
|
22
|
+
tooltipVariant='light'
|
23
|
+
data-testid='ellipsed-text-lines2'
|
24
|
+
>
|
25
|
+
Two lines typography with a very long text and{' '}
|
26
|
+
<a href='#'>two words link</a> and dynamic width. Try to resize.
|
27
|
+
</TypographyOverflow>
|
28
|
+
</DynamicWidthContainer>
|
29
|
+
<DynamicWidthContainer>
|
30
|
+
<TypographyOverflow
|
31
|
+
lines={3}
|
32
|
+
as='p'
|
33
|
+
tooltipVariant='light'
|
34
|
+
data-testid='ellipsed-text-lines3'
|
35
|
+
>
|
36
|
+
Three lines typography with a very long text and a very long text and{' '}
|
37
|
+
a very long text and <a href='#'>two words link</a> and dynamic width.
|
38
|
+
Try to resize.
|
39
|
+
</TypographyOverflow>
|
40
|
+
</DynamicWidthContainer>
|
41
|
+
<DynamicWidthContainer>
|
42
|
+
<TypographyOverflow
|
43
|
+
lines={4}
|
44
|
+
as='p'
|
45
|
+
tooltipVariant='light'
|
46
|
+
data-testid='ellipsed-text-lines4'
|
47
|
+
>
|
48
|
+
<https://longlong.longlong.html/very/long/html/link/very/long/html/link/>
|
49
|
+
Four lines typography with a very long text and a very long text and a
|
50
|
+
very long text and a very long text and a very long text and a very
|
51
|
+
long text and a very long text and <a href='#'>two words link</a> and
|
52
|
+
dynamic width. Try to resize.
|
53
|
+
</TypographyOverflow>
|
54
|
+
</DynamicWidthContainer>
|
55
|
+
</>
|
56
|
+
)
|
57
|
+
}
|
58
|
+
|
59
|
+
export default Example
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { TypographyOverflow } from '@toptal/picasso-lab'
|
3
|
+
|
4
|
+
const Example = () => {
|
5
|
+
return (
|
6
|
+
<div style={{ width: 300, marginTop: 100 }}>
|
7
|
+
<TypographyOverflow
|
8
|
+
data-testid='ellipsed-text-dark'
|
9
|
+
tooltipVariant='dark'
|
10
|
+
>
|
11
|
+
Dark tooltip. This typography is very long and therefore it overflows.
|
12
|
+
</TypographyOverflow>
|
13
|
+
<TypographyOverflow
|
14
|
+
data-testid='ellipsed-text-light'
|
15
|
+
tooltipVariant='light'
|
16
|
+
>
|
17
|
+
Light tooltip. This typography is very long and therefore it overflows.
|
18
|
+
</TypographyOverflow>
|
19
|
+
</div>
|
20
|
+
)
|
21
|
+
}
|
22
|
+
|
23
|
+
export default Example
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { TypographyOverflow } from '../TypographyOverflow'
|
2
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
3
|
+
|
4
|
+
const page = PicassoBook.section('Picasso Lab').createPage(
|
5
|
+
'TypographyOverflow',
|
6
|
+
'Show tooltip when typography overflows'
|
7
|
+
)
|
8
|
+
|
9
|
+
page.createTabChapter('Props').addComponentDocs({
|
10
|
+
component: TypographyOverflow,
|
11
|
+
name: 'TypographyOverflow'
|
12
|
+
})
|
13
|
+
|
14
|
+
page
|
15
|
+
.createChapter()
|
16
|
+
.addExample('TypographyOverflow/story/Default.example.tsx', {
|
17
|
+
title: 'Default',
|
18
|
+
effect: async (testPage, makeScreenshot) => {
|
19
|
+
await testPage.hover('[data-testid="ellipsed-text"]')
|
20
|
+
await testPage.waitFor(200)
|
21
|
+
await makeScreenshot()
|
22
|
+
|
23
|
+
await testPage.hover('[data-testid="ellipsed-text-dynamic-width"]')
|
24
|
+
await testPage.waitFor(200)
|
25
|
+
await makeScreenshot()
|
26
|
+
}
|
27
|
+
})
|
28
|
+
.addExample('TypographyOverflow/story/Multiline.example.tsx', {
|
29
|
+
title: 'Multiline',
|
30
|
+
effect: async (testPage, makeScreenshot) => {
|
31
|
+
await testPage.hover('[data-testid="ellipsed-text-lines2"]')
|
32
|
+
await testPage.waitFor(200)
|
33
|
+
await makeScreenshot()
|
34
|
+
|
35
|
+
await testPage.hover('[data-testid="ellipsed-text-lines3"]')
|
36
|
+
await testPage.waitFor(200)
|
37
|
+
await makeScreenshot()
|
38
|
+
|
39
|
+
await testPage.hover('[data-testid="ellipsed-text-lines4"]')
|
40
|
+
await testPage.waitFor(200)
|
41
|
+
await makeScreenshot()
|
42
|
+
}
|
43
|
+
})
|
44
|
+
.addExample('TypographyOverflow/story/CheckboxLabel.example.tsx', {
|
45
|
+
title: 'Checkbox label',
|
46
|
+
effect: async (testPage, makeScreenshot) => {
|
47
|
+
await testPage.hover('[data-testid="ellipsed-text"]')
|
48
|
+
await testPage.waitFor(600)
|
49
|
+
await makeScreenshot()
|
50
|
+
}
|
51
|
+
})
|
52
|
+
.addExample('TypographyOverflow/story/CustomTooltip.example.tsx', {
|
53
|
+
title: 'Custom tooltip content',
|
54
|
+
effect: async (testPage, makeScreenshot) => {
|
55
|
+
await testPage.hover('[data-testid="ellipsed-text"]')
|
56
|
+
await testPage.waitFor(200)
|
57
|
+
await makeScreenshot()
|
58
|
+
}
|
59
|
+
})
|
60
|
+
.addExample('TypographyOverflow/story/TooltipVariants.example.tsx', {
|
61
|
+
title: 'Light tooltip background',
|
62
|
+
effect: async (testPage, makeScreenshot) => {
|
63
|
+
await testPage.hover('[data-testid="ellipsed-text-dark"]')
|
64
|
+
await testPage.waitFor(200)
|
65
|
+
await makeScreenshot()
|
66
|
+
|
67
|
+
await testPage.hover('[data-testid="ellipsed-text-light"]')
|
68
|
+
await testPage.waitFor(200)
|
69
|
+
await makeScreenshot()
|
70
|
+
}
|
71
|
+
})
|
72
|
+
.addExample('TypographyOverflow/story/Delay.example.tsx', {
|
73
|
+
title: 'Delay',
|
74
|
+
effect: async (testPage, makeScreenshot) => {
|
75
|
+
await testPage.hover('[data-testid="default-delay-tooltip"]')
|
76
|
+
await testPage.waitFor(200)
|
77
|
+
await makeScreenshot()
|
78
|
+
|
79
|
+
await testPage.hover('[data-testid="long-delay-tooltip"]')
|
80
|
+
await testPage.waitFor(500)
|
81
|
+
await makeScreenshot()
|
82
|
+
}
|
83
|
+
})
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles'
|
2
|
+
|
3
|
+
export default () =>
|
4
|
+
createStyles({
|
5
|
+
singleLine: {
|
6
|
+
display: 'block',
|
7
|
+
whiteSpace: 'nowrap'
|
8
|
+
},
|
9
|
+
multiLine: {
|
10
|
+
display: '-webkit-box',
|
11
|
+
whiteSpace: 'initial',
|
12
|
+
wordBreak: 'break-word'
|
13
|
+
},
|
14
|
+
wrapper: {
|
15
|
+
'-webkit-box-orient': 'vertical',
|
16
|
+
overflow: 'hidden',
|
17
|
+
textOverflow: 'ellipsis',
|
18
|
+
/**
|
19
|
+
* Workaround for `textOverflow: ellipsis`.
|
20
|
+
* Browser can show ellipsis at the end, even if it's not required -
|
21
|
+
* it's possible if the text has the very same width as the container
|
22
|
+
* (ellipsis width will be the same as the width of the text hidden by these ellipsis).
|
23
|
+
* It could be also affected by the font itself, when it has wider render bouncing borders.
|
24
|
+
* So to be sure, that text container in slightly wider than parent,
|
25
|
+
* we have to to add some super-minor space at the end.
|
26
|
+
*/
|
27
|
+
paddingRight: '0.9px'
|
28
|
+
}
|
29
|
+
})
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { fireEvent, render, waitFor } from '@toptal/picasso/test-utils'
|
3
|
+
|
4
|
+
import TypographyOverflow from '.'
|
5
|
+
|
6
|
+
jest.mock('@toptal/picasso/utils', () => ({
|
7
|
+
...(jest.requireActual('@toptal/picasso/utils') as {}),
|
8
|
+
isOverflown: jest.fn(() => true),
|
9
|
+
isPointerDevice: jest.fn(() => true)
|
10
|
+
}))
|
11
|
+
|
12
|
+
describe('TypographyOverflow', () => {
|
13
|
+
describe('when overflow happened', () => {
|
14
|
+
it('renders tooltip by default', async () => {
|
15
|
+
const { getByTestId, queryByTestId } = render(
|
16
|
+
<TypographyOverflow
|
17
|
+
tooltipContent={<p data-testid='tooltip' />}
|
18
|
+
data-testid='typography'
|
19
|
+
>
|
20
|
+
Just Typography
|
21
|
+
</TypographyOverflow>
|
22
|
+
)
|
23
|
+
|
24
|
+
// no tooltip by default
|
25
|
+
expect(queryByTestId('tooltip')).not.toBeInTheDocument()
|
26
|
+
|
27
|
+
// check tooltip opens
|
28
|
+
// current implementation swaps elements on mouse enter, so another event is needed
|
29
|
+
fireEvent.mouseOver(getByTestId('typography'))
|
30
|
+
fireEvent.mouseOver(getByTestId('typography'))
|
31
|
+
await waitFor(() => {
|
32
|
+
expect(queryByTestId('tooltip')).toBeInTheDocument()
|
33
|
+
})
|
34
|
+
|
35
|
+
// check tooltip hides
|
36
|
+
fireEvent.mouseLeave(getByTestId('typography'))
|
37
|
+
await waitFor(() => {
|
38
|
+
expect(queryByTestId('tooltip')).not.toBeInTheDocument()
|
39
|
+
})
|
40
|
+
})
|
41
|
+
|
42
|
+
it('does not render tooltip if it is disabled', async () => {
|
43
|
+
const { getByTestId, queryByTestId } = render(
|
44
|
+
<TypographyOverflow
|
45
|
+
disableTooltip
|
46
|
+
tooltipContent={<p data-testid='tooltip' />}
|
47
|
+
data-testid='typography'
|
48
|
+
>
|
49
|
+
Just Typography
|
50
|
+
</TypographyOverflow>
|
51
|
+
)
|
52
|
+
|
53
|
+
// check tooltip never opens
|
54
|
+
fireEvent.mouseEnter(getByTestId('typography'))
|
55
|
+
await waitFor(() => {
|
56
|
+
expect(queryByTestId('tooltip')).not.toBeInTheDocument()
|
57
|
+
})
|
58
|
+
})
|
59
|
+
})
|
60
|
+
})
|
package/src/index.ts
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
export { default as Calendar } from './Calendar'
|
2
|
+
export type { DateOrDateRangeType } from './Calendar'
|
3
|
+
export {
|
4
|
+
default as DatePicker,
|
5
|
+
datePickerParseDateString,
|
6
|
+
DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT,
|
7
|
+
DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT
|
8
|
+
} from './DatePicker'
|
9
|
+
export type {
|
10
|
+
DatePickerValue,
|
11
|
+
DatePickerStringParser,
|
12
|
+
DatePickerProps
|
13
|
+
} from './DatePicker'
|
14
|
+
export { default as Drawer } from './Drawer'
|
15
|
+
export type { DrawerProps } from './Drawer'
|
16
|
+
export { default as Dropzone, ErrorCode as DropzoneErrorCode } from './Dropzone'
|
17
|
+
export type {
|
18
|
+
DropzoneProps,
|
19
|
+
FileUpload as DropzoneFileUpload,
|
20
|
+
FileError as DropzoneFileError,
|
21
|
+
FileRejection as DropzoneFileRejection,
|
22
|
+
DropEvent as DropzoneDropEvent
|
23
|
+
} from './Dropzone'
|
24
|
+
export { default as OverviewBlock } from './OverviewBlock'
|
25
|
+
export type { OverviewBlockProps } from './OverviewBlock'
|
26
|
+
export { default as TypographyOverflow } from './TypographyOverflow'
|
27
|
+
export type { TypographyOverflowProps } from './TypographyOverflow'
|
28
|
+
export { default as EmptyState } from './EmptyState'
|
29
|
+
export { default as Section } from './Section'
|
30
|
+
export type { SectionProps } from './Section'
|
31
|
+
export { default as Note } from './Note'
|
32
|
+
export type { NoteProps } from './Note'
|
33
|
+
export { default as Timeline } from './Timeline'
|
34
|
+
export type { TimelineProps } from './Timeline'
|
35
|
+
// hygen code generator inserts export statements above this comment.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { doc } from 'storybook-readme'
|
2
|
+
|
3
|
+
import PicassoBook from '~/.storybook/components/PicassoBook'
|
4
|
+
import README from '../../README.md'
|
5
|
+
import CHANGELOG from '../../CHANGELOG.md'
|
6
|
+
|
7
|
+
const section = PicassoBook.section('Picasso Lab')
|
8
|
+
|
9
|
+
section.createDocPage('README', doc(README), { alwaysOnTop: true })
|
10
|
+
section.createDocPage('CHANGELOG', doc(CHANGELOG), { alwaysOnTop: true })
|