rip-lang 3.13.71 → 3.13.73

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.
package/docs/ui/index.css CHANGED
@@ -585,7 +585,7 @@ select.rip-grid-editor { cursor: pointer; padding-left: 4px; }
585
585
  &[data-filled] { border-color: #3b82f6; }
586
586
  }
587
587
 
588
- &[data-complete] input { border-color: #22c55e; }
588
+ &[data-complete] input { border-color: #22c55e; background: #f0fdf4; }
589
589
  &[data-disabled] input { opacity: 0.5; cursor: not-allowed; }
590
590
  }
591
591
 
@@ -675,10 +675,11 @@ select.rip-grid-editor { cursor: pointer; padding-left: 4px; }
675
675
  min-width: 32px; min-height: 32px;
676
676
 
677
677
  &:hover { background: #f1f5f9; }
678
+ &:active:not([data-selected]) { background: #dbeafe; color: #1d4ed8; }
678
679
  &[data-outside] { color: #cbd5e1; }
679
680
  &[data-today] { font-weight: 700; outline: 2px solid #3b82f6; outline-offset: -2px; }
680
681
  &[data-selected] { background: #3b82f6; color: white; }
681
- &[data-in-range] { background: #eff6ff; border-radius: 0; }
682
+ &[data-in-range] { background: #dbeafe; color: #1e40af; border-radius: 0; }
682
683
  &[data-range-start] { border-radius: 4px 0 0 4px; }
683
684
  }
684
685
  }
@@ -749,12 +750,12 @@ select.rip-grid-editor { cursor: pointer; padding-left: 4px; }
749
750
  /* ── Menubar ── */
750
751
 
751
752
  .gallery [role="menubar"] {
752
- display: inline-flex; gap: 0; background: #f8fafc;
753
- border: 1px solid #e2e8f0; border-radius: 6px; padding: 2px;
753
+ display: inline-flex; gap: 2px; background: #f8fafc;
754
+ border: 1px solid #e2e8f0; border-radius: 8px; padding: 4px;
754
755
 
755
756
  [data-menu-trigger] {
756
- padding: 6px 14px; border: none; background: transparent;
757
- cursor: pointer; font-size: 13px; color: #475569; border-radius: 4px;
757
+ padding: 8px 16px; border: none; background: transparent;
758
+ cursor: pointer; font-size: 14px; color: #475569; border-radius: 6px;
758
759
  transition: all 0.15s;
759
760
 
760
761
  &:hover, &[data-open] { background: white; color: #1e293b; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
@@ -1034,6 +1035,8 @@ html.no-transition, html.no-transition * { transition: none !important; }
1034
1035
 
1035
1036
  /* ── Source Code Viewer ── */
1036
1037
 
1038
+ body:has(.source-overlay) { overflow: hidden; }
1039
+
1037
1040
  .source-overlay {
1038
1041
  position: fixed; inset: 0; background: rgba(0,0,0,0.5);
1039
1042
  display: grid; place-items: center; z-index: 200;
@@ -1093,11 +1096,322 @@ html.no-transition, html.no-transition * { transition: none !important; }
1093
1096
  .source-code {
1094
1097
  padding: 0 16px; flex: 1; min-width: 0;
1095
1098
  white-space: pre; background: transparent !important;
1096
- margin: 0;
1099
+ margin: 0; color: #1e293b;
1097
1100
  }
1098
1101
 
1099
1102
  .source-code.hljs { padding: 0 16px; }
1100
1103
 
1104
+ /* Light mode syntax theme */
1105
+ .source-code .hljs-comment { color: #6b7280; font-style: italic; }
1106
+ .source-code .hljs-keyword { color: #7c3aed; }
1107
+ .source-code .hljs-built_in { color: #6d28d9; }
1108
+ .source-code .hljs-string,
1109
+ .source-code .hljs-regexp { color: #16a34a; }
1110
+ .source-code .hljs-number,
1111
+ .source-code .hljs-literal { color: #d97706; }
1112
+ .source-code .hljs-title,
1113
+ .source-code .hljs-title\.function,
1114
+ .source-code .hljs-title\.class { color: #2563eb; }
1115
+ .source-code .hljs-function { color: #2563eb; }
1116
+ .source-code .hljs-params { color: #9333ea; }
1117
+ .source-code .hljs-variable { color: #0891b2; }
1118
+ .source-code .hljs-attribute { color: #0d9488; }
1119
+ .source-code .hljs-operator { color: #64748b; }
1120
+ .source-code .hljs-subst { color: #dc2626; }
1121
+ .source-code .hljs-type { color: #0891b2; }
1122
+
1123
+ /* ── Badge ── */
1124
+
1125
+ .gallery [data-variant] {
1126
+ display: inline-flex; align-items: center; font-size: 11px; font-weight: 600;
1127
+ padding: 2px 8px; border-radius: 10px; user-select: none;
1128
+
1129
+ &[data-variant="solid"] { background: #3b82f6; color: white; }
1130
+ &[data-variant="outline"] { background: transparent; color: #3b82f6; border: 1px solid #3b82f6; }
1131
+ &[data-variant="subtle"] { background: #dbeafe; color: #1d4ed8; }
1132
+ }
1133
+
1134
+ /* ── Kbd ── */
1135
+
1136
+ .gallery kbd:not(.api kbd) {
1137
+ display: inline-block; font-family: ui-monospace, 'SF Mono', monospace;
1138
+ font-size: 12px; font-weight: 500; padding: 2px 6px;
1139
+ background: #f8fafc; border: 1px solid #d1d5db; border-radius: 4px;
1140
+ color: #374151; box-shadow: 0 1px 0 #d1d5db; line-height: 1.4;
1141
+ }
1142
+
1143
+ /* ── Skeleton ── */
1144
+
1145
+ .gallery [aria-busy="true"][role="status"]:not([aria-label="Carousel"]) {
1146
+ width: var(--skeleton-width, 100%); height: var(--skeleton-height, 1em);
1147
+ background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
1148
+ background-size: 200% 100%;
1149
+ animation: shimmer 1.5s infinite;
1150
+ border-radius: 4px;
1151
+
1152
+ &[data-circle] { border-radius: 50%; }
1153
+ }
1154
+
1155
+ @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
1156
+
1157
+ /* ── Spinner ── */
1158
+
1159
+ .gallery .spinner-demo [role="status"][aria-label] {
1160
+ width: var(--spinner-size, 24px); height: var(--spinner-size, 24px);
1161
+ border: 3px solid #e2e8f0; border-top-color: #3b82f6;
1162
+ border-radius: 50%; animation: spin 0.6s linear infinite;
1163
+ }
1164
+
1165
+ @keyframes spin { to { transform: rotate(360deg); } }
1166
+
1167
+ /* ── AspectRatio ── */
1168
+
1169
+ .gallery .aspect-demo > div {
1170
+ overflow: hidden; border-radius: 8px; background: #e2e8f0;
1171
+
1172
+ img { width: 100%; height: 100%; object-fit: cover; }
1173
+ }
1174
+
1175
+ /* ── Card ── */
1176
+
1177
+ .gallery .card-demo { background: none; border: none; padding: 0; }
1178
+
1179
+ .gallery .card-demo > div {
1180
+ background: white; border: 1px solid #e2e8f0; border-radius: 8px;
1181
+ overflow: hidden; transition: box-shadow 0.2s;
1182
+
1183
+ &[data-interactive] { cursor: pointer; }
1184
+ &[data-interactive]:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
1185
+
1186
+ [data-header] { padding: 16px 16px 0; }
1187
+ [data-header] h3 { font-size: 16px; font-weight: 700; }
1188
+ [data-content] { padding: 12px 16px; color: #64748b; font-size: 13px; }
1189
+ [data-footer] { padding: 12px 16px; display: flex; gap: 8px; border-top: 1px solid #e2e8f0; }
1190
+ }
1191
+
1192
+ /* ── Label ── */
1193
+
1194
+ .gallery label[data-required] { font-size: 13px; font-weight: 600; color: #334155; }
1195
+ .gallery label[data-required]::after { content: " *"; color: #ef4444; }
1196
+
1197
+ /* ── Textarea ── */
1198
+
1199
+ .gallery textarea {
1200
+ width: 100%; min-height: 80px; padding: 8px 12px;
1201
+ border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; font-size: 14px;
1202
+ color: #1e293b; background: white; outline: none; resize: vertical;
1203
+
1204
+ &:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.1); }
1205
+ &[data-disabled] { opacity: 0.5; cursor: not-allowed; }
1206
+ }
1207
+
1208
+ /* ── NativeSelect ── */
1209
+
1210
+ .gallery .native-select-demo select {
1211
+ padding: 6px 12px; height: 36px; border: 1px solid #cbd5e1; border-radius: 6px;
1212
+ background: white; font: inherit; font-size: 14px; color: #1e293b; outline: none; cursor: pointer;
1213
+
1214
+ &:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.1); }
1215
+ &[data-disabled] { opacity: 0.5; cursor: not-allowed; }
1216
+ }
1217
+
1218
+ /* ── InputGroup ── */
1219
+
1220
+ .gallery .input-group-demo > div {
1221
+ display: inline-flex; align-items: center;
1222
+ border: 1px solid #cbd5e1; border-radius: 6px; overflow: hidden;
1223
+
1224
+ &[data-focused] { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.1); }
1225
+ &[data-disabled] { opacity: 0.5; }
1226
+
1227
+ [data-prefix], [data-suffix] {
1228
+ padding: 0 10px; background: #f8fafc; color: #64748b;
1229
+ font-size: 14px; height: 36px; display: flex; align-items: center;
1230
+ border-right: 1px solid #e2e8f0; user-select: none;
1231
+ }
1232
+
1233
+ [data-suffix] { border-right: none; border-left: 1px solid #e2e8f0; }
1234
+
1235
+ input {
1236
+ border: none; outline: none; padding: 0 12px; height: 36px;
1237
+ font: inherit; font-size: 14px; flex: 1; min-width: 0;
1238
+ }
1239
+ }
1240
+
1241
+ /* ── ButtonGroup ── */
1242
+
1243
+ .gallery [role="group"][data-orientation]:not(:has(button[aria-pressed])):not([role="radiogroup"]):not(:has([data-track])) {
1244
+ display: inline-flex;
1245
+
1246
+ &[data-orientation="horizontal"] { flex-direction: row; }
1247
+ &[data-orientation="vertical"] { flex-direction: column; }
1248
+
1249
+ button {
1250
+ padding: 6px 14px; border: 1px solid #cbd5e1; background: white;
1251
+ cursor: pointer; font-size: 13px; color: #1e293b; transition: all 0.15s;
1252
+
1253
+ &:first-child { border-radius: 6px 0 0 6px; }
1254
+ &:last-child { border-radius: 0 6px 6px 0; }
1255
+ &:not(:first-child) { margin-left: -1px; }
1256
+ &:hover { background: #f8fafc; z-index: 1; }
1257
+ &:active { background: #f1f5f9; }
1258
+ }
1259
+
1260
+ &[data-disabled] { opacity: 0.5; pointer-events: none; }
1261
+ }
1262
+
1263
+ /* ── AlertDialog ── */
1264
+
1265
+ .gallery [data-open]:has(> [role="alertdialog"]) {
1266
+ position: fixed; inset: 0; background: rgba(0,0,0,0.4);
1267
+ display: grid; place-items: center; z-index: 100;
1268
+ animation: fadeIn 150ms ease;
1269
+ }
1270
+
1271
+ .gallery .alert-dialog-panel {
1272
+ background: white; border-radius: 12px; padding: 24px;
1273
+ box-shadow: 0 4px 16px rgba(0,0,0,0.12); max-width: min(90vw, 420px); width: 100%;
1274
+ }
1275
+
1276
+ /* ── Sheet ── */
1277
+
1278
+ .gallery [data-open]:has([data-sheet]) {
1279
+ position: fixed; inset: 0; background: rgba(0,0,0,0.4);
1280
+ z-index: 100; animation: fadeIn 150ms ease;
1281
+ }
1282
+
1283
+ .gallery [data-sheet] {
1284
+ position: fixed; background: white; padding: 24px;
1285
+ box-shadow: 0 0 24px rgba(0,0,0,0.15); overflow-y: auto;
1286
+
1287
+ &[data-side="right"] { top: 0; right: 0; bottom: 0; width: min(85vw, 360px); animation: slideInRight 200ms ease; }
1288
+ &[data-side="left"] { top: 0; left: 0; bottom: 0; width: min(85vw, 360px); animation: slideInLeft 200ms ease; }
1289
+ &[data-side="top"] { top: 0; left: 0; right: 0; height: min(85vh, 320px); animation: slideInTop 200ms ease; }
1290
+ &[data-side="bottom"] { bottom: 0; left: 0; right: 0; height: min(85vh, 320px); animation: slideInBottom 200ms ease; }
1291
+
1292
+ h2 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
1293
+ p { color: #64748b; font-size: 14px; margin-bottom: 12px; }
1294
+ }
1295
+
1296
+ @keyframes slideInTop { from { transform: translateY(-100%); } to { transform: none; } }
1297
+ @keyframes slideInBottom { from { transform: translateY(100%); } to { transform: none; } }
1298
+
1299
+ /* ── Breadcrumb ── */
1300
+
1301
+ .gallery nav[aria-label="Breadcrumb"] ol {
1302
+ display: flex; align-items: center; gap: 6px; list-style: none;
1303
+ font-size: 13px; color: #64748b;
1304
+
1305
+ [data-item] { color: #64748b; text-decoration: none; }
1306
+ [data-item]:hover:not([data-current]) { color: #1e293b; text-decoration: underline; }
1307
+ [data-item] + [data-item]::before { content: '/'; color: #cbd5e1; margin-right: 6px; user-select: none; text-decoration: none; display: inline-block; }
1308
+ [data-current] { color: #1e293b; font-weight: 600; }
1309
+ }
1310
+
1311
+ /* ── Table ── */
1312
+
1313
+ .gallery .table-demo table {
1314
+ width: 100%; border-collapse: collapse; font-size: 13px;
1315
+
1316
+ caption { font-size: 14px; font-weight: 600; text-align: left; padding: 8px 0; color: #1e293b; }
1317
+
1318
+ th { text-align: left; padding: 8px 12px; font-weight: 600; color: #475569;
1319
+ border-bottom: 2px solid #e2e8f0; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
1320
+ td { padding: 8px 12px; border-bottom: 1px solid #e2e8f0; color: #1e293b; }
1321
+
1322
+ &[data-striped] tbody tr:nth-child(even) td { background: #f8fafc; }
1323
+ }
1324
+
1325
+ /* ── Collapsible ── */
1326
+
1327
+ .gallery [data-trigger]:has(+ [data-content]) {
1328
+ padding: 8px 14px; border: 1px solid #cbd5e1; border-radius: 6px;
1329
+ background: white; cursor: pointer; font-size: 14px; width: 100%; text-align: left;
1330
+
1331
+ &[aria-expanded="true"] { border-color: #94a3b8; }
1332
+ &:hover { background: #f8fafc; }
1333
+ }
1334
+
1335
+ .gallery .collapsible-demo [data-content] {
1336
+ padding: 12px 14px; color: #64748b; font-size: 13px;
1337
+ border: 1px solid #e2e8f0; border-top: none; border-radius: 0 0 6px 6px;
1338
+ }
1339
+
1340
+ /* ── Pagination ── */
1341
+
1342
+ .gallery nav[aria-label="Pagination"] {
1343
+ display: inline-flex; align-items: center; gap: 2px;
1344
+
1345
+ button {
1346
+ min-width: 32px; height: 32px; padding: 0 8px;
1347
+ border: 1px solid #e2e8f0; border-radius: 6px; background: white;
1348
+ font-size: 13px; color: #475569; cursor: pointer; transition: all 0.15s;
1349
+
1350
+ &:hover:not(:disabled):not([data-active]) { background: #f1f5f9; border-color: #94a3b8; }
1351
+ &[data-active] { background: #3b82f6; color: white; border-color: #3b82f6; }
1352
+ &[data-active]:hover { background: #2563eb; }
1353
+ &:disabled { opacity: 0.4; cursor: not-allowed; }
1354
+ }
1355
+
1356
+ [data-prev]::before { content: '‹'; }
1357
+ [data-next]::before { content: '›'; }
1358
+ [data-ellipsis] { min-width: 32px; text-align: center; color: #94a3b8; font-size: 13px; user-select: none; }
1359
+ }
1360
+
1361
+ /* ── Carousel ── */
1362
+
1363
+ .gallery [aria-roledescription="carousel"] {
1364
+ position: relative; overflow: hidden;
1365
+ border: 1px solid #e2e8f0; border-radius: 8px; background: white;
1366
+
1367
+ [role="tablist"] {
1368
+ border-bottom: none; margin-bottom: 0;
1369
+ min-height: 160px; display: grid; place-items: center;
1370
+ padding: 24px; text-align: center; font-size: 18px; color: #475569;
1371
+ }
1372
+
1373
+ [role="tabpanel"] { padding: 24px; text-align: center; }
1374
+
1375
+ [data-prev], [data-next] {
1376
+ position: absolute; top: 50%; transform: translateY(-50%);
1377
+ width: 32px; height: 32px; border-radius: 50%;
1378
+ border: 1px solid #e2e8f0; background: white; cursor: pointer;
1379
+ display: grid; place-items: center; font-size: 16px; color: #475569;
1380
+ box-shadow: 0 2px 6px rgba(0,0,0,0.08); z-index: 2;
1381
+
1382
+ &:hover:not(:disabled) { background: #f1f5f9; }
1383
+ &:disabled { opacity: 0.3; cursor: not-allowed; }
1384
+ }
1385
+
1386
+ [data-prev] { left: 8px; }
1387
+ [data-next] { right: 8px; }
1388
+ [data-prev]::before { content: '‹'; }
1389
+ [data-next]::before { content: '›'; }
1390
+ }
1391
+
1392
+ /* ── Resizable ── */
1393
+
1394
+ .gallery .resizable-demo > div {
1395
+ border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden;
1396
+ min-height: 160px;
1397
+
1398
+ [data-panel] {
1399
+ display: flex; align-items: center; justify-content: center;
1400
+ font-size: 13px; color: #64748b; background: white; overflow: hidden;
1401
+ }
1402
+
1403
+ [data-handle] {
1404
+ flex-shrink: 0; background: #e2e8f0; cursor: col-resize;
1405
+ display: flex; align-items: center; justify-content: center;
1406
+ transition: background 0.15s;
1407
+
1408
+ &:hover, &[data-dragging] { background: #3b82f6; }
1409
+ }
1410
+
1411
+ &[data-orientation="horizontal"] [data-handle] { width: 4px; }
1412
+ &[data-orientation="vertical"] [data-handle] { height: 4px; cursor: row-resize; }
1413
+ }
1414
+
1101
1415
  /* ── Dark Mode ── */
1102
1416
 
1103
1417
  [data-theme="dark"] {
@@ -1239,6 +1553,8 @@ html.no-transition, html.no-transition * { transition: none !important; }
1239
1553
 
1240
1554
  /* OTP Field */
1241
1555
  .gallery [role="group"][aria-label="One-time password"] input { border-color: #475569; background: #0f172a; color: #e2e8f0; }
1556
+ .gallery [role="group"][aria-label="One-time password"] input[data-filled] { border-color: #3b82f6; }
1557
+ .gallery [role="group"][aria-label="One-time password"][data-complete] input { border-color: #22c55e; background: #052e16; }
1242
1558
 
1243
1559
  /* MultiSelect */
1244
1560
  .gallery [data-chips] { border-color: #475569; background: #1e293b; }
@@ -1261,8 +1577,9 @@ html.no-transition, html.no-transition * { transition: none !important; }
1261
1577
  .gallery [data-weekdays] [data-weekday] { color: #64748b; }
1262
1578
  .gallery [data-days] button { color: #e2e8f0; }
1263
1579
  .gallery [data-days] button:hover { background: #334155; }
1580
+ .gallery [data-days] button:active:not([data-selected]) { background: #1e3a5f; color: #93c5fd; }
1264
1581
  .gallery [data-days] button[data-outside] { color: #475569; }
1265
- .gallery [data-days] button[data-in-range] { background: #172554; }
1582
+ .gallery [data-days] button[data-in-range] { background: #1e3a5f; color: #93c5fd; }
1266
1583
  .gallery [data-trigger]:has(+ [data-calendar]) { border-color: #475569; background: #334155; color: #e2e8f0; }
1267
1584
  .gallery [data-trigger][aria-haspopup] { border-color: #475569; background: #334155; color: #e2e8f0; }
1268
1585
 
@@ -1290,9 +1607,9 @@ html.no-transition, html.no-transition * { transition: none !important; }
1290
1607
  .gallery nav[role="navigation"] [data-nav-panel] a:hover { background: #334155; color: #e2e8f0; }
1291
1608
 
1292
1609
  /* ToggleGroup / RadioGroup / CheckboxGroup */
1293
- .gallery [role="group"][data-orientation] button[aria-pressed] { border-color: #475569; background: #1e293b; color: #64748b; }
1294
- .gallery [role="group"][data-orientation] button[aria-pressed][data-pressed="true"] { background: #3b82f6; color: white; border-color: #3b82f6; }
1295
- .gallery [role="group"][data-orientation] button[aria-pressed]:hover:not([data-pressed="true"]) { background: #334155; color: #94a3b8; }
1610
+ .gallery [role="group"][data-orientation]:has(button[aria-pressed]) button[aria-pressed] { border-color: #475569; background: #1e293b; color: #64748b; }
1611
+ .gallery [role="group"][data-orientation]:has(button[aria-pressed]) button[aria-pressed][data-pressed="true"] { background: #3b82f6; color: white; border-color: #3b82f6; }
1612
+ .gallery [role="group"][data-orientation]:has(button[aria-pressed]) button[aria-pressed]:hover:not([data-pressed="true"]) { background: #334155; color: #94a3b8; }
1296
1613
  .gallery [role="radiogroup"] [role="radio"] { border-color: #475569; background: #1e293b; color: #94a3b8; }
1297
1614
  .gallery [role="radiogroup"] [role="radio"][data-checked] { background: #172554; color: #60a5fa; border-color: #3b82f6; }
1298
1615
  .gallery [role="radiogroup"] [role="radio"]:hover:not([data-checked]) { background: #334155; }
@@ -1306,6 +1623,82 @@ html.no-transition, html.no-transition * { transition: none !important; }
1306
1623
  .gallery [role="toolbar"] button:hover { background: #1e293b; color: #e2e8f0; box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
1307
1624
  .gallery [role="toolbar"] button[aria-pressed="true"] { background: #1e293b; color: #60a5fa; box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
1308
1625
 
1626
+ /* Badge */
1627
+ .gallery [data-variant="solid"] { background: #2563eb; }
1628
+ .gallery [data-variant="outline"] { color: #60a5fa; border-color: #60a5fa; }
1629
+ .gallery [data-variant="subtle"] { background: #172554; color: #60a5fa; }
1630
+
1631
+ /* Kbd */
1632
+ .gallery kbd:not(.api kbd) { background: #1e293b; border-color: #475569; color: #94a3b8; box-shadow: 0 1px 0 #475569; }
1633
+
1634
+ /* Skeleton */
1635
+ .gallery [aria-busy="true"][role="status"]:not([aria-label="Carousel"]) { background: linear-gradient(90deg, #334155 25%, #475569 50%, #334155 75%); background-size: 200% 100%; }
1636
+
1637
+ /* Spinner */
1638
+ .gallery .spinner-demo [role="status"][aria-label] { border-color: #334155; border-top-color: #60a5fa; }
1639
+
1640
+ /* Card */
1641
+ .gallery .card-demo > div { background: #1e293b; border-color: #334155; }
1642
+ .gallery .card-demo > div [data-header] h3 { color: #e2e8f0; }
1643
+ .gallery .card-demo > div [data-content] { color: #94a3b8; }
1644
+
1645
+ /* Label */
1646
+ .gallery label[data-required] { color: #cbd5e1; }
1647
+
1648
+ /* Textarea */
1649
+ .gallery textarea { border-color: #475569; background: #0f172a; color: #e2e8f0; }
1650
+
1651
+ /* NativeSelect */
1652
+ .gallery .native-select-demo select { border-color: #475569; background: #1e293b; color: #e2e8f0; }
1653
+
1654
+ /* InputGroup */
1655
+ .gallery .input-group-demo > div { border-color: #475569; }
1656
+ .gallery .input-group-demo > div [data-prefix], .gallery .input-group-demo > div [data-suffix] { background: #0f172a; color: #94a3b8; border-color: #334155; }
1657
+ .gallery .input-group-demo > div input { color: #e2e8f0; background: #1e293b; }
1658
+
1659
+ /* ButtonGroup */
1660
+ .gallery [role="group"][data-orientation]:not(:has(button[aria-pressed])):not([role="radiogroup"]) button { border-color: #475569; background: #1e293b; color: #e2e8f0; }
1661
+ .gallery [role="group"][data-orientation]:not(:has(button[aria-pressed])):not([role="radiogroup"]) button:hover { background: #334155; }
1662
+
1663
+ /* AlertDialog */
1664
+ .gallery .alert-dialog-panel { background: #1e293b; box-shadow: 0 4px 16px rgba(0,0,0,0.4); }
1665
+
1666
+ /* Sheet */
1667
+ .gallery [data-sheet] { background: #1e293b; box-shadow: 0 0 24px rgba(0,0,0,0.4); }
1668
+ .gallery [data-sheet] h2 { color: #e2e8f0; }
1669
+ .gallery [data-sheet] p { color: #94a3b8; }
1670
+
1671
+ /* Breadcrumb */
1672
+ .gallery nav[aria-label="Breadcrumb"] ol [data-item] { color: #94a3b8; }
1673
+ .gallery nav[aria-label="Breadcrumb"] ol [data-item]:hover:not([data-current]) { color: #e2e8f0; }
1674
+ .gallery nav[aria-label="Breadcrumb"] ol [data-item] + [data-item]::before { color: #475569; }
1675
+ .gallery nav[aria-label="Breadcrumb"] ol [data-current] { color: #e2e8f0; }
1676
+
1677
+ /* Table */
1678
+ .gallery .table-demo table caption { color: #e2e8f0; }
1679
+ .gallery .table-demo table th { color: #94a3b8; border-bottom-color: #334155; }
1680
+ .gallery .table-demo table td { color: #e2e8f0; border-bottom-color: #334155; }
1681
+ .gallery .table-demo table[data-striped] tbody tr:nth-child(even) td { background: #172032; }
1682
+
1683
+ /* Collapsible */
1684
+ .gallery .collapsible-demo [data-content] { border-color: #334155; color: #94a3b8; }
1685
+
1686
+ /* Pagination */
1687
+ .gallery nav[aria-label="Pagination"] button { border-color: #475569; background: #1e293b; color: #94a3b8; }
1688
+ .gallery nav[aria-label="Pagination"] button:hover:not(:disabled) { background: #334155; border-color: #64748b; }
1689
+ .gallery nav[aria-label="Pagination"] button[data-active] { background: #3b82f6; color: white; border-color: #3b82f6; }
1690
+ .gallery nav[aria-label="Pagination"] [data-ellipsis] { color: #64748b; }
1691
+
1692
+ /* Carousel */
1693
+ .gallery [aria-roledescription="carousel"] { border-color: #334155; background: #1e293b; }
1694
+ .gallery [aria-roledescription="carousel"] [data-prev], .gallery [aria-roledescription="carousel"] [data-next] { border-color: #475569; background: #1e293b; color: #94a3b8; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
1695
+ .gallery [aria-roledescription="carousel"] [data-prev]:hover:not(:disabled), .gallery [aria-roledescription="carousel"] [data-next]:hover:not(:disabled) { background: #334155; }
1696
+
1697
+ /* Resizable */
1698
+ .gallery .resizable-demo > div { border-color: #334155; }
1699
+ .gallery .resizable-demo > div [data-panel] { background: #1e293b; color: #94a3b8; }
1700
+ .gallery .resizable-demo > div [data-handle] { background: #475569; }
1701
+
1309
1702
  /* Shared demo styles */
1310
1703
  .context-zone { border-color: #64748b; color: #94a3b8; }
1311
1704
  .dialog-desc { color: #94a3b8; }
@@ -1327,22 +1720,22 @@ html.no-transition, html.no-transition * { transition: none !important; }
1327
1720
  .source-close:hover { background: #334155; color: #e2e8f0; }
1328
1721
  .source-gutter { color: #475569; border-right-color: #334155; }
1329
1722
  .source-code { color: #e2e8f0; }
1330
- .source-code .hljs-comment { color: #64748b; }
1331
- .source-code .hljs-keyword,
1332
- .source-code .hljs-built_in { color: #c084fc; }
1723
+ .source-code .hljs-comment { color: #64748b; font-style: italic; }
1724
+ .source-code .hljs-keyword { color: #c084fc; }
1725
+ .source-code .hljs-built_in { color: #a78bfa; }
1333
1726
  .source-code .hljs-string,
1334
1727
  .source-code .hljs-regexp { color: #86efac; }
1335
1728
  .source-code .hljs-number,
1336
1729
  .source-code .hljs-literal { color: #fbbf24; }
1337
1730
  .source-code .hljs-title,
1338
- .source-code .hljs-function { color: #60a5fa; }
1731
+ .source-code .hljs-function { color: #93c5fd; }
1339
1732
  .source-code .hljs-params { color: #f0abfc; }
1340
- .source-code .hljs-attr,
1341
- .source-code .hljs-attribute { color: #67e8f9; }
1342
- .source-code .hljs-variable,
1733
+ .source-code .hljs-variable { color: #67e8f9; }
1734
+ .source-code .hljs-attribute { color: #5eead4; }
1343
1735
  .source-code .hljs-property { color: #e2e8f0; }
1736
+ .source-code .hljs-operator { color: #94a3b8; }
1344
1737
  .source-code .hljs-subst { color: #fca5a5; }
1345
- .source-code .hljs-symbol { color: #fbbf24; }
1738
+ .source-code .hljs-type { color: #67e8f9; }
1346
1739
  }
1347
1740
 
1348
1741
  /* ── Shared demo styles ── */