@a4ui/core 0.27.0 → 0.29.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
@@ -186,17 +186,17 @@ mode switch — a theme recolors underneath either mode.
186
186
  **[docs site](https://a4ui.pages.dev/)** or `src/index.ts` for the
187
187
  full list):
188
188
 
189
- | Category | Representative components |
190
- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
191
- | Forms | `Input`, `Select`, `Checkbox`, `DateField`, `Combobox`, `TagInput`, `Slider`, `NumberInput`, `PromptComposer`, `InlineSelect`, `PillSearch` |
192
- | Overlays | `Modal`, `Drawer`, `Popover`, `Tooltip`, `AlertDialog`, `ContextMenu`, `HoverCard`, `SlashMenu` |
193
- | Data & display | `Table`, `DataGrid`, `Tree`, `Calendar`, `Timeline`, `Stat`, `Descriptions`, `SpecSheet`, `RatingsSummary`, `LogoWall`, `ChatThread`, `Message`, `Citation`, `CodeTabs`, `DataView`, `CalendarHeatmap` |
194
- | Navigation | `Tabs`, `Breadcrumb`, `Pagination`, `Command`, `Anchor`, `Stepper`, `BottomNavigation`, `CategoryStrip` |
195
- | Feedback | `Alert`, `AnnouncementBar`, `Toast`, `Progress`, `Skeleton`, `Empty`, `Result`, `NotificationCenter` |
196
- | Layout | `AppShell`, `SpaceBackground`, `ThemedScenery`, `Card`, `Splitter`, `Affix`, `NavGroup`, `FloatingToolbar`, `ArtifactPanel`, `MasterDetail` |
197
- | Commerce | `ProductCard`, `ProductGrid`, `PriceTag`, `PriceBlock`, `QuantityStepper`, `CartLine`, `CartSummary`, `FilterGroup`, `FacetSidebar`, `ConditionScale` |
198
- | Charts | `Sparkline`, `BarChart`, `DonutChart` (native SVG, theme-tinted) |
199
- | Motion | `ScrambleText`, `TextReveal`, `Typewriter`, `GradientText`, `HoldToConfirm`, `LoadingDots`, `FillText`, `Curtain`, `Parallax`, `ScrollProgress`, `Ripple`, `Magnetic`, `TiltCard`, `Spotlight`, `NotificationStack`, `MultiStateBadge`, `NowPlaying`, `Expandable`, `StreamingText`, `PageTransition`, `flyToCart` |
189
+ | Category | Representative components |
190
+ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
191
+ | Forms | `Input`, `Select`, `Checkbox`, `DateField`, `Combobox`, `TagInput`, `Slider`, `NumberInput`, `PromptComposer`, `InlineSelect`, `PillSearch` |
192
+ | Overlays | `Modal`, `Drawer`, `Popover`, `Tooltip`, `AlertDialog`, `ContextMenu`, `HoverCard`, `SlashMenu` |
193
+ | Data & display | `Table`, `DataGrid`, `Tree`, `Calendar`, `Timeline`, `Stat`, `Descriptions`, `SpecSheet`, `RatingsSummary`, `LogoWall`, `ChatThread`, `Message`, `Citation`, `CodeTabs`, `DataView`, `BalanceCard`, `TransactionFeed`, `KpiBlock`, `BlockEditor`, `CalendarHeatmap` |
194
+ | Navigation | `Tabs`, `Breadcrumb`, `Pagination`, `Command`, `Anchor`, `Stepper`, `BottomNavigation`, `CategoryStrip`, `Spaces`, `SideRail` |
195
+ | Feedback | `Alert`, `AnnouncementBar`, `Toast`, `Progress`, `Skeleton`, `Empty`, `Result`, `NotificationCenter` |
196
+ | Layout | `AppShell`, `SpaceBackground`, `ThemedScenery`, `Card`, `Splitter`, `Affix`, `NavGroup`, `FloatingToolbar`, `ArtifactPanel`, `MasterDetail` |
197
+ | Commerce | `ProductCard`, `ProductGrid`, `PriceTag`, `PriceBlock`, `QuantityStepper`, `CartLine`, `CartSummary`, `FilterGroup`, `FacetSidebar`, `ConditionScale` |
198
+ | Charts | `Sparkline`, `BarChart`, `DonutChart` (native SVG, theme-tinted) |
199
+ | Motion | `ScrambleText`, `TextReveal`, `Typewriter`, `GradientText`, `HoldToConfirm`, `LoadingDots`, `FillText`, `Curtain`, `Parallax`, `ScrollProgress`, `Ripple`, `Magnetic`, `TiltCard`, `Spotlight`, `NotificationStack`, `MultiStateBadge`, `NowPlaying`, `Expandable`, `StreamingText`, `PageTransition`, `ScrollScene`, `StickyReveal`, `flyToCart` |
200
200
 
