@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
@@ -1 +1,27 @@
1
- # CodeBlock
1
+ <EuiPageHeader>
2
+ <EuiPageHeaderSection>
3
+ <EuiTitle @size="l">
4
+ <h1>
5
+ Code
6
+ </h1>
7
+ </EuiTitle>
8
+ </EuiPageHeaderSection>
9
+ </EuiPageHeader>
10
+
11
+ <EuiSpacer />
12
+ <EuiCallOut>
13
+ <:body>
14
+ <strong>EuiCode</strong> and <strong>EuiCodeBlock</strong> are intended to render static lines or blocks of code in <strong>read-only</strong> contexts. If you need capabilities to edit, or want to print long code (e.g., printing JSON from an API), we recommend installing a version of Monaco. If you are building within the Kibana platform, you can use their CodeEditor.
15
+ </:body>
16
+ </EuiCallOut>
17
+
18
+ <EuiSpacer />
19
+
20
+ <EuiText>
21
+ <p>
22
+ The <strong>EuiCode</strong> and <strong>EuiCodeBlock</strong> components support <a href="https://prismjs.com/#supported-languages" target="_blank">all language syntaxes</a> supported by the <EuiCode>prism</EuiCode> <a href="https://prismjs.com" target="_blank">library</a>. The language prop can also be omitted to simply render formatted but unhighlighted code.
23
+ </p>
24
+ <p>
25
+ JSX code (often React) has distinct language syntaxes from the base JavaScript and TypeScript languages. For these instances, use <EuiCode @language="jsx">language="jsx"</EuiCode> or <EuiCode @language="tsx">language="tsx"</EuiCode>.
26
+ </p>
27
+ </EuiText>
@@ -13,17 +13,20 @@ order: 1
13
13
  </p>
14
14
  <p>
15
15
  You can also pass a language in like
16
- <EuiCode language='html'>{{this.htmlCode}}</EuiCode>.
16
+ <EuiCode @language='html'>{{this.htmlCode}}</EuiCode>.
17
17
  </p>
18
18
  <p>
19
19
  Make the background transparent like this
20
- <EuiCode @language='html' @transparentBackground={{true}}>
20
+ <EuiCode @transparentBackground={{true}} @language='html'>
21
21
  {{this.htmlCode}}
22
22
  </EuiCode>
23
23
  .
24
24
  </p>
25
25
  </EuiText>
26
- <EuiTextArea @value={{this.htmlCode}} {{on "input" (pick "target.value" (set this "htmlCode"))}}/>
26
+ <EuiTextArea
27
+ @value={{this.htmlCode}}
28
+ {{on 'input' (pick 'target.value' (set this 'htmlCode'))}}
29
+ />
27
30
  ```
28
31
 
29
32
  ```javascript component
@@ -1 +1,9 @@
1
- # Inline
1
+ <EuiPageHeader>
2
+ <EuiPageHeaderSection>
3
+ <EuiTitle @size="l">
4
+ <h1>
5
+ Inline
6
+ </h1>
7
+ </EuiTitle>
8
+ </EuiPageHeaderSection>
9
+ </EuiPageHeader>
@@ -71,36 +71,17 @@ class Human {
71
71
  }
