@dialpad/dialtone-css 8.80.0-next.2 → 8.80.0-next.4

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 (187) hide show
  1. package/lib/build/js/dialtone_migrate_link_rendering/button-nav-test-examples.vue +92 -0
  2. package/lib/build/js/dialtone_migrate_link_rendering/button-nav.test.mjs +272 -0
  3. package/lib/build/js/dialtone_migrate_link_rendering/helpers.mjs +25 -0
  4. package/lib/build/js/dialtone_migrate_link_rendering/index.mjs +1041 -0
  5. package/lib/build/js/dialtone_migrate_link_rendering/link-nav-test-examples.vue +97 -0
  6. package/lib/build/js/dialtone_migrate_link_rendering/link-nav.test.mjs +194 -0
  7. package/lib/build/js/dialtone_migrate_link_rendering/underline-test-examples.vue +57 -0
  8. package/lib/build/js/dialtone_migrate_link_rendering/underline.test.mjs +161 -0
  9. package/lib/build/js/dialtone_migrate_props/index.mjs +794 -0
  10. package/lib/build/js/dialtone_migrate_props/test.mjs +959 -0
  11. package/lib/build/js/dialtone_migration_helper/configs/base-to-semantic.mjs +8 -8
  12. package/lib/build/js/dialtone_migration_helper/configs/size-to-layout.mjs +10 -0
  13. package/lib/build/js/dialtone_migration_helper/configs/success-to-positive.mjs +73 -0
  14. package/lib/build/js/dialtone_migration_helper/configs/utility-class-to-token-stops.mjs +92 -12
  15. package/lib/build/js/dialtone_migration_helper/tests/base-to-semantic-test-examples.vue +10 -10
  16. package/lib/build/js/dialtone_migration_helper/tests/base-to-semantic.test.mjs +8 -8
  17. package/lib/build/js/dialtone_migration_helper/tests/size-to-layout-test-examples.vue +16 -0
  18. package/lib/build/js/dialtone_migration_helper/tests/size-to-layout.test.mjs +87 -0
  19. package/lib/build/js/dialtone_migration_helper/tests/success-to-positive-test-examples.vue +166 -0
  20. package/lib/build/js/dialtone_migration_helper/tests/success-to-positive.test.mjs +287 -0
  21. package/lib/build/js/dialtone_migration_helper/tests/utility-class-to-token-stops-radius-examples.vue +66 -0
  22. package/lib/build/js/dialtone_migration_helper/tests/utility-class-to-token-stops.test.mjs +170 -0
  23. package/lib/build/less/components/badge.less +1 -1
  24. package/lib/build/less/components/banner.less +1 -1
  25. package/lib/build/less/components/box.less +9 -22
  26. package/lib/build/less/components/description-list.less +4 -0
  27. package/lib/build/less/components/forms.less +4 -2
  28. package/lib/build/less/components/input.less +2 -2
  29. package/lib/build/less/components/link.less +18 -4
  30. package/lib/build/less/components/modal.less +1 -1
  31. package/lib/build/less/components/notice.less +3 -3
  32. package/lib/build/less/components/progress_circle.less +10 -2
  33. package/lib/build/less/components/prose.less +512 -0
  34. package/lib/build/less/components/rich-text-editor.less +31 -0
  35. package/lib/build/less/components/selects.less +1 -1
  36. package/lib/build/less/components/text.less +2 -0
  37. package/lib/build/less/components/toast.less +1 -1
  38. package/lib/build/less/dialtone.less +1 -0
  39. package/lib/build/less/recipes/leftbar_row.less +2 -2
  40. package/lib/build/less/recipes/settings_menu_button.less +1 -1
  41. package/lib/build/less/recipes/top_banner_info.less +1 -1
  42. package/lib/build/less/utilities/backgrounds.less +12 -0
  43. package/lib/build/less/utilities/borders.less +56 -89
  44. package/lib/build/less/utilities/colors.less +8 -0
  45. package/lib/build/less/utilities/effects.less +1 -0
  46. package/lib/build/less/utilities/flex.less +145 -18
  47. package/lib/build/less/utilities/grid.less +40 -152
  48. package/lib/build/less/utilities/layout.less +19 -7
  49. package/lib/build/less/utilities/sizing.less +148 -143
  50. package/lib/build/less/variables/visual-styles.less +2 -1
  51. package/lib/dist/dialtone-default-theme.css +2840 -1807
  52. package/lib/dist/dialtone-default-theme.min.css +1 -1
  53. package/lib/dist/dialtone-docs.json +1 -1
  54. package/lib/dist/dialtone.css +2747 -1756
  55. package/lib/dist/dialtone.min.css +1 -1
  56. package/lib/dist/js/dialtone_migrate_link_rendering/button-nav-test-examples.vue +92 -0
  57. package/lib/dist/js/dialtone_migrate_link_rendering/button-nav.test.mjs +272 -0
  58. package/lib/dist/js/dialtone_migrate_link_rendering/helpers.mjs +25 -0
  59. package/lib/dist/js/dialtone_migrate_link_rendering/index.mjs +1041 -0
  60. package/lib/dist/js/dialtone_migrate_link_rendering/link-nav-test-examples.vue +97 -0
  61. package/lib/dist/js/dialtone_migrate_link_rendering/link-nav.test.mjs +194 -0
  62. package/lib/dist/js/dialtone_migrate_link_rendering/underline-test-examples.vue +57 -0
  63. package/lib/dist/js/dialtone_migrate_link_rendering/underline.test.mjs +161 -0
  64. package/lib/dist/js/dialtone_migrate_props/index.mjs +794 -0
  65. package/lib/dist/js/dialtone_migrate_props/test.mjs +959 -0
  66. package/lib/dist/js/dialtone_migration_helper/configs/base-to-semantic.mjs +8 -8
  67. package/lib/dist/js/dialtone_migration_helper/configs/size-to-layout.mjs +10 -0
  68. package/lib/dist/js/dialtone_migration_helper/configs/success-to-positive.mjs +73 -0
  69. package/lib/dist/js/dialtone_migration_helper/configs/utility-class-to-token-stops.mjs +92 -12
  70. package/lib/dist/js/dialtone_migration_helper/tests/base-to-semantic-test-examples.vue +10 -10
  71. package/lib/dist/js/dialtone_migration_helper/tests/base-to-semantic.test.mjs +8 -8
  72. package/lib/dist/js/dialtone_migration_helper/tests/size-to-layout-test-examples.vue +16 -0
  73. package/lib/dist/js/dialtone_migration_helper/tests/size-to-layout.test.mjs +87 -0
  74. package/lib/dist/js/dialtone_migration_helper/tests/success-to-positive-test-examples.vue +166 -0
  75. package/lib/dist/js/dialtone_migration_helper/tests/success-to-positive.test.mjs +287 -0
  76. package/lib/dist/js/dialtone_migration_helper/tests/utility-class-to-token-stops-radius-examples.vue +66 -0
  77. package/lib/dist/js/dialtone_migration_helper/tests/utility-class-to-token-stops.test.mjs +170 -0
  78. package/lib/dist/tokens/tokens-101-dark.css +81 -45
  79. package/lib/dist/tokens/tokens-101-light.css +75 -39
  80. package/lib/dist/tokens/tokens-102-dark.css +81 -45
  81. package/lib/dist/tokens/tokens-102-light.css +75 -39
  82. package/lib/dist/tokens/tokens-103-dark.css +81 -45
  83. package/lib/dist/tokens/tokens-103-light.css +75 -39
  84. package/lib/dist/tokens/tokens-104-dark.css +81 -45
  85. package/lib/dist/tokens/tokens-104-light.css +75 -39
  86. package/lib/dist/tokens/tokens-105-dark.css +81 -45
  87. package/lib/dist/tokens/tokens-105-light.css +75 -39
  88. package/lib/dist/tokens/tokens-106-dark.css +81 -45
  89. package/lib/dist/tokens/tokens-106-light.css +75 -39
  90. package/lib/dist/tokens/tokens-107-dark.css +81 -45
  91. package/lib/dist/tokens/tokens-107-light.css +75 -39
  92. package/lib/dist/tokens/tokens-108-dark.css +81 -45
  93. package/lib/dist/tokens/tokens-108-light.css +75 -39
  94. package/lib/dist/tokens/tokens-109-dark.css +81 -45
  95. package/lib/dist/tokens/tokens-109-light.css +75 -39
  96. package/lib/dist/tokens/tokens-110-dark.css +81 -45
  97. package/lib/dist/tokens/tokens-110-light.css +75 -39
  98. package/lib/dist/tokens/tokens-111-dark.css +81 -45
  99. package/lib/dist/tokens/tokens-111-light.css +75 -39
  100. package/lib/dist/tokens/tokens-112-dark.css +81 -45
  101. package/lib/dist/tokens/tokens-112-light.css +75 -39
  102. package/lib/dist/tokens/tokens-113-dark.css +81 -45
  103. package/lib/dist/tokens/tokens-113-light.css +75 -39
  104. package/lib/dist/tokens/tokens-114-dark.css +81 -45
  105. package/lib/dist/tokens/tokens-114-light.css +75 -39
  106. package/lib/dist/tokens/tokens-115-dark.css +81 -45
  107. package/lib/dist/tokens/tokens-115-light.css +75 -39
  108. package/lib/dist/tokens/tokens-116-dark.css +81 -45
  109. package/lib/dist/tokens/tokens-116-light.css +75 -39
  110. package/lib/dist/tokens/tokens-117-dark.css +81 -45
  111. package/lib/dist/tokens/tokens-117-light.css +75 -39
  112. package/lib/dist/tokens/tokens-118-dark.css +81 -45
  113. package/lib/dist/tokens/tokens-118-light.css +75 -39
  114. package/lib/dist/tokens/tokens-119-dark.css +81 -45
  115. package/lib/dist/tokens/tokens-119-light.css +75 -39
  116. package/lib/dist/tokens/tokens-120-dark.css +81 -45
  117. package/lib/dist/tokens/tokens-120-light.css +75 -39
  118. package/lib/dist/tokens/tokens-121-dark.css +81 -45
  119. package/lib/dist/tokens/tokens-121-light.css +75 -39
  120. package/lib/dist/tokens/tokens-122-dark.css +81 -45
  121. package/lib/dist/tokens/tokens-122-light.css +75 -39
  122. package/lib/dist/tokens/tokens-123-dark.css +81 -45
  123. package/lib/dist/tokens/tokens-123-light.css +75 -39
  124. package/lib/dist/tokens/tokens-124-dark.css +81 -45
  125. package/lib/dist/tokens/tokens-124-light.css +75 -39
  126. package/lib/dist/tokens/tokens-125-dark.css +81 -45
  127. package/lib/dist/tokens/tokens-125-light.css +75 -39
  128. package/lib/dist/tokens/tokens-126-dark.css +81 -45
  129. package/lib/dist/tokens/tokens-126-light.css +75 -39
  130. package/lib/dist/tokens/tokens-127-dark.css +81 -45
  131. package/lib/dist/tokens/tokens-127-light.css +75 -39
  132. package/lib/dist/tokens/tokens-128-dark.css +81 -45
  133. package/lib/dist/tokens/tokens-128-light.css +75 -39
  134. package/lib/dist/tokens/tokens-129-dark.css +81 -45
  135. package/lib/dist/tokens/tokens-129-light.css +75 -39
  136. package/lib/dist/tokens/tokens-130-dark.css +81 -45
  137. package/lib/dist/tokens/tokens-130-light.css +75 -39
  138. package/lib/dist/tokens/tokens-131-dark.css +81 -45
  139. package/lib/dist/tokens/tokens-131-light.css +75 -39
  140. package/lib/dist/tokens/tokens-132-dark.css +81 -45
  141. package/lib/dist/tokens/tokens-132-light.css +75 -39
  142. package/lib/dist/tokens/tokens-133-dark.css +81 -45
  143. package/lib/dist/tokens/tokens-133-light.css +75 -39
  144. package/lib/dist/tokens/tokens-134-dark.css +81 -45
  145. package/lib/dist/tokens/tokens-134-light.css +75 -39
  146. package/lib/dist/tokens/tokens-135-dark.css +81 -45
  147. package/lib/dist/tokens/tokens-135-light.css +75 -39
  148. package/lib/dist/tokens/tokens-136-dark.css +81 -45
  149. package/lib/dist/tokens/tokens-136-light.css +75 -39
  150. package/lib/dist/tokens/tokens-137-dark.css +81 -45
  151. package/lib/dist/tokens/tokens-137-light.css +75 -39
  152. package/lib/dist/tokens/tokens-aegean-dark.css +81 -45
  153. package/lib/dist/tokens/tokens-aegean-light.css +75 -39
  154. package/lib/dist/tokens/tokens-base-dark.css +18 -12
  155. package/lib/dist/tokens/tokens-base-light.css +18 -12
  156. package/lib/dist/tokens/tokens-botany-dark.css +81 -45
  157. package/lib/dist/tokens/tokens-botany-light.css +75 -39
  158. package/lib/dist/tokens/tokens-buttercream-dark.css +81 -45
  159. package/lib/dist/tokens/tokens-buttercream-light.css +75 -39
  160. package/lib/dist/tokens/tokens-ceruleo-dark.css +81 -45
  161. package/lib/dist/tokens/tokens-ceruleo-light.css +75 -39
  162. package/lib/dist/tokens/tokens-debug-base.css +6 -0
  163. package/lib/dist/tokens/tokens-debug-dp.css +39 -3
  164. package/lib/dist/tokens/tokens-dp-dark.css +81 -45
  165. package/lib/dist/tokens/tokens-dp-light.css +75 -39
  166. package/lib/dist/tokens/tokens-expressive-dark.css +81 -45
  167. package/lib/dist/tokens/tokens-expressive-light.css +75 -39
  168. package/lib/dist/tokens/tokens-expressive-sm-dark.css +81 -45
  169. package/lib/dist/tokens/tokens-expressive-sm-light.css +75 -39
  170. package/lib/dist/tokens/tokens-high-desert-dark.css +81 -45
  171. package/lib/dist/tokens/tokens-high-desert-light.css +75 -39
  172. package/lib/dist/tokens/tokens-melon-dark.css +81 -45
  173. package/lib/dist/tokens/tokens-melon-light.css +75 -39
  174. package/lib/dist/tokens/tokens-plum-dark.css +81 -45
  175. package/lib/dist/tokens/tokens-plum-light.css +75 -39
  176. package/lib/dist/tokens/tokens-prota-deuter-dark.css +79 -43
  177. package/lib/dist/tokens/tokens-prota-deuter-light.css +74 -38
  178. package/lib/dist/tokens/tokens-sunflower-dark.css +81 -45
  179. package/lib/dist/tokens/tokens-sunflower-light.css +75 -39
  180. package/lib/dist/tokens/tokens-tmo-dark.css +81 -45
  181. package/lib/dist/tokens/tokens-tmo-light.css +75 -39
  182. package/lib/dist/tokens/tokens-trita-dark.css +81 -45
  183. package/lib/dist/tokens/tokens-trita-light.css +75 -39
  184. package/lib/dist/tokens/tokens-verdant-haze-dark.css +81 -45
  185. package/lib/dist/tokens/tokens-verdant-haze-light.css +75 -39
  186. package/lib/dist/tokens-docs.json +1 -1
  187. package/package.json +10 -5
