tailjng 0.1.7 → 0.1.8

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 (59) hide show
  1. package/README.md +15 -1
  2. package/cli/settings/colors-config-utils.js +26 -3
  3. package/cli/templates/app.generator.js +6 -3
  4. package/package.json +1 -1
  5. package/src/colors.safelist.css +1 -1
  6. package/src/lib/components/.config/colors/README.md +2 -0
  7. package/src/lib/components/.config/colors/colors.safelist.css +1 -1
  8. package/src/lib/components/alert/alert-dialog/dialog-alert.component.css +0 -71
  9. package/src/lib/components/alert/alert-dialog/dialog-alert.component.html +7 -7
  10. package/src/lib/components/alert/alert-toast/toast-alert.component.css +0 -138
  11. package/src/lib/components/alert/alert-toast/toast-alert.component.html +12 -9
  12. package/src/lib/components/checkbox/checkbox-input/input-checkbox.component.css +0 -67
  13. package/src/lib/components/checkbox/checkbox-input/input-checkbox.component.html +11 -7
  14. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.css +3 -53
  15. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.html +17 -6
  16. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.ts +7 -0
  17. package/src/lib/components/coach-mark/coach-mark.component.html +2 -2
  18. package/src/lib/components/coach-mark/coach-mark.component.scss +1 -7
  19. package/src/lib/components/dialog/dialog.component.css +0 -102
  20. package/src/lib/components/dialog/dialog.component.html +17 -6
  21. package/src/lib/components/filter/filter-complete/complete-filter.component.html +5 -5
  22. package/src/lib/components/filter/filter-complete/complete-filter.component.scss +0 -10
  23. package/src/lib/components/form/form-sidebar/sidebar-form.component.css +23 -254
  24. package/src/lib/components/form/form-sidebar/sidebar-form.component.html +22 -10
  25. package/src/lib/components/form/form-sidebar/sidebar-form.component.ts +13 -8
  26. package/src/lib/components/input/input/input.component.css +0 -14
  27. package/src/lib/components/input/input/input.component.html +1 -1
  28. package/src/lib/components/input/input-file/file-input.component.ts +1 -1
  29. package/src/lib/components/label/label.component.ts +24 -0
  30. package/src/lib/components/menu/options-coach-menu/options-coach-menu.component.html +2 -2
  31. package/src/lib/components/menu/options-coach-menu/options-coach-menu.component.ts +2 -2
  32. package/src/lib/components/progress-bar/progress-bar.component.css +0 -11
  33. package/src/lib/components/progress-bar/progress-bar.component.html +3 -3
  34. package/src/lib/components/select/select-dropdown/dropdown-select.component.css +0 -6
  35. package/src/lib/components/select/select-dropdown/dropdown-select.component.html +3 -3
  36. package/src/lib/components/select/select-dropdown/dropdown-select.component.ts +1 -1
  37. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.component.css +0 -6
  38. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.component.html +3 -3
  39. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.component.ts +1 -1
  40. package/src/lib/components/select/select-multi-table/multi-table-select.component.css +0 -6
  41. package/src/lib/components/select/select-multi-table/multi-table-select.component.html +2 -2
  42. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.css +5 -62
  43. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.html +16 -6
  44. package/src/lib/components/table/table-complete/complete-table.component.html +6 -6
  45. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.html +14 -14
  46. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.scss +0 -63
  47. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.ts +2 -2
  48. package/src/lib/components/theme-generator/theme-generator.component.html +5 -10
  49. package/src/lib/components/toggle-radio/shared/toggle-options.util.ts +19 -1
  50. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.css +0 -113
  51. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.html +22 -9
  52. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.ts +3 -9
  53. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.css +0 -74
  54. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.html +14 -4
  55. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.ts +3 -9
  56. package/src/lib/components/viewer/viewer-image/image-viewer.component.css +0 -76
  57. package/src/lib/components/viewer/viewer-image/image-viewer.component.html +27 -10
  58. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.css +0 -152
  59. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.html +33 -12
