Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add left, right, top, bottom anchors to side-sheet #252

Merged
merged 7 commits into from
Aug 21, 2018
Merged

add left, right, top, bottom anchors to side-sheet #252

merged 7 commits into from
Aug 21, 2018

Conversation

bmcmahen
Copy link
Contributor

@bmcmahen bmcmahen commented Jul 24, 2018

a quick pr for #252 . Managing all of the different styles for the different anchors is a bit ugly and there's probably a better way of going about it. I've added the "top" and "bottom" anchor position because it's sometimes useful and is often included with other "drawer" components (like material design). For these views the "close" button feels a bit odd, though.

I also wonder if it might be nice to have an option to remove the close button.

Another thing is that the width prop only really makes a different for the left and right anchored sheets. If we want to keep the top and bottom anchored sheets it might be useful to add a height prop.

Quick gif:

side-sheet

@mshwery
Copy link
Contributor

mshwery commented Jul 24, 2018

Thanks for the PR @bmcmahen ! This is looking pretty great!

@jeroenransijn
Copy link
Contributor

Thanks @bmcmahen for working on Evergreen and building out this feature! Looking great so far 👍 I left some thoughts to start a discussion on some API design choices as well as implementation.

API Design

I see you are using the same anchor API as material-ui. I am wondering if we should use position instead to be inline with our Popover and potentially implement a subset of the Position enum:

// Using `Position` enum.
<SideSheet position={Position.TOP} />
<SideSheet position={Position.BOTTOM} />
<SideSheet position={Position.RIGHT} />
<SideSheet position={Position.LEFT} />

// Hardcoded values.
<SideSheet position="top" />
<SideSheet position="bottom" />
<SideSheet position="right" />
<SideSheet position="left" />

static propTypes = {
   position: PropTypes.oneOf(['top', 'right', 'bottom', 'left'])

   // Or using the Position enum:
   position: PropTypes.oneOf([Position.TOP, Position.RIGHT, Position.BOTTOM, Position.LEFT])
}

We can also use the enum for the keys of the style objects:

const sheetCloseStyle = {
   [Position.TOP]: {},
   [Position.RIGHT]: {},
   [Position.BOTTOM]: {},
   [Position.LEFT]: {},
}

Styles

We might want to consider moving some of the styles and style helper methods in ./sheetCloseStyles.js and ./sideSheetStyles.js.

Pre-mature optimizations

One of the slowest part in glamor and any CSS-in-JS library is the hashing function. Although we are not doing anything currently to improve this, now we are touching this thing again it might be worth thinking about.

The following piece alls glamor every time:

className={sheetCloseClassName(anchor).toString()}

... although glamor has it's own cache it still needs to hash the object being passed to it. Since we know the class name is only based on a single argument, we could write our own memoized function:

const sheetCloseClassNameCache = {}
const getSheetCloseClassName = position => {
   if (!sheetCloseClassNameCache[position]) {
      sheetCloseClassNameCache[position] = sheetCloseClassName(anchor).toString()
   }
   return sheetCloseClassNameCache[position]
}

This smells of premature optimizations, but I thought its' worth bringing up in this thread.

Conclusion

@mshwery and @bmcmahen what are you thoughts on using the Position enum and position prop API? And wether we want people to simply use a string literal instead of importing an enum when using the component: <SideSheet position="top" /> instead of <SideSheet position={Position.TOP} />.

The other points I don't see so much as a blocker, more a discussion starter.

All in all, awesome work @bmcmahen — we really appreciate all the effort!

Copy link
Contributor

@jeroenransijn jeroenransijn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my comment.

@mshwery
Copy link
Contributor

mshwery commented Jul 24, 2018

I think it's reasonable to use preexisting property names and semantics (i.e. position and the Position enum).

@bmcmahen
Copy link
Contributor Author

I'm definitely in favour of using consistent property names and behaviour so have no real issues with using position and the Position enum. In fact, using an enum is pretty cool -- haven't seen that used in much javascript code besides, maybe, redux... but it's obviously powerful in other languages like swift and ocaml. The only downside is that, frankly, it's just easier to write:

position='left'

compared to

import { Positions } from 'evergreen'
position={Positions.left}

It's basically less verbose. But editors are increasingly good at auto-importing / autocomplete, so it's probably not much of an issue.

