@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.
Files changed (116) hide show
  1. package/dist/components/accordion/Accordion.js +1 -1
  2. package/dist/components/avatar/Avatar.js +2 -1
  3. package/dist/components/avatar/Avatar.js.map +1 -1
  4. package/dist/components/banner/banner-regular/BannerRegularActions.js +1 -1
  5. package/dist/components/banner/banner-slim/BannerSlimButton.js +1 -1
  6. package/dist/components/banner/banner-slim/BannerSlimContainer.js +2 -1
  7. package/dist/components/banner/banner-slim/BannerSlimContainer.js.map +1 -1
  8. package/dist/components/button/Button.js +3 -0
  9. package/dist/components/button/Button.js.map +1 -1
  10. package/dist/components/calendar/Calendar.js +2 -1
  11. package/dist/components/calendar/Calendar.js.map +1 -1
  12. package/dist/components/carousel/Carousel.js +1 -1
  13. package/dist/components/carousel/CarouselPagination.js +2 -1
  14. package/dist/components/carousel/CarouselPagination.js.map +1 -1
  15. package/dist/components/carousel/CarouselSlide.js +1 -1
  16. package/dist/components/carousel/CarouselSlider.js +1 -1
  17. package/dist/components/data-table/DataTableGlobalFilter.js +1 -1
  18. package/dist/components/data-table/DataTableHead.js +1 -1
  19. package/dist/components/data-table/DataTableHeaderCell.js +2 -1
  20. package/dist/components/data-table/DataTableHeaderCell.js.map +1 -1
  21. package/dist/components/data-table/DataTableRow.js +2 -1
  22. package/dist/components/data-table/DataTableRow.js.map +1 -1
  23. package/dist/components/data-table/DataTableTable.js +2 -1
  24. package/dist/components/data-table/DataTableTable.js.map +1 -1
  25. package/dist/components/data-table/drag-and-drop/DragAndDropTable.js +1 -1
  26. package/dist/components/dialog/DialogHeading.js +2 -2
  27. package/dist/components/dialog/DialogHeading.js.map +1 -1
  28. package/dist/components/dropdown-menu/DropdownMenuLabel.js +1 -1
  29. package/dist/components/field-wrapper/FieldDescription.js +1 -1
  30. package/dist/components/field-wrapper/FieldWrapper.d.ts +9 -2
  31. package/dist/components/field-wrapper/FieldWrapper.js +4 -2
  32. package/dist/components/field-wrapper/FieldWrapper.js.map +1 -1
  33. package/dist/components/field-wrapper/InlineFieldWrapper.js +1 -1
  34. package/dist/components/file-input/FileInput.js +1 -1
  35. package/dist/components/image/ImageCredit.js +1 -1
  36. package/dist/components/loader/Loader.js +2 -1
  37. package/dist/components/loader/Loader.js.map +1 -1
  38. package/dist/components/markdown-content/components/MarkdownList.js +1 -1
  39. package/dist/components/markdown-content/components/MarkdownThematicBreak.js +1 -1
  40. package/dist/components/navigation/NavigationMenu.js +2 -1
  41. package/dist/components/navigation/NavigationMenu.js.map +1 -1
  42. package/dist/components/navigation/NavigationMenuDropdownTrigger.js +2 -1
  43. package/dist/components/navigation/NavigationMenuDropdownTrigger.js.map +1 -1
  44. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalItem.js +1 -1
  45. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalItemContent.js +1 -1
  46. package/dist/components/number-input/NumberInput.js +2 -1
  47. package/dist/components/number-input/NumberInput.js.map +1 -1
  48. package/dist/components/pagination/Pagination.js +1 -1
  49. package/dist/components/password-field/PasswordField.js +1 -1
  50. package/dist/components/password-input/PasswordInput.js +1 -1
  51. package/dist/components/radio-card/RadioCardGroup.js +1 -1
  52. package/dist/components/search-input/SearchInput.js +2 -1
  53. package/dist/components/search-input/SearchInput.js.map +1 -1
  54. package/dist/components/section-message/SectionMessageDescription.js +1 -1
  55. package/dist/components/section-message/SectionMessageDismiss.js +1 -1
  56. package/dist/components/section-message/SectionMessageIcon.js +1 -1
  57. package/dist/components/section-message/SectionMessageLayout.js +2 -1
  58. package/dist/components/section-message/SectionMessageLayout.js.map +1 -1
  59. package/dist/components/segmented-control/SegmentedControlBadge.js +1 -1
  60. package/dist/components/select-menu/SelectMenu.d.ts +3 -2
  61. package/dist/components/select-menu/SelectMenu.js +1 -1
  62. package/dist/components/select-menu/SelectMenuContent.d.ts +3 -1
  63. package/dist/components/select-menu/SelectMenuContent.js +16 -11
  64. package/dist/components/select-menu/SelectMenuContent.js.map +1 -1
  65. package/dist/components/select-menu/SelectMenuItem.js +5 -4
  66. package/dist/components/select-menu/SelectMenuItem.js.map +1 -1
  67. package/dist/components/select-menu/SelectMenuLabel.js +1 -1
  68. package/dist/components/select-menu/SelectMenuTrigger.d.ts +1 -1
  69. package/dist/components/select-menu/SelectMenuTrigger.js.map +1 -1
  70. package/dist/components/select-menu-field/SelectMenuField.js +5 -1
  71. package/dist/components/select-menu-field/SelectMenuField.js.map +1 -1
  72. package/dist/components/side-bar/SideBar.js +2 -1
  73. package/dist/components/side-bar/SideBar.js.map +1 -1
  74. package/dist/components/skeleton-loader/SkeletonBarChart.js +1 -1
  75. package/dist/components/skeleton-loader/SkeletonButton.js +1 -1
  76. package/dist/components/skeleton-loader/SkeletonCard.js +1 -1
  77. package/dist/components/skeleton-loader/SkeletonColumnChart.js +1 -1
  78. package/dist/components/skeleton-loader/SkeletonDoughnutChart.js +1 -1
  79. package/dist/components/skeleton-loader/SkeletonHeading.js +1 -1
  80. package/dist/components/skeleton-loader/SkeletonPanelList.js +1 -1
  81. package/dist/components/skeleton-loader/SkeletonSubjectList.js +1 -1
  82. package/dist/components/skeleton-loader/SkeletonTable.js +3 -3
  83. package/dist/components/skeleton-loader/SkeletonTable.js.map +1 -1
  84. package/dist/components/skeleton-loader/SkeletonTabs.js +1 -1
  85. package/dist/components/sortable/SortableItem.js +1 -1
  86. package/dist/components/stepper/Stepper.js +1 -1
  87. package/dist/components/table/Table.js +2 -1
  88. package/dist/components/table/Table.js.map +1 -1
  89. package/dist/components/table/TableStickyColumnsContainer.js +1 -1
  90. package/dist/components/tile-toggle-group/TileToggleGroupRoot.js +1 -1
  91. package/dist/components/toast/ToastCloseButton.js +1 -1
  92. package/dist/components/toggle-group/ToggleGroupRoot.js +2 -1
  93. package/dist/components/toggle-group/ToggleGroupRoot.js.map +1 -1
  94. package/dist/components/top-bar/TopBar.js +1 -1
  95. package/dist/components/top-bar/TopBar.js.map +1 -1
  96. package/dist/components/top-bar/TopBarBrand.js +2 -1
  97. package/dist/components/top-bar/TopBarBrand.js.map +1 -1
  98. package/dist/components/tree/TreeCollapsibleContent.js +1 -1
  99. package/dist/components/tree/TreeCollapsibleTrigger.js +2 -1
  100. package/dist/components/tree/TreeCollapsibleTrigger.js.map +1 -1
  101. package/dist/components/tree/TreeIcon.js +1 -1
  102. package/dist/components/tree/TreeListItem.js +1 -1
  103. package/dist/components/tree/TreeText.js +1 -1
  104. package/dist/docgen.json +1 -1
  105. package/dist/index.cjs.js +156 -28
  106. package/dist/index.cjs.js.map +1 -1
  107. package/dist/index.js +2 -1
  108. package/dist/styled.d.ts +2 -3
  109. package/dist/styled.js +51 -19
  110. package/dist/styled.js.map +1 -1
  111. package/dist/utilities/tw-merge/index.d.ts +11 -0
  112. package/dist/utilities/tw-merge/index.js +86 -0
  113. package/dist/utilities/tw-merge/index.js.map +1 -0
  114. package/package.json +2 -33
  115. package/scripts/generate-responsive-variant-classes.mjs +103 -32
  116. 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
- let text = element.getText().trim()
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
- function generateResponsiveVariantClasses(variants) {
200
- const breakpoints = ['sm', 'md', 'lg', 'xl']
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 Array.from(classes).sort()
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 = extractUniqueClasses(allClasses)
238
- const breakpointPrefix = `{,sm:,md:,lg:,xl:}`
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 = Array.from(files)
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 = generateResponsiveVariantClasses(allVariants)
416
+ const allClasses = extractVariantClasses(allVariants)
357
417
 
358
418
  console.log(
359
- `✨ Generated ${allClasses.length} responsive variant class combinations\n`
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
- fs.writeFileSync(cssOutputPath, cssContent, 'utf-8')
366
-
367
- console.log(`✅ Generated ${path.relative(cwd, cssOutputPath)}`)
368
- console.log(` Contains ${allClasses.length} variant class combinations\n`)
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
- generateResponsiveVariantClasses,
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('{,sm:,md:,lg:,xl:}{*: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-subtle),bg-(--base),bg-(--base-1),bg-(--base-11),bg-(--base-3),bg-(--solid-base,var(--base)),bg-[unset],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-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-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,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,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-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-4,top-safe,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}');
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}');