@fayz-ai/ui 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-SB6DWHXI.js → chunk-AIUHVTVK.js} +9 -3
- package/dist/chunk-AIUHVTVK.js.map +1 -0
- package/dist/{chunk-6YFPPK7X.js → chunk-EGHEU3U5.js} +131 -37
- package/dist/chunk-EGHEU3U5.js.map +1 -0
- package/dist/{chunk-ERSX3C7T.js → chunk-MBGTFL4I.js} +3 -3
- package/dist/{chunk-ERSX3C7T.js.map → chunk-MBGTFL4I.js.map} +1 -1
- package/dist/{chunk-5WSKZU7M.js → chunk-OYH7CEMB.js} +76 -113
- package/dist/chunk-OYH7CEMB.js.map +1 -0
- package/dist/{chunk-5NEADAIP.js → chunk-P3YTL3MF.js} +140 -16
- package/dist/chunk-P3YTL3MF.js.map +1 -0
- package/dist/dashboard/index.js +2 -2
- package/dist/icons.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/layout/AppShell.d.ts +3 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/ModulePage.d.ts +13 -0
- package/dist/layout/ModulePage.d.ts.map +1 -1
- package/dist/layout/Sidebar.d.ts +7 -1
- package/dist/layout/Sidebar.d.ts.map +1 -1
- package/dist/layout/Takeover.d.ts +31 -0
- package/dist/layout/Takeover.d.ts.map +1 -0
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +3 -3
- package/dist/primitives/header-tabs.d.ts +16 -0
- package/dist/primitives/header-tabs.d.ts.map +1 -1
- package/dist/primitives/index.js +3 -3
- package/dist/primitives/list-view.d.ts.map +1 -1
- package/dist/primitives/page-actions.d.ts.map +1 -1
- package/dist/primitives/refresh-button.d.ts.map +1 -1
- package/dist/primitives/row-actions.d.ts.map +1 -1
- package/dist/styles.css +24 -0
- package/package.json +2 -2
- package/dist/chunk-5NEADAIP.js.map +0 -1
- package/dist/chunk-5WSKZU7M.js.map +0 -1
- package/dist/chunk-6YFPPK7X.js.map +0 -1
- package/dist/chunk-SB6DWHXI.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { Zap, XCircle, X, Wrench, Workflow, Wheat, Warehouse, Wallet, UtensilsCrossed, Upload, WandSparkles, Utensils, UsersRound, Users, UserX, UserPlus, UserCog, UserCheck, User, Truck, Trophy, TrendingUp, TrendingDown, TreePalm, ToggleLeft, Timer, Target, Tags, TableProperties, Tag, Star, Sparkles, Soup, SlidersHorizontal, Sigma, ShoppingCart, ShoppingBag, ShieldCheck, Shield, Settings, Send, Search, Scale, Ruler, RotateCw, RotateCcw, Repeat, Receipt, Radio, Puzzle, PlusCircle, Plus, Plug, PieChart, Phone, Percent, Pencil, PawPrint, PartyPopper, Palette, PackageCheck, Package, Newspaper, Music, MousePointerClick, MoreHorizontal, Mic, MessageSquare, MessageCircle, Megaphone, MapPin, Map, Mail, LogIn, Lock, ListPlus, ListMusic, ListChecks, List, Link, LineChart, LeafyGreen, Leaf, LayoutTemplate, LayoutDashboard, Layers, Landmark, Instagram, Inbox, Images, Image, Home, FolderTree, Hourglass, Heart, Handshake, HandCoins, GraduationCap, Globe, Gift, Gauge, FolderOpen, Flame, Filter, FileText, FileDown, FileCheck2, Eye, ExternalLink, Egg, DoorOpen, DollarSign, Dog, Disc3, Database, CreditCard, CookingPot, Contact, Compass, Command, Clock3, Clock, ClipboardList, ClipboardCheck, Clapperboard, CircleDollarSign, CircleCheck, Circle, ChevronsUpDown, ChevronDown, ChefHat, CheckSquare, CheckCircle, Check, Cat, Camera, CalendarX, CalendarRange, CalendarPlus, CalendarDays, CalendarClock, CalendarCheck2, CalendarCheck, Calendar, Building2, Briefcase, Boxes, Box, BookOpenCheck, BookOpen, Bike, Bell, BarChart3, Banknote, Ban, BadgeDollarSign, Award, ArrowUpRight, ArrowUpCircle, ArrowLeftRight, ArrowDownRight, ArrowDownCircle, Apple, AlertTriangle, Activity } from 'lucide-react';
|
|
3
|
+
import { Zap, XCircle, X, Wrench, Workflow, Wheat, Warehouse, Wallet, UtensilsCrossed, Upload, WandSparkles, Utensils, UsersRound, Users, UserX, UserPlus, UserCog, UserCheck, User, Truck, Trophy, TrendingUp, TrendingDown, TreePalm, ToggleLeft, Timer, Ticket, Target, Tags, TableProperties, Tag, Store, Star, Sparkles, Soup, Smartphone, SlidersHorizontal, Sigma, ShoppingCart, ShoppingBag, ShieldCheck, Shield, Settings, Send, Search, ScanLine, Scale, Ruler, RotateCw, RotateCcw, Repeat, Receipt, Radio, Puzzle, PlusCircle, Plus, Plug, PieChart, Phone, Percent, Pencil, PawPrint, PartyPopper, Palette, PackageCheck, Package, Newspaper, Music, MousePointerClick, MoreHorizontal, Mic, MessageSquare, MessageCircle, Megaphone, MapPin, Map, Mail, LogIn, Lock, ListPlus, ListMusic, ListChecks, List, Link, LineChart, LeafyGreen, Leaf, LayoutTemplate, LayoutDashboard, Layers, Landmark, Instagram, Inbox, Images, Image, Home, FolderTree, Hourglass, Heart, Handshake, HandCoins, GraduationCap, Globe, GlassWater, Gift, Gauge, FolderOpen, Flame, Filter, FileText, FileDown, FileCheck2, Eye, ExternalLink, Egg, DoorOpen, DollarSign, Dog, Disc3, Database, CreditCard, CookingPot, Contact, Compass, Command, Clock3, Clock, ClipboardList, ClipboardCheck, Clapperboard, CircleDollarSign, CircleCheck, Circle, ChevronsUpDown, ChevronDown, ChefHat, CheckSquare, CheckCircle, Check, Cat, Camera, CalendarX, CalendarRange, CalendarPlus, CalendarDays, CalendarClock, CalendarCheck2, CalendarCheck, Calendar, Building2, Briefcase, Boxes, Box, BookOpenCheck, BookOpen, Bike, Bell, Beer, BarChart3, Banknote, Ban, BadgeDollarSign, Award, ArrowUpRight, ArrowUpCircle, ArrowLeftRight, ArrowDownRight, ArrowDownCircle, Apple, AlertTriangle, Activity } from 'lucide-react';
|
|
4
4
|
|
|
5
5
|
// src/primitives/brand-marks.tsx
|
|
6
6
|
var ChefControlMark = React.forwardRef(
|
|
@@ -29,6 +29,7 @@ var registry = {
|
|
|
29
29
|
Ban,
|
|
30
30
|
Banknote,
|
|
31
31
|
BarChart3,
|
|
32
|
+
Beer,
|
|
32
33
|
Bell,
|
|
33
34
|
Bike,
|
|
34
35
|
BookOpen,
|
|
@@ -82,6 +83,7 @@ var registry = {
|
|
|
82
83
|
FolderOpen,
|
|
83
84
|
Gauge,
|
|
84
85
|
Gift,
|
|
86
|
+
GlassWater,
|
|
85
87
|
Globe,
|
|
86
88
|
GraduationCap,
|
|
87
89
|
HandCoins,
|
|
@@ -139,6 +141,7 @@ var registry = {
|
|
|
139
141
|
RotateCw,
|
|
140
142
|
Ruler,
|
|
141
143
|
Scale,
|
|
144
|
+
ScanLine,
|
|
142
145
|
Search,
|
|
143
146
|
Send,
|
|
144
147
|
Settings,
|
|
@@ -148,13 +151,16 @@ var registry = {
|
|
|
148
151
|
ShoppingCart,
|
|
149
152
|
Sigma,
|
|
150
153
|
SlidersHorizontal,
|
|
154
|
+
Smartphone,
|
|
151
155
|
Soup,
|
|
152
156
|
Sparkles,
|
|
153
157
|
Star,
|
|
158
|
+
Store,
|
|
154
159
|
Tag,
|
|
155
160
|
TableProperties,
|
|
156
161
|
Tags,
|
|
157
162
|
Target,
|
|
163
|
+
Ticket,
|
|
158
164
|
Timer,
|
|
159
165
|
ToggleLeft,
|
|
160
166
|
TreePalm,
|
|
@@ -195,5 +201,5 @@ function getLucideIcon(name) {
|
|
|
195
201
|
var ICON_MAP = registry;
|
|
196
202
|
|
|
197
203
|
export { BRAND_MARKS, ChefControlMark, ICON_MAP, getLucideIcon, registerIcons };
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
204
|
+
//# sourceMappingURL=chunk-AIUHVTVK.js.map
|
|
205
|
+
//# sourceMappingURL=chunk-AIUHVTVK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives/brand-marks.tsx","../src/icons.ts"],"names":["ChefControlMark"],"mappings":"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","file":"chunk-AIUHVTVK.js","sourcesContent":["import * as React from 'react'\nimport type { LucideIcon } from 'lucide-react'\n\n// ---------------------------------------------------------------------------\n// The Control family's own product marks.\n//\n// Every other tile in the app switcher is a lucide glyph named by a row in\n// `app.apps`, which is fine for a product that has no mark of its own. It is\n// not fine for one that does: ChefControl's symbol has weight hierarchy — thin\n// crown, heavy base, the same contrast as the logotype beside it — and lucide's\n// `ChefHat` draws the same object at constant stroke. The launcher is where a\n// product is recognised rather than read, so the row that shows a stand-in is\n// the row that says \"this app has no brand\".\n//\n// They live in the registry rather than in each app because the switcher lists\n// SIBLINGS: StoreControl draws the Chef row too, and a mark that only the app\n// itself owns would leave the same product looking like two different products\n// depending on which window you opened the menu from.\n//\n// `fill=\"currentColor\"` and no stroke: the tile decides the ink (see AppMark),\n// the same way a surface decides the colour of the text beside it — one drawing\n// for the gold tile, the rail and the login card, with no per-surface file and\n// no `filter: invert`, which chews the anti-aliased edge.\n// ---------------------------------------------------------------------------\n\n/**\n * Typed as a lucide icon so it can sit in the same registry: the props a mark\n * actually reads are `className` and `style`, and the stroke props the callers\n * pass mean nothing to a filled path — harmless, and not worth a second\n * resolver to avoid.\n */\nexport const ChefControlMark = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(\n function ChefControlMark(props, ref) {\n return (\n // The viewBox is the symbol's ink box, not the 1080 square of the source\n // file: cropped, the hat centres in a tile instead of floating in padding.\n <svg ref={ref} viewBox=\"140.2 147.83 799.59 784.35\" fill=\"currentColor\" aria-hidden {...props}>\n <path d=\"M871.42,305.72c-8.6-6.71-17.86-12.68-27.66-17.78-25.93-13.54-55.59-21.23-87.13-21.23-8.66,0-17.18.58-25.51,1.7-33.22-70.59-106.31-120.58-191.12-120.58s-157.93,49.99-191.12,120.61h-.03c-8.33-1.15-16.85-1.73-25.51-1.73-32.62,0-63.27,8.24-89.79,22.68-9.74,5.27-18.94,11.41-27.45,18.27-40.27,32.41-65.9,81.19-65.9,135.73,0,93.23,74.89,169.64,169.82,176.21,3.88,33.85,5.91,68.69,5.91,104.24,0,45.93-3.38,90.64-9.77,133.6-2,13.45-4.3,26.71-6.87,39.79,13.5-3.43,27.27-6.6,41.25-9.42,62.07-12.68,128.53-19.54,197.6-19.54s135.5,6.86,197.57,19.54c13.98,2.82,27.75,5.96,41.25,9.42-2.57-13.08-4.87-26.33-6.87-39.79-6.39-42.96-9.77-87.67-9.77-133.6,0-35.47,2-70.21,5.89-104.01,96.69-4.84,173.58-82,173.58-176.44,0-55.64-26.67-105.28-68.37-137.66ZM771.38,570.43c-4.87.51-9.77.75-14.76.75-8.36,0-16.55-.72-24.52-2.09-1.94,12.64-3.64,25.42-5.11,38.35-4.03,35.73-6.12,72.47-6.12,110.02,0,44.3,2.93,173.01,8.48,214.69-60.25-12.28-124.5-18.91-191.2-18.91s-130.99,6.63-191.24,18.94c5.56-41.67,8.48-170.42,8.48-214.71,0-37.34-2.09-73.9-6.06-109.45-1.43-12.93-3.14-25.72-5.11-38.35-6.81,1.02-13.8,1.52-20.88,1.52-6.27,0-12.46-.39-18.52-1.19-71.03-9.08-125.94-69.78-125.94-143.29,0-42.06,17.95-79.91,46.63-106.31,8.54-7.88,18.04-14.73,28.32-20.37,20.64-11.35,44.33-17.8,69.51-17.8,4.24,0,8.42.18,12.55.54,13.2,1.13,25.87,4.03,37.82,8.48,3.2-12.7,7.83-24.79,13.68-36.17,28.47-55.29,86.12-93.11,152.61-93.11s124.11,37.82,152.58,93.11c5.85,11.38,10.49,23.48,13.68,36.17,11.92-4.45,24.61-7.35,37.82-8.48,4.12-.36,8.3-.54,12.55-.54,24.07,0,46.75,5.88,66.7,16.28,10.34,5.41,19.95,12.01,28.62,19.66,30.14,26.47,49.17,65.3,49.17,108.55,0,74.8-56.87,136.36-129.73,143.74Z\" />\n </svg>\n )\n },\n) as unknown as LucideIcon\n\n/** Registry entries, by the name `app.apps.icon` carries for these products. */\nexport const BRAND_MARKS: Record<string, LucideIcon> = {\n ChefControlMark,\n}\n","import type { LucideIcon } from 'lucide-react'\nimport { BRAND_MARKS } from './primitives/brand-marks'\nimport {\n Activity, AlertTriangle, Apple, ArrowDownCircle, ArrowDownRight, ArrowLeftRight, ArrowUpCircle, ArrowUpRight,\n Award, BadgeDollarSign, Ban, Banknote, BarChart3, Beer, Bell, Bike, BookOpen,\n BookOpenCheck, Box, Boxes, Briefcase, Building2, Calendar, CalendarCheck, CalendarCheck2,\n CalendarClock, CalendarDays, CalendarPlus, CalendarRange, CalendarX, Camera, Cat, Check, CheckCircle,\n CheckSquare, ChefHat, ChevronDown, ChevronsUpDown, Circle, CircleCheck, CircleDollarSign, Clapperboard,\n ClipboardCheck, ClipboardList,\n Clock, Clock3, Command, Compass, Contact, CookingPot, CreditCard, Database, Disc3, Dog,\n DollarSign, DoorOpen, Egg, ExternalLink, Eye, FileCheck2, FileDown,\n FileText, Filter, Flame, FolderOpen, Gauge, Gift, GlassWater, Globe, GraduationCap, HandCoins, Handshake, Heart, Hourglass,\n FolderTree, Home, Image, Images, Inbox, Instagram, Landmark, Layers, LayoutDashboard, LayoutTemplate,\n Leaf, LeafyGreen, LineChart, Link, List, ListChecks, ListMusic, ListPlus, Lock, LogIn,\n Mail, Map, MapPin, Megaphone, MessageCircle, MessageSquare, Mic, MoreHorizontal,\n MousePointerClick, Music, Newspaper, Package, PackageCheck, Palette, PartyPopper, PawPrint,\n Pencil, Percent, Phone, PieChart, Plug, Plus, PlusCircle, Puzzle, Radio,\n Receipt, Repeat, RotateCcw, RotateCw, Ruler, Scale, ScanLine, Search, Send, Settings, Shield,\n ShieldCheck, ShoppingBag, ShoppingCart, Sigma, SlidersHorizontal, Smartphone, Soup, Sparkles, Star, Store, Tag,\n TableProperties, Tags, Target, Ticket, Timer, ToggleLeft, TreePalm, TrendingDown, TrendingUp, Trophy, Truck,\n User, UserCheck, UserCog, UserPlus, UserX, Users, UsersRound, Utensils, WandSparkles,\n Upload, UtensilsCrossed, Wallet, Warehouse, Wheat, Workflow, Wrench, X, XCircle,\n Zap,\n} from 'lucide-react'\n\n// ---------------------------------------------------------------------------\n// Central lucide icon registry. The SDK's manifest-driven surfaces resolve\n// icons by string name; a namespace import (`import * as LucideIcons`) defeats\n// tree-shaking and drags all ~1,500 icons (~500 KB min) into every bundle, so\n// the SDK ships this curated set instead — the union of every icon name the\n// SDK, plugins, and app templates reference. Apps using names outside the set\n// call registerIcons({ Name: Component }) with their own named imports.\n// ---------------------------------------------------------------------------\n\nconst registry: Record<string, LucideIcon> = {\n Activity, AlertTriangle, Apple, ArrowDownCircle, ArrowDownRight, ArrowLeftRight, ArrowUpCircle, ArrowUpRight,\n Award, BadgeDollarSign, Ban, Banknote, BarChart3, Beer, Bell, Bike, BookOpen,\n BookOpenCheck, Box, Boxes, Briefcase, Building2, Calendar, CalendarCheck, CalendarCheck2,\n CalendarClock, CalendarDays, CalendarPlus, CalendarRange, CalendarX, Camera, Cat, Check, CheckCircle,\n CheckSquare, ChefHat, ChevronDown, ChevronsUpDown, Circle, CircleCheck, CircleDollarSign, Clapperboard,\n ClipboardCheck, ClipboardList,\n Clock, Clock3, Command, Compass, Contact, CookingPot, CreditCard, Database, Disc3, Dog,\n DollarSign, DoorOpen, Egg, ExternalLink, Eye, FileCheck2, FileDown,\n FileText, Filter, Flame, FolderOpen, Gauge, Gift, GlassWater, Globe, GraduationCap, HandCoins, Handshake, Heart, Hourglass,\n FolderTree, Home, Image, Images, Inbox, Instagram, Landmark, Layers, LayoutDashboard, LayoutTemplate,\n Leaf, LeafyGreen, LineChart, Link, List, ListChecks, ListMusic, ListPlus, Lock, LogIn,\n Mail, Map, MapPin, Megaphone, MessageCircle, MessageSquare, Mic, MoreHorizontal,\n MousePointerClick, Music, Newspaper, Package, PackageCheck, Palette, PartyPopper, PawPrint,\n Pencil, Percent, Phone, PieChart, Plug, Plus, PlusCircle, Puzzle, Radio,\n Receipt, Repeat, RotateCcw, RotateCw, Ruler, Scale, ScanLine, Search, Send, Settings, Shield,\n ShieldCheck, ShoppingBag, ShoppingCart, Sigma, SlidersHorizontal, Smartphone, Soup, Sparkles, Star, Store, Tag,\n TableProperties, Tags, Target, Ticket, Timer, ToggleLeft, TreePalm, TrendingDown, TrendingUp, Trophy, Truck,\n User, UserCheck, UserCog, UserPlus, UserX, Users, UsersRound, Utensils, WandSparkles,\n Upload, UtensilsCrossed, Wallet, Warehouse, Wheat, Workflow, Wrench, X, XCircle,\n Zap,\n // The family's own product marks, resolvable by the same string names the\n // app registry stores — a product that HAS a mark should never be drawn by a\n // stand-in glyph in the launcher.\n ...BRAND_MARKS,\n}\n\n/** Add or override icons resolvable by string name (e.g. from app manifests). */\nexport function registerIcons(icons: Record<string, LucideIcon>): void {\n Object.assign(registry, icons)\n}\n\n/** Resolve a lucide icon by name; undefined when not registered. */\nexport function getLucideIcon(name: string): LucideIcon | undefined {\n return registry[name]\n}\n\n/** The registered icon map (live reference — do not mutate directly). */\nexport const ICON_MAP = registry\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHasPageHeaderHost, usePageHeader, PageTitlePortal, useLayoutStore, useHasPageHeaderBack, useRegisterPageActions, usePageHeaderClaimed, usePageTitleSlotHost, useHasPageHeaderOutlet, useHasPageActions, usePageHeaderHost } from './chunk-HKGTF2YA.js';
|
|
2
2
|
import { cn } from './chunk-OKZ6WQB3.js';
|
|
3
|
-
import { ICON_MAP } from './chunk-
|
|
3
|
+
import { ICON_MAP } from './chunk-AIUHVTVK.js';
|
|
4
4
|
import * as React2 from 'react';
|
|
5
5
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
6
6
|
import { X, Loader2, ArrowLeft, Search, Bell, PanelLeft, PanelLeftClose, Menu, Crown, ChevronDown, ChevronRight, ChevronLeft, ExternalLink, CreditCard, Sparkles, Home, Plus, UserCog, Settings, LogOut } from 'lucide-react';
|
|
@@ -821,6 +821,7 @@ function Sidebar({
|
|
|
821
821
|
topContent,
|
|
822
822
|
identity,
|
|
823
823
|
navTop,
|
|
824
|
+
beforeNav,
|
|
824
825
|
footerContent,
|
|
825
826
|
borderless,
|
|
826
827
|
userMenuSlot,
|
|
@@ -995,6 +996,7 @@ function Sidebar({
|
|
|
995
996
|
}
|
|
996
997
|
) })
|
|
997
998
|
),
|
|
999
|
+
beforeNav && /* @__PURE__ */ jsx("div", { className: cn("px-2 pb-1 empty:hidden", collapsed && "flex justify-center"), children: withCollapsed(beforeNav, collapsed) }),
|
|
998
1000
|
/* @__PURE__ */ jsxs(
|
|
999
1001
|
"nav",
|
|
1000
1002
|
{
|
|
@@ -1390,6 +1392,7 @@ function SidebarLayout({
|
|
|
1390
1392
|
sidebarTopContent,
|
|
1391
1393
|
sidebarIdentity,
|
|
1392
1394
|
sidebarNavTop,
|
|
1395
|
+
sidebarBeforeNav,
|
|
1393
1396
|
sidebarFooterContent,
|
|
1394
1397
|
frame,
|
|
1395
1398
|
immersive,
|
|
@@ -1448,6 +1451,7 @@ function SidebarLayout({
|
|
|
1448
1451
|
topContent: sidebarTopContent,
|
|
1449
1452
|
identity: sidebarIdentity,
|
|
1450
1453
|
navTop: sidebarNavTop,
|
|
1454
|
+
beforeNav: sidebarBeforeNav,
|
|
1451
1455
|
footerContent: sidebarFooterContent,
|
|
1452
1456
|
borderless: frame,
|
|
1453
1457
|
userMenuSlot,
|
|
@@ -1527,6 +1531,7 @@ function SidebarLayout({
|
|
|
1527
1531
|
topContent: sidebarTopContent,
|
|
1528
1532
|
identity: sidebarIdentity,
|
|
1529
1533
|
navTop: sidebarNavTop,
|
|
1534
|
+
beforeNav: sidebarBeforeNav,
|
|
1530
1535
|
footerContent: sidebarFooterContent,
|
|
1531
1536
|
userMenuSlot,
|
|
1532
1537
|
notificationSlot,
|
|
@@ -1855,6 +1860,7 @@ function AppShell({
|
|
|
1855
1860
|
sidebarTopContent,
|
|
1856
1861
|
sidebarIdentity,
|
|
1857
1862
|
sidebarNavTop,
|
|
1863
|
+
sidebarBeforeNav,
|
|
1858
1864
|
sidebarFooterContent,
|
|
1859
1865
|
bottomNav,
|
|
1860
1866
|
onBottomNavAction,
|
|
@@ -1922,6 +1928,7 @@ function AppShell({
|
|
|
1922
1928
|
sidebarTopContent,
|
|
1923
1929
|
sidebarIdentity,
|
|
1924
1930
|
sidebarNavTop,
|
|
1931
|
+
sidebarBeforeNav,
|
|
1925
1932
|
sidebarFooterContent,
|
|
1926
1933
|
frame: contentFrame,
|
|
1927
1934
|
immersive,
|
|
@@ -2146,33 +2153,54 @@ function HeaderTabs({
|
|
|
2146
2153
|
children: tabs.map((tab) => {
|
|
2147
2154
|
const active = tab.value === value;
|
|
2148
2155
|
const Icon = tab.icon;
|
|
2149
|
-
|
|
2150
|
-
"
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
"aria-selected": active,
|
|
2155
|
-
onClick: () => onChange(tab.value),
|
|
2156
|
-
className: cn(
|
|
2157
|
-
"relative flex shrink-0 items-center gap-1.5 whitespace-nowrap text-sm transition-colors",
|
|
2158
|
-
// Filled: the row owns the band's height and the underline sits on
|
|
2159
|
-
// its bottom edge. Otherwise the underline trails the label by 6px.
|
|
2160
|
-
fill ? "h-full" : "pb-1.5",
|
|
2161
|
-
active ? "font-medium text-foreground" : "text-muted-foreground hover:text-foreground"
|
|
2162
|
-
),
|
|
2163
|
-
children: [
|
|
2164
|
-
Icon ? /* @__PURE__ */ jsx(Icon, { className: "h-4 w-4 shrink-0" }) : null,
|
|
2165
|
-
/* @__PURE__ */ jsx("span", { children: tab.label }),
|
|
2166
|
-
tab.count != null && /* @__PURE__ */ jsx("span", { className: cn(
|
|
2167
|
-
"ml-0.5 rounded-full px-1.5 text-[11px] tabular-nums",
|
|
2168
|
-
active ? "bg-muted text-foreground" : "bg-muted/70 text-muted-foreground"
|
|
2169
|
-
), children: tab.count }),
|
|
2170
|
-
tab.badge,
|
|
2171
|
-
active && /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 bottom-0 h-0.5 rounded-full bg-foreground" })
|
|
2172
|
-
]
|
|
2173
|
-
},
|
|
2174
|
-
tab.value
|
|
2156
|
+
const box = cn(
|
|
2157
|
+
"relative flex shrink-0 items-center gap-1.5 whitespace-nowrap text-sm transition-colors",
|
|
2158
|
+
fill ? "h-full" : "pb-1.5",
|
|
2159
|
+
active ? "font-medium text-foreground" : "text-muted-foreground hover:text-foreground",
|
|
2160
|
+
tab.dim && "opacity-50 hover:opacity-100"
|
|
2175
2161
|
);
|
|
2162
|
+
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2163
|
+
Icon ? /* @__PURE__ */ jsx(Icon, { className: "h-4 w-4 shrink-0" }) : null,
|
|
2164
|
+
/* @__PURE__ */ jsx("span", { children: tab.label }),
|
|
2165
|
+
tab.count != null && /* @__PURE__ */ jsx("span", { className: cn(
|
|
2166
|
+
"ml-0.5 rounded-full px-1.5 text-[11px] tabular-nums",
|
|
2167
|
+
active ? "bg-muted text-foreground" : "bg-muted/70 text-muted-foreground"
|
|
2168
|
+
), children: tab.count }),
|
|
2169
|
+
tab.badge
|
|
2170
|
+
] });
|
|
2171
|
+
const underline = active ? /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 bottom-0 h-0.5 rounded-full bg-foreground" }) : null;
|
|
2172
|
+
if (!tab.trailing) {
|
|
2173
|
+
return /* @__PURE__ */ jsxs(
|
|
2174
|
+
"button",
|
|
2175
|
+
{
|
|
2176
|
+
type: "button",
|
|
2177
|
+
role: "tab",
|
|
2178
|
+
"aria-selected": active,
|
|
2179
|
+
onClick: () => onChange(tab.value),
|
|
2180
|
+
className: box,
|
|
2181
|
+
children: [
|
|
2182
|
+
inner,
|
|
2183
|
+
underline
|
|
2184
|
+
]
|
|
2185
|
+
},
|
|
2186
|
+
tab.value
|
|
2187
|
+
);
|
|
2188
|
+
}
|
|
2189
|
+
return /* @__PURE__ */ jsxs("div", { className: box, children: [
|
|
2190
|
+
/* @__PURE__ */ jsx(
|
|
2191
|
+
"button",
|
|
2192
|
+
{
|
|
2193
|
+
type: "button",
|
|
2194
|
+
role: "tab",
|
|
2195
|
+
"aria-selected": active,
|
|
2196
|
+
onClick: () => onChange(tab.value),
|
|
2197
|
+
className: "flex items-center gap-1.5 whitespace-nowrap",
|
|
2198
|
+
children: inner
|
|
2199
|
+
}
|
|
2200
|
+
),
|
|
2201
|
+
tab.trailing,
|
|
2202
|
+
underline
|
|
2203
|
+
] }, tab.value);
|
|
2176
2204
|
})
|
|
2177
2205
|
}
|
|
2178
2206
|
);
|
|
@@ -2187,11 +2215,56 @@ function PageTabs({ actions, className, ...props }) {
|
|
|
2187
2215
|
),
|
|
2188
2216
|
children: [
|
|
2189
2217
|
/* @__PURE__ */ jsx(HeaderTabs, { ...props, className: "-mb-px" }),
|
|
2190
|
-
actions && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2 pb-1.5", children: actions })
|
|
2218
|
+
actions && /* @__PURE__ */ jsx("div", { className: "ml-auto flex shrink-0 items-center gap-2 pb-1.5", children: actions })
|
|
2191
2219
|
]
|
|
2192
2220
|
}
|
|
2193
2221
|
);
|
|
2194
2222
|
}
|
|
2223
|
+
var SIZE = {
|
|
2224
|
+
sm: { container: "h-[26px]", segment: "px-2.5 text-xs" },
|
|
2225
|
+
md: { container: "h-[30px]", segment: "px-3 text-sm" }
|
|
2226
|
+
};
|
|
2227
|
+
function SegmentedControl({
|
|
2228
|
+
options,
|
|
2229
|
+
value,
|
|
2230
|
+
onChange,
|
|
2231
|
+
size = "sm",
|
|
2232
|
+
className,
|
|
2233
|
+
...rest
|
|
2234
|
+
}) {
|
|
2235
|
+
const items = options.map((o) => typeof o === "string" ? { value: o, label: o } : o);
|
|
2236
|
+
return /* @__PURE__ */ jsx(
|
|
2237
|
+
"div",
|
|
2238
|
+
{
|
|
2239
|
+
role: "tablist",
|
|
2240
|
+
"aria-label": rest["aria-label"],
|
|
2241
|
+
className: cn(
|
|
2242
|
+
"inline-flex items-center rounded-button border border-border bg-card p-0.5 shadow-button",
|
|
2243
|
+
SIZE[size].container,
|
|
2244
|
+
className
|
|
2245
|
+
),
|
|
2246
|
+
children: items.map((item) => {
|
|
2247
|
+
const active = item.value === value;
|
|
2248
|
+
return /* @__PURE__ */ jsx(
|
|
2249
|
+
"button",
|
|
2250
|
+
{
|
|
2251
|
+
type: "button",
|
|
2252
|
+
role: "tab",
|
|
2253
|
+
"aria-selected": active,
|
|
2254
|
+
onClick: () => onChange(item.value),
|
|
2255
|
+
className: cn(
|
|
2256
|
+
"flex h-full items-center rounded-button font-semibold transition-colors",
|
|
2257
|
+
SIZE[size].segment,
|
|
2258
|
+
active ? "bg-foreground text-background" : "text-muted-foreground hover:bg-muted/60"
|
|
2259
|
+
),
|
|
2260
|
+
children: item.label
|
|
2261
|
+
},
|
|
2262
|
+
item.value
|
|
2263
|
+
);
|
|
2264
|
+
})
|
|
2265
|
+
}
|
|
2266
|
+
);
|
|
2267
|
+
}
|
|
2195
2268
|
var NavTransitionContext = React2.createContext("slide");
|
|
2196
2269
|
function NavTransitionProvider({ value, children }) {
|
|
2197
2270
|
return /* @__PURE__ */ jsx(NavTransitionContext.Provider, { value, children });
|
|
@@ -2282,7 +2355,7 @@ function RailNavItem({ item }) {
|
|
|
2282
2355
|
] });
|
|
2283
2356
|
}
|
|
2284
2357
|
function defaultChildOf(item) {
|
|
2285
|
-
const kids = item.children ?? [];
|
|
2358
|
+
const kids = (item.children ?? []).filter((c) => c.kind !== "action");
|
|
2286
2359
|
return kids.find((c) => c.defaultChild) ?? kids.find((c) => /(^|-)list$/i.test(c.id)) ?? kids.find((c) => !/(^|-)(new|novo|nova|create)$/i.test(c.id)) ?? kids[0];
|
|
2287
2360
|
}
|
|
2288
2361
|
function MobileTabs({ nav }) {
|
|
@@ -2337,8 +2410,9 @@ function MobileTabs({ nav }) {
|
|
|
2337
2410
|
}) }),
|
|
2338
2411
|
expandedId && (() => {
|
|
2339
2412
|
const item = nav.find((n) => n.id === expandedId);
|
|
2340
|
-
|
|
2341
|
-
|
|
2413
|
+
const shown = (item?.children ?? []).filter((c) => c.kind !== "action");
|
|
2414
|
+
if (shown.length < 2) return null;
|
|
2415
|
+
return /* @__PURE__ */ jsx("div", { className: "flex gap-1 px-2 pb-2 animate-in fade-in-0 slide-in-from-top-1", children: shown.map((child) => /* @__PURE__ */ jsxs(
|
|
2342
2416
|
"button",
|
|
2343
2417
|
{
|
|
2344
2418
|
type: "button",
|
|
@@ -2470,8 +2544,8 @@ function ShellSubpageHeader({
|
|
|
2470
2544
|
}
|
|
2471
2545
|
function ModuleHeader({ nav }) {
|
|
2472
2546
|
function defaultChild(item) {
|
|
2473
|
-
const
|
|
2474
|
-
return
|
|
2547
|
+
const kids2 = (item.children ?? []).filter((c) => c.kind !== "action");
|
|
2548
|
+
return kids2.find((c) => /list/i.test(c.id) || /^list$/i.test(c.label)) ?? kids2[kids2.length - 1];
|
|
2475
2549
|
}
|
|
2476
2550
|
const activeItem = nav.find((item) => item.active || item.children?.some((c) => c.active));
|
|
2477
2551
|
const tabs = nav.map((item) => ({
|
|
@@ -2489,7 +2563,27 @@ function ModuleHeader({ nav }) {
|
|
|
2489
2563
|
if (hasChildren) defaultChild(item)?.onClick?.();
|
|
2490
2564
|
else item.onClick?.();
|
|
2491
2565
|
};
|
|
2492
|
-
|
|
2566
|
+
const kids = (activeItem?.children ?? []).filter((c) => c.kind !== "action");
|
|
2567
|
+
const activeKid = kids.find((c) => c.active)?.id ?? kids[0]?.id;
|
|
2568
|
+
const childControl = kids.length > 1 ? /* @__PURE__ */ jsx(
|
|
2569
|
+
SegmentedControl,
|
|
2570
|
+
{
|
|
2571
|
+
size: "sm",
|
|
2572
|
+
"aria-label": activeItem?.label,
|
|
2573
|
+
options: kids.map((c) => ({ value: c.id, label: c.label })),
|
|
2574
|
+
value: activeKid ?? "",
|
|
2575
|
+
onChange: (id) => kids.find((c) => c.id === id)?.onClick?.()
|
|
2576
|
+
}
|
|
2577
|
+
) : void 0;
|
|
2578
|
+
return /* @__PURE__ */ jsx(
|
|
2579
|
+
PageTabs,
|
|
2580
|
+
{
|
|
2581
|
+
tabs,
|
|
2582
|
+
value: activeItem?.id ?? nav[0]?.id ?? "",
|
|
2583
|
+
onChange,
|
|
2584
|
+
actions: childControl
|
|
2585
|
+
}
|
|
2586
|
+
);
|
|
2493
2587
|
}
|
|
2494
2588
|
function ModulePage({ title: _title, subtitle, nav, children, className, headerAction, showHeader = true, sidebarFooter, navVariant, viewKey, direction }) {
|
|
2495
2589
|
const ctxVariant = useModuleLayout();
|
|
@@ -2522,6 +2616,6 @@ function ModulePage({ title: _title, subtitle, nav, children, className, headerA
|
|
|
2522
2616
|
] });
|
|
2523
2617
|
}
|
|
2524
2618
|
|
|
2525
|
-
export { AppShell, BackStyleProvider, HeaderTabs, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeader, PageHeaderActions, PageHeaderCrumb, PageRail, PageTabs, PageTransition, RailNavItem, SaveBar, SaveBarProvider, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SubpageHeader, Topbar, bottomNavReachesAll, useBackHandler, useBackStyle, useCrossModuleBack, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, useRailRow, useSaveBar, useSaveBarVisible };
|
|
2526
|
-
//# sourceMappingURL=chunk-
|
|
2527
|
-
//# sourceMappingURL=chunk-
|
|
2619
|
+
export { AppShell, BackStyleProvider, HeaderTabs, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeader, PageHeaderActions, PageHeaderCrumb, PageRail, PageTabs, PageTransition, RailNavItem, SaveBar, SaveBarProvider, SegmentedControl, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SubpageHeader, Topbar, bottomNavReachesAll, useBackHandler, useBackStyle, useCrossModuleBack, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, useRailRow, useSaveBar, useSaveBarVisible };
|
|
2620
|
+
//# sourceMappingURL=chunk-EGHEU3U5.js.map
|
|
2621
|
+
//# sourceMappingURL=chunk-EGHEU3U5.js.map
|