ag-design 1.0.89 → 1.0.98

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 (43) hide show
  1. package/assets/static/fonts/ag-icons.css +493 -493
  2. package/assets/static/fonts/ag-icons.json +1668 -1668
  3. package/assets/static/fonts/ag-icons.ttf +0 -0
  4. package/assets/static/fonts/ag-icons.woff +0 -0
  5. package/assets/static/fonts/ag-icons.woff2 +0 -0
  6. package/assets/static/fonts/icon-gallery.html +366 -0
  7. package/base.css +38 -0
  8. package/fonts/ag-icons.css +493 -493
  9. package/fonts/ag-icons.json +1668 -1668
  10. package/fonts/ag-icons.ttf +0 -0
  11. package/fonts/ag-icons.woff +0 -0
  12. package/fonts/ag-icons.woff2 +0 -0
  13. package/fonts/icon-gallery.html +366 -0
  14. package/index.css +1 -1
  15. package/package.json +1 -1
  16. package/assets/static/fonts/all-icons-gallery.html +0 -379
  17. package/assets/static/fonts/all-icons.html +0 -174
  18. package/assets/static/fonts/debug-fonts.html +0 -163
  19. package/assets/static/fonts/direct-test.html +0 -58
  20. package/assets/static/fonts/final-test.html +0 -79
  21. package/assets/static/fonts/icon-preview.html +0 -195
  22. package/assets/static/fonts/index.html +0 -194
  23. package/assets/static/fonts/preview.html +0 -391
  24. package/assets/static/fonts/simple-test.html +0 -73
  25. package/assets/static/fonts/simplified-test.html +0 -67
  26. package/assets/static/fonts/standalone.html +0 -268
  27. package/assets/static/fonts/test-glyph.html +0 -50
  28. package/assets/static/fonts/test-icon.html +0 -33
  29. package/assets/static/fonts/test.html +0 -38
  30. package/fonts/all-icons-gallery.html +0 -379
  31. package/fonts/all-icons.html +0 -174
  32. package/fonts/debug-fonts.html +0 -163
  33. package/fonts/direct-test.html +0 -58
  34. package/fonts/final-test.html +0 -79
  35. package/fonts/icon-preview.html +0 -195
  36. package/fonts/index.html +0 -194
  37. package/fonts/preview.html +0 -391
  38. package/fonts/simple-test.html +0 -73
  39. package/fonts/simplified-test.html +0 -67
  40. package/fonts/standalone.html +0 -268
  41. package/fonts/test-glyph.html +0 -50
  42. package/fonts/test-icon.html +0 -33
  43. package/fonts/test.html +0 -38
