@avento-space/ts-ui 1.1.1 → 1.2.2

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 (141) hide show
  1. package/README.md +123 -213
  2. package/dist/card.wc-pFLgjfwm.d.ts +1595 -0
  3. package/dist/chunk-7GJXOXOW.js +108 -0
  4. package/dist/chunk-7GJXOXOW.js.map +1 -0
  5. package/dist/chunk-ICB6OBEZ.js +2087 -0
  6. package/dist/chunk-ICB6OBEZ.js.map +1 -0
  7. package/dist/chunk-Q5RCPPCF.js +406 -0
  8. package/dist/chunk-Q5RCPPCF.js.map +1 -0
  9. package/dist/chunk-QTANS5ZS.js +81 -0
  10. package/dist/chunk-QTANS5ZS.js.map +1 -0
  11. package/dist/chunk-RATTHYIP.js +4855 -0
  12. package/dist/chunk-RATTHYIP.js.map +1 -0
  13. package/dist/chunk-RAWESWNC.js +3 -0
  14. package/dist/chunk-RAWESWNC.js.map +1 -0
  15. package/dist/chunk-RQZ7KDYP.js +5941 -0
  16. package/dist/chunk-RQZ7KDYP.js.map +1 -0
  17. package/dist/chunk-T7QLIHHU.js +3 -0
  18. package/dist/chunk-T7QLIHHU.js.map +1 -0
  19. package/dist/chunk-U4WYCYL6.js +116 -0
  20. package/dist/chunk-U4WYCYL6.js.map +1 -0
  21. package/dist/components/index.d.ts +13 -11
  22. package/dist/components/index.js +5 -5
  23. package/dist/components/index.js.map +1 -1
  24. package/dist/define.d.ts +2 -2
  25. package/dist/define.js +8 -1
  26. package/dist/define.js.map +1 -1
  27. package/dist/{core/element.d.ts → element-DHtonJNX.d.ts} +3 -2
  28. package/dist/icons/index.d.ts +33 -5
  29. package/dist/icons/index.js +5 -3
  30. package/dist/icons/index.js.map +1 -1
  31. package/dist/index.d.ts +35 -10
  32. package/dist/index.js +44 -9
  33. package/dist/index.js.map +1 -1
  34. package/dist/jsx-dev-runtime.d.ts +1 -2
  35. package/dist/jsx-dev-runtime.js +3 -1
  36. package/dist/jsx-dev-runtime.js.map +1 -1
  37. package/dist/jsx-runtime.d.ts +644 -7
  38. package/dist/jsx-runtime.js +3 -120
  39. package/dist/jsx-runtime.js.map +1 -1
  40. package/dist/plugins/index.d.ts +21 -3
  41. package/dist/plugins/index.js +85 -1
  42. package/dist/plugins/index.js.map +1 -1
  43. package/dist/react/index.d.ts +1261 -15
  44. package/dist/react/index.js +1443 -15
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/{core/types.d.ts → types-DWglFa91.d.ts} +8 -7
  47. package/package.json +32 -8
  48. package/dist/components/box.wc.d.ts +0 -24
  49. package/dist/components/box.wc.d.ts.map +0 -1
  50. package/dist/components/box.wc.js +0 -52
  51. package/dist/components/box.wc.js.map +0 -1
  52. package/dist/components/button.wc.d.ts +0 -32
  53. package/dist/components/button.wc.d.ts.map +0 -1
  54. package/dist/components/button.wc.js +0 -91
  55. package/dist/components/button.wc.js.map +0 -1
  56. package/dist/components/index.d.ts.map +0 -1
  57. package/dist/components/input.wc.d.ts +0 -45
  58. package/dist/components/input.wc.d.ts.map +0 -1
  59. package/dist/components/input.wc.js +0 -130
  60. package/dist/components/input.wc.js.map +0 -1
  61. package/dist/components/list.wc.d.ts +0 -49
  62. package/dist/components/list.wc.d.ts.map +0 -1
  63. package/dist/components/list.wc.js +0 -120
  64. package/dist/components/list.wc.js.map +0 -1
  65. package/dist/components/portal.wc.d.ts +0 -18
  66. package/dist/components/portal.wc.d.ts.map +0 -1
  67. package/dist/components/portal.wc.js +0 -78
  68. package/dist/components/portal.wc.js.map +0 -1
  69. package/dist/components/styles.d.ts +0 -7
  70. package/dist/components/styles.d.ts.map +0 -1
  71. package/dist/components/styles.js +0 -134
  72. package/dist/components/styles.js.map +0 -1
  73. package/dist/core/define.d.ts +0 -5
  74. package/dist/core/define.d.ts.map +0 -1
  75. package/dist/core/define.js +0 -26
  76. package/dist/core/define.js.map +0 -1
  77. package/dist/core/element.d.ts.map +0 -1
  78. package/dist/core/element.js +0 -30
  79. package/dist/core/element.js.map +0 -1
  80. package/dist/core/index.d.ts +0 -7
  81. package/dist/core/index.d.ts.map +0 -1
  82. package/dist/core/index.js +0 -5
  83. package/dist/core/index.js.map +0 -1
  84. package/dist/core/plugin.d.ts +0 -17
  85. package/dist/core/plugin.d.ts.map +0 -1
  86. package/dist/core/plugin.js +0 -117
  87. package/dist/core/plugin.js.map +0 -1
  88. package/dist/core/reactive-context.d.ts +0 -12
  89. package/dist/core/reactive-context.d.ts.map +0 -1
  90. package/dist/core/reactive-context.js +0 -34
  91. package/dist/core/reactive-context.js.map +0 -1
  92. package/dist/core/scheduler.d.ts +0 -13
  93. package/dist/core/scheduler.d.ts.map +0 -1
  94. package/dist/core/scheduler.js +0 -80
  95. package/dist/core/scheduler.js.map +0 -1
  96. package/dist/core/signal.d.ts +0 -14
  97. package/dist/core/signal.d.ts.map +0 -1
  98. package/dist/core/signal.js +0 -391
  99. package/dist/core/signal.js.map +0 -1
  100. package/dist/core/store.d.ts +0 -6
  101. package/dist/core/store.d.ts.map +0 -1
  102. package/dist/core/store.js +0 -35
  103. package/dist/core/store.js.map +0 -1
  104. package/dist/core/types.d.ts.map +0 -1
  105. package/dist/core/types.js +0 -2
  106. package/dist/core/types.js.map +0 -1
  107. package/dist/define.d.ts.map +0 -1
  108. package/dist/icons/icon-element.d.ts +0 -25
  109. package/dist/icons/icon-element.d.ts.map +0 -1
  110. package/dist/icons/icon-element.js +0 -63
  111. package/dist/icons/icon-element.js.map +0 -1
  112. package/dist/icons/index.d.ts.map +0 -1
  113. package/dist/icons/registry.d.ts +0 -6
  114. package/dist/icons/registry.d.ts.map +0 -1
  115. package/dist/icons/registry.js +0 -4775
  116. package/dist/icons/registry.js.map +0 -1
  117. package/dist/index.d.ts.map +0 -1
  118. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  119. package/dist/jsx-runtime.d.ts.map +0 -1
  120. package/dist/jsx-types.d.ts +0 -651
  121. package/dist/jsx-types.d.ts.map +0 -1
  122. package/dist/jsx-types.js +0 -3
  123. package/dist/jsx-types.js.map +0 -1
  124. package/dist/plugins/index.d.ts.map +0 -1
  125. package/dist/plugins/router.d.ts +0 -4
  126. package/dist/plugins/router.d.ts.map +0 -1
  127. package/dist/plugins/router.js +0 -90
  128. package/dist/plugins/router.js.map +0 -1
  129. package/dist/plugins/types.d.ts +0 -16
  130. package/dist/plugins/types.d.ts.map +0 -1
  131. package/dist/plugins/types.js +0 -2
  132. package/dist/plugins/types.js.map +0 -1
  133. package/dist/react/icon.d.ts +0 -8
  134. package/dist/react/icon.d.ts.map +0 -1
  135. package/dist/react/icon.js +0 -7
  136. package/dist/react/icon.js.map +0 -1
  137. package/dist/react/icons.d.ts +0 -1194
  138. package/dist/react/icons.d.ts.map +0 -1
  139. package/dist/react/icons.js +0 -1196
  140. package/dist/react/icons.js.map +0 -1
  141. package/dist/react/index.d.ts.map +0 -1
