@nuralyui/tabs 0.0.12 → 0.0.15

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.
package/tabs.style.d.ts CHANGED
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Tabs component styles for the Hybrid UI Library
3
+ * Using shared CSS variables from /src/shared/themes/
4
+ *
5
+ * This file contains all the styling for the nr-tabs component with
6
+ * clean CSS variable usage without local fallbacks and proper theme switching support.
7
+ */
1
8
  export declare const styles: import("lit").CSSResult;
2
9
  //# sourceMappingURL=tabs.style.d.ts.map
package/tabs.style.js CHANGED
@@ -1,199 +1,332 @@
1
1
  import { css } from 'lit';
2
+ /**
3
+ * Tabs component styles for the Hybrid UI Library
4
+ * Using shared CSS variables from /src/shared/themes/
5
+ *
6
+ * This file contains all the styling for the nr-tabs component with
7
+ * clean CSS variable usage without local fallbacks and proper theme switching support.
8
+ */
2
9
  export const styles = css `
3
- :host{
10
+ :host {
4
11
  display: block;
5
12
  height: 100%;
13
+
14
+ /* Force CSS custom property inheritance to ensure theme switching works properly */
15
+ color: var(--nuraly-color-text);
16
+ background-color: var(--nuraly-color-background);
17
+
18
+ /* Minimal transitions for better performance */
19
+
6
20
  }
7
- .tabs-container{
8
- border-radius: var(--hybrid-tabs-border-radius, var(--hybrid-tabs-border-radius-local));
9
- background-color:var(--hybrid-tabs-container-background-color, var(--hybrid-tabs-container-background-local-color));
10
- height: 100%;
11
- }
12
- .tab-labels,
13
- .tabs-container {
14
- display: flex;
21
+
22
+ /* Force re-evaluation of theme-dependent properties on theme change */
23
+ :host([data-theme]) {
24
+ color: inherit;
25
+ background-color: inherit;
15
26
  }
16
27
 
17
28
  .tabs-container {
18
- box-shadow: var(--hybrid-tabs-container-box-shadow);
29
+ display: flex;
30
+ height: 100%;
31
+ background-color: var(--nuraly-color-background);
32
+ border-radius: var(--nuraly-border-radius-tabs, var(--nuraly-border-radius-medium, 0));
33
+ box-shadow: var(--nuraly-shadow-tabs);
19
34
  }
20
35
 
21
- .dragging-start {
22
- border: var(--hybrid-tabs-dragging-start-border);
36
+ .tab-labels {
37
+ display: flex;
38
+ background-color: var(--nuraly-color-tabs-header-background);
39
+ border: var(--nuraly-border-tabs-header);
23
40
  }
24
- .dragging-enter {
25
- background-color: var(--hybrid-tabs-dragging-enter-background-color);
41
+
42
+ /* Tab label base styles */
43
+ .tab-label {
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ gap: var(--nuraly-spacing-2);
48
+ position: relative;
49
+ cursor: pointer;
50
+ padding: var(--nuraly-spacing-tabs-padding, var(--nuraly-spacing-3) var(--nuraly-spacing-4));
51
+ border: var(--nuraly-border-tabs-label);
52
+ border-bottom: var(--nuraly-border-width-medium, 2px) solid transparent;
53
+ background-color: var(--nuraly-color-tabs-label-background);
54
+ color: var(--nuraly-color-tabs-label-text);
55
+ font-family: var(--nuraly-font-family);
56
+ font-size: var(--nuraly-font-size-body);
57
+ font-weight: var(--nuraly-font-weight-regular);
58
+ user-select: none;
59
+ white-space: nowrap;
60
+
61
+ &:hover {
62
+ color: var(--nuraly-color-tabs-label-text-hover);
63
+ background-color: var(--nuraly-color-tabs-label-background-hover);
64
+ border-color: var(--nuraly-color-tabs-label-border-hover);
65
+ }
66
+
67
+ &:focus {
68
+ outline: var(--nuraly-focus-outline);
69
+ outline-offset: var(--nuraly-focus-outline-offset);
70
+ }
71
+
72
+ &.active {
73
+ color: var(--nuraly-color-tabs-label-text-active);
74
+ background-color: var(--nuraly-color-tabs-label-background-active);
75
+ border-color: var(--nuraly-color-tabs-label-border-active);
76
+ font-weight: var(--nuraly-font-weight-semibold);
77
+ }
78
+
79
+ /* Positioning-specific border radius for horizontal tabs */
80
+ &.first-tab {
81
+ border-radius: var(--nuraly-border-radius-tabs-first);
82
+ }
83
+
84
+ &.middle-tab {
85
+ border-radius: var(--nuraly-border-radius-tabs-middle);
86
+ }
87
+
88
+ &.last-tab {
89
+ border-radius: var(--nuraly-border-radius-tabs-last);
90
+ }
91
+
92
+ &.single-tab {
93
+ border-radius: var(--nuraly-border-radius-tabs-single);
94
+ }
95
+
96
+ &.disabled {
97
+ cursor: not-allowed;
98
+ color: var(--nuraly-color-text-disabled);
99
+ background-color: var(--nuraly-color-background-disabled);
100
+
101
+ &:hover {
102
+ color: var(--nuraly-color-text-disabled);
103
+ background-color: var(--nuraly-color-background-disabled);
104
+ border-color: transparent;
105
+ }
106
+ }
26
107
  }
27
- .vertical-align > .tab-content {
28
- border: var(--hybrid-tabs-va-enter-border);
29
- border-left: var(--hybrid-tabs-va-enter-border-left);
108
+
109
+ /* Tab icon styling */
110
+ .tab-icon {
111
+ flex-shrink: 0;
112
+ width: var(--nuraly-tabs-icon-size, 1rem);
113
+ height: var(--nuraly-tabs-icon-size, 1rem);
114
+ color: inherit;
30
115
  }
31
- .vertical-align.right-align > .tab-content {
32
- border: var(--hybrid-tabs-va-ra-border);
33
- border-right: var(--hybrid-tabs-va-ra-border-right);
116
+
117
+ /* Tab text styling */
118
+ .tab-text {
119
+ flex: 1;
120
+ color: inherit;
121
+
122
+ &[contenteditable="true"] {
123
+ cursor: text;
124
+ outline: none;
125
+
126
+ &:focus {
127
+ background-color: var(--nuraly-color-tabs-edit-background);
128
+ border-radius: var(--nuraly-border-radius-small);
129
+ padding: var(--nuraly-spacing-1);
130
+ }
131
+ }
34
132
  }
35
133
 
36
- .tab-label {
37
- cursor: var(--hybrid-tabs-label-cursor);
38
- padding: var(--hybrid-tabs-label-padding);
39
- border-bottom: var(--hybrid-tabs-label-border-bottom);
40
- transition: var(--hybrid-tabs-label-transition);
41
- user-select: var(--hybrid-tabs-label-user-select);
42
- color:var(--hybrid-tabs-label-color);
134
+ /* Close/delete icon styling */
135
+ .close-icon {
136
+ flex-shrink: 0;
137
+ width: var(--nuraly-tabs-close-icon-size, 0.875rem);
138
+ height: var(--nuraly-tabs-close-icon-size, 0.875rem);
139
+ color: var(--nuraly-color-tabs-close-icon);
140
+ cursor: pointer;
141
+ padding: var(--nuraly-spacing-1);
142
+ border-radius: var(--nuraly-border-radius-small);
143
+
144
+ &:hover {
145
+ color: var(--nuraly-color-tabs-close-icon-hover);
146
+ background-color: var(--nuraly-color-tabs-close-icon-background-hover);
147
+ }
148
+
149
+ &:active {
150
+ color: var(--nuraly-color-tabs-close-icon-active);
151
+ background-color: var(--nuraly-color-tabs-close-icon-background-active);
152
+ }
43
153
  }
44
154
 
45
- .tab-label:hover {
46
- color: var(--hybrid-tabs-label-hover-color);
155
+ /* Add tab button styling */
156
+ .add-tab-label {
157
+ min-width: auto;
158
+ width: var(--nuraly-tabs-add-button-size, 2.5rem);
159
+ color: var(--nuraly-color-tabs-add-icon);
160
+
161
+ &:hover {
162
+ color: var(--nuraly-color-tabs-add-icon-hover);
163
+ background-color: var(--nuraly-color-tabs-add-background-hover);
164
+ }
47
165
  }
48
166
 
49
- .tab-label.active {
50
- color: var(--hybrid-tabs-label-active-hover-color);
51
- border-top-left-radius: var(--hybrid-tabs-label-active-border-left-radius, 0);
52
- border-top-right-radius: var(--hybrid-tabs-label-active-border-right-radius, 0);
167
+ .add-tab-icon {
168
+ width: var(--nuraly-tabs-add-icon-size, 1rem);
169
+ height: var(--nuraly-tabs-add-icon-size, 1rem);
170
+ color: inherit;
53
171
  }
54
172
 
173
+ /* Tab content area */
55
174
  .tab-content {
56
- padding: var(--hybrid-tabs-content-padding);
57
- margin: var(--hybrid-tabs-content-maring);
58
- flex-grow: 1;
59
- background-color: var(--hybrid-tabs-content-background-color, var(--hybrid-tabs-content-background-color-local));
60
- border-top: var(--hybrid-tabs-content-border-top);
61
- max-height:100vh;
62
- overflow-y:auto;
63
- overflow-x:hidden;
175
+ flex: 1;
176
+ padding: var(--nuraly-spacing-tabs-content-padding, var(--nuraly-spacing-4));
177
+ background-color: var(--nuraly-color-tabs-content-background);
178
+ border: var(--nuraly-border-tabs-content);
179
+ border-top: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
180
+ overflow-y: auto;
181
+ overflow-x: hidden;
182
+ max-height: 100vh;
64
183
  }
184
+
185
+ /* Orientation specific styles */
186
+ .vertical-align {
187
+ flex-direction: row;
188
+
189
+ .tab-labels {
190
+ flex-direction: column;
191
+ min-width: var(--nuraly-tabs-vertical-width, 12rem);
192
+ }
193
+
194
+ .tab-content {
195
+ border-top: none;
196
+ border-left: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
197
+ }
198
+
199
+ .tab-label {
200
+ border-bottom: var(--nuraly-border-tabs-label);
201
+ border-right: var(--nuraly-border-width-medium, 2px) solid transparent;
202
+
203
+ &:hover,
204
+ &.active {
205
+ border-right-color: var(--nuraly-color-tabs-label-border-active);
206
+ }
207
+ }
208
+ }
209
+
210
+ .vertical-align.right-align {
211
+ flex-direction: row-reverse;
212
+
213
+ .tab-content {
214
+ border-left: none;
215
+ border-right: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
216
+ }
217
+
218
+ .tab-label {
219
+ border-right: var(--nuraly-border-tabs-label);
220
+ border-left: var(--nuraly-border-width-medium, 2px) solid transparent;
221
+
222
+ &:hover,
223
+ &.active {
224
+ border-left-color: var(--nuraly-color-tabs-label-border-active);
225
+ border-right-color: transparent;
226
+ }
227
+ }
228
+ }
229
+
230
+ /* Alignment specific styles */
65
231
  .right-align > .tab-labels {
66
- flex-direction: var(--hybrid-tabs-right-align-labels-flex-direction);
67
- align-self: var(--hybrid-tabs-right-align-labels-align-self);
232
+ flex-direction: row-reverse;
233
+ align-self: flex-end;
68
234
  }
69
235
 
70
236
  .center-align > .tab-labels {
71
- align-self: var(--hybrid-tabs-center-align-labels-align-self);
72
- }
73
- .vertical-align {
74
- flex-direction: var(--hybrid-tabs-vertical-align-flex-direction);
237
+ align-self: center;
75
238
  }
239
+
76
240
  .horizontal-align {
77
- flex-direction: var(--hybrid-tabs-halign-flex-direction);
241
+ flex-direction: column;
78
242
  }
79
243
 
80
- .vertical-align.right-align {
81
- flex-direction: var(--hybrid-tabs-valign-right-align-flex-direction);
244
+ /* Size variations */
245
+ :host([data-size="small"]) {
246
+ .tab-label {
247
+ padding: var(--nuraly-spacing-2) var(--nuraly-spacing-3);
248
+ font-size: var(--nuraly-font-size-small);
249
+ }
250
+
251
+ .tab-content {
252
+ padding: var(--nuraly-spacing-3);
253
+ }
82
254
  }
83
255
 
84
- .tab-label:hover,
85
- .tab-label.active {
86
- border-bottom: var(--hybrid-tabs-label-active-border-bottom);
87
- border-color: var(--hybrid-tabs-label-active-border-color);
256
+ :host([data-size="large"]) {
257
+ .tab-label {
258
+ padding: var(--nuraly-spacing-4) var(--nuraly-spacing-6);
259
+ font-size: var(--nuraly-font-size-large);
260
+ }
261
+
262
+ .tab-content {
263
+ padding: var(--nuraly-spacing-6);
264
+ }
88
265
  }
89
266
 
90
- .tab-label.active {
91
- color: var(--hybrid-tabs-label-active-hover-color);
267
+ /* Type variations */
268
+ :host([data-type="card"]) {
269
+ .tab-label {
270
+ border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
271
+ border-radius: var(--nuraly-border-radius-medium);
272
+ margin: 0 var(--nuraly-spacing-1);
273
+
274
+ &.active {
275
+ background-color: var(--nuraly-color-primary);
276
+ color: var(--nuraly-color-primary-text);
277
+ border-color: var(--nuraly-color-primary);
278
+ }
279
+ }
92
280
  }
93
281
 
94
- .vertical-align .tab-label {
95
- border: var(--hybrid-tabs-vertical-align-label-border);
96
- border-right: var(--hybrid-tabs-vertical-align-label-border-right);
282
+ :host([data-type="bordered"]) {
283
+ .tabs-container {
284
+ border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
285
+ border-radius: var(--nuraly-border-radius-medium);
286
+ }
97
287
  }
98
288
 
99
- .vertical-align.right-align .tab-label {
100
- border: var(--hybrid-tabs-valign-ralign-label-border);
101
- border-left: var(--hybrid-tabs-valign-ralign-label-border-left);
289
+ /* Drag and drop states */
290
+ .tab-label.dragging-start {
291
+ opacity: 0.7;
292
+ border: var(--nuraly-border-width-thin, 1px) dashed var(--nuraly-color-border-strong);
293
+ background-color: var(--nuraly-color-background-hover);
102
294
  }
103
295
 
104
- .vertical-align .tab-label:hover,
105
- .vertical-align .tab-label.active {
106
- border: var(--hybrid-tabs-vertical-align-label-border-active);
107
- border-right: var(--hybrid-tabs-vertical-align-label-border-right-active);
108
- border-color: var(--hybrid-tabs-vertical-align-label-border-color-active);
296
+ .tab-label.dragging {
297
+ border: var(--nuraly-border-width-thin, 1px) dashed var(--nuraly-color-primary);
298
+ background-color: var(--nuraly-color-primary-background);
299
+ opacity: 0.8;
109
300
  }
110
- .vertical-align.right-align .tab-label:hover,
111
- .vertical-align.right-align .tab-label.active {
112
- border: var(--hybrid-tabs-valign-ralign-label-border-active);
113
- border-left: var(--hybrid-tabs-valign-ralign-label-border-left-active);
114
- border-color: var(--hybrid-tabs-valign-ralign-label-border-color-active);
301
+
302
+ /* Minimal animation support for better performance */
303
+
304
+ @keyframes fadeIn {
305
+ from {
306
+ opacity: 0;
307
+ transform: translateY(var(--nuraly-spacing-2));
308
+ }
309
+ to {
310
+ opacity: 1;
311
+ transform: translateY(0);
312
+ }
115
313
  }
116
314
 
117
- .close-icon {
118
- font-size: var(--hybrid-tabs-add-icon-font-size);
119
- vertical-align: bottom;
120
- margin-left: var(--hybrid-tabs-add-icon-margin-left);
315
+ /* Accessibility improvements */
316
+ @media (prefers-reduced-motion: reduce) {
317
+ * {
318
+ transition: none !important;
319
+ animation: none !important;
320
+ }
121
321
  }
122
322
 
123
- .add-tab-label {
124
- font-size: var(--hybrid-tabs-add-label-font-size);
125
- text-align: var(--hybrid-tabs-add-label-text-align);
323
+ /* Focus management for keyboard navigation */
324
+ .tab-label[tabindex="0"] {
325
+ position: relative;
126
326
  }
127
- .dragging {
128
- border: var(--hybrid-tabs-dragging-border) !important;
129
- opacity: 0.8;
130
- color: #464646 !important;
131
- }
132
- .tab-label.active {
133
- color: var(--hybrid-tabs-label-active);
134
- background-color: var(--hybrid-tabs-label-active-background-color); /* Added background color */
135
- }
136
- .add-tab-icon{
137
- --hybrid-icon-color:var(--hybrid-tabs-add-icon-color);
138
- }
139
- :host{
140
- --hybrid-tabs-container-background-local-color:#ffffff;
141
- --hybrid-tabs-border-radius-local:0px;
142
- --hybrid-tabs-container-box-shadow:none;
143
- --hybrid-tabs-dragging-start-border:1px dashed black;
144
- --hybrid-tabs-dragging-enter-background-color:#1661b1;
145
- --hybrid-tabs-va-enter-border: none;
146
- --hybrid-tabs-va-enter-border-left: 1px solid #ccc;
147
- --hybrid-tabs-va-ra-border:none;
148
- --hybrid-tabs-va-ra-border-right:1px solid #ccc;
149
- --hybrid-tabs-label-cursor:pointer;
150
- --hybrid-tabs-label-padding: 3px 7px 5px 7px;
151
- --hybrid-tabs-label-border-bottom: 2px solid transparent;
152
- --hybrid-tabs-label-transition: border-color 0.1s ease;
153
- --hybrid-tabs-label-user-select: none;
154
- --hybrid-tabs-label-hover-color: #1661b1;
155
- --hybrid-tabs-label-active-hover-color:#006afe;
156
- --hybrid-tabs-content-padding:5px;
157
- --hybrid-tabs-content-background-color-local: #fff;
158
- --hybrid-tabs-content-border-top: 1px solid #ccc;
159
- --hybrid-tabs-right-align-labels-flex-direction:row-reverse;
160
- --hybrid-tabs-right-align-labels-align-self: end;
161
- --hybrid-tabs-center-align-labels-align-self:center;
162
- --hybrid-tabs-vertical-align-flex-direction:row;
163
- --hybrid-tabs-halign-flex-direction:column;
164
- --hybrid-tabs-valign-right-align-flex-direction:row-reverse;
165
- --hybrid-tabs-label-active-border-bottom:2px solid transparent;
166
- --hybrid-tabs-label-active-border-color: rgb(0, 106, 254);
167
- --hybrid-tabs-label-active-hover-color: #006afe;
168
- --hybrid-tabs-vertical-align-label-border: #006afe;
169
- --hybrid-tabs-vertical-align-label-border-right: 2px solid transparent;
170
- --hybrid-tabs-valign-ralign-label-border: none;
171
- --hybrid-tabs-valign-ralign-label-border-left: 2px solid transparent;
172
- --hybrid-tabs-vertical-align-label-border-active: none;
173
- --hybrid-tabs-vertical-align-label-border-right-active: 2px solid transparent;
174
- --hybrid-tabs-vertical-align-label-border-color-active: rgb(0, 106, 254);
175
- --hybrid-tabs-valign-ralign-label-border-active: none;
176
- --hybrid-tabs-valign-ralign-label-border-left-active: 2px solid transparent;
177
- --hybrid-tabs-valign-ralign-label-border-color-active: rgb(0, 106, 254);
178
- --hybrid-tabs-add-icon-font-size: 13px;
179
- --hybrid-tabs-add-icon-margin-left: 5px;
180
- --hybrid-tabs-add-label-font-size: 13px;
181
- --hybrid-tabs-add-label-text-align: center;
182
- --hybrid-tabs-dragging-border: 1px dashed gray;
183
- --hybrid-tabs-label-active: #000000;
184
- --hybrid-tabs-label-color:gray;
185
- --hybrid-tabs-add-icon-color: #000000;
186
- --hybrid-tabs-label-active-background-color: transparent; /* Added variable */
187
- }
188
- @media (prefers-color-scheme: dark) {
189
- :host{
190
- --hybrid-tabs-container-background-local-color: #3e3e3e;
191
- --hybrid-tabs-content-background-color-local: #2d2d2d;
192
- --hybrid-tabs-label-hover-color: #aaa;
193
- --hybrid-tabs-label-active:#ffffff;
194
- --hybrid-tabs-add-icon-color: #ffffff;
195
- --hybrid-tabs-label-active-background-color: #2d2d2d; /* Dark mode background */
196
- }
327
+
328
+ .tab-label:focus-visible {
329
+ z-index: 1;
197
330
  }
198
331
  `;