Binary file
Binary file
Binary file
@@ -0,0 +1,366 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>AG Icons Gallery</title>
7
+ <link rel="stylesheet" href="./ag-icons.css">
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ body {
16
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
17
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
18
+ min-height: 100vh;
19
+ padding: 40px 20px;
20
+ }
21
+
22
+ .container {
23
+ max-width: 1400px;
24
+ margin: 0 auto;
25
+ }
26
+
27
+ .header {
28
+ text-align: center;
29
+ color: white;
30
+ margin-bottom: 50px;
31
+ }
32
+
33
+ .header h1 {
34
+ font-size: 3em;
35
+ margin-bottom: 10px;
36
+ font-weight: 700;
37
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
38
+ }
39
+
40
+ .header p {
41
+ font-size: 1.1em;
42
+ opacity: 0.95;
43
+ }
44
+
45
+ .controls {
46
+ display: flex;
47
+ gap: 15px;
48
+ margin-bottom: 30px;
49
+ flex-wrap: wrap;
50
+ justify-content: center;
51
+ }
52
+
53
+ .search-box {
54
+ flex: 0 1 300px;
55
+ padding: 12px 20px;
56
+ font-size: 1em;
57
+ border: none;
58
+ border-radius: 8px;
59
+ background: white;
60
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
61
+ }
62
+
63
+ .search-box::placeholder {
64
+ color: #999;
65
+ }
66
+
67
+ .size-buttons {
68
+ display: flex;
69
+ gap: 10px;
70
+ background: rgba(255, 255, 255, 0.2);
71
+ padding: 8px;
72
+ border-radius: 8px;
73
+ backdrop-filter: blur(10px);
74
+ }
75
+
76
+ .size-btn {
77
+ padding: 10px 15px;
78
+ background: rgba(255, 255, 255, 0.3);
79
+ border: 2px solid transparent;
80
+ border-radius: 6px;
81
+ color: white;
82
+ cursor: pointer;
83
+ font-weight: 500;
84
+ transition: all 0.3s ease;
85
+ }
86
+
87
+ .size-btn.active,
88
+ .size-btn:hover {
89
+ background: white;
90
+ color: #667eea;
91
+ border-color: white;
92
+ }
93
+
94
+ .gallery {
95
+ display: grid;
96
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
97
+ gap: 20px;
98
+ animation: fadeIn 0.5s ease;
99
+ }
100
+
101
+ .gallery.large {
102
+ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
103
+ }
104
+
105
+ .gallery.xl {
106
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
107
+ }
108
+
109
+ .icon-item {
110
+ background: white;
111
+ border-radius: 12px;
112
+ padding: 20px;
113
+ text-align: center;
114
+ cursor: pointer;
115
+ transition: all 0.3s ease;
116
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
117
+ position: relative;
118
+ overflow: hidden;
119
+ }
120
+
121
+ .icon-item::before {
122
+ content: '';
123
+ position: absolute;
124
+ top: 0;
125
+ left: 0;
126
+ right: 0;
127
+ bottom: 0;
128
+ background: linear-gradient(135deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.1));
129
+ opacity: 0;
130
+ transition: opacity 0.3s ease;
131
+ }
132
+
133
+ .icon-item:hover {
134
+ transform: translateY(-8px);
135
+ box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
136
+ }
137
+
138
+ .icon-item:hover::before {
139
+ opacity: 1;
140
+ }
141
+
142
+ .icon-display {
143
+ font-size: 3em;
144
+ margin-bottom: 12px;
145
+ height: 60px;
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ position: relative;
150
+ z-index: 1;
151
+ }
152
+
153
+ .icon-name {
154
+ font-size: 0.85em;
155
+ color: #333;
156
+ font-weight: 500;
157
+ margin-bottom: 8px;
158
+ word-break: break-word;
159
+ position: relative;
160
+ z-index: 1;
161
+ }
162
+
163
+ .icon-code {
164
+ font-size: 0.75em;
165
+ color: #999;
166
+ font-family: 'Courier New', monospace;
167
+ position: relative;
168
+ z-index: 1;
169
+ }
170
+
171
+ .copy-indicator {
172
+ position: absolute;
173
+ top: 50%;
174
+ left: 50%;
175
+ transform: translate(-50%, -50%);
176
+ background: rgba(102, 126, 234, 0.9);
177
+ color: white;
178
+ padding: 8px 16px;
179
+ border-radius: 6px;
180
+ font-size: 0.8em;
181
+ font-weight: 600;
182
+ opacity: 0;
183
+ pointer-events: none;
184
+ transition: opacity 0.3s ease;
185
+ z-index: 10;
186
+ }
187
+
188
+ .icon-item.copied .copy-indicator {
189
+ opacity: 1;
190
+ }
191
+
192
+ .stats {
193
+ text-align: center;
194
+ color: white;
195
+ margin-top: 30px;
196
+ font-size: 1.1em;
197
+ }
198
+
199
+ @keyframes fadeIn {
200
+ from {
201
+ opacity: 0;
202
+ transform: translateY(10px);
203
+ }
204
+ to {
205
+ opacity: 1;
206
+ transform: translateY(0);
207
+ }
208
+ }
209
+
210
+ .no-results {
211
+ text-align: center;
212
+ padding: 60px 20px;
213
+ color: white;
214
+ font-size: 1.2em;
215
+ }
216
+
217
+ @media (max-width: 768px) {
218
+ .header h1 {
219
+ font-size: 2em;
220
+ }
221
+
222
+ .controls {
223
+ flex-direction: column;
224
+ }
225
+
226
+ .search-box {
227
+ flex: 1;
228
+ }
229
+
230
+ .gallery {
231
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
232
+ gap: 15px;
233
+ }
234
+ }
235
+ </style>
236
+ </head>
237
+ <body>
238
+ <div class="container">
239
+ <div class="header">
240
+ <h1>AG Icons Gallery</h1>
241
+ <p>Explore all available icons • Click to copy class name</p>
242
+ </div>
243
+
244
+ <div class="controls">
245
+ <input
246
+ type="text"
247
+ class="search-box"
248
+ id="searchInput"
249
+ placeholder="Search icons... (e.g., arrow, user, home)"
250
+ autocomplete="off"
251
+ >
252
+ <div class="size-buttons">
253
+ <button class="size-btn active" data-size="normal">Normal</button>
254
+ <button class="size-btn" data-size="large">Large</button>
255
+ <button class="size-btn" data-size="xl">Extra Large</button>
256
+ </div>
257
+ </div>
258
+
259
+ <div class="gallery" id="gallery"></div>
260
+
261
+ <div class="stats">
262
+ <p>Displaying <span id="count">0</span> icons</p>
263
+ </div>
264
+ </div>
265
+
266
+ <script>
267
+ // Load icons from ag-icons.json
268
+ const agIconsUrl = './ag-icons.json';
269
+ let allIcons = {};
270
+ let flatIcons = [];
271
+
272
+ async function loadIcons() {
273
+ try {
274
+ const response = await fetch(agIconsUrl);
275
+ const data = await response.json();
276
+
277
+ // Flatten the nested structure
278
+ flatIcons = [];
279
+ for (const [category, icons] of Object.entries(data)) {
280
+ for (const [name, iconData] of Object.entries(icons)) {
281
+ flatIcons.push({
282
+ name: name,
283
+ category: category,
284
+ class: iconData.class,
285
+ glyph: iconData.glyph,
286
+ hex: iconData.hex
287
+ });
288
+ }
289
+ }
290
+
291
+ // Create lookup object
292
+ allIcons = flatIcons.reduce((acc, icon) => {
293
+ acc[icon.name] = icon;
294
+ return acc;
295
+ }, {});
296
+
297
+ renderGallery(flatIcons);
298
+ } catch (error) {
299
+ console.error('Failed to load icons:', error);
300
+ document.getElementById('gallery').innerHTML =
301
+ '<div class="no-results">Failed to load ag-icons.json. Check the dev server console for details.</div>';
302
+ }
303
+ }
304
+
305
+ function renderGallery(icons) {
306
+ const gallery = document.getElementById('gallery');
307
+ gallery.innerHTML = '';
308
+
309
+ if (icons.length === 0) {
310
+ gallery.innerHTML = '<div class="no-results">No icons found</div>';
311
+ return;
312
+ }
313
+
314
+ icons.forEach((icon) => {
315
+ const item = document.createElement('div');
316
+ item.className = 'icon-item';
317
+ item.innerHTML = `
318
+ <div class="copy-indicator">Copied!</div>
319
+ <div class="icon-display"><i class="${icon.class}"></i></div>
320
+ <div class="icon-name">${icon.name}</div>
321
+ <div class="icon-code">${icon.class}</div>
322
+ `;
323
+
324
+ item.addEventListener('click', () => {
325
+ navigator.clipboard.writeText(icon.class).then(() => {
326
+ item.classList.add('copied');
327
+ setTimeout(() => item.classList.remove('copied'), 1500);
328
+ });
329
+ });
330
+
331
+ gallery.appendChild(item);
332
+ });
333
+
334
+ document.getElementById('count').textContent = icons.length;
335
+ }
336
+
337
+ // Search functionality
338
+ document.getElementById('searchInput').addEventListener('input', (e) => {
339
+ const searchTerm = e.target.value.toLowerCase();
340
+ const filtered = flatIcons.filter(icon =>
341
+ icon.name.toLowerCase().includes(searchTerm) ||
342
+ icon.category.toLowerCase().includes(searchTerm) ||
343
+ icon.class.toLowerCase().includes(searchTerm)
344
+ );
345
+ renderGallery(filtered);
346
+ });
347
+
348
+ // Size controls
349
+ document.querySelectorAll('.size-btn').forEach(btn => {
350
+ btn.addEventListener('click', () => {
351
+ document.querySelectorAll('.size-btn').forEach(b => b.classList.remove('active'));
352
+ btn.classList.add('active');
353
+
354
+ const gallery = document.getElementById('gallery');
355
+ gallery.classList.remove('large', 'xl');
356
+ if (btn.dataset.size !== 'normal') {
357
+ gallery.classList.add(btn.dataset.size);
358
+ }
359
+ });
360
+ });
361
+
362
+ // Load icons on page load
363
+ loadIcons();
364
+ </script>
365
+ </body>
366
+ </html>
package/base.css CHANGED
@@ -612,6 +612,12 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
612
612
  .s-bc-5{--b-color: var(--b-c-5);}
