@ember-eui/core 4.4.0 → 5.0.0-alpha.4

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 (639) 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 +83 -0
  51. package/addon/components/eui-field-number/index.hbs +3 -3
  52. package/addon/components/eui-field-number/types.ts +4 -1
  53. package/addon/components/eui-field-search/index.hbs +2 -1
  54. package/addon/components/eui-field-text/index.hbs +3 -1
  55. package/addon/components/eui-file-picker/index.hbs +15 -11
  56. package/addon/components/eui-file-picker/index.ts +26 -8
  57. package/addon/components/eui-flyout/index.hbs +130 -43
  58. package/addon/components/eui-flyout/index.ts +233 -0
  59. package/addon/components/eui-flyout-body/index.hbs +21 -7
  60. package/addon/components/eui-form-control-layout-custom-icon/types.ts +3 -1
  61. package/addon/components/eui-form-control-layout-icons/types.ts +4 -1
  62. package/addon/components/eui-form-label/index.hbs +1 -1
  63. package/addon/components/eui-form-row/index.hbs +13 -9
  64. package/addon/components/eui-global-toast-list/index.ts +5 -6
  65. package/addon/components/eui-header/index.hbs +18 -3
  66. package/addon/{modifiers/fixed-header.ts → components/eui-header/index.ts} +10 -1
  67. package/addon/components/eui-header-alert/index.hbs +25 -0
  68. package/addon/components/eui-header-breadcrumbs/index.hbs +7 -0
  69. package/addon/components/eui-header-links/index.hbs +41 -0
  70. package/addon/components/eui-header-links/index.ts +14 -0
  71. package/addon/components/eui-header-section-item-button/index.hbs +30 -12
  72. package/addon/components/eui-header-section-item-button/index.ts +131 -0
  73. package/addon/components/eui-health/index.hbs +15 -13
  74. package/addon/components/eui-hide-for/index.hbs +3 -0
  75. package/addon/components/eui-hide-for/index.ts +33 -0
  76. package/addon/components/eui-icon/index.hbs +6 -3
  77. package/addon/components/eui-icon/index.ts +4 -0
  78. package/addon/components/eui-image/index.hbs +63 -25
  79. package/addon/components/eui-image/index.ts +7 -2
  80. package/addon/components/eui-input-popover/index.ts +6 -4
  81. package/addon/components/eui-key-pad-menu/index.hbs +16 -0
  82. package/addon/components/eui-key-pad-menu/key/index.hbs +1 -0
  83. package/addon/components/eui-key-pad-menu-item/index.hbs +66 -0
  84. package/addon/components/eui-key-pad-menu-item/index.ts +11 -0
  85. package/addon/components/eui-link/index.hbs +50 -0
  86. package/addon/components/eui-list-group-item/index.hbs +10 -2
  87. package/addon/components/eui-loading-logo/index.hbs +14 -0
  88. package/addon/components/eui-markdown-editor/index.hbs +4 -1
  89. package/addon/components/eui-markdown-editor/index.ts +54 -0
  90. package/addon/components/eui-markdown-editor-footer/index.hbs +39 -40
  91. package/addon/components/eui-markdown-format/index.ts +1 -1
  92. package/addon/components/eui-markdown-format/markdown-code/index.hbs +2 -2
  93. package/addon/components/eui-markdown-format/markdown-code-block/index.hbs +1 -0
  94. package/addon/components/eui-modal/index.hbs +28 -24
  95. package/addon/components/eui-overlay-mask/index.hbs +4 -4
  96. package/addon/components/eui-overlay-mask/index.ts +14 -1
  97. package/addon/components/eui-page/index.hbs +3 -6
  98. package/addon/components/eui-page-body/index.hbs +47 -15
  99. package/addon/components/eui-page-content/index.hbs +6 -8
  100. package/addon/components/eui-page-content-body/index.hbs +13 -1
  101. package/addon/components/eui-page-content-header/index.hbs +6 -0
  102. package/addon/components/eui-page-header/index.hbs +31 -6
  103. package/addon/components/eui-page-header-content/index.hbs +219 -0
  104. package/addon/components/eui-page-header-content/index.ts +49 -0
  105. package/addon/components/eui-page-side-bar/index.hbs +8 -1
  106. package/addon/components/eui-page-template/index.hbs +417 -0
  107. package/addon/components/eui-page-template/index.ts +89 -0
  108. package/addon/components/eui-panel/index.hbs +58 -12
  109. package/addon/components/eui-popover/index.hbs +8 -4
  110. package/addon/components/eui-popover/index.ts +28 -12
  111. package/addon/components/eui-portal/index.ts +2 -1
  112. package/addon/components/eui-progress/index.hbs +16 -13
  113. package/addon/components/eui-radio/index.hbs +9 -3
  114. package/addon/components/eui-range/index.hbs +33 -11
  115. package/addon/components/eui-range/index.ts +7 -4
  116. package/addon/components/eui-range-input/index.hbs +37 -31
  117. package/addon/components/eui-range-input/types.ts +2 -1
  118. package/addon/components/eui-range-levels/index.hbs +3 -3
  119. package/addon/components/eui-range-levels/index.ts +14 -3
  120. package/addon/components/eui-range-ticks/index.hbs +2 -2
  121. package/addon/components/eui-range-track/index.hbs +10 -2
  122. package/addon/components/eui-range-track/index.ts +23 -6
  123. package/addon/components/eui-show-for/index.hbs +3 -0
  124. package/addon/components/eui-show-for/index.ts +79 -0
  125. package/addon/components/eui-side-nav/index.hbs +161 -36
  126. package/addon/components/eui-side-nav/index.ts +28 -0
  127. package/addon/components/eui-side-nav-item/button/index.hbs +26 -14
  128. package/addon/components/eui-side-nav-item/index.hbs +52 -25
  129. package/addon/components/eui-split-panel/inner/index.hbs +11 -0
  130. package/addon/components/eui-split-panel/outer/index.hbs +27 -0
  131. package/addon/components/eui-split-panel/outer/index.ts +37 -0
  132. package/addon/components/eui-step/eui-step-number/index.hbs +21 -4
  133. package/addon/components/eui-steps/index.hbs +7 -1
  134. package/addon/components/eui-tab/index.hbs +60 -46
  135. package/addon/components/eui-tab/index.ts +23 -0
  136. package/addon/components/eui-tabbed-content/index.hbs +14 -27
  137. package/addon/components/eui-tabbed-content/index.ts +134 -0
  138. package/addon/components/eui-tabs/index.hbs +6 -9
  139. package/addon/components/eui-tool-tip/index.hbs +6 -7
  140. package/addon/components/eui-tool-tip/index.ts +27 -11
  141. package/addon/helpers/arg-or-default.ts +4 -1
  142. package/addon/helpers/class-names.ts +2 -0
  143. package/addon/helpers/eui-palette.ts +4 -1
  144. package/addon/helpers/get-range-tick.ts +53 -8
  145. package/addon/helpers/hex-to-rgb.ts +4 -1
  146. package/addon/helpers/inline-styles.ts +10 -3
  147. package/addon/helpers/is-within-number.ts +4 -1
  148. package/addon/helpers/starts-with.ts +3 -1
  149. package/addon/helpers/unique-id.ts +4 -1
  150. package/addon/initializers/eui-config.ts +12 -0
  151. package/addon/modifiers/mutation-observer.ts +4 -1
  152. package/addon/modifiers/outside-click-detector.ts +4 -4
  153. package/addon/styles/ember-eui.css +2 -10
  154. package/addon/utils/accesibility/cascading-menu-keys.ts +8 -1
  155. package/addon/utils/breakpoint.ts +114 -0
  156. package/addon/utils/code/utils.ts +304 -0
  157. package/addon/utils/color/color_palette.ts +3 -3
  158. package/addon/utils/color/eui_palettes.ts +23 -6
  159. package/addon/utils/css-mappings/eui-avatar.ts +51 -9
  160. package/addon/utils/css-mappings/eui-badge.ts +6 -2
  161. package/addon/utils/css-mappings/eui-beta-badge.ts +22 -0
  162. package/addon/utils/css-mappings/eui-bottom-bar.ts +8 -1
  163. package/addon/utils/css-mappings/eui-button-empty.ts +4 -4
  164. package/addon/utils/css-mappings/eui-button-icon.ts +19 -6
  165. package/addon/utils/css-mappings/eui-button.ts +2 -1
  166. package/addon/utils/css-mappings/eui-card-select.ts +1 -11
  167. package/addon/utils/css-mappings/eui-card.ts +1 -18
  168. package/addon/utils/css-mappings/{eui-code-block-impl.ts → eui-code-block.ts} +0 -0
  169. package/addon/utils/css-mappings/eui-description-list.ts +29 -0
  170. package/addon/utils/css-mappings/eui-empty-prompt.ts +17 -0
  171. package/addon/utils/css-mappings/eui-flyout.ts +21 -1
  172. package/addon/utils/css-mappings/eui-header-links.ts +27 -0
  173. package/addon/utils/css-mappings/eui-health.ts +17 -0
  174. package/addon/utils/css-mappings/eui-icon.ts +93 -70
  175. package/addon/utils/css-mappings/eui-image.ts +17 -2
  176. package/addon/utils/css-mappings/eui-link.ts +21 -0
  177. package/addon/utils/css-mappings/eui-list-group.ts +5 -1
  178. package/addon/utils/css-mappings/eui-modal.ts +5 -1
  179. package/addon/utils/css-mappings/eui-page-body.ts +25 -0
  180. package/addon/utils/css-mappings/eui-page-content-body.ts +17 -0
  181. package/addon/utils/css-mappings/eui-page-content.ts +7 -1
  182. package/addon/utils/css-mappings/eui-page-header.ts +17 -0
  183. package/addon/utils/css-mappings/eui-page-side-bar.ts +17 -0
  184. package/addon/utils/css-mappings/eui-panel.ts +1 -0
  185. package/addon/utils/css-mappings/eui-progress-data.ts +0 -1
  186. package/addon/utils/css-mappings/eui-progress.ts +0 -2
  187. package/addon/utils/css-mappings/eui-range-levels.ts +22 -4
  188. package/addon/utils/css-mappings/eui-tabs.ts +3 -1
  189. package/addon/utils/css-mappings/eui-text-color.ts +3 -2
  190. package/addon/utils/css-mappings/index.ts +23 -3
  191. package/addon/utils/detect-element-resize.js +248 -0
  192. package/addon/utils/markdown/markdown-types.ts +10 -11
  193. package/addon/utils/markdown/plugins/markdown-add-components/index.ts +1 -0
  194. package/addon/utils/markdown/plugins/{markdown-add-components.ts → markdown-add-components/processor.ts} +14 -7
  195. package/addon/utils/markdown/plugins/markdown-checkbox/index.ts +9 -0
  196. package/addon/utils/markdown/plugins/{markdown-checkbox.ts → markdown-checkbox/parser.ts} +3 -5
  197. package/addon/utils/markdown/plugins/markdown-default-plugins/index.ts +12 -0
  198. package/addon/utils/markdown/plugins/{markdown-default-plugins.ts → markdown-default-plugins/parsing-plugins.ts} +13 -25
  199. package/addon/utils/markdown/plugins/markdown-default-plugins/plugins.ts +32 -0
  200. package/addon/utils/markdown/plugins/markdown-default-plugins/processing-plugins.ts +67 -0
  201. package/addon/utils/markdown/plugins/markdown-default-plugins/ui-plugins.ts +27 -0
  202. package/addon/utils/markdown/plugins/markdown-tooltip/index.ts +2 -0
  203. package/addon/utils/markdown/plugins/{markdown-tooltip.ts → markdown-tooltip/parser.ts} +3 -23
  204. package/addon/utils/markdown/plugins/markdown-tooltip/plugin.ts +17 -0
  205. package/addon/utils/markdown/plugins/to-dom.ts +3 -1
  206. package/addon/utils/markdown/remark/remark-prismjs.ts +41 -0
  207. package/addon/utils/popover/index.ts +87 -35
  208. package/addon/utils/range/index.ts +1 -0
  209. package/addon/utils/transition.ts +10 -3
  210. package/addon/version.ts +6 -0
  211. package/app/components/eui-auto-sizer/index.js +1 -0
  212. package/app/components/eui-avatar/index.js +1 -1
  213. package/app/components/eui-badge-group/badge-group-item/index.js +1 -1
  214. package/app/components/eui-badge-group/index.js +1 -1
  215. package/app/components/eui-breadcrumbs/index.js +1 -0
  216. package/app/components/eui-button-icon/index.js +1 -1
  217. package/app/components/eui-card-select/index.js +1 -0
  218. package/app/components/{eui-code-block-impl → eui-code-block/controls}/index.js +1 -1
  219. package/app/components/{eui-code-block-impl/code-block-controls → eui-code-block/full-screen-display}/index.js +1 -1
  220. package/app/components/eui-code-block/virtualized/index.js +1 -0
  221. package/app/components/eui-combo-box/create-option/index.js +1 -1
  222. package/app/components/eui-comment/eui-comment-timeline/index.js +1 -1
  223. package/app/components/eui-comment/index.js +1 -1
  224. package/app/components/eui-description-list/index.js +1 -0
  225. package/app/components/eui-description-list-description/index.js +1 -0
  226. package/app/components/eui-description-list-title/index.js +1 -0
  227. package/app/components/eui-dual-range/index.js +1 -1
  228. package/app/components/eui-empty-prompt/index.js +1 -0
  229. package/app/components/eui-field-number/index.js +1 -1
  230. package/app/components/eui-field-password/index.js +1 -1
  231. package/app/components/eui-field-search/index.js +1 -1
  232. package/app/components/eui-field-text/index.js +1 -1
  233. package/app/components/eui-file-picker/index.js +1 -1
  234. package/app/components/eui-form/index.js +1 -1
  235. package/app/components/eui-form-control-layout/index.js +1 -1
  236. package/app/components/eui-form-control-layout-clear-button/index.js +1 -1
  237. package/app/components/eui-form-control-layout-custom-icon/index.js +1 -1
  238. package/app/components/eui-form-control-layout-delimited/index.js +1 -1
  239. package/app/components/eui-form-control-layout-icons/index.js +1 -1
  240. package/app/components/eui-form-error-text/index.js +1 -1
  241. package/app/components/eui-form-fieldset/index.js +1 -1
  242. package/app/components/eui-form-help-text/index.js +1 -1
  243. package/app/components/eui-form-label/index.js +1 -1
  244. package/app/components/eui-form-legend/index.js +1 -1
  245. package/app/components/eui-form-row/index.js +1 -1
  246. package/app/components/eui-header-alert/index.js +1 -0
  247. package/app/components/eui-header-breadcrumbs/index.js +1 -0
  248. package/app/components/eui-header-links/index.js +1 -0
  249. package/app/components/eui-hide-for/index.js +1 -0
  250. package/app/components/eui-image.js +1 -1
  251. package/app/components/eui-key-pad-menu/index.js +1 -0
  252. package/app/components/eui-key-pad-menu/key/index.js +1 -0
  253. package/app/components/eui-key-pad-menu-item/index.js +1 -0
  254. package/app/components/eui-link/index.js +1 -0
  255. package/app/components/eui-list-group/index.js +1 -1
  256. package/app/components/eui-list-group-item/index.js +1 -1
  257. package/app/components/eui-loading-logo/index.js +1 -0
  258. package/app/components/eui-overlay-mask.js +1 -1
  259. package/app/components/eui-page/index.js +1 -1
  260. package/app/components/eui-page-body/index.js +1 -1
  261. package/app/components/eui-page-content/index.js +1 -1
  262. package/app/components/eui-page-content-body/index.js +1 -1
  263. package/app/components/eui-page-content-header/index.js +1 -1
  264. package/app/components/eui-page-content-header-section/index.js +1 -1
  265. package/app/components/eui-page-header/index.js +1 -1
  266. package/app/components/eui-page-header-content/index.js +1 -0
  267. package/app/components/eui-page-header-section/index.js +1 -1
  268. package/app/components/eui-page-template/index.js +1 -0
  269. package/app/components/eui-panel/index.js +1 -1
  270. package/app/components/eui-popover/index.js +1 -1
  271. package/app/components/eui-popover-footer/index.js +1 -1
  272. package/app/components/eui-popover-title/index.js +1 -1
  273. package/app/components/eui-portal/index.js +1 -1
  274. package/app/components/eui-progress/index.js +1 -1
  275. package/app/components/eui-radio/index.js +1 -1
  276. package/app/components/eui-radio-group/index.js +1 -1
  277. package/app/components/eui-range/index.js +1 -1
  278. package/app/components/eui-range-highlight/index.js +1 -1
  279. package/app/components/eui-range-input/index.js +1 -1
  280. package/app/components/eui-range-label/index.js +1 -1
  281. package/app/components/eui-range-levels/index.js +1 -1
  282. package/app/components/eui-range-slider/index.js +1 -1
  283. package/app/components/eui-range-thumb/index.js +1 -1
  284. package/app/components/eui-range-ticks/index.js +1 -1
  285. package/app/components/eui-range-tooltip/index.js +1 -1
  286. package/app/components/eui-range-track/index.js +1 -1
  287. package/app/components/eui-range-wrapper/index.js +1 -1
  288. package/app/components/eui-select/index.js +1 -1
  289. package/app/components/eui-show-for/index.js +1 -0
  290. package/app/components/eui-side-nav/index.js +1 -1
  291. package/app/components/eui-side-nav-item/button/index.js +1 -1
  292. package/app/components/eui-side-nav-item/index.js +1 -1
  293. package/app/components/eui-spacer/index.js +1 -1
  294. package/app/components/eui-split-panel/inner/index.js +1 -0
  295. package/app/components/eui-split-panel/outer/index.js +1 -0
  296. package/app/components/eui-switch/index.js +1 -1
  297. package/app/components/eui-tab/index.js +1 -1
  298. package/app/components/eui-tabs/index.js +1 -1
  299. package/app/components/eui-text/index.js +1 -1
  300. package/app/components/eui-text-align/index.js +1 -1
  301. package/app/components/eui-text-area/index.js +1 -1
  302. package/app/components/eui-text-color/index.js +1 -1
  303. package/app/components/eui-title/index.js +1 -1
  304. package/app/components/eui-tool-tip/index.js +1 -1
  305. package/app/components/eui-tool-tip-popover/index.js +1 -1
  306. package/app/helpers/eui-palette.js +1 -1
  307. package/app/helpers/hex-to-rgb.js +1 -1
  308. package/app/initializers/eui-config.js +1 -0
  309. package/app/utils/copy-to-clipboard.js +1 -0
  310. package/docs/display/avatar-demo/demo1.md +43 -49
  311. package/docs/display/avatar-demo/demo2.md +42 -0
  312. package/docs/display/avatar-demo/demo3.md +33 -0
  313. package/docs/display/avatar-demo/demo4.md +53 -0
  314. package/docs/display/avatar-demo/demo5.md +38 -0
  315. package/docs/display/avatar.md +1 -1
  316. package/docs/display/badge-demo/demo1.md +78 -137
  317. package/docs/display/badge-demo/demo2.md +32 -0
  318. package/docs/display/badge-demo/demo3.md +70 -0
  319. package/docs/display/badge-demo/demo4.md +27 -0
  320. package/docs/display/badge-demo/demo5.md +31 -0
  321. package/docs/display/badge-demo/demo6.md +59 -0
  322. package/docs/display/badge-demo/demo7.md +97 -0
  323. package/docs/display/badge-demo/demo8.md +19 -0
  324. package/docs/display/badge.md +1 -1
  325. package/docs/display/callout-demo/demo1.md +29 -81
  326. package/docs/display/callout-demo/demo2.md +28 -0
  327. package/docs/display/callout-demo/demo3.md +29 -0
  328. package/docs/display/callout-demo/demo4.md +26 -0
  329. package/docs/display/callout.md +9 -1
  330. package/docs/display/card/basic-card-demo/demo1.md +22 -316
  331. package/docs/display/card/basic-card.md +9 -1
  332. package/docs/display/card/beta-badge-demo/demo1.md +47 -0
  333. package/docs/display/card/beta-badge.md +9 -0
  334. package/docs/display/card/checkable-demo/demo1.md +20 -94
  335. package/docs/display/card/checkable-demo/demo2.md +63 -0
  336. package/docs/display/card/checkable.md +9 -1
  337. package/docs/display/card/custom-children-demo/demo1.md +93 -0
  338. package/docs/display/card/custom-children.md +9 -0
  339. package/docs/display/card/footer-demo/demo1.md +77 -0
  340. package/docs/display/card/footer.md +9 -0
  341. package/docs/display/card/images-demo/demo1.md +57 -0
  342. package/docs/display/card/images.md +9 -0
  343. package/docs/display/card/layout-demo/demo1.md +40 -0
  344. package/docs/display/card/layout.md +9 -0
  345. package/docs/display/card/selectable-demo/demo1.md +60 -53
  346. package/docs/display/card/selectable.md +9 -1
  347. package/docs/display/comment-list.md +1 -1
  348. package/docs/display/description-list-demo/demo1.md +53 -0
  349. package/docs/display/description-list-demo/demo2.md +43 -0
  350. package/docs/display/description-list-demo/demo3.md +58 -0
  351. package/docs/display/description-list-demo/demo4.md +42 -0
  352. package/docs/display/description-list-demo/demo5.md +62 -0
  353. package/docs/display/description-list-demo/demo6.md +46 -0
  354. package/docs/display/description-list.md +1 -0
  355. package/docs/display/empty-prompt-demo/demo1.md +25 -0
  356. package/docs/display/empty-prompt-demo/demo2.md +16 -0
  357. package/docs/display/empty-prompt-demo/demo3.md +67 -0
  358. package/docs/display/empty-prompt-demo/demo4.md +21 -0
  359. package/docs/display/empty-prompt-demo/demo5.md +33 -0
  360. package/docs/display/empty-prompt-demo/demo6.md +43 -0
  361. package/docs/display/empty-prompt-demo/demo7.md +162 -0
  362. package/docs/display/empty-prompt-demo/demo8.md +57 -0
  363. package/docs/display/empty-prompt.md +1 -0
  364. package/docs/display/health-demo/demo1.md +11 -8
  365. package/docs/display/health-demo/demo2.md +31 -0
  366. package/docs/display/health.md +9 -1
  367. package/docs/display/icons-demo/demo1.md +270 -57
  368. package/docs/display/icons-demo/demo2.md +76 -0
  369. package/docs/display/icons-demo/demo3.md +76 -0
  370. package/docs/display/icons-demo/demo4.md +104 -0
  371. package/docs/display/icons-demo/demo5.md +64 -0
  372. package/docs/display/icons-demo/demo6.md +63 -0
  373. package/docs/display/icons-demo/demo7.md +101 -0
  374. package/docs/display/icons-demo/demo8.md +47 -0
  375. package/docs/display/icons.md +1 -1
  376. package/docs/display/image-demo/demo1.md +15 -50
  377. package/docs/display/image-demo/demo2.md +35 -0
  378. package/docs/display/image-demo/demo3.md +75 -0
  379. package/docs/display/image-demo/demo4.md +80 -0
  380. package/docs/display/image.md +9 -1
  381. package/docs/display/list-group.md +1 -1
  382. package/docs/display/loading/logo-demo/demo1.md +15 -0
  383. package/docs/display/loading/logo.md +1 -0
  384. package/docs/display/progress-demo/demo1.md +10 -5
  385. package/docs/display/progress-demo/demo2.md +11 -26
  386. package/docs/display/progress-demo/demo3.md +27 -0
  387. package/docs/display/progress-demo/demo4.md +77 -0
  388. package/docs/display/progress.md +1 -1
  389. package/docs/display/stat-demo/demo1.md +0 -118
  390. package/docs/display/stat-demo/demo2.md +24 -22
  391. package/docs/display/stat-demo/demo3.md +39 -0
  392. package/docs/display/stat-demo/demo4.md +50 -0
  393. package/docs/display/stat-demo/demo5.md +25 -0
  394. package/docs/display/stat-demo/demo6.md +40 -0
  395. package/docs/display/stat-demo/demo7.md +84 -0
  396. package/docs/display/stat.md +8 -1
  397. package/docs/display/text-demo/demo1.md +79 -130
  398. package/docs/display/text-demo/demo2.md +71 -0
  399. package/docs/display/text-demo/demo3.md +39 -0
  400. package/docs/display/text.md +12 -1
  401. package/docs/display/title-demo/demo1.md +50 -26
  402. package/docs/display/title.md +1 -1
  403. package/docs/display/tool-tip-demo/demo1.md +26 -71
  404. package/docs/display/tool-tip-demo/demo2.md +33 -30
  405. package/docs/display/tool-tip-demo/demo3.md +50 -0
  406. package/docs/display/tool-tip-demo/demo4.md +74 -0
  407. package/docs/display/tool-tip.md +11 -1
  408. package/docs/editors/code/code-block-demo/demo1.md +21 -40
  409. package/docs/editors/code/code-block-demo/demo2.md +35 -0
  410. package/docs/editors/code/code-block-demo/demo3.md +43 -0
  411. package/docs/editors/code/code-block-demo/demo4.md +28 -0
  412. package/docs/editors/code/code-block-demo/demo5.md +42 -0
  413. package/docs/editors/code/code-block-demo/demo6.md +42 -0
  414. package/docs/editors/code/code-block-demo/demo7.md +853 -0
  415. package/docs/editors/code/code-block-demo/demo8.md +855 -0
  416. package/docs/editors/code/code-block.md +21 -1
  417. package/docs/editors/code/inline-demo/demo1.md +6 -3
  418. package/docs/editors/code/inline.md +1 -1
  419. package/docs/editors/markdown-editor/base-editor-demo/demo1.md +9 -28
  420. package/docs/editors/markdown-editor/base-editor.md +1 -1
  421. package/docs/forms/form-controls/checkbox/demo/demo1.md +49 -0
  422. package/docs/forms/form-controls/checkbox/index.md +26 -0
  423. package/docs/forms/form-controls/{checkbox-group-demo → checkbox-group/demo}/demo1.md +4 -13
  424. package/docs/forms/form-controls/checkbox-group/index.md +27 -0
  425. package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo1.md +8 -2
  426. package/docs/forms/form-controls/{combo-box-demo → combo-box/demo}/demo2.md +10 -8
  427. package/docs/forms/form-controls/combo-box/demo/demo3.md +60 -0
  428. package/docs/forms/form-controls/{combo-box-demo/demo3.md → combo-box/demo/demo4.md} +17 -14
  429. package/docs/forms/form-controls/combo-box/demo/demo5.md +151 -0
  430. package/docs/forms/form-controls/combo-box/index.md +6 -0
  431. package/docs/forms/form-controls/file-picker/demo/demo1.md +29 -0
  432. package/docs/forms/form-controls/file-picker/demo/demo2.md +44 -0
  433. package/docs/forms/form-controls/file-picker/demo/demo3.md +45 -0
  434. package/docs/forms/form-controls/file-picker/demo/demo4.md +63 -0
  435. package/docs/forms/form-controls/file-picker/index.md +22 -0
  436. package/docs/forms/form-controls/{form-control-layout-demo → form-control-layout/demo}/demo1.md +0 -0
  437. package/docs/forms/form-controls/form-control-layout/index.md +30 -0
  438. package/docs/forms/form-controls/{form-control-layout-delimited-demo → form-control-layout-delimited/demo}/demo1.md +41 -37
  439. package/docs/forms/form-controls/form-control-layout-delimited/index.md +24 -0
  440. package/docs/forms/form-controls/number-field/demo/demo1.md +20 -0
  441. package/docs/forms/form-controls/{number-field-demo/demo1.md → number-field/demo/demo2.md} +23 -11
  442. package/docs/forms/form-controls/number-field/index.md +12 -0
  443. package/docs/forms/form-controls/password-field/demo/demo1.md +19 -0
  444. package/docs/forms/form-controls/{password-field-demo/demo1.md → password-field/demo/demo2.md} +12 -8
  445. package/docs/forms/form-controls/password-field/index.md +19 -0
  446. package/docs/forms/form-controls/radio/demo/demo1.md +43 -0
  447. package/docs/forms/form-controls/radio/index.md +24 -0
  448. package/docs/forms/form-controls/radio-group/demo/demo1.md +50 -0
  449. package/docs/forms/form-controls/radio-group/index.md +18 -0
  450. package/docs/forms/form-controls/range/demo/demo1.md +96 -0
  451. package/docs/forms/form-controls/range/demo/demo2.md +62 -0
  452. package/docs/forms/form-controls/{range-demo → range/demo}/demo3.md +10 -12
  453. package/docs/forms/form-controls/{range-demo → range/demo}/demo4.md +16 -18
  454. package/docs/forms/form-controls/{range-demo → range/demo}/demo5.md +18 -20
  455. package/docs/forms/form-controls/range/demo/demo6.md +57 -0
  456. package/docs/forms/form-controls/range/demo/demo7.md +350 -0
  457. package/docs/forms/form-controls/range/index.md +18 -0
  458. package/docs/forms/form-controls/search-field/demo/demo1.md +29 -0
  459. package/docs/forms/form-controls/search-field/index.md +14 -0
  460. package/docs/forms/form-controls/select/demo/demo1.md +29 -0
  461. package/docs/forms/form-controls/select/demo/demo2.md +44 -0
  462. package/docs/forms/form-controls/{select-demo/demo1.md → select/demo/demo3.md} +20 -10
  463. package/docs/forms/form-controls/select/index.md +19 -0
  464. package/docs/forms/form-controls/{switch-demo → switch/demo}/demo1.md +10 -10
  465. package/docs/forms/form-controls/switch/index.md +13 -0
  466. package/docs/forms/form-controls/text-field/demo/demo1.md +35 -0
  467. package/docs/forms/form-controls/text-field/demo/demo2.md +40 -0
  468. package/docs/forms/form-controls/{text-field-demo/demo2.md → text-field/demo/demo3.md} +14 -17
  469. package/docs/forms/form-controls/{text-field-demo/demo1.md → text-field/demo/demo4.md} +18 -32
  470. package/docs/forms/form-controls/text-field/index.md +14 -0
  471. package/docs/forms/form-controls/textarea/demo/demo1.md +21 -0
  472. package/docs/forms/form-controls/textarea/demo/demo2.md +24 -0
  473. package/docs/forms/form-controls/textarea/index.md +13 -0
  474. package/docs/forms/form-layouts/described-form-groups-demo/demo1.md +13 -4
  475. package/docs/forms/form-layouts/described-form-groups.md +1 -1
  476. package/docs/layout/accordion-demo/demo1.md +21 -102
  477. package/docs/layout/accordion-demo/demo2.md +76 -0
  478. package/docs/layout/accordion-demo/demo3.md +25 -0
  479. package/docs/layout/accordion-demo/demo4.md +26 -0
  480. package/docs/layout/accordion-demo/demo5.md +65 -0
  481. package/docs/layout/accordion-demo/demo6.md +78 -0
  482. package/docs/layout/accordion-demo/demo7.md +66 -0
  483. package/docs/layout/accordion-demo/demo8.md +64 -0
  484. package/docs/layout/accordion-demo/demo9.md +114 -0
  485. package/docs/layout/accordion.md +39 -9
  486. package/docs/layout/bottom-bar-demo/demo1.md +32 -49
  487. package/docs/layout/bottom-bar-demo/demo2.md +54 -0
  488. package/docs/layout/bottom-bar-demo/demo3.md +81 -0
  489. package/docs/layout/bottom-bar.md +1 -1
  490. package/docs/layout/flex.md +1 -1
  491. package/docs/layout/flyout-demo/demo1.md +19 -11
  492. package/docs/layout/flyout-demo/demo2.md +43 -28
  493. package/docs/layout/flyout-demo/demo3.md +99 -0
  494. package/docs/layout/flyout-demo/demo4.md +115 -0
  495. package/docs/layout/flyout-demo/demo5.md +59 -0
  496. package/docs/layout/flyout-demo/demo6.md +57 -0
  497. package/docs/layout/flyout-demo/demo7.md +51 -0
  498. package/docs/layout/flyout.md +1 -1
  499. package/docs/layout/header-demo/demo1.md +284 -35
  500. package/docs/layout/header-demo/demo2.md +42 -0
  501. package/docs/layout/header-demo/demo3.md +48 -0
  502. package/docs/layout/header-demo/demo4.md +57 -0
  503. package/docs/layout/header-demo/demo5.md +232 -0
  504. package/docs/layout/header-demo/demo6.md +85 -0
  505. package/docs/layout/header-demo/demo7.md +94 -0
  506. package/docs/layout/header.md +1 -1
  507. package/docs/layout/horizontal-rule.md +1 -1
  508. package/docs/layout/modal-demo/demo1.md +64 -167
  509. package/docs/layout/modal-demo/demo2.md +126 -0
  510. package/docs/layout/modal-demo/demo3.md +55 -0
  511. package/docs/layout/modal-demo/demo4.md +65 -0
  512. package/docs/layout/modal-demo/demo5.md +96 -0
  513. package/docs/layout/modal.md +1 -1
  514. package/docs/layout/page-demo/demo1.md +96 -3
  515. package/docs/layout/page-demo/demo10.md +42 -0
  516. package/docs/layout/page-demo/demo2.md +46 -0
  517. package/docs/layout/page-demo/demo3.md +50 -0
  518. package/docs/layout/page-demo/demo4.md +38 -0
  519. package/docs/layout/page-demo/demo5.md +30 -0
  520. package/docs/layout/page-demo/demo6.md +51 -0
  521. package/docs/layout/page-demo/demo7.md +59 -0
  522. package/docs/layout/page-demo/demo8.md +19 -0
  523. package/docs/layout/page-demo/demo9.md +29 -0
  524. package/docs/layout/page.md +1 -1
  525. package/docs/layout/panel-demo/demo1.md +28 -19
  526. package/docs/layout/panel-demo/demo2.md +22 -0
  527. package/docs/layout/panel-demo/demo3.md +27 -0
  528. package/docs/layout/panel-demo/demo4.md +46 -0
  529. package/docs/layout/panel-demo/demo5.md +81 -0
  530. package/docs/layout/panel.md +7 -1
  531. package/docs/layout/popover-demo/demo1.md +42 -300
  532. package/docs/layout/popover-demo/demo10.md +72 -0
  533. package/docs/layout/popover-demo/demo2.md +306 -96
  534. package/docs/layout/popover-demo/demo3.md +20 -12
  535. package/docs/layout/popover-demo/demo4.md +118 -0
  536. package/docs/layout/popover-demo/demo5.md +252 -0
  537. package/docs/layout/popover-demo/demo6.md +44 -0
  538. package/docs/layout/popover-demo/demo7.md +44 -0
  539. package/docs/layout/popover-demo/demo8.md +50 -0
  540. package/docs/layout/popover-demo/demo9.md +80 -0
  541. package/docs/layout/popover.md +1 -1
  542. package/docs/navigation/breadcrumbs-demo/demo1.md +77 -0
  543. package/docs/navigation/breadcrumbs-demo/demo2.md +61 -0
  544. package/docs/navigation/breadcrumbs-demo/demo3.md +61 -0
  545. package/docs/navigation/breadcrumbs-demo/demo4.md +61 -0
  546. package/docs/navigation/breadcrumbs-demo/demo5.md +61 -0
  547. package/docs/navigation/breadcrumbs-demo/demo6.md +61 -0
  548. package/docs/navigation/breadcrumbs.md +1 -0
  549. package/docs/navigation/button-demo/demo1.md +210 -158
  550. package/docs/navigation/button.md +1 -1
  551. package/docs/navigation/collapsible-nav-demo/demo1.md +21 -44
  552. package/docs/navigation/collapsible-nav-demo/demo2.md +108 -0
  553. package/docs/navigation/collapsible-nav.md +1 -1
  554. package/docs/navigation/key-pad-menu-demo/demo1.md +77 -0
  555. package/docs/navigation/key-pad-menu-demo/demo2.md +102 -0
  556. package/docs/navigation/key-pad-menu-demo/demo3.md +54 -0
  557. package/docs/navigation/key-pad-menu-demo/demo4.md +71 -0
  558. package/docs/navigation/key-pad-menu-demo/demo5.md +65 -0
  559. package/docs/navigation/key-pad-menu.md +1 -0
  560. package/docs/navigation/link-demo/demo1.md +44 -0
  561. package/docs/navigation/link-demo/demo2.md +41 -0
  562. package/docs/navigation/link-demo/demo3.md +45 -0
  563. package/docs/navigation/link-demo/demo4.md +61 -0
  564. package/docs/navigation/link.md +1 -0
  565. package/docs/navigation/side-nav-demo/demo1.md +34 -18
  566. package/docs/navigation/side-nav.md +1 -1
  567. package/docs/navigation/steps-demo/demo1.md +16 -18
  568. package/docs/navigation/steps-demo/demo2.md +18 -21
  569. package/docs/navigation/steps-demo/demo3.md +12 -10
  570. package/docs/navigation/steps-demo/demo4.md +84 -0
  571. package/docs/navigation/steps-demo/demo5.md +29 -0
  572. package/docs/navigation/steps.md +1 -1
  573. package/docs/navigation/tabs-demo/demo1.md +50 -148
  574. package/docs/navigation/tabs-demo/demo2.md +73 -0
  575. package/docs/navigation/tabs-demo/demo3.md +109 -0
  576. package/docs/navigation/tabs-demo/demo4.md +81 -0
  577. package/docs/navigation/tabs-demo/demo5.md +86 -0
  578. package/docs/navigation/tabs.md +1 -1
  579. package/docs/utilities/auto-sizer-demo/demo1.md +34 -0
  580. package/docs/utilities/auto-sizer.md +1 -0
  581. package/docs/utilities/copy-demo/demo1.md +37 -0
  582. package/docs/utilities/copy-demo/demo2.md +70 -0
  583. package/docs/utilities/copy.md +1 -0
  584. package/docs/utilities/mutation-observer.md +1 -1
  585. package/docs/utilities/outside-click-detector.md +1 -1
  586. package/docs/utilities/overlay-mask.md +1 -1
  587. package/docs/utilities/portal.md +1 -1
  588. package/docs/utilities/resize-observer.md +1 -1
  589. package/docs/utilities/responsive-demo/demo1.md +108 -0
  590. package/docs/utilities/responsive.md +1 -0
  591. package/index.js +8 -3
  592. package/package.json +13 -7
  593. package/CHANGELOG.md +0 -1345
  594. package/addon/components/eui-code-block-impl/code-block-controls/index.hbs +0 -33
  595. package/addon/components/eui-code-block-impl/index.hbs +0 -111
  596. package/addon/components/eui-code-block-impl/index.ts +0 -121
  597. package/addon/components/eui-flyout-body/banner/index.hbs +0 -3
  598. package/addon/components/eui-flyout-body/content/index.hbs +0 -3
  599. package/addon/helpers/create-event.ts +0 -30
  600. package/addon/helpers/get-tab-id.ts +0 -17
  601. package/addon/modifiers/focus-tab.ts +0 -19
  602. package/addon/modifiers/get-cursor-node.ts +0 -54
  603. package/addon/modifiers/invalidate-indeterminate.ts +0 -10
  604. package/addon/modifiers/on-event-simulate-event.ts +0 -32
  605. package/app/components/eui-card/eui-card-select/index.js +0 -1
  606. package/app/components/eui-flyout-body/banner/index.js +0 -1
  607. package/app/components/eui-flyout-body/content/index.js +0 -1
  608. package/app/helpers/create-event.js +0 -1
  609. package/app/helpers/get-tab-id.js +0 -1
  610. package/app/modifiers/fixed-header.js +0 -1
  611. package/app/modifiers/focus-tab.js +0 -1
  612. package/app/modifiers/get-cursor-node.js +0 -1
  613. package/app/modifiers/invalidate-indeterminate.js +0 -1
  614. package/app/modifiers/on-event-simulate-event.js +0 -1
  615. package/docs/forms/form-controls/checkbox-demo/demo1.md +0 -40
  616. package/docs/forms/form-controls/checkbox-group.md +0 -1
  617. package/docs/forms/form-controls/checkbox.md +0 -1
  618. package/docs/forms/form-controls/combo-box.md +0 -1
  619. package/docs/forms/form-controls/file-picker-demo/demo1.md +0 -28
  620. package/docs/forms/form-controls/file-picker.md +0 -1
  621. package/docs/forms/form-controls/form-control-layout-delimited.md +0 -1
  622. package/docs/forms/form-controls/form-control-layout.md +0 -1
  623. package/docs/forms/form-controls/number-field.md +0 -1
  624. package/docs/forms/form-controls/password-field.md +0 -1
  625. package/docs/forms/form-controls/radio-demo/demo1.md +0 -39
  626. package/docs/forms/form-controls/radio-group-demo/demo1.md +0 -60
  627. package/docs/forms/form-controls/radio-group.md +0 -1
  628. package/docs/forms/form-controls/radio.md +0 -1
  629. package/docs/forms/form-controls/range-demo/demo1.md +0 -61
  630. package/docs/forms/form-controls/range-demo/demo2.md +0 -59
  631. package/docs/forms/form-controls/range-demo/demo6.md +0 -59
  632. package/docs/forms/form-controls/range.md +0 -1
  633. package/docs/forms/form-controls/search-field-demo/demo1.md +0 -31
  634. package/docs/forms/form-controls/search-field.md +0 -1
  635. package/docs/forms/form-controls/select.md +0 -1
  636. package/docs/forms/form-controls/switch.md +0 -1
  637. package/docs/forms/form-controls/text-field.md +0 -1
  638. package/docs/forms/form-controls/textarea-demo/demo1.md +0 -36
  639. package/docs/forms/form-controls/textarea.md +0 -1
