-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chore/decouple button content #3730
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chandlerprall or @thompsongl I'd love your help on this one for TS. I've outlined my issues below.
I'll take a look |
Preview documentation changes for this PR: https://eui.elastic.co/pr_3730/ |
For rendering the contents of buttons, icon (loading spinner) and text wrapper for children
d9b751e
to
a922012
Compare
Actually hold off a bit on reviewing, I've found a couple extra places for optimization |
Preview documentation changes for this PR: https://eui.elastic.co/pr_3730/ |
- Extend EuiButtonContentProps - Content styles are in button_content.scss
Ok, now this is ready for review. A lot of the changed files are just snapshots since this PR changes the classNames of some of the button internals. |
Preview documentation changes for this PR: https://eui.elastic.co/pr_3730/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall the changes LGTM.
After seeing the comment from @myasonik about a more curated list of internal elements, it may be worth adding a code comment that links to this PR so we can follow the thread to the source if necessary.
Alright, I'll give in and create basically an allow list for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🎉
I looked at the code and tested the EuiButton
and EuiButtonEmpty
to see if they work as expected. I couldn't find any issue.
Preview documentation changes for this PR: https://eui.elastic.co/pr_3730/ |
* Break up release.js (elastic#3723) * Switch release.js to use arguments instead of env vars * Switch MFA code back to env var so it doesn't leak in CI logs * Update job definition to use --type arg * Support breaking up release steps with args * Break release up to fetch time-sensitive MFA token right before publish * Strip whitespace from each step Co-authored-by: Chandler Prall <[email protected]> Co-authored-by: Chandler Prall <[email protected]> * Allow prop-setting on the FlexItems within DescribedFormGroup (elastic#3717) * Allow prop-setting on the FlexItems within DescribedFormGroup * Add changelog entry * Honor classes on fieldFlexItem * Update src/components/form/described_form_group/described_form_group.test.tsx Co-authored-by: Caroline Horn <[email protected]> * Update snap name Co-authored-by: Caroline Horn <[email protected]> * Re-focus EuiSuperSelect input after making a value change (elastic#3734) * Re-focus EuiSuperSelect input after making a value change * changelog * [EuiStat] Allow customizing the render of the title and description HTML tags (elastic#3693) * Add titleElement and descriptionElement to EuiStat * Updated snapshots * Updated changelog * Fixed issue with screenreader * Updated snapshots * Use screen reader only if title and description is a string * updated snapshots * Merge remote-tracking branch 'upstream/master' into fix/stat * Fixed typo in changelod * removed titleChildren * titlechildren as variable * Update CHANGELOG.md Remove an extra line left over from a merge resolution Co-authored-by: Chandler Prall <[email protected]> * [EuiTable] Expand item action name to allow a function (elastic#3739) * allow for item -> ReactNode in name * docs * CL * Add ssh keys so new tags can be pushed to Github from Jenkins (elastic#3740) * Add ssh keys so new tags can be pushed to Github * Need a vault token before we can pull secrets * update i18ntokens * 27.1.0 * Updated documentation. * Chore/decouple button content (elastic#3730) * [New] EuiButtonContent For rendering the contents of buttons, icon (loading spinner) and text wrapper for children * Use EuiButtonContent in EuiButtonEmpty * Fixing classNames and disabled states * Create EuiButtonDisplay for internal usage * Fix snaps * ts gymnastics * Added tests for EuiButtonContent * More optimization - Extend EuiButtonContentProps - Content styles are in button_content.scss * Restricted list of `element`s * [Docs] Adding more acccessibility-focused notes and examples (elastic#3714) * making more a11y callouts in docs * Apply suggestions from code review Co-authored-by: gchaps <[email protected]> * prettier update Co-authored-by: gchaps <[email protected]> * [EuiFocusTrap] Use `react-focus-on` (elastic#3631) * WIP: react-focus-on * WIP: fix GuideFullScreen * noIsolation; onClickOutside * euiflyout snapshot updates * euiflyout snapshot updates * euimodal snapshot updates * euidatagrid snapshot updates * euicolorpalettepicker snapshot updates * euisuperselect snapshot updates * euicollapsible snapshot updates * euifocustrap snapshot updates * allow for array snapshots with takeMountedSnapshot * docs improvements * default to noIsolation=true and scrollLock=false * CL * Fixed bug in EuiComboBox always showing a scrollbar (elastic#3744) * Fixed EuiComboBox always showing a scrollbar * Adding the right PR number to CL * Added useEuiI18n hook (elastic#3749) * Added useEuiI18n hook * Updated docs with useEuiI18n hook, added snippets * Add support to fetch-1i8n-strings or useEuiI18n to match EuiI18n extraction * Fix up return types for useEuiI18n * Updated custom eslint i18n rule/package to lint useEuiI18n usages * changelog * Remove something I was testing with and lost where I had placeed it. * [EuiSuperDatePicker] Bypass formatting `null` dates (elastic#3750) * prevent formatting on null value * remove unnecessary cast * account for keyboard nav with null selection * CL * Updated EuiComboBox to allow the options list to open for single selection custom options (elastic#3706) * Fixing includes to return true when object exists in array * changelog * Allowing list to open for single selection custom options * Updated changelog * PR review * Improving example * Improving example * Addind isClearable * Improving examples * Improving explanation text * Adding note * Addressing PR issues * Update src-docs/src/views/combo_box/combo_box_example.js Co-authored-by: Caroline Horn <[email protected]> * Update src-docs/src/views/combo_box/combo_box_example.js Co-authored-by: Caroline Horn <[email protected]> * Snippet Co-authored-by: Caroline Horn <[email protected]> * Add analyze event glyph to EuiIcon (elastic#3729) * adding analyze event security icon * updating analyze_event icon * updating again * Update CHANGELOG.md * Update consuming.md (elastic#3769) * Path has changed and the wiki has not been updated. * Fix zIndex for two popup ups (elastic#3768) Clicking both buttons on https://eui.elastic.co/#/tabular-content/data-grid-styling-and-toolbar demo brings up partially hidden popups because their z-index is too low. Increasing by one seems to do the trick. * [Playground] EuiBadge, EuiNotificationBadge, EuiBetaBadge (elastic#3722) * created playground for badges * removed commented code * used validator for iconType and colour * updated variable name * removed colour validation * removed unnecessary imports * removed default values, fullscreen mode * suggesstions * removed placeholder, added required, some badge props set to string * used actual value of child in text field * added sanitize function * fixed unique-key warning * added validation * updated to identify the change whenthe state changes * suggestions * added onCLick function snippet * removed error popup by react-view * removed lint err * removed commented code Co-authored-by: Josh Mock <[email protected]> Co-authored-by: Chandler Prall <[email protected]> Co-authored-by: Scott Gould <[email protected]> Co-authored-by: Caroline Horn <[email protected]> Co-authored-by: Ashik Meerankutty <[email protected]> Co-authored-by: Greg Thompson <[email protected]> Co-authored-by: Michail Yasonik <[email protected]> Co-authored-by: gchaps <[email protected]> Co-authored-by: Elizabet Oliveira <[email protected]> Co-authored-by: Marra Sherrier <[email protected]> Co-authored-by: Alberto Andújar <[email protected]> Co-authored-by: Yuri Astrakhan <[email protected]>
* [New] EuiButtonContent For rendering the contents of buttons, icon (loading spinner) and text wrapper for children * Use EuiButtonContent in EuiButtonEmpty * Fixing classNames and disabled states * Create EuiButtonDisplay for internal usage * Fix snaps * ts gymnastics * Added tests for EuiButtonContent * More optimization - Extend EuiButtonContentProps - Content styles are in button_content.scss * Restricted list of `element`s
This reverts commit 0a9cb7a.
This reverts commit 0a9cb7a.
Pre-requisite to finishing #3099
EuiButtonGroup will not be able to use
<EuiButton>
directly, and therefore, we will need to rebuild a lot of styles so that they can look/accept the same params as EuiButton, but render as a<label>
.Instead of just allowing EuiButton to render as a
<label>
to anyone (since this can easily be abused), there are 2 pre-requisites to make it easier to re-apply EuiButton content and styles that this PR does.This is a new internal-only component that just pulls out the spans creating the content span that encompasses the icon and text span. Now used by both EuiButton and EuiButtonEmpty (possibly others in the future).
Also an inernal-only component, and truly an internal to EuiButton only component as well. This is basically all of the original code for EuiButton but with the additional prop of
element
which can be span, a, button, label, etc...Then the EuiButton code itself is just the
a
vsbutton
that it passes to<EuiButtonDisplay>
.Checklist
[ ] Checked in mobile[ ] Checked in IE11 and Firefox[ ] Props have proper autodocs[ ] Added documentation[ ] Checked Code Sandbox works for the any docs examples[ ] Checked for breaking changes and labeled appropriately[ ] Checked for accessibility including keyboard-only and screenreader modes