@@ -0,0 +1,2087 @@
1
+ import { effect } from './chunk-Q5RCPPCF.js';
2
+
3
+ // src/core/tokens.ts
4
+ var sheet = new CSSStyleSheet();
5
+ sheet.replaceSync(`
6
+ :host {
7
+ --u-color-primary: #3b82f6;
8
+ --u-color-primary-hover: #2563eb;
9
+ --u-color-primary-text: #2563eb;
10
+ --u-color-danger: #ef4444;
11
+ --u-color-danger-hover: #dc2626;
12
+ --u-color-success: #16a34a;
13
+ --u-color-warning: #d97706;
14
+ --u-color-info: #0284c7;
15
+ --u-color-text: #111827;
16
+ --u-color-text-secondary: #374151;
17
+ --u-color-text-muted: #4b5563;
18
+ --u-color-text-disabled: #6b7280;
19
+ --u-color-border: #9ca3af;
20
+ --u-color-border-light: #d1d5db;
21
+ --u-color-border-lighter: #e5e7eb;
22
+ --u-color-bg: #fff;
23
+ --u-color-bg-muted: #f9fafb;
24
+ --u-color-bg-hover: #f3f4f6;
25
+ --u-color-bg-selected: #eff6ff;
26
+ --u-color-focus: #3b82f6;
27
+ --u-color-overlay: rgba(0,0,0,0.5);
28
+ --u-radius-sm: 4px;
29
+ --u-radius-md: 6px;
30
+ --u-radius-lg: 8px;
31
+ --u-radius-xl: 10px;
32
+ --u-radius-2xl: 12px;
33
+ --u-font-xs: 0.75rem;
34
+ --u-font-sm: 0.875rem;
35
+ --u-font-md: 1rem;
36
+ --u-font-lg: 1.125rem;
37
+ --u-shadow-sm: 0 1px 3px rgba(0,0,0,.05);
38
+ --u-shadow-md: 0 4px 16px rgba(0,0,0,.08);
39
+ --u-shadow-lg: 0 8px 24px rgba(0,0,0,.12);
40
+ --u-shadow-xl: 0 20px 60px rgba(0,0,0,.15);
41
+ }
42
+
43
+ @media (prefers-reduced-motion: reduce) {
44
+ *, *::before, *::after {
45
+ animation-duration: 0.01ms !important;
46
+ animation-iteration-count: 1 !important;
47
+ transition-duration: 0.01ms !important;
48
+ }
49
+ }
50
+ `);
51
+ var globalStyles = sheet;
52
+
53
+ // src/core/element.ts
54
+ var nextId = 0;
55
+ var UElement = class extends HTMLElement {
56
+ constructor() {
57
+ super();
58
+ this._cleanups = [];
59
+ this._id = ++nextId;
60
+ this._root = this.attachShadow({ mode: "open" });
61
+ try {
62
+ this._root.adoptedStyleSheets = [globalStyles];
63
+ } catch {
64
+ const style = document.createElement("style");
65
+ style.textContent = ":host {}";
66
+ this._root.appendChild(style);
67
+ }
68
+ }
69
+ connectedCallback() {
70
+ this._mount();
71
+ }
72
+ disconnectedCallback() {
73
+ for (const fn of this._cleanups) {
74
+ try {
75
+ fn();
76
+ } catch (e) {
77
+ console.error(e);
78
+ }
79
+ }
80
+ this._cleanups = [];
81
+ }
82
+ adoptEffect(fn) {
83
+ const dispose = effect(fn);
84
+ this._cleanups.push(dispose);
85
+ return dispose;
86
+ }
87
+ };
88
+
89
+ // src/components/styles/button.ts
90
+ var buttonStyles = `
91
+ :host {
92
+ display: inline-block;
93
+ }
94
+ button {
95
+ font-family: inherit;
96
+ font-size: 14px;
97
+ line-height: 1;
98
+ border: 1px solid transparent;
99
+ border-radius: 6px;
100
+ cursor: pointer;
101
+ display: inline-flex;
102
+ align-items: center;
103
+ justify-content: center;
104
+ gap: 6px;
105
+ transition: background-color .15s, opacity .15s, box-shadow .15s;
106
+ outline: none;
107
+ }
108
+ button:focus-visible {
109
+ box-shadow: 0 0 0 2px #3b82f6;
110
+ }
111
+ button:disabled {
112
+ opacity: .5;
113
+ cursor: not-allowed;
114
+ }
115
+ .btn-primary {
116
+ background: #3b82f6;
117
+ color: #fff;
118
+ border-color: #2563eb;
119
+ }
120
+ .btn-primary:hover:not(:disabled) {
121
+ background: #2563eb;
122
+ }
123
+ .btn-secondary {
124
+ background: #f3f4f6;
125
+ color: #374151;
126
+ border-color: #9ca3af;
127
+ }
128
+ .btn-secondary:hover:not(:disabled) {
129
+ background: #e5e7eb;
130
+ }
131
+ .btn-ghost {
132
+ background: transparent;
133
+ color: #374151;
134
+ border-color: transparent;
135
+ }
136
+ .btn-ghost:hover:not(:disabled) {
137
+ background: #f3f4f6;
138
+ }
139
+ .btn-danger {
140
+ background: #ef4444;
141
+ color: #fff;
142
+ border-color: #ef4444;
143
+ }
144
+ .btn-danger:hover:not(:disabled) {
145
+ background: #dc2626;
146
+ }
147
+ .btn-sm { height: 32px; padding: 0 12px; font-size: 13px; }
148
+ .btn-md { height: 40px; padding: 0 16px; font-size: 14px; }
149
+ .btn-lg { height: 48px; padding: 0 24px; font-size: 16px; }
150
+ .btn-link {
151
+ background: transparent;
152
+ color: #2563eb;
153
+ border-color: transparent;
154
+ padding: 0;
155
+ height: auto;
156
+ font-size: inherit;
157
+ font-weight: inherit;
158
+ text-decoration: none;
159
+ border-radius: 2px;
160
+ }
161
+ .btn-link:hover:not(:disabled) {
162
+ background: transparent;
163
+ text-decoration: underline;
164
+ color: #2563eb;
165
+ }
166
+ .btn-link:disabled {
167
+ opacity: .5;
168
+ cursor: not-allowed;
169
+ }
170
+ `;
171
+
172
+ // src/components/styles/input.ts
173
+ var inputStyles = `
174
+ :host {
175
+ display: inline-block;
176
+ }
177
+ .input-wrapper {
178
+ position: relative;
179
+ display: flex;
180
+ align-items: center;
181
+ }
182
+ input {
183
+ font-family: inherit;
184
+ font-size: 14px;
185
+ line-height: 1.5;
186
+ padding: 8px 12px;
187
+ border: 1px solid #d1d5db;
188
+ border-radius: 6px;
189
+ outline: none;
190
+ width: 100%;
191
+ box-sizing: border-box;
192
+ background: #fff;
193
+ color: #111827;
194
+ transition: border-color .15s;
195
+ }
196
+ input::placeholder { color: #4b5563; }
197
+ input:focus {
198
+ border-color: #2563eb;
199
+ box-shadow: 0 0 0 2px rgba(59,130,246,.25);
200
+ }
201
+ input:disabled {
202
+ background: #f9fafb;
203
+ color: #4b5563;
204
+ cursor: not-allowed;
205
+ }
206
+ `;
207
+
208
+ // src/components/styles/box.ts
209
+ var boxStyles = `
210
+ :host {
211
+ display: block;
212
+ }
213
+ `;
214
+
215
+ // src/components/styles/list.ts
216
+ var listStyles = `
217
+ :host {
218
+ display: block;
219
+ }
220
+ ul, ol {
221
+ margin: 0;
222
+ padding: 0;
223
+ list-style: none;
224
+ }
225
+ .list-empty {
226
+ padding: 24px;
227
+ text-align: center;
228
+ color: #4b5563;
229
+ }
230
+ `;
231
+
232
+ // src/components/styles/icon.ts
233
+ var iconStyles = `
234
+ :host {
235
+ display: inline-flex;
236
+ align-items: center;
237
+ justify-content: center;
238
+ }
239
+ svg {
240
+ fill: none;
241
+ stroke: currentColor;
242
+ stroke-linecap: round;
243
+ stroke-linejoin: round;
244
+ }
245
+ `;
246
+
247
+ // src/components/styles/text.ts
248
+ var textStyles = `
249
+ :host {
250
+ display: inline;
251
+ }
252
+ [part="text"] {
253
+ margin: 0;
254
+ font-family: inherit;
255
+ line-height: 1.5;
256
+ }
257
+ .text-xs { font-size: 0.75rem; }
258
+ .text-sm { font-size: 0.875rem; }
259
+ .text-md { font-size: 1rem; }
260
+ .text-lg { font-size: 1.125rem; }
261
+ .text-xl { font-size: 1.25rem; }
262
+ .text-2xl { font-size: 1.5rem; }
263
+ .text-3xl { font-size: 1.875rem; }
264
+ .text-normal { font-weight: 400; }
265
+ .text-medium { font-weight: 500; }
266
+ .text-semibold { font-weight: 600; }
267
+ .text-bold { font-weight: 700; }
268
+ .text-default { color: inherit; }
269
+ .text-muted { color: #4b5563; }
270
+ .text-accent { color: #2563eb; }
271
+ .text-danger { color: #ef4444; }
272
+ .text-success { color: #16a34a; }
273
+ .text-left { text-align: left; }
274
+ .text-center { text-align: center; }
275
+ .text-right { text-align: right; }
276
+ .text-truncate {
277
+ overflow: hidden;
278
+ text-overflow: ellipsis;
279
+ white-space: nowrap;
280
+ }
281
+ `;
282
+
283
+ // src/components/styles/stack.ts
284
+ var stackStyles = `
285
+ :host {
286
+ display: flex;
287
+ }
288
+ [part="stack"] {
289
+ display: flex;
290
+ width: 100%;
291
+ }
292
+ .stack-v {
293
+ flex-direction: column;
294
+ }
295
+ .stack-h {
296
+ flex-direction: row;
297
+ }
298
+ `;
299
+
300
+ // src/components/styles/grid.ts
301
+ var gridStyles = `
302
+ :host {
303
+ display: block;
304
+ }
305
+ [part="grid"] {
306
+ display: grid;
307
+ }
308
+ `;
309
+
310
+ // src/components/styles/overlay.ts
311
+ var overlayStyles = `
312
+ :host {
313
+ position: fixed;
314
+ inset: 0;
315
+ z-index: 9999;
316
+ }
317
+ [part="overlay"] {
318
+ position: fixed;
319
+ inset: 0;
320
+ background: rgba(0,0,0,0.5);
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: center;
324
+ }
325
+ .overlay-blur {
326
+ backdrop-filter: blur(4px);
327
+ }
328
+ [hidden] {
329
+ display: none !important;
330
+ }
331
+ `;
332
+
333
+ // src/components/styles/field.ts
334
+ var fieldStyles = `
335
+ :host {
336
+ display: block;
337
+ }
338
+ [part="field"] {
339
+ display: flex;
340
+ flex-direction: column;
341
+ gap: 4px;
342
+ }
343
+ .field-label {
344
+ font-size: 0.875rem;
345
+ font-weight: 500;
346
+ color: #374151;
347
+ }
348
+ .field-label-required::after {
349
+ content: ' *';
350
+ color: #ef4444;
351
+ }
352
+ .field-content {
353
+ display: flex;
354
+ flex-direction: column;
355
+ }
356
+ .field-hint {
357
+ font-size: 0.75rem;
358
+ color: #4b5563;
359
+ }
360
+ .field-error {
361
+ font-size: 0.75rem;
362
+ color: #ef4444;
363
+ }
364
+ .hidden {
365
+ display: none;
366
+ }
367
+ `;
368
+
369
+ // src/components/styles/checkbox.ts
370
+ var checkboxStyles = `
371
+ :host {
372
+ display: inline-flex;
373
+ align-items: center;
374
+ }
375
+ [part="checkbox"] {
376
+ display: inline-flex;
377
+ align-items: center;
378
+ gap: 8px;
379
+ cursor: pointer;
380
+ }
381
+ :host(:focus-visible) .checkbox-indicator { outline: 2px solid #3b82f6; outline-offset: 2px; }
382
+ input {
383
+ position: absolute;
384
+ opacity: 0;
385
+ width: 0;
386
+ height: 0;
387
+ pointer-events: none;
388
+ }
389
+ .checkbox-indicator {
390
+ display: inline-flex;
391
+ align-items: center;
392
+ justify-content: center;
393
+ width: 18px;
394
+ height: 18px;
395
+ border: 2px solid #9ca3af;
396
+ border-radius: 4px;
397
+ transition: all .15s;
398
+ flex-shrink: 0;
399
+ box-sizing: border-box;
400
+ }
401
+ .checkbox-indicator.checked {
402
+ background: #3b82f6;
403
+ border-color: #2563eb;
404
+ color: #fff;
405
+ }
406
+ .checkbox-indicator svg {
407
+ opacity: 0;
408
+ transition: opacity .15s;
409
+ }
410
+ .checkbox-indicator.checked svg {
411
+ opacity: 1;
412
+ }
413
+ .checkbox-label {
414
+ font-size: 0.875rem;
415
+ color: #374151;
416
+ }
417
+ :host([disabled]) [part="checkbox"] {
418
+ opacity: 0.5;
419
+ cursor: not-allowed;
420
+ }
421
+ `;
422
+
423
+ // src/components/styles/select.ts
424
+ var selectStyles = `
425
+ :host {
426
+ display: inline-block;
427
+ position: relative;
428
+ }
429
+ .select-wrapper {
430
+ position: relative;
431
+ display: flex;
432
+ align-items: center;
433
+ }
434
+ .select {
435
+ font-family: inherit;
436
+ font-size: 14px;
437
+ line-height: 1.5;
438
+ padding: 8px 32px 8px 12px;
439
+ border: 1px solid #d1d5db;
440
+ border-radius: 6px;
441
+ outline: none;
442
+ width: 100%;
443
+ box-sizing: border-box;
444
+ background: #fff;
445
+ color: #111827;
446
+ transition: border-color .15s;
447
+ appearance: none;
448
+ -webkit-appearance: none;
449
+ cursor: pointer;
450
+ }
451
+ .select:focus {
452
+ border-color: #2563eb;
453
+ box-shadow: 0 0 0 2px rgba(59,130,246,.25);
454
+ }
455
+ .select:disabled {
456
+ background: #f9fafb;
457
+ color: #4b5563;
458
+ cursor: not-allowed;
459
+ }
460
+ .select-arrow {
461
+ position: absolute;
462
+ right: 8px;
463
+ pointer-events: none;
464
+ color: #4b5563;
465
+ display: flex;
466
+ align-items: center;
467
+ }
468
+ `;
469
+
470
+ // src/components/styles/link.ts
471
+ var linkStyles = `
472
+ :host {
473
+ display: inline;
474
+ }
475
+ [part="link"] {
476
+ font-family: inherit;
477
+ font-size: inherit;
478
+ line-height: inherit;
479
+ cursor: pointer;
480
+ transition: color .15s;
481
+ text-decoration: none;
482
+ border-radius: 2px;
483
+ }
484
+ [part="link"]:focus-visible {
485
+ outline: 2px solid #3b82f6;
486
+ outline-offset: 2px;
487
+ }
488
+ .link-default { color: #2563eb; }
489
+ .link-default:hover { color: #2563eb; text-decoration: underline; }
490
+ .link-accent { color: #374151; font-weight: 500; }
491
+ .link-accent:hover { color: #111827; text-decoration: underline; }
492
+ .link-muted { color: #4b5563; }
493
+ .link-muted:hover { color: #374151; text-decoration: underline; }
494
+ .link-danger { color: #ef4444; }
495
+ .link-danger:hover { color: #dc2626; text-decoration: underline; }
496
+ .link-underline-always { text-decoration: underline; }
497
+ .link-underline-none:hover { text-decoration: none; }
498
+ .link-disabled {
499
+ color: #4b5563 !important;
500
+ cursor: not-allowed;
501
+ pointer-events: none;
502
+ text-decoration: none !important;
503
+ }
504
+ `;
505
+
506
+ // src/components/styles/container.ts
507
+ var containerStyles = `
508
+ :host {
509
+ display: block;
510
+ width: 100%;
511
+ }
512
+ [part="container"] {
513
+ margin: 0 auto;
514
+ width: 100%;
515
+ box-sizing: border-box;
516
+ }
517
+ `;
518
+
519
+ // src/components/styles/dialog.ts
520
+ var dialogStyles = `
521
+ :host {
522
+ display: contents;
523
+ }
524
+ [part="dialog-root"] {
525
+ display: contents;
526
+ }
527
+ `;
528
+
529
+ // src/components/styles/tooltip.ts
530
+ var tooltipStyles = `
531
+ :host {
532
+ position: relative;
533
+ display: inline-flex;
534
+ }
535
+ [part="tooltip"] {
536
+ position: fixed;
537
+ z-index: 99999;
538
+ background: #1f2937;
539
+ color: #fff;
540
+ font-size: 0.75rem;
541
+ padding: 6px 10px;
542
+ border-radius: 6px;
543
+ pointer-events: none;
544
+ line-height: 1.4;
545
+ max-width: 200px;
546
+ box-shadow: 0 4px 12px rgba(0,0,0,.25);
547
+ animation: u-tooltip-in .12s ease;
548
+ }
549
+ @keyframes u-tooltip-in {
550
+ from { opacity: 0; transform: translateY(3px); }
551
+ to { opacity: 1; transform: translateY(0); }
552
+ }
553
+ .tooltip-arrow {
554
+ position: absolute;
555
+ width: 6px;
556
+ height: 6px;
557
+ background: #1f2937;
558
+ transform: rotate(45deg);
559
+ }
560
+ .arrow-top { bottom: -3px; left: calc(50% - 3px); }
561
+ .arrow-bottom { top: -3px; left: calc(50% - 3px); }
562
+ .arrow-left { right: -3px; top: calc(50% - 3px); }
563
+ .arrow-right { left: -3px; top: calc(50% - 3px); }
564
+ `;
565
+
566
+ // src/components/styles/textarea.ts
567
+ var textareaStyles = `
568
+ :host {
569
+ display: inline-block;
570
+ }
571
+ .textarea-wrapper {
572
+ position: relative;
573
+ display: flex;
574
+ }
575
+ textarea {
576
+ font-family: inherit;
577
+ font-size: 14px;
578
+ line-height: 1.5;
579
+ padding: 8px 12px;
580
+ border: 1px solid #d1d5db;
581
+ border-radius: 6px;
582
+ outline: none;
583
+ width: 100%;
584
+ box-sizing: border-box;
585
+ background: #fff;
586
+ color: #111827;
587
+ transition: border-color .15s;
588
+ resize: vertical;
589
+ min-height: 60px;
590
+ }
591
+ textarea::placeholder { color: #4b5563; }
592
+ textarea:focus {
593
+ border-color: #2563eb;
594
+ box-shadow: 0 0 0 2px rgba(59,130,246,.25);
595
+ }
596
+ textarea:disabled {
597
+ background: #f9fafb;
598
+ color: #4b5563;
599
+ cursor: not-allowed;
600
+ }
601
+ `;
602
+
603
+ // src/components/styles/radio.ts
604
+ var radioStyles = `
605
+ :host {
606
+ display: block;
607
+ }
608
+ [part="group"] {
609
+ display: flex;
610
+ }
611
+ [part="radio"] {
612
+ display: inline-flex;
613
+ align-items: center;
614
+ gap: 8px;
615
+ cursor: pointer;
616
+ font-size: 0.875rem;
617
+ color: #374151;
618
+ }
619
+ :host(:focus-visible) .radio-circle { outline: 2px solid #3b82f6; outline-offset: 2px; }
620
+ input[type="radio"] {
621
+ position: absolute;
622
+ opacity: 0;
623
+ width: 0;
624
+ height: 0;
625
+ pointer-events: none;
626
+ }
627
+ .radio-circle {
628
+ display: inline-flex;
629
+ align-items: center;
630
+ justify-content: center;
631
+ width: 18px;
632
+ height: 18px;
633
+ border: 2px solid #9ca3af;
634
+ border-radius: 50%;
635
+ transition: all .15s;
636
+ flex-shrink: 0;
637
+ box-sizing: border-box;
638
+ }
639
+ .radio-circle.checked {
640
+ border-color: #2563eb;
641
+ background: #3b82f6;
642
+ box-shadow: inset 0 0 0 3px #fff;
643
+ }
644
+ :host([disabled]) [part="radio"] {
645
+ opacity: 0.5;
646
+ cursor: not-allowed;
647
+ }
648
+ `;
649
+
650
+ // src/components/styles/switch.ts
651
+ var switchStyles = `
652
+ :host {
653
+ display: inline-flex;
654
+ }
655
+ [part="switch"] {
656
+ display: inline-flex;
657
+ cursor: pointer;
658
+ }
659
+ :host(:focus-visible) .switch-track { outline: 2px solid #3b82f6; outline-offset: 3px; }
660
+ input {
661
+ position: absolute;
662
+ opacity: 0;
663
+ width: 0;
664
+ height: 0;
665
+ pointer-events: none;
666
+ }
667
+ .switch-track {
668
+ width: 40px;
669
+ height: 22px;
670
+ background: #9ca3af;
671
+ border-radius: 11px;
672
+ position: relative;
673
+ transition: background .2s;
674
+ }
675
+ .switch-track.checked {
676
+ background: #3b82f6;
677
+ }
678
+ .switch-thumb {
679
+ position: absolute;
680
+ top: 2px;
681
+ left: 2px;
682
+ width: 18px;
683
+ height: 18px;
684
+ background: #fff;
685
+ border-radius: 50%;
686
+ transition: transform .2s;
687
+ box-shadow: 0 1px 2px rgba(0,0,0,.15);
688
+ }
689
+ .switch-track.checked .switch-thumb {
690
+ transform: translateX(18px);
691
+ }
692
+ :host([disabled]) [part="switch"] {
693
+ opacity: 0.5;
694
+ cursor: not-allowed;
695
+ }
696
+ `;
697
+
698
+ // src/components/styles/label.ts
699
+ var labelStyles = `
700
+ :host {
701
+ display: inline;
702
+ }
703
+ [part="label"] {
704
+ font-size: 0.875rem;
705
+ font-weight: 500;
706
+ color: #374151;
707
+ cursor: default;
708
+ }
709
+ .label-required::after {
710
+ content: ' *';
711
+ color: #ef4444;
712
+ }
713
+ `;
714
+
715
+ // src/components/styles/tree.ts
716
+ var treeStyles = `
717
+ :host {
718
+ display: block;
719
+ }
720
+ [part="tree"] {
721
+ list-style: none;
722
+ margin: 0;
723
+ padding: 0;
724
+ font-size: 0.875rem;
725
+ }
726
+ .tree-node {
727
+ list-style: none;
728
+ }
729
+ .tree-row {
730
+ display: flex;
731
+ align-items: center;
732
+ gap: 4px;
733
+ padding: 4px 8px;
734
+ cursor: pointer;
735
+ border-radius: 4px;
736
+ }
737
+ .tree-row:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
738
+ .tree-row:hover {
739
+ background: #f3f4f6;
740
+ }
741
+ .tree-toggle {
742
+ width: 16px;
743
+ flex-shrink: 0;
744
+ text-align: center;
745
+ font-size: 12px;
746
+ color: #4b5563;
747
+ }
748
+ .tree-toggle-spacer {
749
+ width: 16px;
750
+ flex-shrink: 0;
751
+ }
752
+ .tree-label {
753
+ color: #374151;
754
+ }
755
+ .tree-children {
756
+ list-style: none;
757
+ margin: 0;
758
+ padding: 0;
759
+ }
760
+ `;
761
+
762
+ // src/components/styles/table.ts
763
+ var tableStyles = `
764
+ :host {
765
+ display: block;
766
+ overflow-x: auto;
767
+ }
768
+ .table-wrapper {
769
+ width: 100%;
770
+ }
771
+ .table {
772
+ width: 100%;
773
+ border-collapse: collapse;
774
+ font-size: 0.875rem;
775
+ }
776
+ .table th {
777
+ text-align: left;
778
+ padding: 10px 12px;
779
+ border-bottom: 2px solid #e5e7eb;
780
+ font-weight: 600;
781
+ color: #374151;
782
+ white-space: nowrap;
783
+ background: #f9fafb;
784
+ }
785
+ .table th.sortable {
786
+ cursor: pointer;
787
+ user-select: none;
788
+ }
789
+ .table th.sortable:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
790
+ .table th.sortable:hover {
791
+ background: #f3f4f6;
792
+ }
793
+ .table td {
794
+ padding: 10px 12px;
795
+ border-bottom: 1px solid #e5e7eb;
796
+ color: #4b5563;
797
+ }
798
+ .table tr:hover td {
799
+ background: #f9fafb;
800
+ }
801
+ `;
802
+
803
+ // src/components/styles/breadcrumb.ts
804
+ var breadcrumbStyles = `
805
+ :host {
806
+ display: block;
807
+ }
808
+ [part="breadcrumb"] {
809
+ font-size: 0.875rem;
810
+ }
811
+ [part="list"] {
812
+ display: flex;
813
+ align-items: center;
814
+ gap: 4px;
815
+ list-style: none;
816
+ margin: 0;
817
+ padding: 0;
818
+ }
819
+ .breadcrumb-item {
820
+ display: flex;
821
+ align-items: center;
822
+ gap: 4px;
823
+ color: #4b5563;
824
+ }
825
+ .breadcrumb-item a {
826
+ color: #2563eb;
827
+ text-decoration: none;
828
+ }
829
+ .breadcrumb-item a:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; border-radius: 2px; }
830
+ .breadcrumb-item a:hover {
831
+ text-decoration: underline;
832
+ }
833
+ .breadcrumb-item[aria-current="page"] {
834
+ color: #111827;
835
+ font-weight: 500;
836
+ }
837
+ .breadcrumb-separator {
838
+ color: #d1d5db;
839
+ margin: 0 2px;
840
+ }
841
+ `;
842
+
843
+ // src/components/styles/tabs.ts
844
+ var tabsStyles = `
845
+ :host {
846
+ display: block;
847
+ }
848
+ [part="tabs"] {
849
+ display: flex;
850
+ flex-direction: column;
851
+ }
852
+ [part="tablist"] {
853
+ display: flex;
854
+ gap: 0;
855
+ position: relative;
856
+ outline: none;
857
+ }
858
+ .tablist-underline {
859
+ border-bottom: 1px solid #d1d5db;
860
+ }
861
+ .tablist-underline .tab-indicator {
862
+ position: absolute;
863
+ bottom: 0;
864
+ height: 2px;
865
+ background: #3b82f6;
866
+ transition: left .2s ease, width .2s ease;
867
+ border-radius: 1px;
868
+ }
869
+ .tablist-pills {
870
+ gap: 4px;
871
+ flex-wrap: wrap;
872
+ }
873
+ .tablist-buttons {
874
+ gap: 4px;
875
+ flex-wrap: wrap;
876
+ }
877
+ .tablist-full {
878
+ width: 100%;
879
+ }
880
+ .tablist-full .tab-trigger {
881
+ flex: 1;
882
+ text-align: center;
883
+ }
884
+ .tab-trigger {
885
+ font-family: inherit;
886
+ font-size: 0.875rem;
887
+ padding: 10px 16px;
888
+ border: none;
889
+ background: none;
890
+ cursor: pointer;
891
+ color: #4b5563;
892
+ transition: all .15s;
893
+ outline: none;
894
+ display: inline-flex;
895
+ align-items: center;
896
+ justify-content: center;
897
+ gap: 8px;
898
+ white-space: nowrap;
899
+ user-select: none;
900
+ position: relative;
901
+ border-radius: 0;
902
+ }
903
+ .tab-trigger:hover:not(:disabled):not(.active) {
904
+ color: #374151;
905
+ }
906
+ .tab-trigger.active {
907
+ color: #2563eb;
908
+ font-weight: 500;
909
+ }
910
+ .tab-trigger:focus-visible {
911
+ box-shadow: inset 0 0 0 2px #3b82f6;
912
+ }
913
+ .tab-trigger:disabled {
914
+ opacity: .4;
915
+ cursor: not-allowed;
916
+ }
917
+ .tab-trigger-icon {
918
+ display: inline-flex;
919
+ align-items: center;
920
+ justify-content: center;
921
+ width: 16px;
922
+ height: 16px;
923
+ flex-shrink: 0;
924
+ }
925
+ .tab-trigger-icon svg {
926
+ width: 16px;
927
+ height: 16px;
928
+ }
929
+ .tablist-pills .tab-trigger {
930
+ border-radius: 999px;
931
+ padding: 6px 14px;
932
+ }
933
+ .tablist-pills .tab-trigger:hover:not(:disabled) {
934
+ background: #f3f4f6;
935
+ }
936
+ .tablist-pills .tab-trigger.active {
937
+ background: #eff6ff;
938
+ color: #2563eb;
939
+ }
940
+ .tablist-buttons .tab-trigger {
941
+ border-radius: 6px;
942
+ padding: 6px 14px;
943
+ }
944
+ .tablist-buttons .tab-trigger:hover:not(:disabled) {
945
+ background: #f3f4f6;
946
+ }
947
+ .tablist-buttons .tab-trigger.active {
948
+ background: #3b82f6;
949
+ color: #fff;
950
+ }
951
+ [part="tabpanels"] {
952
+ padding: 16px 0;
953
+ outline: none;
954
+ }
955
+ .tab-panel {
956
+ outline: none;
957
+ animation: u-tab-panel-in .15s ease;
958
+ }
959
+ @keyframes u-tab-panel-in {
960
+ from { opacity: 0; }
961
+ to { opacity: 1; }
962
+ }
963
+ `;
964
+
965
+ // src/components/styles/visually-hidden.ts
966
+ var visuallyHiddenStyles = `
967
+ :host {
968
+ display: inline;
969
+ }
970
+ [part="hidden"] {
971
+ position: absolute;
972
+ width: 1px;
973
+ height: 1px;
974
+ padding: 0;
975
+ margin: -1px;
976
+ overflow: hidden;
977
+ clip: rect(0,0,0,0);
978
+ white-space: nowrap;
979
+ border: 0;
980
+ }
981
+ `;
982
+
983
+ // src/components/styles/presence.ts
984
+ var presenceStyles = `
985
+ [part="presence"] {
986
+ animation-fill-mode: both;
987
+ }
988
+ .presence-enter {
989
+ opacity: 0;
990
+ }
991
+ .presence-enter-active {
992
+ opacity: 1;
993
+ transition: opacity var(--duration, 200ms) ease;
994
+ }
995
+ .presence-leave {
996
+ opacity: 1;
997
+ }
998
+ .presence-leave-active {
999
+ opacity: 0;
1000
+ transition: opacity var(--duration, 200ms) ease;
1001
+ }
1002
+ `;
1003
+
1004
+ // src/components/styles/animate.ts
1005
+ var animateKeyframes = `
1006
+ @keyframes u-fade-in {
1007
+ from { opacity: 0; }
1008
+ to { opacity: 1; }
1009
+ }
1010
+ @keyframes u-fade-out {
1011
+ from { opacity: 1; }
1012
+ to { opacity: 0; }
1013
+ }
1014
+ @keyframes u-slide-in-up {
1015
+ from { opacity: 0; transform: translateY(20px); }
1016
+ to { opacity: 1; transform: translateY(0); }
1017
+ }
1018
+ @keyframes u-slide-in-down {
1019
+ from { opacity: 0; transform: translateY(-20px); }
1020
+ to { opacity: 1; transform: translateY(0); }
1021
+ }
1022
+ @keyframes u-slide-in-left {
1023
+ from { opacity: 0; transform: translateX(20px); }
1024
+ to { opacity: 1; transform: translateX(0); }
1025
+ }
1026
+ @keyframes u-slide-in-right {
1027
+ from { opacity: 0; transform: translateX(-20px); }
1028
+ to { opacity: 1; transform: translateX(0); }
1029
+ }
1030
+ @keyframes u-slide-out-up {
1031
+ from { opacity: 1; transform: translateY(0); }
1032
+ to { opacity: 0; transform: translateY(-20px); }
1033
+ }
1034
+ @keyframes u-slide-out-down {
1035
+ from { opacity: 1; transform: translateY(0); }
1036
+ to { opacity: 0; transform: translateY(20px); }
1037
+ }
1038
+ @keyframes u-scale-in {
1039
+ from { opacity: 0; transform: scale(0.95); }
1040
+ to { opacity: 1; transform: scale(1); }
1041
+ }
1042
+ @keyframes u-scale-out {
1043
+ from { opacity: 1; transform: scale(1); }
1044
+ to { opacity: 0; transform: scale(0.95); }
1045
+ }
1046
+ @keyframes u-bounce-in {
1047
+ 0% { opacity: 0; transform: scale(0.3); }
1048
+ 50% { transform: scale(1.05); }
1049
+ 70% { transform: scale(0.9); }
1050
+ 100% { opacity: 1; transform: scale(1); }
1051
+ }
1052
+ `;
1053
+
1054
+ // src/components/styles/modal.ts
1055
+ var modalStyles = `
1056
+ :host {
1057
+ display: contents;
1058
+ }
1059
+ @keyframes u-modal-fade-in {
1060
+ from { opacity: 0; }
1061
+ to { opacity: 1; }
1062
+ }
1063
+ @keyframes u-modal-scale-in {
1064
+ from { opacity: 0; transform: scale(0.95) translateY(8px); }
1065
+ to { opacity: 1; transform: scale(1) translateY(0); }
1066
+ }
1067
+ .modal-backdrop {
1068
+ position: fixed;
1069
+ inset: 0;
1070
+ background: rgba(0,0,0,0.5);
1071
+ z-index: 9998;
1072
+ animation: u-modal-fade-in .15s ease;
1073
+ }
1074
+ .modal {
1075
+ position: fixed;
1076
+ inset: 0;
1077
+ z-index: 9999;
1078
+ display: flex;
1079
+ align-items: center;
1080
+ justify-content: center;
1081
+ padding: 16px;
1082
+ }
1083
+ .modal-wrapper {
1084
+ background: #fff;
1085
+ border-radius: 12px;
1086
+ box-shadow: 0 20px 60px rgba(0,0,0,.15);
1087
+ display: flex;
1088
+ flex-direction: column;
1089
+ max-height: 85vh;
1090
+ width: 100%;
1091
+ animation: u-modal-scale-in .2s ease;
1092
+ }
1093
+ .modal-sm { max-width: 400px; }
1094
+ .modal-md { max-width: 500px; }
1095
+ .modal-lg { max-width: 640px; }
1096
+ .modal-xl { max-width: 800px; }
1097
+ .modal-full { max-width: calc(100vw - 32px); }
1098
+ .modal-header {
1099
+ display: flex;
1100
+ align-items: center;
1101
+ justify-content: space-between;
1102
+ padding: 16px 20px;
1103
+ border-bottom: 1px solid #e5e7eb;
1104
+ gap: 12px;
1105
+ }
1106
+ .modal-title {
1107
+ font-weight: 600;
1108
+ font-size: 1.125rem;
1109
+ color: #111827;
1110
+ flex: 1;
1111
+ min-width: 0;
1112
+ overflow: hidden;
1113
+ text-overflow: ellipsis;
1114
+ white-space: nowrap;
1115
+ }
1116
+ .modal-close {
1117
+ background: none;
1118
+ border: none;
1119
+ cursor: pointer;
1120
+ color: #4b5563;
1121
+ padding: 4px;
1122
+ line-height: 1;
1123
+ border-radius: 6px;
1124
+ display: inline-flex;
1125
+ align-items: center;
1126
+ justify-content: center;
1127
+ flex-shrink: 0;
1128
+ transition: color .15s, background .15s;
1129
+ }
1130
+ .modal-close:hover { color: #374151; background: #f3f4f6; }
1131
+ .modal-close:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
1132
+ .modal-close svg {
1133
+ width: 18px;
1134
+ height: 18px;
1135
+ }
1136
+ .modal-content {
1137
+ padding: 20px;
1138
+ overflow-y: auto;
1139
+ flex: 1;
1140
+ color: #374151;
1141
+ font-size: 0.875rem;
1142
+ line-height: 1.6;
1143
+ }
1144
+ .modal-footer {
1145
+ display: flex;
1146
+ align-items: center;
1147
+ justify-content: flex-end;
1148
+ gap: 8px;
1149
+ padding: 12px 20px;
1150
+ border-top: 1px solid #e5e7eb;
1151
+ }
1152
+ .modal-mobile.modal-wrapper {
1153
+ max-height: calc(100vh - 32px) !important;
1154
+ border-radius: 10px;
1155
+ }
1156
+ `;
1157
+
1158
+ // src/components/styles/drawer.ts
1159
+ var drawerStyles = `
1160
+ :host {
1161
+ display: contents;
1162
+ }
1163
+ .drawer-backdrop {
1164
+ position: fixed;
1165
+ inset: 0;
1166
+ background: rgba(0,0,0,0.5);
1167
+ z-index: 9998;
1168
+ }
1169
+ .drawer {
1170
+ position: fixed;
1171
+ z-index: 9999;
1172
+ }
1173
+ .drawer-right { top: 0; right: 0; height: 100%; }
1174
+ .drawer-left { top: 0; left: 0; height: 100%; }
1175
+ .drawer-top { top: 0; left: 0; width: 100%; }
1176
+ .drawer-bottom { bottom: 0; left: 0; width: 100%; }
1177
+ .drawer-content {
1178
+ background: #fff;
1179
+ display: flex;
1180
+ flex-direction: column;
1181
+ box-shadow: 0 0 40px rgba(0,0,0,.1);
1182
+ }
1183
+ .drawer-right .drawer-content { height: 100%; transform: translateX(100%); transition: transform .25s ease; border-radius: 12px 0 0 12px; }
1184
+ .drawer-left .drawer-content { height: 100%; transform: translateX(-100%); transition: transform .25s ease; border-radius: 0 12px 12px 0; }
1185
+ .drawer-top .drawer-content { width: 100%; transform: translateY(-100%); transition: transform .25s ease; border-radius: 0 0 12px 12px; }
1186
+ .drawer-bottom .drawer-content { width: 100%; transform: translateY(100%); transition: transform .25s ease; border-radius: 12px 12px 0 0; }
1187
+ .drawer-open .drawer-content { transform: translate(0,0); }
1188
+ .drawer-header {
1189
+ display: flex;
1190
+ align-items: center;
1191
+ justify-content: space-between;
1192
+ padding: 16px 20px;
1193
+ border-bottom: 1px solid #e5e7eb;
1194
+ font-weight: 600;
1195
+ font-size: 1.125rem;
1196
+ }
1197
+ .drawer-close {
1198
+ background: none;
1199
+ border: none;
1200
+ font-size: 1.5rem;
1201
+ cursor: pointer;
1202
+ color: #4b5563;
1203
+ padding: 0;
1204
+ line-height: 1;
1205
+ }
1206
+ .drawer-close:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
1207
+ .drawer-close:hover { color: #374151; }
1208
+ .drawer-body { padding: 20px; overflow-y: auto; flex: 1; color: #4b5563; font-size: 0.875rem; }
1209
+ .drawer-footer { padding: 12px 20px; border-top: 1px solid #e5e7eb; display: flex; gap: 8px; justify-content: flex-end; }
1210
+ `;
1211
+
1212
+ // src/components/styles/popover.ts
1213
+ var popoverStyles = `
1214
+ :host {
1215
+ position: relative;
1216
+ display: inline-flex;
1217
+ }
1218
+ .popover-trigger {
1219
+ display: inline-flex;
1220
+ }
1221
+ .popover {
1222
+ position: fixed;
1223
+ z-index: 99999;
1224
+ filter: drop-shadow(0 8px 24px rgba(0,0,0,.14));
1225
+ }
1226
+ .popover-content {
1227
+ background: #fff;
1228
+ border: 1px solid #d1d5db;
1229
+ border-radius: 10px;
1230
+ padding: 8px;
1231
+ font-size: 0.875rem;
1232
+ color: #374151;
1233
+ min-width: 160px;
1234
+ animation: u-popover-in .15s ease;
1235
+ }
1236
+ @keyframes u-popover-in {
1237
+ from { opacity: 0; transform: scale(.95); }
1238
+ to { opacity: 1; transform: scale(1); }
1239
+ }
1240
+ .popover-arrow {
1241
+ position: absolute;
1242
+ width: 10px;
1243
+ height: 10px;
1244
+ background: #fff;
1245
+ border: 1px solid #d1d5db;
1246
+ transform: rotate(45deg);
1247
+ z-index: -1;
1248
+ }
1249
+ .arrow-top { bottom: -5px; left: calc(50% - 5px); border-top: none; border-left: none; }
1250
+ .arrow-bottom { top: -5px; left: calc(50% - 5px); border-bottom: none; border-right: none; }
1251
+ .arrow-left { right: -5px; top: calc(50% - 5px); border-bottom: none; border-left: none; }
1252
+ .arrow-right { left: -5px; top: calc(50% - 5px); border-top: none; border-right: none; }
1253
+ `;
1254
+
1255
+ // src/components/styles/dropdown.ts
1256
+ var dropdownStyles = `
1257
+ :host {
1258
+ position: relative;
1259
+ display: inline-flex;
1260
+ }
1261
+ .dropdown-trigger {
1262
+ display: inline-flex;
1263
+ }
1264
+ .dropdown-menu {
1265
+ position: fixed;
1266
+ z-index: 99999;
1267
+ background: #fff;
1268
+ border: 1px solid #d1d5db;
1269
+ border-radius: 10px;
1270
+ box-shadow: 0 8px 24px rgba(0,0,0,.14);
1271
+ padding: 4px;
1272
+ min-width: 180px;
1273
+ outline: none;
1274
+ animation: u-dropdown-in .12s ease;
1275
+ }
1276
+ @keyframes u-dropdown-in {
1277
+ from { opacity: 0; transform: scale(.95); }
1278
+ to { opacity: 1; transform: scale(1); }
1279
+ }
1280
+ .dropdown-items {
1281
+ display: flex;
1282
+ flex-direction: column;
1283
+ }
1284
+ .dropdown-item {
1285
+ font-family: inherit;
1286
+ font-size: 0.875rem;
1287
+ padding: 8px 12px;
1288
+ border: none;
1289
+ background: none;
1290
+ cursor: pointer;
1291
+ color: #374151;
1292
+ text-align: left;
1293
+ border-radius: 6px;
1294
+ transition: background .1s;
1295
+ display: flex;
1296
+ align-items: center;
1297
+ gap: 8px;
1298
+ width: 100%;
1299
+ box-sizing: border-box;
1300
+ }
1301
+ .dropdown-item:hover { background: #f3f4f6; }
1302
+ .dropdown-item:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1303
+ .dropdown-item.selected { color: #2563eb; font-weight: 500; background: #eff6ff; }
1304
+ .dropdown-item:disabled { opacity: 0.4; cursor: not-allowed; }
1305
+ .dropdown-item-active { background: #eff6ff; color: #2563eb; }
1306
+ .dropdown-item-icon {
1307
+ width: 16px;
1308
+ height: 16px;
1309
+ flex-shrink: 0;
1310
+ display: inline-flex;
1311
+ align-items: center;
1312
+ justify-content: center;
1313
+ color: #4b5563;
1314
+ }
1315
+ .dropdown-item-icon svg {
1316
+ width: 16px;
1317
+ height: 16px;
1318
+ }
1319
+ .dropdown-item-text {
1320
+ flex: 1;
1321
+ min-width: 0;
1322
+ }
1323
+ .dropdown-item-label {
1324
+ display: block;
1325
+ line-height: 1.4;
1326
+ }
1327
+ .dropdown-item-desc {
1328
+ display: block;
1329
+ font-size: 0.75rem;
1330
+ color: #4b5563;
1331
+ line-height: 1.3;
1332
+ margin-top: 1px;
1333
+ }
1334
+ .dropdown-item-shortcut {
1335
+ font-size: 0.75rem;
1336
+ color: #4b5563;
1337
+ padding: 2px 6px;
1338
+ background: #f3f4f6;
1339
+ border-radius: 4px;
1340
+ font-family: inherit;
1341
+ flex-shrink: 0;
1342
+ }
1343
+ .dropdown-group-label {
1344
+ font-size: 0.75rem;
1345
+ font-weight: 600;
1346
+ color: #4b5563;
1347
+ text-transform: uppercase;
1348
+ letter-spacing: 0.05em;
1349
+ padding: 8px 12px 4px;
1350
+ }
1351
+ .dropdown-divider { height: 1px; background: #f3f4f6; margin: 4px 0; }
1352
+ `;
1353
+
1354
+ // src/components/styles/accordion.ts
1355
+ var accordionStyles = `
1356
+ :host {
1357
+ display: block;
1358
+ }
1359
+ [part="accordion"] {
1360
+ border: 1px solid #9ca3af;
1361
+ border-radius: 8px;
1362
+ overflow: hidden;
1363
+ }
1364
+ .accordion-item {
1365
+ border-bottom: 1px solid #e5e7eb;
1366
+ }
1367
+ .accordion-item:last-child { border-bottom: none; }
1368
+ .accordion-header {
1369
+ display: flex;
1370
+ align-items: center;
1371
+ justify-content: space-between;
1372
+ padding: 12px 16px;
1373
+ cursor: pointer;
1374
+ font-weight: 500;
1375
+ font-size: 0.875rem;
1376
+ color: #374151;
1377
+ transition: background .15s;
1378
+ user-select: none;
1379
+ }
1380
+ .accordion-header:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1381
+ .accordion-header:hover { background: #f9fafb; }
1382
+ .accordion-icon {
1383
+ transition: transform .2s;
1384
+ font-size: 12px;
1385
+ color: #4b5563;
1386
+ }
1387
+ .accordion-item[open] .accordion-icon { transform: rotate(180deg); }
1388
+ .accordion-content {
1389
+ overflow: hidden;
1390
+ transition: height .25s ease;
1391
+ }
1392
+ .accordion-body {
1393
+ padding: 0 16px 12px;
1394
+ font-size: 0.875rem;
1395
+ color: #4b5563;
1396
+ }
1397
+ `;
1398
+
1399
+ // src/components/styles/calendar.ts
1400
+ var calendarStyles = `
1401
+ :host {
1402
+ display: inline-block;
1403
+ }
1404
+ .calendar {
1405
+ font-size: 0.875rem;
1406
+ width: 280px;
1407
+ background: #fff;
1408
+ border-radius: 8px;
1409
+ box-shadow: 0 4px 20px rgba(0,0,0,.08);
1410
+ padding: 16px;
1411
+ }
1412
+ .cal-header {
1413
+ display: flex;
1414
+ align-items: center;
1415
+ justify-content: space-between;
1416
+ margin-bottom: 12px;
1417
+ }
1418
+ .cal-title {
1419
+ font-weight: 600;
1420
+ color: #111827;
1421
+ }
1422
+ .cal-nav-btn {
1423
+ background: none;
1424
+ border: 1px solid #9ca3af;
1425
+ border-radius: 6px;
1426
+ width: 32px;
1427
+ height: 32px;
1428
+ cursor: pointer;
1429
+ font-size: 1.2rem;
1430
+ display: flex;
1431
+ align-items: center;
1432
+ justify-content: center;
1433
+ color: #4b5563;
1434
+ transition: all .15s;
1435
+ }
1436
+ .cal-nav-btn:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1437
+ .cal-nav-btn:hover {
1438
+ background: #f3f4f6;
1439
+ color: #374151;
1440
+ }
1441
+ .cal-day-names {
1442
+ display: grid;
1443
+ grid-template-columns: repeat(7, 1fr);
1444
+ text-align: center;
1445
+ font-size: 0.75rem;
1446
+ color: #4b5563;
1447
+ font-weight: 500;
1448
+ margin-bottom: 8px;
1449
+ }
1450
+ .cal-day-name {
1451
+ padding: 4px 0;
1452
+ }
1453
+ .cal-days-grid {
1454
+ display: grid;
1455
+ grid-template-columns: repeat(7, 1fr);
1456
+ gap: 2px;
1457
+ }
1458
+ .cal-day {
1459
+ background: none;
1460
+ border: none;
1461
+ border-radius: 6px;
1462
+ width: 100%;
1463
+ aspect-ratio: 1;
1464
+ cursor: pointer;
1465
+ font-size: 0.875rem;
1466
+ color: #374151;
1467
+ transition: all .1s;
1468
+ font-family: inherit;
1469
+ }
1470
+ .cal-day:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
1471
+ .cal-day:hover { background: #f3f4f6; }
1472
+ .cal-day-empty { pointer-events: none; }
1473
+ .cal-today { font-weight: 600; color: #2563eb; }
1474
+ .cal-selected { background: #3b82f6; color: #fff; font-weight: 600; }
1475
+ .cal-selected:hover { background: #2563eb; }
1476
+ .cal-disabled { opacity: 0.3; pointer-events: none; }
1477
+ `;
1478
+
1479
+ // src/components/styles/data-table.ts
1480
+ var dataTableStyles = `
1481
+ :host {
1482
+ display: block;
1483
+ }
1484
+ .data-table {
1485
+ font-size: 0.875rem;
1486
+ border: 1px solid #9ca3af;
1487
+ border-radius: 8px;
1488
+ overflow: hidden;
1489
+ }
1490
+ .dt-toolbar {
1491
+ display: flex;
1492
+ align-items: center;
1493
+ justify-content: space-between;
1494
+ padding: 12px 16px;
1495
+ border-bottom: 1px solid #9ca3af;
1496
+ background: #f9fafb;
1497
+ }
1498
+ .dt-search-input {
1499
+ font-family: inherit;
1500
+ font-size: 0.875rem;
1501
+ padding: 6px 12px;
1502
+ border: 1px solid #9ca3af;
1503
+ border-radius: 6px;
1504
+ outline: none;
1505
+ width: 200px;
1506
+ }
1507
+ .dt-search-input:focus {
1508
+ border-color: #2563eb;
1509
+ box-shadow: 0 0 0 2px rgba(59,130,246,.25);
1510
+ }
1511
+ .dt-page-info { color: #4b5563; font-size: 0.8rem; }
1512
+ .dt-table-wrapper { overflow-x: auto; }
1513
+ .dt-table { width: 100%; border-collapse: collapse; }
1514
+ .dt-table th {
1515
+ text-align: left;
1516
+ padding: 10px 12px;
1517
+ border-bottom: 2px solid #e5e7eb;
1518
+ font-weight: 600;
1519
+ color: #374151;
1520
+ white-space: nowrap;
1521
+ background: #f9fafb;
1522
+ }
1523
+ .dt-table th.dt-sortable { cursor: pointer; user-select: none; }
1524
+ .dt-table th.dt-sortable:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
1525
+ .dt-table th.dt-sortable:hover { background: #f3f4f6; }
1526
+ .dt-table td { padding: 10px 12px; border-bottom: 1px solid #e5e7eb; color: #4b5563; }
1527
+ .dt-table tr:hover td { background: #f9fafb; }
1528
+ .dt-row-selected td { background: #eff6ff; }
1529
+ .dt-col-check { width: 40px; }
1530
+ .dt-empty { text-align: center; color: #4b5563; padding: 32px; }
1531
+ .dt-pagination {
1532
+ display: flex;
1533
+ align-items: center;
1534
+ justify-content: space-between;
1535
+ padding: 8px 16px;
1536
+ border-top: 1px solid #9ca3af;
1537
+ background: #f9fafb;
1538
+ }
1539
+ .dt-page-btn {
1540
+ font-family: inherit;
1541
+ font-size: 0.8rem;
1542
+ padding: 6px 12px;
1543
+ border: 1px solid #9ca3af;
1544
+ border-radius: 6px;
1545
+ background: #fff;
1546
+ cursor: pointer;
1547
+ color: #374151;
1548
+ }
1549
+ .dt-page-btn:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
1550
+ .dt-page-btn:hover { background: #f3f4f6; }
1551
+ .dt-page-numbers { display: flex; gap: 4px; }
1552
+ .dt-page-num {
1553
+ font-family: inherit;
1554
+ font-size: 0.8rem;
1555
+ width: 32px;
1556
+ height: 32px;
1557
+ border: 1px solid transparent;
1558
+ border-radius: 6px;
1559
+ background: none;
1560
+ cursor: pointer;
1561
+ color: #4b5563;
1562
+ }
1563
+ .dt-page-num:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
1564
+ .dt-page-num:hover { background: #f3f4f6; }
1565
+ .dt-page-num.active { background: #3b82f6; color: #fff; font-weight: 600; }
1566
+ `;
1567
+
1568
+ // src/components/styles/command-palette.ts
1569
+ var commandPaletteStyles = `
1570
+ :host {
1571
+ display: contents;
1572
+ }
1573
+ .cp-backdrop {
1574
+ position: fixed;
1575
+ inset: 0;
1576
+ background: rgba(0,0,0,0.4);
1577
+ z-index: 99999;
1578
+ }
1579
+ .cp-dialog {
1580
+ position: fixed;
1581
+ top: 20%;
1582
+ left: 50%;
1583
+ transform: translateX(-50%);
1584
+ z-index: 100000;
1585
+ width: 540px;
1586
+ max-width: calc(100vw - 32px);
1587
+ }
1588
+ .cp-dialog-inner {
1589
+ background: #fff;
1590
+ border-radius: 12px;
1591
+ box-shadow: 0 20px 60px rgba(0,0,0,.2);
1592
+ overflow: hidden;
1593
+ }
1594
+ .cp-search-wrapper {
1595
+ display: flex;
1596
+ align-items: center;
1597
+ padding: 12px 16px;
1598
+ border-bottom: 1px solid #e5e7eb;
1599
+ gap: 8px;
1600
+ }
1601
+ .cp-search-icon { font-size: 1rem; color: #4b5563; }
1602
+ .cp-search-input {
1603
+ flex: 1;
1604
+ border: none;
1605
+ outline: none;
1606
+ font-family: inherit;
1607
+ font-size: 1rem;
1608
+ color: #111827;
1609
+ background: none;
1610
+ }
1611
+ .cp-shortcut-hint {
1612
+ font-size: 0.75rem;
1613
+ padding: 2px 6px;
1614
+ background: #f3f4f6;
1615
+ border-radius: 4px;
1616
+ color: #4b5563;
1617
+ font-family: inherit;
1618
+ }
1619
+ .cp-results {
1620
+ max-height: 320px;
1621
+ overflow-y: auto;
1622
+ padding: 4px;
1623
+ }
1624
+ .cp-group-label {
1625
+ padding: 8px 12px 4px;
1626
+ font-size: 0.75rem;
1627
+ font-weight: 600;
1628
+ color: #4b5563;
1629
+ text-transform: uppercase;
1630
+ letter-spacing: 0.05em;
1631
+ }
1632
+ .cp-item {
1633
+ display: flex;
1634
+ align-items: center;
1635
+ gap: 8px;
1636
+ width: 100%;
1637
+ padding: 10px 12px;
1638
+ border: none;
1639
+ background: none;
1640
+ cursor: pointer;
1641
+ text-align: left;
1642
+ border-radius: 6px;
1643
+ font-family: inherit;
1644
+ box-sizing: border-box;
1645
+ }
1646
+ .cp-item:hover { background: #f3f4f6; }
1647
+ .cp-item:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1648
+ .cp-item-active { background: #eff6ff; }
1649
+ .cp-item-label { font-size: 0.875rem; color: #111827; flex: 1; }
1650
+ .cp-item-desc { font-size: 0.75rem; color: #4b5563; flex: 1; }
1651
+ .cp-item-shortcut {
1652
+ font-size: 0.75rem;
1653
+ padding: 2px 6px;
1654
+ background: #f3f4f6;
1655
+ border-radius: 4px;
1656
+ color: #4b5563;
1657
+ font-family: inherit;
1658
+ }
1659
+ .cp-empty { padding: 24px; text-align: center; color: #4b5563; font-size: 0.875rem; }
1660
+ .cp-footer {
1661
+ display: flex;
1662
+ gap: 16px;
1663
+ padding: 8px 16px;
1664
+ border-top: 1px solid #e5e7eb;
1665
+ font-size: 0.75rem;
1666
+ color: #4b5563;
1667
+ }
1668
+ `;
1669
+
1670
+ // src/components/styles/combobox.ts
1671
+ var comboboxStyles = `
1672
+ :host {
1673
+ display: inline-block;
1674
+ position: relative;
1675
+ }
1676
+ .combobox {
1677
+ position: relative;
1678
+ }
1679
+ .combobox-input-wrapper {
1680
+ display: flex;
1681
+ align-items: center;
1682
+ border: 1px solid #d1d5db;
1683
+ border-radius: 6px;
1684
+ transition: border-color .15s;
1685
+ background: #fff;
1686
+ }
1687
+ .combobox-input-wrapper:focus-within {
1688
+ border-color: #2563eb;
1689
+ box-shadow: 0 0 0 2px rgba(59,130,246,.25);
1690
+ }
1691
+ .combobox-input {
1692
+ font-family: inherit;
1693
+ font-size: 14px;
1694
+ padding: 8px 12px;
1695
+ border: none;
1696
+ outline: none;
1697
+ background: none;
1698
+ width: 100%;
1699
+ box-sizing: border-box;
1700
+ color: #111827;
1701
+ }
1702
+ .combobox-toggle {
1703
+ background: none;
1704
+ border: none;
1705
+ padding: 0 8px;
1706
+ cursor: pointer;
1707
+ color: #4b5563;
1708
+ font-size: 12px;
1709
+ display: flex;
1710
+ align-items: center;
1711
+ }
1712
+ .combobox-listbox {
1713
+ position: fixed;
1714
+ z-index: 99999;
1715
+ background: #fff;
1716
+ border-radius: 6px;
1717
+ box-shadow: 0 4px 20px rgba(0,0,0,.1);
1718
+ max-height: 240px;
1719
+ overflow-y: auto;
1720
+ padding: 4px;
1721
+ }
1722
+ .combobox-option {
1723
+ display: block;
1724
+ width: 100%;
1725
+ font-family: inherit;
1726
+ font-size: 0.875rem;
1727
+ padding: 8px 12px;
1728
+ border: none;
1729
+ background: none;
1730
+ cursor: pointer;
1731
+ color: #374151;
1732
+ text-align: left;
1733
+ border-radius: 4px;
1734
+ box-sizing: border-box;
1735
+ }
1736
+ .combobox-option:hover { background: #f3f4f6; }
1737
+ .combobox-option.active { color: #2563eb; font-weight: 500; }
1738
+ .combobox-option:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1739
+ .combobox-empty { padding: 12px; text-align: center; color: #4b5563; font-size: 0.875rem; }
1740
+ `;
1741
+
1742
+ // src/components/styles/toast.ts
1743
+ var toastStyles = `
1744
+ :host {
1745
+ display: block;
1746
+ position: fixed;
1747
+ z-index: 100000;
1748
+ pointer-events: none;
1749
+ }
1750
+ .toast-container {
1751
+ position: fixed;
1752
+ display: flex;
1753
+ flex-direction: column;
1754
+ gap: 8px;
1755
+ padding: 16px;
1756
+ pointer-events: none;
1757
+ z-index: 100001;
1758
+ }
1759
+ .toast-top-right { top: 0; right: 0; }
1760
+ .toast-top-left { top: 0; left: 0; }
1761
+ .toast-top-center { top: 0; left: 50%; transform: translateX(-50%); }
1762
+ .toast-bottom-right { bottom: 0; right: 0; flex-direction: column-reverse; }
1763
+ .toast-bottom-left { bottom: 0; left: 0; flex-direction: column-reverse; }
1764
+ .toast-bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); flex-direction: column-reverse; }
1765
+ .toast {
1766
+ pointer-events: auto;
1767
+ display: flex;
1768
+ align-items: flex-start;
1769
+ gap: 12px;
1770
+ padding: 14px 16px;
1771
+ border-radius: 8px;
1772
+ box-shadow: 0 8px 24px rgba(0,0,0,.12);
1773
+ font-size: 0.875rem;
1774
+ min-width: 280px;
1775
+ max-width: 400px;
1776
+ animation: u-slide-in-right .2s ease;
1777
+ background: #fff;
1778
+ border: 1px solid #9ca3af;
1779
+ }
1780
+ .toast-exit {
1781
+ animation: u-slide-out-right .2s ease forwards;
1782
+ }
1783
+ .toast-info { border-left: 4px solid #3b82f6; }
1784
+ .toast-success { border-left: 4px solid #16a34a; }
1785
+ .toast-warning { border-left: 4px solid #d97706; }
1786
+ .toast-error { border-left: 4px solid #ef4444; }
1787
+ .toast-body { flex: 1; }
1788
+ .toast-title { font-weight: 600; color: #111827; }
1789
+ .toast-desc { color: #4b5563; margin-top: 4px; font-size: 0.8rem; }
1790
+ .toast-action {
1791
+ background: none;
1792
+ border: none;
1793
+ color: #2563eb;
1794
+ cursor: pointer;
1795
+ font-weight: 500;
1796
+ font-family: inherit;
1797
+ font-size: 0.8rem;
1798
+ white-space: nowrap;
1799
+ padding: 0;
1800
+ margin-top: 4px;
1801
+ }
1802
+ .toast-action:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; border-radius: 2px; }
1803
+ .toast-action:hover { color: #2563eb; }
1804
+ .toast-close {
1805
+ background: none;
1806
+ border: none;
1807
+ cursor: pointer;
1808
+ color: #4b5563;
1809
+ font-size: 1.2rem;
1810
+ padding: 0;
1811
+ line-height: 1;
1812
+ flex-shrink: 0;
1813
+ }
1814
+ .toast-close:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; border-radius: 2px; }
1815
+ .toast-close:hover { color: #374151; }
1816
+ `;
1817
+
1818
+ // src/components/styles/context-menu.ts
1819
+ var contextMenuStyles = `
1820
+ :host {
1821
+ position: relative;
1822
+ display: inline-flex;
1823
+ }
1824
+ .cm-trigger {
1825
+ display: inline;
1826
+ }
1827
+ .cm-menu {
1828
+ position: fixed;
1829
+ z-index: 99999;
1830
+ background: #fff;
1831
+ border: 1px solid #d1d5db;
1832
+ border-radius: 10px;
1833
+ box-shadow: 0 8px 24px rgba(0,0,0,.14);
1834
+ padding: 4px;
1835
+ min-width: 180px;
1836
+ max-height: 320px;
1837
+ overflow-y: auto;
1838
+ animation: u-cm-in .12s ease;
1839
+ }
1840
+ @keyframes u-cm-in {
1841
+ from { opacity: 0; transform: scale(.95); }
1842
+ to { opacity: 1; transform: scale(1); }
1843
+ }
1844
+ .cm-items {
1845
+ display: flex;
1846
+ flex-direction: column;
1847
+ }
1848
+ .cm-item {
1849
+ font-family: inherit;
1850
+ font-size: 0.875rem;
1851
+ padding: 8px 12px;
1852
+ border: none;
1853
+ background: none;
1854
+ cursor: pointer;
1855
+ color: #374151;
1856
+ text-align: left;
1857
+ border-radius: 6px;
1858
+ transition: background .1s;
1859
+ display: flex;
1860
+ align-items: center;
1861
+ gap: 8px;
1862
+ width: 100%;
1863
+ box-sizing: border-box;
1864
+ }
1865
+ .cm-item:hover { background: #f3f4f6; }
1866
+ .cm-item:focus-visible { box-shadow: 0 0 0 2px #3b82f6; }
1867
+ .cm-item:disabled { opacity: 0.4; cursor: not-allowed; }
1868
+ .cm-item-icon { width: 16px; text-align: center; font-size: 1rem; flex-shrink: 0; }
1869
+ .cm-item-label { flex: 1; }
1870
+ .cm-divider { height: 1px; background: #f3f4f6; margin: 4px 0; }
1871
+ `;
1872
+
1873
+ // src/components/styles/sortable.ts
1874
+ var sortableStyles = `
1875
+ :host {
1876
+ display: block;
1877
+ }
1878
+ .sortable {
1879
+ display: flex;
1880
+ flex-direction: column;
1881
+ gap: 4px;
1882
+ }
1883
+ .sortable-dragging {
1884
+ opacity: 0.9;
1885
+ box-shadow: 0 8px 24px rgba(0,0,0,.15);
1886
+ border-radius: 6px;
1887
+ cursor: grabbing;
1888
+ }
1889
+ .sortable-item:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px; }
1890
+ .sortable-placeholder {
1891
+ border: 2px dashed #d1d5db;
1892
+ border-radius: 6px;
1893
+ opacity: 0.5;
1894
+ box-sizing: border-box;
1895
+ transition: height 0.15s ease, margin 0.15s ease;
1896
+ }
1897
+ `;
1898
+
1899
+ // src/components/styles/form.ts
1900
+ var formStyles = `
1901
+ :host {
1902
+ display: block;
1903
+ }
1904
+ .form {
1905
+ display: flex;
1906
+ flex-direction: column;
1907
+ gap: 16px;
1908
+ }
1909
+ `;
1910
+
1911
+ // src/components/styles/badge.ts
1912
+ var badgeStyles = `
1913
+ :host {
1914
+ display: inline-flex;
1915
+ vertical-align: middle;
1916
+ }
1917
+ [part="badge"] {
1918
+ font-family: inherit;
1919
+ display: inline-flex;
1920
+ align-items: center;
1921
+ justify-content: center;
1922
+ font-weight: 500;
1923
+ line-height: 1;
1924
+ white-space: nowrap;
1925
+ user-select: none;
1926
+ transition: background .15s, color .15s;
1927
+ }
1928
+ .badge-pill {
1929
+ border-radius: 999px;
1930
+ }
1931
+ .badge-square {
1932
+ border-radius: 4px;
1933
+ }
1934
+ .badge-sm {
1935
+ font-size: 0.6875rem;
1936
+ padding: 2px 6px;
1937
+ min-height: 16px;
1938
+ min-width: 16px;
1939
+ }
1940
+ .badge-md {
1941
+ font-size: 0.75rem;
1942
+ padding: 3px 8px;
1943
+ min-height: 20px;
1944
+ min-width: 20px;
1945
+ }
1946
+ .badge-lg {
1947
+ font-size: 0.8125rem;
1948
+ padding: 4px 10px;
1949
+ min-height: 24px;
1950
+ min-width: 24px;
1951
+ }
1952
+ .badge-default {
1953
+ background: #f3f4f6;
1954
+ color: #374151;
1955
+ }
1956
+ .badge-primary {
1957
+ background: #eff6ff;
1958
+ color: #2563eb;
1959
+ }
1960
+ .badge-success {
1961
+ background: #dcfce7;
1962
+ color: #15803d;
1963
+ }
1964
+ .badge-warning {
1965
+ background: #fef3c7;
1966
+ color: #b45309;
1967
+ }
1968
+ .badge-danger {
1969
+ background: #fef2f2;
1970
+ color: #dc2626;
1971
+ }
1972
+ .badge-info {
1973
+ background: #e0f2fe;
1974
+ color: #0369a1;
1975
+ }
1976
+ .badge-dot {
1977
+ width: 8px;
1978
+ height: 8px;
1979
+ padding: 0;
1980
+ border-radius: 50%;
1981
+ min-width: 8px;
1982
+ min-height: 8px;
1983
+ }
1984
+ .badge-dot.badge-sm {
1985
+ width: 6px;
1986
+ height: 6px;
1987
+ min-width: 6px;
1988
+ min-height: 6px;
1989
+ }
1990
+ .badge-dot.badge-lg {
1991
+ width: 10px;
1992
+ height: 10px;
1993
+ min-width: 10px;
1994
+ min-height: 10px;
1995
+ }
1996
+ `;
1997
+
1998
+ // src/components/styles/card.ts
1999
+ var cardStyles = `
2000
+ :host {
2001
+ display: block;
2002
+ }
2003
+ [part="card"] {
2004
+ display: flex;
2005
+ flex-direction: column;
2006
+ font-family: inherit;
2007
+ transition: box-shadow .2s, border-color .2s, transform .2s;
2008
+ position: relative;
2009
+ overflow: hidden;
2010
+ }
2011
+ .card-default {
2012
+ background: #fff;
2013
+ border: 1px solid #d1d5db;
2014
+ border-radius: 12px;
2015
+ box-shadow: 0 1px 3px rgba(0,0,0,.05);
2016
+ }
2017
+ .card-outlined {
2018
+ background: transparent;
2019
+ border: 1px solid #d1d5db;
2020
+ border-radius: 12px;
2021
+ }
2022
+ .card-elevated {
2023
+ background: #fff;
2024
+ border: 1px solid transparent;
2025
+ border-radius: 12px;
2026
+ box-shadow: 0 4px 16px rgba(0,0,0,.08);
2027
+ }
2028
+ .card-hoverable:hover {
2029
+ box-shadow: 0 8px 24px rgba(0,0,0,.12);
2030
+ border-color: #9ca3af;
2031
+ transform: translateY(-2px);
2032
+ }
2033
+ .card-image {
2034
+ width: 100%;
2035
+ overflow: hidden;
2036
+ line-height: 0;
2037
+ }
2038
+ .card-image img,
2039
+ .card-image ::slotted(img) {
2040
+ width: 100%;
2041
+ height: auto;
2042
+ display: block;
2043
+ object-fit: cover;
2044
+ }
2045
+ .card-image-full {
2046
+ border-radius: 0;
2047
+ }
2048
+ .card-image-top {
2049
+ border-radius: 12px 12px 0 0;
2050
+ }
2051
+ .card-image-bottom {
2052
+ border-radius: 0 0 12px 12px;
2053
+ }
2054
+ [part="header"] {
2055
+ padding: 16px 20px 0;
2056
+ font-weight: 600;
2057
+ font-size: 1rem;
2058
+ color: #111827;
2059
+ }
2060
+ [part="content"] {
2061
+ padding: 16px 20px;
2062
+ flex: 1;
2063
+ min-width: 0;
2064
+ color: #374151;
2065
+ font-size: 0.875rem;
2066
+ line-height: 1.6;
2067
+ }
2068
+ [part="footer"] {
2069
+ padding: 0 20px 16px;
2070
+ display: flex;
2071
+ align-items: center;
2072
+ gap: 8px;
2073
+ }
2074
+ .card-padding-none [part="header"] { padding: 0; }
2075
+ .card-padding-none [part="content"] { padding: 0; }
2076
+ .card-padding-none [part="footer"] { padding: 0; }
2077
+ .card-padding-sm [part="header"] { padding: 12px 14px 0; }
2078
+ .card-padding-sm [part="content"] { padding: 12px 14px; }
2079
+ .card-padding-sm [part="footer"] { padding: 0 14px 12px; }
2080
+ .card-padding-lg [part="header"] { padding: 20px 24px 0; }
2081
+ .card-padding-lg [part="content"] { padding: 20px 24px; }
2082
+ .card-padding-lg [part="footer"] { padding: 0 24px 20px; }
2083
+ `;
2084
+
2085
+ export { UElement, accordionStyles, animateKeyframes, badgeStyles, boxStyles, breadcrumbStyles, buttonStyles, calendarStyles, cardStyles, checkboxStyles, comboboxStyles, commandPaletteStyles, containerStyles, contextMenuStyles, dataTableStyles, dialogStyles, drawerStyles, dropdownStyles, fieldStyles, formStyles, gridStyles, iconStyles, inputStyles, labelStyles, linkStyles, listStyles, modalStyles, overlayStyles, popoverStyles, presenceStyles, radioStyles, selectStyles, sortableStyles, stackStyles, switchStyles, tableStyles, tabsStyles, textStyles, textareaStyles, toastStyles, tooltipStyles, treeStyles, visuallyHiddenStyles };
2086
+ //# sourceMappingURL=chunk-ICB6OBEZ.js.map
2087
+ //# sourceMappingURL=chunk-ICB6OBEZ.js.map