@sapphire-ion/framework 1.0.15 → 1.0.17

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 (29) hide show
  1. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +3 -3
  2. package/esm2022/lib/components/drawer/drawer.component.mjs +52 -13
  3. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +2 -2
  4. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +2 -2
  5. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +2 -2
  6. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +2 -2
  7. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +2 -2
  8. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +2 -2
  9. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +2 -2
  10. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +2 -2
  11. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +3 -3
  12. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +2 -2
  13. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +2 -2
  14. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +2 -2
  15. package/esm2022/lib/components/main-content/main-content.component.mjs +38 -6
  16. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +29 -12
  17. package/esm2022/lib/services/auth.service.mjs +5 -1
  18. package/fesm2022/sapphire-ion-framework.mjs +130 -48
  19. package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
  20. package/lib/components/drawer/drawer.component.d.ts +12 -2
  21. package/lib/components/main-content/main-content.component.d.ts +9 -1
  22. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +7 -4
  23. package/lib/components/stepper/step/step.component.d.ts +1 -1
  24. package/package.json +1 -1
  25. package/themes/compiled-styles.scss +26 -0
  26. package/themes/components/drawer/drawer-group/drawer-group.component.scss +54 -14
  27. package/themes/components/drawer/drawer.component.scss +58 -2
  28. package/themes/components/inputs/inputs.scss +1 -1
  29. package/themes/styles/core.styles.scss +1 -1
@@ -1,7 +1,13 @@
1
- import { EventEmitter, InputSignal, Signal } from '@angular/core';
1
+ import { EventEmitter, InputSignal, Signal, WritableSignal } from '@angular/core';
2
+ import { NavController } from '@ionic/angular';
2
3
  import { Menu } from './menu';
4
+ import { Router } from '@angular/router';
5
+ import { GenericService } from '../../services/generics.service';
3
6
  import * as i0 from "@angular/core";
