@a4ui/core 0.25.0 → 0.26.0

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/README.md CHANGED
@@ -188,12 +188,12 @@ full list):
188
188
 
189
189
  | Category | Representative components |
190
190
  | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
191
- | Forms | `Input`, `Select`, `Checkbox`, `DateField`, `Combobox`, `TagInput`, `Slider`, `NumberInput`, `PromptComposer`, `InlineSelect` |
191
+ | Forms | `Input`, `Select`, `Checkbox`, `DateField`, `Combobox`, `TagInput`, `Slider`, `NumberInput`, `PromptComposer`, `InlineSelect`, `PillSearch` |
192
192
  | Overlays | `Modal`, `Drawer`, `Popover`, `Tooltip`, `AlertDialog`, `ContextMenu`, `HoverCard` |
193
- | Data & display | `Table`, `DataGrid`, `Tree`, `Calendar`, `Timeline`, `Stat`, `Descriptions`, `SpecSheet`, `RatingsSummary`, `LogoWall`, `ChatThread`, `Message`, `Citation`, `CalendarHeatmap` |
194
- | Navigation | `Tabs`, `Breadcrumb`, `Pagination`, `Command`, `Anchor`, `Stepper`, `BottomNavigation` |
193
+ | Data & display | `Table`, `DataGrid`, `Tree`, `Calendar`, `Timeline`, `Stat`, `Descriptions`, `SpecSheet`, `RatingsSummary`, `LogoWall`, `ChatThread`, `Message`, `Citation`, `CodeTabs`, `CalendarHeatmap` |
194
+ | Navigation | `Tabs`, `Breadcrumb`, `Pagination`, `Command`, `Anchor`, `Stepper`, `BottomNavigation`, `CategoryStrip` |
195
195
  | Feedback | `Alert`, `AnnouncementBar`, `Toast`, `Progress`, `Skeleton`, `Empty`, `Result`, `NotificationCenter` |
196
- | Layout | `AppShell`, `SpaceBackground`, `ThemedScenery`, `Card`, `Splitter`, `Affix`, `NavGroup`, `FloatingToolbar`, `ArtifactPanel` |
196
+ | Layout | `AppShell`, `SpaceBackground`, `ThemedScenery`, `Card`, `Splitter`, `Affix`, `NavGroup`, `FloatingToolbar`, `ArtifactPanel`, `MasterDetail` |
197
197
  | Commerce | `ProductCard`, `ProductGrid`, `PriceTag`, `PriceBlock`, `QuantityStepper`, `CartLine`, `CartSummary`, `FilterGroup`, `FacetSidebar`, `ConditionScale` |
198
198
  | Charts | `Sparkline`, `BarChart`, `DonutChart` (native SVG, theme-tinted) |
199
199
  | Motion | `ScrambleText`, `TextReveal`, `Typewriter`, `GradientText`, `HoldToConfirm`, `LoadingDots`, `FillText`, `Curtain`, `Parallax`, `ScrollProgress`, `Ripple`, `Magnetic`, `TiltCard`, `Spotlight`, `NotificationStack`, `MultiStateBadge`, `NowPlaying`, `Expandable`, `StreamingText`, `PageTransition`, `flyToCart` |
package/dist/elements.css CHANGED
@@ -1355,6 +1355,9 @@ video {
1355
1355
  max-width: 1536px;
1356
1356
  }
1357
1357
  }