199
332
  //# sourceMappingURL=tabs.style.js.map
package/tabs.style.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.style.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMxB,CAAC","sourcesContent":["import {css} from 'lit';\n\nexport const styles = css`\n :host{\n display: block;\n height: 100%;\n }\n .tabs-container{\n border-radius: var(--hybrid-tabs-border-radius, var(--hybrid-tabs-border-radius-local));\n background-color:var(--hybrid-tabs-container-background-color, var(--hybrid-tabs-container-background-local-color));\n height: 100%;\n }\n .tab-labels,\n .tabs-container {\n display: flex;\n }\n\n .tabs-container {\n box-shadow: var(--hybrid-tabs-container-box-shadow);\n }\n\n .dragging-start {\n border: var(--hybrid-tabs-dragging-start-border);\n }\n .dragging-enter {\n background-color: var(--hybrid-tabs-dragging-enter-background-color);\n }\n .vertical-align > .tab-content {\n border: var(--hybrid-tabs-va-enter-border);\n border-left: var(--hybrid-tabs-va-enter-border-left);\n }\n .vertical-align.right-align > .tab-content {\n border: var(--hybrid-tabs-va-ra-border);\n border-right: var(--hybrid-tabs-va-ra-border-right);\n }\n\n .tab-label {\n cursor: var(--hybrid-tabs-label-cursor);\n padding: var(--hybrid-tabs-label-padding);\n border-bottom: var(--hybrid-tabs-label-border-bottom);\n transition: var(--hybrid-tabs-label-transition);\n user-select: var(--hybrid-tabs-label-user-select);\n color:var(--hybrid-tabs-label-color);\n }\n\n .tab-label:hover {\n color: var(--hybrid-tabs-label-hover-color);\n }\n\n .tab-label.active {\n color: var(--hybrid-tabs-label-active-hover-color);\n border-top-left-radius: var(--hybrid-tabs-label-active-border-left-radius, 0);\n border-top-right-radius: var(--hybrid-tabs-label-active-border-right-radius, 0);\n }\n\n .tab-content {\n padding: var(--hybrid-tabs-content-padding);\n margin: var(--hybrid-tabs-content-maring);\n flex-grow: 1;\n background-color: var(--hybrid-tabs-content-background-color, var(--hybrid-tabs-content-background-color-local));\n border-top: var(--hybrid-tabs-content-border-top);\n max-height:100vh;\n overflow-y:auto;\n overflow-x:hidden;\n }\n .right-align > .tab-labels {\n flex-direction: var(--hybrid-tabs-right-align-labels-flex-direction);\n align-self: var(--hybrid-tabs-right-align-labels-align-self);\n }\n\n .center-align > .tab-labels {\n align-self: var(--hybrid-tabs-center-align-labels-align-self);\n }\n .vertical-align {\n flex-direction: var(--hybrid-tabs-vertical-align-flex-direction);\n }\n .horizontal-align {\n flex-direction: var(--hybrid-tabs-halign-flex-direction);\n }\n\n .vertical-align.right-align {\n flex-direction: var(--hybrid-tabs-valign-right-align-flex-direction);\n }\n\n .tab-label:hover,\n .tab-label.active {\n border-bottom: var(--hybrid-tabs-label-active-border-bottom);\n border-color: var(--hybrid-tabs-label-active-border-color);\n }\n\n .tab-label.active {\n color: var(--hybrid-tabs-label-active-hover-color);\n }\n\n .vertical-align .tab-label {\n border: var(--hybrid-tabs-vertical-align-label-border);\n border-right: var(--hybrid-tabs-vertical-align-label-border-right);\n }\n\n .vertical-align.right-align .tab-label {\n border: var(--hybrid-tabs-valign-ralign-label-border);\n border-left: var(--hybrid-tabs-valign-ralign-label-border-left);\n }\n\n .vertical-align .tab-label:hover,\n .vertical-align .tab-label.active {\n border: var(--hybrid-tabs-vertical-align-label-border-active);\n border-right: var(--hybrid-tabs-vertical-align-label-border-right-active);\n border-color: var(--hybrid-tabs-vertical-align-label-border-color-active);\n }\n .vertical-align.right-align .tab-label:hover,\n .vertical-align.right-align .tab-label.active {\n border: var(--hybrid-tabs-valign-ralign-label-border-active);\n border-left: var(--hybrid-tabs-valign-ralign-label-border-left-active);\n border-color: var(--hybrid-tabs-valign-ralign-label-border-color-active);\n }\n\n .close-icon {\n font-size: var(--hybrid-tabs-add-icon-font-size);\n vertical-align: bottom;\n margin-left: var(--hybrid-tabs-add-icon-margin-left);\n }\n\n .add-tab-label {\n font-size: var(--hybrid-tabs-add-label-font-size);\n text-align: var(--hybrid-tabs-add-label-text-align);\n }\n .dragging {\n border: var(--hybrid-tabs-dragging-border) !important;\n opacity: 0.8;\n color: #464646 !important;\n }\n .tab-label.active {\n color: var(--hybrid-tabs-label-active);\n background-color: var(--hybrid-tabs-label-active-background-color); /* Added background color */\n } \n .add-tab-icon{\n --hybrid-icon-color:var(--hybrid-tabs-add-icon-color);\n }\n :host{\n --hybrid-tabs-container-background-local-color:#ffffff;\n --hybrid-tabs-border-radius-local:0px;\n --hybrid-tabs-container-box-shadow:none;\n --hybrid-tabs-dragging-start-border:1px dashed black;\n --hybrid-tabs-dragging-enter-background-color:#1661b1;\n --hybrid-tabs-va-enter-border: none;\n --hybrid-tabs-va-enter-border-left: 1px solid #ccc;\n --hybrid-tabs-va-ra-border:none;\n --hybrid-tabs-va-ra-border-right:1px solid #ccc;\n --hybrid-tabs-label-cursor:pointer;\n --hybrid-tabs-label-padding: 3px 7px 5px 7px;\n --hybrid-tabs-label-border-bottom: 2px solid transparent;\n --hybrid-tabs-label-transition: border-color 0.1s ease;\n --hybrid-tabs-label-user-select: none;\n --hybrid-tabs-label-hover-color: #1661b1;\n --hybrid-tabs-label-active-hover-color:#006afe;\n --hybrid-tabs-content-padding:5px;\n --hybrid-tabs-content-background-color-local: #fff;\n --hybrid-tabs-content-border-top: 1px solid #ccc;\n --hybrid-tabs-right-align-labels-flex-direction:row-reverse;\n --hybrid-tabs-right-align-labels-align-self: end;\n --hybrid-tabs-center-align-labels-align-self:center;\n --hybrid-tabs-vertical-align-flex-direction:row;\n --hybrid-tabs-halign-flex-direction:column;\n --hybrid-tabs-valign-right-align-flex-direction:row-reverse;\n --hybrid-tabs-label-active-border-bottom:2px solid transparent;\n --hybrid-tabs-label-active-border-color: rgb(0, 106, 254);\n --hybrid-tabs-label-active-hover-color: #006afe;\n --hybrid-tabs-vertical-align-label-border: #006afe;\n --hybrid-tabs-vertical-align-label-border-right: 2px solid transparent;\n --hybrid-tabs-valign-ralign-label-border: none;\n --hybrid-tabs-valign-ralign-label-border-left: 2px solid transparent;\n --hybrid-tabs-vertical-align-label-border-active: none;\n --hybrid-tabs-vertical-align-label-border-right-active: 2px solid transparent;\n --hybrid-tabs-vertical-align-label-border-color-active: rgb(0, 106, 254);\n --hybrid-tabs-valign-ralign-label-border-active: none;\n --hybrid-tabs-valign-ralign-label-border-left-active: 2px solid transparent;\n --hybrid-tabs-valign-ralign-label-border-color-active: rgb(0, 106, 254);\n --hybrid-tabs-add-icon-font-size: 13px;\n --hybrid-tabs-add-icon-margin-left: 5px;\n --hybrid-tabs-add-label-font-size: 13px;\n --hybrid-tabs-add-label-text-align: center;\n --hybrid-tabs-dragging-border: 1px dashed gray;\n --hybrid-tabs-label-active: #000000;\n --hybrid-tabs-label-color:gray;\n --hybrid-tabs-add-icon-color: #000000;\n --hybrid-tabs-label-active-background-color: transparent; /* Added variable */\n }\n @media (prefers-color-scheme: dark) {\n :host{\n --hybrid-tabs-container-background-local-color: #3e3e3e;\n --hybrid-tabs-content-background-color-local: #2d2d2d;\n --hybrid-tabs-label-hover-color: #aaa;\n --hybrid-tabs-label-active:#ffffff; \n --hybrid-tabs-add-icon-color: #ffffff;\n --hybrid-tabs-label-active-background-color: #2d2d2d; /* Dark mode background */\n }\n }\n`;"]}
1
+ {"version":3,"file":"tabs.style.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkUxB,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * Tabs component styles for the Hybrid UI Library\n * Using shared CSS variables from /src/shared/themes/\n * \n * This file contains all the styling for the nr-tabs component with\n * clean CSS variable usage without local fallbacks and proper theme switching support.\n */\nexport const styles = css`\n :host {\n display: block;\n height: 100%;\n \n /* Force CSS custom property inheritance to ensure theme switching works properly */\n color: var(--nuraly-color-text);\n background-color: var(--nuraly-color-background);\n \n /* Minimal transitions for better performance */\n \n }\n\n /* Force re-evaluation of theme-dependent properties on theme change */\n :host([data-theme]) {\n color: inherit;\n background-color: inherit;\n }\n\n .tabs-container {\n display: flex;\n height: 100%;\n background-color: var(--nuraly-color-background);\n border-radius: var(--nuraly-border-radius-tabs, var(--nuraly-border-radius-medium, 0));\n box-shadow: var(--nuraly-shadow-tabs);\n }\n\n .tab-labels {\n display: flex;\n background-color: var(--nuraly-color-tabs-header-background);\n border: var(--nuraly-border-tabs-header);\n }\n\n /* Tab label base styles */\n .tab-label {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--nuraly-spacing-2);\n position: relative;\n cursor: pointer;\n padding: var(--nuraly-spacing-tabs-padding, var(--nuraly-spacing-3) var(--nuraly-spacing-4));\n border: var(--nuraly-border-tabs-label);\n border-bottom: var(--nuraly-border-width-medium, 2px) solid transparent;\n background-color: var(--nuraly-color-tabs-label-background);\n color: var(--nuraly-color-tabs-label-text);\n font-family: var(--nuraly-font-family);\n font-size: var(--nuraly-font-size-body);\n font-weight: var(--nuraly-font-weight-regular);\n user-select: none;\n white-space: nowrap;\n\n &:hover {\n color: var(--nuraly-color-tabs-label-text-hover);\n background-color: var(--nuraly-color-tabs-label-background-hover);\n border-color: var(--nuraly-color-tabs-label-border-hover);\n }\n\n &:focus {\n outline: var(--nuraly-focus-outline);\n outline-offset: var(--nuraly-focus-outline-offset);\n }\n\n &.active {\n color: var(--nuraly-color-tabs-label-text-active);\n background-color: var(--nuraly-color-tabs-label-background-active);\n border-color: var(--nuraly-color-tabs-label-border-active);\n font-weight: var(--nuraly-font-weight-semibold);\n }\n\n /* Positioning-specific border radius for horizontal tabs */\n &.first-tab {\n border-radius: var(--nuraly-border-radius-tabs-first);\n }\n\n &.middle-tab {\n border-radius: var(--nuraly-border-radius-tabs-middle);\n }\n\n &.last-tab {\n border-radius: var(--nuraly-border-radius-tabs-last);\n }\n\n &.single-tab {\n border-radius: var(--nuraly-border-radius-tabs-single);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nuraly-color-text-disabled);\n background-color: var(--nuraly-color-background-disabled);\n \n &:hover {\n color: var(--nuraly-color-text-disabled);\n background-color: var(--nuraly-color-background-disabled);\n border-color: transparent;\n }\n }\n }\n\n /* Tab icon styling */\n .tab-icon {\n flex-shrink: 0;\n width: var(--nuraly-tabs-icon-size, 1rem);\n height: var(--nuraly-tabs-icon-size, 1rem);\n color: inherit;\n }\n\n /* Tab text styling */\n .tab-text {\n flex: 1;\n color: inherit;\n \n &[contenteditable=\"true\"] {\n cursor: text;\n outline: none;\n \n &:focus {\n background-color: var(--nuraly-color-tabs-edit-background);\n border-radius: var(--nuraly-border-radius-small);\n padding: var(--nuraly-spacing-1);\n }\n }\n }\n\n /* Close/delete icon styling */\n .close-icon {\n flex-shrink: 0;\n width: var(--nuraly-tabs-close-icon-size, 0.875rem);\n height: var(--nuraly-tabs-close-icon-size, 0.875rem);\n color: var(--nuraly-color-tabs-close-icon);\n cursor: pointer;\n padding: var(--nuraly-spacing-1);\n border-radius: var(--nuraly-border-radius-small);\n\n &:hover {\n color: var(--nuraly-color-tabs-close-icon-hover);\n background-color: var(--nuraly-color-tabs-close-icon-background-hover);\n }\n\n &:active {\n color: var(--nuraly-color-tabs-close-icon-active);\n background-color: var(--nuraly-color-tabs-close-icon-background-active);\n }\n }\n\n /* Add tab button styling */\n .add-tab-label {\n min-width: auto;\n width: var(--nuraly-tabs-add-button-size, 2.5rem);\n color: var(--nuraly-color-tabs-add-icon);\n \n &:hover {\n color: var(--nuraly-color-tabs-add-icon-hover);\n background-color: var(--nuraly-color-tabs-add-background-hover);\n }\n }\n\n .add-tab-icon {\n width: var(--nuraly-tabs-add-icon-size, 1rem);\n height: var(--nuraly-tabs-add-icon-size, 1rem);\n color: inherit;\n }\n\n /* Tab content area */\n .tab-content {\n flex: 1;\n padding: var(--nuraly-spacing-tabs-content-padding, var(--nuraly-spacing-4));\n background-color: var(--nuraly-color-tabs-content-background);\n border: var(--nuraly-border-tabs-content);\n border-top: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 100vh;\n }\n\n /* Orientation specific styles */\n .vertical-align {\n flex-direction: row;\n \n .tab-labels {\n flex-direction: column;\n min-width: var(--nuraly-tabs-vertical-width, 12rem);\n }\n \n .tab-content {\n border-top: none;\n border-left: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);\n }\n \n .tab-label {\n border-bottom: var(--nuraly-border-tabs-label);\n border-right: var(--nuraly-border-width-medium, 2px) solid transparent;\n \n &:hover,\n &.active {\n border-right-color: var(--nuraly-color-tabs-label-border-active);\n }\n }\n }\n\n .vertical-align.right-align {\n flex-direction: row-reverse;\n \n .tab-content {\n border-left: none;\n border-right: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);\n }\n \n .tab-label {\n border-right: var(--nuraly-border-tabs-label);\n border-left: var(--nuraly-border-width-medium, 2px) solid transparent;\n \n &:hover,\n &.active {\n border-left-color: var(--nuraly-color-tabs-label-border-active);\n border-right-color: transparent;\n }\n }\n }\n\n /* Alignment specific styles */\n .right-align > .tab-labels {\n flex-direction: row-reverse;\n align-self: flex-end;\n }\n\n .center-align > .tab-labels {\n align-self: center;\n }\n\n .horizontal-align {\n flex-direction: column;\n }\n\n /* Size variations */\n :host([data-size=\"small\"]) {\n .tab-label {\n padding: var(--nuraly-spacing-2) var(--nuraly-spacing-3);\n font-size: var(--nuraly-font-size-small);\n }\n \n .tab-content {\n padding: var(--nuraly-spacing-3);\n }\n }\n\n :host([data-size=\"large\"]) {\n .tab-label {\n padding: var(--nuraly-spacing-4) var(--nuraly-spacing-6);\n font-size: var(--nuraly-font-size-large);\n }\n \n .tab-content {\n padding: var(--nuraly-spacing-6);\n }\n }\n\n /* Type variations */\n :host([data-type=\"card\"]) {\n .tab-label {\n border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);\n border-radius: var(--nuraly-border-radius-medium);\n margin: 0 var(--nuraly-spacing-1);\n \n &.active {\n background-color: var(--nuraly-color-primary);\n color: var(--nuraly-color-primary-text);\n border-color: var(--nuraly-color-primary);\n }\n }\n }\n\n :host([data-type=\"bordered\"]) {\n .tabs-container {\n border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);\n border-radius: var(--nuraly-border-radius-medium);\n }\n }\n\n /* Drag and drop states */\n .tab-label.dragging-start {\n opacity: 0.7;\n border: var(--nuraly-border-width-thin, 1px) dashed var(--nuraly-color-border-strong);\n background-color: var(--nuraly-color-background-hover);\n }\n\n .tab-label.dragging {\n border: var(--nuraly-border-width-thin, 1px) dashed var(--nuraly-color-primary);\n background-color: var(--nuraly-color-primary-background);\n opacity: 0.8;\n }\n\n /* Minimal animation support for better performance */\n \n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(var(--nuraly-spacing-2));\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Accessibility improvements */\n @media (prefers-reduced-motion: reduce) {\n * {\n transition: none !important;\n animation: none !important;\n }\n }\n\n /* Focus management for keyboard navigation */\n .tab-label[tabindex=\"0\"] {\n position: relative;\n }\n\n .tab-label:focus-visible {\n z-index: 1;\n }\n`;"]}