613
613
  .s-bc-6{--b-color: var(--b-c-6);}
614
614
  .s-bc-7{--b-color: var(--b-c-7);}
615
+ .s-bc-98{--b-color: var(--c-98);}
616
+ .s-bc-99{--b-color: var(--c-99);}
617
+ .s-bc-100{--b-color: var(--c-100);}
618
+ .s-bc-101{--b-color: var(--c-101);}
619
+ .s-bc-102{--b-color: var(--c-102);}
620
+ .s-bc-103{--b-color: var(--c-103);}
615
621
  .s-bc-t{--b-color: var(--b-c-t);}
616
622
 
617
623
  /* Top Utilities */
@@ -642,6 +648,12 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
642
648
  .s-btc-5{--bt-color: var(--b-c-5);}
643
649
  .s-btc-6{--bt-color: var(--b-c-6);}
644
650
  .s-btc-7{--bt-color: var(--b-c-7);}
651
+ .s-btc-98{--bt-color: var(--c-98);}
652
+ .s-btc-99{--bt-color: var(--c-99);}
653
+ .s-btc-100{--bt-color: var(--c-100);}
654
+ .s-btc-101{--bt-color: var(--c-101);}
655
+ .s-btc-102{--bt-color: var(--c-102);}
656
+ .s-btc-103{--bt-color: var(--c-103);}
645
657
  .s-btc-t{--bt-color: var(--b-c-t)}
