@atom-learning/components 11.0.0 → 11.2.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.
- package/dist/components/accordion/Accordion.js +1 -1
- package/dist/components/avatar/Avatar.js +2 -1
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularActions.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimButton.js +1 -1
- package/dist/components/banner/banner-slim/BannerSlimContainer.js +2 -1
- package/dist/components/banner/banner-slim/BannerSlimContainer.js.map +1 -1
- package/dist/components/button/Button.js +3 -0
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/calendar/Calendar.js +2 -1
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/carousel/Carousel.js +1 -1
- package/dist/components/carousel/CarouselPagination.js +2 -1
- package/dist/components/carousel/CarouselPagination.js.map +1 -1
- package/dist/components/carousel/CarouselSlide.js +1 -1
- package/dist/components/carousel/CarouselSlider.js +1 -1
- package/dist/components/data-table/DataTableGlobalFilter.js +1 -1
- package/dist/components/data-table/DataTableHead.js +1 -1
- package/dist/components/data-table/DataTableHeaderCell.js +2 -1
- package/dist/components/data-table/DataTableHeaderCell.js.map +1 -1
- package/dist/components/data-table/DataTableRow.js +2 -1
- package/dist/components/data-table/DataTableRow.js.map +1 -1
- package/dist/components/data-table/DataTableTable.js +2 -1
- package/dist/components/data-table/DataTableTable.js.map +1 -1
- package/dist/components/data-table/drag-and-drop/DragAndDropTable.js +1 -1
- package/dist/components/dialog/DialogHeading.js +2 -2
- package/dist/components/dialog/DialogHeading.js.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenuLabel.js +1 -1
- package/dist/components/field-wrapper/FieldDescription.js +1 -1
- package/dist/components/field-wrapper/FieldWrapper.d.ts +9 -2
- package/dist/components/field-wrapper/FieldWrapper.js +4 -2
- package/dist/components/field-wrapper/FieldWrapper.js.map +1 -1
- package/dist/components/field-wrapper/InlineFieldWrapper.js +1 -1
- package/dist/components/file-input/FileInput.js +1 -1
- package/dist/components/image/ImageCredit.js +1 -1
- package/dist/components/loader/Loader.js +2 -1
- package/dist/components/loader/Loader.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownList.js +1 -1
- package/dist/components/markdown-content/components/MarkdownThematicBreak.js +1 -1
- package/dist/components/navigation/NavigationMenu.js +2 -1
- package/dist/components/navigation/NavigationMenu.js.map +1 -1
- package/dist/components/navigation/NavigationMenuDropdownTrigger.js +2 -1
- package/dist/components/navigation/NavigationMenuDropdownTrigger.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalItem.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalItemContent.js +1 -1
- package/dist/components/number-input/NumberInput.js +2 -1
- package/dist/components/number-input/NumberInput.js.map +1 -1
- package/dist/components/pagination/Pagination.js +1 -1
- package/dist/components/password-field/PasswordField.js +1 -1
- package/dist/components/password-input/PasswordInput.js +1 -1
- package/dist/components/radio-card/RadioCardGroup.js +1 -1
- package/dist/components/search-input/SearchInput.js +2 -1
- package/dist/components/search-input/SearchInput.js.map +1 -1
- package/dist/components/section-message/SectionMessageDescription.js +1 -1
- package/dist/components/section-message/SectionMessageDismiss.js +1 -1
- package/dist/components/section-message/SectionMessageIcon.js +1 -1
- package/dist/components/section-message/SectionMessageLayout.js +2 -1
- package/dist/components/section-message/SectionMessageLayout.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlBadge.js +1 -1
- package/dist/components/select-menu/SelectMenu.d.ts +3 -2
- package/dist/components/select-menu/SelectMenu.js +1 -1
- package/dist/components/select-menu/SelectMenuContent.d.ts +3 -1
- package/dist/components/select-menu/SelectMenuContent.js +16 -11
- package/dist/components/select-menu/SelectMenuContent.js.map +1 -1
- package/dist/components/select-menu/SelectMenuItem.js +5 -4
- package/dist/components/select-menu/SelectMenuItem.js.map +1 -1
- package/dist/components/select-menu/SelectMenuLabel.js +1 -1
- package/dist/components/select-menu/SelectMenuTrigger.d.ts +1 -1
- package/dist/components/select-menu/SelectMenuTrigger.js.map +1 -1
- package/dist/components/select-menu-field/SelectMenuField.js +5 -1
- package/dist/components/select-menu-field/SelectMenuField.js.map +1 -1
- package/dist/components/side-bar/SideBar.js +2 -1
- package/dist/components/side-bar/SideBar.js.map +1 -1
- package/dist/components/skeleton-loader/SkeletonBarChart.js +1 -1
- package/dist/components/skeleton-loader/SkeletonButton.js +1 -1
- package/dist/components/skeleton-loader/SkeletonCard.js +1 -1
- package/dist/components/skeleton-loader/SkeletonColumnChart.js +1 -1
- package/dist/components/skeleton-loader/SkeletonDoughnutChart.js +1 -1
- package/dist/components/skeleton-loader/SkeletonHeading.js +1 -1
- package/dist/components/skeleton-loader/SkeletonPanelList.js +1 -1
- package/dist/components/skeleton-loader/SkeletonSubjectList.js +1 -1
- package/dist/components/skeleton-loader/SkeletonTable.js +3 -3
- package/dist/components/skeleton-loader/SkeletonTable.js.map +1 -1
- package/dist/components/skeleton-loader/SkeletonTabs.js +1 -1
- package/dist/components/sortable/SortableItem.js +1 -1
- package/dist/components/stepper/Stepper.js +1 -1
- package/dist/components/table/Table.js +2 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/TableStickyColumnsContainer.js +1 -1
- package/dist/components/tile-toggle-group/TileToggleGroupRoot.js +1 -1
- package/dist/components/toast/ToastCloseButton.js +1 -1
- package/dist/components/toggle-group/ToggleGroupRoot.js +2 -1
- package/dist/components/toggle-group/ToggleGroupRoot.js.map +1 -1
- package/dist/components/top-bar/TopBar.js +1 -1
- package/dist/components/top-bar/TopBar.js.map +1 -1
- package/dist/components/top-bar/TopBarBrand.js +2 -1
- package/dist/components/top-bar/TopBarBrand.js.map +1 -1
- package/dist/components/tree/TreeCollapsibleContent.js +1 -1
- package/dist/components/tree/TreeCollapsibleTrigger.js +2 -1
- package/dist/components/tree/TreeCollapsibleTrigger.js.map +1 -1
- package/dist/components/tree/TreeIcon.js +1 -1
- package/dist/components/tree/TreeListItem.js +1 -1
- package/dist/components/tree/TreeText.js +1 -1
- package/dist/docgen.json +1 -1
- package/dist/index.cjs.js +156 -28
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/styled.d.ts +2 -3
- package/dist/styled.js +51 -19
- package/dist/styled.js.map +1 -1
- package/dist/utilities/tw-merge/index.d.ts +11 -0
- package/dist/utilities/tw-merge/index.js +86 -0
- package/dist/utilities/tw-merge/index.js.map +1 -0
- package/package.json +2 -33
- package/scripts/generate-responsive-variant-classes.mjs +103 -32
- package/src/responsive-variant-classes.css +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs'
|
|
2
2
|
import path from 'node:path'
|
|
3
3
|
import { fileURLToPath } from 'node:url'
|
|
4
|
+
|
|
4
5
|
import g from 'glob'
|
|
5
6
|
import { Project, SyntaxKind } from 'ts-morph'
|
|
6
7
|
|
|
@@ -19,7 +20,7 @@ function extractArrayElements(node) {
|
|
|
19
20
|
} catch {
|
|
20
21
|
// Fallback: if getLiteralValue() fails, try to extract from text
|
|
21
22
|
// This can happen with malformed strings or edge cases
|
|
22
|
-
|
|
23
|
+
const text = element.getText().trim()
|
|
23
24
|
// Remove surrounding quotes
|
|
24
25
|
const quoteMatch = text.match(/^(['"`])([\s\S]*)\1$/)
|
|
25
26
|
if (quoteMatch) {
|
|
@@ -133,6 +134,42 @@ function extractVariantsFromAST(sourceFile) {
|
|
|
133
134
|
SyntaxKind.ObjectLiteralExpression
|
|
134
135
|
)
|
|
135
136
|
|
|
137
|
+
// compoundVariants resolve per breakpoint too, so their classes need the
|
|
138
|
+
// same prefixed forms in the safelist as the plain variants'
|
|
139
|
+
const compoundVariantsValue = getPropertyValue(configObj, 'compoundVariants')
|
|
140
|
+
|
|
141
|
+
if (
|
|
142
|
+
compoundVariantsValue &&
|
|
143
|
+
compoundVariantsValue.getKind() === SyntaxKind.ArrayLiteralExpression
|
|
144
|
+
) {
|
|
145
|
+
const compoundClasses = []
|
|
146
|
+
|
|
147
|
+
for (const element of compoundVariantsValue
|
|
148
|
+
.asKindOrThrow(SyntaxKind.ArrayLiteralExpression)
|
|
149
|
+
.getElements()) {
|
|
150
|
+
if (element.getKind() !== SyntaxKind.ObjectLiteralExpression) continue
|
|
151
|
+
|
|
152
|
+
const classValue = getPropertyValue(
|
|
153
|
+
element.asKindOrThrow(SyntaxKind.ObjectLiteralExpression),
|
|
154
|
+
'class'
|
|
155
|
+
)
|
|
156
|
+
if (!classValue) continue
|
|
157
|
+
|
|
158
|
+
compoundClasses.push(...extractClasses(classValue))
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (compoundClasses.length > 0) {
|
|
162
|
+
variants.compoundVariants = {
|
|
163
|
+
class: [
|
|
164
|
+
...new Set([
|
|
165
|
+
...(variants.compoundVariants?.class ?? []),
|
|
166
|
+
...compoundClasses
|
|
167
|
+
])
|
|
168
|
+
]
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
136
173
|
for (const variantProp of variantsObj.getProperties()) {
|
|
137
174
|
if (variantProp.getKind() !== SyntaxKind.PropertyAssignment) continue
|
|
138
175
|
|
|
@@ -196,8 +233,13 @@ function extractVariantsFromAST(sourceFile) {
|
|
|
196
233
|
return Object.keys(variants).length > 0 ? variants : null
|
|
197
234
|
}
|
|
198
235
|
|
|
199
|
-
|
|
200
|
-
|
|
236
|
+
/**
|
|
237
|
+
* Collect the unprefixed class names used by every responsive-enabled variant.
|
|
238
|
+
*
|
|
239
|
+
* Breakpoint prefixes belong to generateCSSFileContent, which emits them as a
|
|
240
|
+
* brace alternation, so adding `sm:`/`md:`/… here would only be collapsed again.
|
|
241
|
+
*/
|
|
242
|
+
function extractVariantClasses(variants) {
|
|
201
243
|
const classes = new Set()
|
|
202
244
|
|
|
203
245
|
for (const variantOptions of Object.values(variants)) {
|
|
@@ -205,37 +247,26 @@ function generateResponsiveVariantClasses(variants) {
|
|
|
205
247
|
if (Array.isArray(classList)) {
|
|
206
248
|
for (const cls of classList) {
|
|
207
249
|
const trimmed = typeof cls === 'string' ? cls.trim() : ''
|
|
208
|
-
if (trimmed)
|
|
209
|
-
classes.add(trimmed)
|
|
210
|
-
for (const bp of breakpoints) {
|
|
211
|
-
classes.add(`${bp}:${trimmed}`)
|
|
212
|
-
}
|
|
213
|
-
}
|
|
250
|
+
if (trimmed) classes.add(trimmed)
|
|
214
251
|
}
|
|
215
252
|
}
|
|
216
253
|
}
|
|
217
254
|
}
|
|
218
255
|
|
|
219
|
-
return
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
function extractUniqueClasses(allClasses) {
|
|
223
|
-
const uniqueClasses = new Set()
|
|
224
|
-
|
|
225
|
-
for (const cls of allClasses) {
|
|
226
|
-
const match = cls.match(/^(sm|md|lg|xl):(.+)$/)
|
|
227
|
-
uniqueClasses.add(match ? match[2] : cls)
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
return Array.from(uniqueClasses).sort()
|
|
256
|
+
return [...classes].sort()
|
|
231
257
|
}
|
|
232
258
|
|
|
233
259
|
/**
|
|
234
260
|
* Generate CSS file content with @source inline() patterns
|
|
235
261
|
*/
|
|
236
262
|
function generateCSSFileContent(allClasses) {
|
|
237
|
-
const uniqueClasses =
|
|
238
|
-
|
|
263
|
+
const uniqueClasses = [...new Set(allClasses)].sort()
|
|
264
|
+
// Prefixed forms only. A responsive variant builds `sm:h-px` by concatenation
|
|
265
|
+
// at runtime, so no scanner can see it; the bare `h-px` is a literal in the
|
|
266
|
+
// component source that ships verbatim in dist, so Tailwind finds it by
|
|
267
|
+
// scanning the package. Adding a bare alternative here would emit a fifth of
|
|
268
|
+
// this file's rules for classes that are already covered.
|
|
269
|
+
const breakpointPrefix = `{sm:,md:,lg:,xl:}`
|
|
239
270
|
const classPattern = `{${uniqueClasses.join(',')}}`
|
|
240
271
|
const pattern = `@source inline('${breakpointPrefix}${classPattern}');`
|
|
241
272
|
|
|
@@ -257,6 +288,30 @@ ${pattern}
|
|
|
257
288
|
`
|
|
258
289
|
}
|
|
259
290
|
|
|
291
|
+
/**
|
|
292
|
+
* Write the CSS file only when its content actually changed.
|
|
293
|
+
*
|
|
294
|
+
* The generator runs on every source-file save via the dev-server watcher, so
|
|
295
|
+
* an unconditional write rewrites identical bytes constantly. Because this file
|
|
296
|
+
* is @import-ed into the Tailwind entry with @source inline(...), each rewrite
|
|
297
|
+
* makes @tailwindcss/vite trigger a full page reload — breaking HMR. Diffing
|
|
298
|
+
* against the existing content lets unchanged saves Fast-Refresh. See #857.
|
|
299
|
+
*
|
|
300
|
+
* @param {string} cssOutputPath - Absolute path of the CSS file to write
|
|
301
|
+
* @param {string} cssContent - The content to write
|
|
302
|
+
* @returns {boolean} true if the file was (over)written, false if unchanged
|
|
303
|
+
*/
|
|
304
|
+
function writeCSSFileIfChanged(cssOutputPath, cssContent) {
|
|
305
|
+
const existing = fs.existsSync(cssOutputPath)
|
|
306
|
+
? fs.readFileSync(cssOutputPath, 'utf-8')
|
|
307
|
+
: null
|
|
308
|
+
|
|
309
|
+
if (cssContent === existing) return false
|
|
310
|
+
|
|
311
|
+
fs.writeFileSync(cssOutputPath, cssContent, 'utf-8')
|
|
312
|
+
return true
|
|
313
|
+
}
|
|
314
|
+
|
|
260
315
|
/**
|
|
261
316
|
* Main function to generate responsive variant classes safelist
|
|
262
317
|
*
|
|
@@ -280,9 +335,14 @@ async function generateResponsiveVariantClassesSafelist(options = {}) {
|
|
|
280
335
|
})
|
|
281
336
|
|
|
282
337
|
const patterns = Array.isArray(input) ? input : [input]
|
|
338
|
+
// Test files declare throwaway styled() fixtures whose classes never reach
|
|
339
|
+
// a consumer, so safelisting them ships dead CSS. `-d` covers the tsd
|
|
340
|
+
// type-test files, which are just as much fixtures as the runtime specs.
|
|
283
341
|
const ignorePatterns = [
|
|
284
342
|
'**/*.test.tsx',
|
|
285
343
|
'**/*.test.ts',
|
|
344
|
+
'**/*.test-d.tsx',
|
|
345
|
+
'**/*.test-d.ts',
|
|
286
346
|
'**/__snapshots__/**',
|
|
287
347
|
'**/node_modules/**',
|
|
288
348
|
'**/responsive-variant-classes.css'
|
|
@@ -294,7 +354,7 @@ async function generateResponsiveVariantClassesSafelist(options = {}) {
|
|
|
294
354
|
matches.forEach((file) => files.add(file))
|
|
295
355
|
}
|
|
296
356
|
|
|
297
|
-
const fileArray =
|
|
357
|
+
const fileArray = [...files]
|
|
298
358
|
console.log(`Found ${fileArray.length} component files to scan\n`)
|
|
299
359
|
|
|
300
360
|
const allVariants = {}
|
|
@@ -353,19 +413,29 @@ async function generateResponsiveVariantClassesSafelist(options = {}) {
|
|
|
353
413
|
)
|
|
354
414
|
|
|
355
415
|
// Generate all responsive classes
|
|
356
|
-
const allClasses =
|
|
416
|
+
const allClasses = extractVariantClasses(allVariants)
|
|
357
417
|
|
|
358
418
|
console.log(
|
|
359
|
-
`✨ Generated ${allClasses.length}
|
|
419
|
+
`✨ Generated ${allClasses.length} variant classes × 4 breakpoints\n`
|
|
360
420
|
)
|
|
361
421
|
|
|
362
422
|
// Generate and write the CSS file
|
|
363
423
|
const cssContent = generateCSSFileContent(allClasses)
|
|
364
424
|
const cssOutputPath = path.resolve(cwd, outputPath)
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
425
|
+
const written = writeCSSFileIfChanged(cssOutputPath, cssContent)
|
|
426
|
+
|
|
427
|
+
if (written) {
|
|
428
|
+
console.log(`✅ Generated ${path.relative(cwd, cssOutputPath)}`)
|
|
429
|
+
console.log(` Contains ${allClasses.length} variant classes\n`)
|
|
430
|
+
} else {
|
|
431
|
+
// Skipping the rewrite is the whole point: this file is @import-ed into
|
|
432
|
+
// the Tailwind entry with @source inline(...), so any rewrite — even
|
|
433
|
+
// identical bytes — makes @tailwindcss/vite trigger a full page reload,
|
|
434
|
+
// killing Fast Refresh/HMR in consuming apps. See #857.
|
|
435
|
+
console.log(
|
|
436
|
+
`✅ ${path.relative(cwd, cssOutputPath)} unchanged — skipped write (${allClasses.length} classes)\n`
|
|
437
|
+
)
|
|
438
|
+
}
|
|
369
439
|
} catch (error) {
|
|
370
440
|
console.error('❌ Error generating responsive variant classes:', error)
|
|
371
441
|
process.exit(1)
|
|
@@ -380,8 +450,9 @@ export {
|
|
|
380
450
|
extractArrayElements,
|
|
381
451
|
extractClasses,
|
|
382
452
|
extractVariantsFromAST,
|
|
383
|
-
|
|
384
|
-
generateCSSFileContent
|
|
453
|
+
extractVariantClasses,
|
|
454
|
+
generateCSSFileContent,
|
|
455
|
+
writeCSSFileIfChanged
|
|
385
456
|
}
|
|
386
457
|
|
|
387
458
|
// Run the script if this file is executed directly (not imported)
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
* Uses Tailwind v4's @source inline() pattern syntax for efficient class detection.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
@source inline('{
|
|
15
|
+
@source inline('{sm:,md:,lg:,xl:}{(--bg-background-subtle-hover),*:not-last:mr-2,*:not-last:mr-3,-mt-1,[&>[data-dialog-close]]:right-4,[&>[data-dialog-close]]:right-safe-offset-4,[&>[data-dialog-close]]:top-4,[&>[data-dialog-close]]:top-safe-offset-4,[&_svg]:size-4,[&_svg]:size-5,[&_svg]:size-[22px],[--active:rgba(255,255,255,0.75)],[--active:var(--color-danger-dark)],[--active:var(--color-primary-1000)],[--active:var(--color-primary-1100)],[--active:var(--color-primary-1200)],[--active:var(--color-success-dark)],[--active:var(--color-warning-dark)],[--active:var(--color-white)],[--banner-heading-color:var(--color-foreground-7-plus)],[--banner-text-color:var(--color-grey-100)],[--base:var(--color-danger)],[--base:var(--color-grey-700)],[--base:var(--color-primary-1000)],[--base:var(--color-primary-800)],[--base:var(--color-success)],[--base:var(--color-warning)],[--base:var(--color-white)],[--base:white],[--interact:rgba(255,255,255,0.9)],[--interact:var(--color-danger-mid)],[--interact:var(--color-primary-1100)],[--interact:var(--color-primary-900)],[--interact:var(--color-success-mid)],[--interact:var(--color-warning-mid)],[--interact:var(--color-white)],[--solid-active:var(--color-grey-200)],[--solid-base:var(--color-white)],[--solid-interact:var(--color-grey-100)],[--solid-text:var(--color-grey-1200)],[--text:var(--color-grey-800)],[--text:var(--color-primary-800)],absolute,bg-(--background-bold),bg-(--background-bold-hover),bg-(--background-subtle),bg-(--base),bg-(--base-1),bg-(--base-11),bg-(--base-3),bg-(--solid-base,var(--base)),bg-[color-mix(in_srgb,(--text-on-white),transparent_92%)],bg-[unset],bg-danger-light,bg-grey-100,bg-grey-400,bg-position-[right_--spacing(2)_top_50%,0_0],bg-position-[right_--spacing(3)_top_50%,0_0],bg-size-[18px_auto,100%],bg-size-[20px_auto,100%],bg-transparent,bg-white,block,border,border-(--base-3),border-b,border-b-(--border-bottom),border-current,border-danger,border-grey-700,border-none,border-white,capsize-[0.1309],capsize-[0.2078],capsize-[0.2709],capsize-[0.3336],capsize-[0.3506],capsize-[0.3864],capsize-[0.3983],capsize-[0.4056],capsize-[0.4364],capsize-after-[0.2405],capsize-after-[0.2634],capsize-after-[0.26],capsize-after-[0.2],capsize-before-[0.1405],capsize-before-[0.16],capsize-before-[0.1],capsize-before-[0.2114],capsize-none,cursor-not-allowed,cursor-pointer,data-[state=inactive]:hover:bg-marsh-300,data-[state=inactive]:hover:bg-primary-300,disabled:cursor-not-allowed,disabled:opacity-30,flex,flex-1,flex-[unset],flex-col,focus-visible:border-marsh-800,focus-visible:border-primary-800,focus:border-primary-800,focus:outline-2,focus:outline-blue-800,focus:outline-danger,focus:outline-none,focus:outline-offset-1,focus:outline-solid,focus:z-1,font-body,font-bold,font-display,font-medium,font-mono,font-normal,font-semibold,gap-2,gap-3,gap-4,h-1,h-10,h-12,h-16,h-2,h-8,h-full,h-px,h-safe-offset-top-16,h-safe-offset-top-24,h-screen,hidden,hover:bg-(--background-bold-hover),hover:bg-(--background-subtle-hover),hover:bg-[color-mix(in_srgb,(--text-on-white),transparent_92%)],hover:text-(--text-bold),hover:text-(--text-on-white),hover:text-(--text-subtle-hover),leading-[1.08],leading-[1.12],leading-[1.14],leading-[1.28],leading-[1.40],leading-[1.42],leading-[1.52],leading-[1.53],leading-[1.6],leading-none,leading-normal,max-h-12,max-h-18,max-h-8,max-h-[142px],max-h-[213px],max-h-[90vh],max-h-screen,max-w-14,max-w-21,max-w-[126px],max-w-[190px],max-w-[285px],max-w-[90vw],max-w-full,max-w-screen,mb-3,mb-4,mb-6,min-h-10,min-h-12,min-h-8,min-w-10,min-w-12,min-w-15,min-w-8,mr-10,not-disabled:active:bg-(--active),not-disabled:active:bg-(--solid-active,var(--active)),not-disabled:active:text-(--active),not-disabled:focus:bg-(--interact),not-disabled:focus:bg-(--solid-interact,var(--interact)),not-disabled:focus:no-underline,not-disabled:focus:text-(--interact),not-disabled:focus:text-(--solid-text,white),not-disabled:focus:text-(--text,white),not-disabled:hover:bg-(--interact),not-disabled:hover:bg-(--solid-interact,var(--interact)),not-disabled:hover:no-underline,not-disabled:hover:text-(--interact),not-disabled:hover:text-(--solid-text,white),not-disabled:hover:text-(--text,white),opacity-60,p-0,p-10,p-2,p-3,p-4,p-6,p-8,pl-2,pl-3,pointer-events-none,pr-10,pr-8,pt-safe,px-1,px-2,px-4,px-6,px-8,py-0,py-0.5,py-1,py-4,py-6,right-4,rounded-full,rounded-md,rounded-none,rounded-sm,rounded-xl,shadow-[0px_4px_4px_-2px_rgba(31,31,31,0.1)],size-1.5,size-10,size-12,size-3,size-4,size-6,size-8,size-auto,static,stroke-2,stroke-[1.5],stroke-[1.75],supports-color-mix:backdrop-blur-sm,supports-color-mix:bg-[color-mix(in_hsl,(--base-1)_70%,transparent)],supports-svh:h-auto,supports-svh:h-svh,supports-svh:max-h-[90vh],supports-svh:max-h-svh,text-(--base),text-(--foreground-7-plus),text-(--solid-text,white),text-(--text,white),text-(--text-bold),text-(--text-on-white),text-(--text-subtle),text-(--text-subtle-hover),text-2xl,text-3xl,text-4xl,text-danger,text-grey-800,text-info,text-lg,text-md,text-primary-800,text-sm,text-success,text-warning,text-white!,text-xl,text-xs,top-0,top-4,top-safe-offset-2,tracking-[0.01em],w-120,w-150,w-200,w-275,w-95,w-[unset]!,w-auto,w-full,w-max,w-px,w-screen}');
|