q2-tecton-elements 1.44.1 → 1.45.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 (479) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +2 -2
  2. package/dist/cjs/{index-1deac3ee.js → index-0e15dc8d.js} +14 -1
  3. package/dist/cjs/index-0e15dc8d.js.map +1 -0
  4. package/dist/cjs/{index-9272f57a.js → index-c385e32f.js} +1 -1
  5. package/dist/cjs/{index-9272f57a.js.map → index-c385e32f.js.map} +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -5
  9. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-badge.cjs.entry.js +4 -4
  11. package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-btn_2.cjs.entry.js +20 -9
  13. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-calendar.cjs.entry.js +51 -20
  15. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-carousel-pane.cjs.entry.js +7 -6
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +25 -11
  20. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js +18 -10
  24. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +3 -3
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-detail.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-icon.cjs.entry.js +203 -212
  36. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  37. package/dist/cjs/q2-input.cjs.entry.js +31 -6
  38. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  39. package/dist/cjs/q2-item.cjs.entry.js +120 -0
  40. package/dist/cjs/q2-item.cjs.entry.js.map +1 -0
  41. package/dist/cjs/q2-list.cjs.entry.js +84 -0
  42. package/dist/cjs/q2-list.cjs.entry.js.map +1 -0
  43. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  44. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  46. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-optgroup_2.cjs.entry.js +4 -4
  48. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  51. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  52. package/dist/cjs/q2-pill.cjs.entry.js +4 -3
  53. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  56. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  57. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  58. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +3 -3
  62. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
  65. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  67. package/dist/cjs/q2-tag.cjs.entry.js +3 -3
  68. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  70. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  71. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  72. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  73. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  74. package/dist/collection/collection-manifest.json +2 -0
  75. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -5
  76. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  77. package/dist/collection/components/q2-badge/q2-badge.js +5 -4
  78. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  79. package/dist/collection/components/q2-btn/q2-btn.css +1 -1
  80. package/dist/collection/components/q2-btn/q2-btn.js +25 -8
  81. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  82. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js +1 -1
  83. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  84. package/dist/collection/components/q2-calendar/q2-calendar.js +48 -17
  85. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  86. package/dist/collection/components/q2-carousel/q2-carousel.css +3 -1
  87. package/dist/collection/components/q2-carousel/q2-carousel.js +47 -10
  88. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  89. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +6 -0
  90. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +25 -4
  91. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  92. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +17 -12
  93. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  94. package/dist/collection/components/q2-data-table/q2-data-table.css +1 -1
  95. package/dist/collection/components/q2-data-table/q2-data-table.js +8 -8
  96. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  97. package/dist/collection/components/q2-detail/q2-detail.css +24 -21
  98. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
  99. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  100. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  101. package/dist/collection/components/q2-icon/assets/icon-list.json +1 -1
  102. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  103. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  104. package/dist/collection/components/q2-icon/q2-icon.js +4 -36
  105. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  106. package/dist/collection/components/q2-input/q2-input.css +3 -5
  107. package/dist/collection/components/q2-input/q2-input.js +31 -6
  108. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  109. package/dist/collection/components/q2-item/q2-item.css +261 -0
  110. package/dist/collection/components/q2-item/q2-item.js +145 -0
  111. package/dist/collection/components/q2-item/q2-item.js.map +1 -0
  112. package/dist/collection/components/q2-list/q2-list.css +173 -0
  113. package/dist/collection/components/q2-list/q2-list.js +126 -0
  114. package/dist/collection/components/q2-list/q2-list.js.map +1 -0
  115. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  116. package/dist/collection/components/q2-message/q2-message.css +6 -3
  117. package/dist/collection/components/q2-message/q2-message.js +1 -1
  118. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  119. package/dist/collection/components/q2-option/q2-option.css +1 -1
  120. package/dist/collection/components/q2-option/q2-option.js +1 -1
  121. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  122. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  123. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  124. package/dist/collection/components/q2-pill/q2-pill.css +13 -9
  125. package/dist/collection/components/q2-pill/q2-pill.js +19 -1
  126. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  127. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  128. package/dist/collection/components/q2-radio/q2-radio.css +9 -6
  129. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  130. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  131. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  132. package/dist/collection/components/q2-section/q2-section.js +2 -2
  133. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  134. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  135. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +6 -2
  136. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  137. package/dist/collection/components/q2-tab-container/q2-tab-container.css +2 -2
  138. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  139. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  140. package/dist/collection/components/q2-tag/q2-tag.css +6 -6
  141. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  142. package/dist/collection/components/q2-textarea/q2-textarea.css +4 -24
  143. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  144. package/dist/collection/utils/index.js +12 -0
  145. package/dist/collection/utils/index.js.map +1 -1
  146. package/dist/components/index.js +4 -0
  147. package/dist/components/index.js.map +1 -1
  148. package/dist/components/index2.js +13 -1
  149. package/dist/components/index2.js.map +1 -1
  150. package/dist/components/q2-avatar2.js +2 -5
  151. package/dist/components/q2-avatar2.js.map +1 -1
  152. package/dist/components/q2-badge2.js +4 -4
  153. package/dist/components/q2-badge2.js.map +1 -1
  154. package/dist/components/q2-btn2.js +21 -10
  155. package/dist/components/q2-btn2.js.map +1 -1
  156. package/dist/components/q2-calendar.js +49 -18
  157. package/dist/components/q2-calendar.js.map +1 -1
  158. package/dist/components/q2-carousel-pane.js +8 -6
  159. package/dist/components/q2-carousel-pane.js.map +1 -1
  160. package/dist/components/q2-carousel.js +26 -10
  161. package/dist/components/q2-carousel.js.map +1 -1
  162. package/dist/components/q2-chart-donut.js +19 -11
  163. package/dist/components/q2-chart-donut.js.map +1 -1
  164. package/dist/components/q2-checkbox-group.js +1 -1
  165. package/dist/components/q2-data-table.js +2 -2
  166. package/dist/components/q2-data-table.js.map +1 -1
  167. package/dist/components/q2-detail.js +2 -2
  168. package/dist/components/q2-detail.js.map +1 -1
  169. package/dist/components/q2-dropdown-item2.js.map +1 -1
  170. package/dist/components/q2-icon2.js +204 -3107
  171. package/dist/components/q2-icon2.js.map +1 -1
  172. package/dist/components/q2-input2.js +31 -6
  173. package/dist/components/q2-input2.js.map +1 -1
  174. package/dist/components/q2-item.d.ts +11 -0
  175. package/dist/components/q2-item.js +137 -0
  176. package/dist/components/q2-item.js.map +1 -0
  177. package/dist/components/q2-list.d.ts +11 -0
  178. package/dist/components/q2-list.js +102 -0
  179. package/dist/components/q2-list.js.map +1 -0
  180. package/dist/components/q2-loc.js +1 -1
  181. package/dist/components/q2-message2.js +3 -3
  182. package/dist/components/q2-message2.js.map +1 -1
  183. package/dist/components/q2-optgroup2.js +1 -1
  184. package/dist/components/q2-option-list2.js +1 -1
  185. package/dist/components/q2-option2.js +2 -2
  186. package/dist/components/q2-option2.js.map +1 -1
  187. package/dist/components/q2-pagination.js +2 -2
  188. package/dist/components/q2-pagination.js.map +1 -1
  189. package/dist/components/q2-pill.js +4 -2
  190. package/dist/components/q2-pill.js.map +1 -1
  191. package/dist/components/q2-popover2.js +2 -2
  192. package/dist/components/q2-radio-group.js +1 -1
  193. package/dist/components/q2-radio.js +2 -2
  194. package/dist/components/q2-radio.js.map +1 -1
  195. package/dist/components/q2-relative-time.js +1 -1
  196. package/dist/components/q2-section.js +2 -2
  197. package/dist/components/q2-select.js +1 -1
  198. package/dist/components/q2-stepper-pane.js +1 -1
  199. package/dist/components/q2-stepper-vertical.js +2 -2
  200. package/dist/components/q2-stepper-vertical.js.map +1 -1
  201. package/dist/components/q2-stepper.js +1 -1
  202. package/dist/components/q2-tab-container.js +2 -2
  203. package/dist/components/q2-tab-container.js.map +1 -1
  204. package/dist/components/q2-tab-pane.js +1 -1
  205. package/dist/components/q2-tag.js +2 -2
  206. package/dist/components/q2-tag.js.map +1 -1
  207. package/dist/components/q2-textarea.js +2 -2
  208. package/dist/components/q2-textarea.js.map +1 -1
  209. package/dist/components/tecton-tab-pane.js +2 -2
  210. package/dist/esm/click-elsewhere_2.entry.js +2 -2
  211. package/dist/esm/{index-12c2a320.js → index-0a702dd6.js} +14 -2
  212. package/dist/esm/index-0a702dd6.js.map +1 -0
  213. package/dist/esm/{index-113a38d1.js → index-f0dfb099.js} +1 -1
  214. package/dist/esm/{index-113a38d1.js.map → index-f0dfb099.js.map} +1 -1
  215. package/dist/esm/loader.js +1 -1
  216. package/dist/esm/q2-action-sheet.entry.js +1 -1
  217. package/dist/esm/q2-avatar.entry.js +1 -5
  218. package/dist/esm/q2-avatar.entry.js.map +1 -1
  219. package/dist/esm/q2-badge.entry.js +4 -4
  220. package/dist/esm/q2-badge.entry.js.map +1 -1
  221. package/dist/esm/q2-btn_2.entry.js +20 -9
  222. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  223. package/dist/esm/q2-calendar.entry.js +51 -20
  224. package/dist/esm/q2-calendar.entry.js.map +1 -1
  225. package/dist/esm/q2-card.entry.js +1 -1
  226. package/dist/esm/q2-carousel-pane.entry.js +7 -6
  227. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  228. package/dist/esm/q2-carousel.entry.js +25 -11
  229. package/dist/esm/q2-carousel.entry.js.map +1 -1
  230. package/dist/esm/q2-chart-area.entry.js +1 -1
  231. package/dist/esm/q2-chart-bar.entry.js +1 -1
  232. package/dist/esm/q2-chart-donut.entry.js +18 -10
  233. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  234. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  235. package/dist/esm/q2-checkbox.entry.js +1 -1
  236. package/dist/esm/q2-data-table.entry.js +3 -3
  237. package/dist/esm/q2-data-table.entry.js.map +1 -1
  238. package/dist/esm/q2-detail.entry.js +2 -2
  239. package/dist/esm/q2-detail.entry.js.map +1 -1
  240. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  241. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  242. package/dist/esm/q2-dropdown.entry.js +1 -1
  243. package/dist/esm/q2-editable-field.entry.js +1 -1
  244. package/dist/esm/q2-icon.entry.js +203 -212
  245. package/dist/esm/q2-icon.entry.js.map +1 -1
  246. package/dist/esm/q2-input.entry.js +31 -6
  247. package/dist/esm/q2-input.entry.js.map +1 -1
  248. package/dist/esm/q2-item.entry.js +116 -0
  249. package/dist/esm/q2-item.entry.js.map +1 -0
  250. package/dist/esm/q2-list.entry.js +80 -0
  251. package/dist/esm/q2-list.entry.js.map +1 -0
  252. package/dist/esm/q2-loc.entry.js +2 -2
  253. package/dist/esm/q2-message.entry.js +3 -3
  254. package/dist/esm/q2-message.entry.js.map +1 -1
  255. package/dist/esm/q2-month-picker.entry.js +1 -1
  256. package/dist/esm/q2-optgroup_2.entry.js +4 -4
  257. package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
  258. package/dist/esm/q2-option-list.entry.js +1 -1
  259. package/dist/esm/q2-pagination.entry.js +3 -3
  260. package/dist/esm/q2-pagination.entry.js.map +1 -1
  261. package/dist/esm/q2-pill.entry.js +4 -3
  262. package/dist/esm/q2-pill.entry.js.map +1 -1
  263. package/dist/esm/q2-radio-group.entry.js +1 -1
  264. package/dist/esm/q2-radio.entry.js +3 -3
  265. package/dist/esm/q2-radio.entry.js.map +1 -1
  266. package/dist/esm/q2-relative-time.entry.js +2 -2
  267. package/dist/esm/q2-section.entry.js +3 -3
  268. package/dist/esm/q2-select.entry.js +1 -1
  269. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  270. package/dist/esm/q2-stepper-vertical.entry.js +3 -3
  271. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  272. package/dist/esm/q2-stepper.entry.js +2 -2
  273. package/dist/esm/q2-tab-container.entry.js +3 -3
  274. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  275. package/dist/esm/q2-tab-pane.entry.js +1 -1
  276. package/dist/esm/q2-tag.entry.js +3 -3
  277. package/dist/esm/q2-tag.entry.js.map +1 -1
  278. package/dist/esm/q2-tecton-elements.js +1 -1
  279. package/dist/esm/q2-textarea.entry.js +2 -2
  280. package/dist/esm/q2-textarea.entry.js.map +1 -1
  281. package/dist/esm/q2-tooltip.entry.js +1 -1
  282. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  283. package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
  284. package/dist/q2-tecton-elements/assets/icon-list.json +1 -1
  285. package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
  286. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  287. package/dist/q2-tecton-elements/p-05b015a8.entry.js +2 -0
  288. package/dist/q2-tecton-elements/p-05b015a8.entry.js.map +1 -0
  289. package/dist/q2-tecton-elements/p-0d548810.entry.js +2 -0
  290. package/dist/q2-tecton-elements/p-0d548810.entry.js.map +1 -0
  291. package/dist/q2-tecton-elements/{p-cbbc7659.entry.js → p-1c17d118.entry.js} +2 -2
  292. package/dist/q2-tecton-elements/p-1c17d118.entry.js.map +1 -0
  293. package/dist/q2-tecton-elements/{p-86cf292d.entry.js → p-2132da06.entry.js} +2 -2
  294. package/dist/q2-tecton-elements/{p-1fac9c85.entry.js → p-22661533.entry.js} +2 -2
  295. package/dist/q2-tecton-elements/p-2436c843.entry.js +2 -0
  296. package/dist/q2-tecton-elements/p-2436c843.entry.js.map +1 -0
  297. package/dist/q2-tecton-elements/{p-5ebb80b6.entry.js → p-391acc00.entry.js} +2 -2
  298. package/dist/q2-tecton-elements/{p-5ebb80b6.entry.js.map → p-391acc00.entry.js.map} +1 -1
  299. package/dist/q2-tecton-elements/p-3b1ea100.entry.js +2 -0
  300. package/dist/q2-tecton-elements/p-3b1ea100.entry.js.map +1 -0
  301. package/dist/q2-tecton-elements/{p-be430cd5.js → p-3c42c90f.js} +1 -1
  302. package/dist/q2-tecton-elements/p-42302f6f.js +2 -0
  303. package/dist/q2-tecton-elements/p-42302f6f.js.map +1 -0
  304. package/dist/q2-tecton-elements/{p-92955258.entry.js → p-4570ff06.entry.js} +2 -2
  305. package/dist/q2-tecton-elements/p-47868d6d.entry.js +2 -0
  306. package/dist/q2-tecton-elements/p-47868d6d.entry.js.map +1 -0
  307. package/dist/q2-tecton-elements/{p-c1e03092.entry.js → p-4a332c2a.entry.js} +2 -2
  308. package/dist/q2-tecton-elements/{p-0a705412.entry.js → p-4b81a121.entry.js} +2 -2
  309. package/dist/q2-tecton-elements/p-4bbe563f.entry.js +2 -0
  310. package/dist/q2-tecton-elements/p-4bbe563f.entry.js.map +1 -0
  311. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js +2 -0
  312. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js.map +1 -0
  313. package/dist/q2-tecton-elements/p-50bd4437.entry.js +2 -0
  314. package/dist/q2-tecton-elements/p-50bd4437.entry.js.map +1 -0
  315. package/dist/q2-tecton-elements/p-515d424b.entry.js +2 -0
  316. package/dist/q2-tecton-elements/{p-913a23f5.entry.js.map → p-515d424b.entry.js.map} +1 -1
  317. package/dist/q2-tecton-elements/{p-bb6e6290.entry.js → p-57bf9342.entry.js} +2 -2
  318. package/dist/q2-tecton-elements/{p-0fccdca2.entry.js → p-5dc5c4e2.entry.js} +2 -2
  319. package/dist/q2-tecton-elements/p-5dc5c4e2.entry.js.map +1 -0
  320. package/dist/q2-tecton-elements/{p-5b9ee831.entry.js → p-63192fac.entry.js} +2 -2
  321. package/dist/q2-tecton-elements/{p-281e7ce7.entry.js → p-685b821c.entry.js} +2 -2
  322. package/dist/q2-tecton-elements/{p-bd5e5864.entry.js → p-71180fcd.entry.js} +2 -2
  323. package/dist/q2-tecton-elements/{p-db615608.entry.js → p-7523305d.entry.js} +2 -2
  324. package/dist/q2-tecton-elements/{p-ca8dd86f.entry.js → p-7f663376.entry.js} +2 -2
  325. package/dist/q2-tecton-elements/{p-79cd6ab5.entry.js → p-8dc489e1.entry.js} +2 -2
  326. package/dist/q2-tecton-elements/p-a214077c.entry.js +2 -0
  327. package/dist/q2-tecton-elements/p-a214077c.entry.js.map +1 -0
  328. package/dist/q2-tecton-elements/{p-3bc27513.entry.js → p-aec64fcb.entry.js} +2 -2
  329. package/dist/q2-tecton-elements/p-aed969d4.entry.js +2 -0
  330. package/dist/q2-tecton-elements/p-aed969d4.entry.js.map +1 -0
  331. package/dist/q2-tecton-elements/p-b21ed2d9.entry.js +2 -0
  332. package/dist/q2-tecton-elements/p-b21ed2d9.entry.js.map +1 -0
  333. package/dist/q2-tecton-elements/{p-1954ab7d.entry.js → p-b3322f94.entry.js} +2 -2
  334. package/dist/q2-tecton-elements/p-b3322f94.entry.js.map +1 -0
  335. package/dist/q2-tecton-elements/{p-25eccf38.entry.js → p-b3d10d52.entry.js} +2 -2
  336. package/dist/q2-tecton-elements/{p-25eccf38.entry.js.map → p-b3d10d52.entry.js.map} +1 -1
  337. package/dist/q2-tecton-elements/{p-5b3f885f.entry.js → p-b7d5fd12.entry.js} +2 -2
  338. package/dist/q2-tecton-elements/p-b7d5fd12.entry.js.map +1 -0
  339. package/dist/q2-tecton-elements/{p-cb30f949.entry.js → p-bf125cdf.entry.js} +2 -2
  340. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js +2 -0
  341. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js.map +1 -0
  342. package/dist/q2-tecton-elements/{p-73a3c437.entry.js → p-d635e39f.entry.js} +2 -2
  343. package/dist/q2-tecton-elements/{p-a5b16c01.entry.js → p-d9e19f70.entry.js} +2 -2
  344. package/dist/q2-tecton-elements/p-d9e19f70.entry.js.map +1 -0
  345. package/dist/q2-tecton-elements/{p-a89814b8.entry.js → p-dc057a9c.entry.js} +2 -2
  346. package/dist/q2-tecton-elements/p-debd5249.entry.js +2 -0
  347. package/dist/q2-tecton-elements/p-debd5249.entry.js.map +1 -0
  348. package/dist/q2-tecton-elements/p-df297a77.entry.js +2 -0
  349. package/dist/q2-tecton-elements/p-df297a77.entry.js.map +1 -0
  350. package/dist/q2-tecton-elements/{p-6afb4d46.entry.js → p-e762526f.entry.js} +2 -2
  351. package/dist/q2-tecton-elements/{p-698f82c5.entry.js → p-f1265647.entry.js} +2 -2
  352. package/dist/q2-tecton-elements/{p-954d49de.entry.js → p-f162c670.entry.js} +2 -2
  353. package/dist/q2-tecton-elements/p-f418967b.entry.js +2 -0
  354. package/dist/q2-tecton-elements/p-f418967b.entry.js.map +1 -0
  355. package/dist/q2-tecton-elements/{p-fddebc47.entry.js → p-f4d77672.entry.js} +2 -2
  356. package/dist/q2-tecton-elements/p-fcc84527.entry.js +2 -0
  357. package/dist/q2-tecton-elements/p-fcc84527.entry.js.map +1 -0
  358. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  359. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  360. package/dist/test/elements/q2-badge-test.e2e.js +11 -3
  361. package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
  362. package/dist/test/elements/q2-btn-test.e2e.js +25 -25
  363. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  364. package/dist/test/elements/q2-calendar-test.e2e.js +3 -3
  365. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  366. package/dist/test/elements/q2-carousel-pane-test.e2e.js +16 -86
  367. package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +1 -1
  368. package/dist/test/elements/q2-carousel-pane-test.spec.js +113 -0
  369. package/dist/test/elements/q2-carousel-pane-test.spec.js.map +1 -0
  370. package/dist/test/elements/q2-carousel-test.e2e.js +27 -1
  371. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  372. package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -30
  373. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  374. package/dist/test/elements/q2-currency-test.e2e.js +7 -7
  375. package/dist/test/elements/q2-currency-test.e2e.js.map +1 -1
  376. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js +1 -1
  377. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js.map +1 -1
  378. package/dist/test/elements/q2-detail/q2-item-test.e2e.js +223 -0
  379. package/dist/test/elements/q2-detail/q2-item-test.e2e.js.map +1 -0
  380. package/dist/test/elements/q2-detail/q2-list-test.e2e.js +92 -0
  381. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +1 -0
  382. package/dist/test/elements/q2-icon-test.e2e.js +17 -95
  383. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  384. package/dist/test/elements/q2-input-test.e2e.js +140 -7
  385. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  386. package/dist/test/elements/q2-pill-test.e2e.js +23 -0
  387. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  388. package/dist/test/elements/q2-relative-time-test.e2e.js +50 -48
  389. package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
  390. package/dist/test/elements/q2-textarea-test.e2e.js +4 -8
  391. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  392. package/dist/test/helpers.js +18 -16
  393. package/dist/test/helpers.js.map +1 -1
  394. package/dist/test/utils/index.spec.js +18 -0
  395. package/dist/test/utils/index.spec.js.map +1 -0
  396. package/dist/types/components/q2-avatar/q2-avatar.d.ts +0 -1
  397. package/dist/types/components/q2-badge/q2-badge.d.ts +1 -0
  398. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
  399. package/dist/types/components/q2-carousel/q2-carousel.d.ts +3 -0
  400. package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +5 -0
  401. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +13 -12
  402. package/dist/types/components/q2-icon/q2-icon.d.ts +0 -5
  403. package/dist/types/components/q2-input/q2-input.d.ts +8 -0
  404. package/dist/types/components/q2-item/q2-item.d.ts +21 -0
  405. package/dist/types/components/q2-list/q2-list.d.ts +20 -0
  406. package/dist/types/components.d.ts +82 -14
  407. package/dist/types/global.d.ts +1 -1
  408. package/dist/types/utils/index.d.ts +6 -0
  409. package/dist/types/workspace/workspace/{tecton-production_release_1.44.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
  410. package/package.json +3 -3
  411. package/dist/cjs/icons-04e4f595.js +0 -2900
  412. package/dist/cjs/icons-04e4f595.js.map +0 -1
  413. package/dist/cjs/index-1deac3ee.js.map +0 -1
  414. package/dist/collection/components/q2-icon/icons.js +0 -1184
  415. package/dist/collection/components/q2-icon/icons.js.map +0 -1
  416. package/dist/esm/icons-8f4c3b69.js +0 -2898
  417. package/dist/esm/icons-8f4c3b69.js.map +0 -1
  418. package/dist/esm/index-12c2a320.js.map +0 -1
  419. package/dist/q2-tecton-elements/p-043bb5c0.entry.js +0 -2
  420. package/dist/q2-tecton-elements/p-043bb5c0.entry.js.map +0 -1
  421. package/dist/q2-tecton-elements/p-081b779e.entry.js +0 -2
  422. package/dist/q2-tecton-elements/p-081b779e.entry.js.map +0 -1
  423. package/dist/q2-tecton-elements/p-0e2e7b2d.entry.js +0 -2
  424. package/dist/q2-tecton-elements/p-0e2e7b2d.entry.js.map +0 -1
  425. package/dist/q2-tecton-elements/p-0fccdca2.entry.js.map +0 -1
  426. package/dist/q2-tecton-elements/p-1954ab7d.entry.js.map +0 -1
  427. package/dist/q2-tecton-elements/p-55bc5c9b.entry.js +0 -2
  428. package/dist/q2-tecton-elements/p-55bc5c9b.entry.js.map +0 -1
  429. package/dist/q2-tecton-elements/p-5b3f885f.entry.js.map +0 -1
  430. package/dist/q2-tecton-elements/p-5c46acb8.js +0 -2
  431. package/dist/q2-tecton-elements/p-5c46acb8.js.map +0 -1
  432. package/dist/q2-tecton-elements/p-5dd0eede.entry.js +0 -2
  433. package/dist/q2-tecton-elements/p-5dd0eede.entry.js.map +0 -1
  434. package/dist/q2-tecton-elements/p-6479c450.entry.js +0 -2
  435. package/dist/q2-tecton-elements/p-6479c450.entry.js.map +0 -1
  436. package/dist/q2-tecton-elements/p-7c5d43cf.entry.js +0 -2
  437. package/dist/q2-tecton-elements/p-7c5d43cf.entry.js.map +0 -1
  438. package/dist/q2-tecton-elements/p-7ff4c446.entry.js +0 -2
  439. package/dist/q2-tecton-elements/p-7ff4c446.entry.js.map +0 -1
  440. package/dist/q2-tecton-elements/p-87d72e3e.entry.js +0 -2
  441. package/dist/q2-tecton-elements/p-87d72e3e.entry.js.map +0 -1
  442. package/dist/q2-tecton-elements/p-8dc573f5.entry.js +0 -2
  443. package/dist/q2-tecton-elements/p-8dc573f5.entry.js.map +0 -1
  444. package/dist/q2-tecton-elements/p-913a23f5.entry.js +0 -2
  445. package/dist/q2-tecton-elements/p-a5b16c01.entry.js.map +0 -1
  446. package/dist/q2-tecton-elements/p-cbbc7659.entry.js.map +0 -1
  447. package/dist/q2-tecton-elements/p-d7e608f7.entry.js +0 -2
  448. package/dist/q2-tecton-elements/p-d7e608f7.entry.js.map +0 -1
  449. package/dist/q2-tecton-elements/p-dce084f9.entry.js +0 -2
  450. package/dist/q2-tecton-elements/p-dce084f9.entry.js.map +0 -1
  451. package/dist/q2-tecton-elements/p-ecce27a0.entry.js +0 -2
  452. package/dist/q2-tecton-elements/p-ecce27a0.entry.js.map +0 -1
  453. package/dist/q2-tecton-elements/p-f6c1f69b.js +0 -2
  454. package/dist/q2-tecton-elements/p-f6c1f69b.js.map +0 -1
  455. package/dist/q2-tecton-elements/p-f8c7cad7.entry.js +0 -2
  456. package/dist/q2-tecton-elements/p-f8c7cad7.entry.js.map +0 -1
  457. package/dist/types/components/q2-icon/icons.d.ts +0 -3
  458. /package/dist/q2-tecton-elements/{p-86cf292d.entry.js.map → p-2132da06.entry.js.map} +0 -0
  459. /package/dist/q2-tecton-elements/{p-1fac9c85.entry.js.map → p-22661533.entry.js.map} +0 -0
  460. /package/dist/q2-tecton-elements/{p-be430cd5.js.map → p-3c42c90f.js.map} +0 -0
  461. /package/dist/q2-tecton-elements/{p-92955258.entry.js.map → p-4570ff06.entry.js.map} +0 -0
  462. /package/dist/q2-tecton-elements/{p-c1e03092.entry.js.map → p-4a332c2a.entry.js.map} +0 -0
  463. /package/dist/q2-tecton-elements/{p-0a705412.entry.js.map → p-4b81a121.entry.js.map} +0 -0
  464. /package/dist/q2-tecton-elements/{p-bb6e6290.entry.js.map → p-57bf9342.entry.js.map} +0 -0
  465. /package/dist/q2-tecton-elements/{p-5b9ee831.entry.js.map → p-63192fac.entry.js.map} +0 -0
  466. /package/dist/q2-tecton-elements/{p-281e7ce7.entry.js.map → p-685b821c.entry.js.map} +0 -0
  467. /package/dist/q2-tecton-elements/{p-bd5e5864.entry.js.map → p-71180fcd.entry.js.map} +0 -0
  468. /package/dist/q2-tecton-elements/{p-db615608.entry.js.map → p-7523305d.entry.js.map} +0 -0
  469. /package/dist/q2-tecton-elements/{p-ca8dd86f.entry.js.map → p-7f663376.entry.js.map} +0 -0
  470. /package/dist/q2-tecton-elements/{p-79cd6ab5.entry.js.map → p-8dc489e1.entry.js.map} +0 -0
  471. /package/dist/q2-tecton-elements/{p-3bc27513.entry.js.map → p-aec64fcb.entry.js.map} +0 -0
  472. /package/dist/q2-tecton-elements/{p-cb30f949.entry.js.map → p-bf125cdf.entry.js.map} +0 -0
  473. /package/dist/q2-tecton-elements/{p-73a3c437.entry.js.map → p-d635e39f.entry.js.map} +0 -0
  474. /package/dist/q2-tecton-elements/{p-a89814b8.entry.js.map → p-dc057a9c.entry.js.map} +0 -0
  475. /package/dist/q2-tecton-elements/{p-6afb4d46.entry.js.map → p-e762526f.entry.js.map} +0 -0
  476. /package/dist/q2-tecton-elements/{p-698f82c5.entry.js.map → p-f1265647.entry.js.map} +0 -0
  477. /package/dist/q2-tecton-elements/{p-954d49de.entry.js.map → p-f162c670.entry.js.map} +0 -0
  478. /package/dist/q2-tecton-elements/{p-fddebc47.entry.js.map → p-f4d77672.entry.js.map} +0 -0
  479. /package/dist/types/workspace/workspace/{tecton-production_release_1.44.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
@@ -68,9 +68,9 @@ const TectonTabPane = class {
68
68
  }
69
69
  ///////// View Methods /////////
70
70
  render() {
71
- return (index.h("div", { key: '19a685dc3ae16cb1e01289828d6cdf3b02658c01', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (index.h("div", { key: '84ba134b4d0b342a9ba2bca10879259c303d4fe6' }, index.h("slot", { key: '7c2a6a9efa04e729224fed4598c6445b342418b7', name: "loading-wrapper" }), index.h("iframe", { key: 'e0bd7d7b41b4eed72f9bce94b861f044fc615549', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (index.h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
71
+ return (index.h("div", { key: 'd677eb0fce386e49fbf14d81db662995ff534a1f', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (index.h("div", { key: '858433b264e5c948438c8a3080df0d46662e4805' }, index.h("slot", { key: 'd3112581bca40623cf0161dde6a445c11c9b2dd5', name: "loading-wrapper" }), index.h("iframe", { key: 'eef0c8c4a603f1490514ff475454e5093f216c60', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (index.h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
72
72
  return (index.h("input", { type: "hidden", value: element.value, name: element.key }));
73
- }))) : (''))), index.h("div", { key: 'b5434d6bed1d6e87129591b9e8868b14c2db450b', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, index.h("slot", { key: '24b1bbb8ece23ee22f6a02b88410fc403c502970' }))));
73
+ }))) : (''))), index.h("div", { key: '7484bb87995a30cb943f8529b05c662461402843', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, index.h("slot", { key: '70656466cc57aefa1a00f73852565a4b2328c59d' }))));
74
74
  }
75
75
  get hostElement() { return index.getElement(this); }
76
76
  static get watchers() { return {
@@ -29,6 +29,8 @@
29
29
  "components/q2-currency/q2-currency.js",
30
30
  "components/q2-data-table/q2-data-table.js",
31
31
  "components/q2-detail/q2-detail.js",
32
+ "components/q2-item/q2-item.js",
33
+ "components/q2-list/q2-list.js",
32
34
  "components/q2-loading/skeleton/q2-loading-element/index.js",
33
35
  "components/q2-loc/q2-loc.js",
34
36
  "components/q2-message/q2-message.js",
@@ -1,5 +1,4 @@
1
1
  import { h } from "@stencil/core";
2
- import icons from "../q2-icon/icons";
3
2
  export class Q2Avatar {
4
3
  constructor() {
5
4
  this.onError = () => {
@@ -18,9 +17,6 @@ export class Q2Avatar {
18
17
  srcDidUpdate() {
19
18
  this.badSrc = false;
20
19
  }
21
- get fallbackIcon() {
22
- return (icons[this.icon] && icons[this.icon].markup()) || icons.error.markup();
23
- }
24
20
  get computedInitials() {
25
21
  const { initials, name } = this;
26
22
  if (!initials && !name)
@@ -46,7 +42,7 @@ export class Q2Avatar {
46
42
  const isLoaded = this.isLoaded;
47
43
  const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);
48
44
  const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);
49
- return (h("div", { key: '0b4dc18e63141b3d3fcbabc910c78231d85a331a' }, showImg && (h("img", { key: '5595007a3929739d5ab59ede4b7b1ee9670a824d', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '1af1801904cb2d9773a74a698ccf06e74f2fbe49', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '12ef3e4a281c51548cf3342f1a82c1de13812442', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: '9e62e2daa12d52319c526e5424589db813d4de43', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '27092cfaf7fca0d7ad0c796ecacae7ebb76bd2c9', type: this.icon })))));
45
+ return (h("div", { key: '40f7061e1f9d697594afaee38c047d428c4ad1ec' }, showImg && (h("img", { key: 'f4cd6e36e9cb369708cd11d33949313c0953f5bc', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '3598be173d93b0b281b1135ea6f588275163269d', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '259ee67504f57470175c0ffc6e8b0b6057f9cd64', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: 'bc08abd0494d88c6626d0fd58f5d2440563ead53', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '3205d7a5d917687d4142aa81c031599fe820ada0', type: this.icon })))));
50
46
  }
51
47
  static get is() { return "q2-avatar"; }
52
48
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\nimport icons from '../q2-icon/icons';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n /** A [q2-icon](https://tecton.q2developer.com/ui/q2-icon/) to display as the fallback. */\n @Prop() icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true }) initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true }) name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true }) src: string;\n\n @State() badSrc: boolean = false;\n @State() isLoaded: boolean = false;\n @Element() el: HTMLElement;\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n get fallbackIcon() {\n return (icons[this.icon] && icons[this.icon].markup()) || icons.error.markup();\n }\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n /** A [q2-icon](https://tecton.q2developer.com/ui/q2-icon/) to display as the fallback. */\n @Prop() icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true }) initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true }) name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true }) src: string;\n\n @State() badSrc: boolean = false;\n @State() isLoaded: boolean = false;\n @Element() el: HTMLElement;\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ // import { hasSlotContent } from 'src/utils';
1
2
  import { h, Fragment } from "@stencil/core";
2
3
  export class Q2Badge {
3
4
  constructor() {
@@ -8,9 +9,6 @@ export class Q2Badge {
8
9
  this.value = 0;
9
10
  }
10
11
  get badgeText() {
11
- // textContent takes priority over value
12
- if (this.hostElement.textContent.trim())
13
- return this.hostElement.textContent.trim();
14
12
  const maxValue = Math.pow(10, this.maxLength || 2) - 1;
15
13
  let value = this.value || 0;
16
14
  if (isNaN(value) || value <= 0) {
@@ -24,11 +22,14 @@ export class Q2Badge {
24
22
  }
25
23
  return value;
26
24
  }
25
+ get hasSlot() {
26
+ return !!this.hostElement.innerHTML.trim();
27
+ }
27
28
  render() {
28
29
  const badgeClass = ['badge'];
29
30
  if (this.size === 'large')
30
31
  badgeClass.push('size-large');
31
- return !this.badgeText ? (h(Fragment, null)) : (h("div", { class: "badge-wrapper" }, h("div", { class: badgeClass.join(' ') }, h("span", { class: "badge-text" }, h("slot", null, this.badgeText)))));
32
+ return !this.badgeText && !this.hasSlot ? (h(Fragment, null)) : (h("div", { class: "badge-wrapper" }, h("div", { class: badgeClass.join(' ') }, h("span", { class: "badge-text" }, this.hasSlot ? h("slot", null) : this.badgeText))));
32
33
  }
33
34
  static get is() { return "q2-badge"; }
34
35
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/q2-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1F,MAAM,OAAO,OAAO;;;;;;qBAiByB,CAAC;;IAI1C,IAAI,SAAS;QACT,wCAAwC;QACxC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM;QACF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACrB,EAAC,QAAQ,OAAG,CACf,CAAC,CAAC,CAAC,CACA,WAAK,KAAK,EAAC,eAAe;YACtB,WAAK,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,YAAM,KAAK,EAAC,YAAY;oBACpB,gBAAO,IAAI,CAAC,SAAS,CAAQ,CAC1B,CACL,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Prop, h, ComponentInterface, Element, Fragment } from '@stencil/core';\n\n@Component({ tag: 'q2-badge', shadow: true, styleUrl: 'q2-badge.scss' })\nexport class Q2Badge implements ComponentInterface {\n /** The number of digits to show. */\n @Prop({ reflect: true }) maxLength: number | undefined;\n\n /** The size of the badge. */\n @Prop({ reflect: true }) size: 'default' | 'large' | undefined;\n\n /** The stoplight color of the element when `theme` is not present. */\n @Prop({ reflect: true }) status: 'info' | 'alert' | 'warning' | 'success' | undefined;\n\n /**\n * The color of the badge when in the active state.\n * The `theme` has higher priority than `status`.\n */\n @Prop({ reflect: true }) theme: 'primary' | 'secondary' | 'tertiary' | undefined;\n\n /** The number to display in the badge. `q2-badge` also allows slot HTML elements which can be any string. */\n @Prop({ reflect: true }) value: number = 0;\n\n @Element() hostElement: HTMLElement;\n\n get badgeText(): string {\n // textContent takes priority over value\n if (this.hostElement.textContent.trim()) return this.hostElement.textContent.trim();\n const maxValue = Math.pow(10, this.maxLength || 2) - 1;\n let value: string | number = this.value || 0;\n if (isNaN(value) || value <= 0) {\n value = '';\n } else if (value <= maxValue) {\n value = Number(value).toLocaleString();\n } else {\n value = Number(maxValue).toLocaleString() + '+';\n }\n return value;\n }\n\n render() {\n const badgeClass = ['badge'];\n if (this.size === 'large') badgeClass.push('size-large');\n return !this.badgeText ? (\n <Fragment />\n ) : (\n <div class=\"badge-wrapper\">\n <div class={badgeClass.join(' ')}>\n <span class=\"badge-text\">\n <slot>{this.badgeText}</slot>\n </span>\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"q2-badge.js","sourceRoot":"","sources":["../../../../src/components/q2-badge/q2-badge.tsx"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1F,MAAM,OAAO,OAAO;;;;;;qBAiByB,CAAC;;IAI1C,IAAI,SAAS;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM;QACF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACtC,EAAC,QAAQ,OAAG,CACf,CAAC,CAAC,CAAC,CACA,WAAK,KAAK,EAAC,eAAe;YACtB,WAAK,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,YAAM,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAQ,CAC7E,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["// import { hasSlotContent } from 'src/utils';\nimport { Component, Prop, h, ComponentInterface, Element, Fragment } from '@stencil/core';\n\n@Component({ tag: 'q2-badge', shadow: true, styleUrl: 'q2-badge.scss' })\nexport class Q2Badge implements ComponentInterface {\n /** The number of digits to show. */\n @Prop({ reflect: true }) maxLength: number | undefined;\n\n /** The size of the badge. */\n @Prop({ reflect: true }) size: 'default' | 'large' | undefined;\n\n /** The stoplight color of the element when `theme` is not present. */\n @Prop({ reflect: true }) status: 'info' | 'alert' | 'warning' | 'success' | undefined;\n\n /**\n * The color of the badge when in the active state.\n * The `theme` has higher priority than `status`.\n */\n @Prop({ reflect: true }) theme: 'primary' | 'secondary' | 'tertiary' | undefined;\n\n /** The number to display in the badge. `q2-badge` also allows slot HTML elements which can be any string. */\n @Prop({ reflect: true }) value: number = 0;\n\n @Element() hostElement: HTMLElement;\n\n get badgeText(): string {\n const maxValue = Math.pow(10, this.maxLength || 2) - 1;\n let value: string | number = this.value || 0;\n if (isNaN(value) || value <= 0) {\n value = '';\n } else if (value <= maxValue) {\n value = Number(value).toLocaleString();\n } else {\n value = Number(maxValue).toLocaleString() + '+';\n }\n return value;\n }\n\n get hasSlot(): boolean {\n return !!this.hostElement.innerHTML.trim();\n }\n\n render() {\n const badgeClass = ['badge'];\n if (this.size === 'large') badgeClass.push('size-large');\n return !this.badgeText && !this.hasSlot ? (\n <Fragment />\n ) : (\n <div class=\"badge-wrapper\">\n <div class={badgeClass.join(' ')}>\n <span class=\"badge-text\">{this.hasSlot ? <slot></slot> : this.badgeText}</span>\n </div>\n </div>\n );\n }\n}\n"]}
@@ -694,7 +694,7 @@ button:disabled {
694
694
  height: var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px));
695
695
  border-radius: var(--tct-btn-icon-border-radius, var(--t-btn-icon-border-radius, var(--tct-btn-border-radius, 0)));
696
696
  }
697
- :host(:not([size])) button.icon-only:hover, :host(:not([size])) button.icon-only:focus {
697
+ button :host(:not([color]):not([intent])):hover, button :host(:not([color]):not([intent])):focus, button.icon-only:hover, button.icon-only:focus {
698
698
  background: var(--tct-btn-icon-hover-background, var(--tct-btn-icon-hover-bg, var(--t-btn-icon-hover-bg, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));
699
699
  }
700
700
  :host(:not([intent])[active]) button.icon-only {
@@ -1,5 +1,5 @@
1
1
  import { h, Fragment } from "@stencil/core";
2
- import { handleAriaLabel, handleColor, isEventFromElement, loc, overrideFocus, handleDeprecationWarning, } from "../../utils/index";
2
+ import { getAriaValueFromProp, handleAriaLabel, handleColor, isEventFromElement, loc, overrideFocus, handleDeprecationWarning, } from "../../utils/index";
3
3
  export class Q2Btn {
4
4
  constructor() {
5
5
  this.handleButtonSize = () => {
@@ -84,6 +84,12 @@ export class Q2Btn {
84
84
  }
85
85
  this.primaryBtn.focus();
86
86
  }
87
+ handleClick(ev) {
88
+ if (this.loading) {
89
+ ev.stopImmediatePropagation();
90
+ }
91
+ this.primaryBtn.focus();
92
+ }
87
93
  delegateFocus(event) {
88
94
  if (!isEventFromElement(event, this.hostElement))
89
95
  return;
@@ -98,15 +104,20 @@ export class Q2Btn {
98
104
  this.handleButtonSize();
99
105
  }
100
106
  get buttonAttributes() {
101
- var _a, _b, _c;
102
107
  return {
103
- ariaExpanded: this.ariaExpanded !== undefined ? `${((_a = this.ariaExpanded) === null || _a === void 0 ? void 0 : _a.toString()) === 'true'}` : undefined,
104
- ariaHasPopup: this.ariaHasPopup !== undefined
105
- ? `${this.ariaHasPopup === 'true' || this.ariaHasPopup === 'menu'}`
106
- : undefined,
108
+ ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),
109
+ ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [
110
+ 'true',
111
+ 'false',
112
+ 'menu',
113
+ 'listbox',
114
+ 'tree',
115
+ 'grid',
116
+ 'dialog',
117
+ ]),
107
118
  ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,
108
- ariaSelected: this.ariaSelected !== undefined ? `${((_b = this.ariaSelected) === null || _b === void 0 ? void 0 : _b.toString()) === 'true'}` : undefined,
109
- ariaPressed: this.ariaPressed !== undefined ? `${((_c = this.ariaPressed) === null || _c === void 0 ? void 0 : _c.toString()) === 'true'}` : undefined,
119
+ ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),
120
+ ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),
110
121
  description: this.description !== undefined ? this.description : undefined,
111
122
  disabled: this.disabled || false,
112
123
  type: this.type,
@@ -510,6 +521,12 @@ export class Q2Btn {
510
521
  "target": undefined,
511
522
  "capture": true,
512
523
  "passive": false
524
+ }, {
525
+ "name": "click",
526
+ "method": "handleClick",
527
+ "target": undefined,
528
+ "capture": true,
529
+ "passive": false
513
530
  }, {
514
531
  "name": "focus",
515
532
  "method": "delegateFocus",
@@ -1 +1 @@
1
- {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n @Prop() ariaExpanded: string;\n @Prop() ariaHasPopup: string;\n @Prop() ariaControls: string;\n @Prop() ariaSelected: string;\n @Prop() ariaPressed: string;\n @Prop() description: string;\n @Prop() tabIndex: number;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n */\n @Prop({ reflect: true }) active: boolean;\n\n /** Displays the component in a smaller, badge style. */\n @Prop({ reflect: true }) badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true }) disabled: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true }) intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true }) label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true }) loading: boolean;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true }) type: string = 'button';\n\n /** @deprecated */\n @Prop({ reflect: true }) size: string;\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) color: string; // deprecated but need it to use utils/handleColor\n /** @deprecated */\n @Prop({ reflect: true }) fab: boolean;\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @State() iconPosition: 'left' | 'right' | 'only';\n\n @Element() hostElement: HTMLElement;\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n ////////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n @Listen('click', { capture: true })\n disable(ev: Event) {\n if (this.disabled) {\n ev.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n //////// Method //////////\n\n ////////// OBSERVERS //////////\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n get buttonAttributes() {\n return {\n ariaExpanded: this.ariaExpanded !== undefined ? `${this.ariaExpanded?.toString() === 'true'}` : undefined,\n ariaHasPopup:\n this.ariaHasPopup !== undefined\n ? `${this.ariaHasPopup === 'true' || this.ariaHasPopup === 'menu'}`\n : undefined,\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: this.ariaSelected !== undefined ? `${this.ariaSelected?.toString() === 'true'}` : undefined,\n ariaPressed: this.ariaPressed !== undefined ? `${this.ariaPressed?.toString() === 'true'}` : undefined,\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n @Prop() ariaExpanded: string;\n @Prop() ariaHasPopup: string;\n @Prop() ariaControls: string;\n @Prop() ariaSelected: string;\n @Prop() ariaPressed: string;\n @Prop() description: string;\n @Prop() tabIndex: number;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n */\n @Prop({ reflect: true }) active: boolean;\n\n /** Displays the component in a smaller, badge style. */\n @Prop({ reflect: true }) badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true }) disabled: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true }) intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true }) label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true }) loading: boolean;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true }) type: string = 'button';\n\n /** @deprecated */\n @Prop({ reflect: true }) size: string;\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) color: string; // deprecated but need it to use utils/handleColor\n /** @deprecated */\n @Prop({ reflect: true }) fab: boolean;\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @State() iconPosition: 'left' | 'right' | 'only';\n\n @Element() hostElement: HTMLElement;\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n ////////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n @Listen('click', { capture: true })\n disable(ev: Event) {\n if (this.disabled) {\n ev.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('click', { capture: true })\n handleClick(ev: Event) {\n if (this.loading) {\n ev.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n //////// Method //////////\n\n ////////// OBSERVERS //////////\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n}\n"]}
@@ -85,7 +85,7 @@ export function stringToDate(date) {
85
85
  // [mm, dd, yyyy] -> [yyyy, mm, dd]
86
86
  if (isStandardSlashDate)
87
87
  dateParts.unshift(dateParts.pop());
88
- result = new Date(dateParts.join('-'));
88
+ result = new Date(Date.UTC(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, parseInt(dateParts[2])));
89
89
  }