I was wondering how expensive the glamor call was. Either memoizing or simply creating the 4 distinct classNames outside of the render function is easy enough.

Some of the styles can go in a distinct file. I've noticed that you do this elsewhere in the project, too, so it makes sense to be consistent. I don't really mind either way. I kinda like having styles for a component contained within the component file, but it is a tad messy right now...

Anyway, happy to implement these changes! Just give me the go-ahead. And hopefully I'll have more PRs as I continue to work with the library. I appreciate all of the awesome work you folks are doing!

@mshwery
Copy link
Contributor

mshwery commented Jul 24, 2018

@bmcmahen fwiw using something like Position.BOTTOM is completely opt-in. The result is the same as position="bottom" (they are just strings).

Anyway, happy to implement these changes! Just give me the go-ahead. And hopefully I'll have more PRs as I continue to work with the library.

Keep 'em coming!

@bmcmahen
Copy link
Contributor Author

fwiw using something like Position.BOTTOM is completely opt-in.

Ahh, haha... Okay, disregard that comment entirely then. A big plus to using position with either hardcoded or enum values, then.

@bmcmahen
Copy link
Contributor Author

I've noticed that the current Position enum doesn't have a LEFT or RIGHT value. This can be added easily enough, but it will necessitate some changes elsewhere in the code. Notably Popover currently uses Object.keys(Position) for determining propTypes and currently doesn't support LEFT or RIGHT values. If we make these alterations all of these components are only using a subset of the enum options.

Another thing - since the string value of Position.LEFT is LEFT only the uppercase variant of the string prop will be supported.

Potential solutions:

  • Add LEFT and RIGHT values to the enum.
  • Remove instances of Object.keys(Position) and only use a subset of Position where it's supported.
  • Require that the user either uses the enum or the uppercase variant of the string.

Another solution:
...just use hardcoded values. Hehe...

@jeroenransijn
Copy link
Contributor

jeroenransijn commented Jul 25, 2018

@bmcmahen if they are currently implemented uppercase, we can change that to lower case. I think that is the best solution right now. Yeah Object.keys won't be possible anymore 👍

Feel free to go-ahead with the proposed changes. I would avoid generating all the classes until they are necessary. If you are not using position="left" — we don't need to have that class name defined.

@bmcmahen
Copy link
Contributor Author

Position enum is now being used and I've added a simple function to cache the SheetClose className generation. 👍

@jeroenransijn
Copy link
Contributor

@bmcmahen this is looking awesome! I am going to ask you for one last favor 🤞 It would be really nice if we can move Position.js inside of ./src/constants/src/Position.js and update all imports that import it in Evergreen:

// Current.
import { Position } from '../../positioner'

// New.
import { Position } from '../../constants'

@jeroenransijn
Copy link
Contributor

I am a little surprised why circle is failing since I don't see any changes in the Button component.
image

@bmcmahen do you have ideas on where this is coming from? Otherwise I can help you debug this.

@mshwery
Copy link
Contributor

mshwery commented Jul 30, 2018

@jeroenransijn his branch probably just needs to be updated with latest v4. I think someone had merged an untested PR that introduced that linter failure.

@bmcmahen
Copy link
Contributor Author

Yeah, not sure why circle is failing. I'll upgrade my branch and make the last requested change - we'll see if it passes then. Hope to get to it tomorrow.

@bmcmahen
Copy link
Contributor Author

bmcmahen commented Aug 8, 2018

I got busy and then I went on holiday. Will get to this early next week.

@jeroenransijn
Copy link
Contributor

@bmcmahen no worries! No rush on this, we are already super happy you are contributing. Hope you had a good vacation 👍 Life is about more than work.

@bmcmahen
Copy link
Contributor Author

Done!

Copy link
Contributor

@mshwery mshwery left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏

marginBottom: 12,
transform: `translateY(0)`,
...withAnimations(
css.keyframes('topRotate360InAnimation', {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this name change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! It should...

padding: 4,
borderRadius: 9999
isClosing: PropTypes.bool,
position: PropTypes.oneOf([
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a default position? or else mark this as required?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should probably just mark it as required. The default value is effectively provided by the SideSheet component.

@@ -193,3 +194,62 @@ storiesOf('side-sheet', module)
</Manager>
</Box>
))
.add('positions', () => (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These stories are great – do we need to make any updates to the docs as well?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs update would be awesome. However, I haven't updated docs for anything in v4 yet. I am open for doing this in one fell swoop as we ready v4. I am ok to create a new issue+PR for this.

@jeroenransijn
Copy link
Contributor

This makes me eager wanting to support all Position locations for Popover+Tooltip.

@jeroenransijn
Copy link
Contributor

Will get this in coming week!

@bmcmahen
Copy link
Contributor Author

bmcmahen commented Aug 20, 2018

Rad! Btw, we are needing left and right positions for popovers and tooltips, so I plan to work on that in the coming days. I can set up a PR for it when finished.

I've also added more positions to my fork of the toast module at toasted-notes. It'd be nice if I could get some of these changes back into evergreen somehow.

@jeroenransijn jeroenransijn merged commit 3fc2920 into segmentio:v4 Aug 21, 2018
@jeroenransijn
Copy link
Contributor

@bmcmahen yeah it would be awesome if you can take a stab at it! We can discuss more about this on Spectrum if you'd like. That one will require the positioning logic to get a lot more complex, it would be awesome if we can add tests for it — I have broken it sometimes on accident.

What you have done with toasted notes is pretty awesome! Although we don't need it ourselves (yet) — making the toaster more universal might be cool. Arbitrary positions + toaster.custom (?) or something like it.

@jeroenransijn jeroenransijn mentioned this pull request Oct 16, 2018
jeroenransijn added a commit that referenced this pull request Oct 16, 2018
* Stack component and  React 16.3

* improvements

* typo

* add default value

* themer wip

* create select appearance

* create link appearance

* theme

* fix border

* progress on buttons theming

* using new icons

* in flight progress

* withTheme single line

* default theme cleanup in folder

* more controls use withTheme

* getTextareaClassName

* getRowAppearance

* getSelectClassName

* getSegmentedControlClassName

* remove ButtonAppearances

* themed avatar

* fixes

* fix icon Combobox

* themed badges

* sunset icons

* themed switch

* remove color refs from components

* updated colors story

* default theme cleanup

* upgrade to gatsby v2

* color docs

* typography docs improvements

* improve layer docs

* improve alert docs

* improve button docs

* add icon docs

* Table improvements + Menu component added

* advanced table example

* advanced table example

* table docs update

* component status fix

* fix theme export + text size 600

* fix

* 4.0.0-0

* scales added

* 4.0.0-1

* color mapping example

* prop type fix Select

* fix tooltip

* 4.0.0-2

* fix autofocus => autoFocus in Select

* alert improvements

* 4.0.0-3

* support auto height table rows

* 4.0.0-4

* support border false

* 4.0.0-5

* unify intent API, deprecate info

* 4.0.0-6

* icon button default color change

* 4.0.0-7

* docs update

* Fix popover not closed when toggle button has children (#219)

* Fix popover when toggle button has children

* Add a story for popover

* Update snapshot and fix tests

* Refactor onbody click check

* Increase package size limit

* add hint prop to TextInputField

* 4.0.0-8

* 4.0.0-9

* set default TextInputField  height to 32

* 4.0.0-10

* add cursor not-allowed to disabled button

* use transparent color for button disabled

* focus management

* Remove intent requirement on button, add default "none" (#225)

* Remove intent requirement on button, add default "none"

* Update snapshots

* support is prop MenuItem

* 4.0.0-11

* allow passthrough props on menu item, and always bubble highjacked events (#231)

* 4.0.0-12

* increase the contrast of n1-level colors and fix typo (#232)

* increase the contrast of n1-level colors and fix typo

* wip update snap and B1 color

* wip. update more snaps

* 4.0.0-13

* size in lists + icons (#234)

* 4.0.0-14

* Bug/select icon margin (#237)

* add padding for icon on Select, add SelectField, add docs

* wip. include in docs

* wip

* 4.0.0-15

* add export for SelectField (#238)

* [v4] Fix button margin top (#240)

* fix margin top button

* fix tests

* add focus handling to segmented control (#241)

* [V4] tooltip inside popover (#239)

* size in lists + icons

* clean up

* fix typo and add children check

* fix

* clean up

* fix typo and add children check

* fix

* 4.0.0-16

* fix docs blank page (#244)

* enable passing `defaultValue` for uncontrolled select inputs (#245)

* 4.0.0-17

* fix icon placement (#248)

* 4.0.0-18

* Remove caret right icon from sidebartab (#250)

* 4.0.0-19

* fix jitter positioner (#257)

* 4.0.0-20

* improve positioner calculations (#259)

* 4.0.0-21

* fix css ssr (#264)

* Fix hiding <Tooltip> by explicitly setting `isShown` to `false` (#265)

* 4.0.0-22

* support onCancel callback prop (#266)

* 4.0.0-23

* [v4] Add Table.VirtualBody (#267)

* wip virtual body

* add Table.VirtualBody

* remove warning (#269)

* fix fixed height virtual body (#270)

* 4.0.0-24

* improve virtual body (#271)

* 4.0.0-25

* Fix broken blueprint link (#273)

Fixes a broken link in the docs for icons. 

```
http://blueprintjs.com/docs/v2/#icons -> http://blueprintjs.com/docs/versions/2/#icons
```

* [v4] Add Editable/SelectMenu Cell (#274)

* add Editable/SelectMenu Cell

* minor tweaks

* cleanup stories + improve table row interaction

* cleanup imports

* 4.0.0-26

* [V4] EditableCell improvements (#278)

* wip disabled editable cell

* editable cell improvements

* remove controlled usage

* 4.0.0-27

* [v4] Improve (SelectMenu/Editable)Cell and SegmentedControl (#281)

* improve select menu/editable cell and segmented control

* remove border right from cell

* 4.0.0-28

* [v4] Table.(Editable/SelectMenu)Cell Fixes (#284)

* fix size and isSelectable={true}

* fixes to size and isSelectable={true}

* 4.0.0-29

* fix editable cell position + tiny pixel shift radio (#286)

* 4.0.0-30

* fix virtual body height calculation (#289)

* 4.0.0-31

* improve editable/selectmenu cells (#293)

* 4.0.0-32

* add left, right, top, bottom anchors to side-sheet (#252)

* add left, right, top, bottom anchors to side-sheet

* use Position enum in Side-sheet and cache calls to generating sheetCloseClassName

* move Position to constants and update imports

* fix another Position import

* change SheetClose animation name and make position a required prop

* 4.0.0-33

* fix search (#304)

* 4.0.0-34

* Migrate to circleci 2.0

* circleci: fix the gh-pages ignore

* circleci: fix the gh-pages ignore config

* Run the babel builds concurrently

* Make the Dialog mobile friendly (#301)

* Make the dialog mobile friendly

This change makes the dialog resize gracefuly to fit the available viewport.

It should be a non-breaking change and the dialog should behave the same on desktop as it did before.

* Add sideOffset

* Remove unnecessary sideOffsetWithUnit variable

* Use `rm -rf` in prepublishOnly

* v4.0.0-35

* add docs to badge and pill (#307)

* fix prop warnings and make list components more flexible (#315)

* dialog: add horizontal scrolling support (#314)

This allows the Dialog to gracefully handle block level content that's too wide by scrolling, preventing the Dialog from overflowing the sides of the viewport.

This should be a non-breaking change.

* add iconSize to IconButton component. closes #316 (#317)

* 4.0.0-36

* Add "indeterminate" prop to <Checkbox> (#313)

* Add "indeterminate" prop to <Checkbox>

* Delete extraneous line

* Remove permutation function, use plain JSX

* Fix label

* Add ref callback to set indeterminate prop

* Add indeterminate styles

* Remove console.log

* Make prop order consistent

* Clean up story

* Uncomment commented-out styles

* Remove duplicate styles

* add position relative (#318)

* 4.0.0-37

* Allow grammarly to be disabled for Textarea (#323)

* Allow grammarly to be disabled for Textarea

* Destructure grammarly from props

* Improve cancelation behavior for SideSheet, Dialog, and Overlay (#324)

* Extend cancelation handling in Dialog and Overlay

This adds:
- `shouldCloseOnEscapePress` and `shouldCloseOnClick` to `Overlay` and `Dialog`
- Fixes a bug where `Dialog`'s did not trigger the `onCancel` handler when the close button was clicked.

* Add Stories and SideSheet support

* 4.0.0-38

* add Positioner support for Position.LEFT and Position.RIGHT (#299)

* add Position.LEFT and Position.RIGHT positions to Positioner, Tooltip, and Popover

* alter y axis to keep popover in viewport

* 4.0.0-39

* remove empty divs from positioner (#330)

* 4.0.0-40

* fix conflict between v3 and v4 toaster init order (#332)

* 4.0.0-41

* Remove storybook-deployer

* V4  Docs (#335)

* overview images

* wip

* mdx integration wip

* wip testing mdx

* wip docs provider

* overview images

* wip

* mdx integration wip

* wip testing mdx

* wip docs provider

* layout primitives

* fix css

* typography

* small cleanup

* colors + icons

* button docs

* tab docs

* badge and pill

* avatar docs

* TextInput docs

* SearchInput docs

* Textarea docs

* Autocomplete docs

* filepicker docs

* Select docs

* Select docs

* Combobox docs

* SelectMenu docs

* more examples for SelectMenu

* Popover docs

* Menu docs

* Checkbox docs

* Radio docs

* SegmentedControl docs

* Switch docs

* toaster docs

* Alert docs

* Spinner docs

* Dialog docs

* SideSheet docs

* IconButton docs

* remove example

* CornerDialog docs

* Table docs

* Portal docs

* FormField docs

* broken wip

* fix portal

* get started back to normal

* docs homepage

* docs media items

* add spectrum link

* github button

* docs update

* ssr and improvements

* fix aboslutePath

* remove old docs

* fix imports

* clean docs

* docs & readme improvements

* update readme and remove unused code

* remove old code

* Upgrade dependencies v4 (#336)

* upgrade deps

* update snaphosts

* add segment tracking (#337)

* Tracking fix (#338)

* add segment tracking

* improve ssr

* fix

* Bug/radio indeterminate (#340)

* v4.0.0-42

* Add babel-plugin-add-react-displayname

This makes sure that all components have a `displayName`.

* v4.0.0-43

* Add displayName to withTheme

* v4.0.0-44

*  Upgrade most of the dependencies (#344)

* Upgrade most of the dependencies

* Fix evergreen version in ssr example

* Add @babel/runtime

* Fix excluding the stories and tests from the build

* Revert test order change

* Upgrade ava and sinon

* Upgrade husky hooks config

* remove unused TableCell props (#342)

* BREAKING: bubble event in radio onChange (#341)

* BREAKING: bubble event in radio onChange

* comply with linter

* 4.0.0-45
prateekgoel pushed a commit to prateekgoel/evergreen that referenced this pull request Oct 26, 2018
* Stack component and  React 16.3

* improvements

* typo

* add default value

* themer wip

* create select appearance

* create link appearance

* theme

* fix border

* progress on buttons theming

* using new icons

* in flight progress

* withTheme single line

* default theme cleanup in folder

* more controls use withTheme

* getTextareaClassName

* getRowAppearance

* getSelectClassName

* getSegmentedControlClassName

* remove ButtonAppearances

* themed avatar

* fixes

* fix icon Combobox

* themed badges

* sunset icons

* themed switch

* remove color refs from components

* updated colors story

* default theme cleanup

* upgrade to gatsby v2

* color docs

* typography docs improvements

* improve layer docs

* improve alert docs

* improve button docs

* add icon docs

* Table improvements + Menu component added

* advanced table example

* advanced table example

* table docs update

* component status fix

* fix theme export + text size 600

* fix

* 4.0.0-0

* scales added

* 4.0.0-1

* color mapping example

* prop type fix Select

* fix tooltip

* 4.0.0-2

* fix autofocus => autoFocus in Select

* alert improvements

* 4.0.0-3

* support auto height table rows

* 4.0.0-4

* support border false

* 4.0.0-5

* unify intent API, deprecate info

* 4.0.0-6

* icon button default color change

* 4.0.0-7

* docs update

* Fix popover not closed when toggle button has children (segmentio#219)

* Fix popover when toggle button has children

* Add a story for popover

* Update snapshot and fix tests

* Refactor onbody click check

* Increase package size limit

* add hint prop to TextInputField

* 4.0.0-8

* 4.0.0-9

* set default TextInputField  height to 32

* 4.0.0-10

* add cursor not-allowed to disabled button

* use transparent color for button disabled

* focus management

* Remove intent requirement on button, add default "none" (segmentio#225)

* Remove intent requirement on button, add default "none"

* Update snapshots

* support is prop MenuItem

* 4.0.0-11

* allow passthrough props on menu item, and always bubble highjacked events (segmentio#231)

* 4.0.0-12

* increase the contrast of n1-level colors and fix typo (segmentio#232)

* increase the contrast of n1-level colors and fix typo

* wip update snap and B1 color

* wip. update more snaps

* 4.0.0-13

* size in lists + icons (segmentio#234)

* 4.0.0-14

* Bug/select icon margin (segmentio#237)

* add padding for icon on Select, add SelectField, add docs

* wip. include in docs

* wip

* 4.0.0-15

* add export for SelectField (segmentio#238)

* [v4] Fix button margin top (segmentio#240)

* fix margin top button

* fix tests

* add focus handling to segmented control (segmentio#241)

* [V4] tooltip inside popover (segmentio#239)

* size in lists + icons

* clean up

* fix typo and add children check

* fix

* clean up

* fix typo and add children check

* fix

* 4.0.0-16

* fix docs blank page (segmentio#244)

* enable passing `defaultValue` for uncontrolled select inputs (segmentio#245)

* 4.0.0-17

* fix icon placement (segmentio#248)

* 4.0.0-18

* Remove caret right icon from sidebartab (segmentio#250)

* 4.0.0-19

* fix jitter positioner (segmentio#257)

* 4.0.0-20

* improve positioner calculations (segmentio#259)

* 4.0.0-21

* fix css ssr (segmentio#264)

* Fix hiding <Tooltip> by explicitly setting `isShown` to `false` (segmentio#265)

* 4.0.0-22

* support onCancel callback prop (segmentio#266)

* 4.0.0-23

* [v4] Add Table.VirtualBody (segmentio#267)

* wip virtual body

* add Table.VirtualBody

* remove warning (segmentio#269)

* fix fixed height virtual body (segmentio#270)

* 4.0.0-24

* improve virtual body (segmentio#271)

* 4.0.0-25

* Fix broken blueprint link (segmentio#273)

Fixes a broken link in the docs for icons. 

```
http://blueprintjs.com/docs/v2/#icons -> http://blueprintjs.com/docs/versions/2/#icons
```

* [v4] Add Editable/SelectMenu Cell (segmentio#274)

* add Editable/SelectMenu Cell

* minor tweaks

* cleanup stories + improve table row interaction

* cleanup imports

* 4.0.0-26

* [V4] EditableCell improvements (segmentio#278)

* wip disabled editable cell

* editable cell improvements

* remove controlled usage

* 4.0.0-27

* [v4] Improve (SelectMenu/Editable)Cell and SegmentedControl (segmentio#281)

* improve select menu/editable cell and segmented control

* remove border right from cell

* 4.0.0-28

* [v4] Table.(Editable/SelectMenu)Cell Fixes (segmentio#284)

* fix size and isSelectable={true}

* fixes to size and isSelectable={true}

* 4.0.0-29

* fix editable cell position + tiny pixel shift radio (segmentio#286)

* 4.0.0-30

* fix virtual body height calculation (segmentio#289)

* 4.0.0-31

* improve editable/selectmenu cells (segmentio#293)

* 4.0.0-32

* add left, right, top, bottom anchors to side-sheet (segmentio#252)

* add left, right, top, bottom anchors to side-sheet

* use Position enum in Side-sheet and cache calls to generating sheetCloseClassName

* move Position to constants and update imports

* fix another Position import

* change SheetClose animation name and make position a required prop

* 4.0.0-33

* fix search (segmentio#304)

* 4.0.0-34

* Migrate to circleci 2.0

* circleci: fix the gh-pages ignore

* circleci: fix the gh-pages ignore config

* Run the babel builds concurrently

* Make the Dialog mobile friendly (segmentio#301)

* Make the dialog mobile friendly

This change makes the dialog resize gracefuly to fit the available viewport.

It should be a non-breaking change and the dialog should behave the same on desktop as it did before.

* Add sideOffset

* Remove unnecessary sideOffsetWithUnit variable

* Use `rm -rf` in prepublishOnly

* v4.0.0-35

* add docs to badge and pill (segmentio#307)

* fix prop warnings and make list components more flexible (segmentio#315)

* dialog: add horizontal scrolling support (segmentio#314)

This allows the Dialog to gracefully handle block level content that's too wide by scrolling, preventing the Dialog from overflowing the sides of the viewport.

This should be a non-breaking change.

* add iconSize to IconButton component. closes segmentio#316 (segmentio#317)

* 4.0.0-36

* Add "indeterminate" prop to <Checkbox> (segmentio#313)

* Add "indeterminate" prop to <Checkbox>

* Delete extraneous line

* Remove permutation function, use plain JSX

* Fix label

* Add ref callback to set indeterminate prop

* Add indeterminate styles

* Remove console.log

* Make prop order consistent

* Clean up story

* Uncomment commented-out styles

* Remove duplicate styles

* add position relative (segmentio#318)

* 4.0.0-37

* Allow grammarly to be disabled for Textarea (segmentio#323)

* Allow grammarly to be disabled for Textarea

* Destructure grammarly from props

* Improve cancelation behavior for SideSheet, Dialog, and Overlay (segmentio#324)

* Extend cancelation handling in Dialog and Overlay

This adds:
- `shouldCloseOnEscapePress` and `shouldCloseOnClick` to `Overlay` and `Dialog`
- Fixes a bug where `Dialog`'s did not trigger the `onCancel` handler when the close button was clicked.

* Add Stories and SideSheet support

* 4.0.0-38

* add Positioner support for Position.LEFT and Position.RIGHT (segmentio#299)

* add Position.LEFT and Position.RIGHT positions to Positioner, Tooltip, and Popover

* alter y axis to keep popover in viewport

* 4.0.0-39

* remove empty divs from positioner (segmentio#330)

* 4.0.0-40

* fix conflict between v3 and v4 toaster init order (segmentio#332)

* 4.0.0-41

* Remove storybook-deployer

* V4  Docs (segmentio#335)

* overview images

* wip

* mdx integration wip

* wip testing mdx

* wip docs provider

* overview images

* wip

* mdx integration wip

* wip testing mdx

* wip docs provider

* layout primitives

* fix css

* typography

* small cleanup

* colors + icons

* button docs

* tab docs

* badge and pill

* avatar docs

* TextInput docs

* SearchInput docs

* Textarea docs

* Autocomplete docs

* filepicker docs

* Select docs

* Select docs

* Combobox docs

* SelectMenu docs

* more examples for SelectMenu

* Popover docs

* Menu docs

* Checkbox docs

* Radio docs

* SegmentedControl docs

* Switch docs

* toaster docs

* Alert docs

* Spinner docs

* Dialog docs

* SideSheet docs

* IconButton docs

* remove example

* CornerDialog docs

* Table docs

* Portal docs

* FormField docs

* broken wip

* fix portal

* get started back to normal

* docs homepage

* docs media items

* add spectrum link

* github button

* docs update

* ssr and improvements

* fix aboslutePath

* remove old docs

* fix imports

* clean docs

* docs & readme improvements

* update readme and remove unused code

* remove old code

* Upgrade dependencies v4 (segmentio#336)

* upgrade deps

* update snaphosts

* add segment tracking (segmentio#337)

* Tracking fix (segmentio#338)

* add segment tracking

* improve ssr

* fix

* Bug/radio indeterminate (segmentio#340)

* v4.0.0-42

* Add babel-plugin-add-react-displayname

This makes sure that all components have a `displayName`.

* v4.0.0-43

* Add displayName to withTheme

* v4.0.0-44

*  Upgrade most of the dependencies (segmentio#344)

* Upgrade most of the dependencies

* Fix evergreen version in ssr example

* Add @babel/runtime

* Fix excluding the stories and tests from the build

* Revert test order change

* Upgrade ava and sinon

* Upgrade husky hooks config

* remove unused TableCell props (segmentio#342)

* BREAKING: bubble event in radio onChange (segmentio#341)

* BREAKING: bubble event in radio onChange

* comply with linter

* 4.0.0-45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants