xv-webcomponents 0.1.26 → 0.1.28

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 (204) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  3. package/dist/cjs/index-782b9733.js +1535 -0
  4. package/dist/cjs/index-782b9733.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +11 -0
  6. package/dist/cjs/index.cjs.js.map +1 -0
  7. package/dist/cjs/loader.cjs.js +17 -0
  8. package/dist/cjs/loader.cjs.js.map +1 -0
  9. package/dist/cjs/utils-aa46f72a.js +50 -0
  10. package/dist/cjs/utils-aa46f72a.js.map +1 -0
  11. package/dist/cjs/xv-accordion-v2_27.cjs.entry.js +1358 -0
  12. package/dist/cjs/xv-accordion-v2_27.cjs.entry.js.map +1 -0
  13. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +22 -0
  14. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js.map +1 -0
  15. package/dist/cjs/xv-webcomponents.cjs.js +27 -0
  16. package/dist/cjs/xv-webcomponents.cjs.js.map +1 -0
  17. package/dist/collection/assets/fonts/fontawesome5/fa-brands-400.svg +3717 -0
  18. package/dist/collection/assets/fonts/fontawesome5/fa-duotone-900.svg +15326 -0
  19. package/dist/collection/assets/fonts/fontawesome5/fa-light-300.svg +12420 -0
  20. package/dist/collection/assets/fonts/fontawesome5/fa-regular-400.svg +11323 -0
  21. package/dist/collection/assets/fonts/fontawesome5/fa-solid-900.svg +9653 -0
  22. package/dist/collection/collection-manifest.json +39 -0
  23. package/dist/collection/components/xv-accordion/xv-accordion.css +3 -0
  24. package/dist/collection/components/xv-accordion/xv-accordion.js +163 -0
  25. package/dist/collection/components/xv-accordion/xv-accordion.js.map +1 -0
  26. package/dist/collection/components/xv-accordion-item/xv-accordion-item.css +68 -0
  27. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +132 -0
  28. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js.map +1 -0
  29. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.css +3 -0
  30. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +19 -0
  31. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js.map +1 -0
  32. package/dist/collection/components/xv-button/xv-button-v2.css +154 -0
  33. package/dist/collection/components/xv-button/xv-button.js +138 -0
  34. package/dist/collection/components/xv-button/xv-button.js.map +1 -0
  35. package/dist/collection/components/xv-card/xv-card.css +63 -0
  36. package/dist/collection/components/xv-card/xv-card.js +122 -0
  37. package/dist/collection/components/xv-card/xv-card.js.map +1 -0
  38. package/dist/collection/components/xv-checkbox/xv-checkbox.css +132 -0
  39. package/dist/collection/components/xv-checkbox/xv-checkbox.js +402 -0
  40. package/dist/collection/components/xv-checkbox/xv-checkbox.js.map +1 -0
  41. package/dist/collection/components/xv-dropdown/_vars.js +2 -0
  42. package/dist/collection/components/xv-dropdown/_vars.js.map +1 -0
  43. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.css +14 -0
  44. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +151 -0
  45. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js.map +1 -0
  46. package/dist/collection/components/xv-dropdown/xv-dropdown.css +227 -0
  47. package/dist/collection/components/xv-dropdown/xv-dropdown.js +340 -0
  48. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -0
  49. package/dist/collection/components/xv-footer/xv-footer.css +230 -0
  50. package/dist/collection/components/xv-footer/xv-footer.js +37 -0
  51. package/dist/collection/components/xv-footer/xv-footer.js.map +1 -0
  52. package/dist/collection/components/xv-header/xv-header.css +22587 -0
  53. package/dist/collection/components/xv-header/xv-header.js +46 -0
  54. package/dist/collection/components/xv-header/xv-header.js.map +1 -0
  55. package/dist/collection/components/xv-link/xv-link.css +61 -0
  56. package/dist/collection/components/xv-link/xv-link.js +132 -0
  57. package/dist/collection/components/xv-link/xv-link.js.map +1 -0
  58. package/dist/collection/components/xv-loader/xv-loader.css +65 -0
  59. package/dist/collection/components/xv-loader/xv-loader.js +106 -0
  60. package/dist/collection/components/xv-loader/xv-loader.js.map +1 -0
  61. package/dist/collection/components/xv-modal/xv-modal.css +98 -0
  62. package/dist/collection/components/xv-modal/xv-modal.js +202 -0
  63. package/dist/collection/components/xv-modal/xv-modal.js.map +1 -0
  64. package/dist/collection/components/xv-notification/_vars.js +8 -0
  65. package/dist/collection/components/xv-notification/_vars.js.map +1 -0
  66. package/dist/collection/components/xv-notification/xv-notification.css +112 -0
  67. package/dist/collection/components/xv-notification/xv-notification.js +118 -0
  68. package/dist/collection/components/xv-notification/xv-notification.js.map +1 -0
  69. package/dist/collection/components/xv-overflow-menu/_vars.js +6 -0
  70. package/dist/collection/components/xv-overflow-menu/_vars.js.map +1 -0
  71. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.css +45 -0
  72. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +137 -0
  73. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js.map +1 -0
  74. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +102 -0
  75. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +202 -0
  76. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js.map +1 -0
  77. package/dist/collection/components/xv-progress-indicator/_vars.js +12 -0
  78. package/dist/collection/components/xv-progress-indicator/_vars.js.map +1 -0
  79. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.css +96 -0
  80. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +54 -0
  81. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js.map +1 -0
  82. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.css +45 -0
  83. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +157 -0
  84. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js.map +1 -0
  85. package/dist/collection/components/xv-table/defs.js +28 -0
  86. package/dist/collection/components/xv-table/defs.js.map +1 -0
  87. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.css +13 -0
  88. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.js +111 -0
  89. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.js.map +1 -0
  90. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.css +116 -0
  91. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +199 -0
  92. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js.map +1 -0
  93. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.css +80 -0
  94. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.js +172 -0
  95. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.js.map +1 -0
  96. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +46 -0
  97. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +275 -0
  98. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +1 -0
  99. package/dist/collection/components/xv-table/xv-table-toolbar/xv-table-toolbar.css +47 -0
  100. package/dist/collection/components/xv-table/xv-table-toolbar/xv-table-toolbar.js +78 -0
  101. package/dist/collection/components/xv-table/xv-table-toolbar/xv-table-toolbar.js.map +1 -0
  102. package/dist/collection/components/xv-table/xv-table.css +165 -0
  103. package/dist/collection/components/xv-table/xv-table.js +284 -0
  104. package/dist/collection/components/xv-table/xv-table.js.map +1 -0
  105. package/dist/collection/components/xv-tabs/_vars.js +11 -0
  106. package/dist/collection/components/xv-tabs/_vars.js.map +1 -0
  107. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +3 -0
  108. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +65 -0
  109. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js.map +1 -0
  110. package/dist/collection/components/xv-tabs/xv-tabs.css +79 -0
  111. package/dist/collection/components/xv-tabs/xv-tabs.js +158 -0
  112. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -0
  113. package/dist/collection/components/xv-tag/xv-tag.css +97 -0
  114. package/dist/collection/components/xv-tag/xv-tag.js +158 -0
  115. package/dist/collection/components/xv-tag/xv-tag.js.map +1 -0
  116. package/dist/collection/components/xv-tooltip/xv-tooltip.css +154 -0
  117. package/dist/collection/components/xv-tooltip/xv-tooltip.js +70 -0
  118. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -0
  119. package/dist/collection/index.js +11 -0
  120. package/dist/collection/index.js.map +1 -0
  121. package/dist/collection/scss/xv/images/xv-sprite.svg +1 -0
  122. package/dist/collection/scss/xv/sprite/images/xv-sprite.svg +1 -0
  123. package/dist/collection/types/enum.js +9 -0
  124. package/dist/collection/types/enum.js.map +1 -0
  125. package/dist/collection/utils/utils.js +46 -0
  126. package/dist/collection/utils/utils.js.map +1 -0
  127. package/dist/esm/app-globals-0f993ce5.js +5 -0
  128. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  129. package/dist/esm/index-83ab73b7.js +1506 -0
  130. package/dist/esm/index-83ab73b7.js.map +1 -0
  131. package/dist/esm/index.js +3 -0
  132. package/dist/esm/index.js.map +1 -0
  133. package/dist/esm/loader.js +13 -0
  134. package/dist/esm/loader.js.map +1 -0
  135. package/dist/esm/utils-0d1c18d5.js +44 -0
  136. package/dist/esm/utils-0d1c18d5.js.map +1 -0
  137. package/dist/esm/xv-accordion-v2_27.entry.js +1328 -0
  138. package/dist/esm/xv-accordion-v2_27.entry.js.map +1 -0
  139. package/dist/esm/xv-breadcrumbs-v2.entry.js +18 -0
  140. package/dist/esm/xv-breadcrumbs-v2.entry.js.map +1 -0
  141. package/dist/esm/xv-webcomponents.js +22 -0
  142. package/dist/esm/xv-webcomponents.js.map +1 -0
  143. package/dist/index.cjs.js +1 -0
  144. package/dist/index.js +1 -0
  145. package/dist/types/components/xv-accordion/xv-accordion.d.ts +20 -0
  146. package/dist/types/components/xv-accordion-item/xv-accordion-item.d.ts +15 -0
  147. package/dist/types/components/xv-breadcrumbs/xv-breadcrumbs.d.ts +3 -0
  148. package/dist/types/components/xv-button/xv-button.d.ts +16 -0
  149. package/dist/types/components/xv-card/xv-card.d.ts +8 -0
  150. package/dist/types/components/xv-checkbox/xv-checkbox.d.ts +74 -0
  151. package/dist/types/components/xv-dropdown/_vars.d.ts +5 -0
  152. package/dist/types/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.d.ts +17 -0
  153. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +28 -0
  154. package/dist/types/components/xv-footer/xv-footer.d.ts +6 -0
  155. package/dist/types/components/xv-header/xv-header.d.ts +6 -0
  156. package/dist/types/components/xv-link/xv-link.d.ts +9 -0
  157. package/dist/types/components/xv-loader/xv-loader.d.ts +16 -0
  158. package/dist/types/components/xv-modal/xv-modal.d.ts +26 -0
  159. package/dist/types/components/xv-notification/_vars.d.ts +6 -0
  160. package/dist/types/components/xv-notification/xv-notification.d.ts +11 -0
  161. package/dist/types/components/xv-overflow-menu/_vars.d.ts +8 -0
  162. package/dist/types/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.d.ts +10 -0
  163. package/dist/types/components/xv-overflow-menu/xv-overflow-menu.d.ts +21 -0
  164. package/dist/types/components/xv-progress-indicator/_vars.d.ts +9 -0
  165. package/dist/types/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.d.ts +6 -0
  166. package/dist/types/components/xv-progress-indicator/xv-progress-indicator.d.ts +25 -0
  167. package/dist/types/components/xv-table/defs.d.ts +38 -0
  168. package/dist/types/components/xv-table/xv-table-col/xv-table-col.d.ts +9 -0
  169. package/dist/types/components/xv-table/xv-table-expand/xv-table-expand.d.ts +24 -0
  170. package/dist/types/components/xv-table/xv-table-header-row/xv-table-header-row.d.ts +28 -0
  171. package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +52 -0
  172. package/dist/types/components/xv-table/xv-table-toolbar/xv-table-toolbar.d.ts +6 -0
  173. package/dist/types/components/xv-table/xv-table.d.ts +37 -0
  174. package/dist/types/components/xv-tabs/_vars.d.ts +7 -0
  175. package/dist/types/components/xv-tabs/xv-tab/xv-tab.d.ts +5 -0
  176. package/dist/types/components/xv-tabs/xv-tabs.d.ts +36 -0
  177. package/dist/types/components/xv-tag/xv-tag.d.ts +11 -0
  178. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +11 -0
  179. package/dist/types/components.d.ts +1217 -0
  180. package/dist/types/index.d.ts +11 -0
  181. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  182. package/dist/types/types/enum.d.ts +7 -0
  183. package/dist/types/utils/utils.d.ts +17 -0
  184. package/dist/xv-webcomponents/index.esm.js +2 -0
  185. package/dist/xv-webcomponents/index.esm.js.map +1 -0
  186. package/dist/xv-webcomponents/p-07dfeba3.entry.js +2 -0
  187. package/dist/xv-webcomponents/p-07dfeba3.entry.js.map +1 -0
  188. package/dist/xv-webcomponents/p-39bf1511.js +2 -0
  189. package/dist/xv-webcomponents/p-39bf1511.js.map +1 -0
  190. package/dist/xv-webcomponents/p-5f18d718.entry.js +2 -0
  191. package/dist/xv-webcomponents/p-5f18d718.entry.js.map +1 -0
  192. package/dist/xv-webcomponents/p-840929c5.js +3 -0
  193. package/dist/xv-webcomponents/p-840929c5.js.map +1 -0
  194. package/dist/xv-webcomponents/p-e1255160.js +2 -0
  195. package/dist/xv-webcomponents/p-e1255160.js.map +1 -0
  196. package/dist/xv-webcomponents/xv-webcomponents.esm.js +2 -0
  197. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -0
  198. package/loader/cdn.js +1 -0
  199. package/loader/index.cjs.js +1 -0
  200. package/loader/index.d.ts +24 -0
  201. package/loader/index.es2017.js +1 -0
  202. package/loader/index.js +2 -0
  203. package/loader/package.json +11 -0
  204. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ :host(.xv-tabs) {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+ :host(.xv-tabs) .tab-headers {
6
+ display: flex;
7
+ }
8
+ :host(.xv-tabs) .tab-headers button {
9
+ background: none;
10
+ padding: 11px var(--gap-md, 16px);
11
+ cursor: pointer;
12
+ font: inherit;
13
+ transition: border-color 0.3s ease, font-weight 0.3s ease, color 0.3s ease;
14
+ position: relative;
15
+ border: 2px solid transparent;
16
+ border-bottom-color: var(--border-border-subtle-01, #D1D1D1);
17
+ background-blend-mode: multiply;
18
+ color: var(--text-secondary, #515151);
19
+ font-family: var(--ff-body, Tahoma);
20
+ font-size: var(--fz-md, 14px);
21
+ line-height: 18px;
22
+ letter-spacing: 0.16px;
23
+ height: 40px;
24
+ white-space: nowrap;
25
+ }
26
+ :host(.xv-tabs) .tab-headers button:after {
27
+ content: "";
28
+ position: absolute;
29
+ transition: background-color 0.3s ease, width 0.3s ease;
30
+ top: 100%;
31
+ left: 0;
32
+ right: 0;
33
+ width: 0;
34
+ height: 2px;
35
+ background-color: var(--interactive-01, #273435);
36
+ }
37
+ :host(.xv-tabs) .tab-headers button:focus {
38
+ outline: none;
39
+ border: 2px solid var(--border-border-subtle-01, #D1D1D1);
40
+ }
41
+ :host(.xv-tabs) .tab-headers button:hover {
42
+ border-bottom-color: var(--border-strong-01, #8B8B8B);
43
+ }
44
+ :host(.xv-tabs) .tab-headers button.active {
45
+ color: var(--text-primary, #333);
46
+ font-weight: 700;
47
+ }
48
+ :host(.xv-tabs) .tab-headers button.active:after {
49
+ width: 100%;
50
+ }
51
+ :host(.xv-tabs) .tab-headers button.active:focus {
52
+ border-color: var(--interactive-01, #273435);
53
+ }
54
+ :host(.xv-tabs) .tab-headers button:disabled {
55
+ color: var(--text-on-color-disabled, #8B8B8B);
56
+ border-bottom-color: var(--border-disabled, #D1D1D1);
57
+ cursor: not-allowed;
58
+ }
59
+ :host(.xv-tabs) .tab-headers button:disabled:after {
60
+ background-color: var(--border-disabled, #D1D1D1);
61
+ }
62
+ :host(.xv-tabs) .tab-content-wrapper {
63
+ position: relative;
64
+ overflow: hidden;
65
+ transition: height 0.3s ease;
66
+ padding: var(--gap-md, 16px);
67
+ }
68
+ :host(.xv-tabs) ::slotted(xv-tab-v2) {
69
+ position: absolute;
70
+ opacity: 0;
71
+ transition: opacity 0.3s ease;
72
+ width: 100%;
73
+ pointer-events: none;
74
+ }
75
+ :host(.xv-tabs) ::slotted(xv-tab-v2.active) {
76
+ position: relative;
77
+ opacity: 1;
78
+ pointer-events: auto;
79
+ }
@@ -0,0 +1,158 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { TAB_TAGS, TABS_VATIANT } from "./_vars";
3
+ export class XvTabs {
4
+ constructor() {
5
+ /**
6
+ * Index of active tab
7
+ */
8
+ this.active = 0;
9
+ /**
10
+ * Variant of tabs from TABS_VATIANT enum
11
+ */
12
+ this.variant = TABS_VATIANT.DEFAULT;
13
+ /**
14
+ * for animate the tab content
15
+ */
16
+ this.height = 0;
17
+ /**
18
+ * local variable for tab labels collection
19
+ */
20
+ this.tabElements = [];
21
+ }
22
+ /**
23
+ * Watch active tab changes to animate content height
24
+ */
25
+ onActiveTabChanged() {
26
+ this.setHeight();
27
+ }
28
+ collectTabs() {
29
+ if (!this.tabElements.length) {
30
+ this.tabElements = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));
31
+ }
32
+ }
33
+ updateTabClasses() {
34
+ this.tabElements.forEach((tab, i) => {
35
+ tab.classList.toggle('active', i === this.active);
36
+ });
37
+ }
38
+ setHeight() {
39
+ requestAnimationFrame(() => {
40
+ var _a;
41
+ const tab = this.tabElements[this.active];
42
+ if (tab) {
43
+ const content = (_a = tab.shadowRoot) === null || _a === void 0 ? void 0 : _a.host;
44
+ this.height = (content === null || content === void 0 ? void 0 : content.scrollHeight) || 0;
45
+ }
46
+ });
47
+ }
48
+ handleTabClick(index) {
49
+ if (index === this.active)
50
+ return;
51
+ this.active = index;
52
+ this.setHeight();
53
+ this.tabSelect.emit(this.active);
54
+ }
55
+ render() {
56
+ return (h(Host, { key: '490001d8e74c759e11a2fc99c545d0a3429465f6', class: "xv-tabs", variant: this.variant }, h("div", { key: 'bd5210a9e26775c56b14fb4d0a330ed472033403', class: "tab-headers", role: "tablist" }, this.tabElements.map((tab, index) => (h("button", { role: "tab", disabled: !!tab.getAttribute('disabled') || !!(tab === null || tab === void 0 ? void 0 : tab.disabled), class: { active: index === this.active }, onClick: () => this.handleTabClick(index) }, tab.getAttribute('label') || `Tab ${index + 1}`)))), h("div", { key: '0e15189ae37d5ac1431545df44a4c6500694a2fc', class: "tab-content-wrapper", style: { height: `${this.height}px` }, role: "tabpanel", tabindex: -1 }, h("slot", { key: '18dc32e8d6f6576b355786d6c959582df87a59b5' }))));
57
+ }
58
+ componentWillLoad() {
59
+ this.collectTabs();
60
+ this.setHeight();
61
+ }
62
+ componentDidRender() {
63
+ this.updateTabClasses();
64
+ }
65
+ static get is() { return "xv-tabs-v2"; }
66
+ static get encapsulation() { return "shadow"; }
67
+ static get originalStyleUrls() {
68
+ return {
69
+ "$": ["xv-tabs.scss"]
70
+ };
71
+ }
72
+ static get styleUrls() {
73
+ return {
74
+ "$": ["xv-tabs.css"]
75
+ };
76
+ }
77
+ static get properties() {
78
+ return {
79
+ "active": {
80
+ "type": "number",
81
+ "mutable": true,
82
+ "complexType": {
83
+ "original": "number",
84
+ "resolved": "number",
85
+ "references": {}
86
+ },
87
+ "required": false,
88
+ "optional": false,
89
+ "docs": {
90
+ "tags": [],
91
+ "text": "Index of active tab"
92
+ },
93
+ "getter": false,
94
+ "setter": false,
95
+ "attribute": "active",
96
+ "reflect": true,
97
+ "defaultValue": "0"
98
+ },
99
+ "variant": {
100
+ "type": "string",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "TABS_VATIANT",
104
+ "resolved": "TABS_VATIANT",
105
+ "references": {
106
+ "TABS_VATIANT": {
107
+ "location": "import",
108
+ "path": "./_vars",
109
+ "id": "src/components/xv-tabs/_vars.ts::TABS_VATIANT"
110
+ }
111
+ }
112
+ },
113
+ "required": false,
114
+ "optional": false,
115
+ "docs": {
116
+ "tags": [],
117
+ "text": "Variant of tabs from TABS_VATIANT enum"
118
+ },
119
+ "getter": false,
120
+ "setter": false,
121
+ "attribute": "variant",
122
+ "reflect": false,
123
+ "defaultValue": "TABS_VATIANT.DEFAULT"
124
+ }
125
+ };
126
+ }
127
+ static get states() {
128
+ return {
129
+ "height": {}
130
+ };
131
+ }
132
+ static get events() {
133
+ return [{
134
+ "method": "tabSelect",
135
+ "name": "tabSelect",
136
+ "bubbles": true,
137
+ "cancelable": true,
138
+ "composed": true,
139
+ "docs": {
140
+ "tags": [],
141
+ "text": "Emit event to outside"
142
+ },
143
+ "complexType": {
144
+ "original": "number",
145
+ "resolved": "number",
146
+ "references": {}
147
+ }
148
+ }];
149
+ }
150
+ static get elementRef() { return "el"; }
151
+ static get watchers() {
152
+ return [{
153
+ "propName": "active",
154
+ "methodName": "onActiveTabChanged"
155
+ }];
156
+ }
157
+ }
158
+ //# sourceMappingURL=xv-tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xv-tabs.js","sourceRoot":"","sources":["../../../src/components/xv-tabs/xv-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, State, Watch, Prop, Event, EventEmitter } from '@stencil/core';\nimport { TAB_TAGS, TABS_VATIANT } from './_vars';\n\n@Component({\n tag: 'xv-tabs-v2',\n styleUrl: 'xv-tabs.scss',\n shadow: true,\n})\nexport class XvTabs {\n @Element() el: HTMLElement;\n /**\n * Index of active tab\n */\n @Prop({ reflect: true, mutable: true }) active: number = 0;\n /**\n * Variant of tabs from TABS_VATIANT enum\n */\n @Prop() variant: TABS_VATIANT = TABS_VATIANT.DEFAULT;\n /**\n * for animate the tab content\n */\n @State() height: number = 0;\n /**\n * Emit event to outside\n */\n @Event() tabSelect: EventEmitter<number>;\n /**\n * local variable for tab labels collection\n */\n private tabElements: HTMLElement[] = [];\n /**\n * Watch active tab changes to animate content height\n */\n @Watch('active')\n onActiveTabChanged() {\n this.setHeight();\n }\n\n private collectTabs() {\n if (!this.tabElements.length) {\n this.tabElements = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));\n }\n }\n\n private updateTabClasses() {\n this.tabElements.forEach((tab, i) => {\n tab.classList.toggle('active', i === this.active);\n });\n }\n\n private setHeight() {\n requestAnimationFrame(() => {\n const tab = this.tabElements[this.active];\n if (tab) {\n const content = tab.shadowRoot?.host;\n this.height = content?.scrollHeight || 0;\n }\n });\n }\n\n private handleTabClick(index: number) {\n if (index === this.active) return;\n\n this.active = index;\n this.setHeight();\n this.tabSelect.emit(this.active);\n }\n\n render() {\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <div class=\"tab-headers\" role=\"tablist\">\n {this.tabElements.map((tab, index) => (\n <button\n role=\"tab\"\n disabled={!!tab.getAttribute('disabled') || !!(tab as any)?.disabled}\n class={{ active: index === this.active }}\n onClick={() => this.handleTabClick(index)}\n >\n {tab.getAttribute('label') || `Tab ${index + 1}`}\n </button>\n ))}\n </div>\n\n <div\n class=\"tab-content-wrapper\"\n style={{ height: `${this.height}px` }}\n role=\"tabpanel\"\n tabindex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n\n componentWillLoad() {\n this.collectTabs();\n this.setHeight();\n }\n\n componentDidRender() {\n this.updateTabClasses();\n }\n}\n"]}
@@ -0,0 +1,97 @@
1
+ @charset "UTF-8";
2
+ :host {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ border-radius: 1000px;
7
+ background-color: var(--background);
8
+ color: var(--text-primary);
9
+ font-family: var(--ff-body, inherit);
10
+ }
11
+ :host .xv-tag_content {
12
+ padding-left: 8px;
13
+ padding-right: 8px;
14
+ color: inherit;
15
+ font-family: var(--ff-body);
16
+ font-style: normal;
17
+ font-weight: 400;
18
+ line-height: 16px;
19
+ letter-spacing: 0.32px;
20
+ white-space: nowrap;
21
+ overflow: hidden;
22
+ text-overflow: ellipsis;
23
+ }
24
+ :host .xv-tag_close {
25
+ box-sizing: border-box;
26
+ text-decoration: none;
27
+ border: none;
28
+ background-color: inherit;
29
+ outline: none;
30
+ border-spacing: 0;
31
+ list-style: none outside none;
32
+ margin: 0;
33
+ padding: 0;
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ border-radius: 62px;
38
+ width: 15px;
39
+ height: 15px;
40
+ text-align: left;
41
+ color: inherit;
42
+ text-indent: 0;
43
+ transition: opacity 300ms ease-in-out, filter 300ms ease-in-out;
44
+ }
45
+ :host .xv-tag_close:hover {
46
+ cursor: pointer;
47
+ filter: brightness(80%);
48
+ }
49
+ :host .xv-tag_close:active {
50
+ opacity: 0.7;
51
+ }
52
+ :host .xv-tag_close:focus {
53
+ outline: 1px solid currentColor;
54
+ }
55
+ :host .xv-tag_close:after {
56
+ overflow: hidden;
57
+ width: inherit;
58
+ height: inherit;
59
+ color: inherit;
60
+ font-size: 16px;
61
+ display: inline-flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ content: "×";
65
+ }
66
+
67
+ :host(.sm) {
68
+ font-size: var(--fz-sm);
69
+ }
70
+
71
+ :host(.md) {
72
+ font-size: var(--fz-md);
73
+ }
74
+ :host(.md) .xv-tag_content {
75
+ line-height: 24px;
76
+ }
77
+ :host(.md) .xv-tag_close {
78
+ height: 24px;
79
+ width: 24px;
80
+ }
81
+
82
+ :host(.lg) {
83
+ font-size: var(--fz-lg);
84
+ }
85
+ :host(.lg) .xv-tag_content {
86
+ line-height: 26px;
87
+ }
88
+ :host(.lg) .xv-tag_close {
89
+ height: 26px;
90
+ width: 26px;
91
+ }
92
+
93
+ :host(.disabled) {
94
+ pointer-events: none;
95
+ background-color: var(--layer-01);
96
+ color: var(--text-disabled);
97
+ }
@@ -0,0 +1,158 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class XvTag {
3
+ constructor() {
4
+ this.size = 'md';
5
+ this.color = '';
6
+ this.bg = '';
7
+ this.disabled = false;
8
+ this.closeable = false;
9
+ }
10
+ closeHandler(e) {
11
+ if (this.disabled)
12
+ return;
13
+ this.closeClick.emit(e);
14
+ }
15
+ render() {
16
+ return (h(Host, { key: 'cca59dceeb566fa038234f7962be22424dc9a35e', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, h("div", { key: '5d7bedbbbb7ce916b1aa5efda7cebe957b985762', class: "xv-tag_content" }, h("slot", { key: '300db1eecac2be8508b328cd869599af162c04a8' })), this.closeable && (h("button", { key: '4d7eacbb1d380ecf664780e4466129327563bace', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
17
+ }
18
+ static get is() { return "xv-tag-v2"; }
19
+ static get encapsulation() { return "shadow"; }
20
+ static get originalStyleUrls() {
21
+ return {
22
+ "$": ["xv-tag.scss"]
23
+ };
24
+ }
25
+ static get styleUrls() {
26
+ return {
27
+ "$": ["xv-tag.css"]
28
+ };
29
+ }
30
+ static get properties() {
31
+ return {
32
+ "size": {
33
+ "type": "string",
34
+ "mutable": false,
35
+ "complexType": {
36
+ "original": "'sm' | 'md' | 'lg'",
37
+ "resolved": "\"lg\" | \"md\" | \"sm\"",
38
+ "references": {}
39
+ },
40
+ "required": false,
41
+ "optional": false,
42
+ "docs": {
43
+ "tags": [],
44
+ "text": ""
45
+ },
46
+ "getter": false,
47
+ "setter": false,
48
+ "attribute": "size",
49
+ "reflect": false,
50
+ "defaultValue": "'md'"
51
+ },
52
+ "color": {
53
+ "type": "string",
54
+ "mutable": false,
55
+ "complexType": {
56
+ "original": "string",
57
+ "resolved": "string",
58
+ "references": {}
59
+ },
60
+ "required": false,
61
+ "optional": false,
62
+ "docs": {
63
+ "tags": [],
64
+ "text": ""
65
+ },
66
+ "getter": false,
67
+ "setter": false,
68
+ "attribute": "color",
69
+ "reflect": false,
70
+ "defaultValue": "''"
71
+ },
72
+ "bg": {
73
+ "type": "string",
74
+ "mutable": false,
75
+ "complexType": {
76
+ "original": "string",
77
+ "resolved": "string",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": false,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": ""
85
+ },
86
+ "getter": false,
87
+ "setter": false,
88
+ "attribute": "bg",
89
+ "reflect": false,
90
+ "defaultValue": "''"
91
+ },
92
+ "disabled": {
93
+ "type": "boolean",
94
+ "mutable": false,
95
+ "complexType": {
96
+ "original": "boolean",
97
+ "resolved": "boolean",
98
+ "references": {}
99
+ },
100
+ "required": false,
101
+ "optional": false,
102
+ "docs": {
103
+ "tags": [],
104
+ "text": ""
105
+ },
106
+ "getter": false,
107
+ "setter": false,
108
+ "attribute": "disabled",
109
+ "reflect": false,
110
+ "defaultValue": "false"
111
+ },
112
+ "closeable": {
113
+ "type": "boolean",
114
+ "mutable": false,
115
+ "complexType": {
116
+ "original": "boolean",
117
+ "resolved": "boolean",
118
+ "references": {}
119
+ },
120
+ "required": false,
121
+ "optional": false,
122
+ "docs": {
123
+ "tags": [],
124
+ "text": ""
125
+ },
126
+ "getter": false,
127
+ "setter": false,
128
+ "attribute": "closeable",
129
+ "reflect": false,
130
+ "defaultValue": "false"
131
+ }
132
+ };
133
+ }
134
+ static get events() {
135
+ return [{
136
+ "method": "closeClick",
137
+ "name": "closeClick",
138
+ "bubbles": true,
139
+ "cancelable": true,
140
+ "composed": true,
141
+ "docs": {
142
+ "tags": [],
143
+ "text": ""
144
+ },
145
+ "complexType": {
146
+ "original": "PointerEvent",
147
+ "resolved": "PointerEvent",
148
+ "references": {
149
+ "PointerEvent": {
150
+ "location": "global",
151
+ "id": "global::PointerEvent"
152
+ }
153
+ }
154
+ }
155
+ }];
156
+ }
157
+ }
158
+ //# sourceMappingURL=xv-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xv-tag.js","sourceRoot":"","sources":["../../../src/components/xv-tag/xv-tag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAO9E,MAAM,OAAO,KAAK;IALlB;QAMU,SAAI,GAAuB,IAAI,CAAC;QAChC,UAAK,GAAW,EAAE,CAAC;QACnB,OAAE,GAAW,EAAE,CAAC;QAChB,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;KAwBpC;IArBC,YAAY,CAAC,CAAe;QAC1B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,EACjD,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAE/D,4DAAK,KAAK,EAAC,gBAAgB;gBACzB,8DAAa,CACT;YACL,IAAI,CAAC,SAAS,IAAI,CACjB,+DAAQ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,cAAc,GAAU,CAC9E,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-tag-v2',\n styleUrl: 'xv-tag.scss',\n shadow: true,\n})\nexport class XvTag {\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() color: string = '';\n @Prop() bg: string = '';\n @Prop() disabled: boolean = false;\n @Prop() closeable: boolean = false;\n @Event() closeClick: EventEmitter<PointerEvent>;\n\n closeHandler(e: PointerEvent) {\n if (this.disabled) return;\n\n this.closeClick.emit(e);\n }\n\n render() {\n return (\n <Host\n style={{ color: this.color, background: this.bg }}\n class={`xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}`}\n >\n <div class=\"xv-tag_content\">\n <slot></slot>\n </div>\n {this.closeable && (\n <button onClick={this.closeHandler.bind(this)} class=\"xv-tag_close\"></button>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,154 @@
1
+ :host {
2
+ position: relative;
3
+ display: inline-block;
4
+ cursor: pointer;
5
+ line-height: 0.5;
6
+ }
7
+
8
+ /* General styles for tooltip */
9
+ :host::before,
10
+ :host::after {
11
+ position: absolute;
12
+ opacity: 0;
13
+ visibility: hidden;
14
+ transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
15
+ z-index: 10;
16
+ }
17
+
18
+ /* Tooltip */
19
+ :host::before {
20
+ content: attr(tooltip);
21
+ background: var(--background-inverse, #333);
22
+ color: var(--icon-inverse, #fff);
23
+ padding: var(--gap-sm, 5px) var(--gap-md, 16px);
24
+ border-radius: 2px;
25
+ white-space: nowrap;
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
28
+ max-width: 70vw;
29
+ font-family: var(--fz-body, Tahoma);
30
+ font-size: var(fz-md, 14px);
31
+ font-weight: 400;
32
+ line-height: 18px;
33
+ letter-spacing: 0.16px;
34
+ }
35
+
36
+ /* Arrow */
37
+ :host::after {
38
+ content: "";
39
+ border: 6px solid transparent;
40
+ }
41
+
42
+ /* Show Tooltip and arrow */
43
+ :host(:hover)::before,
44
+ :host(:hover)::after,
45
+ :host(:focus)::before,
46
+ :host(:focus)::after {
47
+ opacity: 1;
48
+ visibility: visible;
49
+ }
50
+
51
+ /* Tooltip positions */
52
+ :host(.xv-tooltip_top)::before {
53
+ bottom: 100%;
54
+ left: 50%;
55
+ transform: translateX(-50%) translateY(-5px);
56
+ }
57
+
58
+ :host(.xv-tooltip_top)::after {
59
+ bottom: 100%;
60
+ left: 50%;
61
+ border-top-color: var(--background-inverse, #333);
62
+ transform: translateX(-50%) translateY(5px);
63
+ }
64
+
65
+ :host(.xv-tooltip_top-left)::before {
66
+ bottom: 100%;
67
+ left: 0;
68
+ transform: translateY(-5px);
69
+ }
70
+
71
+ :host(.xv-tooltip_top-left)::after {
72
+ bottom: 100%;
73
+ left: 10px;
74
+ border-top-color: black;
75
+ transform: translateY(5px);
76
+ }
77
+
78
+ :host(.xv-tooltip_top-right)::before {
79
+ bottom: 100%;
80
+ right: 0;
81
+ transform: translateY(-5px);
82
+ }
83
+
84
+ :host(.xv-tooltip_top-right)::after {
85
+ bottom: 100%;
86
+ right: 10px;
87
+ border-top-color: var(--background-inverse, #333);
88
+ transform: translateY(5px);
89
+ }
90
+
91
+ :host(.xv-tooltip_bottom)::before {
92
+ top: 100%;
93
+ left: 50%;
94
+ transform: translateX(-50%) translateY(5px);
95
+ }
96
+
97
+ :host(.xv-tooltip_bottom)::after {
98
+ top: 100%;
99
+ left: 50%;
100
+ border-bottom-color: black;
101
+ transform: translateX(-50%) translateY(-5px);
102
+ }
103
+
104
+ :host(.xv-tooltip_bottom-left)::before {
105
+ top: 100%;
106
+ left: 0;
107
+ transform: translateY(5px);
108
+ }
109
+
110
+ :host(.xv-tooltip_bottom-left)::after {
111
+ top: 100%;
112
+ left: 10px;
113
+ border-bottom-color: var(--background-inverse, #333);
114
+ transform: translateY(-5px);
115
+ }
116
+
117
+ :host(.xv-tooltip_bottom-right)::before {
118
+ top: 100%;
119
+ right: 0;
120
+ transform: translateY(5px);
121
+ }
122
+
123
+ :host(.xv-tooltip_bottom-right)::after {
124
+ top: 100%;
125
+ right: 10px;
126
+ border-bottom-color: var(--background-inverse, #333);
127
+ transform: translateY(-5px);
128
+ }
129
+
130
+ :host(.xv-tooltip_left)::before {
131
+ right: 100%;
132
+ top: 50%;
133
+ transform: translateY(-50%) translateX(-5px);
134
+ }
135
+
136
+ :host(.xv-tooltip_left)::after {
137
+ right: 100%;
138
+ top: 50%;
139
+ border-left-color: var(--background-inverse, #333);
140
+ transform: translateY(-50%) translateX(5px);
141
+ }
142
+
143
+ :host(.xv-tooltip_right)::before {
144
+ left: 100%;
145
+ top: 50%;
146
+ transform: translateY(-50%) translateX(5px);
147
+ }
148
+
149
+ :host(.xv-tooltip_right)::after {
150
+ left: 100%;
151
+ top: 50%;
152
+ border-right-color: var(--background-inverse, #333);
153
+ transform: translateY(-50%) translateX(-5px);
154
+ }