All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. Currently, this repo is in Prerelease. When it is released, this project will adhere to Semantic Versioning
- Adds the
"SubNav"
component.
- Updates the
MultiSelect
component to additemCount
as a data property to theitems
prop to render the item count for an option.
- Fixes a styling issue in the
Header
's list to make it stricter.
- Adds the NYPL Header as a DS component as a temporary solution for a specific application. It's only meant to be used internally and teams are still encouraged to use the
nypl-header-app
.
- Adds the
"contentFilterRelease"
option to theIcon
component. - Adds the
"socialX"
option to theIcon
component. - Adds the
heading7
andheading8
to the font size design tokens. - Adds the
heading7
andheading8
options for thesize
prop in theHeading
component.
- Updates Storybook and related dependencies to version 8.3.6.
- Updates the
Link
component to prevent line breaks. - Updates the
SocialMediaLinks
component to support the"socialX"
icon.
- Fixes spacing issues and dark mode color styles in the
Table
component.
- Adds the
"decorativeBookBroken"
option (for error pages) to theIcon
component. - Adds the
"xxxxlarge"
and"xxxxxlarge"
size options for theIcon
component. - Adds the
"2xlarge"
,"3xlarge"
,"4xlarge"
, and"5xlarge"
sustainable size options for theIcon
component.
- Updates
Select
in theSearchBar
component to allow long option titles before truncation. - Updates the
ProgressIndicator
component to add thelabelPlacement
prop to allow for custom placement of a label for circular indicators. - Updates image props in the
Hero
component to allow custom image components. - Updates Vite from
5.2.8
to5.2.14
to fix a security vulnerability.
- Removes unused dependencies, two of which were causing npm vulnerabilities.
- Updates invalid text in the
SearchBar
component to include "There was a problem. " prefix. - Updates the
MultiSelect
component to add interaction tests. - Increases the z-index of the
FeedbackBox
'sDrawer
component so it displays above all other elements on a page. - Updates the
Table
component to add theisScrollable
prop to enable horizontal scrolling. - Updates the
Table
component to add thecolumnStyles
prop to allow for custom column styles (i.e. width, text alignment, etc.). - Updates the
Table
component to add thetableTextSize
prop to set the size of the text within the table. - Updates the
Table
component to add thetitleText
andshowTitleText
props to control the<caption>
element andaria-label
attribute. - Updates the styles for the
Template
component to better accommodate the horizontal scrolling in theTable
component.
- Lowercases the 'r' of '(required)' in labels and placeholders where necessary in order to align with sentence case guidelines.
- Updates the
CheckboxGroup
,DatePicker
,FeedbackBox
,Label
,RadioGroup
,SearchBar
,Select
,Slider
, andTextInput
component to use a lowercase 'r' for '(required)' in labels and placeholders in order to align with sentence case typography guidelines.
- Passes the
fallbackSrc
andonError
properties to theCard
'simageProps
prop object. - Fixes issue with
HelperErrorText
where, if text value was not a string, necessary styles weren't applied.
- Updates
Tooltip
component withplacement
andoffset
props for custom positioning.
- Fixes a duplicate
id
issue in theImage
component. This happened when an aspect ratio value rendered a wrapper div with the sameid
as theimg
element. This was not picked up by internal accessibility tests but in a consuming application.
- Adds development guide for Conditional Viewport
- Adds the
FilterBarPopup
compoonent anduseFilterBarPopup
hook.
- Updates the
FilterBarInline
component to applycloseOnBlur
toMultiSelect
components whenlayout="row"
. - Updates the
Breadcrumbs
component props to includecustomLinkComponent
andlinkProps
. - Updates the
Banner
component to allow for HTML content in thecontent
prop when passed as a string. - Updates the
SearchBar
component styles for mobile viewports. - Updates the
Select
component to accept adefaultValue
prop to set initial value of uncontrolled components. - Updates the legend in the
MultiSelect
'sCheckboxGroup
to use thebuttonText
prop value for better accessibility context. - Updates the
Menu
component to add theshowSelectionAsLabel
prop and improve thearia-label
values. - Updates the
Image
component to default thealt
attribute to an empty string if no value is passed.
- Removes
imageProps.alt
missing warning message fromFeaturedContent
as the prop is not always required.
- Adds the
FilterBarInline
component. - Adds refined
NewsletterSignup
component with updated props. - Adds refined
SocialMediaLinks
component with updated props
- Updates Storybook and related npm packages to version
8.1.11
. Does not affect any DS component. - Updates
Menu
component with newshowSelectionAsLabel
prop andaria-label
behavior. - Updates the
Banner
,Button
,ButtonGroup
,DatePicker
,FeaturedContent
,FeedbackBox
,Fieldset
,HelperErrorText
,Label
,SkipNavigation
, andStyledList
components to export all types and prop interfaces.
- Adds Storybook interaction tests for the
CheckboxGroup
,DatePicker
,FeedbackBox
, andSlider
components. - Adds
digitalCollections
color variant to theBreadcrumbs
component. - Adds
closeOnBlur
prop to theMultiSelect
component which, when set to true, closes the component if it loses focus.
- Updates base font stack to only
system-ui
andsans-serif
. - Updates the
Accordion
component to close panel when element within panel is focused and "esc" key is pressed.
- Adds Storybook interaction tests for
Searchbar
,Select
, andRadiogroup
components.
- Updates how links are styled within the
Heading
component. - Updates
jest
related npm packages for security patches.
- Fixes broken Github Action for release tags.
- Adds the following npm packages:
jest-transformer-svg
,@storybook/addon-designs
, and@storybook/test
. - Adds Storybook interaction tests for
Select
. - Adds Storybook interaction tests for
RadioGroup
.
- Updates the following packages:
- Storybook main package and related libraries to
8.0.8
. remark-gfm
to4.0.0
.vite
to5.2.8
,@vitejs/plugin-react
to4.2.1
, andvite-plugin-svgr
to4.2.0
.
- Storybook main package and related libraries to
- Updates how SVGs are imported into
LogoSvgs.tsx
andIconSvgs.tsx
. - Updates Storybook internal link and heading styles and enables the hash heading URL linking.
- Removes the following packages:
downshift
,tough-cookie
,@storybook/testing-library
,storybook-addon-designs
, and@svgr/webpack
.
- Exports
useMediaQuery
andchakra
from Chakra UI. - Updates the
TextInput
andSearchBar
components to better associate the input element to the entire component's helper text.
- Adds
showRowDividers
prop to show/hide row dividers for theList
"dl"
variant.
- Updates the
Accordion
component to close focused panel when "esc" key is pressed.
- Fixes the z-index issue in the
MultiSelect
component's selected item button. - Fixes the
Checkbox
positioning so it is visible when it is focused in a scrollable container. - Fixes a
Breadcrumbs
snapshot test that was duplicated and now has the appropriate"locations"
variant.
- Adds new
type
prop to theModal
component with"default"
and"confirmation"
variants.
- Fixes the desktop styling flicker in the
ButtonGroup
component.
- Adds the
id
prop to theHero
,HorizontalRule
,SkeletonLoader
,TemplateAppContainer
, andText
components. - Adds the
id
property to theimageProps
prop object in theCard
component.
- Updates the
Heading
component to allow more HTML attributes as props.
- Fixes an issue with the
Table
component where it rendered the headings twice until the component loaded and applied the desktop styles. This was done by adding inline responsive styles and removing the use of theuseWindowSize
hook.
- Adds docs for
"Visited State Patterns"
to theLink
component story page. - Adds the
ui.warning.tertiary
color token in order to have a light mode"warning"
color option that meets the WCAG 2.1 AA color contrast standard. - Adds
fallbackSrc
andonError
props to theImage
component. - Adds the
fallbackSrc
andonError
properties to theimageProps
prop for theHero
component. - Adds the
isDarkText
prop to theHero
component.
- Updates the placeholder value for the search field within the
MultiSelect
component. - Updates the background colors for the
"noBrand"
variant of theButton
component. - Updates the hex values for the
ui.warning.primary
andui.warning.secondary
color tokens. - Updates the
Banner
andStatusBadge
components to use theui.warning.tertiary
color for bertter accessibility in the"warning"
variant. - Updates the styles for the UI colors, text treatment and
Clear all
button in theTagSet
component. - Updates the component category for the
TagSet
component to"Content Display"
. - Updates placeholder images on story pages and tests to use the
getPlaceholderImage
utility function which provides NYPL images.
- Adds workaround to
Hero
andFeaturedContent
to fix Chakra bug that causes certain image URLs to not render through thebackground-image
CSS property.
- Adds the
"actionLightbulb"
option to theIcon
component. - Adds the
Banner
component. - Adds the
MultiSelectGroup
v2 component.
- Updates the
DatePicker
,Select
,Slider
, andTextInput
components to reduce the spacing between the field label and the field itself from"8px"
to"2px"
. - Updates the
Hero
component with conditional logic to handle how theforegroundColor
andisDarkText
props are used.
- Adds the
"editorMode"
option (pencil) to theIcon
component. - Updates the
ul
bullet color in theList
component. - Adds the
Errors
page to theAccessibility Guide
section of Storybook. - Adds the
@storyook/addon-interactions
addon to Storybook and@storybook/test
for writing interaction tests.
- Updates default heading size to
heading4
onModal
component. - Updates mobile styles for the
SocialMediaLinks
component
- Adds
5%
and10%
opacities for the semantic colors in the color pallette. - Adds the
Menu
component. - Adds the
MultiSelect
v2 component. - Adds the
useMultiSelect
hook.
- Updates the repo to use Node 18.
- Updates to React 18 and Chakra 2.8.
- Updates the
StatusBadge
component to add thetype
prop. - Updates the
StatusBadge
component to change the UI styles. - Updates the base
Modal
component to use theuseDSHeading
hook internally to render a DS Heading for theheadingText
prop. - Updates the
Heading
component to use native Chakra responsive styles to handle the font sizes of the component's internalheading
,overline
andsubtitle
elements. This also resolves the flashing font size bug that is most noticeable on slower internet connections. - Updates the
Text
component to use native Chakra responsive styles for the font sizes of thesubtitle1
andsubtitle2
variants. - Updates the
NewsletterSignup
component to follow NYPL recommendations and use more direct language for the email field error message. - Updates the default export to include
FocusLock
,useStyleConfig
, anduseMultiStyleConfig
from Chakra UI. - Updates the default export to include the test helper "MatchMedia".
- Updates the
Accordion
component to include theariaLabel
andbuttonInteractionRef
props. - Updates the
Tabs
component to use horizontal scrolling and arrow buttons step through tabs in mobile view.
- Removes console warnings from the
CheckboxGroup
component when a non-Checkbox
component is passed as a child. - Fixes the responsive styles related to the image in the
FeaturedContent
component.
- Removes the
NewsletterSignup
andSocialMediaLinks
components. - Updates the
TagSet
component to allow for more properties in the tag data object. TheonClick
function now returns the entire data object in the callback argument instead of just the tag label. - Updates the
Link
component to follow Chakra's patterns for usage with application framework routing systems, as well as a general refactor. Usage with Next.js has been updated.
- Updates focus ring color in
Notification
andBreadcrumbs
to match color of text. - Updates the
StatusBadge
styles so that if an icon is passed, the icon and text line up with one another
- Fixes a styling issue on the range
DatePicker
for the month and year types where the in-range selected date values did not have the correct DS colors. - Fixes the desktop font size for the
"heading5"
variant in theHeading
component.
- Adds the
"navigationMoreVert"
option (vertical ellipsis) to theIcon
component.
- Updates
Tabs
to be scrollable when the width of the tab set is greater than the viewport. - Updates the required comment field so it cannot be submitted when empty for the
FeedbackBox
component. - Updates the
Heading
component to use a custom@media query
method to handle the responsivefont-size
styles. - Updates the
Text
component to use native Chakra responsive styles for the font sizes of thesubtitle1
andsubtitle2
variants.
- Fixes the focus ring style for the open button in the
FeedbackBox
component. - Forcibly focuses on the open button when the
FeedbackBox
form is closed to ensure focus is not lost.
- Adds optional
placeholder
andplaceholderTo
props to theDatePicker
component. - Adds the
"actionDelete"
,"actionHome"
,"actionLockClosed"
,"actionPayment"
,"communicationCall"
,"communicationChatBubble"
, and"communicationEmail"
options to theIcon
component.
- Updates the
DatePicker
'sinitialDate
andinitialDateTo
props to accept an empty string.
- Fixes bug where month and year
Datepicker
calendars were rendering vertically rather than horizontally.
- Adds the
hasVisitedStyles
prop toLink
which is used to include or omit the visited state styles. Default value is true. - Adds the
useDSHeading
hook to render a default H2 heading or a custom heading element. - Adds the
sizeBasedOn
prop to theImage
component. - Adds the
isDarkBackgroundImage
prop to theHero
component.
- Removes
disabled
variant fromLink
theme file, as it isn't being used. - Updates the
font-weight
to"regular"
for thesubtitle1
andsubtitle2
text styles. - Updates the
"digitalCollectionsBlack"
variant of theLogo
component to use NYPL color design tokens. - Updates the following components to accept
JSX.Element
type values into their"title"
prop:List
,NewsletterSignup
, - Updates the following components to accept
JSX.Element
type values into their"headingText"
prop:AlphabetFilter
,AudioPlayer
,ComponentWrapper
,SearchBar
,VideoPlayer
- Updates the
Notification
component to acceptJSX.Element
type values into its"notificationHeading"
prop. - Updates the
StructuredContent
component to acceptJSX.Element
type values into its"headingText"
and"calloutText"
props. - Updates the
FeaturedContent
component by adjusting the spacing in the"fullScreen"
variant to better align the component text content with the page text content. - Updates the
"campaign"
variant of theHero
component to improve the spacing around the component. - Updates the
Card
component so that it accepts theimageProps.isLazy
prop and passes it to its internalImage
component.
- Adds z-index on hover to the
SearchBar
's select icon so it no longer disappears. - Adds z-index to the
DatePicker
's calendar container so that the helper text does not shift when the calendar opens.
- Adds the
sizeBasedOn
prop to theLogo
component. - Added the
autoComplete
prop to theTextInput
component for setting the "autocomplete" attribute manually.
- Updates max version for Chakra UI to
1.8.9
for minor bug fixes. - Updates the layout for the
"campaign"
variant of theHero
component to have consistent padding on its left and right sides. - Updates the
getSectionColors
function to also return dark mode color variants. - Updates the
NewsletterSignup
component'snewsletterSignupType
prop to render proper dark mode variant colors.
- Adds a changelog to the story pages for the
Heading
component.
- Updates the
Heading
component to set thearia-roledescription
value as"subtitle"
(a more familiar and recognizable value) for theoverline
element. - Updates the
FeedbackBox
andNewsletterSignup
components to set thetabindex
on the internal elements to"-1"
. - Updates
DatePicker
'sTextInput
to always have anaria-label
attribute that tells screen reader users how to access the calendar. - Updates Storybook to
v7.5.1
.
- Fixes a bug in the
Hero
component where custom background colors were not rendering properly in dark mode for the"campaign"
and"tertiary"
variants.
- Deprecates the
"secondary"
and"fiftyFifty"
variants of theHero
component.
- Adds the
ComponentChangelogTable
component. - Adds a changelog to the story pages for the
DatePicker
,FeedbackBox
,Hero
,Slider
, andTextInput
components. - Adds the
FeaturedContent
component. - Adds the
NewsletterSignup
component.
- Temporarily renaming
FilterBar
,MultiSelect
,MultiSelectGroup
,useMultiSelect
, anduseFilterBar
Storybook page files so they don't show up in the Storybook sidebar. - Updates the
Slider
component to use appropriatearia-label
values for the slider thumbs and text input fields. - Updates
TextInput
so it no longer incorrectly overwrites thearia-describedby
value to undefined when part of theDatePicker
component. - Updates
DatePicker
so that focus remains on input after value is changed. - Updates the
FeedbackBox
component to remove the underline on the component'sPrivacy Policy
link. - Updates
DatePicker
to pass aadditionalHelperTextIds
to itsTextInput
if needed so that thearia-describedby
value can be associated with all relevanthelperText
s.
- Fixes an issue with
backgroundColor
andforegroundColor
props not prioritizing the passed design token values for theHero
component.
NOTE: Version number 2.0.0
was previously released in 2019 and is marked as deprecated in npm. The first stable relase for Reservoir v2 is 2.0.1
.
- This update introduces a number of visual breaking changes related to typography styles.
- Removes the
FilterBar
andMultiSelect
components. - Removes the
useFilterBar
anduseMultiSelect
hooks.
- Adds the
isUnderlined
prop to theLink
component. - Adds the
"standalone"
variant to theLink
component. - Adds
NYPL Patterns
to theLinks Accessibility Guide
. - Adds the
SocialMediaLinks
component.
- Updates underline styles of the
Link
component. - Updates the hex value for the
Link Primary
color style. - Updates the
Link
component so that non-button variants change color once visited. - Updates the
Link
component to explicitly assign the text color for the"buttonPrimary"
varianthover
state. - Updates all components that render text to use the
Typo2023
color scheme. - Updates the base styles to use the
Typo2023
styles. - Updates all components to implement the
Typo2023
styles. - Updates the
Breadcrumbs
,Card
,Heading
,Pagination
, andSkipNavigation
components to implement theTypo2023
link patterns.
- Updates the
Logo
component to include variants forNYC Public Schools
. - Updates the
Icon
component to include variants for"sunFull"
and"moonCrescent"
. - Updates
Breadcrumbs
default design token to support apps using both newer and older DS versions.
- Adds the
"actionIdentity"
,"actionIdentityFilled"
,"actionSearch"
,"mapsPlace"
,"socialSpotify"
, and"socialVimeo"
options to theIcon
component.
- Updates
List
styling so the bottom border on description lists matches other borders. - Updates type
IconRotationTypes
toIconRotations
.IconRotationTypes
will still work for now, but is deprecated and will be removed in a later version. - Updates
Modal
component documentation.
- Adds the
"TikTok"
option to theIcon
component. - Adds the
role
prop to theText
component. - Adds the
backdropBackgroundColor
prop to theHero
component for the"campaign"
heroType
variant.
- Updates the ARIA attributes for the
overline
andsubtitle
elements in theHeading
component. - Updates the docs for the
Text
component and theTypography Style Guide
to include more information about theTypography 2023
updates.
- Adds the
screenreaderOnlyText
prop to theButton
andLink
components.
- Updates the existing
heading
typography styles to add new default styles options for native heading elements, includingh1
thruh6
. - Updates the existing
heading
typography styles to add new size options, includingdisplay1
andheading1
thruheading6
. - Updates the existing
text
typography styles to addoverline
andsubtitle
options. - Updates the
Heading
component to include the newheading
typography styles. - Updates the
Text
component to include the newtext
typography styles. - Updates the
Typography
docs to include the new options added to theheading
andtext
typography styles. - Updates the
Design Tokens
docs to include the new tokens added to theheading
andtext
typography styles. - Updates the
Heading
component to includeoverline
andsubtitle
elements. - Updates the spacing gap between main content in the
TemplateAppContainer
component. - Updates the background color of the "clear" button in Dark Mode for the
TextInput
component. This also affects theSearchBar
component when a clear button is present in theTextInput
component. - Updates the spacing of the text in the
HelperErrorText
component. - Updates the
ComponentWrapper
component to conditionally render theHelperErrorText
component. - Updates the version of the
react-datepicker
npm package. - Updates the right-to-left visual display for the
Accordion
component.
- Adds
"xxxsmall"
size (32px width) to theImage
component. - Adds the
"connect"
section hues to the light and dark color palettes. - Adds the
"connect"
color variant to theBreadcrumbs
component. - Adds internal
ChakraProvider
component to be able to conditionally include CSS styles through theresetCSS
anddisableGlobalStyle
props. - Adds a
theme
prop to theDSProvider
to merge in an additional theme file if necessary; this is to support to theHeader
andFooter
components in the NYPL Header App. - Adds
Managing Focus
page to theAccessibility Guide
in Storybook.
- Updates the
Button
component to increase the internal spacing between the button text and an icon. - Updates placeholder images to come from placekitten, rather than placeimg, which is being deprecated.
This updates replaces TSDX with Vite for the build tool. This allows the Reservoir DS library to be easily maintained and allow individual npm packages to be updated for security patches and general bug fixes. At the same time, the local and production build process are now much faster. Specific updates and changes:
- Node 16 is the recommended version to use and it is set in the
.nvmrc
file. - Github Actions are updated to use Node 16. The Typecheck workflow is removed since that's covered by the build script. Using Node 16 also allows the Vercel deployments to work without the the added
NODE_OPTIONS
flag in the npm build script. - Vite is used to build the library and start a development build.
- Rollup plugins are removed in favor of Vite plugins.
- Gulp and the
resources.scss
file are removed. Other related.scss
files were also removed since they are not used (in the library or in consuming applications). - ESLint packages are updated.
- Jest is updated along with its config file.
jest-environment-jsom
andts-jest
are used now. Snapshot test output files have slightly different rendered HTML syntax. - The build is still outputting CommonJS and ES module dist files, but the final name is slightly different. This does not affect how the DS is imported into any application.
- Due to moving to ESM as the default for the repo, types are exported separated from components in the main
/src/index.ts
file. This doesn't affect the final build but just how components, interfaces, and types are exported. - Storybook is updated to 7.0.18 which is a major version.
- All Storybook component documentation have been updated to use the Storybook 7 CSF format, along with MDX for the custom documentation pages.
- Adds the
target
prop to theLink
component.
- Removes the
Header
andFooter
components from the DS. These components will be moved and maintained in the nypl-header-app.
- Updates the
Select
component to use a set text color value.
- Fixes the focus rectangle around the
TextInput
clear button so it is centered on both desktop and mobile views.
- Adds
ui.gray.semi-medium
andui.gray.semi-dark
to the color palette. - Adds
Audio and Video
page to theAccessibility Guide
section of Storybook. - Adds "Pinterest" and "SoundCloud" options to the
Icon
component.
- Updates the
Link
component to include the rel attributes "noopener" and "noreferrer" on the "external" variant. - Updates the
dark.ui.border.default
design token to useui.gray.semi-dark
as its base. - Updates the
dark.ui.border.hover
design token to useui.gray.semi-medium
as its base. - Updates the
dark.ui.disabled.primary
design token to useui.gray.dark
as its base. - Updates the
dark.ui.disabled.secondary
design token to useui.gray.x-dark
as its base. - Updates the
Toggle
component to useui.gray.semi-dark
color for its background color. - Updates the
List
andStyledList
components to useui.gray.semi-dark
for the bullet color in the "ul" variant. - Updates the
Slider
component to useui.bg.active
for the color of the track bar in the "disabled" state. - Updates the
Breadcrumbs
component so that the last breadcrumb item is now a link. If the link text is too long, it will get truncated and the DSTooltip
component will be used to display the full text in a tooltip when the text is hovered.
- Fixes a
border-radius
formatting issues on the hover state of the search field for the dark mode version of theHeader
component. - Fixes a
color
issue on the hover state of the links for the dark mode version of theFooter
component. - Fixes a
border-color
issue for the dark mode version of theFeedbackBox
component. - Fixes a bug in
TextInput
that prevented the external clearing ofvalue
.
- Updates the
aria-label
andtitle
props in theTabs
component's button and icon elements to be more descriptive. - Updates
useCloseDropDown
hook to be exported for nypl-header-app. - Updates the
Logo
component to include "black" and "white" variants forNYCDOE
.
- Updates the
Button
component to use a transparent background for the default state of the "secondary" variant. - Updates the
Hero
component so that the height of the image in the "campaign" and "fiftyFifty" variants will grow and shrink based on the text content. - Updates the
SearchBar
component to includedefaultValue
as a prop intextInputProps
.
- Removes the
Color Mode
docs page from Storybook due to the addition of theSupporting Dark Mode
docs page.
- Removes the
Slider
component's internal state update function (setCurrentValue
) from Chakra's ownRangeSlider
component'sonChangeEnd
prop function. This fixes an issue where both Chakra'sonChange
andonChangeEnd
prop functions were being called regardless of whether they were passed to the DSSlider
component or not. Since Chakra'sonChange
function will always be called, the internal state function is kept. This ensures that there is no multiple calls or loop of state update calls when using keyboard controls to change the range slider's value.
- Adds
brand
as abreadcrumbsType
to theBreadcrumbs
component. - Adds
dark
color mode support forbackground-color
andcolor
global styles. - Adds
dark
color mode support for theHelperErrorText
andStatusBadge
components. - Adds
dark
color mode support for theButton
,Checkbox
,DatePicker
,ProgressIndicator
,Radio
,SearchBar
,Select
,Slider
andToggle
components. - Adds
dark
color mode support for theCard
andHero
components. - Adds
dark
color mode support for theHeading
andList
components. - Adds
dark
color mode support for theFooter
,Header
,HorizontalRule
andTable
components. - Adds
dark
color mode support for theNotification
,ProgressIndicator
, andSkeletonLoader
components. - Adds
dark
color mode support for theBreadcrumbs
,Link Types
, andPagination
components. - Adds
dark
color mode support for theAccordion
,Modal
,Tabs
, andTooltip
components. - Adds
dark
color mode support for theAlphabetFilter
,AudioPlayer
, andTagSet
components. - Adds
dark
color mode support for theFeedbackBox
andStyledList
components. - Adds
dark
color mode support for theFilterBar
andMultiSelect
components. - Adds
Supporting Dark Mode
under theDevelopment Guide
.
- Updates background color values available in Storybook.
- Updates the hex value for
dark.ui.error.primary
. - Updates the
Design Tokens Style Guide
to include more detailed information about the available tokens.
- Deprecates the
darkMode
prop in theProgressIndicator
component.
- Updates the
Logo
component to include "black" and "white" variants forDigital Collections
.
- Updates the
Slider
component'scurrentValue
state to use theuseStateWithDependencies
hook.
- Adds the
pattern
prop to theTextInput
component. - Adds documentation page "Dynamic Content" to the
Accessibility Guide
. - Adds the
isRenderedText
prop to theHelperErrorText
component.
- Adds a third radio button to the
Header
component, separating search options between the Circulating Catalog, Research Catalog, and the NYPL.org website. - Temporarily removes the "log in" state from the
Header
component, the feature to read auth cookies, and the patron's name when logged in, and the log out link. - Truncate breadcrumb text if beyond 40 characters then add ellipsis at the end. If the breadcrumb text is truncated, the DS
Tooltip
component is used to display the full text in a tooltip when the text is hovered. - Updates the
SearchBar
'stextInputProps
prop to include the following props to pass to theTextInput
component:isClearableCallback
,max
,maxLength
,min
, andpattern
. - Updates how the
CheckboxGroup
,ComponentWrapper
,DatePicker
, andRadioGroup
components internally render theHelperErrorText
component. The update in theComponentWrapper
component affects theAudioPlayer
,Checkbox
,Radio
,SearchBar
,Select
,Slider
,TextInput
,Toggle
, andVideoPlayer
DS components, each of which render helper or error text. - Updates the
MultiSelect
component so it closes when the "escape" key is pressed. - Updates where the focus is set in the
MultiSelect
"dialog" variant after the "Apply" button is clicked. - Updates where the focus is set in the
MultiSelect
component after the selected items count button is clicked.
- Adds the
MultiSelect
,MultiSelectGroup
,FilterBar
component. - Adds the
useMultiSelect
,useFilterBar
hook. - Adds the
onChangeEnd
prop in theSlider
component. - Adds
autocomplete
attribute toTextInput
s with type"tel"
,"email"
, and"url"
. - Adds docs for
Links
andRepetitive Actions
to theAccessibility Guide
.
- Updates the hex value for
ui.gray.xx-dark
,ui.gray.xxx-dark
,ui.gray.xxxx-dark
,dark.ui.bg.page
,dark.ui.bg.hover
,dark.ui.bg.active
,dark.ui.disabled.secondary
,dark.ui.error.primary
,dark.ui.error.secondary
,dark.ui.focus
,dark.ui.link.primary
,dark.ui.link.secondary
,dark.ui.status.primary
,dark.ui.status.secondary
,dark.ui.success.primary
,dark.ui.success.secondary
,dark.ui.warning.primary
anddark.ui.warning.secondary
. - Updates the layout of the category
RadioGroup
tocolumn
for the mobile view of theFeedbackBox
component. - Updates the background color for the
"iconOnly"
and"text"
variants of theButton
component. - Updates the DOM in the header of the
FeedbackBox
component to improve accessibility. - Updates the
Link
component to include descriptive text for screen readers in the component's"external"
variant. - Updates the
HelperErrorText
component to set theariaLive
default value to"polite"
. - Updates the
Accessibility
details for theNotification
component. - Better docs for the
onSubmit
prop in theFeedbackBox
component.
- Fixes spacing and alignment issues in the
FeedbackBox
component. - Fixes the width of the Privacy Policy link in the
FeedbackBox
component. - Fixes issue where
aria-describedby
attribute was not being added to someTextInput
s.
- Removes the
Link
component warning about the deprecatedbutton
variant. This change is temporary and will be reverted once teams are able to update theirLink
s appropriately. - Removes the
arial-label
attribute from theCheckboxGroup
andRadioGroup
components for improved accessibility. Using the attribute is redundant with the existing "screen reader only"<legend>
element.
- Adds the optional
isClearableCallback
prop to theTextInput
component. This prop works with theisClearable
prop and the passed function is invoked when the "clear" button is clicked. This is most helpful for controlledTextInput
component implementations.
- Updates the background color for the
hover
state in thesecondary
variant of theButton
component.
- Fixes the z-index value of the SVG icon in the
Select
component so it does not render above other elements on a consuming application's page.
This release is exactly the same as the 1.3.0-rc
release candidate published on December 2, 2022. The rc
release was reviewed and validated.
- Adds additional color options to
Icon
component. - Adds reusable iconColors and iconNames arrays/types for DRYer, easier-to-update code.
- Adds the following color options to the color theme object:
ui.bg.page
,ui.typography.inverse.body
,ui.typography.inverse.heading
,dark.ui.typography.inverse.body
, anddark.ui.typography.inverse.heading
. - Adds the
StyledList
component. - Adds the
FeedbackBox
component,useFeedbackBox
component hook, anduseStateWithDependencies
helper hook.
- Updates the data displayed on the Colors Style Guide to expand the contrast details for the
ui
anddark.ui
color. - Updates the
md
breakpoint to"37.5em"
, which is equal to"600px"
.
- Adds Node environment variable to npm script that Vercel uses to build the site. This patches an error from webpack not building correctly.
- Adds an
isClearable
prop to theTextInput
component. When set totrue
, a closeButton
component will render on top of the input element. Once clicked, any text value in the input field will be cleared and focus will return to the input element. - Adds the
isClearable
property to thetextInputProps
prop object in theSearchBar
component. This allows theisClearable
prop to be passed to theTextInput
component to render the closeButton
component.
- Updates the
Icon
andLogo
documentation to include size values in px. - Updates the spacing within the
tertiary
variant of theHero
component. - Updates the
Buttons Style Guide
to extend the information about button sizes. - Updates the
viewport
options in Storybook to align with the Reservoir breakpoints.
- Fixes an invalid TOC link on the
Card
component Storybook page. - Fixes the sizing of the
errorFilled
anderrorOutline
icons in theIcon
component. - Adds new props to Chakra's
ToolTip
to more forcefully close the DSToolTip
. New props includecloseDelay
,closeOnClick
,closeOnEsc
, andcloseOnMouseDown
.
- Removes the
Button
component warning about the deprecatedlink
variant. This change is temporary and will be reverted once teams are able to update theirButton
s appropriately.
- Adds the
"buttonPrimary"
,"buttonSecondary"
,"buttonPill"
,"buttonCallout"
,"buttonNoBrand"
,"buttonDisabled"
variants for the theLink
component, set through thetype
prop.
- Deprecates the
"button"
type
variant for theLink
component. Use any of the new"buttonX"
variants instead.
- Updates the
AlphabetFilter
component by addingaria-label=“Filter by letter"
attribute and removing therole
attribute on the<nav>
element. - Updates
AlphabetFilter
border color for theactive letter
indicator fromui.gray.medium
toui.gray.dark
. - Updates background styles for
Hero
component'sprimary
andcampaign
variants. - Updates the hover styles for the
Checkbox
andRadio
components. - Improves
TagSet
"filter"
type accessibility by adding anaria-label
that includes"click to remove filter"
, whenisDismissible
is true.
- Updates Storybook npm packages to fix copying documentation and table of contents heading linking.
- Adds a variant for
NYCDOE
to theLogo
component. - Adds the
TagSet
component. - Adds the
AlphabetFilter
component. - Adds the
AudioPlayer
component. - Adds the
requiredLabelText
prop to theTextInput
andLabel
component. This allows customizing the "(Required)" text for other languages.
- Updates the
hamburger
SVG for theIcon
component to allow for color assignments. - Updates
ComponentWrapper
propdescriptionText
type tostring | JSX.Element
.
- Adds the
size
prop to theButton
component. The accepted values are "small", "medium", and "large". The default size value is "medium". - Adds the
value
prop to theSlider
component to programmatically update the values of theSlider
component. - Adds the
value
prop to theCheckboxGroup
component to programmatically update the values of theCheckbox
es within it.
- Updates the colors for the
secondary
andiconOnly
variants of theButton
component. - Updates the
Tooltip
component to remove the dropshadow effect. - Updates whether the content inside of an
Accordion
is always rendered through theisAlwaysRendered
prop. - Updates the spacing of the icon and text in the
Notification
component. - Updates the padding and placement of the links in the
Footer
component. - Updates how content in the
Table
component is aligned. - Updates the
Button
styles in theHeader
,Notification
,SearchBar
, andTabs
components based on the newsize
prop. - Updates the
content
prop of theTooltip
component to accept number values.
- Removed the
data-testid
attribute from theButton
component.
- Adds the
text
variant in theButton
component.
- Fixes a bug where the
defaultValue
for aTextInput
component was not being passed correctly to the Chakra input element.
- Deprecates the
link
variant in theButton
component.
This release is exactly the same as the 1.1.0-rc5
release candidate which was published and reviewed. Minor bug fixes, listed below, were made.
- Fixes how the "footer" area is rendered in the
TemplateAppContainer
. - Fixes ARIA labels in the
Footer
.
- Adds static
Header
component with login dropdown (functionality to be added later). - Implements focus lock in
Login
component in theHeader
's internalLogin
component. - Adds the
SkipNavigation
to theHeader
component. - Adds the
SitewideAlerts
component used internally in theHeader
component. This component dynamically fetches and renders NYPL sitewide alerts. - Adds login functionality, which includes reading cookie values with new package, js-cookie, making an API call for patron details, and showing a different UI to logged in users.
- Adds refresh login functionality, which is used when a cookie's accessToken has expired and the server responds to a request for patron details with a 401. It attempts to refresh the token and, if successful, refetches the patron's details.
- Adds the desktop search form to the
Header
component with theSearchButton
andSearchForm
components. - Refactors
SearchButton
andSearchForm
to implement the mobile search form. - Adds the mobile navigation menu for the
Header
component withMobileNav
andMobileNavButton
components. - Adds the mobile login menu for the
Header
component. - Adds React context for the
Header
's patron state data throughHeaderContext
andHeaderProvider
. - Better namespacing for Header-only components.
- Sets Header Auth links for production and development environments.
- Adds the
EncoreCatalogLogOutTimer
function to keep track of the patron's current site and when they should be logged out of Encore/Catalog after a timeout period. - Uses legacy SVG icons for parity with the existing
Header
component.
- Adds
Tooltip
component. - Adds the basic
Footer
React component and documentation. Uses "legacy" SVG icons in theFooter
component for social media icons. - Adds @chakra-ui/focus-lock packages to dependencies and peerDependencies.
- Adds the
useCloseDropDown
hook to manage closing dropdown-like components through clicks outside of it and by pressing the escape key. - Adds the
react-ga
package to send Google Analytics events in theHeader
component.
- Updates the
onClick
event type for thePagination
linksonClick
function. - Updates the
Link
component'sonClick
event type. - Makes small, clarifying update to
Color Mode
story in Storybook.
- Fixes the styling for the
Image
component in theHero
"secondary" variant.
- Adds new color values under ui:
bg.default
,bg.hover
,bg.active
,border.default
,border.hover
,typography.heading
, andtypography.body
.
- Adds new colors values under ui.gray:
xxxx-dark
andxxx-dark
.
- Adds UI fills colors for dark mode in the codebase and also exported in the
useNYPLTheme
hook. - Adds an optional
panelMaxHeight
prop to theAccordion
component that determines the height of the panel and displays a scrollbar if content exceeds it.
- Updates color value for
xx-dark
. - Updates the style of the TOC on the
Style Guide
pages to match the style of the TOC on the component pages. - Updates the
Template
components to use CSS grid instead of flexbox. - Updates the
Template
documentation with the new pattern for using individualTemplate
components that go above the mainTemplateContent
component. - Updates the
Placeholder
component's CSS to better display in theTemplate
components. - Updates how HTML attributes are passed down in the
Image
component to the HTMLimg
element. - Updates the
Accordion
so that its panel content only renders when theAccordion
is open.
- Updates border color in the
Description
variant of theList
component. - Updates how options are passed to the
SearchBar
component for its internalSelect
component. - Updates how style props are passed to the
Link
component when using with third-party libraries, such as React Router. - Updates the layout of the
Image
in theHero
"secondary" and "fiftyFifty" variants for mobile and desktop.
- Adds the
isLazy
prop to theImage
component which is set tofalse
by default.
- Updates the following components to use React's
forwardRef
wrapper function to pass along refs to the correct DOM element. This is for third-party packages and components such as Chakra'sTooltip
to work correctly.Accordion
,Breadcrumbs
,Button
,ButtonGroup
,Card
,ComponentWrapper
,FieldSet
,Form
,SimpleGrid
,Heading
,HelperErrorText
,Hero
,HorizontalRule
,Icon
,Image
,Label
,List
,Logo
,Modal
,Notification
,Pagination
,ProgressIndicator
,SearchBar
,SkeletonLoader
,SkipNavigation
,Slider
,StatusBadge
,StructuredContent
,Table
,Tabs
,Template
,TemplateAppContainer
,Text
,VideoPlayer
.
- Updates
padding-left
andpadding-right
style properties topadding-start
andpadding-end
, respectively. Updatesmargin-left
andmargin-right
style properties tomargin-start
andmargin-end
, respectively. These changes apply to inline CSS, shorthand Chakra style prop syntax, and Chakra theme file syntax. Note thatmargin-start/end
andpadding-start/end
get converted tomargin-inline-start/end
andpadding-inline-start/end
respectively by Chakra UI. - Updates the
Icon
component to include variants for legacy versions ofAccount
(filled and unfilled),Facebook
,Instagram
,Twitter
andYouTube
. - Updates the
Icon
component to include variants forWarning
(filled and oultine).
- Removes the packages
@mdx-js/react
andbabel-loader
since they are not needed by Storybook.
- Exports
ColorCard
.
- Updates the
Icon
component to include variants foractionCheckCircleFilled
,actionRegistration
,decorativeEnvelope
,decorativeLibraryCard
anddecorativeShoppingBag
. - Updates the docs for the
Colors
Style Guide to include additional data related to contrast and WCAG compliance. - Updates the
Checkbox
andRadio
components to useui.gray.dark
for the default border color. - Updates Storybook packages.
- Fixes
useNYPLBreakpoints
hook so it internally controls its own state. This eliminates server/client rendering issues on its initial load.
- Adds the
useNYPLBreakpoints
hook. This hook internally uses Chakra'suseMediaQuery
hook to get the current responsive media query breakpoint. - Adds
ui.gray.xx-dark
to the color palette. - Adds npm packages useful for lazy loading images in the
Image
component. - Adds text case styles for
Text
component. - Exports
ColorModeScript
,cookieStorageManager
,localStorageManager
,useColorMode
, anduseColorModeValue
from Chakra UI for consuming application usage. - Adds a "Color Mode" documentation page in Storybook.
- Adds
ui.white
as default background color toCheckbox
andRadio
components. - Adds text case styles for
Heading
component
- Updates the
Logo
component to include a variant forMLN Color
. - Updates the
Icon
component to include variants forFacebook
,Instagram
,Tumblr
,Twitter
andYouTube
. - Updates the
Icon
component to include variants forBuilding
,Exit
,Locator
,Power
andSettings
. - Updates to Storybook version 6.5.
- Explicitly sets the default color mode value to
"light"
. - Updates how the
styles.scss
andresources.scss
files are organized and compiled so that they can be imported in any tech stack. - Updates the docs for the
Table
commponent to remove the example that does not include column headers. - Updates the
Button
,Select
andTextInput
components to use NYPL standard minimum height in mobile viewport. - Updates the
SearchBar
component to change how the width of the internalSelect
component is handled.
- Fixes the styles for the sub-labels in the
DatePicker
component.
- Adds prop validation for the
TextInput
"number" type for themin
andmax
props. - Adds
min
andmax
prop value validation for theSlider
component, including in the "range" mode.
- Updates the
TemplateAppContainer
's responsive styles for its sidebar component. - Updates how the
Radio
's label is hidden when theshowLabel
prop is set to "false" to fix the "no label" accessibility issue. - Updates the
Logo
component to include new variants forNYPL Text Only
. - Updates the
Card
's full-click functionality styling for its wrapper element. - Updates how the
Card
'sImage
component is displayed in the mobile view; sizes and aspect ratios are maintained instead of always displaying as 100% width. - Updates hover style to add right border color on hover for
Select
element. - Updates the
Table
component to be responsive for a mobile viewport. - Updates the
Table
component to make thecolumnHeaders
prop required.
- Fixes the border color for the
Accordion
button. - Fixes a false warning message logged from the
Table
component. - Fixes the background color for the
Toggle
button.
- Adds
noSpace
prop to theHeading
component. - Adds validation for equal headers and data column to the
Table
component. - Adds
className
,helperTextStyles
, andshowHelperInvalidText
props to theComponentWrapper
component.
- Updates the
fontSize
andpadding
attributes in the single variant of theAccordion
component. - Updates all QA urls from Tugboat QA to Vercel.
- Updates the
Logo
component to include new variants forApple App Store
,Clever Badge
andGoogle Play
. - Pins the Chakra UI "react" and "system" packages to a certain range since Chakra v2 uses React 18 and creates backwards compatibility issues.
- Updates buttons setup as icon only to get the same hover styles as
secondary
button in theButton
component. - Updates and refactors the
Checkbox
,Radio
,Select
,Slider
,TextInput
andToggle
components to use theComponentWrapper
component for similar DOM structure. - Updates how
CheckboxGroup
andRadioGroup
handleCheckbox
andRadio
components whenisFullWidth
is true and there is JSX as labels.
- Fixes how
Image
s are rendered with a non-defaultaspectRatio
value and with acaption
value or acredit
value or both. - Fixes the extra margin added by the
SkipNavigation
component. - Updates various component implementations in Storybook documentation pages to remove inadvertent console errors and warnings.
- Fixes sizing in the
Card
component for the "body" and "right" sections when theisAlignedRightActions
prop is set totrue
. - Allows
Button
s in theButtonGroup
to manage their ownisDisabled
state. - Fixes how the
onChange
prop is set inCheckbox
so it only gets called once per rendering.
NOTE: This version number was previously released in 2019 and is marked as deprecated in npm. The next version bump from 1.0.0
is 1.0.2
.
This is the first stable release of the NYPL Reservoir Design System! We've been looking forward to this moment for over two years.
- Updates all links throughout the documentation to point to the new production URLs.
- Adds
max
,maxLength
,min
, andonClick
props to theTextInput
component. - Adds the
SkipNavigation
component and adds this component inside theTemplateAppContainer
component. TheSkipNavigation
component renders accessible links to the main content of a page and accessibility information on NYPL.org. - Adds the
ButtonGroup
component forButton
layout.
- Updates how styles are passed down to internal components in
Card
,Checkbox
,CheckboxGroup
,ComponentWrapper
,DatePicker
,Hero
,Notification
,Pagination
,Radio
,RadioGroup
,SearchBar
, andSlider
. This is based on removing theadditionalStyles
prop and passing down styles to the__css
prop. - Updates how the
id
is passed in theDatePicker
's customTextInput
component. - Updates how some prop values are passed. Instead of using a Typescript enum object, a Typescript type with the string literal values is used. This still restricts the accepted values for certain props. The enum to string literal type conversion includes the following variables:
AccordionType
,BreadcrumbsTypes
,ButtonTypes
,DatePickerTypes
,FormGaps
(deleted),GridGaps
,HeadingSizes
,HeadingLevels
,HeroTypes
,IconAlign
,IconTypes
,IconRotationTypes
,IconColors
,IconSizes
,IconNames
,LinkTypes
,ListTypes
,LogoColors
,LogoSizes
,LogoNames
,NotificationTypes
,SelectTypes
,LabelPositions
,SkeletonLoaderImageRatios
,StatusBadgeTypes
,StructuredContentImagePosition
,TextSizes
,TextInputTypes
,TextInputFormats
,TextInputVariants
,ToggleSizes
,VideoPlayerTypes
,VideoPlayerAspectRatios
, andLayoutTypes
. - Updates the spacing for caption and credit text from
margin-bottom
tomargin-top
inImage
component - Updates how the
DatePicker
andSlider
components internally useTextInput
. - Updates how the
Pagination
component internally usesLink
. - Updates how the
Tabs
component internally usesButton
. - Updates how images are passed to the
Hero
component. Instead ofimageAlt
andimageSrc
props, now an object must be passed to theimageProps
prop. - Updates the values for the
name
prop for theIcon
andLogo
components. - Updates the
Table
component to allow JSX elements to be rendered in the data cells.
- Removes the
additionalStyles
attributes from theBreadcrumbs
,Button
,Heading
,HelperErrorText
,Icon
,Link
,List
,Logo
,Select
,TextInput
, andToggle
components. - Removes
getVariant
andgetStorybookEnumValues
helper functions. - Removes all Typescript enum objects in favor of string literal types.
- Remove the bottom margin attribute that is applied to the parent element for the
Select
component. - Removes the
attributes
prop from:Button
,Link
, andTextInput
components.
- Adds two patterns for rendering the updated
Modal
component. This is still an ongoing work-in-progress as theModal
gets finalized but it is now using Chakra under-the-hood. - Adds
@chakra-ui/storybook-addon
so stories automatically pick up the Chakra-based NYPL theme.
- Updates React and React DOM to version 17.
- Updates Chakra packages
@chakra-ui/react
and@chakra-ui/system
. - Updates the
HelperErrorText
styling to correctly display when used with aSelect
element with alabelPosition
of inline.
- Removes the following packages:
@storybook/addon-queryparams
andreact-router-dom
.
- Updates storybook URL from /reservoir/v0_26 to /reservoir/v0.]
- Updates the
Header
's bottom navigation links to be underlined and red when hovered.
- Adds updated package-lock file to fix bad installations.
- Exports the
useCarouselStyles
anduseWindowSize
hooks and adds documentation for all hooks in Storybook. - Adds additional semantic design tokens from
fontWeights
andfontSizes
to theuseNYPLTheme
hook. - Adds a warning if a required
id
prop is not passed to one of the "Form Elements":Button
,Checkbox
,CheckboxGroup
,DatePicker
,Fieldset
,Form
,Label
,ProgressIndicator
,Radio
,RadioGroup
,SearchBar
,Select
,Slider
,TextInput
,Toggle
. - Adds the
isRequired
prop to theLabel
component. - Adds the
labelPosition
prop to theSelect
component, so that the label can be styled inline with the select input. - Adds Chakra's "Style Props" functionality to every Reservoir component. For composed components, such as the
SearchBar
component, these style props are passed to wrapper element. This update also updates the snapshot tests for every component. - Adds the functionality to pass all valid HTML attributes to a Reservoir component, such as
data-*
props. - Adds semantic design tokens for
spacing
theme object. - Adds the
isAlignedRightActions
prop to theCard
component to renderCardActions
components to the right of the main content area. This only works for theCard
's row layout. - Adds styles to target native HTML basic elements inside the
StructuredContent
component. - Adds
Reservoir
branding to Storybook.
- Updates the hex color value for
ui.gray.light-cool
,ui.disabled.primary
andsection.blogs.primary
. - Updates the default background color used in the
Accordion
component. - Updates the default background color used in the
Hero
component. - Updates the background color used in the
SkeletonLoader
component. - Updates the background color used in the
VideoPlayer
component. - Updates the background colors used in the
Tabs
component. - Updates the colors for "secondary" and "pill" variants of the
Button
component. - Updates the color values used in the
disabled
state for theCheckbox
,Radio
,Select
,Slider
,TextInput
andToggle
components. - Updates the
Checkbox
component to use "3px" for the border radius. - Makes the id prop required for all "Form Elements".
- Updates how the
Required
text in theLabel
andFieldset
components is displayed. Instead of floating to the right of the label and legend elements, it is now displayed inlined as(Required)
. - Renames the
optReqFlag
prop toshowRequiredLabel
in theCheckboxGroup
,Fieldset
,RadioGroup
, andSlider
components. - Renames the
showOptReqLabel
prop toshowRequiredLabel
in theDatePicker
,Select
, andTextInput
components. - Uses the design token "text.caption" variable for the
Notification
's font size. - Updates the styling for the
HelperErrorText
to be consistent for all components that use it - Refactors the
Checkbox
,CheckboxGroup
,ComponentWrapper
,DatePicker
,Fieldset
,Label
,Radio
,RadioGroup
,Select
,Slider
,TextInput
, andToggle
to better use the updatedHelperErrorText
styling. - Renames the
Card
'scenter
prop toisCentered
andborder
prop toisBordered
. - Renames the
SkeletonLoader
component'sborder
prop toisBordered
. - Refactors the DS
RadioGroup
component so it internally implements Chakra'sRadioGroup
component rather than theuseRadioGroup
hook. The "uncontrolled" version of Chakra'sRadioGroup
is not working and will be investigated in the future. It is recommended to use the controlled component pattern. - Updates the
Fieldset
component to render the "Optional"/"Required" text in thelegend
element as pseudo CSS in the::after
rule. - Passes the
isRequired
prop in theRadioGroup
andCheckboxGroup
to theFieldset
wrapper component. - Updates the
focus
styles for theRadio
,Select
andTextInput
components. - Updates the references of the
<dl>
element from "Definition" to "Description", as that's the official name in HTML5. This affects theList
element and itsListTypes.Description
enum value. - Updates styles for
React Datepicker
's calendar popup in theDatePicker
component. - Updates storybook URL from /storybook-static/ to /reservoir/v0_26.
- Updates all references to "design system" in the Storybook documentation to include "Reservoir" in the name of the design system.
- Updates language on the
Welcome
page.
- Removes the default
Optional
text displayed in theLabel
andFieldset
components. - Removes the
optReqFlag
prop in theLabel
component. - Removes the default autogenerated id for all components, as well as the
uuid
package. - Removes the
HorizontalRule
'sheight
andwidth
props from its prop interface in favor of Chakra's style props; the default values are still set forheight
andwidth
.
- Fixes how the
Button
component gets rendered inside theForm
andFormField
component layout. - Fixes how the
Select
component is controlled in theSearchBar
component.
- Adds a
contentId
prop to theTemplateAppContainer
component and adds anid
prop to theTemplateContent
component. The default value of theseid
s are both set to "mainContent" and it will render as an attribute on themain
HTML element. This is used as the target for the skip navigation link in consuming applications. - Adds an
Accessibility Guide
section to Storybook with a "Skip Navigation" page. - Adds the
isFullWidth
prop to theCheckboxGroup
andRadioGroup
components. This sets the wrapper element to be full width for labels that need to span its container. - Adds an optional key –
accordionType
to theAccordion
'scontentData
prop, which allows users to switch the background color of theAccordion
's button. - Created new
LayoutTypes
enum for row and column layouts. - Adds the value "Default" to the
IconSizes
enum.
- Updates Storybook's sidebar categories and documentation.
- Updates the
Image
's caption font size to "12px" (text.tag
). - Updates the
Checkbox
's andRadio
'slabelText
prop to accept strings and JSX Elements. - Updates the
Toggle
's internal styling for the default and small sizes. - Updates the
Accordion
button's background color when expanded, adds a border color when hovered over, and adjusts the padding. - Updates the
CardImage
's margin bottom in the row and column layouts for mobile to be the same. - Updates the
CardImage
to have width 100% on mobile regardless of size. - Updates all the console warnings with consistent NYPL branding prefix label.
- Renames the
Accordion
propcontentData
toaccordionData
. - Renames the
Breadcrumbs
propcolorVariant
tobreadcrumbsType
. - Renames the
Card
propcenter
toisCentered
. - Updates the
Card
proplayout
to use theLayoutTypes
enum instead ofCardLayouts
. - Updates the
CheckboxGroup
proplayout
to use theLayoutTypes
enum instead ofCheckboxGroupLayoutTypes
. - Renames the
Heading
propdisplaySize
to `size. - Renames the
HeadingDisplaySizes
enum to `HeadingSizes. - Renames the
Hero
propimage
toimageComponent
. - Renames the
Image
propimageSize
tosize
. - Renames the
Notification
propcentered
toisCentered
. - Updates the
RadioGroup
proplayout
to use theLayoutTypes
enum instead ofRadioGroupLayoutTypes
. - Internal updates to the
SearchBar
component based on updates from theSelect
andTextInput
components. - Renames the
Select
proptype
toselectType
. - Updates the
SkeletonLoader
proplayout
to use theLayoutTypes
enum instead ofSkeletonLoaderLayouts
. - Renames the
StructuredContentImage
propimageSize
tosize
(this component is based on theImage
component). - Internal updates to the
StructuredContent
component based on updates from theImage
andHeading
components. - Renames the
Tabs
propcontentData
totabsData
. - Renames the
Text
propdisplaySize
tosize
. - Renames the
TextInput
propvariant
totextInputType
. - Updates the
Card
image-related props into one main prop namedimageProps
. This new prop contains the following properties: alt, aspectRatio, caption, component, credit, isAtEnd, size, and src. - Updates the
Hero
propimage
toimageAlt
andimageSrc
. Internally, anImage
component is created. - Renames the
Image
component propsimageAspectRatio
toaspectRatio
,imageCaption
tocaption
, andimageCredit
tocredit
. - Updates the
StructuredContent
image-related props into one main prop namedimageProps
. This new prop contains the following properties: alt, aspectRatio, caption, component, credit, position, size, and src. - Renames the
ToggleSizes.tsx
file toToggleTypes.tsx
. Updates the values fromLarge
andSmall
toDefault
andSmall
. - Minor update to the logic for the
ProgressIndicator
sizing prop and styles.
- Fixes bug where the Next button in
Pagination
would navigate to the previous page. - Fixes the alignment of the first link in the
Pagination
component. - Fixes the
Breadcrumbs
' SVG arrow icon fill color for the "Blogs" variant. - Fixes the margin right value for list items in the
List
component for the inline style. - Fixes bug in the
Select
component where the SVG arrow hides when the component is focused. - Fixes the extra bottom spacing in the
HeroTypes.Campaign
Hero
variant for the mobile view. - Fixes the
Slider
component so it doesn't cause a stack overflow client-side issue when updating the slider thumbs through the keyboard arrows. The values are now returned through Chakra'sonChange
callback instead of theonChangeEnd
callback.
- Removes the
CardLayouts
,CheckboxGroupLayoutTypes
,RadioGroupLayoutTypes
, andSkeletonLoaderLayouts
enums. - Removes the
CardTypes.tsx
,CheckboxGroupLayoutTypes.tsx
, andRadioGroupLayoutTypes.tsx
files.
- Adds
Education
section colors to the color palette theme object. - Adds a
currentPage
prop to thePagination
component, a value that updates the selected page programmatically without the user explicitly requesting it.
- Removes the margin from the global
.nypl p
CSS rule. - Updates the top and bottom margin of the
List
'sUnordered
andOrdered
types. - Updates the
Notification
's icons to be decorative by default. - Updates the default placeholder value for the
SearchBar
'sTextInput
component. - Updates the
SearchBar
'stextInputProps
prop object to not require theplaceholder
property. - Updates the
Logo
component to include new variants forFirstBook
andOpen eBooks
. - Updates the border and text styles for the
Select
component. - Updates the
Breadcrumbs
component to inlcude anEducation
color variant. - Updates the
Icon
component to include theEducation
color values. - Updates the default font stack to fix a typo that was disabling
sans-serif
in the stack. - Removes the
.nypl-ds
CSS class from the base SCSS file, from theTemplateAppContainer
component, from the Storybook configuration, and from the entire repo. - Moves the base styles from the SCSS global file to the Chakra theme global JS object.
- Updates the label font size for the
Radio
andCheckbox
components to be "label.default".
- Fixes the styles for the
Slider
to better accomodate the slider thumbs and the width of the container. - Updates the alignment of the
Notifications
's dismissible icon. - Fixes the border and padding from the
fieldset
HTML element by removing it. - Fixes alignment for long labels in the
Checkbox
andRadio
components. - Fixes the line height for long labels in the
Toggle
component.
- Updates the
Logo
component to include new variants forBPL
,Clever
,LPA
,MLN
,QPL
,Schomburg
,SimplyE
andTreasures
. - Updates font size to "12px" and top margin to "4px" for
HelperErrorText
component. - Updates font size to "14px" for
TextInput
component. - Adds an
aria-label
attribute to theNotification
component to use with itsaside
HTML landmark element. Added an "Accessibility" section in theNotification
Storybook page to note that this component should not be used within aheader
orfooter
HTML landmark element. - Updates the
Notification
component to handle link color inside the content area, better styling for centering and the dismissible variation, and updated background color for the "Announcement" and "Warning" types. - Updates a log message in the
Icon
component to be more descriptive. - Updates the mobile styles for the image in the
StructuredContent
component. - Updates the prop type for the "Definition"
List
type so DOM elements can be passed in the definition.
- Updates the bottom margin of the
Select
in theSearchBar
so that the helper text has standard gap between the main form components and itself. - Updates how
TabList
andTabPanels
are returned in theTabs
component so no false log messages are consoled. - Updates
List
component styling for inline.
- Exports Chakra's
Flex
andSpacer
components. - Adds
TemplateAboveHeader
component in the set of "template" components. - Adds the
aboveHeader
prop to theTemplateAppContainer
component to render aTemplateAboveHeader
component immediately before theTemplateHeader
component. - Adds the
additionalStyles
prop to theSelect
component.
- Renames the
Form
component's"spacing"
prop to"gap"
to be consistent with theFormRow
andFormField
components. - Renames the
FormSpacing
enum toFormGaps
.
- Passes an
onChange
prop to theSelect
component inside theSearchBar
through itsselectProps
prop. - Adds snapshot tests for the
Tabs
component and better checks to warn the user that theTabs
is missing data if data wasn't passed as props or children. - Updates the
Form
component to warn developers when a child component in theFormRow
component is not aFormField
. - Adds an
onSubmit
prop to theForm
component. - Adds the
renderHeaderElement
prop to theTemplateAppContainer
component. This prop is used to control whether theTemplateAppContainer
component should render its own<header>
HTML element through itsheader
prop, or let the user pass in their own component that renders the<header>
HTML element. - Updates the
Fieldset
andRadioGroup
so thechildren
prop is declared throughReact.PropsWithChildren
rather than in their respective prop interfaces. - Adds snapshot tests for the
Accordion
component, as well asid
props to the components within theAccordion
so snapshot tests pass. - Passes an
id
to theIcon
in theSelect
component. - Adds snapshot tests for the
Select
component.
- Fixes
id
propagation issues in theSearchBar
component and its children DS components. - Fixing
Breadcrumbs
related logging issue with a CSS pseudo-selector and setting thearia-label
to "Breadcrumbs". Adding an accessibility test that should fail when more than oneBreadcrumbs
component is rendered on a page since that landmark should only be rendered once on a web page. - Exports the
FullDateType
interface related to theDatePicker
component. - Fixes and removes bad console logs from the
Pagination
andList
components. - Fixes auto-generated
id
s in theTabs
component. - Fixes the Figma link for the
Hero
component. - Fixes
Card
component bug for passing styles to theCardHeading
correctly. - Fixes the
Table
component so that a custom header text color of white does not visually hide row headers on a white background.
- Updates the following packages: multiple
@storybook/...
packages,autoprefixer
,eslint-plugin-storybook
,husky
,lint-staged
,semantic-release-slack-bot
,storybook-addon-designs
. - Removed the following packages:
postcss
,pretty-quick
. - Added
@chakra-ui/react
,@chakra-ui/system
,@emotion/react
,@emotion/styled
, andframer-motion
as "peerDependencies". - Updates the node version in Github Action workflows from Node v12 to Node v14.
- Updates how
/dist/resources.scss
is created through gulp.
- Adds the
Logo
component. - Adds the
noBrandButtonType
boolean prop to theSearchBar
component to render theNoBrand
Button
variant style. - Adds element-specific design tokens for
fontSizes
andfontWeights
. - Adds the
StructuredContent
component. - Adds the
additionalImageStyles
andadditionalFigureStyles
props to theImage
component to specifically target theimg
element's style and thefigure
HTML elements. - Adds the
Table
component.
- Completely removes the
CardEdition
andInput
components and related files and references. - Removes all references of the
BEM
CSS pattern. - Removes all references to logos from the
Icon
component. - Removes passing in text to the
HelperErrorText
component as children. Now, thetext
prop is used to render its text. - Renames the
SearchBar
'shelperErrorText
prop tohelperText
to be consistent with other components.
- Updates the
Form
,HorizontalRule
,Image
component by removing the native HTML attributes as props. This sets the props allowed to the list of props declared in their own files. - Minor change to the
Notification
's heading component so it adds a proper id toNotificationHeading
. - Updates the
Heading
component to use the DSLink
component rather than Chakra'sLink
component. - Updates the style of links rendered in the
Heading
component so they are styled as standard links. The only exception is for links used in theCard
component for the full-click functionality feature. Otherwise, links inCard
headings are styled as standard links. - Updates the
SearchBar
component to now be implemented with theComponentWrapper
component. - Removes the
ButtonTypes.SearchBar
variant style for theButton
component. The style object is now set and passed directly to theButton
component in theSearchBar
component through theadditionalStyles
prop. - Renames
additionalStyles
prop toadditionalWrapperStyles
in theImage
Component. - Updates the label text style in the disabled state of the
Toggle
component. - Updates the
Card
component so it gives a bottom margin to theImage
component when theimageAspectRatio
prop is set toImageRatios.Original
. - Updates the
TextInput
component to use a white background forstatic
,error
andfocus
states. - Updates
Select
component to use a white background forstatic
,error
andfocus
states. - Updates the
Template
component to uses
(16px) spacing on the left and right sides of the main content area. - Updates the
HelperErrorText
component to allow HTML to be passed in as a string or HTML. - Updates how the
HelperErrorText
component renders text in the following components:Checkbox
,CheckboxGroup
,ComponentWrapper
,DatePicker
,Radio
,RadioGroup
,SearchBar
,Select
,Slider
,TextInput
,Toggle
,VideoPlayer
. - Updates the
HorizontalRule
component to use "100%" as the default value for thewidth
prop.
- Fixes the styling of custom anchor elements when passed as a child in the
Link
component. - Allows the
TemplateAppContainer
andTemplateFooter
components to use therenderFooterElement
prop. This istrue
by default so it renders an HTMLfooter
element. If a custom footer component that renders its own HTML<footer>
must be used, then settingrenderFooterElement
to false will not render two nestedfooter
elements. - Fixes the Storybook
level
prop value for theHeading
component so it updates the component. - Removes wrapper divs around custom image elements used in the
Card
component. Also passes the aspect ratio asImageRatios.Original
when the custom image element is passed to theCard
component.
- Adds
embedCode
prop toVideoPlayer
component. - Adds export statements for
ProgressIndicatorSizes
andProgressIndicatorTypes
enums toindex.ts
. - Adds
ExtraSmall
andExtraExtraSmall
size variants to theImage
component. - Adds
ExtraSmall
andExtraExtraSmall
size variants forCardImage
in theCard
component. - Adds
AlertNotificationImportant
icon toIcon
component. - Adds
Toggle
component. - Adds
xxxs
(2px) spacing option to DS design tokens. - Adds
external
variant toLink
component.
- Changes category for
Table
component fromBasic Elements
toPage Layout
. - Updates the background color for the
Locations
variant in theBreadcrumbs
component fromsection.locations.secondary
tosection.locations.primary
. - Updates the
Notification
component to show theAlertNotificationImportant
icon for theStandard
variant. - Reduces the bottom margin on labels and legends for form components from "16px" to "8px", or "s" to "sx" in Chakra-theme variables.
- Updates docs for Chakra
Grid
component to use theme object values rather than CSS variables. - Updates the spacing in the
Notification
component to improve the alignment of the icon and text elements. - Updates the
Notification
component to optionally display/hide theIcon
in the heading or content area. - Updates the
ComponentWrapper
component to allow the internalHelperErrorText
component to get set in the invalid state. Also added tests for this component.
- Fixes two bugs in the
Slider
: (1) unable to call theonChange
function when it is not passed, and (2) fixing the default array value for the range slider so it mounts properly. - Updates the
Select
component's controlled state so that an initial emptyvalue
prop is acceptable.
- Removes
<=12.22
from node engine inpackage.json
to reduce installation issues.
- Adds export statements for
ProgressIndicator
andSlider
components toindex.ts
. - Adds
Blogs
variant toBreadcrumbs
component. - Adds the
placeholder
prop to theSelect
component.
- Adds "(Required)" text to the placeholder in the
SearchBar
component whenisRequired
is true.
- Updates the Github Action for the Github Pages deployment to use node 12 instead of the default node 16. This caused issues since we now set the node engine to
<=12.22
.
- Adds the
ProgressIndicator
component. - Adds documentation for using
NYPL Design Tokens
. - Adds the
ActionHelpDefault
,ActionHelpOutline
andActionLaunch
icons to theIcon
component. - Adds the DS
Slider
component based on the ChakraSlider
andRangeSlider
components. - Adds the
ButtonTypes.NoBrand
variant to theButton
component. - Adds the
additionalStyles
prop to theBreadcrumbs
component.
- Updates the organization of SCSS files by deleting some files and combining others.
- Updates
@chakra-ui/react
to version 1.7.1 and@chakra-ui/system
to version 1.8.1. - Updates the
TextInput
component to now havedefaultValue
andstep
props. - Updates
Latest Version
number forImage
,Notification
andPagination
components. - Removes the Storybook "Knobs" addon.
- Updates the margin for labels in the
DatePicker
component when it is in the "date range" state. - Updates the
DatePicker
component to have proper form spacing when in the "date range" state. - Updates the
Tabs
component to comply with linting rules -- no functional or visual changes were made. - Removes the
alignText
prop from theNotification
component. Storybook was incorrectly displayingalignText
as an available prop.
- Exports components and variables that were initially missed when they were added:
ColorVariants
,Fieldset
,IconAlign
,StatusBadgeTypes
, - Fixes
SearchBar
by passing necessary props down to itsTextInput
through thetextInputProps
prop. - Fixes
DatePicker
component unit tests. - Removes the
showLabel
prop from theSearchBar
component to prevent confusion. Labels for theSelect
andTextInput
components are never shown but are added through thearia-label
attribute.
- Updates the breakpoint CSS variable names by adding the
--nypl
prefix and the SCSS variables by adding the$nypl
prefix. Updates references throughout the codebase. - Changes the
Button
'sdisabled
prop toisDisabled
. - Updates npm packages in
package.json
. Removescpy-cli
,react-uid
,react-is
,stylelint
and related packages, andts-loader
(already added through TSDX). Updates other packages such assass-loader
,prettier
,jest
,jest-axe
, and the majority of Storybook addon packages.
- Deprecates the
Input
component. TheInput
component will be removed from the NYPL Design System React Library in the first release of January 2022. - Deprecates the
CardEdition
component. TheCardEdition
component will be removed from the NYPL Design System React Library in the first release of January 2022.
- Adds the
ImageRatios
,ImageSizes
, andImageTypes
enums. - Composes the DS
Fieldset
component with Chakra. This always renders alegend
element as its first child but it can be optionally hidden from the screen. - Adds the ability to make an entire
Card
component clickable with Chakra'sLinkBox
andLinkOverlay
components. Links in theCardActions
component can still be accessed in this state by clicking with the mouse or tabbing and pressing "enter". - Adds new file type SVG files to use in the
Icon
component: Audio, Doc, GenericDoc, Image, PDF, Spreadsheet, Video. - Adds
ActionCheckCircle
SVG file to use in theIcon
component.
- Updates the Github Action for the changelog reminder.
- Updates the
Checkbox
component with an "indeterminate" state through theisIndeterminate
prop. - Updates the
CheckboxGroup
component story with an "indeterminate" state example. - Updates the
CheckboxGroup
andRadioGroup
components to use theFieldset
component. - Updates the
HelperErrorText
andTextInput
components with addedadditionalStyles
prop. - Updates the
Button
Style Guide documentation. - Updates the
Iconography
Style Guide story documentation. - Updates the
Button
font weight to "regular".
- Fixes nondeterministic unit test in the
DatePicker
component. - Version of latest
List
component release in its storybook page. - Adds validation to the
height
prop in theHorizontalRule
so percentage values are not used. If a percentage value is used, the default "2px" value is set. - Fixes styling issues for the
Notification
dismissible button. - Fixes
SearchBar
mobile styling for theSelect
,TextInput
, andButton
components. - Fixes
SearchBar
focus flicker when theSelect
component is selected.
- Updates the
Notification
component to fix the custom icon alignment. - Adds the
title
prop to theIcon
component to render atitle
HTML element for accessible SVG icons. - Updates the default font size of the
Button
component to"-1"
(14px) for all variants except theLink
variant. Removes thebem
function from internal use and makes it clearer that theButtonGroup
Chakra component is exported in the Design System. - Updates the
errorText
prop toinvalidText
for theCheckbox
component. - Composes the DS
Pagination
component with Chakra. Removes the BEM-related props and updates thecurrentPage
prop toinitialPage
. The current selected page is now kept in state inside thePagination
component and returned to the user throughgetPageHref
oronPageChange
. This also adds better aria attributes to the list inside thePagination
component. - Composes the DS
Image
component with Chakra styling and updates allImage
references in other DS components. Theattributes
prop and the BEM related propsblockname
andmodifiers
have been removed. Adds the following new props:additionalStyles
,component
,imageAspectRatio
,imageSize
,imageType
. - Composes the DS
Card
component with Chakra. BEM related propsmodifiers
andblockname
have been removed. Replaces theCardImageRatios
withImageRatios
. Removes theCardImageSizes
enum. - Composes the DS
DatePicker
component with Chakra. Adds more tests, documentation, and examples. This component now uses theFieldset
component for the date range type, and betterForm
components for layout. Prop name changes:dateRange
is nowisDateRange
andrequired
is nowisRequired
. BEM related propsmodifiers
andblockname
have been removed. The "Required"/"Optional" text in the date range legend can now be hidden with theshowOptReqLabel
prop. - Composes the DS
SkeletonLoader
with Chakra'sSkeleton
component. BEM related propmodifiers
has been removed. Chakra's defaultSkeleton
styles have been updated with NYPL's theme. - Removes deprecated CSS variables. Now the DS repo only uses the CSS variables exposed by Chakra that contain the
--nypl
prefix.
- Adds custom
useCarouselStyles
hook for theTabs
mobile carousel functionality. - Adds custom NYPL-theme radii values to use within Chakra, mostly for border radius values.
- Adds the
showHelperInvalidText
prop to form components to control displaying or hiding the content in theHelperErrorText
component. - Adds
useNYPLTheme
hook for consuming applications to use NYPL DS values. - Adds the DS
ComponentWrapper
helper component for internal use. - Adds
useWindowSize
hook for responsive styles and functionality. - Adds Chakra Migration Guide for version
0.25.0
and greater.
- Updates the CSS vars name prefix to use
nypl
. - Updates documentation in the README and updates the issue contribution template.
- Updates the following components to use the
showHelperInvalidText
prop:Checkbox
,CheckboxGroup
,DatePicker
,Radio
,RadioGroup
,SearchBar
,Select
,TextInput
,VideoPlayer
.
- Composes the DS
Notification
component with Chakra components. Removes theNotificationHeading
andNotificationContent
components as exports and are only used internally inNotification
. Instead of children component,Notification
accepts the heading and content values through thenotificationHeading
andnotificationContent
props, respectively. - Composes the DS
HelperErrorText
component with Chakra. BEM related propsmodifiers
andblockname
have been removed. TheisError
prop has been renamed toisInvalid
. - Composes the DS
VideoPlayer
component with Chakra. BEM related propmodifiers
has been removed. - Composes the DS
HorizontalRule
component with Chakra. BEM related propmodifiers
has been removed, as well as theattributes
prop. - Composes the DS
List
component with Chakra. BEM related propsmodifiers
andblockname
have been removed. ThenoStyling
prop is now used for the no list style variant style.
- Updates the
Accordion
component to internally use Chakra components. - Adds DS
SimpleGrid
component composed from Chakra'sSimplegrid
component. - Adds DS
Text
component composed from Chakra'sText
component. - Update the NYPL Colors with updated color names and values.
- Composes the DS
TextInput
component from Chakra'sInput
andTextarea
components. - Composes the DS
Select
component from Chakra'sSelect
component. - Composes the DS
Hero
component from Chakra's component. - Composes the DS
CheckboxGroup
component from Chakra'sCheckboxGroup
component. - Composes the DS "Template" components (
Template
,TemplateHeader
,TemplateBreakout
,TemplateContent
,TemplateContentPrimary
,TemplateContentSidebar
,TemplateFooter
) from Chakra'sBox
component for page layouts through children components. - Composes the DS
TemplateAppContainer
component from Chakra'sBox
component for page layouts through props. - Composes the DS
Link
component with Chakra component and fixes theButton
type. - Exports Chakra's
Grid
andGridItem
components. - Composes the DS
Label
component with Chakra component and updates the font size. - Composes the DS
StatusBadge
component from Chakra's component. - Composes the DS
Forms
component using DS and Chakra components. - Composes the DS
Icon
component with Chakra'sIcon
component. Added new props forIcon
sizing, alignment, name, and rotation. - Composes the DS
SearchBar
component from DSSelect
,TextInput
,Button
, andHelperErrorText
components. - Composes the DS
Breadcrumbs
component from Chakra'sBreadcumb
,BreadcrumbItem
andBreadcrumbLink
components.
- Updates spacing values to use NYPL spacing rather than "em"s.
- Updates the
SkeletonLoaderLayouts
enum values fromHorizontal
andVertical
toRow
andColumn
, respectively. - Updates the
CardLayouts
enum values fromHorizontal
andVertical
toRow
andColumn
, respectively. - Updates font size of the
legend
element used inCheckboxGroup
,DatePicker
andRadioGroup
. - Updates the radius values through Chakra's theme object.
- Renames
HeadingDisplaySizes.tsx
toHeadingTypes.tsx
.
- Integrates Chakra-UI into the codebase.
- Moved SCSS and CSS variable styles into a custom NYPL theme to extend Chakra's base theme.
- Adds
DSProvider
component to use the NYPL theme in consuming applications. - Exports Chakra's
Box
,Center
,Circle
,Square
,Stack
,HStack
, andVStack
components. - Composes the DS
Button
component from Chakra'sButton
component. - Composes the DS
Heading
component from Chakra'sHeading
component. - Composes the DS
Tabs
component from Chakra'sTabs
,TabList
,Tab
,TabPanels
, andTabPanel
components. - Composes the DS
Radio
component from Chakra'sRadio
component. - Composes the DS
RadioGroup
component from Chakra'sRadioGroup
component. - Composes the DS
Checkbox
component from Chakra'sCheckbox
component. - Updates the
errorText
prop name toinvalidText
.
- Removes the
color-classes
SCSS mixin.
- Updates the development preview URL from the Netlify link to the Tugboat QA link.
- Adds
FormSpacing
enum to DS exports. - Adds
utility_account_filled
,utility_account_unfilled
,utility_hamburger
andutility_search
icons toIcon
component.
- Updates
General Guidelines
forButtons Style Guide
.
- Fixes left padding on
Card
whenimageAtEnd
andborder
are bothtrue
.
- Renames original
Card
components to beCardEdition
.
- Adds the
DatePicker
component. - Adds new
Card
component. - Adds
spacing
prop toForm
component to allow for spacing variations. - Adds Style Guide
Forms
- Exports
VideoPlayerAspectRatios
. - Adds additional props for the
DatePicker
component based on its TAD Addendum section. - Adds Tugboat QA configuration for PR preview deployments to replace Netlify.
- Updates the
DatePicker
,TextInput
,Select
, andLabel
components to pass an optionalshowOptReqLabel
prop to conditionally render "Required"/"Optional" in the label text.
- Fixes Accordion FAQ Storybook example rendering bug.
- Adds TSDX as the bootstrapping tool to add opinionated configurations.
- Adds an
/example/
directory through TSDX with an small playground app. - Snapshot testing through
react-test-renderer
and Jest. - Typescript documentation file to be use as a development guide.
- Typescript documentation for
enum
variables in the TYPESCRIPT file. - Adds
SkeletonLoaderLayouts
andSkeletonLoaderImageRatios
enums to DS exports. - Adds heading, description and helper text to
VideoPlayer
component. - Adds
@storybook/addons-jest
plugin to display Jest/React Testing Library unit tests in a Storybook tab.
- Updates Style Guide
Spacing
. - Updates
Hero
component to includeCampaign
variant. - Updates
Hero
stories to use MDX format. - Updated warnings for too few or too many option children for the
Select
component. - Updates the README to include information on the production, development, and "preview" Storybook documentation instances.
- Removes a custom SCSS breakpoint in
_Breadcrumbs.scss
in favor of mobile-first style rules. - Replaces Mocha, Chai, Sinon, and Enzyme for Jest and React Testing Library for unit testing.
- Replaces webpack with rollup through TSDX.
- Updates npm scripts to use TSDX for internal commands.
- Replaces lodash with own functions.
- Minor updates to Github Actions.
- Adds PostCSS/autoprefixer to Rollup workflow instead of the default scss minifier.
- Fixes the
bem
utility function so that it doesn't crash Storybook whenever themodifiers
Controls prop option is empty.
- Removes the
storybook-static
directory from.gitignore
so that the Github Actions deploy job can work properly.
- Adds
Form
component. - Adds
Notification
component. - Adds Style Guide
Buttons
. - Adds
VideoPlayer
component. - Adds the ability to render a
textarea
element from theTextInput
component.
- Updates stories for the
List
component to use MDX format. - Updates stories for the
Pagination
component to use MDX format. - Updates how children are rendered in the
List
component. Direct childrenli
,dt
, anddd
elements can still be passed, but specific data structures can be passed to thelistItems
prop to render the appropriate children element. - Updates to the contributing documentation, pull request template, and the README.
- Changes
DisplaySizes
toHeadingDisplaySizes
. - Changes
Skeleton Loader
to be configurable via props. - Changes
Button
to use16px
for left/right padding for buttons with text; icon only buttons still use8px
left/right padding. - Changes
TextInput
label text tofont-weight: 500
.
- Adds CSS vars for
font-weight
- Adds
displaySize
prop toHeading
- Adds Style Guide
Iconography
- Adds new SVGs to be used with the
Icon
component. Among the new SVGs are: Error solid, Error outlined, Speaker Notes. - Adds ability to change the color of an SVG icon with classes such as:
ui-black
(default),ui-white
,brand-primary
(red),section-research-secondary
(turquoise). - Adds
helperText
anderrorText
props toCheckbox
- Adds
helperText
anderrorText
props toRadio
- Adds
errorText
,helperText
,labelText
,required
andshowLabel
props toSelect
- Updates content in Style Guide
Typography
- Updates content in Style Guide
Breakpoints
- Changes
Link
story from.tsx
to.mdx
.
- Deprecates
ariaLabel
,helperTextId
,isRequired
andlabelId
props inSelect
- Removes
breakout
CSS fromBreadcrumbs
. To retain previous behavior,Breadcrumbs
component should be a child of a.content-header
element. - Removes
breakout
CSS fromHero Secondary
. To retain previous behavior,Hero
component should be a child of a.content-header
element.
- Adds
HorizontalRule
component - Adds new
short
class forPlaceholder
- Adds
Style Guide
category to Storybook sidebar
- Changes
Breadcrumbs
story from.tsx
to.mdx
- Changes
Heading
story from.tsx
to.mdx
- Changes suggested DOM structure in
Template
Story
- Adds documentation on layout bidirectionality
- Changes
Pagination
to hide pagination UI when there are 0 or 1 pages.
- Removes
color-classes
andcss-vars
mixins from_03-mixins.scss
- Adds
color-classes
andcss-vars
mixins tostyles.scss
- Changes order of CSS
@import
rules instyles.scss
- Adds quotes around
black
andwhite
in$colors
object in_colors-utility.scss
- Removes
--ui-success
CSS variable and adds--ui-success-primary
and--ui-success-secondary
- Removes
checkboxId
prop fromCheckbox
component and employsid
in its place. - Removes
defaultChecked
prop fromCheckbox
component. - Removed
labelOptions
prop fromCheckbox
component and employslabelText
in its place.
- Added: Definition List component.
- Changed: Separate Checkbox into its own component.
- Changed: Separate Radio button into its own component.
- Adds
Tertiary
state to Hero component - Changes
Brand
andUtility
color values to match Figma main file - Changes
Radio
styles to use SASS vars in place of CSS vars - Adds
TextInput
component to handle email, hidden, number, password, text, textarea, tel and url input types - Adds default width and padding to
StatusBadge
component. - Hides pagination when there are 0 or 1 pages.
- Fixed layout bug for layouts that include a right sidebar column and DOM structure.
- Adds
getPageHref
toPagination
Accordion
: Addsfixed-height
modifier anddefaultOpen
propList
defaults to grey bullets instead of black- Adds margins inside the default columns of
Card
- Breadcrumbs now show up in light colours
- Template reflow and breakpoints now happen at the same time
- Fixes release github action
- Removes
statusBadgeText
prop in StatusBadge to allow text to be inside component
- Add
method
andaction
toSearchBar
<form>
- Add the
attributes
property to theSearchBar
<form>
- Adds focus outline to the
Accordion
component so it appears when it is tabbed.
- Exports mixins in a
resources.scss
file that can be used by consumers.
Link
with classbutton
has white text color
- Fixes
Pagination
when there are fewer than 4 pages - Adds
StatusBadge
component todesign-system-react-components
package
Select
: selectedOption holds the selected value, instead of just the default.Hero
:Hero.Secondary
now changes background color based on NYPL site sectionHero
: All props are now optionalInput
: added onChange prop to explicitly allow it to be used as a controlled component- Uses stricter linters and more Prettier configs.
- Removed
SectionTitle
- Scopes all element selects to the
.nypl-ds
class
- Accordion: Accordion input styling affects only direct children
- Checkbox: Allows checkbox to be used as a controlled component or uncontrolled component.
- Updates
Pagination
component to match new design.
- Adds actual
StatusBadge
component with props for setting levels RENO-1882
- Updates
Hero
's primary option to have a larger top/bottom padding on the inner content via Reno-1670
- Converts the Accordion component to open and close through CSS rather than through Javascript.
- Updates the
Input
component to conditionally render anid
attribute if anid
prop value is passed to it.
- Add
overflow: hidden
to.no-scroll
styling on<body>
for modal to prevent scroll element for content behind modal being displayed
- Updates Accordion sets so that first item in list doesn't have
-1px
top margin
- For
Input
components that use the.input-group
class, on mobile those input elements are now stacked on top of each other rather than side-to-side.
- Updates the
Input
component to allow it to render a "hidden" input type.
- Removes type, color, and line-height declarations from
body
tags and moves them to the.nypl-ds
namespace
- Moves footer outside of
.nypl-ds
namespace on Template story
SkeletonLoader
component for loading screens
selectedOption
toPagination
story
FiftyFifty
Hero type styling
- Sets up the default
font-size
value in the.nypl-ds
namespace.
- Styling for
Accordion
sets
className
s withinAccordion
for content- Hover stylings for
Accordion
- Removes the padding on the
breakout
mixin - Removes the padding on the
wrapper
mixin at thexl
breakpoint
arrow_xsmall
andsearch_small
icons
- Fixes a bug in which content was not centered within
Button
when button was made larger than the text content
- Additional
Button
CSS that was no longer used after Button API refactor in 0.13.0 - Deprecates
SearchResultItem
Image
now has analt
prop instead of analtText
prop- Removes
isDecorative
property in favor of an emptyalt
- Adds HTML
<img>
props to theImage
component
- Removes all icon props from
Button
. Button now usesIcon
as a child - Removes
ButtonIconPositions
- Makes
Button
'sonClick
property optional
- Moves box-sizing declarations to a
.nypl-ds
namespace. All future "global" CSS settings will move to exist under this namespace.
- Universal focus styling
- Updates the margin on action-links from
xxs
toxs
- Removes the
description
tag from the<span>
element wrapping svg icons (#360)
Icon
now accepts children for custom icons
- Status Badge component as stories
- DS bundle is now compiled for es5 instead of es6 to accommodate for IE11 and the arrow functions we're using in DS
- Removes options from the
Pagination
component
- Updates the
Link
component'slinkType
prop totype
, implementsReact.forwardRef
to use with other libraries, and updates the stories.
- Updates the
Icon
component'sname
prop to allow forLogoNames
enum types.
- Adds a "negative" NYPL logo to be used on non-white backgrounds.
- Updates the formatting of svg file names to use underscores
- Updates the
Input
element to allow props and attributes to be able to render input elements of type "radio".
- Deprecates
SectionName
in favor of the stories underColors—Brand
- SVGs for NYPL full logo lockup, Queens Public Library Logo, and Brooklyn Public Library Logo
- CSS to style React Autosuggest
Breadcrumbs
's background color now reflects the app's globally applied section modifier, such as.nypl--locations
. It recognizes these for--locations
,--whats-on
,--research
, and--books-and-more
.
- Removes
$color-spotlight
,$color-your-interests
,$color-support
, and$color-help
- Removes all
$nypl-
prefixed Sass variables $color-success
is now--ui-success
.- Breakpoint variables are now prefixed with
breakpoint
. - Type sizing variables are now prefixed with
font-size
. - Typeface variables are now prefixed with
typeface
. - Removes
--font-size-1p5
, which was originally added as certain designs call out20px
for headings and others at18px
. Figma documentation refers to18px
only as of 0.1.1.
- Exposes color and typography constants as CSS variables
- Adds Section colors for
--section-research-library-lpa
,--section-research-library-schomburg
, and--section-research-library-schwartzman
- Letterspacing property on all body copy
width: 100%
on svgs
- Adds icons for
accessibility_full
,accessibility_partial
,clock
,check
, andclose
- Updates the
download
icon to Google Material Design's icon.
- Updated the Select component to take in a ref using ForwardRef and also a
name
prop.
FormDropDown
andDropdown
are nowSelect
Textfield
has been retired in favor ofInput
Input
type is now controlled via an enum defined inInputTypes
instead of a string- Changes
referenceId
tohtmlFor
onLabel
- Deprecates
DateRangeForm
,BodyText
,SearchPromo
,Container
, andRNHeaderWithSearch
Button
now accepts anonClick
instead of acallback
- In the
ButtonTypes
enum,Filled
andOutline
have been changed toPrimary
andSecondary
, respectively Accordion
now acceptsaccordionLabel
andlabelId
instead ofbuttonOpts
properties- Removes project-specific styles for now deprecated
EditionCard
- Removes project-specific styles of
.search-results-list
and.form-item--radios
UnorderedList
is nowList
, with an enum to control whether is it ordered or unorderedInput
id
is no longer prepended withinput-
Button
id
is no longer prepended withbtn-
SearchBar
no longer has props forselectChangeHandler
,selectBlurHandler
, orsearchChangeHandler
.Input
offersariaLabel
andariaLabelledby
props in favor oflabelId
andhelperTextId
- Removes
headingAttributes?: {}
fromSectionTitle
- Adds
aria-live
andaria-atomic
toHelperErrorText
in its errored state - Adds "Optional", "Required", or empty string inside
Label
for forms - Adds
IconNames
enum to makeallSVGs
array globally accessible - Adds
width: 100%
globally to SVGs Card
now constrains items in itsimage
column to the column width- Adds the
forwardRef
implementation to theInput
component - Adds
disabled
prop toInput
andButton
components - Adds
disabled
styling toButton.Primary
- Adds
className?: string;
as additional props to all components - Adds
attributes?: { [key: string]: string };
toInput
,Button
,Select
,Link
, andImage
- Adds
justify-content: center
forButton
with icon to adjust for mobile
- Fixes bug in former
FormDropdown
(nowSelect
) where the select value would not change ifselectedOption
were passed Link
's scss now references$ui-link-primary
instead of$nypl-blue-regular
- Changes
Select
's SCSS to use the updated styling from Filament Group Image
is wrapped infigure
whenimageCaption
orimageCredit
is passed toImage
- Adds
viewport
properties to any SVG files that were missing it
- Removes
HelperErrorTextOptions
- Removes
RNSectionTitle
- Updates
$nypl-blue-regular
from #0071ce to #0576d3 $nypl-blue-regular
is now extended with$ui-link-primary
EditionCard
is nowCard
- Buttons from black by default to blue
- Icon for audiobook
- Changes the line-height values on some of the heading mixins
- Makes all IDs optional
- Concatenates
BasicLink
,UnderlineLink
, andIconLink
intoLink
withLinkTypes
enum - Moves styles into their corresponding component folders
- Moves base styles into the react-components package
- Deprecates
@nypl/design-system-styles
- Moves tests into their corresponding component folders
- Flattens component structure to export as one package.
- Exports
Icon
- Fixed
dist
script so it clears the folder - Added
viewBox
toarrow
icon
- added
Template
stories - fixed
Accordion
buttons - added
viewBox
toarrow-xsmall
icon
- Move
Placeholder
,Modal
,SectionName
andContainer
from/00-base
into top-level/components
- Fix Storybook errors for Headings with Bold and Headings with Link.
- Move
Headings/*
from/02-molecules
into top-level/components
- Inlined icons inside
react-components
- No longer publishing
@nypl/design-system-icons
package
- Exported
searchValue
andselectedField
inRNHeaderWithSearch
- Added
blockName
handling toDateRangeForm
- Exports
SectionName
andImage
- Edition Card no longer accepts strings for links and descriptions
- Added
iconName
as an optional prop inIconLink
HeaderWithImageRight
component and corresponding story
- Reworks
HeaderWithImageRight
intoHero
, which accepts values from an enum to display different kinds of heros based on this documentation page
Textfield
id is no longer duplicatedDropdown
now appliesbem
blockName
Pagination
now passes inblockName
intoDropdown
- Large classes now have
Opts
inteface that allows for the component to be built over multiple steps. This affects:HelperErrorText
Label
TextField
Button
- Deprecated
SearchResultsList
,IconLinkList
andEditionsList
in favor ofUnorderedList
type
inButton
now corresponds to html button types.buttonType
in button corresponds to the visual categories of buttons (eg:filled
,outline
)subtitle
inSearchResultsItem
changed tosubtitleContent
to take a JSXLabel
andButton
only accept children when called directly
Checkbox
DateRangeForm
Input
Accordion
UnorderedList
- Changelog update
HeaderImgRight
accepts elements
Button
component accepts content to render from itscontent
prop or itschildren
prop.
EditionCard
EditionInfo
fields accept elementsEditionCard
ReadOnline
andDownload
fields accept elements
- added
noLinkElement
toEditionCard
to receive an element
EditionsList
Dropdown
which controlsFormDropdown
and its correspondingLabel
Label
HelperErrorText
Pagination
EditionCard
componentSearchResultItem
component that usesEditionCard
RN Header With Search
- a story for
RN Section Title
, which is just a collection of styles SearchResultsList
component
- added
iconModifiers
toButton
buttonId
inButton
is now required- refactored
FormDropdown
to not include its ownlabel
RN Header With Search
- a story for
RN Section Title
, which is just a collection of styles Link
->BasicLink
for clarity- Bugfixes in
UnderlineLink
andIconLink
- Added stories for
BasicLink
Link
missing URL error message- Consolidated
Heading
andPageTitle
Heading
now only takes a single span- Added ResearchNow specific
SearchBar
error state - A11Y changes for
SearchBar
andHeaderWithSearch
- Added stories for AT-79, AT-264 and AT-3
selectedOption
added toFormDropdown
stores selected state
- A webpack file in order to build and distribute a compiled version of the react components. Does not replace the /lib folder usage, but the main file is now pointing to
/dist/design-system-react-components.min.js
.
Image
for 2:1 ratioPageTitle
Header with Image Right
FormDropdown
SearchPromo
- Moved heading-related atoms from
01-atoms/Text
into01-atoms/Text/Heading
- Updated
Searchbar
component to include Parameters - Changed
Breadcrumb
export fromBreadcrumbs
Icon
import
Body text
component for plain-text elementsUnderlineLink
andIconLink
for linksIcon
component that uses thedesign-system-icons
package.SectionTitle
andHeading
for heading componentsIconLink-List
for the list of subject linksButton
andTextField
for the searchbarSearchBar
component
Breadcrumb
now shows icon in mobile view
- Changed
Breadcrumb
toBreadcrumbs
to match Twig - Changed the Breadcrumbs props to accept components
- Started a change log
- Added the Breadcrumb React Component
- Changed folder structure to match Twig
- Published as a test