q2-tecton-elements 1.55.3 → 1.56.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 (377) hide show
  1. package/dist/bundle-report.json +15910 -11843
  2. package/dist/cjs/{index-905f4c87.js → index-99667782.js} +5 -1
  3. package/dist/cjs/index-99667782.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-avatar.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-badge_7.cjs.entry.js +56 -55
  10. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -3
  19. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-checkbox.cjs.entry.js +3 -3
  21. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-currency.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-file-picker.cjs.entry.js +20 -7
  32. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-form.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-form.cjs.entry.js.map +1 -1
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-grid-area.cjs.entry.js +133 -0
  37. package/dist/cjs/q2-grid-area.cjs.entry.js.map +1 -0
  38. package/dist/cjs/q2-grid.cjs.entry.js +109 -0
  39. package/dist/cjs/q2-grid.cjs.entry.js.map +1 -0
  40. package/dist/cjs/q2-item_3.cjs.entry.js +4 -4
  41. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-modal.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  47. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-option-list_2.cjs.entry.js +18 -6
  49. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  52. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  57. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  58. package/dist/cjs/q2-select.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  66. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  67. package/dist/collection/collection-manifest.json +2 -0
  68. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  69. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  70. package/dist/collection/components/q2-avatar/q2-avatar.css +8 -8
  71. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  72. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  73. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  74. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  75. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  76. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  77. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  78. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  79. package/dist/collection/components/q2-checkbox/q2-checkbox.css +7 -3
  80. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  81. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +0 -5
  82. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  83. package/dist/collection/components/q2-currency/q2-currency.css +2 -2
  84. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  85. package/dist/collection/components/q2-data-table/q2-data-table.css +1 -2
  86. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  87. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  88. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  89. package/dist/collection/components/q2-example/q2-example.js +1 -1
  90. package/dist/collection/components/q2-file-picker/q2-file-picker.css +11 -2
  91. package/dist/collection/components/q2-file-picker/q2-file-picker.js +52 -12
  92. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  93. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +25 -0
  94. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +107 -18
  96. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  97. package/dist/collection/components/q2-form/q2-form.css +0 -1
  98. package/dist/collection/components/q2-form/q2-form.js +1 -1
  99. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +24 -4
  100. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -1
  101. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  102. package/dist/collection/components/q2-grid/q2-grid.css +98 -0
  103. package/dist/collection/components/q2-grid/q2-grid.js +807 -0
  104. package/dist/collection/components/q2-grid/q2-grid.js.map +1 -0
  105. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js +218 -0
  106. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js.map +1 -0
  107. package/dist/collection/components/q2-grid-area/q2-grid-area.css +110 -0
  108. package/dist/collection/components/q2-grid-area/q2-grid-area.js +1109 -0
  109. package/dist/collection/components/q2-grid-area/q2-grid-area.js.map +1 -0
  110. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js +196 -0
  111. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js.map +1 -0
  112. package/dist/collection/components/q2-icon/assets/brand.symbol.svg +1 -1
  113. package/dist/collection/components/q2-icon/assets/browsersos.symbol.svg +1 -0
  114. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  115. package/dist/{q2-tecton-elements/assets/system.symbol.svg → collection/components/q2-icon/assets/devices.symbol.svg} +1 -1
  116. package/dist/collection/components/q2-icon/assets/icon-file-list.json +1 -1
  117. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  118. package/dist/collection/components/q2-icon/assets/legacy.symbol.svg +1 -1
  119. package/dist/collection/components/q2-icon/assets/mobile.symbol.svg +1 -1
  120. package/dist/collection/components/q2-icon/q2-icon.css +7 -1
  121. package/dist/collection/components/q2-icon/q2-icon.js +3 -2
  122. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  123. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +3 -3
  124. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -1
  125. package/dist/collection/components/q2-input/q2-input.js +1 -1
  126. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +5 -3
  127. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  128. package/dist/collection/components/q2-item/q2-item.css +3 -3
  129. package/dist/collection/components/q2-item/q2-item.js +1 -1
  130. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  131. package/dist/collection/components/q2-list/q2-list.js +1 -1
  132. package/dist/collection/components/q2-message/q2-message.js +1 -1
  133. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  134. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  135. package/dist/collection/components/q2-option-list/q2-option-list.js +1 -1
  136. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  137. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  138. package/dist/collection/components/q2-popover/q2-popover.js +40 -5
  139. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  140. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +2 -2
  141. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  142. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  143. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  144. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  145. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  146. package/dist/collection/components/q2-section/q2-section.js +2 -2
  147. package/dist/collection/components/q2-select/q2-select.js +2 -2
  148. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  149. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  150. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  151. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  152. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  153. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  154. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  155. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  156. package/dist/collection/utils/helpers.js +15 -0
  157. package/dist/collection/utils/helpers.js.map +1 -1
  158. package/dist/collection/utils/index.js +3 -0
  159. package/dist/collection/utils/index.js.map +1 -1
  160. package/dist/components/index.js +4 -0
  161. package/dist/components/index.js.map +1 -1
  162. package/dist/components/index2.js +4 -1
  163. package/dist/components/index2.js.map +1 -1
  164. package/dist/components/q2-action-group2.js +1 -1
  165. package/dist/components/q2-action-sheet.js +1 -1
  166. package/dist/components/q2-avatar2.js +2 -2
  167. package/dist/components/q2-avatar2.js.map +1 -1
  168. package/dist/components/q2-calendar.js +1 -1
  169. package/dist/components/q2-carousel-pane.js +2 -2
  170. package/dist/components/q2-carousel.js +1 -1
  171. package/dist/components/q2-chart-area.js +1 -1
  172. package/dist/components/q2-chart-bar.js +1 -1
  173. package/dist/components/q2-chart-donut.js +1 -1
  174. package/dist/components/q2-checkbox-group.js +2 -2
  175. package/dist/components/q2-checkbox-group.js.map +1 -1
  176. package/dist/components/q2-checkbox2.js +2 -2
  177. package/dist/components/q2-checkbox2.js.map +1 -1
  178. package/dist/components/q2-currency.js +2 -2
  179. package/dist/components/q2-currency.js.map +1 -1
  180. package/dist/components/q2-data-table.js +1 -1
  181. package/dist/components/q2-data-table.js.map +1 -1
  182. package/dist/components/q2-detail.js +1 -1
  183. package/dist/components/q2-dropdown.js +1 -1
  184. package/dist/components/q2-editable-field.js +1 -1
  185. package/dist/components/q2-example.js +1 -1
  186. package/dist/components/q2-file-picker.js +20 -6
  187. package/dist/components/q2-file-picker.js.map +1 -1
  188. package/dist/components/q2-form.js +2 -2
  189. package/dist/components/q2-form.js.map +1 -1
  190. package/dist/components/q2-formatted-text.js +1 -1
  191. package/dist/components/q2-grid-area.d.ts +11 -0
  192. package/dist/components/q2-grid-area.js +190 -0
  193. package/dist/components/q2-grid-area.js.map +1 -0
  194. package/dist/components/q2-grid.d.ts +11 -0
  195. package/dist/components/q2-grid.js +154 -0
  196. package/dist/components/q2-grid.js.map +1 -0
  197. package/dist/components/q2-icon2.js +52 -51
  198. package/dist/components/q2-icon2.js.map +1 -1
  199. package/dist/components/q2-input2.js +1 -1
  200. package/dist/components/q2-item2.js +2 -2
  201. package/dist/components/q2-item2.js.map +1 -1
  202. package/dist/components/q2-legend2.js +1 -1
  203. package/dist/components/q2-list2.js +1 -1
  204. package/dist/components/q2-message2.js +1 -1
  205. package/dist/components/q2-modal.js +1 -1
  206. package/dist/components/q2-month-picker.js +2 -2
  207. package/dist/components/q2-optgroup2.js +1 -1
  208. package/dist/components/q2-option-list2.js +1 -1
  209. package/dist/components/q2-pagination.js +3 -3
  210. package/dist/components/q2-pill.js +1 -1
  211. package/dist/components/q2-popover2.js +17 -5
  212. package/dist/components/q2-popover2.js.map +1 -1
  213. package/dist/components/q2-radio-group.js +1 -1
  214. package/dist/components/q2-radio.js +1 -1
  215. package/dist/components/q2-relative-time.js +1 -1
  216. package/dist/components/q2-resize-observer2.js +1 -1
  217. package/dist/components/q2-section.js +2 -2
  218. package/dist/components/q2-select2.js +3 -3
  219. package/dist/components/q2-stepper-pane.js +1 -1
  220. package/dist/components/q2-stepper-vertical.js +1 -1
  221. package/dist/components/q2-stepper.js +1 -1
  222. package/dist/components/q2-tab-container.js +1 -1
  223. package/dist/components/q2-tab-pane.js +1 -1
  224. package/dist/components/q2-tag.js +1 -1
  225. package/dist/components/q2-textarea.js +1 -1
  226. package/dist/components/tecton-tab-pane.js +2 -2
  227. package/dist/esm/{index-f2a66217.js → index-c215e8ef.js} +5 -2
  228. package/dist/esm/index-c215e8ef.js.map +1 -0
  229. package/dist/esm/loader.js +1 -1
  230. package/dist/esm/q2-action-group.entry.js +2 -2
  231. package/dist/esm/q2-action-sheet.entry.js +2 -2
  232. package/dist/esm/q2-avatar.entry.js +2 -2
  233. package/dist/esm/q2-avatar.entry.js.map +1 -1
  234. package/dist/esm/q2-badge_7.entry.js +56 -55
  235. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  236. package/dist/esm/q2-calendar.entry.js +2 -2
  237. package/dist/esm/q2-card.entry.js +1 -1
  238. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  239. package/dist/esm/q2-carousel.entry.js +2 -2
  240. package/dist/esm/q2-chart-area.entry.js +2 -2
  241. package/dist/esm/q2-chart-bar.entry.js +2 -2
  242. package/dist/esm/q2-chart-donut.entry.js +2 -2
  243. package/dist/esm/q2-checkbox-group.entry.js +3 -3
  244. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  245. package/dist/esm/q2-checkbox.entry.js +3 -3
  246. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  247. package/dist/esm/q2-currency.entry.js +2 -2
  248. package/dist/esm/q2-currency.entry.js.map +1 -1
  249. package/dist/esm/q2-data-table.entry.js +2 -2
  250. package/dist/esm/q2-data-table.entry.js.map +1 -1
  251. package/dist/esm/q2-detail.entry.js +2 -2
  252. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  253. package/dist/esm/q2-dropdown.entry.js +2 -2
  254. package/dist/esm/q2-editable-field.entry.js +2 -2
  255. package/dist/esm/q2-example.entry.js +1 -1
  256. package/dist/esm/q2-file-picker.entry.js +20 -7
  257. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  258. package/dist/esm/q2-form.entry.js +2 -2
  259. package/dist/esm/q2-form.entry.js.map +1 -1
  260. package/dist/esm/q2-formatted-text.entry.js +1 -1
  261. package/dist/esm/q2-grid-area.entry.js +129 -0
  262. package/dist/esm/q2-grid-area.entry.js.map +1 -0
  263. package/dist/esm/q2-grid.entry.js +105 -0
  264. package/dist/esm/q2-grid.entry.js.map +1 -0
  265. package/dist/esm/q2-item_3.entry.js +4 -4
  266. package/dist/esm/q2-item_3.entry.js.map +1 -1
  267. package/dist/esm/q2-legend.entry.js +1 -1
  268. package/dist/esm/q2-loc.entry.js +1 -1
  269. package/dist/esm/q2-message.entry.js +2 -2
  270. package/dist/esm/q2-modal.entry.js +2 -2
  271. package/dist/esm/q2-month-picker.entry.js +3 -3
  272. package/dist/esm/q2-optgroup.entry.js +2 -2
  273. package/dist/esm/q2-option-list_2.entry.js +18 -6
  274. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  275. package/dist/esm/q2-option.entry.js +1 -1
  276. package/dist/esm/q2-pagination.entry.js +4 -4
  277. package/dist/esm/q2-pill.entry.js +2 -2
  278. package/dist/esm/q2-radio-group.entry.js +2 -2
  279. package/dist/esm/q2-radio.entry.js +2 -2
  280. package/dist/esm/q2-relative-time.entry.js +2 -2
  281. package/dist/esm/q2-resize-observer.entry.js +1 -1
  282. package/dist/esm/q2-section.entry.js +3 -3
  283. package/dist/esm/q2-select.entry.js +3 -3
  284. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  285. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  286. package/dist/esm/q2-stepper.entry.js +2 -2
  287. package/dist/esm/q2-tag.entry.js +2 -2
  288. package/dist/esm/q2-tecton-elements.js +1 -1
  289. package/dist/esm/q2-textarea.entry.js +2 -2
  290. package/dist/esm/q2-tooltip.entry.js +1 -1
  291. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  292. package/dist/q2-tecton-elements/assets/brand.symbol.svg +1 -1
  293. package/dist/q2-tecton-elements/assets/browsersos.symbol.svg +1 -0
  294. package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
  295. package/dist/{collection/components/q2-icon/assets/system.symbol.svg → q2-tecton-elements/assets/devices.symbol.svg} +1 -1
  296. package/dist/q2-tecton-elements/assets/icon-file-list.json +1 -1
  297. package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
  298. package/dist/q2-tecton-elements/assets/legacy.symbol.svg +1 -1
  299. package/dist/q2-tecton-elements/assets/mobile.symbol.svg +1 -1
  300. package/dist/q2-tecton-elements/{index-f2a66217.js → index-c215e8ef.js} +6 -2
  301. package/dist/q2-tecton-elements/index-c215e8ef.js.map +1 -0
  302. package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
  303. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +9 -9
  304. package/dist/q2-tecton-elements/q2-avatar.entry.js +7 -7
  305. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  306. package/dist/q2-tecton-elements/q2-badge_7.entry.js +70 -68
  307. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  308. package/dist/q2-tecton-elements/q2-calendar.entry.js +3 -3
  309. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  310. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  311. package/dist/q2-tecton-elements/q2-carousel.entry.js +2 -2
  312. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  313. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +80 -80
  314. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
  315. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +11 -11
  316. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  317. package/dist/q2-tecton-elements/q2-checkbox.entry.js +12 -12
  318. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  319. package/dist/q2-tecton-elements/q2-currency.entry.js +7 -7
  320. package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -1
  321. package/dist/q2-tecton-elements/q2-data-table.entry.js +2 -2
  322. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  323. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  324. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  325. package/dist/q2-tecton-elements/q2-dropdown.entry.js +6 -6
  326. package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
  327. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  328. package/dist/q2-tecton-elements/q2-file-picker.entry.js +31 -20
  329. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  330. package/dist/q2-tecton-elements/q2-form.entry.js +10 -10
  331. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -1
  332. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  333. package/dist/q2-tecton-elements/q2-grid-area.entry.js +135 -0
  334. package/dist/q2-tecton-elements/q2-grid-area.entry.js.map +1 -0
  335. package/dist/q2-tecton-elements/q2-grid.entry.js +114 -0
  336. package/dist/q2-tecton-elements/q2-grid.entry.js.map +1 -0
  337. package/dist/q2-tecton-elements/q2-item_3.entry.js +20 -20
  338. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  339. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  340. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  341. package/dist/q2-tecton-elements/q2-message.entry.js +6 -6
  342. package/dist/q2-tecton-elements/q2-modal.entry.js +18 -18
  343. package/dist/q2-tecton-elements/q2-month-picker.entry.js +30 -30
  344. package/dist/q2-tecton-elements/q2-optgroup.entry.js +5 -5
  345. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +41 -31
  346. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  347. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  348. package/dist/q2-tecton-elements/q2-pagination.entry.js +25 -25
  349. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  350. package/dist/q2-tecton-elements/q2-radio-group.entry.js +32 -32
  351. package/dist/q2-tecton-elements/q2-radio.entry.js +9 -9
  352. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  353. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  354. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  355. package/dist/q2-tecton-elements/q2-select.entry.js +6 -6
  356. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +12 -12
  357. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  358. package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
  359. package/dist/q2-tecton-elements/q2-tag.entry.js +6 -6
  360. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  361. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  362. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  363. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  364. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  365. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +31 -17
  366. package/dist/types/components/q2-grid/q2-grid.d.ts +157 -0
  367. package/dist/types/components/q2-grid-area/q2-grid-area.d.ts +168 -0
  368. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  369. package/dist/types/components/q2-popover/q2-popover.d.ts +23 -0
  370. package/dist/types/components.d.ts +698 -6
  371. package/dist/types/util.d.ts +2 -2
  372. package/dist/types/utils/helpers.d.ts +1 -0
  373. package/dist/types/utils/index.d.ts +1 -0
  374. package/package.json +3 -3
  375. package/dist/cjs/index-905f4c87.js.map +0 -1
  376. package/dist/esm/index-f2a66217.js.map +0 -1
  377. package/dist/q2-tecton-elements/index-f2a66217.js.map +0 -1
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-e7e68b1e.js');
6
- const index$1 = require('./index-905f4c87.js');
6
+ const index$1 = require('./index-99667782.js');
7
7
 
