Releases: looker-open-source/components
Releases · looker-open-source/components
0.9.24
@looker/components
Added
ExtendComponentsProvideruseDataTablehook for simpleDataTablerendering (used for testing)
Fixed
Avatarwill consistently maintain it's 1:1 aspect ratio within flex layoutsCodeBlockshould now usesoverflow-y: autoinstead ofoverflow-y: scrollDataTablewith number columns now properly aligns the cell contentDataTableCelltruncatesdescriptionappropriately nowDataTableCellwith a link is presented properly when it gains focus via keyboardDataTableColumnwidthagain supportsnumberfor percentage-based column widthsDataTableHeaderCellproperly aligns sort direction icon when columnsizeis specifiedDataTableItemsupports a single columnDialogContentnow will only enter "overflow" state exactly once per render lifecycleDialogFooterLayoutis no longer exported
0.9.23
General (tooling and infrastructure)
Added
- Refine Storybook config to support build-modes
- enables faster image-snapshot generation and better development performance.
- specify mode via shell export:
export storybookBuildMode=developfast- disables Typescript extraction and all addonsdevelop- disables "Docs" addonpublish- enables Typescript extraction and fulladdon-essentialssupport
@looker/components
Added
DataTable(the component formerly known asActionList)- Columns now support
size- If
small,mediumorlargeis specified the content will be truncated to fit - If
nowrapcolumn will not wrap white-space and will grow fit content width
- If
- Responsive support - if table exceeds viewport width it will scroll sideways
firstColumnStuckdeveloper can specify if the first column should "stick" to the viewport edge when scrolling- NOTE: Column for checkbox selection and actions column are always stuck to their respective edges
- Column selection - the user can select which columns are displayed (if any columns have
hidespecified in their configuration) - Supports
state="loading|noResults"andnoResultsDisplay
- Columns now support
autoFocusprop will now work for inputs inPopoverandDialogDialog&Drawernow support semantic sizes (xxsmall - xlarge)Dialognow supportsplacement-center(default),top&coverDrawernow supportsplacement-left&right(default)Select,SelectMulti,InputTimeSelect, andInputSearchnow supportautoFocus
Changed
ActionListwas renamed toDataTable- Now uses a
tableelement instead of previous grid layout (IE11 compatible) - Vertical cadence of
ActionListreduced to a minimum of36px
- Now uses a
Popover,Menu, andSelectno longer cancel the first click outside by default (usecancelClickOutsideto override this)DialogContentno longer haspyunless it overflows the available space (acting asoverflow: scroll)- Padding in
Button's has been updated to have better visual balance when icons are used
Fixed
FieldCheckboxGroupnow setsborder-colorof child checkboxes to "critical" when validationMessage.type is equal to 'error'InlineInputTextnow supportsdisabledandreadOnlypropsInlineTextAreanow supportsdisabledandreadOnlypropsInputColorno longer allows user to click swatch whenreadOnlyis assignedMenuItemswithin the sameMenuListalign consistently when icons are usedPagefix size to use%instead ofvh/vwPopoverflashing in the upper left corner of the screen on slow pagesSelecton a mobile device or with "tap to click" on a touch pad reopens immediately after clicking on an optionSelectoptions not being announced in a screen reader on keyboard navigationSelectthat is controlled no longer loses focus if there's delay betweenonChangeandvalueupdateSelectalignment of options when some have icons and others do notSelectinappropriately shows "No options" when the current value is empty, after filtering a long list down to a single option then deleting the filter textSelectremounts its options when the options prop changes, using a shallow comparison. This causes select via click to fail if the options prop "changes" (same values, new array instance) after a mousedown, e.g. if a parent component containsusePopover.
Removed
ActionListManagerwas removed (DataTablenow supportsstate=loading|noResults)ActionList(now known asDataTable) no longer supportsheaderprop (header is always generated by component now)columnno longer supportswidth(see newsizebehavior)
Dialogno longer supportsmaxWidth(it's now always100%- usewidth)Drawerno longer supportsheight(useminHeight)Dialogno longer supportssurfaceStyles(use built-in props instead)DialogManageris no longer available (Dialogis completely compatible with previous interface)groupedPopoversRefandgroupedMenusRef(PopoverandMenuno longer cancel the first click outside)
0.9.22
0.9.21
@looker/components
Changed
InputFilters- Default editor uses
RadioGroup(single choice) andCheckboxGroup(multiple choice) - Developers can specify a custom editor that via
fieldFilter.editorproperty (must match interface forInputFilterEditorRenderProp)
- Default editor uses
Fixed
InputFilters- improved styling when
Chipswrap to additional lines Popoverno longer moves whenChipis initially displayed
- improved styling when
Selectinside aDialoglosing focus after clicking an optionTooltipadding extra space to its child'sclassName
0.9.20
@looker/components
Added
IconButtonsupportstoggleprop (useskeycolor when toggled andaria-pressed)TooltipanduseTooltipnow include a brief delay before showingdelayprop controls the length- Improved test coverage / added image-snapshots
TreebranchAlignprop allows item be indented at the same depth as adjacentTreeItem(s)Treenow supportsdividersto produce a small visual space between eachTreeItemdisplayed in the list so that adjacent items in a "selected" or active state have visual separation.
Changed
ButtonItemused insideButtonToggleandButtonGroupnow usesfonts.bodyDialog,DrawerandPopoverno longer focus the first "tab-able" child. Instead they now focus the surface of the overlay itself.InputFilterto support multiline filter tokensuseDialog(Dialog&Drawer) refactored- Removed use of
react-transition-groupdependency - Added support for
aria-busy - Simplified implementation of
DialogRendercomponent
- Removed use of
Swatchno longer turns gray when disabled, but has a reduced opacity instead- Removed dependencies on
polishedlibrary
Fixed
InputTimeSelectcan accept a time that is not included in the select dropdown optionsFieldInlinerefactored to use MS-compatible grid (IE11 compatibility)FieldCheckboxFieldRadioFieldToggleSwitch
MenuItemnow receives and uses passed-in rel prop- Also auto appends "noopener noreferrer" to rel if target="_blank"
Popover&usePopoverrefactored internally to be consistent withDialogrefactor patterns- IMPORTANT NOTE: Popover will no longer apply
activeclassName to target. Instead it now applies[aria-expanded='true']instead.Button*has been updated to match this change but implementations that depend on the previous behavior will need to be updated.
- IMPORTANT NOTE: Popover will no longer apply
Select/SelectMulti/InputTimeSelectclick to select option in IE11
Removed
Drawerno longer supportsbackdropprop for customizing backdrop presentationIconButtonsupport forcolor(neutralfor all now)ToggleSwitchno longer supportssize(now always consistent withCheckbox&Radio)
@looker/design-tokens
Changed
theme.transitionsdurations are now integers (in milliseconds) rather than strings- Reduced & consolidated dependencies on
polishedlibrary
@looker/icons
Added
ScheduleOutline
0.9.19
Changed
InputDateRangeallows you to specify a single day range by clicking on one of the date range endpoints
Fixed
Truncateno longer conflicts withText/truncatehelper (moved to separate directory)FieldTimeSelectlabel ARIA accessibility fixesComboBoxand constituents caret color corrected, indicator size corrected
0.9.18
Added
TreeGroupsupportstruncateandlabelColorprops
Changed
IconButtonw/size="small"icon size adjusted tosmall(wasxsmall)useDialogneeds to support scenario it is controlled butonCloseisn't specified
Fixed
Spacerevert mistakenly appliedflex-shrink: 0- Reverts:
HoverDisclosuretoggles visibility with css rather than inserting elements into the DOM - Fix
image-snapshotsissue
0.9.17
Added
ComboboxandComboboxMultiopenOnClickpropComboboxInputnow supportsfreeInputpropMenuItem&MenuGroupnow uselist-item-styleto suppress bullet for list item when rendered outside ofMenuListcontext.Select,SelectMultiandInputSearchnow supportisLoadinganddetailprop on optionsSpan- same asTextwithout the annoyingfontSize="medium"(inherits by default instead)TruncatecomponentuseDialog- all of the power ofDialogin a hook!- Visual Snapshot test for
MenuItem,MenuGroup,Status
Changed
Code,CodeBlock&Paragraphnow explicitly usetheme.colors.textas default colorDialogBackdropis now dark (Material-esque)- now supports all previous
DialogManagercomposition capabilities - can be used in either an "uncontrolled" or "controlled" manner
- temporarily supports optional
contentprop until existing call sites can be updated.contentwill become required in next significant release.
DialogManageris deprecated and all existing use cases should be replaced withDialog- All internal use of
DialogManagerreplaced withDialog
- All internal use of
Draweris nearly a direct pass-through toDialogviauseDrawerandDialogRenderuseDraweris nearly a direct pass-through touseDrawerwith the key exception beingSurfaceoverride
HoverDisclosuretoggles visibility with css rather than inserting elements into the DOMInputSearchonChangecallback argument is now a string rather than an eventInputTimeSelectsupports 20- and 60-minute intervalsLegendnow applies font-familybrandMenuGroupLabelnow applies font-familybrandSpanreplaced all library-internal usage ofTextwithSpanTreeItem- now supports text truncation behavior
- now wraps long text pleasantly
- now defaults to
24pxminimum height (was previously25px) - detail no longer has padding on the right side
Tooltipnow has a defaultmaxWidthof30rem(this can be overridden)- Brand font defaults to Roboto
- Adjusted icons sizes in
IconButtons,Button,MenuItems,TextFieldto ensure consistent sizing across components
Fixed
ComboboxMultiissue with chips not updating reflecting updated option labelsDialogFooter&DialogHeaderwill no longer shrink in Safari when vertical space is limitedInputTimeSelectdisabled stateMessageBarnow displays properly in IE11 (switched from grid to flex layout)
Removed
InputSearchonClear– useonChangewith a check for empty value insteadInputSearchandInputChipshideControls– useisClearable={false}instead
Preview / Experimental
- Experimental:
InputSearchsupportsonSelectOption,changeOnSelect,clearOnCloseand allSelectprops exceptisFilterable,onFilter,showCreateandformatCreateLabel
0.9.16
Added
-
Drawercomponent- Note: This is a new implementation of the previously deprecated
Drawerand features a more modern API.DrawerManagerbehaviors are now baked in toDrawer - Includes
useDrawerhook
- Note: This is a new implementation of the previously deprecated
-
TabListnow supportsPaddingPropsandfontSize -
TabListw/distributenow uses default "small"fontSize -
Image snapshots tests
- Infrastructure to run image snapshot tests leveraging Storybook
storyshots+jest-image-snapshots - Image snapshot coverage for
Button*,IconButton&Treecomponents
- Infrastructure to run image snapshot tests leveraging Storybook
-
Storybook: Preliminary infrastructure for composition
-
Storybook: Added support for extract behavior to improve published-Storybook performance
Changed
ComponentsProvidernow includesScrollLockContextto manage all scroll locks forDialogandPopover- Where previously
DialogContextpropertiesenableScrollLock,disableScrollLock, andscrollLockEnabledcould previously be used to take control of a scroll lock, now useScrollLockContextpropertiesenableCurrentLock,disableCurrentLock, andactiveLockRefto do so.
- Where previously
AccordionDisclosure"indicator" now matches color of container rather than preserving it's initial color- Storybook configuration improvements
addons-essentialsnow used- Replace
withKnobswithControls&Args
Fixed
- Page "jumps" when opening a
Popoverdue to the scrollbar disappearing
Preview / Experimental
- Experimental:
@looker/components-theme-editorpackage - Preview:
InputFilterscomponent and tests (this component is not yet ready for general-use) - Preview:
ActionListControlscomponent (this component is not yet ready for general-use) - Preview: "Semantic" Layout components -
Layout,Header,Footer,Aside