201
201
  Domain-specific sets ship as **subpath entries** so the base package stays lean —
202
202
  e.g. commerce and chart components import from their own paths:
package/dist/elements.css CHANGED
@@ -1481,6 +1481,17 @@ html.calm .tile-glass {
1481
1481
  background: hsl(var(--card) / 0.97);
1482
1482
  }
1483
1483
  }
1484
+ .sr-only {
1485
+ position: absolute;
1486
+ width: 1px;
1487
+ height: 1px;
1488
+ padding: 0;
1489
+ margin: -1px;
1490
+ overflow: hidden;
1491
+ clip: rect(0, 0, 0, 0);
1492
+ white-space: nowrap;
1493
+ border-width: 0;
1494
+ }
1484
1495
  .pointer-events-none {
1485
1496
  pointer-events: none;
1486
1497
  }
@@ -1522,6 +1533,10 @@ html.calm .tile-glass {
1522
1533
  top: 0px;
1523
1534
  bottom: 0px;
1524
1535
  }
1536
+ .inset-y-1 {
1537
+ top: 0.25rem;
1538
+ bottom: 0.25rem;
1539
+ }
1525
1540
  .-bottom-6 {
1526
1541
  bottom: -1.5rem;
1527
1542
  }
@@ -1531,6 +1546,9 @@ html.calm .tile-glass {
1531
1546
  .-right-1 {
1532
1547
  right: -0.25rem;
1533
1548
  }
1549
+ .-right-2 {
1550
+ right: -0.5rem;
1551
+ }
1534
1552
  .-right-32 {
1535
1553
  right: -8rem;
1536
1554
  }
@@ -1543,6 +1561,9 @@ html.calm .tile-glass {
1543
1561
  .-top-1\.5 {
1544
1562
  top: -0.375rem;
1545
1563
  }
1564
+ .-top-2 {
1565
+ top: -0.5rem;
1566
+ }
1546
1567
  .-top-3 {
1547
1568
  top: -0.75rem;
1548
1569
  }
@@ -1700,6 +1721,9 @@ html.calm .tile-glass {
1700
1721
  .ml-auto {
1701
1722
  margin-left: auto;
1702
1723
  }
1724
+ .mr-1 {
1725
+ margin-right: 0.25rem;
1726
+ }
1703
1727
  .mt-0\.5 {
1704
1728
  margin-top: 0.125rem;
1705
1729
  }
@@ -1863,6 +1887,9 @@ html.calm .tile-glass {
1863
1887
  .h-px {
1864
1888
  height: 1px;
1865
1889
  }
1890
+ .h-screen {
1891
+ height: 100vh;
1892
+ }
1866
1893
  .max-h-10 {
1867
1894
  max-height: 2.5rem;
1868
1895
  }
@@ -1941,6 +1968,9 @@ html.calm .tile-glass {
1941
1968
  .w-2 {
1942
1969
  width: 0.5rem;
1943
1970
  }
1971
+ .w-20 {
1972
+ width: 5rem;
1973
+ }
1944
1974
  .w-3 {
1945
1975
  width: 0.75rem;
1946
1976
  }
@@ -2696,6 +2726,9 @@ html.calm .tile-glass {
2696
2726
  .p-1 {
2697
2727
  padding: 0.25rem;
2698
2728
  }
2729
+ .p-10 {
2730
+ padding: 2.5rem;
2731
+ }
2699
2732
  .p-2 {
2700
2733
  padding: 0.5rem;
2701
2734
  }
@@ -2782,6 +2815,10 @@ html.calm .tile-glass {
2782
2815
  padding-top: 0.5rem;
2783
2816
  padding-bottom: 0.5rem;
2784
2817
  }
2818
+ .py-2\.5 {
2819
+ padding-top: 0.625rem;
2820
+ padding-bottom: 0.625rem;
2821
+ }
2785
2822
  .py-20 {
2786
2823
  padding-top: 5rem;
2787
2824
  padding-bottom: 5rem;
@@ -3000,6 +3037,10 @@ html.calm .tile-glass {
3000
3037
  --tw-text-opacity: 1;
3001
3038
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
3002
3039
  }
3040
+ .text-emerald-400 {
3041
+ --tw-text-opacity: 1;
3042
+ color: rgb(52 211 153 / var(--tw-text-opacity, 1));
3043
+ }
3003
3044
  .text-emerald-500 {
3004
3045
  --tw-text-opacity: 1;
3005
3046
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
@@ -3086,6 +3127,9 @@ html.calm .tile-glass {
3086
3127
  .opacity-0 {
3087
3128
  opacity: 0;
3088
3129
  }
3130
+ .opacity-100 {
3131
+ opacity: 1;
3132
+ }
3089
3133
  .opacity-25 {
3090
3134
  opacity: 0.25;
3091
3135
  }
@@ -3481,6 +3525,9 @@ html.calm .tile-glass {
3481
3525
  --tw-bg-opacity: 1;
3482
3526
  background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));
3483
3527
  }
3528
+ .focus\:opacity-100:focus {
3529
+ opacity: 1;
3530
+ }
3484
3531
  .focus\:outline-none:focus {
3485
3532
  outline: 2px solid transparent;
3486
3533
  outline-offset: 2px;
@@ -3533,6 +3580,11 @@ html.calm .tile-glass {
3533
3580
  --tw-scale-y: 0.97;
3534
3581
  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));
3535
3582
  }
3583
+ .active\:scale-\[0\.98\]:active {
3584
+ --tw-scale-x: 0.98;
3585
+ --tw-scale-y: 0.98;
3586
+ 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));
3587
+ }
3536
3588
  .active\:cursor-grabbing:active {
3537
3589
  cursor: grabbing;
3538
3590
  }
@@ -3548,6 +3600,9 @@ html.calm .tile-glass {
3548
3600
  .disabled\:opacity-50:disabled {
3549
3601
  opacity: 0.5;
3550
3602
  }
3603
+ .group\/block:hover .group-hover\/block\:opacity-100 {
3604
+ opacity: 1;
3605
+ }
3551
3606
  .group:focus-visible .group-focus-visible\:ring-2 {
3552
3607
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3553
3608
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -3644,6 +3699,17 @@ html.calm .tile-glass {
3644
3699
  }
3645
3700
  @media (min-width: 640px) {
3646
3701
 
3702
+ .sm\:not-sr-only {
3703
+ position: static;
3704
+ width: auto;
3705
+ height: auto;
3706
+ padding: 0;
3707
+ margin: 0;
3708
+ overflow: visible;
3709
+ clip: auto;
3710
+ white-space: normal;
3711
+ }
3712
+
3647
3713
  .sm\:block {
3648
3714
  display: block;
3649
3715
  }
package/dist/full.css CHANGED
@@ -1481,6 +1481,17 @@ html.calm .tile-glass {
1481
1481
  background: hsl(var(--card) / 0.97);
1482
1482
  }
1483
1483
  }
1484
+ .sr-only {
1485
+ position: absolute;
1486
+ width: 1px;
1487
+ height: 1px;
1488
+ padding: 0;
1489
+ margin: -1px;
1490
+ overflow: hidden;
1491
+ clip: rect(0, 0, 0, 0);
1492
+ white-space: nowrap;
1493
+ border-width: 0;
1494
+ }
1484
1495
  .pointer-events-none {
1485
1496
  pointer-events: none;
1486
1497
  }
@@ -1522,6 +1533,10 @@ html.calm .tile-glass {
1522
1533
  top: 0px;
1523
1534
  bottom: 0px;
1524
1535
  }
1536
+ .inset-y-1 {
1537
+ top: 0.25rem;
1538
+ bottom: 0.25rem;
1539
+ }
1525
1540
  .-bottom-6 {
1526
1541
  bottom: -1.5rem;
1527
1542
  }
@@ -1531,6 +1546,9 @@ html.calm .tile-glass {
1531
1546
  .-right-1 {
1532
1547
  right: -0.25rem;
1533
1548
  }
1549
+ .-right-2 {
1550
+ right: -0.5rem;
1551
+ }
1534
1552
  .-right-32 {
1535
1553
  right: -8rem;
1536
1554
  }
@@ -1543,6 +1561,9 @@ html.calm .tile-glass {
1543
1561
  .-top-1\.5 {
1544
1562
  top: -0.375rem;
1545
1563
  }
1564
+ .-top-2 {
1565
+ top: -0.5rem;
1566
+ }
1546
1567
  .-top-3 {
1547
1568
  top: -0.75rem;
1548
1569
  }
@@ -1700,6 +1721,9 @@ html.calm .tile-glass {
1700
1721
  .ml-auto {
1701
1722
  margin-left: auto;
1702
1723
  }
1724
+ .mr-1 {
1725
+ margin-right: 0.25rem;
1726
+ }
1703
1727
  .mt-0\.5 {
1704
1728
  margin-top: 0.125rem;
1705
1729
  }
@@ -1863,6 +1887,9 @@ html.calm .tile-glass {
1863
1887
  .h-px {
1864
1888
  height: 1px;
1865
1889
  }
1890
+ .h-screen {
1891
+ height: 100vh;
1892
+ }
1866
1893
  .max-h-10 {
1867
1894
  max-height: 2.5rem;
1868
1895
  }
@@ -1941,6 +1968,9 @@ html.calm .tile-glass {
1941
1968
  .w-2 {
1942
1969
  width: 0.5rem;
1943
1970
  }
1971
+ .w-20 {
1972
+ width: 5rem;
1973
+ }
1944
1974
  .w-3 {
1945
1975
  width: 0.75rem;
1946
1976
  }
@@ -2696,6 +2726,9 @@ html.calm .tile-glass {
2696
2726
  .p-1 {
2697
2727
  padding: 0.25rem;
2698
2728
  }
2729
+ .p-10 {
2730
+ padding: 2.5rem;
2731
+ }
2699
2732
  .p-2 {
2700
2733
  padding: 0.5rem;
2701
2734
  }
@@ -2782,6 +2815,10 @@ html.calm .tile-glass {
2782
2815
  padding-top: 0.5rem;
2783
2816
  padding-bottom: 0.5rem;
2784
2817
  }
2818
+ .py-2\.5 {
2819
+ padding-top: 0.625rem;
2820
+ padding-bottom: 0.625rem;
2821
+ }
2785
2822
  .py-20 {
2786
2823
  padding-top: 5rem;
2787
2824
  padding-bottom: 5rem;
@@ -3000,6 +3037,10 @@ html.calm .tile-glass {
3000
3037
  --tw-text-opacity: 1;
3001
3038
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
3002
3039
  }
3040
+ .text-emerald-400 {
3041
+ --tw-text-opacity: 1;
3042
+ color: rgb(52 211 153 / var(--tw-text-opacity, 1));
3043
+ }
3003
3044
  .text-emerald-500 {
3004
3045
  --tw-text-opacity: 1;
3005
3046
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
@@ -3086,6 +3127,9 @@ html.calm .tile-glass {
3086
3127
  .opacity-0 {
3087
3128
  opacity: 0;
3088
3129
  }
3130
+ .opacity-100 {
3131
+ opacity: 1;
3132
+ }
3089
3133
  .opacity-25 {
3090
3134
  opacity: 0.25;
3091
3135
  }
@@ -3481,6 +3525,9 @@ html.calm .tile-glass {
3481
3525
  --tw-bg-opacity: 1;
3482
3526
  background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));
3483
3527
  }
3528
+ .focus\:opacity-100:focus {
3529
+ opacity: 1;
3530
+ }
3484
3531
  .focus\:outline-none:focus {
3485
3532
  outline: 2px solid transparent;
3486
3533
  outline-offset: 2px;
@@ -3533,6 +3580,11 @@ html.calm .tile-glass {
3533
3580
  --tw-scale-y: 0.97;
3534
3581
  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));
3535
3582
  }
3583
+ .active\:scale-\[0\.98\]:active {
3584
+ --tw-scale-x: 0.98;
3585
+ --tw-scale-y: 0.98;
3586
+ 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));
3587
+ }
3536
3588
  .active\:cursor-grabbing:active {
3537
3589
  cursor: grabbing;
3538
3590
  }
@@ -3548,6 +3600,9 @@ html.calm .tile-glass {
3548
3600
  .disabled\:opacity-50:disabled {
3549
3601
  opacity: 0.5;
3550
3602
  }
3603
+ .group\/block:hover .group-hover\/block\:opacity-100 {
3604
+ opacity: 1;
3605
+ }
3551
3606
  .group:focus-visible .group-focus-visible\:ring-2 {
3552
3607
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3553
3608
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -3644,6 +3699,17 @@ html.calm .tile-glass {
3644
3699
  }
3645
3700
  @media (min-width: 640px) {
3646
3701
 
3702
+ .sm\:not-sr-only {
3703
+ position: static;
3704
+ width: auto;
3705
+ height: auto;
3706
+ padding: 0;
3707
+ margin: 0;
3708
+ overflow: visible;
3709
+ clip: auto;
3710
+ white-space: normal;
3711
+ }
3712
+
3647
3713
  .sm\:block {
3648
3714
  display: block;
3649
3715
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const A4UI_VERSION = "0.27.0";
1
+ export declare const A4UI_VERSION = "0.29.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';
@@ -118,6 +118,15 @@ export { CategoryStrip, type CategoryStripProps, type CategoryItem } from './ui/
118
118
  export { MasterDetail, type MasterDetailProps, type MasterDetailItem } from './ui/MasterDetail';
119
119
  export { SlashMenu, type SlashMenuProps, type SlashItem } from './ui/SlashMenu';
120
120
  export { DataView, type DataViewProps, type DataViewColumn, type DataViewMode } from './ui/DataView';
121
+ export { ScrollScene, type ScrollSceneProps } from './ui/ScrollScene';
122
+ export { StickyReveal, type StickyRevealProps } from './ui/StickyReveal';
123
+ export { BalanceCard, type BalanceCardProps } from './ui/BalanceCard';
124
+ export { TransactionFeed, type TransactionFeedProps, type Transaction } from './ui/TransactionFeed';
125
+ export { KpiBlock, type KpiBlockProps } from './ui/KpiBlock';
126
+ export { MoneyActionButton, type MoneyActionButtonProps, type MoneyActionKind } from './ui/MoneyActionButton';
127
+ export { Spaces, type SpacesProps, type Space } from './ui/Spaces';
128
+ export { SideRail, type SideRailProps, type SideRailItem } from './ui/SideRail';
129
+ export { BlockEditor, type BlockEditorProps, type EditorBlock, type BlockTypeOption } from './ui/BlockEditor';
121
130
  export { ScrambleText, type ScrambleTextProps } from './ui/ScrambleText';
122
131
  export { TextReveal, type TextRevealProps } from './ui/TextReveal';
123
132
  export { HoldToConfirm, type HoldToConfirmProps } from './ui/HoldToConfirm';