q2-tecton-elements 1.17.1 → 1.19.0

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 (262) hide show
  1. package/dist/cjs/click-elsewhere.cjs.entry.js +1 -1
  2. package/dist/cjs/{icons-e2bc9ee9.js → icons-afbdf88a.js} +1 -1
  3. package/dist/cjs/{index-afc50fbb.js → index-3518c78c.js} +9 -1
  4. package/dist/cjs/{index-0128397d.js → index-734296a7.js} +476 -271
  5. package/dist/cjs/loader.cjs.js +3 -3
  6. package/dist/cjs/q2-avatar.cjs.entry.js +9 -6
  7. package/dist/cjs/q2-badge_2.cjs.entry.js +46 -7
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +31 -5
  9. package/dist/cjs/q2-calendar.cjs.entry.js +89 -62
  10. package/dist/cjs/q2-card.cjs.entry.js +17 -6
  11. package/dist/cjs/q2-carousel-pane.cjs.entry.js +7 -3
  12. package/dist/cjs/q2-carousel.cjs.entry.js +196 -285
  13. package/dist/cjs/q2-chart-donut.cjs.entry.js +583 -504
  14. package/dist/cjs/q2-checkbox-group.cjs.entry.js +9 -7
  15. package/dist/cjs/q2-checkbox.cjs.entry.js +17 -4
  16. package/dist/cjs/q2-dropdown-item.cjs.entry.js +9 -3
  17. package/dist/cjs/q2-dropdown.cjs.entry.js +16 -5
  18. package/dist/cjs/q2-editable-field.cjs.entry.js +16 -6
  19. package/dist/cjs/q2-icon.cjs.entry.js +6 -4
  20. package/dist/cjs/q2-loading-element.cjs.entry.js +6 -2
  21. package/dist/cjs/q2-loc.cjs.entry.js +5 -3
  22. package/dist/cjs/q2-message.cjs.entry.js +4 -3
  23. package/dist/cjs/q2-month-picker.cjs.entry.js +149 -0
  24. package/dist/cjs/q2-optgroup.cjs.entry.js +6 -5
  25. package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +120 -23
  26. package/dist/cjs/q2-option.cjs.entry.js +12 -2
  27. package/dist/cjs/q2-pagination.cjs.entry.js +18 -4
  28. package/dist/cjs/q2-pill.cjs.entry.js +40 -20
  29. package/dist/cjs/q2-radio-group.cjs.entry.js +13 -6
  30. package/dist/cjs/q2-radio.cjs.entry.js +13 -8
  31. package/dist/cjs/q2-section.cjs.entry.js +9 -4
  32. package/dist/cjs/q2-select.cjs.entry.js +28 -21
  33. package/dist/cjs/q2-stepper-pane.cjs.entry.js +8 -3
  34. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +5 -4
  35. package/dist/cjs/q2-stepper.cjs.entry.js +9 -7
  36. package/dist/cjs/q2-tab-container.cjs.entry.js +14 -9
  37. package/dist/cjs/q2-tab-pane.cjs.entry.js +10 -2
  38. package/dist/cjs/q2-tag.cjs.entry.js +32 -17
  39. package/dist/cjs/q2-tecton-elements.cjs.js +3 -3
  40. package/dist/cjs/q2-textarea.cjs.entry.js +20 -4
  41. package/dist/cjs/q2-tooltip.cjs.entry.js +70 -14
  42. package/dist/cjs/{shapes-c1a60d46.js → shapes-aad2b98f.js} +1 -1
  43. package/dist/cjs/tecton-tab-pane.cjs.entry.js +17 -2
  44. package/dist/collection/collection-manifest.json +4 -2
  45. package/dist/collection/components/click-elsewhere/index.js +18 -17
  46. package/dist/collection/components/q2-avatar/index.js +100 -92
  47. package/dist/collection/components/q2-avatar/styles.css +1 -1
  48. package/dist/collection/components/q2-badge/index.js +119 -111
  49. package/dist/collection/components/q2-badge/styles.css +1 -1
  50. package/dist/collection/components/q2-btn/index.js +351 -306
  51. package/dist/collection/components/q2-btn/styles.css +8 -7
  52. package/dist/collection/components/q2-calendar/index.js +565 -551
  53. package/dist/collection/components/q2-calendar/q2-month-picker.css +130 -0
  54. package/dist/collection/components/q2-calendar/q2-month-picker.js +242 -0
  55. package/dist/collection/components/q2-calendar/styles.css +1 -1
  56. package/dist/collection/components/q2-card/index.js +262 -244
  57. package/dist/collection/components/q2-card/styles.css +9 -2
  58. package/dist/collection/components/q2-carousel/index.js +249 -253
  59. package/dist/collection/components/q2-carousel/styles.css +1 -1
  60. package/dist/collection/components/q2-carousel-pane/index.js +108 -96
  61. package/dist/collection/components/q2-carousel-pane/styles.css +5 -4
  62. package/dist/collection/components/q2-chart-donut/index.js +350 -334
  63. package/dist/collection/components/q2-chart-donut/styles.css +3 -3
  64. package/dist/collection/components/q2-checkbox/index.js +296 -287
  65. package/dist/collection/components/q2-checkbox/styles.css +2 -2
  66. package/dist/collection/components/q2-checkbox-group/index.js +156 -152
  67. package/dist/collection/components/q2-checkbox-group/styles.css +1 -1
  68. package/dist/collection/components/q2-dropdown/index.js +255 -240
  69. package/dist/collection/components/q2-dropdown/styles.css +1 -1
  70. package/dist/collection/components/q2-dropdown-item/index.js +134 -123
  71. package/dist/collection/components/q2-dropdown-item/styles.css +12 -10
  72. package/dist/collection/components/q2-editable-field/index.js +300 -293
  73. package/dist/collection/components/q2-editable-field/styles.css +1 -1
  74. package/dist/collection/components/q2-icon/icons.js +358 -2158
  75. package/dist/collection/components/q2-icon/index.js +59 -49
  76. package/dist/collection/components/q2-icon/styles.css +1 -1
  77. package/dist/collection/components/q2-input/index.js +729 -705
  78. package/dist/collection/components/q2-input/styles.css +2 -2
  79. package/dist/collection/components/q2-loading/index.js +143 -132
  80. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js +85 -74
  81. package/dist/collection/components/q2-loading/skeleton/shapes.js +23 -36
  82. package/dist/collection/components/q2-loading/styles.css +1 -1
  83. package/dist/collection/components/q2-loc/index.js +49 -39
  84. package/dist/collection/components/q2-loc/styles.css +1 -1
  85. package/dist/collection/components/q2-message/index.js +101 -92
  86. package/dist/collection/components/q2-message/styles.css +1 -1
  87. package/dist/collection/components/q2-optgroup/index.js +64 -56
  88. package/dist/collection/components/q2-optgroup/styles.css +1 -1
  89. package/dist/collection/components/q2-option/index.js +244 -229
  90. package/dist/collection/components/q2-option/styles.css +5 -1
  91. package/dist/collection/components/q2-option-list/index.js +295 -319
  92. package/dist/collection/components/q2-option-list/styles.css +2 -50
  93. package/dist/collection/components/q2-pagination/index.js +183 -173
  94. package/dist/collection/components/q2-pagination/styles.css +1 -1
  95. package/dist/collection/components/q2-pill/index.js +276 -221
  96. package/dist/collection/components/q2-pill/styles.css +12 -7
  97. package/dist/collection/components/q2-popover/index.js +263 -0
  98. package/dist/collection/components/q2-popover/styles.css +205 -0
  99. package/dist/collection/components/q2-radio/index.js +233 -224
  100. package/dist/collection/components/q2-radio/styles.css +3 -3
  101. package/dist/collection/components/q2-radio-group/index.js +252 -244
  102. package/dist/collection/components/q2-radio-group/styles.css +1 -1
  103. package/dist/collection/components/q2-section/index.js +134 -125
  104. package/dist/collection/components/q2-section/styles.css +12 -1
  105. package/dist/collection/components/q2-select/index.js +395 -385
  106. package/dist/collection/components/q2-select/styles.css +1 -1
  107. package/dist/collection/components/q2-stepper/index.js +124 -126
  108. package/dist/collection/components/q2-stepper/styles.css +2 -1
  109. package/dist/collection/components/q2-stepper-pane/index.js +165 -149
  110. package/dist/collection/components/q2-stepper-pane/styles.css +1 -1
  111. package/dist/collection/components/q2-stepper-vertical/index.js +86 -85
  112. package/dist/collection/components/q2-stepper-vertical/styles.css +1 -1
  113. package/dist/collection/components/q2-tab-container/index.js +189 -184
  114. package/dist/collection/components/q2-tab-container/styles.css +1 -1
  115. package/dist/collection/components/q2-tab-pane/index.js +185 -166
  116. package/dist/collection/components/q2-tab-pane/styles.css +1 -1
  117. package/dist/collection/components/q2-tag/index.js +180 -125
  118. package/dist/collection/components/q2-tag/styles.css +2 -6
  119. package/dist/collection/components/q2-textarea/index.js +344 -327
  120. package/dist/collection/components/q2-textarea/styles.css +2 -2
  121. package/dist/collection/components/q2-tooltip/index.js +207 -104
  122. package/dist/collection/components/q2-tooltip/styles.css +63 -83
  123. package/dist/collection/components/tecton-tab-pane/index.js +287 -266
  124. package/dist/collection/components/tecton-tab-pane/styles.css +1 -1
  125. package/dist/collection/utils/index.js +9 -6
  126. package/dist/esm/click-elsewhere.entry.js +1 -1
  127. package/dist/esm/{icons-ed54e307.js → icons-78da5dd2.js} +1 -1
  128. package/dist/esm/{index-2ca8c93c.js → index-9c591682.js} +9 -2
  129. package/dist/esm/{index-6d5ed7cc.js → index-bb1c8c7f.js} +476 -271
  130. package/dist/esm/loader.js +3 -3
  131. package/dist/esm/polyfills/css-shim.js +1 -1
  132. package/dist/esm/q2-avatar.entry.js +9 -6
  133. package/dist/esm/q2-badge_2.entry.js +46 -7
  134. package/dist/esm/q2-btn_2.entry.js +31 -5
  135. package/dist/esm/q2-calendar.entry.js +89 -62
  136. package/dist/esm/q2-card.entry.js +17 -6
  137. package/dist/esm/q2-carousel-pane.entry.js +7 -3
  138. package/dist/esm/q2-carousel.entry.js +196 -285
  139. package/dist/esm/q2-chart-donut.entry.js +583 -504
  140. package/dist/esm/q2-checkbox-group.entry.js +9 -7
  141. package/dist/esm/q2-checkbox.entry.js +17 -4
  142. package/dist/esm/q2-dropdown-item.entry.js +9 -3
  143. package/dist/esm/q2-dropdown.entry.js +16 -5
  144. package/dist/esm/q2-editable-field.entry.js +16 -6
  145. package/dist/esm/q2-icon.entry.js +6 -4
  146. package/dist/esm/q2-loading-element.entry.js +6 -2
  147. package/dist/esm/q2-loc.entry.js +5 -3
  148. package/dist/esm/q2-message.entry.js +4 -3
  149. package/dist/esm/q2-month-picker.entry.js +145 -0
  150. package/dist/esm/q2-optgroup.entry.js +6 -5
  151. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +120 -24
  152. package/dist/esm/q2-option.entry.js +12 -2
  153. package/dist/esm/q2-pagination.entry.js +18 -4
  154. package/dist/esm/q2-pill.entry.js +40 -20
  155. package/dist/esm/q2-radio-group.entry.js +13 -6
  156. package/dist/esm/q2-radio.entry.js +13 -8
  157. package/dist/esm/q2-section.entry.js +9 -4
  158. package/dist/esm/q2-select.entry.js +28 -21
  159. package/dist/esm/q2-stepper-pane.entry.js +8 -3
  160. package/dist/esm/q2-stepper-vertical.entry.js +5 -4
  161. package/dist/esm/q2-stepper.entry.js +9 -7
  162. package/dist/esm/q2-tab-container.entry.js +14 -9
  163. package/dist/esm/q2-tab-pane.entry.js +10 -2
  164. package/dist/esm/q2-tag.entry.js +32 -17
  165. package/dist/esm/q2-tecton-elements.js +3 -3
  166. package/dist/esm/q2-textarea.entry.js +20 -4
  167. package/dist/esm/q2-tooltip.entry.js +70 -14
  168. package/dist/esm/{shapes-c32e3ba2.js → shapes-62b8a431.js} +1 -1
  169. package/dist/esm/tecton-tab-pane.entry.js +17 -2
  170. package/dist/loader/package.json +1 -0
  171. package/dist/q2-tecton-elements/p-0ba564b1.entry.js +1 -0
  172. package/dist/q2-tecton-elements/p-0fad9c5a.entry.js +1 -0
  173. package/dist/q2-tecton-elements/{p-73154834.js → p-13a639cf.js} +1 -1
  174. package/dist/q2-tecton-elements/p-16c11d74.entry.js +1 -0
  175. package/dist/q2-tecton-elements/p-17e0cbf1.entry.js +1 -0
  176. package/dist/q2-tecton-elements/p-18e095af.entry.js +1 -0
  177. package/dist/q2-tecton-elements/p-2c9b1308.entry.js +1 -0
  178. package/dist/q2-tecton-elements/p-2e832e42.entry.js +1 -0
  179. package/dist/q2-tecton-elements/p-315fdb74.entry.js +1 -0
  180. package/dist/q2-tecton-elements/{p-318758d4.entry.js → p-444415b5.entry.js} +1 -1
  181. package/dist/q2-tecton-elements/p-4d700630.entry.js +1 -0
  182. package/dist/q2-tecton-elements/p-4f0f45e7.entry.js +1 -0
  183. package/dist/q2-tecton-elements/p-54e792bd.entry.js +1 -0
  184. package/dist/q2-tecton-elements/{p-41fcf343.js → p-5e374fbd.js} +1 -1
  185. package/dist/q2-tecton-elements/p-5f064e1e.entry.js +39 -0
  186. package/dist/q2-tecton-elements/p-692f2d09.entry.js +1 -0
  187. package/dist/q2-tecton-elements/p-6e6b5b80.entry.js +1 -0
  188. package/dist/q2-tecton-elements/p-7e8f43d1.entry.js +1 -0
  189. package/dist/q2-tecton-elements/p-8e380edf.entry.js +1 -0
  190. package/dist/q2-tecton-elements/p-926a3e80.js +2 -0
  191. package/dist/q2-tecton-elements/{p-93c00587.js → p-92e1faf8.js} +1 -1
  192. package/dist/q2-tecton-elements/p-9772b15f.entry.js +1 -0
  193. package/dist/q2-tecton-elements/p-97aa8423.entry.js +1 -0
  194. package/dist/q2-tecton-elements/{p-17cffd7d.entry.js → p-a987402e.entry.js} +1 -1
  195. package/dist/q2-tecton-elements/p-aaf42539.entry.js +1 -0
  196. package/dist/q2-tecton-elements/p-ac674c20.entry.js +1 -0
  197. package/dist/q2-tecton-elements/p-b8b00394.entry.js +1 -0
  198. package/dist/q2-tecton-elements/p-c444a60b.entry.js +1 -0
  199. package/dist/q2-tecton-elements/p-c6c489fe.entry.js +1 -0
  200. package/dist/q2-tecton-elements/p-ce015552.entry.js +1 -0
  201. package/dist/q2-tecton-elements/p-d464fccc.entry.js +1 -0
  202. package/dist/q2-tecton-elements/p-de164483.entry.js +1 -0
  203. package/dist/q2-tecton-elements/p-df91e954.entry.js +1 -0
  204. package/dist/q2-tecton-elements/p-e6d26f39.entry.js +1 -0
  205. package/dist/q2-tecton-elements/p-e8e113c2.entry.js +1 -0
  206. package/dist/q2-tecton-elements/p-f1d06917.entry.js +1 -0
  207. package/dist/q2-tecton-elements/p-f800fd1e.entry.js +1 -0
  208. package/dist/q2-tecton-elements/p-fb37e67e.entry.js +1 -0
  209. package/dist/q2-tecton-elements/p-fc134a5d.entry.js +1 -0
  210. package/dist/q2-tecton-elements/p-fe88e979.entry.js +1 -0
  211. package/dist/q2-tecton-elements/p-ffb48ccc.entry.js +1 -0
  212. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  213. package/dist/test/helpers.js +6 -0
  214. package/dist/types/components/q2-btn/index.d.ts +1 -0
  215. package/dist/types/components/q2-calendar/q2-month-picker.d.ts +24 -0
  216. package/dist/types/components/q2-option-list/index.d.ts +1 -4
  217. package/dist/types/components/q2-pill/index.d.ts +10 -3
  218. package/dist/types/components/q2-popover/index.d.ts +26 -0
  219. package/dist/types/components/q2-tag/index.d.ts +8 -2
  220. package/dist/types/components/q2-tooltip/index.d.ts +12 -0
  221. package/dist/types/components.d.ts +203 -38
  222. package/dist/types/stencil-public-runtime.d.ts +20 -4
  223. package/dist/types/utils/index.d.ts +1 -0
  224. package/dist/types/workspace/workspace/{tecton-production_release_1.17.x → Tecton_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +2 -0
  225. package/package.json +6 -6
  226. package/dist/q2-tecton-elements/p-06865cf5.entry.js +0 -1
  227. package/dist/q2-tecton-elements/p-0d849ed4.entry.js +0 -1
  228. package/dist/q2-tecton-elements/p-2a217895.entry.js +0 -1
  229. package/dist/q2-tecton-elements/p-2b94ae62.entry.js +0 -1
  230. package/dist/q2-tecton-elements/p-2faed36b.entry.js +0 -1
  231. package/dist/q2-tecton-elements/p-30a4fdfb.entry.js +0 -1
  232. package/dist/q2-tecton-elements/p-30f81b22.entry.js +0 -1
  233. package/dist/q2-tecton-elements/p-31070ab8.entry.js +0 -1
  234. package/dist/q2-tecton-elements/p-41c22a16.entry.js +0 -1
  235. package/dist/q2-tecton-elements/p-445e7c45.entry.js +0 -1
  236. package/dist/q2-tecton-elements/p-44bdaf52.entry.js +0 -1
  237. package/dist/q2-tecton-elements/p-4c53713d.entry.js +0 -1
  238. package/dist/q2-tecton-elements/p-4da9b6b6.entry.js +0 -1
  239. package/dist/q2-tecton-elements/p-5acb7ec6.entry.js +0 -1
  240. package/dist/q2-tecton-elements/p-64605d17.entry.js +0 -1
  241. package/dist/q2-tecton-elements/p-64ca8c59.entry.js +0 -1
  242. package/dist/q2-tecton-elements/p-654fcd6b.entry.js +0 -1
  243. package/dist/q2-tecton-elements/p-661c2092.entry.js +0 -1
  244. package/dist/q2-tecton-elements/p-732dafd0.entry.js +0 -1
  245. package/dist/q2-tecton-elements/p-815c8a7d.entry.js +0 -1
  246. package/dist/q2-tecton-elements/p-824a1d7c.entry.js +0 -1
  247. package/dist/q2-tecton-elements/p-8543a0e1.entry.js +0 -1
  248. package/dist/q2-tecton-elements/p-916fd90b.entry.js +0 -1
  249. package/dist/q2-tecton-elements/p-94b3c534.entry.js +0 -1
  250. package/dist/q2-tecton-elements/p-9725d55f.entry.js +0 -1
  251. package/dist/q2-tecton-elements/p-a45c6b65.entry.js +0 -1
  252. package/dist/q2-tecton-elements/p-a659d112.entry.js +0 -1
  253. package/dist/q2-tecton-elements/p-b4b8f85c.entry.js +0 -39
  254. package/dist/q2-tecton-elements/p-b595b415.entry.js +0 -1
  255. package/dist/q2-tecton-elements/p-c5691700.js +0 -1
  256. package/dist/q2-tecton-elements/p-cde0cdff.entry.js +0 -1
  257. package/dist/q2-tecton-elements/p-d3e4cc5d.entry.js +0 -1
  258. package/dist/q2-tecton-elements/p-d781e2d9.entry.js +0 -1
  259. package/dist/q2-tecton-elements/p-d8d9e8eb.entry.js +0 -1
  260. package/dist/q2-tecton-elements/p-fbf23146.entry.js +0 -1
  261. package/dist/test/elements/q2-tag-test.js +0 -151
  262. package/dist/types/workspace/workspace/tecton-production_release_1.17.x/packages/q2-tecton-elements/.stencil/test/elements/q2-tag-test.d.ts +0 -1
@@ -1,8 +1,8 @@
1
- import { Component, State, Prop, h, Listen, Element, Fragment, Event, } from '@stencil/core';
1
+ import { h } from '@stencil/core';
2
2
  import { isEventFromElement, loc, overrideFocus } from 'src/utils';
3
3
  export class Q2Tag {
4
4
  constructor() {
5
- this.role = 'listitem';
5
+ this.activateFirstOption = false;
6
6
  /// Getters ///
7
7
  /// Helpers
8
8
  this.determineHasOptions = () => {
@@ -10,6 +10,13 @@ export class Q2Tag {
10
10
  this.hasOptions = hasOptions;
11
11
  };
12
12
  /// Event Handlers ///
13
+ this.onClickElsewhere = (event) => {
14
+ const target = event.target;
15
+ if (target.localName === 'click-elsewhere') {
16
+ event.stopPropagation();
17
+ this.popoverElement.open = false;
18
+ }
19
+ };
13
20
  this.handleChange = event => {
14
21
  event.stopPropagation();
15
22
  if (!this.hasOptions)
@@ -19,9 +26,11 @@ export class Q2Tag {
19
26
  };
20
27
  this.handleClick = (event) => {
21
28
  event.stopPropagation();
22
- this.optionList.toggle();
29
+ this.activateFirstOption = false;
30
+ this.popoverElement.toggle();
23
31
  };
24
32
  this.handleKeydown = (event) => {
33
+ this.activateFirstOption = true;
25
34
  this.optionList.handleExternalKeydown(event);
26
35
  };
27
36
  this.handleButtonFocusout = (event) => {
@@ -31,18 +40,17 @@ export class Q2Tag {
31
40
  return;
32
41
  this.open = false;
33
42
  };
34
- this.handleOptionListFocusout = (event) => {
35
- const relatedTarget = event.relatedTarget;
36
- if (relatedTarget && !(event.relatedTarget instanceof HTMLElement))
37
- return;
38
- if (relatedTarget && relatedTarget.closest('.btn-wrapper'))
39
- return;
40
- this.open = false;
41
- };
42
43
  this.handleWrapperClick = () => {
43
44
  this.dropdownBtn.focus();
44
45
  this.dropdownBtn.click();
45
46
  };
47
+ this.open = undefined;
48
+ this.role = 'listitem';
49
+ this.label = undefined;
50
+ this.theme = undefined;
51
+ this.popoverMinHeight = 150;
52
+ this.popoverDirection = undefined;
53
+ this.hasOptions = undefined;
46
54
  }
47
55
  /// LifeCycle Hooks ///
48
56
  componentWillLoad() {
@@ -65,10 +73,17 @@ export class Q2Tag {
65
73
  return;
66
74
  this.dropdownBtn.focus();
67
75
  }
68
- optionListStateEvent({ detail: { open } }) {
69
- this.open = open;
70
- if (!open)
76
+ popoverStateHandler({ detail: { open } }) {
77
+ if (this.open !== open)
78
+ this.open = open;
79
+ if (open && this.activateFirstOption) {
80
+ this.optionList.focus();
81
+ this.activateFirstOption = false;
82
+ }
83
+ else {
84
+ this.optionList.setActiveElement(null);
71
85
  this.dropdownBtn.focus();
86
+ }
72
87
  }
73
88
  /// DOM ///
74
89
  render() {
@@ -76,125 +91,165 @@ export class Q2Tag {
76
91
  const wrapperClassNames = ['tag-wrapper'];
77
92
  if (hasOptions)
78
93
  wrapperClassNames.push('has-options');
79
- return (h(Fragment, null,
80
- h("div", { class: wrapperClassNames.join(' '), onClick: e => e.stopPropagation() },
81
- h("div", { class: "tag" }, this.label),
82
- this.hasOptions && (h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick },
83
- h("button", { ref: el => (this.dropdownBtn = el), "test-id": "btn-control", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-haspopup": "true", "aria-expanded": open ? 'true' : 'false', "aria-label": loc('tecton.element.tag.viewOptions') },
84
- h("q2-icon", { type: "options" }))))),
85
- this.hasOptions && (h("q2-option-list", { id: "option-list", ref: el => (this.optionList = el), open: this.open, onChange: this.handleChange, onFocusout: this.handleOptionListFocusout, align: "right", type: "menu", "no-select": true },
86
- h("slot", null)))));
94
+ return (h("click-elsewhere", { onChange: this.onClickElsewhere }, h("div", { class: wrapperClassNames.join(' '), onClick: e => e.stopPropagation() }, h("div", { class: "tag" }, this.label), this.hasOptions && (h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { ref: el => (this.dropdownBtn = el), "test-id": "btn-control", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-haspopup": "true", "aria-expanded": open ? 'true' : 'false', "aria-label": loc('tecton.element.tag.viewOptions') }, h("q2-icon", { type: "options" }))))), this.hasOptions && (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, minHeight: this.popoverMinHeight, direction: this.popoverDirection }, h("q2-option-list", { id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, align: "right", type: "menu", "no-select": true }, h("slot", null))))));
87
95
  }
88
96
  static get is() { return "q2-tag"; }
89
97
  static get encapsulation() { return "shadow"; }
90
- static get originalStyleUrls() { return {
91
- "$": ["styles.scss"]
92
- }; }
93
- static get styleUrls() { return {
94
- "$": ["styles.css"]
95
- }; }
96
- static get properties() { return {
97
- "open": {
98
- "type": "boolean",
99
- "mutable": true,
100
- "complexType": {
101
- "original": "boolean",
102
- "resolved": "boolean",
103
- "references": {}
104
- },
105
- "required": false,
106
- "optional": false,
107
- "docs": {
108
- "tags": [],
109
- "text": ""
110
- },
111
- "attribute": "open",
112
- "reflect": true
113
- },
114
- "role": {
115
- "type": "string",
116
- "mutable": false,
117
- "complexType": {
118
- "original": "string",
119
- "resolved": "string",
120
- "references": {}
121
- },
122
- "required": false,
123
- "optional": false,
124
- "docs": {
125
- "tags": [],
126
- "text": ""
127
- },
128
- "attribute": "role",
129
- "reflect": true,
130
- "defaultValue": "'listitem'"
131
- },
132
- "label": {
133
- "type": "string",
134
- "mutable": false,
135
- "complexType": {
136
- "original": "string",
137
- "resolved": "string",
138
- "references": {}
98
+ static get originalStyleUrls() {
99
+ return {
100
+ "$": ["styles.scss"]
101
+ };
102
+ }
103
+ static get styleUrls() {
104
+ return {
105
+ "$": ["styles.css"]
106
+ };
107
+ }
108
+ static get properties() {
109
+ return {
110
+ "open": {
111
+ "type": "boolean",
112
+ "mutable": true,
113
+ "complexType": {
114
+ "original": "boolean",
115
+ "resolved": "boolean",
116
+ "references": {}
117
+ },
118
+ "required": false,
119
+ "optional": false,
120
+ "docs": {
121
+ "tags": [],
122
+ "text": ""
123
+ },
124
+ "attribute": "open",
125
+ "reflect": true
139
126
  },
140
- "required": false,
141
- "optional": false,
142
- "docs": {
143
- "tags": [],
144
- "text": ""
127
+ "role": {
128
+ "type": "string",
129
+ "mutable": false,
130
+ "complexType": {
131
+ "original": "string",
132
+ "resolved": "string",
133
+ "references": {}
134
+ },
135
+ "required": false,
136
+ "optional": false,
137
+ "docs": {
138
+ "tags": [],
139
+ "text": ""
140
+ },
141
+ "attribute": "role",
142
+ "reflect": true,
143
+ "defaultValue": "'listitem'"
145
144
  },
146
- "attribute": "label",
147
- "reflect": true
148
- },
149
- "theme": {
150
- "type": "string",
151
- "mutable": false,
152
- "complexType": {
153
- "original": "'primary' | 'secondary' | 'tertiary'",
154
- "resolved": "\"primary\" | \"secondary\" | \"tertiary\"",
155
- "references": {}
145
+ "label": {
146
+ "type": "string",
147
+ "mutable": false,
148
+ "complexType": {
149
+ "original": "string",
150
+ "resolved": "string",
151
+ "references": {}
152
+ },
153
+ "required": false,
154
+ "optional": false,
155
+ "docs": {
156
+ "tags": [],
157
+ "text": ""
158
+ },
159
+ "attribute": "label",
160
+ "reflect": true
156
161
  },
157
- "required": false,
158
- "optional": false,
159
- "docs": {
160
- "tags": [],
161
- "text": ""
162
+ "theme": {
163
+ "type": "string",
164
+ "mutable": false,
165
+ "complexType": {
166
+ "original": "'primary' | 'secondary' | 'tertiary'",
167
+ "resolved": "\"primary\" | \"secondary\" | \"tertiary\"",
168
+ "references": {}
169
+ },
170
+ "required": false,
171
+ "optional": false,
172
+ "docs": {
173
+ "tags": [],
174
+ "text": ""
175
+ },
176
+ "attribute": "theme",
177
+ "reflect": true
162
178
  },
163
- "attribute": "theme",
164
- "reflect": true
165
- }
166
- }; }
167
- static get states() { return {
168
- "hasOptions": {}
169
- }; }
170
- static get events() { return [{
171
- "method": "click",
172
- "name": "click",
173
- "bubbles": true,
174
- "cancelable": true,
175
- "composed": true,
176
- "docs": {
177
- "tags": [],
178
- "text": ""
179
+ "popoverMinHeight": {
180
+ "type": "number",
181
+ "mutable": false,
182
+ "complexType": {
183
+ "original": "number",
184
+ "resolved": "number",
185
+ "references": {}
186
+ },
187
+ "required": false,
188
+ "optional": false,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": ""
192
+ },
193
+ "attribute": "popover-min-height",
194
+ "reflect": false,
195
+ "defaultValue": "150"
179
196
  },
180
- "complexType": {
181
- "original": "{ value: string }",
182
- "resolved": "{ value: string; }",
183
- "references": {}
197
+ "popoverDirection": {
198
+ "type": "string",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "'up' | 'down'",
202
+ "resolved": "\"down\" | \"up\"",
203
+ "references": {}
204
+ },
205
+ "required": false,
206
+ "optional": false,
207
+ "docs": {
208
+ "tags": [],
209
+ "text": ""
210
+ },
211
+ "attribute": "popover-direction",
212
+ "reflect": false
184
213
  }
185
- }]; }
214
+ };
215
+ }
216
+ static get states() {
217
+ return {
218
+ "hasOptions": {}
219
+ };
220
+ }
221
+ static get events() {
222
+ return [{
223
+ "method": "click",
224
+ "name": "click",
225
+ "bubbles": true,
226
+ "cancelable": true,
227
+ "composed": true,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": ""
231
+ },
232
+ "complexType": {
233
+ "original": "{ value: string }",
234
+ "resolved": "{ value: string; }",
235
+ "references": {}
236
+ }
237
+ }];
238
+ }
186
239
  static get elementRef() { return "hostElement"; }
187
- static get listeners() { return [{
188
- "name": "focus",
189
- "method": "delegateFocus",
190
- "target": undefined,
191
- "capture": false,
192
- "passive": false
193
- }, {
194
- "name": "optionListState",
195
- "method": "optionListStateEvent",
196
- "target": undefined,
197
- "capture": false,
198
- "passive": false
199
- }]; }
240
+ static get listeners() {
241
+ return [{
242
+ "name": "focus",
243
+ "method": "delegateFocus",
244
+ "target": undefined,
245
+ "capture": false,
246
+ "passive": false
247
+ }, {
248
+ "name": "popoverStateChanged",
249
+ "method": "popoverStateHandler",
250
+ "target": undefined,
251
+ "capture": false,
252
+ "passive": false
253
+ }];
254
+ }
200
255
  }
@@ -8,7 +8,7 @@
8
8
 
9
9
  *:focus {
10
10
  outline: none;
11
- box-shadow: var(--const-global-focus, 0 0 0 2px #33b4ff);
11
+ box-shadow: var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C);
12
12
  }
13
13
 
14
14
  :host {
@@ -68,6 +68,7 @@ button {
68
68
  :host {
69
69
  display: inline-block;
70
70
  position: relative;
71
+ line-height: 0;
71
72
  }
72
73
 
73
74
  :host(:not(:last-child)) {
@@ -132,9 +133,4 @@ button {
132
133
  justify-content: center;
133
134
  padding: 0;
134
135
  --tct-icon-size: 18px;
135
- }
136
-
137
- q2-option-list {
138
- position: absolute;
139
- right: 0;
140
136
  }