8
- const q2FilePickerCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@keyframes growFromCenterFadeIn{from{transform:scaleX(0.75) scaleY(0.75);opacity:0}to{transform:scaleX(1) scaleY(1);opacity:1}}@keyframes shrinkToCenterFadeOut{from{transform:scaleX(1) scaleY(1);opacity:1}to{transform:scaleX(0.75) scaleY(0.75);opacity:0}}:host{--comp-default-file-picker-margin:var(--tct-file-picker-margin-top, var(--t-file-picker-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-file-picker-margin-bottom, var(--t-file-picker-margin-bottom, var(--app-scale-5x, 25px)));display:block;margin:var(--tct-file-picker-margin, var(--comp-default-file-picker-margin))}.browse{text-align:left}.drop-zone-text{color:var(--tct-file-picker-drop-zone-text-color, var(--t-gray-6, #4d4d4d));font-size:var(--tct-file-picker-drop-zone-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-browse-link-font-weight, 700);margin-bottom:0;margin-top:var(--tct-file-picker-drop-zone-text-margin-top, var(--app-scale-2x, 10px))}.description{color:var(--tct-file-picker-description-text-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-description-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-description-font-weight, 400);text-align:var(--tct-file-picker-description-text-align, left)}.drop-zone{align-items:center;background-color:var(--tct-file-picker-drop-zone-background, var(--t-tertiary, #e8f5fc));border-radius:var(--tct-file-picker-drop-zone-border-radius, var(--app-border-radius-2, 6px));border-width:var(--tct-file-picker-drop-zone-border-width, 2px);border-style:var(--tct-file-picker-drop-zone-border-style, dashed);border-color:var(--tct-file-picker-drop-zone-border-color, var(--t-gray-8, #808080));color:var(--tct-file-picker-drop-zone-color, #747474);display:flex;flex-direction:column;font-size:var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);font-weight:var(--tct-file-picker-drop-zone-font-weight, 400);height:var(--tct-file-picker-drop-zone-height, 150px);justify-content:center;padding:var(--tct-file-picker-drop-zone-padding, 20px);text-align:center;width:var(--tct-file-picker-drop-zone-width, 100%)}.drop-zone-highlighted{background-color:var(--tct-file-picker-drop-zone-highlighted-background, var(--tertiary-d-1, #bee1f6));border-color:var(--tct-file-picker-drop-zone-highlighted-border, var(--t-gray-8, #808080))}.fade-in{animation-fill-mode:both;animation-play-state:running;animation:growFromCenterFadeIn 0.2s ease-in}.fade-out{animation:shrinkToCenterFadeOut 0.1s ease-out;animation-play-state:running;animation-fill-mode:both}.file-item{--tct-btn-icon-border-radius:4px;--tct-btn-neutral-text-active-font-color:var(--tct-file-picker-item-close-btn-active-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-focus-visible-outer-ring-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-font-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-hover-outer-ring-color:var(--tct-file-picker-item-close-btn-hover-focus-ring-color, var(--t-gray-1, #0d0d0d));--tct-btn-icon-padding:0;--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-item-body-font-size:var(--tct-file-picker-item-font-size, var(--app-font-size-small, 12px));--tct-item-body-font-weight:var(--tct-file-picker-item-font-weight, 400);--tct-item-border-radius:var(--tct-file-picker-item-border-radius, var(--app-border-radius-3, 12px));--tct-item-border:var(--tct-file-picker-item-border-width, 1px) solid var(--tct-file-picker-item-border-color, var(--t-gray-8, #808080));--tct-item-header-color:var(--tct-file-picker-item-name-color, var(--t-gray-1, #0d0d0d));--tct-item-header-font-size:var(--tct-file-picker-item-name-font-size, var(--app-font-size-small, 12px));--tct-item-header-font-weight:var(--tct-file-picker-item-name-font-weight, 400);--tct-item-padding:var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));text-align:left}.file-item-loading{font-size:var(--tct-file-picker-file-item-loading-size, var(--app-scale-6x, 30px));margin-bottom:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-6x, 30px)) / 8.57);margin-left:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-1x, 5px)) / 2)}.file-list{--tct-list-item-gap:var(--tct-file-picker-section-gap, var(--app-scale-3x, 15px))}.file-list-container{max-height:var(--tct-file-picker-list-max-height, 190px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tct-file-picker-scrollbar-color, var(--t-a11y-gray-color, #949494)) transparent}.file-picker{display:flex;flex-direction:column;gap:var(--tct-file-picker-file-item-gap, var(--app-scale-3x, 15px))}.heading{display:flex;flex-direction:column;gap:var(--tct-file-picker-heading-gap, var(--app-scale-1x, 5px));justify-content:space-between}.icon-success,.icon-error{--tct-icon-size:var(--tct-file-picker-file-item-icon-size, var(--app-scale-6x, 30px));--tct-icon-stroke-width:2px}.label{color:var(--tct-file-picker-label-color, var(--t-gray-1, #0d0d0d));display:inline-block;font-size:var(--tct-file-picker-label-font-size, var(--app-font-size, 14px));font-weight:var(--tct-file-picker-label-font-weight, 600);text-align:var(--tct-file-picker-label-text-align, left)}.loading{font-size:var(--tct-file-picker-loading-size, var(--app-scale-6x, 25px))}.loading-file{color:var(--tct-file-picker-loading-file-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-loading-file-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-file-font-weight, 400);margin:0}.loading-message{color:var(--tct-file-picker-loading-message-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-loading-message-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-message-font-weight, 700);margin-bottom:var(--tct-file-picker-loading-message-margin-bottom, var(--app-scale-2x, 10px));margin-top:var(--tct-file-picker-loading-message-margin-top, var(--app-scale-2x, 10px))}.dismiss-button{height:30px;width:30px}.dismiss-button:hover{--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-hover-color, var(--t-gray-1, #0d0d0d))}[slot=action]{display:flex;align-items:center}";
8
+ const q2FilePickerCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@keyframes growFromCenterFadeIn{from{transform:scaleX(0.75) scaleY(0.75);opacity:0}to{transform:scaleX(1) scaleY(1);opacity:1}}@keyframes shrinkToCenterFadeOut{from{transform:scaleX(1) scaleY(1);opacity:1}to{transform:scaleX(0.75) scaleY(0.75);opacity:0}}:host{--comp-default-file-picker-margin:var(--tct-file-picker-margin-top, var(--t-file-picker-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-file-picker-margin-bottom, var(--t-file-picker-margin-bottom, var(--app-scale-5x, 25px)));display:block;margin:var(--tct-file-picker-margin, var(--comp-default-file-picker-margin))}.browse{text-align:left}.drop-zone-text{color:var(--tct-file-picker-drop-zone-text-color, var(--t-gray-6, #4d4d4d));font-size:var(--tct-file-picker-drop-zone-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-browse-link-font-weight, 700);margin-bottom:0;margin-top:var(--tct-file-picker-drop-zone-text-margin-top, var(--app-scale-2x, 10px))}.description{color:var(--tct-file-picker-description-text-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-description-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-description-font-weight, 400);text-align:var(--tct-file-picker-description-text-align, left)}.drop-zone{align-items:center;background-color:var(--tct-file-picker-drop-zone-background, var(--t-tertiary, #e8f5fc));border-color:var(--tct-file-picker-drop-zone-border-color, var(--t-gray-8, #808080));border-radius:var(--tct-file-picker-drop-zone-border-radius, var(--app-border-radius-2, 6px));border-style:var(--tct-file-picker-drop-zone-border-style, dashed);border-width:var(--tct-file-picker-drop-zone-border-width, 2px);color:var(--tct-file-picker-drop-zone-color, #747474);display:flex;flex-direction:column;font-size:var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);font-weight:var(--tct-file-picker-drop-zone-font-weight, 400);height:var(--tct-file-picker-drop-zone-height, 150px);justify-content:center;max-width:var(--tct-file-picker-drop-zone-max-width, 640px);min-width:var(--tct-file-picker-drop-zone-min-width, 320px);padding:var(--tct-file-picker-drop-zone-padding, 20px);text-align:center;width:var(--tct-file-picker-drop-zone-width, 100%)}.drop-zone-highlighted{background-color:var(--tct-file-picker-drop-zone-highlighted-background, var(--tertiary-d-1, #bee1f6));border-color:var(--tct-file-picker-drop-zone-highlighted-border, var(--t-gray-8, #808080))}.fade-in{animation-fill-mode:both;animation-play-state:running;animation:growFromCenterFadeIn 0.2s ease-in}.fade-out{animation:shrinkToCenterFadeOut 0.1s ease-out;animation-play-state:running;animation-fill-mode:both}.file-item{--tct-btn-icon-border-radius:4px;--tct-btn-neutral-text-active-font-color:var(--tct-file-picker-item-close-btn-active-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-focus-visible-outer-ring-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-font-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-btn-neutral-text-hover-outer-ring-color:var(--tct-file-picker-item-close-btn-hover-focus-ring-color, var(--t-gray-1, #0d0d0d));--tct-btn-icon-padding:0;--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0d0d0d));--tct-item-body-font-size:var(--tct-file-picker-item-font-size, var(--app-font-size-small, 12px));--tct-item-body-font-weight:var(--tct-file-picker-item-font-weight, 400);--tct-item-border-radius:var(--tct-file-picker-item-border-radius, var(--app-border-radius-3, 12px));--tct-item-border:var(--tct-file-picker-item-border-width, 1px) solid var(--tct-file-picker-item-border-color, var(--t-gray-8, #808080));--tct-item-header-color:var(--tct-file-picker-item-name-color, var(--t-gray-1, #0d0d0d));--tct-item-header-font-size:var(--tct-file-picker-item-name-font-size, var(--app-font-size-small, 12px));--tct-item-header-font-weight:var(--tct-file-picker-item-name-font-weight, 400);--tct-item-padding:var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));text-align:left}.file-item-info{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-item-loading{font-size:var(--tct-file-picker-file-item-loading-size, var(--app-scale-6x, 30px));margin-bottom:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-6x, 30px)) / 8.57);margin-left:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-1x, 5px)) / 2)}.file-list{--tct-list-item-gap:var(--tct-file-picker-section-gap, var(--app-scale-3x, 15px))}.file-list-container{max-height:var(--tct-file-picker-list-max-height, 190px);max-width:var(--tct-file-picker-drop-zone-max-width, 640px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tct-file-picker-scrollbar-color, var(--t-a11y-gray-color, #949494)) transparent}.file-picker{display:flex;flex-direction:column;gap:var(--tct-file-picker-file-item-gap, var(--app-scale-3x, 15px))}.heading{display:flex;flex-direction:column;gap:var(--tct-file-picker-heading-gap, var(--app-scale-1x, 5px));justify-content:space-between}.icon-success,.icon-error{--tct-icon-size:var(--tct-file-picker-file-item-icon-size, var(--app-scale-6x, 30px));--tct-icon-stroke-width:2px}.label{color:var(--tct-file-picker-label-color, var(--t-gray-1, #0d0d0d));display:inline-block;font-size:var(--tct-file-picker-label-font-size, var(--app-font-size, 14px));font-weight:var(--tct-file-picker-label-font-weight, 600);text-align:var(--tct-file-picker-label-text-align, left)}.loading{font-size:var(--tct-file-picker-loading-size, var(--app-scale-6x, 25px))}.loading-file{color:var(--tct-file-picker-loading-file-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-loading-file-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-file-font-weight, 400);margin:0}.loading-message{color:var(--tct-file-picker-loading-message-color, var(--t-gray-1, #0d0d0d));font-size:var(--tct-file-picker-loading-message-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-message-font-weight, 700);margin-bottom:var(--tct-file-picker-loading-message-margin-bottom, var(--app-scale-2x, 10px));margin-top:var(--tct-file-picker-loading-message-margin-top, var(--app-scale-2x, 10px))}.dismiss-button{height:30px;width:30px}.dismiss-button:hover{--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-hover-color, var(--t-gray-1, #0d0d0d))}[slot=action]{display:flex;align-items:center}";
9
9
  const Q2FilePickerStyle0 = q2FilePickerCss;
10
10
 
11
11
  const Q2FilePicker = class {
@@ -28,6 +28,8 @@ const Q2FilePicker = class {
28
28
  this.grabSelectedFiles = (e) => {
29
29
  const selectedFiles = Array.from(e.target.files);
30
30
  const filesObject = this.buildFilesObject(selectedFiles);
31
+ // Reset the input value to allow re-selection of the same file
32
+ this.browseButtonInput.value = '';
31
33
  this.emitChange(filesObject);
32
34
  this.value = filesObject;
33
35
  };
@@ -38,15 +40,16 @@ const Q2FilePicker = class {
38
40
  // #endregion
39
41
  // #region Render Methods
40
42
  this.render = () => {
41
- return (index.h("div", { class: "file-picker" }, (this.hasLabel || this.hasDescription) && (index.h("div", { class: "heading" }, this.hasLabel && (index.h("label", { class: "label", htmlFor: "file-field", "test-id": "label" }, !!this.label ? index$1.loc(this.label) : this.hasLabelSlotContent ? index.h("slot", { name: "label" }) : '')), this.hasDescription && (index.h("div", { class: "description", id: "description", "test-id": "description" }, !!this.description ? (index$1.loc(this.description)) : this.hasDescriptionSlotContent ? (index.h("slot", { name: "description" })) : (''))))), (this.variant === 'browse-drop' && (index.h("div", { class: this.dropZoneClasses, onDragEnter: this.disableEvent, onDragLeave: this.dimDropZone, onDragOver: this.highlightDropZone, onDrop: this.grabDroppedFiles, ref: el => (this.dropZone = el !== null && el !== void 0 ? el : this.dropZone), "test-id": "drop-zone" }, (this.areFilesUploading && (index.h(index.Fragment, null, index.h("q2-loading", { class: "loading" }), index.h("p", { class: "drop-zone-text" }, index$1.loc('tecton.element.filePicker.uploadingEllipsis'))))) || (index.h(index.Fragment, null, index.h("q2-icon", { type: "upload" }), index.h("p", { class: "drop-zone-text" }, index.h("q2-link", { label: index$1.loc('tecton.element.filePicker.browse'), onTctClick: () => this.launchFileBrowser(), variant: "inline", "test-id": "browse-link", href: "javascript:void(0)" }), index$1.loc('tecton.element.filePicker.orDragFilesHere', [this.maxFiles]))))))) || (index.h("div", { class: "browse", "test-id": "browse" }, index.h("q2-btn", { disabled: this.areFilesUploading, intent: "workflow-primary", loading: this.areFilesUploading, onClick: () => this.launchFileBrowser(), size: "medium", "test-id": "browse-button" }, index.h("q2-icon", { type: "paperclip" }), index.h("span", null, index$1.loc('tecton.element.filePicker.attachFiles', [this.maxFiles]))))), index.h("input", { "aria-describedby": (!!this.description && 'description') || undefined, class: "sr", id: "file-field", onChange: this.grabSelectedFiles, ref: el => (this.browseButtonInput = el !== null && el !== void 0 ? el : this.browseButtonInput), type: "file", "test-id": "file-input", multiple: true }), index.h("div", { class: "file-list-container" }, index.h("q2-list", { class: "file-list" }, this.displayedFiles.map(file => (index.h("q2-item", { class: this.getFileItemClasses(file.file.name), key: file.file.name, onAnimationEnd: this.getAnimationendHandlerToRemoveFileItem(file.file.name) }, index.h("div", { slot: "bullet" }, file.status === 'invalid-type' ||
43
+ return (index.h("div", { class: "file-picker" }, (this.hasLabel || this.hasDescription) && (index.h("div", { class: "heading" }, this.hasLabel && (index.h("label", { class: "label", htmlFor: "file-field", "test-id": "label" }, !!this.label ? index$1.loc(this.label) : this.hasLabelSlotContent ? index.h("slot", { name: "label" }) : '')), this.hasDescription && (index.h("div", { class: "description", id: "description", "test-id": "description" }, !!this.description ? (index$1.loc(this.description)) : this.hasDescriptionSlotContent ? (index.h("slot", { name: "description" })) : (''))))), (this.variant === 'browse-drop' && (index.h("div", { class: this.dropZoneClasses, onDragEnter: this.disableEvent, onDragLeave: this.dimDropZone, onDragOver: this.highlightDropZone, onDrop: this.grabDroppedFiles, ref: el => (this.dropZone = el !== null && el !== void 0 ? el : this.dropZone), "test-id": "drop-zone" }, (this.areFilesUploading && (index.h(index.Fragment, null, index.h("q2-loading", { class: "loading" }), index.h("p", { class: "drop-zone-text" }, index$1.loc('tecton.element.filePicker.uploadingEllipsis'))))) || (index.h(index.Fragment, null, index.h("q2-icon", { type: "upload" }), index.h("p", { class: "drop-zone-text" }, index.h("q2-link", { label: index$1.loc('tecton.element.filePicker.browse'), onTctClick: () => this.launchFileBrowser(), variant: "inline", "test-id": "browse-link", href: "javascript:void(0)" }), index$1.loc('tecton.element.filePicker.orDragFilesHere', [this.maxFiles]))))))) || (index.h("div", { class: "browse", "test-id": "browse" }, index.h("q2-btn", { disabled: this.areFilesUploading, intent: "workflow-primary", loading: this.areFilesUploading, onClick: () => this.launchFileBrowser(), size: this.actualButtonSize, "test-id": "browse-button" }, index.h("q2-icon", { type: "paperclip" }), index.h("span", null, index$1.loc('tecton.element.filePicker.attachFiles', [this.maxFiles]))))), index.h("input", { "aria-describedby": (!!this.description && 'description') || undefined, class: "sr", id: "file-field", onChange: this.grabSelectedFiles, ref: el => (this.browseButtonInput = el !== null && el !== void 0 ? el : this.browseButtonInput), type: "file", "test-id": "file-input", multiple: true }), index.h("div", { class: "file-list-container" }, index.h("q2-list", { class: "file-list" }, this.displayedFiles.map(file => (index.h("q2-item", { class: this.getFileItemClasses(file.file.name), key: file.file.name, onAnimationEnd: this.getAnimationendHandlerToRemoveFileItem(file.file.name) }, index.h("div", { slot: "bullet" }, file.status === 'invalid-type' ||
42
44
  file.status === 'over-size-limit' ||
43
45
  file.status === 'failed' ||
44
- file.status === 'over-max-files-limit' ? (index.h("q2-icon", { class: "icon-error", type: "error" })) : file.status === 'in-progress' ? (index.h("q2-loading", { class: "file-item-loading" })) : (index.h("q2-icon", { class: "icon-success", type: "success" }))), index.h("div", { slot: "header" }, file.file.name), index.h("div", { slot: "body" }, this.getFileItemStatusMessage(file.status, file.file.size)), index.h("div", { slot: "action" }, index.h("q2-btn", { class: "dismiss-button", intent: "neutral-text", onClick: this.getClickHandlerToRemoveFileItem(file.file.name) }, index.h("q2-icon", { type: "close" }))))))))));
46
+ file.status === 'over-max-files-limit' ? (index.h("q2-icon", { class: "icon-error", type: "error" })) : file.status === 'in-progress' ? (index.h("q2-loading", { class: "file-item-loading" })) : (index.h("q2-icon", { class: "icon-success", type: "success" }))), index.h("div", { slot: "header" }, file.file.name), index.h("div", { class: "file-item-info", slot: "body" }, this.getFileItemStatusMessage(file)), index.h("div", { slot: "action" }, index.h("q2-btn", { class: "dismiss-button", intent: "neutral-text", onClick: this.getClickHandlerToRemoveFileItem(file.file.name) }, index.h("q2-icon", { type: "close" }))))))))));
45
47
  };
46
48
  this.areFilesUploading = false;
47
49
  this.displayedFiles = [];
48
50
  this.isDropZoneHighlighted = false;
49
51
  this.refreshCounter = 0;
52
+ this.buttonSize = 'medium';
50
53
  this.description = undefined;
51
54
  this.fileTypes = [];
52
55
  this.label = undefined;
@@ -69,6 +72,9 @@ const Q2FilePicker = class {
69
72
  const matchingDisplayedFileIndex = this.displayedFiles.findIndex(file => file.file.name === statusItem.name);
70
73
  if (matchingDisplayedFileIndex > -1) {
71
74
  this.displayedFiles[matchingDisplayedFileIndex].status = statusItem.status;
75
+ if (statusItem.status === 'failed' && statusItem.message) {
76
+ this.displayedFiles[matchingDisplayedFileIndex].message = statusItem.message;
77
+ }
72
78
  this.disableLoaderIfAllFilesUploaded();
73
79
  }
74
80
  }
@@ -76,6 +82,9 @@ const Q2FilePicker = class {
76
82
  }
77
83
  // #endregion
78
84
  // #region Local Methods
85
+ get actualButtonSize() {
86
+ return this.buttonSize === 'none' ? undefined : this.buttonSize;
87
+ }
79
88
  get dropZoneClasses() {
80
89
  const classes = ['drop-zone'];
81
90
  if (this.isDropZoneHighlighted) {
@@ -204,8 +213,8 @@ const Q2FilePicker = class {
204
213
  }
205
214
  return classes.join(' ');
206
215
  }
207
- getFileItemStatusMessage(status, size) {
208
- switch (status) {
216
+ getFileItemStatusMessage(displayedFile) {
217
+ switch (displayedFile.status) {
209
218
  case 'invalid-type':
210
219
  return index$1.loc('tecton.element.filePicker.unsupportedFileType');
211
220
  case 'over-size-limit':
@@ -215,10 +224,14 @@ const Q2FilePicker = class {
215
224
  case 'in-progress':
216
225
  return index$1.loc('tecton.element.filePicker.uploadingEllipsis');
217
226
  case 'failed':
227
+ if (displayedFile.message)
228
+ return index$1.loc(displayedFile.message);
218
229
  return index$1.loc('tecton.element.filePicker.uploadFailed');
219
230
  case 'uploaded':
220
231
  default:
221
- return index$1.loc('tecton.element.filePicker.fileSize', [(size / (1000 * 1000)).toFixed(2)]);
232
+ return index$1.loc('tecton.element.filePicker.fileSize', [
233
+ (displayedFile.file.size / (1000 * 1000)).toFixed(2),
234
+ ]);
222
235
  }
223
236
  }
224
237
  launchFileBrowser() {
@@ -1 +1 @@
1
- {"file":"q2-file-picker.entry.cjs.js","mappings":"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","names":["h","loc","Fragment","hasSlotContent"],"sources":["src/components/q2-file-picker/q2-file-picker.scss?tag=q2-file-picker&encapsulation=shadow","src/components/q2-file-picker/q2-file-picker.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n@keyframes growFromCenterFadeIn {\n from {\n transform: scaleX(0.75) scaleY(0.75);\n opacity: 0;\n }\n to {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n}\n\n@keyframes shrinkToCenterFadeOut {\n from {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n to {\n transform: scaleX(0.75) scaleY(0.75);\n opacity: 0;\n }\n}\n\n:host {\n --comp-default-file-picker-margin: #{var-list(var-prefixer(file-picker-margin-top), --app-scale-5x, 25px) 0\n var-list(var-prefixer(file-picker-margin-bottom), --app-scale-5x, 25px)};\n display: block;\n margin: var-list(--tct-file-picker-margin, --comp-default-file-picker-margin);\n}\n\n.browse {\n text-align: left;\n}\n\n.drop-zone-text {\n color: var-list(--tct-file-picker-drop-zone-text-color, --t-gray-6, #4d4d4d);\n font-size: var-list(--tct-file-picker-drop-zone-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-browse-link-font-weight, 700);\n margin-bottom: 0;\n margin-top: var-list(--tct-file-picker-drop-zone-text-margin-top, --app-scale-2x, 10px);\n}\n\n.description {\n color: var-list(--tct-file-picker-description-text-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-description-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-description-font-weight, 400);\n text-align: var(--tct-file-picker-description-text-align, left);\n}\n\n.drop-zone {\n align-items: center;\n background-color: var-list(--tct-file-picker-drop-zone-background, --t-tertiary, #e8f5fc);\n border-radius: var-list(--tct-file-picker-drop-zone-border-radius, --app-border-radius-2, 6px);\n border-width: var(--tct-file-picker-drop-zone-border-width, 2px);\n border-style: var(--tct-file-picker-drop-zone-border-style, dashed);\n border-color: var-list(--tct-file-picker-drop-zone-border-color, --t-gray-8, #808080);\n color: var(--tct-file-picker-drop-zone-color, #747474);\n display: flex;\n flex-direction: column;\n font-size: var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-drop-zone-font-weight, 400);\n height: var(--tct-file-picker-drop-zone-height, 150px);\n justify-content: center;\n padding: var(--tct-file-picker-drop-zone-padding, 20px);\n text-align: center;\n width: var(--tct-file-picker-drop-zone-width, 100%);\n}\n\n.drop-zone-highlighted {\n background-color: var-list(--tct-file-picker-drop-zone-highlighted-background, --tertiary-d-1, #bee1f6);\n border-color: var-list(--tct-file-picker-drop-zone-highlighted-border, --t-gray-8, #808080);\n}\n\n.fade-in {\n animation-fill-mode: both;\n animation-play-state: running;\n animation: growFromCenterFadeIn 0.2s ease-in;\n}\n\n.fade-out {\n animation: shrinkToCenterFadeOut 0.1s ease-out;\n animation-play-state: running;\n animation-fill-mode: both;\n}\n\n.file-item {\n --tct-btn-icon-border-radius: 4px;\n --tct-btn-neutral-text-active-font-color: #{var-list(\n --tct-file-picker-item-close-btn-active-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-neutral-text-focus-visible-outer-ring-color: #{var-list(\n --tct-file-picker-item-close-btn-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-neutral-text-font-color: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0d0d0d)};\n --tct-btn-neutral-text-hover-outer-ring-color: #{var-list(\n --tct-file-picker-item-close-btn-hover-focus-ring-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-icon-padding: 0;\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0d0d0d)};\n --tct-item-body-font-size: #{var-list(--tct-file-picker-item-font-size, --app-font-size-small, 12px)};\n --tct-item-body-font-weight: var(--tct-file-picker-item-font-weight, 400);\n --tct-item-border-radius: #{var-list(--tct-file-picker-item-border-radius, --app-border-radius-3, 12px)};\n --tct-item-border: var(--tct-file-picker-item-border-width, 1px) solid #{var-list(\n --tct-file-picker-item-border-color,\n --t-gray-8,\n #808080\n )};\n --tct-item-header-color: #{var-list(--tct-file-picker-item-name-color, --t-gray-1, #0d0d0d)};\n --tct-item-header-font-size: #{var-list(--tct-file-picker-item-name-font-size, --app-font-size-small, 12px)};\n --tct-item-header-font-weight: var(--tct-file-picker-item-name-font-weight, 400);\n --tct-item-padding: var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));\n text-align: left;\n}\n\n.file-item-loading {\n font-size: var-list(--tct-file-picker-file-item-loading-size, --app-scale-6x, 30px);\n // FIXME: This is a temporary fix to match the height of the closing icon which has 3.5px of padding I can't account for\n margin-bottom: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-6x, 30px) / 8.57);\n margin-left: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-1x, 5px) / 2);\n}\n\n.file-list {\n --tct-list-item-gap: #{var-list(--tct-file-picker-section-gap, --app-scale-3x, 15px)};\n}\n\n.file-list-container {\n max-height: var(--tct-file-picker-list-max-height, 190px);\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: #{var-list(--tct-file-picker-scrollbar-color, --t-a11y-gray-color, #949494)} transparent;\n}\n\n.file-picker {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-file-item-gap, --app-scale-3x, 15px)};\n}\n\n.heading {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-heading-gap, --app-scale-1x, 5px)};\n justify-content: space-between;\n}\n\n.icon-success,\n.icon-error {\n --tct-icon-size: #{var-list(--tct-file-picker-file-item-icon-size, --app-scale-6x, 30px)};\n --tct-icon-stroke-width: 2px;\n}\n\n.label {\n color: var-list(--tct-file-picker-label-color, --t-gray-1, #0d0d0d);\n display: inline-block;\n font-size: var-list(--tct-file-picker-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-label-font-weight, 600);\n text-align: var(--tct-file-picker-label-text-align, left);\n}\n\n.loading {\n font-size: var-list(--tct-file-picker-loading-size, --app-scale-6x, 25px);\n}\n\n.loading-file {\n color: var-list(--tct-file-picker-loading-file-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-loading-file-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-file-font-weight, 400);\n margin: 0;\n}\n\n.loading-message {\n color: var-list(--tct-file-picker-loading-message-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-loading-message-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-message-font-weight, 700);\n margin-bottom: var-list(--tct-file-picker-loading-message-margin-bottom, --app-scale-2x, 10px);\n margin-top: var-list(--tct-file-picker-loading-message-margin-top, --app-scale-2x, 10px);\n}\n\n.dismiss-button {\n height: 30px;\n width: 30px;\n &:hover {\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-hover-color, --t-gray-1, #0d0d0d)};\n }\n}\n\n[slot='action'] {\n display: flex;\n align-items: center;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { hasSlotContent, loc } from 'src/utils';\n\ntype FileStatus = 'invalid-type' | 'over-size-limit' | 'over-max-files-limit' | 'in-progress' | 'failed' | 'uploaded';\nexport type FilesObject = {\n invalidFiles: {\n file: File;\n status: 'invalid-type' | 'over-size-limit' | 'over-max-files-limit' | 'in-progress' | 'failed' | 'uploaded';\n }[];\n validFiles: File[];\n};\n\n@Component({\n tag: 'q2-file-picker',\n styleUrl: 'q2-file-picker.scss',\n shadow: true,\n})\nexport class Q2FilePicker implements ComponentInterface {\n // #region Own Properties\n\n browseButtonInput: HTMLElement;\n dropZone: HTMLElement;\n fileItemsToBeDeleted;\n queuedFiles: File[] = [];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n areFilesUploading: boolean = false;\n\n @State()\n displayedFiles: {\n file: File;\n status: FileStatus;\n toBeRemoved?: boolean;\n }[] = [];\n\n @State()\n isDropZoneHighlighted: boolean = false;\n\n @State()\n refreshCounter = 0;\n\n // #endregion\n // #region Public Property API\n\n /**\n * A description of the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Allowed file types based on extensions (e.g., ['jpg', 'png', 'pdf'] or\n * 'jpg, png, pdf'). When using the attribute, provide a comma-separated\n * string (e.g., 'jpg, png, pdf'). Arrays can only be set programmatically\n * via JavaScript.\n */\n @Prop({ reflect: true })\n fileTypes: string[] | string = [];\n\n /**\n * The label for the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * The maximum number of files that can be selected.\n */\n @Prop({ reflect: true })\n // maxFiles: number | string = Infinity;\n maxFiles: number = Infinity;\n\n /**\n * The maximum size (in bytes) of any file that can be selected.\n */\n @Prop({ reflect: true })\n maxFileSize: number = Infinity;\n\n /**\n * An array of objects representing the status of the files being uploaded.\n * Each object should have a `name` property (the file name) and a `status`\n * property (the status of the file) that equals either 'in-progress',\n * 'failed' or 'uploaded'.\n */\n @Prop({ reflect: true })\n status: { name: string; status: 'in-progress' | 'failed' | 'uploaded' }[] = [];\n\n /**\n * Returns an array of File objects representing the files selected by the\n * user. If no files are selected, the value is an empty array.\n * @readonly\n */\n @Prop({ mutable: true })\n value: FilesObject = { invalidFiles: [], validFiles: [] }; // Ensure FilesObject is exported or imported correctly\n\n /**\n * Determines if the file picker is a browse button or a drop zone with a\n * browse link.\n */\n @Prop({ reflect: true })\n variant: 'browse' | 'browse-drop' = 'browse';\n\n // #endregion\n // #region Events\n\n @Event()\n tctChange: EventEmitter<FilesObject>;\n\n // #endregion\n // #region Watchers\n\n @Watch('status')\n updateFileList(newValue: { name: string; status: FileStatus }[]) {\n newValue.forEach(statusItem => {\n const matchingQueuedFileIndex = this.queuedFiles.findIndex(file => file.name === statusItem.name);\n if (matchingQueuedFileIndex > -1) {\n const matchingFile = this.queuedFiles.splice(matchingQueuedFileIndex, 1)[0];\n this.displayedFiles = [{ file: matchingFile, status: statusItem.status }, ...this.displayedFiles];\n } else {\n const matchingDisplayedFileIndex = this.displayedFiles.findIndex(\n file => file.file.name === statusItem.name\n );\n if (matchingDisplayedFileIndex > -1) {\n this.displayedFiles[matchingDisplayedFileIndex].status = statusItem.status;\n this.disableLoaderIfAllFilesUploaded();\n }\n }\n });\n }\n\n // #endregion\n // #region Local Methods\n\n get dropZoneClasses() {\n const classes = ['drop-zone'];\n if (this.isDropZoneHighlighted) {\n classes.push('drop-zone-highlighted');\n }\n\n return classes.join(' ');\n }\n\n get fileTypesArray() {\n return Array.isArray(this.fileTypes) ? this.fileTypes : this.fileTypes.split(',').map(type => type.trim());\n }\n\n get hasDescription() {\n return !!this.description || this.hasDescriptionSlotContent;\n }\n\n get hasDescriptionSlotContent() {\n return hasSlotContent(this.el, 'description');\n }\n\n get hasLabel() {\n return !!this.label || this.hasLabelSlotContent;\n }\n\n get hasLabelSlotContent() {\n return hasSlotContent(this.el, 'label');\n }\n\n buildFilesObject(filesToUpload: File[]): FilesObject {\n const invalidFiles = [];\n invalidFiles.push(...this.extractFilesOfInvalidTypes(filesToUpload));\n invalidFiles.push(...this.extractFilesOverSizeLimit(filesToUpload));\n invalidFiles.push(...this.extractFilesOverMaxFilesLimit(filesToUpload));\n this.displayedFiles = [...invalidFiles];\n\n if (filesToUpload.length === 0) {\n this.areFilesUploading = false;\n } else {\n this.queuedFiles = filesToUpload;\n }\n\n return { invalidFiles, validFiles: filesToUpload };\n }\n\n dimDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n };\n\n disableEvent(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n disableLoaderIfAllFilesUploaded() {\n if (this.queuedFiles.length === 0 && !this.displayedFiles.some(file => file.status === 'in-progress')) {\n this.areFilesUploading = false;\n }\n }\n\n emitChange(filesObject: FilesObject) {\n this.areFilesUploading = filesObject.validFiles.length > 0;\n this.tctChange.emit(filesObject);\n }\n\n extractFilesOfInvalidTypes(files: File[]) {\n const invalidFiles = [];\n\n if (this.fileTypesArray.length === 0) return invalidFiles;\n\n files.forEach(file => {\n const fileExtension = file.name.split('.').pop().toLowerCase();\n if (!this.fileTypesArray.includes(fileExtension)) {\n invalidFiles.push({ file, status: 'invalid-type' });\n }\n });\n\n // Remove invalid files from the files array\n invalidFiles.forEach(invalidFile => {\n const index = files.indexOf(invalidFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return invalidFiles;\n }\n\n extractFilesOverMaxFilesLimit(files: File[]) {\n const filesOverMaxFilesLimit = [];\n\n if (this.maxFiles === Infinity) return filesOverMaxFilesLimit;\n\n if (files.length > this.maxFiles) {\n const excessFiles = files.splice(this.maxFiles);\n excessFiles.forEach(file => {\n filesOverMaxFilesLimit.push({ file, status: 'over-max-files-limit' });\n });\n }\n\n return filesOverMaxFilesLimit;\n }\n\n extractFilesOverSizeLimit(files: File[]) {\n const filesOverSizeLimit = [];\n\n if (this.maxFileSize === Infinity) return filesOverSizeLimit;\n\n files.forEach(file => {\n if (file.size > this.maxFileSize) {\n filesOverSizeLimit.push({ file, status: 'over-size-limit' });\n }\n });\n\n // Remove files over size limit from the files array\n filesOverSizeLimit.forEach(overSizeFile => {\n const index = files.indexOf(overSizeFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return filesOverSizeLimit;\n }\n\n forceRerender() {\n this.refreshCounter += 1; // Triggers re-render\n }\n\n getAnimationendHandlerToRemoveFileItem(fileName: string) {\n return (e: AnimationEvent) => {\n if (e.animationName === 'shrinkToCenterFadeOut') {\n this.displayedFiles = this.displayedFiles.filter(file => file.file.name !== fileName);\n }\n };\n }\n\n getClickHandlerToRemoveFileItem(fileName: string) {\n return () => {\n const fileToDelete = this.displayedFiles.find(file => file.file.name === fileName);\n if (fileToDelete) {\n fileToDelete.toBeRemoved = true;\n this.forceRerender();\n }\n };\n }\n\n getFileItemClasses(fileName: string) {\n const classes = ['file-item'];\n const matchingFile = this.displayedFiles.find(file => file.file.name === fileName);\n if (matchingFile?.toBeRemoved) {\n classes.push('fade-out');\n } else {\n classes.push('fade-in');\n }\n return classes.join(' ');\n }\n\n getFileItemStatusMessage(status: FileStatus, size: number) {\n switch (status) {\n case 'invalid-type':\n return loc('tecton.element.filePicker.unsupportedFileType');\n case 'over-size-limit':\n return loc('tecton.element.filePicker.sizeExceedsLimit');\n case 'over-max-files-limit':\n return loc('tecton.element.filePicker.overMaxFilesLimit');\n case 'in-progress':\n return loc('tecton.element.filePicker.uploadingEllipsis');\n case 'failed':\n return loc('tecton.element.filePicker.uploadFailed');\n case 'uploaded':\n default:\n return loc('tecton.element.filePicker.fileSize', [(size / (1000 * 1000)).toFixed(2)]);\n }\n }\n\n grabDroppedFiles = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n const droppedFiles = Array.from(e.dataTransfer.files);\n const filesObject = this.buildFilesObject(droppedFiles);\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n grabSelectedFiles = (e: Event) => {\n const selectedFiles = Array.from((e.target as HTMLInputElement).files);\n const filesObject = this.buildFilesObject(selectedFiles);\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n highlightDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = true;\n };\n\n launchFileBrowser() {\n this.browseButtonInput.dispatchEvent(new MouseEvent('click'));\n }\n\n // #endregion\n // #region Render Methods\n\n render = () => {\n return (\n <div class=\"file-picker\">\n {(this.hasLabel || this.hasDescription) && (\n <div class=\"heading\">\n {this.hasLabel && (\n <label\n class=\"label\"\n htmlFor=\"file-field\"\n test-id=\"label\"\n >\n {!!this.label ? loc(this.label) : this.hasLabelSlotContent ? <slot name=\"label\" /> : ''}\n </label>\n )}\n {this.hasDescription && (\n <div\n class=\"description\"\n id=\"description\"\n test-id=\"description\"\n >\n {!!this.description ? (\n loc(this.description)\n ) : this.hasDescriptionSlotContent ? (\n <slot name=\"description\" />\n ) : (\n ''\n )}\n </div>\n )}\n </div>\n )}\n\n {(this.variant === 'browse-drop' && (\n <div\n class={this.dropZoneClasses}\n onDragEnter={this.disableEvent}\n onDragLeave={this.dimDropZone}\n onDragOver={this.highlightDropZone}\n onDrop={this.grabDroppedFiles}\n ref={el => (this.dropZone = el ?? this.dropZone)}\n test-id=\"drop-zone\"\n >\n {(this.areFilesUploading && (\n <Fragment>\n <q2-loading class=\"loading\"></q2-loading>\n <p class=\"drop-zone-text\">{loc('tecton.element.filePicker.uploadingEllipsis')}</p>\n </Fragment>\n )) || (\n <Fragment>\n <q2-icon type=\"upload\"></q2-icon>\n <p class=\"drop-zone-text\">\n <q2-link\n label={loc('tecton.element.filePicker.browse')}\n onTctClick={() => this.launchFileBrowser()}\n variant=\"inline\"\n test-id=\"browse-link\"\n href=\"javascript:void(0)\"\n />\n {loc('tecton.element.filePicker.orDragFilesHere', [this.maxFiles])}\n </p>\n </Fragment>\n )}\n </div>\n )) || (\n <div\n class=\"browse\"\n test-id=\"browse\"\n >\n <q2-btn\n disabled={this.areFilesUploading}\n intent=\"workflow-primary\"\n loading={this.areFilesUploading}\n onClick={() => this.launchFileBrowser()}\n size=\"medium\"\n test-id=\"browse-button\"\n >\n <q2-icon type=\"paperclip\"></q2-icon>\n <span>{loc('tecton.element.filePicker.attachFiles', [this.maxFiles])}</span>\n </q2-btn>\n </div>\n )}\n <input\n aria-describedby={(!!this.description && 'description') || undefined}\n class=\"sr\"\n id=\"file-field\"\n onChange={this.grabSelectedFiles}\n ref={el => (this.browseButtonInput = el ?? this.browseButtonInput)}\n type=\"file\"\n test-id=\"file-input\"\n multiple\n />\n <div class=\"file-list-container\">\n <q2-list class=\"file-list\">\n {this.displayedFiles.map(file => (\n <q2-item\n class={this.getFileItemClasses(file.file.name)}\n key={file.file.name}\n onAnimationEnd={this.getAnimationendHandlerToRemoveFileItem(file.file.name)}\n >\n <div slot=\"bullet\">\n {file.status === 'invalid-type' ||\n file.status === 'over-size-limit' ||\n file.status === 'failed' ||\n file.status === 'over-max-files-limit' ? (\n <q2-icon\n class=\"icon-error\"\n type=\"error\"\n ></q2-icon>\n ) : file.status === 'in-progress' ? (\n <q2-loading class=\"file-item-loading\"></q2-loading>\n ) : (\n <q2-icon\n class=\"icon-success\"\n type=\"success\"\n ></q2-icon>\n )}\n </div>\n <div slot=\"header\">{file.file.name}</div>\n <div slot=\"body\">{this.getFileItemStatusMessage(file.status, file.file.size)}</div>\n <div slot=\"action\">\n <q2-btn\n class=\"dismiss-button\"\n intent=\"neutral-text\"\n onClick={this.getClickHandlerToRemoveFileItem(file.file.name)}\n >\n <q2-icon type=\"close\"></q2-icon>\n </q2-btn>\n </div>\n </q2-item>\n ))}\n </q2-list>\n </div>\n </div>\n );\n };\n\n // #endregion\n}\n"],"version":3}
1
+ {"file":"q2-file-picker.entry.cjs.js","mappings":"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","names":["h","loc","Fragment","hasSlotContent"],"sources":["src/components/q2-file-picker/q2-file-picker.scss?tag=q2-file-picker&encapsulation=shadow","src/components/q2-file-picker/q2-file-picker.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n@keyframes growFromCenterFadeIn {\n from {\n transform: scaleX(0.75) scaleY(0.75);\n opacity: 0;\n }\n to {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n}\n\n@keyframes shrinkToCenterFadeOut {\n from {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n to {\n transform: scaleX(0.75) scaleY(0.75);\n opacity: 0;\n }\n}\n\n:host {\n --comp-default-file-picker-margin: #{var-list(var-prefixer(file-picker-margin-top), --app-scale-5x, 25px) 0\n var-list(var-prefixer(file-picker-margin-bottom), --app-scale-5x, 25px)};\n display: block;\n margin: var-list(--tct-file-picker-margin, --comp-default-file-picker-margin);\n}\n\n.browse {\n text-align: left;\n}\n\n.drop-zone-text {\n color: var-list(--tct-file-picker-drop-zone-text-color, --t-gray-6, #4d4d4d);\n font-size: var-list(--tct-file-picker-drop-zone-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-browse-link-font-weight, 700);\n margin-bottom: 0;\n margin-top: var-list(--tct-file-picker-drop-zone-text-margin-top, --app-scale-2x, 10px);\n}\n\n.description {\n color: var-list(--tct-file-picker-description-text-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-description-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-description-font-weight, 400);\n text-align: var(--tct-file-picker-description-text-align, left);\n}\n\n.drop-zone {\n align-items: center;\n background-color: var-list(--tct-file-picker-drop-zone-background, --t-tertiary, #e8f5fc);\n border-color: var-list(--tct-file-picker-drop-zone-border-color, --t-gray-8, #808080);\n border-radius: var-list(--tct-file-picker-drop-zone-border-radius, --app-border-radius-2, 6px);\n border-style: var(--tct-file-picker-drop-zone-border-style, dashed);\n border-width: var(--tct-file-picker-drop-zone-border-width, 2px);\n color: var(--tct-file-picker-drop-zone-color, #747474);\n display: flex;\n flex-direction: column;\n font-size: var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-drop-zone-font-weight, 400);\n height: var(--tct-file-picker-drop-zone-height, 150px);\n justify-content: center;\n max-width: var(--tct-file-picker-drop-zone-max-width, 640px);\n min-width: var(--tct-file-picker-drop-zone-min-width, 320px);\n padding: var(--tct-file-picker-drop-zone-padding, 20px);\n text-align: center;\n width: var(--tct-file-picker-drop-zone-width, 100%);\n}\n\n.drop-zone-highlighted {\n background-color: var-list(--tct-file-picker-drop-zone-highlighted-background, --tertiary-d-1, #bee1f6);\n border-color: var-list(--tct-file-picker-drop-zone-highlighted-border, --t-gray-8, #808080);\n}\n\n.fade-in {\n animation-fill-mode: both;\n animation-play-state: running;\n animation: growFromCenterFadeIn 0.2s ease-in;\n}\n\n.fade-out {\n animation: shrinkToCenterFadeOut 0.1s ease-out;\n animation-play-state: running;\n animation-fill-mode: both;\n}\n\n.file-item {\n --tct-btn-icon-border-radius: 4px;\n --tct-btn-neutral-text-active-font-color: #{var-list(\n --tct-file-picker-item-close-btn-active-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-neutral-text-focus-visible-outer-ring-color: #{var-list(\n --tct-file-picker-item-close-btn-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-neutral-text-font-color: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0d0d0d)};\n --tct-btn-neutral-text-hover-outer-ring-color: #{var-list(\n --tct-file-picker-item-close-btn-hover-focus-ring-color,\n --t-gray-1,\n #0d0d0d\n )};\n --tct-btn-icon-padding: 0;\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0d0d0d)};\n --tct-item-body-font-size: #{var-list(--tct-file-picker-item-font-size, --app-font-size-small, 12px)};\n --tct-item-body-font-weight: var(--tct-file-picker-item-font-weight, 400);\n --tct-item-border-radius: #{var-list(--tct-file-picker-item-border-radius, --app-border-radius-3, 12px)};\n --tct-item-border: var(--tct-file-picker-item-border-width, 1px) solid #{var-list(\n --tct-file-picker-item-border-color,\n --t-gray-8,\n #808080\n )};\n --tct-item-header-color: #{var-list(--tct-file-picker-item-name-color, --t-gray-1, #0d0d0d)};\n --tct-item-header-font-size: #{var-list(--tct-file-picker-item-name-font-size, --app-font-size-small, 12px)};\n --tct-item-header-font-weight: var(--tct-file-picker-item-name-font-weight, 400);\n --tct-item-padding: var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));\n text-align: left;\n}\n\n.file-item-info {\n @include line-clamp(1);\n}\n\n.file-item-loading {\n font-size: var-list(--tct-file-picker-file-item-loading-size, --app-scale-6x, 30px);\n // FIXME: This is a temporary fix to match the height of the closing icon which has 3.5px of padding I can't account for\n margin-bottom: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-6x, 30px) / 8.57);\n margin-left: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-1x, 5px) / 2);\n}\n\n.file-list {\n --tct-list-item-gap: #{var-list(--tct-file-picker-section-gap, --app-scale-3x, 15px)};\n}\n\n.file-list-container {\n max-height: var(--tct-file-picker-list-max-height, 190px);\n max-width: var(--tct-file-picker-drop-zone-max-width, 640px);\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: #{var-list(--tct-file-picker-scrollbar-color, --t-a11y-gray-color, #949494)} transparent;\n}\n\n.file-picker {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-file-item-gap, --app-scale-3x, 15px)};\n}\n\n.heading {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-heading-gap, --app-scale-1x, 5px)};\n justify-content: space-between;\n}\n\n.icon-success,\n.icon-error {\n --tct-icon-size: #{var-list(--tct-file-picker-file-item-icon-size, --app-scale-6x, 30px)};\n --tct-icon-stroke-width: 2px;\n}\n\n.label {\n color: var-list(--tct-file-picker-label-color, --t-gray-1, #0d0d0d);\n display: inline-block;\n font-size: var-list(--tct-file-picker-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-label-font-weight, 600);\n text-align: var(--tct-file-picker-label-text-align, left);\n}\n\n.loading {\n font-size: var-list(--tct-file-picker-loading-size, --app-scale-6x, 25px);\n}\n\n.loading-file {\n color: var-list(--tct-file-picker-loading-file-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-loading-file-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-file-font-weight, 400);\n margin: 0;\n}\n\n.loading-message {\n color: var-list(--tct-file-picker-loading-message-color, --t-gray-1, #0d0d0d);\n font-size: var-list(--tct-file-picker-loading-message-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-message-font-weight, 700);\n margin-bottom: var-list(--tct-file-picker-loading-message-margin-bottom, --app-scale-2x, 10px);\n margin-top: var-list(--tct-file-picker-loading-message-margin-top, --app-scale-2x, 10px);\n}\n\n.dismiss-button {\n height: 30px;\n width: 30px;\n &:hover {\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-hover-color, --t-gray-1, #0d0d0d)};\n }\n}\n\n[slot='action'] {\n display: flex;\n align-items: center;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { hasSlotContent, loc } from 'src/utils';\n\ntype DisplayedFile = {\n file: File;\n message?: string;\n status: FileStatus;\n toBeRemoved?: boolean;\n};\ntype UploadFileStatus = 'in-progress' | 'failed' | 'uploaded';\ntype FileStatus = UploadFileStatus | 'invalid-type' | 'over-size-limit' | 'over-max-files-limit';\nexport type StatusFile = {\n name: string;\n status: UploadFileStatus;\n message?: string;\n};\nexport type FilesObject = {\n invalidFiles: {\n file: File;\n status: 'invalid-type' | 'over-size-limit' | 'over-max-files-limit' | 'in-progress' | 'failed' | 'uploaded';\n }[];\n validFiles: File[];\n};\n@Component({\n tag: 'q2-file-picker',\n styleUrl: 'q2-file-picker.scss',\n shadow: true,\n})\nexport class Q2FilePicker implements ComponentInterface {\n // #region Own Properties\n\n browseButtonInput: HTMLElement;\n dropZone: HTMLElement;\n fileItemsToBeDeleted;\n queuedFiles: File[] = [];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n areFilesUploading: boolean = false;\n\n @State()\n displayedFiles: DisplayedFile[] = [];\n\n @State()\n isDropZoneHighlighted: boolean = false;\n\n @State()\n refreshCounter = 0;\n\n // #endregion\n // #region Public Property API\n\n /**\n * The size of the browse button. Can be 'none', 'small', 'medium', or 'large'.\n */\n @Prop({ reflect: true })\n buttonSize: 'none' | 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * A description of the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Allowed file types based on extensions (e.g., ['jpg', 'png', 'pdf'] or\n * 'jpg, png, pdf'). When using the attribute, provide a comma-separated\n * string (e.g., 'jpg, png, pdf'). Arrays can only be set programmatically\n * via JavaScript.\n */\n @Prop({ reflect: true })\n fileTypes: string[] | string = [];\n\n /**\n * The label for the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * The maximum number of files that can be selected.\n */\n @Prop({ reflect: true })\n // maxFiles: number | string = Infinity;\n maxFiles: number = Infinity;\n\n /**\n * The maximum size (in bytes) of any file that can be selected.\n */\n @Prop({ reflect: true })\n maxFileSize: number = Infinity;\n\n /**\n * An array of objects representing the status of the files being uploaded.\n * Each object should have a `name` property (the file name), a `status`\n * property (the status of the file) that equals either 'in-progress',\n * 'failed', or 'uploaded', and an optional `message` property.\n *\n * Custom messages provided in the `message` property will only be used for\n * failed uploads (`status: 'failed'`). This allows for more specific error\n * messages in failure scenarios, while ensuring that all other file status\n * messages remain consistent and aligned with approved design/UX standards.\n * Custom messages for failed uploads are limited to a single line.\n * @localizable\n */\n @Prop({ reflect: true })\n status: StatusFile[] = [];\n\n /**\n * Returns an array of File objects representing the files selected by the\n * user. If no files are selected, the value is an empty array.\n * @readonly\n */\n @Prop({ mutable: true })\n value: FilesObject = { invalidFiles: [], validFiles: [] };\n\n /**\n * Determines if the file picker is a browse button or a drop zone with a\n * browse link.\n */\n @Prop({ reflect: true })\n variant: 'browse' | 'browse-drop' = 'browse';\n\n // #endregion\n // #region Events\n\n @Event()\n tctChange: EventEmitter<FilesObject>;\n\n // #endregion\n // #region Watchers\n\n @Watch('status')\n updateFileList(newValue: StatusFile[]) {\n newValue.forEach(statusItem => {\n const matchingQueuedFileIndex = this.queuedFiles.findIndex(file => file.name === statusItem.name);\n if (matchingQueuedFileIndex > -1) {\n const matchingFile = this.queuedFiles.splice(matchingQueuedFileIndex, 1)[0];\n this.displayedFiles = [{ file: matchingFile, status: statusItem.status }, ...this.displayedFiles];\n } else {\n const matchingDisplayedFileIndex = this.displayedFiles.findIndex(\n file => file.file.name === statusItem.name\n );\n if (matchingDisplayedFileIndex > -1) {\n this.displayedFiles[matchingDisplayedFileIndex].status = statusItem.status;\n if (statusItem.status === 'failed' && statusItem.message) {\n this.displayedFiles[matchingDisplayedFileIndex].message = statusItem.message;\n }\n this.disableLoaderIfAllFilesUploaded();\n }\n }\n });\n }\n\n // #endregion\n // #region Local Methods\n\n get actualButtonSize() {\n return this.buttonSize === 'none' ? undefined : this.buttonSize;\n }\n\n get dropZoneClasses() {\n const classes = ['drop-zone'];\n if (this.isDropZoneHighlighted) {\n classes.push('drop-zone-highlighted');\n }\n\n return classes.join(' ');\n }\n\n get fileTypesArray() {\n return Array.isArray(this.fileTypes) ? this.fileTypes : this.fileTypes.split(',').map(type => type.trim());\n }\n\n get hasDescription() {\n return !!this.description || this.hasDescriptionSlotContent;\n }\n\n get hasDescriptionSlotContent() {\n return hasSlotContent(this.el, 'description');\n }\n\n get hasLabel() {\n return !!this.label || this.hasLabelSlotContent;\n }\n\n get hasLabelSlotContent() {\n return hasSlotContent(this.el, 'label');\n }\n\n buildFilesObject(filesToUpload: File[]): FilesObject {\n const invalidFiles = [];\n invalidFiles.push(...this.extractFilesOfInvalidTypes(filesToUpload));\n invalidFiles.push(...this.extractFilesOverSizeLimit(filesToUpload));\n invalidFiles.push(...this.extractFilesOverMaxFilesLimit(filesToUpload));\n this.displayedFiles = [...invalidFiles];\n\n if (filesToUpload.length === 0) {\n this.areFilesUploading = false;\n } else {\n this.queuedFiles = filesToUpload;\n }\n\n return { invalidFiles, validFiles: filesToUpload };\n }\n\n dimDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n };\n\n disableEvent(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n disableLoaderIfAllFilesUploaded() {\n if (this.queuedFiles.length === 0 && !this.displayedFiles.some(file => file.status === 'in-progress')) {\n this.areFilesUploading = false;\n }\n }\n\n emitChange(filesObject: FilesObject) {\n this.areFilesUploading = filesObject.validFiles.length > 0;\n this.tctChange.emit(filesObject);\n }\n\n extractFilesOfInvalidTypes(files: File[]) {\n const invalidFiles = [];\n\n if (this.fileTypesArray.length === 0) return invalidFiles;\n\n files.forEach(file => {\n const fileExtension = file.name.split('.').pop().toLowerCase();\n if (!this.fileTypesArray.includes(fileExtension)) {\n invalidFiles.push({ file, status: 'invalid-type' });\n }\n });\n\n // Remove invalid files from the files array\n invalidFiles.forEach(invalidFile => {\n const index = files.indexOf(invalidFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return invalidFiles;\n }\n\n extractFilesOverMaxFilesLimit(files: File[]) {\n const filesOverMaxFilesLimit = [];\n\n if (this.maxFiles === Infinity) return filesOverMaxFilesLimit;\n\n if (files.length > this.maxFiles) {\n const excessFiles = files.splice(this.maxFiles);\n excessFiles.forEach(file => {\n filesOverMaxFilesLimit.push({ file, status: 'over-max-files-limit' });\n });\n }\n\n return filesOverMaxFilesLimit;\n }\n\n extractFilesOverSizeLimit(files: File[]) {\n const filesOverSizeLimit = [];\n\n if (this.maxFileSize === Infinity) return filesOverSizeLimit;\n\n files.forEach(file => {\n if (file.size > this.maxFileSize) {\n filesOverSizeLimit.push({ file, status: 'over-size-limit' });\n }\n });\n\n // Remove files over size limit from the files array\n filesOverSizeLimit.forEach(overSizeFile => {\n const index = files.indexOf(overSizeFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return filesOverSizeLimit;\n }\n\n forceRerender() {\n this.refreshCounter += 1; // Triggers re-render\n }\n\n getAnimationendHandlerToRemoveFileItem(fileName: string) {\n return (e: AnimationEvent) => {\n if (e.animationName === 'shrinkToCenterFadeOut') {\n this.displayedFiles = this.displayedFiles.filter(file => file.file.name !== fileName);\n }\n };\n }\n\n getClickHandlerToRemoveFileItem(fileName: string) {\n return () => {\n const fileToDelete = this.displayedFiles.find(file => file.file.name === fileName);\n if (fileToDelete) {\n fileToDelete.toBeRemoved = true;\n this.forceRerender();\n }\n };\n }\n\n getFileItemClasses(fileName: string) {\n const classes = ['file-item'];\n const matchingFile = this.displayedFiles.find(file => file.file.name === fileName);\n if (matchingFile?.toBeRemoved) {\n classes.push('fade-out');\n } else {\n classes.push('fade-in');\n }\n return classes.join(' ');\n }\n\n getFileItemStatusMessage(displayedFile: DisplayedFile) {\n switch (displayedFile.status) {\n case 'invalid-type':\n return loc('tecton.element.filePicker.unsupportedFileType');\n case 'over-size-limit':\n return loc('tecton.element.filePicker.sizeExceedsLimit');\n case 'over-max-files-limit':\n return loc('tecton.element.filePicker.overMaxFilesLimit');\n case 'in-progress':\n return loc('tecton.element.filePicker.uploadingEllipsis');\n case 'failed':\n if (displayedFile.message) return loc(displayedFile.message);\n return loc('tecton.element.filePicker.uploadFailed');\n case 'uploaded':\n default:\n return loc('tecton.element.filePicker.fileSize', [\n (displayedFile.file.size / (1000 * 1000)).toFixed(2),\n ]);\n }\n }\n\n grabDroppedFiles = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n const droppedFiles = Array.from(e.dataTransfer.files);\n const filesObject = this.buildFilesObject(droppedFiles);\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n grabSelectedFiles = (e: Event) => {\n const selectedFiles = Array.from((e.target as HTMLInputElement).files);\n const filesObject = this.buildFilesObject(selectedFiles);\n // Reset the input value to allow re-selection of the same file\n (this.browseButtonInput as HTMLInputElement).value = '';\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n highlightDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = true;\n };\n\n launchFileBrowser() {\n this.browseButtonInput.dispatchEvent(new MouseEvent('click'));\n }\n\n // #endregion\n // #region Render Methods\n\n render = () => {\n return (\n <div class=\"file-picker\">\n {(this.hasLabel || this.hasDescription) && (\n <div class=\"heading\">\n {this.hasLabel && (\n <label\n class=\"label\"\n htmlFor=\"file-field\"\n test-id=\"label\"\n >\n {!!this.label ? loc(this.label) : this.hasLabelSlotContent ? <slot name=\"label\" /> : ''}\n </label>\n )}\n {this.hasDescription && (\n <div\n class=\"description\"\n id=\"description\"\n test-id=\"description\"\n >\n {!!this.description ? (\n loc(this.description)\n ) : this.hasDescriptionSlotContent ? (\n <slot name=\"description\" />\n ) : (\n ''\n )}\n </div>\n )}\n </div>\n )}\n\n {(this.variant === 'browse-drop' && (\n <div\n class={this.dropZoneClasses}\n onDragEnter={this.disableEvent}\n onDragLeave={this.dimDropZone}\n onDragOver={this.highlightDropZone}\n onDrop={this.grabDroppedFiles}\n ref={el => (this.dropZone = el ?? this.dropZone)}\n test-id=\"drop-zone\"\n >\n {(this.areFilesUploading && (\n <Fragment>\n <q2-loading class=\"loading\"></q2-loading>\n <p class=\"drop-zone-text\">{loc('tecton.element.filePicker.uploadingEllipsis')}</p>\n </Fragment>\n )) || (\n <Fragment>\n <q2-icon type=\"upload\"></q2-icon>\n <p class=\"drop-zone-text\">\n <q2-link\n label={loc('tecton.element.filePicker.browse')}\n onTctClick={() => this.launchFileBrowser()}\n variant=\"inline\"\n test-id=\"browse-link\"\n href=\"javascript:void(0)\"\n />\n {loc('tecton.element.filePicker.orDragFilesHere', [this.maxFiles])}\n </p>\n </Fragment>\n )}\n </div>\n )) || (\n <div\n class=\"browse\"\n test-id=\"browse\"\n >\n <q2-btn\n disabled={this.areFilesUploading}\n intent=\"workflow-primary\"\n loading={this.areFilesUploading}\n onClick={() => this.launchFileBrowser()}\n size={this.actualButtonSize}\n test-id=\"browse-button\"\n >\n <q2-icon type=\"paperclip\"></q2-icon>\n <span>{loc('tecton.element.filePicker.attachFiles', [this.maxFiles])}</span>\n </q2-btn>\n </div>\n )}\n <input\n aria-describedby={(!!this.description && 'description') || undefined}\n class=\"sr\"\n id=\"file-field\"\n onChange={this.grabSelectedFiles}\n ref={el => (this.browseButtonInput = el ?? this.browseButtonInput)}\n type=\"file\"\n test-id=\"file-input\"\n multiple\n />\n <div class=\"file-list-container\">\n <q2-list class=\"file-list\">\n {this.displayedFiles.map(file => (\n <q2-item\n class={this.getFileItemClasses(file.file.name)}\n key={file.file.name}\n onAnimationEnd={this.getAnimationendHandlerToRemoveFileItem(file.file.name)}\n >\n <div slot=\"bullet\">\n {file.status === 'invalid-type' ||\n file.status === 'over-size-limit' ||\n file.status === 'failed' ||\n file.status === 'over-max-files-limit' ? (\n <q2-icon\n class=\"icon-error\"\n type=\"error\"\n ></q2-icon>\n ) : file.status === 'in-progress' ? (\n <q2-loading class=\"file-item-loading\"></q2-loading>\n ) : (\n <q2-icon\n class=\"icon-success\"\n type=\"success\"\n ></q2-icon>\n )}\n </div>\n <div slot=\"header\">{file.file.name}</div>\n <div\n class=\"file-item-info\"\n slot=\"body\"\n >\n {this.getFileItemStatusMessage(file)}\n </div>\n <div slot=\"action\">\n <q2-btn\n class=\"dismiss-button\"\n intent=\"neutral-text\"\n onClick={this.getClickHandlerToRemoveFileItem(file.file.name)}\n >\n <q2-icon type=\"close\"></q2-icon>\n </q2-btn>\n </div>\n </q2-item>\n ))}\n </q2-list>\n </div>\n </div>\n );\n };\n\n // #endregion\n}\n"],"version":3}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-e7e68b1e.js');
6
6
 
7
- const q2FormCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.container{--tct-input-margin:var(--comp-spacing);--tct-select-margin:var(--comp-spacing);--tct-calendar-margin:var(--comp-spacing);--tct-file-picker-margin:var(--comp-spacing);--tct-textarea-margin:var(--comp-spacing);--tct-checkbox-margin:var(--comp-spacing);--tct-checkbox-group-margin:var(--comp-spacing);--tct-radio-group-margin:var(--comp-spacing)}:host([spacing=none]) .container{--comp-spacing-none:var(--app-scale-0x, 0px);--comp-spacing:var(--tct-form-spacing-none, var(--comp-spacing-none) 0)}:host([spacing=compact]) .container{--comp-spacing-compact:var(--app-scale-3x, 15px);--comp-spacing:var(--tct-form-spacing-compact, var(--comp-spacing-compact) 0)}:host(:not([spacing]),[spacing=normal]) .container{--comp-spacing-normal:var(--app-scale-5x, 25px);--comp-spacing:var(--tct-form-spacing-normal, var(--comp-spacing-normal) 0)}:host([spacing=comfortable]) .container{--comp-spacing-comfortable:var(--app-scale-7x, 35px);--comp-spacing:var(--tct-form-spacing-comfortable, var(--comp-spacing-comfortable) 0)}";
7
+ const q2FormCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.container{--tct-input-margin:var(--comp-spacing);--tct-select-margin:var(--comp-spacing);--tct-calendar-margin:var(--comp-spacing);--tct-file-picker-margin:var(--comp-spacing);--tct-textarea-margin:var(--comp-spacing);--tct-checkbox-group-margin:var(--comp-spacing);--tct-radio-group-margin:var(--comp-spacing)}:host([spacing=none]) .container{--comp-spacing-none:var(--app-scale-0x, 0px);--comp-spacing:var(--tct-form-spacing-none, var(--comp-spacing-none) 0)}:host([spacing=compact]) .container{--comp-spacing-compact:var(--app-scale-3x, 15px);--comp-spacing:var(--tct-form-spacing-compact, var(--comp-spacing-compact) 0)}:host(:not([spacing]),[spacing=normal]) .container{--comp-spacing-normal:var(--app-scale-5x, 25px);--comp-spacing:var(--tct-form-spacing-normal, var(--comp-spacing-normal) 0)}:host([spacing=comfortable]) .container{--comp-spacing-comfortable:var(--app-scale-7x, 35px);--comp-spacing:var(--tct-form-spacing-comfortable, var(--comp-spacing-comfortable) 0)}";
8
8
  const Q2FormStyle0 = q2FormCss;
9
9
 
10
10
  const Q2Checkbox = class {
@@ -13,7 +13,7 @@ const Q2Checkbox = class {
13
13
  this.spacing = 'normal';
14
14
  }
15
15
  render() {
16
- return (index.h("div", { key: 'aa542ff0f5ecdee36ffdb070cb863553c3d725bc', class: "container" }, index.h("slot", { key: '980dc6939c003dfbd57189e7ba9fb151033e8b29' })));
16
+ return (index.h("div", { key: '04799c303aece51e5a4db5b73b250b23042ac929', class: "container" }, index.h("slot", { key: '8461f1f0db3fe541583548fe574a12a6dfb8bd26' })));
17
17
  }
18
18
  };
19
19
  Q2Checkbox.style = Q2FormStyle0;
@@ -1 +1 @@
1
- {"file":"q2-form.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,SAAS,GAAG,spDAAspD,CAAC;AACzqD,qBAAe,SAAS;;MCEX,UAAU;;;uBAE+D,QAAQ;;IAE1F,MAAM;QACF,QACIA,kEAAK,KAAK,EAAC,WAAW,IAClBA,oEAAQ,CACN,EACR;KACL;;;;;;","names":["h"],"sources":["src/components/q2-form/q2-form.scss?tag=q2-form&encapsulation=shadow","src/components/q2-form/q2-form.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.container {\n :host([spacing='none']) & {\n --comp-spacing-none: #{var-list(--app-scale-0x, 0px)};\n --comp-spacing: #{var-list(--tct-form-spacing-none, unquote('var(--comp-spacing-none) 0'))};\n }\n :host([spacing='compact']) & {\n --comp-spacing-compact: #{var-list(--app-scale-3x, 15px)};\n --comp-spacing: #{var-list(--tct-form-spacing-compact, unquote('var(--comp-spacing-compact) 0'))};\n }\n :host(:not([spacing]), [spacing='normal']) & {\n --comp-spacing-normal: #{var-list(--app-scale-5x, 25px)};\n --comp-spacing: #{var-list(--tct-form-spacing-normal, unquote('var(--comp-spacing-normal) 0'))};\n }\n\n :host([spacing='comfortable']) & {\n --comp-spacing-comfortable: #{var-list(--app-scale-7x, 35px)};\n --comp-spacing: #{var-list(--tct-form-spacing-comfortable, unquote('var(--comp-spacing-comfortable) 0'))};\n }\n\n --tct-input-margin: var(--comp-spacing);\n --tct-select-margin: var(--comp-spacing);\n --tct-calendar-margin: var(--comp-spacing);\n --tct-file-picker-margin: var(--comp-spacing);\n --tct-textarea-margin: var(--comp-spacing);\n --tct-checkbox-margin: var(--comp-spacing);\n --tct-checkbox-group-margin: var(--comp-spacing);\n --tct-radio-group-margin: var(--comp-spacing);\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\n\n@Component({ tag: 'q2-form', shadow: true, styleUrl: 'q2-form.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n /** Changes the vertical spacing of the form-fields contained within the component's slot */\n @Prop({ reflect: true }) spacing: 'none' | 'compact' | 'normal' | 'comfortable' = 'normal';\n\n render() {\n return (\n <div class=\"container\">\n <slot />\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"q2-form.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,SAAS,GAAG,4mDAA4mD,CAAC;AAC/nD,qBAAe,SAAS;;MCEX,UAAU;;;uBAE+D,QAAQ;;IAE1F,MAAM;QACF,QACIA,kEAAK,KAAK,EAAC,WAAW,IAClBA,oEAAQ,CACN,EACR;KACL;;;;;;","names":["h"],"sources":["src/components/q2-form/q2-form.scss?tag=q2-form&encapsulation=shadow","src/components/q2-form/q2-form.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.container {\n :host([spacing='none']) & {\n --comp-spacing-none: #{var-list(--app-scale-0x, 0px)};\n --comp-spacing: #{var-list(--tct-form-spacing-none, unquote('var(--comp-spacing-none) 0'))};\n }\n :host([spacing='compact']) & {\n --comp-spacing-compact: #{var-list(--app-scale-3x, 15px)};\n --comp-spacing: #{var-list(--tct-form-spacing-compact, unquote('var(--comp-spacing-compact) 0'))};\n }\n :host(:not([spacing]), [spacing='normal']) & {\n --comp-spacing-normal: #{var-list(--app-scale-5x, 25px)};\n --comp-spacing: #{var-list(--tct-form-spacing-normal, unquote('var(--comp-spacing-normal) 0'))};\n }\n\n :host([spacing='comfortable']) & {\n --comp-spacing-comfortable: #{var-list(--app-scale-7x, 35px)};\n --comp-spacing: #{var-list(--tct-form-spacing-comfortable, unquote('var(--comp-spacing-comfortable) 0'))};\n }\n\n --tct-input-margin: var(--comp-spacing);\n --tct-select-margin: var(--comp-spacing);\n --tct-calendar-margin: var(--comp-spacing);\n --tct-file-picker-margin: var(--comp-spacing);\n --tct-textarea-margin: var(--comp-spacing);\n --tct-checkbox-group-margin: var(--comp-spacing);\n --tct-radio-group-margin: var(--comp-spacing);\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\n\n@Component({ tag: 'q2-form', shadow: true, styleUrl: 'q2-form.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n /** Changes the vertical spacing of the form-fields contained within the component's slot */\n @Prop({ reflect: true }) spacing: 'none' | 'compact' | 'normal' | 'comfortable' = 'normal';\n\n render() {\n return (\n <div class=\"container\">\n <slot />\n </div>\n );\n }\n}\n"],"version":3}
@@ -55,7 +55,7 @@ const Q2FormattedText = class {
55
55
  // #region Render Methods
56
56
  render() {
57
57
  const { formattedTextClasses } = this;
58
- return (index.h("div", { key: 'f8729c7f3dea39a14da8add529ae642e78d20643', class: formattedTextClasses, "aria-label": this.formattedValue }, index.h("span", { key: '94390c62b148e3a0ce2d470377818ac442e9257e' }, this.formattedValue)));
58
+ return (index.h("div", { key: '59f16336df671d957674678a7c129652ba98672d', class: formattedTextClasses, "aria-label": this.formattedValue }, index.h("span", { key: '9bdf70755092e11ad43b2f7d6d487d0bb0b838a1' }, this.formattedValue)));
59
59
  }
60
60
  static get watchers() { return {
61
61
  "value": ["propsUpdated"],
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-e7e68b1e.js');
6
+
7
+ const q2GridAreaCss = ":host{--grid-column-start:\"\";--grid-column-end:\"\";--grid-row-start:\"\";--grid-row-end:\"\";--justify-self:\"\";--align-self:\"\";--z-index:\"\";--xs-grid-column-start:\"\";--xs-grid-column-end:\"\";--xs-grid-row-start:\"\";--xs-grid-row-end:\"\";--xs-justify-self:\"\";--xs-align-self:\"\";--xs-z-index:\"\";--sm-grid-column-start:\"\";--sm-grid-column-end:\"\";--sm-grid-row-start:\"\";--sm-grid-row-end:\"\";--sm-justify-self:\"\";--sm-align-self:\"\";--sm-z-index:\"\";--md-grid-column-start:\"\";--md-grid-column-end:\"\";--md-grid-row-start:\"\";--md-grid-row-end:\"\";--md-justify-self:\"\";--md-align-self:\"\";--md-z-index:\"\";--lg-grid-column-start:\"\";--lg-grid-column-end:\"\";--lg-grid-row-start:\"\";--lg-grid-row-end:\"\";--lg-justify-self:\"\";--lg-align-self:\"\";--lg-z-index:\"\";--xl-grid-column-start:\"\";--xl-grid-column-end:\"\";--xl-grid-row-start:\"\";--xl-grid-row-end:\"\";--xl-justify-self:\"\";--xl-align-self:\"\";--xl-z-index:\"\"}:host{grid-column-start:var(--grid-column-start);grid-column-end:var(--grid-column-end);grid-row-start:var(--grid-row-start);grid-row-end:var(--grid-row-end);justify-self:var(--justify-self);align-self:var(--align-self);z-index:var(--z-index)}@media screen and (min-width: 480px){:host{grid-column-start:var(--xs-grid-column-start);grid-column-end:var(--xs-grid-column-end);grid-row-start:var(--xs-grid-row-start);grid-row-end:var(--xs-grid-row-end);justify-self:var(--xs-justify-self);align-self:var(--xs-align-self);z-index:var(--xs-z-index)}}@media screen and (min-width: 768px){:host{grid-column-start:var(--sm-grid-column-start);grid-column-end:var(--sm-grid-column-end);grid-row-start:var(--sm-grid-row-start);grid-row-end:var(--sm-grid-row-end);justify-self:var(--sm-justify-self);align-self:var(--sm-align-self);z-index:var(--sm-z-index)}}@media screen and (min-width: 992px){:host{grid-column-start:var(--md-grid-column-start);grid-column-end:var(--md-grid-column-end);grid-row-start:var(--md-grid-row-start);grid-row-end:var(--md-grid-row-end);justify-self:var(--md-justify-self);align-self:var(--md-align-self);z-index:var(--md-z-index)}}@media screen and (min-width: 1200px){:host{grid-column-start:var(--lg-grid-column-start);grid-column-end:var(--lg-grid-column-end);grid-row-start:var(--lg-grid-row-start);grid-row-end:var(--lg-grid-row-end);justify-self:var(--lg-justify-self);align-self:var(--lg-align-self);z-index:var(--lg-z-index)}}@media screen and (min-width: 1400px){:host{grid-column-start:var(--xl-grid-column-start);grid-column-end:var(--xl-grid-column-end);grid-row-start:var(--xl-grid-row-start);grid-row-end:var(--xl-grid-row-end);justify-self:var(--xl-justify-self);align-self:var(--xl-align-self);z-index:var(--xl-z-index)}}";
8
+ const Q2GridAreaStyle0 = q2GridAreaCss;
9
+
10
+ const Q2GridArea = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.align = 'auto';
14
+ this.columnSpan = 1;
15
+ this.columnStart = 'auto';
16
+ this.justify = 'auto';
17
+ this.lgAlign = undefined;
18
+ this.lgColumnSpan = undefined;
19
+ this.lgColumnStart = undefined;
20
+ this.lgJustify = undefined;
21
+ this.lgRowSpan = undefined;
22
+ this.lgRowStart = undefined;
23
+ this.lgZIndex = undefined;
24
+ this.mdAlign = undefined;
25
+ this.mdColumnSpan = undefined;
26
+ this.mdColumnStart = undefined;
27
+ this.mdJustify = undefined;
28
+ this.mdRowSpan = undefined;
29
+ this.mdRowStart = undefined;
30
+ this.mdZIndex = undefined;
31
+ this.rowSpan = 1;
32
+ this.rowStart = 'auto';
33
+ this.smAlign = undefined;
34
+ this.smColumnSpan = undefined;
35
+ this.smColumnStart = undefined;
36
+ this.smJustify = undefined;
37
+ this.smRowSpan = undefined;
38
+ this.smRowStart = undefined;
39
+ this.smZIndex = undefined;
40
+ this.xlAlign = undefined;
41
+ this.xlColumnSpan = undefined;
42
+ this.xlColumnStart = undefined;
43
+ this.xlJustify = undefined;
44
+ this.xlRowSpan = undefined;
45
+ this.xlRowStart = undefined;
46
+ this.xlZIndex = undefined;
47
+ this.xsAlign = undefined;
48
+ this.xsColumnSpan = undefined;
49
+ this.xsColumnStart = undefined;
50
+ this.xsJustify = undefined;
51
+ this.xsRowSpan = undefined;
52
+ this.xsRowStart = undefined;
53
+ this.xsZIndex = undefined;
54
+ this.zIndex = 0;
55
+ }
56
+ // #endregion
57
+ // #region Local Methods
58
+ get computedLgZIndex() {
59
+ return this.lgZIndex || this.lgZIndex === 0 ? this.lgZIndex : this.computedMdZIndex;
60
+ }
61
+ get computedMdZIndex() {
62
+ return this.mdZIndex || this.mdZIndex === 0 ? this.mdZIndex : this.computedSmZIndex;
63
+ }
64
+ get computedSmZIndex() {
65
+ return this.smZIndex || this.smZIndex === 0 ? this.smZIndex : this.computedXsZIndex;
66
+ }
67
+ get computedXlZIndex() {
68
+ return this.xlZIndex || this.xlZIndex === 0 ? this.xlZIndex : this.computedLgZIndex;
69
+ }
70
+ get computedXsZIndex() {
71
+ return this.xsZIndex || this.xsZIndex === 0 ? this.xsZIndex : this.zIndex;
72
+ }
73
+ // #endregion
74
+ // #region Render Methods
75
+ render() {
76
+ const q2GridAreaStyles = {
77
+ // base:
78
+ '--grid-column-start': `${this.columnStart}`,
79
+ '--grid-column-end': `span ${this.columnSpan}`,
80
+ '--grid-row-start': `${this.rowStart}`,
81
+ '--grid-row-end': `span ${this.rowSpan}`,
82
+ '--justify-self': this.justify,
83
+ '--align-self': this.align,
84
+ '--z-index': `${this.zIndex}`,
85
+ // xs:
86
+ '--xs-grid-column-start': `${this.xsColumnStart || this.columnStart}`,
87
+ '--xs-grid-column-end': `span ${this.xsColumnSpan || this.columnSpan}`,
88
+ '--xs-grid-row-start': `${this.xsRowStart || this.rowStart}`,
89
+ '--xs-grid-row-end': `span ${this.xsRowSpan || this.rowSpan}`,
90
+ '--xs-justify-self': this.xsJustify || this.justify,
91
+ '--xs-align-self': this.xsAlign || this.align,
92
+ '--xs-z-index': `${this.computedXsZIndex}`,
93
+ // sm:
94
+ '--sm-grid-column-start': `${this.smColumnStart || this.xsColumnStart || this.columnStart}`,
95
+ '--sm-grid-column-end': `span ${this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,
96
+ '--sm-grid-row-start': `${this.smRowStart || this.xsRowStart || this.rowStart}`,
97
+ '--sm-grid-row-end': `span ${this.smRowSpan || this.xsRowSpan || this.rowSpan}`,
98
+ '--sm-justify-self': this.smJustify || this.xsJustify || this.justify,
99
+ '--sm-align-self': this.smAlign || this.xsAlign || this.align,
100
+ '--sm-z-index': `${this.computedSmZIndex}`,
101
+ // md:
102
+ '--md-grid-column-start': `${this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,
103
+ '--md-grid-column-end': `span ${this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,
104
+ '--md-grid-row-start': `${this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,
105
+ '--md-grid-row-end': `span ${this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,
106
+ '--md-justify-self': this.mdJustify || this.smJustify || this.xsJustify || this.justify,
107
+ '--md-align-self': this.mdAlign || this.smAlign || this.xsAlign || this.align,
108
+ '--md-z-index': `${this.computedMdZIndex}`,
109
+ // lg:
110
+ '--lg-grid-column-start': `${this.lgColumnStart || this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,
111
+ '--lg-grid-column-end': `span ${this.lgColumnSpan || this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,
112
+ '--lg-grid-row-start': `${this.lgRowStart || this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,
113
+ '--lg-grid-row-end': `span ${this.lgRowSpan || this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,
114
+ '--lg-justify-self': this.lgJustify || this.mdJustify || this.smJustify || this.xsJustify || this.justify,
115
+ '--lg-align-self': this.lgAlign || this.mdAlign || this.smAlign || this.xsAlign || this.align,
116
+ '--lg-z-index': `${this.computedLgZIndex}`,
117
+ // xl:
118
+ '--xl-grid-column-start': `${this.xlColumnStart || this.lgColumnStart || this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,
119
+ '--xl-grid-column-end': `span ${this.xlColumnSpan || this.lgColumnSpan || this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,
120
+ '--xl-grid-row-start': `${this.xlRowStart || this.lgRowStart || this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,
121
+ '--xl-grid-row-end': `span ${this.xlRowSpan || this.lgRowSpan || this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,
122
+ '--xl-justify-self': this.xlJustify || this.lgJustify || this.mdJustify || this.smJustify || this.xsJustify || this.justify,
123
+ '--xl-align-self': this.xlAlign || this.lgAlign || this.mdAlign || this.smAlign || this.xsAlign || this.align,
124
+ '--xl-z-index': `${this.computedXlZIndex}`,
125
+ };
126
+ return (index.h(index.Host, { key: 'f8e261f2b0ef797a8b66f6da08579be08c1c47b0', style: q2GridAreaStyles }, index.h("slot", { key: '41d23b118b2030a76a31a151cee55e080d2b804e' })));
127
+ }
128
+ };
129
+ Q2GridArea.style = Q2GridAreaStyle0;
130
+
131
+ exports.q2_grid_area = Q2GridArea;
132
+
133
+ //# sourceMappingURL=q2-grid-area.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"q2-grid-area.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/q2-grid-area/q2-grid-area.scss?tag=q2-grid-area&encapsulation=shadow","src/components/q2-grid-area/q2-grid-area.tsx"],"sourcesContent":["@import '../../styles/functions.scss';\n@import '../../styles/variables.scss';\n\n:host {\n // base:\n --grid-column-start: '';\n --grid-column-end: '';\n --grid-row-start: '';\n --grid-row-end: '';\n --justify-self: '';\n --align-self: '';\n --z-index: '';\n // xs:\n --xs-grid-column-start: '';\n --xs-grid-column-end: '';\n --xs-grid-row-start: '';\n --xs-grid-row-end: '';\n --xs-justify-self: '';\n --xs-align-self: '';\n --xs-z-index: '';\n // sm:\n --sm-grid-column-start: '';\n --sm-grid-column-end: '';\n --sm-grid-row-start: '';\n --sm-grid-row-end: '';\n --sm-justify-self: '';\n --sm-align-self: '';\n --sm-z-index: '';\n // md:\n --md-grid-column-start: '';\n --md-grid-column-end: '';\n --md-grid-row-start: '';\n --md-grid-row-end: '';\n --md-justify-self: '';\n --md-align-self: '';\n --md-z-index: '';\n // lg:\n --lg-grid-column-start: '';\n --lg-grid-column-end: '';\n --lg-grid-row-start: '';\n --lg-grid-row-end: '';\n --lg-justify-self: '';\n --lg-align-self: '';\n --lg-z-index: '';\n // xl:\n --xl-grid-column-start: '';\n --xl-grid-column-end: '';\n --xl-grid-row-start: '';\n --xl-grid-row-end: '';\n --xl-justify-self: '';\n --xl-align-self: '';\n --xl-z-index: '';\n}\n// base:\n@include generate-q2-grid-area-styles(\n var(--grid-column-start),\n var(--grid-column-end),\n var(--grid-row-start),\n var(--grid-row-end),\n var(--justify-self),\n var(--align-self),\n var(--z-index)\n);\n// xs, sm, md, lg, xl:\n@each $breakpoint in $breakpoint-list {\n @include breakpoint($breakpoint) {\n @include generate-q2-grid-area-styles(\n var(--#{$breakpoint}-grid-column-start),\n var(--#{$breakpoint}-grid-column-end),\n var(--#{$breakpoint}-grid-row-start),\n var(--#{$breakpoint}-grid-row-end),\n var(--#{$breakpoint}-justify-self),\n var(--#{$breakpoint}-align-self),\n var(--#{$breakpoint}-z-index)\n );\n }\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\nexport type TQ2GridAreaColumnStartOptions = 'auto' | number;\nexport type TQ2GridAreaColumnSpanOptions = number;\nexport type TQ2GridAreaRowStartOptions = 'auto' | number;\nexport type TQ2GridAreaRowSpanOptions = number;\nexport type TQ2GridAreaJustifyOptions = 'auto' | 'stretch' | 'start' | 'center' | 'end';\nexport type TQ2GridAreaAlignOptions = 'auto' | 'stretch' | 'start' | 'center' | 'end';\nexport type TQ2GridAreaZIndexOptions = number;\n\n@Component({ tag: 'q2-grid-area', shadow: true, styleUrl: 'q2-grid-area.scss' })\nexport class Q2GridArea {\n // #region Public Property API\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n align: TQ2GridAreaAlignOptions = 'auto';\n\n /** Sets the column span amount of the grid area at the baseline viewport size.*/\n @Prop({ reflect: true })\n columnSpan: TQ2GridAreaColumnSpanOptions = 1;\n\n /** Sets the starting column of the grid area at the baseline viewport size.*/\n @Prop({ reflect: true })\n columnStart: TQ2GridAreaColumnStartOptions = 'auto';\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n justify: TQ2GridAreaJustifyOptions = 'auto';\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n lgAlign: TQ2GridAreaAlignOptions;\n\n /** Sets the column span amount of the grid area at the LG viewport size.*/\n @Prop({ reflect: true })\n lgColumnSpan: TQ2GridAreaColumnSpanOptions;\n\n /**\n * Sets the starting column of the grid area at the LG viewport size.\n * When set to `auto`, the grid area will automatically start at the first available column.\n */\n @Prop({ reflect: true })\n lgColumnStart: TQ2GridAreaColumnStartOptions;\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n lgJustify: TQ2GridAreaJustifyOptions;\n\n /** Sets the row span amount of the grid area at the LG viewport size.*/\n @Prop({ reflect: true })\n lgRowSpan: TQ2GridAreaRowSpanOptions;\n\n /**\n * Sets the starting row of the grid area at the LG viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n lgRowStart: TQ2GridAreaRowStartOptions;\n\n /** Sets the z-index of the grid area at the LG viewport size.*/\n @Prop({ reflect: true })\n lgZIndex: TQ2GridAreaZIndexOptions;\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n mdAlign: TQ2GridAreaAlignOptions;\n\n /** Sets the column span amount of the grid area at the MD viewport size.*/\n @Prop({ reflect: true })\n mdColumnSpan: TQ2GridAreaColumnSpanOptions;\n\n /**\n * Sets the starting column of the grid area at the MD viewport size.\n * When set to `auto`, the grid area will automatically start at the first available column.\n */\n @Prop({ reflect: true })\n mdColumnStart: TQ2GridAreaColumnStartOptions;\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n mdJustify: TQ2GridAreaJustifyOptions;\n\n /** Sets the row span amount of the grid area at the MD viewport size.*/\n @Prop({ reflect: true })\n mdRowSpan: TQ2GridAreaRowSpanOptions;\n\n /**\n * Sets the starting row of the grid area at the MD viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n mdRowStart: TQ2GridAreaRowStartOptions;\n\n /** Sets the z-index of the grid area at the MD viewport size.*/\n @Prop({ reflect: true })\n mdZIndex: TQ2GridAreaZIndexOptions;\n\n /** Sets the row span amount of the grid area at the baseline viewport size.*/\n @Prop({ reflect: true })\n rowSpan: TQ2GridAreaRowSpanOptions = 1;\n\n /**\n * Sets the starting row of the grid area at the baseline viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n rowStart: TQ2GridAreaRowStartOptions = 'auto';\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n smAlign: TQ2GridAreaAlignOptions;\n\n /** Sets the column span amount of the grid area at the SM viewport size.*/\n @Prop({ reflect: true })\n smColumnSpan: TQ2GridAreaColumnSpanOptions;\n\n /**\n * Sets the starting column of the grid area at the SM viewport size.\n * When set to `auto`, the grid area will automatically start at the first available column.\n */\n @Prop({ reflect: true })\n smColumnStart: TQ2GridAreaColumnStartOptions;\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n smJustify: TQ2GridAreaJustifyOptions;\n\n /** Sets the row span amount of the grid area at the SM viewport size.*/\n @Prop({ reflect: true })\n smRowSpan: TQ2GridAreaRowSpanOptions;\n\n /**\n * Sets the starting row of the grid area at the SM viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n smRowStart: TQ2GridAreaRowStartOptions;\n\n /** Sets the z-index of the grid area at the SM viewport size.*/\n @Prop({ reflect: true })\n smZIndex: TQ2GridAreaZIndexOptions;\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n xlAlign: TQ2GridAreaAlignOptions;\n\n /** Sets the column span amount of the grid area at the XL viewport size.*/\n @Prop({ reflect: true })\n xlColumnSpan: TQ2GridAreaColumnSpanOptions;\n\n /**\n * Sets the starting column of the grid area at the XL viewport size.\n * When set to `auto`, the grid area will automatically start at the first available column.\n */\n @Prop({ reflect: true })\n xlColumnStart: TQ2GridAreaColumnStartOptions;\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n xlJustify: TQ2GridAreaJustifyOptions;\n\n /** Sets the row span amount of the grid area at the XL viewport size.*/\n @Prop({ reflect: true })\n xlRowSpan: TQ2GridAreaRowSpanOptions;\n\n /**\n * Sets the starting row of the grid area at the XL viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n xlRowStart: TQ2GridAreaRowStartOptions;\n\n /** Sets the z-index of the grid area at the XL viewport size.*/\n @Prop({ reflect: true })\n xlZIndex: TQ2GridAreaZIndexOptions;\n\n /**\n * Sets the vertical alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n xsAlign: TQ2GridAreaAlignOptions;\n\n /** Sets the column span amount of the grid area at the XS viewport size.*/\n @Prop({ reflect: true })\n xsColumnSpan: TQ2GridAreaColumnSpanOptions;\n\n /**\n * Sets the starting column of the grid area at the XS viewport size.\n * When set to `auto`, the grid area will automatically start at the first available column.\n */\n @Prop({ reflect: true })\n xsColumnStart: TQ2GridAreaColumnStartOptions;\n\n /**\n * Sets the horizontal alignment behavior of the q2-grid-area component within its grid track at the baseline viewport size.\n * When set to `auto`, the grid area will inherit this property from the parent q2-grid component.\n */\n @Prop({ reflect: true })\n xsJustify: TQ2GridAreaJustifyOptions;\n\n /** Sets the row span amount of the grid area at the XS viewport size.*/\n @Prop({ reflect: true })\n xsRowSpan: TQ2GridAreaRowSpanOptions;\n\n /**\n * Sets the starting row of the grid area at the XS viewport size.\n * When set to `auto`, the grid area will automatically start at the first available row.\n */\n @Prop({ reflect: true })\n xsRowStart: TQ2GridAreaRowStartOptions;\n\n /** Sets the z-index of the grid area at the XS viewport size.*/\n @Prop({ reflect: true })\n xsZIndex: TQ2GridAreaZIndexOptions;\n\n /** Sets the z-index of the grid area at the baseline viewport size.*/\n @Prop({ reflect: true })\n zIndex: TQ2GridAreaZIndexOptions = 0;\n\n // #endregion\n // #region Local Methods\n\n get computedLgZIndex() {\n return this.lgZIndex || this.lgZIndex === 0 ? this.lgZIndex : this.computedMdZIndex;\n }\n\n get computedMdZIndex() {\n return this.mdZIndex || this.mdZIndex === 0 ? this.mdZIndex : this.computedSmZIndex;\n }\n\n get computedSmZIndex() {\n return this.smZIndex || this.smZIndex === 0 ? this.smZIndex : this.computedXsZIndex;\n }\n\n get computedXlZIndex() {\n return this.xlZIndex || this.xlZIndex === 0 ? this.xlZIndex : this.computedLgZIndex;\n }\n\n get computedXsZIndex() {\n return this.xsZIndex || this.xsZIndex === 0 ? this.xsZIndex : this.zIndex;\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const q2GridAreaStyles: { [key: string]: string } = {\n // base:\n '--grid-column-start': `${this.columnStart}`,\n '--grid-column-end': `span ${this.columnSpan}`,\n '--grid-row-start': `${this.rowStart}`,\n '--grid-row-end': `span ${this.rowSpan}`,\n '--justify-self': this.justify,\n '--align-self': this.align,\n '--z-index': `${this.zIndex}`,\n // xs:\n '--xs-grid-column-start': `${this.xsColumnStart || this.columnStart}`,\n '--xs-grid-column-end': `span ${this.xsColumnSpan || this.columnSpan}`,\n '--xs-grid-row-start': `${this.xsRowStart || this.rowStart}`,\n '--xs-grid-row-end': `span ${this.xsRowSpan || this.rowSpan}`,\n '--xs-justify-self': this.xsJustify || this.justify,\n '--xs-align-self': this.xsAlign || this.align,\n '--xs-z-index': `${this.computedXsZIndex}`,\n // sm:\n '--sm-grid-column-start': `${this.smColumnStart || this.xsColumnStart || this.columnStart}`,\n '--sm-grid-column-end': `span ${this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,\n '--sm-grid-row-start': `${this.smRowStart || this.xsRowStart || this.rowStart}`,\n '--sm-grid-row-end': `span ${this.smRowSpan || this.xsRowSpan || this.rowSpan}`,\n '--sm-justify-self': this.smJustify || this.xsJustify || this.justify,\n '--sm-align-self': this.smAlign || this.xsAlign || this.align,\n '--sm-z-index': `${this.computedSmZIndex}`,\n // md:\n '--md-grid-column-start': `${this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,\n '--md-grid-column-end': `span ${this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,\n '--md-grid-row-start': `${this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,\n '--md-grid-row-end': `span ${this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,\n '--md-justify-self': this.mdJustify || this.smJustify || this.xsJustify || this.justify,\n '--md-align-self': this.mdAlign || this.smAlign || this.xsAlign || this.align,\n '--md-z-index': `${this.computedMdZIndex}`,\n // lg:\n '--lg-grid-column-start': `${this.lgColumnStart || this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,\n '--lg-grid-column-end': `span ${this.lgColumnSpan || this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,\n '--lg-grid-row-start': `${this.lgRowStart || this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,\n '--lg-grid-row-end': `span ${this.lgRowSpan || this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,\n '--lg-justify-self': this.lgJustify || this.mdJustify || this.smJustify || this.xsJustify || this.justify,\n '--lg-align-self': this.lgAlign || this.mdAlign || this.smAlign || this.xsAlign || this.align,\n '--lg-z-index': `${this.computedLgZIndex}`,\n // xl:\n '--xl-grid-column-start': `${this.xlColumnStart || this.lgColumnStart || this.mdColumnStart || this.smColumnStart || this.xsColumnStart || this.columnStart}`,\n '--xl-grid-column-end': `span ${this.xlColumnSpan || this.lgColumnSpan || this.mdColumnSpan || this.smColumnSpan || this.xsColumnSpan || this.columnSpan}`,\n '--xl-grid-row-start': `${this.xlRowStart || this.lgRowStart || this.mdRowStart || this.smRowStart || this.xsRowStart || this.rowStart}`,\n '--xl-grid-row-end': `span ${this.xlRowSpan || this.lgRowSpan || this.mdRowSpan || this.smRowSpan || this.xsRowSpan || this.rowSpan}`,\n '--xl-justify-self':\n this.xlJustify || this.lgJustify || this.mdJustify || this.smJustify || this.xsJustify || this.justify,\n '--xl-align-self':\n this.xlAlign || this.lgAlign || this.mdAlign || this.smAlign || this.xsAlign || this.align,\n '--xl-z-index': `${this.computedXlZIndex}`,\n };\n\n return (\n <Host style={q2GridAreaStyles}>\n <slot />\n </Host>\n );\n }\n\n // #endregion\n}\n"],"version":3}