@deepgram/styles 0.2.11 → 0.2.13

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 (142) hide show
  1. package/README.md +285 -317
  2. package/design-system.yaml +3115 -3336
  3. package/dist/deepgram.css +1 -1
  4. package/dist/deepgram.expanded.css +741 -880
  5. package/dist/react/ActionGroup.d.ts +4 -0
  6. package/dist/react/ActionGroup.js +9 -0
  7. package/dist/react/Alert.d.ts +34 -0
  8. package/dist/react/Alert.js +71 -0
  9. package/dist/react/Btn.d.ts +11 -0
  10. package/dist/react/Btn.js +16 -0
  11. package/dist/react/Card.d.ts +26 -0
  12. package/dist/react/Card.js +51 -0
  13. package/dist/react/CardHeading.d.ts +4 -0
  14. package/dist/react/CardHeading.js +9 -0
  15. package/dist/react/CardHeadings.d.ts +7 -0
  16. package/dist/react/CardHeadings.js +16 -0
  17. package/dist/react/Checkbox.d.ts +4 -0
  18. package/dist/react/Checkbox.js +9 -0
  19. package/dist/react/CheckboxDescription.d.ts +4 -0
  20. package/dist/react/CheckboxDescription.js +9 -0
  21. package/dist/react/CheckboxGroup.d.ts +4 -0
  22. package/dist/react/CheckboxGroup.js +9 -0
  23. package/dist/react/CheckboxLabel.d.ts +4 -0
  24. package/dist/react/CheckboxLabel.js +9 -0
  25. package/dist/react/CodeBlock.d.ts +7 -0
  26. package/dist/react/CodeBlock.js +12 -0
  27. package/dist/react/Columns.d.ts +25 -0
  28. package/dist/react/Columns.js +44 -0
  29. package/dist/react/ConstrainWidth.d.ts +4 -0
  30. package/dist/react/ConstrainWidth.js +9 -0
  31. package/dist/react/DragDropZone.d.ts +17 -0
  32. package/dist/react/DragDropZone.js +38 -0
  33. package/dist/react/Footer.d.ts +10 -0
  34. package/dist/react/Footer.js +23 -0
  35. package/dist/react/FormError.d.ts +4 -0
  36. package/dist/react/FormError.js +9 -0
  37. package/dist/react/FormField.d.ts +4 -0
  38. package/dist/react/FormField.js +9 -0
  39. package/dist/react/FormHelper.d.ts +4 -0
  40. package/dist/react/FormHelper.js +9 -0
  41. package/dist/react/FormLabel.d.ts +4 -0
  42. package/dist/react/FormLabel.js +9 -0
  43. package/dist/react/GridMobileStack.d.ts +4 -0
  44. package/dist/react/GridMobileStack.js +9 -0
  45. package/dist/react/Hero.d.ts +25 -0
  46. package/dist/react/Hero.js +58 -0
  47. package/dist/react/Icon.d.ts +5 -0
  48. package/dist/react/Icon.js +10 -0
  49. package/dist/react/Input.d.ts +6 -0
  50. package/dist/react/Input.js +11 -0
  51. package/dist/react/ItemTitle.d.ts +4 -0
  52. package/dist/react/ItemTitle.js +9 -0
  53. package/dist/react/Newsletter.d.ts +8 -0
  54. package/dist/react/Newsletter.js +17 -0
  55. package/dist/react/Option.d.ts +4 -0
  56. package/dist/react/Option.js +9 -0
  57. package/dist/react/PageHeading.d.ts +10 -0
  58. package/dist/react/PageHeading.js +23 -0
  59. package/dist/react/PageHeadings.d.ts +13 -0
  60. package/dist/react/PageHeadings.js +30 -0
  61. package/dist/react/Prose.d.ts +6 -0
  62. package/dist/react/Prose.js +11 -0
  63. package/dist/react/Radio.d.ts +4 -0
  64. package/dist/react/Radio.js +9 -0
  65. package/dist/react/RadioDescription.d.ts +7 -0
  66. package/dist/react/RadioDescription.js +16 -0
  67. package/dist/react/RadioGroup.d.ts +4 -0
  68. package/dist/react/RadioGroup.js +9 -0
  69. package/dist/react/RadioLabel.d.ts +4 -0
  70. package/dist/react/RadioLabel.js +9 -0
  71. package/dist/react/Section.d.ts +9 -0
  72. package/dist/react/Section.js +14 -0
  73. package/dist/react/SectionHeading.d.ts +4 -0
  74. package/dist/react/SectionHeading.js +9 -0
  75. package/dist/react/Select.d.ts +4 -0
  76. package/dist/react/Select.js +9 -0
  77. package/dist/react/Spinner.d.ts +7 -0
  78. package/dist/react/Spinner.js +16 -0
  79. package/dist/react/Status.d.ts +12 -0
  80. package/dist/react/Status.js +17 -0
  81. package/dist/react/TextUtilities.d.ts +4 -0
  82. package/dist/react/TextUtilities.js +9 -0
  83. package/dist/react/Textarea.d.ts +4 -0
  84. package/dist/react/Textarea.js +9 -0
  85. package/dist/react/Toggle.d.ts +4 -0
  86. package/dist/react/Toggle.js +9 -0
  87. package/dist/react/ToggleGroup.d.ts +4 -0
  88. package/dist/react/ToggleGroup.js +9 -0
  89. package/dist/react/ToggleLabel.d.ts +4 -0
  90. package/dist/react/ToggleLabel.js +9 -0
  91. package/dist/react/index.d.ts +43 -0
  92. package/dist/react/index.js +43 -0
  93. package/dist/utils.d.ts +16 -0
  94. package/dist/utils.js +50 -0
  95. package/lib/deepgram.css +531 -486
  96. package/lib/tailwind-theme.css +0 -1
  97. package/package.json +17 -2
  98. package/src/react/ActionGroup.tsx +14 -0
  99. package/src/react/Alert.tsx +130 -0
  100. package/src/react/Btn.tsx +28 -0
  101. package/src/react/Card.tsx +93 -0
  102. package/src/react/CardHeading.tsx +14 -0
  103. package/src/react/CardHeadings.tsx +27 -0
  104. package/src/react/Checkbox.tsx +14 -0
  105. package/src/react/CheckboxDescription.tsx +14 -0
  106. package/src/react/CheckboxGroup.tsx +14 -0
  107. package/src/react/CheckboxLabel.tsx +14 -0
  108. package/src/react/CodeBlock.tsx +20 -0
  109. package/src/react/Columns.tsx +82 -0
  110. package/src/react/ConstrainWidth.tsx +14 -0
  111. package/src/react/DragDropZone.tsx +68 -0
  112. package/src/react/Footer.tsx +40 -0
  113. package/src/react/FormError.tsx +14 -0
  114. package/src/react/FormField.tsx +14 -0
  115. package/src/react/FormHelper.tsx +14 -0
  116. package/src/react/FormLabel.tsx +14 -0
  117. package/src/react/GridMobileStack.tsx +14 -0
  118. package/src/react/Hero.tsx +105 -0
  119. package/src/react/Icon.tsx +16 -0
  120. package/src/react/Input.tsx +18 -0
  121. package/src/react/ItemTitle.tsx +14 -0
  122. package/src/react/Newsletter.tsx +29 -0
  123. package/src/react/Option.tsx +14 -0
  124. package/src/react/PageHeading.tsx +40 -0
  125. package/src/react/PageHeadings.tsx +53 -0
  126. package/src/react/Prose.tsx +18 -0
  127. package/src/react/Radio.tsx +14 -0
  128. package/src/react/RadioDescription.tsx +27 -0
  129. package/src/react/RadioGroup.tsx +14 -0
  130. package/src/react/RadioLabel.tsx +14 -0
  131. package/src/react/Section.tsx +24 -0
  132. package/src/react/SectionHeading.tsx +14 -0
  133. package/src/react/Select.tsx +14 -0
  134. package/src/react/Spinner.tsx +27 -0
  135. package/src/react/Status.tsx +30 -0
  136. package/src/react/TextUtilities.tsx +14 -0
  137. package/src/react/Textarea.tsx +14 -0
  138. package/src/react/Toggle.tsx +14 -0
  139. package/src/react/ToggleGroup.tsx +14 -0
  140. package/src/react/ToggleLabel.tsx +14 -0
  141. package/src/react/index.ts +43 -0
  142. package/src/utils.ts +60 -0
