@nanoporetech-digital/components 2.1.3 → 2.2.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 (199) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/index-cb62df44.js +5 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/nano-components.cjs.js +1 -1
  8. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nano-global-search-results.cjs.entry.js +36 -26
  15. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-split-pane.cjs.entry.js +278 -0
  21. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -0
  22. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -0
  23. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-tab.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  26. package/dist/collection/collection-manifest.json +1 -0
  27. package/dist/collection/components/accordion/accordion.js +1 -1
  28. package/dist/collection/components/alert/alert.js +1 -1
  29. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  30. package/dist/collection/components/algolia/algolia-input.js +5 -5
  31. package/dist/collection/components/algolia/algolia-results.js +1 -1
  32. package/dist/collection/components/algolia/algolia.js +6 -6
  33. package/dist/collection/components/checkbox/checkbox-group.js +2 -2
  34. package/dist/collection/components/checkbox/checkbox.js +3 -3
  35. package/dist/collection/components/datalist/datalist.css +1 -1
  36. package/dist/collection/components/datalist/datalist.js +1 -1
  37. package/dist/collection/components/date-input/date-input.js +7 -7
  38. package/dist/collection/components/date-picker/date-picker.js +5 -5
  39. package/dist/collection/components/details/details.js +1 -1
  40. package/dist/collection/components/dialog/dialog.js +1 -1
  41. package/dist/collection/components/file-upload/file-upload.js +4 -4
  42. package/dist/collection/components/global-nav/global-nav.js +4 -4
  43. package/dist/collection/components/global-search-results/global-search-results.css +21 -0
  44. package/dist/collection/components/global-search-results/global-search-results.js +35 -25
  45. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  46. package/dist/collection/components/grid/grid-item.js +1 -1
  47. package/dist/collection/components/icon/icon.js +1 -1
  48. package/dist/collection/components/input/input.js +5 -5
  49. package/dist/collection/components/nav-item/nav-item.js +4 -4
  50. package/dist/collection/components/range/range.js +4 -4
  51. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  52. package/dist/collection/components/select/select.js +7 -7
  53. package/dist/collection/components/slides/slides.js +7 -7
  54. package/dist/collection/components/split-pane/split-pane.css +104 -0
  55. package/dist/collection/components/split-pane/split-pane.js +464 -0
  56. package/dist/collection/components/split-pane/split-pane.js.map +1 -0
  57. package/dist/collection/components/tabs/tab-group.js +3 -2
  58. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  59. package/dist/collection/components/tabs/tab.js +1 -1
  60. package/dist/collection/components/tabs/tab.js.map +1 -1
  61. package/dist/collection/utils/drag.js +21 -0
  62. package/dist/collection/utils/drag.js.map +1 -0
  63. package/dist/components/datalist.js.map +1 -1
  64. package/dist/components/icon-button.js.map +1 -1
  65. package/dist/components/menu.js.map +1 -1
  66. package/dist/components/nano-alert.js.map +1 -1
  67. package/dist/components/nano-checkbox.js.map +1 -1
  68. package/dist/components/nano-date-input.js.map +1 -1
  69. package/dist/components/nano-details.js.map +1 -1
  70. package/dist/components/nano-dialog.js.map +1 -1
  71. package/dist/components/nano-file-upload.js.map +1 -1
  72. package/dist/components/nano-global-nav.js.map +1 -1
  73. package/dist/components/nano-global-search-results.js +36 -26
  74. package/dist/components/nano-global-search-results.js.map +1 -1
  75. package/dist/components/nano-hero.js.map +1 -1
  76. package/dist/components/nano-menu-drawer.js.map +1 -1
  77. package/dist/components/nano-rating.js.map +1 -1
  78. package/dist/components/nano-split-pane.d.ts +11 -0
  79. package/dist/components/nano-split-pane.js +308 -0
  80. package/dist/components/nano-split-pane.js.map +1 -0
  81. package/dist/components/nano-tab-group.js +1 -0
  82. package/dist/components/nano-tab-group.js.map +1 -1
  83. package/dist/components/nano-tab.js +1 -1
  84. package/dist/components/nano-tab.js.map +1 -1
  85. package/dist/components/option.js.map +1 -1
  86. package/dist/custom-elements/index.d.ts +6 -0
  87. package/dist/custom-elements/index.js +310 -31
  88. package/dist/custom-elements/index.js.map +1 -1
  89. package/dist/esm/index-5f8d16e7.js +5 -0
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/esm/nano-alert.entry.js.map +1 -1
  92. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  93. package/dist/esm/nano-components.js +1 -1
  94. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  95. package/dist/esm/nano-date-input.entry.js.map +1 -1
  96. package/dist/esm/nano-details.entry.js.map +1 -1
  97. package/dist/esm/nano-dialog.entry.js.map +1 -1
  98. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  99. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  100. package/dist/esm/nano-global-search-results.entry.js +36 -26
  101. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  102. package/dist/esm/nano-hero.entry.js.map +1 -1
  103. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  104. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  105. package/dist/esm/nano-rating.entry.js.map +1 -1
  106. package/dist/esm/nano-split-pane.entry.js +274 -0
  107. package/dist/esm/nano-split-pane.entry.js.map +1 -0
  108. package/dist/esm/nano-tab-group.entry.js +1 -0
  109. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  110. package/dist/esm/nano-tab.entry.js +1 -1
  111. package/dist/esm/nano-tab.entry.js.map +1 -1
  112. package/dist/esm-es5/index-5f8d16e7.js +1 -1
  113. package/dist/esm-es5/loader.js +1 -1
  114. package/dist/esm-es5/loader.js.map +1 -1
  115. package/dist/esm-es5/nano-alert.entry.js.map +1 -1
  116. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  117. package/dist/esm-es5/nano-components.js +1 -1
  118. package/dist/esm-es5/nano-components.js.map +1 -1
  119. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -1
  120. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  121. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  122. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  123. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  124. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  125. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  126. package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
  127. package/dist/esm-es5/nano-hero.entry.js.map +1 -1
  128. package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
  129. package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
  130. package/dist/esm-es5/nano-rating.entry.js.map +1 -1
  131. package/dist/esm-es5/nano-split-pane.entry.js +5 -0
  132. package/dist/esm-es5/nano-split-pane.entry.js.map +1 -0
  133. package/dist/esm-es5/nano-tab-group.entry.js +1 -1
  134. package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
  135. package/dist/esm-es5/nano-tab.entry.js +2 -2
  136. package/dist/esm-es5/nano-tab.entry.js.map +1 -1
  137. package/dist/nano-components/nano-components.css +1 -1
  138. package/dist/nano-components/nano-components.esm.js +1 -1
  139. package/dist/nano-components/nano-components.esm.js.map +1 -1
  140. package/dist/nano-components/{p-e35eac75.entry.js → p-08b43111.entry.js} +2 -2
  141. package/dist/nano-components/p-08b43111.entry.js.map +1 -0
  142. package/dist/nano-components/p-090f22a9.system.entry.js.map +1 -1
  143. package/dist/nano-components/p-096682d9.system.js +1 -1
  144. package/dist/nano-components/p-096682d9.system.js.map +1 -1
  145. package/dist/nano-components/{p-e6f8f9f7.system.entry.js → p-1238f0fc.system.entry.js} +2 -2
  146. package/dist/nano-components/p-1238f0fc.system.entry.js.map +1 -0
  147. package/dist/nano-components/p-1e974cad.entry.js.map +1 -1
  148. package/dist/nano-components/p-1ec44caf.entry.js.map +1 -1
  149. package/dist/nano-components/p-1f99d776.entry.js +5 -0
  150. package/dist/nano-components/p-1f99d776.entry.js.map +1 -0
  151. package/dist/nano-components/p-20db18f3.entry.js.map +1 -1
  152. package/dist/nano-components/p-3456db01.entry.js.map +1 -1
  153. package/dist/nano-components/p-3ad1d5aa.system.entry.js.map +1 -1
  154. package/dist/nano-components/{p-3cf35ac4.system.entry.js → p-3f736fa2.system.entry.js} +2 -2
  155. package/dist/nano-components/p-3f736fa2.system.entry.js.map +1 -0
  156. package/dist/nano-components/p-4429caac.system.entry.js.map +1 -1
  157. package/dist/nano-components/p-531d5275.system.entry.js.map +1 -1
  158. package/dist/nano-components/p-56ba0d63.entry.js.map +1 -1
  159. package/dist/nano-components/p-58419bed.system.entry.js.map +1 -1
  160. package/dist/nano-components/p-5a476bba.system.entry.js.map +1 -1
  161. package/dist/nano-components/p-6afdb510.system.entry.js +5 -0
  162. package/dist/nano-components/p-6afdb510.system.entry.js.map +1 -0
  163. package/dist/nano-components/p-71c26ace.entry.js.map +1 -1
  164. package/dist/nano-components/p-730f60ea.entry.js.map +1 -1
  165. package/dist/nano-components/p-7d2e2685.entry.js.map +1 -1
  166. package/dist/nano-components/p-8a8f893b.system.entry.js.map +1 -1
  167. package/dist/nano-components/p-93448bcd.system.entry.js.map +1 -1
  168. package/dist/nano-components/p-94593617.system.entry.js.map +1 -1
  169. package/dist/nano-components/p-9ca5e023.system.entry.js +5 -0
  170. package/dist/nano-components/p-9ca5e023.system.entry.js.map +1 -0
  171. package/dist/nano-components/{p-bbe6b7af.entry.js → p-ad0715d1.entry.js} +2 -2
  172. package/dist/nano-components/p-ad0715d1.entry.js.map +1 -0
  173. package/dist/nano-components/p-b59d2bd5.entry.js.map +1 -1
  174. package/dist/nano-components/p-c0ddb4c3.entry.js.map +1 -1
  175. package/dist/nano-components/p-d6569144.entry.js.map +1 -1
  176. package/dist/nano-components/p-d9f2dda5.entry.js +5 -0
  177. package/dist/nano-components/p-d9f2dda5.entry.js.map +1 -0
  178. package/dist/nano-components/p-e11bd40d.entry.js.map +1 -1
  179. package/dist/nano-components/p-e15be516.system.entry.js.map +1 -1
  180. package/dist/nano-components/p-ef4e0912.system.entry.js.map +1 -1
  181. package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +1 -1
  182. package/dist/themes/london-calling.css +1 -1
  183. package/dist/themes/london-calling.css.map +1 -1
  184. package/dist/themes/nanopore.css +1 -1
  185. package/dist/themes/nanopore.css.map +1 -1
  186. package/dist/types/components/split-pane/split-pane.d.ts +74 -0
  187. package/dist/types/components.d.ts +85 -0
  188. package/dist/types/utils/drag.d.ts +1 -0
  189. package/docs-json.json +294 -2
  190. package/docs-vscode.json +49 -0
  191. package/package.json +8 -6
  192. package/dist/nano-components/p-05844b46.system.entry.js +0 -5
  193. package/dist/nano-components/p-05844b46.system.entry.js.map +0 -1
  194. package/dist/nano-components/p-3cf35ac4.system.entry.js.map +0 -1
  195. package/dist/nano-components/p-bbe6b7af.entry.js.map +0 -1
  196. package/dist/nano-components/p-e35eac75.entry.js.map +0 -1
  197. package/dist/nano-components/p-e6f8f9f7.system.entry.js.map +0 -1
  198. package/dist/nano-components/p-fea32549.entry.js +0 -5
  199. package/dist/nano-components/p-fea32549.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["src/components/tabs/tab-group.scss?tag=nano-tab-group&encapsulation=shadow","src/components/tabs/tab-group.tsx"],"names":["tabGroupCss","TabGroup","class_1","hostRef","_this","this","initialTouchX","initialTouchY","mutationObservers","WeakMap","hasScrollControls","hideControlRight","hideControlLeft","isLegacy","document","head","attachShadow","placement","noScrollControls","storeMethod","updateScrollControls","includes","nav","scrollWidth","clientWidth","tabs","handleClick","event","target","tab","closest","setActiveTab","handleKeyDown","key","preventDefault","activeEl","activeElement","tagName","toLowerCase","getAllActiveTabs","index_1","indexOf","length","isRtl","Math","max","min","setFocus","scrollIntoView","handleTabScroll","endRight","scrollLeft","endLeft","handleBtnClick","goRight","navWidth","getNavWidth","leftAmt","scroll","left","behavior","e","handleTouchStart","disableSwipe","touch","changedTouches","pageX","pageY","handleTouchEnd","distX","distY","threshold","xDiff","clientX","yDiff","clientY","isHorizontalSwipe","abs","currIndex","findIndex","el","active","toGo","activePanel","setAttribute","handleContentSlotChange","setTimeout","setAriaLabels","getActiveTab","handleTabSlotChange","ev","nodes","assignedNodes","flatten","forEach","node","get","mo","MutationObserver","syncActiveTabIndicator","set","observe","characterData","childList","subtree","prototype","handleTabNameChange","activeTab","panel","find","handlePlacementChange","handleNoScrollControlsChange","hideRightBtn","rightBtn","displayTransition","hideLeftBtn","leftBtn","watchScrollControls","_","show","Object","defineProperty","getAllTabs","filter","disabled","getDirectChildren","host","emitEvents","previousTab","map","getAllPanels","name","removeAttribute","nanoTabHide","emit","nanoTabShow","panels","getAttribute","width","_a","shadowRoot","querySelector","height","clientHeight","offset","getOffset","offsetTop","top","scrollTop","offsetLeft","activeTabIndicator","style","transform","computedStyle","getComputedStyle","parseFloat","paddingLeft","paddingRight","handleTabClose","tabIndex","stopImmediatePropagation","closeEv","nanoTabWillClose","defaultPrevented","prevTab","remove","nanoTabClose","componentDidLoad","observer","IntersectionObserver","entries","intersectionRatio","storeId","ComponentStore","init","unobserve","focusVisible","tabGroup","resizeObserver","ResizeObserver","raf","connectedCallback","dir","ownerDocument","disconnectedCallback","render","h","Host","class","assign","createColorClasses","color","legacy","part","ref","nano-tab-group","nano-tab-group--top","nano-tab-group--start","nano-tab-group--has-scroll-controls","nano-tab-group--has-scroll-controls-left","nano-tab-group--has-scroll-controls-right","onClick","onKeyDown","nano-tab-group__scroll-button","nano-tab-group__scroll-button--left","btn","onScroll","role","onSlotchange","nano-tab-group__scroll-button--right","onTouchStart","onTouchEnd"],"mappings":"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","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --indicator-transition: Only relevant to placement 'start'. defaults to #{$transition-fast};\n * @prop --indicator-color: defaults to #{$color-lightblue} on placement 'top' and #{$color-blue} on placement 'start';\n * @prop --indicator-track-color: Only relevant to placement 'start'. defaults to #{$color-lightgrey};\n * @prop --indicator-size: defaults to 5px on placement 'top' and 2px on placement 'start';\n\n * @prop --border-radius: defaults to #{$layer-border-radius};\n * @prop --background-rgb: will be used as the default background colour for tabs and content. defaults to #{$layer-bg-color-rgb};\n * @prop --shadow-opacity: opacity of the shadow behind tabs. defaults to 0.1;\n * @prop --scroll-btn-color: defaults to 'currentColor';\n\n * @prop --content-padding: defaults to 2rem 2.5rem;\n * @prop --content-bg: defaults to rgb(var(--background-rgb));\n * @prop --content-border-radius: defaults to var(--border-radius);\n\n * @prop --tabs-padding-start: defaults to 2.5rem on placement 'top' and 0 on placement 'start';\n * @prop --tabs-padding-end: defaults to 2.5rem on placement 'top' and 0 on placement 'start';\n * @prop --tabs-padding-top: defaults to 0;\n * @prop --tabs-padding-bottom: defaults to 0;\n * @prop --tabs-bg-rgb: defaults to var(--bg-color);\n * @prop --tab-border-radius: defaults to var(--border-radius);\n * @prop --tab-text-color: defaults to #{$color-blue} on placement 'top' and #{$color-darkgrey} on placement 'start';\n */\n\n:host {\n --indicator-transition: #{$transition-fast};\n --indicator-color: #{$color-lightblue};\n --indicator-track-color: #{$color-lightgrey};\n --indicator-size: 0;\n --border-radius: #{$layer-border-radius};\n --background-rgb: #{$layer-bg-color-rgb};\n --scroll-btn-color: 'currentColor';\n --content-padding: 2rem 2.5rem;\n --content-bg: rgb(var(--background-rgb));\n --content-border-radius: var(--border-radius);\n --tabs-padding-start: 2.5rem;\n --tabs-padding-end: 2.5rem;\n --tabs-padding-top: 0;\n --tabs-padding-bottom: 0;\n --tabs-container-bg: 'transparent';\n --tabs-bg-rgb: var(--background-rgb);\n --tab-border-radius: var(--border-radius);\n --tab-text-color: #{$color-blue};\n --shadow-opacity: 0.1;\n\n display: block;\n position: relative;\n z-index: #{$layer-index-raised};\n\n @media only screen and (max-width: 768px) {\n --tabs-padding-start: 1.5rem;\n --tabs-padding-end: 1.5rem;\n }\n\n ::slotted(nano-tab) {\n --tab-indicator-color: var(--indicator-color);\n --bg-rgb: var(--tabs-bg-rgb);\n --border-radius: var(--tab-border-radius);\n }\n}\n\n// IE bugfix - set this stuff statically\n:host(.legacy) {\n ::slotted(nano-tab) {\n --tab-indicator-color: #{$color-lightblue};\n --border-radius: 3px;\n --tab-indicator-size: 5px;\n --bg-rgb: 255, 255, 255;\n }\n}\n\n:host([placement='start']),\n:host([placement='end']) {\n --content-padding: 1rem;\n --tabs-padding-start: 0;\n --tabs-padding-end: 0;\n --tabs-padding-top: 0;\n --tabs-padding-bottom: 0;\n --tab-text-color: #{$color-darkgrey};\n --indicator-color: #{$color-blue};\n --indicator-size: 2px;\n}\n\n:host(.nano-color) {\n --indicator-color: var(--nano-color-tint, #{nano-color(primary, tint)});\n --tab-text-color: rgba(var(--nano-color-base-rgb), 0.7);\n\n ::slotted(nano-tab) {\n --active-text-color: var(--nano-color-shade, #{nano-color(primary, shade)});\n }\n}\n\n.nano-tab-group {\n display: flex;\n border-radius: 0;\n width: 100%;\n flex: inherit;\n\n &__tabs {\n display: flex;\n position: relative;\n width: 100%;\n }\n\n &__active-tab-indicator {\n position: absolute;\n transition: var(--indicator-transition) transform ease, var(--indicator-transition) width ease;\n }\n\n &__body {\n background: var(--content-bg);\n }\n\n &:not(.focus-visible) ::slotted(nano-tab) {\n --focus-shadow: none;\n }\n\n .nano-tab-group__nav-container {\n position: relative;\n display: flex;\n background: var(--tabs-container-bg);\n }\n\n button {\n appearance: none;\n background-color: transparent;\n }\n\n &__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n border: unset;\n z-index: 2;\n transition: #{$transition-fast} ease opacity;\n opacity: 0;\n color: var(--scroll-btn-color);\n\n &:focus {\n outline: none;\n }\n\n &.is-shown {\n opacity: 1;\n }\n\n &.focus-visible:focus {\n box-shadow: #{$control-focus-style} inset;\n }\n\n &--left {\n left: 0;\n }\n\n &--right {\n right: 0;\n }\n\n nano-icon {\n font-size: 16px;\n }\n }\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n // Top\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n &--top {\n flex-direction: column;\n\n .nano-tab-group__nav-container {\n &::after {\n content: '';\n width: 86%;\n box-shadow: 0 10px 40px 10px rgba(0, 0, 0, var(--shadow-opacity));\n height: 10px;\n position: absolute;\n left: 7%;\n bottom: -10px;\n border-radius: 10px;\n z-index: -1;\n }\n }\n\n .nano-tab-group__nav {\n @include hide-scrollbar();\n @include padding(\n var(--tabs-padding-top),\n var(--tabs-padding-end),\n var(--tabs-padding-bottom),\n var(--tabs-padding-start)\n );\n\n display: flex;\n overflow-x: auto;\n overflow-y: hidden;\n transition: #{$transition-medium} ease;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);\n mask-repeat: no-repeat;\n mask-image:\n linear-gradient(\n to left,\n rgba(0, 0, 0, 0) 0,\n rgba(0, 0, 0, 0) var(--tabs-padding-start),\n rgba(0, 0, 0, 1) calc(var(--tabs-padding-start) * 2),\n rgba(0, 0, 0, 1) calc(100% - (var(--tabs-padding-end) * 2)),\n rgba(0, 0, 0, 0) calc(100% - var(--tabs-padding-end)),\n rgba(0, 0, 0, 0)\n );\n mask-size: calc(100% + calc(var(--tabs-padding-end) * 4));\n mask-position: calc(var(--tabs-padding-end) * -2);\n\n &::after {\n content: ' ';\n\n @include padding(\n var(--tabs-padding-top),\n var(--tabs-padding-end),\n var(--tabs-padding-bottom),\n 0\n );\n\n line-height: 1;\n flex: 0 0 auto;\n }\n }\n\n &.nano-tab-group--has-scroll-controls-left {\n .nano-tab-group__nav {\n mask-position: 0;\n mask-size: calc(100% + (var(--tabs-padding-end) * 2));\n }\n }\n\n &.nano-tab-group--has-scroll-controls-right {\n .nano-tab-group__nav {\n mask-position: calc(var(--tabs-padding-end) * -1);\n mask-size: calc(100% + var(--tabs-padding-end));\n }\n }\n\n &.nano-tab-group--has-scroll-controls-left.nano-tab-group--has-scroll-controls-right {\n .nano-tab-group__nav {\n mask-size: 100%;\n mask-position: 0;\n }\n }\n\n .nano-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n text-align: center;\n color: var(--tab-text-color);\n width: auto;\n }\n\n .nano-tab-group__active-tab-indicator {\n bottom: -2px;\n border-bottom: solid var(--indicator-size) var(--indicator-color);\n }\n\n .nano-tab-group__body {\n order: 2;\n background: var(--content-bg);\n position: relative;\n overflow: hidden;\n width: auto;\n display: flex;\n justify-content: center;\n padding: var(--content-padding);\n border-radius: var(--content-border-radius);\n flex: 1 1 auto;\n }\n }\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n // Start\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n &--start {\n flex-direction: row;\n\n .nano-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n color: var(--tab-text-color);\n background: rgb(var(--tabs-bg-rgb));\n\n @include ltr-host() {\n border-left: solid var(--indicator-size) var(--indicator-track-color);\n text-align: left;\n }\n\n @include rtl-host() {\n border-right: solid var(--indicator-size) var(--indicator-track-color);\n text-align: right;\n }\n }\n\n .nano-tab-group__active-tab-indicator {\n @include ltr-host() {\n left: calc(-1 * 2px);\n border-left: solid var(--indicator-size) var(--indicator-color);\n }\n\n @include rtl-host() {\n right: calc(-1 * 2px);\n border-right: solid var(--indicator-size) var(--indicator-color);\n }\n }\n\n .nano-tab-group__body {\n flex: 1 1 auto;\n order: 2;\n padding: var(--content-padding);\n overflow: hidden;\n\n @include border-radius(\n 0,\n var(--content-border-radius),\n var(--content-border-radius),\n 0\n );\n }\n }\n}\n","import {\n Component,\n Element,\n ComponentInterface,\n Event,\n EventEmitter,\n Method,\n Prop,\n State,\n Watch,\n h,\n Host,\n Listen,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport { scrollIntoView } from '../../utils/scroll';\nimport { focusVisible } from '../../utils/focus-visible';\nimport {\n displayTransition,\n createColorClasses,\n getOffset,\n getDirectChildren,\n raf,\n} from '../../utils';\nimport { Color } from '../../interface';\nimport {\n ComponentStore,\n StorageMethods,\n} from '../../utils/store/component-store';\n\n/**\n * A tradtional tab implementation. It nests `nano-tab` and `nano-tab-content` sub-components.\n *\n * Tabs can be stacked vertically or horizontally (which presents different styling variations) using the `placement` attribute.\n * Horizonal tabs that don't fit will overflow and scroll appropriately.\n * Tab-content can also be swiped to change tabs.\n *\n * @slot tabs - Add `nano-tab` elements to add clickable tabs.\n * @slot tab-content-header - a header bar displayed above tab content.\n * @slot - Add `nano-tab-content` elements to add tabbable content.\n *\n * @part base - the main tab-group wrapper\n * @part nav - the bar surrounding all the tabs and nav buttons\n * @part tabs - the wrapper around the `nano-tab` components\n * @part active-tab-indicator - the active indicator line\n * @part body - the wrapper around the `nano-tab-content` components\n */\n\n@Component({\n tag: 'nano-tab-group',\n styleUrl: 'tab-group.scss',\n shadow: true,\n})\nexport class TabGroup implements ComponentInterface {\n private activeTab: HTMLNanoTabElement;\n private activePanel: HTMLNanoTabContentElement;\n private activeTabIndicator: HTMLElement;\n private nav: HTMLElement;\n private tabGroup: HTMLElement;\n private tabs: HTMLElement;\n private rightBtn: HTMLButtonElement;\n private leftBtn: HTMLButtonElement;\n\n private isRtl: boolean;\n private initialTouchX: number = null;\n private initialTouchY: number = null;\n\n private resizeObserver: ResizeObserver;\n private mutationObservers: WeakMap<Node, MutationObserver> = new WeakMap();\n\n @Element() host: HTMLNanoTabGroupElement;\n\n @State() hasScrollControls = false;\n @State() hideControlRight = true;\n @State() hideControlLeft = true;\n @State() isLegacy = !document.head.attachShadow;\n @State() tab: string;\n\n /**\n * The placement of the tabs.\n */\n @Prop() placement: 'top' | 'start' = 'top';\n\n /**\n * Disables the scroll arrows that appear when tabs overflow.\n */\n @Prop() noScrollControls = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * Store the currently open tab (against this ID) in the component store.\n * Use in conjunction with storeMethod\n */\n @Prop() storeId?: string;\n\n /**\n * The method of storage.\n * Either session storage, url hash (after the '#') or url query (after the '?').\n */\n @Prop() storeMethod: StorageMethods = 'session';\n\n /**\n * Disable 'swipe to change tab' on devices with touch\n */\n @Prop() disableSwipe: boolean;\n\n @Watch('tab')\n handleTabNameChange() {\n if (this.activeTab && this.activeTab.panel === this.tab) return;\n const tab = this.getAllActiveTabs.find((el) => el.panel === this.tab);\n this.setActiveTab(tab);\n }\n\n @Watch('placement')\n handlePlacementChange() {\n this.syncActiveTabIndicator();\n }\n\n @Watch('noScrollControls')\n handleNoScrollControlsChange() {\n this.updateScrollControls();\n }\n\n @Watch('hideControlRight')\n hideRightBtn() {\n if (!this.rightBtn) return;\n displayTransition(this.rightBtn, 'is-shown', !this.hideControlRight);\n }\n\n @Watch('hideControlLeft')\n hideLeftBtn() {\n if (!this.leftBtn) return;\n displayTransition(this.leftBtn, 'is-shown', !this.hideControlLeft);\n }\n\n @Watch('hasScrollControls')\n watchScrollControls() {\n if (this.hasScrollControls) setTimeout((_) => this.handleTabScroll(), 20);\n else\n setTimeout((_) => {\n this.hideControlLeft = this.hideControlRight = true;\n }, 20);\n }\n\n /** Emitted when a tab is shown. */\n @Event() nanoTabShow: EventEmitter<{ name: string }>;\n\n /** Emitted when a tab is hidden. */\n @Event() nanoTabHide: EventEmitter<{ name: string }>;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabWillClose: EventEmitter<{ name: string }>;\n\n /** Emitted when a closable tab is removed. */\n @Event() nanoTabClose: EventEmitter<{ name: string }>;\n\n /** Shows the specified tab panel. */\n @Method()\n async show(panel: string) {\n if (this.activeTab && this.activeTab.panel === panel) return;\n\n const tab = this.getAllActiveTabs.find((el) => el.panel === panel);\n\n if (tab) this.setActiveTab(tab);\n }\n\n // Internal Methods\n\n get getAllActiveTabs() {\n return this.getAllTabs.filter((el: any) => !el.disabled);\n }\n\n get getAllTabs() {\n return getDirectChildren<HTMLNanoTabElement>(this.host, 'nano-tab');\n }\n\n get getAllPanels() {\n return getDirectChildren<HTMLNanoTabContentElement>(\n this.host,\n 'nano-tab-content'\n );\n }\n\n get getActiveTab() {\n return this.getAllActiveTabs.find((el) => el.active);\n }\n\n private updateScrollControls = () => {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls =\n ['top'].includes(this.placement) &&\n this.nav.scrollWidth > this.nav.clientWidth &&\n this.nav.scrollWidth > this.tabs.clientWidth;\n }\n };\n\n private setActiveTab(tab: HTMLNanoTabElement, emitEvents = true) {\n if (\n tab &&\n tab !== this.activeTab &&\n !tab.disabled &&\n this.getAllActiveTabs.includes(tab)\n ) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n this.tab = tab.panel;\n\n // Sync tabs and panels\n this.getAllActiveTabs.map((el) => (el.active = el === this.activeTab));\n this.getAllPanels.map((el) => {\n if (el.name === this.activeTab.panel) {\n el.active = true;\n this.activePanel = el;\n } else el.active = false;\n el.removeAttribute('animation-dir');\n });\n // active tab can be changed on init - this won't be ready. No big thing\n this.syncActiveTabIndicator();\n if (['top'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', 'center');\n }\n\n // Emit events\n if (emitEvents) {\n if (previousTab) {\n this.nanoTabHide.emit({ name: previousTab.panel });\n }\n\n this.nanoTabShow.emit({ name: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n const tabs = this.getAllActiveTabs;\n const panels = this.getAllPanels;\n\n // Link each tab with its corresponding panel\n tabs.map((tab) => {\n const panel = panels.find((el) => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id'));\n panel.setAttribute('aria-labelledby', tab.getAttribute('id'));\n }\n });\n }\n\n private syncActiveTabIndicator() {\n this.getAllTabs.forEach((tab) =>\n tab.setAttribute(\n 'direction',\n this.placement === 'top' ? 'horizontal' : 'vertical'\n )\n );\n\n const tab = this.getActiveTab;\n const width = tab.shadowRoot.querySelector('.nanotab')?.clientWidth || 0;\n const height = tab.clientHeight;\n const offset = getOffset(tab, this.tabs);\n const offsetTop = offset.top + this.nav.scrollTop;\n const offsetLeft = offset.left;\n\n switch (this.placement) {\n case 'top':\n this.activeTabIndicator.style.width = `${width}px`;\n this.activeTabIndicator.style.height = null;\n this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;\n break;\n\n case 'start':\n this.activeTabIndicator.style.width = null;\n this.activeTabIndicator.style.height = `${height}px`;\n this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;\n break;\n }\n }\n\n private getNavWidth() {\n if (!this.nav) return 0;\n const computedStyle = getComputedStyle(this.nav);\n let clientWidth = this.nav.clientWidth;\n return (clientWidth -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight));\n }\n\n // Event handlers\n\n @Listen('nanoTabClose')\n handleTabClose(ev: CustomEvent & { target: HTMLNanoTabElement }) {\n let tabIndex = this.getAllActiveTabs.indexOf(ev.target);\n const tab = ev.target;\n if (tabIndex < 0) return;\n\n const panel = this.getAllPanels.find((el) => el.name === tab.panel);\n if (!panel) return;\n\n ev.stopImmediatePropagation();\n\n const closeEv = this.nanoTabWillClose.emit({ name: tab.panel });\n if (closeEv.defaultPrevented) return;\n\n // Show the previous tab if the tab is currently active\n if (tab.active) {\n tabIndex = tabIndex === 0 ? 1 : tabIndex - 1;\n const prevTab = this.getAllActiveTabs[tabIndex]?.panel;\n if (prevTab) this.host.show(prevTab);\n }\n\n tab.remove();\n panel.remove();\n this.nanoTabClose.emit({ name: tab.panel });\n }\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const tab = target.closest('nano-tab');\n\n if (tab) this.setActiveTab(tab);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nano-tab');\n\n if (tab) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ].includes(event.key)\n ) {\n const activeEl = document.activeElement as any;\n\n if (activeEl && activeEl.tagName.toLowerCase() === 'nano-tab') {\n const tabs = this.getAllActiveTabs;\n let index = tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = tabs.length - 1;\n } else if (\n (this.isRtl && event.key === 'ArrowRight') ||\n (!this.isRtl && event.key === 'ArrowLeft')\n ) {\n index = Math.max(0, index - 1);\n } else if (\n (this.isRtl && event.key === 'ArrowLeft') ||\n (!this.isRtl && event.key === 'ArrowRight')\n ) {\n index = Math.min(tabs.length - 1, index + 1);\n }\n tabs[index].setFocus();\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(tabs[index], this.nav, 'horizontal', 'center');\n }\n event.preventDefault();\n }\n }\n };\n\n private handleTabScroll = () => {\n if (!this.hasScrollControls) {\n this.hideControlLeft = this.hideControlRight = true;\n return;\n }\n let endRight = this.isRtl\n ? this.nav.scrollLeft === 0\n : this.nav.scrollWidth - this.nav.scrollLeft === this.nav.clientWidth;\n let endLeft = this.isRtl\n ? this.nav.scrollWidth + this.nav.scrollLeft === this.nav.clientWidth\n : this.nav.scrollLeft === 0;\n\n if (endLeft) {\n this.hideControlLeft = true;\n this.hideControlRight = false;\n } else if (endRight) {\n this.hideControlLeft = false;\n this.hideControlRight = true;\n } else {\n this.hideControlRight = false;\n this.hideControlLeft = false;\n }\n };\n\n private handleBtnClick = (goRight: boolean = false) => {\n const navWidth = this.getNavWidth();\n let leftAmt;\n if (goRight) leftAmt = this.nav.scrollLeft + navWidth - 20;\n else leftAmt = this.nav.scrollLeft - navWidth + 20;\n\n try {\n this.nav.scroll({\n left: leftAmt,\n behavior: 'smooth',\n });\n } catch (e) {\n this.nav.scrollLeft = leftAmt;\n }\n };\n\n private handleTouchStart = (event: TouchEvent) => {\n if (this.disableSwipe) return;\n const touch = event.changedTouches[0];\n this.initialTouchX = touch.pageX;\n this.initialTouchY = touch.pageY;\n };\n\n private handleTouchEnd = (event: TouchEvent) => {\n if (this.disableSwipe) return;\n const touch = event.changedTouches[0];\n const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled\n const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled\n const threshold = 70;\n\n var xDiff = this.initialTouchX - touch.clientX;\n var yDiff = this.initialTouchY - touch.clientY;\n\n const isHorizontalSwipe =\n Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\n\n const tabs = this.getAllActiveTabs;\n const currIndex = tabs.findIndex((el) => el.active);\n\n if (isHorizontalSwipe) {\n const toGo =\n (distX < 0 && this.placement === 'top') ||\n (distX > 0 && this.placement !== 'top')\n ? 1\n : -1;\n\n if (tabs[currIndex + toGo]) {\n this.setActiveTab(tabs[currIndex + toGo]);\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) {\n if (xDiff > 0) this.activePanel.setAttribute('animation-dir', 'left');\n else this.activePanel.setAttribute('animation-dir', 'right');\n }\n }\n }\n this.initialTouchX = null;\n this.initialTouchY = null;\n };\n\n private handleContentSlotChange = () => {\n setTimeout(() => {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n });\n };\n\n private handleTabSlotChange = (ev: Event & { target: HTMLSlotElement }) => {\n setTimeout(() => {\n this.setAriaLabels();\n this.handleTabScroll();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n this.updateScrollControls();\n }, 500);\n\n /** maintain a weakmap of mutation observers to maintain tab / indicator position on all changes. */\n const nodes = ev.target.assignedNodes({ flatten: true });\n nodes.forEach((node) => {\n if (!this.mutationObservers.get(node)) {\n const mo = new MutationObserver(() => {\n setTimeout(() => {\n this.syncActiveTabIndicator();\n this.handleTabScroll();\n this.updateScrollControls();\n }, 500);\n });\n this.mutationObservers.set(node, mo);\n\n mo.observe(node, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n });\n };\n\n // Stencil hooks\n\n componentDidLoad() {\n // Initial IO - watching for all content to be loaded\n const observer = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n\n if (this.storeId)\n ComponentStore.init(this, ['tab'], this.storeMethod, this.storeId);\n observer.unobserve(entries[0].target);\n }\n });\n observer.observe(this.host);\n focusVisible.observe(this.tabGroup);\n\n if (this.leftBtn) {\n focusVisible.observe(this.leftBtn);\n focusVisible.observe(this.rightBtn);\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n setTimeout(() => {\n this.updateScrollControls();\n this.syncActiveTabIndicator();\n }, 500);\n });\n this.resizeObserver.observe(this.nav);\n\n raf(() => this.updateScrollControls());\n }\n\n connectedCallback() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.tabGroup);\n if (this.leftBtn) {\n focusVisible.unobserve(this.leftBtn);\n focusVisible.unobserve(this.rightBtn);\n }\n if (this.resizeObserver) this.resizeObserver.unobserve(this.nav);\n }\n\n render() {\n this.isRtl = (this.host.ownerDocument as Document).dir === 'rtl';\n\n return (\n <Host\n class={{ ...createColorClasses(this.color), legacy: this.isLegacy }}\n dir={this.isRtl ? 'rtl' : null}\n >\n <div\n part=\"base\"\n ref={(el) => (this.tabGroup = el)}\n class={{\n 'nano-tab-group': true,\n 'nano-tab-group--top': this.placement === 'top',\n 'nano-tab-group--start': this.placement === 'start',\n 'nano-tab-group--has-scroll-controls': this.hasScrollControls,\n 'nano-tab-group--has-scroll-controls-left': !this.hideControlLeft,\n 'nano-tab-group--has-scroll-controls-right': !this.hideControlRight,\n }}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <div class=\"nano-tab-group__nav-container\" part=\"nav\">\n {this.placement === 'top' && (\n <button\n class={{\n 'nano-tab-group__scroll-button': true,\n 'nano-tab-group__scroll-button--left': true,\n }}\n ref={(btn) => (this.leftBtn = btn)}\n onClick={() => this.handleBtnClick(false)}\n >\n <nano-icon name=\"light/chevron-left\"></nano-icon>\n </button>\n )}\n <div\n ref={(el) => (this.nav = el)}\n class=\"nano-tab-group__nav\"\n onScroll={this.handleTabScroll}\n >\n <div\n ref={(el) => (this.tabs = el)}\n part=\"tabs\"\n class=\"nano-tab-group__tabs\"\n role=\"tablist\"\n >\n <div\n ref={(el) => (this.activeTabIndicator = el)}\n part=\"active-tab-indicator\"\n class=\"nano-tab-group__active-tab-indicator\"\n />\n <slot name=\"tabs\" onSlotchange={this.handleTabSlotChange} />\n </div>\n </div>\n {this.placement === 'top' && (\n <button\n class={{\n 'nano-tab-group__scroll-button': true,\n 'nano-tab-group__scroll-button--right': true,\n }}\n ref={(btn) => (this.rightBtn = btn)}\n onClick={() => this.handleBtnClick(true)}\n >\n <nano-icon name=\"light/chevron-right\"></nano-icon>\n </button>\n )}\n </div>\n <slot name=\"tab-content-header\" />\n <div\n part=\"body\"\n class=\"nano-tab-group__body\"\n onTouchStart={this.handleTouchStart}\n onTouchEnd={this.handleTouchEnd}\n >\n <slot onSlotchange={this.handleContentSlotChange} />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["src/components/tabs/tab-group.scss?tag=nano-tab-group&encapsulation=shadow","src/components/tabs/tab-group.tsx"],"names":["tabGroupCss","TabGroup","class_1","hostRef","_this","this","initialTouchX","initialTouchY","mutationObservers","WeakMap","hasScrollControls","hideControlRight","hideControlLeft","isLegacy","document","head","attachShadow","placement","noScrollControls","storeMethod","updateScrollControls","includes","nav","scrollWidth","clientWidth","tabs","handleClick","event","target","tab","closest","setActiveTab","handleKeyDown","key","preventDefault","activeEl","activeElement","tagName","toLowerCase","getAllActiveTabs","index_1","indexOf","length","isRtl","Math","max","min","setFocus","scrollIntoView","handleTabScroll","endRight","scrollLeft","endLeft","handleBtnClick","goRight","navWidth","getNavWidth","leftAmt","scroll","left","behavior","e","handleTouchStart","disableSwipe","touch","changedTouches","pageX","pageY","handleTouchEnd","distX","distY","threshold","xDiff","clientX","yDiff","clientY","isHorizontalSwipe","abs","currIndex","findIndex","el","active","toGo","activePanel","setAttribute","handleContentSlotChange","setTimeout","setAriaLabels","getActiveTab","handleTabSlotChange","ev","nodes","assignedNodes","flatten","forEach","node","get","mo","MutationObserver","syncActiveTabIndicator","set","observe","characterData","childList","subtree","prototype","handleTabNameChange","activeTab","panel","find","handlePlacementChange","handleNoScrollControlsChange","hideRightBtn","rightBtn","displayTransition","hideLeftBtn","leftBtn","watchScrollControls","_","show","Object","defineProperty","getAllTabs","filter","disabled","getDirectChildren","host","emitEvents","previousTab","map","getAllPanels","name","removeAttribute","nanoTabHide","emit","nanoTabShow","panels","getAttribute","width","_a","shadowRoot","querySelector","height","clientHeight","offset","getOffset","offsetTop","top","scrollTop","offsetLeft","activeTabIndicator","style","transform","computedStyle","getComputedStyle","parseFloat","paddingLeft","paddingRight","handleTabClose","tabIndex","stopImmediatePropagation","closeEv","nanoTabWillClose","defaultPrevented","prevTab","remove","nanoTabClose","componentDidLoad","observer","IntersectionObserver","entries","intersectionRatio","storeId","ComponentStore","init","unobserve","focusVisible","tabGroup","resizeObserver","ResizeObserver","raf","connectedCallback","dir","ownerDocument","disconnectedCallback","render","h","Host","class","assign","createColorClasses","color","legacy","part","ref","nano-tab-group","nano-tab-group--top","nano-tab-group--start","nano-tab-group--has-scroll-controls","nano-tab-group--has-scroll-controls-left","nano-tab-group--has-scroll-controls-right","onClick","onKeyDown","nano-tab-group__scroll-button","nano-tab-group__scroll-button--left","btn","onScroll","role","onSlotchange","nano-tab-group__scroll-button--right","onTouchStart","onTouchEnd"],"mappings":"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","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --indicator-transition: Only relevant to placement 'start'. defaults to #{$transition-fast};\n * @prop --indicator-color: defaults to #{map.get($colors, lightblue)} on placement 'top' and #{map.get($colors, blue)} on placement 'start';\n * @prop --indicator-track-color: Only relevant to placement 'start'. defaults to #{map.get($colors, lightgrey)};\n * @prop --indicator-size: defaults to 5px on placement 'top' and 2px on placement 'start';\n\n * @prop --border-radius: defaults to #{$layer-border-radius};\n * @prop --background-rgb: will be used as the default background colour for tabs and content. defaults to #{$layer-bg-color-rgb};\n * @prop --shadow-opacity: opacity of the shadow behind tabs. defaults to 0.1;\n * @prop --scroll-btn-color: defaults to 'currentColor';\n\n * @prop --content-padding: defaults to 2rem 2.5rem;\n * @prop --content-bg: defaults to rgb(var(--background-rgb));\n * @prop --content-border-radius: defaults to var(--border-radius);\n\n * @prop --tabs-padding-start: defaults to 2.5rem on placement 'top' and 0 on placement 'start';\n * @prop --tabs-padding-end: defaults to 2.5rem on placement 'top' and 0 on placement 'start';\n * @prop --tabs-padding-top: defaults to 0;\n * @prop --tabs-padding-bottom: defaults to 0;\n * @prop --tabs-bg-rgb: defaults to var(--bg-color);\n * @prop --tab-border-radius: defaults to var(--border-radius);\n * @prop --tab-text-color: defaults to #{map.get($colors, blue)} on placement 'top' and #{map.get($colors, darkgrey)} on placement 'start';\n */\n\n:host {\n --indicator-transition: #{$transition-fast};\n --indicator-color: #{map.get($colors, lightblue)};\n --indicator-track-color: #{map.get($colors, lightgrey)};\n --indicator-size: 0;\n --border-radius: #{$layer-border-radius};\n --background-rgb: #{$layer-bg-color-rgb};\n --scroll-btn-color: 'currentColor';\n --content-padding: 2rem 2.5rem;\n --content-bg: rgb(var(--background-rgb));\n --content-border-radius: var(--border-radius);\n --tabs-padding-start: 2.5rem;\n --tabs-padding-end: 2.5rem;\n --tabs-padding-top: 0;\n --tabs-padding-bottom: 0;\n --tabs-container-bg: 'transparent';\n --tabs-bg-rgb: var(--background-rgb);\n --tab-border-radius: var(--border-radius);\n --tab-text-color: #{map.get($colors, blue)};\n --shadow-opacity: 0.1;\n\n display: block;\n position: relative;\n z-index: #{$layer-index-raised};\n\n @media only screen and (max-width: 768px) {\n --tabs-padding-start: 1.5rem;\n --tabs-padding-end: 1.5rem;\n }\n\n ::slotted(nano-tab) {\n --tab-indicator-color: var(--indicator-color);\n --bg-rgb: var(--tabs-bg-rgb);\n --border-radius: var(--tab-border-radius);\n }\n}\n\n// IE bugfix - set this stuff statically\n:host(.legacy) {\n ::slotted(nano-tab) {\n --tab-indicator-color: #{map.get($colors, lightblue)};\n --border-radius: 3px;\n --tab-indicator-size: 5px;\n --bg-rgb: 255, 255, 255;\n }\n}\n\n:host([placement='start']),\n:host([placement='end']) {\n --content-padding: 1rem;\n --tabs-padding-start: 0;\n --tabs-padding-end: 0;\n --tabs-padding-top: 0;\n --tabs-padding-bottom: 0;\n --tab-text-color: #{map.get($colors, darkgrey)};\n --indicator-color: #{map.get($colors, blue)};\n --indicator-size: 2px;\n}\n\n:host(.nano-color) {\n --indicator-color: var(--nano-color-tint, #{nano-color(primary, tint)});\n --tab-text-color: rgba(var(--nano-color-base-rgb), 0.7);\n\n ::slotted(nano-tab) {\n --active-text-color: var(--nano-color-shade, #{nano-color(primary, shade)});\n }\n}\n\n.nano-tab-group {\n display: flex;\n border-radius: 0;\n width: 100%;\n flex: inherit;\n\n &__tabs {\n display: flex;\n position: relative;\n width: 100%;\n }\n\n &__active-tab-indicator {\n position: absolute;\n transition: var(--indicator-transition) transform ease, var(--indicator-transition) width ease;\n }\n\n &__body {\n background: var(--content-bg);\n }\n\n &:not(.focus-visible) ::slotted(nano-tab) {\n --focus-shadow: none;\n }\n\n .nano-tab-group__nav-container {\n position: relative;\n display: flex;\n background: var(--tabs-container-bg);\n }\n\n button {\n appearance: none;\n background-color: transparent;\n }\n\n &__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n border: unset;\n z-index: 2;\n transition: #{$transition-fast} ease opacity;\n opacity: 0;\n color: var(--scroll-btn-color);\n\n &:focus {\n outline: none;\n }\n\n &.is-shown {\n opacity: 1;\n }\n\n &.focus-visible:focus {\n box-shadow: #{$control-focus-style} inset;\n }\n\n &--left {\n left: 0;\n }\n\n &--right {\n right: 0;\n }\n\n nano-icon {\n font-size: 16px;\n }\n }\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n // Top\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n &--top {\n flex-direction: column;\n\n .nano-tab-group__nav-container {\n &::after {\n content: '';\n width: 86%;\n box-shadow: 0 10px 40px 10px rgba(0, 0, 0, var(--shadow-opacity));\n height: 10px;\n position: absolute;\n left: 7%;\n bottom: -10px;\n border-radius: 10px;\n z-index: -1;\n }\n }\n\n .nano-tab-group__nav {\n @include hide-scrollbar();\n @include padding(\n var(--tabs-padding-top),\n var(--tabs-padding-end),\n var(--tabs-padding-bottom),\n var(--tabs-padding-start)\n );\n\n display: flex;\n overflow-x: auto;\n overflow-y: hidden;\n transition: #{$transition-medium} ease;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);\n mask-repeat: no-repeat;\n mask-image:\n linear-gradient(\n to left,\n rgba(0, 0, 0, 0) 0,\n rgba(0, 0, 0, 0) var(--tabs-padding-start),\n rgba(0, 0, 0, 1) calc(var(--tabs-padding-start) * 2),\n rgba(0, 0, 0, 1) calc(100% - (var(--tabs-padding-end) * 2)),\n rgba(0, 0, 0, 0) calc(100% - var(--tabs-padding-end)),\n rgba(0, 0, 0, 0)\n );\n mask-size: calc(100% + calc(var(--tabs-padding-end) * 4));\n mask-position: calc(var(--tabs-padding-end) * -2);\n\n &::after {\n content: ' ';\n\n @include padding(\n var(--tabs-padding-top),\n var(--tabs-padding-end),\n var(--tabs-padding-bottom),\n 0\n );\n\n line-height: 1;\n flex: 0 0 auto;\n }\n }\n\n &.nano-tab-group--has-scroll-controls-left {\n .nano-tab-group__nav {\n mask-position: 0;\n mask-size: calc(100% + (var(--tabs-padding-end) * 2));\n }\n }\n\n &.nano-tab-group--has-scroll-controls-right {\n .nano-tab-group__nav {\n mask-position: calc(var(--tabs-padding-end) * -1);\n mask-size: calc(100% + var(--tabs-padding-end));\n }\n }\n\n &.nano-tab-group--has-scroll-controls-left.nano-tab-group--has-scroll-controls-right {\n .nano-tab-group__nav {\n mask-size: 100%;\n mask-position: 0;\n }\n }\n\n .nano-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n text-align: center;\n color: var(--tab-text-color);\n width: auto;\n }\n\n .nano-tab-group__active-tab-indicator {\n bottom: -2px;\n border-bottom: solid var(--indicator-size) var(--indicator-color);\n }\n\n .nano-tab-group__body {\n order: 2;\n background: var(--content-bg);\n position: relative;\n overflow: hidden;\n width: auto;\n display: flex;\n justify-content: center;\n padding: var(--content-padding);\n border-radius: var(--content-border-radius);\n flex: 1 1 auto;\n }\n }\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n // Start\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n &--start {\n flex-direction: row;\n\n .nano-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n color: var(--tab-text-color);\n background: rgb(var(--tabs-bg-rgb));\n\n @include ltr-host() {\n border-left: solid var(--indicator-size) var(--indicator-track-color);\n text-align: left;\n }\n\n @include rtl-host() {\n border-right: solid var(--indicator-size) var(--indicator-track-color);\n text-align: right;\n }\n }\n\n .nano-tab-group__active-tab-indicator {\n @include ltr-host() {\n left: calc(-1 * 2px);\n border-left: solid var(--indicator-size) var(--indicator-color);\n }\n\n @include rtl-host() {\n right: calc(-1 * 2px);\n border-right: solid var(--indicator-size) var(--indicator-color);\n }\n }\n\n .nano-tab-group__body {\n flex: 1 1 auto;\n order: 2;\n padding: var(--content-padding);\n overflow: hidden;\n\n @include border-radius(\n 0,\n var(--content-border-radius),\n var(--content-border-radius),\n 0\n );\n }\n }\n}\n","import {\n Component,\n Element,\n ComponentInterface,\n Event,\n EventEmitter,\n Method,\n Prop,\n State,\n Watch,\n h,\n Host,\n Listen,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport { scrollIntoView } from '../../utils/scroll';\nimport { focusVisible } from '../../utils/focus-visible';\nimport {\n displayTransition,\n createColorClasses,\n getOffset,\n getDirectChildren,\n raf,\n} from '../../utils';\nimport { Color } from '../../interface';\nimport {\n ComponentStore,\n StorageMethods,\n} from '../../utils/store/component-store';\n\n/**\n * A tradtional tab implementation. It nests `nano-tab` and `nano-tab-content` sub-components.\n *\n * Tabs can be stacked vertically or horizontally (which presents different styling variations) using the `placement` attribute.\n * Horizonal tabs that don't fit will overflow and scroll appropriately.\n * Tab-content can also be swiped to change tabs.\n *\n * @slot tabs - Add `nano-tab` elements to add clickable tabs.\n * @slot tab-content-header - a header bar displayed above tab content.\n * @slot - Add `nano-tab-content` elements to add tabbable content.\n *\n * @part base - the main tab-group wrapper\n * @part nav - the bar surrounding all the tabs and nav buttons\n * @part tabs - the wrapper around the `nano-tab` components\n * @part active-tab-indicator - the active indicator line\n * @part body - the wrapper around the `nano-tab-content` components\n */\n\n@Component({\n tag: 'nano-tab-group',\n styleUrl: 'tab-group.scss',\n shadow: true,\n})\nexport class TabGroup implements ComponentInterface {\n private activeTab: HTMLNanoTabElement;\n private activePanel: HTMLNanoTabContentElement;\n private activeTabIndicator: HTMLElement;\n private nav: HTMLElement;\n private tabGroup: HTMLElement;\n private tabs: HTMLElement;\n private rightBtn: HTMLButtonElement;\n private leftBtn: HTMLButtonElement;\n\n private isRtl: boolean;\n private initialTouchX: number = null;\n private initialTouchY: number = null;\n\n private resizeObserver: ResizeObserver;\n private mutationObservers: WeakMap<Node, MutationObserver> = new WeakMap();\n\n @Element() host: HTMLNanoTabGroupElement;\n\n @State() hasScrollControls = false;\n @State() hideControlRight = true;\n @State() hideControlLeft = true;\n @State() isLegacy = !document.head.attachShadow;\n @State() tab: string;\n\n /**\n * The placement of the tabs.\n */\n @Prop() placement: 'top' | 'start' = 'top';\n\n /**\n * Disables the scroll arrows that appear when tabs overflow.\n */\n @Prop() noScrollControls = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * Store the currently open tab (against this ID) in the component store.\n * Use in conjunction with storeMethod\n */\n @Prop() storeId?: string;\n\n /**\n * The method of storage.\n * Either session storage, url hash (after the '#') or url query (after the '?').\n */\n @Prop() storeMethod: StorageMethods = 'session';\n\n /**\n * Disable 'swipe to change tab' on devices with touch\n */\n @Prop() disableSwipe: boolean;\n\n @Watch('tab')\n handleTabNameChange() {\n if (this.activeTab && this.activeTab.panel === this.tab) return;\n const tab = this.getAllActiveTabs.find((el) => el.panel === this.tab);\n this.setActiveTab(tab);\n }\n\n @Watch('placement')\n handlePlacementChange() {\n this.syncActiveTabIndicator();\n }\n\n @Watch('noScrollControls')\n handleNoScrollControlsChange() {\n this.updateScrollControls();\n }\n\n @Watch('hideControlRight')\n hideRightBtn() {\n if (!this.rightBtn) return;\n displayTransition(this.rightBtn, 'is-shown', !this.hideControlRight);\n }\n\n @Watch('hideControlLeft')\n hideLeftBtn() {\n if (!this.leftBtn) return;\n displayTransition(this.leftBtn, 'is-shown', !this.hideControlLeft);\n }\n\n @Watch('hasScrollControls')\n watchScrollControls() {\n if (this.hasScrollControls) setTimeout((_) => this.handleTabScroll(), 20);\n else\n setTimeout((_) => {\n this.hideControlLeft = this.hideControlRight = true;\n }, 20);\n }\n\n /** Emitted when a tab is shown. */\n @Event() nanoTabShow: EventEmitter<{ name: string }>;\n\n /** Emitted when a tab is hidden. */\n @Event() nanoTabHide: EventEmitter<{ name: string }>;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabWillClose: EventEmitter<{ name: string }>;\n\n /** Emitted when a closable tab is removed. */\n @Event() nanoTabClose: EventEmitter<{ name: string }>;\n\n /** Shows the specified tab panel. */\n @Method()\n async show(panel: string) {\n if (this.activeTab && this.activeTab.panel === panel) return;\n\n const tab = this.getAllActiveTabs.find((el) => el.panel === panel);\n\n if (tab) this.setActiveTab(tab);\n }\n\n // Internal Methods\n\n get getAllActiveTabs() {\n return this.getAllTabs.filter((el: any) => !el.disabled);\n }\n\n get getAllTabs() {\n return getDirectChildren<HTMLNanoTabElement>(this.host, 'nano-tab');\n }\n\n get getAllPanels() {\n return getDirectChildren<HTMLNanoTabContentElement>(\n this.host,\n 'nano-tab-content'\n );\n }\n\n get getActiveTab() {\n return this.getAllActiveTabs.find((el) => el.active);\n }\n\n private updateScrollControls = () => {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls =\n ['top'].includes(this.placement) &&\n this.nav.scrollWidth > this.nav.clientWidth &&\n this.nav.scrollWidth > this.tabs.clientWidth;\n }\n };\n\n private setActiveTab(tab: HTMLNanoTabElement, emitEvents = true) {\n if (\n tab &&\n tab !== this.activeTab &&\n !tab.disabled &&\n this.getAllActiveTabs.includes(tab)\n ) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n this.tab = tab.panel;\n\n // Sync tabs and panels\n this.getAllActiveTabs.map((el) => (el.active = el === this.activeTab));\n this.getAllPanels.map((el) => {\n if (el.name === this.activeTab.panel) {\n el.active = true;\n this.activePanel = el;\n } else el.active = false;\n el.removeAttribute('animation-dir');\n });\n // active tab can be changed on init - this won't be ready. No big thing\n this.syncActiveTabIndicator();\n if (['top'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', 'center');\n }\n\n // Emit events\n if (emitEvents) {\n if (previousTab) {\n this.nanoTabHide.emit({ name: previousTab.panel });\n }\n\n this.nanoTabShow.emit({ name: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n const tabs = this.getAllActiveTabs;\n const panels = this.getAllPanels;\n\n // Link each tab with its corresponding panel\n tabs.map((tab) => {\n const panel = panels.find((el) => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id'));\n panel.setAttribute('aria-labelledby', tab.getAttribute('id'));\n }\n });\n }\n\n private syncActiveTabIndicator() {\n this.getAllTabs.forEach((tab) =>\n tab.setAttribute(\n 'direction',\n this.placement === 'top' ? 'horizontal' : 'vertical'\n )\n );\n\n const tab = this.getActiveTab;\n const width = tab.shadowRoot.querySelector('.nanotab')?.clientWidth || 0;\n const height = tab.clientHeight;\n const offset = getOffset(tab, this.tabs);\n const offsetTop = offset.top + this.nav.scrollTop;\n const offsetLeft = offset.left;\n\n switch (this.placement) {\n case 'top':\n this.activeTabIndicator.style.width = `${width}px`;\n this.activeTabIndicator.style.height = null;\n this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;\n break;\n\n case 'start':\n this.activeTabIndicator.style.width = null;\n this.activeTabIndicator.style.height = `${height}px`;\n this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;\n break;\n }\n }\n\n private getNavWidth() {\n if (!this.nav) return 0;\n const computedStyle = getComputedStyle(this.nav);\n let clientWidth = this.nav.clientWidth;\n return (clientWidth -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight));\n }\n\n // Event handlers\n\n @Listen('nanoTabClose')\n handleTabClose(ev: CustomEvent & { target: HTMLNanoTabElement }) {\n let tabIndex = this.getAllActiveTabs.indexOf(ev.target);\n const tab = ev.target;\n if (tabIndex < 0) return;\n\n const panel = this.getAllPanels.find((el) => el.name === tab.panel);\n if (!panel) return;\n\n ev.stopImmediatePropagation();\n\n const closeEv = this.nanoTabWillClose.emit({ name: tab.panel });\n if (closeEv.defaultPrevented) return;\n\n // Show the previous tab if the tab is currently active\n if (tab.active) {\n tabIndex = tabIndex === 0 ? 1 : tabIndex - 1;\n const prevTab = this.getAllActiveTabs[tabIndex]?.panel;\n if (prevTab) this.host.show(prevTab);\n }\n\n tab.remove();\n panel.remove();\n this.nanoTabClose.emit({ name: tab.panel });\n }\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const tab = target.closest('nano-tab');\n\n if (tab) this.setActiveTab(tab);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nano-tab');\n\n if (tab) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ].includes(event.key)\n ) {\n const activeEl = document.activeElement as any;\n\n if (activeEl && activeEl.tagName.toLowerCase() === 'nano-tab') {\n const tabs = this.getAllActiveTabs;\n let index = tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = tabs.length - 1;\n } else if (\n (this.isRtl && event.key === 'ArrowRight') ||\n (!this.isRtl && event.key === 'ArrowLeft')\n ) {\n index = Math.max(0, index - 1);\n } else if (\n (this.isRtl && event.key === 'ArrowLeft') ||\n (!this.isRtl && event.key === 'ArrowRight')\n ) {\n index = Math.min(tabs.length - 1, index + 1);\n }\n tabs[index].setFocus();\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(tabs[index], this.nav, 'horizontal', 'center');\n }\n event.preventDefault();\n }\n }\n };\n\n private handleTabScroll = () => {\n if (!this.hasScrollControls) {\n this.hideControlLeft = this.hideControlRight = true;\n return;\n }\n let endRight = this.isRtl\n ? this.nav.scrollLeft === 0\n : this.nav.scrollWidth - this.nav.scrollLeft === this.nav.clientWidth;\n let endLeft = this.isRtl\n ? this.nav.scrollWidth + this.nav.scrollLeft === this.nav.clientWidth\n : this.nav.scrollLeft === 0;\n\n if (endLeft) {\n this.hideControlLeft = true;\n this.hideControlRight = false;\n } else if (endRight) {\n this.hideControlLeft = false;\n this.hideControlRight = true;\n } else {\n this.hideControlRight = false;\n this.hideControlLeft = false;\n }\n };\n\n private handleBtnClick = (goRight: boolean = false) => {\n const navWidth = this.getNavWidth();\n let leftAmt;\n if (goRight) leftAmt = this.nav.scrollLeft + navWidth - 20;\n else leftAmt = this.nav.scrollLeft - navWidth + 20;\n\n try {\n this.nav.scroll({\n left: leftAmt,\n behavior: 'smooth',\n });\n } catch (e) {\n this.nav.scrollLeft = leftAmt;\n }\n };\n\n private handleTouchStart = (event: TouchEvent) => {\n if (this.disableSwipe) return;\n const touch = event.changedTouches[0];\n this.initialTouchX = touch.pageX;\n this.initialTouchY = touch.pageY;\n };\n\n private handleTouchEnd = (event: TouchEvent) => {\n if (this.disableSwipe) return;\n const touch = event.changedTouches[0];\n const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled\n const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled\n const threshold = 70;\n\n var xDiff = this.initialTouchX - touch.clientX;\n var yDiff = this.initialTouchY - touch.clientY;\n\n const isHorizontalSwipe =\n Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\n\n const tabs = this.getAllActiveTabs;\n const currIndex = tabs.findIndex((el) => el.active);\n\n if (isHorizontalSwipe) {\n const toGo =\n (distX < 0 && this.placement === 'top') ||\n (distX > 0 && this.placement !== 'top')\n ? 1\n : -1;\n\n if (tabs[currIndex + toGo]) {\n this.setActiveTab(tabs[currIndex + toGo]);\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) {\n if (xDiff > 0) this.activePanel.setAttribute('animation-dir', 'left');\n else this.activePanel.setAttribute('animation-dir', 'right');\n }\n }\n }\n this.initialTouchX = null;\n this.initialTouchY = null;\n };\n\n private handleContentSlotChange = () => {\n setTimeout(() => {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n });\n };\n\n private handleTabSlotChange = (ev: Event & { target: HTMLSlotElement }) => {\n setTimeout(() => {\n this.setAriaLabels();\n this.handleTabScroll();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n this.updateScrollControls();\n }, 500);\n\n /** maintain a weakmap of mutation observers to maintain tab / indicator position on all changes. */\n const nodes = ev.target.assignedNodes({ flatten: true });\n nodes.forEach((node) => {\n if (!this.mutationObservers.get(node)) {\n const mo = new MutationObserver(() => {\n setTimeout(() => {\n this.syncActiveTabIndicator();\n this.handleTabScroll();\n this.updateScrollControls();\n }, 500);\n });\n this.mutationObservers.set(node, mo);\n\n mo.observe(node, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n });\n };\n\n // Stencil hooks\n\n componentDidLoad() {\n // Initial IO - watching for all content to be loaded\n const observer = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab || this.getAllActiveTabs[0], false);\n\n if (this.storeId)\n ComponentStore.init(this, ['tab'], this.storeMethod, this.storeId);\n observer.unobserve(entries[0].target);\n }\n });\n observer.observe(this.host);\n focusVisible.observe(this.tabGroup);\n\n if (this.leftBtn) {\n focusVisible.observe(this.leftBtn);\n focusVisible.observe(this.rightBtn);\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n setTimeout(() => {\n this.updateScrollControls();\n this.syncActiveTabIndicator();\n scrollIntoView(this.activeTab, this.nav, 'horizontal', 'center');\n }, 500);\n });\n this.resizeObserver.observe(this.nav);\n\n raf(() => this.updateScrollControls());\n }\n\n connectedCallback() {\n this.isRtl =\n this.host.dir === 'rtl' ||\n (this.host.ownerDocument as Document).dir === 'rtl';\n }\n\n disconnectedCallback() {\n focusVisible.unobserve(this.tabGroup);\n if (this.leftBtn) {\n focusVisible.unobserve(this.leftBtn);\n focusVisible.unobserve(this.rightBtn);\n }\n if (this.resizeObserver) this.resizeObserver.unobserve(this.nav);\n }\n\n render() {\n this.isRtl = (this.host.ownerDocument as Document).dir === 'rtl';\n\n return (\n <Host\n class={{ ...createColorClasses(this.color), legacy: this.isLegacy }}\n dir={this.isRtl ? 'rtl' : null}\n >\n <div\n part=\"base\"\n ref={(el) => (this.tabGroup = el)}\n class={{\n 'nano-tab-group': true,\n 'nano-tab-group--top': this.placement === 'top',\n 'nano-tab-group--start': this.placement === 'start',\n 'nano-tab-group--has-scroll-controls': this.hasScrollControls,\n 'nano-tab-group--has-scroll-controls-left': !this.hideControlLeft,\n 'nano-tab-group--has-scroll-controls-right': !this.hideControlRight,\n }}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <div class=\"nano-tab-group__nav-container\" part=\"nav\">\n {this.placement === 'top' && (\n <button\n class={{\n 'nano-tab-group__scroll-button': true,\n 'nano-tab-group__scroll-button--left': true,\n }}\n ref={(btn) => (this.leftBtn = btn)}\n onClick={() => this.handleBtnClick(false)}\n >\n <nano-icon name=\"light/chevron-left\"></nano-icon>\n </button>\n )}\n <div\n ref={(el) => (this.nav = el)}\n class=\"nano-tab-group__nav\"\n onScroll={this.handleTabScroll}\n >\n <div\n ref={(el) => (this.tabs = el)}\n part=\"tabs\"\n class=\"nano-tab-group__tabs\"\n role=\"tablist\"\n >\n <div\n ref={(el) => (this.activeTabIndicator = el)}\n part=\"active-tab-indicator\"\n class=\"nano-tab-group__active-tab-indicator\"\n />\n <slot name=\"tabs\" onSlotchange={this.handleTabSlotChange} />\n </div>\n </div>\n {this.placement === 'top' && (\n <button\n class={{\n 'nano-tab-group__scroll-button': true,\n 'nano-tab-group__scroll-button--right': true,\n }}\n ref={(btn) => (this.rightBtn = btn)}\n onClick={() => this.handleBtnClick(true)}\n >\n <nano-icon name=\"light/chevron-right\"></nano-icon>\n </button>\n )}\n </div>\n <slot name=\"tab-content-header\" />\n <div\n part=\"body\"\n class=\"nano-tab-group__body\"\n onTouchStart={this.handleTouchStart}\n onTouchEnd={this.handleTouchEnd}\n >\n <slot onSlotchange={this.handleContentSlotChange} />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- var __awaiter=this&&this.__awaiter||function(t,e,a,n){function i(t){return t instanceof a?t:new a((function(e){e(t)}))}return new(a||(a=Promise))((function(a,r){function o(t){try{l(n.next(t))}catch(e){r(e)}}function s(t){try{l(n["throw"](t))}catch(e){r(e)}}function l(t){t.done?a(t.value):i(t.value).then(o,s)}l((n=n.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var a={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},n,i,r,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(t){return function(e){return l([t,e])}}function l(o){if(n)throw new TypeError("Generator is already executing.");while(a)try{if(n=1,i&&(r=o[0]&2?i["return"]:o[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;if(i=0,r)o=[o[0]&2,r.value];switch(o[0]){case 0:case 1:r=o;break;case 4:a.label++;return{value:o[1],done:false};case 5:a.label++;i=o[1];o=[0];continue;case 7:o=a.ops.pop();a.trys.pop();continue;default:if(!(r=a.trys,r=r.length>0&&r[r.length-1])&&(o[0]===6||o[0]===2)){a=0;continue}if(o[0]===3&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}if(o[0]===6&&a.label<r[1]){a.label=r[1];r=o;break}if(r&&a.label<r[2]){a.label=r[2];a.ops.push(o);break}if(r[2])a.ops.pop();a.trys.pop();continue}o=e.call(t,a)}catch(s){o=[6,s];i=0}finally{n=r=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};