646
658
 
647
659
  /* Right Utilities */
@@ -672,6 +684,12 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
672
684
  .s-brc-5{--br-color: var(--b-c-5);}
673
685
  .s-brc-6{--br-color: var(--b-c-6);}
674
686
  .s-brc-7{--br-color: var(--b-c-7);}
687
+ .s-brc-98{--br-color: var(--c-98);}
688
+ .s-brc-99{--br-color: var(--c-99);}
689
+ .s-brc-100{--br-color: var(--c-100);}
690
+ .s-brc-101{--br-color: var(--c-101);}
691
+ .s-brc-102{--br-color: var(--c-102);}
692
+ .s-brc-103{--br-color: var(--c-103);}
675
693
  .s-brc-t{--br-color: var(--b-c-t);}
676
694
 
677
695
  /* Bottom Utilities */
@@ -702,6 +720,12 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
702
720
  .s-bbc-5{--bb-color: var(--b-c-5);}
703
721
  .s-bbc-6{--bb-color: var(--b-c-6);}
704
722
  .s-bbc-7{--bb-color: var(--b-c-7);}
723
+ .s-bbc-98{--bb-color: var(--c-98);}
724
+ .s-bbc-99{--bb-color: var(--c-99);}
725
+ .s-bbc-100{--bb-color: var(--c-100);}
726
+ .s-bbc-101{--bb-color: var(--c-101);}
727
+ .s-bbc-102{--bb-color: var(--c-102);}
728
+ .s-bbc-103{--bb-color: var(--c-103);}
705
729
  .s-bbc-t{--bb-color: var(--b-c-t);}
706
730
 
707
731
  /* Left Utilities */
@@ -732,6 +756,12 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
732
756
  .s-blc-5{--bl-color: var(--b-c-5);}
733
757
  .s-blc-6{--bl-color: var(--b-c-6);}
734
758
  .s-blc-7{--bl-color: var(--b-c-7);}
759
+ .s-blc-98{--bl-color: var(--c-98);}
760
+ .s-blc-99{--bl-color: var(--c-99);}
761
+ .s-blc-100{--bl-color: var(--c-100);}
762
+ .s-blc-101{--bl-color: var(--c-101);}
763
+ .s-blc-102{--bl-color: var(--c-102);}
764
+ .s-blc-103{--bl-color: var(--c-103);}
735
765
  .s-blc-t{--bl-color: var(--b-c-t);}
736
766
 
737
767
  .s-va-m{vertical-align: middle;}
@@ -822,8 +852,13 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
822
852
  .c-9{color: var(--c-9);}
823
853
  .c-10{color: var(--c-10);}
824
854
  .c-11{color: var(--c-11);}
855
+ .c-98{color: var(--c-98);}
825
856
  .c-99{color: var(--c-99);}
826
857
  .c-100{color: var(--c-100);}
858
+ .c-101{color: var(--c-101);}
859
+ .c-102{color: var(--c-102);}
860
+ .c-103{color: var(--c-103);}
861
+
827
862
  .s-c-cc{color: currentColor;}
828
863
 
829
864
  .s-b-w{background: var(--c-99);}
@@ -843,6 +878,9 @@ img.ag-lazy:not(.ag-lazy-s){content: "";
843
878
  .s-bc-c-98{background-color: var(--c-98);}
844
879
  .s-bc-c-99{background-color:var(--c-99);}
845
880
  .s-bc-c-100{background-color:var(--c-100);}
881
+ .s-bc-c-101{background-color: var(--c-101);}
882
+ .s-bc-c-102{background-color: var(--c-102);}
883
+ .s-bc-c-103{background-color: var(--c-103);}
846
884
 
847
885
  .s-pb-n{background-color: var(--p-badge-normal-bg);color: var(--p-badge-normal-text);}
848
886
  .s-pb-h{background-color: var(--p-badge-highlight-bg);color: var(--p-badge-highlight-text);}