@cakejp/design-system 0.19.0 → 0.20.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 (35) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/CLAUDE.md +1 -0
  3. package/bin/init.js +191 -28
  4. package/contracts/components.json +43 -7
  5. package/contracts/composition.json +1 -1
  6. package/contracts/rules.json +1 -1
  7. package/contracts/screen-patterns.json +1 -1
  8. package/dist/components/ec/order-summary.js +16 -15
  9. package/dist/components/ec/product-card.js +1 -1
  10. package/dist/components/foundations/alert-dialog.js +7 -7
  11. package/dist/components/foundations/data-table.js +490 -16
  12. package/dist/components/foundations/dialog.js +13 -13
  13. package/dist/components/foundations/drawer.js +5 -5
  14. package/dist/components/foundations/sheet.js +7 -7
  15. package/dist/components/primitives/admin-header.js +1 -1
  16. package/dist/components/primitives/admin-side-nav.js +195 -86
  17. package/dist/components/primitives/bottom-tab-bar.js +20 -20
  18. package/dist/components/primitives/header.js +43 -37
  19. package/dist/components/primitives/image-uploader.js +40 -19
  20. package/dist/components/primitives/sticky-action-bar.js +2 -1
  21. package/dist/index.css +1 -1
  22. package/dist/index.js +817 -476
  23. package/dist/types/components/primitives/admin-side-nav.d.ts +3 -0
  24. package/dist/types/index.d.ts +3 -2
  25. package/dist/types/lib/link-component.d.ts +9 -0
  26. package/package.json +2 -2
  27. package/src/components/COMPONENT_LOOKUP.md +2 -2
  28. package/src/preset-standalone.css +2 -0
  29. package/src/preset.css +13 -3
  30. package/src/styles/semantic.css +10 -0
  31. package/templates/AGENTS.md +4 -2
  32. package/templates/AGENTS.stub.md +25 -0
  33. package/templates/CLAUDE.md +4 -2
  34. package/templates/CLAUDE.stub.md +25 -0
  35. package/tokens.json +9 -0
package/dist/index.js CHANGED
@@ -1,150 +1,150 @@
1
1
  /* empty css */
2
2
  import { cn as t } from "./lib/utils.js";
3
3
  import { FOCUS_RING as n, FOCUS_RING_INSET as i, FOCUS_RING_WITHIN as p } from "./lib/focus-ring.js";
4
- import { toast as l } from "sonner";
4
+ import { toast as m } from "sonner";
5
5
  import { Accordion as u, AccordionContent as f, AccordionItem as d, AccordionTrigger as g } from "./components/foundations/accordion.js";
6
- import { Alert as s, AlertDescription as c, AlertTitle as S } from "./components/foundations/alert.js";
7
- import { AlertDialog as D, AlertDialogAction as M, AlertDialogCancel as T, AlertDialogContent as I, AlertDialogDescription as v, AlertDialogFooter as h, AlertDialogHeader as F, AlertDialogOverlay as P, AlertDialogPortal as w, AlertDialogTitle as A, AlertDialogTrigger as B } from "./components/foundations/alert-dialog.js";
8
- import { AspectRatio as k } from "./components/foundations/aspect-ratio.js";
6
+ import { Alert as c, AlertDescription as s, AlertTitle as b } from "./components/foundations/alert.js";
7
+ import { AlertDialog as D, AlertDialogAction as T, AlertDialogCancel as M, AlertDialogContent as I, AlertDialogDescription as v, AlertDialogFooter as h, AlertDialogHeader as F, AlertDialogOverlay as P, AlertDialogPortal as w, AlertDialogTitle as A, AlertDialogTrigger as k } from "./components/foundations/alert-dialog.js";
8
+ import { AspectRatio as R } from "./components/foundations/aspect-ratio.js";
9
9
  import { Avatar as L, AvatarFallback as N, AvatarImage as G } from "./components/foundations/avatar.js";
10
- import { Badge as H, badgeVariants as O } from "./components/foundations/badge.js";
10
+ import { Badge as V, badgeVariants as O } from "./components/foundations/badge.js";
11
11
  import { Breadcrumb as U, BreadcrumbEllipsis as _, BreadcrumbItem as W, BreadcrumbLink as Q, BreadcrumbList as z, BreadcrumbPage as K, BreadcrumbSeparator as j } from "./components/foundations/breadcrumb.js";
12
12
  import { Button as J, buttonVariants as X } from "./components/foundations/button.js";
13
13
  import { Calendar as Z } from "./components/foundations/calendar.js";
