q2-tecton-elements 1.52.3 → 1.53.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +7 -3
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/q2-badge_7.cjs.entry.js +8 -0
  5. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  6. package/dist/cjs/q2-dropdown.cjs.entry.js +9 -11
  7. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-editable-field.cjs.entry.js +6 -7
  9. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-file-picker.cjs.entry.js +236 -0
  11. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -0
  12. package/dist/cjs/q2-item_3.cjs.entry.js +250 -0
  13. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -0
  14. package/dist/cjs/q2-pill.cjs.entry.js +7 -3
  15. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-select.cjs.entry.js +6 -5
  17. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-tag.cjs.entry.js +3 -1
  19. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  21. package/dist/cjs/q2-textarea.cjs.entry.js +2 -1
  22. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  23. package/dist/collection/collection-manifest.json +1 -0
  24. package/dist/collection/components/q2-btn/q2-btn.js +4 -0
  25. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  26. package/dist/collection/components/q2-dropdown/q2-dropdown.js +9 -11
  27. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  28. package/dist/collection/components/q2-editable-field/q2-editable-field.js +12 -7
  29. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  30. package/dist/collection/components/q2-file-picker/q2-file-picker.css +288 -0
  31. package/dist/collection/components/q2-file-picker/q2-file-picker.js +426 -0
  32. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -0
  33. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +11 -0
  34. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -0
  35. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +435 -0
  36. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -0
  37. package/dist/collection/components/q2-icon/q2-icon.js +4 -0
  38. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  39. package/dist/collection/components/q2-item/q2-item.css +3 -0
  40. package/dist/collection/components/q2-list/q2-list.css +6 -0
  41. package/dist/collection/components/q2-pill/q2-pill.js +7 -3
  42. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  43. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +108 -0
  44. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  45. package/dist/collection/components/q2-popover/q2-popover.js +7 -3
  46. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  47. package/dist/collection/components/q2-select/q2-select.js +6 -5
  48. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  49. package/dist/collection/components/q2-tag/q2-tag.js +3 -1
  50. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  51. package/dist/collection/components/q2-textarea/q2-textarea.js +2 -1
  52. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  53. package/dist/components/index.js +2 -0
  54. package/dist/components/index.js.map +1 -1
  55. package/dist/components/q2-btn2.js +4 -0
  56. package/dist/components/q2-btn2.js.map +1 -1
  57. package/dist/components/q2-dropdown.js +9 -11
  58. package/dist/components/q2-dropdown.js.map +1 -1
  59. package/dist/components/q2-editable-field.js +7 -8
  60. package/dist/components/q2-editable-field.js.map +1 -1
  61. package/dist/components/q2-file-picker.d.ts +11 -0
  62. package/dist/components/q2-file-picker.js +301 -0
  63. package/dist/components/q2-file-picker.js.map +1 -0
  64. package/dist/components/q2-icon2.js +4 -0
  65. package/dist/components/q2-icon2.js.map +1 -1
  66. package/dist/components/q2-item.js +1 -130
  67. package/dist/components/q2-item.js.map +1 -1
  68. package/dist/{esm/q2-item.entry.js → components/q2-item2.js} +29 -11
  69. package/dist/components/q2-item2.js.map +1 -0
  70. package/dist/components/q2-link.js +1 -86
  71. package/dist/components/q2-link.js.map +1 -1
  72. package/dist/{esm/q2-link.entry.js → components/q2-link2.js} +39 -9
  73. package/dist/components/q2-link2.js.map +1 -0
  74. package/dist/components/q2-list.js +1 -94
  75. package/dist/components/q2-list.js.map +1 -1
  76. package/dist/{esm/q2-list.entry.js → components/q2-list2.js} +30 -11
  77. package/dist/components/q2-list2.js.map +1 -0
  78. package/dist/components/q2-pill.js +7 -3
  79. package/dist/components/q2-pill.js.map +1 -1
  80. package/dist/components/q2-popover2.js +7 -3
  81. package/dist/components/q2-popover2.js.map +1 -1
  82. package/dist/components/q2-select2.js +6 -5
  83. package/dist/components/q2-select2.js.map +1 -1
  84. package/dist/components/q2-tag.js +3 -1
  85. package/dist/components/q2-tag.js.map +1 -1
  86. package/dist/components/q2-textarea.js +2 -1
  87. package/dist/components/q2-textarea.js.map +1 -1
  88. package/dist/esm/click-elsewhere_2.entry.js +7 -3
  89. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/esm/q2-badge_7.entry.js +8 -0
  92. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  93. package/dist/esm/q2-dropdown.entry.js +9 -11
  94. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  95. package/dist/esm/q2-editable-field.entry.js +6 -7
  96. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  97. package/dist/esm/q2-file-picker.entry.js +232 -0
  98. package/dist/esm/q2-file-picker.entry.js.map +1 -0
  99. package/dist/esm/q2-item_3.entry.js +244 -0
  100. package/dist/esm/q2-item_3.entry.js.map +1 -0
  101. package/dist/esm/q2-pill.entry.js +7 -3
  102. package/dist/esm/q2-pill.entry.js.map +1 -1
  103. package/dist/esm/q2-select.entry.js +6 -5
  104. package/dist/esm/q2-select.entry.js.map +1 -1
  105. package/dist/esm/q2-tag.entry.js +3 -1
  106. package/dist/esm/q2-tag.entry.js.map +1 -1
  107. package/dist/esm/q2-tecton-elements.js +1 -1
  108. package/dist/esm/q2-textarea.entry.js +2 -1
  109. package/dist/esm/q2-textarea.entry.js.map +1 -1
  110. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +30 -24
  111. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
  112. package/dist/q2-tecton-elements/q2-badge_7.entry.js +8 -0
  113. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  114. package/dist/q2-tecton-elements/q2-dropdown.entry.js +13 -15
  115. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  116. package/dist/q2-tecton-elements/q2-editable-field.entry.js +32 -23
  117. package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
  118. package/dist/q2-tecton-elements/q2-file-picker.entry.js +338 -0
  119. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -0
  120. package/dist/q2-tecton-elements/q2-item_3.entry.js +331 -0
  121. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -0
  122. package/dist/q2-tecton-elements/q2-pill.entry.js +22 -18
  123. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  124. package/dist/q2-tecton-elements/q2-select.entry.js +8 -8
  125. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  126. package/dist/q2-tecton-elements/q2-tag.entry.js +36 -34
  127. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  128. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  129. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  130. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -2
  131. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  132. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
  133. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +1 -4
  134. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +2 -1
  135. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +98 -0
  136. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  137. package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
  138. package/dist/types/components.d.ts +101 -0
  139. package/package.json +3 -3
  140. package/dist/cjs/q2-item.cjs.entry.js +0 -120
  141. package/dist/cjs/q2-item.cjs.entry.js.map +0 -1
  142. package/dist/cjs/q2-link.cjs.entry.js +0 -64
  143. package/dist/cjs/q2-link.cjs.entry.js.map +0 -1
  144. package/dist/cjs/q2-list.cjs.entry.js +0 -83
  145. package/dist/cjs/q2-list.cjs.entry.js.map +0 -1
  146. package/dist/esm/q2-item.entry.js.map +0 -1
  147. package/dist/esm/q2-link.entry.js.map +0 -1
  148. package/dist/esm/q2-list.entry.js.map +0 -1
  149. package/dist/q2-tecton-elements/q2-item.entry.js +0 -158
  150. package/dist/q2-tecton-elements/q2-item.entry.js.map +0 -1
  151. package/dist/q2-tecton-elements/q2-link.entry.js +0 -83
  152. package/dist/q2-tecton-elements/q2-link.entry.js.map +0 -1
  153. package/dist/q2-tecton-elements/q2-list.entry.js +0 -100
  154. package/dist/q2-tecton-elements/q2-list.entry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2ItemCss","Q2ItemStyle0","Q2Item","componentDidLoad","MutationObserver","observer","this","renderTrigger","observe","hostElement","childList","subtree","attributes","mutationObserver","overrideFocus","delegateFocus","event","clickable","_a","itemElement","focus","preventDefault","actionClasses","classes","hasBulletSlotContent","push","join","bulletClasses","hasFooterSlotContent","footerClasses","hasActionSlotContent","hasSlotContent","hasBodySlotContent","hasHeaderSlotContent","itemClasses","mainClasses","render","h","key","class","ref","el","role","undefined","tabIndex","name"],"sources":["src/components/q2-item/q2-item.scss?tag=q2-item&encapsulation=shadow","src/components/q2-item/q2-item.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host {\n display: block;\n}\n\n:host([clickable]) {\n cursor: pointer;\n --comp-background: #{var-list(\n --tct-btn-primary-background,\n --tct-btn-primary-bg,\n --t-a11y-active-gray-color-AA,\n #404040\n )};\n .item {\n --comp-border-radius: #{var-list(--tct-item-border-radius, --app-border-radius-1, 4px)};\n --comp-btn-tween: #{var-list(var-prefixer(btn-tween), --tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-btn-fallback-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --comp-hover-box-shadow: #{var-list(--tct-btn-primary-box-shadow, --comp-btn-fallback-box-shadow)};\n --comp-active-box-shadow: var(--tct-btn-primary-active-background, #0063a0);\n --comp-font-color: #{var-list(--tct-btn-primary-font-color, --app-white, #ffffff)};\n @include btn-ring(primary, hover, --comp-background, --comp-font-color, null);\n &:hover {\n box-shadow: var(--comp-hover-box-shadow);\n }\n &:active {\n box-shadow: var(--comp-active-box-shadow);\n }\n &:focus-visible {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n\n.action {\n --tct-btn-icon-height: #{var-list(--tct-item-action-icon-height, --app-scale-6x, 30px)};\n --tct-btn-icon-width: #{var-list(--tct-item-action-icon-width, --app-scale-6x, 30px)};\n --tct-icon-size: #{var-list(--tct-item-action-icon-size, --app-scale-6x, 30px)};\n --tct-radio-label-hidden-columns: 18px;\n --tct-radio-label-margin-right: 0;\n --tct-radio-margin: 0;\n\n align-items: center;\n display: flex;\n grid-row: 1;\n justify-content: center;\n\n &-no-bullet {\n grid-column: 2;\n }\n}\n\n.body {\n color: var-list(--tct-item-body-color, --t-textA, #747474);\n font-size: var-list(--tct-item-body-font-size, --app-font-size, 14px);\n font-weight: var-list(--tct-item-body-font-weight, 400);\n}\n\n.bullet {\n --tct-avatar-fallback-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-fallback-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n --tct-avatar-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n\n grid-column: 1;\n grid-row-start: 1;\n grid-row-end: 3;\n padding-top: var-list(--tct-item-bullet-padding-top, --app-scale-1x, 5px);\n text-align: center;\n\n &-no-footer {\n grid-row-end: 2;\n }\n}\n\n.footer {\n grid-column-start: 2;\n grid-column-end: 4;\n grid-row: 2;\n\n &-no-action-nor-bullet {\n grid-column-start: 1;\n grid-column-end: 2;\n }\n\n &-no-action {\n grid-column-start: 2;\n grid-column-end: 3;\n }\n\n &-no-bullet {\n grid-column-start: 1;\n grid-column-end: 3;\n }\n}\n\n.header {\n color: var-list(--tct-item-header-color, --t-text, #4d4d4d);\n font-size: var-list(--tct-item-header-font-size, 16px);\n font-weight: var-list(--tct-item-header-font-weight, 600);\n line-height: var-list(--tct-item-header-line-height, 1.5);\n}\n\n.item {\n border: var(--tct-item-border);\n border-radius: var(--comp-border-radius);\n transition: var(--comp-btn-tween);\n transition-property: box-shadow;\n column-gap: var-list(--tct-item-horizontal-spacing, --app-scale-3x, 15px);\n display: grid;\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(auto, 1fr) minmax(\n var(--app-scale-5x, 25px),\n auto\n );\n grid-template-rows: auto auto;\n padding: var(--tct-item-padding, 0);\n row-gap: var(--tct-item-vertical-spacing, var(--app-scale-2x, 10px));\n\n &-no-action-nor-bullet {\n grid-template-columns: auto;\n }\n\n &-no-action {\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(auto, 1fr);\n }\n\n &-no-footer {\n grid-template-rows: auto;\n }\n\n &-no-bullet {\n grid-template-columns: minmax(auto, 1fr) minmax(var(--app-scale-5x, 25px), auto);\n }\n}\n\n.main {\n grid-column: 2;\n grid-row: 1;\n\n &-no-action-nor-bullet {\n grid-column: 1;\n }\n\n &-no-bullet {\n grid-column: 1;\n }\n}\n","import { Component, Element, Listen, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-item',\n styleUrl: 'q2-item.scss',\n shadow: true,\n})\nexport class Q2Item {\n // #region Own Properties\n\n itemElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Makes the item clickable. */\n @Prop({ reflect: true })\n clickable: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidLoad() {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => (this.renderTrigger += 1));\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (this.clickable) {\n this.itemElement?.focus();\n } else {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get actionClasses() {\n const classes = ['action'];\n if (!this.hasBulletSlotContent) {\n classes.push(`action-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get bulletClasses() {\n const classes = ['bullet'];\n if (!this.hasFooterSlotContent) {\n classes.push(`bullet-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get footerClasses() {\n const classes = ['footer'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`footer-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`footer-no-action`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`footer-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get hasActionSlotContent() {\n return hasSlotContent(this.hostElement, 'action');\n }\n\n get hasBodySlotContent() {\n return hasSlotContent(this.hostElement, 'body');\n }\n\n get hasBulletSlotContent() {\n return hasSlotContent(this.hostElement, 'bullet');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n get hasHeaderSlotContent() {\n return hasSlotContent(this.hostElement, 'header');\n }\n\n get itemClasses() {\n const classes = ['item'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`item-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`item-no-action`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`item-no-bullet`);\n }\n if (!this.hasFooterSlotContent) {\n classes.push(`item-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get mainClasses() {\n const classes = ['main'];\n if (!this.hasActionSlotContent && !this.hasBulletSlotContent) {\n classes.push(`main-no-action-nor-bullet`);\n } else if (!this.hasBulletSlotContent) {\n classes.push(`main-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { clickable } = this;\n return (\n <div\n test-id=\"itemContainer\"\n class={this.itemClasses}\n ref={el => (this.itemElement = el)}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n >\n {this.hasBulletSlotContent && (\n <div class={this.bulletClasses}>\n <slot name=\"bullet\" />\n </div>\n )}\n <div class={this.mainClasses}>\n {this.hasHeaderSlotContent && (\n <div class=\"header\">\n <slot name=\"header\" />\n </div>\n )}\n {this.hasBodySlotContent && (\n <div class=\"body\">\n <slot name=\"body\" />\n </div>\n )}\n </div>\n {this.hasActionSlotContent && (\n <div class={this.actionClasses}>\n <slot name=\"action\" />\n </div>\n )}\n {this.hasFooterSlotContent && (\n <div class={this.footerClasses}>\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAY;;AAClB,MAAAC,IAAeD;;MCOFE,IAAM;;;yBAgBS;;;;;EAYxB,gBAAAC;IACI,WAAWC,qBAAqB,aAAa;MACzC,MAAMC,IAAW,IAAID,kBAAiB,MAAOE,KAAKC,iBAAiB;MACnEF,EAASG,QAAQF,KAAKG,aAAa;QAAEC,WAAW;QAAMC,SAAS;QAAMC,YAAY;;MACjFN,KAAKO,mBAAmBR;;IAE5BS,EAAcR,KAAKG;;;;EAOvB,aAAAM,CAAcC;;IACV,IAAIV,KAAKW,WAAW;OAChBC,IAAAZ,KAAKa,iBAAW,QAAAD,WAAA,aAAAA,EAAEE;WACf;MACHJ,EAAMK;;;;;EAOd,iBAAIC;IACA,MAAMC,IAAU,EAAC;IACjB,KAAKjB,KAAKkB,sBAAsB;MAC5BD,EAAQE,KAAK;;IAGjB,OAAOF,EAAQG,KAAK;;EAGxB,iBAAIC;IACA,MAAMJ,IAAU,EAAC;IACjB,KAAKjB,KAAKsB,sBAAsB;MAC5BL,EAAQE,KAAK;;IAGjB,OAAOF,EAAQG,KAAK;;EAGxB,iBAAIG;IACA,MAAMN,IAAU,EAAC;IACjB,KAAKjB,KAAKwB,yBAAyBxB,KAAKkB,sBAAsB;MAC1DD,EAAQE,KAAK;WACV,KAAKnB,KAAKwB,sBAAsB;MACnCP,EAAQE,KAAK;WACV,KAAKnB,KAAKkB,sBAAsB;MACnCD,EAAQE,KAAK;;IAGjB,OAAOF,EAAQG,KAAK;;EAGxB,wBAAII;IACA,OAAOC,EAAezB,KAAKG,aAAa;;EAG5C,sBAAIuB;IACA,OAAOD,EAAezB,KAAKG,aAAa;;EAG5C,wBAAIe;IACA,OAAOO,EAAezB,KAAKG,aAAa;;EAG5C,wBAAImB;IACA,OAAOG,EAAezB,KAAKG,aAAa;;EAG5C,wBAAIwB;IACA,OAAOF,EAAezB,KAAKG,aAAa;;EAG5C,eAAIyB;IACA,MAAMX,IAAU,EAAC;IACjB,KAAKjB,KAAKwB,yBAAyBxB,KAAKkB,sBAAsB;MAC1DD,EAAQE,KAAK;WACV,KAAKnB,KAAKwB,sBAAsB;MACnCP,EAAQE,KAAK;WACV,KAAKnB,KAAKkB,sBAAsB;MACnCD,EAAQE,KAAK;;IAEjB,KAAKnB,KAAKsB,sBAAsB;MAC5BL,EAAQE,KAAK;;IAGjB,OAAOF,EAAQG,KAAK;;EAGxB,eAAIS;IACA,MAAMZ,IAAU,EAAC;IACjB,KAAKjB,KAAKwB,yBAAyBxB,KAAKkB,sBAAsB;MAC1DD,EAAQE,KAAK;WACV,KAAKnB,KAAKkB,sBAAsB;MACnCD,EAAQE,KAAK;;IAGjB,OAAOF,EAAQG,KAAK;;;;EAMxB,MAAAU;IACI,OAAMnB,WAAEA,KAAcX;IACtB,OACI+B,EAAA;MAAAC,KAAA;MAAA,WACY;MACRC,OAAOjC,KAAK4B;MACZM,KAAKC,KAAOnC,KAAKa,cAAcsB;MAC/BC,MAAMzB,IAAY,WAAW0B;MAC7BC,UAAU3B,IAAY,IAAI0B;OAEzBrC,KAAKkB,wBACFa,EAAA;MAAAC,KAAA;MAAKC,OAAOjC,KAAKqB;OACbU,EAAA;MAAAC,KAAA;MAAMO,MAAK;SAGnBR,EAAA;MAAAC,KAAA;MAAKC,OAAOjC,KAAK6B;OACZ7B,KAAK2B,wBACFI,EAAA;MAAAC,KAAA;MAAKC,OAAM;OACPF,EAAA;MAAAC,KAAA;MAAMO,MAAK;SAGlBvC,KAAK0B,sBACFK,EAAA;MAAAC,KAAA;MAAKC,OAAM;OACPF,EAAA;MAAAC,KAAA;MAAMO,MAAK;UAItBvC,KAAKwB,wBACFO,EAAA;MAAAC,KAAA;MAAKC,OAAOjC,KAAKgB;OACbe,EAAA;MAAAC,KAAA;MAAMO,MAAK;SAGlBvC,KAAKsB,wBACFS,EAAA;MAAAC,KAAA;MAAKC,OAAOjC,KAAKuB;OACbQ,EAAA;MAAAC,KAAA;MAAMO,MAAK"}
@@ -1,83 +0,0 @@
1
- import { r as t, c as i, h as n, g as o } from "./index-7a5365e2.js";
2
-
3
- const e = "*{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}:host{display:inline-block}:host:active{box-shadow:none}.link-container{--comp-link-font-bold-stroke-width:0.5px;background:transparent;border:none;font-size:var(--tct-link-font-size, inherit);font-weight:var(--tct-link-font-weight, inherit)}.link-container.standalone{--comp-icon-stroke:var(--tct-link-icon-stroke-width, 1.5)}.link-container.standalone .link{color:var(--tct-link-color-standalone, var(--t-primary));height:var(--tct-link-height, 24px);display:flex;align-items:center;--tct-icon-size:16px;text-decoration:none}.link-container.standalone .link q2-icon{margin-left:var(--tct-link-label-icon-gap, 6px)}.link-container.standalone:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover .link{color:var(--tct-link-color-standalone-active, var(--t-primary-d2));box-shadow:none}.link-container.standalone.disabled .link{cursor:not-allowed;color:var(--tct-link-color-standalone-disabled, var(--t-primary));opacity:0.5;text-decoration:none}.link-container.standalone.disabled:hover{text-decoration:none}.link-container.inline{margin:0 var(--tct-link-side-margin, 6px);text-decoration:underline;color:var(--tct-link-color-inline, var(--t-primary))}.link-container.inline:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width))}.link-container.inline:active:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));color:var(--tct-link-color-inline-active, var(--t-primary-d2));box-shadow:none}.link-container.inline.disabled{cursor:not-allowed;opacity:0.5}.link-container.inline:focus-visible .link-container.inline{box-shadow:var(--const-double-focus-ring)}";
4
-
5
- const r = e;
6
-
7
- const l = class {
8
- constructor(n) {
9
- t(this, n);
10
- this.tctClick = i(this, "tctClick", 7);
11
- this.disabled = false;
12
- this.href = "#";
13
- this.label = undefined;
14
- this.referrerpolicy = undefined;
15
- this.target = undefined;
16
- this.tctTitle = undefined;
17
- this.variant = "inline";
18
- }
19
- // #endregion
20
- // #region Public Methods API
21
- /**
22
- * A method for click.
23
- *
24
- * @testOnly
25
- */
26
- async clickLink() {
27
- const t = this.hostElement.shadowRoot.querySelector(`[test-id="linkAnchor"]`);
28
- t === null || t === void 0 ? void 0 : t.click();
29
- }
30
- // #endregion
31
- // #region Local Methods
32
- get classes() {
33
- const t = [ "link-container" ];
34
- if (this.variant) t.push(this.variant);
35
- if (!!this.disabled) t.push("disabled");
36
- return t.join(" ");
37
- }
38
- handleClick(t) {
39
- t.stopPropagation();
40
- if (this.disabled) return;
41
- this.tctClick.emit({
42
- target: this.target,
43
- referrerpolicy: this.referrerpolicy,
44
- href: this.href
45
- });
46
- }
47
- // #endregion
48
- // #region Render Methods
49
- render() {
50
- return this.variant === "standalone" ? n("div", {
51
- class: this.classes,
52
- "aria-label": this.label
53
- }, n("a", {
54
- class: "link",
55
- onClick: t => this.handleClick(t),
56
- href: !!this.disabled ? undefined : this.href,
57
- target: this.target || "_self",
58
- referrerPolicy: this.referrerpolicy || undefined,
59
- title: this.tctTitle || undefined,
60
- "test-id": "linkAnchor"
61
- }, n("span", {
62
- class: "label"
63
- }, this.label), n("q2-icon", {
64
- type: "chevron-right"
65
- }))) : n("a", {
66
- class: this.classes,
67
- onClick: t => this.handleClick(t),
68
- href: !!this.disabled ? undefined : this.href,
69
- target: this.target || "_self",
70
- referrerPolicy: this.referrerpolicy || undefined,
71
- title: this.tctTitle || undefined,
72
- "test-id": "linkAnchor"
73
- }, this.label);
74
- }
75
- get hostElement() {
76
- return o(this);
77
- }
78
- };
79
-
80
- l.style = r;
81
-
82
- export { l as q2_link };
83
- //# sourceMappingURL=q2-link.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2LinkCss","Q2LinkStyle0","Q2Link","clickLink","anchor","this","hostElement","shadowRoot","querySelector","click","classes","list","variant","push","disabled","join","handleClick","event","stopPropagation","tctClick","emit","target","referrerpolicy","href","render","h","class","label","onClick","e","undefined","referrerPolicy","title","tctTitle","type"],"sources":["src/components/q2-link/q2-link.scss?tag=q2-link&encapsulation=shadow","src/components/q2-link/q2-link.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n}\n\n:host {\n &:active {\n box-shadow: none;\n }\n}\n\n.link-container {\n --comp-link-font-bold-stroke-width: 0.5px;\n background: transparent;\n border: none;\n font-size: var-list(--tct-link-font-size, inherit);\n font-weight: var-list(--tct-link-font-weight, inherit);\n\n &.standalone {\n --comp-icon-stroke: var(--tct-link-icon-stroke-width, 1.5);\n .link {\n color: var-list(--tct-link-color-standalone, --t-primary);\n height: var(--tct-link-height, 24px);\n display: flex;\n align-items: center;\n --tct-icon-size: 16px;\n text-decoration: none;\n q2-icon {\n margin-left: var(--tct-link-label-icon-gap, 6px);\n }\n }\n &:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n }\n &:active:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n .link {\n color: var-list(--tct-link-color-standalone-active, --t-primary-d2);\n box-shadow: none;\n }\n }\n &.disabled {\n .link {\n cursor: not-allowed;\n color: var-list(--tct-link-color-standalone-disabled, --t-primary);\n opacity: 0.5;\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n }\n }\n\n &.inline {\n margin: 0 var(--tct-link-side-margin, 6px);\n text-decoration: underline;\n color: var-list(--tct-link-color-inline, --t-primary);\n &:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n }\n &:active:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n color: var-list(--tct-link-color-inline-active, --t-primary-d2);\n box-shadow: none;\n }\n &.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n &:focus-visible & {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n\n","import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** The disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = '#';\n\n /** The label to display. */\n @Prop({ reflect: true })\n label: string;\n\n /** The [referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy) */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** The target. */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** The title attribute on a tag in shadowRoot. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** The value link to display. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event()\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes() {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return this.variant === 'standalone' ? (\n <div\n class={this.classes}\n aria-label={this.label}\n >\n <a\n class=\"link\"\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n <span class=\"label\">{this.label}</span>\n <q2-icon type=\"chevron-right\"></q2-icon>\n </a>\n </div>\n ) : (\n <a\n class={this.classes}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n"],"mappings":";;AAAA,MAAMA,IAAY;;AAClB,MAAAC,IAAeD;;MCCFE,IAAM;;;;oBAWK;gBAIL;;;;;mBAoBG;;;;;;;;;EAqBlB,eAAMC;IACF,MAAMC,IAASC,KAAKC,YAAYC,WAAWC,cAAc;IACxDJ,MAA4B,QAA5BA,WAAM,aAANA,EAA8BK;;;;EAMnC,WAAIC;IACA,MAAMC,IAAO,EAAC;IACd,IAAIN,KAAKO,SAASD,EAAKE,KAAKR,KAAKO;IACjC,MAAMP,KAAKS,UAAUH,EAAKE,KAAK;IAC/B,OAAOF,EAAKI,KAAK;;EAGrB,WAAAC,CAAYC;IACRA,EAAMC;IACN,IAAIb,KAAKS,UAAU;IACnBT,KAAKc,SAASC,KAAK;MACfC,QAAQhB,KAAKgB;MACbC,gBAAgBjB,KAAKiB;MACrBC,MAAMlB,KAAKkB;;;;;EAOnB,MAAAC;IACI,OAAOnB,KAAKO,YAAY,eACpBa,EAAA;MACIC,OAAOrB,KAAKK;MAAO,cACPL,KAAKsB;OAEjBF,EAAA;MACIC,OAAM;MACNE,SAASC,KAAKxB,KAAKW,YAAYa;MAC/BN,QAAQlB,KAAKS,WAAWgB,YAAYzB,KAAKkB;MACzCF,QAAQhB,KAAKgB,UAAU;MACvBU,gBAAgB1B,KAAKiB,kBAAkBQ;MACvCE,OAAO3B,KAAK4B,YAAYH;MAAS,WACzB;OAERL,EAAA;MAAMC,OAAM;OAASrB,KAAKsB,QAC1BF,EAAA;MAASS,MAAK;WAItBT,EAAA;MACIC,OAAOrB,KAAKK;MACZkB,SAASC,KAAKxB,KAAKW,YAAYa;MAC/BN,QAAQlB,KAAKS,WAAWgB,YAAYzB,KAAKkB;MACzCF,QAAQhB,KAAKgB,UAAU;MACvBU,gBAAgB1B,KAAKiB,kBAAkBQ;MACvCE,OAAO3B,KAAK4B,YAAYH;MAAS,WACzB;OAEPzB,KAAKsB"}
@@ -1,100 +0,0 @@
1
- import { r as e, h as t, g as i } from "./index-7a5365e2.js";
2
-
3
- import { e as s } from "./index-d18e2a20.js";
4
-
5
- const o = "*{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}:host([bordered]:not([bordered=false])) ::slotted(q2-item:not(:last-child)),:host([bordered]:not([bordered=false])) .header{border-style:var(--tct-list-item-border-style, solid);border-width:var(--tct-list-item-border-width, 0 0 1px 0);border-color:var(--tct-list-item-border-color, var(--t-gray-12, #d9d9d9))}::slotted(q2-item){--comp-item-padding:var(--tct-list-item-padding, var(--app-scale-2x, 10px) var(--app-scale-4x, 20px));--tct-item-padding:var(--comp-item-padding)}.header{--comp-default-header-padding:0 var(--app-scale-4x, 20px);display:flex;gap:var(--app-scale-3x, 12px);padding:var(--tct-list-header-padding, var(--comp-default-header-padding));min-height:var(--tct-list-header-min-height, var(--t-list-header-min-height, 44px))}.header-spacebetween{justify-content:space-between}.header-start{justify-content:flex-start}.header-end{justify-content:flex-end}.header .label{width:100%;height:var(--tct-list-label-height, 44px);line-height:var(--tct-list-label-line-height, 44px);font-size:var(--tct-list-label-font-size, var(--app-font-size, 14px));font-weight:var(--tct-list-label-font-weight, 600);color:var(--tct-list-label-font-color, var(--t-text, #4d4d4d))}";
6
-
7
- const r = o;
8
-
9
- const n = class {
10
- constructor(t) {
11
- e(this, t);
12
- this.scheduledAfterRender = [];
13
- this.onMutationObserved = () => {
14
- this.renderTrigger += 1;
15
- this.scheduledAfterRender.push((() => {
16
- Array.from(this.hostElement.children).forEach((e => {
17
- if (e.tagName === "Q2-ITEM") e.role = "listitem";
18
- }));
19
- }));
20
- };
21
- this.renderTrigger = 0;
22
- this.bordered = undefined;
23
- this.label = undefined;
24
- }
25
- // #endregion
26
- // #region Component Lifecycle Events
27
- disconnectedCallback() {
28
- var e;
29
- (e = this.mutationObserver) === null || e === void 0 ? void 0 : e.disconnect();
30
- this.mutationObserver = null;
31
- }
32
- componentDidLoad() {
33
- if (typeof MutationObserver === "undefined") return;
34
- const e = new MutationObserver(this.onMutationObserved);
35
- e.observe(this.hostElement, {
36
- childList: true,
37
- subtree: true
38
- });
39
- this.mutationObserver = e;
40
- this.onMutationObserved();
41
- }
42
- componentDidRender() {
43
- this.scheduledAfterRender.forEach((e => e()));
44
- this.scheduledAfterRender = [];
45
- }
46
- // #endregion
47
- // #region Local Methods
48
- get hasFilterSlot() {
49
- return !!this.hostElement.querySelector("q2-pill") || s(this.hostElement, "pill");
50
- }
51
- get hasLabelContent() {
52
- return !!this.label;
53
- }
54
- get headerClasses() {
55
- const e = [ "header" ];
56
- if (this.hasLabelContent && this.hasFilterSlot) {
57
- e.push("header-spacebetween");
58
- } else if (this.hasLabelContent && !this.hasFilterSlot) {
59
- e.push("header-start");
60
- } else if (!this.hasLabelContent && this.hasFilterSlot) {
61
- e.push("header-end");
62
- }
63
- return e.join(" ");
64
- }
65
- get listClasses() {
66
- const e = [ "list" ];
67
- return e.join(" ");
68
- }
69
- // #endregion
70
- // #region Render Methods
71
- render() {
72
- return t("div", {
73
- key: "e4371faae59ae85dee324d6d6783a4b93c23f67f",
74
- class: this.listClasses,
75
- ref: e => this.listElement = e
76
- }, (this.hasFilterSlot || this.hasLabelContent) && t("div", {
77
- key: "59cc98b62d2581a66a9ed127189fb23364c49bff",
78
- class: this.headerClasses
79
- }, t("div", {
80
- key: "568b6fab57c7552d5a577d19bd31760f6d1aa461",
81
- class: "label"
82
- }, this.label), this.hasFilterSlot && t("slot", {
83
- key: "d27e785788847cf1a422568383bfe5d986764b2b",
84
- name: "filter"
85
- })), t("div", {
86
- key: "7a00add6911167d7a27008f10f5d44cfae5d80b2",
87
- role: "list"
88
- }, t("slot", {
89
- key: "dd5a0290091b0f1cb00a14cde43bab36e87573d2"
90
- })));
91
- }
92
- get hostElement() {
93
- return i(this);
94
- }
95
- };
96
-
97
- n.style = r;
98
-
99
- export { n as q2_list };
100
- //# sourceMappingURL=q2-list.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2ListCss","Q2ListStyle0","Q2List","this","scheduledAfterRender","onMutationObserved","renderTrigger","push","Array","from","hostElement","children","forEach","child","tagName","role","disconnectedCallback","_a","mutationObserver","disconnect","componentDidLoad","MutationObserver","observer","observe","childList","subtree","componentDidRender","fn","hasFilterSlot","querySelector","hasSlotContent","hasLabelContent","label","headerClasses","classes","join","listClasses","render","h","key","class","ref","el","listElement","name"],"sources":["src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered='false'])) {\n ::slotted(q2-item:not(:last-child)),\n .header {\n border-style: var-list(--tct-list-item-border-style, solid);\n border-width: var-list(--tct-list-item-border-width, unquote('0 0 1px 0'));\n border-color: var-list(--tct-list-item-border-color, --t-gray-12, #d9d9d9);\n }\n}\n\n::slotted(q2-item) {\n --comp-item-padding: #{var-list(\n --tct-list-item-padding,\n unquote('#{var-list(--app-scale-2x, 10px) var-list(--app-scale-4x, 20px)}')\n )};\n --tct-item-padding: var(--comp-item-padding);\n}\n\n.header {\n --comp-default-header-padding: 0 var(--app-scale-4x, 20px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(--tct-list-header-padding, --comp-default-header-padding);\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAY;;AAClB,MAAAC,IAAeD;;MCOFE,IAAM;;;IAKfC,KAAAC,uBAAuC;IA0EvCD,KAAAE,qBAAqB;MACjBF,KAAKG,iBAAiB;MACtBH,KAAKC,qBAAqBG,MAAK;QAC3BC,MAAMC,KAAKN,KAAKO,YAAYC,UAAUC,SAAQC;UAC1C,IAAIA,EAAMC,YAAY,WAAWD,EAAME,OAAO;AAAU;AAC1D;AACJ;yBApEkB;;;;;;EAgBxB,oBAAAC;;KACIC,IAAAd,KAAKe,sBAAgB,QAAAD,WAAA,aAAAA,EAAEE;IACvBhB,KAAKe,mBAAmB;;EAG5B,gBAAAE;IACI,WAAWC,qBAAqB,aAAa;IAC7C,MAAMC,IAAW,IAAID,iBAAiBlB,KAAKE;IAC3CiB,EAASC,QAAQpB,KAAKO,aAAa;MAAEc,WAAW;MAAMC,SAAS;;IAC/DtB,KAAKe,mBAAmBI;IACxBnB,KAAKE;;EAGT,kBAAAqB;IACIvB,KAAKC,qBAAqBQ,SAAQe,KAAMA;IACxCxB,KAAKC,uBAAuB;;;;EAMhC,iBAAIwB;IACA,SAASzB,KAAKO,YAAYmB,cAAc,cAAcC,EAAe3B,KAAKO,aAAa;;EAG3F,mBAAIqB;IACA,SAAS5B,KAAK6B;;EAGlB,iBAAIC;IACA,MAAMC,IAAU,EAAC;IACjB,IAAI/B,KAAK4B,mBAAmB5B,KAAKyB,eAAe;MAC5CM,EAAQ3B,KAAK;WACV,IAAIJ,KAAK4B,oBAAoB5B,KAAKyB,eAAe;MACpDM,EAAQ3B,KAAK;WACV,KAAKJ,KAAK4B,mBAAmB5B,KAAKyB,eAAe;MACpDM,EAAQ3B,KAAK;;IAEjB,OAAO2B,EAAQC,KAAK;;EAGxB,eAAIC;IACA,MAAMF,IAAU,EAAC;IACjB,OAAOA,EAAQC,KAAK;;;;EAexB,MAAAE;IACI,OACIC,EAAA;MAAAC,KAAA;MACIC,OAAOrC,KAAKiC;MACZK,KAAKC,KAAOvC,KAAKwC,cAAcD;QAE7BvC,KAAKyB,iBAAiBzB,KAAK4B,oBACzBO,EAAA;MAAAC,KAAA;MAAKC,OAAOrC,KAAK8B;OACbK,EAAA;MAAAC,KAAA;MAAKC,OAAM;OAASrC,KAAK6B,QACxB7B,KAAKyB,iBAAiBU,EAAA;MAAAC,KAAA;MAAMK,MAAK;SAG1CN,EAAA;MAAAC,KAAA;MAAKxB,MAAK;OACNuB,EAAA;MAAAC,KAAA"}