@ember-eui/core 4.4.0 → 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.
Files changed (520) hide show
  1. package/addon/components/common.ts +1 -0
  2. package/addon/components/eui-accordion/index.hbs +106 -85
  3. package/addon/components/eui-accordion/index.ts +58 -19
  4. package/addon/components/eui-auto-sizer/index.hbs +3 -0
  5. package/addon/components/eui-auto-sizer/index.ts +175 -0
  6. package/addon/components/eui-avatar/index.hbs +7 -3
  7. package/addon/components/eui-badge/index.hbs +9 -3
  8. package/addon/components/eui-beta-badge/index.hbs +171 -19
  9. package/addon/components/eui-bottom-bar/index.hbs +43 -12
  10. package/addon/components/eui-bottom-bar/index.ts +75 -32
  11. package/addon/components/eui-breadcrumbs/index.hbs +98 -0
  12. package/addon/components/eui-breadcrumbs/index.ts +194 -0
  13. package/addon/components/eui-button/index.hbs +4 -4
  14. package/addon/components/eui-button-content/index.hbs +6 -2
  15. package/addon/components/eui-button-empty/index.hbs +60 -52
  16. package/addon/components/eui-button-icon/index.hbs +17 -3
  17. package/addon/components/eui-call-out/index.hbs +1 -0
  18. package/addon/components/eui-card/index.hbs +61 -47
  19. package/addon/components/eui-card/index.ts +27 -0
  20. package/addon/components/{eui-card/eui-card-select → eui-card-select}/index.hbs +2 -5
  21. package/addon/components/eui-card-select/index.ts +35 -0
  22. package/addon/components/eui-checkable-card/index.hbs +17 -11
  23. package/addon/components/eui-checkbox/index.hbs +11 -5
  24. package/addon/components/eui-checkbox/index.ts +15 -0
  25. package/addon/components/eui-code/index.hbs +14 -8
  26. package/addon/components/eui-code/index.ts +73 -0
  27. package/addon/components/eui-code-block/controls/index.hbs +26 -0
  28. package/addon/components/eui-code-block/full-screen-display/index.hbs +12 -0
  29. package/addon/components/eui-code-block/index.hbs +144 -9
  30. package/addon/components/eui-code-block/index.ts +290 -0
  31. package/addon/components/eui-code-block/virtualized/index.hbs +30 -0
  32. package/addon/components/eui-code-block/virtualized/index.ts +22 -0
  33. package/addon/components/eui-collapsible-nav/index.hbs +35 -44
  34. package/addon/components/eui-collapsible-nav/index.ts +161 -0
  35. package/addon/components/eui-collapsible-nav-group/index.hbs +114 -66
  36. package/addon/components/eui-combo-box/group/index.hbs +3 -3
  37. package/addon/components/eui-combo-box/index.hbs +5 -2
  38. package/addon/components/eui-combo-box/index.ts +89 -4
  39. package/addon/components/eui-combo-box/options/index.hbs +14 -2
  40. package/addon/components/eui-combo-box/options/index.js +22 -9
  41. package/addon/components/eui-combo-box/trigger/index.hbs +3 -1
  42. package/addon/components/eui-confirm-modal/index.hbs +1 -1
  43. package/addon/components/eui-copy/index.hbs +1 -4
  44. package/addon/components/eui-described-form-group/index.hbs +3 -2
  45. package/addon/components/eui-description-list/index.hbs +23 -0
  46. package/addon/components/eui-description-list-description/index.hbs +3 -0
  47. package/addon/components/eui-description-list-title/index.hbs +3 -0
  48. package/addon/components/eui-dual-range/index.hbs +30 -18
  49. package/addon/components/eui-dual-range/index.ts +36 -10
  50. package/addon/components/eui-empty-prompt/index.hbs +77 -0
  51. package/addon/components/eui-field-number/index.hbs +3 -3
  52. package/addon/components/eui-field-search/index.hbs +2 -1
  53. package/addon/components/eui-field-text/index.hbs +3 -1
  54. package/addon/components/eui-file-picker/index.hbs +15 -11
  55. package/addon/components/eui-file-picker/index.ts +26 -8
  56. package/addon/components/eui-flyout/index.hbs +130 -43
  57. package/addon/components/eui-flyout/index.ts +233 -0
  58. package/addon/components/eui-flyout-body/index.hbs +21 -7
  59. package/addon/components/eui-form-label/index.hbs +1 -1
  60. package/addon/components/eui-form-row/index.hbs +13 -9
  61. package/addon/components/eui-header/index.hbs +18 -3
  62. package/addon/{modifiers/fixed-header.ts → components/eui-header/index.ts} +10 -1
  63. package/addon/components/eui-header-alert/index.hbs +25 -0
  64. package/addon/components/eui-header-breadcrumbs/index.hbs +7 -0
  65. package/addon/components/eui-header-links/index.hbs +41 -0
  66. package/addon/components/eui-header-links/index.ts +14 -0
  67. package/addon/components/eui-header-section-item-button/index.hbs +30 -12
  68. package/addon/components/eui-header-section-item-button/index.ts +131 -0
  69. package/addon/components/eui-health/index.hbs +15 -13
  70. package/addon/components/eui-hide-for/index.hbs +3 -0
  71. package/addon/components/eui-hide-for/index.ts +33 -0
  72. package/addon/components/eui-icon/index.hbs +6 -3
  73. package/addon/components/eui-icon/index.ts +4 -0
  74. package/addon/components/eui-image/index.hbs +63 -25
  75. package/addon/components/eui-input-popover/index.ts +6 -4
  76. package/addon/components/eui-key-pad-menu/index.hbs +16 -0
  77. package/addon/components/eui-key-pad-menu/key/index.hbs +1 -0
  78. package/addon/components/eui-key-pad-menu-item/index.hbs +66 -0
  79. package/addon/components/eui-key-pad-menu-item/index.ts +11 -0
  80. package/addon/components/eui-link/index.hbs +50 -0
  81. package/addon/components/eui-list-group-item/index.hbs +10 -2
  82. package/addon/components/eui-markdown-editor/index.hbs +4 -1
  83. package/addon/components/eui-markdown-editor/index.ts +54 -0
  84. package/addon/components/eui-markdown-editor-footer/index.hbs +39 -40
  85. package/addon/components/eui-markdown-format/index.ts +1 -1
  86. package/addon/components/eui-markdown-format/markdown-code/index.hbs +2 -2
  87. package/addon/components/eui-markdown-format/markdown-code-block/index.hbs +1 -0
  88. package/addon/components/eui-modal/index.hbs +28 -24
  89. package/addon/components/eui-overlay-mask/index.hbs +4 -4
  90. package/addon/components/eui-overlay-mask/index.ts +14 -1
  91. package/addon/components/eui-page/index.hbs +3 -6
  92. package/addon/components/eui-page-body/index.hbs +47 -15
  93. package/addon/components/eui-page-content/index.hbs +6 -8
  94. package/addon/components/eui-page-content-body/index.hbs +13 -1
  95. package/addon/components/eui-page-content-header/index.hbs +6 -0
  96. package/addon/components/eui-page-header/index.hbs +31 -6
  97. package/addon/components/eui-page-header-content/index.hbs +219 -0
  98. package/addon/components/eui-page-header-content/index.ts +49 -0
  99. package/addon/components/eui-page-side-bar/index.hbs +8 -1
  100. package/addon/components/eui-page-template/index.hbs +417 -0
  101. package/addon/components/eui-page-template/index.ts +89 -0
  102. package/addon/components/eui-panel/index.hbs +58 -12
  103. package/addon/components/eui-popover/index.hbs +8 -4
  104. package/addon/components/eui-popover/index.ts +28 -12
  105. package/addon/components/eui-progress/index.hbs +16 -13
  106. package/addon/components/eui-radio/index.hbs +9 -3
  107. package/addon/components/eui-range/index.hbs +33 -11
  108. package/addon/components/eui-range/index.ts +7 -4
  109. package/addon/components/eui-range-input/index.hbs +37 -31
  110. package/addon/components/eui-range-input/types.ts +2 -1
  111. package/addon/components/eui-range-levels/index.hbs +3 -3
  112. package/addon/components/eui-range-ticks/index.hbs +2 -2
  113. package/addon/components/eui-range-track/index.hbs +10 -2
  114. package/addon/components/eui-range-track/index.ts +23 -6
  115. package/addon/components/eui-show-for/index.hbs +3 -0
  116. package/addon/components/eui-show-for/index.ts +79 -0
  117. package/addon/components/eui-side-nav/index.hbs +161 -36
  118. package/addon/components/eui-side-nav/index.ts +28 -0
  119. package/addon/components/eui-side-nav-item/button/index.hbs +26 -14
  120. package/addon/components/eui-side-nav-item/index.hbs +52 -25
  121. package/addon/components/eui-split-panel/inner/index.hbs +10 -0
  122. package/addon/components/eui-split-panel/outer/index.hbs +27 -0
  123. package/addon/components/eui-split-panel/outer/index.ts +37 -0
  124. package/addon/components/eui-step/eui-step-number/index.hbs +21 -4
  125. package/addon/components/eui-steps/index.hbs +7 -1
  126. package/addon/components/eui-tab/index.hbs +28 -3
  127. package/addon/{modifiers/focus-tab.ts → components/eui-tab/index.ts} +6 -1
  128. package/addon/components/eui-tabs/index.hbs +6 -1
  129. package/addon/components/eui-tool-tip/index.hbs +6 -7
  130. package/addon/components/eui-tool-tip/index.ts +27 -11
  131. package/addon/helpers/class-names.ts +2 -0
  132. package/addon/helpers/get-range-tick.ts +53 -8
  133. package/addon/helpers/unique-id.ts +4 -1
  134. package/addon/styles/ember-eui.css +2 -10
  135. package/addon/utils/breakpoint.ts +114 -0
  136. package/addon/utils/code/utils.ts +304 -0
  137. package/addon/utils/css-mappings/eui-avatar.ts +51 -9
  138. package/addon/utils/css-mappings/eui-badge.ts +6 -2
  139. package/addon/utils/css-mappings/eui-beta-badge.ts +22 -0
  140. package/addon/utils/css-mappings/eui-bottom-bar.ts +8 -1
  141. package/addon/utils/css-mappings/eui-button-empty.ts +4 -4
  142. package/addon/utils/css-mappings/eui-button-icon.ts +19 -6
  143. package/addon/utils/css-mappings/eui-button.ts +2 -1
  144. package/addon/utils/css-mappings/eui-card-select.ts +1 -11
  145. package/addon/utils/css-mappings/eui-card.ts +1 -18
  146. package/addon/utils/css-mappings/{eui-code-block-impl.ts → eui-code-block.ts} +0 -0
  147. package/addon/utils/css-mappings/eui-description-list.ts +29 -0
  148. package/addon/utils/css-mappings/eui-empty-prompt.ts +17 -0
  149. package/addon/utils/css-mappings/eui-flyout.ts +21 -1
  150. package/addon/utils/css-mappings/eui-header-links.ts +27 -0
  151. package/addon/utils/css-mappings/eui-health.ts +20 -0
  152. package/addon/utils/css-mappings/eui-icon.ts +94 -70
  153. package/addon/utils/css-mappings/eui-image.ts +17 -2
  154. package/addon/utils/css-mappings/eui-link.ts +21 -0
  155. package/addon/utils/css-mappings/eui-page-body.ts +25 -0
  156. package/addon/utils/css-mappings/eui-page-content-body.ts +17 -0
  157. package/addon/utils/css-mappings/eui-page-content.ts +7 -1
  158. package/addon/utils/css-mappings/eui-page-header.ts +17 -0
  159. package/addon/utils/css-mappings/eui-page-side-bar.ts +17 -0
  160. package/addon/utils/css-mappings/eui-panel.ts +1 -0
  161. package/addon/utils/css-mappings/eui-progress-data.ts +0 -1
  162. package/addon/utils/css-mappings/eui-progress.ts +0 -2
  163. package/addon/utils/css-mappings/eui-range-levels.ts +22 -4
  164. package/addon/utils/css-mappings/eui-tabs.ts +3 -1
  165. package/addon/utils/css-mappings/eui-text-color.ts +3 -2
  166. package/addon/utils/css-mappings/index.ts +23 -3
  167. package/addon/utils/detect-element-resize.js +248 -0
  168. package/addon/utils/markdown/plugins/markdown-add-components/index.ts +1 -0
  169. package/addon/utils/markdown/plugins/{markdown-add-components.ts → markdown-add-components/processor.ts} +14 -7
  170. package/addon/utils/markdown/plugins/markdown-checkbox/index.ts +9 -0
  171. package/addon/utils/markdown/plugins/{markdown-checkbox.ts → markdown-checkbox/parser.ts} +3 -5
  172. package/addon/utils/markdown/plugins/markdown-default-plugins/index.ts +12 -0
  173. package/addon/utils/markdown/plugins/{markdown-default-plugins.ts → markdown-default-plugins/parsing-plugins.ts} +13 -25
  174. package/addon/utils/markdown/plugins/markdown-default-plugins/plugins.ts +32 -0
  175. package/addon/utils/markdown/plugins/markdown-default-plugins/processing-plugins.ts +67 -0
  176. package/addon/utils/markdown/plugins/markdown-default-plugins/ui-plugins.ts +27 -0
  177. package/addon/utils/markdown/plugins/markdown-tooltip/index.ts +2 -0
  178. package/addon/utils/markdown/plugins/{markdown-tooltip.ts → markdown-tooltip/parser.ts} +3 -23
  179. package/addon/utils/markdown/plugins/markdown-tooltip/plugin.ts +17 -0
  180. package/addon/utils/markdown/plugins/to-dom.ts +3 -1
  181. package/addon/utils/markdown/remark/remark-prismjs.ts +41 -0
  182. package/addon/utils/popover/index.ts +87 -35
  183. package/addon/utils/range/index.ts +1 -0
  184. package/app/components/eui-auto-sizer/index.js +1 -0
  185. package/app/components/eui-breadcrumbs/index.js +1 -0
  186. package/app/components/eui-card-select/index.js +1 -0
  187. package/app/components/{eui-code-block-impl → eui-code-block/controls}/index.js +1 -1
  188. package/app/components/{eui-code-block-impl/code-block-controls → eui-code-block/full-screen-display}/index.js +1 -1
  189. package/app/components/eui-code-block/virtualized/index.js +1 -0
  190. package/app/components/eui-description-list/index.js +1 -0
  191. package/app/components/eui-description-list-description/index.js +1 -0
  192. package/app/components/eui-description-list-title/index.js +1 -0
  193. package/app/components/eui-empty-prompt/index.js +1 -0
  194. package/app/components/eui-header-alert/index.js +1 -0
  195. package/app/components/eui-header-breadcrumbs/index.js +1 -0
  196. package/app/components/eui-header-links/index.js +1 -0
  197. package/app/components/eui-hide-for/index.js +1 -0
  198. package/app/components/eui-key-pad-menu/index.js +1 -0
  199. package/app/components/eui-key-pad-menu/key/index.js +1 -0
  200. package/app/components/eui-key-pad-menu-item/index.js +1 -0
  201. package/app/components/eui-link/index.js +1 -0
  202. package/app/components/eui-page-header-content/index.js +1 -0
  203. package/app/components/eui-page-template/index.js +1 -0
  204. package/app/components/eui-show-for/index.js +1 -0
  205. package/app/components/eui-split-panel/inner/index.js +1 -0
  206. package/app/components/eui-split-panel/outer/index.js +1 -0
  207. package/app/utils/copy-to-clipboard.js +1 -0
  208. package/docs/display/avatar-demo/demo1.md +43 -49
  209. package/docs/display/avatar-demo/demo2.md +42 -0
  210. package/docs/display/avatar-demo/demo3.md +33 -0
  211. package/docs/display/avatar-demo/demo4.md +53 -0
  212. package/docs/display/avatar-demo/demo5.md +38 -0
  213. package/docs/display/avatar.md +9 -1
  214. package/docs/display/badge-demo/demo1.md +111 -168
  215. package/docs/display/badge-demo/demo2.md +34 -0
  216. package/docs/display/badge-demo/demo3.md +73 -0
  217. package/docs/display/badge-demo/demo4.md +29 -0
  218. package/docs/display/badge-demo/demo5.md +33 -0
  219. package/docs/display/badge-demo/demo6.md +71 -0
  220. package/docs/display/badge-demo/demo7.md +101 -0
  221. package/docs/display/badge-demo/demo8.md +22 -0
  222. package/docs/display/badge.md +9 -1
  223. package/docs/display/callout-demo/demo1.md +29 -81
  224. package/docs/display/callout-demo/demo2.md +28 -0
  225. package/docs/display/callout-demo/demo3.md +29 -0
  226. package/docs/display/callout-demo/demo4.md +26 -0
  227. package/docs/display/callout.md +15 -1
  228. package/docs/display/card/basic-card-demo/demo1.md +22 -316
  229. package/docs/display/card/basic-card.md +9 -1
  230. package/docs/display/card/beta-badge-demo/demo1.md +47 -0
  231. package/docs/display/card/beta-badge.md +9 -0
  232. package/docs/display/card/checkable-demo/demo1.md +20 -94
  233. package/docs/display/card/checkable-demo/demo2.md +63 -0
  234. package/docs/display/card/checkable.md +9 -1
  235. package/docs/display/card/custom-children-demo/demo1.md +93 -0
  236. package/docs/display/card/custom-children.md +9 -0
  237. package/docs/display/card/footer-demo/demo1.md +77 -0
  238. package/docs/display/card/footer.md +9 -0
  239. package/docs/display/card/images-demo/demo1.md +57 -0
  240. package/docs/display/card/images.md +9 -0
  241. package/docs/display/card/layout-demo/demo1.md +40 -0
  242. package/docs/display/card/layout.md +9 -0
  243. package/docs/display/card/selectable-demo/demo1.md +60 -53
  244. package/docs/display/card/selectable.md +9 -1
  245. package/docs/display/comment-list.md +9 -1
  246. package/docs/display/description-list-demo/demo1.md +54 -0
  247. package/docs/display/description-list-demo/demo2.md +43 -0
  248. package/docs/display/description-list-demo/demo3.md +58 -0
  249. package/docs/display/description-list-demo/demo4.md +42 -0
  250. package/docs/display/description-list-demo/demo5.md +62 -0
  251. package/docs/display/description-list-demo/demo6.md +46 -0
  252. package/docs/display/description-list.md +9 -0
  253. package/docs/display/empty-prompt-demo/demo1.md +49 -0
  254. package/docs/display/empty-prompt.md +11 -0
  255. package/docs/display/health-demo/demo1.md +11 -7
  256. package/docs/display/health-demo/demo2.md +31 -0
  257. package/docs/display/health.md +15 -1
  258. package/docs/display/icons-demo/demo1.md +270 -57
  259. package/docs/display/icons-demo/demo2.md +76 -0
  260. package/docs/display/icons-demo/demo3.md +76 -0
  261. package/docs/display/icons-demo/demo4.md +104 -0
  262. package/docs/display/icons-demo/demo5.md +64 -0
  263. package/docs/display/icons-demo/demo6.md +63 -0
  264. package/docs/display/icons-demo/demo7.md +101 -0
  265. package/docs/display/icons-demo/demo8.md +47 -0
  266. package/docs/display/icons.md +9 -1
  267. package/docs/display/image-demo/demo1.md +15 -50
  268. package/docs/display/image-demo/demo2.md +35 -0
  269. package/docs/display/image-demo/demo3.md +75 -0
  270. package/docs/display/image-demo/demo4.md +80 -0
  271. package/docs/display/image.md +13 -1
  272. package/docs/display/list-group.md +9 -1
  273. package/docs/display/progress-demo/demo1.md +10 -5
  274. package/docs/display/progress-demo/demo2.md +11 -26
  275. package/docs/display/progress-demo/demo3.md +27 -0
  276. package/docs/display/progress-demo/demo4.md +77 -0
  277. package/docs/display/progress.md +9 -1
  278. package/docs/display/stat-demo/demo1.md +0 -118
  279. package/docs/display/stat-demo/demo2.md +24 -22
  280. package/docs/display/stat-demo/demo3.md +39 -0
  281. package/docs/display/stat-demo/demo4.md +50 -0
  282. package/docs/display/stat-demo/demo5.md +25 -0
  283. package/docs/display/stat-demo/demo6.md +40 -0
  284. package/docs/display/stat-demo/demo7.md +84 -0
  285. package/docs/display/stat.md +15 -1
  286. package/docs/display/text-demo/demo1.md +79 -130
  287. package/docs/display/text-demo/demo2.md +71 -0
  288. package/docs/display/text-demo/demo3.md +39 -0
  289. package/docs/display/text.md +20 -1
  290. package/docs/display/title-demo/demo1.md +50 -26
  291. package/docs/display/title.md +9 -1
  292. package/docs/display/tool-tip-demo/demo1.md +57 -100
  293. package/docs/display/tool-tip-demo/demo2.md +35 -29
  294. package/docs/display/tool-tip-demo/demo3.md +52 -0
  295. package/docs/display/tool-tip-demo/demo4.md +77 -0
  296. package/docs/display/tool-tip.md +15 -1
  297. package/docs/editors/code/code-block-demo/demo1.md +21 -40
  298. package/docs/editors/code/code-block-demo/demo2.md +35 -0
  299. package/docs/editors/code/code-block-demo/demo3.md +43 -0
  300. package/docs/editors/code/code-block-demo/demo4.md +28 -0
  301. package/docs/editors/code/code-block-demo/demo5.md +42 -0
  302. package/docs/editors/code/code-block-demo/demo6.md +42 -0
  303. package/docs/editors/code/code-block-demo/demo7.md +853 -0
  304. package/docs/editors/code/code-block-demo/demo8.md +855 -0
  305. package/docs/editors/code/code-block.md +27 -1
  306. package/docs/editors/code/inline-demo/demo1.md +6 -3
  307. package/docs/editors/code/inline.md +9 -1
  308. package/docs/editors/markdown-editor/base-editor-demo/demo1.md +9 -28
  309. package/docs/editors/markdown-editor/base-editor.md +9 -1
  310. package/docs/forms/form-controls/checkbox/demo/demo1.md +49 -0
  311. package/docs/forms/form-controls/checkbox/index.md +34 -0
  312. package/docs/forms/form-controls/{checkbox-group-demo → checkbox-group/demo}/demo1.md +4 -13
  313. package/docs/forms/form-controls/checkbox-group/index.md +35 -0
  314. package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo1.md +8 -2
  315. package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo2.md +10 -8
  316. package/docs/forms/form-controls/combo-box/demo/demo3.md +60 -0
  317. package/docs/forms/form-controls/{combo-box-demo/demo3.md → combo-box/demo/demo4.md} +17 -14
  318. package/docs/forms/form-controls/combo-box/demo/demo5.md +151 -0
  319. package/docs/forms/form-controls/combo-box/index.md +14 -0
  320. package/docs/forms/form-controls/file-picker/demo/demo1.md +29 -0
  321. package/docs/forms/form-controls/file-picker/demo/demo2.md +44 -0
  322. package/docs/forms/form-controls/file-picker/demo/demo3.md +45 -0
  323. package/docs/forms/form-controls/file-picker/demo/demo4.md +63 -0
  324. package/docs/forms/form-controls/file-picker/index.md +30 -0
  325. package/docs/forms/form-controls/{form-control-layout-demo → form-control-layout/demo}/demo1.md +0 -0
  326. package/docs/forms/form-controls/form-control-layout/index.md +38 -0
  327. package/docs/forms/form-controls/{form-control-layout-delimited-demo → form-control-layout-delimited/demo}/demo1.md +41 -37
  328. package/docs/forms/form-controls/form-control-layout-delimited/index.md +32 -0
  329. package/docs/forms/form-controls/number-field/demo/demo1.md +20 -0
  330. package/docs/forms/form-controls/{number-field-demo/demo1.md → number-field/demo/demo2.md} +23 -11
  331. package/docs/forms/form-controls/number-field/index.md +20 -0
  332. package/docs/forms/form-controls/password-field/demo/demo1.md +19 -0
  333. package/docs/forms/form-controls/{password-field-demo/demo1.md → password-field/demo/demo2.md} +12 -8
  334. package/docs/forms/form-controls/password-field/index.md +27 -0
  335. package/docs/forms/form-controls/radio/demo/demo1.md +43 -0
  336. package/docs/forms/form-controls/radio/index.md +32 -0
  337. package/docs/forms/form-controls/radio-group/demo/demo1.md +50 -0
  338. package/docs/forms/form-controls/radio-group/index.md +26 -0
  339. package/docs/forms/form-controls/range/demo/demo1.md +96 -0
  340. package/docs/forms/form-controls/range/demo/demo2.md +62 -0
  341. package/docs/forms/form-controls/{range-demo → range/demo}/demo3.md +10 -12
  342. package/docs/forms/form-controls/{range-demo → range/demo}/demo4.md +16 -18
  343. package/docs/forms/form-controls/{range-demo → range/demo}/demo5.md +18 -20
  344. package/docs/forms/form-controls/range/demo/demo6.md +57 -0
  345. package/docs/forms/form-controls/range/demo/demo7.md +350 -0
  346. package/docs/forms/form-controls/range/index.md +26 -0
  347. package/docs/forms/form-controls/search-field/demo/demo1.md +29 -0
  348. package/docs/forms/form-controls/search-field/index.md +22 -0
  349. package/docs/forms/form-controls/select/demo/demo1.md +29 -0
  350. package/docs/forms/form-controls/select/demo/demo2.md +44 -0
  351. package/docs/forms/form-controls/{select-demo/demo1.md → select/demo/demo3.md} +20 -10
  352. package/docs/forms/form-controls/select/index.md +27 -0
  353. package/docs/forms/form-controls/{switch-demo → switch/demo}/demo1.md +10 -10
  354. package/docs/forms/form-controls/switch/index.md +21 -0
  355. package/docs/forms/form-controls/text-field/demo/demo1.md +35 -0
  356. package/docs/forms/form-controls/text-field/demo/demo2.md +40 -0
  357. package/docs/forms/form-controls/{text-field-demo/demo2.md → text-field/demo/demo3.md} +14 -17
  358. package/docs/forms/form-controls/{text-field-demo/demo1.md → text-field/demo/demo4.md} +18 -32
  359. package/docs/forms/form-controls/text-field/index.md +22 -0
  360. package/docs/forms/form-controls/textarea/demo/demo1.md +21 -0
  361. package/docs/forms/form-controls/textarea/demo/demo2.md +24 -0
  362. package/docs/forms/form-controls/textarea/index.md +22 -0
  363. package/docs/forms/form-layouts/described-form-groups-demo/demo1.md +13 -4
  364. package/docs/forms/form-layouts/described-form-groups.md +9 -1
  365. package/docs/layout/accordion-demo/demo1.md +21 -102
  366. package/docs/layout/accordion-demo/demo2.md +76 -0
  367. package/docs/layout/accordion-demo/demo3.md +25 -0
  368. package/docs/layout/accordion-demo/demo4.md +26 -0
  369. package/docs/layout/accordion-demo/demo5.md +65 -0
  370. package/docs/layout/accordion-demo/demo6.md +78 -0
  371. package/docs/layout/accordion-demo/demo7.md +66 -0
  372. package/docs/layout/accordion-demo/demo8.md +64 -0
  373. package/docs/layout/accordion-demo/demo9.md +114 -0
  374. package/docs/layout/accordion.md +40 -1
  375. package/docs/layout/bottom-bar-demo/demo1.md +32 -49
  376. package/docs/layout/bottom-bar-demo/demo2.md +54 -0
  377. package/docs/layout/bottom-bar-demo/demo3.md +81 -0
  378. package/docs/layout/bottom-bar.md +9 -1
  379. package/docs/layout/flex.md +9 -1
  380. package/docs/layout/flyout-demo/demo1.md +19 -11
  381. package/docs/layout/flyout-demo/demo2.md +43 -28
  382. package/docs/layout/flyout-demo/demo3.md +99 -0
  383. package/docs/layout/flyout-demo/demo4.md +115 -0
  384. package/docs/layout/flyout-demo/demo5.md +59 -0
  385. package/docs/layout/flyout-demo/demo6.md +57 -0
  386. package/docs/layout/flyout-demo/demo7.md +51 -0
  387. package/docs/layout/flyout.md +9 -1
  388. package/docs/layout/header-demo/demo1.md +284 -35
  389. package/docs/layout/header-demo/demo2.md +42 -0
  390. package/docs/layout/header-demo/demo3.md +48 -0
  391. package/docs/layout/header-demo/demo4.md +57 -0
  392. package/docs/layout/header-demo/demo5.md +232 -0
  393. package/docs/layout/header-demo/demo6.md +85 -0
  394. package/docs/layout/header-demo/demo7.md +94 -0
  395. package/docs/layout/header.md +9 -1
  396. package/docs/layout/horizontal-rule.md +9 -1
  397. package/docs/layout/modal-demo/demo1.md +64 -167
  398. package/docs/layout/modal-demo/demo2.md +126 -0
  399. package/docs/layout/modal-demo/demo3.md +55 -0
  400. package/docs/layout/modal-demo/demo4.md +65 -0
  401. package/docs/layout/modal-demo/demo5.md +96 -0
  402. package/docs/layout/modal.md +9 -1
  403. package/docs/layout/page-demo/demo1.md +96 -3
  404. package/docs/layout/page-demo/demo10.md +42 -0
  405. package/docs/layout/page-demo/demo2.md +46 -0
  406. package/docs/layout/page-demo/demo3.md +50 -0
  407. package/docs/layout/page-demo/demo4.md +38 -0
  408. package/docs/layout/page-demo/demo5.md +30 -0
  409. package/docs/layout/page-demo/demo6.md +51 -0
  410. package/docs/layout/page-demo/demo7.md +59 -0
  411. package/docs/layout/page-demo/demo8.md +19 -0
  412. package/docs/layout/page-demo/demo9.md +29 -0
  413. package/docs/layout/page.md +9 -1
  414. package/docs/layout/panel-demo/demo1.md +28 -19
  415. package/docs/layout/panel-demo/demo2.md +22 -0
  416. package/docs/layout/panel-demo/demo3.md +27 -0
  417. package/docs/layout/panel-demo/demo4.md +46 -0
  418. package/docs/layout/panel-demo/demo5.md +81 -0
  419. package/docs/layout/panel.md +15 -1
  420. package/docs/layout/popover-demo/demo1.md +42 -300
  421. package/docs/layout/popover-demo/demo10.md +72 -0
  422. package/docs/layout/popover-demo/demo2.md +306 -96
  423. package/docs/layout/popover-demo/demo3.md +20 -12
  424. package/docs/layout/popover-demo/demo4.md +118 -0
  425. package/docs/layout/popover-demo/demo5.md +252 -0
  426. package/docs/layout/popover-demo/demo6.md +44 -0
  427. package/docs/layout/popover-demo/demo7.md +44 -0
  428. package/docs/layout/popover-demo/demo8.md +50 -0
  429. package/docs/layout/popover-demo/demo9.md +80 -0
  430. package/docs/layout/popover.md +9 -1
  431. package/docs/navigation/breadcrumbs-demo/demo1.md +77 -0
  432. package/docs/navigation/breadcrumbs-demo/demo2.md +61 -0
  433. package/docs/navigation/breadcrumbs-demo/demo3.md +61 -0
  434. package/docs/navigation/breadcrumbs-demo/demo4.md +61 -0
  435. package/docs/navigation/breadcrumbs-demo/demo5.md +61 -0
  436. package/docs/navigation/breadcrumbs-demo/demo6.md +61 -0
  437. package/docs/navigation/breadcrumbs.md +9 -0
  438. package/docs/navigation/button-demo/demo1.md +210 -158
  439. package/docs/navigation/button.md +9 -1
  440. package/docs/navigation/collapsible-nav-demo/demo1.md +21 -44
  441. package/docs/navigation/collapsible-nav-demo/demo2.md +108 -0
  442. package/docs/navigation/collapsible-nav.md +9 -1
  443. package/docs/navigation/key-pad-menu-demo/demo1.md +77 -0
  444. package/docs/navigation/key-pad-menu-demo/demo2.md +102 -0
  445. package/docs/navigation/key-pad-menu-demo/demo3.md +54 -0
  446. package/docs/navigation/key-pad-menu-demo/demo4.md +71 -0
  447. package/docs/navigation/key-pad-menu-demo/demo5.md +65 -0
  448. package/docs/navigation/key-pad-menu.md +9 -0
  449. package/docs/navigation/link-demo/demo1.md +44 -0
  450. package/docs/navigation/link-demo/demo2.md +41 -0
  451. package/docs/navigation/link-demo/demo3.md +45 -0
  452. package/docs/navigation/link-demo/demo4.md +61 -0
  453. package/docs/navigation/link.md +9 -0
  454. package/docs/navigation/side-nav-demo/demo1.md +34 -18
  455. package/docs/navigation/side-nav.md +9 -1
  456. package/docs/navigation/steps-demo/demo1.md +16 -18
  457. package/docs/navigation/steps-demo/demo2.md +18 -21
  458. package/docs/navigation/steps-demo/demo3.md +12 -10
  459. package/docs/navigation/steps-demo/demo4.md +84 -0
  460. package/docs/navigation/steps-demo/demo5.md +29 -0
  461. package/docs/navigation/steps.md +9 -1
  462. package/docs/navigation/tabs.md +9 -1
  463. package/docs/utilities/auto-sizer-demo/demo1.md +34 -0
  464. package/docs/utilities/auto-sizer.md +9 -0
  465. package/docs/utilities/copy-demo/demo1.md +37 -0
  466. package/docs/utilities/copy-demo/demo2.md +70 -0
  467. package/docs/utilities/copy.md +9 -0
  468. package/docs/utilities/mutation-observer.md +9 -1
  469. package/docs/utilities/outside-click-detector.md +9 -1
  470. package/docs/utilities/overlay-mask.md +9 -1
  471. package/docs/utilities/portal.md +9 -1
  472. package/docs/utilities/resize-observer.md +9 -1
  473. package/docs/utilities/responsive-demo/demo1.md +108 -0
  474. package/docs/utilities/responsive.md +9 -0
  475. package/index.js +4 -2
  476. package/package.json +13 -7
  477. package/CHANGELOG.md +0 -1345
  478. package/addon/components/eui-code-block-impl/code-block-controls/index.hbs +0 -33
  479. package/addon/components/eui-code-block-impl/index.hbs +0 -111
  480. package/addon/components/eui-code-block-impl/index.ts +0 -121
  481. package/addon/components/eui-flyout-body/banner/index.hbs +0 -3
  482. package/addon/components/eui-flyout-body/content/index.hbs +0 -3
  483. package/addon/helpers/create-event.ts +0 -30
  484. package/addon/modifiers/get-cursor-node.ts +0 -54
  485. package/addon/modifiers/invalidate-indeterminate.ts +0 -10
  486. package/addon/modifiers/on-event-simulate-event.ts +0 -32
  487. package/app/components/eui-card/eui-card-select/index.js +0 -1
  488. package/app/components/eui-flyout-body/banner/index.js +0 -1
  489. package/app/components/eui-flyout-body/content/index.js +0 -1
  490. package/app/helpers/create-event.js +0 -1
  491. package/app/modifiers/fixed-header.js +0 -1
  492. package/app/modifiers/focus-tab.js +0 -1
  493. package/app/modifiers/get-cursor-node.js +0 -1
  494. package/app/modifiers/invalidate-indeterminate.js +0 -1
  495. package/app/modifiers/on-event-simulate-event.js +0 -1
  496. package/docs/forms/form-controls/checkbox-demo/demo1.md +0 -40
  497. package/docs/forms/form-controls/checkbox-group.md +0 -1
  498. package/docs/forms/form-controls/checkbox.md +0 -1
  499. package/docs/forms/form-controls/combo-box.md +0 -1
  500. package/docs/forms/form-controls/file-picker-demo/demo1.md +0 -28
  501. package/docs/forms/form-controls/file-picker.md +0 -1
  502. package/docs/forms/form-controls/form-control-layout-delimited.md +0 -1
  503. package/docs/forms/form-controls/form-control-layout.md +0 -1
  504. package/docs/forms/form-controls/number-field.md +0 -1
  505. package/docs/forms/form-controls/password-field.md +0 -1
  506. package/docs/forms/form-controls/radio-demo/demo1.md +0 -39
  507. package/docs/forms/form-controls/radio-group-demo/demo1.md +0 -60
  508. package/docs/forms/form-controls/radio-group.md +0 -1
  509. package/docs/forms/form-controls/radio.md +0 -1
  510. package/docs/forms/form-controls/range-demo/demo1.md +0 -61
  511. package/docs/forms/form-controls/range-demo/demo2.md +0 -59
  512. package/docs/forms/form-controls/range-demo/demo6.md +0 -59
  513. package/docs/forms/form-controls/range.md +0 -1
  514. package/docs/forms/form-controls/search-field-demo/demo1.md +0 -31
  515. package/docs/forms/form-controls/search-field.md +0 -1
  516. package/docs/forms/form-controls/select.md +0 -1
  517. package/docs/forms/form-controls/switch.md +0 -1
  518. package/docs/forms/form-controls/text-field.md +0 -1
  519. package/docs/forms/form-controls/textarea-demo/demo1.md +0 -36
  520. 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 '../markdown-types';
