@agentconnect/ui 0.1.0

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 (68) hide show
  1. package/README.md +63 -0
  2. package/dist/client.d.ts +15 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +22 -0
  5. package/dist/components/connect.d.ts +79 -0
  6. package/dist/components/connect.d.ts.map +1 -0
  7. package/dist/components/connect.js +1110 -0
  8. package/dist/components/index.d.ts +8 -0
  9. package/dist/components/index.d.ts.map +1 -0
  10. package/dist/components/index.js +7 -0
  11. package/dist/components/login-button.d.ts +16 -0
  12. package/dist/components/login-button.d.ts.map +1 -0
  13. package/dist/components/login-button.js +69 -0
  14. package/dist/components/model-picker.d.ts +16 -0
  15. package/dist/components/model-picker.d.ts.map +1 -0
  16. package/dist/components/model-picker.js +61 -0
  17. package/dist/components/provider-status.d.ts +10 -0
  18. package/dist/components/provider-status.d.ts.map +1 -0
  19. package/dist/components/provider-status.js +42 -0
  20. package/dist/constants.d.ts +33 -0
  21. package/dist/constants.d.ts.map +1 -0
  22. package/dist/constants.js +156 -0
  23. package/dist/index.d.ts +11 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +13 -0
  26. package/dist/register.d.ts +9 -0
  27. package/dist/register.d.ts.map +1 -0
  28. package/dist/register.js +25 -0
  29. package/dist/styles/base.d.ts +5 -0
  30. package/dist/styles/base.d.ts.map +1 -0
  31. package/dist/styles/base.js +49 -0
  32. package/dist/styles/buttons.d.ts +6 -0
  33. package/dist/styles/buttons.d.ts.map +1 -0
  34. package/dist/styles/buttons.js +206 -0
  35. package/dist/styles/cards.d.ts +5 -0
  36. package/dist/styles/cards.d.ts.map +1 -0
  37. package/dist/styles/cards.js +212 -0
  38. package/dist/styles/index.d.ts +20 -0
  39. package/dist/styles/index.d.ts.map +1 -0
  40. package/dist/styles/index.js +42 -0
  41. package/dist/styles/inputs.d.ts +5 -0
  42. package/dist/styles/inputs.d.ts.map +1 -0
  43. package/dist/styles/inputs.js +79 -0
  44. package/dist/styles/panels.d.ts +5 -0
  45. package/dist/styles/panels.d.ts.map +1 -0
  46. package/dist/styles/panels.js +184 -0
  47. package/dist/styles/responsive.d.ts +5 -0
  48. package/dist/styles/responsive.d.ts.map +1 -0
  49. package/dist/styles/responsive.js +62 -0
  50. package/dist/styles/utilities.d.ts +5 -0
  51. package/dist/styles/utilities.d.ts.map +1 -0
  52. package/dist/styles/utilities.js +86 -0
  53. package/dist/types.d.ts +137 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +4 -0
  56. package/dist/utils/dom.d.ts +24 -0
  57. package/dist/utils/dom.d.ts.map +1 -0
  58. package/dist/utils/dom.js +42 -0
  59. package/dist/utils/html.d.ts +8 -0
  60. package/dist/utils/html.d.ts.map +1 -0
  61. package/dist/utils/html.js +11 -0
  62. package/dist/utils/index.d.ts +7 -0
  63. package/dist/utils/index.d.ts.map +1 -0
  64. package/dist/utils/index.js +6 -0
  65. package/dist/utils/storage.d.ts +29 -0
  66. package/dist/utils/storage.d.ts.map +1 -0
  67. package/dist/utils/storage.js +110 -0
  68. package/package.json +40 -0
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Button styles.
3
+ */
4
+ export const buttonStyles = `
5
+ .ac-button {
6
+ appearance: none;
7
+ border: 1px solid transparent;
8
+ border-radius: 999px;
9
+ padding: 10px 16px;
10
+ background: var(--ac-button-bg, #0b1320);
11
+ color: var(--ac-button-color, #f8fbff);
12
+ font-size: 13px;
13
+ font-weight: 700;
14
+ letter-spacing: 0.01em;
15
+ cursor: pointer;
16
+ transition: transform 0.15s ease, box-shadow 0.2s ease, opacity 0.2s ease;
17
+ }
18
+ .ac-button:hover:not([disabled]) {
19
+ transform: translateY(-1px);
20
+ box-shadow: 0 14px 30px rgba(10, 16, 28, 0.2);
21
+ }
22
+ .ac-button.secondary {
23
+ background: linear-gradient(
24
+ 165deg,
25
+ rgba(255, 255, 255, 0.95) 0%,
26
+ rgba(250, 251, 254, 0.9) 100%
27
+ );
28
+ color: #1a1f2e;
29
+ border: 1px solid rgba(195, 165, 90, 0.35);
30
+ box-shadow:
31
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
32
+ 0 1px 3px rgba(0, 0, 0, 0.04);
33
+ }
34
+ .ac-button.secondary:hover:not([disabled]) {
35
+ border-color: rgba(200, 170, 90, 0.55);
36
+ background: linear-gradient(
37
+ 165deg,
38
+ rgba(255, 255, 255, 1) 0%,
39
+ rgba(253, 253, 255, 0.95) 100%
40
+ );
41
+ box-shadow:
42
+ 0 0 0 1px rgba(210, 180, 100, 0.12),
43
+ inset 0 1px 0 rgba(255, 255, 255, 1),
44
+ 0 4px 12px rgba(0, 0, 0, 0.06);
45
+ }
46
+ .ac-button.ghost {
47
+ background: transparent;
48
+ color: rgba(80, 70, 50, 0.7);
49
+ border: 1px solid rgba(195, 165, 90, 0.3);
50
+ box-shadow: none;
51
+ }
52
+ .ac-button.ghost:hover:not([disabled]) {
53
+ color: rgba(80, 70, 50, 0.9);
54
+ border-color: rgba(200, 170, 90, 0.45);
55
+ background: rgba(255, 255, 255, 0.5);
56
+ }
57
+ .ac-button.ac-close {
58
+ width: 32px;
59
+ height: 32px;
60
+ padding: 0;
61
+ border-radius: 999px;
62
+ font-size: 18px;
63
+ line-height: 1;
64
+ color: rgba(80, 70, 50, 0.5);
65
+ }
66
+ .ac-button.ac-close:hover:not([disabled]) {
67
+ color: rgba(80, 70, 50, 0.8);
68
+ background: rgba(200, 170, 90, 0.12);
69
+ }
70
+ .ac-button[disabled] {
71
+ opacity: 0.6;
72
+ cursor: default;
73
+ box-shadow: none;
74
+ }
75
+ .ac-chip {
76
+ font-size: 12px;
77
+ font-weight: 600;
78
+ padding: 6px 10px;
79
+ border-radius: 999px;
80
+ background: linear-gradient(
81
+ 165deg,
82
+ rgba(255, 255, 255, 0.9) 0%,
83
+ rgba(250, 248, 245, 0.85) 100%
84
+ );
85
+ color: rgba(80, 70, 50, 0.8);
86
+ border: 1px solid rgba(195, 165, 90, 0.28);
87
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
88
+ }
89
+ .ac-button.loading {
90
+ position: relative;
91
+ color: transparent;
92
+ pointer-events: none;
93
+ }
94
+ .ac-button.loading::after {
95
+ content: '';
96
+ position: absolute;
97
+ inset: 0;
98
+ margin: auto;
99
+ width: 16px;
100
+ height: 16px;
101
+ border: 2px solid var(--ac-button-color, #f8fbff);
102
+ border-top-color: transparent;
103
+ border-radius: 50%;
104
+ animation: ac-spin 0.8s linear infinite;
105
+ }
106
+ .ac-button.secondary.loading::after {
107
+ border-color: var(--ac-button-secondary-color, #0b1320);
108
+ border-top-color: transparent;
109
+ }
110
+ .ac-button:active:not([disabled]) {
111
+ transform: scale(0.98);
112
+ }
113
+ `;
114
+ export const connectButtonStyles = `
115
+ .ac-connect .ac-button {
116
+ position: relative;
117
+ display: inline-flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ gap: 10px;
121
+ min-height: 52px;
122
+ padding: 14px 24px;
123
+ border-radius: 999px;
124
+ background: linear-gradient(
125
+ 165deg,
126
+ rgba(255, 255, 255, 0.95) 0%,
127
+ rgba(245, 247, 250, 0.9) 25%,
128
+ rgba(235, 238, 245, 0.85) 50%,
129
+ rgba(240, 242, 248, 0.9) 75%,
130
+ rgba(250, 251, 254, 0.95) 100%
131
+ );
132
+ color: #1a1f2e;
133
+ font-size: 13px;
134
+ font-weight: 600;
135
+ letter-spacing: 0.02em;
136
+ border: 1.5px solid rgba(195, 165, 90, 0.55);
137
+ box-shadow:
138
+ 0 0 0 1px rgba(210, 180, 100, 0.2),
139
+ 0 1px 2px rgba(0, 0, 0, 0.04),
140
+ 0 4px 12px rgba(0, 0, 0, 0.06),
141
+ 0 12px 36px rgba(0, 0, 0, 0.08),
142
+ inset 0 1px 0 rgba(255, 255, 255, 1),
143
+ inset 0 -1px 0 rgba(0, 0, 0, 0.03);
144
+ backdrop-filter: blur(12px);
145
+ -webkit-backdrop-filter: blur(12px);
146
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
147
+ overflow: hidden;
148
+ width: min(var(--ac-connect-width, 240px), 92vw);
149
+ text-align: center;
150
+ white-space: nowrap;
151
+ text-overflow: ellipsis;
152
+ }
153
+ .ac-connect .ac-connect-label {
154
+ overflow: hidden;
155
+ text-overflow: ellipsis;
156
+ white-space: nowrap;
157
+ }
158
+ .ac-connect .ac-connect-icon {
159
+ width: 20px;
160
+ height: 20px;
161
+ display: inline-flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ flex: 0 0 20px;
165
+ }
166
+ .ac-connect .ac-connect-icon svg {
167
+ width: 18px;
168
+ height: 18px;
169
+ }
170
+ .ac-connect .ac-connect-icon[data-provider="claude"] svg {
171
+ fill: #d97757;
172
+ }
173
+ .ac-connect .ac-button:hover:not([disabled]) {
174
+ transform: translateY(-2px);
175
+ background: linear-gradient(
176
+ 165deg,
177
+ rgba(255, 255, 255, 1) 0%,
178
+ rgba(250, 252, 255, 0.95) 25%,
179
+ rgba(245, 248, 255, 0.9) 50%,
180
+ rgba(248, 250, 255, 0.95) 75%,
181
+ rgba(255, 255, 255, 1) 100%
182
+ );
183
+ border-color: rgba(200, 170, 90, 0.65);
184
+ box-shadow:
185
+ 0 0 0 1px rgba(215, 185, 100, 0.25),
186
+ 0 2px 4px rgba(0, 0, 0, 0.04),
187
+ 0 8px 24px rgba(0, 0, 0, 0.08),
188
+ 0 20px 50px rgba(0, 0, 0, 0.1),
189
+ inset 0 1px 0 rgba(255, 255, 255, 1),
190
+ inset 0 -1px 0 rgba(0, 0, 0, 0.02);
191
+ }
192
+ .ac-connect .ac-button:active:not([disabled]) {
193
+ transform: translateY(0) scale(0.98);
194
+ background: linear-gradient(
195
+ 165deg,
196
+ rgba(245, 247, 252, 0.95) 0%,
197
+ rgba(240, 243, 250, 0.9) 50%,
198
+ rgba(245, 247, 252, 0.95) 100%
199
+ );
200
+ box-shadow:
201
+ 0 1px 2px rgba(0, 0, 0, 0.05),
202
+ 0 4px 12px rgba(0, 0, 0, 0.06),
203
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
204
+ inset 0 -1px 0 rgba(0, 0, 0, 0.02);
205
+ }
206
+ `;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Provider card styles.
3
+ */
4
+ export declare const cardStyles = "\n .ac-provider-list {\n display: grid;\n gap: 12px;\n }\n .ac-provider-card {\n border: 1px solid rgba(195, 165, 90, 0.28);\n border-radius: 16px;\n padding: 14px 16px;\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: center;\n gap: 12px;\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 0.8) 0%,\n rgba(250, 251, 254, 0.7) 50%,\n rgba(255, 255, 255, 0.8) 100%\n );\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.8),\n 0 2px 8px rgba(0, 0, 0, 0.04);\n }\n .ac-provider-card:hover {\n transform: translateY(-2px);\n border-color: rgba(200, 170, 90, 0.5);\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 0.95) 0%,\n rgba(252, 253, 255, 0.9) 50%,\n rgba(255, 255, 255, 0.95) 100%\n );\n box-shadow:\n 0 0 0 1px rgba(210, 180, 100, 0.12),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 24px rgba(0, 0, 0, 0.08);\n }\n .ac-provider-card[data-provider=\"claude\"]:hover {\n border-color: rgba(217, 119, 87, 0.45);\n box-shadow:\n 0 0 0 1px rgba(217, 119, 87, 0.1),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 24px rgba(217, 119, 87, 0.12);\n }\n .ac-provider-card[data-provider=\"codex\"]:hover {\n border-color: rgba(32, 33, 35, 0.45);\n box-shadow:\n 0 0 0 1px rgba(32, 33, 35, 0.1),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 24px rgba(32, 33, 35, 0.12);\n }\n .ac-provider-card[data-provider=\"local\"]:hover {\n border-color: rgba(100, 116, 139, 0.45);\n box-shadow:\n 0 0 0 1px rgba(100, 116, 139, 0.1),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 24px rgba(100, 116, 139, 0.12);\n }\n .ac-provider-card.active {\n border-color: rgba(200, 170, 90, 0.6);\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 1) 0%,\n rgba(253, 252, 250, 0.95) 50%,\n rgba(255, 255, 255, 1) 100%\n );\n box-shadow:\n 0 0 0 1px rgba(210, 180, 100, 0.18),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 28px rgba(180, 150, 80, 0.15);\n }\n .ac-provider-card[data-provider=\"claude\"].active {\n border-color: rgba(217, 119, 87, 0.55);\n box-shadow:\n 0 0 0 1px rgba(217, 119, 87, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 28px rgba(217, 119, 87, 0.18);\n }\n .ac-provider-card[data-provider=\"codex\"].active {\n border-color: rgba(32, 33, 35, 0.55);\n box-shadow:\n 0 0 0 1px rgba(32, 33, 35, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 28px rgba(32, 33, 35, 0.18);\n }\n .ac-provider-card[data-provider=\"local\"].active {\n border-color: rgba(100, 116, 139, 0.55);\n box-shadow:\n 0 0 0 1px rgba(100, 116, 139, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 8px 28px rgba(100, 116, 139, 0.18);\n }\n .ac-provider-row {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .ac-provider-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .ac-provider-icon {\n width: 48px;\n height: 48px;\n border-radius: 14px;\n display: grid;\n place-items: center;\n font-weight: 700;\n letter-spacing: 0.06em;\n font-size: 11px;\n background: linear-gradient(\n 145deg,\n rgba(255, 255, 255, 0.95) 0%,\n rgba(245, 243, 240, 0.9) 100%\n );\n color: rgba(100, 85, 60, 0.8);\n border: 1.5px solid rgba(195, 165, 90, 0.35);\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n inset 0 -1px 0 rgba(0, 0, 0, 0.03),\n 0 2px 6px rgba(0, 0, 0, 0.04);\n }\n .ac-provider-icon svg {\n width: 26px;\n height: 26px;\n }\n .ac-provider-icon[data-provider=\"claude\"] {\n background: linear-gradient(145deg, #fff8f3 0%, #ffeee2 100%);\n border-color: rgba(217, 119, 87, 0.4);\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 2px 8px rgba(217, 119, 87, 0.12);\n }\n .ac-provider-icon[data-provider=\"claude\"] svg {\n fill: #d97757;\n }\n .ac-provider-card:hover .ac-provider-icon[data-provider=\"claude\"] {\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 4px 16px rgba(217, 119, 87, 0.2);\n }\n .ac-provider-icon[data-provider=\"codex\"] {\n background: linear-gradient(145deg, #f5f5f5 0%, #e8e8e8 100%);\n border-color: rgba(32, 33, 35, 0.4);\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 2px 8px rgba(32, 33, 35, 0.12);\n }\n .ac-provider-icon[data-provider=\"codex\"] svg {\n fill: #202123;\n }\n .ac-provider-card:hover .ac-provider-icon[data-provider=\"codex\"] {\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 4px 16px rgba(32, 33, 35, 0.2);\n }\n .ac-provider-icon[data-provider=\"local\"] {\n background: linear-gradient(145deg, #f2f4f8 0%, #e4e8f0 100%);\n border-color: rgba(100, 116, 139, 0.4);\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 2px 8px rgba(100, 116, 139, 0.12);\n }\n .ac-provider-icon[data-provider=\"local\"] svg {\n fill: #64748b;\n }\n .ac-provider-card:hover .ac-provider-icon[data-provider=\"local\"] {\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 1),\n 0 4px 16px rgba(100, 116, 139, 0.2);\n }\n .ac-provider-name {\n font-size: 15px;\n font-weight: 700;\n }\n .ac-provider-status {\n font-size: 12px;\n color: var(--ac-muted, #556070);\n }\n .ac-provider-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .ac-provider-card.loading {\n pointer-events: none;\n }\n .ac-provider-card.loading .ac-provider-name,\n .ac-provider-card.loading .ac-provider-status {\n background: var(--ac-skeleton-base, #e3e8ef);\n color: transparent;\n border-radius: 4px;\n animation: ac-shimmer 1.5s ease-in-out infinite;\n background-size: 200% 100%;\n }\n .ac-provider-card:active {\n transform: scale(0.99);\n }\n .ac-provider-card .ac-provider-actions .ac-button {\n pointer-events: none;\n }\n .ac-provider-card .ac-provider-actions .ac-button:hover {\n transform: none;\n box-shadow: inherit;\n }\n";
5
+ //# sourceMappingURL=cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../src/styles/cards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,UAAU,qnMAgNtB,CAAC"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Provider card styles.
3
+ */
4
+ export const cardStyles = `
5
+ .ac-provider-list {
6
+ display: grid;
7
+ gap: 12px;
8
+ }
9
+ .ac-provider-card {
10
+ border: 1px solid rgba(195, 165, 90, 0.28);
11
+ border-radius: 16px;
12
+ padding: 14px 16px;
13
+ display: grid;
14
+ grid-template-columns: 1fr auto;
15
+ align-items: center;
16
+ gap: 12px;
17
+ background: linear-gradient(
18
+ 165deg,
19
+ rgba(255, 255, 255, 0.8) 0%,
20
+ rgba(250, 251, 254, 0.7) 50%,
21
+ rgba(255, 255, 255, 0.8) 100%
22
+ );
23
+ cursor: pointer;
24
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
25
+ box-shadow:
26
+ inset 0 1px 0 rgba(255, 255, 255, 0.8),
27
+ 0 2px 8px rgba(0, 0, 0, 0.04);
28
+ }
29
+ .ac-provider-card:hover {
30
+ transform: translateY(-2px);
31
+ border-color: rgba(200, 170, 90, 0.5);
32
+ background: linear-gradient(
33
+ 165deg,
34
+ rgba(255, 255, 255, 0.95) 0%,
35
+ rgba(252, 253, 255, 0.9) 50%,
36
+ rgba(255, 255, 255, 0.95) 100%
37
+ );
38
+ box-shadow:
39
+ 0 0 0 1px rgba(210, 180, 100, 0.12),
40
+ inset 0 1px 0 rgba(255, 255, 255, 1),
41
+ 0 8px 24px rgba(0, 0, 0, 0.08);
42
+ }
43
+ .ac-provider-card[data-provider="claude"]:hover {
44
+ border-color: rgba(217, 119, 87, 0.45);
45
+ box-shadow:
46
+ 0 0 0 1px rgba(217, 119, 87, 0.1),
47
+ inset 0 1px 0 rgba(255, 255, 255, 1),
48
+ 0 8px 24px rgba(217, 119, 87, 0.12);
49
+ }
50
+ .ac-provider-card[data-provider="codex"]:hover {
51
+ border-color: rgba(32, 33, 35, 0.45);
52
+ box-shadow:
53
+ 0 0 0 1px rgba(32, 33, 35, 0.1),
54
+ inset 0 1px 0 rgba(255, 255, 255, 1),
55
+ 0 8px 24px rgba(32, 33, 35, 0.12);
56
+ }
57
+ .ac-provider-card[data-provider="local"]:hover {
58
+ border-color: rgba(100, 116, 139, 0.45);
59
+ box-shadow:
60
+ 0 0 0 1px rgba(100, 116, 139, 0.1),
61
+ inset 0 1px 0 rgba(255, 255, 255, 1),
62
+ 0 8px 24px rgba(100, 116, 139, 0.12);
63
+ }
64
+ .ac-provider-card.active {
65
+ border-color: rgba(200, 170, 90, 0.6);
66
+ background: linear-gradient(
67
+ 165deg,
68
+ rgba(255, 255, 255, 1) 0%,
69
+ rgba(253, 252, 250, 0.95) 50%,
70
+ rgba(255, 255, 255, 1) 100%
71
+ );
72
+ box-shadow:
73
+ 0 0 0 1px rgba(210, 180, 100, 0.18),
74
+ inset 0 1px 0 rgba(255, 255, 255, 1),
75
+ 0 8px 28px rgba(180, 150, 80, 0.15);
76
+ }
77
+ .ac-provider-card[data-provider="claude"].active {
78
+ border-color: rgba(217, 119, 87, 0.55);
79
+ box-shadow:
80
+ 0 0 0 1px rgba(217, 119, 87, 0.15),
81
+ inset 0 1px 0 rgba(255, 255, 255, 1),
82
+ 0 8px 28px rgba(217, 119, 87, 0.18);
83
+ }
84
+ .ac-provider-card[data-provider="codex"].active {
85
+ border-color: rgba(32, 33, 35, 0.55);
86
+ box-shadow:
87
+ 0 0 0 1px rgba(32, 33, 35, 0.15),
88
+ inset 0 1px 0 rgba(255, 255, 255, 1),
89
+ 0 8px 28px rgba(32, 33, 35, 0.18);
90
+ }
91
+ .ac-provider-card[data-provider="local"].active {
92
+ border-color: rgba(100, 116, 139, 0.55);
93
+ box-shadow:
94
+ 0 0 0 1px rgba(100, 116, 139, 0.15),
95
+ inset 0 1px 0 rgba(255, 255, 255, 1),
96
+ 0 8px 28px rgba(100, 116, 139, 0.18);
97
+ }
98
+ .ac-provider-row {
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 12px;
102
+ }
103
+ .ac-provider-meta {
104
+ display: flex;
105
+ align-items: center;
106
+ gap: 12px;
107
+ }
108
+ .ac-provider-icon {
109
+ width: 48px;
110
+ height: 48px;
111
+ border-radius: 14px;
112
+ display: grid;
113
+ place-items: center;
114
+ font-weight: 700;
115
+ letter-spacing: 0.06em;
116
+ font-size: 11px;
117
+ background: linear-gradient(
118
+ 145deg,
119
+ rgba(255, 255, 255, 0.95) 0%,
120
+ rgba(245, 243, 240, 0.9) 100%
121
+ );
122
+ color: rgba(100, 85, 60, 0.8);
123
+ border: 1.5px solid rgba(195, 165, 90, 0.35);
124
+ box-shadow:
125
+ inset 0 1px 0 rgba(255, 255, 255, 1),
126
+ inset 0 -1px 0 rgba(0, 0, 0, 0.03),
127
+ 0 2px 6px rgba(0, 0, 0, 0.04);
128
+ }
129
+ .ac-provider-icon svg {
130
+ width: 26px;
131
+ height: 26px;
132
+ }
133
+ .ac-provider-icon[data-provider="claude"] {
134
+ background: linear-gradient(145deg, #fff8f3 0%, #ffeee2 100%);
135
+ border-color: rgba(217, 119, 87, 0.4);
136
+ box-shadow:
137
+ inset 0 1px 0 rgba(255, 255, 255, 1),
138
+ 0 2px 8px rgba(217, 119, 87, 0.12);
139
+ }
140
+ .ac-provider-icon[data-provider="claude"] svg {
141
+ fill: #d97757;
142
+ }
143
+ .ac-provider-card:hover .ac-provider-icon[data-provider="claude"] {
144
+ box-shadow:
145
+ inset 0 1px 0 rgba(255, 255, 255, 1),
146
+ 0 4px 16px rgba(217, 119, 87, 0.2);
147
+ }
148
+ .ac-provider-icon[data-provider="codex"] {
149
+ background: linear-gradient(145deg, #f5f5f5 0%, #e8e8e8 100%);
150
+ border-color: rgba(32, 33, 35, 0.4);
151
+ box-shadow:
152
+ inset 0 1px 0 rgba(255, 255, 255, 1),
153
+ 0 2px 8px rgba(32, 33, 35, 0.12);
154
+ }
155
+ .ac-provider-icon[data-provider="codex"] svg {
156
+ fill: #202123;
157
+ }
158
+ .ac-provider-card:hover .ac-provider-icon[data-provider="codex"] {
159
+ box-shadow:
160
+ inset 0 1px 0 rgba(255, 255, 255, 1),
161
+ 0 4px 16px rgba(32, 33, 35, 0.2);
162
+ }
163
+ .ac-provider-icon[data-provider="local"] {
164
+ background: linear-gradient(145deg, #f2f4f8 0%, #e4e8f0 100%);
165
+ border-color: rgba(100, 116, 139, 0.4);
166
+ box-shadow:
167
+ inset 0 1px 0 rgba(255, 255, 255, 1),
168
+ 0 2px 8px rgba(100, 116, 139, 0.12);
169
+ }
170
+ .ac-provider-icon[data-provider="local"] svg {
171
+ fill: #64748b;
172
+ }
173
+ .ac-provider-card:hover .ac-provider-icon[data-provider="local"] {
174
+ box-shadow:
175
+ inset 0 1px 0 rgba(255, 255, 255, 1),
176
+ 0 4px 16px rgba(100, 116, 139, 0.2);
177
+ }
178
+ .ac-provider-name {
179
+ font-size: 15px;
180
+ font-weight: 700;
181
+ }
182
+ .ac-provider-status {
183
+ font-size: 12px;
184
+ color: var(--ac-muted, #556070);
185
+ }
186
+ .ac-provider-actions {
187
+ display: flex;
188
+ align-items: center;
189
+ gap: 8px;
190
+ }
191
+ .ac-provider-card.loading {
192
+ pointer-events: none;
193
+ }
194
+ .ac-provider-card.loading .ac-provider-name,
195
+ .ac-provider-card.loading .ac-provider-status {
196
+ background: var(--ac-skeleton-base, #e3e8ef);
197
+ color: transparent;
198
+ border-radius: 4px;
199
+ animation: ac-shimmer 1.5s ease-in-out infinite;
200
+ background-size: 200% 100%;
201
+ }
202
+ .ac-provider-card:active {
203
+ transform: scale(0.99);
204
+ }
205
+ .ac-provider-card .ac-provider-actions .ac-button {
206
+ pointer-events: none;
207
+ }
208
+ .ac-provider-card .ac-provider-actions .ac-button:hover {
209
+ transform: none;
210
+ box-shadow: inherit;
211
+ }
212
+ `;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Combined styles and style injection.
3
+ */
4
+ /**
5
+ * Combined CSS for all AgentConnect UI components.
6
+ */
7
+ export declare const combinedStyles: string;
8
+ /**
9
+ * Ensure styles are injected into a shadow root.
10
+ * Safe to call multiple times - will only inject once per root.
11
+ */
12
+ export declare function ensureStyles(root: ShadowRoot): void;
13
+ export { baseStyles } from './base';
14
+ export { buttonStyles, connectButtonStyles } from './buttons';
15
+ export { inputStyles } from './inputs';
16
+ export { panelStyles } from './panels';
17
+ export { cardStyles } from './cards';
18
+ export { utilityStyles } from './utilities';
19
+ export { responsiveStyles } from './responsive';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,eAAO,MAAM,cAAc,QASf,CAAC;AAEb;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAMnD;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Combined styles and style injection.
3
+ */
4
+ import { baseStyles } from './base';
5
+ import { buttonStyles, connectButtonStyles } from './buttons';
6
+ import { inputStyles } from './inputs';
7
+ import { panelStyles } from './panels';
8
+ import { cardStyles } from './cards';
9
+ import { utilityStyles } from './utilities';
10
+ import { responsiveStyles } from './responsive';
11
+ /**
12
+ * Combined CSS for all AgentConnect UI components.
13
+ */
14
+ export const combinedStyles = [
15
+ baseStyles,
16
+ buttonStyles,
17
+ connectButtonStyles,
18
+ inputStyles,
19
+ panelStyles,
20
+ cardStyles,
21
+ utilityStyles,
22
+ responsiveStyles,
23
+ ].join('\n');
24
+ /**
25
+ * Ensure styles are injected into a shadow root.
26
+ * Safe to call multiple times - will only inject once per root.
27
+ */
28
+ export function ensureStyles(root) {
29
+ if (root.querySelector('style[data-agentconnect]'))
30
+ return;
31
+ const style = document.createElement('style');
32
+ style.dataset.agentconnect = 'true';
33
+ style.textContent = combinedStyles;
34
+ root.appendChild(style);
35
+ }
36
+ export { baseStyles } from './base';
37
+ export { buttonStyles, connectButtonStyles } from './buttons';
38
+ export { inputStyles } from './inputs';
39
+ export { panelStyles } from './panels';
40
+ export { cardStyles } from './cards';
41
+ export { utilityStyles } from './utilities';
42
+ export { responsiveStyles } from './responsive';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Input and select styles.
3
+ */
4
+ export declare const inputStyles = "\n .ac-select {\n width: 100%;\n border: 1px solid rgba(195, 165, 90, 0.3);\n border-radius: 12px;\n padding: 12px 14px;\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 0.9) 0%,\n rgba(250, 251, 254, 0.85) 100%\n );\n color: #1a1f2e;\n font-weight: 600;\n appearance: none;\n background-image:\n linear-gradient(45deg, transparent 50%, rgba(160, 135, 70, 0.65) 50%),\n linear-gradient(135deg, rgba(160, 135, 70, 0.65) 50%, transparent 50%);\n background-position:\n calc(100% - 20px) calc(50% + 1px),\n calc(100% - 14px) calc(50% + 1px);\n background-size: 6px 6px, 6px 6px;\n background-repeat: no-repeat;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.8),\n inset 0 -1px 0 rgba(0, 0, 0, 0.02),\n 0 1px 3px rgba(0, 0, 0, 0.04);\n transition: all 0.2s ease;\n }\n .ac-select:focus {\n outline: none;\n border-color: rgba(200, 170, 90, 0.55);\n box-shadow:\n 0 0 0 3px rgba(210, 180, 100, 0.12),\n inset 0 1px 0 rgba(255, 255, 255, 0.8),\n 0 1px 3px rgba(0, 0, 0, 0.04);\n }\n .ac-input {\n width: 100%;\n border: 1px solid rgba(195, 165, 90, 0.3);\n border-radius: 12px;\n padding: 12px 14px;\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 0.9) 0%,\n rgba(250, 251, 254, 0.85) 100%\n );\n color: #1a1f2e;\n font-weight: 600;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.8),\n inset 0 -1px 0 rgba(0, 0, 0, 0.02),\n 0 1px 3px rgba(0, 0, 0, 0.04);\n transition: all 0.2s ease;\n }\n .ac-input:focus {\n outline: none;\n border-color: rgba(200, 170, 90, 0.55);\n box-shadow:\n 0 0 0 3px rgba(210, 180, 100, 0.12),\n inset 0 1px 0 rgba(255, 255, 255, 0.8),\n 0 1px 3px rgba(0, 0, 0, 0.04);\n }\n .ac-input::placeholder {\n color: rgba(100, 90, 70, 0.5);\n font-weight: 500;\n }\n .ac-field.error .ac-input {\n border-color: rgba(200, 140, 120, 0.5);\n background: linear-gradient(165deg, rgba(255, 252, 250, 0.95) 0%, rgba(255, 248, 245, 0.9) 100%);\n }\n .ac-field-error {\n color: rgba(160, 80, 60, 0.9);\n font-size: 11px;\n margin-top: 4px;\n }\n";
5
+ //# sourceMappingURL=inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/styles/inputs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,urEA2EvB,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Input and select styles.
3
+ */
4
+ export const inputStyles = `
5
+ .ac-select {
6
+ width: 100%;
7
+ border: 1px solid rgba(195, 165, 90, 0.3);
8
+ border-radius: 12px;
9
+ padding: 12px 14px;
10
+ background: linear-gradient(
11
+ 165deg,
12
+ rgba(255, 255, 255, 0.9) 0%,
13
+ rgba(250, 251, 254, 0.85) 100%
14
+ );
15
+ color: #1a1f2e;
16
+ font-weight: 600;
17
+ appearance: none;
18
+ background-image:
19
+ linear-gradient(45deg, transparent 50%, rgba(160, 135, 70, 0.65) 50%),
20
+ linear-gradient(135deg, rgba(160, 135, 70, 0.65) 50%, transparent 50%);
21
+ background-position:
22
+ calc(100% - 20px) calc(50% + 1px),
23
+ calc(100% - 14px) calc(50% + 1px);
24
+ background-size: 6px 6px, 6px 6px;
25
+ background-repeat: no-repeat;
26
+ box-shadow:
27
+ inset 0 1px 0 rgba(255, 255, 255, 0.8),
28
+ inset 0 -1px 0 rgba(0, 0, 0, 0.02),
29
+ 0 1px 3px rgba(0, 0, 0, 0.04);
30
+ transition: all 0.2s ease;
31
+ }
32
+ .ac-select:focus {
33
+ outline: none;
34
+ border-color: rgba(200, 170, 90, 0.55);
35
+ box-shadow:
36
+ 0 0 0 3px rgba(210, 180, 100, 0.12),
37
+ inset 0 1px 0 rgba(255, 255, 255, 0.8),
38
+ 0 1px 3px rgba(0, 0, 0, 0.04);
39
+ }
40
+ .ac-input {
41
+ width: 100%;
42
+ border: 1px solid rgba(195, 165, 90, 0.3);
43
+ border-radius: 12px;
44
+ padding: 12px 14px;
45
+ background: linear-gradient(
46
+ 165deg,
47
+ rgba(255, 255, 255, 0.9) 0%,
48
+ rgba(250, 251, 254, 0.85) 100%
49
+ );
50
+ color: #1a1f2e;
51
+ font-weight: 600;
52
+ box-shadow:
53
+ inset 0 1px 0 rgba(255, 255, 255, 0.8),
54
+ inset 0 -1px 0 rgba(0, 0, 0, 0.02),
55
+ 0 1px 3px rgba(0, 0, 0, 0.04);
56
+ transition: all 0.2s ease;
57
+ }
58
+ .ac-input:focus {
59
+ outline: none;
60
+ border-color: rgba(200, 170, 90, 0.55);
61
+ box-shadow:
62
+ 0 0 0 3px rgba(210, 180, 100, 0.12),
63
+ inset 0 1px 0 rgba(255, 255, 255, 0.8),
64
+ 0 1px 3px rgba(0, 0, 0, 0.04);
65
+ }
66
+ .ac-input::placeholder {
67
+ color: rgba(100, 90, 70, 0.5);
68
+ font-weight: 500;
69
+ }
70
+ .ac-field.error .ac-input {
71
+ border-color: rgba(200, 140, 120, 0.5);
72
+ background: linear-gradient(165deg, rgba(255, 252, 250, 0.95) 0%, rgba(255, 248, 245, 0.9) 100%);
73
+ }
74
+ .ac-field-error {
75
+ color: rgba(160, 80, 60, 0.9);
76
+ font-size: 11px;
77
+ margin-top: 4px;
78
+ }
79
+ `;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Panel, modal, and popover styles.
3
+ */
4
+ export declare const panelStyles = "\n .ac-overlay {\n position: fixed;\n inset: 0;\n display: none;\n z-index: 9999;\n background: rgba(8, 12, 20, 0.6);\n backdrop-filter: blur(10px);\n }\n .ac-overlay.open {\n display: block;\n }\n .ac-overlay[data-mode=\"popover\"] {\n background: transparent;\n backdrop-filter: none;\n }\n .ac-panel {\n background: linear-gradient(\n 165deg,\n rgba(255, 255, 255, 0.97) 0%,\n rgba(250, 251, 254, 0.95) 50%,\n rgba(255, 255, 255, 0.97) 100%\n );\n color: var(--ac-modal-color, #1a1f2e);\n border-radius: 24px;\n border: 1.5px solid rgba(195, 165, 90, 0.35);\n box-shadow:\n 0 0 0 1px rgba(210, 180, 100, 0.12),\n 0 8px 32px rgba(0, 0, 0, 0.08),\n 0 30px 90px rgba(8, 12, 20, 0.12);\n padding: 20px;\n gap: 16px;\n position: fixed;\n display: none;\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n }\n .ac-panel[data-active=\"true\"] {\n display: grid;\n }\n .ac-modal {\n width: min(420px, 92vw);\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n padding: 24px;\n box-shadow:\n 0 0 0 1px rgba(210, 180, 100, 0.15),\n 0 12px 40px rgba(0, 0, 0, 0.1),\n 0 40px 110px rgba(8, 12, 20, 0.15);\n }\n .ac-popover {\n width: min(320px, 92vw);\n top: var(--ac-popover-top, 80px);\n left: var(--ac-popover-left, 20px);\n transform-origin: top left;\n padding: 14px 16px;\n gap: 10px;\n box-shadow:\n 0 0 0 1px rgba(210, 180, 100, 0.12),\n 0 8px 28px rgba(0, 0, 0, 0.08),\n 0 24px 70px rgba(8, 12, 20, 0.12);\n }\n .ac-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n .ac-modal-title {\n font-size: 20px;\n font-weight: 700;\n letter-spacing: 0.01em;\n }\n .ac-modal-subtitle {\n font-size: 12px;\n color: var(--ac-muted, #556070);\n text-transform: uppercase;\n letter-spacing: 0.14em;\n }\n .ac-progress {\n display: grid;\n gap: 8px;\n }\n .ac-progress[hidden] {\n display: none;\n }\n .ac-progress-track {\n height: 6px;\n border-radius: 999px;\n background: rgba(200, 170, 90, 0.2);\n overflow: hidden;\n }\n .ac-progress-bar {\n height: 100%;\n width: 35%;\n border-radius: 999px;\n background: var(--ac-accent, #c4542a);\n animation: ac-progress 1.2s ease-in-out infinite;\n }\n .ac-progress-label {\n font-size: 12px;\n color: var(--ac-muted, #556070);\n }\n .ac-popover-title {\n font-size: 16px;\n font-weight: 700;\n }\n .ac-popover-subtitle {\n font-size: 12px;\n color: var(--ac-muted, #556070);\n }\n .ac-section-title {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.12em;\n color: var(--ac-muted, #556070);\n font-weight: 700;\n }\n .ac-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n flex-wrap: wrap;\n }\n .ac-popover .ac-actions {\n justify-content: flex-end;\n margin-top: 2px;\n padding-top: 6px;\n border-top: 1px solid rgba(195, 165, 90, 0.15);\n }\n .ac-actions-right {\n display: flex;\n gap: 8px;\n }\n .ac-panel {\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.2s ease;\n }\n .ac-panel[data-active=\"true\"] {\n opacity: 1;\n }\n .ac-modal {\n transform: translate(-50%, calc(-50% + 8px));\n }\n .ac-modal[data-active=\"true\"] {\n transform: translate(-50%, -50%);\n }\n .ac-popover {\n transform: translateY(8px);\n }\n .ac-popover[data-active=\"true\"] {\n transform: translateY(0);\n }\n .ac-overlay {\n opacity: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n }\n .ac-overlay.open {\n opacity: 1;\n pointer-events: auto;\n }\n .ac-panel[data-busy=\"true\"] .ac-section {\n pointer-events: none;\n opacity: 0.55;\n }\n\n @keyframes ac-progress {\n 0% {\n transform: translateX(-120%);\n }\n 50% {\n transform: translateX(40%);\n }\n 100% {\n transform: translateX(180%);\n }\n }\n";
5
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../src/styles/panels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,8iIAoLvB,CAAC"}