package/lib/deepgram.css CHANGED
@@ -54,7 +54,7 @@
54
54
  }
55
55
 
56
56
  .dg-btn--ghost {
57
- @apply border border-dg-slate bg-transparent text-dg-solid;
57
+ @apply border border-dg-slate bg-dg-on-solid text-dg-solid;
58
58
  }
59
59
 
60
60
  .dg-btn--ghost:hover {
@@ -62,7 +62,7 @@
62
62
  }
63
63
 
64
64
  .dg-btn--danger-ghost {
65
- @apply border border-dg-danger bg-transparent text-dg-solid;
65
+ @apply border border-dg-danger bg-dg-on-solid text-dg-solid;
66
66
  }
67
67
 
68
68
  .dg-btn--danger-ghost:hover {
@@ -73,10 +73,6 @@
73
73
  @apply px-2 size-12;
74
74
  }
75
75
 
76
- .dg-btn--icon-only.dg-btn--sm {
77
- @apply size-6;
78
- }
79
-
80
76
  .dg-btn--collapse {
81
77
  @apply inline-flex;
82
78
  }
@@ -87,36 +83,42 @@
87
83
  }
88
84
  }
89
85
 
86
+ .dg-btn--icon-only.dg-btn--sm {
87
+ @apply size-6;
88
+ }
89
+
90
90
  .dg-btn i, .dg-btn svg {
91
91
  flex-shrink: 0;
92
92
  }
93
93
 
94
- /* Secondary Button */
95
-
96
- /* Ghost Button */
97
-
98
- /* Danger Ghost Button */
94
+ /* Button Group */
99
95
 
100
- /* Icon Button */
96
+ .dg-action-group {
97
+ @apply inline-flex flex-wrap gap-0;
98
+ }
101
99
 
102
- /* Small Button */
100
+ .dg-action-group > .dg-btn:not(:first-child) {
101
+ @apply rounded-l-none border-l-0;
102
+ }
103
103
 
104
- /* Collapse Button */
104
+ .dg-action-group > .dg-btn:not(.dg-btn--primary):not(:last-child) {
105
+ @apply rounded-r-none;
106
+ }
105
107
 
106
- /* Button Group */
108
+ .dg-action-group > .dg-btn--primary:not(:last-child) {
109
+ @apply rounded-r-none;
110
+ }
107
111
 