2
- import EuiMarkdownFormatMarkdownCode from '../../../components/eui-markdown-format/markdown-code';
3
- import EuiMarkdownFormatMarkdownCodeBlock from '../../../components/eui-markdown-format/markdown-code-block';
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 default function MarkdownAddComponents(): (tree: RehypeNode) => void {
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((child: RehypeNode) =>
50
- /\r|\n/.exec(child.value)
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 '../markdown-types';
20
+ import { RemarkTokenizer } from '../../markdown-types';
21
21
  import { Plugin } from 'unified';
22
- import EuiMarkdownFormatMarkdownCheckbox from '../../../components/eui-markdown-format/markdown-checkbox';
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-highlight.js';
45
- import * as MarkdownTooltip from '../plugins/markdown-tooltip';
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
- (): DefaultEuiMarkdownParsingPlugins => [
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
- [MarkdownTooltip.parser, {}],
55
+ // [markdownLinkValidator, {}],
57
56
  [MarkdownCheckbox.parser, {}]
58
- // [MarkdownCheckbox.parser, {}],
59
- // [markdownLinkValidator, {}]
60
57
  ];
61
58
 
62
- const unknownHandler: Handler = (h, node) => {
63
- return h(node, node.type, node, all(h, node));
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();
@@ -0,0 +1,2 @@
1
+ export { TooltipParser as parser } from './parser';
2
+ export { tooltipPlugin as plugin } from './plugin';
@@ -1,31 +1,13 @@
1
- import { RemarkTokenizer } from '../markdown-types';
1
+ import { RemarkTokenizer } from '../../markdown-types';
2
2
  import { Plugin } from 'unified';
3
- import EuiMarkdownFormatMarkdownTooltip from '../../../components/eui-markdown-format/markdown-tooltip';
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 tooltipPlugin = {
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;