@avento-space/ts-ui 1.1.1 → 1.2.1

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