@@ -1,34 +1,9 @@
1
- .j-switch-root {
1
+ :host {
2
2
  display: inline-flex;
3
3
  flex-direction: column;
4
4
  align-items: center;
5
- justify-content: center;
6
- gap: 0.2rem;
7
- }
8
-
9
- .j-switch-title {
10
- font-size: 0.6rem;
5
+ align-self: center;
11
6
  line-height: 1;
12
- color: var(--color-muted-foreground);
13
- user-select: none;
14
- }
15
-
16
- :host-context(.dark) .j-switch-title,
17
- :host-context(html.dark) .j-switch-title {
18
- color: var(--color-dark-muted-foreground);
19
- }
20
-
21
- .j-switch-button {
22
- display: inline-flex;
23
- padding: 0;
24
- border: 0;
25
- background: transparent;
26
- cursor: pointer;
27
- line-height: 0;
28
- }
29
-
30
- .j-switch-button:disabled {
31
- cursor: not-allowed;
32
7
  }
33
8
 
34
9
  .j-switch-button:focus-visible .j-switch-track {
@@ -36,13 +11,6 @@
36
11
  outline-offset: 2px;
37
12
  }
38
13
 
39
- .j-switch-track {
40
- position: relative;
41
- display: inline-block;
42
- border-radius: 9999px;
43
- transition: background-color 0.2s ease;
44
- }
45
-
46
14
  .j-switch-track--md {
47
15
  width: 2.5rem;
48
16
  height: 1.375rem;
@@ -54,7 +22,7 @@
54
22
  }
55
23
 
56
24
  .j-switch-track--on {
57
- background-color: var(--color-primary);
25
+ background-color: var(--color-dark-primary);
58
26
  }
59
27
 
60
28
  :host-context(.dark) .j-switch-track--on,
@@ -75,16 +43,6 @@
75
43
  opacity: 0.5;
76
44
  }
77
45
 
78
- .j-switch-thumb {
79
- position: absolute;
80
- top: 2px;
81
- left: 2px;
82
- border-radius: 9999px;
83
- background-color: #fff;
84
- box-shadow: 0 1px 3px rgb(0 0 0 / 0.18);
85
- transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
86
- }
87
-
88
46
  .j-switch-thumb--md {
89
47
  width: 1rem;
90
48
  height: 1rem;
@@ -102,11 +60,3 @@
102
60
  .j-switch-thumb--sm.j-switch-thumb--on {
103
61
  transform: translateX(0.9375rem);
104
62
  }
105
-
106
- .j-switch-loading {
107
- display: inline-flex;
108
- align-items: center;
109
- justify-content: center;
110
- min-width: 2.5rem;
111
- height: 1.375rem;
112
- }
@@ -1,24 +1,35 @@
1
- <div class="j-switch-root">
1
+ <div class="inline-flex flex-col items-center justify-start gap-1 leading-none">
2
2
  @if (title) {
3
- <span class="j-switch-title">{{ title }}</span>
3
+ <span
4
+ [ngClass]="textClasses"
5
+ class="block m-0 p-0 text-[0.6rem] leading-none whitespace-nowrap text-muted-foreground dark:text-dark-muted-foreground select-none"
6
+ >
7
+ {{ title }}
8
+ </span>
4
9
  }
5
10
 
6
11
  @if (!isLoading) {
7
12
  <button
8
13
  type="button"
9
- class="j-switch-button"
14
+ class="j-switch-button inline-flex items-center justify-center p-0 border-0 bg-transparent cursor-pointer leading-none min-h-0 h-auto disabled:cursor-not-allowed"
10
15
  role="switch"
11
16
  [attr.aria-checked]="isChecked"
12
17
  [attr.aria-label]="title || 'Toggle'"
13
18
  [disabled]="isDisabled"
14
19
  (click)="handleToggle()"
15
20
  >
16
- <span [ngClass]="trackClasses">
17
- <span [ngClass]="thumbClasses"></span>
21
+ <span
22
+ [ngClass]="trackClasses"
23
+ class="relative block shrink-0 rounded-full transition-colors duration-200 ease-in-out"
24
+ >
25
+ <span
26
+ [ngClass]="thumbClasses"
27
+ class="absolute top-[3px] left-[3px] rounded-full bg-white shadow-[0_1px_3px_rgb(0_0_0/0.18)] transition-transform duration-200 ease-[cubic-bezier(0.4,0,0.2,1)]"
28
+ ></span>
18
29
  </span>
19
30
  </button>
20
31
  } @else {
21
- <span class="j-switch-loading" aria-hidden="true">
32
+ <span class="inline-flex items-center justify-center min-w-10 h-[1.375rem]" aria-hidden="true">
22
33
  <JIcon
23
34
  [icon]="Icons.Loader2"
24
35
  [size]="20"
@@ -23,6 +23,7 @@ export class JSwitchCheckboxComponent {
23
23
  @Input() title = '';
24
24
  @Input() disabled = false;
25
25
  @Input() classes = '';
26
+ @Input() classesText = '';
26
27
  @Input() isLoading: boolean | undefined = false;
27
28
  @Input() isChecked = false;
28
29
  @Input() size: SwitchCheckboxSize = 'md';
@@ -53,6 +54,12 @@ export class JSwitchCheckboxComponent {
53
54
  };
54
55
  }
55
56
 
57
+ get textClasses(): Record<string, boolean> {
58
+ return {
59
+ [this.classesText]: !!this.classesText,
60
+ };
61
+ }
62
+
56
63
  /**
57
64
  * Class map for the thumb circle.
58
65
  */
@@ -1,6 +1,6 @@
1
1
  @if (spotlight) {
2
2
  <div
3
- class="j-spotlight fixed pointer-events-none border-2 border-white/90 dark:border-foreground/90 transition-all duration-150 ease-out"
3
+ class="j-spotlight fixed pointer-events-none border-2 border-white/90 opacity-50 shadow-[0_0_0_9999px_var(--color-foreground)] dark:border-foreground/90 transition-all duration-150 ease-out"
4
4
  [ngStyle]="spotlightStyles"
5
5
  ></div>
6
6
 
@@ -8,7 +8,7 @@
8
8
  }
9
9
 
10
10
  <div
11
- class="j-coach-card fixed rounded-2xl border border-foreground/25 dark:border-white/25 bg-white dark:bg-foreground p-3.5 text-black dark:text-white shadow-2xl z-999999"
11
+ class="j-coach-card fixed z-999999 rounded-2xl border border-foreground/25 bg-white p-3.5 text-black shadow-[0_20px_50px_rgb(0_0_0/0.28)] dark:border-white/25 dark:bg-foreground dark:text-white"
12
12
  [ngStyle]="cardStyles"
13
13
  >
14
14
  @if (contentTemplate) {
@@ -1,11 +1,5 @@
1
- .j-spotlight {
2
- box-shadow: 0 0 0 9999px var(--color-foreground);
3
- opacity: 0.5;
4
- }
5
-
6
1
  .j-coach-card {
7
2
  animation: coachIn 0.14s ease-out;
8
- box-shadow: 0 20px 50px rgb(0 0 0 / 0.28);
9
3
  }
10
4
 
11
5
  @keyframes coachIn {
@@ -18,4 +12,4 @@
18
12
  opacity: 1;
19
13
  transform: translateY(0) scale(1);
20
14
  }
21
- }
15
+ }
@@ -6,105 +6,3 @@
6
6
  margin: 0 !important;
7
7
  border-radius: 0;
8
8
  }