1358
+ .pressed {
1359
+ box-shadow: inset 0 1px 2px hsl(var(--shadow) / 0.18);
1360
+ }
1358
1361
  .card {
1359
1362
  position: relative;
1360
1363
  background: hsl(var(--card) / 0.55);
@@ -2043,6 +2046,9 @@ html.calm .tile-glass {
2043
2046
  .min-w-\[4rem\] {
2044
2047
  min-width: 4rem;
2045
2048
  }
2049
+ .min-w-\[6\.5rem\] {
2050
+ min-width: 6.5rem;
2051
+ }
2046
2052
  .min-w-\[8rem\] {
2047
2053
  min-width: 8rem;
2048
2054
  }
@@ -2409,6 +2415,10 @@ html.calm .tile-glass {
2409
2415
  .rounded-xl {
2410
2416
  border-radius: 1rem;
2411
2417
  }
2418
+ .rounded-l-full {
2419
+ border-top-left-radius: 9999px;
2420
+ border-bottom-left-radius: 9999px;
2421
+ }
2412
2422
  .rounded-l-md {
2413
2423
  border-top-left-radius: 0.375rem;
2414
2424
  border-bottom-left-radius: 0.375rem;
@@ -2437,6 +2447,9 @@ html.calm .tile-glass {
2437
2447
  .border-b {
2438
2448
  border-bottom-width: 1px;
2439
2449
  }
2450
+ .border-b-2 {
2451
+ border-bottom-width: 2px;
2452
+ }
2440
2453
  .border-l {
2441
2454
  border-left-width: 1px;
2442
2455
  }
@@ -2472,6 +2485,10 @@ html.calm .tile-glass {
2472
2485
  .border-emerald-500\/30 {
2473
2486
  border-color: rgb(16 185 129 / 0.3);
2474
2487
  }
2488
+ .border-foreground {
2489
+ --tw-border-opacity: 1;
2490
+ border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));
2491
+ }
2475
2492
  .border-input {
2476
2493
  --tw-border-opacity: 1;
2477
2494
  border-color: hsl(var(--input) / var(--tw-border-opacity, 1));
@@ -2499,6 +2516,9 @@ html.calm .tile-glass {
2499
2516
  .border-sky-500\/30 {
2500
2517
  border-color: rgb(14 165 233 / 0.3);
2501
2518
  }
2519
+ .border-transparent {
2520
+ border-color: transparent;
2521
+ }
2502
2522
  .bg-accent {
2503
2523
  --tw-bg-opacity: 1;
2504
2524
  background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));
@@ -2780,6 +2800,9 @@ html.calm .tile-glass {
2780
2800
  .pb-1 {
2781
2801
  padding-bottom: 0.25rem;
2782
2802
  }
2803
+ .pb-2 {
2804
+ padding-bottom: 0.5rem;
2805
+ }
2783
2806
  .pb-3 {
2784
2807
  padding-bottom: 0.75rem;
2785
2808
  }
@@ -2798,9 +2821,15 @@ html.calm .tile-glass {
2798
2821
  .pr-1 {
2799
2822
  padding-right: 0.25rem;
2800
2823
  }
2824
+ .pr-1\.5 {
2825
+ padding-right: 0.375rem;
2826
+ }
2801
2827
  .pr-10 {
2802
2828
  padding-right: 2.5rem;
2803
2829
  }
2830
+ .pr-2 {
2831
+ padding-right: 0.5rem;
2832
+ }
2804
2833
  .pt-0 {
2805
2834
  padding-top: 0px;
2806
2835
  }
@@ -3287,6 +3316,9 @@ html.calm .tile-glass {
3287
3316
  .duration-500 {
3288
3317
  transition-duration: 500ms;
3289
3318
  }
3319
+ .ease-\[\2026\] {
3320
+ transition-timing-function: …;
3321
+ }
3290
3322
  .ease-in-out {
3291
3323
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3292
3324
  }
@@ -3296,6 +3328,9 @@ html.calm .tile-glass {
3296
3328
  .will-change-transform {
3297
3329
  will-change: transform;
3298
3330
  }
3331
+ .\[scrollbar-width\:none\] {
3332
+ scrollbar-width: none;
3333
+ }
3299
3334
  .placeholder\:text-muted-foreground::placeholder {
3300
3335
  --tw-text-opacity: 1;
3301
3336
  color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));
@@ -3380,6 +3415,9 @@ html.calm .tile-glass {
3380
3415
  .hover\:bg-muted\/40:hover {
3381
3416
  background-color: hsl(var(--muted) / 0.4);
3382
3417
  }
3418
+ .hover\:bg-muted\/60:hover {
3419
+ background-color: hsl(var(--muted) / 0.6);
3420
+ }
3383
3421
  .hover\:bg-muted\/70:hover {
3384
3422
  background-color: hsl(var(--muted) / 0.7);
3385
3423
  }
@@ -3597,6 +3635,10 @@ html.calm .tile-glass {
3597
3635
  display: block;
3598
3636
  }
3599
3637
 
3638
+ .sm\:max-h-\[28rem\] {
3639
+ max-height: 28rem;
3640
+ }
3641
+
3600
3642
  .sm\:grid-cols-2 {
3601
3643
  grid-template-columns: repeat(2, minmax(0, 1fr));
3602
3644
  }
@@ -3605,6 +3647,10 @@ html.calm .tile-glass {
3605
3647
  grid-template-columns: repeat(3, minmax(0, 1fr));
3606
3648
  }
3607
3649
 
3650
+ .sm\:grid-cols-\[16rem_1fr\] {
3651
+ grid-template-columns: 16rem 1fr;
3652
+ }
3653
+
3608
3654
  .sm\:flex-row {
3609
3655
  flex-direction: row;
3610
3656
  }
@@ -3696,6 +3742,9 @@ html.calm .tile-glass {
3696
3742
  .\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker {
3697
3743
  display: none;
3698
3744
  }
3745
+ .\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
3746
+ display: none;
3747
+ }
3699
3748
  .\[\&\[data-expanded\]\>svg\]\:rotate-90[data-expanded]>svg {
3700
3749
  --tw-rotate: 90deg;
3701
3750
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
package/dist/full.css CHANGED
@@ -1355,6 +1355,9 @@ video {
1355
1355
  max-width: 1536px;
1356
1356
  }
1357
1357
  }
1358
+ .pressed {
1359
+ box-shadow: inset 0 1px 2px hsl(var(--shadow) / 0.18);
1360
+ }
1358
1361
  .card {
1359
1362
  position: relative;
1360
1363
  background: hsl(var(--card) / 0.55);
@@ -2043,6 +2046,9 @@ html.calm .tile-glass {
2043
2046
  .min-w-\[4rem\] {
2044
2047
  min-width: 4rem;
2045
2048
  }
2049
+ .min-w-\[6\.5rem\] {
2050
+ min-width: 6.5rem;
2051
+ }
2046
2052
  .min-w-\[8rem\] {
2047
2053
  min-width: 8rem;
2048
2054
  }
@@ -2409,6 +2415,10 @@ html.calm .tile-glass {
2409
2415
  .rounded-xl {
2410
2416
  border-radius: 1rem;
2411
2417
  }
2418
+ .rounded-l-full {
2419
+ border-top-left-radius: 9999px;
2420
+ border-bottom-left-radius: 9999px;
2421
+ }
2412
2422
  .rounded-l-md {
2413
2423
  border-top-left-radius: 0.375rem;
2414
2424
  border-bottom-left-radius: 0.375rem;
@@ -2437,6 +2447,9 @@ html.calm .tile-glass {
2437
2447
  .border-b {
2438
2448
  border-bottom-width: 1px;
2439
2449
  }
2450
+ .border-b-2 {
2451
+ border-bottom-width: 2px;
2452
+ }
2440
2453
  .border-l {
2441
2454
  border-left-width: 1px;
2442
2455
  }
@@ -2472,6 +2485,10 @@ html.calm .tile-glass {
2472
2485
  .border-emerald-500\/30 {
2473
2486
  border-color: rgb(16 185 129 / 0.3);
2474
2487
  }
2488
+ .border-foreground {
2489
+ --tw-border-opacity: 1;
2490
+ border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));
2491
+ }
2475
2492
  .border-input {
2476
2493
  --tw-border-opacity: 1;
2477
2494
  border-color: hsl(var(--input) / var(--tw-border-opacity, 1));
@@ -2499,6 +2516,9 @@ html.calm .tile-glass {
2499
2516
  .border-sky-500\/30 {
2500
2517
  border-color: rgb(14 165 233 / 0.3);
2501
2518
  }
2519
+ .border-transparent {
2520
+ border-color: transparent;
2521
+ }
2502
2522
  .bg-accent {
2503
2523
  --tw-bg-opacity: 1;
2504
2524
  background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));
@@ -2780,6 +2800,9 @@ html.calm .tile-glass {
2780
2800
  .pb-1 {
2781
2801
  padding-bottom: 0.25rem;
2782
2802
  }
2803
+ .pb-2 {
2804
+ padding-bottom: 0.5rem;
2805
+ }
2783
2806
  .pb-3 {
2784
2807
  padding-bottom: 0.75rem;
2785
2808
  }
@@ -2798,9 +2821,15 @@ html.calm .tile-glass {
2798
2821
  .pr-1 {
2799
2822
  padding-right: 0.25rem;
2800
2823
  }
2824
+ .pr-1\.5 {
2825
+ padding-right: 0.375rem;
2826
+ }
2801
2827
  .pr-10 {
2802
2828
  padding-right: 2.5rem;
2803
2829
  }
2830
+ .pr-2 {
2831
+ padding-right: 0.5rem;
2832
+ }
2804
2833
  .pt-0 {
2805
2834
  padding-top: 0px;
2806
2835
  }
@@ -3287,6 +3316,9 @@ html.calm .tile-glass {
3287
3316
  .duration-500 {
3288
3317
  transition-duration: 500ms;
3289
3318
  }
3319
+ .ease-\[\2026\] {
3320
+ transition-timing-function: …;
3321
+ }
3290
3322
  .ease-in-out {
3291
3323
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3292
3324
  }
@@ -3296,6 +3328,9 @@ html.calm .tile-glass {
3296
3328
  .will-change-transform {
3297
3329
  will-change: transform;
3298
3330
  }
3331
+ .\[scrollbar-width\:none\] {
3332
+ scrollbar-width: none;
3333
+ }
3299
3334
  .placeholder\:text-muted-foreground::placeholder {
3300
3335
  --tw-text-opacity: 1;
3301
3336
  color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));
@@ -3380,6 +3415,9 @@ html.calm .tile-glass {
3380
3415
  .hover\:bg-muted\/40:hover {
3381
3416
  background-color: hsl(var(--muted) / 0.4);
3382
3417
  }
3418
+ .hover\:bg-muted\/60:hover {
3419
+ background-color: hsl(var(--muted) / 0.6);
3420
+ }
3383
3421
  .hover\:bg-muted\/70:hover {
3384
3422
  background-color: hsl(var(--muted) / 0.7);
3385
3423
  }
@@ -3597,6 +3635,10 @@ html.calm .tile-glass {
3597
3635
  display: block;
3598
3636
  }
3599
3637
 
3638
+ .sm\:max-h-\[28rem\] {
3639
+ max-height: 28rem;
3640
+ }
3641
+
3600
3642
  .sm\:grid-cols-2 {
3601
3643
  grid-template-columns: repeat(2, minmax(0, 1fr));
3602
3644
  }
@@ -3605,6 +3647,10 @@ html.calm .tile-glass {
3605
3647
  grid-template-columns: repeat(3, minmax(0, 1fr));
3606
3648
  }
3607
3649
 
3650
+ .sm\:grid-cols-\[16rem_1fr\] {
3651
+ grid-template-columns: 16rem 1fr;
3652
+ }
3653
+
3608
3654
  .sm\:flex-row {
3609
3655
  flex-direction: row;
3610
3656
  }
@@ -3696,6 +3742,9 @@ html.calm .tile-glass {
3696
3742
  .\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker {
3697
3743
  display: none;
3698
3744
  }
3745
+ .\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
3746
+ display: none;
3747
+ }
3699
3748
  .\[\&\[data-expanded\]\>svg\]\:rotate-90[data-expanded]>svg {
3700
3749
  --tw-rotate: 90deg;
3701
3750
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const A4UI_VERSION = "0.25.0";
1
+ export declare const A4UI_VERSION = "0.26.0";
2
2
  export { cn } from './lib/cn';
3
3
  export { useTheme, toggleTheme, setTheme, storedTheme, applyTheme, toggled, type Theme } from './lib/theme';
4
4
  export { useEffects, isCalm, setEffects } from './lib/effects';
@@ -7,6 +7,7 @@ export { useMediaQuery } from './lib/media';
7
7
  export { remeasureAfterLayout } from './lib/virtual';
8
8
  export { createOptimistic } from './lib/createOptimistic';
9
9
  export { startViewTransition } from './lib/viewTransition';
10
+ export { EASE, SPRING, type EaseName, type SpringName } from './lib/easing';
10
11
  export { Accordion, type AccordionItem } from './ui/Accordion';
11
12
  export { Badge, type BadgeTone } from './ui/Badge';
12
13
  export { Button, type ButtonVariant } from './ui/Button';
@@ -110,6 +111,10 @@ export { ArtifactPanel, type ArtifactPanelProps } from './ui/ArtifactPanel';
110
111
  export { FloatingToolbar, type FloatingToolbarProps } from './ui/FloatingToolbar';
111
112
  export { PageTransition, type PageTransitionProps } from './ui/PageTransition';
112
113
  export { InlineSelect, type InlineSelectProps, type InlineSelectOption } from './ui/InlineSelect';
114
+ export { CodeTabs, type CodeTabsProps, type CodeTab } from './ui/CodeTabs';
115
+ export { PillSearch, type PillSearchProps, type PillField } from './ui/PillSearch';
116
+ export { CategoryStrip, type CategoryStripProps, type CategoryItem } from './ui/CategoryStrip';
117
+ export { MasterDetail, type MasterDetailProps, type MasterDetailItem } from './ui/MasterDetail';
113
118
  export { ScrambleText, type ScrambleTextProps } from './ui/ScrambleText';
114
119
  export { TextReveal, type TextRevealProps } from './ui/TextReveal';
115
120
  export { HoldToConfirm, type HoldToConfirmProps } from './ui/HoldToConfirm';