@@ -0,0 +1,512 @@
1
+ @layer dialtone.components {
2
+ .d-prose {
3
+ // ── Typography (size-driven) ──────────────────────────────────────────────
4
+ --prose-font-body: var(--dt-text-body-md);
5
+ --prose-font-h1: var(--dt-text-headline-3xl);
6
+ --prose-font-h2: var(--dt-text-headline-2xl);
7
+ --prose-font-h3: var(--dt-text-headline-xl);
8
+ --prose-font-h4: var(--dt-text-headline-lg);
9
+ --prose-font-h5: var(--dt-text-headline-md);
10
+ --prose-font-h6: var(--dt-text-headline-sm);
11
+ --prose-font-code: var(--dt-text-code-sm);
12
+ --prose-font-code-scale: 85%;
13
+ --prose-font-table: var(--dt-text-body-sm);
14
+ --prose-lh-body: var(--dt-font-line-height-300);
15
+ --prose-lh-h1: var(--dt-font-line-height-100);
16
+ --prose-lh-heading: var(--dt-font-line-height-200);
17
+ --prose-lh-code: var(--dt-font-line-height-300);
18
+
19
+ // ── Spacing (density-driven) ──────────────────────────────────────────────
20
+ --prose-gap-tight: var(--dt-spacing-50);
21
+ --prose-gap-block: var(--dt-spacing-100);
22
+ --prose-gap-cell: var(--dt-spacing-150);
23
+ --prose-gap-section: var(--dt-spacing-200);
24
+ --prose-gap-region: var(--dt-spacing-300);
25
+ --prose-indent: var(--dt-spacing-250);
26
+
27
+ color: var(--dt-color-foreground-primary);
28
+ font: var(--prose-font-body);
29
+ font-weight: inherit;
30
+ font-style: inherit;
31
+ line-height: var(--prose-lh-body);
32
+
33
+ :where(*) {
34
+ all: revert;
35
+ font: var(--prose-font-body);
36
+ font-weight: inherit;
37
+ font-style: inherit;
38
+ line-height: var(--prose-lh-body);
39
+ }
40
+
41
+ > :first-child {
42
+ margin-block-start: 0;
43
+ }
44
+
45
+ :is(h1, h2, h3, h4, h5, h6) {
46
+ color: var(--dt-color-foreground-secondary);
47
+ }
48
+
49
+ :is(h1, h2, h3, h4, h5, h6) + *:not(hr) {
50
+ margin-block-start: var(--prose-gap-tight) !important;
51
+ }
52
+
53
+ // ---------------------------------------------------------------------------
54
+ // HEADINGS
55
+ // ---------------------------------------------------------------------------
56
+
57
+ h1 {
58
+ font: var(--prose-font-h1);
59
+ line-height: var(--prose-lh-h1);
60
+ margin-block: var(--prose-gap-region) var(--prose-gap-block);
61
+ text-wrap: balance;
62
+ }
63
+
64
+ h2 { font: var(--prose-font-h2); }
65
+ h3 { font: var(--prose-font-h3); }
66
+ h4 { font: var(--prose-font-h4); }
67
+ h5 { font: var(--prose-font-h5); }
68
+ h6 { font: var(--prose-font-h6); }
69
+
70
+ h2, h3, h4, h5, h6 {
71
+ line-height: var(--prose-lh-heading);
72
+ margin-block: var(--prose-gap-region) var(--prose-gap-block);
73
+ text-wrap: balance;
74
+ }
75
+
76
+ // ---------------------------------------------------------------------------
77
+ // PARAGRAPHS
78
+ // ---------------------------------------------------------------------------
79
+
80
+ p {
81
+ margin-block: var(--prose-gap-block);
82
+ text-wrap: pretty;
83
+ }
84
+
85
+ // ---------------------------------------------------------------------------
86
+ // LINKS
87
+ // Reuses DtLink (.d-link) visual language.
88
+ // ---------------------------------------------------------------------------
89
+
90
+ a {
91
+ color: var(--dt-color-link-primary);
92
+ text-decoration: underline;
93
+ text-underline-offset: var(--dt-spacing-25);
94
+ text-decoration-thickness: var(--dt-size-border-100);
95
+ border-radius: var(--dt-size-radius-200);
96
+
97
+ &:hover {
98
+ color: var(--dt-color-link-primary-hover);
99
+ text-decoration: none;
100
+ }
101
+
102
+ &:active {
103
+ color: var(--dt-color-link-primary);
104
+ }
105
+
106
+ &:focus-visible {
107
+ text-decoration: none;
108
+ outline: none;
109
+ box-shadow: var(--dt-shadow-focus);
110
+ }
111
+ }
112
+
113
+ // ---------------------------------------------------------------------------
114
+ // INLINE ELEMENTS
115
+ // ---------------------------------------------------------------------------
116
+
117
+ strong, b {
118
+ font-weight: var(--dt-font-weight-bold);
119
+ }
120
+
121
+ em, i {
122
+ font-style: italic;
123
+ }
124
+
125
+ code, kbd {
126
+ color: var(--dt-color-foreground-tertiary);
127
+ font: var(--prose-font-code);
128
+ font-size: var(--prose-font-code-scale);
129
+ background-color: var(--dt-color-surface-secondary-opaque);
130
+ border: var(--dt-size-border-50) solid var(--dt-color-border-subtle);
131
+ border-radius: var(--dt-size-radius-200);
132
+ padding-block: var(--dt-spacing-1);
133
+ padding-inline: var(--dt-spacing-50);
134
+ }
135
+
136
+ kbd {
137
+ border-block-end-width: var(--dt-size-border-200);
138
+ }
139
+
140
+ mark {
141
+ color: inherit;
142
+ background-color: var(--dt-color-surface-warning-opaque);
143
+ border-radius: var(--dt-size-radius-200);
144
+ padding-block: var(--dt-spacing-1);
145
+ padding-inline: var(--dt-spacing-25);
146
+ }
147
+
148
+ small {
149
+ font-weight: var(--dt-font-weight-normal);
150
+ font-size: smaller;
151
+ }
152
+
153
+ sub, sup {
154
+ font-size: smaller;
155
+ }
156
+
157
+ sub { vertical-align: sub; }
158
+ sup { vertical-align: super; }
159
+
160
+ abbr[title] {
161
+ text-decoration: underline dotted;
162
+ text-underline-offset: var(--dt-spacing-25);
163
+ text-decoration-thickness: var(--dt-size-border-100);
164
+ cursor: help;
165
+ }
166
+
167
+ var, samp {
168
+ font: var(--prose-font-code);
169
+ font-size: var(--prose-font-code-scale);
170
+ }
171
+
172
+ var {
173
+ font-style: italic;
174
+ }
175
+
176
+ dfn {
177
+ font-weight: var(--dt-font-weight-semi-bold);
178
+ font-style: italic;
179
+ }
180
+
181
+ del, ins, u {
182
+ text-decoration-thickness: var(--dt-size-border-100);
183
+ }
184
+
185
+ del {
186
+ color: var(--dt-color-foreground-secondary);
187
+ text-decoration: line-through;
188
+ }
189
+
190
+ ins, u {
191
+ text-decoration: underline;
192
+ text-underline-offset: var(--dt-spacing-25);
193
+ }
194
+
195
+ s {
196
+ color: var(--dt-color-foreground-tertiary);
197
+ text-decoration-color: var(--dt-color-foreground-tertiary);
198
+ }
199
+
200
+ // ---------------------------------------------------------------------------
201
+ // HORIZONTAL RULE
202
+ // ---------------------------------------------------------------------------
203
+
204
+ hr {
205
+ border: none;
206
+ border-block-start: var(--dt-size-border-100) solid var(--dt-color-border-default);
207
+ margin-block: var(--prose-gap-region);
208
+ }
209
+
210
+ // ---------------------------------------------------------------------------
211
+ // LISTS
212
+ // ---------------------------------------------------------------------------
213
+
214
+ ul, ol {
215
+ padding-inline-start: var(--prose-indent);
216
+ margin-block-start: var(--prose-gap-block);
217
+ }
218
+
219
+ ul { list-style: disc; }
220
+ ol { list-style: decimal; }
221
+
222
+ li {
223
+ list-style: inherit;
224
+ margin-block: var(--prose-gap-block);
225
+ }
226
+
227
+ ul ul, ul ol, ol ul, ol ol {
228
+ margin-block: var(--prose-gap-block);
229
+ }
230
+
231
+ ul ul { list-style-type: circle; }
232
+ ul ul ul { list-style-type: square; }
233
+ ol ol { list-style-type: lower-alpha; }
234
+ ol ol ol { list-style-type: lower-roman; }
235
+
236
+ li:first-child {
237
+ margin-block-start: 0;
238
+ }
239
+
240
+ li > p:first-child {
241
+ margin-block-start: 0;
242
+ }
243
+
244
+ // Task lists (checkbox items)
245
+ li:has(> input[type="checkbox"]:not([class])) {
246
+ list-style-type: none;
247
+ margin-inline-start: calc(-1 * var(--prose-indent));
248
+ }
249
+
250
+ li > input[type="checkbox"] {
251
+ margin-inline-end: var(--prose-gap-tight);
252
+ }
253
+
254
+ // ---------------------------------------------------------------------------
255
+ // BLOCKQUOTE
256
+ // ---------------------------------------------------------------------------
257
+
258
+ blockquote {
259
+ border-inline-start: var(--dt-size-border-300) solid var(--dt-color-border-default);
260
+ padding-inline-start: var(--prose-gap-cell);
261
+ margin-inline: 0;
262
+ margin-block: var(--prose-gap-section);
263
+ color: var(--dt-color-foreground-tertiary);
264
+ }
265
+
266
+ blockquote footer {
267
+ color: var(--dt-color-foreground-muted);
268
+ margin-block-start: var(--prose-gap-tight);
269
+ }
270
+
271
+ cite {
272
+ font-style: italic;
273
+ }
274
+
275
+ // ---------------------------------------------------------------------------
276
+ // CODE BLOCKS
277
+ // ---------------------------------------------------------------------------
278
+
279
+ pre {
280
+ padding: var(--prose-gap-section);
281
+ overflow-x: auto;
282
+ color: var(--dt-color-foreground-tertiary);
283
+ font: var(--prose-font-code);
284
+ font-size: var(--prose-font-code-scale);
285
+ line-height: var(--prose-lh-code);
286
+ background-color: var(--dt-color-surface-secondary-opaque);
287
+ border-radius: var(--dt-size-radius-300);
288
+ margin-block: var(--prose-gap-cell);
289
+ }
290
+
291
+ pre code {
292
+ display: block;
293
+ padding: 0;
294
+ color: var(--dt-color-foreground-tertiary);
295
+ font: inherit;
296
+ background-color: transparent;
297
+ border: none;
298
+ border-radius: 0;
299
+ }
300
+
301
+ // ---------------------------------------------------------------------------
302
+ // TABLES
303
+ // ---------------------------------------------------------------------------
304
+
305
+ table {
306
+ font: var(--prose-font-table);
307
+ border-collapse: collapse;
308
+ border-spacing: 0;
309
+ inline-size: 100%;
310
+ margin-block: var(--prose-gap-section);
311
+ }
312
+
313
+ caption {
314
+ color: var(--dt-color-foreground-muted);
315
+ font-weight: var(--dt-font-weight-medium);
316
+ text-align: start;
317
+ caption-side: bottom;
318
+ padding-block-start: var(--prose-gap-cell);
319
+ }
320
+
321
+ thead {
322
+ border-block-end: var(--dt-size-border-200) solid var(--dt-color-border-default);
323
+ }
324
+
325
+ th, tbody td {
326
+ padding: var(--prose-gap-cell) var(--prose-gap-section);
327
+ }
328
+
329
+ th {
330
+ color: var(--dt-color-foreground-secondary);
331
+ font-weight: var(--dt-font-weight-semi-bold);
332
+ text-align: start;
333
+ }
334
+
335
+ tbody th,
336
+ tbody td {
337
+ border-block-end: var(--dt-size-border-100) solid var(--dt-color-border-subtle);
338
+ }
339
+
340
+ th[scope="row"] {
341
+ color: var(--dt-color-foreground-primary);
342
+ font-weight: var(--dt-font-weight-semi-bold);
343
+ }
344
+
345
+ tbody tr:last-child td,
346
+ tbody tr:last-child th {
347
+ border-block-end-width: 0;
348
+ }
349
+
350
+ // ---------------------------------------------------------------------------
351
+ // DEFINITION LIST
352
+ // ---------------------------------------------------------------------------
353
+
354
+ dl {
355
+ margin-block-start: var(--prose-gap-section);
356
+ }
357
+
358
+ dt {
359
+ font-weight: var(--dt-font-weight-bold);
360
+ margin-block-start: var(--prose-gap-section);
361
+ }
362
+
363
+ dt:first-child {
364
+ margin-block-start: 0;
365
+ }
366
+
367
+ dd {
368
+ margin-inline-start: 0;
369
+ }
370
+
371
+ // ---------------------------------------------------------------------------
372
+ // FIGURE & FIGCAPTION
373
+ // ---------------------------------------------------------------------------
374
+
375
+ figure {
376
+ margin-inline: 0;
377
+ margin-block-start: var(--prose-gap-section);
378
+ }
379
+
380
+ figcaption {
381
+ color: var(--dt-color-foreground-muted);
382
+ font-weight: var(--dt-font-weight-medium);
383
+ text-align: start;
384
+ padding-block-start: var(--prose-gap-tight);
385
+ }
386
+
387
+ // ---------------------------------------------------------------------------
388
+ // IMAGES
389
+ // ---------------------------------------------------------------------------
390
+
391
+ img {
392
+ max-inline-size: 100%;
393
+ block-size: auto;
394
+ border-radius: var(--dt-size-radius-200);
395
+ }
396
+
397
+ // ---------------------------------------------------------------------------
398
+ // DETAILS & SUMMARY
399
+ // ---------------------------------------------------------------------------
400
+
401
+ details {
402
+ padding: var(--prose-gap-cell);
403
+ border: var(--dt-size-border-100) solid var(--dt-color-border-subtle);
404
+ border-radius: var(--dt-size-radius-400);
405
+ margin-block-start: var(--prose-gap-section);
406
+ }
407
+
408
+ details:has(summary:hover) {
409
+ background-color: var(--dt-color-surface-secondary-opaque);
410
+ }
411
+
412
+ summary {
413
+ display: block;
414
+ font-weight: var(--dt-font-weight-semi-bold);
415
+ list-style: none;
416
+ cursor: pointer;
417
+ text-box-trim: trim-both;
418
+
419
+ &::marker,
420
+ &::-webkit-details-marker {
421
+ display: none;
422
+ }
423
+
424
+ &::before {
425
+ display: inline-block;
426
+ color: var(--dt-color-foreground-muted);
427
+ font-size: var(--dt-font-size-200);
428
+ transition: transform var(--dt-duration-moderate1) var(--dt-ease-in-out);
429
+ content: '›';
430
+ margin-inline-end: var(--prose-gap-tight);
431
+ }
432
+ }
433
+
434
+ details[open] > summary::before {
435
+ transform: rotate(90deg);
436
+ }
437
+
438
+ details[open] > summary {
439
+ margin-block-end: var(--prose-gap-section);
440
+ }
441
+
442
+ details[open] > :last-child {
443
+ margin-block-end: 0;
444
+ }
445
+
446
+ // =========================================================================
447
+ // SIZE MODIFIERS
448
+ // =========================================================================
449
+
450
+ &--size-100 {
451
+ --prose-font-body: var(--dt-text-body-xs);
452
+ --prose-font-h1: var(--dt-text-headline-xl);
453
+ --prose-font-h2: var(--dt-text-headline-lg);
454
+ --prose-font-h3: var(--dt-text-headline-md);
455
+ --prose-font-h4: var(--dt-text-headline-sm);
456
+ --prose-font-h5: var(--dt-text-headline-xs);
457
+ --prose-font-h6: var(--dt-text-headline-xs);
458
+ --prose-font-code: var(--dt-text-code-xs);
459
+ --prose-font-table: var(--dt-text-body-xs);
460
+ --prose-gap-tight: var(--dt-spacing-50);
461
+ --prose-gap-block: var(--dt-spacing-75);
462
+ --prose-gap-cell: var(--dt-spacing-75);
463
+ --prose-gap-section: var(--dt-spacing-150);
464
+ --prose-gap-region: var(--dt-spacing-150);
465
+ --prose-indent: var(--dt-spacing-175);
466
+ }
467
+
468
+ &--size-200 {
469
+ --prose-font-body: var(--dt-text-body-sm);
470
+ --prose-font-h1: var(--dt-text-headline-2xl);
471
+ --prose-font-h2: var(--dt-text-headline-xl);
472
+ --prose-font-h3: var(--dt-text-headline-lg);
473
+ --prose-font-h4: var(--dt-text-headline-md);
474
+ --prose-font-h5: var(--dt-text-headline-sm);
475
+ --prose-font-h6: var(--dt-text-headline-xs);
476
+ --prose-font-code: var(--dt-text-code-xs);
477
+ --prose-font-table: var(--dt-text-body-xs);
478
+ --prose-gap-tight: var(--dt-spacing-50);
479
+ --prose-gap-block: var(--dt-spacing-100);
480
+ --prose-gap-cell: var(--dt-spacing-100);
481
+ --prose-gap-section: var(--dt-spacing-150);
482
+ --prose-gap-region: var(--dt-spacing-200);
483
+ --prose-indent: var(--dt-spacing-200);
484
+ }
485
+
486
+ &--size-300 {
487
+ // default
488
+ }
489
+
490
+ // =========================================================================
491
+ // DENSITY MODIFIERS
492
+ // =========================================================================
493
+
494
+ &--density-100 {
495
+ --prose-lh-body: var(--dt-font-line-height-200);
496
+ --prose-lh-h1: var(--dt-font-line-height-100);
497
+ --prose-lh-heading: var(--dt-font-line-height-100);
498
+ --prose-lh-code: var(--dt-font-line-height-200);
499
+ }
500
+
501
+ &--density-200 {
502
+ // default
503
+ }
504
+
505
+ &--density-300 {
506
+ --prose-lh-body: var(--dt-font-line-height-400);
507
+ --prose-lh-h1: var(--dt-font-line-height-200);
508
+ --prose-lh-heading: var(--dt-font-line-height-300);
509
+ --prose-lh-code: var(--dt-font-line-height-400);
510
+ }
511
+ }
512
+ }
@@ -18,6 +18,13 @@
18
18
  > .ProseMirror {
19
19
  box-shadow: none;
20
20
 
21
+ // inline-flex/inline-block create atomic boxes that break arrow-key cursor navigation
22
+ // in contenteditable — ArrowDown jumps to link start, ArrowUp freezes inside links.
23
+ // Resetting to inline restores correct caret positioning without affecting visual output.
24
+ :where(a) {
25
+ display: inline;
26
+ }
27
+
21
28
  p.is-editor-empty:first-child::before {
22
29
  float: inline-start;
23
30
  block-size: 0;
@@ -34,10 +41,34 @@
34
41
  list-style-type: disc;
35
42
  }
36
43
 
44
+ ul ul > li {
45
+ list-style-type: circle;
46
+ }
47
+
48
+ ul ul ul > li {
49
+ list-style-type: square;
50
+ }
51
+
52
+ ul ul ul ul > li {
53
+ list-style-type: disc;
54
+ }
55
+
37
56
  ol > li {
38
57
  list-style-type: decimal;
39
58
  }
40
59
 
60
+ ol ol > li {
61
+ list-style-type: lower-alpha;
62
+ }
63
+
64
+ ol ol ol > li {
65
+ list-style-type: lower-roman;
66
+ }
67
+
68
+ ol ol ol ol > li {
69
+ list-style-type: decimal;
70
+ }
71
+
41
72
  blockquote {
42
73
  margin-inline-start: 0;
43
74
  padding-inline-start: var(--dt-spacing-100);
@@ -141,7 +141,7 @@
141
141
  .d-select__input--success,
142
142
  .d-select__input--positive:hover,
143
143
  .d-select__input--success:hover {
144
- --input-color-border: var(--dt-inputs-color-border-success);
144
+ --input-color-border: var(--dt-inputs-color-border-positive);
145
145
  }
146
146
 
147
147
  .d-select__input--critical,
@@ -232,6 +232,8 @@
232
232
  &--tone-positive { --text-tone: var(--dt-color-foreground-positive); }
233
233
  &--tone-positive-strong { --text-tone: var(--dt-color-foreground-positive-strong); }
234
234
  &--tone-warning { --text-tone: var(--dt-color-foreground-warning); }
235
+ &--tone-info { --text-tone: var(--dt-color-foreground-info); }
236
+ &--tone-info-strong { --text-tone: var(--dt-color-foreground-info-strong); }
235
237
  &--tone-neutral-black { --text-tone: var(--dt-color-neutral-black); }
236
238
  &--tone-neutral-white { --text-tone: var(--dt-color-neutral-white); }
237
239
  }
@@ -236,7 +236,7 @@
236
236
  // ----------------------------------------------------------------------------
237
237
  .d-toast-alternate--positive,
238
238
  .d-toast-alternate--success {
239
- --toast-alternate-border-color: var(--dt-color-border-success-subtle);
239
+ --toast-alternate-border-color: var(--dt-color-border-positive-subtle);
240
240
  }
241
241
 
242
242
  // $$ GRADIENT
@@ -64,6 +64,7 @@
64
64
  @import 'components/scroller';
65
65
  @import 'components/skeleton';
66
66
  @import 'components/tabs';
67
+ @import 'components/prose';
67
68
  @import 'components/scrollbar';
68
69
  @import 'components/emoji-picker';
69
70
  @import 'components/filter-pill';
@@ -204,8 +204,8 @@
204
204
  --button-color-background: color-mix(in srgb, var(--dt-shell-mention-color-surface-primary) 30%, var(--dt-color-surface-primary) 100%);
205
205
  }