1
+ var __awaiter=this&&this.__awaiter||function(t,e,n,a){function i(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,r){function o(t){try{l(a.next(t))}catch(e){r(e)}}function s(t){try{l(a["throw"](t))}catch(e){r(e)}}function l(t){t.done?n(t.value):i(t.value).then(o,s)}l((a=a.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},a,i,r,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(t){return function(e){return l([t,e])}}function l(o){if(a)throw new TypeError("Generator is already executing.");while(n)try{if(a=1,i&&(r=o[0]&2?i["return"]:o[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;if(i=0,r)o=[o[0]&2,r.value];switch(o[0]){case 0:case 1:r=o;break;case 4:n.label++;return{value:o[1],done:false};case 5:n.label++;i=o[1];o=[0];continue;case 7:o=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(o[0]===6||o[0]===2)){n=0;continue}if(o[0]===3&&(!r||o[1]>r[0]&&o[1]<r[3])){n.label=o[1];break}if(o[0]===6&&n.label<r[1]){n.label=r[1];r=o;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(o);break}if(r[2])n.ops.pop();n.trys.pop();continue}o=e.call(t,n)}catch(s){o=[6,s];i=0}finally{a=r=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};
2
2
  /*!
3
3
  * Web Components for Nanopore digital Web Apps
4
- */import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-5f8d16e7.js";var tabCss=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));--padding:0.75rem 1rem;--bg-rgb:var(--nano-layer-bg-rgb, 255, 255, 255);--active-bg:rgba(var(--bg-rgb), 1);--inactive-bg:rgba(var(--bg-rgb), 0.7);--disabled-bg-rgb:var(--bg-rgb);--text-color:#007495;--disabled-text-color:#455556;--active-text-color:#0c5a71;--h-font-size:0.93em;--v-font-size:0.875em;--tab-spacing:0.5rem;--tab-divider-size:0;--tab-divider-color:#90c6e7;--tab-indicator-size:5px;display:inline-block}:host([direction=vertical]){--padding:1rem}:host([direction=vertical]) .nanotab{font-size:var(--v-font-size)}:host([direction=vertical]) .nanotab.nanotab--active{font-weight:600;color:var(--active-text-color)}:host([direction=horizontal]) .nanotab{font-size:var(--h-font-size);margin-top:var(--tab-indicator-size);border-right:solid var(--tab-divider-size) var(--tab-divider-color)}:host([direction=horizontal]) .nanotab.nanotab--active{margin-top:0;border-top:solid var(--tab-indicator-size) var(--tab-indicator-color);background:var(--active-bg);color:var(--active-text-color)}.nanotab{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-right:var(--tab-spacing);padding:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:auto;background:var(--inactive-bg);border-radius:var(--border-radius) var(--border-radius) 0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;overflow:visible;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab{margin-right:unset;-webkit-margin-end:var(--tab-spacing);margin-inline-end:var(--tab-spacing)}}.nanotab ::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host(:last-of-type) .nanotab{margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(:last-of-type) .nanotab{margin-right:unset;-webkit-margin-end:0;margin-inline-end:0}}.nanotab:hover:not(.tab--disabled){text-shadow:0 0 0.01px var(--text-color)}.nanotab:focus{outline:none;outline-style:none;-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.nanotab:focus:not(.nanotab--disabled){-webkit-box-shadow:var(--focus-shadow) inset;box-shadow:var(--focus-shadow) inset}.nanotab--disabled{background:rgba(var(--disabled-bg-rgb), 1);opacity:0.5;cursor:not-allowed;color:var(--disabled-text-color)}.nanotab__close-button{margin-left:var(--nano-spacing-small, 8px);--padding:var(--nano-spacing-xsmall, 4px) !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab__close-button{margin-left:unset;-webkit-margin-start:var(--nano-spacing-small, 8px);margin-inline-start:var(--nano-spacing-small, 8px);}}";var id=0;var Tab=function(){function t(t){var e=this;registerInstance(this,t);this.nanoTabClose=createEvent(this,"nanoTabClose",7);this.tabId="nano-tab-"+ ++id;this.panel="";this.active=false;this.disabled=false;this.closable=false;this.handleCloseClick=function(){e.nanoTabClose.emit()}}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.tab.focus({preventScroll:true});return[2]}))}))};t.prototype.removeFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.tab.blur();return[2]}))}))};t.prototype.render=function(){var t=this;return h(Host,{id:this.host.id||this.tabId},h("div",{part:"base",ref:function(e){return t.tab=e},class:{nanotab:true,"nanotab--active":this.active,"nanotab--disabled":this.disabled,"nanotab--closable":this.closable},role:"tab","aria-disabled":this.disabled?"true":"false","aria-selected":this.active?"true":"false",tabindex:this.disabled||!this.active?"-1":"0"},h("slot",null),this.closable&&h("nano-icon-button",{label:"Close this tab",iconName:"light/times",class:"nanotab__close-button",onClick:this.handleCloseClick,tabIndex:-1,"aria-hidden":"true"})))};Object.defineProperty(t.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();Tab.style=tabCss;export{Tab as nano_tab};
4
+ */import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-5f8d16e7.js";var tabCss=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));--padding:0.75rem 1rem;--bg-rgb:var(--nano-layer-bg-rgb, 255, 255, 255);--active-bg:rgba(var(--bg-rgb), 1);--inactive-bg:rgba(var(--bg-rgb), 0.7);--disabled-bg-rgb:var(--bg-rgb);--text-color:#007495;--disabled-text-color:#455556;--active-text-color:#0c5a71;--h-font-size:0.93em;--v-font-size:0.875em;--tab-spacing:0.5rem;--tab-divider-size:0;--tab-divider-color:#90c6e7;--tab-indicator-size:5px;display:inline-block}:host([direction=vertical]){--padding:1rem}:host([direction=vertical]) .nanotab{font-size:var(--v-font-size)}:host([direction=vertical]) .nanotab.nanotab--active{font-weight:600;color:var(--active-text-color)}:host([direction=horizontal]) .nanotab{font-size:var(--h-font-size);margin-top:var(--tab-indicator-size);border-right:solid var(--tab-divider-size) var(--tab-divider-color)}:host([direction=horizontal]) .nanotab.nanotab--active{margin-top:0;border-top:solid var(--tab-indicator-size) var(--tab-indicator-color);background:var(--active-bg);color:var(--active-text-color)}.nanotab{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-right:var(--tab-spacing);padding:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:auto;background:var(--inactive-bg);border-radius:var(--border-radius) var(--border-radius) 0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;overflow:visible;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab{margin-right:unset;-webkit-margin-end:var(--tab-spacing);margin-inline-end:var(--tab-spacing)}}.nanotab ::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host(:last-of-type) .nanotab{margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(:last-of-type) .nanotab{margin-right:unset;-webkit-margin-end:0;margin-inline-end:0}}.nanotab:hover:not(.tab--disabled){text-shadow:0 0 0.01px var(--text-color)}.nanotab:focus{outline:none;outline-style:none;-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.nanotab:focus:not(.nanotab--disabled){-webkit-box-shadow:var(--focus-shadow) inset;box-shadow:var(--focus-shadow) inset}.nanotab--disabled{background:rgba(var(--disabled-bg-rgb), 1);opacity:0.5;cursor:not-allowed;color:var(--disabled-text-color)}.nanotab__close-button{margin-left:var(--nano-spacing-small, 8px);--padding:var(--nano-spacing-xsmall, 4px) !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab__close-button{margin-left:unset;-webkit-margin-start:var(--nano-spacing-small, 8px);margin-inline-start:var(--nano-spacing-small, 8px);}}";var id=0;var Tab=function(){function t(t){var e=this;registerInstance(this,t);this.nanoTabClose=createEvent(this,"nanoTabClose",7);this.tabId="nano-tab-"+ ++id;this.panel="";this.active=false;this.disabled=false;this.closable=false;this.handleCloseClick=function(){e.nanoTabClose.emit()}}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.tab.focus({preventScroll:true});return[2]}))}))};t.prototype.removeFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.tab.blur();return[2]}))}))};t.prototype.render=function(){var t=this;return h(Host,{id:this.host.id||this.tabId},h("div",{part:"base",ref:function(e){return t.tab=e},class:{nanotab:true,"nanotab--active":this.active,"nanotab--disabled":this.disabled,"nanotab--closable":this.closable},role:"tab","aria-disabled":this.disabled?"true":"false","aria-selected":this.active?"true":"false",tabindex:this.disabled||!this.active?"-1":"0"},h("slot",null),this.closable&&h("nano-icon-button",{label:"Close this tab",iconName:"light/times",class:"nanotab__close-button",onClick:this.handleCloseClick,tabIndex:-1})))};Object.defineProperty(t.prototype,"host",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();Tab.style=tabCss;export{Tab as nano_tab};
5
5
  //# sourceMappingURL=nano-tab.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["src/components/tabs/tab.scss?tag=nano-tab&encapsulation=shadow","src/components/tabs/tab.tsx"],"names":["tabCss","id","Tab","class_1","hostRef","_this","this","tabId","panel","active","disabled","closable","handleCloseClick","nanoTabClose","emit","prototype","setFocus","tab","focus","preventScroll","removeFocus","blur","render","h","Host","host","part","ref","el","class","nanotab","nanotab--active","nanotab--disabled","nanotab--closable","role","aria-disabled","aria-selected","tabindex","label","iconName","onClick","tabIndex","aria-hidden"],"mappings":";;;uGAAA,IAAMA,OAAS,gvGCYf,IAAIC,GAAK,MAWIC,IAAG,WALhB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,mFAMUA,KAAAC,MAAQ,eAAcN,GAMLK,KAAAE,MAAQ,GAGRF,KAAAG,OAAS,MAGTH,KAAAI,SAAW,MAG5BJ,KAAAK,SAAW,MAiBXL,KAAAM,iBAAmB,WACzBP,EAAKQ,aAAaC,QAXdX,EAAAY,UAAAC,SAAN,gGACEV,KAAKW,IAAIC,MAAM,CAAEC,cAAe,wBAK5BhB,EAAAY,UAAAK,YAAN,gGACEd,KAAKW,IAAII,wBAOXlB,EAAAY,UAAAO,OAAA,WAAA,IAAAjB,EAAAC,KACE,OACEiB,EAACC,KAAI,CAACvB,GAAIK,KAAKmB,KAAKxB,IAAMK,KAAKC,OAC7BgB,EAAA,MAAA,CACEG,KAAK,OACLC,IAAK,SAACC,GAAE,OAAMvB,EAAKY,IAAMW,GACzBC,MAAO,CACLC,QAAS,KACTC,kBAAmBzB,KAAKG,OACxBuB,oBAAqB1B,KAAKI,SAC1BuB,oBAAqB3B,KAAKK,UAE5BuB,KAAK,MAAKC,gBACK7B,KAAKI,SAAW,OAAS,QAAO0B,gBAChC9B,KAAKG,OAAS,OAAS,QACtC4B,SAAU/B,KAAKI,WAAaJ,KAAKG,OAAS,KAAO,KAEjDc,EAAA,OAAA,MACCjB,KAAKK,UACJY,EAAA,mBAAA,CACEe,MAAM,iBACNC,SAAS,cACTV,MAAM,wBACNW,QAASlC,KAAKM,iBACd6B,UAAW,EAACC,cACA,4IA9DV","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --focus-shadow: Defaults to #{$control-focus-style};\n\n * @prop --padding: Defaults to .75rem 1rem on placement 'top' and 1rem on placement 'start';\n\n * @prop --bg-rgb: Defaults to #{$layer-bg-color-rgb};\n * @prop --active-bg: Defaults to rgba(var(--bg-rgb), 1);\n * @prop --disabled-bg-rgb: Defaults to var(--bg-rgb);\n * @prop --inactive-bg: Defaults to rgba(var(--bg-rgb), 0.7);\n\n * @prop --text-color: Defaults to #{$color-blue};\n * @prop --disabled-text-color: Defaults to #{$color-darkgrey};\n * @prop --active-text-color: Defaults to #{$color-darkblue};\n\n * @prop --h-font-size: Defaults to .93em;\n * @prop --v-font-size: Defaults to .875em;\n * @prop --tab-spacing: Gap between tabs. Defaults to 1rem;\n * @prop --tab-divider-size: Defaults to 0;\n * @prop --tab-divider-color: Defaults to #{$color-lightblue};\n */\n\n:host {\n --focus-shadow: #{$control-focus-style};\n --padding: 0.75rem 1rem;\n --bg-rgb: #{$layer-bg-color-rgb};\n --active-bg: rgba(var(--bg-rgb), 1);\n --inactive-bg: rgba(var(--bg-rgb), 0.7);\n --disabled-bg-rgb: var(--bg-rgb);\n --text-color: #{$color-blue};\n --disabled-text-color: #{$color-darkgrey};\n --active-text-color: #{$color-darkblue};\n --h-font-size: 0.93em;\n --v-font-size: 0.875em;\n --tab-spacing: 0.5rem;\n --tab-divider-size: 0;\n --tab-divider-color: #{$color-lightblue};\n --tab-indicator-size: 5px;\n\n display: inline-block;\n}\n\n:host([direction='vertical']) {\n --padding: 1rem;\n\n .nanotab {\n font-size: var(--v-font-size);\n\n &.nanotab--active {\n font-weight: 600;\n color: var(--active-text-color);\n }\n }\n}\n\n:host([direction='horizontal']) {\n .nanotab {\n font-size: var(--h-font-size);\n margin-top: var(--tab-indicator-size);\n border-right: solid var(--tab-divider-size) var(--tab-divider-color);\n\n &.nanotab--active {\n margin-top: 0;\n border-top: solid var(--tab-indicator-size) var(--tab-indicator-color);\n background: var(--active-bg);\n color: var(--active-text-color);\n }\n }\n}\n\n.nanotab {\n @include text-inherit();\n @include margin(null, var(--tab-spacing), null, null);\n\n padding: var(--padding);\n display: flex;\n height: 100%;\n width: auto;\n background: var(--inactive-bg);\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n user-select: none;\n cursor: pointer;\n overflow: visible;\n white-space: nowrap;\n align-items: center;\n\n & ::slotted(*) {\n display: flex;\n align-items: center;\n }\n\n :host(:last-of-type) & {\n @include margin(null, 0, null, null);\n }\n\n &:hover:not(.tab--disabled) {\n text-shadow: 0 0 0.01px var(--text-color);\n }\n\n &:focus {\n outline: none;\n outline-style: none;\n box-shadow: none;\n border-color: transparent;\n }\n\n &:focus:not(.nanotab--disabled) {\n box-shadow: var(--focus-shadow) inset;\n }\n\n &--disabled {\n background: rgba(var(--disabled-bg-rgb), 1);\n opacity: 0.5;\n cursor: not-allowed;\n color: var(--disabled-text-color);\n }\n\n &__close-button {\n @include margin(null, null, null, #{$spacing-small});\n\n --padding: #{$spacing-xsmall} !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n ComponentInterface,\n Method,\n Prop,\n h,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nlet id = 0;\n\n/**\n * @slot - The tab's label.\n */\n\n@Component({\n tag: 'nano-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab implements ComponentInterface {\n private tabId = `nano-tab-${++id}`;\n private tab: HTMLElement;\n\n @Element() host: HTMLNanoTabElement;\n\n /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */\n @Prop({ reflect: true }) panel = '';\n\n /** The active, selected tab. If none active, the first will automatically be selected. */\n @Prop({ reflect: true }) active = false;\n\n /** Set to true to draw the tab in an active state. */\n @Prop({ reflect: true }) disabled = false;\n\n /** When true, the tab will be rendered with a close icon. */\n @Prop() closable = false;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabClose: EventEmitter;\n\n /** Sets focus to the tab. */\n @Method()\n async setFocus() {\n this.tab.focus({ preventScroll: true });\n }\n\n /** Removes focus from the tab. */\n @Method()\n async removeFocus() {\n this.tab.blur();\n }\n\n private handleCloseClick = () => {\n this.nanoTabClose.emit();\n };\n\n render() {\n return (\n <Host id={this.host.id || this.tabId}>\n <div\n part=\"base\"\n ref={(el) => (this.tab = el)}\n class={{\n nanotab: true,\n 'nanotab--active': this.active,\n 'nanotab--disabled': this.disabled,\n 'nanotab--closable': this.closable,\n }}\n role=\"tab\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.disabled || !this.active ? '-1' : '0'}\n >\n <slot />\n {this.closable && (\n <nano-icon-button\n label=\"Close this tab\"\n iconName=\"light/times\"\n class=\"nanotab__close-button\"\n onClick={this.handleCloseClick}\n tabIndex={-1}\n aria-hidden=\"true\"\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["src/components/tabs/tab.scss?tag=nano-tab&encapsulation=shadow","src/components/tabs/tab.tsx"],"names":["tabCss","id","Tab","class_1","hostRef","_this","this","tabId","panel","active","disabled","closable","handleCloseClick","nanoTabClose","emit","prototype","setFocus","tab","focus","preventScroll","removeFocus","blur","render","h","Host","host","part","ref","el","class","nanotab","nanotab--active","nanotab--disabled","nanotab--closable","role","aria-disabled","aria-selected","tabindex","label","iconName","onClick","tabIndex"],"mappings":";;;uGAAA,IAAMA,OAAS,gvGCYf,IAAIC,GAAK,MAWIC,IAAG,WALhB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,mFAMUA,KAAAC,MAAQ,eAAcN,GAMLK,KAAAE,MAAQ,GAGRF,KAAAG,OAAS,MAGTH,KAAAI,SAAW,MAG5BJ,KAAAK,SAAW,MAiBXL,KAAAM,iBAAmB,WACzBP,EAAKQ,aAAaC,QAXdX,EAAAY,UAAAC,SAAN,gGACEV,KAAKW,IAAIC,MAAM,CAAEC,cAAe,wBAK5BhB,EAAAY,UAAAK,YAAN,gGACEd,KAAKW,IAAII,wBAOXlB,EAAAY,UAAAO,OAAA,WAAA,IAAAjB,EAAAC,KACE,OACEiB,EAACC,KAAI,CAACvB,GAAIK,KAAKmB,KAAKxB,IAAMK,KAAKC,OAC7BgB,EAAA,MAAA,CACEG,KAAK,OACLC,IAAK,SAACC,GAAE,OAAMvB,EAAKY,IAAMW,GACzBC,MAAO,CACLC,QAAS,KACTC,kBAAmBzB,KAAKG,OACxBuB,oBAAqB1B,KAAKI,SAC1BuB,oBAAqB3B,KAAKK,UAE5BuB,KAAK,MAAKC,gBACK7B,KAAKI,SAAW,OAAS,QAAO0B,gBAChC9B,KAAKG,OAAS,OAAS,QACtC4B,SAAU/B,KAAKI,WAAaJ,KAAKG,OAAS,KAAO,KAEjDc,EAAA,OAAA,MACCjB,KAAKK,UACJY,EAAA,mBAAA,CACEe,MAAM,iBACNC,SAAS,cACTV,MAAM,wBACNW,QAASlC,KAAKM,iBACd6B,UAAW,uIA7DT","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --focus-shadow: Defaults to #{$control-focus-style};\n\n * @prop --padding: Defaults to .75rem 1rem on placement 'top' and 1rem on placement 'start';\n\n * @prop --bg-rgb: Defaults to #{$layer-bg-color-rgb};\n * @prop --active-bg: Defaults to rgba(var(--bg-rgb), 1);\n * @prop --disabled-bg-rgb: Defaults to var(--bg-rgb);\n * @prop --inactive-bg: Defaults to rgba(var(--bg-rgb), 0.7);\n\n * @prop --text-color: Defaults to #{map.get($colors, blue)};\n * @prop --disabled-text-color: Defaults to #{map.get($colors, darkgrey)};\n * @prop --active-text-color: Defaults to #{map.get($colors, darkblue)};\n\n * @prop --h-font-size: Defaults to .93em;\n * @prop --v-font-size: Defaults to .875em;\n * @prop --tab-spacing: Gap between tabs. Defaults to 1rem;\n * @prop --tab-divider-size: Defaults to 0;\n * @prop --tab-divider-color: Defaults to #{map.get($colors, lightblue)};\n */\n\n:host {\n --focus-shadow: #{$control-focus-style};\n --padding: 0.75rem 1rem;\n --bg-rgb: #{$layer-bg-color-rgb};\n --active-bg: rgba(var(--bg-rgb), 1);\n --inactive-bg: rgba(var(--bg-rgb), 0.7);\n --disabled-bg-rgb: var(--bg-rgb);\n --text-color: #{map.get($colors, blue)};\n --disabled-text-color: #{map.get($colors, darkgrey)};\n --active-text-color: #{map.get($colors, darkblue)};\n --h-font-size: 0.93em;\n --v-font-size: 0.875em;\n --tab-spacing: 0.5rem;\n --tab-divider-size: 0;\n --tab-divider-color: #{map.get($colors, lightblue)};\n --tab-indicator-size: 5px;\n\n display: inline-block;\n}\n\n:host([direction='vertical']) {\n --padding: 1rem;\n\n .nanotab {\n font-size: var(--v-font-size);\n\n &.nanotab--active {\n font-weight: 600;\n color: var(--active-text-color);\n }\n }\n}\n\n:host([direction='horizontal']) {\n .nanotab {\n font-size: var(--h-font-size);\n margin-top: var(--tab-indicator-size);\n border-right: solid var(--tab-divider-size) var(--tab-divider-color);\n\n &.nanotab--active {\n margin-top: 0;\n border-top: solid var(--tab-indicator-size) var(--tab-indicator-color);\n background: var(--active-bg);\n color: var(--active-text-color);\n }\n }\n}\n\n.nanotab {\n @include text-inherit();\n @include margin(null, var(--tab-spacing), null, null);\n\n padding: var(--padding);\n display: flex;\n height: 100%;\n width: auto;\n background: var(--inactive-bg);\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n user-select: none;\n cursor: pointer;\n overflow: visible;\n white-space: nowrap;\n align-items: center;\n\n & ::slotted(*) {\n display: flex;\n align-items: center;\n }\n\n :host(:last-of-type) & {\n @include margin(null, 0, null, null);\n }\n\n &:hover:not(.tab--disabled) {\n text-shadow: 0 0 0.01px var(--text-color);\n }\n\n &:focus {\n outline: none;\n outline-style: none;\n box-shadow: none;\n border-color: transparent;\n }\n\n &:focus:not(.nanotab--disabled) {\n box-shadow: var(--focus-shadow) inset;\n }\n\n &--disabled {\n background: rgba(var(--disabled-bg-rgb), 1);\n opacity: 0.5;\n cursor: not-allowed;\n color: var(--disabled-text-color);\n }\n\n &__close-button {\n @include margin(null, null, null, #{$spacing-small});\n\n --padding: #{$spacing-xsmall} !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n ComponentInterface,\n Method,\n Prop,\n h,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nlet id = 0;\n\n/**\n * @slot - The tab's label.\n */\n\n@Component({\n tag: 'nano-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab implements ComponentInterface {\n private tabId = `nano-tab-${++id}`;\n private tab: HTMLElement;\n\n @Element() host: HTMLNanoTabElement;\n\n /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */\n @Prop({ reflect: true }) panel = '';\n\n /** The active, selected tab. If none active, the first will automatically be selected. */\n @Prop({ reflect: true }) active = false;\n\n /** Set to true to draw the tab in an active state. */\n @Prop({ reflect: true }) disabled = false;\n\n /** When true, the tab will be rendered with a close icon. */\n @Prop() closable = false;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabClose: EventEmitter;\n\n /** Sets focus to the tab. */\n @Method()\n async setFocus() {\n this.tab.focus({ preventScroll: true });\n }\n\n /** Removes focus from the tab. */\n @Method()\n async removeFocus() {\n this.tab.blur();\n }\n\n private handleCloseClick = () => {\n this.nanoTabClose.emit();\n };\n\n render() {\n return (\n <Host id={this.host.id || this.tabId}>\n <div\n part=\"base\"\n ref={(el) => (this.tab = el)}\n class={{\n nanotab: true,\n 'nanotab--active': this.active,\n 'nanotab--disabled': this.disabled,\n 'nanotab--closable': this.closable,\n }}\n role=\"tab\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.disabled || !this.active ? '-1' : '0'}\n >\n <slot />\n {this.closable && (\n <nano-icon-button\n label=\"Close this tab\"\n iconName=\"light/times\"\n class=\"nanotab__close-button\"\n onClick={this.handleCloseClick}\n tabIndex={-1}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- :host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}.nano-toast-stack{position:fixed;z-index:var(--nano-layer-index-modal, 700);width:28rem;max-width:100%;max-height:100%;overflow:auto}.nano-toast-stack--tr{top:0;right:0}.nano-toast-stack--tl{top:0;left:0}.nano-toast-stack--br{bottom:0;right:0}.nano-toast-stack--bl{bottom:0;left:0}body:not(.nano-eager) nano-algolia-filter,body:not(.nano-eager) nano-algolia-input,body:not(.nano-eager) nano-algolia-pagination,body:not(.nano-eager) nano-algolia-results,body:not(.nano-eager) nano-details,body:not(.nano-eager) nano-drawer,body:not(.nano-eager) nano-grid-item,body:not(.nano-eager) nano-menu,body:not(.nano-eager) nano-range,body:not(.nano-eager) nano-rating,body:not(.nano-eager) nano-slide,body:not(.nano-eager) nano-slides,body:not(.nano-eager) nano-date-input,body:not(.nano-eager) nano-global-nav,body:not(.nano-eager) nano-global-search-results,body:not(.nano-eager) nano-menu-drawer,body:not(.nano-eager) nano-checkbox,body:not(.nano-eager) nano-checkbox-group,body:not(.nano-eager) nano-grid,body:not(.nano-eager) nano-option,body:not(.nano-eager) nano-algolia,body:not(.nano-eager) nano-date-picker,body:not(.nano-eager) nano-select,body:not(.nano-eager) nano-dropdown,body:not(.nano-eager) nano-nav-item,body:not(.nano-eager) nano-input,body:not(.nano-eager) nano-icon,body:not(.nano-eager) nano-tab-content,body:not(.nano-eager) nano-tab,body:not(.nano-eager) nano-alert,body:not(.nano-eager) nano-hero,body:not(.nano-eager) nano-img,body:not(.nano-eager) nano-datalist{visibility:hidden}body:not(.nano-eager) .hydrated{visibility:inherit}body:not(.nano-eager) nano-tooltip:not(.hydrated)>[slot=content]{visibility:hidden}html{height:100%}body{height:100vh}[hidden]{display:none !important}nano-alert:not([showing]),nano-dialog:not([showing]){position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}nano-grid:not(.ready),nano-slide:not([ready]),nano-slides:not([ready]){opacity:0}.nano-scroll-lock{overflow:hidden !important}
1
+ :host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}.nano-toast-stack{position:fixed;z-index:var(--nano-layer-index-modal, 700);width:28rem;max-width:100%;max-height:100%;overflow:auto}.nano-toast-stack--tr{top:0;right:0}.nano-toast-stack--tl{top:0;left:0}.nano-toast-stack--br{bottom:0;right:0}.nano-toast-stack--bl{bottom:0;left:0}body:not(.nano-eager) nano-algolia-filter,body:not(.nano-eager) nano-algolia-input,body:not(.nano-eager) nano-algolia-pagination,body:not(.nano-eager) nano-algolia-results,body:not(.nano-eager) nano-details,body:not(.nano-eager) nano-drawer,body:not(.nano-eager) nano-grid-item,body:not(.nano-eager) nano-menu,body:not(.nano-eager) nano-range,body:not(.nano-eager) nano-rating,body:not(.nano-eager) nano-slide,body:not(.nano-eager) nano-slides,body:not(.nano-eager) nano-date-input,body:not(.nano-eager) nano-global-nav,body:not(.nano-eager) nano-global-search-results,body:not(.nano-eager) nano-menu-drawer,body:not(.nano-eager) nano-checkbox,body:not(.nano-eager) nano-checkbox-group,body:not(.nano-eager) nano-grid,body:not(.nano-eager) nano-option,body:not(.nano-eager) nano-algolia,body:not(.nano-eager) nano-date-picker,body:not(.nano-eager) nano-select,body:not(.nano-eager) nano-dropdown,body:not(.nano-eager) nano-nav-item,body:not(.nano-eager) nano-input,body:not(.nano-eager) nano-icon,body:not(.nano-eager) nano-tab-content,body:not(.nano-eager) nano-tab,body:not(.nano-eager) nano-alert,body:not(.nano-eager) nano-hero,body:not(.nano-eager) nano-img,body:not(.nano-eager) nano-datalist,body:not(.nano-eager) nano-split-pane{visibility:hidden}body:not(.nano-eager) .hydrated{visibility:inherit}body:not(.nano-eager) nano-tooltip:not(.hydrated)>[slot=content]{visibility:hidden}html{height:100%}body{height:100vh}[hidden]{display:none !important}nano-alert:not([showing]),nano-dialog:not([showing]){position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}nano-grid:not(.ready),nano-slide:not([ready]),nano-slides:not([ready]){opacity:0}.nano-scroll-lock{overflow:hidden !important}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{p as e,w as a,d as o,N as n,a as t,H as s,b as l}from"./p-ab5813a7.js";import"./p-11a2dcce.js";const i=e=>`__sc_import_${e.replace(/\s|-/g,"_")}`;const r=()=>{{e.o=a.__cssshim}{c(s.prototype)}const l=Array.from(o.querySelectorAll("script")).find((e=>new RegExp(`/${n}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===n));const i={};if("onbeforeload"in l&&!history.scrollRestoration){return{then(){}}}{i.resourcesUrl=new URL(".",new URL(l.getAttribute("data-resources-url")||l.src,a.location.href)).href;{d(i.resourcesUrl,l)}if(!a.customElements){return __sc_import_nano_components("./p-059a5e86.js").then((()=>i))}}return t(i)};const d=(e,t)=>{const s=i(n);try{a[s]=new Function("w",`return import(w);//${Math.random()}`)}catch(l){const n=new Map;a[s]=l=>{const i=new URL(l,e).href;let r=n.get(i);if(!r){const e=o.createElement("script");e.type="module";e.crossOrigin=t.crossOrigin;e.src=URL.createObjectURL(new Blob([`import * as m from '${i}'; window.${s}.m = m;`],{type:"application/javascript"}));r=new Promise((o=>{e.onload=()=>{o(a[s].m);e.remove()}}));n.set(i,r);o.head.appendChild(e)}return r}}};const c=e=>{const a=e.cloneNode;e.cloneNode=function(e){if(this.nodeName==="TEMPLATE"){return a.call(this,e)}const o=a.call(this,false);const n=this.childNodes;if(e){for(let e=0;e<n.length;e++){if(n[e].nodeType!==2){o.appendChild(n[e].cloneNode(true))}}}return o}};r().then((e=>l(JSON.parse('[["p-1ec44caf",[[1,"nano-global-nav",{"env":[1],"ssoRedirect":[1,"sso-redirect"],"getMyAccountData":[4,"get-my-account-data"],"activeMyAccountSections":[16],"showSearch":[4,"show-search"],"showLogo":[4,"show-logo"],"logoUrl":[1,"logo-url"],"searchIndeces":[16],"myAccountUser":[1040],"searchAppId":[1025,"search-app-id"],"searchApiKey":[1025,"search-api-key"],"searchValue":[1025,"search-value"],"searchIndex":[1025,"search-index"],"cartCount":[1026,"cart-count"],"msgCount":[1026,"msg-count"],"cartUrl":[1025,"cart-url"],"msgUrl":[1025,"msg-url"],"hasLoggedinSlot":[32],"hasSiteSlot":[32],"hasPromotionSlot":[32],"aboutSlotLen":[32],"iconSlotLen":[32],"mainSlotLen":[32],"overflowSlotLen":[32],"searchSlotLen":[32],"internalSearchIndeces":[32],"thresholdReady":[32],"remoteDataReady":[32],"ready":[32],"isResizing":[32],"intersectRatio":[32],"threshold":[32],"modalOpen":[32],"modalIsOpen":[32],"searchBarShown":[32],"scrollingUp":[32],"searchLoading":[32],"showAutocomplete":[32],"secondaryMenuOpen":[32],"userMenuOpen":[32],"menuFullScreen":[32],"searchValInternal":[32],"submitSearch":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"]]]]],["p-b59d2bd5",[[1,"nano-hero",{"imgSrc":[1,"img-src"],"imgSrcSet":[1,"img-src-set"],"largeScreenBP":[2,"large-screen-b-p"],"theme":[1],"level":[1],"gridSizes":[32],"hasIconBox":[32],"hasScrim":[32],"hasSecondaryContent":[32],"hasQuote":[32],"hasBg":[32],"hasBackBtn":[32],"hasCtas":[32],"breadCrumbs":[32],"iconBoxItems":[32]}]]],["p-7d2e2685",[[6,"nano-date-input",{"invalid":[2564],"helperText":[4,"helper-text"],"helperTextFormat":[16],"floatLabel":[4,"float-label"],"name":[1],"readonly":[4],"size":[2],"form":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"disabled":[4],"color":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"label":[1],"placeholder":[1025],"value":[1537],"validateOn":[1,"validate-on"],"showInlineError":[516,"show-inline-error"],"dateOrder":[1,"date-order"],"required":[4],"min":[1],"max":[1],"hideLabel":[4,"hide-label"],"picker":[4],"initialPickerDate":[1,"initial-picker-date"],"pickerOpen":[1540,"picker-open"],"closeAfterPicked":[4,"close-after-picked"],"pattern":[32],"inputValue":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]}]]],["p-730f60ea",[[1,"nano-dialog",{"showRibbon":[4,"show-ribbon"],"open":[1540],"label":[1],"noHeader":[4,"no-header"],"noFooter":[4,"no-footer"],"noUserDismiss":[4,"no-user-dismiss"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"isVisible":[32],"noDismiss":[32],"hasFooter":[32],"show":[64],"hide":[64]}]]],["p-d6569144",[[6,"nano-file-upload",{"name":[1],"accept":[1],"capture":[1],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"label":[1],"placeholder":[1],"hideLabel":[4,"hide-label"],"required":[4],"disabled":[516],"clearInput":[4,"clear-input"],"showInlineError":[516,"show-inline-error"],"validateOn":[1025,"validate-on"],"invalid":[2564],"files":[2064],"value":[6145],"hasHelperSlot":[32],"hasLabelSlot":[32],"errorMessage":[32],"isDragging":[32],"fileList":[32],"hasFocus":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[8,"click","globalClickHandler"],[8,"keydown","globalKeydownHandler"]]]]],["p-3456db01",[[1,"nano-alert",{"open":[1540],"closable":[516],"color":[513],"duration":[2],"isModal":[32],"isToast":[32],"isShowing":[32],"label":[32],"show":[64],"hide":[64],"toast":[64],"alert":[64]}]]],["p-fea32549",[[1,"nano-global-search-results",{"algoliaEle":[32],"currentWidth":[32],"apiKey":[32],"appId":[32],"index":[32]},[[16,"nanoSearchReset","handleGlobalNavReset"],[16,"nanoSearchResult","handleGlobalNavSearch"],[0,"nanoChange","handleReorder"],[0,"nanoResultsShown","attachListeners"],[16,"nanoNewResults","attachResultListeners"]]]]],["p-e35eac75",[[1,"nano-tab",{"panel":[513],"active":[516],"disabled":[516],"closable":[4],"setFocus":[64],"removeFocus":[64]}]]],["p-c0ddb4c3",[[1,"nano-menu-drawer",{"open":[4],"saveState":[4,"save-state"],"hideWidth":[2,"hide-width"],"hideHeight":[4,"hide-height"],"reset":[32],"widthOk":[32],"heightOk":[32],"isLoading":[32],"hide":[32]},[[0,"nanoOpen","cancelNavItemEvents"],[0,"nanoClose","cancelNavItemEvents"],[16,"nanoIsReady","handleGlobalNavReady"]]]]],["p-bbe6b7af",[[1,"nano-tab-group",{"placement":[1],"noScrollControls":[4,"no-scroll-controls"],"color":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"disableSwipe":[4,"disable-swipe"],"hasScrollControls":[32],"hideControlRight":[32],"hideControlLeft":[32],"isLegacy":[32],"tab":[32],"show":[64]},[[0,"nanoTabClose","handleTabClose"]]]]],["p-e562bffd",[[1,"nano-accordion",{"color":[1],"itemOpened":[32]},[[0,"nanoOpened","onToggleHandler"],[0,"nanoClosed","onClosedHandler"]]]]],["p-07bdf44d",[[1,"nano-algolia-filter",{"filterName":[1,"filter-name"],"value":[1025],"operator":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"changeEvent":[32],"internalValue":[32],"showFilter":[32],"indexResults":[32],"filterChanged":[32],"facets":[32],"tplRenderFn":[32],"globalStoreMethod":[32]},[[0,"nanoChange","handleChangeEvent"],[0,"change","handleChangeEvent"]]]]],["p-65c10b3f",[[1,"nano-algolia-input",{"appId":[1,"app-id"],"apiKey":[1,"api-key"],"searchIndex":[1040],"searchIndexName":[1,"search-index-name"],"minChars":[2,"min-chars"],"autoEmit":[4,"auto-emit"],"browseIndex":[1028,"browse-index"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"searchStr":[32],"algoliaIndex":[32],"currentResults":[32],"search":[64]},[[0,"nanoChange","searchSubmit"]]]]],["p-43543d18",[[1,"nano-algolia-pagination",{"maxToShow":[2,"max-to-show"],"currentPage":[32],"canGoPrev":[32],"canGoNext":[32],"show":[32],"tplRenderFn":[32],"indexResults":[32],"infiniteScroll":[32],"nextPage":[64],"prevPage":[64],"goToPage":[64]}]]],["p-50514e5e",[[1,"nano-algolia-results",{"infiniteScroll":[4,"infinite-scroll"],"appendPages":[4,"append-pages"],"showResults":[32],"tplRenderFn":[32],"results":[32],"indexResults":[32],"resultsPage":[32],"changeEvent":[32],"facets":[32],"isLoading":[32]}]]],["p-4535e3bb",[[1,"nano-aspect-ratio",{"aspectRatio":[1,"aspect-ratio"],"fit":[1]}]]],["p-20db18f3",[[6,"nano-checkbox",{"hasFocus":[1540,"has-focus"],"checked":[1540],"disabled":[516],"value":[1],"name":[1],"required":[4],"type":[513],"label":[1],"indeterminate":[1540],"invalid":[2564],"color":[1],"_invalid":[32],"inputType":[32],"getInputElement":[64],"reportValidity":[64],"setError":[64],"setFocus":[64],"removeFocus":[64]}]]],["p-f3bf942d",[[6,"nano-checkbox-group",{"validateOn":[1025,"validate-on"],"showInlineError":[4,"show-inline-error"],"min":[2],"max":[2],"disabled":[516],"legend":[1],"invalid":[2564],"checkboxes":[32],"nativeCbs":[32],"errorMessage":[32],"showErrorMsg":[32],"hasHelperSlot":[32],"reportValidity":[64]},[[0,"nanoChange","handleCbChange"]]]]],["p-e11bd40d",[[1,"nano-details",{"label":[1],"open":[1540],"noHandle":[4,"no-handle"],"iconRotation":[2,"icon-rotation"],"color":[1],"isLoading":[32]}]]],["p-394c3c19",[[1,"nano-drawer",{"open":[1540],"label":[1],"placement":[1],"contained":[4],"noHeader":[4,"no-header"],"type":[1],"contentSelector":[1,"content-selector"],"hasFooter":[32],"isVisible":[32],"show":[64],"hide":[64]}]]],["p-2e6c55e2",[[6,"nano-range",{"color":[1],"debounce":[2],"name":[1],"dualKnobs":[4,"dual-knobs"],"min":[2],"max":[2],"pin":[4],"snaps":[4],"step":[2],"ticks":[4],"disabled":[4],"value":[1026],"ratioA":[32],"ratioB":[32],"pressedKnob":[32]}]]],["p-1e974cad",[[2,"nano-rating",{"value":[1538],"max":[2],"precision":[2],"readonly":[4],"disabled":[4],"name":[1],"symbolName":[1,"symbol-name"],"symbol":[16],"hoverValue":[32],"isHovering":[32],"setFocus":[64],"removeFocus":[64]}]]],["p-70dec19f",[[1,"nano-slide",{"ready":[1540]}]]],["p-ba13bb56",[[1,"nano-slides",{"options":[1040],"navbtns":[4],"pager":[4],"fullscreenbtn":[4],"fullscreen":[1540],"animation":[513],"currentSlide":[1538,"current-slide"],"autoplay":[8],"ready":[1540],"iCurrentSlide":[32],"slidesReady":[32],"didInit":[32],"update":[64],"updateAutoHeight":[64],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"getActiveIndex":[64],"length":[64],"isEnd":[64],"isBeginning":[64],"startAutoplay":[64],"stopAutoplay":[64],"lockSwipes":[64],"getflickity":[64],"reload":[64]}]]],["p-6ade3290",[[1,"nano-tab-content",{"name":[513],"active":[516]}]]],["p-040b6cda",[[1,"nano-spinner",{"type":[1],"overlay":[516],"hasText":[32]}]]],["p-08ffc9a1",[[1,"nano-algolia",{"showResults":[1028,"show-results"],"resultsPage":[1026,"results-page"],"appId":[1025,"app-id"],"apiKey":[1025,"api-key"],"searchIndex":[1040],"searchIndexName":[1025,"search-index-name"],"listenTo":[1,"listen-to"],"query":[1025],"operator":[1],"filters":[16],"tplEngine":[16],"tplRenderFn":[16],"replicaIndex":[1025,"replica-index"],"browseIndex":[1028,"browse-index"],"minChars":[2,"min-chars"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"_dynFacetFilters":[32],"inputField":[32],"algoliaIndex":[32],"indeces":[32],"resultsEmitterEle":[32],"indexResults":[32],"filterChanged":[32],"currentHits":[32],"changeEvent":[32],"isLoading":[32],"wormholeState":[32],"removeFilters":[64]},[[0,"nanoTplUpdated","onAllTplUpdate"],[0,"nanoPageChanged","onPageChange"],[0,"nanoFilterChanged","onFilterChange"],[16,"nanoChange","handleInputChange"],[16,"change","handleInputChange"]]]]],["p-346588cc",[[1,"nano-date-picker",{"selectedDate":[1025,"selected-date"],"min":[1],"max":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"color":[1],"isDateDisabled":[16],"isModal":[4,"is-modal"],"firstFocusEle":[16],"activeFocus":[32],"focusedDay":[32],"setFocus":[64]}]]],["p-17bf76c4",[[1,"nano-tooltip",{"content":[1],"placement":[1],"disabled":[4],"distance":[2],"open":[1540],"skidding":[2],"trigger":[1],"show":[64],"hide":[64]}]]],["p-c954c040",[[6,"nano-select",{"invalid":[2564],"color":[1],"autofocus":[4],"disabled":[516],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"multiple":[4],"name":[1],"placeholder":[1],"readonly":[516],"required":[4],"size":[2],"max":[2],"min":[2],"form":[1],"allowCustomValues":[4,"allow-custom-values"],"value":[6145],"options":[6160],"clearSelect":[4,"clear-select"],"mask":[4],"debounce":[2],"dropDownConfig":[1040],"currInsertIndex":[32],"showErrorMsg":[32],"errorMessage":[32],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"inputSearchVal":[32],"_eOptions":[32],"reportValidity":[64],"setFocus":[64],"getSelectElement":[64],"showError":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]],[1,"nano-nav-item",{"href":[1025],"target":[1],"disabled":[4],"open":[1540],"selected":[516],"secondaryActiveWidth":[2,"secondary-active-width"],"secondaryFallback":[16],"closeOnBlur":[4,"close-on-blur"],"didOpen":[32],"isInGlobalNav":[32],"isInMenuDrawer":[32],"isInMenu":[32],"isLegacy":[32],"hasFocus":[32],"setFocus":[64]}]]],["p-2559e9c1",[[6,"nano-input",{"invalid":[2564],"color":[1],"accept":[1],"autocapitalise":[1],"autocomplete":[1],"autocorrect":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"clearOnEdit":[4,"clear-on-edit"],"debounce":[2],"disabled":[516],"inputmode":[1],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"max":[1],"maxlength":[2],"min":[1],"minlength":[2],"multiple":[4],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[516],"required":[4],"spellcheck":[4],"step":[1],"size":[2],"type":[1],"form":[1],"value":[1025],"resize":[1],"rows":[2],"showCharCount":[4,"show-char-count"],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"errorMessage":[32],"datalist":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[16,"reset","onReset"],[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]],["p-3aa1d07d",[[1,"nano-sticker",{"autoResize":[4,"auto-resize"],"isSticky":[1028,"is-sticky"],"offset":[1026],"position":[1],"quietMode":[1,"quiet-mode"],"hideOnNewStickers":[4,"hide-on-new-stickers"],"breakPointMax":[2,"break-point-max"],"breakPointMin":[2,"break-point-min"],"scrollParent":[1040],"stickTo":[1,"stick-to"],"isStuck":[32],"isRootSticker":[32],"hide":[32],"scrollHide":[32],"multiStickerHide":[32],"scrollingTo":[32],"quietModeIsOn":[32],"stuckCounter":[32],"stickerIndex":[32],"stickToEle":[32],"triggerPos":[32],"trigger":[32],"_offset":[32],"isHiding":[64],"isSticking":[64],"setTriggerPos":[64],"getTriggerPos":[64],"pauseHiding":[64]}]]],["p-56ba0d63",[[2,"nano-icon-button",{"iconName":[1,"icon-name"],"iconSrc":[1,"icon-src"],"type":[513],"name":[513],"value":[513],"label":[1],"disabled":[516],"href":[1],"target":[1]}]]],["p-5e7c7d3d",[[1,"nano-resize-observe",{"states":[1],"currentWidth":[32],"currentHeight":[32],"classNames":[32]}],[1,"nano-skeleton",{"animated":[4]}]]],["p-462ad4f1",[[1,"nano-img",{"alt":[1],"src":[1],"srcSet":[1,"src-set"],"lazy":[4],"background":[4],"autoHeight":[1,"auto-height"],"loadSrc":[32],"loadError":[32],"hasLoaded":[32],"imgStates":[32],"_src":[32]}],[1,"nano-grid",{"sSize":[2,"s-size"],"mSize":[2,"m-size"],"lSize":[2,"l-size"],"xlSize":[2,"xl-size"],"sCols":[2,"s-cols"],"mCols":[2,"m-cols"],"lCols":[2,"l-cols"],"xlCols":[2,"xl-cols"],"xxlCols":[2,"xxl-cols"],"showHelper":[516,"show-helper"],"contentPanel":[516,"content-panel"],"fullHeight":[516,"full-height"],"ready":[32],"isSmall":[32],"isMedium":[32],"isLarge":[32],"isXL":[32],"isXXL":[32]}],[1,"nano-grid-item",{"gridStates":[1,"grid-states"],"changeBP":[64]}]]],["p-a0515a0f",[[1,"nano-dropdown",{"autoOpen":[4,"auto-open"],"open":[1540],"closeOnSelect":[4,"close-on-select"],"containingElement":[1040],"tetherTo":[16],"placement":[1],"distance":[2],"skidding":[2],"hoist":[4],"dialogTitle":[1,"dialog-title"],"show":[64],"hide":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"],[0,"nanoSelect","handlePanelSelect"]]]]],["p-a315ed2c",[[1,"nano-icon",{"color":[1],"ariaLabel":[1537,"aria-label"],"flipRtl":[4,"flip-rtl"],"name":[1],"src":[1],"icon":[8],"size":[1],"lazy":[4],"svgContent":[32],"isVisible":[32],"isLoading":[32]}]]],["p-71c26ace",[[1,"nano-datalist",{"selected":[1040],"dropDownConfig":[6160],"options":[16],"input":[1],"type":[1],"activeOptions":[2064],"open":[1028],"disableFilter":[4,"disable-filter"],"disabled":[4],"actvOptEles":[32],"connectedInput":[32],"inputLabel":[32],"hasNoResult":[32],"shouldOpen":[32],"canOpen":[32],"optionIds":[32]}],[1,"nano-option",{"value":[1537],"label":[1537],"selected":[516],"disabled":[516],"filterMeta":[1,"filter-meta"],"hasFocus":[32]},[[0,"keydown","handleKeyDown"]]],[1,"nano-menu",{"hasFocus":[2052,"has-focus"],"type":[1],"label":[1],"setFocus":[64],"removeFocus":[64],"showActiveElement":[64],"resetActiveItem":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]]]'),e)));
4
+ import{p as e,w as a,d as n,N as o,a as t,H as s,b as i}from"./p-ab5813a7.js";import"./p-11a2dcce.js";const l=e=>`__sc_import_${e.replace(/\s|-/g,"_")}`;const r=()=>{{e.o=a.__cssshim}{c(s.prototype)}const i=Array.from(n.querySelectorAll("script")).find((e=>new RegExp(`/${o}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===o));const l={};if("onbeforeload"in i&&!history.scrollRestoration){return{then(){}}}{l.resourcesUrl=new URL(".",new URL(i.getAttribute("data-resources-url")||i.src,a.location.href)).href;{d(l.resourcesUrl,i)}if(!a.customElements){return __sc_import_nano_components("./p-059a5e86.js").then((()=>l))}}return t(l)};const d=(e,t)=>{const s=l(o);try{a[s]=new Function("w",`return import(w);//${Math.random()}`)}catch(i){const o=new Map;a[s]=i=>{const l=new URL(i,e).href;let r=o.get(l);if(!r){const e=n.createElement("script");e.type="module";e.crossOrigin=t.crossOrigin;e.src=URL.createObjectURL(new Blob([`import * as m from '${l}'; window.${s}.m = m;`],{type:"application/javascript"}));r=new Promise((n=>{e.onload=()=>{n(a[s].m);e.remove()}}));o.set(l,r);n.head.appendChild(e)}return r}}};const c=e=>{const a=e.cloneNode;e.cloneNode=function(e){if(this.nodeName==="TEMPLATE"){return a.call(this,e)}const n=a.call(this,false);const o=this.childNodes;if(e){for(let e=0;e<o.length;e++){if(o[e].nodeType!==2){n.appendChild(o[e].cloneNode(true))}}}return n}};r().then((e=>i(JSON.parse('[["p-1ec44caf",[[1,"nano-global-nav",{"env":[1],"ssoRedirect":[1,"sso-redirect"],"getMyAccountData":[4,"get-my-account-data"],"activeMyAccountSections":[16],"showSearch":[4,"show-search"],"showLogo":[4,"show-logo"],"logoUrl":[1,"logo-url"],"searchIndeces":[16],"myAccountUser":[1040],"searchAppId":[1025,"search-app-id"],"searchApiKey":[1025,"search-api-key"],"searchValue":[1025,"search-value"],"searchIndex":[1025,"search-index"],"cartCount":[1026,"cart-count"],"msgCount":[1026,"msg-count"],"cartUrl":[1025,"cart-url"],"msgUrl":[1025,"msg-url"],"hasLoggedinSlot":[32],"hasSiteSlot":[32],"hasPromotionSlot":[32],"aboutSlotLen":[32],"iconSlotLen":[32],"mainSlotLen":[32],"overflowSlotLen":[32],"searchSlotLen":[32],"internalSearchIndeces":[32],"thresholdReady":[32],"remoteDataReady":[32],"ready":[32],"isResizing":[32],"intersectRatio":[32],"threshold":[32],"modalOpen":[32],"modalIsOpen":[32],"searchBarShown":[32],"scrollingUp":[32],"searchLoading":[32],"showAutocomplete":[32],"secondaryMenuOpen":[32],"userMenuOpen":[32],"menuFullScreen":[32],"searchValInternal":[32],"submitSearch":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"]]]]],["p-b59d2bd5",[[1,"nano-hero",{"imgSrc":[1,"img-src"],"imgSrcSet":[1,"img-src-set"],"largeScreenBP":[2,"large-screen-b-p"],"theme":[1],"level":[1],"gridSizes":[32],"hasIconBox":[32],"hasScrim":[32],"hasSecondaryContent":[32],"hasQuote":[32],"hasBg":[32],"hasBackBtn":[32],"hasCtas":[32],"breadCrumbs":[32],"iconBoxItems":[32]}]]],["p-7d2e2685",[[6,"nano-date-input",{"invalid":[2564],"helperText":[4,"helper-text"],"helperTextFormat":[16],"floatLabel":[4,"float-label"],"name":[1],"readonly":[4],"size":[2],"form":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"disabled":[4],"color":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"label":[1],"placeholder":[1025],"value":[1537],"validateOn":[1,"validate-on"],"showInlineError":[516,"show-inline-error"],"dateOrder":[1,"date-order"],"required":[4],"min":[1],"max":[1],"hideLabel":[4,"hide-label"],"picker":[4],"initialPickerDate":[1,"initial-picker-date"],"pickerOpen":[1540,"picker-open"],"closeAfterPicked":[4,"close-after-picked"],"pattern":[32],"inputValue":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]}]]],["p-730f60ea",[[1,"nano-dialog",{"showRibbon":[4,"show-ribbon"],"open":[1540],"label":[1],"noHeader":[4,"no-header"],"noFooter":[4,"no-footer"],"noUserDismiss":[4,"no-user-dismiss"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"isVisible":[32],"noDismiss":[32],"hasFooter":[32],"show":[64],"hide":[64]}]]],["p-d6569144",[[6,"nano-file-upload",{"name":[1],"accept":[1],"capture":[1],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"label":[1],"placeholder":[1],"hideLabel":[4,"hide-label"],"required":[4],"disabled":[516],"clearInput":[4,"clear-input"],"showInlineError":[516,"show-inline-error"],"validateOn":[1025,"validate-on"],"invalid":[2564],"files":[2064],"value":[6145],"hasHelperSlot":[32],"hasLabelSlot":[32],"errorMessage":[32],"isDragging":[32],"fileList":[32],"hasFocus":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[8,"click","globalClickHandler"],[8,"keydown","globalKeydownHandler"]]]]],["p-3456db01",[[1,"nano-alert",{"open":[1540],"closable":[516],"color":[513],"duration":[2],"isModal":[32],"isToast":[32],"isShowing":[32],"label":[32],"show":[64],"hide":[64],"toast":[64],"alert":[64]}]]],["p-1f99d776",[[1,"nano-global-search-results",{"algoliaEle":[32],"currentWidth":[32],"apiKey":[32],"appId":[32],"index":[32]},[[16,"nanoSearchReset","handleGlobalNavReset"],[16,"nanoSearchResult","handleGlobalNavSearch"],[0,"nanoChange","handleReorder"],[0,"nanoResultsShown","attachListeners"],[16,"nanoNewResults","attachResultListeners"]]]]],["p-08b43111",[[1,"nano-tab",{"panel":[513],"active":[516],"disabled":[516],"closable":[4],"setFocus":[64],"removeFocus":[64]}]]],["p-c0ddb4c3",[[1,"nano-menu-drawer",{"open":[4],"saveState":[4,"save-state"],"hideWidth":[2,"hide-width"],"hideHeight":[4,"hide-height"],"reset":[32],"widthOk":[32],"heightOk":[32],"isLoading":[32],"hide":[32]},[[0,"nanoOpen","cancelNavItemEvents"],[0,"nanoClose","cancelNavItemEvents"],[16,"nanoIsReady","handleGlobalNavReady"]]]]],["p-d9f2dda5",[[1,"nano-split-pane",{"position":[6146],"positionInPixels":[1026,"position-in-pixels"],"vertical":[516],"disabled":[516],"primary":[1],"snap":[1],"snapThreshold":[2,"snap-threshold"],"animationDuration":[2,"animation-duration"]}]]],["p-ad0715d1",[[1,"nano-tab-group",{"placement":[1],"noScrollControls":[4,"no-scroll-controls"],"color":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"disableSwipe":[4,"disable-swipe"],"hasScrollControls":[32],"hideControlRight":[32],"hideControlLeft":[32],"isLegacy":[32],"tab":[32],"show":[64]},[[0,"nanoTabClose","handleTabClose"]]]]],["p-e562bffd",[[1,"nano-accordion",{"color":[1],"itemOpened":[32]},[[0,"nanoOpened","onToggleHandler"],[0,"nanoClosed","onClosedHandler"]]]]],["p-07bdf44d",[[1,"nano-algolia-filter",{"filterName":[1,"filter-name"],"value":[1025],"operator":[1],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"changeEvent":[32],"internalValue":[32],"showFilter":[32],"indexResults":[32],"filterChanged":[32],"facets":[32],"tplRenderFn":[32],"globalStoreMethod":[32]},[[0,"nanoChange","handleChangeEvent"],[0,"change","handleChangeEvent"]]]]],["p-65c10b3f",[[1,"nano-algolia-input",{"appId":[1,"app-id"],"apiKey":[1,"api-key"],"searchIndex":[1040],"searchIndexName":[1,"search-index-name"],"minChars":[2,"min-chars"],"autoEmit":[4,"auto-emit"],"browseIndex":[1028,"browse-index"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"searchStr":[32],"algoliaIndex":[32],"currentResults":[32],"search":[64]},[[0,"nanoChange","searchSubmit"]]]]],["p-43543d18",[[1,"nano-algolia-pagination",{"maxToShow":[2,"max-to-show"],"currentPage":[32],"canGoPrev":[32],"canGoNext":[32],"show":[32],"tplRenderFn":[32],"indexResults":[32],"infiniteScroll":[32],"nextPage":[64],"prevPage":[64],"goToPage":[64]}]]],["p-50514e5e",[[1,"nano-algolia-results",{"infiniteScroll":[4,"infinite-scroll"],"appendPages":[4,"append-pages"],"showResults":[32],"tplRenderFn":[32],"results":[32],"indexResults":[32],"resultsPage":[32],"changeEvent":[32],"facets":[32],"isLoading":[32]}]]],["p-4535e3bb",[[1,"nano-aspect-ratio",{"aspectRatio":[1,"aspect-ratio"],"fit":[1]}]]],["p-20db18f3",[[6,"nano-checkbox",{"hasFocus":[1540,"has-focus"],"checked":[1540],"disabled":[516],"value":[1],"name":[1],"required":[4],"type":[513],"label":[1],"indeterminate":[1540],"invalid":[2564],"color":[1],"_invalid":[32],"inputType":[32],"getInputElement":[64],"reportValidity":[64],"setError":[64],"setFocus":[64],"removeFocus":[64]}]]],["p-f3bf942d",[[6,"nano-checkbox-group",{"validateOn":[1025,"validate-on"],"showInlineError":[4,"show-inline-error"],"min":[2],"max":[2],"disabled":[516],"legend":[1],"invalid":[2564],"checkboxes":[32],"nativeCbs":[32],"errorMessage":[32],"showErrorMsg":[32],"hasHelperSlot":[32],"reportValidity":[64]},[[0,"nanoChange","handleCbChange"]]]]],["p-e11bd40d",[[1,"nano-details",{"label":[1],"open":[1540],"noHandle":[4,"no-handle"],"iconRotation":[2,"icon-rotation"],"color":[1],"isLoading":[32]}]]],["p-394c3c19",[[1,"nano-drawer",{"open":[1540],"label":[1],"placement":[1],"contained":[4],"noHeader":[4,"no-header"],"type":[1],"contentSelector":[1,"content-selector"],"hasFooter":[32],"isVisible":[32],"show":[64],"hide":[64]}]]],["p-2e6c55e2",[[6,"nano-range",{"color":[1],"debounce":[2],"name":[1],"dualKnobs":[4,"dual-knobs"],"min":[2],"max":[2],"pin":[4],"snaps":[4],"step":[2],"ticks":[4],"disabled":[4],"value":[1026],"ratioA":[32],"ratioB":[32],"pressedKnob":[32]}]]],["p-1e974cad",[[2,"nano-rating",{"value":[1538],"max":[2],"precision":[2],"readonly":[4],"disabled":[4],"name":[1],"symbolName":[1,"symbol-name"],"symbol":[16],"hoverValue":[32],"isHovering":[32],"setFocus":[64],"removeFocus":[64]}]]],["p-70dec19f",[[1,"nano-slide",{"ready":[1540]}]]],["p-ba13bb56",[[1,"nano-slides",{"options":[1040],"navbtns":[4],"pager":[4],"fullscreenbtn":[4],"fullscreen":[1540],"animation":[513],"currentSlide":[1538,"current-slide"],"autoplay":[8],"ready":[1540],"iCurrentSlide":[32],"slidesReady":[32],"didInit":[32],"update":[64],"updateAutoHeight":[64],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"getActiveIndex":[64],"length":[64],"isEnd":[64],"isBeginning":[64],"startAutoplay":[64],"stopAutoplay":[64],"lockSwipes":[64],"getflickity":[64],"reload":[64]}]]],["p-6ade3290",[[1,"nano-tab-content",{"name":[513],"active":[516]}]]],["p-040b6cda",[[1,"nano-spinner",{"type":[1],"overlay":[516],"hasText":[32]}]]],["p-08ffc9a1",[[1,"nano-algolia",{"showResults":[1028,"show-results"],"resultsPage":[1026,"results-page"],"appId":[1025,"app-id"],"apiKey":[1025,"api-key"],"searchIndex":[1040],"searchIndexName":[1025,"search-index-name"],"listenTo":[1,"listen-to"],"query":[1025],"operator":[1],"filters":[16],"tplEngine":[16],"tplRenderFn":[16],"replicaIndex":[1025,"replica-index"],"browseIndex":[1028,"browse-index"],"minChars":[2,"min-chars"],"storeId":[1,"store-id"],"storeMethod":[1,"store-method"],"_dynFacetFilters":[32],"inputField":[32],"algoliaIndex":[32],"indeces":[32],"resultsEmitterEle":[32],"indexResults":[32],"filterChanged":[32],"currentHits":[32],"changeEvent":[32],"isLoading":[32],"wormholeState":[32],"removeFilters":[64]},[[0,"nanoTplUpdated","onAllTplUpdate"],[0,"nanoPageChanged","onPageChange"],[0,"nanoFilterChanged","onFilterChange"],[16,"nanoChange","handleInputChange"],[16,"change","handleInputChange"]]]]],["p-346588cc",[[1,"nano-date-picker",{"selectedDate":[1025,"selected-date"],"min":[1],"max":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"color":[1],"isDateDisabled":[16],"isModal":[4,"is-modal"],"firstFocusEle":[16],"activeFocus":[32],"focusedDay":[32],"setFocus":[64]}]]],["p-17bf76c4",[[1,"nano-tooltip",{"content":[1],"placement":[1],"disabled":[4],"distance":[2],"open":[1540],"skidding":[2],"trigger":[1],"show":[64],"hide":[64]}]]],["p-3aa1d07d",[[1,"nano-sticker",{"autoResize":[4,"auto-resize"],"isSticky":[1028,"is-sticky"],"offset":[1026],"position":[1],"quietMode":[1,"quiet-mode"],"hideOnNewStickers":[4,"hide-on-new-stickers"],"breakPointMax":[2,"break-point-max"],"breakPointMin":[2,"break-point-min"],"scrollParent":[1040],"stickTo":[1,"stick-to"],"isStuck":[32],"isRootSticker":[32],"hide":[32],"scrollHide":[32],"multiStickerHide":[32],"scrollingTo":[32],"quietModeIsOn":[32],"stuckCounter":[32],"stickerIndex":[32],"stickToEle":[32],"triggerPos":[32],"trigger":[32],"_offset":[32],"isHiding":[64],"isSticking":[64],"setTriggerPos":[64],"getTriggerPos":[64],"pauseHiding":[64]}]]],["p-56ba0d63",[[2,"nano-icon-button",{"iconName":[1,"icon-name"],"iconSrc":[1,"icon-src"],"type":[513],"name":[513],"value":[513],"label":[1],"disabled":[516],"href":[1],"target":[1]}]]],["p-5e7c7d3d",[[1,"nano-resize-observe",{"states":[1],"currentWidth":[32],"currentHeight":[32],"classNames":[32]}],[1,"nano-skeleton",{"animated":[4]}]]],["p-a0515a0f",[[1,"nano-dropdown",{"autoOpen":[4,"auto-open"],"open":[1540],"closeOnSelect":[4,"close-on-select"],"containingElement":[1040],"tetherTo":[16],"placement":[1],"distance":[2],"skidding":[2],"hoist":[4],"dialogTitle":[1,"dialog-title"],"show":[64],"hide":[64]},[[0,"nanoOpen","secondaryOpen"],[0,"nanoClose","secondaryClose"],[0,"nanoSelect","handlePanelSelect"]]]]],["p-a315ed2c",[[1,"nano-icon",{"color":[1],"ariaLabel":[1537,"aria-label"],"flipRtl":[4,"flip-rtl"],"name":[1],"src":[1],"icon":[8],"size":[1],"lazy":[4],"svgContent":[32],"isVisible":[32],"isLoading":[32]}]]],["p-71c26ace",[[1,"nano-datalist",{"selected":[1040],"dropDownConfig":[6160],"options":[16],"input":[1],"type":[1],"activeOptions":[2064],"open":[1028],"disableFilter":[4,"disable-filter"],"disabled":[4],"actvOptEles":[32],"connectedInput":[32],"inputLabel":[32],"hasNoResult":[32],"shouldOpen":[32],"canOpen":[32],"optionIds":[32]}],[1,"nano-option",{"value":[1537],"label":[1537],"selected":[516],"disabled":[516],"filterMeta":[1,"filter-meta"],"hasFocus":[32]},[[0,"keydown","handleKeyDown"]]],[1,"nano-menu",{"hasFocus":[2052,"has-focus"],"type":[1],"label":[1],"setFocus":[64],"removeFocus":[64],"showActiveElement":[64],"resetActiveItem":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]],["p-c954c040",[[6,"nano-select",{"invalid":[2564],"color":[1],"autofocus":[4],"disabled":[516],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"multiple":[4],"name":[1],"placeholder":[1],"readonly":[516],"required":[4],"size":[2],"max":[2],"min":[2],"form":[1],"allowCustomValues":[4,"allow-custom-values"],"value":[6145],"options":[6160],"clearSelect":[4,"clear-select"],"mask":[4],"debounce":[2],"dropDownConfig":[1040],"currInsertIndex":[32],"showErrorMsg":[32],"errorMessage":[32],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"inputSearchVal":[32],"_eOptions":[32],"reportValidity":[64],"setFocus":[64],"getSelectElement":[64],"showError":[64]},[[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]],[1,"nano-nav-item",{"href":[1025],"target":[1],"disabled":[4],"open":[1540],"selected":[516],"secondaryActiveWidth":[2,"secondary-active-width"],"secondaryFallback":[16],"closeOnBlur":[4,"close-on-blur"],"didOpen":[32],"isInGlobalNav":[32],"isInMenuDrawer":[32],"isInMenu":[32],"isLegacy":[32],"hasFocus":[32],"setFocus":[64]}]]],["p-2559e9c1",[[6,"nano-input",{"invalid":[2564],"color":[1],"accept":[1],"autocapitalise":[1],"autocomplete":[1],"autocorrect":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"clearOnEdit":[4,"clear-on-edit"],"debounce":[2],"disabled":[516],"inputmode":[1],"validateOn":[1025,"validate-on"],"showInlineError":[516,"show-inline-error"],"label":[1],"hideLabel":[4,"hide-label"],"floatLabel":[4,"float-label"],"max":[1],"maxlength":[2],"min":[1],"minlength":[2],"multiple":[4],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[516],"required":[4],"spellcheck":[4],"step":[1],"size":[2],"type":[1],"form":[1],"value":[1025],"resize":[1],"rows":[2],"showCharCount":[4,"show-char-count"],"hasFocus":[32],"hasLabelSlot":[32],"hasHelperSlot":[32],"errorMessage":[32],"datalist":[32],"_invalid":[32],"reportValidity":[64],"setFocus":[64],"getInputElement":[64],"showError":[64]},[[16,"reset","onReset"],[17,"mousedown","handleBlur"],[0,"keydown","handleBlur"]]]]],["p-462ad4f1",[[1,"nano-img",{"alt":[1],"src":[1],"srcSet":[1,"src-set"],"lazy":[4],"background":[4],"autoHeight":[1,"auto-height"],"loadSrc":[32],"loadError":[32],"hasLoaded":[32],"imgStates":[32],"_src":[32]}],[1,"nano-grid",{"sSize":[2,"s-size"],"mSize":[2,"m-size"],"lSize":[2,"l-size"],"xlSize":[2,"xl-size"],"sCols":[2,"s-cols"],"mCols":[2,"m-cols"],"lCols":[2,"l-cols"],"xlCols":[2,"xl-cols"],"xxlCols":[2,"xxl-cols"],"showHelper":[516,"show-helper"],"contentPanel":[516,"content-panel"],"fullHeight":[516,"full-height"],"ready":[32],"isSmall":[32],"isMedium":[32],"isLarge":[32],"isXL":[32],"isXXL":[32]}],[1,"nano-grid-item",{"gridStates":[1,"grid-states"],"changeBP":[64]}]]]]'),e)));
5
5
  //# sourceMappingURL=nano-components.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"names":["getDynamicImportFunction","namespace","replace","patchBrowser","plt","$cssShim$","win","__cssshim","patchCloneNodeFix","H","prototype","scriptElm","Array","from","doc","querySelectorAll","find","s","RegExp","NAMESPACE","test","src","getAttribute","opts","history","scrollRestoration","[object Object]","resourcesUrl","URL","location","href","patchDynamicImport","customElements","__sc_import_nano_components","then","promiseResolve","base","orgScriptElm","importFunctionName","Function","Math","random","e","moduleMap","Map","url","mod","get","script","createElement","type","crossOrigin","createObjectURL","Blob","Promise","resolve","onload","m","remove","set","head","appendChild","HTMLElementPrototype","nativeCloneNodeFn","cloneNode","deep","this","nodeName","call","clonedNode","srcChildNodes","childNodes","i","length","nodeType","options","bootstrapLazy","JSON","parse"],"mappings":";;;sGAKA,MAAMA,EAA4BC,GAAc,eAAeA,EAAUC,QAAQ,QAAS,OAC1F,MAAMC,EAAe,KAKK,CAElBC,EAAIC,EAAYC,EAAIC,UAEA,CAEpBC,EAAkBC,EAAEC,WAUxB,MAAMC,EACAC,MAAMC,KAAKC,EAAIC,iBAAiB,WAAWC,MAAMC,GAAM,IAAIC,OAAO,IAAKC,4BAAoCC,KAAKH,EAAEI,MAChHJ,EAAEK,aAAa,4BAA8BH,IAGrD,MAAMI,EAA6D,GACnE,GAAsB,iBAAkBZ,IAAca,QAAQC,kBAAsC,CAQhG,MAAO,CACHC,UAQ4C,CAChDH,EAAKI,aAAe,IAAIC,IAAI,IAAK,IAAIA,IAAIjB,EAAUW,aAAa,uBAAyBX,EAAUU,IAAKf,EAAIuB,SAASC,OAAOA,KAC/F,CACzBC,EAAmBR,EAAKI,aAAchB,GAE1C,IAAgCL,EAAI0B,eAAgB,CAGhD,OAAOC,4BAA+C,mBAAYC,MAAK,IAAMX,KAGrF,OAAOY,EAAeZ,IAE1B,MAAMQ,EAAqB,CAACK,EAAMC,KAC9B,MAAMC,EAAqBtC,EAAyBmB,GACpD,IAKIb,EAAIgC,GAAsB,IAAIC,SAAS,IAAK,sBAAsBC,KAAKC,YAE3E,MAAOC,GAIH,MAAMC,EAAY,IAAIC,IACtBtC,EAAIgC,GAAuBjB,IACvB,MAAMwB,EAAM,IAAIjB,IAAIP,EAAKe,GAAMN,KAC/B,IAAIgB,EAAMH,EAAUI,IAAIF,GACxB,IAAKC,EAAK,CACN,MAAME,EAASlC,EAAImC,cAAc,UACjCD,EAAOE,KAAO,SACdF,EAAOG,YAAcd,EAAac,YAClCH,EAAO3B,IAAMO,IAAIwB,gBAAgB,IAAIC,KAAK,CAAC,uBAAuBR,cAAgBP,YAA8B,CAC5GY,KAAM,4BAEVJ,EAAM,IAAIQ,SAASC,IACfP,EAAOQ,OAAS,KACZD,EAAQjD,EAAIgC,GAAoBmB,GAChCT,EAAOU,aAGff,EAAUgB,IAAId,EAAKC,GACnBhC,EAAI8C,KAAKC,YAAYb,GAEzB,OAAOF,KAInB,MAAMtC,EAAqBsD,IACvB,MAAMC,EAAoBD,EAAqBE,UAC/CF,EAAqBE,UAAY,SAAUC,GACvC,GAAIC,KAAKC,WAAa,WAAY,CAC9B,OAAOJ,EAAkBK,KAAKF,KAAMD,GAExC,MAAMI,EAAaN,EAAkBK,KAAKF,KAAM,OAChD,MAAMI,EAAgBJ,KAAKK,WAC3B,GAAIN,EAAM,CACN,IAAK,IAAIO,EAAI,EAAGA,EAAIF,EAAcG,OAAQD,IAAK,CAE3C,GAAIF,EAAcE,GAAGE,WAAa,EAAG,CACjCL,EAAWR,YAAYS,EAAcE,GAAGR,UAAU,SAI9D,OAAOK,ICjHflE,IAAe+B,MAAKyC,GAEXC,EAAcC,KAAAC,MAAA,umdAAuCH","sourcesContent":["/*\n Stencil Client Patch Browser v2.12.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cssVarShim) {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"]}
1
+ {"version":3,"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"names":["getDynamicImportFunction","namespace","replace","patchBrowser","plt","$cssShim$","win","__cssshim","patchCloneNodeFix","H","prototype","scriptElm","Array","from","doc","querySelectorAll","find","s","RegExp","NAMESPACE","test","src","getAttribute","opts","history","scrollRestoration","[object Object]","resourcesUrl","URL","location","href","patchDynamicImport","customElements","__sc_import_nano_components","then","promiseResolve","base","orgScriptElm","importFunctionName","Function","Math","random","e","moduleMap","Map","url","mod","get","script","createElement","type","crossOrigin","createObjectURL","Blob","Promise","resolve","onload","m","remove","set","head","appendChild","HTMLElementPrototype","nativeCloneNodeFn","cloneNode","deep","this","nodeName","call","clonedNode","srcChildNodes","childNodes","i","length","nodeType","options","bootstrapLazy","JSON","parse"],"mappings":";;;sGAKA,MAAMA,EAA4BC,GAAc,eAAeA,EAAUC,QAAQ,QAAS,OAC1F,MAAMC,EAAe,KAKK,CAElBC,EAAIC,EAAYC,EAAIC,UAEA,CAEpBC,EAAkBC,EAAEC,WAUxB,MAAMC,EACAC,MAAMC,KAAKC,EAAIC,iBAAiB,WAAWC,MAAMC,GAAM,IAAIC,OAAO,IAAKC,4BAAoCC,KAAKH,EAAEI,MAChHJ,EAAEK,aAAa,4BAA8BH,IAGrD,MAAMI,EAA6D,GACnE,GAAsB,iBAAkBZ,IAAca,QAAQC,kBAAsC,CAQhG,MAAO,CACHC,UAQ4C,CAChDH,EAAKI,aAAe,IAAIC,IAAI,IAAK,IAAIA,IAAIjB,EAAUW,aAAa,uBAAyBX,EAAUU,IAAKf,EAAIuB,SAASC,OAAOA,KAC/F,CACzBC,EAAmBR,EAAKI,aAAchB,GAE1C,IAAgCL,EAAI0B,eAAgB,CAGhD,OAAOC,4BAA+C,mBAAYC,MAAK,IAAMX,KAGrF,OAAOY,EAAeZ,IAE1B,MAAMQ,EAAqB,CAACK,EAAMC,KAC9B,MAAMC,EAAqBtC,EAAyBmB,GACpD,IAKIb,EAAIgC,GAAsB,IAAIC,SAAS,IAAK,sBAAsBC,KAAKC,YAE3E,MAAOC,GAIH,MAAMC,EAAY,IAAIC,IACtBtC,EAAIgC,GAAuBjB,IACvB,MAAMwB,EAAM,IAAIjB,IAAIP,EAAKe,GAAMN,KAC/B,IAAIgB,EAAMH,EAAUI,IAAIF,GACxB,IAAKC,EAAK,CACN,MAAME,EAASlC,EAAImC,cAAc,UACjCD,EAAOE,KAAO,SACdF,EAAOG,YAAcd,EAAac,YAClCH,EAAO3B,IAAMO,IAAIwB,gBAAgB,IAAIC,KAAK,CAAC,uBAAuBR,cAAgBP,YAA8B,CAC5GY,KAAM,4BAEVJ,EAAM,IAAIQ,SAASC,IACfP,EAAOQ,OAAS,KACZD,EAAQjD,EAAIgC,GAAoBmB,GAChCT,EAAOU,aAGff,EAAUgB,IAAId,EAAKC,GACnBhC,EAAI8C,KAAKC,YAAYb,GAEzB,OAAOF,KAInB,MAAMtC,EAAqBsD,IACvB,MAAMC,EAAoBD,EAAqBE,UAC/CF,EAAqBE,UAAY,SAAUC,GACvC,GAAIC,KAAKC,WAAa,WAAY,CAC9B,OAAOJ,EAAkBK,KAAKF,KAAMD,GAExC,MAAMI,EAAaN,EAAkBK,KAAKF,KAAM,OAChD,MAAMI,EAAgBJ,KAAKK,WAC3B,GAAIN,EAAM,CACN,IAAK,IAAIO,EAAI,EAAGA,EAAIF,EAAcG,OAAQD,IAAK,CAE3C,GAAIF,EAAcE,GAAGE,WAAa,EAAG,CACjCL,EAAWR,YAAYS,EAAcE,GAAGR,UAAU,SAI9D,OAAOK,ICjHflE,IAAe+B,MAAKyC,GAEXC,EAAcC,KAAAC,MAAA,81dAAuCH","sourcesContent":["/*\n Stencil Client Patch Browser v2.12.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cssVarShim) {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
- import{r as t,c as a,h as i,e as n,g as e}from"./p-ab5813a7.js";const o=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));--padding:0.75rem 1rem;--bg-rgb:var(--nano-layer-bg-rgb, 255, 255, 255);--active-bg:rgba(var(--bg-rgb), 1);--inactive-bg:rgba(var(--bg-rgb), 0.7);--disabled-bg-rgb:var(--bg-rgb);--text-color:#007495;--disabled-text-color:#455556;--active-text-color:#0c5a71;--h-font-size:0.93em;--v-font-size:0.875em;--tab-spacing:0.5rem;--tab-divider-size:0;--tab-divider-color:#90c6e7;--tab-indicator-size:5px;display:inline-block}:host([direction=vertical]){--padding:1rem}:host([direction=vertical]) .nanotab{font-size:var(--v-font-size)}:host([direction=vertical]) .nanotab.nanotab--active{font-weight:600;color:var(--active-text-color)}:host([direction=horizontal]) .nanotab{font-size:var(--h-font-size);margin-top:var(--tab-indicator-size);border-right:solid var(--tab-divider-size) var(--tab-divider-color)}:host([direction=horizontal]) .nanotab.nanotab--active{margin-top:0;border-top:solid var(--tab-indicator-size) var(--tab-indicator-color);background:var(--active-bg);color:var(--active-text-color)}.nanotab{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-right:var(--tab-spacing);padding:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:auto;background:var(--inactive-bg);border-radius:var(--border-radius) var(--border-radius) 0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;overflow:visible;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab{margin-right:unset;-webkit-margin-end:var(--tab-spacing);margin-inline-end:var(--tab-spacing)}}.nanotab ::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host(:last-of-type) .nanotab{margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(:last-of-type) .nanotab{margin-right:unset;-webkit-margin-end:0;margin-inline-end:0}}.nanotab:hover:not(.tab--disabled){text-shadow:0 0 0.01px var(--text-color)}.nanotab:focus{outline:none;outline-style:none;-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.nanotab:focus:not(.nanotab--disabled){-webkit-box-shadow:var(--focus-shadow) inset;box-shadow:var(--focus-shadow) inset}.nanotab--disabled{background:rgba(var(--disabled-bg-rgb), 1);opacity:0.5;cursor:not-allowed;color:var(--disabled-text-color)}.nanotab__close-button{margin-left:var(--nano-spacing-small, 8px);--padding:var(--nano-spacing-xsmall, 4px) !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab__close-button{margin-left:unset;-webkit-margin-start:var(--nano-spacing-small, 8px);margin-inline-start:var(--nano-spacing-small, 8px);}}";let r=0;let s=class{constructor(i){t(this,i);this.nanoTabClose=a(this,"nanoTabClose",7);this.tabId=`nano-tab-${++r}`;this.panel="";this.active=false;this.disabled=false;this.closable=false;this.handleCloseClick=()=>{this.nanoTabClose.emit()}}async setFocus(){this.tab.focus({preventScroll:true})}async removeFocus(){this.tab.blur()}render(){return i(n,{id:this.host.id||this.tabId},i("div",{part:"base",ref:t=>this.tab=t,class:{nanotab:true,"nanotab--active":this.active,"nanotab--disabled":this.disabled,"nanotab--closable":this.closable},role:"tab","aria-disabled":this.disabled?"true":"false","aria-selected":this.active?"true":"false",tabindex:this.disabled||!this.active?"-1":"0"},i("slot",null),this.closable&&i("nano-icon-button",{label:"Close this tab",iconName:"light/times",class:"nanotab__close-button",onClick:this.handleCloseClick,tabIndex:-1,"aria-hidden":"true"})))}get host(){return e(this)}};s.style=o;export{s as nano_tab};
5
- //# sourceMappingURL=p-e35eac75.entry.js.map
4
+ import{r as t,c as a,h as i,e as n,g as e}from"./p-ab5813a7.js";const o=":host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{--focus-shadow:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));--padding:0.75rem 1rem;--bg-rgb:var(--nano-layer-bg-rgb, 255, 255, 255);--active-bg:rgba(var(--bg-rgb), 1);--inactive-bg:rgba(var(--bg-rgb), 0.7);--disabled-bg-rgb:var(--bg-rgb);--text-color:#007495;--disabled-text-color:#455556;--active-text-color:#0c5a71;--h-font-size:0.93em;--v-font-size:0.875em;--tab-spacing:0.5rem;--tab-divider-size:0;--tab-divider-color:#90c6e7;--tab-indicator-size:5px;display:inline-block}:host([direction=vertical]){--padding:1rem}:host([direction=vertical]) .nanotab{font-size:var(--v-font-size)}:host([direction=vertical]) .nanotab.nanotab--active{font-weight:600;color:var(--active-text-color)}:host([direction=horizontal]) .nanotab{font-size:var(--h-font-size);margin-top:var(--tab-indicator-size);border-right:solid var(--tab-divider-size) var(--tab-divider-color)}:host([direction=horizontal]) .nanotab.nanotab--active{margin-top:0;border-top:solid var(--tab-indicator-size) var(--tab-indicator-color);background:var(--active-bg);color:var(--active-text-color)}.nanotab{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-right:var(--tab-spacing);padding:var(--padding);display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;width:auto;background:var(--inactive-bg);border-radius:var(--border-radius) var(--border-radius) 0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;overflow:visible;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab{margin-right:unset;-webkit-margin-end:var(--tab-spacing);margin-inline-end:var(--tab-spacing)}}.nanotab ::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host(:last-of-type) .nanotab{margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(:last-of-type) .nanotab{margin-right:unset;-webkit-margin-end:0;margin-inline-end:0}}.nanotab:hover:not(.tab--disabled){text-shadow:0 0 0.01px var(--text-color)}.nanotab:focus{outline:none;outline-style:none;-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.nanotab:focus:not(.nanotab--disabled){-webkit-box-shadow:var(--focus-shadow) inset;box-shadow:var(--focus-shadow) inset}.nanotab--disabled{background:rgba(var(--disabled-bg-rgb), 1);opacity:0.5;cursor:not-allowed;color:var(--disabled-text-color)}.nanotab__close-button{margin-left:var(--nano-spacing-small, 8px);--padding:var(--nano-spacing-xsmall, 4px) !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.nanotab__close-button{margin-left:unset;-webkit-margin-start:var(--nano-spacing-small, 8px);margin-inline-start:var(--nano-spacing-small, 8px);}}";let r=0;let s=class{constructor(i){t(this,i);this.nanoTabClose=a(this,"nanoTabClose",7);this.tabId=`nano-tab-${++r}`;this.panel="";this.active=false;this.disabled=false;this.closable=false;this.handleCloseClick=()=>{this.nanoTabClose.emit()}}async setFocus(){this.tab.focus({preventScroll:true})}async removeFocus(){this.tab.blur()}render(){return i(n,{id:this.host.id||this.tabId},i("div",{part:"base",ref:t=>this.tab=t,class:{nanotab:true,"nanotab--active":this.active,"nanotab--disabled":this.disabled,"nanotab--closable":this.closable},role:"tab","aria-disabled":this.disabled?"true":"false","aria-selected":this.active?"true":"false",tabindex:this.disabled||!this.active?"-1":"0"},i("slot",null),this.closable&&i("nano-icon-button",{label:"Close this tab",iconName:"light/times",class:"nanotab__close-button",onClick:this.handleCloseClick,tabIndex:-1})))}get host(){return e(this)}};s.style=o;export{s as nano_tab};
5
+ //# sourceMappingURL=p-08b43111.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/tabs/tab.scss?tag=nano-tab&encapsulation=shadow","src/components/tabs/tab.tsx"],"names":["tabCss","id","Tab","[object Object]","hostRef","this","tabId","panel","active","disabled","closable","handleCloseClick","nanoTabClose","emit","tab","focus","preventScroll","blur","h","Host","host","part","ref","el","class","nanotab","nanotab--active","nanotab--disabled","nanotab--closable","role","aria-disabled","aria-selected","tabindex","label","iconName","onClick","tabIndex"],"mappings":";;;gEAAA,MAAMA,EAAS,gvGCYf,IAAIC,EAAK,MAWIC,EAAG,MALhBC,YAAAC,wDAMUC,KAAAC,MAAQ,cAAcL,IAMLI,KAAAE,MAAQ,GAGRF,KAAAG,OAAS,MAGTH,KAAAI,SAAW,MAG5BJ,KAAAK,SAAW,MAiBXL,KAAAM,iBAAmB,KACzBN,KAAKO,aAAaC,QAXpBV,iBACEE,KAAKS,IAAIC,MAAM,CAAEC,cAAe,OAKlCb,oBACEE,KAAKS,IAAIG,OAOXd,SACE,OACEe,EAACC,EAAI,CAAClB,GAAII,KAAKe,KAAKnB,IAAMI,KAAKC,OAC7BY,EAAA,MAAA,CACEG,KAAK,OACLC,IAAMC,GAAQlB,KAAKS,IAAMS,EACzBC,MAAO,CACLC,QAAS,KACTC,kBAAmBrB,KAAKG,OACxBmB,oBAAqBtB,KAAKI,SAC1BmB,oBAAqBvB,KAAKK,UAE5BmB,KAAK,MAAKC,gBACKzB,KAAKI,SAAW,OAAS,QAAOsB,gBAChC1B,KAAKG,OAAS,OAAS,QACtCwB,SAAU3B,KAAKI,WAAaJ,KAAKG,OAAS,KAAO,KAEjDU,EAAA,OAAA,MACCb,KAAKK,UACJQ,EAAA,mBAAA,CACEe,MAAM,iBACNC,SAAS,cACTV,MAAM,wBACNW,QAAS9B,KAAKM,iBACdyB,UAAW","sourcesContent":["@use 'sass:map';\n@use 'sass:list';\n\n@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import '../../global/style/nano-theme/base';\n@import '../../global/style/nano-theme/layers';\n\n/**\n * @prop --focus-shadow: Defaults to #{$control-focus-style};\n\n * @prop --padding: Defaults to .75rem 1rem on placement 'top' and 1rem on placement 'start';\n\n * @prop --bg-rgb: Defaults to #{$layer-bg-color-rgb};\n * @prop --active-bg: Defaults to rgba(var(--bg-rgb), 1);\n * @prop --disabled-bg-rgb: Defaults to var(--bg-rgb);\n * @prop --inactive-bg: Defaults to rgba(var(--bg-rgb), 0.7);\n\n * @prop --text-color: Defaults to #{map.get($colors, blue)};\n * @prop --disabled-text-color: Defaults to #{map.get($colors, darkgrey)};\n * @prop --active-text-color: Defaults to #{map.get($colors, darkblue)};\n\n * @prop --h-font-size: Defaults to .93em;\n * @prop --v-font-size: Defaults to .875em;\n * @prop --tab-spacing: Gap between tabs. Defaults to 1rem;\n * @prop --tab-divider-size: Defaults to 0;\n * @prop --tab-divider-color: Defaults to #{map.get($colors, lightblue)};\n */\n\n:host {\n --focus-shadow: #{$control-focus-style};\n --padding: 0.75rem 1rem;\n --bg-rgb: #{$layer-bg-color-rgb};\n --active-bg: rgba(var(--bg-rgb), 1);\n --inactive-bg: rgba(var(--bg-rgb), 0.7);\n --disabled-bg-rgb: var(--bg-rgb);\n --text-color: #{map.get($colors, blue)};\n --disabled-text-color: #{map.get($colors, darkgrey)};\n --active-text-color: #{map.get($colors, darkblue)};\n --h-font-size: 0.93em;\n --v-font-size: 0.875em;\n --tab-spacing: 0.5rem;\n --tab-divider-size: 0;\n --tab-divider-color: #{map.get($colors, lightblue)};\n --tab-indicator-size: 5px;\n\n display: inline-block;\n}\n\n:host([direction='vertical']) {\n --padding: 1rem;\n\n .nanotab {\n font-size: var(--v-font-size);\n\n &.nanotab--active {\n font-weight: 600;\n color: var(--active-text-color);\n }\n }\n}\n\n:host([direction='horizontal']) {\n .nanotab {\n font-size: var(--h-font-size);\n margin-top: var(--tab-indicator-size);\n border-right: solid var(--tab-divider-size) var(--tab-divider-color);\n\n &.nanotab--active {\n margin-top: 0;\n border-top: solid var(--tab-indicator-size) var(--tab-indicator-color);\n background: var(--active-bg);\n color: var(--active-text-color);\n }\n }\n}\n\n.nanotab {\n @include text-inherit();\n @include margin(null, var(--tab-spacing), null, null);\n\n padding: var(--padding);\n display: flex;\n height: 100%;\n width: auto;\n background: var(--inactive-bg);\n border-radius: var(--border-radius) var(--border-radius) 0 0;\n user-select: none;\n cursor: pointer;\n overflow: visible;\n white-space: nowrap;\n align-items: center;\n\n & ::slotted(*) {\n display: flex;\n align-items: center;\n }\n\n :host(:last-of-type) & {\n @include margin(null, 0, null, null);\n }\n\n &:hover:not(.tab--disabled) {\n text-shadow: 0 0 0.01px var(--text-color);\n }\n\n &:focus {\n outline: none;\n outline-style: none;\n box-shadow: none;\n border-color: transparent;\n }\n\n &:focus:not(.nanotab--disabled) {\n box-shadow: var(--focus-shadow) inset;\n }\n\n &--disabled {\n background: rgba(var(--disabled-bg-rgb), 1);\n opacity: 0.5;\n cursor: not-allowed;\n color: var(--disabled-text-color);\n }\n\n &__close-button {\n @include margin(null, null, null, #{$spacing-small});\n\n --padding: #{$spacing-xsmall} !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n ComponentInterface,\n Method,\n Prop,\n h,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nlet id = 0;\n\n/**\n * @slot - The tab's label.\n */\n\n@Component({\n tag: 'nano-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab implements ComponentInterface {\n private tabId = `nano-tab-${++id}`;\n private tab: HTMLElement;\n\n @Element() host: HTMLNanoTabElement;\n\n /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */\n @Prop({ reflect: true }) panel = '';\n\n /** The active, selected tab. If none active, the first will automatically be selected. */\n @Prop({ reflect: true }) active = false;\n\n /** Set to true to draw the tab in an active state. */\n @Prop({ reflect: true }) disabled = false;\n\n /** When true, the tab will be rendered with a close icon. */\n @Prop() closable = false;\n\n /** Emitted when the tab is closable and the close button is activated. */\n @Event() nanoTabClose: EventEmitter;\n\n /** Sets focus to the tab. */\n @Method()\n async setFocus() {\n this.tab.focus({ preventScroll: true });\n }\n\n /** Removes focus from the tab. */\n @Method()\n async removeFocus() {\n this.tab.blur();\n }\n\n private handleCloseClick = () => {\n this.nanoTabClose.emit();\n };\n\n render() {\n return (\n <Host id={this.host.id || this.tabId}>\n <div\n part=\"base\"\n ref={(el) => (this.tab = el)}\n class={{\n nanotab: true,\n 'nanotab--active': this.active,\n 'nanotab--disabled': this.disabled,\n 'nanotab--closable': this.closable,\n }}\n role=\"tab\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.disabled || !this.active ? '-1' : '0'}\n >\n <slot />\n {this.closable && (\n <nano-icon-button\n label=\"Close this tab\"\n iconName=\"light/times\"\n class=\"nanotab__close-button\"\n onClick={this.handleCloseClick}\n tabIndex={-1}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}