@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
@@ -1,16 +1,18 @@
1
- <div class="euiHealth" ...attributes>
1
+ <div
2
+ class={{class-names
3
+ componentName="EuiHealth"
4
+ textSize=(arg-or-default @textSize "m")
5
+ }}
6
+ ...attributes
7
+ >
2
8
  <div
3
- class="
4
- euiFlexGroup
5
- euiFlexGroup--gutterExtraSmall
6
- euiFlexGroup--alignItemsCenter
7
- euiFlexGroup--directionRow"
9
+ class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
8
10
  >
9
- <div class="euiFlexItem euiFlexItem--flexGrowZero">
10
- <EuiIcon @type="dot" @color={{@color}} />
11
- </div>
12
- <div class="euiFlexItem euiFlexItem--flexGrowZero">
13
- {{yield}}
14
- </div>
11
+ <div class="euiFlexItem euiFlexItem--flexGrowZero">
12
+ <EuiIcon @type="dot" @color={{@color}} />
13
+ </div>
14
+ <div class="euiFlexItem euiFlexItem--flexGrowZero">
15
+ {{yield}}
16
+ </div>
15
17
  </div>
16
- </div>
18
+ </div>
@@ -0,0 +1,3 @@
1
+ {{#if this.shouldShow}}
2
+ {{yield}}
3
+ {{/if}}
@@ -0,0 +1,33 @@
1
+ import Component from '@glimmer/component';
2
+ import { EuiBreakpointSize } from '../../utils/breakpoint';
3
+ import { CurrentBreakPointHelper } from '../eui-show-for';
4
+ //@ts-ignore
5
+ import { invokeHelper } from '@ember/helper';
6
+ //@ts-ignore
7
+ import { getValue } from '@glimmer/tracking/primitives/cache';
8
+
9
+ export type EuiHideForBreakpoints = EuiBreakpointSize;
10
+
11
+ export interface EuiHideForArgs {
12
+ /**
13
+ * Required otherwise nothing ever gets returned
14
+ */
15
+ children: Component;
16
+ /**
17
+ * List of all the responsive sizes to hide the children for.
18
+ * Array of #EuiBreakpointSize
19
+ */
20
+ sizes: EuiHideForBreakpoints[] | 'all' | 'none';
21
+ }
22
+
23
+ export default class EuiHideForComponent extends Component<EuiHideForArgs> {
24
+ currentBreakpointHelper = invokeHelper(this, CurrentBreakPointHelper, () => {
25
+ return {
26
+ positional: [this.args.sizes]
27
+ };
28
+ });
29
+
30
+ get shouldShow() {
31
+ return !getValue(this.currentBreakpointHelper);
32
+ }
33
+ }
@@ -6,7 +6,7 @@
6
6
  class={{class-names
7
7
  @iconClasses
8
8
  this.optionalColorClass
9
- (if this.isAppIcon "euiIcon--app")
9
+ (if (and this.isAppIcon (not this.appIconHasColor)) "euiIcon--app")
10
10
  componentName="EuiIcon"
11
11
  size=this.size
12
12
  }}
@@ -16,6 +16,7 @@
16
16
  aria-labelledby={{if @aria-labelledby @aria-labelledby this.titleId}}
17
17
  tabindex={{this.tabIndex}}
18
18
  style={{this.optionalCustomStyles}}
19
+ color={{@color}}
19
20
  ...attributes
20
21
  />
21
22
  {{/let}}
@@ -26,10 +27,11 @@
26
27
  class={{class-names
27
28
  @iconClasses
28
29
  this.optionalColorClass
29
- (if this.isAppIcon "euiIcon--app")
30
+ (if (and this.isAppIcon (not this.appIconHasColor)) "euiIcon--app")
30
31
  componentName="EuiIcon"
31
32
  size=this.size
32
33
  }}
34
+ color={{@color}}
33
35
  alt={{if @title @title}}
34
36
  tabIndex={{@tabIndex}}
35
37
  ...attributes
@@ -40,10 +42,11 @@
40
42
  class=(class-names
41
43
  @iconClasses
42
44
  this.optionalColorClass
43
- (if this.isAppIcon "euiIcon--app")
45
+ (if (and this.isAppIcon (not this.appIconHasColor)) "euiIcon--app")
44
46
  componentName="EuiIcon"
45
47
  size=this.size
46
48
  )
49
+ color=@color
47
50
  role="image"
48
51
  aria-hidden=(if this.isAriaHidden "true")
49
52
  aria-label=(if @aria-label @aria-label this.titleId)
@@ -129,6 +129,10 @@ export default class EuiIcon extends Component<EuiIconArgs> {
129
129
  );
130
130
  }
131
131
 
132
+ get appIconHasColor() {
133
+ return this.args.color && this.args.color !== 'default';
134
+ }
135
+
132
136
  get focusable(): string {
133
137
  const { tabIndex } = this.args;
134
138
  return tabIndex == null || tabIndex === -1 ? 'false' : 'true';
@@ -1,12 +1,16 @@
1
- <figure
2
- class={{class-names
3
- (unless (eq @hasShadow false) "euiImage--hasShadow")
4
- componentName="EuiImage"
5
- size=@size
6
- }}
7
- ...attributes
8
- >
9
- {{#if @allowFullScreen}}
1
+ {{#if @allowFullScreen}}
2
+ <figure
3
+ class={{class-names
4
+ "euiImage--allowFullScreen"
5
+ (unless (eq @hasShadow false) "euiImage--hasShadow")
6
+ float=@float
7
+ margin=@margin
8
+ componentName="EuiImage"
9
+ size=@size
10
+ }}
11
+ ...attributes
12
+ >
13
+
10
14
  <button
11
15
  class="euiImage__button"
12
16
  type="button"
@@ -15,43 +19,77 @@
15
19
  {{on "click" this.toggleFullscreen}}
16
20
  >
17
21
  <img
18
- src={{@url}}
22
+ src={{or @src @url}}
19
23
  class="euiImage__img"
20
24
  style={{this.sizeStyle}}
21
25
  alt={{@alt}}
22
26
  />
23
27
  <EuiIcon
24
- class="euiImage__icon"
28
+ @iconClasses="euiImage__icon"
25
29
  @type="fullScreen"
26
- @color={{if (not (eq @fullScreenIconColor "dark")) "ghost"}}
30
+ @color={{if (not-eq @fullScreenIconColor "dark") "ghost"}}
27
31
  />
28
32
  </button>
29
- {{else}}
33
+
34
+ {{#if @caption}}
35
+ <figcaption class="euiImage__caption">
36
+ {{@caption}}
37
+ </figcaption>
38
+ {{/if}}
39
+ </figure>
40
+
41
+ {{else}}
42
+
43
+ <figure
44
+ class={{class-names
45
+ (unless (eq @hasShadow false) "euiImage--hasShadow")
46
+ float=@float
47
+ margin=@margin
48
+ componentName="EuiImage"
49
+ size=@size
50
+ }}
51
+ ...attributes
52
+ >
53
+
30
54
  <img
31
- src={{@url}}
55
+ src={{or @src @url}}
32
56
  class="euiImage__img"
33
57
  style={{this.sizeStyle}}
34
58
  alt={{@alt}}
35
59
  />
36
- {{/if}}
37
- {{#if @caption}}
38
- <figcaption class="euiImage__caption">
39
- {{@caption}}
40
- </figcaption>
41
- {{/if}}
42
- </figure>
60
+
61
+ {{#if @caption}}
62
+ <figcaption class="euiImage__caption">
63
+ {{@caption}}
64
+ </figcaption>
65
+ {{/if}}
66
+ </figure>
67
+
68
+ {{/if}}
69
+
43
70
  {{#if this.isFullscreen}}
44
71
  <EuiOverlayMask
45
72
  @headerZindexLocation="above"
46
- {{on "click" this.toggleFullscreen}}
73
+ @onClick={{this.toggleFullscreen}}
47
74
  >
48
- <figure class="euiImage euiImage-isFullScreen">
75
+ <figure
76
+ class="euiImage euiImage-isFullScreen"
77
+ {{focus-trap focusTrapOptions=(hash clickOutsideDeactivates=true)}}
78
+ >
49
79
  <button
50
80
  class="euiImage__button"
51
81
  type="button"
52
82
  {{on "click" this.toggleFullscreen}}
83
+ {{on-key
84
+ "Escape"
85
+ (prevent-default (stop-propagation this.toggleFullscreen))
86
+ }}
53
87
  >
54
- <img class="euiImage-isFullScreen__img" src={{@url}} alt={{@alt}} />
88
+ <img
89
+ class="euiImage-isFullScreen__img"
90
+ src={{or @src @url}}
91
+ alt={{@alt}}
92
+ />
55
93
  </button>
56
94
  <figcaption class="euiImage__caption">
57
95
  {{@caption}}
@@ -60,7 +98,7 @@
60
98
  <EuiIcon
61
99
  @iconClasses="euiImage-isFullScreenCloseIcon"
62
100
  @type="cross"
63
- @color={{if (not (eq @fullScreenIconColor "dark")) "ghost"}}
101
+ @color={{if (not-eq @fullScreenIconColor "dark") "ghost"}}
64
102
  />
65
103
  </EuiOverlayMask>
66
104
  {{/if}}
@@ -6,7 +6,8 @@ import { argOrDefaultDecorator as argOrDefault } from '../../helpers/arg-or-defa
6
6
  import { tabbable } from 'tabbable';
7
7
  import { EuiPopoverArgs } from '../eui-popover';
8
8
 
9
- export interface EuiInputPopoverArgs extends Omit<EuiPopoverArgs, 'button' | 'buttonRef'> {
9
+ export interface EuiInputPopoverArgs
10
+ extends Omit<EuiPopoverArgs, 'button' | 'buttonRef'> {
10
11
  disableFocusTrap?: boolean;
11
12
  fullWidth?: boolean;
12
13
  input: EuiPopoverArgs['button'];
@@ -44,8 +45,8 @@ export default class EuiInputPopoverComponent extends Component<EuiInputPopoverA
44
45
  @action
45
46
  setPanelWidth(width?: number): void {
46
47
  const { panel, inputWidth } = this;
47
- if (panel && (!!inputWidth || !!width)) {
48
- const newWidth = !width ? width : inputWidth;
48
+ const newWidth = width || inputWidth;
49
+ if (panel && !!newWidth) {
49
50
  panel.style.width = `${newWidth}px`;
50
51
  this.args.onPanelResize?.(newWidth);
51
52
  }
@@ -74,7 +75,8 @@ export default class EuiInputPopoverComponent extends Component<EuiInputPopoverA
74
75
  });
75
76
  if (
76
77
  this.args.disableFocusTrap ||
77
- (tabbableItems.length && tabbableItems[tabbableItems.length - 1] === document.activeElement)
78
+ (tabbableItems.length &&
79
+ tabbableItems[tabbableItems.length - 1] === document.activeElement)
78
80
  ) {
79
81
  this.args.closePopover?.();
80
82
  }
@@ -0,0 +1,16 @@
1
+ {{#if @checkable.legend}}
2
+ <fieldset
3
+ class="euiKeyPadMenu"
4
+ aria-label={{@checkable.ariaLegend}}
5
+ ...attributes
6
+ >
7
+ <EuiFormLabel @type="legend">
8
+ {{@checkable.legend}}
9
+ </EuiFormLabel>
10
+ {{yield}}
11
+ </fieldset>
12
+ {{else}}
13
+ <ul class="euiKeyPadMenu" ...attributes>
14
+ {{yield (component "eui-key-pad-menu/key")}}
15
+ </ul>
16
+ {{/if}}
@@ -0,0 +1 @@
1
+ <li>{{yield}}</li>
@@ -0,0 +1,66 @@
1
+ {{#let
2
+ (if @checkable "label" (if (and @href (not @isDisabled)) "a" "button"))
3
+ (arg-or-default @id (unique-id))
4
+ (and @href (not @isDisabled))
5
+ as |ElementTag itemId useHref|
6
+ }}
7
+ {{#let (element ElementTag) as |Element|}}
8
+ <Element
9
+ href={{if useHref @href}}
10
+ target={{if useHref @target}}
11
+ aria-current={{if (and useHref @isSelected) @isSelected}}
12
+ for={{if @checkable itemId}}
13
+ disabled={{if (and (not useHref) (not @checkable)) @isDisabled}}
14
+ type={{if (and (not useHref) (not @checkable)) "button"}}
15
+ aria-pressed={{if (and (not useHref) (not @checkable)) @isSelected}}
16
+ class={{class-names
17
+ "euiKeyPadMenuItem"
18
+ (if @betaBadgeLabel "euiKeyPadMenuItem--hasBetaBadge")
19
+ (if @checkable "euiKeyPadMenuItem--checkable")
20
+ (if @isDisabled "euiKeyPadMenuItem-isDisabled")
21
+ (if @isSelected "euiKeyPadMenuItem-isSelected")
22
+ }}
23
+ rel={{if useHref "noreferrer"}}
24
+ ...attributes
25
+ >
26
+ <span class="euiKeyPadMenuItem__inner">
27
+ {{#if @checkable}}
28
+ {{#if (eq @checkable "single")}}
29
+ {{! template-lint-disable no-duplicate-id }}
30
+ <EuiRadio
31
+ id={{itemId}}
32
+ @containerClass="euiKeyPadMenuItem__checkableInput"
33
+ @checked={{@isSelected}}
34
+ @disabled={{@isDisabled}}
35
+ @name={{@name}}
36
+ value={{@value}}
37
+ {{on "change" (fn @onChange itemId @value)}}
38
+ />
39
+ {{else}}
40
+ <EuiCheckbox
41
+ id={{itemId}}
42
+ @containerClass="euiKeyPadMenuItem__checkableInput"
43
+ @checked={{@isSelected}}
44
+ @disabled={{@isDisabled}}
45
+ @name={{@name}}
46
+ {{on "change" (fn @onChange itemId)}}
47
+ />
48
+ {{/if}}
49
+ {{else}}
50
+ <EuiBetaBadge
51
+ @size="s"
52
+ @color="subdued"
53
+ class="euiKeyPadMenuItem__betaBadge"
54
+ @label={{this.charAt @betaBadgeLabel 0}}
55
+ @title={{@betaBadgeLabel}}
56
+ @iconType={{@betaBadgeIconType}}
57
+ @tooltipContent={{@betaBadgeTooltipContent}}
58
+ />
59
+ {{/if}}
60
+ <span class="euiKeyPadMenuItem__icon">{{yield}}</span>
61
+ <span class="euiKeyPadMenuItem__label">{{@label}}</span>
62
+ </span>
63
+ </Element>
64
+
65
+ {{/let}}
66
+ {{/let}}
@@ -0,0 +1,11 @@
1
+ import { helper } from '@ember/component/helper';
2
+ import Component from '@glimmer/component';
3
+ interface EuiKeyPadMenuItemComponentArgs {}
4
+
5
+ const charAt = helper(function ([str, num]: [string, number]) {
6
+ return str?.charAt?.(num);
7
+ });
8
+
9
+ export default class EuiKeyPadMenuItemComponent extends Component<EuiKeyPadMenuItemComponentArgs> {
10
+ charAt = charAt;
11
+ }
@@ -0,0 +1,50 @@
1
+ {{#let (arg-or-default @color "primary") as |color|}}
2
+ {{#if @href}}
3
+ <a
4
+ href={{@href}}
5
+ class={{class-names
6
+ (if @disabled "euiLink--disabled")
7
+ componentName="EuiLink"
8
+ color=(unless @disabled color)
9
+ }}
10
+ target={{@target}}
11
+ disabled={{@disabled}}
12
+ ...attributes
13
+ >
14
+
15
+ {{yield}}
16
+ {{#if
17
+ (or
18
+ (and (eq @target "_blank") (not-eq @external false))
19
+ (eq @external true)
20
+ )
21
+ }}
22
+ <EuiIcon
23
+ @type="popout"
24
+ aria-label="External link"
25
+ @size="s"
26
+ class="euiLink__externalIcon"
27
+ />
28
+ {{/if}}
29
+ {{#if (eq @target "_blank")}}
30
+ <span {{screen-reader-only}}>
31
+ (opens in a new tab or window)
32
+ </span>
33
+ {{/if}}
34
+ </a>
35
+ {{else}}
36
+ <button
37
+ type={{arg-or-default @type "button"}}
38
+ class={{class-names
39
+ (if @disabled "euiLink-disabled")
40
+ componentName="EuiLink"
41
+ color=(unless @disabled color)
42
+ }}
43
+ disabled={{@disabled}}
44
+ ...attributes
45
+ >
46
+ {{yield}}
47
+ </button>
48
+
49
+ {{/if}}
50
+ {{/let}}
@@ -37,7 +37,11 @@
37
37
  ...attributes
38
38
  >
39
39
  {{#if @iconType}}
40
- <EuiIcon @iconClasses="euiListGroupItem__icon" @type={{@iconType}} />
40
+ <EuiIcon
41
+ @iconClasses="euiListGroupItem__icon"
42
+ @type={{@iconType}}
43
+ @color="inherit"
44
+ />
41
45
  {{/if}}
42
46
  <span class="euiListGroupItem__label">
43
47
  {{#if (has-block)}}
@@ -50,7 +54,11 @@
50
54
  {{else}}
51
55
  <span class="euiListGroupItem__text" ...attributes>
52
56
  {{#if @iconType}}
53
- <EuiIcon @iconClasses="euiListGroupItem__icon" @type={{@iconType}} />
57
+ <EuiIcon
58
+ @iconClasses="euiListGroupItem__icon"
59
+ @type={{@iconType}}
60
+ @color="inherit"
61
+ />
54
62
  {{/if}}
55
63
  <span class="euiListGroupItem__label">
56
64
  {{#if (has-block)}}
@@ -44,7 +44,10 @@
44
44
  {{resize-observer onResize=this.onResize}}
45
45
  >
46
46
  <EuiMarkdownEditorTextArea
47
- {{get-cursor-node (get this.parsed "0") this.setSelectedNode}}
47
+ {{this.getCursorNodeModifier
48
+ (get this.parsed "0")
49
+ this.setSelectedNode
50
+ }}
48
51
  {{did-update this.onParse this.parsed}}
49
52
  {{did-insert this.setTextAreaRef}}
50
53
  disabled={{@disabled}}
@@ -21,6 +21,7 @@ import {
21
21
  } from '../../utils/markdown/markdown-types';
22
22
  import { Processor } from 'unified';
23
23
  import { scheduleOnce } from '@ember/runloop';
24
+ import { modifier } from 'ember-modifier';
24
25
 
25
26
  export interface EuiMarkdownEditorArgs {
26
27
  initialViewMode?: string;
@@ -54,7 +55,60 @@ export interface EuiMarkdownEditorArgs {
54
55
  // return text;
55
56
  // }
56
57
 
58
+ export const getCursorNode = (
59
+ textareaRef: HTMLInputElement,
60
+ parsed: any
61
+ ): EuiMarkdownAstNode => {
62
+ const { selectionStart } = textareaRef;
63
+
64
+ let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;
65
+
66
+ //eslint-disable-next-line
67
+ outer: while (true) {
68
+ if (node.children) {
69
+ for (let i = 0; i < node.children.length; i++) {
70
+ const child = node.children[i];
71
+ if (
72
+ child.position.start.offset < (selectionStart as number) &&
73
+ (selectionStart as number) < child.position.end.offset
74
+ ) {
75
+ if (child.type === 'text') break outer; // don't dive into `text` nodes
76
+ node = child;
77
+ continue outer;
78
+ }
79
+ }
80
+ }
81
+ break;
82
+ }
83
+
84
+ return node;
85
+ };
86
+
87
+ function wrapper(
88
+ textarea: HTMLInputElement,
89
+ parsed: any,
90
+ callback: (node: EuiMarkdownAstNode) => void
91
+ ) {
92
+ const node = getCursorNode(textarea, parsed);
93
+ callback(node);
94
+ }
95
+
96
+ export const getCursorNodeModifier = modifier(function getCursorNodeModifier(
97
+ textarea: HTMLInputElement,
98
+ [parsed, onSelectedNode]: [boolean, () => void]
99
+ ) {
100
+ const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);
101
+ textarea.addEventListener('keyup', fn);
102
+ textarea.addEventListener('mouseup', fn);
103
+
104
+ return () => {
105
+ textarea.removeEventListener('keyup', fn);
106
+ textarea.removeEventListener('mouseup', fn);
107
+ };
108
+ });
109
+
57
110
  export default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorArgs> {
111
+ getCursorNodeModifier = getCursorNodeModifier;
58
112
  // Defaults
59
113
  @argOrDefault(defaultParsingPlugins)
60
114
  declare parsingPluginList: typeof defaultParsingPlugins;
@@ -39,34 +39,34 @@
39
39
  />
40
40
 
41
41
  {{#if this.isShowingHelp}}
42
- <EuiOverlayMask>
43
- <EuiModal @onClose={{set this "isShowingHelp" false}}>
44
- <EuiModalHeader>
45
- <EuiTitle>
46
- <h3>
47
- Syntax Help
48
- {{! <EuiI18n
42
+
43
+ <EuiModal @onClose={{set this "isShowingHelp" false}}>
44
+ <EuiModalHeader>
45
+ <EuiTitle>
46
+ <h3>
47
+ Syntax Help
48
+ {{! <EuiI18n
49
49
  token="euiMarkdownEditorFooter.syntaxTitle"
50
50
  default="Syntax help"
51
51
  /> }}
52
- </h3>
53
- </EuiTitle>
54
- </EuiModalHeader>
55
- <EuiModalBody>
52
+ </h3>
53
+ </EuiTitle>
54
+ </EuiModalHeader>
55
+ <EuiModalBody>
56
56
 
57
- <EuiText>
58
- <p>The editor uses</p>
59
- <a
60
- href="https://github.github.com/gfm/"
61
- target="_blank"
62
- rel="noreferrer noopener"
63
- >
64
- Github flavored markdown
65
- </a>
66
- <p>You can also utilize these additional syntax plugins to add rich
67
- content to yoru text.</p>
57
+ <EuiText>
58
+ <p>The editor uses</p>
59
+ <a
60
+ href="https://github.github.com/gfm/"
61
+ target="_blank"
62
+ rel="noreferrer noopener"
63
+ >
64
+ Github flavored markdown
65
+ </a>
66
+ <p>You can also utilize these additional syntax plugins to add rich
67
+ content to yoru text.</p>
68
68
 
69
- {{! <EuiI18n
69
+ {{! <EuiI18n
70
70
  tokens={[
71
71
  'euiMarkdownEditorFooter.descriptionPrefix',
72
72
  'euiMarkdownEditorFooter.descriptionSuffix',
@@ -87,24 +87,23 @@
87
87
  </p>
88
88
  )}
89
89
  </EuiI18n> }}
90
- </EuiText>
91
- <EuiHorizontalRule />
92
- {{#each @uiPlugins as |uiPlugin|}}
93
- {{#if uiPlugin.helpText}}
94
- <EuiTitle size="xxs">
95
- <p>
96
- <strong>{{uiPlugin.name}}</strong>
97
- </p>
98
- </EuiTitle>
99
- <EuiSpacer size="s" />
100
- <EuiMarkdownFormat @value={{uiPlugin.helpText}} />
101
- <EuiSpacer size="l" />
90
+ </EuiText>
91
+ <EuiHorizontalRule />
92
+ {{#each @uiPlugins as |uiPlugin|}}
93
+ {{#if uiPlugin.helpText}}
94
+ <EuiTitle size="xxs">
95
+ <p>
96
+ <strong>{{uiPlugin.name}}</strong>
97
+ </p>
98
+ </EuiTitle>
99
+ <EuiSpacer size="s" />
100
+ <EuiMarkdownFormat @value={{uiPlugin.helpText}} />
101
+ <EuiSpacer size="l" />
102
102
 
103
- {{/if}}
104
- {{/each}}
105
- </EuiModalBody>
106
- </EuiModal>
107
- </EuiOverlayMask>
103
+ {{/if}}
104
+ {{/each}}
105
+ </EuiModalBody>
106
+ </EuiModal>
108
107
 
109
108
  {{/if}}
110
109
  </div>
@@ -32,6 +32,7 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
32
32
  };
33
33
 
34
34
  function identityCompiler(this: Processor) {
35
+ //eslint-disable-next-line
35
36
  this.Compiler = Compiler;
36
37
  }
37
38
  return unified()
@@ -41,7 +42,6 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
41
42
  }
42
43
 
43
44
  @cached
44
- //@ts-ignore
45
45
  get result() {
46
46
  try {
47
47
  const processed = this.processor.processSync(this.args.value);
@@ -1,3 +1,3 @@
1
- <EuiCode>
2
- {{@node.content}}
1
+ <EuiCode @language={{@node.language}}>
2
+ {{@node.content}}
3
3
  </EuiCode>
@@ -1,6 +1,7 @@
1
1
  <EuiCodeBlock
2
2
  @paddingSize={{@node.paddingSize}}
3
3
  @fontSize={{@node.fontSize}}
4
+ @language={{@node.language}}
4
5
  @isCopyable={{true}}
5
6
  >
6
7
  {{@node.content}}