globuswebcomponents 1.7.7 → 1.7.9

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 (122) hide show
  1. package/dist/cjs/{gb-avatar_22.cjs.entry.js → gb-avatar_30.cjs.entry.js} +469 -20
  2. package/dist/cjs/gb-avatar_30.cjs.entry.js.map +1 -0
  3. package/dist/cjs/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.entry.cjs.js.map +1 -0
  4. package/dist/cjs/{gb-collapse-button_4.cjs.entry.js → gb-collapse-button_3.cjs.entry.js} +2 -42
  5. package/dist/cjs/gb-collapse-button_3.cjs.entry.js.map +1 -0
  6. package/dist/cjs/globuscomponents.cjs.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/collection/assets/laptop.svg +4 -6
  9. package/dist/collection/components/gb-avatar-dropdown/gb-avatar-dropdown.css +6 -0
  10. package/dist/collection/components/gb-avatar-dropdown/gb-avatar-dropdown.js +25 -4
  11. package/dist/collection/components/gb-avatar-dropdown/gb-avatar-dropdown.js.map +1 -1
  12. package/dist/collection/components/gb-icon-button-base/gb-icon-button-base.css +1 -1
  13. package/dist/collection/components/gb-input-field/gb-input-field.js +71 -12
  14. package/dist/collection/components/gb-input-field/gb-input-field.js.map +1 -1
  15. package/dist/collection/components/gb-quick-action-card/gb-quick-action-card.css +1 -0
  16. package/dist/collection/components/gb-simple-side-bar-item/gb-simple-side-bar-item.css +88 -82
  17. package/dist/collection/components/gb-theme-tab/gb-theme-tab.js +33 -4
  18. package/dist/collection/components/gb-theme-tab/gb-theme-tab.js.map +1 -1
  19. package/dist/components/gb-avatar-dropdown.js +38 -18
  20. package/dist/components/gb-avatar-dropdown.js.map +1 -1
  21. package/dist/components/gb-icon-button-base.js +1 -1
  22. package/dist/components/gb-input-dropdown.js +1 -1
  23. package/dist/components/gb-input-field.js +1 -1
  24. package/dist/components/gb-pagination.js +2 -2
  25. package/dist/components/gb-quick-action-card.js +1 -1
  26. package/dist/components/gb-quick-action-card.js.map +1 -1
  27. package/dist/components/gb-sidebar.js +1 -1
  28. package/dist/components/gb-simple-side-bar-item.js +1 -1
  29. package/dist/components/gb-theme-tab.js +1 -53
  30. package/dist/components/gb-theme-tab.js.map +1 -1
  31. package/dist/components/{p-BbIDFBZw.js → p-BH_kBl5M.js} +3 -3
  32. package/dist/components/{p-BbIDFBZw.js.map → p-BH_kBl5M.js.map} +1 -1
  33. package/dist/components/{p-B3vwqSMg.js → p-CW74zmQs.js} +3 -3
  34. package/dist/components/p-CW74zmQs.js.map +1 -0
  35. package/dist/components/p-CzL1gfFw.js +87 -0
  36. package/dist/components/p-CzL1gfFw.js.map +1 -0
  37. package/dist/components/{p-BlMglM7m.js → p-DMhcqs9l.js} +18 -14
  38. package/dist/components/p-DMhcqs9l.js.map +1 -0
  39. package/dist/components/{p-610763AN.js → p-j6G2DIRL.js} +3 -3
  40. package/dist/components/{p-610763AN.js.map → p-j6G2DIRL.js.map} +1 -1
  41. package/dist/docs.json +115 -8
  42. package/dist/esm/{gb-avatar_22.entry.js → gb-avatar_30.entry.js} +463 -22
  43. package/dist/esm/gb-avatar_30.entry.js.map +1 -0
  44. package/dist/esm/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.entry.js.map +1 -0
  45. package/dist/esm/{gb-collapse-button_4.entry.js → gb-collapse-button_3.entry.js} +4 -43
  46. package/dist/esm/gb-collapse-button_3.entry.js.map +1 -0
  47. package/dist/esm/globuscomponents.js +1 -1
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/globuscomponents/assets/laptop.svg +4 -6
  50. package/dist/globuscomponents/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.entry.esm.js.map +1 -0
  51. package/dist/globuscomponents/globuscomponents.esm.js +1 -1
  52. package/dist/globuscomponents/p-2bbf09cc.entry.js +2 -0
  53. package/dist/globuscomponents/p-2bbf09cc.entry.js.map +1 -0
  54. package/dist/globuscomponents/p-591e675a.entry.js +2 -0
  55. package/dist/globuscomponents/p-591e675a.entry.js.map +1 -0
  56. package/dist/types/components/gb-avatar-dropdown/gb-avatar-dropdown.d.ts +2 -1
  57. package/dist/types/components/gb-input-field/gb-input-field.d.ts +3 -0
  58. package/dist/types/components/gb-theme-tab/gb-theme-tab.d.ts +5 -0
  59. package/dist/types/components.d.ts +10 -2
  60. package/package.json +1 -1
  61. package/dist/cjs/gb-avatar-dropdown.cjs.entry.js +0 -65
  62. package/dist/cjs/gb-avatar-dropdown.cjs.entry.js.map +0 -1
  63. package/dist/cjs/gb-avatar-dropdown.entry.cjs.js.map +0 -1
  64. package/dist/cjs/gb-avatar-label-group.cjs.entry.js +0 -100
  65. package/dist/cjs/gb-avatar-label-group.cjs.entry.js.map +0 -1
  66. package/dist/cjs/gb-avatar-label-group.entry.cjs.js.map +0 -1
  67. package/dist/cjs/gb-avatar_22.cjs.entry.js.map +0 -1
  68. package/dist/cjs/gb-badge.gb-badge-close.entry.cjs.js.map +0 -1
  69. package/dist/cjs/gb-badge_2.cjs.entry.js +0 -100
  70. package/dist/cjs/gb-badge_2.cjs.entry.js.map +0 -1
  71. package/dist/cjs/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.gb-simple-side-bar-item.entry.cjs.js.map +0 -1
  72. package/dist/cjs/gb-collapse-button_4.cjs.entry.js.map +0 -1
  73. package/dist/cjs/gb-dropdown-items-with-shortcut.cjs.entry.js +0 -38
  74. package/dist/cjs/gb-dropdown-items-with-shortcut.cjs.entry.js.map +0 -1
  75. package/dist/cjs/gb-dropdown-items-with-shortcut.entry.cjs.js.map +0 -1
  76. package/dist/cjs/gb-horizontal-tabs.cjs.entry.js +0 -47
  77. package/dist/cjs/gb-horizontal-tabs.cjs.entry.js.map +0 -1
  78. package/dist/cjs/gb-horizontal-tabs.entry.cjs.js.map +0 -1
  79. package/dist/cjs/gb-tab-button-base.cjs.entry.js +0 -72
  80. package/dist/cjs/gb-tab-button-base.cjs.entry.js.map +0 -1
  81. package/dist/cjs/gb-tab-button-base.entry.cjs.js.map +0 -1
  82. package/dist/components/p-B3vwqSMg.js.map +0 -1
  83. package/dist/components/p-BlMglM7m.js.map +0 -1
  84. package/dist/esm/gb-avatar-dropdown.entry.js +0 -63
  85. package/dist/esm/gb-avatar-dropdown.entry.js.map +0 -1
  86. package/dist/esm/gb-avatar-label-group.entry.js +0 -98
  87. package/dist/esm/gb-avatar-label-group.entry.js.map +0 -1
  88. package/dist/esm/gb-avatar_22.entry.js.map +0 -1
  89. package/dist/esm/gb-badge.gb-badge-close.entry.js.map +0 -1
  90. package/dist/esm/gb-badge_2.entry.js +0 -97
  91. package/dist/esm/gb-badge_2.entry.js.map +0 -1
  92. package/dist/esm/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.gb-simple-side-bar-item.entry.js.map +0 -1
  93. package/dist/esm/gb-collapse-button_4.entry.js.map +0 -1
  94. package/dist/esm/gb-dropdown-items-with-shortcut.entry.js +0 -36
  95. package/dist/esm/gb-dropdown-items-with-shortcut.entry.js.map +0 -1
  96. package/dist/esm/gb-horizontal-tabs.entry.js +0 -45
  97. package/dist/esm/gb-horizontal-tabs.entry.js.map +0 -1
  98. package/dist/esm/gb-tab-button-base.entry.js +0 -70
  99. package/dist/esm/gb-tab-button-base.entry.js.map +0 -1
  100. package/dist/globuscomponents/gb-avatar-dropdown.entry.esm.js.map +0 -1
  101. package/dist/globuscomponents/gb-avatar-label-group.entry.esm.js.map +0 -1
  102. package/dist/globuscomponents/gb-badge.gb-badge-close.entry.esm.js.map +0 -1
  103. package/dist/globuscomponents/gb-collapse-button.gb-complex-primary-side-bar-item.gb-complex-secondary-side-bar-item.gb-simple-side-bar-item.entry.esm.js.map +0 -1
  104. package/dist/globuscomponents/gb-dropdown-items-with-shortcut.entry.esm.js.map +0 -1
  105. package/dist/globuscomponents/gb-horizontal-tabs.entry.esm.js.map +0 -1
  106. package/dist/globuscomponents/gb-tab-button-base.entry.esm.js.map +0 -1
  107. package/dist/globuscomponents/p-004fcef0.entry.js +0 -2
  108. package/dist/globuscomponents/p-004fcef0.entry.js.map +0 -1
  109. package/dist/globuscomponents/p-4e7bf9d9.entry.js +0 -2
  110. package/dist/globuscomponents/p-4e7bf9d9.entry.js.map +0 -1
  111. package/dist/globuscomponents/p-6e613473.entry.js +0 -2
  112. package/dist/globuscomponents/p-6e613473.entry.js.map +0 -1
  113. package/dist/globuscomponents/p-6e7d5997.entry.js +0 -2
  114. package/dist/globuscomponents/p-6e7d5997.entry.js.map +0 -1
  115. package/dist/globuscomponents/p-8b7214a6.entry.js +0 -2
  116. package/dist/globuscomponents/p-8b7214a6.entry.js.map +0 -1
  117. package/dist/globuscomponents/p-902b812f.entry.js +0 -2
  118. package/dist/globuscomponents/p-902b812f.entry.js.map +0 -1
  119. package/dist/globuscomponents/p-b199f35e.entry.js +0 -2
  120. package/dist/globuscomponents/p-b199f35e.entry.js.map +0 -1
  121. package/dist/globuscomponents/p-ef872064.entry.js +0 -2
  122. package/dist/globuscomponents/p-ef872064.entry.js.map +0 -1