206
206
 
207
- .d-fc-success,
208
- .d-fc-positive {
207
+ .d-fc-positive,
208
+ .d-fc-success {
209
209
  color:var(--dt-shell-color-foreground-positive)!important;
210
210
  }
211
211
 
@@ -19,7 +19,7 @@
19
19
  .d-recipe-settings-menu-button-update {
20
20
  block-size: var(--dt-layout-50);
21
21
  padding-inline-start: var(--dt-spacing-150);
22
- color: var(--dt-color-blue-800); // TODO
22
+ color: var(--dt-color-foreground-info);
23
23
  background-color: var(--dt-color-surface-info);
24
24
  border-color: var(--dt-color-border-default);
25
25
  border-radius: var(--dt-size-radius-pill);
@@ -31,7 +31,7 @@
31
31
 
32
32
  .d-recipe-top-banner-info--positive,
33
33
  .d-recipe-top-banner-info--success {
34
- background-color: var(--dt-color-surface-success);
34
+ background-color: var(--dt-color-surface-positive);
35
35
  }
36
36
 
37
37
  .d-recipe-top-banner-info--critical {
@@ -15,6 +15,18 @@
15
15
  // • GRADIENTS
16
16
  // • PATTERNS
17
17
  //
18
+ // @@ @PROPERTY REGISTRATIONS
19
+ // ----------------------------------------------------------------------------
20
+ // Register opacity custom properties as non-inheriting so `--bgo` set on an
21
+ // ancestor does not bleed into descendants using `.d-bgc-*`. With universal
22
+ // syntax and no initial-value, `var(--bgo, alpha)` still falls back to the
23
+ // source color's alpha channel when no opacity utility is applied.
24
+ @property --bgo { syntax: "*"; inherits: false; }
25
+
26
+ // `--bgg-size` is consumed by `.d-bgs-var` with fallback `100% 100%`; register
27
+ // as non-inheriting so a parent setting it doesn't override descendants.
28
+ @property --bgg-size { syntax: "*"; inherits: false; }
29
+
18
30
  // ============================================================================
19
31
  // $ BACKGROUND ATTACHMENT
20
32
  // ----------------------------------------------------------------------------