4
7
  export declare class DrawerComponent {
8
+ router: Router;
9
+ private navController;
10
+ private genericService;
5
11
  TranslationModule: any;
6
12
  loading: boolean;
7
13
  lstMenu: InputSignal<Menu[]>;
@@ -10,12 +16,16 @@ export declare class DrawerComponent {
10
16
  colapsedChange: EventEmitter<boolean>;
11
17
  title: string;
12
18
  useTranslation: boolean;
13
- constructor();
19
+ constructor(router: Router, navController: NavController, genericService: GenericService);
14
20
  CurrentGroupActive: Menu;
15
21
  ToggleCollapsed(): void;
16
22
  _enterColapsed: boolean;
17
23
  onMouseEnter(): void;
18
24
  onMouseLeave(): void;
25
+ HandleNav(item: Menu | any, event: MouseEvent): void;
26
+ SetTitle(item: Menu): void;
27
+ search: WritableSignal<string>;
28
+ lstMenuFiltered: Signal<Menu[]>;
19
29
  static ɵfac: i0.ɵɵFactoryDeclaration<DrawerComponent, never>;
20
30
  static ɵcmp: i0.ɵɵComponentDeclaration<DrawerComponent, "drawer", never, { "loading": { "alias": "loading"; "required": false; }; "lstMenu": { "alias": "lstMenu"; "required": false; "isSignal": true; }; "colapsed": { "alias": "colapsed"; "required": false; }; "title": { "alias": "title"; "required": false; }; "useTranslation": { "alias": "useTranslation"; "required": false; }; }, { "colapsedChange": "colapsedChange"; }, never, ["[slot=logo]", "[slot=drawer]"], true, never>;
21
31
  }
@@ -10,10 +10,18 @@ export declare class MainContentComponent implements OnInit {
10
10
  drawerComponent: DrawerComponent;
11
11
  constructor(authService: AuthService);
12
12
  Token: any;
13
- ngOnInit(): void;
13
+ ngOnInit(): Promise<void>;
14
+ Theme: Theme;
15
+ SetTheme(theme: Theme): Promise<void>;
14
16
  get fullScreen(): boolean;
15
17
  FullScreenConteiner: any;
16
18
  FullScreen(): void;
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<MainContentComponent, never>;
18
20
  static ɵcmp: i0.ɵɵComponentDeclaration<MainContentComponent, "main-content", never, { "backdrop": { "alias": "backdrop"; "required": false; }; "shadowColor": { "alias": "shadowColor"; "required": false; }; "colapsed": { "alias": "colapsed"; "required": false; }; "drawerComponent": { "alias": "drawerComponent"; "required": false; }; }, {}, never, ["[slot=start]", "[slot=end]", "[slot=user-popover]", "*"], true, never>;
19
21
  }
22
+ declare enum Theme {
23
+ System = 0,
24
+ Light = 1,
25
+ Dark = 2
26
+ }
27
+ export {};
@@ -1,9 +1,10 @@
1
- import { ElementRef, EventEmitter, OnDestroy, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';
1
+ import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, TemplateRef, ViewContainerRef } from '@angular/core';
2
2
  import { ComputePositionReturn, Placement } from '@floating-ui/dom';
3
3
  import * as i0 from "@angular/core";
4
4
  type Fill = 'solid' | 'outline' | 'blur' | 'clear';
5
- export declare class SIonPopoverComponent implements OnDestroy {
5
+ export declare class SIonPopoverComponent implements OnDestroy, OnInit {
6
6
  private viewContainerRef;
7
+ private ngZone;
7
8
  fill: Fill;
8
9
  arrow: boolean;
9
10
  flip: boolean;
@@ -15,7 +16,7 @@ export declare class SIonPopoverComponent implements OnDestroy {
15
16
  onWillDismiss: EventEmitter<void>;
16
17
  onDidDismiss: EventEmitter<void>;
17
18
  anchor: HTMLElement | undefined;
18
- constructor(viewContainerRef: ViewContainerRef);
19
+ constructor(viewContainerRef: ViewContainerRef, ngZone: NgZone);
19
20
  popoverTemplate: TemplateRef<any>;
20
21
  contentContainer: ElementRef<HTMLDivElement>;
21
22
  arrowElement: ElementRef<HTMLElement>;
@@ -27,7 +28,9 @@ export declare class SIonPopoverComponent implements OnDestroy {
27
28
  present(event?: Event): Promise<void>;
28
29
  GetComputePositionReturn(refEl: HTMLElement, popEl: HTMLElement, arrowEl: HTMLElement): Promise<ComputePositionReturn>;
29
30
  private CreatePopoverInBody;
30
- HandleClicks(event: MouseEvent): void;
31
+ onClick(event: MouseEvent): void;
32
+ documentClickListener: (event: MouseEvent) => void;
33
+ ngOnInit(): void;
31
34
  dismiss(): Promise<void>;
32
35
  ngOnDestroy(): void;
33
36
  static ɵfac: i0.ɵɵFactoryDeclaration<SIonPopoverComponent, never>;
@@ -9,7 +9,7 @@ export declare class StepComponent implements OnInit {
9
9
  get index(): number;
10
10
  get fill(): boolean;
11
11
  get selected(): boolean;
12
- get _fill(): 1 | 0;
12
+ get _fill(): 0 | 1;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<StepComponent, never>;
14
14
  static ɵcmp: i0.ɵɵComponentDeclaration<StepComponent, "step", never, { "label": { "alias": "label"; "required": false; }; }, {}, never, ["ion-icon, ion-text"], false, never>;
15
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapphire-ion/framework",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^18.2.8",
@@ -1555,6 +1555,10 @@ video {
1555
1555
  align-items: center;
1556
1556
  }
1557
1557
 
1558
+ .\!justify-start {
1559
+ justify-content: flex-start !important;
1560
+ }
1561
+
1558
1562
  .justify-start {
1559
1563
  justify-content: flex-start;
1560
1564
  }
@@ -1828,6 +1832,10 @@ video {
1828
1832
  border-right-width: 2px;
1829
1833
  }
1830
1834
 
1835
+ .border-t {
1836
+ border-top-width: 1px;
1837
+ }
1838
+
1831
1839
  .border-solid {
1832
1840
  border-style: solid;
1833
1841
  }
@@ -1976,6 +1984,11 @@ video {
1976
1984
  padding-right: 0px !important;
1977
1985
  }
1978
1986
 
1987
+ .\!py-2 {
1988
+ padding-top: 0.5rem !important;
1989
+ padding-bottom: 0.5rem !important;
1990
+ }
1991
+
1979
1992
  .px-1 {
1980
1993
  padding-left: 0.25rem;
1981
1994
  padding-right: 0.25rem;
@@ -2035,6 +2048,10 @@ video {
2035
2048
  padding-bottom: 0px !important;
2036
2049
  }
2037
2050
 
2051
+ .\!pl-8 {
2052
+ padding-left: 2rem !important;
2053
+ }
2054
+
2038
2055
  .\!pr-0 {
2039
2056
  padding-right: 0px !important;
2040
2057
  }
@@ -2051,6 +2068,10 @@ video {
2051
2068
  padding-left: 0.75rem;
2052
2069
  }
2053
2070
 
2071
+ .pl-4 {
2072
+ padding-left: 1rem;
2073
+ }
2074
+
2054
2075
  .pl-8 {
2055
2076
  padding-left: 2rem;
2056
2077
  }
@@ -2273,6 +2294,11 @@ video {
2273
2294
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2274
2295
  }
2275
2296
 
2297
+ .drop-shadow {
2298
+ --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
2299
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2300
+ }
2301
+
2276
2302
  .grayscale {
2277
2303
  --tw-grayscale: grayscale(100%);
2278
2304
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@@ -1,21 +1,61 @@
1
1
 
2
- .bg-active{
3
- --color-primary: var(--ion-color-primary) !important;
4
- --step-1-opacity: 0.7 !important;
5
- --step-2-opacity: 0.3 !important;
6
- // --background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important;
7
- }
8
- .bg-inactive{
9
- --color-primary: var(--ion-color-step-250);
10
- --step-1-opacity: .5;
11
- --step-2-opacity: .4;
12
- --step-3-opacity: .8;
13
- }
14
2
  .menu{
15
- @apply rounded-xl cursor-pointer p-1.5 flex items-center justify-start gap-2;
3
+ @apply rounded-xl cursor-pointer p-1.5 flex items-center justify-start shrink-0 overflow-hidden;
16
4
  transition: --color-primary, --step-1-opacity, --step-2-opacity .2s ease-in-out;
17
- --inset: var(--color-primary) 0px 1.75px 1px 0px inset;
5
+ --inset: var(--color-primary) 0px 1.75px 2px 0px inset;
18
6
  box-shadow: var(--inset);
7
+ .content{
8
+ @apply flex items-center justify-start gap-2;
9
+ }
10
+
11
+
12
+ &.bg-active{
13
+ &::after{
14
+ content: '';
15
+ position: absolute;
16
+ top: 50%;
17
+ right: 0;
18
+ width: .375rem;
19
+ height: 75%;
20
+ transform: translateY(-50%);
21
+ border-radius: inherit;
22
+ background-color: color-mix(in srgb, var(--ion-color-primary) 70%, transparent);
23
+ opacity: 1 !important;
24
+
25
+ filter: drop-shadow(color-mix(in srgb, var(--ion-color-primary) 70%, transparent) 0px 0px 3px)
26
+ }
27
+ &::before{
28
+ content: "";
29
+ position: absolute;
30
+ top: 50%;
31
+ right: -2.3rem;
32
+ width: 5rem;
33
+ height: 7rem;
34
+ transform: translateY(-50%);
35
+ border-radius: inherit;
36
+ opacity: .5 !important;
37
+ background: radial-gradient(color-mix(in srgb, var(--ion-color-primary) 70%, transparent) 0%, transparent 66%);
38
+ }
39
+ }
40
+ &.bg-inactive{
41
+ --color-primary: var(--ion-color-step-250);
42
+ --step-1-opacity: .5;
43
+ --step-2-opacity: .4;
44
+ --step-3-opacity: .8;
45
+ position: relative;
46
+ &::after{
47
+ content: '';
48
+ opacity: 0;
49
+ transition: opacity .2s ease-in-out;
50
+ will-change: opacity;
51
+ }
52
+ &::before{
53
+ content: '';
54
+ opacity: 0;
55
+ transition: opacity .2s ease-in-out;
56
+ will-change: opacity;
57
+ }
58
+ }
19
59
  }
20
60
 
21
61
  .header{
@@ -60,10 +60,66 @@
60
60
  .menu{
61
61
  @apply rounded-xl cursor-pointer p-2 flex items-center justify-center gap-2;
62
62
  transition: --color-primary, --step-1-opacity, --step-2-opacity .2s ease-in-out;
63
- --inset: var(--color-primary) 0px 1.75px 1px 0px inset;
63
+ --inset: var(--color-primary) 0px 1.75px 2px 0px inset;
64
64
  box-shadow: var(--inset);
65
65
  }
66
66
  .toggle:hover{
67
67
  --color-primary: var(--ion-color-step-500) !important;
68
68
  transition: --color-primary .2s ease-in-out;
69
- }
69
+ }
70
+
71
+ .search-button{
72
+ --inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;
73
+ box-shadow: var(--inset2);
74
+ }
75
+
76
+ .menu-search{
77
+ @apply relative overflow-hidden cursor-pointer;
78
+ &.bg-active{
79
+ &::after{
80
+ content: '';
81
+ position: absolute;
82
+ top: 50%;
83
+ right: 0;
84
+ width: .375rem;
85
+ height: 75%;
86
+ transform: translateY(-50%);
87
+ border-radius: 1rem;
88
+ background-color: color-mix(in srgb, var(--ion-color-primary) 70%, transparent);
89
+ opacity: 1 !important;
90
+
91
+ filter: drop-shadow(color-mix(in srgb, var(--ion-color-primary) 70%, transparent) 0px 0px 3px)
92
+ }
93
+ &::before{
94
+ content: "";
95
+ position: absolute;
96
+ top: 50%;
97
+ right: -2.3rem;
98
+ width: 5rem;
99
+ height: 7rem;
100
+ transform: translateY(-50%);
101
+ border-radius: 1rem;
102
+ opacity: .5 !important;
103
+ background: radial-gradient(color-mix(in srgb, var(--ion-color-primary) 70%, transparent) 0%, transparent 66%);
104
+ }
105
+ }
106
+ &.bg-inactive{
107
+ --color-primary: var(--ion-color-step-250);
108
+ --step-1-opacity: .5;
109
+ --step-2-opacity: .4;
110
+ --step-3-opacity: .8;
111
+ position: relative;
112
+ &::after{
113
+ content: '';
114
+ opacity: 0;
115
+ transition: opacity .2s ease-in-out;
116
+ will-change: opacity;
117
+ }
118
+ &::before{
119
+ content: '';
120
+ opacity: 0;
121
+ transition: opacity .2s ease-in-out;
122
+ will-change: opacity;
123
+ }
124
+ }
125
+ }
@@ -35,7 +35,7 @@
35
35
  --color: var(--ion-color-dark);
36
36
  --input-color: var(--input-background, var(--ion-color-step-250));
37
37
  --shadow: 0 3px 4px -1px rgb(0 0 0 / 0.1);
38
- --inset-shadow: var(--input-color) 0px 1.75px 1px 0px inset;
38
+ --inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;
39
39
  --focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);
40
40
 
41
41
  box-shadow: var(--inset-shadow), var(--shadow);
@@ -463,4 +463,4 @@ text-tooltip{
463
463
  hsl(from var(--color-primary , var(--ion-color-primary)) h s l / var(--step-1-opacity, 0.7)),
464
464
  hsl(from var(--color-primary , var(--ion-color-primary)) h s l / var(--step-2-opacity, 0.3))),
465
465
  hsl(from var(--color-secondary, var(--ion-color-light)) h s l / var(--step-3-opacity, 0.2));
466
- }
466
+ }