@intent-driven/adapter-apple 0.1.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.
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +82 -0
- package/dist/index.cjs +649 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +128 -0
- package/dist/index.d.ts +128 -0
- package/dist/index.mjs +685 -0
- package/dist/index.mjs.map +1 -0
- package/dist/theme.css +38 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapter.jsx","../src/provider.jsx"],"sourcesContent":["/**\n * Apple visionOS-glass UI-адаптер.\n * Третий после Mantine + shadcn-doodle.\n */\nimport * as React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport {\n Pencil, Trash2, Plus, Check, X, MoreHorizontal, Search,\n ChevronDown, Pin, Reply, Send, Star, Bell, BellOff,\n Archive, Copy, Eye, Lock, Unlock, Settings, User, LogOut,\n Play, Square, Save, Download, Upload, RefreshCw, Filter,\n Calendar, Clock, Heart, ThumbsUp, ThumbsDown, Flag,\n MessageSquare, Phone, Video, Mic, MicOff, Volume2, VolumeX,\n Link, Unlink, Move, Maximize2, AlertTriangle, Info, HelpCircle,\n ArrowRight, ArrowLeft, Home, Target, Award, TrendingUp,\n Flame, Zap, BookOpen, Dumbbell, DollarSign, Briefcase, Users,\n Smile, Palette, Umbrella, Globe, Compass, CheckSquare,\n BarChart3, LineChart, PieChart, Lightbulb,\n} from \"lucide-react\";\nimport \"./theme.css\";\n\n// ─── EMOJI → LUCIDE ───\nconst EMOJI_TO_LUCIDE = {\n \"✎\": Pencil, \"✏️\": Pencil, \"🗑\": Trash2, \"🗑️\": Trash2,\n \"➕\": Plus, \"+\": Plus, \"✓\": Check, \"✔\": Check, \"✔️\": Check,\n \"✕\": X, \"✗\": X, \"❌\": X, \"⋯\": MoreHorizontal, \"…\": MoreHorizontal,\n \"🔍\": Search, \"📌\": Pin, \"📍\": Pin, \"↩\": Reply, \"↩️\": Reply,\n \"📤\": Send, \"⭐\": Star, \"🔔\": Bell, \"🔕\": BellOff,\n \"📦\": Archive, \"📋\": Copy, \"👁\": Eye, \"🔒\": Lock, \"🔓\": Unlock,\n \"⚙\": Settings, \"⚙️\": Settings, \"👤\": User, \"🚪\": LogOut,\n \"▶\": Play, \"⏹\": Square, \"💾\": Save, \"📥\": Download, \"📤\": Upload,\n \"🔄\": RefreshCw, \"🔃\": RefreshCw, \"🗂\": Filter,\n \"📅\": Calendar, \"🕐\": Clock, \"❤️\": Heart, \"👍\": ThumbsUp, \"👎\": ThumbsDown,\n \"🚩\": Flag, \"💬\": MessageSquare, \"📞\": Phone, \"📹\": Video,\n \"🎤\": Mic, \"🔇\": MicOff, \"🔊\": Volume2, \"🔈\": VolumeX,\n \"🔗\": Link, \"✂\": Unlink, \"↔\": Move, \"⤢\": Maximize2,\n \"⚠\": AlertTriangle, \"⚠️\": AlertTriangle, \"ℹ\": Info, \"ℹ️\": Info, \"❓\": HelpCircle,\n \"→\": ArrowRight, \"←\": ArrowLeft, \"🏠\": Home,\n \"🎯\": Target, \"🏆\": Award, \"📈\": TrendingUp,\n \"🔥\": Flame, \"⚡\": Zap, \"📚\": BookOpen, \"💪\": Dumbbell,\n \"💰\": DollarSign, \"💼\": Briefcase, \"🤝\": Users,\n \"🧘\": Smile, \"🎨\": Palette, \"🏖️\": Umbrella, \"🌍\": Globe, \"🧭\": Compass,\n \"✅\": CheckSquare, \"☐\": CheckSquare,\n \"📊\": BarChart3, \"📉\": LineChart, \"🔬\": PieChart, \"💡\": Lightbulb,\n};\n\nfunction resolveLucide(emoji) {\n if (!emoji) return null;\n return EMOJI_TO_LUCIDE[emoji] || null;\n}\n\n// ─── Shared input style ───\nconst inputStyle = {\n width: \"100%\",\n borderRadius: \"var(--radius-apple-input)\",\n border: \"0.5px solid var(--color-apple-divider)\",\n background: \"rgba(255, 255, 255, 0.6)\",\n padding: \"10px 14px\",\n fontFamily: \"var(--font-apple)\",\n fontSize: 15,\n color: \"var(--color-apple-text)\",\n outline: \"none\",\n transition: \"all 0.2s\",\n};\n\nconst labelStyle = {\n fontSize: 13,\n fontWeight: 500,\n color: \"var(--color-apple-text-secondary)\",\n fontFamily: \"var(--font-apple)\",\n marginBottom: 4,\n};\n\n// ─── Parameter Controls ───\n\nfunction AppleTextInput({ spec, value, onChange }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {spec.label && <label style={labelStyle}>{spec.label}</label>}\n <input\n type={spec.type === \"email\" ? \"email\" : spec.type === \"url\" ? \"url\" : spec.type === \"tel\" ? \"tel\" : \"text\"}\n style={inputStyle}\n placeholder={spec.placeholder || \"\"}\n value={value || \"\"}\n onChange={e => onChange(e.target.value)}\n required={spec.required}\n />\n </div>\n );\n}\n\nfunction AppleTextarea({ spec, value, onChange }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {spec.label && <label style={labelStyle}>{spec.label}</label>}\n <textarea\n style={{ ...inputStyle, minHeight: 80, resize: \"vertical\" }}\n placeholder={spec.placeholder || \"\"}\n value={value || \"\"}\n onChange={e => onChange(e.target.value)}\n rows={3}\n />\n </div>\n );\n}\n\nfunction AppleNumber({ spec, value, onChange }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {spec.label && <label style={labelStyle}>{spec.label}</label>}\n <input\n type=\"number\"\n style={inputStyle}\n value={value ?? \"\"}\n onChange={e => onChange(e.target.value === \"\" ? null : Number(e.target.value))}\n min={spec.min}\n max={spec.max}\n />\n </div>\n );\n}\n\nfunction AppleDateTime({ spec, value, onChange }) {\n const isTimeOnly = spec.name && /time/i.test(spec.name) && !/date/i.test(spec.name);\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {spec.label && <label style={labelStyle}>{spec.label}</label>}\n <input\n type={isTimeOnly ? \"time\" : \"date\"}\n style={inputStyle}\n value={value || \"\"}\n onChange={e => onChange(e.target.value)}\n />\n </div>\n );\n}\n\nfunction AppleSelect({ spec, value, onChange }) {\n const options = spec.options || [];\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {spec.label && <label style={labelStyle}>{spec.label}</label>}\n <SelectPrimitive.Root value={value || \"\"} onValueChange={onChange}>\n <SelectPrimitive.Trigger\n style={{\n ...inputStyle,\n display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\",\n cursor: \"pointer\",\n }}\n >\n <SelectPrimitive.Value placeholder={spec.placeholder || \"Выбрать...\"} />\n <SelectPrimitive.Icon><ChevronDown size={16} color=\"var(--color-apple-text-secondary)\" /></SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n style={{\n background: \"rgba(255,255,255,0.95)\",\n backdropFilter: \"blur(40px) saturate(180%)\",\n WebkitBackdropFilter: \"blur(40px) saturate(180%)\",\n border: \"0.5px solid var(--color-apple-divider)\",\n borderRadius: \"var(--radius-apple-input)\",\n boxShadow: \"var(--shadow-apple-glass)\",\n zIndex: 9999,\n fontFamily: \"var(--font-apple)\",\n minWidth: 200,\n }}\n position=\"popper\" sideOffset={4}\n >\n <SelectPrimitive.Viewport style={{ padding: 4 }}>\n {options.map(opt => (\n <SelectPrimitive.Item\n key={opt.value || opt}\n value={opt.value || opt}\n style={{\n padding: \"8px 14px\", borderRadius: 8, cursor: \"pointer\",\n color: \"var(--color-apple-text)\", outline: \"none\", fontSize: 15,\n }}\n >\n <SelectPrimitive.ItemText>{opt.label || opt}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n );\n}\n\n// ─── Buttons ───\n\nconst btnBase = {\n borderRadius: \"var(--radius-apple-input)\",\n fontFamily: \"var(--font-apple)\",\n cursor: \"pointer\",\n transition: \"all 0.2s cubic-bezier(0.25, 0.1, 0.25, 1)\",\n fontSize: 15,\n fontWeight: 600,\n border: \"none\",\n};\n\nfunction ApplePrimaryButton({ children, onClick, disabled, ...props }) {\n return (\n <button\n onClick={onClick} disabled={disabled}\n style={{\n ...btnBase, padding: \"10px 20px\",\n background: \"var(--color-apple-accent)\", color: \"white\",\n boxShadow: \"0 1px 3px rgba(0, 122, 255, 0.3)\",\n opacity: disabled ? 0.4 : 1,\n }}\n {...props}\n >{children}</button>\n );\n}\n\nfunction AppleSecondaryButton({ children, onClick, disabled, ...props }) {\n return (\n <button\n onClick={onClick} disabled={disabled}\n style={{\n ...btnBase, padding: \"10px 20px\",\n background: \"rgba(0, 122, 255, 0.1)\", color: \"var(--color-apple-accent)\",\n opacity: disabled ? 0.4 : 1,\n }}\n {...props}\n >{children}</button>\n );\n}\n\nfunction AppleDangerButton({ children, onClick, disabled, ...props }) {\n return (\n <button\n onClick={onClick} disabled={disabled}\n style={{\n ...btnBase, padding: \"10px 20px\",\n background: \"var(--color-apple-danger)\", color: \"white\",\n boxShadow: \"0 1px 3px rgba(255, 59, 48, 0.3)\",\n opacity: disabled ? 0.4 : 1,\n }}\n {...props}\n >{children}</button>\n );\n}\n\nfunction AppleIntentButton({ spec, onClick, disabled }) {\n const Icon = spec.icon ? resolveLucide(spec.icon) : null;\n const label = spec.label || spec.intentId;\n const isDanger = spec.irreversibility === \"high\" || spec.variant === \"danger\";\n const isPrimary = spec.variant === \"primary\";\n\n const bg = isDanger ? \"rgba(255, 59, 48, 0.1)\"\n : isPrimary ? \"var(--color-apple-accent)\"\n : \"rgba(0, 122, 255, 0.08)\";\n const color = isDanger ? \"var(--color-apple-danger)\"\n : isPrimary ? \"white\"\n : \"var(--color-apple-accent)\";\n\n return (\n <button\n onClick={onClick} disabled={disabled}\n style={{\n ...btnBase, display: \"inline-flex\", alignItems: \"center\", gap: 6,\n padding: \"8px 14px\", fontSize: 14,\n background: bg, color: color,\n opacity: disabled ? 0.4 : 1,\n }}\n title={label}\n >\n {Icon && <Icon size={16} />}\n <span>{label}</span>\n </button>\n );\n}\n\nfunction AppleOverflowMenu({ items }) {\n if (!items || items.length === 0) return null;\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button style={{\n ...btnBase, padding: 8,\n background: \"rgba(0, 0, 0, 0.04)\", color: \"var(--color-apple-text-secondary)\",\n width: 32, height: 32, display: \"flex\", alignItems: \"center\", justifyContent: \"center\",\n }}>\n <MoreHorizontal size={16} />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"end\" collisionPadding={16}\n style={{\n background: \"rgba(255,255,255,0.95)\",\n backdropFilter: \"blur(40px) saturate(180%)\",\n WebkitBackdropFilter: \"blur(40px) saturate(180%)\",\n border: \"0.5px solid var(--color-apple-divider)\",\n borderRadius: \"var(--radius-apple-input)\",\n boxShadow: \"var(--shadow-apple-glass)\",\n padding: 4, zIndex: 9999, fontFamily: \"var(--font-apple)\",\n minWidth: 180, maxWidth: \"90vw\",\n }}\n sideOffset={6}\n >\n {items.map((item, i) => {\n if (item.divider) return <DropdownMenu.Separator key={item.key} style={{ height: 0.5, background: \"var(--color-apple-divider)\", margin: \"4px 0\" }} />;\n const IconCmp = item.icon ? resolveLucide(item.icon) : null;\n return (\n <DropdownMenu.Item\n key={item.key || i}\n style={{\n display: \"flex\", alignItems: \"center\", gap: 10,\n padding: \"10px 14px\", borderRadius: 8, fontSize: 15,\n color: \"var(--color-apple-text)\", outline: \"none\", cursor: \"pointer\",\n }}\n onSelect={() => item.onClick?.()}\n >\n {IconCmp && <IconCmp size={16} />}\n <span>{item.label}</span>\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\n// ─── Shell ───\n\nfunction AppleModalShell({ opened, onClose, title, children }) {\n return (\n <Dialog.Root open={opened} onOpenChange={v => { if (!v) onClose(); }}>\n <Dialog.Portal>\n <Dialog.Overlay style={{\n position: \"fixed\", inset: 0, background: \"rgba(0,0,0,0.4)\",\n backdropFilter: \"blur(8px)\", zIndex: 9999,\n }} />\n <Dialog.Content style={{\n position: \"fixed\", left: \"50%\", top: \"50%\",\n transform: \"translate(-50%, -50%)\", zIndex: 9999,\n width: \"calc(100% - 32px)\", maxWidth: 480, maxHeight: \"85vh\",\n overflowY: \"auto\",\n background: \"rgba(255,255,255,0.85)\",\n backdropFilter: \"blur(40px) saturate(180%)\",\n WebkitBackdropFilter: \"blur(40px) saturate(180%)\",\n border: \"1px solid var(--color-apple-glass-border)\",\n borderRadius: \"var(--radius-apple)\",\n padding: 24,\n fontFamily: \"var(--font-apple)\",\n boxShadow: \"var(--shadow-apple-glass)\",\n }}>\n <Dialog.Title style={{\n fontSize: 22, fontWeight: 700,\n color: \"var(--color-apple-text)\",\n marginBottom: 16, marginTop: 0,\n }}>\n {title}\n </Dialog.Title>\n {children}\n <Dialog.Close asChild>\n <button style={{\n position: \"absolute\", top: 16, right: 16, background: \"rgba(0,0,0,0.04)\",\n border: \"none\", color: \"var(--color-apple-text-secondary)\", cursor: \"pointer\",\n padding: 6, borderRadius: 12, width: 28, height: 28,\n display: \"flex\", alignItems: \"center\", justifyContent: \"center\",\n }}>\n <X size={16} />\n </button>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n\nfunction AppleTabs({ tabs, value, onChange }) {\n return (\n <TabsPrimitive.Root value={value} onValueChange={onChange}>\n <TabsPrimitive.List style={{\n display: \"inline-flex\",\n background: \"rgba(0,0,0,0.05)\",\n borderRadius: 10,\n padding: 2,\n fontFamily: \"var(--font-apple)\",\n gap: 0,\n }}>\n {tabs.map(tab => (\n <TabsPrimitive.Trigger\n key={tab.value}\n value={tab.value}\n style={{\n padding: \"6px 14px\", fontSize: 13, whiteSpace: \"nowrap\",\n background: \"transparent\", border: \"none\", cursor: \"pointer\",\n fontFamily: \"inherit\", borderRadius: 8,\n color: \"var(--color-apple-text-secondary)\",\n fontWeight: 500,\n transition: \"all 0.2s\",\n }}\n data-state-active-style=\"background: white; color: var(--color-apple-text); box-shadow: 0 1px 3px rgba(0,0,0,0.08);\"\n >\n {tab.label}\n </TabsPrimitive.Trigger>\n ))}\n </TabsPrimitive.List>\n </TabsPrimitive.Root>\n );\n}\n\n// ─── Primitives ───\n\nfunction AppleHeading({ children, level = 2, ...props }) {\n const Tag = `h${Math.min(level, 6)}`;\n const sizes = { 1: 34, 2: 28, 3: 22, 4: 17, 5: 15, 6: 13 };\n return (\n <Tag style={{\n fontSize: sizes[level] || 22,\n fontWeight: 700,\n fontFamily: \"var(--font-apple)\",\n color: \"var(--color-apple-text)\",\n letterSpacing: \"-0.02em\",\n lineHeight: 1.2,\n margin: 0,\n }} {...props}>\n {children}\n </Tag>\n );\n}\n\nfunction AppleText({ children, preset, ...props }) {\n const colors = {\n dimmed: \"var(--color-apple-text-secondary)\",\n accent: \"var(--color-apple-accent)\",\n danger: \"var(--color-apple-danger)\",\n success: \"var(--color-apple-success)\",\n };\n return (\n <span style={{\n fontFamily: \"var(--font-apple)\",\n color: colors[preset] || \"var(--color-apple-text)\",\n fontSize: 15,\n }} {...props}>\n {children}\n </span>\n );\n}\n\nfunction AppleBadge({ children, color, ...props }) {\n return (\n <span style={{\n display: \"inline-flex\", alignItems: \"center\",\n padding: \"3px 10px\", borderRadius: 999,\n fontSize: 12, fontWeight: 600, fontFamily: \"var(--font-apple)\",\n background: color ? `${color}22` : \"rgba(0, 122, 255, 0.1)\",\n color: color || \"var(--color-apple-accent)\",\n }} {...props}>\n {children}\n </span>\n );\n}\n\nfunction AppleAvatar({ src, name, size = 32, ...props }) {\n const initials = (name || \"?\").split(\" \").map(w => w[0]).join(\"\").slice(0, 2).toUpperCase();\n return (\n <AvatarPrimitive.Root style={{\n display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\",\n borderRadius: \"50%\", overflow: \"hidden\",\n background: \"linear-gradient(135deg, var(--color-apple-accent), var(--color-apple-violet))\",\n fontFamily: \"var(--font-apple)\",\n width: size, height: size,\n }} {...props}>\n <AvatarPrimitive.Image src={src} alt={name} style={{ width: \"100%\", height: \"100%\", objectFit: \"cover\" }} />\n <AvatarPrimitive.Fallback style={{\n display: \"flex\", alignItems: \"center\", justifyContent: \"center\",\n width: \"100%\", height: \"100%\",\n color: \"white\", fontSize: Math.round(size * 0.4), fontWeight: 600,\n }}>\n {initials}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n );\n}\n\nfunction ApplePaper({ children, ...props }) {\n return (\n <div style={{\n borderRadius: \"var(--radius-apple)\",\n border: \"1px solid var(--color-apple-glass-border)\",\n background: \"var(--color-apple-glass-bg)\",\n backdropFilter: \"blur(40px) saturate(180%)\",\n WebkitBackdropFilter: \"blur(40px) saturate(180%)\",\n padding: 20,\n boxShadow: \"var(--shadow-apple-glass)\",\n }} {...props}>\n {children}\n </div>\n );\n}\n\n// ─── Adapter Export ───\n\nexport const appleAdapter = {\n name: \"apple\",\n parameter: {\n text: AppleTextInput,\n textarea: AppleTextarea,\n email: AppleTextInput,\n url: AppleTextInput,\n tel: AppleTextInput,\n number: AppleNumber,\n datetime: AppleDateTime,\n select: AppleSelect,\n },\n button: {\n primary: ApplePrimaryButton,\n secondary: AppleSecondaryButton,\n danger: AppleDangerButton,\n intent: AppleIntentButton,\n overflow: AppleOverflowMenu,\n },\n shell: {\n modal: AppleModalShell,\n tabs: AppleTabs,\n },\n primitive: {\n heading: AppleHeading,\n text: AppleText,\n badge: AppleBadge,\n avatar: AppleAvatar,\n paper: ApplePaper,\n },\n icon: {\n resolve: resolveLucide,\n },\n};\n","import React from \"react\";\nimport { registerUIAdapter } from \"@intent-driven/renderer\";\nimport { appleAdapter } from \"./adapter.jsx\";\n\n// theme.css не auto-импортируется: содержит @import \"tailwindcss\",\n// который должен резолвиться через bundler хоста (vite + @tailwindcss/vite).\n// Хост явно импортирует: import \"@intent-driven/adapter-apple/styles.css\".\nexport function AppleAdapterProvider({ children }) {\n React.useEffect(() => registerUIAdapter(appleAdapter), []);\n return <>{children}</>;\n}\n"],"mappings":";AAIA,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,kBAAkB;AAC9B,YAAY,qBAAqB;AACjC,YAAY,mBAAmB;AAC/B,YAAY,qBAAqB;AACjC;AAAA,EACE;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAO;AAAA,EAAG;AAAA,EAAgB;AAAA,EAChD;AAAA,EAAa;AAAA,EAAK;AAAA,EAAO;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC3C;AAAA,EAAS;AAAA,EAAM;AAAA,EAAK;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAM;AAAA,EAClD;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAW;AAAA,EACjD;AAAA,EAAU;AAAA,EAAO;AAAA,EAAO;AAAA,EAAU;AAAA,EAAY;AAAA,EAC9C;AAAA,EAAe;AAAA,EAAO;AAAA,EAAO;AAAA,EAAK;AAAA,EAAQ;AAAA,EAAS;AAAA,EACnD;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAW;AAAA,EAAe;AAAA,EAAM;AAAA,EACpD;AAAA,EAAY;AAAA,EAAW;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAO;AAAA,EAC5C;AAAA,EAAO;AAAA,EAAK;AAAA,EAAU;AAAA,EAAU;AAAA,EAAY;AAAA,EAAW;AAAA,EACvD;AAAA,EAAO;AAAA,EAAS;AAAA,EAAU;AAAA,EAAO;AAAA,EAAS;AAAA,EAC1C;AAAA,EAAW;AAAA,EAAW;AAAA,EAAU;AAAA,OAC3B;AACP,OAAO;AA0DH,SACiB,KADjB;AAvDJ,IAAM,kBAAkB;AAAA,EACtB,UAAK;AAAA,EAAQ,gBAAM;AAAA,EAAQ,aAAM;AAAA,EAAQ,mBAAO;AAAA,EAChD,UAAK;AAAA,EAAM,KAAK;AAAA,EAAM,UAAK;AAAA,EAAO,UAAK;AAAA,EAAO,gBAAM;AAAA,EACpD,UAAK;AAAA,EAAG,UAAK;AAAA,EAAG,UAAK;AAAA,EAAG,UAAK;AAAA,EAAgB,UAAK;AAAA,EAClD,aAAM;AAAA,EAAQ,aAAM;AAAA,EAAK,aAAM;AAAA,EAAK,UAAK;AAAA,EAAO,gBAAM;AAAA,EACtD,aAAM;AAAA,EAAM,UAAK;AAAA,EAAM,aAAM;AAAA,EAAM,aAAM;AAAA,EACzC,aAAM;AAAA,EAAS,aAAM;AAAA,EAAM,aAAM;AAAA,EAAK,aAAM;AAAA,EAAM,aAAM;AAAA,EACxD,UAAK;AAAA,EAAU,gBAAM;AAAA,EAAU,aAAM;AAAA,EAAM,aAAM;AAAA,EACjD,UAAK;AAAA,EAAM,UAAK;AAAA,EAAQ,aAAM;AAAA,EAAM,aAAM;AAAA,EAAU,aAAM;AAAA,EAC1D,aAAM;AAAA,EAAW,aAAM;AAAA,EAAW,aAAM;AAAA,EACxC,aAAM;AAAA,EAAU,aAAM;AAAA,EAAO,gBAAM;AAAA,EAAO,aAAM;AAAA,EAAU,aAAM;AAAA,EAChE,aAAM;AAAA,EAAM,aAAM;AAAA,EAAe,aAAM;AAAA,EAAO,aAAM;AAAA,EACpD,aAAM;AAAA,EAAK,aAAM;AAAA,EAAQ,aAAM;AAAA,EAAS,aAAM;AAAA,EAC9C,aAAM;AAAA,EAAM,UAAK;AAAA,EAAQ,UAAK;AAAA,EAAM,UAAK;AAAA,EACzC,UAAK;AAAA,EAAe,gBAAM;AAAA,EAAe,UAAK;AAAA,EAAM,gBAAM;AAAA,EAAM,UAAK;AAAA,EACrE,UAAK;AAAA,EAAY,UAAK;AAAA,EAAW,aAAM;AAAA,EACvC,aAAM;AAAA,EAAQ,aAAM;AAAA,EAAO,aAAM;AAAA,EACjC,aAAM;AAAA,EAAO,UAAK;AAAA,EAAK,aAAM;AAAA,EAAU,aAAM;AAAA,EAC7C,aAAM;AAAA,EAAY,aAAM;AAAA,EAAW,aAAM;AAAA,EACzC,aAAM;AAAA,EAAO,aAAM;AAAA,EAAS,mBAAO;AAAA,EAAU,aAAM;AAAA,EAAO,aAAM;AAAA,EAChE,UAAK;AAAA,EAAa,UAAK;AAAA,EACvB,aAAM;AAAA,EAAW,aAAM;AAAA,EAAW,aAAM;AAAA,EAAU,aAAM;AAC1D;AAEA,SAAS,cAAc,OAAO;AAC5B,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,gBAAgB,KAAK,KAAK;AACnC;AAGA,IAAM,aAAa;AAAA,EACjB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,YAAY;AACd;AAEA,IAAM,aAAa;AAAA,EACjB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,cAAc;AAChB;AAIA,SAAS,eAAe,EAAE,MAAM,OAAO,SAAS,GAAG;AACjD,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAE,GAC5D;AAAA,SAAK,SAAS,oBAAC,WAAM,OAAO,YAAa,eAAK,OAAM;AAAA,IACrD;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,KAAK,SAAS,UAAU,UAAU,KAAK,SAAS,QAAQ,QAAQ,KAAK,SAAS,QAAQ,QAAQ;AAAA,QACpG,OAAO;AAAA,QACP,aAAa,KAAK,eAAe;AAAA,QACjC,OAAO,SAAS;AAAA,QAChB,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,QACtC,UAAU,KAAK;AAAA;AAAA,IACjB;AAAA,KACF;AAEJ;AAEA,SAAS,cAAc,EAAE,MAAM,OAAO,SAAS,GAAG;AAChD,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAE,GAC5D;AAAA,SAAK,SAAS,oBAAC,WAAM,OAAO,YAAa,eAAK,OAAM;AAAA,IACrD;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,EAAE,GAAG,YAAY,WAAW,IAAI,QAAQ,WAAW;AAAA,QAC1D,aAAa,KAAK,eAAe;AAAA,QACjC,OAAO,SAAS;AAAA,QAChB,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA,QACtC,MAAM;AAAA;AAAA,IACR;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY,EAAE,MAAM,OAAO,SAAS,GAAG;AAC9C,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAE,GAC5D;AAAA,SAAK,SAAS,oBAAC,WAAM,OAAO,YAAa,eAAK,OAAM;AAAA,IACrD;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,OAAO,SAAS;AAAA,QAChB,UAAU,OAAK,SAAS,EAAE,OAAO,UAAU,KAAK,OAAO,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,QAC7E,KAAK,KAAK;AAAA,QACV,KAAK,KAAK;AAAA;AAAA,IACZ;AAAA,KACF;AAEJ;AAEA,SAAS,cAAc,EAAE,MAAM,OAAO,SAAS,GAAG;AAChD,QAAM,aAAa,KAAK,QAAQ,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI;AAClF,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAE,GAC5D;AAAA,SAAK,SAAS,oBAAC,WAAM,OAAO,YAAa,eAAK,OAAM;AAAA,IACrD;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,aAAa,SAAS;AAAA,QAC5B,OAAO;AAAA,QACP,OAAO,SAAS;AAAA,QAChB,UAAU,OAAK,SAAS,EAAE,OAAO,KAAK;AAAA;AAAA,IACxC;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY,EAAE,MAAM,OAAO,SAAS,GAAG;AAC9C,QAAM,UAAU,KAAK,WAAW,CAAC;AACjC,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAE,GAC5D;AAAA,SAAK,SAAS,oBAAC,WAAM,OAAO,YAAa,eAAK,OAAM;AAAA,IACrD,qBAAiB,sBAAhB,EAAqB,OAAO,SAAS,IAAI,eAAe,UACvD;AAAA;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,OAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS;AAAA,YAAQ,YAAY;AAAA,YAAU,gBAAgB;AAAA,YACvD,QAAQ;AAAA,UACV;AAAA,UAEA;AAAA,gCAAiB,uBAAhB,EAAsB,aAAa,KAAK,eAAe,iDAAc;AAAA,YACtE,oBAAiB,sBAAhB,EAAqB,8BAAC,eAAY,MAAM,IAAI,OAAM,qCAAoC,GAAE;AAAA;AAAA;AAAA,MAC3F;AAAA,MACA,oBAAiB,wBAAhB,EACC;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,sBAAsB;AAAA,YACtB,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,WAAW;AAAA,YACX,QAAQ;AAAA,YACR,YAAY;AAAA,YACZ,UAAU;AAAA,UACZ;AAAA,UACA,UAAS;AAAA,UAAS,YAAY;AAAA,UAE9B,8BAAiB,0BAAhB,EAAyB,OAAO,EAAE,SAAS,EAAE,GAC3C,kBAAQ,IAAI,SACX;AAAA,YAAiB;AAAA,YAAhB;AAAA,cAEC,OAAO,IAAI,SAAS;AAAA,cACpB,OAAO;AAAA,gBACL,SAAS;AAAA,gBAAY,cAAc;AAAA,gBAAG,QAAQ;AAAA,gBAC9C,OAAO;AAAA,gBAA2B,SAAS;AAAA,gBAAQ,UAAU;AAAA,cAC/D;AAAA,cAEA,8BAAiB,0BAAhB,EAA0B,cAAI,SAAS,KAAI;AAAA;AAAA,YAPvC,IAAI,SAAS;AAAA,UAQpB,CACD,GACH;AAAA;AAAA,MACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;AAIA,IAAM,UAAU;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,SAAS,mBAAmB,EAAE,UAAU,SAAS,UAAU,GAAG,MAAM,GAAG;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAAkB;AAAA,MAClB,OAAO;AAAA,QACL,GAAG;AAAA,QAAS,SAAS;AAAA,QACrB,YAAY;AAAA,QAA6B,OAAO;AAAA,QAChD,WAAW;AAAA,QACX,SAAS,WAAW,MAAM;AAAA,MAC5B;AAAA,MACC,GAAG;AAAA,MACJ;AAAA;AAAA,EAAS;AAEf;AAEA,SAAS,qBAAqB,EAAE,UAAU,SAAS,UAAU,GAAG,MAAM,GAAG;AACvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAAkB;AAAA,MAClB,OAAO;AAAA,QACL,GAAG;AAAA,QAAS,SAAS;AAAA,QACrB,YAAY;AAAA,QAA0B,OAAO;AAAA,QAC7C,SAAS,WAAW,MAAM;AAAA,MAC5B;AAAA,MACC,GAAG;AAAA,MACJ;AAAA;AAAA,EAAS;AAEf;AAEA,SAAS,kBAAkB,EAAE,UAAU,SAAS,UAAU,GAAG,MAAM,GAAG;AACpE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAAkB;AAAA,MAClB,OAAO;AAAA,QACL,GAAG;AAAA,QAAS,SAAS;AAAA,QACrB,YAAY;AAAA,QAA6B,OAAO;AAAA,QAChD,WAAW;AAAA,QACX,SAAS,WAAW,MAAM;AAAA,MAC5B;AAAA,MACC,GAAG;AAAA,MACJ;AAAA;AAAA,EAAS;AAEf;AAEA,SAAS,kBAAkB,EAAE,MAAM,SAAS,SAAS,GAAG;AACtD,QAAMA,QAAO,KAAK,OAAO,cAAc,KAAK,IAAI,IAAI;AACpD,QAAM,QAAQ,KAAK,SAAS,KAAK;AACjC,QAAM,WAAW,KAAK,oBAAoB,UAAU,KAAK,YAAY;AACrE,QAAM,YAAY,KAAK,YAAY;AAEnC,QAAM,KAAK,WAAW,2BACX,YAAY,8BACZ;AACX,QAAM,QAAQ,WAAW,8BACX,YAAY,UACZ;AAEd,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAAkB;AAAA,MAClB,OAAO;AAAA,QACL,GAAG;AAAA,QAAS,SAAS;AAAA,QAAe,YAAY;AAAA,QAAU,KAAK;AAAA,QAC/D,SAAS;AAAA,QAAY,UAAU;AAAA,QAC/B,YAAY;AAAA,QAAI;AAAA,QAChB,SAAS,WAAW,MAAM;AAAA,MAC5B;AAAA,MACA,OAAO;AAAA,MAEN;AAAA,QAAAA,SAAQ,oBAACA,OAAA,EAAK,MAAM,IAAI;AAAA,QACzB,oBAAC,UAAM,iBAAM;AAAA;AAAA;AAAA,EACf;AAEJ;AAEA,SAAS,kBAAkB,EAAE,MAAM,GAAG;AACpC,MAAI,CAAC,SAAS,MAAM,WAAW,EAAG,QAAO;AACzC,SACE,qBAAc,mBAAb,EACC;AAAA,wBAAc,sBAAb,EAAqB,SAAO,MAC3B,8BAAC,YAAO,OAAO;AAAA,MACb,GAAG;AAAA,MAAS,SAAS;AAAA,MACrB,YAAY;AAAA,MAAuB,OAAO;AAAA,MAC1C,OAAO;AAAA,MAAI,QAAQ;AAAA,MAAI,SAAS;AAAA,MAAQ,YAAY;AAAA,MAAU,gBAAgB;AAAA,IAChF,GACE,8BAAC,kBAAe,MAAM,IAAI,GAC5B,GACF;AAAA,IACA,oBAAc,qBAAb,EACC;AAAA,MAAc;AAAA,MAAb;AAAA,QACC,OAAM;AAAA,QAAM,kBAAkB;AAAA,QAC9B,OAAO;AAAA,UACL,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,sBAAsB;AAAA,UACtB,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,WAAW;AAAA,UACX,SAAS;AAAA,UAAG,QAAQ;AAAA,UAAM,YAAY;AAAA,UACtC,UAAU;AAAA,UAAK,UAAU;AAAA,QAC3B;AAAA,QACA,YAAY;AAAA,QAEX,gBAAM,IAAI,CAAC,MAAM,MAAM;AACtB,cAAI,KAAK,QAAS,QAAO,oBAAc,wBAAb,EAAsC,OAAO,EAAE,QAAQ,KAAK,YAAY,8BAA8B,QAAQ,QAAQ,KAA1F,KAAK,GAAwF;AACnJ,gBAAM,UAAU,KAAK,OAAO,cAAc,KAAK,IAAI,IAAI;AACvD,iBACE;AAAA,YAAc;AAAA,YAAb;AAAA,cAEC,OAAO;AAAA,gBACL,SAAS;AAAA,gBAAQ,YAAY;AAAA,gBAAU,KAAK;AAAA,gBAC5C,SAAS;AAAA,gBAAa,cAAc;AAAA,gBAAG,UAAU;AAAA,gBACjD,OAAO;AAAA,gBAA2B,SAAS;AAAA,gBAAQ,QAAQ;AAAA,cAC7D;AAAA,cACA,UAAU,MAAM,KAAK,UAAU;AAAA,cAE9B;AAAA,2BAAW,oBAAC,WAAQ,MAAM,IAAI;AAAA,gBAC/B,oBAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YATb,KAAK,OAAO;AAAA,UAUnB;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH,GACF;AAAA,KACF;AAEJ;AAIA,SAAS,gBAAgB,EAAE,QAAQ,SAAS,OAAO,SAAS,GAAG;AAC7D,SACE,oBAAQ,aAAP,EAAY,MAAM,QAAQ,cAAc,OAAK;AAAE,QAAI,CAAC,EAAG,SAAQ;AAAA,EAAG,GACjE,+BAAQ,eAAP,EACC;AAAA,wBAAQ,gBAAP,EAAe,OAAO;AAAA,MACrB,UAAU;AAAA,MAAS,OAAO;AAAA,MAAG,YAAY;AAAA,MACzC,gBAAgB;AAAA,MAAa,QAAQ;AAAA,IACvC,GAAG;AAAA,IACH,qBAAQ,gBAAP,EAAe,OAAO;AAAA,MACrB,UAAU;AAAA,MAAS,MAAM;AAAA,MAAO,KAAK;AAAA,MACrC,WAAW;AAAA,MAAyB,QAAQ;AAAA,MAC5C,OAAO;AAAA,MAAqB,UAAU;AAAA,MAAK,WAAW;AAAA,MACtD,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,MACtB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,WAAW;AAAA,IACb,GACE;AAAA,0BAAQ,cAAP,EAAa,OAAO;AAAA,QACnB,UAAU;AAAA,QAAI,YAAY;AAAA,QAC1B,OAAO;AAAA,QACP,cAAc;AAAA,QAAI,WAAW;AAAA,MAC/B,GACG,iBACH;AAAA,MACC;AAAA,MACD,oBAAQ,cAAP,EAAa,SAAO,MACnB,8BAAC,YAAO,OAAO;AAAA,QACb,UAAU;AAAA,QAAY,KAAK;AAAA,QAAI,OAAO;AAAA,QAAI,YAAY;AAAA,QACtD,QAAQ;AAAA,QAAQ,OAAO;AAAA,QAAqC,QAAQ;AAAA,QACpE,SAAS;AAAA,QAAG,cAAc;AAAA,QAAI,OAAO;AAAA,QAAI,QAAQ;AAAA,QACjD,SAAS;AAAA,QAAQ,YAAY;AAAA,QAAU,gBAAgB;AAAA,MACzD,GACE,8BAAC,KAAE,MAAM,IAAI,GACf,GACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,UAAU,EAAE,MAAM,OAAO,SAAS,GAAG;AAC5C,SACE,oBAAe,oBAAd,EAAmB,OAAc,eAAe,UAC/C,8BAAe,oBAAd,EAAmB,OAAO;AAAA,IACzB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,EACP,GACG,eAAK,IAAI,SACR;AAAA,IAAe;AAAA,IAAd;AAAA,MAEC,OAAO,IAAI;AAAA,MACX,OAAO;AAAA,QACL,SAAS;AAAA,QAAY,UAAU;AAAA,QAAI,YAAY;AAAA,QAC/C,YAAY;AAAA,QAAe,QAAQ;AAAA,QAAQ,QAAQ;AAAA,QACnD,YAAY;AAAA,QAAW,cAAc;AAAA,QACrC,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,YAAY;AAAA,MACd;AAAA,MACA,2BAAwB;AAAA,MAEvB,cAAI;AAAA;AAAA,IAZA,IAAI;AAAA,EAaX,CACD,GACH,GACF;AAEJ;AAIA,SAAS,aAAa,EAAE,UAAU,QAAQ,GAAG,GAAG,MAAM,GAAG;AACvD,QAAM,MAAM,IAAI,KAAK,IAAI,OAAO,CAAC,CAAC;AAClC,QAAM,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG;AACzD,SACE,oBAAC,OAAI,OAAO;AAAA,IACV,UAAU,MAAM,KAAK,KAAK;AAAA,IAC1B,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV,GAAI,GAAG,OACJ,UACH;AAEJ;AAEA,SAAS,UAAU,EAAE,UAAU,QAAQ,GAAG,MAAM,GAAG;AACjD,QAAM,SAAS;AAAA,IACb,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACA,SACE,oBAAC,UAAK,OAAO;AAAA,IACX,YAAY;AAAA,IACZ,OAAO,OAAO,MAAM,KAAK;AAAA,IACzB,UAAU;AAAA,EACZ,GAAI,GAAG,OACJ,UACH;AAEJ;AAEA,SAAS,WAAW,EAAE,UAAU,OAAO,GAAG,MAAM,GAAG;AACjD,SACE,oBAAC,UAAK,OAAO;AAAA,IACX,SAAS;AAAA,IAAe,YAAY;AAAA,IACpC,SAAS;AAAA,IAAY,cAAc;AAAA,IACnC,UAAU;AAAA,IAAI,YAAY;AAAA,IAAK,YAAY;AAAA,IAC3C,YAAY,QAAQ,GAAG,KAAK,OAAO;AAAA,IACnC,OAAO,SAAS;AAAA,EAClB,GAAI,GAAG,OACJ,UACH;AAEJ;AAEA,SAAS,YAAY,EAAE,KAAK,MAAM,OAAO,IAAI,GAAG,MAAM,GAAG;AACvD,QAAM,YAAY,QAAQ,KAAK,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY;AAC1F,SACE,qBAAiB,sBAAhB,EAAqB,OAAO;AAAA,IAC3B,SAAS;AAAA,IAAe,YAAY;AAAA,IAAU,gBAAgB;AAAA,IAC9D,cAAc;AAAA,IAAO,UAAU;AAAA,IAC/B,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,IAAM,QAAQ;AAAA,EACvB,GAAI,GAAG,OACL;AAAA,wBAAiB,uBAAhB,EAAsB,KAAU,KAAK,MAAM,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,GAAG;AAAA,IAC1G,oBAAiB,0BAAhB,EAAyB,OAAO;AAAA,MAC/B,SAAS;AAAA,MAAQ,YAAY;AAAA,MAAU,gBAAgB;AAAA,MACvD,OAAO;AAAA,MAAQ,QAAQ;AAAA,MACvB,OAAO;AAAA,MAAS,UAAU,KAAK,MAAM,OAAO,GAAG;AAAA,MAAG,YAAY;AAAA,IAChE,GACG,oBACH;AAAA,KACF;AAEJ;AAEA,SAAS,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG;AAC1C,SACE,oBAAC,SAAI,OAAO;AAAA,IACV,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT,WAAW;AAAA,EACb,GAAI,GAAG,OACJ,UACH;AAEJ;AAIO,IAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,WAAW;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,WAAW;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,EACX;AACF;;;ACzhBA,OAAOC,YAAW;AAClB,SAAS,yBAAyB;AAQzB,0BAAAC,YAAA;AAFF,SAAS,qBAAqB,EAAE,SAAS,GAAG;AACjD,EAAAC,OAAM,UAAU,MAAM,kBAAkB,YAAY,GAAG,CAAC,CAAC;AACzD,SAAO,gBAAAD,KAAA,YAAG,UAAS;AACrB;","names":["Icon","React","jsx","React"]}
|
package/dist/theme.css
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
|
2
|
+
|
|
3
|
+
@theme {
|
|
4
|
+
--color-apple-bg: #f5f5f7;
|
|
5
|
+
--color-apple-glass-bg: rgba(255, 255, 255, 0.7);
|
|
6
|
+
--color-apple-glass-border: rgba(255, 255, 255, 0.18);
|
|
7
|
+
--color-apple-text: #1d1d1f;
|
|
8
|
+
--color-apple-text-secondary: #86868b;
|
|
9
|
+
--color-apple-accent: #007aff;
|
|
10
|
+
--color-apple-success: #34c759;
|
|
11
|
+
--color-apple-warn: #ff9500;
|
|
12
|
+
--color-apple-danger: #ff3b30;
|
|
13
|
+
--color-apple-violet: #af52de;
|
|
14
|
+
--color-apple-divider: rgba(0, 0, 0, 0.06);
|
|
15
|
+
--font-apple: -apple-system, 'SF Pro Display', 'Inter', system-ui, sans-serif;
|
|
16
|
+
--radius-apple: 18px;
|
|
17
|
+
--radius-apple-input: 12px;
|
|
18
|
+
--shadow-apple-glass: 0 8px 32px rgba(0, 0, 0, 0.08);
|
|
19
|
+
--gradient-apple-bg: linear-gradient(180deg,
|
|
20
|
+
#fef2f7 0%, #f0f0ff 30%, #f0fafc 70%, #f5f5f7 100%);
|
|
21
|
+
--color-mood-hep: #fbbf24;
|
|
22
|
+
--color-mood-heu: #ef4444;
|
|
23
|
+
--color-mood-lep: #10b981;
|
|
24
|
+
--color-mood-leu: #3b82f6;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.apple-glass {
|
|
28
|
+
background: var(--color-apple-glass-bg);
|
|
29
|
+
backdrop-filter: blur(40px) saturate(180%);
|
|
30
|
+
-webkit-backdrop-filter: blur(40px) saturate(180%);
|
|
31
|
+
border: 1px solid var(--color-apple-glass-border);
|
|
32
|
+
border-radius: var(--radius-apple);
|
|
33
|
+
box-shadow: var(--shadow-apple-glass);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.apple-transition {
|
|
37
|
+
transition: all 0.25s cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
38
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@intent-driven/adapter-apple",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Apple visionOS-glass adapter for @intent-driven/renderer",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.mjs",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
},
|
|
15
|
+
"./styles.css": "./dist/theme.css"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md",
|
|
20
|
+
"CHANGELOG.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup && node -e \"require('fs').writeFileSync('dist/theme.css', require('fs').readFileSync('src/theme.css','utf8').replace(/@import \\\"tailwindcss\\\";\\n?/g, ''))\"",
|
|
25
|
+
"test": "vitest run"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"react": ">=18",
|
|
29
|
+
"@intent-driven/renderer": ">=0.2.0",
|
|
30
|
+
"lucide-react": ">=1.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"tsup": "^8.5.0",
|
|
34
|
+
"vitest": "^4.1.0",
|
|
35
|
+
"jsdom": "^25.0.0",
|
|
36
|
+
"@testing-library/react": "^16.1.0",
|
|
37
|
+
"react": "^19.0.0",
|
|
38
|
+
"react-dom": "^19.0.0",
|
|
39
|
+
"typescript": "^5.7.0",
|
|
40
|
+
"@intent-driven/renderer": "workspace:*",
|
|
41
|
+
"lucide-react": "^1.8.0",
|
|
42
|
+
"@radix-ui/react-dialog": "^1.1.0",
|
|
43
|
+
"@radix-ui/react-dropdown-menu": "^2.1.0",
|
|
44
|
+
"@radix-ui/react-select": "^2.2.0",
|
|
45
|
+
"@radix-ui/react-tabs": "^1.1.0",
|
|
46
|
+
"@radix-ui/react-avatar": "^1.1.0"
|
|
47
|
+
},
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public"
|
|
50
|
+
},
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"author": "Игнат Дубовский <dubovskyy.im@gmail.com>",
|
|
53
|
+
"homepage": "https://github.com/ignatdubovskiy/idf-sdk/tree/main/packages/adapter-apple",
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "https://github.com/ignatdubovskiy/idf-sdk.git",
|
|
57
|
+
"directory": "packages/adapter-apple"
|
|
58
|
+
},
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/ignatdubovskiy/idf-sdk/issues"
|
|
61
|
+
},
|
|
62
|
+
"keywords": [
|
|
63
|
+
"idf",
|
|
64
|
+
"apple",
|
|
65
|
+
"visionos",
|
|
66
|
+
"glassmorphism",
|
|
67
|
+
"ui-adapter",
|
|
68
|
+
"react"
|
|
69
|
+
],
|
|
70
|
+
"sideEffects": [
|
|
71
|
+
"**/*.css"
|
|
72
|
+
]
|
|
73
|
+
}
|