108
- .dg-action-group {
109
- @apply flex flex-wrap justify-center gap-4;
112
+ .dg-action-group > .dg-btn--primary:not(:first-child):not(:last-child) {
113
+ box-shadow: none;
110
114
  }
111
115
 
112
- @media (max-width: 640px) {
113
- .dg-action-group {
114
- @apply flex-col items-stretch;
115
- }
116
+ .dg-action-group > .dg-btn--primary:first-child:not(:last-child) {
117
+ box-shadow: color-mix(in srgb, var(--dg-secondary, #149afb) 20%, transparent) -0.375rem 0 0.9375rem 0;
118
+ }
116
119
 
117
- .dg-action-group .dg-btn {
118
- @apply w-full;
119
- }
120
+ .dg-action-group > .dg-btn--primary:last-child:not(:first-child) {
121
+ box-shadow: color-mix(in srgb, var(--dg-primary, #13ef95) 20%, transparent) 0.375rem 0 0.9375rem 0;
120
122
  }
121
123
 
122
124
  /* Section */
@@ -178,21 +180,14 @@
178
180
  padding-top: 2rem;
179
181
  }
180
182
 
181
- .dg-section--fieldset .dg-section-heading {
182
- @apply absolute bg-dg-background text-dg-muted uppercase tracking-wide font-semibold;
183
- @apply text-base px-2 m-0;
184
- top: -0.75rem;
185
- left: 1rem;
186
- }
187
-
188
183
  @media (min-width: 640px) {
189
184
  .dg-section--fieldset {
190
185
  padding-top: 2.5rem;
191
186
  }
187
+ }
192
188
 
193
- .dg-section--fieldset .dg-section-heading {
194
- font-size: 1.125rem;
195
- }
189
+ .dg-section--fieldset .dg-section-heading {
190
+ font-size: 1.125rem;
196
191
  }
197
192
 
198
193
  /* Card */
@@ -261,28 +256,6 @@
261
256
  @apply border-dg-slate;
262
257
  }
263
258
 
264
- .dg-card--selectable:has(input[type="radio"]:checked) {
265
- @apply border-dg-primary;
266
- background: color-mix(in srgb, var(--dg-primary) 5%, transparent);
267
- }
268
-
269
- .dg-sr-only {
270
- @apply sr-only;
271
- }
272
-
273
- .dg-card--selectable input[type="radio"] {
274
- @apply sr-only;
275
- }
276
-
277
- .dg-card--selectable__indicator {
278
- @apply hidden;
279
- }
280
-
281
- .dg-card--selectable__icon {
282
- @apply text-dg-text;
283
- margin-right: 0.5rem;
284
- }
285
-
286
259
  .dg-card--selectable__content {
287
260
  @apply flex-1 flex flex-col gap-1;
288
261
  }
@@ -330,20 +303,6 @@
330
303
  @apply border-dg-slate;
331
304
  }
332
305
 
333
- .dg-card--file-upload:has(input[type="checkbox"]:checked) {
334
- @apply border-dg-primary border-solid;
335
- background: color-mix(in srgb, var(--dg-primary) 5%, transparent);
336
- }
337
-
338
- .dg-card--file-upload input[type="file"], .dg-card--file-upload input[type="checkbox"] {
339
- @apply sr-only;
340
- }
341
-
342
- .dg-card--file-upload__icon {
343
- @apply text-dg-text;
344
- margin-right: 0.5rem;
345
- }
346
-
347
306
  .dg-card--file-upload__content {
348
307
  @apply flex-1 flex flex-col gap-1;
349
308
  }
@@ -387,44 +346,8 @@
387
346
  border-radius: 0.5rem 0.5rem 0 0;
388
347
  }
389
348
 
390
- .dg-card__image img {
391
- @apply w-full h-full object-cover block;
392
- }
393
-
394
- .dg-card__image--small {
395
- @apply h-[7.5rem];
396
- }
397
-
398
- .dg-card__image--medium {
399
- @apply h-[10rem];
400
- }
401
-
402
- .dg-card__image--large {
403
- @apply h-[15rem];
404
- }
405
-
406
- .dg-card__image--aspect-4-3 {
407
- @apply aspect-[4/3] h-auto;
408
- }
409
-
410
349
  .dg-card__icon {
411
- @apply flex items-center p-3 pt-6;
412
- }
413
-
414
- .dg-card__icon i, .dg-card__icon svg {
415
- @apply text-5xl text-dg-primary;
416
- }
417
-
418
- .dg-card__icon--left {
419
- @apply justify-start;
420
- }
421
-
422
- .dg-card__icon--center {
423
- @apply justify-center;
424
- }
425
-
426
- .dg-card__icon--right {
427
- @apply justify-end;
350
+ @apply flex items-center p-3 pt-6 text-5xl text-dg-primary;
428
351
  }
429
352
 
430
353
  @media (min-width: 640px) {
@@ -456,24 +379,100 @@
456
379
  }
457
380
 
458
381
  .dg-card__body {
459
- @apply flex flex-col gap-3 p-3 flex-1;
382
+ @apply flex flex-col gap-3 flex-1;
383
+ }
384
+
385
+ .dg-card__footer {
386
+ @apply flex items-center gap-3 p-3 border-t border-transparent;
387
+ @apply mt-auto;
460
388
  }
461
389
 
462
390
  @media (min-width: 640px) {
463
- .dg-card__body {
391
+ .dg-card__footer {
464
392
  @apply p-4;
465
393
  }
466
394
  }
467
395
 
468
396
  @media (min-width: 1024px) {
469
- .dg-card__body {
470
- @apply px-6 pb-6 pt-0;
397
+ .dg-card__footer {
398
+ @apply p-6;
471
399
  }
472
400
  }
473
401
 
474
- .dg-card__footer {
475
- @apply flex items-center gap-3 p-3 border-t border-transparent;
476
- @apply mt-auto;
402
+ .dg-card--selectable:has(input[type="radio"]:checked) {
403
+ @apply border-dg-primary;
404
+ background: color-mix(in srgb, var(--dg-primary) 5%, transparent);
405
+ }
406
+
407
+ .dg-sr-only {
408
+ @apply sr-only;
409
+ }
410
+
411
+ .dg-card--selectable input[type="radio"] {
412
+ @apply sr-only;
413
+ }
414
+
415
+ .dg-card--selectable__indicator {
416
+ @apply hidden;
417
+ }
418
+
419
+ .dg-card--selectable__icon {
420
+ @apply text-dg-text;
421
+ margin-right: 0.5rem;
422
+ }
423
+
424
+ .dg-card--file-upload:has(input[type="checkbox"]:checked) {
425
+ @apply border-dg-primary border-solid;
426
+ background: color-mix(in srgb, var(--dg-primary) 5%, transparent);
427
+ }
428
+
429
+ .dg-card--file-upload input[type="file"], .dg-card--file-upload input[type="checkbox"] {
430
+ @apply sr-only;
431
+ }
432
+
433
+ .dg-card--file-upload__icon {
434
+ @apply text-dg-text;
435
+ margin-right: 0.5rem;
436
+ }
437
+
438
+ .dg-card__image img {
439
+ @apply w-full h-full object-cover block;
440
+ }
441
+
442
+ .dg-card__image--small {
443
+ @apply h-[7.5rem];
444
+ }
445
+
446
+ .dg-card__image--medium {
447
+ @apply h-[10rem];
448
+ }
449
+
450
+ .dg-card__image--large {
451
+ @apply h-[15rem];
452
+ }
453
+
454
+ .dg-card__image--aspect-4-3 {
455
+ @apply aspect-[4/3] h-auto;
456
+ }
457
+
458
+ .dg-card__icon--left {
459
+ @apply justify-start;
460
+ }
461
+
462
+ .dg-card__icon--center {
463
+ @apply justify-center;
464
+ }
465
+
466
+ .dg-card__icon--right {
467
+ @apply justify-end;
468
+ }
469
+
470
+ .dg-card--structured .dg-card__body {
471
+ @apply p-3;
472
+ }
473
+
474
+ .dg-card__body > :last-child {
475
+ @apply mb-0;
477
476
  }
478
477
 
479
478
  .dg-card__footer--bordered {
@@ -481,14 +480,14 @@
481
480
  }
482
481
 
483
482
  @media (min-width: 640px) {
484
- .dg-card__footer {
483
+ .dg-card--structured .dg-card__body {
485
484
  @apply p-4;
486
485
  }
487
486
  }
488
487
 
489
488
  @media (min-width: 1024px) {
490
- .dg-card__footer {
491
- @apply p-6;
489
+ .dg-card--structured .dg-card__body {
490
+ @apply px-6 pb-6 pt-0;
492
491
  }
493
492
  }
494
493
 
@@ -500,20 +499,10 @@
500
499
  -webkit-overflow-scrolling: touch;
501
500
  }
502
501
 
503
- .dg-code-block pre {
504
- @apply m-0 p-0 font-dg-mono text-xs text-dg-fog whitespace-pre-wrap;
505
- @apply break-words;
506
- line-height: 1.3;
507
- }
508
-
509
502
  @media (min-width: 640px) {
510
503
  .dg-code-block {
511
504
  @apply p-3 my-4 max-h-[15.625rem];
512
505
  }
513
-
514
- .dg-code-block pre {
515
- @apply text-sm;
516
- }
517
506
  }
518
507
 
519
508
  @media (min-width: 1024px) {
@@ -552,21 +541,32 @@
552
541
  @apply overflow-visible max-h-none;
553
542
  }
554
543
 
555
- /* Hero Section */
556
-
557
- .dg-hero-title {
558
- @apply text-center font-bold font-dg-noto text-5xl leading-tight mb-6;
559
- @apply bg-gradient-to-r from-dg-secondary to-dg-primary bg-clip-text;
560
- -webkit-text-fill-color: transparent;
561
- letter-spacing: -0.02em;
562
- font-feature-settings: "liga" 0, "dlig" 0, "hlig" 0, "ordn" 0, "ss09", "kern";
563
- font-kerning: normal;
544
+ .dg-code-block pre {
545
+ @apply text-sm;
564
546
  }
565
547
 
548
+ /* Hero Section */
549
+
566
550
  .dg-hero {
567
551
  @apply w-full text-center py-16 px-4;
568
552
  }
569
553
 
554
+ @media (max-width: 768px) {
555
+ .dg-hero {
556
+ @apply py-12 px-4;
557
+ }
558
+ }
559
+
560
+ @media (max-width: 640px) {
561
+ .dg-hero {
562
+ @apply py-8 px-4;
563
+ }
564
+ }
565
+
566
+ .dg-hero__title {
567
+ @apply text-2xl;
568
+ }
569
+
570
570
  .dg-hero__content {
571
571
  @apply flex flex-col gap-6 mx-auto max-w-[53.125rem];
572
572
  }
@@ -577,12 +577,6 @@
577
577
  @apply cursor-pointer w-fit gap-3 transition-all duration-200;
578
578
  }
579
579
 
580
- .dg-hero__announcement:hover {
581
- @apply border-dg-primary -translate-y-0.5;
582
- background-color: color-mix(in srgb, var(--dg-primary) 10%, transparent);
583
- box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--dg-primary) 15%, transparent);
584
- }
585
-
586
580
  .dg-hero__announcement-text {
587
581
  @apply text-dg-text text-sm font-normal whitespace-nowrap;
588
582
  }
@@ -592,10 +586,6 @@
592
586
  @apply transition-[gap] duration-200;
593
587
  }
594
588
 
595
- .dg-hero__announcement:hover .dg-hero__announcement-cta {
596
- @apply gap-3;
597
- }
598
-
599
589
  .dg-hero__body {
600
590
  @apply text-center text-dg-fog text-lg leading-7 font-normal mx-auto;
601
591
  @apply max-w-[53.125rem];
@@ -605,58 +595,18 @@
605
595
  @apply flex items-center justify-center flex-wrap gap-4 mt-2;
606
596
  }
607
597
 
608
- @media (max-width: 1024px) {
609
- .dg-hero-title {
610
- @apply text-4xl;
611
- }
598
+ .dg-hero__announcement:hover {
599
+ @apply border-dg-primary -translate-y-0.5;
600
+ background-color: color-mix(in srgb, var(--dg-primary) 10%, transparent);
601
+ box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--dg-primary) 15%, transparent);
612
602
  }
613
603
 
614
- @media (max-width: 768px) {
615
- .dg-hero-title {
616
- @apply text-3xl;
617
- }
618
-
619
- .dg-hero {
620
- @apply py-12 px-4;
621
- }
622
-
623
- .dg-hero__content {
624
- @apply gap-5;
625
- }
626
-
627
- .dg-hero__body {
628
- @apply text-base leading-relaxed;
629
- }
604
+ .dg-hero__announcement:hover .dg-hero__announcement-cta {
605
+ @apply gap-3;
630
606
  }
631
607
 
632
- @media (max-width: 640px) {
633
- .dg-hero-title {
634
- @apply text-2xl;
635
- }
636
-
637
- .dg-hero {
638
- @apply py-8 px-4;
639
- }
640
-
641
- .dg-hero__announcement-text {
642
- @apply text-xs whitespace-normal;
643
- }
644
-
645
- .dg-hero__announcement-cta {
646
- @apply text-xs;
647
- }
648
-
649
- .dg-hero__body {
650
- @apply text-[0.9375rem] leading-normal;
651
- }
652
-
653
- .dg-hero__actions {
654
- @apply flex-col w-full;
655
- }
656
-
657
- .dg-hero__actions > * {
658
- @apply w-full;
659
- }
608
+ .dg-hero__actions > * {
609
+ @apply w-full;
660
610
  }
661
611
 
662
612
  /* Section Header */
@@ -666,18 +616,14 @@
666
616
  @apply flex-wrap items-baseline gap-2;
667
617
  }
668
618
 
669
- .dg-section-heading small {
670
- @apply font-normal text-base text-dg-muted;
671
- }
672
-
673
619
  @media (max-width: 640px) {
674
620
  .dg-section-heading {
675
621
  @apply text-xl mb-3 gap-1.5;
676
622
  }
623
+ }
677
624
 
678
- .dg-section-heading small {
679
- @apply text-sm;
680
- }
625
+ .dg-section-heading small {
626
+ @apply text-sm;
681
627
  }
682
628
 
683
629
  /* Page Heading */
@@ -686,33 +632,39 @@
686
632
  @apply mb-8;
687
633
  }
688
634
 
689
- .dg-page-heading__title {
690
- @apply font-semibold font-dg-noto text-4xl text-dg-text mb-2 leading-tight;
635
+ @media (max-width: 640px) {
636
+ .dg-page-heading {
637
+ @apply mb-6;
638
+ }
691
639
  }
692
640
 
693
- .dg-page-heading__description {
694
- @apply text-dg-muted text-lg leading-relaxed m-0 max-w-[65ch];
641
+ .dg-page-heading__title {
642
+ @apply font-semibold font-dg-noto text-4xl text-dg-text mb-2 leading-tight;
695
643
  }
696
644
 
697
645
  @media (max-width: 768px) {
698
646
  .dg-page-heading__title {
699
647
  @apply text-3xl;
700
648
  }
701
-
702
- .dg-page-heading__description {
703
- @apply text-base;
704
- }
705
649
  }
706
650
 
707
651
  @media (max-width: 640px) {
708
- .dg-page-heading {
709
- @apply mb-6;
710
- }
711
-
712
652
  .dg-page-heading__title {
713
653
  @apply text-2xl;
714
654
  }
655
+ }
656
+
657
+ .dg-page-heading__description {
658
+ @apply text-dg-muted text-lg leading-relaxed m-0 max-w-[65ch];
659
+ }
660
+
661
+ @media (max-width: 768px) {
662
+ .dg-page-heading__description {
663
+ @apply text-base;
664
+ }
665
+ }
715
666
 
667
+ @media (max-width: 640px) {
716
668
  .dg-page-heading__description {
717
669
  @apply text-[0.9375rem];
718
670
  }
@@ -737,15 +689,6 @@
737
689
  @apply mt-4 flex md:mt-0 md:ml-4;
738
690
  }
739
691
 
740
- .dg-page-headings__title {
741
- @apply text-2xl font-bold text-dg-text sm:truncate sm:text-3xl sm:tracking-tight;
742
- line-height: 1.75;
743
- }
744
-
745
- .dg-page-headings__actions {
746
- @apply mt-4 flex md:mt-0 md:ml-4;
747
- }
748
-
749
692
  /* Card Heading */
750
693
 
751
694
  .dg-card-heading {
@@ -784,10 +727,6 @@
784
727
  @apply w-full text-dg-fog text-sm leading-snug mb-3;
785
728
  }
786
729
 
787
- .dg-prose.dg-prose--block {
788
- @apply max-w-none w-full;
789
- }
790
-
791
730
  @media (min-width: 640px) {
792
731
  .dg-prose {
793
732
  @apply text-base mb-4 max-w-[65ch];
@@ -820,6 +759,16 @@
820
759
  }
821
760
  }
822
761
 
762
+ .dg-prose.dg-prose--block {
763
+ @apply max-w-none w-full;
764
+ }
765
+
766
+ /* Icon */
767
+
768
+ .dg-icon {
769
+ @apply flex-shrink-0;
770
+ }
771
+
823
772
  /* Input Group */
824
773
 
825
774
  .dg-input {
@@ -829,10 +778,6 @@
829
778
  height: 2.75rem;
830
779
  }
831
780
 
832
- .dg-input::placeholder {
833
- @apply text-dg-muted;
834
- }
835
-
836
781
  .dg-input:focus {
837
782
  @apply border-dg-primary;
838
783
  box-shadow: 0 0 0 0.0625rem var(--color-dg-primary);
@@ -850,13 +795,8 @@
850
795
  @apply max-w-none;
851
796
  }
852
797
 
853
- .dg-input[type="select"], select.dg-input {
854
- @apply appearance-none;
855
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='rgb(255,255,255)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
856
- background-position: right 0.75rem center;
857
- background-repeat: no-repeat;
858
- background-size: 1.5em 1.5em;
859
- padding-right: 2.5rem;
798
+ .dg-input::placeholder {
799
+ @apply text-dg-muted;
860
800
  }
861
801
 
862
802
  /* Textarea */
@@ -870,6 +810,19 @@
870
810
  height: auto;
871
811
  }
872
812
 
813
+ .dg-textarea:focus {
814
+ @apply border-dg-primary;
815
+ box-shadow: 0 0 0 0.0625rem var(--color-dg-primary);
816
+ }
817
+
818
+ .dg-textarea:disabled {
819
+ @apply opacity-50 cursor-not-allowed;
820
+ }
821
+
822
+ .dg-textarea::placeholder {
823
+ @apply text-dg-muted;
824
+ }
825
+
873
826
  /* Checkbox */
874
827
 
875
828
  .dg-checkbox {
@@ -878,6 +831,15 @@
878
831
  position: relative;
879
832
  }
880
833
 
834
+ .dg-checkbox:focus {
835
+ @apply outline-none;
836
+ box-shadow: 0 0 0 0.125rem color-mix(in srgb, var(--color-dg-primary) 50%, transparent);
837
+ }
838
+
839
+ .dg-checkbox:disabled {
840
+ @apply opacity-50 cursor-not-allowed;
841
+ }
842
+
881
843
  .dg-checkbox:checked {
882
844
  @apply bg-dg-primary border-dg-primary;
883
845
  }
@@ -894,71 +856,248 @@
894
856
  transform: rotate(45deg);
895
857
  }
896
858
 
897
- .dg-checkbox:focus {
859
+ .dg-checkbox-label:hover .dg-checkbox {
860
+ @apply border-dg-slate;
861
+ }
862
+
863
+ .dg-checkbox-label:has(.dg-checkbox:disabled) {
864
+ @apply opacity-50 cursor-not-allowed;
865
+ }
866
+
867
+ /* Select */
868
+
869
+ .dg-select {
870
+ @apply w-full px-4 py-3 rounded border border-dg-pebble;
871
+ @apply bg-dg-charcoal text-dg-text font-dg-sans text-sm outline-none transition-all;
872
+ @apply duration-300 shadow-dg-sm appearance-none cursor-pointer;
873
+ height: 2.75rem;
874
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='rgb(255,255,255)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
875
+ background-position: right 0.75rem center;
876
+ background-repeat: no-repeat;
877
+ background-size: 1.5em 1.5em;
878
+ padding-right: 2.5rem;
879
+ }
880
+
881
+ .dg-select:focus {
882
+ @apply border-dg-primary;
883
+ box-shadow: 0 0 0 0.0625rem var(--color-dg-primary);
884
+ }
885
+
886
+ .dg-select:disabled {
887
+ @apply opacity-50 cursor-not-allowed;
888
+ }
889
+
890
+ /* Option */
891
+
892
+ .dg-option {
893
+ @apply bg-dg-charcoal text-dg-text;
894
+ }
895
+
896
+ /* Radio */
897
+
898
+ .dg-radio {
899
+ @apply appearance-none w-5 h-5 rounded-full border border-dg-pebble;
900
+ @apply bg-dg-charcoal cursor-pointer transition-all duration-200 flex-shrink-0;
901
+ position: relative;
902
+ }
903
+
904
+ .dg-radio:focus {
898
905
  @apply outline-none;
899
906
  box-shadow: 0 0 0 0.125rem color-mix(in srgb, var(--color-dg-primary) 50%, transparent);
900
907
  }
901
908
 
902
- .dg-checkbox-label {
903
- @apply flex items-start gap-2 cursor-pointer text-sm text-dg-fog;
909
+ .dg-radio:disabled {
910
+ @apply opacity-50 cursor-not-allowed;
904
911
  }
905
912
 
906
- .dg-checkbox-label:hover .dg-checkbox {
913
+ .dg-radio:checked {
914
+ @apply bg-dg-primary border-dg-primary;
915
+ }
916
+
917
+ .dg-radio:checked::after {
918
+ content: "";
919
+ position: absolute;
920
+ top: 50%;
921
+ left: 50%;
922
+ width: 0.375rem;
923
+ height: 0.375rem;
924
+ background: var(--color-dg-almost-black);
925
+ border-radius: 50%;
926
+ transform: translate(-50%, -50%);
927
+ }
928
+
929
+ .dg-radio-label:hover .dg-radio {
907
930
  @apply border-dg-slate;
908
931
  }
909
932
 
933
+ .dg-radio-label:has(.dg-radio:disabled) {
934
+ @apply opacity-50 cursor-not-allowed;
935
+ }
936
+
937
+ /* Toggle */
938
+
939
+ .dg-toggle {
940
+ @apply appearance-none cursor-pointer transition-all duration-200 flex-shrink-0;
941
+ position: relative;
942
+ width: 2.75rem;
943
+ height: 1.5rem;
944
+ border-radius: 0.75rem;
945
+ background-color: var(--color-dg-pebble);
946
+ }
947
+
948
+ .dg-toggle:focus {
949
+ @apply outline-none;
950
+ box-shadow: 0 0 0 0.125rem color-mix(in srgb, var(--color-dg-primary) 50%, transparent);
951
+ }
952
+
953
+ .dg-toggle:disabled {
954
+ @apply opacity-50 cursor-not-allowed;
955
+ }
956
+
957
+ .dg-toggle:checked {
958
+ background-color: var(--color-dg-primary);
959
+ }
960
+
961
+ .dg-toggle::after {
962
+ content: "";
963
+ position: absolute;
964
+ top: 0.125rem;
965
+ left: 0.125rem;
966
+ width: 1.25rem;
967
+ height: 1.25rem;
968
+ border-radius: 50%;
969
+ background: white;
970
+ transition: transform 200ms ease-in-out;
971
+ }
972
+
973
+ .dg-toggle:checked::after {
974
+ transform: translateX(1.25rem);
975
+ }
976
+
977
+ .dg-toggle-label:hover .dg-toggle {
978
+ background-color: var(--color-dg-slate);
979
+ }
980
+
981
+ .dg-toggle-label:hover .dg-toggle:checked {
982
+ background-color: var(--color-dg-primary);
983
+ }
984
+
985
+ .dg-toggle-label:has(.dg-toggle:disabled) {
986
+ @apply opacity-50 cursor-not-allowed;
987
+ }
988
+
989
+ /* Checkbox Label */
990
+
991
+ .dg-checkbox-label {
992
+ @apply flex items-start gap-2 cursor-pointer text-sm text-dg-fog;
993
+ }
994
+
995
+ /* Checkbox Description */
996
+
910
997
  .dg-checkbox-description {
911
998
  @apply flex flex-col gap-2;
912
999
  }
913
1000
 
1001
+ /* Checkbox Group */
1002
+
914
1003
  .dg-checkbox-group {
915
1004
  @apply flex flex-col gap-3;
916
1005
  }
917
1006
 
1007
+ /* Radio Label */
1008
+
1009
+ .dg-radio-label {
1010
+ @apply flex items-start gap-2 cursor-pointer text-sm text-dg-fog;
1011
+ }
1012
+
1013
+ /* Radio Description */
1014
+
1015
+ .dg-radio-description {
1016
+ @apply flex flex-col gap-2;
1017
+ }
1018
+
1019
+ .dg-radio-description__hint {
1020
+ @apply text-dg-muted;
1021
+ }
1022
+
1023
+ /* Radio Group */
1024
+
1025
+ .dg-radio-group {
1026
+ @apply flex flex-col gap-3;
1027
+ }
1028
+
1029
+ /* Toggle Label */
1030
+
1031
+ .dg-toggle-label {
1032
+ @apply flex items-center gap-3 cursor-pointer text-sm text-dg-fog;
1033
+ }
1034
+
1035
+ /* Toggle Group */
1036
+
1037
+ .dg-toggle-group {
1038
+ @apply flex flex-col gap-4;
1039
+ }
1040
+
1041
+ /* Form Label */
1042
+
1043
+ .dg-form-label {
1044
+ @apply text-sm font-medium text-dg-text;
1045
+ }
1046
+
1047
+ /* Form Helper */
1048
+
1049
+ .dg-form-helper {
1050
+ @apply text-xs text-dg-muted block;
1051
+ margin: 0;
1052
+ }
1053
+
1054
+ /* Form Error */
1055
+
1056
+ .dg-form-error {
1057
+ @apply text-xs text-dg-danger block;
1058
+ margin: 0;
1059
+ }
1060
+
918
1061
  /* Form Section */
919
1062
 
920
1063
  .dg-form-field {
921
1064
  @apply flex flex-col gap-3 mb-4 w-full;
922
1065
  }
923
1066
 
1067
+ @media (min-width: 640px) {
1068
+ .dg-form-field {
1069
+ @apply max-w-md;
1070
+ }
1071
+ }
1072
+
924
1073
  .dg-form-field--full {
925
1074
  @apply max-w-none;
926
1075
  }
927
1076
 
928
- .dg-form-field--error .dg-input, .dg-form-field--error .dg-textarea {
1077
+ .dg-form-field--error .dg-input, .dg-form-field--error .dg-textarea, .dg-form-field--error .dg-select {
929
1078
  @apply border-dg-danger;
930
1079
  }
931
1080
 
1081
+ .dg-form-field--error .dg-input:focus, .dg-form-field--error .dg-textarea:focus, .dg-form-field--error .dg-select:focus {
1082
+ @apply border-dg-danger;
1083
+ box-shadow: 0 0 0 0.0625rem var(--color-dg-danger);
1084
+ }
1085
+
932
1086
  .dg-form-field--error .dg-form-helper {
933
1087
  @apply text-dg-danger;
934
1088
  }
935
1089
 
936
- .dg-form-field--success .dg-input, .dg-form-field--success .dg-textarea {
1090
+ .dg-form-field--success .dg-input, .dg-form-field--success .dg-textarea, .dg-form-field--success .dg-select {
937
1091
  @apply border-dg-success;
938
1092
  }
939
1093
 
940
- .dg-form-field--success .dg-form-helper {
941
- @apply text-dg-success;
942
- }
943
-
944
- .dg-form-label {
945
- @apply text-sm font-medium text-dg-text;
946
- }
947
-
948
- .dg-form-error {
949
- @apply text-xs text-dg-danger block;
950
- margin: 0;
951
- }
952
-
953
- .dg-form-helper {
954
- @apply text-xs text-dg-muted block;
955
- margin: 0;
1094
+ .dg-form-field--success .dg-input:focus, .dg-form-field--success .dg-textarea:focus, .dg-form-field--success .dg-select:focus {
1095
+ @apply border-dg-success;
1096
+ box-shadow: 0 0 0 0.0625rem var(--color-dg-success);
956
1097
  }
957
1098
 
958
- @media (min-width: 640px) {
959
- .dg-form-field {
960
- @apply max-w-md;
961
- }
1099
+ .dg-form-field--success .dg-form-helper {
1100
+ @apply text-dg-success;
962
1101
  }
963
1102
 
964
1103
  /* File Upload Zone */
@@ -975,10 +1114,6 @@
975
1114
  @apply border-dg-slate bg-dg-background;
976
1115
  }
977
1116
 
978
- .dg-drag-drop-zone.drag-over {
979
- @apply border-dg-primary bg-dg-translucent;
980
- }
981
-
982
1117
  .dg-drag-drop-zone__input {
983
1118
  @apply absolute inset-0 w-full h-full opacity-0 cursor-pointer;
984
1119
  }
@@ -987,10 +1122,6 @@
987
1122
  @apply text-5xl text-dg-muted;
988
1123
  }
989
1124
 
990
- .dg-drag-drop-zone:hover .dg-drag-drop-zone__icon {
991
- @apply text-dg-primary;
992
- }
993
-
994
1125
  .dg-drag-drop-zone__text {
995
1126
  @apply text-base text-dg-text font-medium;
996
1127
  }
@@ -999,6 +1130,14 @@
999
1130
  @apply text-sm text-dg-muted;
1000
1131
  }
1001
1132
 
1133
+ .dg-drag-drop-zone.drag-over {
1134
+ @apply border-dg-primary bg-dg-translucent;
1135
+ }
1136
+
1137
+ .dg-drag-drop-zone:hover .dg-drag-drop-zone__icon {
1138
+ @apply text-dg-primary;
1139
+ }
1140
+
1002
1141
  /* Status Banner */
1003
1142
 
1004
1143
  .dg-status {
@@ -1040,10 +1179,6 @@
1040
1179
  @apply flex items-start gap-1;
1041
1180
  }
1042
1181
 
1043
- .dg-status--with-icon .dg-status__icon {
1044
- @apply flex-shrink-0 text-[1em] mt-[0.1em];
1045
- }
1046
-
1047
1182
  .dg-status--compact {
1048
1183
  @apply my-1 py-0.5 text-xs;
1049
1184
  }
@@ -1054,6 +1189,10 @@
1054
1189
  }
1055
1190
  }
1056
1191
 
1192
+ .dg-status--with-icon .dg-status__icon {
1193
+ @apply flex-shrink-0 text-[1em] mt-[0.1em];
1194
+ }
1195
+
1057
1196
  /* Spinner */
1058
1197
 
1059
1198
  .dg-spinner {
@@ -1061,134 +1200,52 @@
1061
1200
  @apply mb-3 animate-spin;
1062
1201
  }
1063
1202
 
1064
- .dg-processing-title {
1203
+ .dg-spinner__title {
1065
1204
  @apply font-medium font-dg-noto text-xl text-dg-text mb-1;
1066
1205
  }
1067
1206
 
1068
- /* Modal */
1069
-
1070
- .dg-modal-overlay {
1071
- @apply hidden fixed inset-0 items-center justify-center bg-black/80;
1072
- @apply z-50;
1073
- }
1074
-
1075
- .dg-modal-overlay.visible, .dg-modal-overlay--visible {
1076
- @apply flex;
1077
- }
1078
-
1079
- .dg-modal-content {
1080
- @apply text-center max-w-[25rem] m-3;
1081
- }
1082
-
1083
1207
  /* Constrained Container */
1084
1208
 
1085
1209
  .dg-constrain-width {
1086
1210
  @apply w-full;
1087
1211
  }
1088
1212
 
1089
- .dg-center-h {
1090
- @apply mx-auto;
1091
- }
1092
-
1093
1213
  @media (min-width: 640px) {
1094
1214
  .dg-constrain-width {
1095
1215
  @apply max-w-[70rem] mx-auto;
1096
1216
  }
1097
1217
  }
1098
1218
 
1219
+ .dg-center-h {
1220
+ @apply mx-auto;
1221
+ }
1222
+
1099
1223
  /* Responsive Grid */
1100
1224
 
1101
1225
  .dg-grid-mobile-stack {
1102
1226
  @apply flex flex-col gap-4;
1103
1227
  }
1104
1228
 
1105
- .dg-grid-mobile-stack > * {
1106
- @apply flex-1;
1107
- }
1108
-
1109
1229
  @media (min-width: 640px) {
1110
1230
  .dg-grid-mobile-stack {
1111
1231
  @apply flex-row gap-4;
1112
1232
  }
1113
1233
  }
1114
1234
 
1115
- /* Three-Column Layout */
1116
-
1117
- .dg-columns {
1118
- @apply flex flex-col w-full;
1119
- }
1120
-
1121
- .dg-columns__wrapper {
1122
- @apply flex flex-col flex-1 min-w-0;
1123
- }
1124
-
1125
- .dg-column {
1126
- @apply px-4 py-6 min-w-0;
1127
- }
1128
-
1129
- .dg-column--main {
1235
+ .dg-grid-mobile-stack > * {
1130
1236
  @apply flex-1;
1131
1237
  }
1132
1238
 
1133
- .dg-column--sidebar-left {
1134
- }
1135
-
1136
- .dg-column--sidebar-right {
1137
- position: relative;
1138
- }
1139
-
1140
- @media (min-width: 640px) {
1141
- .dg-column {
1142
- @apply px-6;
1143
- }
1144
- }
1145
-
1146
- @media (min-width: 1024px) {
1147
- .dg-columns__wrapper {
1148
- @apply flex-row;
1149
- }
1150
-
1151
- .dg-column--sidebar-left {
1152
- @apply w-48 flex-shrink-0;
1153
- }
1154
-
1155
- .dg-column--sidebar-left.dg-column--sm {
1156
- @apply w-64 flex-shrink-0;
1157
- }
1158
-
1159
- .dg-column--sidebar-left.dg-column--lg {
1160
- @apply w-96 flex-shrink-0;
1161
- }
1239
+ /* Three-Column Layout */
1162
1240
 
1163
- .dg-column--sidebar-left.dg-column--xl {
1164
- @apply w-128 flex-shrink-0;
1165
- }
1241
+ .dg-columns {
1242
+ @apply flex flex-col w-full;
1166
1243
  }
1167
1244
 
1168
1245
  @media (min-width: 1280px) {
1169
1246
  .dg-columns {
1170
1247
  @apply flex-row;
1171
1248
  }
1172
-
1173
- .dg-column--sidebar-right {
1174
- width: 16rem;
1175
- flex-shrink: 0;
1176
- }
1177
-
1178
- .dg-column--sidebar-right.dg-column--sm {
1179
- width: 20rem;
1180
- flex-shrink: 0;
1181
- }
1182
-
1183
- .dg-column--sidebar-right.dg-column--lg {
1184
- width: 24rem;
1185
- flex-shrink: 0;
1186
- }
1187
-
1188
- .dg-column--sidebar-right.dg-column--xl {
1189
- width: 32rem;
1190
- flex-shrink: 0;
1191
- }
1192
1249
  }
1193
1250
 
1194
1251
  .dg-columns--fixed {
@@ -1198,16 +1255,16 @@
1198
1255
  --dg-aside-width: 24rem;
1199
1256
  }
1200
1257
 
1201
- .dg-columns--fixed .dg-column--sidebar-left {
1258
+ .dg-columns--fixed .dg-columns__column--left {
1202
1259
  @apply hidden;
1203
1260
  }
1204
1261
 
1205
- .dg-columns--fixed .dg-column--sidebar-right {
1262
+ .dg-columns--fixed .dg-columns__column--right {
1206
1263
  @apply hidden;
1207
1264
  }
1208
1265
 
1209
1266
  @media (min-width: 1024px) {
1210
- .dg-columns--fixed .dg-column--sidebar-left {
1267
+ .dg-columns--fixed .dg-columns__column--left {
1211
1268
  display: flex;
1212
1269
  flex-direction: column;
1213
1270
  position: fixed;
@@ -1221,25 +1278,25 @@
1221
1278
  border-right: 1px solid var(--color-dg-border);
1222
1279
  }
1223
1280
 
1224
- .dg-columns--fixed .dg-column--main {
1281
+ .dg-columns--fixed .dg-columns__column--center {
1225
1282
  padding-left: var(--dg-sidebar-width);
1226
1283
  }
1227
1284
 
1228
- .dg-columns--fixed:has(.dg-column--sidebar-left.dg-column--sm) {
1285
+ .dg-columns--fixed:has(.dg-columns__column--left.dg-columns__column--sm) {
1229
1286
  --dg-sidebar-width: 16rem;
1230
1287
  }
1231
1288
 
1232
- .dg-columns--fixed:has(.dg-column--sidebar-left.dg-column--lg) {
1289
+ .dg-columns--fixed:has(.dg-columns__column--left.dg-columns__column--lg) {
1233
1290
  --dg-sidebar-width: 24rem;
1234
1291
  }
1235
1292
 
1236
- .dg-columns--fixed:has(.dg-column--sidebar-left.dg-column--xl) {
1293
+ .dg-columns--fixed:has(.dg-columns__column--left.dg-columns__column--xl) {
1237
1294
  --dg-sidebar-width: 32rem;
1238
1295
  }
1239
1296
  }
1240
1297
 
1241
1298
  @media (min-width: 1280px) {
1242
- .dg-columns--fixed .dg-column--sidebar-right {
1299
+ .dg-columns--fixed .dg-columns__column--right {
1243
1300
  display: flex;
1244
1301
  flex-direction: column;
1245
1302
  position: fixed;
@@ -1251,23 +1308,33 @@
1251
1308
  border-right: 1px solid var(--color-dg-border);
1252
1309
  }
1253
1310
 
1254
- .dg-columns--fixed:has(.dg-column--sidebar-right) .dg-column--main {
1311
+ .dg-columns--fixed:has(.dg-columns__column--right) .dg-columns__column--center {
1255
1312
  padding-left: calc(var(--dg-sidebar-width) + var(--dg-aside-width));
1256
1313
  }
1257
1314
 
1258
- .dg-columns--fixed:has(.dg-column--sidebar-right.dg-column--sm) {
1315
+ .dg-columns--fixed:has(.dg-columns__column--right.dg-columns__column--sm) {
1259
1316
  --dg-aside-width: 20rem;
1260
1317
  }
1261
1318
 
1262
- .dg-columns--fixed:has(.dg-column--sidebar-right.dg-column--lg) {
1319
+ .dg-columns--fixed:has(.dg-columns__column--right.dg-columns__column--lg) {
1263
1320
  --dg-aside-width: 28rem;
1264
1321
  }
1265
1322
 
1266
- .dg-columns--fixed:has(.dg-column--sidebar-right.dg-column--xl) {
1323
+ .dg-columns--fixed:has(.dg-columns__column--right.dg-columns__column--xl) {
1267
1324
  --dg-aside-width: 32rem;
1268
1325
  }
1269
1326
  }
1270
1327
 
1328
+ .dg-columns__wrapper {
1329
+ @apply flex flex-col flex-1 min-w-0;
1330
+ }
1331
+
1332
+ @media (min-width: 1024px) {
1333
+ .dg-columns__wrapper {
1334
+ @apply flex-row;
1335
+ }
1336
+ }
1337
+
1271
1338
  .dg-columns__mobile-header {
1272
1339
  @apply flex items-center gap-3 px-4 py-2;
1273
1340
  position: sticky;
@@ -1288,50 +1355,73 @@
1288
1355
  color: var(--color-dg-muted);
1289
1356
  }
1290
1357
 
1291
- /* Header */
1358
+ .dg-columns__column {
1359
+ @apply px-4 py-6 min-w-0;
1360
+ }
1292
1361
 
1293
- .dg-header {
1294
- @apply w-full;
1295
- background: var(--color-dg-almost-black);
1296
- padding: 1rem 1.5rem;
1297
- border-bottom: 1px solid color-mix(in srgb, white 10%, transparent);
1362
+ @media (min-width: 640px) {
1363
+ .dg-columns__column {
1364
+ @apply px-6;
1365
+ }
1298
1366
  }
1299
1367
 
1300
- .dg-header__container {
1301
- @apply flex items-center justify-between max-w-screen-2xl mx-auto;
1368
+ .dg-columns__column--left {
1302
1369
  }
1303
1370
 
1304
- .dg-header__logo {
1305
- @apply flex items-center gap-3;
1371
+ .dg-columns__column--right {
1372
+ position: relative;
1306
1373
  }
1307
1374
 
1308
- .dg-header__logo-image {
1309
- @apply h-8 w-auto;
1375
+ .dg-columns__column--center {
1376
+ @apply flex-1;
1310
1377
  }
1311
1378
 
1312
- .dg-header__logo-text {
1313
- @apply font-dg-noto font-bold text-xl text-dg-text;
1379
+ .dg-columns__column--sm {
1314
1380
  }
1315
1381
 
1316
- .dg-header__nav {
1317
- @apply flex items-center gap-4;
1382
+ .dg-columns__column--lg {
1318
1383
  }
1319
1384
 
1320
- .dg-header__profile-link {
1321
- @apply -m-1.5 p-1.5 block;
1385
+ .dg-columns__column--xl {
1322
1386
  }
1323
1387
 
1324
- .dg-header__profile-avatar {
1325
- @apply size-8 rounded-full bg-dg-charcoal outline -outline-offset-1 outline-white/10;
1388
+ @media (min-width: 1024px) {
1389
+ .dg-columns__column--left {
1390
+ @apply w-48 flex-shrink-0;
1391
+ }
1392
+
1393
+ .dg-columns__column--left.dg-columns__column--sm {
1394
+ @apply w-64 flex-shrink-0;
1395
+ }
1396
+
1397
+ .dg-columns__column--left.dg-columns__column--lg {
1398
+ @apply w-96 flex-shrink-0;
1399
+ }
1400
+
1401
+ .dg-columns__column--left.dg-columns__column--xl {
1402
+ @apply w-128 flex-shrink-0;
1403
+ }
1326
1404
  }
1327
1405
 
1328
- @media (max-width: 768px) {
1329
- .dg-header {
1330
- padding: 0.75rem 1rem;
1406
+ @media (min-width: 1280px) {
1407
+ .dg-columns__column--right {
1408
+ width: 16rem;
1409
+ flex-shrink: 0;
1331
1410
  }
1332
1411
 
1333
- .dg-header__logo-text {
1334
- @apply text-lg;
1412
+ .dg-columns__column--right.dg-columns__column--sm {
1413
+ width: 20rem;
1414
+ flex-shrink: 0;
1415
+ }
1416
+
1417
+ .dg-columns__column--right.dg-columns__column--lg {
1418
+ width: 24rem;
1419
+ flex-shrink: 0;
1420
+ }
1421
+
1422
+ .dg-columns__column--right.dg-columns__column--xl {
1423
+ width: 32rem;
1424
+ flex-shrink: 0;
1335
1425
  }
1336
1426
  }
1337
1427
 
@@ -1341,22 +1431,16 @@
1341
1431
  @apply text-center border-t border-dg-pebble mt-16;
1342
1432
  }
1343
1433
 
1344
- /* Link */
1345
-
1346
- .dg-link {
1347
- @apply text-dg-primary transition-opacity duration-200;
1348
- }
1349
-
1350
- .dg-link:hover {
1351
- @apply opacity-80;
1434
+ .dg-footer__social-links {
1435
+ @apply flex justify-center gap-4;
1352
1436
  }
1353
1437
 
1354
- .dg-social-link {
1355
- @apply text-dg-fog transition-colors duration-200 text-xl;
1438
+ .dg-footer__social-link {
1439
+ @apply text-dg-muted transition-colors duration-200;
1356
1440
  }
1357
1441
 
1358
- .dg-social-link:hover {
1359
- @apply text-dg-primary;
1442
+ .dg-footer__social-link:hover {
1443
+ @apply text-dg-text;
1360
1444
  }
1361
1445
 
1362
1446
  /* Text Utilities */
@@ -1419,36 +1503,24 @@
1419
1503
 
1420
1504
  /* Newsletter Signup */
1421
1505
 
1422
- .dg-newsletter-container {
1506
+ .dg-newsletter {
1423
1507
  @apply flex flex-col gap-4;
1424
1508
  }
1425
1509
 
1426
- .dg-newsletter-container--compact {
1510
+ .dg-newsletter--compact {
1427
1511
  @apply flex flex-col gap-3;
1428
1512
  }
1429
1513
 
1430
- .dg-newsletter-form {
1514
+ .dg-newsletter__form {
1431
1515
  @apply flex flex-col gap-4;
1432
1516
  }
1433
1517
 
1434
- .dg-newsletter-form--compact {
1518
+ .dg-newsletter__form--compact {
1435
1519
  @apply flex flex-col gap-3;
1436
1520
  }
1437
1521
 
1438
- .dg-newsletter-form--inline {
1439
- @apply flex gap-2 w-full;
1440
- }
1441
-
1442
- .dg-newsletter-header {
1443
- @apply flex flex-col gap-3 items-start;
1444
- }
1445
-
1446
- .dg-newsletter-header__content {
1447
- @apply flex-1;
1448
- }
1449
-
1450
- .dg-newsletter-header__actions {
1451
- @apply w-full;
1522
+ .dg-newsletter__form--inline {
1523
+ @apply w-auto;
1452
1524
  }
1453
1525
 
1454
1526
  .dg-logo-container {
@@ -1459,24 +1531,6 @@
1459
1531
  @apply h-8 w-auto;
1460
1532
  }
1461
1533
 
1462
- .dg-social-links {
1463
- @apply flex justify-center gap-4;
1464
- }
1465
-
1466
- @media (min-width: 640px) {
1467
- .dg-newsletter-form--inline {
1468
- @apply w-auto;
1469
- }
1470
-
1471
- .dg-newsletter-header {
1472
- @apply flex-row items-center;
1473
- }
1474
-
1475
- .dg-newsletter-header__actions {
1476
- @apply w-auto;
1477
- }
1478
- }
1479
-
1480
1534
  /* Alerts */
1481
1535
 
1482
1536
  .dg-alert {
@@ -1509,10 +1563,33 @@
1509
1563
 
1510
1564
  .dg-alert__icon {
1511
1565
  @apply shrink-0;
1566
+ font-size: 1.25rem;
1567
+ }
1568
+
1569
+ .dg-alert__body {
1570
+ margin-left: 0.75rem;
1571
+ }
1572
+
1573
+ .dg-alert__title {
1574
+ @apply text-sm font-medium;
1575
+ }
1576
+
1577
+ .dg-alert__description {
1578
+ @apply mt-2 text-sm text-dg-muted;
1579
+ }
1580
+
1581
+ .dg-alert__actions {
1582
+ @apply mt-4;
1512
1583
  }
1513
1584
 
1514
- .dg-alert__icon svg {
1515
- @apply size-5;
1585
+ .dg-alert__list {
1586
+ @apply mt-2 text-sm text-dg-muted list-disc pl-5;
1587
+ }
1588
+
1589
+ .dg-alert__dismiss {
1590
+ @apply ml-auto pl-3 shrink-0 -my-1.5 -mr-1.5 inline-flex;
1591
+ @apply rounded-md p-1.5 text-dg-muted cursor-pointer;
1592
+ font-size: 1.25rem;
1516
1593
  }
1517
1594
 
1518
1595
  .dg-alert--warning .dg-alert__icon {
@@ -1531,14 +1608,6 @@
1531
1608
  @apply text-dg-secondary;
1532
1609
  }
1533
1610
 
1534
- .dg-alert__body {
1535
- margin-left: 0.75rem;
1536
- }
1537
-
1538
- .dg-alert__title {
1539
- @apply text-sm font-medium;
1540
- }
1541
-
1542
1611
  .dg-alert--warning .dg-alert__title {
1543
1612
  @apply text-dg-warning;
1544
1613
  }
@@ -1555,39 +1624,15 @@
1555
1624
  @apply text-dg-secondary;
1556
1625
  }
1557
1626
 
1558
- .dg-alert__description {
1559
- @apply mt-2 text-sm text-dg-muted;
1560
- }
1561
-
1562
- .dg-alert__actions {
1563
- @apply mt-4;
1564
- }
1565
-
1566
1627
  .dg-alert__actions .dg-btn {
1567
1628
  @apply text-sm;
1568
1629
  }
1569
1630
 
1570
- .dg-alert__list {
1571
- @apply mt-2 text-sm text-dg-muted list-disc pl-5;
1572
- }
1573
-
1574
1631
  .dg-alert__list li {
1575
1632
  padding-left: 0.25rem;
1576
1633
  }
1577
1634
 
1578
- .dg-alert__dismiss {
1579
- @apply ml-auto pl-3 shrink-0 -my-1.5 -mr-1.5;
1580
- }
1581
-
1582
- .dg-alert__dismiss button {
1583
- @apply inline-flex rounded-md p-1.5 text-dg-muted cursor-pointer;
1584
- }
1585
-
1586
- .dg-alert__dismiss button:hover {
1635
+ .dg-alert__dismiss:hover {
1587
1636
  @apply text-dg-text;
1588
1637
  }
1589
-
1590
- .dg-alert__dismiss button svg {
1591
- @apply size-5;
1592
- }
1593
1638
  }