72
72
  \`\`\`
73
73
 
74
- \`\`\`golang
75
- package main
76
-
77
- import \"fmt\"
78
-
79
- func main() {
80
-
81
- // \`var\` declares 1 or more variables.
82
- var a = "initial"
83
- fmt.Println(a)
84
-
85
- // You can declare multiple variables at once.
86
- var b, c int = 1, 2
87
- fmt.Println(b, c)
88
-
89
- // Go will infer the type of initialized variables.
90
- var d = true
91
- fmt.Println(d)
74
+ \`\`\`tsx
75
+ import Component from '@glimmer/component';
76
+ import { helper } from '@ember/component/helper';
77
+ import { tracked } from '@glimmer/tracking';
92
78
 
93
- // Variables declared without a corresponding
94
- // initialization are _zero-valued_. For example, the
95
- // zero value for an \`int\` is \`0\`.
96
- var e int
97
- fmt.Println(e)
79
+ export default class SomeComponent extends Component {
80
+ @tracked count = 0;
98
81
 
99
- // The \`:=\` syntax is shorthand for declaring and
100
- // initializing a variable, e.g. for
101
- // \`var f string = "apple"\` in this case.
102
- f := "apple"
103
- fmt.Println(f)
82
+ add = helper(function([a, b]: [number, number]) {
83
+ return a + b;
84
+ });
104
85
  }
105
86
 
106
87
  \`\`\`
@@ -1 +1,9 @@
1
- # Base Editor
1
+ <EuiPageHeader>
2
+ <EuiPageHeaderSection>
3
+ <EuiTitle @size="l">
4
+ <h1>
5
+ Base editor
6
+ </h1>
7
+ </EuiTitle>
8
+ </EuiPageHeaderSection>
9
+ </EuiPageHeader>
@@ -0,0 +1,49 @@
1
+ ---
2
+ order: 1
3
+ ---
4
+
5
+ ```hbs template
6
+ <EuiForm>
7
+ <EuiCheckbox
8
+ @id='131'
9
+ @label='I am a checkbox'
10
+ @checked={{this.checkbox1}}
11
+ {{on 'change' (pick 'target.checked' (set this 'checkbox1'))}}
12
+ />
13
+ <EuiCheckbox
14
+ @id='131d'
15
+ @label='I am an indeterminate checkbox'
16
+ @indeterminate={{this.indeterminate}}
17
+ {{on 'change' (pick 'target.checked' (set this 'indeterminate'))}}
18
+ />
19
+ <EuiCheckbox
20
+ @disabled={{true}}
21
+ @id='disabled-checkbox'
22
+ @label='I am a checkbox'
23
+ @checked={{this.checkbox1}}
24
+ {{on 'change' (pick 'target.checked' (set this 'checkbox1'))}}
25
+ />
26
+ <EuiCheckbox
27
+ @id='disabled-checkbox'
28
+ @checked={{this.checkbox1}}
29
+ {{on 'change' (pick 'target.checked' (set this 'checkbox1'))}}
30
+ >
31
+ <:label>
32
+ Using the
33
+ <strong>:label</strong>
34
+ block
35
+ </:label>
36
+ </EuiCheckbox>
37
+ </EuiForm>
38
+ ```
39
+
40
+ ```javascript component
41
+ import Component from '@glimmer/component';
42
+ import { tracked } from '@glimmer/tracking';
43
+ import { action } from '@ember/object';
44
+
45
+ export default class extends Component {
46
+ @tracked checkbox1 = true;
47
+ @tracked indeterminate = true;
48
+ }
49
+ ```
@@ -0,0 +1,34 @@
1
+ ---
2
+ order: 1
3
+ title: Checkbox
4
+ ---
5
+
6
+ <EuiPageHeader>
7
+ <EuiPageHeaderSection>
8
+ <EuiTitle @size="l">
9
+ <h1>
10
+ Checkbox
11
+ </h1>
12
+ </EuiTitle>
13
+ </EuiPageHeaderSection>
14
+ </EuiPageHeader>
15
+
16
+ <EuiSpacer />
17
+
18
+ <EuiText>
19
+ <p>
20
+ This component renders a basic HTML <EuiCode @language="html">{{'<input type="checkbox">'}}</EuiCode> element.
21
+ Use checkboxes to allow users to select multiple options from a list.
22
+ </p>
23
+ <p>
24
+ Use the <EuiCode>@checked</EuiCode> argument to handle the checked and
25
+ unchecked state. You can also use the <EuiCode>@indeterminate</EuiCode> argument to set an indeterminate state.
26
+ This state is commonly used in hierarchical checkboxes to indicate that only some of the checkbox's descendants are checked.
27
+ </p>
28
+ <p>
29
+ Make sure to pass a <EuiCode>@label</EuiCode> to ensure a larger
30
+ clickable area and ensure that screen readers will read out the
31
+ label when the user is focused on the input.
32
+ You can also use the <EuiCode>:label</EuiCode> block for a more complex label.
33
+ </p>
34
+ </EuiText>
@@ -2,28 +2,19 @@
2
2
  order: 1
3
3
  ---
4
4
 
5
- # Demo
6
-
7
- This component is different yet simplier from what you'd expect in ember in a way that you don't control the rendering of each checkbox, you just pass in an array of `@options` and `@idToSelectedMap` which you are in charge to calculate on subsequent `@onChange`'s, refer to the javascript snippet.
8
-
9
- You can optionally pass `@valueKey` and `@labelKey` for a more flexible and ergonomic API, so you don't actually _have_ to map your options to
10
- `{ id: '', label: '' }` which are the default `@valueKey` and `@labelKey`.
11
-
12
- <EuiSpacer />
13
-
14
5
  ```hbs template
