@granularjs/ui 0.2.0 → 0.3.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.
@@ -112,6 +112,7 @@ const css = `
112
112
  --g-ui-gray-100: #f2f4f7;
113
113
  --g-ui-gray-200: #e4e7ec;
114
114
  --g-ui-gray-300: #cdd1d9;
115
+ --g-ui-gray-350: #b2b7c3;
115
116
  --g-ui-gray-400: #98a2b3;
116
117
  --g-ui-gray-500: #667085;
117
118
  --g-ui-gray-600: #475467;
@@ -509,7 +510,7 @@ const css = `
509
510
  --g-ui-text: var(--g-ui-fg);
510
511
  --g-ui-muted: var(--g-ui-fg-muted);
511
512
 
512
- --g-ui-border: var(--g-ui-gray-200);
513
+ --g-ui-border: var(--g-ui-gray-350);
513
514
  --g-ui-border-subtle: var(--g-ui-gray-100);
514
515
  --g-ui-border-muted: var(--g-ui-gray-200);
515
516
  --g-ui-border-emphasized: var(--g-ui-gray-300);
@@ -634,7 +635,7 @@ const css = `
634
635
  --g-ui-shadow-xl: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
635
636
  --g-ui-shadow-2xl: 0px 24px 48px -12px rgba(16, 24, 40, 0.18);
636
637
  }
637
-
638
+
638
639
  * {
639
640
  box-sizing: border-box;
640
641
  margin: 0;
@@ -740,34 +741,34 @@ body {
740
741
  box-shadow: none;
741
742
  border: 1px solid var(--g-ui-border);
742
743
  }
743
- .g-ui-card-border-default { border: 1px solid var(--g-ui-border); }
744
- .g-ui-card-border-none { border: none; }
745
- .g-ui-card-border-light { border: 1px solid var(--g-ui-border-light); }
746
- .g-ui-card-border-dark { border: 1px solid var(--g-ui-border-dark); }
747
- .g-ui-card-border-primary { border: 1px solid var(--g-ui-primary); }
748
- .g-ui-card-border-success { border: 1px solid var(--g-ui-success); }
749
- .g-ui-card-border-danger { border: 1px solid var(--g-ui-danger); }
750
- .g-ui-card-border-warning { border: 1px solid var(--g-ui-warning); }
751
- .g-ui-card-border-info { border: 1px solid var(--g-ui-info); }
752
- .g-ui-card-border-subtle { border: 1px solid var(--g-ui-border-subtle); }
753
- .g-ui-card-border-emphasized { border: 1px solid var(--g-ui-border-emphasized); }
754
- .g-ui-card-border-inverted { border: 1px solid var(--g-ui-border-inverted); }
755
- .g-ui-card-border-error { border: 1px solid var(--g-ui-border-error); }
756
- .g-ui-card-border-warning { border: 1px solid var(--g-ui-border-warning); }
757
- .g-ui-card-border-success { border: 1px solid var(--g-ui-border-success); }
758
- .g-ui-card-border-info { border: 1px solid var(--g-ui-border-info); }
759
-
760
- .g-ui-card-padding-xs { padding: var(--g-ui-space-10); }
761
- .g-ui-card-padding-sm { padding: var(--g-ui-space-14); }
762
- .g-ui-card-padding-md { padding: var(--g-ui-space-18); }
763
- .g-ui-card-padding-lg { padding: var(--g-ui-space-24); }
764
- .g-ui-card-radius-sm { border-radius: 8px; }
765
- .g-ui-card-radius-md { border-radius: 10px; }
766
- .g-ui-card-radius-lg { border-radius: 14px; }
767
- .g-ui-card-shadow-none { box-shadow: none; }
768
- .g-ui-card-shadow-sm { box-shadow: var(--g-ui-shadow-sm); }
769
- .g-ui-card-shadow-md { box-shadow: var(--g-ui-shadow-md); }
770
- .g-ui-card-shadow-lg { box-shadow: var(--g-ui-shadow-lg); }
744
+ body .g-ui-card-border-default { border: 1px solid var(--g-ui-border); }
745
+ body .g-ui-card-border-none { border: none; }
746
+ body .g-ui-card-border-light { border: 1px solid var(--g-ui-border-light); }
747
+ body .g-ui-card-border-dark { border: 1px solid var(--g-ui-border-dark); }
748
+ body .g-ui-card-border-primary { border: 1px solid var(--g-ui-primary); }
749
+ body .g-ui-card-border-success { border: 1px solid var(--g-ui-success); }
750
+ body .g-ui-card-border-danger { border: 1px solid var(--g-ui-danger); }
751
+ body .g-ui-card-border-warning { border: 1px solid var(--g-ui-warning); }
752
+ body .g-ui-card-border-info { border: 1px solid var(--g-ui-info); }
753
+ body .g-ui-card-border-subtle { border: 1px solid var(--g-ui-border-subtle); }
754
+ body .g-ui-card-border-emphasized { border: 1px solid var(--g-ui-border-emphasized); }
755
+ body .g-ui-card-border-inverted { border: 1px solid var(--g-ui-border-inverted); }
756
+ body .g-ui-card-border-error { border: 1px solid var(--g-ui-border-error); }
757
+ body .g-ui-card-border-warning { border: 1px solid var(--g-ui-border-warning); }
758
+ body .g-ui-card-border-success { border: 1px solid var(--g-ui-border-success); }
759
+ body .g-ui-card-border-info { border: 1px solid var(--g-ui-border-info); }
760
+
761
+ body .g-ui-card-padding-xs { padding: var(--g-ui-space-10); }
762
+ body .g-ui-card-padding-sm { padding: var(--g-ui-space-14); }
763
+ body .g-ui-card-padding-md { padding: var(--g-ui-space-18); }
764
+ body .g-ui-card-padding-lg { padding: var(--g-ui-space-24); }
765
+ body .g-ui-card-radius-sm { border-radius: 8px; }
766
+ body .g-ui-card-radius-md { border-radius: 10px; }
767
+ body .g-ui-card-radius-lg { border-radius: 14px; }
768
+ body .g-ui-card-shadow-none { box-shadow: none; }
769
+ body .g-ui-card-shadow-sm { box-shadow: var(--g-ui-shadow-sm); }
770
+ body .g-ui-card-shadow-md { box-shadow: var(--g-ui-shadow-md); }
771
+ body .g-ui-card-shadow-lg { box-shadow: var(--g-ui-shadow-lg); }
771
772
  .g-ui-card-title {
772
773
  margin-bottom: var(--g-ui-space-8);
773
774
  font-weight: 600;
@@ -1212,6 +1213,12 @@ body {
1212
1213
  .g-ui-select-caret {
1213
1214
  color: var(--g-ui-muted);
1214
1215
  font-size: 12px;
1216
+ display: inline-flex;
1217
+ align-items: center;
1218
+ justify-content: center;
1219
+ }
1220
+ .g-ui-select-caret svg{
1221
+ fill: var(--g-ui-muted);
1215
1222
  }
1216
1223
  .g-ui-select-dropdown {
1217
1224
  position: absolute;
@@ -1323,18 +1330,18 @@ body {
1323
1330
  font-size: 13px;
1324
1331
  }
1325
1332
  .g-ui-table-with-border {
1326
- border: 1px solid var(--g-ui-border-muted);
1333
+ border: 1px solid var(--g-ui-border);
1334
+ outline: 1px solid var(--g-ui-border);
1327
1335
  border-radius: var(--g-ui-radius);
1328
1336
  overflow: hidden;
1329
1337
  }
1330
1338
  .g-ui-table th,
1331
1339
  .g-ui-table td {
1332
- border-bottom: 1px solid var(--g-ui-border-muted);
1333
1340
  padding: var(--g-ui-space-10) var(--g-ui-space-12);
1334
1341
  text-align: left;
1335
1342
  }
1336
1343
  .g-ui-table th {
1337
- font-weight: 500;
1344
+ font-weight: 800;
1338
1345
  color: var(--g-ui-muted);
1339
1346
  }
1340
1347
  .g-ui-table-column-borders th,
@@ -1345,6 +1352,13 @@ body {
1345
1352
  .g-ui-table-column-borders td:last-child {
1346
1353
  border-right: 0;
1347
1354
  }
1355
+ .g-ui-table-row-borders th,
1356
+ .g-ui-table-row-borders td {
1357
+ border-bottom: 1px solid var(--g-ui-border);
1358
+ }
1359
+ .g-ui-table-row-borders tbody tr:last-child td {
1360
+ border-bottom: 0;
1361
+ }
1348
1362
  .g-ui-table-striped tbody tr:nth-child(odd) { background: var(--g-ui-bg-subtle); }
1349
1363
  .g-ui-table-hover tbody tr:hover { background: var(--g-ui-bg-muted); }
1350
1364
 
@@ -1506,7 +1520,7 @@ body {
1506
1520
  margin-left: auto;
1507
1521
  border: 0;
1508
1522
  background: transparent;
1509
- color: var(--g-ui-muted);
1523
+ color: var(--g-ui-fg-muted);
1510
1524
  cursor: pointer;
1511
1525
  display: flex;
1512
1526
  align-items: center;
@@ -1524,6 +1538,7 @@ body {
1524
1538
  .g-ui-notification-close svg{
1525
1539
  width: 24px;
1526
1540
  height: 24px;
1541
+ fill: var(--g-ui-fg-muted);
1527
1542
  }
1528
1543
 
1529
1544
  .g-ui-notification-title { font-weight: 500; font-size: 13px; line-height: 1.35; }
@@ -1586,6 +1601,7 @@ body {
1586
1601
  border-radius: 10px;
1587
1602
  }
1588
1603
 
1604
+
1589
1605
  .g-ui-textarea {
1590
1606
  min-height: 120px;
1591
1607
  resize: vertical;
@@ -1607,24 +1623,25 @@ body {
1607
1623
  .g-ui-number-field-controls {
1608
1624
  display: flex;
1609
1625
  flex-direction: column;
1610
- gap: var(--g-ui-space-2);
1611
1626
  margin-left: auto;
1627
+ width: 30px;
1612
1628
  }
1613
1629
  .g-ui-number-field-control {
1614
- width: 18px;
1615
- height: 18px;
1616
- border-radius: 6px;
1630
+ width: 100%;
1631
+ height: 20px;
1617
1632
  display: inline-flex;
1618
1633
  align-items: center;
1619
1634
  justify-content: center;
1620
- border: 1px solid var(--g-ui-border);
1621
- background: var(--g-ui-bg);
1635
+ background: transparent;
1622
1636
  color: var(--g-ui-text);
1623
1637
  cursor: pointer;
1624
1638
  user-select: none;
1625
1639
  font-size: 12px;
1626
1640
  line-height: 1;
1627
1641
  }
1642
+ .g-ui-number-field-control:first-child {
1643
+ border-bottom: 1px solid var(--g-ui-border);
1644
+ }
1628
1645
  .g-ui-number-field-control:hover {
1629
1646
  background: var(--g-ui-bg-subtle);
1630
1647
  }
@@ -1795,6 +1812,8 @@ body {
1795
1812
  align-self: flex-start;
1796
1813
  justify-self: end;
1797
1814
  color: currentColor;
1815
+ position: relative;
1816
+ left: 3px;
1798
1817
  }
1799
1818
  .g-ui-list-unordered > li:not(.g-ui-list-nested-item)::before {
1800
1819
  content: '•';
@@ -1892,10 +1911,10 @@ body {
1892
1911
  .g-ui-slider {
1893
1912
  width: 100%;
1894
1913
  --g-ui-slider-size: 8px;
1895
- height: calc(var(--g-ui-slider-size) * 2);
1896
- padding: 0 var(--g-ui-slider-size);
1897
- display: flex;
1898
- align-items: center;
1914
+ /* height: calc(var(--g-ui-slider-size) * 2); */
1915
+ padding: 0 var(--g-ui-space-10);
1916
+ /* display: flex; */
1917
+ /* align-items: center; */
1899
1918
  position: relative;
1900
1919
  }
1901
1920
  .g-ui-range-slider {
@@ -1935,13 +1954,16 @@ body {
1935
1954
  }
1936
1955
  .g-ui-slider-marks {
1937
1956
  position: absolute;
1938
- top: calc(100% + var(--g-ui-space-10));
1957
+ top: calc(100% - var(--g-ui-space-8));
1939
1958
  left:10px;
1940
1959
  right:15px;
1941
- height: 18px;
1960
+ height: 12px;
1942
1961
  box-sizing: border-box;
1943
1962
  padding: 0 var(--g-ui-slider-size);
1944
1963
  }
1964
+ .g-ui-slider-marks-placeholder {
1965
+ height: 18px;
1966
+ }
1945
1967
  .g-ui-slider-mark {
1946
1968
  position: absolute;
1947
1969
  top: 0;
@@ -2112,6 +2134,46 @@ body {
2112
2134
  display: flex;
2113
2135
  flex-direction: column;
2114
2136
  gap: 0;
2137
+ position: relative;
2138
+ }
2139
+ .g-ui-timeline[data-active-color="primary"] { --g-ui-timeline-active-color: var(--g-ui-primary); }
2140
+ .g-ui-timeline[data-active-color="success"] { --g-ui-timeline-active-color: var(--g-ui-success); }
2141
+ .g-ui-timeline[data-active-color="danger"] { --g-ui-timeline-active-color: var(--g-ui-danger); }
2142
+ .g-ui-timeline[data-active-color="error"] { --g-ui-timeline-active-color: var(--g-ui-danger); }
2143
+ .g-ui-timeline[data-active-color="warning"] { --g-ui-timeline-active-color: var(--g-ui-warning); }
2144
+ .g-ui-timeline[data-active-color="info"] { --g-ui-timeline-active-color: var(--g-ui-info); }
2145
+ .g-ui-timeline-track-segment {
2146
+ position: absolute;
2147
+ left: var(--g-ui-timeline-track-offset, 12px);
2148
+ width: var(--g-ui-timeline-line-width, 4px);
2149
+ background: var(--g-ui-border-muted);
2150
+ border-radius: 2px;
2151
+ z-index: 0;
2152
+ pointer-events: none;
2153
+ overflow: hidden;
2154
+ }
2155
+ .g-ui-timeline-track-segment .g-ui-timeline-track-fill {
2156
+ position: absolute;
2157
+ left: 0;
2158
+ top: 0;
2159
+ width: 100%;
2160
+ height: 0%;
2161
+ min-height: 0;
2162
+ background: var(--g-ui-timeline-active-color, var(--g-ui-primary));
2163
+ border-radius: inherit;
2164
+ transition: height 0.25s ease;
2165
+ z-index: 1;
2166
+ }
2167
+ .g-ui-timeline-reverse .g-ui-timeline-track-fill {
2168
+ top: auto;
2169
+ bottom: 0;
2170
+ }
2171
+ .g-ui-timeline-align-right .g-ui-timeline-track-segment {
2172
+ left: auto;
2173
+ right: var(--g-ui-timeline-track-offset, 12px);
2174
+ }
2175
+ .g-ui-timeline-has-track .g-ui-timeline-item::before {
2176
+ display: none;
2115
2177
  }
2116
2178
  .g-ui-timeline-item {
2117
2179
  display: grid;
@@ -2120,6 +2182,32 @@ body {
2120
2182
  align-items: start;
2121
2183
  position: relative;
2122
2184
  padding-bottom: var(--g-ui-space-24);
2185
+ z-index: 1;
2186
+ }
2187
+ .g-ui-timeline-item .g-ui-timeline-dot {
2188
+ justify-self: center;
2189
+ }
2190
+ .g-ui-timeline-align-right {
2191
+ width: max-content;
2192
+ max-width: 100%;
2193
+ }
2194
+ .g-ui-timeline-align-right .g-ui-timeline-item {
2195
+ grid-template-columns: auto 28px;
2196
+ max-width: 100%;
2197
+ }
2198
+ .g-ui-timeline-align-right .g-ui-timeline-item .g-ui-timeline-dot {
2199
+ order: 2;
2200
+ justify-self: center;
2201
+ }
2202
+ .g-ui-timeline-align-right .g-ui-timeline-item .g-ui-timeline-content {
2203
+ order: 1;
2204
+ justify-self: end;
2205
+ text-align: right;
2206
+ min-width: 0;
2207
+ }
2208
+ .g-ui-timeline-align-right .g-ui-timeline-item::before {
2209
+ left: auto;
2210
+ right: var(--g-ui-timeline-track-offset, 12px);
2123
2211
  }
2124
2212
  .g-ui-timeline-item:last-child {
2125
2213
  padding-bottom: 0;
@@ -2127,24 +2215,100 @@ body {
2127
2215
  .g-ui-timeline-item::before {
2128
2216
  content: '';
2129
2217
  position: absolute;
2130
- left: 8px;
2131
- top: 20px;
2218
+ left: var(--g-ui-timeline-track-offset, 12px);
2219
+ top: var(--g-ui-timeline-pin-half, 10px);
2132
2220
  bottom: 0;
2133
- width: 4px;
2221
+ width: var(--g-ui-timeline-line-width, 4px);
2134
2222
  background: var(--g-ui-border-muted);
2135
2223
  }
2136
2224
  .g-ui-timeline-item:last-child::before {
2137
2225
  display: none;
2226
+ }
2227
+ .g-ui-dot-wrapper {
2228
+
2138
2229
  }
2139
2230
  .g-ui-timeline-dot {
2140
2231
  width: 20px;
2141
2232
  height: 20px;
2142
2233
  border-radius: 50%;
2143
2234
  background: var(--g-ui-bg);
2144
- border: 4px solid var(--g-ui-primary);
2235
+ border: 4px solid var(--g-ui-border-muted);
2145
2236
  margin-top: 0;
2146
2237
  position: relative;
2147
2238
  z-index: 1;
2239
+ transition: border-color 0.2s ease, background 0.2s ease;
2240
+ display: flex;
2241
+ align-items: center;
2242
+ justify-content: center;
2243
+ }
2244
+ .g-ui-timeline-pin-size-xs .g-ui-timeline-dot { width: 12px; height: 12px; border-width: 2px; }
2245
+ .g-ui-timeline-pin-size-sm .g-ui-timeline-dot { width: 16px; height: 16px; border-width: 3px; }
2246
+ .g-ui-timeline-pin-size-md .g-ui-timeline-dot { width: 20px; height: 20px; border-width: 4px; }
2247
+ .g-ui-timeline-pin-size-lg .g-ui-timeline-dot { width: 24px; height: 24px; border-width: 4px; }
2248
+ .g-ui-timeline-pin-size-xl .g-ui-timeline-dot { width: 28px; height: 28px; border-width: 4px; }
2249
+ .g-ui-timeline-pin-radius-xs .g-ui-timeline-dot { border-radius: 2px; }
2250
+ .g-ui-timeline-pin-radius-sm .g-ui-timeline-dot { border-radius: 4px; }
2251
+ .g-ui-timeline-pin-radius-md .g-ui-timeline-dot { border-radius: 50%; }
2252
+ .g-ui-timeline-pin-radius-lg .g-ui-timeline-dot { border-radius: 50%; }
2253
+ .g-ui-timeline-pin-radius-xl .g-ui-timeline-dot { border-radius: 50%; }
2254
+ .g-ui-timeline-dot-inner {
2255
+ width: 100%;
2256
+ height: 100%;
2257
+ border-radius: inherit;
2258
+ background: inherit;
2259
+ position: absolute;
2260
+ inset: 0;
2261
+ }
2262
+ .g-ui-timeline-pin-mode-icon .g-ui-timeline-dot,
2263
+ .g-ui-timeline-pin-mode-image .g-ui-timeline-dot,
2264
+ .g-ui-timeline-pin-mode-custom .g-ui-timeline-dot {
2265
+ display: flex;
2266
+ align-items: center;
2267
+ justify-content: center;
2268
+ }
2269
+ .g-ui-timeline-pin-mode-icon .g-ui-timeline-dot .g-ui-timeline-pin-icon,
2270
+ .g-ui-timeline-pin-mode-image .g-ui-timeline-dot .g-ui-timeline-pin-image,
2271
+ .g-ui-timeline-pin-mode-custom .g-ui-timeline-dot > *:not(.g-ui-timeline-dot-inner) {
2272
+ position: relative;
2273
+ z-index: 1;
2274
+ }
2275
+ .g-ui-timeline-pin-mode-icon .g-ui-timeline-dot .g-ui-timeline-pin-icon {
2276
+ font-size: 12px;
2277
+ line-height: 1;
2278
+ color: inherit;
2279
+ }
2280
+ .g-ui-timeline-pin-size-sm .g-ui-timeline-pin-mode-icon .g-ui-timeline-dot .g-ui-timeline-pin-icon { font-size: 10px; }
2281
+ .g-ui-timeline-pin-size-lg .g-ui-timeline-dot .g-ui-timeline-pin-icon { font-size: 14px; }
2282
+ .g-ui-timeline-pin-size-xl .g-ui-timeline-dot .g-ui-timeline-pin-icon { font-size: 16px; }
2283
+ .g-ui-timeline-pin-mode-icon .g-ui-timeline-dot .g-ui-timeline-dot-inner,
2284
+ .g-ui-timeline-pin-mode-image .g-ui-timeline-dot .g-ui-timeline-dot-inner,
2285
+ .g-ui-timeline-pin-mode-custom .g-ui-timeline-dot .g-ui-timeline-dot-inner {
2286
+ display: none;
2287
+ }
2288
+ .g-ui-timeline-pin-mode-image .g-ui-timeline-dot .g-ui-timeline-pin-image {
2289
+ width: 100%;
2290
+ height: 100%;
2291
+ object-fit: cover;
2292
+ border-radius: inherit;
2293
+ }
2294
+ .g-ui-timeline-item-completed .g-ui-timeline-dot {
2295
+ border-color: var(--g-ui-timeline-active-color, var(--g-ui-primary));
2296
+ background: var(--g-ui-timeline-active-color, var(--g-ui-primary));
2297
+ }
2298
+ .g-ui-timeline-item-active .g-ui-timeline-dot {
2299
+ border-color: var(--g-ui-timeline-active-color, var(--g-ui-primary));
2300
+ background: var(--g-ui-bg);
2301
+ box-shadow: 0 0 0 2px var(--g-ui-bg), 0 0 0 4px var(--g-ui-timeline-active-color, var(--g-ui-primary));
2302
+ }
2303
+ .g-ui-timeline-item-future .g-ui-timeline-dot {
2304
+ border-color: var(--g-ui-border-muted);
2305
+ background: var(--g-ui-bg);
2306
+ }
2307
+ .g-ui-timeline-clickable .g-ui-timeline-item {
2308
+ cursor: pointer;
2309
+ }
2310
+ .g-ui-timeline-clickable .g-ui-timeline-item:hover .g-ui-timeline-dot {
2311
+ border-color: var(--g-ui-primary-muted, var(--g-ui-timeline-active-color));
2148
2312
  }
2149
2313
  .g-ui-timeline-content {
2150
2314
  display: flex;
@@ -2950,16 +3114,43 @@ body {
2950
3114
  }
2951
3115
 
2952
3116
  .g-ui-progress-ring {
3117
+ position: relative;
2953
3118
  width: 48px;
2954
3119
  height: 48px;
2955
3120
  border-radius: 50%;
3121
+ flex-shrink: 0;
3122
+ }
3123
+ .g-ui-progress-ring-hole {
3124
+ position: absolute;
3125
+ inset: 8px;
3126
+ border-radius: 50%;
3127
+ background: var(--g-ui-bg);
3128
+ }
3129
+ .g-ui-progress-ring-primary { --g-ui-progress-ring-fill: var(--g-ui-primary); }
3130
+ .g-ui-progress-ring-success { --g-ui-progress-ring-fill: var(--g-ui-success); }
3131
+ .g-ui-progress-ring-danger { --g-ui-progress-ring-fill: var(--g-ui-danger); }
3132
+ .g-ui-progress-ring-warning { --g-ui-progress-ring-fill: var(--g-ui-warning); }
3133
+ .g-ui-progress-ring:not(.g-ui-progress-ring-indeterminate) {
3134
+ background: conic-gradient(
3135
+ var(--g-ui-progress-ring-fill, var(--g-ui-primary)) 0deg calc(var(--g-ui-progress-ring-value, 0) * 3.6deg),
3136
+ var(--g-ui-border-muted) calc(var(--g-ui-progress-ring-value, 0) * 3.6deg) 360deg
3137
+ );
3138
+ }
3139
+ .g-ui-progress-ring-indeterminate {
2956
3140
  border: 4px solid var(--g-ui-border-muted);
2957
- border-top-color: var(--g-ui-primary);
3141
+ border-top-color: var(--g-ui-progress-ring-fill, var(--g-ui-primary));
2958
3142
  animation: g-ui-spin 1s linear infinite;
2959
3143
  }
3144
+ .g-ui-progress-ring-indeterminate .g-ui-progress-ring-hole {
3145
+ inset: 4px;
3146
+ }
2960
3147
  .g-ui-progress-ring-size-sm { width: 32px; height: 32px; }
3148
+ .g-ui-progress-ring-size-sm .g-ui-progress-ring-hole { inset: 6px; }
3149
+ .g-ui-progress-ring-size-sm.g-ui-progress-ring-indeterminate .g-ui-progress-ring-hole { inset: 3px; }
2961
3150
  .g-ui-progress-ring-size-md { width: 48px; height: 48px; }
2962
3151
  .g-ui-progress-ring-size-lg { width: 64px; height: 64px; }
3152
+ .g-ui-progress-ring-size-lg .g-ui-progress-ring-hole { inset: 10px; }
3153
+ .g-ui-progress-ring-size-lg.g-ui-progress-ring-indeterminate .g-ui-progress-ring-hole { inset: 5px; }
2963
3154
 
2964
3155
  .g-ui-toast-close {
2965
3156
  margin-left: auto;
@@ -2968,6 +3159,11 @@ body {
2968
3159
  color: var(--g-ui-muted);
2969
3160
  cursor: pointer;
2970
3161
  }
3162
+ .g-ui-toast-close svg {
3163
+ width: 16px;
3164
+ height: 16px;
3165
+ fill: var(--g-ui-muted);
3166
+ }
2971
3167
 
2972
3168
  .g-ui-toast-row {
2973
3169
  display: flex;
@@ -2975,6 +3171,43 @@ body {
2975
3171
  gap: var(--g-ui-space-8);
2976
3172
  }
2977
3173
 
3174
+ .g-ui-autocomplete {
3175
+ position: relative;
3176
+ width: 100%;
3177
+ }
3178
+ .g-ui-autocomplete-dropdown {
3179
+ position: absolute;
3180
+ top: calc(100% + var(--g-ui-space-4));
3181
+ left: 0;
3182
+ right: 0;
3183
+ z-index: 100;
3184
+ border: 1px solid var(--g-ui-border-muted);
3185
+ border-radius: var(--g-ui-radius);
3186
+ background: var(--g-ui-bg-panel);
3187
+ box-shadow: var(--g-ui-shadow-md);
3188
+ }
3189
+ .g-ui-autocomplete-list {
3190
+ overflow: auto;
3191
+ padding: var(--g-ui-space-4);
3192
+ }
3193
+ .g-ui-autocomplete-item {
3194
+ padding: var(--g-ui-space-6) var(--g-ui-space-8);
3195
+ border-radius: var(--g-ui-radius);
3196
+ cursor: pointer;
3197
+ font-size: var(--g-ui-font-size-sm);
3198
+ }
3199
+ .g-ui-autocomplete-item:hover {
3200
+ background: var(--g-ui-bg-subtle);
3201
+ }
3202
+ .g-ui-autocomplete-item-active {
3203
+ background: var(--g-ui-primary-subtle);
3204
+ color: var(--g-ui-primary);
3205
+ }
3206
+ .g-ui-autocomplete-disabled {
3207
+ pointer-events: none;
3208
+ opacity: 0.7;
3209
+ }
3210
+
2978
3211
  .g-ui-select-search {
2979
3212
  display: flex;
2980
3213
  flex-direction: column;
@@ -2992,6 +3225,7 @@ body {
2992
3225
  justify-content: center;
2993
3226
  color: var(--g-ui-muted);
2994
3227
  font-size: 16px;
3228
+ fill: var(--g-ui-muted);
2995
3229
  }
2996
3230
  .g-ui-search-input-left-section svg {
2997
3231
  width: 100%;
@@ -3036,8 +3270,15 @@ body {
3036
3270
 
3037
3271
  .g-ui-range-picker {
3038
3272
  display: grid;
3039
- grid-template-columns: 1fr 1fr;
3040
- gap: var(--g-ui-space-12);
3273
+ grid-template-columns: 1fr auto 1fr;
3274
+ gap: var(--g-ui-space-8);
3275
+ align-items: center;
3276
+ }
3277
+ .g-ui-range-picker-separator {
3278
+ color: var(--g-ui-fg-muted);
3279
+ font-size: var(--g-ui-font-size-sm);
3280
+ line-height: 1;
3281
+ flex-shrink: 0;
3041
3282
  }
3042
3283
 
3043
3284
  .g-ui-toast-auto {
@@ -0,0 +1 @@
1
+ export function Autocomplete(...args: any[]): any;
@@ -1 +1,2 @@
1
1
  export function RadioGroup(...args: any[]): any;
2
+ export const radioGroupContext: any;
@@ -1 +1,2 @@
1
1
  export function SwitchGroup(...args: any[]): any;
2
+ export const switchGroupContext: any;
package/types/index.d.ts CHANGED
@@ -70,6 +70,7 @@ export { SearchInput } from "./components/SearchInput.js";
70
70
  export { CopyButton } from "./components/CopyButton.js";
71
71
  export { ProgressRing } from "./components/ProgressRing.js";
72
72
  export { Toast } from "./components/Toast.js";
73
+ export { Autocomplete } from "./components/Autocomplete.js";
73
74
  export { SelectSearch } from "./components/SelectSearch.js";
74
75
  export { SwitchGroup } from "./components/SwitchGroup.js";
75
76
  export { RangePicker } from "./components/RangePicker.js";
@@ -8,3 +8,4 @@ export const plusSvg: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"
8
8
  export const editSvg: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"currentColor\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h357l-80 80H200v560h560v-278l80-80v358q0 33-23.5 56.5T760-120H200Zm280-360v-80h240v80H480Zm0 160v-80h320v80H480Zm0 160v-80h320v80H480ZM360-360v-80h80v80h-80Zm0 160v-80h80v80h-80Zm0 160v-80h80v80h-80Zm160-320h280l-36-37 37-37v74H520Zm-160 0h80v-80h-80v80ZM120-600v-160l160-160h160l-80 80H200v240h-80Zm80-240v-80 80Z\"/></svg>";
9
9
  export const deleteSvg: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"currentColor\"><path d=\"M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z\"/></svg>";
10
10
  export const calendarTodaySvg: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"currentColor\"><path d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Z\"/></svg>";
11
+ export const keyboardArrowDownSvg: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M480-344 240-584l56-56 184 184 184-184 56 56-240 240Z\"/></svg>";