90
90
  else if (isPartialDate) {
91
91
  const now = new Date();
@@ -1 +1 @@
1
- {"version":3,"file":"q2-calendar-helpers.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValid as isValidDate, formatISO, setMinutes } from 'date-fns';\nimport { loc } from '../../utils';\nimport { ISelectedMonthYear, InputValidation } from './q2-calendar-types';\n\nexport interface IMomentLikeObject {\n toDate(): Date;\n}\n\nexport function formatDateISO(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n return formatISO(date, { representation: 'date' });\n}\n\nlet memoizedFormatDateShort: Intl.DateTimeFormat;\nexport function formatDateShort(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n const isoDate = date.toISOString();\n if (!memoizedFormatDateShort) {\n memoizedFormatDateShort = new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateShort.format(new Date(isoDate));\n}\n\nlet memoizedFormatDateLong: Intl.DateTimeFormat;\nexport function formatDateLong(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateLong) {\n memoizedFormatDateLong = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n return memoizedFormatDateLong.format(date);\n}\n\nlet memoizedFormatDateFull: Intl.DateTimeFormat;\nexport function formatDateFull(value: string | Date) {\n if (!value) return;\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateFull) {\n memoizedFormatDateFull = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n weekday: 'long',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateFull.format(date);\n}\n\nexport function convertMomentFormat(stringFormat: string) {\n return stringFormat\n .replace(/[d]/g, 'E')\n .replace(/[D]/g, 'd')\n .replace(/[Y]/g, 'y')\n .replace(/[l]/g, 'P')\n .replace(/[W]/g, 'I');\n}\n\nexport function stringToDate(date: string | null | void): Date | undefined {\n const isString = typeof date === 'string';\n if (!isString && date && isValidDate(new Date(date || undefined))) {\n date = formatDateISO(date);\n } else if (!date || !isValidDate(new Date(date))) {\n return undefined;\n }\n\n let result: Date;\n const dateParts = date.split(/[\\/\\-]/).map(part => part.padStart(2, '0'));\n const isIsoString = isString && date.length >= 24 && date[10] === 'T';\n const isCompleteDate = dateParts.length === 3;\n const isPartialDate = dateParts.length < 3;\n if (isIsoString) {\n date = date.split('T')[0];\n result = new Date(date);\n } else if (isCompleteDate) {\n const isStandardSlashDate = date.includes('/') && dateParts[2].length === 4;\n\n // Reorder mm/dd/yyyy dates for ISO formatting\n // [mm, dd, yyyy] -> [yyyy, mm, dd]\n if (isStandardSlashDate) dateParts.unshift(dateParts.pop());\n\n result = new Date(dateParts.join('-'));\n } else if (isPartialDate) {\n const now = new Date();\n\n let yearNumber: number;\n let monthNumber: string;\n let dayNumber: string;\n switch (dateParts.length) {\n case 1:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = '01';\n break;\n\n case 2:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = dateParts[1];\n break;\n }\n\n result = new Date(`${yearNumber}-${monthNumber}-${dayNumber}`);\n }\n\n if (!isValidDate(result)) return undefined;\n\n // result = setHours(result, 0);\n result = removeTimezoneOffset(result);\n\n return isValidDate(result) ? result : undefined;\n}\n\nexport function removeTimezoneOffset(date: Date) {\n const timeZoneOffset = date.getTimezoneOffset();\n // Minutes compensation for some timezones like India, Central Australia and etc use GMT+5:30, GMT+9:30\n return setMinutes(date, timeZoneOffset + Math.abs(timeZoneOffset % 60));\n}\n\nexport function stringArrayToDate(dateArray: string[]): Date[] {\n if (!Array.isArray(dateArray) || dateArray.length === 0) {\n return [];\n }\n return dateArray.map(date => stringToDate(date));\n}\n\nexport function setupMonthYear(value: Date | undefined = new Date()): ISelectedMonthYear {\n return {\n monthIndex: value.getMonth(),\n selectedYear: value.getFullYear(),\n };\n}\n\nexport function validateInput(\n input: string = '',\n validDays: number[] = [],\n validDates: string[] = [], // white list\n invalidDates: string[] = [], // black list\n startDate: string,\n endDate: string,\n formatString: string = 'mm/dd/yyyy',\n assume: string\n): InputValidation {\n let isValid: boolean = true;\n let isAvailable: boolean = false;\n let messageType: string = 'info';\n let message: string = `${loc('tecton.element.calendar.hint.format')}: ${formatString}`;\n if (!input) {\n return { isValid, inputDate: new Date(''), isAvailable, messageType, message };\n }\n\n const inputDate = buildInputDate(input, assume);\n const month = inputDate.getMonth() + 1;\n const date = inputDate.getDate();\n const year = inputDate.getFullYear();\n const calendarPosition = [month, date, year];\n\n if (isValidDate(inputDate)) {\n const monthName = getMonths()[inputDate.getMonth()];\n\n if (input.length === 10) {\n isValid = true;\n messageType = null;\n message = null;\n }\n\n isAvailable = validDays.includes(inputDate.getDay());\n const isoString = formatDateISO(inputDate);\n\n if (isAvailable) {\n const isNotValidDate = validDates.length && !validDates.includes(isoString);\n const isInvalidDate = invalidDates.length && invalidDates.includes(isoString);\n const isBeforeStartDate = startDate && startDate > isoString;\n const isAfterEndDate = endDate && endDate < isoString;\n\n if (isNotValidDate || isInvalidDate || isBeforeStartDate || isAfterEndDate) {\n isAvailable = false;\n }\n }\n\n if (input.length >= 5 && !isAvailable) {\n isValid = false;\n messageType = 'error';\n const isInvalid = !monthName || !date || !year;\n message = isInvalid\n ? `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`\n : loc('tecton.element.calendar.hint.notAvailableDate', [formatDateLong(inputDate)]);\n }\n } else {\n isValid = false;\n messageType = 'error';\n message = `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`;\n }\n\n return {\n isValid,\n messageType,\n message,\n inputDate,\n isAvailable,\n calendarPosition,\n };\n}\n\nexport function buildInputDate(input: string, assume: string) {\n const now = new Date();\n // eslint-disable-next-line prefer-const\n let [month, day, year] = input.split('/');\n if (month === '0') month = '01';\n if (day === '0') day = '01';\n if (input.length === 10) {\n return new Date(input);\n } else if (month && day && Number(day) > 0) {\n const twoDigitDay = Number(day) < 10 ? `0${Number(day)}` : day;\n const fourDigitYear = !year || year.length < 4 ? assumeYear(month, day, assume) : year;\n return new Date(`${month}/${twoDigitDay}/${fourDigitYear}`);\n } else if (month) {\n return new Date(`${month}/01/${now.getFullYear()}`);\n }\n}\n\nfunction assumeYear(month: string, day: string, assume: string): string {\n const monthDay = `${month}/${day}`;\n const now = new Date();\n const mm: string = now.getMonth() < 9 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`;\n const dd: string = now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`;\n const nowLocal = `${mm}/${dd}/${now.getFullYear()}`;\n let assumedYear = now.getFullYear();\n if (assume === 'future' && nowLocal.slice(0, 5) > monthDay) {\n assumedYear = now.getFullYear() + 1;\n } else if (assume === 'past' && nowLocal.slice(0, 5) < monthDay) {\n assumedYear = now.getFullYear() - 1;\n }\n return assumedYear.toString();\n}\n\nexport function handleMissingZeros(input): string {\n if (!input) {\n return '';\n }\n if (input.match(/^[1-9]\\/$/)) {\n return `0${input}/`;\n } else if (input.match(/^[0-9]{2}\\/[1-9]{1}\\/$/)) {\n const sp = input.split('/');\n return `${sp[0]}/0${sp[1]}/`;\n }\n return input;\n}\n\nexport function reorderDateString(input: string): string {\n const dateParts = (input || '').split('-');\n if (dateParts.length !== 3) return '';\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n}\n\nexport function firstDayOfWeekInMonth(month: number, year: number): number {\n return new Date(year, month, 1, 1, 1, 1, 1).getDay();\n}\n\nexport function getDays(): string[] {\n return [\n loc('tecton.element.calendar.days.short.Sunday'),\n loc('tecton.element.calendar.days.short.Monday'),\n loc('tecton.element.calendar.days.short.Tuesday'),\n loc('tecton.element.calendar.days.short.Wednesday'),\n loc('tecton.element.calendar.days.short.Thursday'),\n loc('tecton.element.calendar.days.short.Friday'),\n loc('tecton.element.calendar.days.short.Saturday'),\n ];\n}\n\nexport function getDaysOfWeek(): string[] {\n return [\n loc('tecton.element.calendar.days.Sunday'),\n loc('tecton.element.calendar.days.Monday'),\n loc('tecton.element.calendar.days.Tuesday'),\n loc('tecton.element.calendar.days.Wednesday'),\n loc('tecton.element.calendar.days.Thursday'),\n loc('tecton.element.calendar.days.Friday'),\n loc('tecton.element.calendar.days.Saturday'),\n ];\n}\n\nexport function getMonths(): string[] {\n return [\n loc('tecton.element.calendar.months.January'),\n loc('tecton.element.calendar.months.February'),\n loc('tecton.element.calendar.months.March'),\n loc('tecton.element.calendar.months.April'),\n loc('tecton.element.calendar.months.May'),\n loc('tecton.element.calendar.months.June'),\n loc('tecton.element.calendar.months.July'),\n loc('tecton.element.calendar.months.August'),\n loc('tecton.element.calendar.months.September'),\n loc('tecton.element.calendar.months.October'),\n loc('tecton.element.calendar.months.November'),\n loc('tecton.element.calendar.months.December'),\n ];\n}\n"]}
1
+ {"version":3,"file":"q2-calendar-helpers.js","sourceRoot":"","sources":["../../../../src/components/q2-calendar/q2-calendar-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { isValid as isValidDate, formatISO, setMinutes } from 'date-fns';\nimport { loc } from '../../utils';\nimport { ISelectedMonthYear, InputValidation } from './q2-calendar-types';\n\nexport interface IMomentLikeObject {\n toDate(): Date;\n}\n\nexport function formatDateISO(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n return formatISO(date, { representation: 'date' });\n}\n\nlet memoizedFormatDateShort: Intl.DateTimeFormat;\nexport function formatDateShort(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n const isoDate = date.toISOString();\n if (!memoizedFormatDateShort) {\n memoizedFormatDateShort = new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateShort.format(new Date(isoDate));\n}\n\nlet memoizedFormatDateLong: Intl.DateTimeFormat;\nexport function formatDateLong(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateLong) {\n memoizedFormatDateLong = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n return memoizedFormatDateLong.format(date);\n}\n\nlet memoizedFormatDateFull: Intl.DateTimeFormat;\nexport function formatDateFull(value: string | Date) {\n if (!value) return;\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateFull) {\n memoizedFormatDateFull = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n weekday: 'long',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateFull.format(date);\n}\n\nexport function convertMomentFormat(stringFormat: string) {\n return stringFormat\n .replace(/[d]/g, 'E')\n .replace(/[D]/g, 'd')\n .replace(/[Y]/g, 'y')\n .replace(/[l]/g, 'P')\n .replace(/[W]/g, 'I');\n}\n\nexport function stringToDate(date: string | null | void): Date | undefined {\n const isString = typeof date === 'string';\n if (!isString && date && isValidDate(new Date(date || undefined))) {\n date = formatDateISO(date);\n } else if (!date || !isValidDate(new Date(date))) {\n return undefined;\n }\n\n let result: Date;\n const dateParts = date.split(/[\\/\\-]/).map(part => part.padStart(2, '0'));\n const isIsoString = isString && date.length >= 24 && date[10] === 'T';\n const isCompleteDate = dateParts.length === 3;\n const isPartialDate = dateParts.length < 3;\n if (isIsoString) {\n date = date.split('T')[0];\n result = new Date(date);\n } else if (isCompleteDate) {\n const isStandardSlashDate = date.includes('/') && dateParts[2].length === 4;\n\n // Reorder mm/dd/yyyy dates for ISO formatting\n // [mm, dd, yyyy] -> [yyyy, mm, dd]\n if (isStandardSlashDate) dateParts.unshift(dateParts.pop());\n\n result = new Date(Date.UTC(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, parseInt(dateParts[2])));\n } else if (isPartialDate) {\n const now = new Date();\n\n let yearNumber: number;\n let monthNumber: string;\n let dayNumber: string;\n switch (dateParts.length) {\n case 1:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = '01';\n break;\n\n case 2:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = dateParts[1];\n break;\n }\n\n result = new Date(`${yearNumber}-${monthNumber}-${dayNumber}`);\n }\n\n if (!isValidDate(result)) return undefined;\n\n // result = setHours(result, 0);\n result = removeTimezoneOffset(result);\n\n return isValidDate(result) ? result : undefined;\n}\n\nexport function removeTimezoneOffset(date: Date) {\n const timeZoneOffset = date.getTimezoneOffset();\n // Minutes compensation for some timezones like India, Central Australia and etc use GMT+5:30, GMT+9:30\n return setMinutes(date, timeZoneOffset + Math.abs(timeZoneOffset % 60));\n}\n\nexport function stringArrayToDate(dateArray: string[]): Date[] {\n if (!Array.isArray(dateArray) || dateArray.length === 0) {\n return [];\n }\n return dateArray.map(date => stringToDate(date));\n}\n\nexport function setupMonthYear(value: Date | undefined = new Date()): ISelectedMonthYear {\n return {\n monthIndex: value.getMonth(),\n selectedYear: value.getFullYear(),\n };\n}\n\nexport function validateInput(\n input: string = '',\n validDays: number[] = [],\n validDates: string[] = [], // white list\n invalidDates: string[] = [], // black list\n startDate: string,\n endDate: string,\n formatString: string = 'mm/dd/yyyy',\n assume: string\n): InputValidation {\n let isValid: boolean = true;\n let isAvailable: boolean = false;\n let messageType: string = 'info';\n let message: string = `${loc('tecton.element.calendar.hint.format')}: ${formatString}`;\n if (!input) {\n return { isValid, inputDate: new Date(''), isAvailable, messageType, message };\n }\n\n const inputDate = buildInputDate(input, assume);\n const month = inputDate.getMonth() + 1;\n const date = inputDate.getDate();\n const year = inputDate.getFullYear();\n const calendarPosition = [month, date, year];\n\n if (isValidDate(inputDate)) {\n const monthName = getMonths()[inputDate.getMonth()];\n\n if (input.length === 10) {\n isValid = true;\n messageType = null;\n message = null;\n }\n\n isAvailable = validDays.includes(inputDate.getDay());\n const isoString = formatDateISO(inputDate);\n\n if (isAvailable) {\n const isNotValidDate = validDates.length && !validDates.includes(isoString);\n const isInvalidDate = invalidDates.length && invalidDates.includes(isoString);\n const isBeforeStartDate = startDate && startDate > isoString;\n const isAfterEndDate = endDate && endDate < isoString;\n\n if (isNotValidDate || isInvalidDate || isBeforeStartDate || isAfterEndDate) {\n isAvailable = false;\n }\n }\n\n if (input.length >= 5 && !isAvailable) {\n isValid = false;\n messageType = 'error';\n const isInvalid = !monthName || !date || !year;\n message = isInvalid\n ? `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`\n : loc('tecton.element.calendar.hint.notAvailableDate', [formatDateLong(inputDate)]);\n }\n } else {\n isValid = false;\n messageType = 'error';\n message = `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`;\n }\n\n return {\n isValid,\n messageType,\n message,\n inputDate,\n isAvailable,\n calendarPosition,\n };\n}\n\nexport function buildInputDate(input: string, assume: string) {\n const now = new Date();\n // eslint-disable-next-line prefer-const\n let [month, day, year] = input.split('/');\n if (month === '0') month = '01';\n if (day === '0') day = '01';\n if (input.length === 10) {\n return new Date(input);\n } else if (month && day && Number(day) > 0) {\n const twoDigitDay = Number(day) < 10 ? `0${Number(day)}` : day;\n const fourDigitYear = !year || year.length < 4 ? assumeYear(month, day, assume) : year;\n return new Date(`${month}/${twoDigitDay}/${fourDigitYear}`);\n } else if (month) {\n return new Date(`${month}/01/${now.getFullYear()}`);\n }\n}\n\nfunction assumeYear(month: string, day: string, assume: string): string {\n const monthDay = `${month}/${day}`;\n const now = new Date();\n const mm: string = now.getMonth() < 9 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`;\n const dd: string = now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`;\n const nowLocal = `${mm}/${dd}/${now.getFullYear()}`;\n let assumedYear = now.getFullYear();\n if (assume === 'future' && nowLocal.slice(0, 5) > monthDay) {\n assumedYear = now.getFullYear() + 1;\n } else if (assume === 'past' && nowLocal.slice(0, 5) < monthDay) {\n assumedYear = now.getFullYear() - 1;\n }\n return assumedYear.toString();\n}\n\nexport function handleMissingZeros(input): string {\n if (!input) {\n return '';\n }\n if (input.match(/^[1-9]\\/$/)) {\n return `0${input}/`;\n } else if (input.match(/^[0-9]{2}\\/[1-9]{1}\\/$/)) {\n const sp = input.split('/');\n return `${sp[0]}/0${sp[1]}/`;\n }\n return input;\n}\n\nexport function reorderDateString(input: string): string {\n const dateParts = (input || '').split('-');\n if (dateParts.length !== 3) return '';\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n}\n\nexport function firstDayOfWeekInMonth(month: number, year: number): number {\n return new Date(year, month, 1, 1, 1, 1, 1).getDay();\n}\n\nexport function getDays(): string[] {\n return [\n loc('tecton.element.calendar.days.short.Sunday'),\n loc('tecton.element.calendar.days.short.Monday'),\n loc('tecton.element.calendar.days.short.Tuesday'),\n loc('tecton.element.calendar.days.short.Wednesday'),\n loc('tecton.element.calendar.days.short.Thursday'),\n loc('tecton.element.calendar.days.short.Friday'),\n loc('tecton.element.calendar.days.short.Saturday'),\n ];\n}\n\nexport function getDaysOfWeek(): string[] {\n return [\n loc('tecton.element.calendar.days.Sunday'),\n loc('tecton.element.calendar.days.Monday'),\n loc('tecton.element.calendar.days.Tuesday'),\n loc('tecton.element.calendar.days.Wednesday'),\n loc('tecton.element.calendar.days.Thursday'),\n loc('tecton.element.calendar.days.Friday'),\n loc('tecton.element.calendar.days.Saturday'),\n ];\n}\n\nexport function getMonths(): string[] {\n return [\n loc('tecton.element.calendar.months.January'),\n loc('tecton.element.calendar.months.February'),\n loc('tecton.element.calendar.months.March'),\n loc('tecton.element.calendar.months.April'),\n loc('tecton.element.calendar.months.May'),\n loc('tecton.element.calendar.months.June'),\n loc('tecton.element.calendar.months.July'),\n loc('tecton.element.calendar.months.August'),\n loc('tecton.element.calendar.months.September'),\n loc('tecton.element.calendar.months.October'),\n loc('tecton.element.calendar.months.November'),\n loc('tecton.element.calendar.months.December'),\n ];\n}\n"]}
@@ -8,6 +8,7 @@ export class Q2Calendar {
8
8
  this.formatModifier = 'M/D/YYYY'; // To allow missing leading zero, 4/3/2021 => converts into 04/03/2021
9
9
  this.defaultFormatString = 'mm/dd/yyyy';
10
10
  this.scheduledAfterRender = [];
11
+ this.internalError = '';
11
12
  this.dayAbbrStrings = getDays();
12
13
  this.dayStrings = getDaysOfWeek();
13
14
  this.monthStrings = getMonths();
@@ -79,7 +80,7 @@ export class Q2Calendar {
79
80
  const { isValid, message, messageType, inputDate, isAvailable, calendarPosition } = validateInput(typedValue, validDays, this.validDates, this.invalidDates, this.startDate, this.endDate, this.defaultFormatString, this.assume);
80
81
  if (calendarPosition) {
81
82
  const [mm, dd, yyyy] = calendarPosition;
82
- const date = new Date(`${yyyy}-${mm}-${dd}`);
83
+ const date = new Date(yyyy, mm - 1, dd);
83
84
  if (isValidDate(date)) {
84
85
  this.selectedMonthYear = setupMonthYear(date);
85
86
  this.dateList = this.buildDateList(this.selectedMonthYear);
@@ -134,6 +135,7 @@ export class Q2Calendar {
134
135
  this.setCompleteInput(inputDate);
135
136
  }
136
137
  else if (this.value) {
138
+ this.valueOnBlur = this.value;
137
139
  this.value = null;
138
140
  this.change.emit({ value: null });
139
141
  this.typedValue = typedValue;
@@ -142,8 +144,15 @@ export class Q2Calendar {
142
144
  this.onInputFocus = (event) => {
143
145
  if (!this.isTypeable)
144
146
  return;
145
- if (event.target === this.controlElement)
147
+ if (event.target === this.controlElement) {
148
+ if (this.valueOnBlur && !this.value) {
149
+ const tmpTypedValue = this.typedValue;
150
+ this.value = this.valueOnBlur;
151
+ this.typedValue = tmpTypedValue;
152
+ this.valueOnBlur = null;
153
+ }
146
154
  this.closeCalendar();
155
+ }
147
156
  };
148
157
  this.onInputClick = () => {
149
158
  if (this.disabled)
@@ -408,14 +417,21 @@ export class Q2Calendar {
408
417
  return this.typeable;
409
418
  }
410
419
  get errorList() {
411
- const { errors, hintMessageType, hintMessage, invalid } = this;
412
- if (Array.isArray(errors) && errors.length)
413
- return errors.filter(error => !!error).map(error => loc(error));
414
- if (hintMessageType === 'error' && hintMessage)
415
- return [hintMessage];
416
- if (invalid)
420
+ const { errors, internalError, invalid } = this;
421
+ let list = [];
422
+ if (internalError) {
423
+ list = [internalError];
424
+ }
425
+ if (Array.isArray(errors) && errors.length) {
426
+ list = errors
427
+ .filter(error => !!error)
428
+ .map(error => loc(error))
429
+ .concat(list);
430
+ }
431
+ else if (!internalError && invalid) {
417
432
  return ['tecton.element.calendar.invalid'];
418
- return [];
433
+ }
434
+ return list;
419
435
  }
420
436
  get hintList() {
421
437
  const { hints, hintMessageType, hintMessage } = this;
@@ -433,11 +449,12 @@ export class Q2Calendar {
433
449
  }
434
450
  defaultErrorHandler(event) {
435
451
  if (event.target === this.hostElement && !this.hostElement.onerror) {
436
- const { errors } = this;
437
- if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {
438
- return;
452
+ if (this.hintMessageType === 'error' && this.hintMessage) {
453
+ this.internalError = this.hintMessage;
454
+ }
455
+ else {
456
+ this.internalError = loc('tecton.element.calendar.hint.invalidDate');
439
457
  }
440
- this.errors = (errors || []).concat(['tecton.element.calendar.hint.invalidDate']);
441
458
  }
442
459
  }
443
460
  defaultSuccessHandler(event) {
@@ -448,9 +465,11 @@ export class Q2Calendar {
448
465
  this.onsuccess(event);
449
466
  }
450
467
  else {
451
- const { errors } = this;
452
- if (Array.isArray(errors) && errors.includes('tecton.element.calendar.hint.invalidDate')) {
453
- this.errors = errors.filter(x => x !== 'tecton.element.calendar.hint.invalidDate');
468
+ this.internalError = '';
469
+ if (this.hintMessageType === 'error' && this.hintMessage) {
470
+ this.hintMessage = null;
471
+ this.hintMessageType = null;
472
+ this.invalid = false;
454
473
  }
455
474
  }
456
475
  }
@@ -690,7 +709,7 @@ export class Q2Calendar {
690
709
  (_a = this.calendarBody.querySelector(`td[data-day="${date.getDate()}"]`)) === null || _a === void 0 ? void 0 : _a.focus();
691
710
  }
692
711
  render() {
693
- return (h("click-elsewhere", { key: '31cb3c3163c5e158275c270996788b15048e9e8e', class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, this.inputField(), h("q2-popover", { key: '716aae6b9e6e2c7a48b46a6d9104f07ba50a3e5c', ref: el => (this.popoverElement = el), controlElement: this.innerInputContainer, open: this.open, direction: this.popoverDirection, minHeight: this.popoverMinHeight, align: this.popoverAlignment, block: true }, this.hintField(), this.calendarPopover())));
712
+ return (h("click-elsewhere", { key: 'd50247f4a02c03abaad37d260b5779d95fd857e1', class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, this.inputField(), h("q2-popover", { key: '02202d92f928d652a8de39b15cfed14ed16ba5b7', ref: el => (this.popoverElement = el), controlElement: this.innerInputContainer, open: this.open, direction: this.popoverDirection, minHeight: this.popoverMinHeight, align: this.popoverAlignment, block: true }, this.hintField(), this.calendarPopover())));
694
713
  }
695
714
  hintField() {
696
715
  if (!this.hintMessage)
@@ -704,11 +723,23 @@ export class Q2Calendar {
704
723
  this.invalid = !isValid;
705
724
  this.hintMessage = message;
706
725
  this.hintMessageType = messageType;
726
+ if (messageType === 'error' && message) {
727
+ this.internalError = message;
728
+ this.error.emit({
729
+ errors: [
730
+ {
731
+ message,
732
+ errorCode: 'generalInvalid',
733
+ },
734
+ ],
735
+ });
736
+ }
707
737
  }
708
738
  setCompleteInput(inputDate) {
709
739
  const formattedDate = formatDateShort(inputDate);
710
740
  this.change.emit({ value: formatDateISO(inputDate) });
711
741
  this.typedValue = formattedDate;
742
+ this.internalError = null;
712
743
  this.setHints({
713
744
  isValid: true,
714
745
  message: null,