@@ -1,19 +1,171 @@
1
- {{! TODO: Eui Tooltip and update this component to support it. }}
2
- <span
3
- class={{class-names "euiBetaBadge" (if @iconType "euiBetaBadge--iconOnly")}}
4
- title={{@title}}
5
- ...attributes
6
- >
7
- {{#if (has-block)}}
8
- {{yield}}
9
- {{else if @iconType}}
10
- <EuiIcon
11
- @iconClasses="euiBetaBadge__icon"
12
- @type={{@iconType}}
13
- @size="m"
14
- aria-hidden="true"
15
- />
16
- {{else}}
17
- {{@label}}
18
- {{/if}}
19
- </span>
1
+ {{#let
2
+ (arg-or-default @size "m")
3
+ (eq @label.length 1)
4
+ (arg-or-default @tooltipPosition "top")
5
+ as |size singleLetter tooltipPosition|
6
+ }}
7
+
8
+ {{#let
9
+ (class-names
10
+ (if @iconType "euiBetaBadge--iconOnly")
11
+ (if singleLetter "euiBetaBadge--singleLetter")
12
+ (if (or @onClick @href) "euiBetaBadge-isClickable")
13
+ componentName="EuiBetaBadge"
14
+ color=(arg-or-default @color "hollow")
15
+ size=size
16
+ )
17
+ as |classes|
18
+ }}
19
+
20
+ {{#if (or @href @onClick)}}
21
+ {{#if @href}}
22
+ <a
23
+ aria-label={{@onClickAriaLabel}}
24
+ title={{if @label @label @title}}
25
+ class={{classes}}
26
+ href={{@href}}
27
+ target={{@target}}
28
+ rel={{@rel}}
29
+ ...attributes
30
+ >
31
+ {{#if (has-block)}}
32
+ {{yield}}
33
+ {{else if @iconType}}
34
+ <EuiIcon
35
+ @iconClasses="euiBetaBadge__icon"
36
+ @type={{@iconType}}
37
+ @size={{if (eq size "m") "m" "s"}}
38
+ aria-hidden="true"
39
+ @color="inherit"
40
+ />
41
+ {{else}}
42
+ {{@label}}
43
+ {{/if}}
44
+ </a>
45
+ {{else}}
46
+ <button
47
+ type="button"
48
+ aria-label={{@onClickAriaLabel}}
49
+ title={{if @label @label @title}}
50
+ class={{classes}}
51
+ {{on "click" @onClick}}
52
+ ...attributes
53
+ >
54
+ {{#if (has-block)}}
55
+ {{yield}}
56
+ {{else if @iconType}}
57
+ <EuiIcon
58
+ @iconClasses="euiBetaBadge__icon"
59
+ @type={{@iconType}}
60
+ @size={{if (eq size "m") "m" "s"}}
61
+ aria-hidden="true"
62
+ @color="inherit"
63
+ />
64
+ {{else}}
65
+ {{@label}}
66
+ {{/if}}
67
+ </button>
68
+ {{/if}}
69
+
70
+ {{#if @tooltipContent}}
71
+ <EuiToolTip
72
+ @position={{tooltipPosition}}
73
+ @title={{or @title @label}}
74
+ @content={{@tooltipContent}}
75
+ >
76
+ {{#if @href}}
77
+ <a
78
+ aria-label={{@onClickAriaLabel}}
79
+ title={{if @label @label @title}}
80
+ class={{classes}}
81
+ href={{@href}}
82
+ target={{@target}}
83
+ rel={{@rel}}
84
+ ...attributes
85
+ >
86
+ {{#if (has-block)}}
87
+ {{yield}}
88
+ {{else if @iconType}}
89
+ <EuiIcon
90
+ @iconClasses="euiBetaBadge__icon"
91
+ @type={{@iconType}}
92
+ @size={{if (eq size "m") "m" "s"}}
93
+ aria-hidden="true"
94
+ @color="inherit"
95
+ />
96
+ {{else}}
97
+ {{@label}}
98
+ {{/if}}
99
+ </a>
100
+ {{else}}
101
+ <button
102
+ type="button"
103
+ aria-label={{@onClickAriaLabel}}
104
+ title={{if @label @label @title}}
105
+ class={{classes}}
106
+ {{on "click" @onClick}}
107
+ ...attributes
108
+ >
109
+ {{#if (has-block)}}
110
+ {{yield}}
111
+ {{else if @iconType}}
112
+ <EuiIcon
113
+ @iconClasses="euiBetaBadge__icon"
114
+ @type={{@iconType}}
115
+ @size={{if (eq size "m") "m" "s"}}
116
+ aria-hidden="true"
117
+ @color="inherit"
118
+ />
119
+ {{else}}
120
+ {{@label}}
121
+ {{/if}}
122
+ </button>
123
+ {{/if}}
124
+ </EuiToolTip>
125
+ {{/if}}
126
+ {{else}}
127
+ {{#if @tooltipContent}}
128
+ <EuiToolTip
129
+ @position={{tooltipPosition}}
130
+ @title={{or @title @label}}
131
+ @content={{@tooltipContent}}
132
+ >
133
+ <span tabindex="0" class={{classes}} ...attributes>
134
+ {{#if (has-block)}}
135
+ {{yield}}
136
+ {{else if @iconType}}
137
+ <EuiIcon
138
+ @iconClasses="euiBetaBadge__icon"
139
+ @type={{@iconType}}
140
+ @size={{if (eq size "m") "m" "s"}}
141
+ aria-hidden="true"
142
+ @color="inherit"
143
+ />
144
+ {{else}}
145
+ {{@label}}
146
+ {{/if}}
147
+ </span>
148
+ </EuiToolTip>
149
+ {{else}}
150
+ <span class={{classes}} title={{@title}} ...attributes>
151
+ {{#if (has-block)}}
152
+ {{yield}}
153
+ {{else if @iconType}}
154
+ <EuiIcon
155
+ @iconClasses="euiBetaBadge__icon"
156
+ @type={{@iconType}}
157
+ @size={{if (eq size "m") "m" "s"}}
158
+ aria-hidden="true"
159
+ @color="inherit"
160
+ />
161
+ {{else}}
162
+ {{@label}}
163
+ {{/if}}
164
+ </span>
165
+ {{/if}}
166
+
167
+ {{/if}}
168
+
169
+ {{/let}}
170
+
171
+ {{/let}}
@@ -1,29 +1,60 @@
1
- {{!-- TODO: Add landmarkSupport after having an <EuiI18n> component support --}}
2
- <EuiPortal>
1
+ {{! TODO: Add landmarkSupport after having an <EuiI18n> component support }}
2
+ {{#if this.usePortal}}
3
+ <EuiPortal>
4
+ <section
5
+ style={{this.bottomBarStyles}}
6
+ {{resize-observer onResize=(set this "dimensions")}}
7
+ class={{class-names
8
+ componentName="EuiBottomBar"
9
+ paddingSize=(arg-or-default @paddingSize "m")
10
+ positionType=(arg-or-default this.position "fixed")
11
+ }}
12
+ {{this.updateDisplacementModifier
13
+ affordForDisplacement=this.affordForDisplacement
14
+ usePortal=this.usePortal
15
+ dimensions=this.dimensions
16
+ bodyClassName=@bodyClassName
17
+ }}
18
+ ...attributes
19
+ >
20
+ {{yield}}
21
+ </section>
22
+ </EuiPortal>
23
+ {{else}}
3
24
  <section
25
+ style={{this.bottomBarStyles}}
26
+ {{resize-observer onResize=(set this "dimensions")}}
4
27
  class={{class-names
5
28
  componentName="EuiBottomBar"
6
29
  paddingSize=(arg-or-default @paddingSize "m")
30
+ positionType=(arg-or-default this.position "fixed")
31
+ }}
32
+ aria-label={{if @landmarkHeading @landmarkHeading "Page level controls"}}
33
+ {{this.updateDisplacementModifier
34
+ affordForDisplacement=this.affordForDisplacement
35
+ usePortal=this.usePortal
36
+ dimensions=this.dimensions
37
+ bodyClassName=@bodyClassName
7
38
  }}
8
- {{!-- aria-label={{if @landmarkHeading @landmarkHeading "Page level controls"}} --}}
9
- {{did-insert this.didInsert}}
10
- {{did-update this.updateDisplacement this.affordForDisplacement}}
11
39
  ...attributes
12
40
  >
13
- {{!-- <div {{screen-reader-only}}>
41
+ <div {{screen-reader-only}}>
14
42
  <h2>
15
43
  {{if @landmarkHeading @landmarkHeading "Page level controls"}}
16
44
  </h2>
17
- </div> --}}
45
+ </div>
18
46
  {{yield}}
19
47
  </section>
20
- {{!-- <div {{screen-reader-only}}>
48
+ <div {{screen-reader-only}}>
21
49
  <p aria-live="assertive">
22
50
  {{#if @landmarkHeading}}
23
- There is a new region landmark called {{@landmarkHeading}} with page level controls at the end of the document.
51
+ There is a new region landmark called
52
+ {{@landmarkHeading}}
53
+ with page level controls at the end of the document.
24
54
  {{else}}
25
- There is a new region landmark with page level controls at the end of the document.
55
+ There is a new region landmark with page level controls at the end of
56
+ the document.
26
57
  {{/if}}
27
58
  </p>
28
- </div> --}}
29
- </EuiPortal>
59
+ </div>
60
+ {{/if}}
@@ -1,51 +1,94 @@
1
1
  import GlimmerComponent from '@glimmer/component';
2
- import { action } from '@ember/object';
2
+ import { tracked } from '@glimmer/tracking';
3
+ import { modifier } from 'ember-modifier';
3
4
 
4
- interface EuiButtomBarArgs {
5
+ export interface EuiButtomBarArgs {
5
6
  affordForDisplacement: boolean;
6
7
  bodyClassName: string;
8
+ position?: 'fixed' | 'static' | 'sticky';
9
+ usePortal: boolean;
10
+ paddingSize?: 'none' | 's' | 'm' | 'l';
11
+ landmarkHeading?: string;
12
+ top: number;
13
+ right: number;
14
+ left: number;
15
+ bottom: number;
7
16
  }
8
- export default class EuiBottomBarComponent extends GlimmerComponent<EuiButtomBarArgs> {
9
- get affordForDisplacement(): boolean {
10
- return this.args.affordForDisplacement ?? true;
17
+
18
+ const updateDisplacementModifier = modifier(function (
19
+ _element: Element,
20
+ _pos: unknown[],
21
+ {
22
+ affordForDisplacement,
23
+ usePortal,
24
+ bodyClassName,
25
+ dimensions
26
+ }: {
27
+ affordForDisplacement: boolean;
28
+ usePortal: boolean;
29
+ bodyClassName: string;
30
+ dimensions: { height: number };
31
+ }
32
+ ) {
33
+ if (affordForDisplacement && usePortal) {
34
+ document.body.style.paddingBottom = `${dimensions.height}px`;
35
+ }
36
+
37
+ if (bodyClassName) {
38
+ document.body.classList.add(bodyClassName);
11
39
  }
12
40
 
13
- @action
14
- didInsert(element: HTMLElement): void {
15
- if (this.affordForDisplacement) {
16
- const height = element.clientHeight;
17
- document.body.style.paddingBottom = `${height}px`;
41
+ return () => {
42
+ if (affordForDisplacement && usePortal) {
43
+ document.body.style.paddingBottom = '';
18
44
  }
19
45
 
20
- if (this.args.bodyClassName) {
21
- document.body.classList.add(this.args.bodyClassName);
46
+ if (bodyClassName) {
47
+ document.body.classList.remove(bodyClassName);
22
48
  }
49
+ };
50
+ });
51
+
52
+ export default class EuiBottomBarComponent extends GlimmerComponent<EuiButtomBarArgs> {
53
+ updateDisplacementModifier = updateDisplacementModifier;
54
+
55
+ @tracked dimensions: { height: number; width: number } | undefined;
56
+
57
+ get affordForDisplacement(): boolean {
58
+ return this.position !== 'fixed'
59
+ ? false
60
+ : this.args.affordForDisplacement ?? true;
23
61
  }
24
62
 
25
- @action
26
- updateDisplacement(element: HTMLElement): void {
27
- const prevAffordForDisplacement = document.body.style.paddingBottom !== '';
28
- if (prevAffordForDisplacement !== this.affordForDisplacement) {
29
- if (this.affordForDisplacement) {
30
- // start affording for displacement
31
- const height = element.clientHeight;
32
- document.body.style.paddingBottom = `${height}px`;
33
- } else {
34
- // stop affording for displacement
35
- document.body.style.paddingBottom = '';
36
- }
37
- }
63
+ get usePortal(): boolean {
64
+ return this.position !== 'fixed' ? false : true;
65
+ }
38
66
 
39
- //TODO: Add/Remove bodyClassName prop from body classes when updated
67
+ get position(): string {
68
+ return this.args.position || 'fixed';
40
69
  }
41
70
 
42
- willDestroy(): void {
43
- if (this.affordForDisplacement) {
44
- document.body.style.paddingBottom = '';
45
- }
71
+ get top(): number {
72
+ return this.args.top ? this.args.top : 0;
73
+ }
74
+
75
+ get right(): number {
76
+ return this.args.right ? this.args.right : 0;
77
+ }
78
+
79
+ get left(): number {
80
+ return this.args.left ? this.args.left : 0;
81
+ }
82
+
83
+ get bottom(): number {
84
+ return this.args.bottom ? this.args.bottom : 0;
85
+ }
46
86
 
47
- if (this.args.bodyClassName) {
48
- document.body.classList.remove(this.args.bodyClassName);
87
+ get bottomBarStyles(): string {
88
+ if (this.position === 'fixed') {
89
+ return `left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;
90
+ } else {
91
+ return `top:${this.top}px;left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;
49
92
  }
50
93
  }
51
94
  }
@@ -0,0 +1,98 @@
1
+ <nav
2
+ {{this.onWidowResize
3
+ functionToCallOnWindowResize=this.functionToCallOnWindowResize
4
+ }}
5
+ class={{class-names
6
+ "euiBreadcrumbs"
7
+ (if this.truncate "euiBreadcrumbs--truncate")
8
+ }}
9
+ ...attributes
10
+ >
11
+ <ol class="euiBreadcrumbs__list">
12
+
13
+ {{#each this.limitedBreadcrumbs.breadcrumbs as |breadcrumb index|}}
14
+
15
+ {{#if breadcrumb.ellipsis}}
16
+ {{#let (use-state false) as |popOverState|}}
17
+ <li class="euiBreadcrumb euiBreadcrumb--collapsed">
18
+ <EuiPopover
19
+ @isOpen={{popOverState.value}}
20
+ @closePopover={{fn popOverState.setState false}}
21
+ >
22
+ <:button>
23
+ <EuiLink
24
+ class="euiBreadcrumb__content"
25
+ @color="subdued"
26
+ @aria-label="See collapsed breadcrumbs"
27
+ title="See collapsed breadcrumbs"
28
+ {{on "click" (fn popOverState.setState true)}}
29
+ >
30
+ &hellip;<EuiIcon @type="arrowDown" @size="s" />
31
+ </EuiLink>
32
+ </:button>
33
+ <:content>
34
+ <EuiBreadcrumbs
35
+ class="euiBreadcrumbs__inPopover"
36
+ @breadcrumbs={{this.limitedBreadcrumbs.overflowBreadcrumbs}}
37
+ @responsive={{false}}
38
+ @truncate={{false}}
39
+ @max={{0}}
40
+ />
41
+ </:content>
42
+ </EuiPopover>
43
+
44
+ </li>
45
+
46
+ {{/let}}
47
+ {{else}}
48
+ <EuiInnerText as |setInnerTextRef innerText|>
49
+ {{#let
50
+ (eq index (sub this.limitedBreadcrumbs.breadcrumbs.length 1))
51
+ (if (eq innerText "") undefined innerText)
52
+ as |isLastBreadcrumb title|
53
+ }}
54
+ <li
55
+ class={{class-names
56
+ "euiBreadcrumb"
57
+ (if isLastBreadcrumb "euiBreadcrumb--last")
58
+ (if breadcrumb.truncate "euiBreadcrumb--truncate")
59
+ }}
60
+ >
61
+ {{#if (and (not breadcrumb.href) (not breadcrumb.onClick))}}
62
+ <span
63
+ {{did-insert setInnerTextRef}}
64
+ title={{title}}
65
+ class={{class-names
66
+ "euiBreadcrumb__content"
67
+ breadcrumb.className
68
+ }}
69
+ aria-current={{if isLastBreadcrumb "page" undefined}}
70
+ >
71
+ {{breadcrumb.text}}
72
+ </span>
73
+ {{else}}
74
+ <EuiLink
75
+ {{did-insert setInnerTextRef}}
76
+ @color={{if isLastBreadcrumb "text" "subdued"}}
77
+ @onClick={{breadcrumb.onClick}}
78
+ @href={{breadcrumb.href}}
79
+ title={{title}}
80
+ class={{class-names
81
+ "euiBreadcrumb__content"
82
+ breadcrumb.className
83
+ }}
84
+ aria-current={{if isLastBreadcrumb "page" undefined}}
85
+ >
86
+ {{breadcrumb.text}}
87
+ </EuiLink>
88
+ {{/if}}
89
+
90
+ </li>
91
+ {{/let}}
92
+ </EuiInnerText>
93
+ {{/if}}
94
+
95
+ {{/each}}
96
+
97
+ </ol>
98
+ </nav>
@@ -0,0 +1,194 @@
1
+ import { throttle } from '@ember/runloop';
2
+ import Component from '@glimmer/component';
3
+ import { modifier } from 'ember-modifier';
4
+ import { EuiBreakpointSize, getBreakpoint } from '../../utils/breakpoint';
5
+ import { cached, tracked } from '@glimmer/tracking';
6
+
7
+ export type EuiBreadcrumbResponsiveMaxCount = {
8
+ /**
9
+ * Any of the following keys are allowed: `'xs' | 's' | 'm' | 'l' | 'xl'`
10
+ * Omitting a key will display all breadcrumbs at that breakpoint
11
+ */
12
+ [key in EuiBreakpointSize]?: number;
13
+ };
14
+
15
+ const responsiveDefault: EuiBreadcrumbResponsiveMaxCount = {
16
+ xs: 1,
17
+ s: 2,
18
+ m: 4
19
+ };
20
+
21
+ export type EuiBreadcrumb = {
22
+ /**
23
+ * Visible label of the breadcrumb
24
+ */
25
+ text: string;
26
+ href?: string;
27
+ onClick?: (e: MouseEvent) => void;
28
+ /**
29
+ * Force a max-width on the breadcrumb text
30
+ */
31
+ truncate?: boolean;
32
+
33
+ 'aria-current': string;
34
+ };
35
+
36
+ const onWindowResizeModifier = modifier(
37
+ (
38
+ _ele: HTMLElement,
39
+ _pos,
40
+ {
41
+ functionToCallOnWindowResize
42
+ }: { isDocked: boolean; functionToCallOnWindowResize: () => void }
43
+ ) => {
44
+ window.addEventListener('resize', functionToCallOnWindowResize);
45
+
46
+ return () => {
47
+ window.removeEventListener('resize', functionToCallOnWindowResize);
48
+ };
49
+ }
50
+ );
51
+
52
+ const limitedBreadcrumbs = (max: number, breadcrumbs: EuiBreadcrumb[]) => {
53
+ const breadcrumbsAtStart = [];
54
+ const breadcrumbsAtEnd = [];
55
+ const limit = Math.min(max, breadcrumbs.length);
56
+ const start = Math.floor(limit / 2);
57
+ const overflowBreadcrumbs = breadcrumbs.slice(
58
+ start,
59
+ start + breadcrumbs.length - limit
60
+ );
61
+
62
+ if (overflowBreadcrumbs.length) {
63
+ overflowBreadcrumbs[overflowBreadcrumbs.length - 1]['aria-current'] =
64
+ 'false';
65
+ }
66
+
67
+ for (let i = 0; i < limit; i++) {
68
+ // We'll alternate with displaying breadcrumbs at the end and at the start, but be biased
69
+ // towards breadcrumbs the end so that if max is an odd number, we'll have one more
70
+ // breadcrumb visible at the end than at the beginning.
71
+ const isEven = i % 2 === 0;
72
+
73
+ // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a
74
+ // half-iteration.
75
+ const normalizedIndex = Math.floor(i * 0.5);
76
+ const indexOfBreadcrumb = isEven
77
+ ? breadcrumbs.length - 1 - normalizedIndex
78
+ : normalizedIndex;
79
+ const breadcrumb = breadcrumbs[indexOfBreadcrumb];
80
+
81
+ if (isEven) {
82
+ breadcrumbsAtEnd.unshift(breadcrumb);
83
+ } else {
84
+ breadcrumbsAtStart.push(breadcrumb);
85
+ }
86
+ }
87
+
88
+ if (max < breadcrumbs.length) {
89
+ breadcrumbsAtStart.push({ ellipsis: true });
90
+ }
91
+
92
+ return {
93
+ breadcrumbs: [...breadcrumbsAtStart, ...breadcrumbsAtEnd],
94
+ overflowBreadcrumbs
95
+ };
96
+ };
97
+
98
+ interface EuiBreadcrumbsComponentArgs {
99
+ /**
100
+ * Hides extra (above the max) breadcrumbs under a collapsed item as the window gets smaller.
101
+ * Pass a custom #EuiBreadcrumbResponsiveMaxCount object to change the number of breadcrumbs to show at the particular breakpoints.
102
+ *
103
+ * Pass `false` to turn this behavior off.
104
+ *
105
+ * Default: `{ xs: 1, s: 2, m: 4 }`
106
+ */
107
+ responsive?: boolean | EuiBreadcrumbResponsiveMaxCount;
108
+
109
+ /**
110
+ * Forces all breadcrumbs to single line and
111
+ * truncates each breadcrumb to a particular width,
112
+ * except for the last item
113
+ */
114
+ truncate?: boolean;
115
+
116
+ /**
117
+ * Collapses the inner items past the maximum set here
118
+ * into a single ellipses item.
119
+ * Omitting or passing a `0` value will show all breadcrumbs.
120
+ */
121
+ max?: number | null;
122
+
123
+ /**
124
+ * The array of individual #EuiBreadcrumb items
125
+ */
126
+ breadcrumbs: EuiBreadcrumb[];
127
+ }
128
+
129
+ export default class EuiBreadcrumbsComponent extends Component<EuiBreadcrumbsComponentArgs> {
130
+ onWidowResize = onWindowResizeModifier;
131
+ @tracked currentBreakpoint;
132
+
133
+ constructor(owner: unknown, args: EuiBreadcrumbsComponentArgs) {
134
+ super(owner, args);
135
+ this.currentBreakpoint = getBreakpoint(
136
+ typeof window === 'undefined' ? -Infinity : window.innerWidth
137
+ );
138
+ }
139
+
140
+ functionToCallOnWindowResize = () => {
141
+ throttle(() => {
142
+ const newBreakpoint = getBreakpoint(window.innerWidth);
143
+ if (newBreakpoint !== this.currentBreakpoint) {
144
+ this.currentBreakpoint = newBreakpoint;
145
+ }
146
+ }, 50);
147
+ };
148
+
149
+ get responsiveObject() {
150
+ return typeof this.args.responsive === 'object'
151
+ ? this.args.responsive
152
+ : responsiveDefault;
153
+ }
154
+
155
+ get max() {
156
+ if (this.args.max === null) {
157
+ return null;
158
+ }
159
+ return this.args.max ?? 5;
160
+ }
161
+
162
+ get truncate() {
163
+ return this.args.truncate ?? true;
164
+ }
165
+
166
+ get calculatedMax(): EuiBreadcrumbsComponentArgs['max'] {
167
+ // The max property collapses any breadcrumbs past the max quantity.
168
+ // This is the same behavior we want for responsiveness.
169
+ // So calculate the max value based on the combination of `max` and `responsive`
170
+ let calculatedMax: EuiBreadcrumbsComponentArgs['max'] = this.max;
171
+ // Set the calculated max to the number associated with the currentBreakpoint key if it exists
172
+ if (
173
+ this.args.responsive &&
174
+ this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize]
175
+ ) {
176
+ calculatedMax =
177
+ this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize];
178
+ }
179
+ // Final check is to make sure max is used over a larger breakpoint value
180
+ if (this.max && calculatedMax) {
181
+ calculatedMax = this.max < calculatedMax ? this.max : calculatedMax;
182
+ }
183
+
184
+ return calculatedMax;
185
+ }
186
+
187
+ @cached
188
+ get limitedBreadcrumbs() {
189
+ const calculatedMax = this.calculatedMax;
190
+ return calculatedMax
191
+ ? limitedBreadcrumbs(calculatedMax, this.args.breadcrumbs)
192
+ : { breadcrumbs: this.args.breadcrumbs };
193
+ }
194
+ }