14
- import { Card as oo, CardAction as ro, CardContent as eo, CardDescription as to, CardFooter as ao, CardHeader as no, CardTitle as io, cardVariants as po } from "./components/foundations/card.js";
15
- import { Checkbox as lo } from "./components/foundations/checkbox.js";
16
- import { CheckboxCardGroup as uo, CheckboxCardItem as fo } from "./components/foundations/checkbox-card.js";
17
- import { CheckboxGroup as Co, CheckboxGroupItem as so } from "./components/foundations/checkbox-group.js";
18
- import { Collapsible as So, CollapsibleContent as bo, CollapsibleTrigger as Do } from "./components/foundations/collapsible.js";
19
- import { Command as To, CommandDialog as Io, CommandEmpty as vo, CommandGroup as ho, CommandInput as Fo, CommandItem as Po, CommandList as wo, CommandSeparator as Ao, CommandShortcut as Bo } from "./components/foundations/command.js";
20
- import { ContextMenu as ko, ContextMenuCheckboxItem as yo, ContextMenuContent as Lo, ContextMenuGroup as No, ContextMenuItem as Go, ContextMenuLabel as Vo, ContextMenuPortal as Ho, ContextMenuRadioGroup as Oo, ContextMenuRadioItem as Eo, ContextMenuSeparator as Uo, ContextMenuShortcut as _o, ContextMenuSub as Wo, ContextMenuSubContent as Qo, ContextMenuSubTrigger as zo, ContextMenuTrigger as Ko } from "./components/foundations/context-menu.js";
21
- import { DataTable as qo } from "./components/foundations/data-table.js";
22
- import { Dialog as Xo, DialogClose as Yo, DialogContent as Zo, DialogDescription as $o, DialogFooter as or, DialogHeader as rr, DialogOverlay as er, DialogPortal as tr, DialogTitle as ar, DialogTrigger as nr } from "./components/foundations/dialog.js";
23
- import { Drawer as pr, DrawerClose as mr, DrawerContent as lr, DrawerDescription as xr, DrawerFooter as ur, DrawerHeader as fr, DrawerOverlay as dr, DrawerPortal as gr, DrawerTitle as Cr, DrawerTrigger as sr } from "./components/foundations/drawer.js";
24
- import { DropdownMenu as Sr, DropdownMenuCheckboxItem as br, DropdownMenuContent as Dr, DropdownMenuGroup as Mr, DropdownMenuItem as Tr, DropdownMenuLabel as Ir, DropdownMenuPortal as vr, DropdownMenuRadioGroup as hr, DropdownMenuRadioItem as Fr, DropdownMenuSeparator as Pr, DropdownMenuShortcut as wr, DropdownMenuSub as Ar, DropdownMenuSubContent as Br, DropdownMenuSubTrigger as Rr, DropdownMenuTrigger as kr } from "./components/foundations/dropdown-menu.js";
25
- import { Field as Lr, FieldDescription as Nr, FieldError as Gr, FieldGroup as Vr, FieldLabel as Hr, FieldLegend as Or, FieldSeparator as Er, FieldSet as Ur, fieldVariants as _r } from "./components/foundations/field.js";
26
- import { FileInput as Qr, formatFileNames as zr, validateFileSize as Kr } from "./components/foundations/file-input.js";
27
- import { Form as qr, FormControl as Jr, FormDescription as Xr, FormField as Yr, FormItem as Zr, FormLabel as $r, FormMessage as oe, useFormField as re } from "./components/foundations/form.js";
28
- import { HoverCard as te, HoverCardContent as ae, HoverCardTrigger as ne } from "./components/foundations/hover-card.js";
29
- import { IconBadge as pe, iconBadgeVariants as me } from "./components/foundations/icon-badge.js";
30
- import { Input as xe } from "./components/foundations/input.js";
31
- import { Label as fe } from "./components/foundations/label.js";
32
- import { Menubar as ge, MenubarCheckboxItem as Ce, MenubarContent as se, MenubarGroup as ce, MenubarItem as Se, MenubarLabel as be, MenubarMenu as De, MenubarPortal as Me, MenubarRadioGroup as Te, MenubarRadioItem as Ie, MenubarSeparator as ve, MenubarShortcut as he, MenubarSub as Fe, MenubarSubContent as Pe, MenubarSubTrigger as we, MenubarTrigger as Ae } from "./components/foundations/menubar.js";
33
- import { NavigationMenu as Re, NavigationMenuContent as ke, NavigationMenuIndicator as ye, NavigationMenuItem as Le, NavigationMenuLink as Ne, NavigationMenuList as Ge, NavigationMenuTrigger as Ve, NavigationMenuViewport as He, navigationMenuTriggerStyle as Oe } from "./components/foundations/navigation-menu.js";
34
- import { Pagination as Ue, PaginationContent as _e, PaginationEllipsis as We, PaginationItem as Qe, PaginationLink as ze, PaginationNext as Ke, PaginationPrevious as je } from "./components/foundations/pagination.js";
35
- import { getPaginationRange as Je } from "./lib/pagination-range.js";
36
- import { Popover as Ye, PopoverAnchor as Ze, PopoverContent as $e, PopoverTrigger as ot } from "./components/foundations/popover.js";
37
- import { Progress as et } from "./components/foundations/progress.js";
38
- import { ResponsiveDialog as at, ResponsiveDialogClose as nt, ResponsiveDialogContent as it, ResponsiveDialogDescription as pt, ResponsiveDialogFooter as mt, ResponsiveDialogHeader as lt, ResponsiveDialogTitle as xt, ResponsiveDialogTrigger as ut, useIsMobile as ft } from "./components/foundations/responsive-dialog.js";
39
- import { RadioGroup as gt, RadioGroupItem as Ct } from "./components/foundations/radio-group.js";
40
- import { ScrollArea as ct, ScrollBar as St } from "./components/foundations/scroll-area.js";
41
- import { Select as Dt, SelectContent as Mt, SelectGroup as Tt, SelectItem as It, SelectLabel as vt, SelectScrollDownButton as ht, SelectScrollUpButton as Ft, SelectSeparator as Pt, SelectTrigger as wt, SelectValue as At } from "./components/foundations/select.js";
42
- import { Separator as Rt } from "./components/foundations/separator.js";
43
- import { Sheet as yt, SheetClose as Lt, SheetContent as Nt, SheetDescription as Gt, SheetFooter as Vt, SheetHeader as Ht, SheetTitle as Ot, SheetTrigger as Et } from "./components/foundations/sheet.js";
44
- import { Skeleton as _t } from "./components/foundations/skeleton.js";
45
- import { SkipLink as Qt } from "./components/foundations/skip-link.js";
46
- import { Slider as Kt } from "./components/foundations/slider.js";
47
- import { Spinner as qt } from "./components/foundations/spinner.js";
48
- import { SocialIcon as Xt } from "./components/foundations/social-icon.js";
49
- import { Switch as Zt } from "./components/foundations/switch.js";
50
- import { Table as oa, TableBody as ra, TableCaption as ea, TableCell as ta, TableFooter as aa, TableHead as na, TableHeader as ia, TableRow as pa } from "./components/foundations/table.js";
51
- import { Tabs as la, TabsContent as xa, TabsList as ua, TabsTrigger as fa } from "./components/foundations/tabs.js";
52
- import { Textarea as ga } from "./components/foundations/textarea.js";
53
- import { Toaster as sa } from "./components/foundations/sonner.js";
54
- import { Toggle as Sa, toggleVariants as ba } from "./components/foundations/toggle.js";
55
- import { ToggleGroup as Ma, ToggleGroupItem as Ta } from "./components/foundations/toggle-group.js";
56
- import { Tooltip as va, TooltipContent as ha, TooltipProvider as Fa, TooltipTrigger as Pa } from "./components/foundations/tooltip.js";
57
- import { AdminSideNav as Aa } from "./components/primitives/admin-side-nav.js";
58
- import { AdminHeader as Ra } from "./components/primitives/admin-header.js";
59
- import { CoachMark as ya } from "./components/primitives/coach-mark.js";
60
- import { Combobox as Na } from "./components/primitives/combobox.js";
61
- import { BannerCarousel as Va } from "./components/primitives/banner-carousel.js";
62
- import { ContentCarousel as Oa } from "./components/primitives/content-carousel.js";
63
- import { MultiSelect as Ua } from "./components/primitives/multi-select.js";
64
- import { StickyActionBar as Wa } from "./components/primitives/sticky-action-bar.js";
65
- import { BottomTabBar as za } from "./components/primitives/bottom-tab-bar.js";
66
- import { BulkActionBar as ja } from "./components/primitives/bulk-action-bar.js";
67
- import { CategoryShortcuts as Ja } from "./components/primitives/category-shortcuts.js";
68
- import { CategoryScroll as Ya } from "./components/primitives/category-scroll.js";
69
- import { ChatComposer as $a } from "./components/primitives/chat-composer.js";
70
- import { Chip as rn } from "./components/primitives/chip.js";
71
- import { Prose as tn } from "./components/primitives/prose.js";
72
- import { ContentCard as nn, ContentList as pn } from "./components/primitives/content-card.js";
73
- import { StandardPageShell as ln, StandardPageShell as xn } from "./components/primitives/standard-page-shell.js";
74
- import { EmptyState as fn } from "./components/primitives/empty-state.js";
75
- import { DatePicker as gn, DateTimePicker as Cn } from "./components/primitives/date-picker.js";
76
- import { ErrorState as cn, NotFoundIllustration as Sn } from "./components/primitives/error-state.js";
77
- import { FilterBar as Dn } from "./components/primitives/filter-bar.js";
78
- import { Footer as Tn } from "./components/primitives/footer.js";
79
- import { FormField as vn } from "./components/primitives/form-field.js";
80
- import { FunnelShell as Fn } from "./components/primitives/funnel-shell.js";
81
- import { Header as wn } from "./components/primitives/header.js";
82
- import { ImageCarousel as Bn } from "./components/primitives/image-carousel.js";
83
- import { ImageGallery as kn } from "./components/primitives/image-gallery.js";
84
- import { ImageInput as Ln, imageInputPreviewVariants as Nn } from "./components/primitives/image-input.js";
85
- import { ImageUploader as Vn } from "./components/primitives/image-uploader.js";
86
- import { KebabMenu as On } from "./components/primitives/kebab-menu.js";
87
- import { ListItem as Un } from "./components/primitives/list-item.js";
88
- import { MenuDrawer as Wn } from "./components/primitives/menu-drawer.js";
89
- import { SubNav as zn } from "./components/primitives/sub-nav.js";
90
- import { NotificationBadge as jn, notificationBadgeVariants as qn } from "./components/primitives/notification-badge.js";
91
- import { NotificationList as Xn } from "./components/primitives/notification-list.js";
92
- import { PriceDisplay as Zn, priceDisplayVariants as $n } from "./components/primitives/price-display.js";
93
- import { ProgressSteps as ri } from "./components/primitives/progress-steps.js";
94
- import { Timeline as ti } from "./components/primitives/timeline.js";
95
- import { NumberInput as ni, QuantitySelector as ii } from "./components/primitives/number-input.js";
96
- import { SearchBar as mi } from "./components/primitives/search-bar.js";
97
- import { SearchPanel as xi } from "./components/primitives/search-panel.js";
98
- import { Container as fi, containerVariants as di } from "./components/primitives/container.js";
99
- import { Section as Ci, sectionScrimVariants as si, sectionVariants as ci } from "./components/primitives/section.js";
100
- import { SectionHeader as bi } from "./components/primitives/section-header.js";
101
- import { SectionNav as Mi } from "./components/primitives/section-nav.js";
102
- import { ShareButtons as Ii } from "./components/primitives/share-buttons.js";
103
- import { SideNav as hi } from "./components/primitives/side-nav.js";
104
- import { SocialLoginButton as Pi } from "./components/primitives/social-login-button.js";
105
- import { StatusCountTabs as Ai } from "./components/primitives/status-count-tabs.js";
106
- import { Tag as Ri, tagVariants as ki } from "./components/primitives/tag.js";
107
- import { WorkspaceShell as Li, WorkspaceShell as Ni } from "./components/primitives/workspace-shell.js";
108
- import { AdminShell as Vi, AdminShell as Hi, MissingComponent as Oi } from "./components/ec/admin-shell.js";
109
- import { AnniversaryCard as Ui } from "./components/ec/anniversary-card.js";
110
- import { CakeLogo as Wi } from "./components/ec/cake-logo.js";
111
- import { ChartControls as zi } from "./components/ec/chart-controls.js";
112
- import { CountdownTimer as ji } from "./components/ec/countdown-timer.js";
113
- import { CouponCard as Ji } from "./components/ec/coupon-card.js";
114
- import { DeliveryCalendar as Yi } from "./components/ec/delivery-calendar.js";
115
- import { mypageMenuGroups as $i } from "./components/ec/_mypage-menu-data.js";
116
- import { OrderSection as rp } from "./components/ec/order-section.js";
117
- import { OrderSummary as tp } from "./components/ec/order-summary.js";
118
- import { CreditCardIcon as np, PaymentMethodDisplay as ip } from "./components/ec/payment-method.js";
119
- import { ProductCard as mp } from "./components/ec/product-card.js";
120
- import { ProductCarousel as xp } from "./components/ec/product-carousel.js";
121
- import { ProductCTA as fp } from "./components/ec/product-cta.js";
122
- import { ProductDetailBar as gp } from "./components/ec/product-detail-bar.js";
123
- import { ProductDetailSidebar as sp } from "./components/ec/product-detail-sidebar.js";
124
- import { ProductListItem as Sp } from "./components/ec/product-list-item.js";
125
- import { OptionImageUpload as Dp, OptionQuantity as Mp, OptionSelect as Tp, OptionText as Ip, ProductOption as vp } from "./components/ec/product-option.js";
126
- import { RatingStars as Fp, SparkleIcon as Pp } from "./components/ec/rating-stars.js";
127
- import { ReviewCard as Ap } from "./components/ec/review-card.js";
128
- import { ReviewForm as Rp } from "./components/ec/review-form.js";
129
- import { ReviewItem as yp, ReviewSummary as Lp } from "./components/ec/review-summary.js";
130
- import { MypageShell as Gp } from "./components/ec/mypage-shell.js";
131
- import { ShopCard as Hp } from "./components/ec/shop-card.js";
132
- import { StatCard as Ep } from "./components/ec/stat-card.js";
133
- import { chipVariants as _p } from "./components/foundations/chip-variants.js";
14
+ import { Card as ee, CardAction as oe, CardContent as re, CardDescription as te, CardFooter as ae, CardHeader as ne, CardTitle as ie, cardVariants as pe } from "./components/foundations/card.js";
15
+ import { Checkbox as me } from "./components/foundations/checkbox.js";
16
+ import { CheckboxCardGroup as ue, CheckboxCardItem as fe } from "./components/foundations/checkbox-card.js";
17
+ import { CheckboxGroup as ge, CheckboxGroupItem as Ce } from "./components/foundations/checkbox-group.js";
18
+ import { Collapsible as se, CollapsibleContent as be, CollapsibleTrigger as Se } from "./components/foundations/collapsible.js";
19
+ import { Command as Te, CommandDialog as Me, CommandEmpty as Ie, CommandGroup as ve, CommandInput as he, CommandItem as Fe, CommandList as Pe, CommandSeparator as we, CommandShortcut as Ae } from "./components/foundations/command.js";
20
+ import { ContextMenu as Be, ContextMenuCheckboxItem as Re, ContextMenuContent as ye, ContextMenuGroup as Le, ContextMenuItem as Ne, ContextMenuLabel as Ge, ContextMenuPortal as He, ContextMenuRadioGroup as Ve, ContextMenuRadioItem as Oe, ContextMenuSeparator as Ee, ContextMenuShortcut as Ue, ContextMenuSub as _e, ContextMenuSubContent as We, ContextMenuSubTrigger as Qe, ContextMenuTrigger as ze } from "./components/foundations/context-menu.js";
21
+ import { DataTable as je, DataTableActionCell as qe, DataTableAddRow as Je, DataTableAvatarCell as Xe, DataTableBody as Ye, DataTableBulkActions as Ze, DataTableCell as $e, DataTableCheckboxCell as eo, DataTableDragHandleCell as oo, DataTableEmptyState as ro, DataTableHead as to, DataTableHeader as ao, DataTableImageCell as no, DataTableInputCell as io, DataTableLinkCell as po, DataTableNumberCell as lo, DataTableRow as mo, DataTableSectionRow as xo, DataTableSelectCell as uo, DataTableTable as fo } from "./components/foundations/data-table.js";
22
+ import { Dialog as Co, DialogClose as co, DialogContent as so, DialogDescription as bo, DialogFooter as So, DialogHeader as Do, DialogOverlay as To, DialogPortal as Mo, DialogTitle as Io, DialogTrigger as vo } from "./components/foundations/dialog.js";
23
+ import { Drawer as Fo, DrawerClose as Po, DrawerContent as wo, DrawerDescription as Ao, DrawerFooter as ko, DrawerHeader as Bo, DrawerOverlay as Ro, DrawerPortal as yo, DrawerTitle as Lo, DrawerTrigger as No } from "./components/foundations/drawer.js";
24
+ import { DropdownMenu as Ho, DropdownMenuCheckboxItem as Vo, DropdownMenuContent as Oo, DropdownMenuGroup as Eo, DropdownMenuItem as Uo, DropdownMenuLabel as _o, DropdownMenuPortal as Wo, DropdownMenuRadioGroup as Qo, DropdownMenuRadioItem as zo, DropdownMenuSeparator as Ko, DropdownMenuShortcut as jo, DropdownMenuSub as qo, DropdownMenuSubContent as Jo, DropdownMenuSubTrigger as Xo, DropdownMenuTrigger as Yo } from "./components/foundations/dropdown-menu.js";
25
+ import { Field as $o, FieldDescription as er, FieldError as or, FieldGroup as rr, FieldLabel as tr, FieldLegend as ar, FieldSeparator as nr, FieldSet as ir, fieldVariants as pr } from "./components/foundations/field.js";
26
+ import { FileInput as mr, formatFileNames as xr, validateFileSize as ur } from "./components/foundations/file-input.js";
27
+ import { Form as dr, FormControl as gr, FormDescription as Cr, FormField as cr, FormItem as sr, FormLabel as br, FormMessage as Sr, useFormField as Dr } from "./components/foundations/form.js";
28
+ import { HoverCard as Mr, HoverCardContent as Ir, HoverCardTrigger as vr } from "./components/foundations/hover-card.js";
29
+ import { IconBadge as Fr, iconBadgeVariants as Pr } from "./components/foundations/icon-badge.js";
30
+ import { Input as Ar } from "./components/foundations/input.js";
31
+ import { Label as Br } from "./components/foundations/label.js";
32
+ import { Menubar as yr, MenubarCheckboxItem as Lr, MenubarContent as Nr, MenubarGroup as Gr, MenubarItem as Hr, MenubarLabel as Vr, MenubarMenu as Or, MenubarPortal as Er, MenubarRadioGroup as Ur, MenubarRadioItem as _r, MenubarSeparator as Wr, MenubarShortcut as Qr, MenubarSub as zr, MenubarSubContent as Kr, MenubarSubTrigger as jr, MenubarTrigger as qr } from "./components/foundations/menubar.js";
33
+ import { NavigationMenu as Xr, NavigationMenuContent as Yr, NavigationMenuIndicator as Zr, NavigationMenuItem as $r, NavigationMenuLink as et, NavigationMenuList as ot, NavigationMenuTrigger as rt, NavigationMenuViewport as tt, navigationMenuTriggerStyle as at } from "./components/foundations/navigation-menu.js";
34
+ import { Pagination as it, PaginationContent as pt, PaginationEllipsis as lt, PaginationItem as mt, PaginationLink as xt, PaginationNext as ut, PaginationPrevious as ft } from "./components/foundations/pagination.js";
35
+ import { getPaginationRange as gt } from "./lib/pagination-range.js";
36
+ import { Popover as ct, PopoverAnchor as st, PopoverContent as bt, PopoverTrigger as St } from "./components/foundations/popover.js";
37
+ import { Progress as Tt } from "./components/foundations/progress.js";
38
+ import { ResponsiveDialog as It, ResponsiveDialogClose as vt, ResponsiveDialogContent as ht, ResponsiveDialogDescription as Ft, ResponsiveDialogFooter as Pt, ResponsiveDialogHeader as wt, ResponsiveDialogTitle as At, ResponsiveDialogTrigger as kt, useIsMobile as Bt } from "./components/foundations/responsive-dialog.js";
39
+ import { RadioGroup as yt, RadioGroupItem as Lt } from "./components/foundations/radio-group.js";
40
+ import { ScrollArea as Gt, ScrollBar as Ht } from "./components/foundations/scroll-area.js";
41
+ import { Select as Ot, SelectContent as Et, SelectGroup as Ut, SelectItem as _t, SelectLabel as Wt, SelectScrollDownButton as Qt, SelectScrollUpButton as zt, SelectSeparator as Kt, SelectTrigger as jt, SelectValue as qt } from "./components/foundations/select.js";
42
+ import { Separator as Xt } from "./components/foundations/separator.js";
43
+ import { Sheet as Zt, SheetClose as $t, SheetContent as ea, SheetDescription as oa, SheetFooter as ra, SheetHeader as ta, SheetTitle as aa, SheetTrigger as na } from "./components/foundations/sheet.js";
44
+ import { Skeleton as pa } from "./components/foundations/skeleton.js";
45
+ import { SkipLink as ma } from "./components/foundations/skip-link.js";
46
+ import { Slider as ua } from "./components/foundations/slider.js";
47
+ import { Spinner as da } from "./components/foundations/spinner.js";
48
+ import { SocialIcon as Ca } from "./components/foundations/social-icon.js";
49
+ import { Switch as sa } from "./components/foundations/switch.js";
50
+ import { Table as Sa, TableBody as Da, TableCaption as Ta, TableCell as Ma, TableFooter as Ia, TableHead as va, TableHeader as ha, TableRow as Fa } from "./components/foundations/table.js";
51
+ import { Tabs as wa, TabsContent as Aa, TabsList as ka, TabsTrigger as Ba } from "./components/foundations/tabs.js";
52
+ import { Textarea as ya } from "./components/foundations/textarea.js";
53
+ import { Toaster as Na } from "./components/foundations/sonner.js";
54
+ import { Toggle as Ha, toggleVariants as Va } from "./components/foundations/toggle.js";
55
+ import { ToggleGroup as Ea, ToggleGroupItem as Ua } from "./components/foundations/toggle-group.js";
56
+ import { Tooltip as Wa, TooltipContent as Qa, TooltipProvider as za, TooltipTrigger as Ka } from "./components/foundations/tooltip.js";
57
+ import { AdminSideNav as qa } from "./components/primitives/admin-side-nav.js";
58
+ import { AdminHeader as Xa } from "./components/primitives/admin-header.js";
59
+ import { CoachMark as Za } from "./components/primitives/coach-mark.js";
60
+ import { Combobox as en } from "./components/primitives/combobox.js";
61
+ import { BannerCarousel as rn } from "./components/primitives/banner-carousel.js";
62
+ import { ContentCarousel as an } from "./components/primitives/content-carousel.js";
63
+ import { MultiSelect as pn } from "./components/primitives/multi-select.js";
64
+ import { StickyActionBar as mn } from "./components/primitives/sticky-action-bar.js";
65
+ import { BottomTabBar as un } from "./components/primitives/bottom-tab-bar.js";
66
+ import { BulkActionBar as dn } from "./components/primitives/bulk-action-bar.js";
67
+ import { CategoryShortcuts as Cn } from "./components/primitives/category-shortcuts.js";
68
+ import { CategoryScroll as sn } from "./components/primitives/category-scroll.js";
69
+ import { ChatComposer as Sn } from "./components/primitives/chat-composer.js";
70
+ import { Chip as Tn } from "./components/primitives/chip.js";
71
+ import { Prose as In } from "./components/primitives/prose.js";
72
+ import { ContentCard as hn, ContentList as Fn } from "./components/primitives/content-card.js";
73
+ import { StandardPageShell as wn, StandardPageShell as An } from "./components/primitives/standard-page-shell.js";
74
+ import { EmptyState as Bn } from "./components/primitives/empty-state.js";
75
+ import { DatePicker as yn, DateTimePicker as Ln } from "./components/primitives/date-picker.js";
76
+ import { ErrorState as Gn, NotFoundIllustration as Hn } from "./components/primitives/error-state.js";
77
+ import { FilterBar as On } from "./components/primitives/filter-bar.js";
78
+ import { Footer as Un } from "./components/primitives/footer.js";
79
+ import { FormField as Wn } from "./components/primitives/form-field.js";
80
+ import { FunnelShell as zn } from "./components/primitives/funnel-shell.js";
81
+ import { Header as jn } from "./components/primitives/header.js";
82
+ import { ImageCarousel as Jn } from "./components/primitives/image-carousel.js";
83
+ import { ImageGallery as Yn } from "./components/primitives/image-gallery.js";
84
+ import { ImageInput as $n, imageInputPreviewVariants as ei } from "./components/primitives/image-input.js";
85
+ import { ImageUploader as ri } from "./components/primitives/image-uploader.js";
86
+ import { KebabMenu as ai } from "./components/primitives/kebab-menu.js";
87
+ import { ListItem as ii } from "./components/primitives/list-item.js";
88
+ import { MenuDrawer as li } from "./components/primitives/menu-drawer.js";
89
+ import { SubNav as xi } from "./components/primitives/sub-nav.js";
90
+ import { NotificationBadge as fi, notificationBadgeVariants as di } from "./components/primitives/notification-badge.js";
91
+ import { NotificationList as Ci } from "./components/primitives/notification-list.js";
92
+ import { PriceDisplay as si, priceDisplayVariants as bi } from "./components/primitives/price-display.js";
93
+ import { ProgressSteps as Di } from "./components/primitives/progress-steps.js";
94
+ import { Timeline as Mi } from "./components/primitives/timeline.js";
95
+ import { NumberInput as vi, QuantitySelector as hi } from "./components/primitives/number-input.js";
96
+ import { SearchBar as Pi } from "./components/primitives/search-bar.js";
97
+ import { SearchPanel as Ai } from "./components/primitives/search-panel.js";
98
+ import { Container as Bi, containerVariants as Ri } from "./components/primitives/container.js";
99
+ import { Section as Li, sectionScrimVariants as Ni, sectionVariants as Gi } from "./components/primitives/section.js";
100
+ import { SectionHeader as Vi } from "./components/primitives/section-header.js";
101
+ import { SectionNav as Ei } from "./components/primitives/section-nav.js";
102
+ import { ShareButtons as _i } from "./components/primitives/share-buttons.js";
103
+ import { SideNav as Qi } from "./components/primitives/side-nav.js";
104
+ import { SocialLoginButton as Ki } from "./components/primitives/social-login-button.js";
105
+ import { StatusCountTabs as qi } from "./components/primitives/status-count-tabs.js";
106
+ import { Tag as Xi, tagVariants as Yi } from "./components/primitives/tag.js";
107
+ import { WorkspaceShell as $i, WorkspaceShell as ep } from "./components/primitives/workspace-shell.js";
108
+ import { AdminShell as rp, AdminShell as tp, MissingComponent as ap } from "./components/ec/admin-shell.js";
109
+ import { AnniversaryCard as ip } from "./components/ec/anniversary-card.js";
110
+ import { CakeLogo as lp } from "./components/ec/cake-logo.js";
111
+ import { ChartControls as xp } from "./components/ec/chart-controls.js";
112
+ import { CountdownTimer as fp } from "./components/ec/countdown-timer.js";
113
+ import { CouponCard as gp } from "./components/ec/coupon-card.js";
114
+ import { DeliveryCalendar as cp } from "./components/ec/delivery-calendar.js";
115
+ import { mypageMenuGroups as bp } from "./components/ec/_mypage-menu-data.js";
116
+ import { OrderSection as Dp } from "./components/ec/order-section.js";
117
+ import { OrderSummary as Mp } from "./components/ec/order-summary.js";
118
+ import { CreditCardIcon as vp, PaymentMethodDisplay as hp } from "./components/ec/payment-method.js";
119
+ import { BookmarkRibbonIcon as Pp, ProductCard as wp } from "./components/ec/product-card.js";
120
+ import { ProductCarousel as kp } from "./components/ec/product-carousel.js";
121
+ import { ProductCTA as Rp } from "./components/ec/product-cta.js";
122
+ import { ProductDetailBar as Lp } from "./components/ec/product-detail-bar.js";
123
+ import { ProductDetailSidebar as Gp } from "./components/ec/product-detail-sidebar.js";
124
+ import { ProductListItem as Vp } from "./components/ec/product-list-item.js";
125
+ import { OptionImageUpload as Ep, OptionQuantity as Up, OptionSelect as _p, OptionText as Wp, ProductOption as Qp } from "./components/ec/product-option.js";
126
+ import { RatingStars as Kp, SparkleIcon as jp } from "./components/ec/rating-stars.js";
127
+ import { ReviewCard as Jp } from "./components/ec/review-card.js";
128
+ import { ReviewForm as Yp } from "./components/ec/review-form.js";
129
+ import { ReviewItem as $p, ReviewSummary as el } from "./components/ec/review-summary.js";
130
+ import { MypageShell as rl } from "./components/ec/mypage-shell.js";
131
+ import { ShopCard as al } from "./components/ec/shop-card.js";
132
+ import { StatCard as il } from "./components/ec/stat-card.js";
133
+ import { chipVariants as ll } from "./components/foundations/chip-variants.js";
134
134
  export {
135
135
  u as Accordion,
136
136
  f as AccordionContent,
137
137
  d as AccordionItem,
138
138
  g as AccordionTrigger,
139
- Ra as AdminHeader,
140
- Vi as AdminLayout,
141
- Hi as AdminShell,
142
- Aa as AdminSideNav,
143
- s as Alert,
144
- c as AlertDescription,
139
+ Xa as AdminHeader,
140
+ rp as AdminLayout,
141
+ tp as AdminShell,
142
+ qa as AdminSideNav,
143
+ c as Alert,
144
+ s as AlertDescription,
145
145
  D as AlertDialog,
146
- M as AlertDialogAction,
147
- T as AlertDialogCancel,
146
+ T as AlertDialogAction,
147
+ M as AlertDialogCancel,
148
148
  I as AlertDialogContent,
149
149
  v as AlertDialogDescription,
150
150
  h as AlertDialogFooter,
@@ -152,16 +152,17 @@ export {
152
152
  P as AlertDialogOverlay,
153
153
  w as AlertDialogPortal,
154
154
  A as AlertDialogTitle,
155
- B as AlertDialogTrigger,
156
- S as AlertTitle,
157
- Ui as AnniversaryCard,
158
- k as AspectRatio,
155
+ k as AlertDialogTrigger,
156
+ b as AlertTitle,
157
+ ip as AnniversaryCard,
158
+ R as AspectRatio,
159
159
  L as Avatar,
160
160
  N as AvatarFallback,
161
161
  G as AvatarImage,
162
- H as Badge,
163
- Va as BannerCarousel,
164
- za as BottomTabBar,
162
+ V as Badge,
163
+ rn as BannerCarousel,
164
+ Pp as BookmarkRibbonIcon,
165
+ un as BottomTabBar,
165
166
  U as Breadcrumb,
166
167
  _ as BreadcrumbEllipsis,
167
168
  W as BreadcrumbItem,
@@ -169,308 +170,327 @@ export {
169
170
  z as BreadcrumbList,
170
171
  K as BreadcrumbPage,
171
172
  j as BreadcrumbSeparator,
172
- ja as BulkActionBar,
173
+ dn as BulkActionBar,
173
174
  J as Button,
174
- vn as CakeFormField,
175
- Wi as CakeLogo,
175
+ Wn as CakeFormField,
176
+ lp as CakeLogo,
176
177
  Z as Calendar,
177
- oo as Card,
178
- ro as CardAction,
179
- eo as CardContent,
180
- to as CardDescription,
181
- ao as CardFooter,
182
- no as CardHeader,
183
- io as CardTitle,
184
- Ya as CategoryScroll,
185
- Ja as CategoryShortcuts,
186
- zi as ChartControls,
187
- $a as ChatComposer,
188
- lo as Checkbox,
189
- uo as CheckboxCardGroup,
190
- fo as CheckboxCardItem,
191
- Co as CheckboxGroup,
192
- so as CheckboxGroupItem,
193
- rn as Chip,
194
- ya as CoachMark,
195
- So as Collapsible,
196
- bo as CollapsibleContent,
197
- Do as CollapsibleTrigger,
198
- Na as Combobox,
199
- To as Command,
200
- Io as CommandDialog,
201
- vo as CommandEmpty,
202
- ho as CommandGroup,
203
- Fo as CommandInput,
204
- Po as CommandItem,
205
- wo as CommandList,
206
- Ao as CommandSeparator,
207
- Bo as CommandShortcut,
208
- fi as Container,
209
- nn as ContentCard,
210
- Oa as ContentCarousel,
211
- pn as ContentList,
212
- ko as ContextMenu,
213
- yo as ContextMenuCheckboxItem,
214
- Lo as ContextMenuContent,
215
- No as ContextMenuGroup,
216
- Go as ContextMenuItem,
217
- Vo as ContextMenuLabel,
218
- Ho as ContextMenuPortal,
219
- Oo as ContextMenuRadioGroup,
220
- Eo as ContextMenuRadioItem,
221
- Uo as ContextMenuSeparator,
222
- _o as ContextMenuShortcut,
223
- Wo as ContextMenuSub,
224
- Qo as ContextMenuSubContent,
225
- zo as ContextMenuSubTrigger,
226
- Ko as ContextMenuTrigger,
227
- ji as CountdownTimer,
228
- Ji as CouponCard,
229
- np as CreditCardIcon,
230
- qo as DataTable,
231
- gn as DatePicker,
232
- Cn as DateTimePicker,
233
- Yi as DeliveryCalendar,
234
- Xo as Dialog,
235
- Yo as DialogClose,
236
- Zo as DialogContent,
237
- $o as DialogDescription,
238
- or as DialogFooter,
239
- rr as DialogHeader,
240
- er as DialogOverlay,
241
- tr as DialogPortal,
242
- ar as DialogTitle,
243
- nr as DialogTrigger,
244
- pr as Drawer,
245
- mr as DrawerClose,
246
- lr as DrawerContent,
247
- xr as DrawerDescription,
248
- ur as DrawerFooter,
249
- fr as DrawerHeader,
250
- dr as DrawerOverlay,
251
- gr as DrawerPortal,
252
- Cr as DrawerTitle,
253
- sr as DrawerTrigger,
254
- Sr as DropdownMenu,
255
- br as DropdownMenuCheckboxItem,
256
- Dr as DropdownMenuContent,
257
- Mr as DropdownMenuGroup,
258
- Tr as DropdownMenuItem,
259
- Ir as DropdownMenuLabel,
260
- vr as DropdownMenuPortal,
261
- hr as DropdownMenuRadioGroup,
262
- Fr as DropdownMenuRadioItem,
263
- Pr as DropdownMenuSeparator,
264
- wr as DropdownMenuShortcut,
265
- Ar as DropdownMenuSub,
266
- Br as DropdownMenuSubContent,
267
- Rr as DropdownMenuSubTrigger,
268
- kr as DropdownMenuTrigger,
269
- ln as EcPageShell,
270
- fn as EmptyState,
271
- cn as ErrorState,
178
+ ee as Card,
179
+ oe as CardAction,
180
+ re as CardContent,
181
+ te as CardDescription,
182
+ ae as CardFooter,
183
+ ne as CardHeader,
184
+ ie as CardTitle,
185
+ sn as CategoryScroll,
186
+ Cn as CategoryShortcuts,
187
+ xp as ChartControls,
188
+ Sn as ChatComposer,
189
+ me as Checkbox,
190
+ ue as CheckboxCardGroup,
191
+ fe as CheckboxCardItem,
192
+ ge as CheckboxGroup,
193
+ Ce as CheckboxGroupItem,
194
+ Tn as Chip,
195
+ Za as CoachMark,
196
+ se as Collapsible,
197
+ be as CollapsibleContent,
198
+ Se as CollapsibleTrigger,
199
+ en as Combobox,
200
+ Te as Command,
201
+ Me as CommandDialog,
202
+ Ie as CommandEmpty,
203
+ ve as CommandGroup,
204
+ he as CommandInput,
205
+ Fe as CommandItem,
206
+ Pe as CommandList,
207
+ we as CommandSeparator,
208
+ Ae as CommandShortcut,
209
+ Bi as Container,
210
+ hn as ContentCard,
211
+ an as ContentCarousel,
212
+ Fn as ContentList,
213
+ Be as ContextMenu,
214
+ Re as ContextMenuCheckboxItem,
215
+ ye as ContextMenuContent,
216
+ Le as ContextMenuGroup,
217
+ Ne as ContextMenuItem,
218
+ Ge as ContextMenuLabel,
219
+ He as ContextMenuPortal,
220
+ Ve as ContextMenuRadioGroup,
221
+ Oe as ContextMenuRadioItem,
222
+ Ee as ContextMenuSeparator,
223
+ Ue as ContextMenuShortcut,
224
+ _e as ContextMenuSub,
225
+ We as ContextMenuSubContent,
226
+ Qe as ContextMenuSubTrigger,
227
+ ze as ContextMenuTrigger,
228
+ fp as CountdownTimer,
229
+ gp as CouponCard,
230
+ vp as CreditCardIcon,
231
+ je as DataTable,
232
+ qe as DataTableActionCell,
233
+ Je as DataTableAddRow,
234
+ Xe as DataTableAvatarCell,
235
+ Ye as DataTableBody,
236
+ Ze as DataTableBulkActions,
237
+ $e as DataTableCell,
238
+ eo as DataTableCheckboxCell,
239
+ oo as DataTableDragHandleCell,
240
+ ro as DataTableEmptyState,
241
+ to as DataTableHead,
242
+ ao as DataTableHeader,
243
+ no as DataTableImageCell,
244
+ io as DataTableInputCell,
245
+ po as DataTableLinkCell,
246
+ lo as DataTableNumberCell,
247
+ mo as DataTableRow,
248
+ xo as DataTableSectionRow,
249
+ uo as DataTableSelectCell,
250
+ fo as DataTableTable,
251
+ yn as DatePicker,
252
+ Ln as DateTimePicker,
253
+ cp as DeliveryCalendar,
254
+ Co as Dialog,
255
+ co as DialogClose,
256
+ so as DialogContent,
257
+ bo as DialogDescription,
258
+ So as DialogFooter,
259
+ Do as DialogHeader,
260
+ To as DialogOverlay,
261
+ Mo as DialogPortal,
262
+ Io as DialogTitle,
263
+ vo as DialogTrigger,
264
+ Fo as Drawer,
265
+ Po as DrawerClose,
266
+ wo as DrawerContent,
267
+ Ao as DrawerDescription,
268
+ ko as DrawerFooter,
269
+ Bo as DrawerHeader,
270
+ Ro as DrawerOverlay,
271
+ yo as DrawerPortal,
272
+ Lo as DrawerTitle,
273
+ No as DrawerTrigger,
274
+ Ho as DropdownMenu,
275
+ Vo as DropdownMenuCheckboxItem,
276
+ Oo as DropdownMenuContent,
277
+ Eo as DropdownMenuGroup,
278
+ Uo as DropdownMenuItem,
279
+ _o as DropdownMenuLabel,
280
+ Wo as DropdownMenuPortal,
281
+ Qo as DropdownMenuRadioGroup,
282
+ zo as DropdownMenuRadioItem,
283
+ Ko as DropdownMenuSeparator,
284
+ jo as DropdownMenuShortcut,
285
+ qo as DropdownMenuSub,
286
+ Jo as DropdownMenuSubContent,
287
+ Xo as DropdownMenuSubTrigger,
288
+ Yo as DropdownMenuTrigger,
289
+ wn as EcPageShell,
290
+ Bn as EmptyState,
291
+ Gn as ErrorState,
272
292
  n as FOCUS_RING,
273
293
  i as FOCUS_RING_INSET,
274
294
  p as FOCUS_RING_WITHIN,
275
- Lr as Field,
276
- Nr as FieldDescription,
277
- Gr as FieldError,
278
- Vr as FieldGroup,
279
- Hr as FieldLabel,
280
- Or as FieldLegend,
281
- Er as FieldSeparator,
282
- Ur as FieldSet,
283
- Qr as FileInput,
284
- Dn as FilterBar,
285
- Tn as Footer,
286
- qr as Form,
287
- Jr as FormControl,
288
- Xr as FormDescription,
289
- Yr as FormField,
290
- Zr as FormItem,
291
- $r as FormLabel,
292
- oe as FormMessage,
293
- Fn as FunnelShell,
294
- wn as Header,
295
- te as HoverCard,
296
- ae as HoverCardContent,
297
- ne as HoverCardTrigger,
298
- pe as IconBadge,
299
- Bn as ImageCarousel,
300
- kn as ImageGallery,
301
- Ln as ImageInput,
302
- Vn as ImageUploader,
303
- xe as Input,
304
- On as KebabMenu,
305
- fe as Label,
306
- Un as ListItem,
307
- Wn as MenuDrawer,
308
- ge as Menubar,
309
- Ce as MenubarCheckboxItem,
310
- se as MenubarContent,
311
- ce as MenubarGroup,
312
- Se as MenubarItem,
313
- be as MenubarLabel,
314
- De as MenubarMenu,
315
- Me as MenubarPortal,
316
- Te as MenubarRadioGroup,
317
- Ie as MenubarRadioItem,
318
- ve as MenubarSeparator,
319
- he as MenubarShortcut,
320
- Fe as MenubarSub,
321
- Pe as MenubarSubContent,
322
- we as MenubarSubTrigger,
323
- Ae as MenubarTrigger,
324
- Oi as MissingComponent,
325
- Ua as MultiSelect,
326
- Gp as MypageShell,
327
- Re as NavigationMenu,
328
- ke as NavigationMenuContent,
329
- ye as NavigationMenuIndicator,
330
- Le as NavigationMenuItem,
331
- Ne as NavigationMenuLink,
332
- Ge as NavigationMenuList,
333
- Ve as NavigationMenuTrigger,
334
- He as NavigationMenuViewport,
335
- Sn as NotFoundIllustration,
336
- jn as NotificationBadge,
337
- Xn as NotificationList,
338
- ni as NumberInput,
339
- Dp as OptionImageUpload,
340
- Mp as OptionQuantity,
341
- Tp as OptionSelect,
342
- Ip as OptionText,
343
- rp as OrderSection,
344
- tp as OrderSummary,
345
- Ue as Pagination,
346
- _e as PaginationContent,
347
- We as PaginationEllipsis,
348
- Qe as PaginationItem,
349
- ze as PaginationLink,
350
- Ke as PaginationNext,
351
- je as PaginationPrevious,
352
- ip as PaymentMethodDisplay,
353
- Ye as Popover,
354
- Ze as PopoverAnchor,
355
- $e as PopoverContent,
356
- ot as PopoverTrigger,
357
- Zn as PriceDisplay,
358
- fp as ProductCTA,
359
- mp as ProductCard,
360
- xp as ProductCarousel,
361
- gp as ProductDetailBar,
362
- sp as ProductDetailSidebar,
363
- Sp as ProductListItem,
364
- vp as ProductOption,
365
- et as Progress,
366
- ri as ProgressSteps,
367
- tn as Prose,
368
- ii as QuantitySelector,
369
- gt as RadioGroup,
370
- Ct as RadioGroupItem,
371
- Fp as RatingStars,
372
- at as ResponsiveDialog,
373
- nt as ResponsiveDialogClose,
374
- it as ResponsiveDialogContent,
375
- pt as ResponsiveDialogDescription,
376
- mt as ResponsiveDialogFooter,
377
- lt as ResponsiveDialogHeader,
378
- xt as ResponsiveDialogTitle,
379
- ut as ResponsiveDialogTrigger,
380
- Ap as ReviewCard,
381
- Rp as ReviewForm,
382
- yp as ReviewItem,
383
- Lp as ReviewSummary,
384
- ct as ScrollArea,
385
- St as ScrollBar,
386
- mi as SearchBar,
387
- xi as SearchPanel,
388
- Ci as Section,
389
- bi as SectionHeader,
390
- Mi as SectionNav,
391
- Dt as Select,
392
- Mt as SelectContent,
393
- Tt as SelectGroup,
394
- It as SelectItem,
395
- vt as SelectLabel,
396
- ht as SelectScrollDownButton,
397
- Ft as SelectScrollUpButton,
398
- Pt as SelectSeparator,
399
- wt as SelectTrigger,
400
- At as SelectValue,
401
- Rt as Separator,
402
- Ii as ShareButtons,
403
- yt as Sheet,
404
- Lt as SheetClose,
405
- Nt as SheetContent,
406
- Gt as SheetDescription,
407
- Vt as SheetFooter,
408
- Ht as SheetHeader,
409
- Ot as SheetTitle,
410
- Et as SheetTrigger,
411
- Hp as ShopCard,
412
- hi as SideNav,
413
- _t as Skeleton,
414
- Qt as SkipLink,
415
- Kt as Slider,
416
- Xt as SocialIcon,
417
- Pi as SocialLoginButton,
418
- Pp as SparkleIcon,
419
- qt as Spinner,
420
- xn as StandardPageShell,
421
- Ep as StatCard,
422
- Ai as StatusCountTabs,
423
- Wa as StickyActionBar,
424
- zn as SubNav,
425
- Zt as Switch,
426
- oa as Table,
427
- ra as TableBody,
428
- ea as TableCaption,
429
- ta as TableCell,
430
- aa as TableFooter,
431
- na as TableHead,
432
- ia as TableHeader,
433
- pa as TableRow,
434
- la as Tabs,
435
- xa as TabsContent,
436
- ua as TabsList,
437
- fa as TabsTrigger,
438
- Ri as Tag,
439
- ga as Textarea,
440
- ti as Timeline,
441
- sa as Toaster,
442
- Sa as Toggle,
443
- Ma as ToggleGroup,
444
- Ta as ToggleGroupItem,
445
- va as Tooltip,
446
- ha as TooltipContent,
447
- Fa as TooltipProvider,
448
- Pa as TooltipTrigger,
449
- Li as WorkspaceLayout,
450
- Ni as WorkspaceShell,
295
+ $o as Field,
296
+ er as FieldDescription,
297
+ or as FieldError,
298
+ rr as FieldGroup,
299
+ tr as FieldLabel,
300
+ ar as FieldLegend,
301
+ nr as FieldSeparator,
302
+ ir as FieldSet,
303
+ mr as FileInput,
304
+ On as FilterBar,
305
+ Un as Footer,
306
+ dr as Form,
307
+ gr as FormControl,
308
+ Cr as FormDescription,
309
+ cr as FormField,
310
+ sr as FormItem,
311
+ br as FormLabel,
312
+ Sr as FormMessage,
313
+ zn as FunnelShell,
314
+ jn as Header,
315
+ Mr as HoverCard,
316
+ Ir as HoverCardContent,
317
+ vr as HoverCardTrigger,
318
+ Fr as IconBadge,
319
+ Jn as ImageCarousel,
320
+ Yn as ImageGallery,
321
+ $n as ImageInput,
322
+ ri as ImageUploader,
323
+ Ar as Input,
324
+ ai as KebabMenu,
325
+ Br as Label,
326
+ ii as ListItem,
327
+ li as MenuDrawer,
328
+ yr as Menubar,
329
+ Lr as MenubarCheckboxItem,
330
+ Nr as MenubarContent,
331
+ Gr as MenubarGroup,
332
+ Hr as MenubarItem,
333
+ Vr as MenubarLabel,
334
+ Or as MenubarMenu,
335
+ Er as MenubarPortal,
336
+ Ur as MenubarRadioGroup,
337
+ _r as MenubarRadioItem,
338
+ Wr as MenubarSeparator,
339
+ Qr as MenubarShortcut,
340
+ zr as MenubarSub,
341
+ Kr as MenubarSubContent,
342
+ jr as MenubarSubTrigger,
343
+ qr as MenubarTrigger,
344
+ ap as MissingComponent,
345
+ pn as MultiSelect,
346
+ rl as MypageShell,
347
+ Xr as NavigationMenu,
348
+ Yr as NavigationMenuContent,
349
+ Zr as NavigationMenuIndicator,
350
+ $r as NavigationMenuItem,
351
+ et as NavigationMenuLink,
352
+ ot as NavigationMenuList,
353
+ rt as NavigationMenuTrigger,
354
+ tt as NavigationMenuViewport,
355
+ Hn as NotFoundIllustration,
356
+ fi as NotificationBadge,
357
+ Ci as NotificationList,
358
+ vi as NumberInput,
359
+ Ep as OptionImageUpload,
360
+ Up as OptionQuantity,
361
+ _p as OptionSelect,
362
+ Wp as OptionText,
363
+ Dp as OrderSection,
364
+ Mp as OrderSummary,
365
+ it as Pagination,
366
+ pt as PaginationContent,
367
+ lt as PaginationEllipsis,
368
+ mt as PaginationItem,
369
+ xt as PaginationLink,
370
+ ut as PaginationNext,
371
+ ft as PaginationPrevious,
372
+ hp as PaymentMethodDisplay,
373
+ ct as Popover,
374
+ st as PopoverAnchor,
375
+ bt as PopoverContent,
376
+ St as PopoverTrigger,
377
+ si as PriceDisplay,
378
+ Rp as ProductCTA,
379
+ wp as ProductCard,
380
+ kp as ProductCarousel,
381
+ Lp as ProductDetailBar,
382
+ Gp as ProductDetailSidebar,
383
+ Vp as ProductListItem,
384
+ Qp as ProductOption,
385
+ Tt as Progress,
386
+ Di as ProgressSteps,
387
+ In as Prose,
388
+ hi as QuantitySelector,
389
+ yt as RadioGroup,
390
+ Lt as RadioGroupItem,
391
+ Kp as RatingStars,
392
+ It as ResponsiveDialog,
393
+ vt as ResponsiveDialogClose,
394
+ ht as ResponsiveDialogContent,
395
+ Ft as ResponsiveDialogDescription,
396
+ Pt as ResponsiveDialogFooter,
397
+ wt as ResponsiveDialogHeader,
398
+ At as ResponsiveDialogTitle,
399
+ kt as ResponsiveDialogTrigger,
400
+ Jp as ReviewCard,
401
+ Yp as ReviewForm,
402
+ $p as ReviewItem,
403
+ el as ReviewSummary,
404
+ Gt as ScrollArea,
405
+ Ht as ScrollBar,
406
+ Pi as SearchBar,
407
+ Ai as SearchPanel,
408
+ Li as Section,
409
+ Vi as SectionHeader,
410
+ Ei as SectionNav,
411
+ Ot as Select,
412
+ Et as SelectContent,
413
+ Ut as SelectGroup,
414
+ _t as SelectItem,
415
+ Wt as SelectLabel,
416
+ Qt as SelectScrollDownButton,
417
+ zt as SelectScrollUpButton,
418
+ Kt as SelectSeparator,
419
+ jt as SelectTrigger,
420
+ qt as SelectValue,
421
+ Xt as Separator,
422
+ _i as ShareButtons,
423
+ Zt as Sheet,
424
+ $t as SheetClose,
425
+ ea as SheetContent,
426
+ oa as SheetDescription,
427
+ ra as SheetFooter,
428
+ ta as SheetHeader,
429
+ aa as SheetTitle,
430
+ na as SheetTrigger,
431
+ al as ShopCard,
432
+ Qi as SideNav,
433
+ pa as Skeleton,
434
+ ma as SkipLink,
435
+ ua as Slider,
436
+ Ca as SocialIcon,
437
+ Ki as SocialLoginButton,
438
+ jp as SparkleIcon,
439
+ da as Spinner,
440
+ An as StandardPageShell,
441
+ il as StatCard,
442
+ qi as StatusCountTabs,
443
+ mn as StickyActionBar,
444
+ xi as SubNav,
445
+ sa as Switch,
446
+ Sa as Table,
447
+ Da as TableBody,
448
+ Ta as TableCaption,
449
+ Ma as TableCell,
450
+ Ia as TableFooter,
451
+ va as TableHead,
452
+ ha as TableHeader,
453
+ Fa as TableRow,
454
+ wa as Tabs,
455
+ Aa as TabsContent,
456
+ ka as TabsList,
457
+ Ba as TabsTrigger,
458
+ Xi as Tag,
459
+ ya as Textarea,
460
+ Mi as Timeline,
461
+ Na as Toaster,
462
+ Ha as Toggle,
463
+ Ea as ToggleGroup,
464
+ Ua as ToggleGroupItem,
465
+ Wa as Tooltip,
466
+ Qa as TooltipContent,
467
+ za as TooltipProvider,
468
+ Ka as TooltipTrigger,
469
+ $i as WorkspaceLayout,
470
+ ep as WorkspaceShell,
451
471
  O as badgeVariants,
452
472
  X as buttonVariants,
453
- po as cardVariants,
454
- _p as chipVariants,
473
+ pe as cardVariants,
474
+ ll as chipVariants,
455
475
  t as cn,
456
- di as containerVariants,
457
- _r as fieldVariants,
458
- zr as formatFileNames,
459
- Je as getPaginationRange,
460
- me as iconBadgeVariants,
461
- Nn as imageInputPreviewVariants,
462
- $i as mypageMenuGroups,
463
- Oe as navigationMenuTriggerStyle,
464
- qn as notificationBadgeVariants,
465
- $n as priceDisplayVariants,
466
- si as sectionScrimVariants,
467
- ci as sectionVariants,
468
- ki as tagVariants,
469
- l as toast,
470
- ba as toggleVariants,
471
- re as useFormField,
472
- ft as useIsMobile,
473
- Kr as validateFileSize
476
+ Ri as containerVariants,
477
+ pr as fieldVariants,
478
+ xr as formatFileNames,
479
+ gt as getPaginationRange,
480
+ Pr as iconBadgeVariants,
481
+ ei as imageInputPreviewVariants,
482
+ bp as mypageMenuGroups,
483
+ at as navigationMenuTriggerStyle,
484
+ di as notificationBadgeVariants,
485
+ bi as priceDisplayVariants,
486
+ Ni as sectionScrimVariants,
487
+ Gi as sectionVariants,
488
+ Yi as tagVariants,
489
+ m as toast,
490
+ Va as toggleVariants,
491
+ Dr as useFormField,
492
+ Bt as useIsMobile,
493
+ ur as validateFileSize
474
494
  };
475
495
 
476
496
 
@@ -2365,7 +2385,8 @@ export {
2365
2385
  // <div
2366
2386
  // data-slot="order-summary"
2367
2387
  // className={cn(
2368
- // "fixed inset-x-0 bottom-[52px] z-[var(--Z-Sticky)] mx-auto max-w-[430px] border-t border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Primary)]",
2388
+ // // fixed 表示はスクロール内容の上に重なるため地は Surface-Elevated(disableFixed 側はページ内フローなので Surface-Primary のまま)
2389
+ // "fixed inset-x-0 bottom-[52px] z-[var(--Z-Sticky)] mx-auto max-w-[430px] border-t border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Elevated)]",
2369
2390
  // className
2370
2391
  // )}
2371
2392
  // {...props}
@@ -5928,7 +5949,7 @@ export {
5928
5949
  // // 画面端との余白は上下左右 40px(calc(100%-5rem))。
5929
5950
  // // 幅上限は端末幅に応じて: SP は端末幅-80px に追従 / sm 以上は
5930
5951
  // // default=480px(テキスト確認が間延びしない幅)・sm=320px
5931
- // "group/alert-dialog-content fixed top-[50%] left-[50%] z-[var(--Z-Modal)] grid w-full max-w-[calc(100%-5rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-[var(--Border-Medium-Emphasis)] bg-background p-6 shadow-lg duration-[var(--Motion-Duration-Base)] data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-[480px]",
5952
+ // "group/alert-dialog-content fixed top-[50%] left-[50%] z-[var(--Z-Modal)] grid w-full max-w-[calc(100%-5rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-[var(--Border-Medium-Emphasis)] bg-[var(--Surface-Elevated)] p-6 shadow-lg duration-[var(--Motion-Duration-Base)] data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-[480px]",
5932
5953
  // className
5933
5954
  // )}
5934
5955
  // {...props}
@@ -8487,6 +8508,9 @@ export {
8487
8508
  // <Checkbox
8488
8509
  // checked={indeterminate ? "indeterminate" : checked}
8489
8510
  // onCheckedChange={(v) => onCheckedChange?.(v === true)}
8511
+ // // Space で生成される click は pointer-events-none でも td へ伝播する。
8512
+ // // Checkbox が処理した選択をセル側で再度トグルしない。
8513
+ // onClick={(event) => event.stopPropagation()}
8490
8514
  // aria-label={ariaLabel || "行を選択"}
8491
8515
  // className="pointer-events-none"
8492
8516
  // />
@@ -8993,7 +9017,7 @@ export {
8993
9017
  // data-slot="dialog-content"
8994
9018
  // onOpenAutoFocus={(e) => e.preventDefault()}
8995
9019
  // className={cn(
8996
- // "fixed top-[50%] left-[50%] z-[var(--Z-Modal)] grid w-[calc(100%_-_32px)] max-w-[calc(100%_-_32px)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl bg-background dark:bg-[var(--Primitive-Gray-800)] p-6 shadow-lg duration-[var(--Motion-Duration-Base)] outline-none focus-visible:ring-2 focus-visible:ring-[var(--Focus-High-Emphasis)] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
9020
+ // "fixed top-[50%] left-[50%] z-[var(--Z-Modal)] grid w-[calc(100%_-_32px)] max-w-[calc(100%_-_32px)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl bg-[var(--Surface-Elevated)] p-6 shadow-lg duration-[var(--Motion-Duration-Base)] outline-none focus-visible:ring-2 focus-visible:ring-[var(--Focus-High-Emphasis)] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
8997
9021
  // className
8998
9022
  // )}
8999
9023
  // {...props}
@@ -9148,7 +9172,7 @@ export {
9148
9172
  // <DrawerPrimitive.Content
9149
9173
  // data-slot="drawer-content"
9150
9174
  // className={cn(
9151
- // "group/drawer-content fixed z-[var(--Z-Modal)] flex h-auto flex-col border-[var(--Border-Medium-Emphasis)] bg-background",
9175
+ // "group/drawer-content fixed z-[var(--Z-Modal)] flex h-auto flex-col border-[var(--Border-Medium-Emphasis)] bg-[var(--Surface-Elevated)]",
9152
9176
  // "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
9153
9177
  // "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
9154
9178
  // "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
@@ -11801,7 +11825,7 @@ export {
11801
11825
  // onCloseAutoFocus?.(e)
11802
11826
  // }}
11803
11827
  // className={cn(
11804
- // "fixed z-[var(--Z-Modal)] flex flex-col gap-4 border-[var(--Border-Medium-Emphasis)] bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-[var(--Motion-Duration-Slow)] data-[state=open]:animate-in data-[state=open]:duration-[var(--Motion-Duration-Slower)]",
11828
+ // "fixed z-[var(--Z-Modal)] flex flex-col gap-4 border-[var(--Border-Medium-Emphasis)] bg-[var(--Surface-Elevated)] shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-[var(--Motion-Duration-Slow)] data-[state=open]:animate-in data-[state=open]:duration-[var(--Motion-Duration-Slower)]",
11805
11829
  // side === "right" &&
11806
11830
  // "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
11807
11831
  // side === "left" &&
@@ -13014,7 +13038,7 @@ export {
13014
13038
  // return (
13015
13039
  // <header
13016
13040
  // data-slot="admin-header"
13017
- // className="fixed top-0 left-0 right-0 z-[var(--Z-Nav)] flex h-14 @md:h-16 items-center justify-between bg-[var(--Surface-Primary)] border-b border-[var(--Border-Low-Emphasis)] px-4 @md:px-6"
13041
+ // className="fixed top-0 left-0 right-0 z-[var(--Z-Nav)] flex h-14 @md:h-16 items-center justify-between bg-[var(--Surface-Elevated)] border-b border-[var(--Border-Low-Emphasis)] px-4 @md:px-6"
13018
13042
  // >
13019
13043
  // <div className="flex items-center gap-2 @md:gap-3">
13020
13044
  // {onMenuClick && (
@@ -13051,6 +13075,13 @@ export {
13051
13075
  // import ArrowDown2 from "iconsax-reactjs/dist/esm/ArrowDown2.js"
13052
13076
  // import { XIcon } from "lucide-react"
13053
13077
  //
13078
+ // import {
13079
+ // DropdownMenu,
13080
+ // DropdownMenuContent,
13081
+ // DropdownMenuItem,
13082
+ // DropdownMenuTrigger,
13083
+ // } from "@/components/foundations/dropdown-menu"
13084
+ // import { FOCUS_RING } from "@/lib/focus-ring"
13054
13085
  // import { cn } from "@/lib/utils"
13055
13086
  //
13056
13087
  // // ============================================================
@@ -13139,6 +13170,9 @@ export {
13139
13170
  // *
13140
13171
  // * メイン項目・サブメニュー項目とも 44px(WCAG 2.5.5 の最小ターゲット)以上にする。
13141
13172
  // * 行高が小さいテキストで縦 padding だけに頼ると割り込むため、`min-h-11` で下限を固定する。
13173
+ // * PC のサブメニューは `DropdownMenu` の Portal / collision handling を利用し、
13174
+ // * viewport 端では位置と最大高を自動調整する。hover ではフォーカスを奪わず、
13175
+ // * Enter / Space / ArrowDown / Escape では標準のメニュー操作に従う。
13142
13176
  // *
13143
13177
  // * ### インポート
13144
13178
  // * ```tsx
@@ -13164,6 +13198,113 @@ export {
13164
13198
  // ariaLabel = "管理メニュー",
13165
13199
  // }: AdminSideNavProps) {
13166
13200
  // const [openMenu, setOpenMenu] = React.useState<string | null>(null)
13201
+ // const hoverOpenedMenuRef = React.useRef<string | null>(null)
13202
+ // const hoverOpenedMenusRef = React.useRef(new Set<string>())
13203
+ // const focusedMenuTriggerRef = React.useRef<string | null>(null)
13204
+ // const pointerOpenedMenuRef = React.useRef<string | null>(null)
13205
+ // const pointerHoverBlockedMenuRef = React.useRef<string | null>(null)
13206
+ // const outsideDismissedMenuRef = React.useRef<string | null>(null)
13207
+ // const menuTriggerRefs = React.useRef(new Map<string, HTMLButtonElement>())
13208
+ // const firstMenuItemRefs = React.useRef(new Map<string, HTMLAnchorElement>())
13209
+ // const openTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)
13210
+ // const closeTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)
13211
+ // const desktopNavRef = React.useRef<HTMLElement | null>(null)
13212
+ //
13213
+ // const cancelScheduledClose = React.useCallback(() => {
13214
+ // if (closeTimerRef.current !== null) {
13215
+ // clearTimeout(closeTimerRef.current)
13216
+ // closeTimerRef.current = null
13217
+ // }
13218
+ // }, [])
13219
+ //
13220
+ // const cancelScheduledOpen = React.useCallback(() => {
13221
+ // if (openTimerRef.current !== null) {
13222
+ // clearTimeout(openTimerRef.current)
13223
+ // openTimerRef.current = null
13224
+ // }
13225
+ // }, [])
13226
+ //
13227
+ // const openMenuFromPointer = React.useCallback(
13228
+ // (key: string, pointerType: string) => {
13229
+ // if (pointerType === "touch") return
13230
+ // cancelScheduledOpen()
13231
+ // cancelScheduledClose()
13232
+ // openTimerRef.current = setTimeout(() => {
13233
+ // if (
13234
+ // pointerOpenedMenuRef.current !== null &&
13235
+ // pointerOpenedMenuRef.current !== key
13236
+ // ) {
13237
+ // pointerOpenedMenuRef.current = null
13238
+ // menuTriggerRefs.current.get(key)?.focus({ preventScroll: true })
13239
+ // }
13240
+ // hoverOpenedMenuRef.current = key
13241
+ // hoverOpenedMenusRef.current.add(key)
13242
+ // setOpenMenu(key)
13243
+ // openTimerRef.current = null
13244
+ // }, 80)
13245
+ // },
13246
+ // [cancelScheduledClose, cancelScheduledOpen],
13247
+ // )
13248
+ //
13249
+ // const schedulePointerClose = React.useCallback(
13250
+ // (key: string) => {
13251
+ // cancelScheduledOpen()
13252
+ // cancelScheduledClose()
13253
+ // closeTimerRef.current = setTimeout(() => {
13254
+ // setOpenMenu((current) => (current === key ? null : current))
13255
+ // closeTimerRef.current = null
13256
+ // }, 120)
13257
+ // },
13258
+ // [cancelScheduledClose, cancelScheduledOpen],
13259
+ // )
13260
+ //
13261
+ // const closeDesktopMenus = React.useCallback(() => {
13262
+ // cancelScheduledOpen()
13263
+ // cancelScheduledClose()
13264
+ // hoverOpenedMenuRef.current = null
13265
+ // hoverOpenedMenusRef.current.clear()
13266
+ // focusedMenuTriggerRef.current = null
13267
+ // pointerOpenedMenuRef.current = null
13268
+ // pointerHoverBlockedMenuRef.current = null
13269
+ // outsideDismissedMenuRef.current = null
13270
+ // setOpenMenu(null)
13271
+ // }, [cancelScheduledClose, cancelScheduledOpen])
13272
+ //
13273
+ // React.useEffect(
13274
+ // () => () => {
13275
+ // if (openTimerRef.current !== null) clearTimeout(openTimerRef.current)
13276
+ // if (closeTimerRef.current !== null) clearTimeout(closeTimerRef.current)
13277
+ // focusedMenuTriggerRef.current = null
13278
+ // pointerOpenedMenuRef.current = null
13279
+ // pointerHoverBlockedMenuRef.current = null
13280
+ // outsideDismissedMenuRef.current = null
13281
+ // menuTriggerRefs.current.clear()
13282
+ // firstMenuItemRefs.current.clear()
13283
+ // },
13284
+ // [],
13285
+ // )
13286
+ //
13287
+ // React.useEffect(() => {
13288
+ // const nav = desktopNavRef.current
13289
+ // if (!nav || typeof ResizeObserver === "undefined") return
13290
+ //
13291
+ // const closeWhenHidden = () => {
13292
+ // const bounds = nav.getBoundingClientRect()
13293
+ // if (
13294
+ // getComputedStyle(nav).display === "none" ||
13295
+ // bounds.width === 0 ||
13296
+ // bounds.height === 0
13297
+ // ) {
13298
+ // closeDesktopMenus()
13299
+ // }
13300
+ // }
13301
+ //
13302
+ // const observer = new ResizeObserver(closeWhenHidden)
13303
+ // observer.observe(nav)
13304
+ // closeWhenHidden()
13305
+ //
13306
+ // return () => observer.disconnect()
13307
+ // }, [closeDesktopMenus])
13167
13308
  //
13168
13309
  // return (
13169
13310
  // <>
@@ -13173,26 +13314,23 @@ export {
13173
13314
  // (h-full だとヘッダー帯に重なるため使わない)。--Z-Sticky = 30 でヘッダーより背面。
13174
13315
  // レールは @md 限定表示なので SP のヘッダー高さ h-14 は考慮しない。 */}
13175
13316
  // <nav
13317
+ // ref={desktopNavRef}
13176
13318
  // data-slot="admin-side-nav"
13177
13319
  // aria-label={ariaLabel}
13178
- // className="hidden @md:flex fixed left-0 top-16 bottom-0 z-[var(--Z-Sticky)] w-[72px] flex-col items-center bg-[var(--Surface-Primary)] border-r border-[var(--Border-Low-Emphasis)]"
13320
+ // className="hidden @md:flex fixed left-0 top-16 bottom-0 z-[var(--Z-Sticky)] w-[72px] flex-col items-center bg-[var(--Surface-Elevated)] border-r border-[var(--Border-Low-Emphasis)]"
13179
13321
  // >
13180
13322
  // {items.map((item) => {
13181
13323
  // const isActive = activeKey === item.key
13182
13324
  // const hasSubMenu = !!item.subMenus && item.subMenus.length > 0
13183
13325
  // return (
13184
- // <div
13185
- // key={item.key}
13186
- // className="relative"
13187
- // onMouseEnter={() => setOpenMenu(hasSubMenu ? item.key : null)}
13188
- // onMouseLeave={() => setOpenMenu(null)}
13189
- // >
13326
+ // <div key={item.key} className="relative">
13190
13327
  // {(() => {
13191
13328
  // const triggerClass = cn(
13192
- // "flex h-16 w-16 flex-col items-center justify-center gap-1 transition-colors",
13329
+ // "flex h-16 w-16 flex-col items-center justify-center gap-1 rounded-md transition-colors",
13193
13330
  // isActive
13194
13331
  // ? "text-[var(--Text-Accent-Primary)]"
13195
13332
  // : "text-[var(--Text-Medium-Emphasis)] hover:text-[var(--Text-High-Emphasis)]",
13333
+ // FOCUS_RING,
13196
13334
  // )
13197
13335
  // const triggerContent = (
13198
13336
  // <>
@@ -13202,6 +13340,175 @@ export {
13202
13340
  // </span>
13203
13341
  // </>
13204
13342
  // )
13343
+ // if (hasSubMenu) {
13344
+ // return (
13345
+ // <DropdownMenu
13346
+ // modal={false}
13347
+ // open={openMenu === item.key}
13348
+ // onOpenChange={(nextOpen) => {
13349
+ // cancelScheduledClose()
13350
+ // if (nextOpen) {
13351
+ // if (outsideDismissedMenuRef.current === item.key) {
13352
+ // outsideDismissedMenuRef.current = null
13353
+ // }
13354
+ // hoverOpenedMenuRef.current = null
13355
+ // hoverOpenedMenusRef.current.delete(item.key)
13356
+ // setOpenMenu(item.key)
13357
+ // } else {
13358
+ // setOpenMenu((current) =>
13359
+ // current === item.key ? null : current,
13360
+ // )
13361
+ // }
13362
+ // }}
13363
+ // >
13364
+ // <DropdownMenuTrigger asChild>
13365
+ // <button
13366
+ // ref={(node) => {
13367
+ // if (node) {
13368
+ // menuTriggerRefs.current.set(item.key, node)
13369
+ // } else {
13370
+ // menuTriggerRefs.current.delete(item.key)
13371
+ // }
13372
+ // }}
13373
+ // type="button"
13374
+ // className={triggerClass}
13375
+ // onFocus={() => {
13376
+ // cancelScheduledOpen()
13377
+ // focusedMenuTriggerRef.current = item.key
13378
+ // if (hoverOpenedMenuRef.current === item.key) {
13379
+ // hoverOpenedMenuRef.current = null
13380
+ // }
13381
+ // hoverOpenedMenusRef.current.delete(item.key)
13382
+ // }}
13383
+ // onBlur={() => {
13384
+ // if (focusedMenuTriggerRef.current === item.key) {
13385
+ // focusedMenuTriggerRef.current = null
13386
+ // }
13387
+ // }}
13388
+ // onPointerEnter={(event) => {
13389
+ // if (
13390
+ // focusedMenuTriggerRef.current === item.key ||
13391
+ // pointerHoverBlockedMenuRef.current === item.key
13392
+ // ) {
13393
+ // return
13394
+ // }
13395
+ // openMenuFromPointer(item.key, event.pointerType)
13396
+ // }}
13397
+ // onPointerDownCapture={() => {
13398
+ // cancelScheduledOpen()
13399
+ // if (openMenu !== item.key) {
13400
+ // pointerOpenedMenuRef.current = item.key
13401
+ // }
13402
+ // }}
13403
+ // onPointerLeave={() => {
13404
+ // if (
13405
+ // pointerHoverBlockedMenuRef.current === item.key
13406
+ // ) {
13407
+ // pointerHoverBlockedMenuRef.current = null
13408
+ // }
13409
+ // schedulePointerClose(item.key)
13410
+ // }}
13411
+ // >
13412
+ // {triggerContent}
13413
+ // </button>
13414
+ // </DropdownMenuTrigger>
13415
+ // <DropdownMenuContent
13416
+ // side="right"
13417
+ // align="start"
13418
+ // sideOffset={0}
13419
+ // collisionPadding={8}
13420
+ // className="w-[240px] rounded-2xl p-2 shadow-menu"
13421
+ // onPointerEnter={cancelScheduledClose}
13422
+ // onPointerLeave={() => schedulePointerClose(item.key)}
13423
+ // onPointerMoveCapture={(event) => {
13424
+ // if (hoverOpenedMenuRef.current === item.key) {
13425
+ // event.preventDefault()
13426
+ // }
13427
+ // }}
13428
+ // onInteractOutside={(event) => {
13429
+ // const trigger = menuTriggerRefs.current.get(item.key)
13430
+ // if (
13431
+ // pointerOpenedMenuRef.current === item.key &&
13432
+ // event.target instanceof Node &&
13433
+ // !trigger?.contains(event.target)
13434
+ // ) {
13435
+ // outsideDismissedMenuRef.current = item.key
13436
+ // }
13437
+ // }}
13438
+ // {...{
13439
+ // onOpenAutoFocus: (event: Event) => {
13440
+ // if (hoverOpenedMenuRef.current === item.key) {
13441
+ // event.preventDefault()
13442
+ // } else if (
13443
+ // pointerOpenedMenuRef.current === item.key
13444
+ // ) {
13445
+ // event.preventDefault()
13446
+ // requestAnimationFrame(() => {
13447
+ // firstMenuItemRefs.current.get(item.key)?.focus()
13448
+ // })
13449
+ // }
13450
+ // },
13451
+ // }}
13452
+ // onCloseAutoFocus={(event) => {
13453
+ // if (hoverOpenedMenusRef.current.has(item.key)) {
13454
+ // event.preventDefault()
13455
+ // hoverOpenedMenusRef.current.delete(item.key)
13456
+ // if (hoverOpenedMenuRef.current === item.key) {
13457
+ // hoverOpenedMenuRef.current = null
13458
+ // }
13459
+ // }
13460
+ // if (pointerOpenedMenuRef.current === item.key) {
13461
+ // event.preventDefault()
13462
+ // pointerOpenedMenuRef.current = null
13463
+ // if (outsideDismissedMenuRef.current !== item.key) {
13464
+ // pointerHoverBlockedMenuRef.current = item.key
13465
+ // requestAnimationFrame(() => {
13466
+ // menuTriggerRefs.current.get(item.key)?.focus()
13467
+ // })
13468
+ // }
13469
+ // }
13470
+ // if (outsideDismissedMenuRef.current === item.key) {
13471
+ // outsideDismissedMenuRef.current = null
13472
+ // }
13473
+ // }}
13474
+ // >
13475
+ // {item.subMenus!.map((sub, index) => (
13476
+ // <DropdownMenuItem
13477
+ // key={sub.label}
13478
+ // asChild
13479
+ // className="min-h-11 px-4"
13480
+ // onPointerLeave={(event) => {
13481
+ // if (hoverOpenedMenuRef.current === item.key) {
13482
+ // event.preventDefault()
13483
+ // }
13484
+ // }}
13485
+ // >
13486
+ // <a
13487
+ // ref={
13488
+ // index === 0
13489
+ // ? (node) => {
13490
+ // if (node) {
13491
+ // firstMenuItemRefs.current.set(
13492
+ // item.key,
13493
+ // node,
13494
+ // )
13495
+ // } else {
13496
+ // firstMenuItemRefs.current.delete(item.key)
13497
+ // }
13498
+ // }
13499
+ // : undefined
13500
+ // }
13501
+ // href={sub.href}
13502
+ // >
13503
+ // {sub.label}
13504
+ // </a>
13505
+ // </DropdownMenuItem>
13506
+ // ))}
13507
+ // </DropdownMenuContent>
13508
+ // </DropdownMenu>
13509
+ // )
13510
+ // }
13511
+ //
13205
13512
  // return item.href ? (
13206
13513
  // <a
13207
13514
  // href={item.href}
@@ -13216,23 +13523,6 @@ export {
13216
13523
  // </button>
13217
13524
  // )
13218
13525
  // })()}
13219
- // {/* Sub-menu popup */}
13220
- // {hasSubMenu && openMenu === item.key && (
13221
- // <div className="absolute left-full top-0 z-[var(--Z-Popover)] ml-0 w-[240px] rounded-2xl bg-[var(--Surface-Primary)] shadow-menu border border-[var(--Border-Low-Emphasis)] py-2">
13222
- // {item.subMenus!.map((sub) => (
13223
- // <a
13224
- // key={sub.label}
13225
- // href={sub.href}
13226
- // // min-h-11 = 44px(WCAG 2.5.5 最小ターゲット)。
13227
- // // py-2.5(10px×2) + typo-body-sm の行高 18px = 38px で 44px を割るため、
13228
- // // 高さを min-h-11 で確保し flex で中央寄せする。
13229
- // className="flex min-h-11 items-center px-4 py-2.5 typo-body-sm text-[var(--Text-High-Emphasis)] hover:bg-[var(--Surface-Secondary)] transition-colors"
13230
- // >
13231
- // {sub.label}
13232
- // </a>
13233
- // ))}
13234
- // </div>
13235
- // )}
13236
13526
  // </div>
13237
13527
  // )
13238
13528
  // })}
@@ -13544,7 +13834,7 @@ export {
13544
13834
  // data-slot="bottom-tab-bar"
13545
13835
  // aria-label="メインナビゲーション"
13546
13836
  // className={cn(
13547
- // "fixed inset-x-0 bottom-0 z-[var(--Z-Floating)] border-t border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Primary)] pb-[env(safe-area-inset-bottom)] @md:hidden",
13837
+ // "fixed inset-x-0 bottom-0 z-[var(--Z-Floating)] border-t border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Elevated)] pb-[env(safe-area-inset-bottom)] @md:hidden",
13548
13838
  // className
13549
13839
  // )}
13550
13840
  // {...props}
@@ -17260,7 +17550,9 @@ export {
17260
17550
  // : "sticky top-0 z-[var(--Z-Nav)]"
17261
17551
  //
17262
17552
  // const baseClass =
17263
- // "border-b border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Primary)]"
17553
+ // // 地は Surface-Elevated: sticky バーはスクロールするコンテンツの上に重なるため
17554
+ // // 不透明が必須(dark の Surface-Primary は 10% 透過で下の文字が透ける)。light は同値
17555
+ // "border-b border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Elevated)]"
17264
17556
  //
17265
17557
  // const shellClass = cn(stickyClass, baseClass, className)
17266
17558
  //
@@ -18358,6 +18650,8 @@ export {
18358
18650
  // */
18359
18651
  // import * as React from "react"
18360
18652
  // import { cn } from "@/lib/utils"
18653
+ // import { FOCUS_RING_INSET } from "@/lib/focus-ring"
18654
+ // import { Button } from "@/components/foundations/button"
18361
18655
  // import Add from "iconsax-reactjs/dist/esm/Add.js"
18362
18656
  // import Trash from "iconsax-reactjs/dist/esm/Trash.js"
18363
18657
  //
@@ -18409,14 +18703,25 @@ export {
18409
18703
  // alt={image.alt}
18410
18704
  // className="absolute inset-0 size-full object-cover"
18411
18705
  // />
18412
- // <div className="absolute inset-0 bg-[var(--Primitive-Black-alpha-1000)]/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center">
18413
- // <button
18414
- // className="size-8 rounded-full bg-[var(--Primitive-White-alpha-1000)]/80 flex items-center justify-center"
18706
+ // <div
18707
+ // data-slot="image-uploader-remove-overlay"
18708
+ // className={cn(
18709
+ // "absolute inset-0 flex items-center justify-center bg-[var(--Surface-Overlay-Dark)] opacity-0 transition-opacity",
18710
+ // "group-hover:opacity-100 group-focus-within:opacity-100",
18711
+ // // タッチでは hover を待たず、写真を覆わない右上の操作として表示する。
18712
+ // "[@media(hover:none)]:items-start [@media(hover:none)]:justify-end [@media(hover:none)]:bg-transparent [@media(hover:none)]:p-1 [@media(hover:none)]:opacity-100",
18713
+ // )}
18714
+ // >
18715
+ // <Button
18716
+ // type="button"
18717
+ // variant="overlay"
18718
+ // size="icon-sm"
18719
+ // className="rounded-full [@media(hover:none)]:size-11"
18415
18720
  // aria-label={`${image.alt}を削除`}
18416
18721
  // onClick={() => onRemove?.(i)}
18417
18722
  // >
18418
- // <Trash size={16} className="text-[var(--Text-Caution)]" />
18419
- // </button>
18723
+ // <Trash size={16} />
18724
+ // </Button>
18420
18725
  // </div>
18421
18726
  // <div className="absolute top-1 left-1 size-5 rounded bg-[var(--Primitive-Black-alpha-1000)]/60 text-[var(--Primitive-White-alpha-1000)] flex items-center justify-center typo-label-xs">
18422
18727
  // {i + 1}
@@ -18426,7 +18731,11 @@ export {
18426
18731
  //
18427
18732
  // {canAdd && (
18428
18733
  // <button
18429
- // className="aspect-square rounded-xl border-2 border-dashed border-[var(--Border-Medium-Emphasis)] flex flex-col items-center justify-center gap-1 hover:border-[var(--Border-Accent-Primary)] hover:bg-[var(--Surface-Accent-Primary-Light)] transition-colors"
18734
+ // type="button"
18735
+ // className={cn(
18736
+ // "aspect-square rounded-xl border-2 border-dashed border-[var(--Border-Medium-Emphasis)] flex flex-col items-center justify-center gap-1 hover:border-[var(--Border-Accent-Primary)] hover:bg-[var(--Surface-Accent-Primary-Light)] transition-colors",
18737
+ // FOCUS_RING_INSET,
18738
+ // )}
18430
18739
  // onClick={onAdd}
18431
18740
  // aria-label="画像を追加"
18432
18741
  // >
@@ -21862,7 +22171,8 @@ export {
21862
22171
  // <div
21863
22172
  // data-slot="sticky-action-bar"
21864
22173
  // className={cn(
21865
- // "sticky bottom-0 z-[var(--Z-Nav)] bg-[var(--Surface-Primary)] px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))]",
22174
+ // // Surface-Elevated: スクロール内容の上に重なる固定バーは不透明が必須(dark で透けない)
22175
+ // "sticky bottom-0 z-[var(--Z-Nav)] bg-[var(--Surface-Elevated)] px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))]",
21866
22176
  // bordered && "border-t border-[var(--Border-Low-Emphasis)]",
21867
22177
  // className
21868
22178
  // )}
@@ -23153,7 +23463,29 @@ export {
23153
23463
  // export { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/foundations/collapsible"
23154
23464
  // export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from "./components/foundations/command"
23155
23465
  // export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from "./components/foundations/context-menu"
23156
- // export { DataTable } from "./components/foundations/data-table"
23466
+ // export {
23467
+ // DataTable,
23468
+ // DataTableTable,
23469
+ // DataTableHeader,
23470
+ // DataTableBody,
23471
+ // DataTableRow,
23472
+ // DataTableHead,
23473
+ // DataTableCell,
23474
+ // DataTableAvatarCell,
23475
+ // DataTableImageCell,
23476
+ // DataTableLinkCell,
23477
+ // DataTableCheckboxCell,
23478
+ // DataTableActionCell,
23479
+ // DataTableInputCell,
23480
+ // DataTableSelectCell,
23481
+ // DataTableNumberCell,
23482
+ // DataTableDragHandleCell,
23483
+ // DataTableBulkActions,
23484
+ // DataTableSectionRow,
23485
+ // DataTableAddRow,
23486
+ // DataTableEmptyState,
23487
+ // } from "./components/foundations/data-table"
23488
+ // export type { SortDirection } from "./components/foundations/data-table"
23157
23489
  // export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/foundations/dialog"
23158
23490
  // export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from "./components/foundations/drawer"
23159
23491
  // export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./components/foundations/dropdown-menu"
@@ -23358,7 +23690,7 @@ export {
23358
23690
  // export type { OrderSummaryProps, OrderSummaryLineItem } from "./components/ec/order-summary"
23359
23691
  // export { PaymentMethodDisplay, CreditCardIcon } from "./components/ec/payment-method"
23360
23692
  // export type { PaymentMethodDisplayProps, CreditCardIconProps, CreditCardBrand } from "./components/ec/payment-method"
23361
- // export { ProductCard } from "./components/ec/product-card"
23693
+ // export { ProductCard, BookmarkRibbonIcon } from "./components/ec/product-card"
23362
23694
  // export type { ProductCardProps } from "./components/ec/product-card"
23363
23695
  // export { ProductCarousel } from "./components/ec/product-carousel"
23364
23696
  // export type { ProductCarouselProps } from "./components/ec/product-carousel"
@@ -23552,6 +23884,15 @@ export {
23552
23884
  // * 「リンク実装そのもの」を差し替える prop を共通の型で用意する。
23553
23885
  // *
23554
23886
  // * 例: `<Footer linkComponent={Link} … />`(next/link をそのまま渡せる)
23887
+ // *
23888
+ // * ⚠️ `Footer` / `MenuDrawer` は Client Component。React Server Components では
23889
+ // * Server Component からこの prop を渡すと client 境界を越えて関数を渡すことに
23890
+ // * なり、`Functions cannot be passed directly to Client Components` で落ちる。
23891
+ // * Next.js App Router では、この prop を使う呼び出し側を `"use client"` にする
23892
+ // * (エラーメッセージは `"use server"` を示唆するが、正解は逆)。
23893
+ // *
23894
+ // * `Pagination` / `SubNav` / `ContentCard` は Server Component のまま使えるため、
23895
+ // * この prop を使うだけで呼び出し側を `"use client"` にする必要はない。
23555
23896
  // */
23556
23897
  // export type LinkComponent = React.ComponentType<
23557
23898
  // React.AnchorHTMLAttributes<HTMLAnchorElement> & { href: string }