@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 +4 -4
- package/dist/elements.css +49 -0
- package/dist/full.css +49 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +3009 -2814
- package/dist/lib/easing.d.ts +42 -0
- package/dist/ui/CategoryStrip.d.ts +24 -0
- package/dist/ui/CodeTabs.d.ts +27 -0
- package/dist/ui/MasterDetail.d.ts +27 -0
- package/dist/ui/PillSearch.d.ts +38 -0
- package/package.json +1 -1
- package/preset.js +20 -0
- package/src/index.ts +8 -1
- package/src/lib/easing.ts +43 -0
- package/src/ui/CategoryStrip.tsx +80 -0
- package/src/ui/CodeTabs.tsx +100 -0
- package/src/ui/MasterDetail.tsx +117 -0
- package/src/ui/PillSearch.tsx +86 -0
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.
|
|
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';
|