@ember-eui/core 4.2.6 → 5.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +8 -5
  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 -1335
  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
@@ -78,7 +78,7 @@ export type EuiPopoverArgs = {
78
78
  * document.querySelector() to find the DOM node), or a function that
79
79
  * returns a DOM node
80
80
  */
81
- initialFocus?: FocusTarget;
81
+ initialFocus?: FocusTarget | false;
82
82
  /**
83
83
  * Passed directly to EuiPortal for DOM positioning. Both properties are
84
84
  * required if prop is specified
@@ -147,6 +147,8 @@ export type EuiPopoverArgs = {
147
147
  * Usually takes the `id` of the popover title
148
148
  */
149
149
  'aria-labelledby'?: string;
150
+
151
+ tabindex?: string | number;
150
152
  };
151
153
 
152
154
  type AnchorPosition = 'up' | 'right' | 'down' | 'left';
@@ -234,7 +236,7 @@ type CssProps = {
234
236
  export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
235
237
  // Defaults
236
238
  @argOrDefault(false) isOpen!: boolean;
237
- @argOrDefault(false) ownFocus!: boolean;
239
+ @argOrDefault(true) ownFocus!: boolean;
238
240
  @argOrDefault('downCenter') anchorPosition!: PopoverAnchorPosition;
239
241
  @argOrDefault('m') panelPaddingSize!: PanelPaddingSize;
240
242
  @argOrDefault(true) hasArrow!: boolean;
@@ -257,6 +259,7 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
257
259
  private closingTransitionTimeout: ReturnType<typeof later> | null = null;
258
260
  private closingTransitionAnimationFrame: number | undefined;
259
261
  private updateFocusAnimationFrame: number | undefined;
262
+ private hasSetInitialFocus: boolean = false;
260
263
  @tracked button: HTMLElement | null = null;
261
264
  @tracked panel: HTMLElement | null = null;
262
265
 
@@ -287,7 +290,7 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
287
290
  @action
288
291
  onKeyDown(event: KeyboardEvent): void {
289
292
  if (event.key === cascadingMenuKeys.ESCAPE) {
290
- this.onEscapeKey((event as unknown) as Event);
293
+ this.onEscapeKey(event as unknown as Event);
291
294
  }
292
295
  }
293
296
 
@@ -303,12 +306,15 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
303
306
  updateFocus(): void {
304
307
  // Wait for the DOM to update.
305
308
  this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {
306
- if (!this.ownFocus || !this.panel) {
309
+ if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {
307
310
  return;
308
311
  }
309
312
 
310
313
  // If we've already focused on something inside the panel, everything's fine.
311
- if (this.panel.contains(document.activeElement)) {
314
+ if (
315
+ this.hasSetInitialFocus &&
316
+ this.panel.contains(document.activeElement)
317
+ ) {
312
318
  return;
313
319
  }
314
320
 
@@ -331,8 +337,8 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
331
337
  // there isn't a focus target, one of two reasons:
332
338
  // #1 is the whole panel hidden? If so, schedule another check
333
339
  // #2 panel is visible but no tabbables exist, move focus to the panel
334
- const panelVisibility = window.getComputedStyle(this.panel).visibility;
335
- if (panelVisibility === 'hidden') {
340
+ const panelVisibility = window.getComputedStyle(this.panel).opacity;
341
+ if (panelVisibility === '0') {
336
342
  // #1
337
343
  this.updateFocus();
338
344
  } else {
@@ -348,7 +354,10 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
348
354
  }
349
355
  }
350
356
 
351
- if (focusTarget != null) focusTarget.focus();
357
+ if (focusTarget != null) {
358
+ this.hasSetInitialFocus = true;
359
+ focusTarget.focus();
360
+ }
352
361
  });
353
362
  }
354
363
 
@@ -411,7 +420,7 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
411
420
  }
412
421
 
413
422
  if (this.args.repositionOnScroll) {
414
- window.addEventListener('scroll', this.positionPopoverFixed);
423
+ window.addEventListener('scroll', this.positionPopoverFixed, true);
415
424
  }
416
425
 
417
426
  this.updateFocus();
@@ -420,9 +429,9 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
420
429
  @action
421
430
  didUpdateRepositionOnScroll(): void {
422
431
  if (this.args.repositionOnScroll) {
423
- window.addEventListener('scroll', this.positionPopoverFixed);
432
+ window.addEventListener('scroll', this.positionPopoverFixed, true);
424
433
  } else {
425
- window.removeEventListener('scroll', this.positionPopoverFixed);
434
+ window.removeEventListener('scroll', this.positionPopoverFixed, true);
426
435
  }
427
436
  }
428
437
 
@@ -451,7 +460,7 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
451
460
 
452
461
  willDestroy(): void {
453
462
  super.willDestroy();
454
- window.removeEventListener('scroll', this.positionPopoverFixed);
463
+ window.removeEventListener('scroll', this.positionPopoverFixed, true);
455
464
  cancel(this.respositionTimeout as ReturnType<typeof later>);
456
465
  cancel(this.closingTransitionTimeout as ReturnType<typeof later>);
457
466
  cancelAnimationFrame(this.closingTransitionAnimationFrame as number);
@@ -552,6 +561,13 @@ export default class EuiPopoverComponent extends Component<EuiPopoverArgs> {
552
561
  };
553
562
  }
554
563
 
564
+ get tabindex() {
565
+ if (this.ownFocus) {
566
+ return this.args.tabindex ?? '0';
567
+ }
568
+ return '-1';
569
+ }
570
+
555
571
  @action
556
572
  positionPopoverFixed(): void {
557
573
  this.positionPopover(true);
@@ -4,13 +4,13 @@
4
4
  class={{class-names
5
5
  (if (eq @size "l") "euiProgress__data--l")
6
6
  componentName="EuiProgressData"
7
- color=(arg-or-default @color "secondary")
7
+ color=(arg-or-default @color "success")
8
8
  }}
9
9
  >
10
10
  {{#if (has-block "label")}}
11
- <span class="euiProgress__label">
12
- {{yield to="label"}}
13
- </span>
11
+ <span class="euiProgress__label">
12
+ {{yield to="label"}}
13
+ </span>
14
14
  {{/if}}
15
15
  {{#if (or (has-block "valueText") @valueText)}}
16
16
  <span class="euiProgress__valueText {{@labelClasses}}">
@@ -27,24 +27,27 @@
27
27
  class={{class-names
28
28
  "euiProgress--native"
29
29
  componentName="EuiProgress"
30
- size=(arg-or-default @size 'm')
31
- position=(arg-or-default @position 'static')
32
- color=(arg-or-default @color 'secondary')
30
+ size=(arg-or-default @size "m")
31
+ position=(arg-or-default @position "static")
32
+ color=(arg-or-default @color "success")
33
33
  }}
34
34
  max={{@max}}
35
35
  value={{@value}}
36
- aria-hidden={{and (has-block "label") (or @valueText (has-block "valueText"))}}
36
+ aria-hidden={{and
37
+ (has-block "label")
38
+ (or @valueText (has-block "valueText"))
39
+ }}
37
40
  ...attributes
38
- />
41
+ ></progress>
39
42
  {{else}}
40
43
  <div
41
44
  class={{class-names
42
45
  "euiProgress--indeterminate"
43
46
  componentName="EuiProgress"
44
- size=(arg-or-default @size 'm')
45
- position=(arg-or-default @position 'static')
46
- color=(arg-or-default @color 'secondary')
47
+ size=(arg-or-default @size "m")
48
+ position=(arg-or-default @position "static")
49
+ color=(arg-or-default @color "success")
47
50
  }}
48
51
  ...attributes
49
- />
52
+ ></div>
50
53
  {{/if}}
@@ -1,13 +1,16 @@
1
1
  {{#let
2
2
  (and (has-block "label") (not (arg-or-default @isFakeLabelBlock false)))
3
- (arg-or-default @id (unique-id)) as |hasLabelBlock id|
3
+ (arg-or-default @id (unique-id))
4
+ as |hasLabelBlock id|
4
5
  }}
5
6
  {{#let
6
7
  (class-names
8
+ @containerClass
7
9
  (if (not (or hasLabelBlock @label)) "euiRadio--noLabel")
8
10
  (if @compressed "euiRadio--compressed")
9
11
  "euiRadio"
10
- ) as |classes|
12
+ )
13
+ as |classes|
11
14
  }}
12
15
  <div class={{classes}}>
13
16
  <input
@@ -22,7 +25,10 @@
22
25
  />
23
26
  <div class="euiRadio__circle"></div>
24
27
  {{#if (or hasLabelBlock @label)}}
25
- <label class="euiRadio__label" for={{id}}>
28
+ <label
29
+ class={{class-names "euiRadio__label" @labelProps.className}}
30
+ for={{id}}
31
+ >
26
32
  {{#if hasLabelBlock}}
27
33
  {{yield to="label"}}
28
34
  {{else}}
@@ -1,6 +1,6 @@
1
1
  {{#let
2
- (and (not (arg-or-default @isFakePrependBlock false)) (has-block "prepend"))
3
- (and (not (arg-or-default @isFakeAppendBlock false)) (has-block "append"))
2
+ (and (arg-or-default @isPrependProvided true) (has-block "prepend"))
3
+ (and (arg-or-default @isAppendProvided true) (has-block "append"))
4
4
  (and (not (arg-or-default @isFakeMaxBlock false)) (has-block "max"))
5
5
  (and (not (arg-or-default @isFakeMinBlock false)) (has-block "min"))
6
6
  (and (not (arg-or-default @isFakeValueBlock false)) (has-block "value"))
@@ -38,8 +38,8 @@
38
38
  @isLoading={{and @showInputOnly @isLoading}}
39
39
  @isInvalid={{@isInvalid}}
40
40
  @autoSize={{not this.showInputOnly}}
41
- @isFakePrependBlock={{hasPrepend}}
42
- @isFakeAppendBlock={{hasAppend}}
41
+ @isPrependProvided={{hasPrepend}}
42
+ @isAppendProvided={{hasAppend}}
43
43
  ...attributes
44
44
  {{on
45
45
  "focus"
@@ -61,7 +61,10 @@
61
61
  </:input>
62
62
  <:content>
63
63
  <EuiRangeWrapper
64
- class="euiRange"
64
+ class={{class-names
65
+ "euiRange"
66
+ (if this.showInput "euiRange--hasInput")
67
+ }}
65
68
  @fullWidth={{@fullWidth}}
66
69
  @compressed={{@compressed}}
67
70
  >
@@ -191,6 +194,8 @@
191
194
  @isLoading={{and @showInputOnly @isLoading}}
192
195
  @isInvalid={{@isInvalid}}
193
196
  @autoSize={{not this.showInputOnly}}
197
+ @isPrependProvided={{hasPrepend}}
198
+ @isAppendProvided={{hasAppend}}
194
199
  ...attributes
195
200
  {{on
196
201
  "focus"
@@ -203,7 +208,14 @@
203
208
  (if this.canShowDropdown this.onInputBlur (optional @onBlur))
204
209
  }}
205
210
  {{on "input" this.handleOnChange}}
206
- />
211
+ >
212
+ <:prepend as |classes|>
213
+ {{yield classes to="prepend"}}
214
+ </:prepend>
215
+ <:append as |classes|>
216
+ {{yield classes to="append"}}
217
+ </:append>
218
+ </EuiRangeInput>
207
219
  {{/if}}
208
220
  {{/if}}
209
221
  </EuiRangeWrapper>
@@ -211,7 +223,10 @@
211
223
  </EuiInputPopover>
212
224
  {{else}}
213
225
  <EuiRangeWrapper
214
- class="euiRange"
226
+ class={{class-names
227
+ "euiRange"
228
+ (if this.showInput "euiRange--hasInput")
229
+ }}
215
230
  @fullWidth={{@fullWidth}}
216
231
  @compressed={{@compressed}}
217
232
  >
@@ -337,8 +352,8 @@
337
352
  @isLoading={{and @showInputOnly @isLoading}}
338
353
  @isInvalid={{@isInvalid}}
339
354
  @autoSize={{not this.showInputOnly}}
340
- @isFakePrependBlock={{hasPrepend}}
341
- @isFakeAppendBlock={{hasAppend}}
355
+ @isPrependProvided={{hasPrepend}}
356
+ @isAppendProvided={{hasAppend}}
342
357
  ...attributes
343
358
  {{on
344
359
  "focus"
@@ -349,9 +364,16 @@
349
364
  (if this.canShowDropdown this.onInputBlur (optional @onBlur))
350
365
  }}
351
366
  {{on "input" this.handleOnChange}}
352
- />
367
+ >
368
+ <:prepend as |classes|>
369
+ {{yield classes to="prepend"}}
370
+ </:prepend>
371
+ <:append as |classes|>
372
+ {{yield classes to="append"}}
373
+ </:append>
374
+ </EuiRangeInput>
353
375
  {{/if}}
354
376
  {{/if}}
355
377
  </EuiRangeWrapper>
356
378
  {{/if}}
357
- {{/let}}
379
+ {{/let}}
@@ -3,15 +3,14 @@ import { action } from '@ember/object';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { uniqueId } from '../../helpers/unique-id';
5
5
  import { isWithinRange } from '../../utils/number';
6
- import { CommonArgs } from '../common';
7
6
  import { EuiRangeInputArgs } from '../eui-range-input/types';
8
7
  import { EuiRangeLevel } from '../eui-range-levels';
9
8
  import { EuiRangeTick } from '../eui-range-ticks';
10
9
  import { argOrDefaultDecorator as argOrDefault } from '../../helpers/arg-or-default';
11
10
  import { later } from '@ember/runloop';
11
+
12
12
  export interface EuiRangeArgs
13
- extends CommonArgs,
14
- Omit<EuiRangeInputArgs, 'onChange' | 'digitTolerance'> {
13
+ extends Omit<EuiRangeInputArgs, 'onChange' | 'digitTolerance'> {
15
14
  compressed?: boolean;
16
15
  readOnly?: boolean;
17
16
  fullWidth?: boolean;
@@ -111,7 +110,11 @@ export default class EuiRangeComponent extends Component<EuiRangeArgs> {
111
110
  }
112
111
 
113
112
  get showRangeTooltip(): boolean {
114
- return this.showValue && !!String(this.args.value).length && this.args.value !== undefined;
113
+ return (
114
+ this.showValue &&
115
+ !!String(this.args.value).length &&
116
+ this.args.value !== undefined
117
+ );
115
118
  }
116
119
 
117
120
  @action
@@ -1,32 +1,38 @@
1
- <EuiFieldNumber
2
- class="euiRangeInput euiRangeInput--{{arg-or-default @side "max"}}"
3
- name={{@name}}
4
- min={{cast-to @min to="number"}}
5
- max={{cast-to @max to="number"}}
6
- @step={{@step}}
7
- @value={{if (eq @value "") "" (cast-to @value to="number")}}
8
- @disabled={{@disabled}}
9
- @compressed={{@compressed}}
10
- @fullWidth={{@fullWidth}}
11
- @controlOnly={{@controlOnly}}
12
- @isFakeAppendBlock={{@isFakeAppendBlock}}
13
- @isFakePrependBlock={{@isFakePrependBlock}}
14
- @isInvalid={{@isInvalid}}
15
- @disable={{@disable}}
16
- ...attributes
17
- {{simple-style
18
- (inline-styles
19
- componentName="EuiRangeInput"
20
- componentArgs=(hash
21
- autoSize=(arg-or-default @autoSize true) digitTolerance=@digitTolerance
1
+ {{#let
2
+ (and (arg-or-default @isPrependProvided true) (has-block "prepend"))
3
+ (and (arg-or-default @isAppendProvided true) (has-block "append"))
4
+ as |hasAppend hasPrepend|
5
+ }}
6
+ <EuiFieldNumber
7
+ class="euiRangeInput euiRangeInput--{{arg-or-default @side "max"}}"
8
+ name={{@name}}
9
+ min={{cast-to @min to="number"}}
10
+ max={{cast-to @max to="number"}}
11
+ @step={{@step}}
12
+ @value={{if (eq @value "") "" (cast-to @value to="number")}}
13
+ @disabled={{@disabled}}
14
+ @compressed={{@compressed}}
15
+ @fullWidth={{@fullWidth}}
16
+ @controlOnly={{@controlOnly}}
17
+ @isPrependProvided={{hasAppend}}
18
+ @isAppendProvided={{hasPrepend}}
19
+ @isInvalid={{@isInvalid}}
20
+ @disable={{@disable}}
21
+ ...attributes
22
+ {{simple-style
23
+ (inline-styles
24
+ componentName="EuiRangeInput"
25
+ componentArgs=(hash
26
+ autoSize=(arg-or-default @autoSize true) digitTolerance=@digitTolerance
27
+ )
22
28
  )
23
- )
24
- }}
25
- >
26
- <:prepend as |classes|>
27
- {{yield classes to="prepend"}}
28
- </:prepend>
29
- <:append as |classes|>
30
- {{yield classes to="append"}}
31
- </:append>
32
- </EuiFieldNumber>
29
+ }}
30
+ >
31
+ <:prepend as |classes|>
32
+ {{yield classes to="prepend"}}
33
+ </:prepend>
34
+ <:append as |classes|>
35
+ {{yield classes to="append"}}
36
+ </:append>
37
+ </EuiFieldNumber>
38
+ {{/let}}
@@ -1,6 +1,7 @@
1
1
  import { EuiFieldNumberArgs } from '../eui-field-number/types';
2
2
 
3
- export interface EuiRangeInputArgs extends Omit<EuiFieldNumberArgs, 'max' | 'min' | 'value'> {
3
+ export interface EuiRangeInputArgs
4
+ extends Omit<EuiFieldNumberArgs, 'max' | 'min' | 'value'> {
4
5
  autoSize?: boolean;
5
6
  digitTolerance: number;
6
7
  max: number;
@@ -2,7 +2,7 @@
2
2
  class={{class-names
3
3
  "euiRangeLevels"
4
4
  (if @showTicks "euiRangeLevels--hasTicks")
5
- (if @compresses "euiRangeLevels--compressed")
5
+ (if @compressed "euiRangeLevels--compressed")
6
6
  }}
7
7
  {{did-insert this.validateLevels}}
8
8
  {{did-update this.validateLevels @levels}}
@@ -14,9 +14,9 @@
14
14
  class="euiRangeLevel euiRangeLevel--{{level.color}}"
15
15
  {{simple-style
16
16
  (inline-styles
17
- componentName="EuiRangeLevels" componentArgs=(hash level=level max=@max min=@min)
17
+ componentName="EuiRangeLevels" componentArgs=(hash level=level max=@max min=@min trackWidth=@trackWidth)
18
18
  )
19
19
  }}
20
20
  ></span>
21
21
  {{/each}}
22
- </div>
22
+ </div>
@@ -5,7 +5,7 @@
5
5
  >
6
6
  {{#each @tickSequence key="value" as |tickValue|}}
7
7
  {{#let
8
- (get-range-tick @ticks tickValue @min @max this.percentageWidth) as |derivedState|
8
+ (get-range-tick @ticks tickValue @min @max this.percentageWidth @trackWidth) as |derivedState|
9
9
  }}
10
10
  <button
11
11
  type="button"
@@ -24,4 +24,4 @@
24
24
  </button>
25
25
  {{/let}}
26
26
  {{/each}}
27
- </div>
27
+ </div>
@@ -1,8 +1,14 @@
1
1
  <div
2
- class="euiRangeTrack {{if @disabled "euiRangeTrack--disabled"}}"
2
+ class={{class-names
3
+ "euiRangeTrack"
4
+ (if @disabled "euiRangeTrack--disabled")
5
+ (if @showTicks "euiRangeTrack--hasTicks")
6
+ (if (and @levels (gt @levels.length 0)) "euiRangeTrack--hasLevels")
7
+ }}
3
8
  style={{if this.derivedState.styles this.derivedState.styles}}
4
9
  ...attributes
5
10
  {{did-insert (fn this.validateValueIsInStep @max)}}
11
+ {{did-insert this.registerTrack}}
6
12
  {{did-update (fn this.validateValueIsInStep @max) @max}}
7
13
  {{did-update (fn this.validateValueIsInStep @max) @min}}
8
14
  {{did-update (fn this.validateValueIsInStep @max) @step}}
@@ -14,6 +20,7 @@
14
20
  @max={{@max}}
15
21
  @min={{@min}}
16
22
  @showTicks={{@showTicks}}
23
+ @trackWidth={{this.trackEl.clientWidth}}
17
24
  />
18
25
  {{/if}}
19
26
  {{#if this.derivedState.tickSequence}}
@@ -27,7 +34,8 @@
27
34
  @max={{@max}}
28
35
  @interval={{or @tickInterval @step}}
29
36
  @onChange={{@onChange}}
37
+ @trackWidth={{this.trackEl.clientWidth}}
30
38
  />
31
39
  {{/if}}
32
40
  {{yield}}
33
- </div>
41
+ </div>
@@ -1,4 +1,5 @@
1
1
  import Component from '@glimmer/component';
2
+ import { tracked } from '@glimmer/tracking';
2
3
  import { EuiRangeLevel, LEVEL_COLORS } from '../eui-range-levels';
3
4
  import { assert } from '@ember/debug';
4
5
  import { isEvenlyDivisibleBy } from '../../utils/number';
@@ -35,14 +36,28 @@ type Styling = {
35
36
  };
36
37
 
37
38
  export default class EuiRangeTrackComponent extends Component<EuiRangeTrackArgs> {
39
+ @tracked
40
+ trackEl: HTMLElement | undefined;
41
+
42
+ @action
43
+ registerTrack(el: HTMLElement) {
44
+ this.trackEl = el;
45
+ }
46
+
38
47
  @action
39
48
  validateValueIsInStep(value: number): number {
40
49
  const { min, max, step } = this.args;
41
50
  if (value < min) {
42
- assert(`The value of ${value} is lower than the min value of ${min}.`, false);
51
+ assert(
52
+ `The value of ${value} is lower than the min value of ${min}.`,
53
+ false
54
+ );
43
55
  }
44
56
  if (value > max) {
45
- assert(`The value of ${value} is higher than the max value of ${max}.`, false);
57
+ assert(
58
+ `The value of ${value} is higher than the max value of ${max}.`,
59
+ false
60
+ );
46
61
  }
47
62
  // Error out if the value doesn't line up with the sequence of steps
48
63
  if (!isEvenlyDivisibleBy(value - min, step !== undefined ? step : 1)) {
@@ -95,7 +110,7 @@ export default class EuiRangeTrackComponent extends Component<EuiRangeTrackArgs>
95
110
  // Error out if there are too many ticks to render
96
111
  if (ticks.length > 20) {
97
112
  assert(
98
- `The number of ticks to render is too high (${ticks.length}), reduce the interval.`,
113
+ `The number of ticks to render is too high (${ticks.length}), increase the interval.`,
99
114
  true
100
115
  );
101
116
  }
@@ -105,7 +120,7 @@ export default class EuiRangeTrackComponent extends Component<EuiRangeTrackArgs>
105
120
 
106
121
  get derivedState(): Styling {
107
122
  let tickSequence;
108
- let styles;
123
+ let styles = '';
109
124
  const { showTicks, min, max, step, tickInterval, ticks } = this.args;
110
125
 
111
126
  if (showTicks) {
@@ -114,7 +129,9 @@ export default class EuiRangeTrackComponent extends Component<EuiRangeTrackArgs>
114
129
  // Calculate if any extra margin should be added to the inputWrapper
115
130
  // because of longer tick labels on the ends
116
131
  const lengthOfMinLabel = String(tickSequence[0]).length;
117
- const lenghtOfMaxLabel = String(tickSequence[tickSequence.length - 1]).length;
132
+ const lenghtOfMaxLabel = String(
133
+ tickSequence[tickSequence.length - 1]
134
+ ).length;
118
135
  const isLastTickTheMax = tickSequence[tickSequence.length - 1] === max;
119
136
  if (lengthOfMinLabel > 2) {
120
137
  styles = `margin-left: ${lengthOfMinLabel / 5}em`;
@@ -126,7 +143,7 @@ export default class EuiRangeTrackComponent extends Component<EuiRangeTrackArgs>
126
143
 
127
144
  return {
128
145
  tickSequence,
129
- styles: htmlSafe(styles as string)
146
+ styles: htmlSafe(styles)
130
147
  };
131
148
  }
132
149
  }
@@ -0,0 +1,3 @@
1
+ {{#if this.shouldShow}}
2
+ {{yield}}
3
+ {{/if}}
@@ -0,0 +1,79 @@
1
+ import Component from '@glimmer/component';
2
+ import { throttle } from '@ember/runloop';
3
+ import { tracked } from '@glimmer/tracking';
4
+ import { EuiBreakpointSize, getBreakpoint } from '../../utils/breakpoint';
5
+ //@ts-ignore
6
+ import { invokeHelper } from '@ember/helper';
7
+ //@ts-ignore
8
+ import { getValue } from '@glimmer/tracking/primitives/cache';
9
+ import Helper from '@ember/component/helper';
10
+
11
+ export class CurrentBreakPointHelper extends Helper {
12
+ @tracked currentBreakpoint: string | undefined;
13
+ functionToCallOnWindowResize: undefined | (() => void);
14
+
15
+ compute([sizes]: [EuiHideForBreakpoints[] | 'all' | 'none']) {
16
+ this.currentBreakpoint = getBreakpoint(
17
+ typeof window === 'undefined' ? -Infinity : window.innerWidth
18
+ );
19
+
20
+ this.setupListeners();
21
+
22
+ return (
23
+ sizes === 'all' ||
24
+ sizes.includes(this.currentBreakpoint as EuiBreakpointSize)
25
+ );
26
+ }
27
+
28
+ willDestroy(): void {
29
+ super.willDestroy();
30
+ this.teardown();
31
+ }
32
+
33
+ setupListeners() {
34
+ this.functionToCallOnWindowResize = () => {
35
+ const fn = () => {
36
+ const newBreakpoint = getBreakpoint(window.innerWidth);
37
+ if (newBreakpoint !== this.currentBreakpoint) {
38
+ this.currentBreakpoint = newBreakpoint;
39
+ }
40
+ };
41
+ throttle(this, fn, 50);
42
+ };
43
+
44
+ window.addEventListener('resize', this.functionToCallOnWindowResize);
45
+ }
46
+
47
+ teardown() {
48
+ if (typeof this.functionToCallOnWindowResize === 'function') {
49
+ window.removeEventListener('resize', this.functionToCallOnWindowResize);
50
+ this.functionToCallOnWindowResize = undefined;
51
+ }
52
+ }
53
+ }
54
+
55
+ export type EuiHideForBreakpoints = EuiBreakpointSize;
56
+
57
+ export interface EuiShowForArgs {
58
+ /**
59
+ * Required otherwise nothing ever gets returned
60
+ */
61
+ children: Component;
62
+ /**
63
+ * List of all the responsive sizes to hide the children for.
64
+ * Array of #EuiBreakpointSize
65
+ */
66
+ sizes: EuiHideForBreakpoints[] | 'all' | 'none';
67
+ }
68
+
69
+ export default class EuiShowForComponent extends Component<EuiShowForArgs> {
70
+ currentBreakpointHelper = invokeHelper(this, CurrentBreakPointHelper, () => {
71
+ return {
72
+ positional: [this.args.sizes]
73
+ };
74
+ });
75
+
76
+ get shouldShow() {
77
+ return getValue(this.currentBreakpointHelper);
78
+ }
79
+ }