@spartan-ng/cli 1.7.0 → 1.8.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/package.json +1 -1
  2. package/src/generators/healthcheck/healthchecks/brn-collapsible.js +3 -4
  3. package/src/generators/healthcheck/healthchecks/brn-collapsible.js.map +1 -1
  4. package/src/generators/migrate-collapsible/generator.js +3 -4
  5. package/src/generators/migrate-collapsible/generator.js.map +1 -1
  6. package/src/generators/migrate-collapsible/helm-collapsible-files.d.ts +6 -0
  7. package/src/generators/migrate-collapsible/helm-collapsible-files.js +17 -0
  8. package/src/generators/migrate-collapsible/helm-collapsible-files.js.map +1 -0
  9. package/src/generators/ui/libs/code-block/files/index.ts.template +28 -0
  10. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-actions.ts.template +16 -0
  11. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-content.ts.template +85 -0
  12. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-copy-button.ts.template +62 -0
  13. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-footer.ts.template +13 -0
  14. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-header.ts.template +16 -0
  15. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-line.ts.template +42 -0
  16. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block-title.ts.template +16 -0
  17. package/src/generators/ui/libs/code-block/files/lib/hlm-code-block.ts.template +34 -0
  18. package/src/generators/ui/libs/code-block/generator.d.ts +3 -0
  19. package/src/generators/ui/libs/code-block/generator.js +9 -0
  20. package/src/generators/ui/libs/code-block/generator.js.map +1 -0
  21. package/src/generators/ui/libs/trace/files/index.ts.template +28 -0
  22. package/src/generators/ui/libs/trace/files/lib/hlm-trace-collapsible-content.ts.template +34 -0
  23. package/src/generators/ui/libs/trace/files/lib/hlm-trace-collapsible-trigger.ts.template +31 -0
  24. package/src/generators/ui/libs/trace/files/lib/hlm-trace-collapsible.ts.template +21 -0
  25. package/src/generators/ui/libs/trace/files/lib/hlm-trace-description.ts.template +13 -0
  26. package/src/generators/ui/libs/trace/files/lib/hlm-trace-icon.ts.template +13 -0
  27. package/src/generators/ui/libs/trace/files/lib/hlm-trace-line.ts.template +18 -0
  28. package/src/generators/ui/libs/trace/files/lib/hlm-trace-title.ts.template +13 -0
  29. package/src/generators/ui/libs/trace/files/lib/hlm-trace.ts.template +16 -0
  30. package/src/generators/ui/libs/trace/generator.d.ts +3 -0
  31. package/src/generators/ui/libs/trace/generator.js +9 -0
  32. package/src/generators/ui/libs/trace/generator.js.map +1 -0
  33. package/src/generators/ui/primitive-deps.js +2 -0
  34. package/src/generators/ui/primitive-deps.js.map +1 -1
  35. package/src/generators/ui/primitives.d.ts +1 -1
  36. package/src/generators/ui/style-luma.css +78 -0
  37. package/src/generators/ui/style-lyra.css +74 -0
  38. package/src/generators/ui/style-maia.css +74 -0
  39. package/src/generators/ui/style-mira.css +73 -0
  40. package/src/generators/ui/style-nova.css +74 -0
  41. package/src/generators/ui/style-vega.css +74 -0
  42. package/src/generators/ui/supported-ui-libraries.json +63 -43
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import type { HlmBaseGeneratorSchema } from '../../../base/schema';
3
+ export declare function generator(tree: Tree, options: HlmBaseGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generator = generator;
4
+ const tslib_1 = require("tslib");
5
+ const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
6
+ async function generator(tree, options) {
7
+ return await (0, generator_1.default)(tree, { ...options, name: 'trace' });
8
+ }
9
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/trace/generator.ts"],"names":[],"mappings":";;AAIA,8BAEC;;AALD,gFAAuD;AAGhD,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,IAAA,mBAAgB,EAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -19,6 +19,7 @@ exports.primitiveDependencies = {
19
19
  carousel: ['utils', 'button'],
20
20
  chart: ['utils'],
21
21
  checkbox: ['utils'],
22
+ 'code-block': ['utils', 'button'],
22
23
  collapsible: ['utils'],
23
24
  combobox: ['utils', 'input-group', 'button'],
24
25
  command: ['utils', 'button', 'input-group', 'dialog'],
@@ -64,6 +65,7 @@ exports.primitiveDependencies = {
64
65
  toggle: ['utils'],
65
66
  'toggle-group': ['utils', 'toggle'],
66
67
  tooltip: ['utils'],
68
+ trace: ['utils'],
67
69
  typography: ['utils'],
68
70
  utils: [],
69
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"primitive-deps.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/ui/primitive-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitive-deps.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/generators/ui/primitive-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export type Primitive = 'accordion' | 'alert' | 'alert-dialog' | 'aspect-ratio' | 'attachment' | 'autocomplete' | 'avatar' | 'badge' | 'breadcrumb' | 'bubble' | 'button' | 'button-group' | 'calendar' | 'card' | 'carousel' | 'chart' | 'checkbox' | 'collapsible' | 'combobox' | 'command' | 'context-menu' | 'date-picker' | 'dialog' | 'drawer' | 'dropdown-menu' | 'empty' | 'field' | 'hover-card' | 'input' | 'input-group' | 'input-otp' | 'item' | 'kbd' | 'label' | 'marker' | 'menubar' | 'message' | 'message-scroller' | 'native-select' | 'navigation-menu' | 'pagination' | 'popover' | 'progress' | 'questionnaire' | 'radio-group' | 'resizable' | 'scroll-area' | 'select' | 'separator' | 'sheet' | 'sidebar' | 'skeleton' | 'slider' | 'sonner' | 'spinner' | 'switch' | 'table' | 'tabs' | 'textarea' | 'toggle' | 'toggle-group' | 'tooltip' | 'typography' | 'utils';
1
+ export type Primitive = 'accordion' | 'alert' | 'alert-dialog' | 'aspect-ratio' | 'attachment' | 'autocomplete' | 'avatar' | 'badge' | 'breadcrumb' | 'bubble' | 'button' | 'button-group' | 'calendar' | 'card' | 'carousel' | 'chart' | 'checkbox' | 'code-block' | 'collapsible' | 'combobox' | 'command' | 'context-menu' | 'date-picker' | 'dialog' | 'drawer' | 'dropdown-menu' | 'empty' | 'field' | 'hover-card' | 'input' | 'input-group' | 'input-otp' | 'item' | 'kbd' | 'label' | 'marker' | 'menubar' | 'message' | 'message-scroller' | 'native-select' | 'navigation-menu' | 'pagination' | 'popover' | 'progress' | 'questionnaire' | 'radio-group' | 'resizable' | 'scroll-area' | 'select' | 'separator' | 'sheet' | 'sidebar' | 'skeleton' | 'slider' | 'sonner' | 'spinner' | 'switch' | 'table' | 'tabs' | 'textarea' | 'toggle' | 'toggle-group' | 'tooltip' | 'trace' | 'typography' | 'utils';
@@ -1477,4 +1477,82 @@
1477
1477
  .spartan-menu-translucent {
1478
1478
  @apply bg-popover/70 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground! relative animate-none! before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150;
1479
1479
  }
1480
+
1481
+ /* MARK: Trace */
1482
+ .spartan-trace {
1483
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/30 gap-3 *:has-[>[data-slot=trace-line]]:rounded-lg *:has-[>[data-slot=trace-line]]:focus-visible:ring-3;
1484
+ }
1485
+
1486
+ .spartan-trace-collapsible-trigger {
1487
+ @apply focus-visible:ring-ring/30 gap-1 rounded-lg focus-visible:ring-3;
1488
+ }
1489
+
1490
+ .spartan-trace-line {
1491
+ @apply gap-2 text-sm;
1492
+ }
1493
+
1494
+ .spartan-trace-icon {
1495
+ @apply size-4 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [[data-slot=trace-title]~&]:-ml-1;
1496
+ }
1497
+
1498
+ .spartan-trace-collapsible-content {
1499
+ @apply duration-200;
1500
+ }
1501
+
1502
+ .spartan-trace-collapsible-content-inner {
1503
+ @apply mt-2.5 mb-1 ml-[calc(--spacing(2)-1px)] border-l pr-1 pl-4 leading-relaxed;
1504
+ }
1505
+
1506
+ /* MARK: Code Block */
1507
+ .spartan-code-block {
1508
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/30 rounded-2xl text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-3 data-[size=sm]:rounded-xl data-[size=sm]:text-xs;
1509
+ }
1510
+
1511
+ .spartan-code-block-variant-default {
1512
+ @apply bg-muted text-foreground ring-foreground/5 dark:ring-foreground/10 ring-1;
1513
+ }
1514
+
1515
+ .spartan-code-block-variant-destructive {
1516
+ @apply bg-destructive/5 text-destructive ring-destructive/15 dark:bg-destructive/10 dark:ring-destructive/20 ring-1;
1517
+ }
1518
+
1519
+ .spartan-code-block-header {
1520
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-5 pt-5 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pt-3;
1521
+ }
1522
+
1523
+ .spartan-code-block-footer {
1524
+ @apply text-muted-foreground gap-2 px-5 pb-5 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pb-3;
1525
+ }
1526
+
1527
+ .spartan-code-block-title {
1528
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-sm font-medium group-data-[size=sm]/code-block:text-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group-data-[size=sm]/code-block:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
1529
+ }
1530
+
1531
+ .spartan-code-block-actions {
1532
+ @apply *:data-[slot=button]:hover:bg-foreground/5 dark:*:data-[slot=button]:hover:bg-foreground/10 [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-4 [[data-slot=code-block]>&]:top-4 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-2 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:*:[button]:ring-1;
1533
+ }
1534
+
1535
+ .spartan-code-block-copy-button {
1536
+ @apply hover:bg-foreground/5 dark:hover:bg-foreground/10;
1537
+ }
1538
+
1539
+ .spartan-code-block-content {
1540
+ @apply px-5 py-5 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:py-3 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
1541
+ }
1542
+
1543
+ .spartan-code-block-line {
1544
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-5 px-5 group-data-[size=sm]/code-block:-mx-3 group-data-[size=sm]/code-block:px-3 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
1545
+ }
1546
+
1547
+ .spartan-code-block-line-variant-highlighted {
1548
+ @apply bg-foreground/5;
1549
+ }
1550
+
1551
+ .spartan-code-block-line-variant-added {
1552
+ @apply bg-foreground/5 after:content-['+'];
1553
+ }
1554
+
1555
+ .spartan-code-block-line-variant-removed {
1556
+ @apply bg-destructive/10 after:text-destructive after:content-['−'];
1557
+ }
1480
1558
  }
@@ -1398,6 +1398,31 @@
1398
1398
  @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-none px-3 py-1.5 text-xs;
1399
1399
  }
1400
1400
 
1401
+ /* MARK: Trace */
1402
+ .spartan-trace {
1403
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 gap-2 *:has-[>[data-slot=trace-line]]:rounded-none *:has-[>[data-slot=trace-line]]:focus-visible:ring-1;
1404
+ }
1405
+
1406
+ .spartan-trace-collapsible-trigger {
1407
+ @apply focus-visible:ring-ring/50 gap-1 rounded-none focus-visible:ring-1;
1408
+ }
1409
+
1410
+ .spartan-trace-line {
1411
+ @apply gap-2 text-xs;
1412
+ }
1413
+
1414
+ .spartan-trace-icon {
1415
+ @apply size-3.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] [[data-slot=trace-title]~&]:-ml-1;
1416
+ }
1417
+
1418
+ .spartan-trace-collapsible-content {
1419
+ @apply duration-200;
1420
+ }
1421
+
1422
+ .spartan-trace-collapsible-content-inner {
1423
+ @apply mt-2 mb-1 ml-[calc(--spacing(1.75)-1px)] border-l pr-1 pl-3.75 leading-relaxed;
1424
+ }
1425
+
1401
1426
  /* MARK: Input Group */
1402
1427
  .spartan-input-group {
1403
1428
  @apply border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 h-8 rounded-none border transition-colors in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-1 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-1 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5;
@@ -1454,4 +1479,53 @@
1454
1479
  .spartan-input-group-textarea {
1455
1480
  @apply rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent dark:disabled:bg-transparent;
1456
1481
  }
1482
+
1483
+ /* MARK: Code Block */
1484
+ .spartan-code-block {
1485
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/50 rounded-none text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-1 data-[size=sm]:text-xs;
1486
+ }
1487
+
1488
+ .spartan-code-block-variant-default {
1489
+ @apply border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border;
1490
+ }
1491
+
1492
+ .spartan-code-block-variant-destructive {
1493
+ @apply border-destructive/30 text-destructive dark:border-destructive/40 border;
1494
+ }
1495
+
1496
+ .spartan-code-block-header {
1497
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-3 pt-3 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:pt-2;
1498
+ }
1499
+
1500
+ .spartan-code-block-footer {
1501
+ @apply text-muted-foreground gap-2 px-3 pb-3 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:pb-2;
1502
+ }
1503
+
1504
+ .spartan-code-block-title {
1505
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-xs font-medium [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
1506
+ }
1507
+
1508
+ .spartan-code-block-actions {
1509
+ @apply [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-2 [[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-1.5 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-1.5 [[data-slot=code-block]>&]:*:[button]:ring-1;
1510
+ }
1511
+
1512
+ .spartan-code-block-content {
1513
+ @apply px-3 py-3 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:py-2 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
1514
+ }
1515
+
1516
+ .spartan-code-block-line {
1517
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-3 px-3 group-data-[size=sm]/code-block:-mx-2 group-data-[size=sm]/code-block:px-2 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
1518
+ }
1519
+
1520
+ .spartan-code-block-line-variant-highlighted {
1521
+ @apply bg-muted;
1522
+ }
1523
+
1524
+ .spartan-code-block-line-variant-added {
1525
+ @apply bg-muted after:content-['+'];
1526
+ }
1527
+
1528
+ .spartan-code-block-line-variant-removed {
1529
+ @apply bg-destructive/10 after:text-destructive after:content-['−'];
1530
+ }
1457
1531
  }
@@ -1420,6 +1420,31 @@
1420
1420
  @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-2xl px-3 py-1.5 text-xs **:data-[slot=kbd]:rounded-4xl;
1421
1421
  }
1422
1422
 
1423
+ /* MARK: Trace */
1424
+ .spartan-trace {
1425
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 gap-3 *:has-[>[data-slot=trace-line]]:rounded-lg *:has-[>[data-slot=trace-line]]:focus-visible:ring-[3px];
1426
+ }
1427
+
1428
+ .spartan-trace-collapsible-trigger {
1429
+ @apply focus-visible:ring-ring/50 gap-1 rounded-lg focus-visible:ring-[3px];
1430
+ }
1431
+
1432
+ .spartan-trace-line {
1433
+ @apply gap-2 text-sm;
1434
+ }
1435
+
1436
+ .spartan-trace-icon {
1437
+ @apply size-4 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [[data-slot=trace-title]~&]:-ml-1;
1438
+ }
1439
+
1440
+ .spartan-trace-collapsible-content {
1441
+ @apply duration-200;
1442
+ }
1443
+
1444
+ .spartan-trace-collapsible-content-inner {
1445
+ @apply mt-2.5 mb-1 ml-[calc(--spacing(2)-1px)] border-l pr-1 pl-4 leading-relaxed;
1446
+ }
1447
+
1423
1448
  /* MARK: Input Group */
1424
1449
  .spartan-input-group {
1425
1450
  @apply border-input bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 h-9 rounded-4xl border transition-colors in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-2xl has-data-[align=block-start]:rounded-2xl has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-3 has-[textarea]:rounded-xl has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5;
@@ -1472,4 +1497,53 @@
1472
1497
  .spartan-input-group-textarea {
1473
1498
  @apply rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent;
1474
1499
  }
1500
+
1501
+ /* MARK: Code Block */
1502
+ .spartan-code-block {
1503
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/50 rounded-xl text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-[3px] data-[size=sm]:rounded-lg data-[size=sm]:text-xs;
1504
+ }
1505
+
1506
+ .spartan-code-block-variant-default {
1507
+ @apply border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border;
1508
+ }
1509
+
1510
+ .spartan-code-block-variant-destructive {
1511
+ @apply border-destructive/30 text-destructive dark:border-destructive/40 border;
1512
+ }
1513
+
1514
+ .spartan-code-block-header {
1515
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-4 pt-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pt-3;
1516
+ }
1517
+
1518
+ .spartan-code-block-footer {
1519
+ @apply text-muted-foreground gap-2 px-4 pb-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pb-3;
1520
+ }
1521
+
1522
+ .spartan-code-block-title {
1523
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-sm font-medium group-data-[size=sm]/code-block:text-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group-data-[size=sm]/code-block:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
1524
+ }
1525
+
1526
+ .spartan-code-block-actions {
1527
+ @apply [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-3 [[data-slot=code-block]>&]:top-3 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-2 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:*:[button]:ring-1;
1528
+ }
1529
+
1530
+ .spartan-code-block-content {
1531
+ @apply px-4 py-4 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:py-3 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
1532
+ }
1533
+
1534
+ .spartan-code-block-line {
1535
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-4 px-4 group-data-[size=sm]/code-block:-mx-3 group-data-[size=sm]/code-block:px-3 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
1536
+ }
1537
+
1538
+ .spartan-code-block-line-variant-highlighted {
1539
+ @apply bg-muted;
1540
+ }
1541
+
1542
+ .spartan-code-block-line-variant-added {
1543
+ @apply bg-muted after:content-['+'];
1544
+ }
1545
+
1546
+ .spartan-code-block-line-variant-removed {
1547
+ @apply bg-destructive/10 after:text-destructive after:content-['−'];
1548
+ }
1475
1549
  }
@@ -1419,6 +1419,30 @@
1419
1419
  .spartan-tooltip-content {
1420
1420
  @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs **:data-[slot=kbd]:rounded-md;
1421
1421
  }
1422
+ /* MARK: Trace */
1423
+ .spartan-trace {
1424
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/30 gap-1.5 *:has-[>[data-slot=trace-line]]:rounded-sm *:has-[>[data-slot=trace-line]]:focus-visible:ring-2;
1425
+ }
1426
+
1427
+ .spartan-trace-collapsible-trigger {
1428
+ @apply focus-visible:ring-ring/30 gap-1 rounded-sm focus-visible:ring-2;
1429
+ }
1430
+
1431
+ .spartan-trace-line {
1432
+ @apply gap-2 text-xs/relaxed;
1433
+ }
1434
+
1435
+ .spartan-trace-icon {
1436
+ @apply size-3.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] [[data-slot=trace-title]~&]:-ml-1;
1437
+ }
1438
+
1439
+ .spartan-trace-collapsible-content {
1440
+ @apply duration-200;
1441
+ }
1442
+
1443
+ .spartan-trace-collapsible-content-inner {
1444
+ @apply mt-1.5 mb-1 ml-[calc(--spacing(1.75)-1px)] border-l pr-1 pl-3.75;
1445
+ }
1422
1446
 
1423
1447
  /* MARK: Input Group */
1424
1448
  .spartan-input-group {
@@ -1476,4 +1500,53 @@
1476
1500
  .spartan-input-group-textarea {
1477
1501
  @apply rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent;
1478
1502
  }
1503
+
1504
+ /* MARK: Code Block */
1505
+ .spartan-code-block {
1506
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/30 rounded-md text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-2 data-[size=sm]:text-xs;
1507
+ }
1508
+
1509
+ .spartan-code-block-variant-default {
1510
+ @apply border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border;
1511
+ }
1512
+
1513
+ .spartan-code-block-variant-destructive {
1514
+ @apply border-destructive/30 text-destructive dark:border-destructive/40 border;
1515
+ }
1516
+
1517
+ .spartan-code-block-header {
1518
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-3 pt-3 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:pt-2;
1519
+ }
1520
+
1521
+ .spartan-code-block-footer {
1522
+ @apply text-muted-foreground gap-2 px-3 pb-3 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:pb-2;
1523
+ }
1524
+
1525
+ .spartan-code-block-title {
1526
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-xs font-medium [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
1527
+ }
1528
+
1529
+ .spartan-code-block-actions {
1530
+ @apply [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-2 [[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-1.5 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-1.5 [[data-slot=code-block]>&]:*:[button]:ring-1;
1531
+ }
1532
+
1533
+ .spartan-code-block-content {
1534
+ @apply px-3 py-3 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-2 group-data-[size=sm]/code-block:py-2 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
1535
+ }
1536
+
1537
+ .spartan-code-block-line {
1538
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-3 px-3 group-data-[size=sm]/code-block:-mx-2 group-data-[size=sm]/code-block:px-2 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
1539
+ }
1540
+
1541
+ .spartan-code-block-line-variant-highlighted {
1542
+ @apply bg-muted;
1543
+ }
1544
+
1545
+ .spartan-code-block-line-variant-added {
1546
+ @apply bg-muted after:content-['+'];
1547
+ }
1548
+
1549
+ .spartan-code-block-line-variant-removed {
1550
+ @apply bg-destructive/10 after:text-destructive after:content-['−'];
1551
+ }
1479
1552
  }
@@ -355,6 +355,55 @@
355
355
  @apply [&>ng-icon]:text-[length:--spacing(3.5)];
356
356
  }
357
357
 
358
+ /* MARK: Code Block */
359
+ .spartan-code-block {
360
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/50 rounded-lg text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-3 data-[size=sm]:text-xs;
361
+ }
362
+
363
+ .spartan-code-block-variant-default {
364
+ @apply border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border;
365
+ }
366
+
367
+ .spartan-code-block-variant-destructive {
368
+ @apply border-destructive/30 text-destructive dark:border-destructive/40 border;
369
+ }
370
+
371
+ .spartan-code-block-header {
372
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-3 pt-3 group-data-[size=sm]/code-block:px-2.5 group-data-[size=sm]/code-block:pt-2.5;
373
+ }
374
+
375
+ .spartan-code-block-footer {
376
+ @apply text-muted-foreground gap-2 px-3 pb-3 group-data-[size=sm]/code-block:px-2.5 group-data-[size=sm]/code-block:pb-2.5;
377
+ }
378
+
379
+ .spartan-code-block-title {
380
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-sm font-medium group-data-[size=sm]/code-block:text-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
381
+ }
382
+
383
+ .spartan-code-block-actions {
384
+ @apply [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-2 [[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-1.5 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-1.5 [[data-slot=code-block]>&]:*:[button]:ring-1;
385
+ }
386
+
387
+ .spartan-code-block-content {
388
+ @apply px-3 py-3 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-2.5 group-data-[size=sm]/code-block:py-2.5 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
389
+ }
390
+
391
+ .spartan-code-block-line {
392
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-3 px-3 group-data-[size=sm]/code-block:-mx-2.5 group-data-[size=sm]/code-block:px-2.5 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
393
+ }
394
+
395
+ .spartan-code-block-line-variant-highlighted {
396
+ @apply bg-muted;
397
+ }
398
+
399
+ .spartan-code-block-line-variant-added {
400
+ @apply bg-muted after:content-['+'];
401
+ }
402
+
403
+ .spartan-code-block-line-variant-removed {
404
+ @apply bg-destructive/10 after:text-destructive after:content-['-'];
405
+ }
406
+
358
407
  /* MARK: Combobox */
359
408
  .spartan-combobox-content {
360
409
  @apply bg-popover text-popover-foreground data-open:animate-in **:has-[[data-slot=input-group-control]:focus-visible]:border-input data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 **:data-[slot=input-group]:bg-input/30 **:data-[slot=input-group]:border-input/30 max-h-72 min-w-36 overflow-hidden rounded-lg shadow-md ring-1 duration-100 **:has-[[data-slot=input-group-control]:focus-visible]:ring-0 **:data-[slot=input-group]:m-1 **:data-[slot=input-group]:mb-0 **:data-[slot=input-group]:h-8 **:data-[slot=input-group]:shadow-none;
@@ -1450,6 +1499,31 @@
1450
1499
  @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs;
1451
1500
  }
1452
1501
 
1502
+ /* MARK: Trace */
1503
+ .spartan-trace {
1504
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 gap-2 *:has-[>[data-slot=trace-line]]:rounded-md *:has-[>[data-slot=trace-line]]:focus-visible:ring-3;
1505
+ }
1506
+
1507
+ .spartan-trace-collapsible-trigger {
1508
+ @apply focus-visible:ring-ring/50 gap-1 rounded-md focus-visible:ring-3;
1509
+ }
1510
+
1511
+ .spartan-trace-line {
1512
+ @apply gap-2 text-sm;
1513
+ }
1514
+
1515
+ .spartan-trace-icon {
1516
+ @apply size-4 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [[data-slot=trace-title]~&]:-ml-1;
1517
+ }
1518
+
1519
+ .spartan-trace-collapsible-content {
1520
+ @apply duration-200;
1521
+ }
1522
+
1523
+ .spartan-trace-collapsible-content-inner {
1524
+ @apply mt-2 mb-1 ml-[calc(--spacing(2)-1px)] border-l pr-1 pl-4 leading-relaxed;
1525
+ }
1526
+
1453
1527
  /* MARK: Input Group */
1454
1528
  .spartan-input-group {
1455
1529
  @apply border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 has-[[data-slot=input-group-control]:disabled]:bg-input/50 dark:has-[[data-slot=input-group-control]:disabled]:bg-input/80 h-8 rounded-lg border transition-colors in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:disabled]:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5;
@@ -325,6 +325,55 @@
325
325
  @apply [&>ng-icon]:text-[length:--spacing(3.5)];
326
326
  }
327
327
 
328
+ /* MARK: Code Block */
329
+ .spartan-code-block {
330
+ @apply has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/50 rounded-lg text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-3 data-[size=sm]:text-xs;
331
+ }
332
+
333
+ .spartan-code-block-variant-default {
334
+ @apply border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border;
335
+ }
336
+
337
+ .spartan-code-block-variant-destructive {
338
+ @apply border-destructive/30 text-destructive dark:border-destructive/40 border;
339
+ }
340
+
341
+ .spartan-code-block-header {
342
+ @apply text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-4 pt-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pt-3;
343
+ }
344
+
345
+ .spartan-code-block-footer {
346
+ @apply text-muted-foreground gap-2 px-4 pb-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pb-3;
347
+ }
348
+
349
+ .spartan-code-block-title {
350
+ @apply text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-sm font-medium group-data-[size=sm]/code-block:text-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group-data-[size=sm]/code-block:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5;
351
+ }
352
+
353
+ .spartan-code-block-actions {
354
+ @apply [[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-3 [[data-slot=code-block]>&]:top-3 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-2 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:*:[button]:ring-1;
355
+ }
356
+
357
+ .spartan-code-block-content {
358
+ @apply px-4 py-4 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:py-3 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5;
359
+ }
360
+
361
+ .spartan-code-block-line {
362
+ @apply before:text-muted-foreground after:text-muted-foreground -mx-4 px-4 group-data-[size=sm]/code-block:-mx-3 group-data-[size=sm]/code-block:px-3 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3;
363
+ }
364
+
365
+ .spartan-code-block-line-variant-highlighted {
366
+ @apply bg-muted;
367
+ }
368
+
369
+ .spartan-code-block-line-variant-added {
370
+ @apply bg-muted after:content-['+'];
371
+ }
372
+
373
+ .spartan-code-block-line-variant-removed {
374
+ @apply bg-destructive/10 after:text-destructive after:content-['−'];
375
+ }
376
+
328
377
  /* MARK: Combobox */
329
378
  .spartan-combobox-content {
330
379
  @apply bg-popover text-popover-foreground data-open:animate-in **:has-[[data-slot=input-group-control]:focus-visible]:border-input data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 **:data-[slot=input-group]:bg-input/30 **:data-[slot=input-group]:border-input/30 max-h-72 min-w-36 overflow-hidden rounded-md shadow-md ring-1 duration-100 **:has-[[data-slot=input-group-control]:focus-visible]:ring-0 **:data-[slot=input-group]:m-1 **:data-[slot=input-group]:mb-0 **:data-[slot=input-group]:h-8 **:data-[slot=input-group]:shadow-none;
@@ -1562,6 +1611,31 @@
1562
1611
  @apply data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2;
1563
1612
  }
1564
1613
 
1614
+ /* MARK: Trace */
1615
+ .spartan-trace {
1616
+ @apply *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 gap-2 *:has-[>[data-slot=trace-line]]:rounded-md *:has-[>[data-slot=trace-line]]:focus-visible:ring-3;
1617
+ }
1618
+
1619
+ .spartan-trace-collapsible-trigger {
1620
+ @apply focus-visible:ring-ring/50 gap-1 rounded-md focus-visible:ring-3;
1621
+ }
1622
+
1623
+ .spartan-trace-line {
1624
+ @apply gap-2 text-sm;
1625
+ }
1626
+
1627
+ .spartan-trace-icon {
1628
+ @apply size-4 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [[data-slot=trace-title]~&]:-ml-1;
1629
+ }
1630
+
1631
+ .spartan-trace-collapsible-content {
1632
+ @apply duration-200;
1633
+ }
1634
+
1635
+ .spartan-trace-collapsible-content-inner {
1636
+ @apply mt-2 mb-1 ml-[calc(--spacing(2)-1px)] border-l pr-1 pl-4 leading-relaxed;
1637
+ }
1638
+
1565
1639
  /* MARK: Input Group */
1566
1640
  .spartan-input-group {
1567
1641
  @apply border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5;