@ember-eui/core 4.2.6 → 5.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addon/components/common.ts +1 -0
- package/addon/components/eui-accordion/index.hbs +106 -85
- package/addon/components/eui-accordion/index.ts +58 -19
- package/addon/components/eui-auto-sizer/index.hbs +3 -0
- package/addon/components/eui-auto-sizer/index.ts +175 -0
- package/addon/components/eui-avatar/index.hbs +7 -3
- package/addon/components/eui-badge/index.hbs +9 -3
- package/addon/components/eui-beta-badge/index.hbs +171 -19
- package/addon/components/eui-bottom-bar/index.hbs +43 -12
- package/addon/components/eui-bottom-bar/index.ts +75 -32
- package/addon/components/eui-breadcrumbs/index.hbs +98 -0
- package/addon/components/eui-breadcrumbs/index.ts +194 -0
- package/addon/components/eui-button/index.hbs +4 -4
- package/addon/components/eui-button-content/index.hbs +6 -2
- package/addon/components/eui-button-empty/index.hbs +60 -52
- package/addon/components/eui-button-icon/index.hbs +17 -3
- package/addon/components/eui-call-out/index.hbs +1 -0
- package/addon/components/eui-card/index.hbs +61 -47
- package/addon/components/eui-card/index.ts +27 -0
- package/addon/components/{eui-card/eui-card-select → eui-card-select}/index.hbs +2 -5
- package/addon/components/eui-card-select/index.ts +35 -0
- package/addon/components/eui-checkable-card/index.hbs +17 -11
- package/addon/components/eui-checkbox/index.hbs +11 -5
- package/addon/components/eui-checkbox/index.ts +15 -0
- package/addon/components/eui-code/index.hbs +14 -8
- package/addon/components/eui-code/index.ts +73 -0
- package/addon/components/eui-code-block/controls/index.hbs +26 -0
- package/addon/components/eui-code-block/full-screen-display/index.hbs +12 -0
- package/addon/components/eui-code-block/index.hbs +144 -9
- package/addon/components/eui-code-block/index.ts +290 -0
- package/addon/components/eui-code-block/virtualized/index.hbs +30 -0
- package/addon/components/eui-code-block/virtualized/index.ts +22 -0
- package/addon/components/eui-collapsible-nav/index.hbs +35 -44
- package/addon/components/eui-collapsible-nav/index.ts +161 -0
- package/addon/components/eui-collapsible-nav-group/index.hbs +114 -66
- package/addon/components/eui-combo-box/group/index.hbs +3 -3
- package/addon/components/eui-combo-box/index.hbs +8 -5
- package/addon/components/eui-combo-box/index.ts +89 -4
- package/addon/components/eui-combo-box/options/index.hbs +14 -2
- package/addon/components/eui-combo-box/options/index.js +22 -9
- package/addon/components/eui-combo-box/trigger/index.hbs +3 -1
- package/addon/components/eui-confirm-modal/index.hbs +1 -1
- package/addon/components/eui-copy/index.hbs +1 -4
- package/addon/components/eui-described-form-group/index.hbs +3 -2
- package/addon/components/eui-description-list/index.hbs +23 -0
- package/addon/components/eui-description-list-description/index.hbs +3 -0
- package/addon/components/eui-description-list-title/index.hbs +3 -0
- package/addon/components/eui-dual-range/index.hbs +30 -18
- package/addon/components/eui-dual-range/index.ts +36 -10
- package/addon/components/eui-empty-prompt/index.hbs +77 -0
- package/addon/components/eui-field-number/index.hbs +3 -3
- package/addon/components/eui-field-search/index.hbs +2 -1
- package/addon/components/eui-field-text/index.hbs +3 -1
- package/addon/components/eui-file-picker/index.hbs +15 -11
- package/addon/components/eui-file-picker/index.ts +26 -8
- package/addon/components/eui-flyout/index.hbs +130 -43
- package/addon/components/eui-flyout/index.ts +233 -0
- package/addon/components/eui-flyout-body/index.hbs +21 -7
- package/addon/components/eui-form-label/index.hbs +1 -1
- package/addon/components/eui-form-row/index.hbs +13 -9
- package/addon/components/eui-header/index.hbs +18 -3
- package/addon/{modifiers/fixed-header.ts → components/eui-header/index.ts} +10 -1
- package/addon/components/eui-header-alert/index.hbs +25 -0
- package/addon/components/eui-header-breadcrumbs/index.hbs +7 -0
- package/addon/components/eui-header-links/index.hbs +41 -0
- package/addon/components/eui-header-links/index.ts +14 -0
- package/addon/components/eui-header-section-item-button/index.hbs +30 -12
- package/addon/components/eui-header-section-item-button/index.ts +131 -0
- package/addon/components/eui-health/index.hbs +15 -13
- package/addon/components/eui-hide-for/index.hbs +3 -0
- package/addon/components/eui-hide-for/index.ts +33 -0
- package/addon/components/eui-icon/index.hbs +6 -3
- package/addon/components/eui-icon/index.ts +4 -0
- package/addon/components/eui-image/index.hbs +63 -25
- package/addon/components/eui-input-popover/index.ts +6 -4
- package/addon/components/eui-key-pad-menu/index.hbs +16 -0
- package/addon/components/eui-key-pad-menu/key/index.hbs +1 -0
- package/addon/components/eui-key-pad-menu-item/index.hbs +66 -0
- package/addon/components/eui-key-pad-menu-item/index.ts +11 -0
- package/addon/components/eui-link/index.hbs +50 -0
- package/addon/components/eui-list-group-item/index.hbs +10 -2
- package/addon/components/eui-markdown-editor/index.hbs +4 -1
- package/addon/components/eui-markdown-editor/index.ts +54 -0
- package/addon/components/eui-markdown-editor-footer/index.hbs +39 -40
- package/addon/components/eui-markdown-format/index.ts +1 -1
- package/addon/components/eui-markdown-format/markdown-code/index.hbs +2 -2
- package/addon/components/eui-markdown-format/markdown-code-block/index.hbs +1 -0
- package/addon/components/eui-modal/index.hbs +28 -24
- package/addon/components/eui-overlay-mask/index.hbs +4 -4
- package/addon/components/eui-overlay-mask/index.ts +14 -1
- package/addon/components/eui-page/index.hbs +3 -6
- package/addon/components/eui-page-body/index.hbs +47 -15
- package/addon/components/eui-page-content/index.hbs +6 -8
- package/addon/components/eui-page-content-body/index.hbs +13 -1
- package/addon/components/eui-page-content-header/index.hbs +6 -0
- package/addon/components/eui-page-header/index.hbs +31 -6
- package/addon/components/eui-page-header-content/index.hbs +219 -0
- package/addon/components/eui-page-header-content/index.ts +49 -0
- package/addon/components/eui-page-side-bar/index.hbs +8 -1
- package/addon/components/eui-page-template/index.hbs +417 -0
- package/addon/components/eui-page-template/index.ts +89 -0
- package/addon/components/eui-panel/index.hbs +58 -12
- package/addon/components/eui-popover/index.hbs +8 -4
- package/addon/components/eui-popover/index.ts +28 -12
- package/addon/components/eui-progress/index.hbs +16 -13
- package/addon/components/eui-radio/index.hbs +9 -3
- package/addon/components/eui-range/index.hbs +33 -11
- package/addon/components/eui-range/index.ts +7 -4
- package/addon/components/eui-range-input/index.hbs +37 -31
- package/addon/components/eui-range-input/types.ts +2 -1
- package/addon/components/eui-range-levels/index.hbs +3 -3
- package/addon/components/eui-range-ticks/index.hbs +2 -2
- package/addon/components/eui-range-track/index.hbs +10 -2
- package/addon/components/eui-range-track/index.ts +23 -6
- package/addon/components/eui-show-for/index.hbs +3 -0
- package/addon/components/eui-show-for/index.ts +79 -0
- package/addon/components/eui-side-nav/index.hbs +161 -36
- package/addon/components/eui-side-nav/index.ts +28 -0
- package/addon/components/eui-side-nav-item/button/index.hbs +26 -14
- package/addon/components/eui-side-nav-item/index.hbs +52 -25
- package/addon/components/eui-split-panel/inner/index.hbs +10 -0
- package/addon/components/eui-split-panel/outer/index.hbs +27 -0
- package/addon/components/eui-split-panel/outer/index.ts +37 -0
- package/addon/components/eui-step/eui-step-number/index.hbs +21 -4
- package/addon/components/eui-steps/index.hbs +7 -1
- package/addon/components/eui-tab/index.hbs +28 -3
- package/addon/{modifiers/focus-tab.ts → components/eui-tab/index.ts} +6 -1
- package/addon/components/eui-tabs/index.hbs +6 -1
- package/addon/components/eui-tool-tip/index.hbs +6 -7
- package/addon/components/eui-tool-tip/index.ts +27 -11
- package/addon/helpers/class-names.ts +2 -0
- package/addon/helpers/get-range-tick.ts +53 -8
- package/addon/helpers/unique-id.ts +4 -1
- package/addon/styles/ember-eui.css +2 -10
- package/addon/utils/breakpoint.ts +114 -0
- package/addon/utils/code/utils.ts +304 -0
- package/addon/utils/css-mappings/eui-avatar.ts +51 -9
- package/addon/utils/css-mappings/eui-badge.ts +6 -2
- package/addon/utils/css-mappings/eui-beta-badge.ts +22 -0
- package/addon/utils/css-mappings/eui-bottom-bar.ts +8 -1
- package/addon/utils/css-mappings/eui-button-empty.ts +4 -4
- package/addon/utils/css-mappings/eui-button-icon.ts +19 -6
- package/addon/utils/css-mappings/eui-button.ts +2 -1
- package/addon/utils/css-mappings/eui-card-select.ts +1 -11
- package/addon/utils/css-mappings/eui-card.ts +1 -18
- package/addon/utils/css-mappings/{eui-code-block-impl.ts → eui-code-block.ts} +0 -0
- package/addon/utils/css-mappings/eui-description-list.ts +29 -0
- package/addon/utils/css-mappings/eui-empty-prompt.ts +17 -0
- package/addon/utils/css-mappings/eui-flyout.ts +21 -1
- package/addon/utils/css-mappings/eui-header-links.ts +27 -0
- package/addon/utils/css-mappings/eui-health.ts +20 -0
- package/addon/utils/css-mappings/eui-icon.ts +94 -70
- package/addon/utils/css-mappings/eui-image.ts +17 -2
- package/addon/utils/css-mappings/eui-link.ts +21 -0
- package/addon/utils/css-mappings/eui-page-body.ts +25 -0
- package/addon/utils/css-mappings/eui-page-content-body.ts +17 -0
- package/addon/utils/css-mappings/eui-page-content.ts +7 -1
- package/addon/utils/css-mappings/eui-page-header.ts +17 -0
- package/addon/utils/css-mappings/eui-page-side-bar.ts +17 -0
- package/addon/utils/css-mappings/eui-panel.ts +1 -0
- package/addon/utils/css-mappings/eui-progress-data.ts +0 -1
- package/addon/utils/css-mappings/eui-progress.ts +0 -2
- package/addon/utils/css-mappings/eui-range-levels.ts +22 -4
- package/addon/utils/css-mappings/eui-tabs.ts +3 -1
- package/addon/utils/css-mappings/eui-text-color.ts +3 -2
- package/addon/utils/css-mappings/index.ts +23 -3
- package/addon/utils/detect-element-resize.js +248 -0
- package/addon/utils/markdown/plugins/markdown-add-components/index.ts +1 -0
- package/addon/utils/markdown/plugins/{markdown-add-components.ts → markdown-add-components/processor.ts} +14 -7
- package/addon/utils/markdown/plugins/markdown-checkbox/index.ts +9 -0
- package/addon/utils/markdown/plugins/{markdown-checkbox.ts → markdown-checkbox/parser.ts} +3 -5
- package/addon/utils/markdown/plugins/markdown-default-plugins/index.ts +12 -0
- package/addon/utils/markdown/plugins/{markdown-default-plugins.ts → markdown-default-plugins/parsing-plugins.ts} +13 -25
- package/addon/utils/markdown/plugins/markdown-default-plugins/plugins.ts +32 -0
- package/addon/utils/markdown/plugins/markdown-default-plugins/processing-plugins.ts +67 -0
- package/addon/utils/markdown/plugins/markdown-default-plugins/ui-plugins.ts +27 -0
- package/addon/utils/markdown/plugins/markdown-tooltip/index.ts +2 -0
- package/addon/utils/markdown/plugins/{markdown-tooltip.ts → markdown-tooltip/parser.ts} +3 -23
- package/addon/utils/markdown/plugins/markdown-tooltip/plugin.ts +17 -0
- package/addon/utils/markdown/plugins/to-dom.ts +3 -1
- package/addon/utils/markdown/remark/remark-prismjs.ts +41 -0
- package/addon/utils/popover/index.ts +87 -35
- package/addon/utils/range/index.ts +1 -0
- package/app/components/eui-auto-sizer/index.js +1 -0
- package/app/components/eui-breadcrumbs/index.js +1 -0
- package/app/components/eui-card-select/index.js +1 -0
- package/app/components/{eui-code-block-impl → eui-code-block/controls}/index.js +1 -1
- package/app/components/{eui-code-block-impl/code-block-controls → eui-code-block/full-screen-display}/index.js +1 -1
- package/app/components/eui-code-block/virtualized/index.js +1 -0
- package/app/components/eui-description-list/index.js +1 -0
- package/app/components/eui-description-list-description/index.js +1 -0
- package/app/components/eui-description-list-title/index.js +1 -0
- package/app/components/eui-empty-prompt/index.js +1 -0
- package/app/components/eui-header-alert/index.js +1 -0
- package/app/components/eui-header-breadcrumbs/index.js +1 -0
- package/app/components/eui-header-links/index.js +1 -0
- package/app/components/eui-hide-for/index.js +1 -0
- package/app/components/eui-key-pad-menu/index.js +1 -0
- package/app/components/eui-key-pad-menu/key/index.js +1 -0
- package/app/components/eui-key-pad-menu-item/index.js +1 -0
- package/app/components/eui-link/index.js +1 -0
- package/app/components/eui-page-header-content/index.js +1 -0
- package/app/components/eui-page-template/index.js +1 -0
- package/app/components/eui-show-for/index.js +1 -0
- package/app/components/eui-split-panel/inner/index.js +1 -0
- package/app/components/eui-split-panel/outer/index.js +1 -0
- package/app/utils/copy-to-clipboard.js +1 -0
- package/docs/display/avatar-demo/demo1.md +43 -49
- package/docs/display/avatar-demo/demo2.md +42 -0
- package/docs/display/avatar-demo/demo3.md +33 -0
- package/docs/display/avatar-demo/demo4.md +53 -0
- package/docs/display/avatar-demo/demo5.md +38 -0
- package/docs/display/avatar.md +9 -1
- package/docs/display/badge-demo/demo1.md +111 -168
- package/docs/display/badge-demo/demo2.md +34 -0
- package/docs/display/badge-demo/demo3.md +73 -0
- package/docs/display/badge-demo/demo4.md +29 -0
- package/docs/display/badge-demo/demo5.md +33 -0
- package/docs/display/badge-demo/demo6.md +71 -0
- package/docs/display/badge-demo/demo7.md +101 -0
- package/docs/display/badge-demo/demo8.md +22 -0
- package/docs/display/badge.md +9 -1
- package/docs/display/callout-demo/demo1.md +29 -81
- package/docs/display/callout-demo/demo2.md +28 -0
- package/docs/display/callout-demo/demo3.md +29 -0
- package/docs/display/callout-demo/demo4.md +26 -0
- package/docs/display/callout.md +15 -1
- package/docs/display/card/basic-card-demo/demo1.md +22 -316
- package/docs/display/card/basic-card.md +9 -1
- package/docs/display/card/beta-badge-demo/demo1.md +47 -0
- package/docs/display/card/beta-badge.md +9 -0
- package/docs/display/card/checkable-demo/demo1.md +20 -94
- package/docs/display/card/checkable-demo/demo2.md +63 -0
- package/docs/display/card/checkable.md +9 -1
- package/docs/display/card/custom-children-demo/demo1.md +93 -0
- package/docs/display/card/custom-children.md +9 -0
- package/docs/display/card/footer-demo/demo1.md +77 -0
- package/docs/display/card/footer.md +9 -0
- package/docs/display/card/images-demo/demo1.md +57 -0
- package/docs/display/card/images.md +9 -0
- package/docs/display/card/layout-demo/demo1.md +40 -0
- package/docs/display/card/layout.md +9 -0
- package/docs/display/card/selectable-demo/demo1.md +60 -53
- package/docs/display/card/selectable.md +9 -1
- package/docs/display/comment-list.md +9 -1
- package/docs/display/description-list-demo/demo1.md +54 -0
- package/docs/display/description-list-demo/demo2.md +43 -0
- package/docs/display/description-list-demo/demo3.md +58 -0
- package/docs/display/description-list-demo/demo4.md +42 -0
- package/docs/display/description-list-demo/demo5.md +62 -0
- package/docs/display/description-list-demo/demo6.md +46 -0
- package/docs/display/description-list.md +9 -0
- package/docs/display/empty-prompt-demo/demo1.md +49 -0
- package/docs/display/empty-prompt.md +11 -0
- package/docs/display/health-demo/demo1.md +11 -7
- package/docs/display/health-demo/demo2.md +31 -0
- package/docs/display/health.md +15 -1
- package/docs/display/icons-demo/demo1.md +270 -57
- package/docs/display/icons-demo/demo2.md +76 -0
- package/docs/display/icons-demo/demo3.md +76 -0
- package/docs/display/icons-demo/demo4.md +104 -0
- package/docs/display/icons-demo/demo5.md +64 -0
- package/docs/display/icons-demo/demo6.md +63 -0
- package/docs/display/icons-demo/demo7.md +101 -0
- package/docs/display/icons-demo/demo8.md +47 -0
- package/docs/display/icons.md +9 -1
- package/docs/display/image-demo/demo1.md +15 -50
- package/docs/display/image-demo/demo2.md +35 -0
- package/docs/display/image-demo/demo3.md +75 -0
- package/docs/display/image-demo/demo4.md +80 -0
- package/docs/display/image.md +13 -1
- package/docs/display/list-group.md +9 -1
- package/docs/display/progress-demo/demo1.md +10 -5
- package/docs/display/progress-demo/demo2.md +11 -26
- package/docs/display/progress-demo/demo3.md +27 -0
- package/docs/display/progress-demo/demo4.md +77 -0
- package/docs/display/progress.md +9 -1
- package/docs/display/stat-demo/demo1.md +0 -118
- package/docs/display/stat-demo/demo2.md +24 -22
- package/docs/display/stat-demo/demo3.md +39 -0
- package/docs/display/stat-demo/demo4.md +50 -0
- package/docs/display/stat-demo/demo5.md +25 -0
- package/docs/display/stat-demo/demo6.md +40 -0
- package/docs/display/stat-demo/demo7.md +84 -0
- package/docs/display/stat.md +15 -1
- package/docs/display/text-demo/demo1.md +79 -130
- package/docs/display/text-demo/demo2.md +71 -0
- package/docs/display/text-demo/demo3.md +39 -0
- package/docs/display/text.md +20 -1
- package/docs/display/title-demo/demo1.md +50 -26
- package/docs/display/title.md +9 -1
- package/docs/display/tool-tip-demo/demo1.md +57 -100
- package/docs/display/tool-tip-demo/demo2.md +35 -29
- package/docs/display/tool-tip-demo/demo3.md +52 -0
- package/docs/display/tool-tip-demo/demo4.md +77 -0
- package/docs/display/tool-tip.md +15 -1
- package/docs/editors/code/code-block-demo/demo1.md +21 -40
- package/docs/editors/code/code-block-demo/demo2.md +35 -0
- package/docs/editors/code/code-block-demo/demo3.md +43 -0
- package/docs/editors/code/code-block-demo/demo4.md +28 -0
- package/docs/editors/code/code-block-demo/demo5.md +42 -0
- package/docs/editors/code/code-block-demo/demo6.md +42 -0
- package/docs/editors/code/code-block-demo/demo7.md +853 -0
- package/docs/editors/code/code-block-demo/demo8.md +855 -0
- package/docs/editors/code/code-block.md +27 -1
- package/docs/editors/code/inline-demo/demo1.md +6 -3
- package/docs/editors/code/inline.md +9 -1
- package/docs/editors/markdown-editor/base-editor-demo/demo1.md +9 -28
- package/docs/editors/markdown-editor/base-editor.md +9 -1
- package/docs/forms/form-controls/checkbox/demo/demo1.md +49 -0
- package/docs/forms/form-controls/checkbox/index.md +34 -0
- package/docs/forms/form-controls/{checkbox-group-demo → checkbox-group/demo}/demo1.md +4 -13
- package/docs/forms/form-controls/checkbox-group/index.md +35 -0
- package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo1.md +8 -2
- package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo2.md +10 -8
- package/docs/forms/form-controls/combo-box/demo/demo3.md +60 -0
- package/docs/forms/form-controls/{combo-box-demo/demo3.md → combo-box/demo/demo4.md} +17 -14
- package/docs/forms/form-controls/combo-box/demo/demo5.md +151 -0
- package/docs/forms/form-controls/combo-box/index.md +14 -0
- package/docs/forms/form-controls/file-picker/demo/demo1.md +29 -0
- package/docs/forms/form-controls/file-picker/demo/demo2.md +44 -0
- package/docs/forms/form-controls/file-picker/demo/demo3.md +45 -0
- package/docs/forms/form-controls/file-picker/demo/demo4.md +63 -0
- package/docs/forms/form-controls/file-picker/index.md +30 -0
- package/docs/forms/form-controls/{form-control-layout-demo → form-control-layout/demo}/demo1.md +0 -0
- package/docs/forms/form-controls/form-control-layout/index.md +38 -0
- package/docs/forms/form-controls/{form-control-layout-delimited-demo → form-control-layout-delimited/demo}/demo1.md +41 -37
- package/docs/forms/form-controls/form-control-layout-delimited/index.md +32 -0
- package/docs/forms/form-controls/number-field/demo/demo1.md +20 -0
- package/docs/forms/form-controls/{number-field-demo/demo1.md → number-field/demo/demo2.md} +23 -11
- package/docs/forms/form-controls/number-field/index.md +20 -0
- package/docs/forms/form-controls/password-field/demo/demo1.md +19 -0
- package/docs/forms/form-controls/{password-field-demo/demo1.md → password-field/demo/demo2.md} +12 -8
- package/docs/forms/form-controls/password-field/index.md +27 -0
- package/docs/forms/form-controls/radio/demo/demo1.md +43 -0
- package/docs/forms/form-controls/radio/index.md +32 -0
- package/docs/forms/form-controls/radio-group/demo/demo1.md +50 -0
- package/docs/forms/form-controls/radio-group/index.md +26 -0
- package/docs/forms/form-controls/range/demo/demo1.md +96 -0
- package/docs/forms/form-controls/range/demo/demo2.md +62 -0
- package/docs/forms/form-controls/{range-demo → range/demo}/demo3.md +10 -12
- package/docs/forms/form-controls/{range-demo → range/demo}/demo4.md +16 -18
- package/docs/forms/form-controls/{range-demo → range/demo}/demo5.md +18 -20
- package/docs/forms/form-controls/range/demo/demo6.md +57 -0
- package/docs/forms/form-controls/range/demo/demo7.md +350 -0
- package/docs/forms/form-controls/range/index.md +26 -0
- package/docs/forms/form-controls/search-field/demo/demo1.md +29 -0
- package/docs/forms/form-controls/search-field/index.md +22 -0
- package/docs/forms/form-controls/select/demo/demo1.md +29 -0
- package/docs/forms/form-controls/select/demo/demo2.md +44 -0
- package/docs/forms/form-controls/{select-demo/demo1.md → select/demo/demo3.md} +20 -10
- package/docs/forms/form-controls/select/index.md +27 -0
- package/docs/forms/form-controls/{switch-demo → switch/demo}/demo1.md +10 -10
- package/docs/forms/form-controls/switch/index.md +21 -0
- package/docs/forms/form-controls/text-field/demo/demo1.md +35 -0
- package/docs/forms/form-controls/text-field/demo/demo2.md +40 -0
- package/docs/forms/form-controls/{text-field-demo/demo2.md → text-field/demo/demo3.md} +14 -17
- package/docs/forms/form-controls/{text-field-demo/demo1.md → text-field/demo/demo4.md} +18 -32
- package/docs/forms/form-controls/text-field/index.md +22 -0
- package/docs/forms/form-controls/textarea/demo/demo1.md +21 -0
- package/docs/forms/form-controls/textarea/demo/demo2.md +24 -0
- package/docs/forms/form-controls/textarea/index.md +22 -0
- package/docs/forms/form-layouts/described-form-groups-demo/demo1.md +13 -4
- package/docs/forms/form-layouts/described-form-groups.md +9 -1
- package/docs/layout/accordion-demo/demo1.md +21 -102
- package/docs/layout/accordion-demo/demo2.md +76 -0
- package/docs/layout/accordion-demo/demo3.md +25 -0
- package/docs/layout/accordion-demo/demo4.md +26 -0
- package/docs/layout/accordion-demo/demo5.md +65 -0
- package/docs/layout/accordion-demo/demo6.md +78 -0
- package/docs/layout/accordion-demo/demo7.md +66 -0
- package/docs/layout/accordion-demo/demo8.md +64 -0
- package/docs/layout/accordion-demo/demo9.md +114 -0
- package/docs/layout/accordion.md +40 -1
- package/docs/layout/bottom-bar-demo/demo1.md +32 -49
- package/docs/layout/bottom-bar-demo/demo2.md +54 -0
- package/docs/layout/bottom-bar-demo/demo3.md +81 -0
- package/docs/layout/bottom-bar.md +9 -1
- package/docs/layout/flex.md +9 -1
- package/docs/layout/flyout-demo/demo1.md +19 -11
- package/docs/layout/flyout-demo/demo2.md +43 -28
- package/docs/layout/flyout-demo/demo3.md +99 -0
- package/docs/layout/flyout-demo/demo4.md +115 -0
- package/docs/layout/flyout-demo/demo5.md +59 -0
- package/docs/layout/flyout-demo/demo6.md +57 -0
- package/docs/layout/flyout-demo/demo7.md +51 -0
- package/docs/layout/flyout.md +9 -1
- package/docs/layout/header-demo/demo1.md +284 -35
- package/docs/layout/header-demo/demo2.md +42 -0
- package/docs/layout/header-demo/demo3.md +48 -0
- package/docs/layout/header-demo/demo4.md +57 -0
- package/docs/layout/header-demo/demo5.md +232 -0
- package/docs/layout/header-demo/demo6.md +85 -0
- package/docs/layout/header-demo/demo7.md +94 -0
- package/docs/layout/header.md +9 -1
- package/docs/layout/horizontal-rule.md +9 -1
- package/docs/layout/modal-demo/demo1.md +64 -167
- package/docs/layout/modal-demo/demo2.md +126 -0
- package/docs/layout/modal-demo/demo3.md +55 -0
- package/docs/layout/modal-demo/demo4.md +65 -0
- package/docs/layout/modal-demo/demo5.md +96 -0
- package/docs/layout/modal.md +9 -1
- package/docs/layout/page-demo/demo1.md +96 -3
- package/docs/layout/page-demo/demo10.md +42 -0
- package/docs/layout/page-demo/demo2.md +46 -0
- package/docs/layout/page-demo/demo3.md +50 -0
- package/docs/layout/page-demo/demo4.md +38 -0
- package/docs/layout/page-demo/demo5.md +30 -0
- package/docs/layout/page-demo/demo6.md +51 -0
- package/docs/layout/page-demo/demo7.md +59 -0
- package/docs/layout/page-demo/demo8.md +19 -0
- package/docs/layout/page-demo/demo9.md +29 -0
- package/docs/layout/page.md +9 -1
- package/docs/layout/panel-demo/demo1.md +28 -19
- package/docs/layout/panel-demo/demo2.md +22 -0
- package/docs/layout/panel-demo/demo3.md +27 -0
- package/docs/layout/panel-demo/demo4.md +46 -0
- package/docs/layout/panel-demo/demo5.md +81 -0
- package/docs/layout/panel.md +15 -1
- package/docs/layout/popover-demo/demo1.md +42 -300
- package/docs/layout/popover-demo/demo10.md +72 -0
- package/docs/layout/popover-demo/demo2.md +306 -96
- package/docs/layout/popover-demo/demo3.md +20 -12
- package/docs/layout/popover-demo/demo4.md +118 -0
- package/docs/layout/popover-demo/demo5.md +252 -0
- package/docs/layout/popover-demo/demo6.md +44 -0
- package/docs/layout/popover-demo/demo7.md +44 -0
- package/docs/layout/popover-demo/demo8.md +50 -0
- package/docs/layout/popover-demo/demo9.md +80 -0
- package/docs/layout/popover.md +9 -1
- package/docs/navigation/breadcrumbs-demo/demo1.md +77 -0
- package/docs/navigation/breadcrumbs-demo/demo2.md +61 -0
- package/docs/navigation/breadcrumbs-demo/demo3.md +61 -0
- package/docs/navigation/breadcrumbs-demo/demo4.md +61 -0
- package/docs/navigation/breadcrumbs-demo/demo5.md +61 -0
- package/docs/navigation/breadcrumbs-demo/demo6.md +61 -0
- package/docs/navigation/breadcrumbs.md +9 -0
- package/docs/navigation/button-demo/demo1.md +210 -158
- package/docs/navigation/button.md +9 -1
- package/docs/navigation/collapsible-nav-demo/demo1.md +21 -44
- package/docs/navigation/collapsible-nav-demo/demo2.md +108 -0
- package/docs/navigation/collapsible-nav.md +9 -1
- package/docs/navigation/key-pad-menu-demo/demo1.md +77 -0
- package/docs/navigation/key-pad-menu-demo/demo2.md +102 -0
- package/docs/navigation/key-pad-menu-demo/demo3.md +54 -0
- package/docs/navigation/key-pad-menu-demo/demo4.md +71 -0
- package/docs/navigation/key-pad-menu-demo/demo5.md +65 -0
- package/docs/navigation/key-pad-menu.md +9 -0
- package/docs/navigation/link-demo/demo1.md +44 -0
- package/docs/navigation/link-demo/demo2.md +41 -0
- package/docs/navigation/link-demo/demo3.md +45 -0
- package/docs/navigation/link-demo/demo4.md +61 -0
- package/docs/navigation/link.md +9 -0
- package/docs/navigation/side-nav-demo/demo1.md +34 -18
- package/docs/navigation/side-nav.md +9 -1
- package/docs/navigation/steps-demo/demo1.md +16 -18
- package/docs/navigation/steps-demo/demo2.md +18 -21
- package/docs/navigation/steps-demo/demo3.md +12 -10
- package/docs/navigation/steps-demo/demo4.md +84 -0
- package/docs/navigation/steps-demo/demo5.md +29 -0
- package/docs/navigation/steps.md +9 -1
- package/docs/navigation/tabs.md +9 -1
- package/docs/utilities/auto-sizer-demo/demo1.md +34 -0
- package/docs/utilities/auto-sizer.md +9 -0
- package/docs/utilities/copy-demo/demo1.md +37 -0
- package/docs/utilities/copy-demo/demo2.md +70 -0
- package/docs/utilities/copy.md +9 -0
- package/docs/utilities/mutation-observer.md +9 -1
- package/docs/utilities/outside-click-detector.md +9 -1
- package/docs/utilities/overlay-mask.md +9 -1
- package/docs/utilities/portal.md +9 -1
- package/docs/utilities/resize-observer.md +9 -1
- package/docs/utilities/responsive-demo/demo1.md +108 -0
- package/docs/utilities/responsive.md +9 -0
- package/index.js +4 -2
- package/package.json +13 -7
- package/CHANGELOG.md +0 -1335
- package/addon/components/eui-code-block-impl/code-block-controls/index.hbs +0 -33
- package/addon/components/eui-code-block-impl/index.hbs +0 -111
- package/addon/components/eui-code-block-impl/index.ts +0 -121
- package/addon/components/eui-flyout-body/banner/index.hbs +0 -3
- package/addon/components/eui-flyout-body/content/index.hbs +0 -3
- package/addon/helpers/create-event.ts +0 -30
- package/addon/modifiers/get-cursor-node.ts +0 -54
- package/addon/modifiers/invalidate-indeterminate.ts +0 -10
- package/addon/modifiers/on-event-simulate-event.ts +0 -32
- package/app/components/eui-card/eui-card-select/index.js +0 -1
- package/app/components/eui-flyout-body/banner/index.js +0 -1
- package/app/components/eui-flyout-body/content/index.js +0 -1
- package/app/helpers/create-event.js +0 -1
- package/app/modifiers/fixed-header.js +0 -1
- package/app/modifiers/focus-tab.js +0 -1
- package/app/modifiers/get-cursor-node.js +0 -1
- package/app/modifiers/invalidate-indeterminate.js +0 -1
- package/app/modifiers/on-event-simulate-event.js +0 -1
- package/docs/forms/form-controls/checkbox-demo/demo1.md +0 -40
- package/docs/forms/form-controls/checkbox-group.md +0 -1
- package/docs/forms/form-controls/checkbox.md +0 -1
- package/docs/forms/form-controls/combo-box.md +0 -1
- package/docs/forms/form-controls/file-picker-demo/demo1.md +0 -28
- package/docs/forms/form-controls/file-picker.md +0 -1
- package/docs/forms/form-controls/form-control-layout-delimited.md +0 -1
- package/docs/forms/form-controls/form-control-layout.md +0 -1
- package/docs/forms/form-controls/number-field.md +0 -1
- package/docs/forms/form-controls/password-field.md +0 -1
- package/docs/forms/form-controls/radio-demo/demo1.md +0 -39
- package/docs/forms/form-controls/radio-group-demo/demo1.md +0 -60
- package/docs/forms/form-controls/radio-group.md +0 -1
- package/docs/forms/form-controls/radio.md +0 -1
- package/docs/forms/form-controls/range-demo/demo1.md +0 -61
- package/docs/forms/form-controls/range-demo/demo2.md +0 -59
- package/docs/forms/form-controls/range-demo/demo6.md +0 -59
- package/docs/forms/form-controls/range.md +0 -1
- package/docs/forms/form-controls/search-field-demo/demo1.md +0 -31
- package/docs/forms/form-controls/search-field.md +0 -1
- package/docs/forms/form-controls/select.md +0 -1
- package/docs/forms/form-controls/switch.md +0 -1
- package/docs/forms/form-controls/text-field.md +0 -1
- package/docs/forms/form-controls/textarea-demo/demo1.md +0 -36
- package/docs/forms/form-controls/textarea.md +0 -1
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect Element Resize.
|
|
3
|
+
* https://github.com/sdecima/javascript-detect-element-resize
|
|
4
|
+
* Sebastian Decima
|
|
5
|
+
*
|
|
6
|
+
* Forked from version 0.5.3; includes the following modifications:
|
|
7
|
+
* 1) Guard against unsafe 'window' and 'document' references (to support SSR).
|
|
8
|
+
* 2) Defer initialization code via a top-level function wrapper (to support SSR).
|
|
9
|
+
* 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
|
|
10
|
+
* 4) Add nonce for style element.
|
|
11
|
+
* 5) Added support for injecting custom window object
|
|
12
|
+
**/
|
|
13
|
+
|
|
14
|
+
export default function createDetectElementResize(nonce, hostWindow) {
|
|
15
|
+
// Check `document` and `window` in case of server-side rendering
|
|
16
|
+
var _window;
|
|
17
|
+
if (typeof hostWindow !== 'undefined') {
|
|
18
|
+
_window = hostWindow;
|
|
19
|
+
} else if (typeof window !== 'undefined') {
|
|
20
|
+
_window = window;
|
|
21
|
+
} else if (typeof self !== 'undefined') {
|
|
22
|
+
_window = self;
|
|
23
|
+
} else {
|
|
24
|
+
//eslint-disable-next-line
|
|
25
|
+
_window = global;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var attachEvent =
|
|
29
|
+
typeof _window.document !== 'undefined' && _window.document.attachEvent;
|
|
30
|
+
|
|
31
|
+
if (!attachEvent) {
|
|
32
|
+
var requestFrame = (function () {
|
|
33
|
+
var raf =
|
|
34
|
+
_window.requestAnimationFrame ||
|
|
35
|
+
_window.mozRequestAnimationFrame ||
|
|
36
|
+
_window.webkitRequestAnimationFrame ||
|
|
37
|
+
function (fn) {
|
|
38
|
+
return _window.setTimeout(fn, 20);
|
|
39
|
+
};
|
|
40
|
+
return function (fn) {
|
|
41
|
+
return raf(fn);
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
|
|
45
|
+
var cancelFrame = (function () {
|
|
46
|
+
var cancel =
|
|
47
|
+
_window.cancelAnimationFrame ||
|
|
48
|
+
_window.mozCancelAnimationFrame ||
|
|
49
|
+
_window.webkitCancelAnimationFrame ||
|
|
50
|
+
_window.clearTimeout;
|
|
51
|
+
return function (id) {
|
|
52
|
+
return cancel(id);
|
|
53
|
+
};
|
|
54
|
+
})();
|
|
55
|
+
|
|
56
|
+
var resetTriggers = function (element) {
|
|
57
|
+
var triggers = element.__resizeTriggers__,
|
|
58
|
+
expand = triggers.firstElementChild,
|
|
59
|
+
contract = triggers.lastElementChild,
|
|
60
|
+
expandChild = expand.firstElementChild;
|
|
61
|
+
contract.scrollLeft = contract.scrollWidth;
|
|
62
|
+
contract.scrollTop = contract.scrollHeight;
|
|
63
|
+
expandChild.style.width = expand.offsetWidth + 1 + 'px';
|
|
64
|
+
expandChild.style.height = expand.offsetHeight + 1 + 'px';
|
|
65
|
+
expand.scrollLeft = expand.scrollWidth;
|
|
66
|
+
expand.scrollTop = expand.scrollHeight;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var checkTriggers = function (element) {
|
|
70
|
+
return (
|
|
71
|
+
element.offsetWidth != element.__resizeLast__.width ||
|
|
72
|
+
element.offsetHeight != element.__resizeLast__.height
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var scrollListener = function (e) {
|
|
77
|
+
// Don't measure (which forces) reflow for scrolls that happen inside of children!
|
|
78
|
+
if (
|
|
79
|
+
e.target.className &&
|
|
80
|
+
typeof e.target.className.indexOf === 'function' &&
|
|
81
|
+
e.target.className.indexOf('contract-trigger') < 0 &&
|
|
82
|
+
e.target.className.indexOf('expand-trigger') < 0
|
|
83
|
+
) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
var element = this;
|
|
88
|
+
resetTriggers(this);
|
|
89
|
+
if (this.__resizeRAF__) {
|
|
90
|
+
cancelFrame(this.__resizeRAF__);
|
|
91
|
+
}
|
|
92
|
+
this.__resizeRAF__ = requestFrame(function () {
|
|
93
|
+
if (checkTriggers(element)) {
|
|
94
|
+
element.__resizeLast__.width = element.offsetWidth;
|
|
95
|
+
element.__resizeLast__.height = element.offsetHeight;
|
|
96
|
+
element.__resizeListeners__.forEach(function (fn) {
|
|
97
|
+
fn.call(element, e);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/* Detect CSS Animations support to detect element display/re-attach */
|
|
104
|
+
var animation = false,
|
|
105
|
+
keyframeprefix = '',
|
|
106
|
+
animationstartevent = 'animationstart',
|
|
107
|
+
domPrefixes = 'Webkit Moz O ms'.split(' '),
|
|
108
|
+
startEvents =
|
|
109
|
+
'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(
|
|
110
|
+
' '
|
|
111
|
+
),
|
|
112
|
+
pfx = '';
|
|
113
|
+
{
|
|
114
|
+
var elm = _window.document.createElement('fakeelement');
|
|
115
|
+
if (elm.style.animationName !== undefined) {
|
|
116
|
+
animation = true;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (animation === false) {
|
|
120
|
+
for (var i = 0; i < domPrefixes.length; i++) {
|
|
121
|
+
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
|
|
122
|
+
pfx = domPrefixes[i];
|
|
123
|
+
keyframeprefix = '-' + pfx.toLowerCase() + '-';
|
|
124
|
+
animationstartevent = startEvents[i];
|
|
125
|
+
animation = true;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
var animationName = 'resizeanim';
|
|
133
|
+
var animationKeyframes =
|
|
134
|
+
'@' +
|
|
135
|
+
keyframeprefix +
|
|
136
|
+
'keyframes ' +
|
|
137
|
+
animationName +
|
|
138
|
+
' { from { opacity: 0; } to { opacity: 0; } } ';
|
|
139
|
+
var animationStyle =
|
|
140
|
+
keyframeprefix + 'animation: 1ms ' + animationName + '; ';
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
var createStyles = function (doc) {
|
|
144
|
+
if (!doc.getElementById('detectElementResize')) {
|
|
145
|
+
//opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
|
|
146
|
+
var css =
|
|
147
|
+
(animationKeyframes ? animationKeyframes : '') +
|
|
148
|
+
'.resize-triggers { ' +
|
|
149
|
+
(animationStyle ? animationStyle : '') +
|
|
150
|
+
'visibility: hidden; opacity: 0; } ' +
|
|
151
|
+
'.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
|
|
152
|
+
head = doc.head || doc.getElementsByTagName('head')[0],
|
|
153
|
+
style = doc.createElement('style');
|
|
154
|
+
|
|
155
|
+
style.id = 'detectElementResize';
|
|
156
|
+
style.type = 'text/css';
|
|
157
|
+
|
|
158
|
+
if (nonce != null) {
|
|
159
|
+
style.setAttribute('nonce', nonce);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (style.styleSheet) {
|
|
163
|
+
style.styleSheet.cssText = css;
|
|
164
|
+
} else {
|
|
165
|
+
style.appendChild(doc.createTextNode(css));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
head.appendChild(style);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
var addResizeListener = function (element, fn) {
|
|
173
|
+
if (attachEvent) {
|
|
174
|
+
element.attachEvent('onresize', fn);
|
|
175
|
+
} else {
|
|
176
|
+
if (!element.__resizeTriggers__) {
|
|
177
|
+
var doc = element.ownerDocument;
|
|
178
|
+
var elementStyle = _window.getComputedStyle(element);
|
|
179
|
+
if (elementStyle && elementStyle.position == 'static') {
|
|
180
|
+
element.style.position = 'relative';
|
|
181
|
+
}
|
|
182
|
+
createStyles(doc);
|
|
183
|
+
element.__resizeLast__ = {};
|
|
184
|
+
element.__resizeListeners__ = [];
|
|
185
|
+
(element.__resizeTriggers__ = doc.createElement('div')).className =
|
|
186
|
+
'resize-triggers';
|
|
187
|
+
var expandTrigger = doc.createElement('div');
|
|
188
|
+
expandTrigger.className = 'expand-trigger';
|
|
189
|
+
expandTrigger.appendChild(doc.createElement('div'));
|
|
190
|
+
var contractTrigger = doc.createElement('div');
|
|
191
|
+
contractTrigger.className = 'contract-trigger';
|
|
192
|
+
element.__resizeTriggers__.appendChild(expandTrigger);
|
|
193
|
+
element.__resizeTriggers__.appendChild(contractTrigger);
|
|
194
|
+
element.appendChild(element.__resizeTriggers__);
|
|
195
|
+
resetTriggers(element);
|
|
196
|
+
element.addEventListener('scroll', scrollListener, true);
|
|
197
|
+
|
|
198
|
+
/* Listen for a css animation to detect element display/re-attach */
|
|
199
|
+
if (animationstartevent) {
|
|
200
|
+
element.__resizeTriggers__.__animationListener__ =
|
|
201
|
+
function animationListener(e) {
|
|
202
|
+
if (e.animationName == animationName) {
|
|
203
|
+
resetTriggers(element);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
element.__resizeTriggers__.addEventListener(
|
|
207
|
+
animationstartevent,
|
|
208
|
+
element.__resizeTriggers__.__animationListener__
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
element.__resizeListeners__.push(fn);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
var removeResizeListener = function (element, fn) {
|
|
217
|
+
if (attachEvent) {
|
|
218
|
+
element.detachEvent('onresize', fn);
|
|
219
|
+
} else {
|
|
220
|
+
element.__resizeListeners__.splice(
|
|
221
|
+
element.__resizeListeners__.indexOf(fn),
|
|
222
|
+
1
|
|
223
|
+
);
|
|
224
|
+
if (!element.__resizeListeners__.length) {
|
|
225
|
+
element.removeEventListener('scroll', scrollListener, true);
|
|
226
|
+
if (element.__resizeTriggers__.__animationListener__) {
|
|
227
|
+
element.__resizeTriggers__.removeEventListener(
|
|
228
|
+
animationstartevent,
|
|
229
|
+
element.__resizeTriggers__.__animationListener__
|
|
230
|
+
);
|
|
231
|
+
element.__resizeTriggers__.__animationListener__ = null;
|
|
232
|
+
}
|
|
233
|
+
try {
|
|
234
|
+
element.__resizeTriggers__ = !element.removeChild(
|
|
235
|
+
element.__resizeTriggers__
|
|
236
|
+
);
|
|
237
|
+
} catch (e) {
|
|
238
|
+
// Preact compat; see developit/preact-compat/issues/228
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
return {
|
|
245
|
+
addResizeListener,
|
|
246
|
+
removeResizeListener
|
|
247
|
+
};
|
|
248
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './processor';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { RehypeNode } from '
|
|
2
|
-
import EuiMarkdownFormatMarkdownCode from '
|
|
3
|
-
import EuiMarkdownFormatMarkdownCodeBlock from '
|
|
1
|
+
import { RehypeNode } from '../../markdown-types';
|
|
2
|
+
import EuiMarkdownFormatMarkdownCode from '../../../../components/eui-markdown-format/markdown-code';
|
|
3
|
+
import EuiMarkdownFormatMarkdownCodeBlock from '../../../../components/eui-markdown-format/markdown-code-block';
|
|
4
|
+
import { FENCED_CLASS } from '../../remark/remark-prismjs';
|
|
4
5
|
|
|
5
6
|
type Visitor = (node: RehypeNode) => RehypeNode;
|
|
6
7
|
|
|
@@ -21,7 +22,9 @@ export const visit = (node: RehypeNode, visitor: Visitor) => {
|
|
|
21
22
|
return node;
|
|
22
23
|
};
|
|
23
24
|
|
|
24
|
-
export
|
|
25
|
+
export const processor = function MarkdownAddComponents(): (
|
|
26
|
+
tree: RehypeNode
|
|
27
|
+
) => void {
|
|
25
28
|
return (tree) => {
|
|
26
29
|
visit(tree, (node: RehypeNode) => {
|
|
27
30
|
if (node.tagName === 'component') {
|
|
@@ -46,8 +49,12 @@ export default function MarkdownAddComponents(): (tree: RehypeNode) => void {
|
|
|
46
49
|
}
|
|
47
50
|
if (node.type === 'element' && node.tagName === 'code') {
|
|
48
51
|
node.type = 'component';
|
|
49
|
-
const hasBreaks = node.children?.find(
|
|
50
|
-
|
|
52
|
+
const hasBreaks = node.children?.find(
|
|
53
|
+
(child: RehypeNode) =>
|
|
54
|
+
/\r|\n/.exec(child.value) ||
|
|
55
|
+
((node.properties.className as string[]) &&
|
|
56
|
+
(node.properties.className as string[]).indexOf(FENCED_CLASS) >
|
|
57
|
+
-1)
|
|
51
58
|
);
|
|
52
59
|
if (hasBreaks) {
|
|
53
60
|
node.properties.componentName = EuiMarkdownFormatMarkdownCodeBlock;
|
|
@@ -61,4 +68,4 @@ export default function MarkdownAddComponents(): (tree: RehypeNode) => void {
|
|
|
61
68
|
return node;
|
|
62
69
|
});
|
|
63
70
|
};
|
|
64
|
-
}
|
|
71
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { CheckboxParser as parser } from './parser';
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
* under the License.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import { RemarkTokenizer } from '
|
|
20
|
+
import { RemarkTokenizer } from '../../markdown-types';
|
|
21
21
|
import { Plugin } from 'unified';
|
|
22
|
-
import EuiMarkdownFormatMarkdownCheckbox from '
|
|
22
|
+
import EuiMarkdownFormatMarkdownCheckbox from '../../../../components/eui-markdown-format/markdown-checkbox';
|
|
23
23
|
|
|
24
24
|
interface CheckboxNodeDetails {
|
|
25
25
|
type: 'component';
|
|
@@ -29,7 +29,7 @@ interface CheckboxNodeDetails {
|
|
|
29
29
|
isChecked: boolean;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
const CheckboxParser: Plugin = function CheckboxParser() {
|
|
32
|
+
export const CheckboxParser: Plugin = function CheckboxParser() {
|
|
33
33
|
const Parser = this.Parser;
|
|
34
34
|
const tokenizers = Parser.prototype.blockTokenizers;
|
|
35
35
|
const methods = Parser.prototype.blockMethods;
|
|
@@ -77,5 +77,3 @@ const CheckboxParser: Plugin = function CheckboxParser() {
|
|
|
77
77
|
tokenizers.checkbox = tokenizeCheckbox;
|
|
78
78
|
methods.splice(methods.indexOf('list'), 0, 'checkbox'); // Run it just before default `list` plugin to inject our own idea of checkboxes.
|
|
79
79
|
};
|
|
80
|
-
|
|
81
|
-
export { CheckboxParser as parser };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export * from './ui-plugins';
|
|
10
|
+
export * from './parsing-plugins';
|
|
11
|
+
export * from './processing-plugins';
|
|
12
|
+
export * from './plugins';
|
|
@@ -33,45 +33,33 @@ import {
|
|
|
33
33
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
34
34
|
Settings
|
|
35
35
|
} from 'unified';
|
|
36
|
-
import remark2Rehype from 'remark-rehype';
|
|
37
36
|
import markdown from 'remark-parse';
|
|
38
37
|
import emoji from 'remark-emoji';
|
|
39
|
-
import all from 'mdast-util-to-hast/lib/all';
|
|
40
|
-
import { Handler } from 'mdast-util-to-hast';
|
|
41
|
-
import * as MarkdownCheckbox from '../plugins/markdown-checkbox';
|
|
42
|
-
import MarkdownAddComponents from '../plugins/markdown-add-components';
|
|
43
38
|
import breaks from 'remark-breaks';
|
|
44
|
-
import highlight from 'remark-
|
|
45
|
-
import * as
|
|
39
|
+
import highlight from '../../remark/remark-prismjs';
|
|
40
|
+
import * as MarkdownCheckbox from '../markdown-checkbox';
|
|
41
|
+
import * as MarkdownTooltip from '../markdown-tooltip';
|
|
46
42
|
|
|
47
43
|
export type DefaultEuiMarkdownParsingPlugins = PluggableList;
|
|
48
44
|
|
|
49
|
-
export const getDefaultEuiMarkdownParsingPlugins =
|
|
50
|
-
|
|
45
|
+
export const getDefaultEuiMarkdownParsingPlugins = ({
|
|
46
|
+
exclude
|
|
47
|
+
}: { exclude?: Array<'tooltip'> } = {}): DefaultEuiMarkdownParsingPlugins => {
|
|
48
|
+
const excludeSet = new Set(exclude);
|
|
49
|
+
const parsingPlugins: PluggableList = [
|
|
51
50
|
[markdown, {}],
|
|
52
51
|
[highlight, {}],
|
|
53
52
|
[emoji, { emoticon: false }],
|
|
54
53
|
//@ts-ignore
|
|
55
54
|
[breaks, {}],
|
|
56
|
-
[
|
|
55
|
+
// [markdownLinkValidator, {}],
|
|
57
56
|
[MarkdownCheckbox.parser, {}]
|
|
58
|
-
// [MarkdownCheckbox.parser, {}],
|
|
59
|
-
// [markdownLinkValidator, {}]
|
|
60
57
|
];
|
|
61
58
|
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
if (!excludeSet.has('tooltip'))
|
|
60
|
+
parsingPlugins.push([MarkdownTooltip.parser, {}]);
|
|
61
|
+
|
|
62
|
+
return parsingPlugins;
|
|
64
63
|
};
|
|
65
64
|
|
|
66
65
|
export const defaultParsingPlugins = getDefaultEuiMarkdownParsingPlugins();
|
|
67
|
-
|
|
68
|
-
export const getDefaultEuiMarkdownProcessingPlugins = (): [
|
|
69
|
-
[typeof remark2Rehype, Record<string, unknown>],
|
|
70
|
-
...PluggableList // any additional are generic
|
|
71
|
-
] => [
|
|
72
|
-
[remark2Rehype, { allowDangerousHtml: true, unknownHandler }],
|
|
73
|
-
[MarkdownAddComponents, {}]
|
|
74
|
-
];
|
|
75
|
-
|
|
76
|
-
export const defaultProcessingPlugins =
|
|
77
|
-
getDefaultEuiMarkdownProcessingPlugins();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
getDefaultEuiMarkdownUiPlugins,
|
|
11
|
+
DefaultEuiMarkdownUiPlugins
|
|
12
|
+
} from './ui-plugins';
|
|
13
|
+
import {
|
|
14
|
+
getDefaultEuiMarkdownParsingPlugins,
|
|
15
|
+
DefaultEuiMarkdownParsingPlugins
|
|
16
|
+
} from './parsing-plugins';
|
|
17
|
+
import {
|
|
18
|
+
getDefaultEuiMarkdownProcessingPlugins,
|
|
19
|
+
DefaultEuiMarkdownProcessingPlugins
|
|
20
|
+
} from './processing-plugins';
|
|
21
|
+
|
|
22
|
+
export const getDefaultEuiMarkdownPlugins = (
|
|
23
|
+
config: undefined | { exclude?: Array<'tooltip'> }
|
|
24
|
+
): {
|
|
25
|
+
parsingPlugins: DefaultEuiMarkdownParsingPlugins;
|
|
26
|
+
processingPlugins: DefaultEuiMarkdownProcessingPlugins;
|
|
27
|
+
uiPlugins: DefaultEuiMarkdownUiPlugins;
|
|
28
|
+
} => ({
|
|
29
|
+
parsingPlugins: getDefaultEuiMarkdownParsingPlugins(config),
|
|
30
|
+
processingPlugins: getDefaultEuiMarkdownProcessingPlugins(config),
|
|
31
|
+
uiPlugins: getDefaultEuiMarkdownUiPlugins(config)
|
|
32
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to Elasticsearch B.V. under one or more contributor
|
|
3
|
+
* license agreements. See the NOTICE file distributed with
|
|
4
|
+
* this work for additional information regarding copyright
|
|
5
|
+
* ownership. Elasticsearch B.V. licenses this file to you under
|
|
6
|
+
* the Apache License, Version 2.0 (the "License"); you may
|
|
7
|
+
* not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// Importing seemingly unused types from `unified` because the definitions
|
|
21
|
+
// are exported for two versions of TypeScript (3.4, 4.0) and implicit
|
|
22
|
+
// imports during eui.d.ts generation default to the incorrect version (3.4).
|
|
23
|
+
// Explicit imports here resolve the version mismatch.
|
|
24
|
+
import {
|
|
25
|
+
PluggableList,
|
|
26
|
+
// @ts-ignore See above comment
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
Attacher,
|
|
29
|
+
// @ts-ignore See above comment
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
Pluggable,
|
|
32
|
+
// @ts-ignore See above comment
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
34
|
+
Settings
|
|
35
|
+
} from 'unified';
|
|
36
|
+
import remark2Rehype from 'remark-rehype';
|
|
37
|
+
import all from 'mdast-util-to-hast/lib/all';
|
|
38
|
+
import { Options as Remark2RehypeOptions, Handler } from 'mdast-util-to-hast';
|
|
39
|
+
import * as MarkdownAddComponents from '../markdown-add-components';
|
|
40
|
+
|
|
41
|
+
const unknownHandler: Handler = (h, node) => {
|
|
42
|
+
return h(node, node.type, node, all(h, node));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export interface Rehype2ReactOptions {
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type DefaultEuiMarkdownProcessingPlugins = [
|
|
50
|
+
[typeof remark2Rehype, Remark2RehypeOptions], // first is well known
|
|
51
|
+
[typeof MarkdownAddComponents.processor, Rehype2ReactOptions], // second is well known
|
|
52
|
+
...PluggableList // any additional are generic
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const getDefaultEuiMarkdownProcessingPlugins = ({
|
|
56
|
+
exclude
|
|
57
|
+
}: { exclude?: Array<'tooltip'> } = {}) => {
|
|
58
|
+
exclude;
|
|
59
|
+
const plugins: DefaultEuiMarkdownProcessingPlugins = [
|
|
60
|
+
[remark2Rehype, { allowDangerousHtml: true, unknownHandler }],
|
|
61
|
+
[MarkdownAddComponents.processor, {}]
|
|
62
|
+
];
|
|
63
|
+
return plugins;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const defaultProcessingPlugins =
|
|
67
|
+
getDefaultEuiMarkdownProcessingPlugins();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as MarkdownTooltip from '../markdown-tooltip';
|
|
10
|
+
import { EuiMarkdownEditorUiPlugin } from '../../markdown-types';
|
|
11
|
+
|
|
12
|
+
export type DefaultEuiMarkdownUiPlugins = EuiMarkdownEditorUiPlugin[];
|
|
13
|
+
|
|
14
|
+
export const getDefaultEuiMarkdownUiPlugins = ({
|
|
15
|
+
exclude
|
|
16
|
+
}: { exclude?: Array<'tooltip'> } = {}): DefaultEuiMarkdownUiPlugins => {
|
|
17
|
+
const excludeSet = new Set(exclude);
|
|
18
|
+
const uiPlugins = [];
|
|
19
|
+
|
|
20
|
+
if (!excludeSet.has('tooltip')) uiPlugins.push(MarkdownTooltip.plugin);
|
|
21
|
+
|
|
22
|
+
// @ts-ignore __originatedFromEui is a custom property
|
|
23
|
+
uiPlugins.__originatedFromEui = true;
|
|
24
|
+
return uiPlugins;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const defaultUiPlugins = getDefaultEuiMarkdownUiPlugins();
|
|
@@ -1,31 +1,13 @@
|
|
|
1
|
-
import { RemarkTokenizer } from '
|
|
1
|
+
import { RemarkTokenizer } from '../../markdown-types';
|
|
2
2
|
import { Plugin } from 'unified';
|
|
3
|
-
import EuiMarkdownFormatMarkdownTooltip from '
|
|
3
|
+
import EuiMarkdownFormatMarkdownTooltip from '../../../../components/eui-markdown-format/markdown-tooltip';
|
|
4
4
|
|
|
5
5
|
interface TooltipNodeDetails {
|
|
6
6
|
type: 'component';
|
|
7
7
|
tooltipText: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const
|
|
11
|
-
name: 'tooltipPlugin',
|
|
12
|
-
button: {
|
|
13
|
-
label: 'Tooltip',
|
|
14
|
-
iconType: 'editorComment'
|
|
15
|
-
},
|
|
16
|
-
formatting: {
|
|
17
|
-
prefix: '!{tooltip[',
|
|
18
|
-
suffix: ']()}',
|
|
19
|
-
trimFirst: true
|
|
20
|
-
},
|
|
21
|
-
helpText: `
|
|
22
|
-
\`\`\`md
|
|
23
|
-
!{tooltip[anchor text](helpful description)}
|
|
24
|
-
\`\`\`
|
|
25
|
-
`
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const TooltipParser: Plugin = function TooltipParser() {
|
|
10
|
+
export const TooltipParser: Plugin = function TooltipParser() {
|
|
29
11
|
const Parser = this.Parser;
|
|
30
12
|
const tokenizers = Parser.prototype.inlineTokenizers;
|
|
31
13
|
const methods = Parser.prototype.inlineMethods;
|
|
@@ -110,5 +92,3 @@ const TooltipParser: Plugin = function TooltipParser() {
|
|
|
110
92
|
tokenizers.tooltip = tokenizeTooltip;
|
|
111
93
|
methods.splice(methods.indexOf('text'), 0, 'tooltip');
|
|
112
94
|
};
|
|
113
|
-
|
|
114
|
-
export { tooltipPlugin as plugin, TooltipParser as parser };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const tooltipPlugin = {
|
|
2
|
+
name: 'tooltipPlugin',
|
|
3
|
+
button: {
|
|
4
|
+
label: 'Tooltip',
|
|
5
|
+
iconType: 'editorComment'
|
|
6
|
+
},
|
|
7
|
+
formatting: {
|
|
8
|
+
prefix: '!{tooltip[',
|
|
9
|
+
suffix: ']()}',
|
|
10
|
+
trimFirst: true
|
|
11
|
+
},
|
|
12
|
+
helpText: `
|
|
13
|
+
\`\`\`md
|
|
14
|
+
!{tooltip[anchor text](helpful description)}
|
|
15
|
+
\`\`\`
|
|
16
|
+
`
|
|
17
|
+
};
|
|
@@ -5,7 +5,7 @@ This util was extracted from https://github.com/ampatspell/ember-cli-remark-stat
|
|
|
5
5
|
import { assert } from '@ember/debug';
|
|
6
6
|
import { RehypeNode } from '../markdown-types';
|
|
7
7
|
|
|
8
|
-
const attributes = ['src', 'alt', 'href', 'target'];
|
|
8
|
+
const attributes = ['src', 'alt', 'href', 'target', 'title'];
|
|
9
9
|
|
|
10
10
|
const createDocument = () => {
|
|
11
11
|
return document;
|
|
@@ -82,6 +82,8 @@ export const toDOM = (tree: RehypeNode) => {
|
|
|
82
82
|
...properties
|
|
83
83
|
});
|
|
84
84
|
return element;
|
|
85
|
+
} else if (type === 'raw') {
|
|
86
|
+
return document.createTextNode(node.value);
|
|
85
87
|
}
|
|
86
88
|
assert(`Unsupported node '${type}'`, false);
|
|
87
89
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import refractor from 'refractor';
|
|
10
|
+
import visit from 'unist-util-visit';
|
|
11
|
+
import { Plugin } from 'unified';
|
|
12
|
+
import { checkSupportedLanguage } from '../../code/utils';
|
|
13
|
+
|
|
14
|
+
export const FENCED_CLASS = 'remark-prismjs--fenced';
|
|
15
|
+
|
|
16
|
+
const attacher: Plugin = () => {
|
|
17
|
+
return (ast) => visit(ast, 'code', visitor);
|
|
18
|
+
|
|
19
|
+
function visitor(node: any) {
|
|
20
|
+
const { data = {}, lang: language } = node;
|
|
21
|
+
|
|
22
|
+
if (!language) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const actualLanguage = checkSupportedLanguage(language);
|
|
26
|
+
node.data = data;
|
|
27
|
+
data.hChildren = refractor.highlight(node.value, actualLanguage);
|
|
28
|
+
data.hProperties = {
|
|
29
|
+
...data.hProperties,
|
|
30
|
+
language,
|
|
31
|
+
className: [
|
|
32
|
+
'prismjs',
|
|
33
|
+
...(data.hProperties?.className || []),
|
|
34
|
+
`language-${language}`,
|
|
35
|
+
FENCED_CLASS
|
|
36
|
+
]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default attacher;
|