15
6
  <EuiCheckboxGroup
16
7
  @options={{this.checkboxes}}
17
8
  @idToSelectedMap={{this.checkboxIdToSelectedMap}}
18
- @valueKey="value"
9
+ @valueKey='value'
19
10
  @onChange={{this.onChange}}
20
11
  />
21
12
  <EuiSpacer />
22
13
  <EuiCheckboxGroup
23
- @legend="With legend"
14
+ @legend='With legend'
24
15
  @options={{this.checkboxes}}
25
16
  @idToSelectedMap={{this.checkboxIdToSelectedMap}}
26
- @valueKey="value"
17
+ @valueKey='value'
27
18
  @onChange={{this.onChange}}
28
19
  />
29
20
  <EuiSpacer />
@@ -41,7 +32,7 @@ import Component from '@glimmer/component';
41
32
  import { tracked } from '@glimmer/tracking';
42
33
  import { action } from '@ember/object';
43
34
 
44
- export default class EuiTextFieldDemo1 extends Component {
35
+ export default class extends Component {
45
36
  checkboxes = [
46
37
  {
47
38
  value: 'check-1',
@@ -0,0 +1,35 @@
1
+ ---
2
+ order: 2
3
+ title: Checkbox group
4
+ ---
5
+
6
+ <EuiPageHeader>
7
+ <EuiPageHeaderSection>
8
+ <EuiTitle @size="l">
9
+ <h1>
10
+ Checkbox group
11
+ </h1>
12
+ </EuiTitle>
13
+ </EuiPageHeaderSection>
14
+ </EuiPageHeader>
15
+
16
+ <EuiSpacer />
17
+
18
+ <EuiText>
19
+ <p>
20
+ This component is different yet simplier from what you'd expect in ember in a way that you don't control the rendering of each checkbox, you just pass in an array of <EuiCode>@options</EuiCode> and <EuiCode>@idToSelectedMap</EuiCode> which you are in charge to calculate on subsequent <EuiCode>@onChange</EuiCode>'s, refer to the javascript snippet.
21
+ </p>
22
+ <p>
23
+ You can optionally pass <EuiCode>@valueKey</EuiCode> and <EuiCode>@labelKey</EuiCode> for a more flexible and ergonomic API, so you don't actually have to map your options to
24
+ <EuiCode>{ id: '', label: '' }</EuiCode> which are the default <EuiCode>@valueKey</EuiCode> and <EuiCode>@labelKey</EuiCode>.
25
+ </p>
26
+ <p>
27
+ When the individual labels for each radio do not provide a
28
+ sufficient description, pass a <EuiCode>@legend</EuiCode> to the
29
+ group.
30
+ </p>
31
+ <p>
32
+ Use the <EuiCode>@compressed</EuiCode> prop to tighten up the spacing
33
+ between checkbox rows.
34
+ </p>
35
+ </EuiText>
@@ -2,7 +2,13 @@
2
2
  order: 1
3
3
  ---
4
4
 
5
- # Demo
5
+ # Basic
6
+
7
+ <EuiText>
8
+ <p>
9
+ <strong>EuiComboBox </strong> ember's implementation uses <a href="https://ember-power-select.com">ember-power-select</a> under the hood for a rich selector, so please refer to it if needed.
10
+ </p>
11
+ </EuiText>
6
12
 
7
13
  ```hbs template
8
14
  <EuiComboBox
@@ -24,7 +30,7 @@ import Component from '@glimmer/component';
24
30
  import { tracked } from '@glimmer/tracking';
25
31
  import { action } from '@ember/object';
26
32
 
27
- export default class Demo1 extends Component {
33
+ export default class extends Component {
28
34
  @tracked selected = [];
29
35
  @tracked options = [];
30
36
  @tracked remainingOptions = [];
@@ -2,7 +2,13 @@
2
2
  order: 2
3
3
  ---
4
4
 
5
- # Demo
5
+ # Disabled
6
+
7
+ <EuiText>
8
+ <p>
9
+ Set the prop <EuiCode> isDisabled </EuiCode> to make the combo box disabled.
10
+ </p>
11
+ </EuiText>
6
12
 
7
13
  ```hbs template
8
14
  <EuiComboBox
@@ -10,12 +16,7 @@ order: 2
10
16
  @options={{this.remainingOptions}}
11
17
  @selectedOptions={{this.selected}}
12
18
  @searchEnabled={{true}}
13
- @singleSelection={{hash asPlainText=true}}
14
- @extra={{hash
15
- prependTriggerComponent=(component
16
- 'eui-form-label' label='Prepend a component'
17
- )
18
- }}
19
+ @isDisabled={{true}}
19
20
  @searchField='label'
20
21
  as |option item|
21
22
  >
@@ -28,7 +29,7 @@ import Component from '@glimmer/component';
28
29
  import { tracked } from '@glimmer/tracking';
29
30
  import { action } from '@ember/object';
30
31
 
31
- export default class Demo1 extends Component {
32
+ export default class extends Component {
32
33
  @tracked selected = [];
33
34
  @tracked options = [];
34
35
  @tracked remainingOptions = [];
@@ -36,6 +37,7 @@ export default class Demo1 extends Component {
36
37
  super(...arguments);
37
38
  this.options = this.generateArray(100);
38
39
  this.remainingOptions = this.options.slice();
40
+ this.selected = [this.options[0]];
39
41
  }
40
42
  generateArray(n) {
41
43
  let arr = [];
@@ -0,0 +1,60 @@
1
+ ---
2
+ order: 3
3
+ ---
4
+
5
+ # Virtualized
6
+
7
+ <EuiText>
8
+ <p>
9
+ <strong>EuiComboBoxList</strong> uses <a href="https://github.com/html-next/vertical-collection">vertical collection</a> to only render visible options to be super fast no matter how many options there are.
10
+ </p>
11
+ </EuiText>
12
+
13
+ ```hbs template
14
+ <EuiComboBox
15
+ @onChange={{this.onChange}}
16
+ @options={{this.remainingOptions}}
17
+ @selectedOptions={{this.selected}}
18
+ @searchEnabled={{true}}
19
+ @searchField='label'
20
+ as |option item|
21
+ >
22
+ {{option.label}}
23
+ </EuiComboBox>
24
+ ```
25
+
26
+ ```javascript component
27
+ import Component from '@glimmer/component';
28
+ import { tracked } from '@glimmer/tracking';
29
+ import { action } from '@ember/object';
30
+
31
+ export default class extends Component {
32
+ @tracked selected = [];
33
+ @tracked options = [];
34
+ @tracked remainingOptions = [];
35
+ constructor() {
36
+ super(...arguments);
37
+ this.options = this.generateArray(100000);
38
+ this.remainingOptions = this.options.slice();
39
+ }
40
+ generateArray(n) {
41
+ let arr = [];
42
+ for (let i = 0; i < n - 1; i++) {
43
+ arr[i] = {
44
+ value: i,
45
+ label: `Number ${i}`,
46
+ color: '#' + (((1 << 24) * Math.random()) | 0).toString(16)
47
+ };
48
+ }
49
+ return arr;
50
+ }
51
+
52
+ @action
53
+ onChange(selected) {
54
+ this.remainingOptions = this.options.filter(
55
+ (opt) => !selected.includes(opt)
56
+ );
57
+ this.selected = selected;
58
+ }
59
+ }
60
+ ```
@@ -1,19 +1,19 @@
1
1
  ---
2
- order: 2
2
+ order: 4
3
3
  ---
4
4
 
5
- # Demo
5
+ # Groups
6
6
 
7
- Using on create options for bubbling new option and handling in onCreateOption function, you may want to provide a customOptionText, you can assume {searchText} will be interpolated, be sure sanitize your string!
7
+ You can group options together. The groups won’t match against the search value.
8
8
 
9
9
  ```hbs template
10
10
  <EuiComboBox
11
11
  @onChange={{this.onChange}}
12
- @options={{this.remainingOptions}}
12
+ @options={{this.groupedOptions}}
13
13
  @onCreateOption={{this.onCreateOption}}
14
14
  @selectedOptions={{this.selected}}
15
15
  @searchEnabled={{true}}
16
- @customOptionText='Do you want to add&nbsp;<strong>{searchText}</strong>&nbsp;to your list?'
16
+ @customOptionText='Do you want to add&nbsp;{searchText}&nbsp;to your list?'
17
17
  @searchField='label'
18
18
  as |option item|
19
19
  >
@@ -26,21 +26,26 @@ import Component from '@glimmer/component';
26
26
  import { tracked } from '@glimmer/tracking';
27
27
  import { action } from '@ember/object';
28
28
 
29
- export default class Demo1 extends Component {
29
+ export default class extends Component {
30
30
  @tracked selected = [];
31
31
  @tracked options = [];
32
- @tracked remainingOptions = [];
32
+ @tracked groupedOptions = [];
33
+
33
34
  constructor() {
34
35
  super(...arguments);
35
- this.options = this.generateArray(100);
36
- this.remainingOptions = this.options.slice();
36
+ this.options = [
37
+ { value: 'No group option', label: 'No group option', color: 'red' },
38
+ { groupName: 'Group 1', options: this.generateArray('group1', 3) },
39
+ { groupName: 'Group 2', options: this.generateArray('group2', 5) }
40
+ ];
41
+ this.groupedOptions = this.options.slice();
37
42
  }
38
- generateArray(n) {
43
+ generateArray(prefix, n) {
39
44
  let arr = [];
40
45
  for (let i = 0; i < n - 1; i++) {
41
46
  arr[i] = {
42
47
  value: i,
43
- label: `Number ${i}`,
48
+ label: `${prefix} Number ${i}`,
44
49
  color: '#' + (((1 << 24) * Math.random()) | 0).toString(16)
45
50
  };
46
51
  }
@@ -49,9 +54,7 @@ export default class Demo1 extends Component {
49
54
 
50
55
  @action
51
56
  onChange(selected) {
52
- this.remainingOptions = this.options.filter(
53
- (opt) => !selected.includes(opt)
54
- );
57
+ this.groupedOptions = this.options.filter((opt) => !selected.includes(opt));
55
58
  this.selected = selected;
56
59
  }
57
60
 
@@ -0,0 +1,151 @@
1
+ ---
2
+ order: 5
3
+ ---
4
+
5
+ # Containers
6
+
7
+ This example demonstrates how the combo box works within containers. Because this component uses portals, it’s important that it works within other portal-using components.
8
+
9
+ ```hbs template
10
+ <EuiFormRow
11
+ @label='Combo box'
12
+ @helpText='This combo box is inside of a form row'
13
+ >
14
+ <EuiComboBox
15
+ @onChange={{this.onChange}}
16
+ @options={{this.groupedOptions}}
17
+ @onCreateOption={{this.onCreateOption}}
18
+ @selectedOptions={{this.selected}}
19
+ @searchEnabled={{true}}
20
+ @customOptionText='Do you want to add&nbsp;{searchText}&nbsp;to your list?'
21
+ @searchField='label'
22
+ as |option item|
23
+ >
24
+ {{option.label}}
25
+ </EuiComboBox>
26
+
27
+ </EuiFormRow>
28
+
29
+ <EuiFlexGroup @responsive={{false}} @direction='columm'>
30
+ <EuiFlexItem @grow={{false}}>
31
+ <EuiButton {{on 'click' (set this 'showModal' (not this.showModal))}}>
32
+ Show Modal
33
+ </EuiButton>
34
+ </EuiFlexItem>
35
+
36
+ <EuiFlexItem @grow={{false}}>
37
+ <EuiPopover
38
+ @ownFocus={{true}}
39
+ @isOpen={{this.showPopover}}
40
+ @anchorPosition='downLeft'
41
+ @closePopover={{set this 'showPopover' false}}
42
+ >
43
+ <:button>
44
+ <EuiButton
45
+ @iconType='arrowDown'
46
+ @iconSide='right'
47
+ {{on 'click' (set this 'showPopover' true)}}
48
+ >
49
+ Open popover
50
+ </EuiButton>
51
+ </:button>
52
+ <:content>
53
+ <div style='width:300px;'>
54
+ <EuiComboBox
55
+ @onChange={{this.onChange}}
56
+ @options={{this.groupedOptions}}
57
+ @onCreateOption={{this.onCreateOption}}
58
+ @selectedOptions={{this.selected}}
59
+ @searchEnabled={{true}}
60
+ @customOptionText='Do you want to add&nbsp;{searchText}&nbsp;to your list?'
61
+ @searchField='label'
62
+ as |option item|
63
+ >
64
+ {{option.label}}
65
+ </EuiComboBox>
66
+ </div>
67
+ </:content>
68
+ </EuiPopover>
69
+ </EuiFlexItem>
70
+ </EuiFlexGroup>
71
+
72
+ {{#if this.showModal}}
73
+ <EuiModal @onClose={{set this 'showModal' false}}>
74
+ <EuiModalHeader>
75
+ <EuiModalHeaderTitle>
76
+ <h1>Combo box in a modal</h1>
77
+ </EuiModalHeaderTitle>
78
+ </EuiModalHeader>
79
+ <EuiModalBody>
80
+ <EuiComboBox
81
+ @onChange={{this.onChange}}
82
+ @options={{this.groupedOptions}}
83
+ @onCreateOption={{this.onCreateOption}}
84
+ @selectedOptions={{this.selected}}
85
+ @searchEnabled={{true}}
86
+ @customOptionText='Do you want to add&nbsp;{searchText}&nbsp;to your list?'
87
+ @searchField='label'
88
+ as |option item|
89
+ >
90
+ {{option.label}}
91
+ </EuiComboBox>
92
+ </EuiModalBody>
93
+ </EuiModal>
94
+ {{/if}}
95
+ ```
96
+
97
+ ```javascript component
98
+ import Component from '@glimmer/component';
99
+ import { tracked } from '@glimmer/tracking';
100
+ import { action } from '@ember/object';
101
+
102
+ export default class extends Component {
103
+ @tracked selected = [];
104
+ @tracked options = [];
105
+ @tracked groupedOptions = [];
106
+ @tracked showModal = false;
107
+ @tracked showPopover = false;
108
+
109
+ constructor() {
110
+ super(...arguments);
111
+ this.options = [
112
+ { value: 'No group option', label: 'No group option', color: 'red' },
113
+ { groupName: 'Group 1', options: this.generateArray('group1', 3) },
114
+ { groupName: 'Group 2', options: this.generateArray('group2', 5) }
115
+ ];
116
+ this.groupedOptions = this.options.slice();
117
+ }
118
+ generateArray(prefix, n) {
119
+ let arr = [];
120
+ for (let i = 0; i < n - 1; i++) {
121
+ arr[i] = {
122
+ value: i,
123
+ label: `${prefix} Number ${i}`,
124
+ color: '#' + (((1 << 24) * Math.random()) | 0).toString(16)
125
+ };
126
+ }
127
+ return arr;
128
+ }
129
+
130
+ @action
131
+ onChange(selected) {
132
+ this.groupedOptions = this.options.filter((opt) => !selected.includes(opt));
133
+ this.selected = selected;
134
+ }
135
+
136
+ @action
137
+ onCreateOption(newOption) {
138
+ const newOptionStructure = {
139
+ value: `${newOption}`,
140
+ label: `${newOption}`
141
+ };
142
+ if (
143
+ this.options.filter((opt) => opt.value == newOptionStructure.value)
144
+ .length == 0
145
+ ) {
146
+ this.options.addObject(newOptionStructure);
147
+ this.selected.addObject(newOptionStructure);
148
+ }
149
+ }
150
+ }
151
+ ```
@@ -0,0 +1,14 @@
1
+ ---
2
+ order: 1
3
+ title: Combo box
4
+ ---
5
+
6
+ <EuiPageHeader>
7
+ <EuiPageHeaderSection>
8
+ <EuiTitle @size="l">
9
+ <h1>
10
+ Combo box
11
+ </h1>
12
+ </EuiTitle>
13
+ </EuiPageHeaderSection>
14
+ </EuiPageHeader>
@@ -0,0 +1,29 @@
1
+ ---
2
+ order: 1
3
+ ---
4
+
5
+ # Basic file picker
6
+
7
+ ```hbs template
8
+ <EuiFilePicker @onChange={{set this 'files'}} />
9
+
10
+ {{#if (gt this.files.length 0)}}
11
+ <EuiSpacer />
12
+ <EuiTitle>FilesAttached:</EuiTitle>
13
+ <EuiSpacer @size='xs' />
14
+ <ul>
15
+ {{#each this.files as |file|}}
16
+ <li>{{file.name}}</li>
17
+ {{/each}}
18
+ </ul>
19
+ {{/if}}
20
+ ```
21
+
22
+ ```javascript component
23
+ import Component from '@glimmer/component';
24
+ import { tracked } from '@glimmer/tracking';
25
+
26
+ export default class extends Component {
27
+ @tracked files = [];
28
+ }
29
+ ```