@@ -2658,177 +2658,183 @@
2658
2658
  margin-top: -0.416em;
2659
2659
  }
2660
2660
 
2661
- :host{
2662
- position: relative;
2661
+ :host {
2662
+ position: relative;
2663
2663
  }
2664
2664
 
2665
- .side_bar_item_container{
2666
- padding: 0 var(--spacing-4);
2665
+ .side_bar_item_container {
2666
+ padding: 0 var(--spacing-4);
2667
2667
  }
2668
2668
 
2669
- .nav_item_base.icon_only{
2670
- width: fit-content;
2669
+ .nav_item_base.icon_only {
2670
+ width: fit-content;
2671
2671
  }
2672
2672
 
2673
- .nav_item_base{
2674
- display: flex;
2675
- padding: var(--spacing-2) var(--spacing-3);
2676
- justify-content: space-between;
2677
- align-items: center;
2678
- gap: 0.5rem;
2679
- align-self: stretch;
2680
- border-radius: var(--rounded-sm);
2681
- cursor: pointer;
2682
- position: relative;
2683
- flex-grow: 1;
2673
+ .nav_item_base {
2674
+ display: flex;
2675
+ padding: var(--spacing-2) var(--spacing-3);
2676
+ justify-content: space-between;
2677
+ align-items: center;
2678
+ gap: 0.5rem;
2679
+ align-self: stretch;
2680
+ border-radius: var(--rounded-sm);
2681
+ cursor: pointer;
2682
+ position: relative;
2683
+ flex-grow: 1;
2684
2684
  }
2685
2685
 
2686
- .content{
2687
- display: flex;
2688
- align-items: center;
2689
- gap: 0.75rem;
2690
- flex-grow: 1;
2686
+ .content {
2687
+ display: flex;
2688
+ align-items: center;
2689
+ gap: 0.75rem;
2690
+ flex-grow: 1;
2691
+ max-width: 100%;
2691
2692
  }
2692
2693
 
2693
- .bar{
2694
- position: absolute;
2695
- left: 0rem;
2696
- width: 0.25rem;
2697
- height: 1.25rem;
2694
+ .bar {
2695
+ position: absolute;
2696
+ left: 0rem;
2697
+ width: 0.25rem;
2698
+ height: 1.25rem;
2698
2699
  }
2699
2700
 
2700
- .icon{
2701
- display: flex;
2702
- align-items: center;
2703
- width: 1.5rem;
2704
- height: 1.5rem;
2701
+ .icon {
2702
+ display: flex;
2703
+ align-items: center;
2704
+ width: 1.5rem;
2705
+ height: 1.5rem;
2705
2706
  }
2706
2707
 
2707
- .label_text{
2708
- width: 10rem;
2709
- max-width: 100%;
2710
- overflow: hidden;
2711
- white-space: nowrap;
2712
- text-overflow: ellipsis;
2708
+ .label_text {
2709
+ max-width: 100%;
2710
+ overflow-x: hidden;
2711
+ overflow-y: none;
2712
+ white-space: nowrap;
2713
+ text-overflow: ellipsis;
2714
+ scrollbar-width: none;
2715
+ }
2716
+
2717
+ .label_text::-webkit-scrollbar {
2718
+ display: none;
2713
2719
  }
2714
2720
 
2715
2721
  /* State and Category Styles */
2716
2722
  .nav_item_base.plain_background.default,
2717
- .nav_item_base.colored_background.default{
2718
- background: transparent;
2723
+ .nav_item_base.colored_background.default {
2724
+ background: transparent;
2719
2725
  }
2720
2726
 
2721
- .nav_item_base.plain_background.active{
2722
- background: var(--color-background-information-subtler, #C8E0F9);
2727
+ .nav_item_base.plain_background.active {
2728
+ background: var(--color-background-information-subtler, #c8e0f9);
2723
2729
  }
2724
2730
 
2725
- .nav_item_base.default.plain_background:hover{
2726
- background: var(--color-background-gray-subtler, #EEF2F6);
2731
+ .nav_item_base.default.plain_background:hover {
2732
+ background: var(--color-background-gray-subtler, #eef2f6);
2727
2733
  }
2728
2734
 
2729
- .nav_item_base.colored_background.active{
2730
- background: var(--color-background-information-bold, #042F59);
2735
+ .nav_item_base.colored_background.active {
2736
+ background: var(--color-background-information-bold, #042f59);
2731
2737
  }
2732
2738
 
2733
- .nav_item_base.default.colored_background:hover{
2734
- background: var(--color-blanket, rgba(33, 44, 101, 0.4));
2739
+ .nav_item_base.default.colored_background:hover {
2740
+ background: var(--color-blanket, rgba(33, 44, 101, 0.4));
2735
2741
  }
2736
2742
 
2737
- .label_text.plain_background.default{
2738
- color: var(--color-text, #4B5565);
2743
+ .label_text.plain_background.default {
2744
+ color: var(--color-text, #4b5565);
2739
2745
  }
2740
2746
 
2741
- .label_text.plain_background.active{
2742
- color: var(--color-text-information-bold, #042F59);
2747
+ .label_text.plain_background.active {
2748
+ color: var(--color-text-information-bold, #042f59);
2743
2749
  }
2744
2750
 
2745
- .label_text.colored_background{
2746
- color: var(--color-text-inverse, #FFFFFF);
2751
+ .label_text.colored_background {
2752
+ color: var(--color-text-inverse, #ffffff);
2747
2753
  }
2748
2754
 
2749
2755
  /* Icon Color Styles */
2750
2756
  .icon.plain_background path[stroke] {
2751
- stroke: var(--color-icon, #4B5565);
2757
+ stroke: var(--color-icon, #4b5565);
2752
2758
  }
2753
2759
 
2754
2760
  .icon.plain_background.active path[stroke] {
2755
- stroke: var(--color-icon-information-bold, #042F59);
2761
+ stroke: var(--color-icon-information-bold, #042f59);
2756
2762
  }
2757
2763
 
2758
2764
  .icon.plain_background.active path[fill] {
2759
- fill: var(--color-icon-information-bold, #042F59);
2765
+ fill: var(--color-icon-information-bold, #042f59);
2760
2766
  }
2761
2767
 
2762
2768
  .icon.plain_background path#Icon[fill] {
2763
- fill: var(--color-icon, #4B5565);
2769
+ fill: var(--color-icon, #4b5565);
2764
2770
  }
2765
2771
 
2766
2772
  .icon.plain_background.active path#Icon[fill] {
2767
- fill: var(--color-icon-information-bold, #042F59);
2773
+ fill: var(--color-icon-information-bold, #042f59);
2768
2774
  }
2769
2775
 
2770
2776
  .icon.plain_background.active path#Accent[fill] {
2771
- fill: var(--color-icon-information-bold, #042F59);
2777
+ fill: var(--color-icon-information-bold, #042f59);
2772
2778
  }
2773
2779
 
2774
2780
  .icon.plain_background circle[stroke] {
2775
- stroke: var(--color-icon, #4B5565);
2781
+ stroke: var(--color-icon, #4b5565);
2776
2782
  }
2777
2783
 
2778
2784
  .icon.plain_background.active circle[fill] {
2779
- fill: var(--color-icon-information-bold, #042F59);
2785
+ fill: var(--color-icon-information-bold, #042f59);
2780
2786
  }
2781
2787
 
2782
2788
  .icon.colored_background path[stroke] {
2783
- stroke: var(--color-icon-inverse, #FFFFFF);
2789
+ stroke: var(--color-icon-inverse, #ffffff);
2784
2790
  }
2785
2791
 
2786
2792
  .icon.colored_background.active path[fill] {
2787
- fill: var(--color-icon-inverse, #FFFFFF);
2793
+ fill: var(--color-icon-inverse, #ffffff);
2788
2794
  }
2789
2795
 
2790
2796
  .icon.colored_background path#Icon[fill] {
2791
- fill: var(--color-icon-inverse, #FFFFFF);
2797
+ fill: var(--color-icon-inverse, #ffffff);
2792
2798
  }
2793
2799
 
2794
2800
  .icon.colored_background.active path#Accent[fill] {
2795
- fill: var(--color-icon-inverse, #FFFFFF);
2801
+ fill: var(--color-icon-inverse, #ffffff);
2796
2802
  }
2797
2803
 
2798
2804
  .icon.colored_background circle[stroke] {
2799
- stroke: var(--color-icon-inverse, #FFFFFF);
2805
+ stroke: var(--color-icon-inverse, #ffffff);
2800
2806
  }
2801
2807
 
2802
2808
  .icon.colored_background.active circle[fill] {
2803
- fill: var(--color-icon-inverse, #FFFFFF);
2809
+ fill: var(--color-icon-inverse, #ffffff);
2804
2810
  }
2805
2811
 
2806
2812
  .icon.plain_background.default path[fill],
2807
2813
  .icon.colored_background.default path[fill],
2808
2814
  .icon.plain_background.default circle[fill],
2809
2815
  .icon.colored_background.default circle[fill] {
2810
- fill: transparent;
2816
+ fill: transparent;
2811
2817
  }
2812
2818
 
2813
2819
  /* Arrow Color Styles */
2814
- .arrow.default.plain_background path{
2815
- stroke: var(--color-icon, #4B5565);
2820
+ .arrow.default.plain_background path {
2821
+ stroke: var(--color-icon, #4b5565);
2816
2822
  }
2817
2823
 
2818
- .arrow.active.plain_background path{
2819
- stroke: var(--color-icon-information-bold, #042F59);
2824
+ .arrow.active.plain_background path {
2825
+ stroke: var(--color-icon-information-bold, #042f59);
2820
2826
  }
2821
2827
 
2822
- .arrow.default.colored_background path{
2823
- stroke: var(--color-icon-inverse, #FFFFFF);
2828
+ .arrow.default.colored_background path {
2829
+ stroke: var(--color-icon-inverse, #ffffff);
2824
2830
  }
2825
2831
 
2826
- .arrow.active.colored_background path{
2827
- stroke: var(--color-icon-inverse, #FFFFFF);
2832
+ .arrow.active.colored_background path {
2833
+ stroke: var(--color-icon-inverse, #ffffff);
2828
2834
  }
2829
2835
 
2830
- .tooltip{
2831
- position: absolute;
2832
- top: 0.2rem;
2833
- left: 4.3rem;
2834
- }
2836
+ .tooltip {
2837
+ position: absolute;
2838
+ top: 0.2rem;
2839
+ left: 4.3rem;
2840
+ }
@@ -1,17 +1,46 @@
1
1
  import { getAssetPath, h } from "@stencil/core";
2
2
  export class GbThemeTab {
3
3
  constructor() {
4
- this.currentActiveTab = 'System';
4
+ this.currentActiveTab = 'system';
5
+ this.handleSystemThemeChange = (e) => {
6
+ if (this.theme === 'system') {
7
+ this.setTheme(e.matches ? 'dark' : 'light');
8
+ }
9
+ };
10
+ }
11
+ componentWillLoad() {
12
+ const savedTheme = localStorage.getItem('preferred-theme');
13
+ this.theme = savedTheme || 'system';
14
+ this.applyTheme(this.theme);
15
+ if (this.theme === 'system') {
16
+ const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
17
+ mediaQuery.addEventListener('change', this.handleSystemThemeChange);
18
+ }
5
19
  }
6
20
  tabClicked(mode) {
7
21
  this.currentActiveTab = mode;
8
- this.themetabClicked.emit(mode);
22
+ // this.themetabClicked.emit(mode);
23
+ }
24
+ applyTheme(theme) {
25
+ let finalTheme = theme;
26
+ if (theme === 'system') {
27
+ finalTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
28
+ }
29
+ document.documentElement.setAttribute('data-theme', finalTheme);
30
+ }
31
+ setTheme(theme) {
32
+ this.currentActiveTab = theme;
33
+ this.theme = theme;
34
+ localStorage.setItem('preferred-theme', theme);
35
+ }
36
+ getSystemTheme() {
37
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
9
38
  }
10
39
  render() {
11
- const systemIconSrc = getAssetPath(`assets/computer.svg`);
40
+ const systemIconSrc = getAssetPath(`assets/laptop.svg`);
12
41
  const sunSrc = getAssetPath(`assets/sun-02.svg`);
13
42
  const moonSrc = getAssetPath(`assets/moon-02.svg`);
14
- return (h("div", { key: 'b006e9345f20557ae754cd68784c03262de09493', class: `theme_tab_div` }, h("div", { key: '24d373000fd21d5ec1664483f327ca6039176692', class: "tab" }, h("gb-icon-button-base", { key: '83bfcdc240ff0c4b102218780c00f3f343b96c08', current: this.currentActiveTab === 'System' ? true : false, icon: systemIconSrc, label: "System", onClick: () => this.tabClicked('System') })), h("div", { key: 'b15ad0722f8297dfa36337c13f96a460f44e6e06', class: "tab" }, h("gb-icon-button-base", { key: '491e23da5589232341cf149d55f2adb90455f466', current: this.currentActiveTab === 'Light' ? true : false, icon: sunSrc, label: "Light", onClick: () => this.tabClicked('Light') })), h("div", { key: 'bb9c651aa194e436f9c2d95cadaa88cfb7b3c186', class: "tab" }, h("gb-icon-button-base", { key: 'daae6cfddade0c592329bc783954f4202c385dc3', current: this.currentActiveTab === 'Dark' ? true : false, icon: moonSrc, label: "Dark", onClick: () => this.tabClicked('Dark') }))));
43
+ return (h("div", { key: '8187c214ddd6b3b90ae5627d1cbd068c9e001e24', class: `theme_tab_div` }, h("div", { key: 'a350b02ccc20fa3f618db3695529f6120c8a9846', class: "tab" }, h("gb-icon-button-base", { key: '3da749b2493f3aa2482703f266860b733205b831', current: this.currentActiveTab === 'system' ? true : false, icon: systemIconSrc, label: "System", onClick: () => this.setTheme('system') })), h("div", { key: '1c13963cce724a824ae7ff4c59d62dd2b717771e', class: "tab" }, h("gb-icon-button-base", { key: '493fb5143905efc7c440a2fac25a57de942bfd6f', current: this.currentActiveTab === 'light' ? true : false, icon: sunSrc, label: "Light", onClick: () => this.setTheme('light') })), h("div", { key: 'ae7fd2f339f10db6808668c2544666f9fa8d1c03', class: "tab" }, h("gb-icon-button-base", { key: 'cd7641bb38e2a151650edadf9d69ede0488abc10', current: this.currentActiveTab === 'dark' ? true : false, icon: moonSrc, label: "Dark", onClick: () => this.setTheme('dark') }))));
15
44
  }
16
45
  static get is() { return "gb-theme-tab"; }
17
46
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"gb-theme-tab.js","sourceRoot":"","sources":["../../../src/components/gb-theme-tab/gb-theme-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAQ7F,MAAM,OAAO,UAAU;IALvB;QAQW,qBAAgB,GAAW,QAAQ,CAAC;KAyC9C;IAvCC,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,MAAM,aAAa,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAEnD,OAAO,CACL,4DAAK,KAAK,EAAE,eAAe;YACzB,4DAAK,KAAK,EAAC,KAAK;gBACd,4EACE,OAAO,EAAE,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAC1D,IAAI,EAAE,aAAa,EACnB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GACnB,CACnB;YACN,4DAAK,KAAK,EAAC,KAAK;gBACd,4EACE,OAAO,EAAE,IAAI,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACzD,IAAI,EAAE,MAAM,EACZ,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAClB,CACnB;YACN,4DAAK,KAAK,EAAC,KAAK;gBACd,4EACE,OAAO,EAAE,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACxD,IAAI,EAAE,OAAO,EACb,KAAK,EAAC,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GACjB,CACnB,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, Prop, State, getAssetPath, h } from '@stencil/core';\r\nimport { ThemeTypes } from '../../models/reusableModels';\r\n\r\n@Component({\r\n tag: 'gb-theme-tab',\r\n styleUrl: 'gb-theme-tab.css',\r\n shadow: true,\r\n})\r\nexport class GbThemeTab {\r\n @Prop() theme: ThemeTypes;\r\n @Event() themetabClicked: EventEmitter<string>;\r\n @State() currentActiveTab: string = 'System';\r\n\r\n tabClicked(mode: string) {\r\n this.currentActiveTab = mode;\r\n this.themetabClicked.emit(mode);\r\n }\r\n\r\n render() {\r\n const systemIconSrc = getAssetPath(`assets/computer.svg`);\r\n const sunSrc = getAssetPath(`assets/sun-02.svg`);\r\n const moonSrc = getAssetPath(`assets/moon-02.svg`);\r\n\r\n return (\r\n <div class={`theme_tab_div`}>\r\n <div class=\"tab\">\r\n <gb-icon-button-base\r\n current={this.currentActiveTab === 'System' ? true : false}\r\n icon={systemIconSrc}\r\n label=\"System\"\r\n onClick={() => this.tabClicked('System')}\r\n ></gb-icon-button-base>\r\n </div>\r\n <div class=\"tab\">\r\n <gb-icon-button-base\r\n current={this.currentActiveTab === 'Light' ? true : false}\r\n icon={sunSrc}\r\n label=\"Light\"\r\n onClick={() => this.tabClicked('Light')}\r\n ></gb-icon-button-base>\r\n </div>\r\n <div class=\"tab\">\r\n <gb-icon-button-base\r\n current={this.currentActiveTab === 'Dark' ? true : false}\r\n icon={moonSrc}\r\n label=\"Dark\"\r\n onClick={() => this.tabClicked('Dark')}\r\n ></gb-icon-button-base>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"gb-theme-tab.js","sourceRoot":"","sources":["../../../src/components/gb-theme-tab/gb-theme-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, Prop, State, getAssetPath, h } from '@stencil/core';\r\nimport { ThemeTypes } from '../../models/reusableModels';\r\n\r\n@Component({\r\n tag: 'gb-theme-tab',\r\n styleUrl: 'gb-theme-tab.css',\r\n shadow: true,\r\n})\r\nexport class GbThemeTab {\r\n @Prop() theme: ThemeTypes;\r\n @Event() themetabClicked: EventEmitter<string>;\r\n @State() currentActiveTab: string = 'system';\r\n\r\n componentWillLoad() {\r\n const savedTheme = localStorage.getItem('preferred-theme') as 'light' | 'dark' | 'system';\r\n this.theme = savedTheme || 'system';\r\n\r\n this.applyTheme(this.theme);\r\n\r\n if (this.theme === 'system') {\r\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\r\n mediaQuery.addEventListener('change', this.handleSystemThemeChange);\r\n }\r\n }\r\n\r\n tabClicked(mode: string) {\r\n this.currentActiveTab = mode;\r\n // this.themetabClicked.emit(mode);\r\n }\r\n\r\n applyTheme(theme: 'light' | 'dark' | 'system') {\r\n let finalTheme = theme;\r\n if (theme === 'system') {\r\n finalTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n }\r\n\r\n document.documentElement.setAttribute('data-theme', finalTheme);\r\n }\r\n\r\n setTheme(theme: 'light' | 'dark' | 'system') {\r\n this.currentActiveTab = theme;\r\n this.theme = theme;\r\n localStorage.setItem('preferred-theme', theme);\r\n }\r\n\r\n getSystemTheme(): 'light' | 'dark' {\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n }\r\n\r\n handleSystemThemeChange = (e: MediaQueryListEvent) => {\r\n if (this.theme === 'system') {\r\n this.setTheme(e.matches ? 'dark' : 'light');\r\n }\r\n };\r\n\r\n render() {\r\n const systemIconSrc = getAssetPath(`assets/laptop.svg`);\r\n const sunSrc = getAssetPath(`assets/sun-02.svg`);\r\n const moonSrc = getAssetPath(`assets/moon-02.svg`);\r\n\r\n return (\r\n <div class={`theme_tab_div`}>\r\n <div class=\"tab\">\r\n <gb-icon-button-base\r\n current={this.currentActiveTab === 'system' ? true : false}\r\n icon={systemIconSrc}\r\n label=\"System\"\r\n onClick={() => this.setTheme('system')}\r\n ></gb-icon-button-base>\r\n </div>\r\n <div class=\"tab\">\r\n <gb-icon-button-base current={this.currentActiveTab === 'light' ? true : false} icon={sunSrc} label=\"Light\" onClick={() => this.setTheme('light')}></gb-icon-button-base>\r\n </div>\r\n <div class=\"tab\">\r\n <gb-icon-button-base current={this.currentActiveTab === 'dark' ? true : false} icon={moonSrc} label=\"Dark\" onClick={() => this.setTheme('dark')}></gb-icon-button-base>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}