@placesapp/appy-ui 0.0.31 → 0.0.333

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/index.d.ts CHANGED
@@ -404,7 +404,19 @@ declare function HoverCardContent({ className, side, sideOffset, align, alignOff
404
404
  declare function Input({ className, type, ...props }: React$1.ComponentProps<'input'>): react_jsx_runtime.JSX.Element;
405
405
 
406
406
  declare function InputGroup({ className, ...props }: React$1.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
407
+ declare const inputGroupAddonVariants: (props?: ({
408
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
409
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
410
+ declare function InputGroupAddon({ className, align, ...props }: React$1.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime.JSX.Element;
411
+ declare const inputGroupButtonVariants: (props?: ({
412
+ size?: "sm" | "icon-sm" | "xs" | "icon-xs" | null | undefined;
413
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
414
+ declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React$1.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
415
+ type?: 'button' | 'submit' | 'reset';
416
+ }): react_jsx_runtime.JSX.Element;
417
+ declare function InputGroupText({ className, ...props }: React$1.ComponentProps<'span'>): react_jsx_runtime.JSX.Element;
407
418
  declare function InputGroupInput({ className, ...props }: React$1.ComponentProps<'input'>): react_jsx_runtime.JSX.Element;
419
+ declare function InputGroupTextarea({ className, ...props }: React$1.ComponentProps<'textarea'>): react_jsx_runtime.JSX.Element;
408
420
 
409
421
  declare function InputOTP({ className, containerClassName, ...props }: React$1.ComponentProps<typeof OTPInput> & {
410
422
  containerClassName?: string;
@@ -434,6 +446,7 @@ declare function ItemHeader({ className, ...props }: React$1.ComponentProps<'div
434
446
  declare function ItemFooter({ className, ...props }: React$1.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
435
447
 
436
448
  declare function Kbd({ className, ...props }: React.ComponentProps<'kbd'>): react_jsx_runtime.JSX.Element;
449
+ declare function KbdGroup({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
437
450
 
438
451
  declare function Menubar({ className, ...props }: Menubar$1.Props): react_jsx_runtime.JSX.Element;
439
452
  declare function MenubarMenu({ ...props }: React$1.ComponentProps<typeof DropdownMenu>): react_jsx_runtime.JSX.Element;
@@ -458,6 +471,8 @@ type NativeSelectProps = Omit<React$1.ComponentProps<'select'>, 'size'> & {
458
471
  size?: 'sm' | 'default';
459
472
  };
460
473
  declare function NativeSelect({ className, size, ...props }: NativeSelectProps): react_jsx_runtime.JSX.Element;
474
+ declare function NativeSelectOption({ ...props }: React$1.ComponentProps<'option'>): react_jsx_runtime.JSX.Element;
475
+ declare function NativeSelectOptGroup({ className, ...props }: React$1.ComponentProps<'optgroup'>): react_jsx_runtime.JSX.Element;
461
476
 
462
477
  declare function NavigationMenu({ className, children, ...props }: NavigationMenu$1.Root.Props): react_jsx_runtime.JSX.Element;
463
478
  declare function NavigationMenuList({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenu$1.List>): react_jsx_runtime.JSX.Element;
@@ -488,6 +503,10 @@ declare function PopoverTitle({ className, ...props }: Popover$1.Title.Props): r
488
503
  declare function PopoverDescription({ className, ...props }: Popover$1.Description.Props): react_jsx_runtime.JSX.Element;
489
504
 
490
505
  declare function Progress({ className, children, value, ...props }: Progress$1.Root.Props): react_jsx_runtime.JSX.Element;
506
+ declare function ProgressTrack({ className, ...props }: Progress$1.Track.Props): react_jsx_runtime.JSX.Element;
507
+ declare function ProgressIndicator({ className, ...props }: Progress$1.Indicator.Props): react_jsx_runtime.JSX.Element;
508
+ declare function ProgressLabel({ className, ...props }: Progress$1.Label.Props): react_jsx_runtime.JSX.Element;
509
+ declare function ProgressValue({ className, ...props }: Progress$1.Value.Props): react_jsx_runtime.JSX.Element;
491
510
 
492
511
  type ProgressiveBlurProps = {
493
512
  className?: string;
@@ -636,6 +655,47 @@ declare function ToggleGroup({ className, variant, size, spacing, orientation, c
636
655
  }): react_jsx_runtime.JSX.Element;
637
656
  declare function ToggleGroupItem({ className, children, variant, size, ...props }: Toggle$1.Props & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
638
657
 
658
+ interface TabItem {
659
+ id: string;
660
+ label: string;
661
+ path: string;
662
+ icon: ComponentType<{
663
+ className?: string;
664
+ }>;
665
+ activeIcon: ComponentType<{
666
+ className?: string;
667
+ }>;
668
+ }
669
+ interface NavLinkProps {
670
+ to: string;
671
+ children: React.ReactNode;
672
+ className?: string;
673
+ role?: string;
674
+ 'aria-selected'?: boolean;
675
+ }
676
+ type LinkComponent = ComponentType<NavLinkProps>;
677
+ interface HeaderConfig {
678
+ trailingAction?: {
679
+ icon: ComponentType<{
680
+ className?: string;
681
+ }>;
682
+ to: string;
683
+ };
684
+ }
685
+ interface PageConfig {
686
+ id: string;
687
+ label: string;
688
+ path: string;
689
+ showInTabBar: boolean;
690
+ icon?: ComponentType<{
691
+ className?: string;
692
+ }>;
693
+ activeIcon?: ComponentType<{
694
+ className?: string;
695
+ }>;
696
+ header?: HeaderConfig;
697
+ }
698
+
639
699
  interface HeaderContextValue {
640
700
  isScrolled: boolean;
641
701
  }
@@ -677,7 +737,7 @@ interface SecondaryPageHeaderProps {
677
737
  title: string;
678
738
  onBack: () => void;
679
739
  }
680
- declare function SecondaryPageHeader({ title, onBack }: SecondaryPageHeaderProps): react_jsx_runtime.JSX.Element;
740
+ declare function SecondaryPageHeader({ title, onBack, }: SecondaryPageHeaderProps): react_jsx_runtime.JSX.Element;
681
741
  interface TabPageHeaderProps {
682
742
  title: string;
683
743
  trailingAction?: {
@@ -695,25 +755,13 @@ interface TabPageHeaderProps {
695
755
  }
696
756
  declare function TabPageHeader({ title, trailingAction }: TabPageHeaderProps): react_jsx_runtime.JSX.Element;
697
757
 
698
- interface TabItem {
699
- id: string;
700
- label: string;
701
- path: string;
702
- icon: ComponentType<{
703
- className?: string;
704
- }>;
705
- activeIcon: ComponentType<{
706
- className?: string;
707
- }>;
708
- }
709
- interface NavLinkProps {
710
- to: string;
711
- children: React.ReactNode;
712
- className?: string;
713
- role?: string;
714
- 'aria-selected'?: boolean;
758
+ interface AppHeaderProps {
759
+ pages: PageConfig[];
760
+ currentPath: string;
761
+ onBack: () => void;
762
+ LinkComponent: LinkComponent;
715
763
  }
716
- type LinkComponent = ComponentType<NavLinkProps>;
764
+ declare function AppHeader({ pages, currentPath, onBack, LinkComponent, }: AppHeaderProps): react_jsx_runtime.JSX.Element;
717
765
 
718
766
  interface TabBarProps {
719
767
  items: TabItem[];
@@ -781,4 +829,4 @@ declare function useIsMobile(): boolean;
781
829
 
782
830
  declare function cn(...inputs: ClassValue[]): string;
783
831
 
784
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AndroidTabBar, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type DesignSystem, DesignSystemProvider, type DeviceContext, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, type FormFactor, Header, HoverCard, HoverCardContent, HoverCardTrigger, IOSTabBar, Input, InputGroup, InputGroupInput, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, Label, type LinkComponent, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, type NavLinkProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type Platform, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressiveBlur, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SecondaryPageHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, TabBar, type TabItem, TabPageHeader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WebFooter, WebNavBar, badgeVariants, buttonGroupVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useCarousel, useComboboxAnchor, useDesignSystem, useDeviceContext, useHeaderContext, useIsMobile, useScrolled, useSidebar };
832
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AndroidTabBar, AppHeader, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type DesignSystem, DesignSystemProvider, type DeviceContext, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, type FormFactor, Header, type HeaderConfig, HoverCard, HoverCardContent, HoverCardTrigger, IOSTabBar, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, type LinkComponent, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, type NavLinkProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, type PageConfig, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type Platform, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, ProgressiveBlur, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SecondaryPageHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, TabBar, type TabItem, TabPageHeader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WebFooter, WebNavBar, badgeVariants, buttonGroupVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useCarousel, useComboboxAnchor, useDesignSystem, useDeviceContext, useHeaderContext, useIsMobile, useScrolled, useSidebar };
package/dist/index.js CHANGED
@@ -1843,6 +1843,18 @@ function InputGroupButton({
1843
1843
  }
1844
1844
  );
1845
1845
  }
1846
+ function InputGroupText({ className, ...props }) {
1847
+ return /* @__PURE__ */ jsx(
1848
+ "span",
1849
+ {
1850
+ className: cn(
1851
+ "flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
1852
+ className
1853
+ ),
1854
+ ...props
1855
+ }
1856
+ );
1857
+ }
1846
1858
  function InputGroupInput({
1847
1859
  className,
1848
1860
  ...props
@@ -1859,6 +1871,22 @@ function InputGroupInput({
1859
1871
  }
1860
1872
  );
1861
1873
  }
1874
+ function InputGroupTextarea({
1875
+ className,
1876
+ ...props
1877
+ }) {
1878
+ return /* @__PURE__ */ jsx(
1879
+ Textarea,
1880
+ {
1881
+ "data-slot": "input-group-control",
1882
+ className: cn(
1883
+ "flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent",
1884
+ className
1885
+ ),
1886
+ ...props
1887
+ }
1888
+ );
1889
+ }
1862
1890
  var Combobox = Combobox$1.Root;
1863
1891
  function ComboboxValue({ ...props }) {
1864
1892
  return /* @__PURE__ */ jsx(Combobox$1.Value, { "data-slot": "combobox-value", ...props });
@@ -3539,6 +3567,16 @@ function Kbd({ className, ...props }) {
3539
3567
  }
3540
3568
  );
3541
3569
  }
3570
+ function KbdGroup({ className, ...props }) {
3571
+ return /* @__PURE__ */ jsx(
3572
+ "kbd",
3573
+ {
3574
+ "data-slot": "kbd-group",
3575
+ className: cn("inline-flex items-center gap-1", className),
3576
+ ...props
3577
+ }
3578
+ );
3579
+ }
3542
3580
  function Menubar({ className, ...props }) {
3543
3581
  return /* @__PURE__ */ jsx(
3544
3582
  Menubar$1,
@@ -3794,6 +3832,22 @@ function NativeSelect({
3794
3832
  }
3795
3833
  );
3796
3834
  }
3835
+ function NativeSelectOption({ ...props }) {
3836
+ return /* @__PURE__ */ jsx("option", { "data-slot": "native-select-option", ...props });
3837
+ }
3838
+ function NativeSelectOptGroup({
3839
+ className,
3840
+ ...props
3841
+ }) {
3842
+ return /* @__PURE__ */ jsx(
3843
+ "optgroup",
3844
+ {
3845
+ "data-slot": "native-select-optgroup",
3846
+ className: cn(className),
3847
+ ...props
3848
+ }
3849
+ );
3850
+ }
3797
3851
  function NavigationMenu({
3798
3852
  className,
3799
3853
  children,
@@ -4170,6 +4224,29 @@ function ProgressIndicator({
4170
4224
  }
4171
4225
  );
4172
4226
  }
4227
+ function ProgressLabel({ className, ...props }) {
4228
+ return /* @__PURE__ */ jsx(
4229
+ Progress$1.Label,
4230
+ {
4231
+ className: cn("text-sm font-medium", className),
4232
+ "data-slot": "progress-label",
4233
+ ...props
4234
+ }
4235
+ );
4236
+ }
4237
+ function ProgressValue({ className, ...props }) {
4238
+ return /* @__PURE__ */ jsx(
4239
+ Progress$1.Value,
4240
+ {
4241
+ className: cn(
4242
+ "ml-auto text-sm text-muted-foreground tabular-nums",
4243
+ className
4244
+ ),
4245
+ "data-slot": "progress-value",
4246
+ ...props
4247
+ }
4248
+ );
4249
+ }
4173
4250
  function ProgressiveBlur({
4174
4251
  className = "",
4175
4252
  backgroundColor,
@@ -5764,7 +5841,13 @@ function useHeaderContext() {
5764
5841
  }
5765
5842
  function Root({ children, scrollThreshold = 50, className }) {
5766
5843
  const isScrolled = useScrolled({ threshold: scrollThreshold });
5767
- return /* @__PURE__ */ jsx(HeaderContext.Provider, { value: { isScrolled }, children: /* @__PURE__ */ jsx("header", { className: cn("sticky top-0 z-50 w-full bg-transparent", className), children: /* @__PURE__ */ jsx("div", { className: "relative flex h-14 items-center px-4", children }) }) });
5844
+ return /* @__PURE__ */ jsx(HeaderContext.Provider, { value: { isScrolled }, children: /* @__PURE__ */ jsx(
5845
+ "header",
5846
+ {
5847
+ className: cn("sticky top-0 z-50 w-full bg-transparent", className),
5848
+ children: /* @__PURE__ */ jsx("div", { className: "relative flex h-14 items-center px-4", children })
5849
+ }
5850
+ ) });
5768
5851
  }
5769
5852
  function BackButton({ onClick, className }) {
5770
5853
  return /* @__PURE__ */ jsx(
@@ -5780,14 +5863,26 @@ function BackButton({ onClick, className }) {
5780
5863
  );
5781
5864
  }
5782
5865
  function Title({ children, className }) {
5783
- return /* @__PURE__ */ jsx("h1", { className: cn("absolute inset-0 flex items-center justify-center text-lg font-semibold", className), children });
5866
+ return /* @__PURE__ */ jsx(
5867
+ "h1",
5868
+ {
5869
+ className: cn(
5870
+ "absolute inset-0 flex items-center justify-center text-lg font-semibold",
5871
+ className
5872
+ ),
5873
+ children
5874
+ }
5875
+ );
5784
5876
  }
5785
5877
  function AnimatedTitle({ children, className }) {
5786
5878
  const { isScrolled } = useHeaderContext();
5787
5879
  return /* @__PURE__ */ jsx(AnimatePresence, { mode: "popLayout", children: isScrolled ? /* @__PURE__ */ jsx(
5788
5880
  motion.h1,
5789
5881
  {
5790
- className: cn("absolute inset-0 flex items-center justify-center text-lg font-semibold", className),
5882
+ className: cn(
5883
+ "absolute inset-0 flex items-center justify-center text-lg font-semibold",
5884
+ className
5885
+ ),
5791
5886
  initial: { opacity: 0 },
5792
5887
  animate: { opacity: 1 },
5793
5888
  exit: { opacity: 0 },
@@ -5818,7 +5913,10 @@ var Header = {
5818
5913
  AnimatedTitle,
5819
5914
  TrailingAction
5820
5915
  };
5821
- function SecondaryPageHeader({ title, onBack }) {
5916
+ function SecondaryPageHeader({
5917
+ title,
5918
+ onBack
5919
+ }) {
5822
5920
  return /* @__PURE__ */ jsxs(Header.Root, { children: [
5823
5921
  /* @__PURE__ */ jsx(Header.BackButton, { onClick: onBack }),
5824
5922
  /* @__PURE__ */ jsx(Header.Title, { children: title })
@@ -5844,6 +5942,30 @@ function TabPageHeader({ title, trailingAction }) {
5844
5942
  ) })
5845
5943
  ] });
5846
5944
  }
5945
+ function AppHeader({
5946
+ pages,
5947
+ currentPath,
5948
+ onBack,
5949
+ LinkComponent
5950
+ }) {
5951
+ const currentPage = pages.find((p) => p.path === currentPath);
5952
+ const isTabPage = currentPage?.showInTabBar ?? false;
5953
+ const pageTitle = currentPage?.label ?? "Page";
5954
+ if (!isTabPage) {
5955
+ return /* @__PURE__ */ jsx(SecondaryPageHeader, { title: pageTitle, onBack });
5956
+ }
5957
+ return /* @__PURE__ */ jsx(
5958
+ TabPageHeader,
5959
+ {
5960
+ title: pageTitle,
5961
+ trailingAction: currentPage?.header?.trailingAction ? {
5962
+ icon: currentPage.header.trailingAction.icon,
5963
+ href: currentPage.header.trailingAction.to,
5964
+ LinkComponent
5965
+ } : void 0
5966
+ }
5967
+ );
5968
+ }
5847
5969
  function AndroidTabBar({
5848
5970
  items,
5849
5971
  currentPath,
@@ -6102,4 +6224,4 @@ function WebFooter({
6102
6224
  );
6103
6225
  }
6104
6226
 
6105
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AndroidTabBar, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DesignSystemProvider, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Header, HoverCard, HoverCardContent, HoverCardTrigger, IOSTabBar, Input, InputGroup, InputGroupInput, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressiveBlur, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SecondaryPageHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, TabBar, TabPageHeader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WebFooter, WebNavBar, badgeVariants, buttonGroupVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useCarousel, useComboboxAnchor, useDesignSystem, useDeviceContext, useHeaderContext, useIsMobile, useScrolled, useSidebar };
6227
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AndroidTabBar, AppHeader, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DesignSystemProvider, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Header, HoverCard, HoverCardContent, HoverCardTrigger, IOSTabBar, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, ProgressiveBlur, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SecondaryPageHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, TabBar, TabPageHeader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WebFooter, WebNavBar, badgeVariants, buttonGroupVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useCarousel, useComboboxAnchor, useDesignSystem, useDeviceContext, useHeaderContext, useIsMobile, useScrolled, useSidebar };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@placesapp/appy-ui",
3
- "version": "0.0.31",
3
+ "version": "0.0.333",
4
4
  "type": "module",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,15 +1,7 @@
1
- /* appy-ui Global Styles */
2
- /* Import this file in your app's CSS after tailwindcss */
3
-
4
- /* Tell Tailwind to scan this package's compiled components */
5
- @source "../dist/**/*.js";
6
-
7
- /* Custom variants for platform theming */
8
1
  @custom-variant dark (&:is(.dark *));
9
2
  @custom-variant ios (&:is(.ios *));
10
3
  @custom-variant material (&:is(.material *));
11
4
 
12
- /* Theme tokens - maps CSS vars to Tailwind */
13
5
  @theme inline {
14
6
  --font-sans: 'Inter Variable', sans-serif;
15
7
  --color-sidebar-ring: var(--sidebar-ring);
@@ -52,12 +44,7 @@
52
44
  --radius-4xl: calc(var(--radius) + 16px);
53
45
  }
54
46
 
55
- /* ============================================
56
- Base Theme Variables
57
- ============================================ */
58
-
59
47
  :root {
60
- /* Colors - OKLch */
61
48
  --background: oklch(0.99 0.002 75);
62
49
  --foreground: oklch(0.15 0.01 75);
63
50
  --card: oklch(1 0 0);
@@ -126,18 +113,12 @@
126
113
  --sidebar-ring: oklch(0.72 0.18 45);
127
114
  }
128
115
 
129
- /* ============================================
130
- iOS 26 Liquid Glass Design System
131
- ============================================ */
132
-
133
116
  .ios {
134
- /* Glass Effects */
135
117
  --glass-blur: 20px;
136
118
  --glass-bg: oklch(1 0 0 / 60%);
137
119
  --glass-bg-elevated: oklch(1 0 0 / 70%);
138
120
  --glass-border: oklch(1 0 0 / 30%);
139
121
 
140
- /* iOS System Colors */
141
122
  --ios-blue: oklch(0.65 0.22 255);
142
123
  --ios-green: oklch(0.7 0.2 145);
143
124
  --ios-red: oklch(0.6 0.25 25);
@@ -146,24 +127,19 @@
146
127
  --ios-teal: oklch(0.7 0.15 195);
147
128
  --ios-purple: oklch(0.6 0.2 300);
148
129
 
149
- /* Typography - SF Pro */
150
130
  --font-sans:
151
131
  -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text',
152
132
  'Helvetica Neue', sans-serif;
153
133
 
154
- /* iOS Corner Radii - pill-shaped / larger */
155
134
  --radius: 1.25rem;
156
135
 
157
- /* Elevation - iOS uses no shadows, only translucency */
158
136
  --elevation-1: none;
159
137
  --elevation-2: none;
160
138
  --elevation-3: none;
161
139
 
162
- /* Interaction */
163
140
  --press-scale: 0.97;
164
141
  --press-duration: 100ms;
165
142
 
166
- /* Separators */
167
143
  --separator: oklch(0 0 0 / 8%);
168
144
  }
169
145
 
@@ -174,7 +150,6 @@
174
150
  --separator: oklch(1 0 0 / 8%);
175
151
  }
176
152
 
177
- /* iOS Glass Support Check */
178
153
  @supports (backdrop-filter: blur(1px)) {
179
154
  .ios {
180
155
  --glass-supported: 1;
@@ -194,34 +169,25 @@
194
169
  }
195
170
  }
196
171
 
197
- /* ============================================
198
- Material 3 Design System
199
- ============================================ */
200
-
201
172
  .material {
202
- /* Glass Effects - Material uses solid surfaces */
203
173
  --glass-blur: 0;
204
174
  --glass-bg: var(--card);
205
175
  --glass-bg-elevated: var(--card);
206
176
  --glass-border: transparent;
207
177
 
208
- /* M3 Surface Tones */
209
178
  --m3-surface: oklch(0.99 0.002 75);
210
179
  --m3-surface-container: oklch(0.96 0.003 75);
211
180
  --m3-surface-container-high: oklch(0.94 0.004 75);
212
181
  --m3-surface-container-highest: oklch(0.92 0.005 75);
213
182
  --m3-on-surface: oklch(0.15 0.01 75);
214
183
 
215
- /* M3 State Layers */
216
184
  --m3-state-hover: oklch(0 0 0 / 8%);
217
185
  --m3-state-focus: oklch(0 0 0 / 12%);
218
186
  --m3-state-pressed: oklch(0 0 0 / 12%);
219
187
  --m3-state-dragged: oklch(0 0 0 / 16%);
220
188
 
221
- /* Typography - Roboto */
222
189
  --font-sans: 'Roboto', 'Noto Sans', 'Helvetica Neue', Arial, sans-serif;
223
190
 
224
- /* M3 Corner Radius Scale */
225
191
  --radius: 0.75rem;
226
192
  --radius-xs: 0.25rem;
227
193
  --radius-sm: 0.5rem;
@@ -230,17 +196,14 @@
230
196
  --radius-xl: 1.75rem;
231
197
  --radius-full: 9999px;
232
198
 
233
- /* M3 Elevation Shadows */
234
199
  --elevation-1: 0 1px 2px oklch(0 0 0 / 30%), 0 1px 3px 1px oklch(0 0 0 / 15%);
235
200
  --elevation-2: 0 1px 2px oklch(0 0 0 / 30%), 0 2px 6px 2px oklch(0 0 0 / 15%);
236
201
  --elevation-3: 0 1px 3px oklch(0 0 0 / 30%), 0 4px 8px 3px oklch(0 0 0 / 15%);
237
202
 
238
- /* Interaction */
239
203
  --press-scale: 1;
240
204
  --press-duration: 0ms;
241
205
  --ripple-duration: 300ms;
242
206
 
243
- /* Separators */
244
207
  --separator: oklch(0 0 0 / 12%);
245
208
  }
246
209
 
@@ -263,10 +226,6 @@
263
226
  --separator: oklch(1 0 0 / 12%);
264
227
  }
265
228
 
266
- /* ============================================
267
- Base Layer Styles
268
- ============================================ */
269
-
270
229
  @layer base {
271
230
  * {
272
231
  @apply border-border outline-ring/50;
@@ -287,27 +246,16 @@
287
246
  }
288
247
  }
289
248
 
290
- /* ============================================
291
- Platform-Specific Component Overrides
292
- ============================================ */
293
-
294
- /* iOS Card - Shadow effect */
295
249
  .ios [data-slot='card'] {
296
250
  box-shadow: 0 0 8px oklch(0 0 0 / 8%);
297
251
  border: none;
298
252
  }
299
253
 
300
- /* Material Card - Elevation shadow */
301
254
  .material [data-slot='card'] {
302
255
  box-shadow: var(--elevation-1);
303
256
  border: none;
304
257
  }
305
258
 
306
- /* ============================================
307
- Performance Optimizations
308
- ============================================ */
309
-
310
- /* Apply will-change only to animated glass elements */
311
259
  .ios [data-slot='dialog-content'],
312
260
  .ios [data-slot='sheet-content'] {
313
261
  will-change: transform, opacity;