9
-
10
- .jdialog-header {
11
- display: flex;
12
- align-items: center;
13
- gap: 0.75rem;
14
- min-height: 3.25rem;
15
- padding: 0.625rem 0.75rem 0.625rem 1rem;
16
- border-bottom: 1px solid var(--color-border);
17
- background: linear-gradient(
18
- 180deg,
19
- color-mix(in srgb, var(--color-muted) 28%, var(--color-background)) 0%,
20
- var(--color-background) 100%
21
- );
22
- user-select: none;
23
- }
24
-
25
- :host-context(.dark) .jdialog-header,
26
- :host-context(html.dark) .jdialog-header {
27
- border-bottom-color: var(--color-dark-border);
28
- background: linear-gradient(
29
- 180deg,
30
- color-mix(in srgb, var(--color-dark-muted) 35%, var(--color-dark-background)) 0%,
31
- var(--color-dark-background) 100%
32
- );
33
- }
34
-
35
- .jdialog-header--draggable {
36
- cursor: move;
37
- }
38
-
39
- .jdialog-title {
40
- flex: 1;
41
- min-width: 0;
42
- margin: 0;
43
- font-size: 0.9375rem;
44
- font-weight: 600;
45
- line-height: 1.3;
46
- letter-spacing: -0.015em;
47
- color: var(--color-foreground);
48
- }
49
-
50
- :host-context(.dark) .jdialog-title,
51
- :host-context(html.dark) .jdialog-title {
52
- color: var(--color-dark-foreground);
53
- }
54
-
55
- .jdialog-close {
56
- display: inline-flex;
57
- align-items: center;
58
- justify-content: center;
59
- width: 2rem;
60
- height: 2rem;
61
- flex: 0 0 2rem;
62
- margin: 0;
63
- padding: 0;
64
- border: 0;
65
- border-radius: 0.375rem;
66
- background-color: transparent;
67
- color: var(--color-muted-foreground);
68
- line-height: 0;
69
- cursor: pointer;
70
- transition:
71
- color 0.15s ease,
72
- background-color 0.15s ease,
73
- transform 0.15s ease;
74
- }
75
-
76
- .jdialog-close:hover {
77
- color: var(--color-foreground);
78
- background-color: color-mix(in srgb, var(--color-muted) 55%, transparent);
79
- }
80
-
81
- .jdialog-close:active {
82
- transform: scale(0.94);
83
- }
84
-
85
- .jdialog-close:focus-visible {
86
- outline: 2px solid var(--color-ring);
87
- outline-offset: 2px;
88
- }
89
-
90
- :host-context(.dark) .jdialog-close,
91
- :host-context(html.dark) .jdialog-close {
92
- color: var(--color-dark-muted-foreground);
93
- }
94
-
95
- :host-context(.dark) .jdialog-close:hover,
96
- :host-context(html.dark) .jdialog-close:hover {
97
- color: var(--color-dark-foreground);
98
- background-color: color-mix(in srgb, var(--color-dark-muted) 50%, transparent);
99
- }
100
-
101
- .jdialog-close JIcon,
102
- .jdialog-close svg {
103
- display: block;
104
- width: 1.125rem;
105
- height: 1.125rem;
106
- }
107
-
108
- .jdialog-content {
109
- padding: 1rem;
110
- }
@@ -1,6 +1,9 @@
1
1
  @if (openModal) {
2
2
  @if (overlay) {
3
- <div class="fixed inset-0 z-[999] bg-black/50 backdrop-blur-[1px]" aria-hidden="true"></div>
3
+ <div
4
+ class="fixed inset-0 z-[999] bg-black/50 backdrop-blur-[1px]"
5
+ aria-hidden="true"
6
+ ></div>
4
7
  }
5
8
 
6
9
  <div
@@ -21,26 +24,34 @@
21
24
  [style.min-height]="!isFullScreen ? '40px' : null"
22
25
  >
23
26
  <div
24
- class="jdialog-header"
27
+ class="jdialog-header flex min-h-[3.25rem] select-none items-center gap-3 border-b border-border bg-primary py-2.5 pr-3 pl-4 dark:border-dark-border dark:bg-[linear-gradient(180deg,color-mix(in_srgb,var(--color-dark-muted)_35%,var(--color-dark-background))_0%,var(--color-dark-background)_100%)]"
25
28
  [class.jdialog-header--draggable]="draggable"
29
+ [class.cursor-move]="draggable"
26
30
  (mousedown)="draggable && startDrag($event)"
27
31
  >
28
- <h3 class="jdialog-title">
32
+ <h3
33
+ class="jdialog-title m-0 min-w-0 flex-1 text-[0.9375rem] font-semibold leading-[1.3] tracking-[-0.015em] text-white dark:text-dark-foreground"
34
+ >
29
35
  {{ title }}
30
36
  </h3>
31
37
 
32
38
  <button
33
39
  type="button"
34
- class="jdialog-close"
40
+ class="inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-dark-primary/30 dark:bg-primary/30 p-0 leading-none text-white/70 transition-[color,background-color,transform] duration-150 hover:bg-dark-primary/80 hover:dark:bg-primary/80 hover:text-white active:scale-[0.94] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring dark:hover:text-dark-foreground"
35
41
  (click)="$event.stopPropagation(); onClose()"
36
42
  aria-label="Cerrar"
37
43
  >
38
- <JIcon [icon]="Icons.X" [size]="18" [inheritParentColor]="true" [ariaHidden]="true" />
44
+ <JIcon
45
+ [icon]="Icons.X"
46
+ [size]="18"
47
+ [inheritParentColor]="true"
48
+ [ariaHidden]="true"
49
+ />
39
50
  </button>
40
51
  </div>
41
52
 
42
53
  <div
43
- class="jdialog-content"
54
+ class="jdialog-content p-4"
44
55
  [ngClass]="contentClasses"
45
56
  [ngStyle]="{ height: modalHeight }"
46
57
  >
@@ -124,7 +124,7 @@
124
124
  (closeModal)="dialogOpen = false"
125
125
  [dialogTemplate]="templateDialog"
126
126
  position="leftCenter"
127
- title="Filtros"
127
+ title="FILTROS"
128
128
  [width]="220"
129
129
  height="auto"
130
130
  [overlay]="false"
@@ -134,13 +134,13 @@
134
134
  </div>
135
135
 
136
136
  <ng-template #templateDialog>
137
- <div class="jfilter-filters-dialog-body">
137
+ <div class="m-0">
138
138
  @if (filtersSelect.length > 0) {
139
139
  <div class="flex flex-col gap-2">
140
140
  @for (filter of filtersSelect; track $index) {
141
141
  @if (filter.isVisible ?? true) {
142
142
  @if (filter.type === "dropdown") {
143
- <div class="jfilter-filters-dialog-field">
143
+ <div class="relative">
144
144
  <JDropdownSelect
145
145
  [type]="'dropdown'"
146
146
  [(ngModel)]="filter.selected"
@@ -162,7 +162,7 @@
162
162
 
163
163
  <!-- Searchable -->
164
164
  @if (filter.type === "searchable") {
165
- <div class="jfilter-filters-dialog-field">
165
+ <div class="relative">
166
166
  <JDropdownSelect
167
167
  [type]="'searchable'"
168
168
  [(ngModel)]="filter.selected"
@@ -185,7 +185,7 @@
185
185
  }
186
186
 
187
187
  @if (filter.type === "multi-table") {
188
- <div class="jfilter-filters-dialog-field">
188
+ <div class="relative">
189
189
  <JMultiTableSelect
190
190
  [(ngModel)]="filter.selected"
191
191
  (selectionChange)="
@@ -1,5 +1,3 @@
1
- /* Scoped overrides for the filters JDialog only — does not affect JDialog globally. */
2
-
3
1
  :host ::ng-deep .jfilter-filters-dialog-host .jfilter-filters-dialog.jdialog-panel {
4
2
  overflow: hidden;
5
3
  border-radius: 0.75rem;
@@ -25,11 +23,3 @@
25
23
  :host ::ng-deep .jfilter-filters-dialog-host .jfilter-filters-dialog .jdialog-content {
26
24
  padding: 0.5rem 0.625rem 0.625rem;
27
25
  }
28
-
29
- .jfilter-filters-dialog-body {
30
- margin: 0;
31
- }
32
-
33
- .jfilter-filters-dialog-field {
34
- position: relative;
35
- }
@@ -2,16 +2,7 @@
2
2
  display: contents;
3
3
  }
4
4
 
5
- .j-form-sidebar-overlay {
6
- position: fixed;
7
- inset: 0;
8
- z-index: 998;
9
- background-color: rgb(0 0 0 / 0.5);
10
- backdrop-filter: blur(1px);
11
- animation: j-form-sidebar-overlay-in 300ms ease-out;
12
- }
13
-
14
- @keyframes j-form-sidebar-overlay-in {
5
+ @keyframes sidebar-overlay-in {
15
6
  from {
16
7
  opacity: 0;
17
8
  }
@@ -21,256 +12,34 @@
21
12
  }
22
13
  }
23
14
 
24
- .j-form-sidebar {
25
- position: fixed;
26
- top: 0;
27
- z-index: 999;
28
- display: flex;
29
- flex-direction: column;
30
- max-width: 100%;
31
- height: 100%;
32
- overflow: hidden;
33
- border: 1px solid var(--color-border);
34
- background-color: var(--color-background);
35
- }
36
-
37
- .j-form-sidebar--right {
38
- right: 0;
39
- border-right: 0;
40
- border-radius: 0.75rem 0 0 0.75rem;
41
- box-shadow: -8px 0 32px rgb(0 0 0 / 0.12);
42
- }
43
-
44
- .j-form-sidebar--left {
45
- left: 0;
46
- border-left: 0;
47
- border-radius: 0 0.75rem 0.75rem 0;
48
- box-shadow: 8px 0 32px rgb(0 0 0 / 0.12);
49
- }
50
-
51
- :host-context(.dark) .j-form-sidebar,
52
- :host-context(html.dark) .j-form-sidebar {
53
- border-color: var(--color-dark-border);
54
- background-color: var(--color-dark-background);
55
- }
56
-
57
- :host-context(.dark) .j-form-sidebar--right,
58
- :host-context(html.dark) .j-form-sidebar--right {
59
- box-shadow: -8px 0 32px rgb(0 0 0 / 0.35);
60
- }
61
-
62
- :host-context(.dark) .j-form-sidebar--left,
63
- :host-context(html.dark) .j-form-sidebar--left {
64
- box-shadow: 8px 0 32px rgb(0 0 0 / 0.35);
65
- }
66
-
67
- .j-form-sidebar--small {
68
- width: 22em;
69
- }
70
-
71
- .j-form-sidebar--medium {
72
- width: 30em;
73
- }
74
-
75
- .j-form-sidebar--large {
76
- width: 47em;
77
- }
78
-
79
- .j-form-sidebar--xlarge {
80
- width: 65em;
81
- }
82
-
83
- .j-form-sidebar-header {
84
- display: flex;
85
- align-items: center;
86
- gap: 0.75rem;
87
- min-height: 3.25rem;
88
- padding: 0.625rem 0.75rem 0.625rem 1rem;
89
- border-bottom: 1px solid var(--color-border);
90
- background: linear-gradient(
91
- 180deg,
92
- color-mix(in srgb, var(--color-muted) 28%, var(--color-background)) 0%,
93
- var(--color-background) 100%
94
- );
95
- flex-shrink: 0;
96
- }
97
-
98
- :host-context(.dark) .j-form-sidebar-header,
99
- :host-context(html.dark) .j-form-sidebar-header {
100
- border-bottom-color: var(--color-dark-border);
101
- background: linear-gradient(
102
- 180deg,
103
- color-mix(in srgb, var(--color-dark-muted) 35%, var(--color-dark-background)) 0%,
104
- var(--color-dark-background) 100%
105
- );
106
- }
107
-
108
- .j-form-sidebar-title-wrap {
109
- display: inline-flex;
110
- align-items: center;
111
- gap: 0.375rem;
112
- flex: 1;
113
- min-width: 0;
114
- }
115
-
116
- .j-form-sidebar-title {
117
- flex: 1;
118
- min-width: 0;
119
- margin: 0;
120
- font-size: 0.9375rem;
121
- font-weight: 600;
122
- line-height: 1.3;
123
- letter-spacing: -0.015em;
124
- color: var(--color-foreground);
125
- white-space: nowrap;
126
- overflow: hidden;
127
- text-overflow: ellipsis;
128
- }
129
-
130
- :host-context(.dark) .j-form-sidebar-title,
131
- :host-context(html.dark) .j-form-sidebar-title {
132
- color: var(--color-dark-foreground);
133
- }
134
-
135
- .j-form-sidebar-info {
136
- display: inline-flex;
137
- align-items: center;
138
- justify-content: center;
139
- width: 1.5rem;
140
- height: 1.5rem;
141
- flex: 0 0 1.5rem;
142
- padding: 0;
143
- border: 0;
144
- border-radius: 0.375rem;
145
- background: transparent;
146
- color: var(--color-muted-foreground);
147
- cursor: pointer;
148
- transition:
149
- color 0.15s ease,
150
- background-color 0.15s ease;
151
- }
152
-
153
- .j-form-sidebar-info:hover {
154
- color: var(--color-foreground);
155
- background-color: color-mix(in srgb, var(--color-muted) 55%, transparent);
15
+ .animate-sidebar-overlay-in {
16
+ animation: sidebar-overlay-in 300ms ease-out;
156
17
  }
157
18
 
158
- .j-form-sidebar-info:focus-visible {
159
- outline: 2px solid var(--color-ring);
160
- outline-offset: 2px;
161
- }
19
+ .scroll-element {
20
+ margin-right: 2px;
162
21
 
163
- :host-context(.dark) .j-form-sidebar-info,
164
- :host-context(html.dark) .j-form-sidebar-info {
165
- color: var(--color-dark-muted-foreground);
166
- }
167
-
168
- :host-context(.dark) .j-form-sidebar-info:hover,
169
- :host-context(html.dark) .j-form-sidebar-info:hover {
170
- color: var(--color-dark-foreground);
171
- background-color: color-mix(in srgb, var(--color-dark-muted) 50%, transparent);
172
- }
173
-
174
- .j-form-sidebar-header-actions {
175
- display: inline-flex;
176
- align-items: center;
177
- gap: 0.5rem;
178
- flex-shrink: 0;
179
- }
180
-
181
- .j-form-sidebar-close {
182
- display: inline-flex;
183
- align-items: center;
184
- justify-content: center;
185
- width: 2rem;
186
- height: 2rem;
187
- flex: 0 0 2rem;
188
- margin: 0;
189
- padding: 0;
190
- border: 0;
191
- border-radius: 0.375rem;
192
- background-color: transparent;
193
- color: var(--color-muted-foreground);
194
- line-height: 0;
195
- cursor: pointer;
196
- transition:
197
- color 0.15s ease,
198
- background-color 0.15s ease,
199
- transform 0.15s ease;
200
- }
201
-
202
- .j-form-sidebar-close:hover {
203
- color: var(--color-foreground);
204
- background-color: color-mix(in srgb, var(--color-muted) 55%, transparent);
205
- }
206
-
207
- .j-form-sidebar-close:active {
208
- transform: scale(0.94);
209
- }
210
-
211
- .j-form-sidebar-close:focus-visible {
212
- outline: 2px solid var(--color-ring);
213
- outline-offset: 2px;
214
- }
215
-
216
- :host-context(.dark) .j-form-sidebar-close,
217
- :host-context(html.dark) .j-form-sidebar-close {
218
- color: var(--color-dark-muted-foreground);
219
- }
220
-
221
- :host-context(.dark) .j-form-sidebar-close:hover,
222
- :host-context(html.dark) .j-form-sidebar-close:hover {
223
- color: var(--color-dark-foreground);
224
- background-color: color-mix(in srgb, var(--color-dark-muted) 50%, transparent);
225
- }
226
-
227
- .j-form-sidebar-body {
228
- flex: 1 1 auto;
229
- min-height: 0;
230
- padding: 1rem;
231
- overflow-x: hidden;
232
- overflow-y: auto;
233
- color: var(--color-foreground);
234
- }
235
-
236
- :host-context(.dark) .j-form-sidebar-body,
237
- :host-context(html.dark) .j-form-sidebar-body {
238
- color: var(--color-dark-foreground);
239
- }
240
-
241
- .j-form-sidebar-footer {
242
- display: flex;
243
- justify-content: center;
244
- gap: 0.75rem;
245
- flex-shrink: 0;
246
- padding: 1rem;
247
- border-top: 1px solid var(--color-border);
248
- background-color: color-mix(in srgb, var(--color-muted) 18%, var(--color-background));
249
- }
250
-
251
- :host-context(.dark) .j-form-sidebar-footer,
252
- :host-context(html.dark) .j-form-sidebar-footer {
253
- border-top-color: var(--color-dark-border);
254
- background-color: color-mix(in srgb, var(--color-dark-muted) 22%, var(--color-dark-background));
255
- }
256
-
257
- .j-form-sidebar-coach {
258
- font-size: 0.75rem;
259
- line-height: 1.25rem;
260
- }
261
-
262
- @media (max-width: 767px) {
263
- .j-form-sidebar {
264
- width: 100% !important;
265
- max-width: 100%;
266
- border-radius: 0;
22
+ &::-webkit-scrollbar {
23
+ width: 8px !important;
267
24
  }
268
25
 
269
- .j-form-sidebar--right {
270
- border-left: 0;
26
+ &::-webkit-scrollbar-thumb {
27
+ border-radius: 10px;
28
+ background: color-mix(in srgb, var(--color-primary) 65%, transparent);
29
+ transition: background-color 0.5s ease;
271
30
  }
272
31
 
273
- .j-form-sidebar--left {
274
- border-right: 0;
32
+ &::-webkit-scrollbar-thumb:hover {
33
+ background: var(--color-primary);
275
34
  }
276
35
  }
36
+
37
+ :host-context(.dark) .scroll-element::-webkit-scrollbar-thumb,
38
+ :host-context(html.dark) .scroll-element::-webkit-scrollbar-thumb {
39
+ background: color-mix(in srgb, var(--color-dark-primary) 45%, transparent);
40
+ }
41
+
42
+ :host-context(.dark) .scroll-element::-webkit-scrollbar-thumb:hover,
43
+ :host-context(html.dark) .scroll-element::-webkit-scrollbar-thumb:hover {
44
+ background: color-mix(in srgb, var(--color-dark-primary) 70%, transparent);
45
+ }