gridsmith-ui 0.1.0 → 0.2.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/dist/{chunk-HHOMQPRO.js → chunk-OGIR65SM.js} +59 -58
- package/dist/chunk-OGIR65SM.js.map +1 -0
- package/dist/icons.d.ts +8 -1
- package/dist/icons.js +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +57 -5
- package/dist/index.js.map +1 -1
- package/package.json +17 -7
- package/dist/chunk-HHOMQPRO.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createContext, useContext, useState, useEffect } from 'react';
|
|
2
|
-
import { Menu, Pencil, LogOut, Send, Paperclip, Mic, GripVertical, ArrowLeft, Redo2, Undo2, Trash2, ChevronDown, ChevronUp, Type, Highlighter, Subscript, Superscript, Minus, Quote, Code, Table, Image, Link, ListChecks, ListOrdered, List, AlignRight, AlignCenter, AlignLeft, Strikethrough, Underline, Italic, Bold, CalendarDays, Clock, AlertCircle, Info, AlertTriangle, Check, User, Bell, Search, Plus, X, ChevronRight, Settings, BarChart3, FolderKanban, Home } from 'lucide-react';
|
|
3
2
|
import { jsx } from 'react/jsx-runtime';
|
|
4
3
|
|
|
5
4
|
// ../../showcase/src/lib/icons.tsx
|
|
@@ -24,63 +23,62 @@ function buildExtendedMap(mod, aliases, opts) {
|
|
|
24
23
|
Object.assign(map, aliases);
|
|
25
24
|
return map;
|
|
26
25
|
}
|
|
27
|
-
var lucideAliases = {
|
|
28
|
-
"home": Home,
|
|
29
|
-
"folder": FolderKanban,
|
|
30
|
-
"chart": BarChart3,
|
|
31
|
-
"settings": Settings,
|
|
32
|
-
"chevron-right": ChevronRight,
|
|
33
|
-
"close": X,
|
|
34
|
-
"plus": Plus,
|
|
35
|
-
"search": Search,
|
|
36
|
-
"bell": Bell,
|
|
37
|
-
"user": User,
|
|
38
|
-
"check": Check,
|
|
39
|
-
"warning": AlertTriangle,
|
|
40
|
-
"info": Info,
|
|
41
|
-
"error": AlertCircle,
|
|
42
|
-
"clock": Clock,
|
|
43
|
-
"calendar": CalendarDays,
|
|
44
|
-
"bold": Bold,
|
|
45
|
-
"italic": Italic,
|
|
46
|
-
"underline": Underline,
|
|
47
|
-
"strikethrough": Strikethrough,
|
|
48
|
-
"align-left": AlignLeft,
|
|
49
|
-
"align-center": AlignCenter,
|
|
50
|
-
"align-right": AlignRight,
|
|
51
|
-
"list": List,
|
|
52
|
-
"list-ordered": ListOrdered,
|
|
53
|
-
"list-checks": ListChecks,
|
|
54
|
-
"link": Link,
|
|
55
|
-
"image": Image,
|
|
56
|
-
"table": Table,
|
|
57
|
-
"code": Code,
|
|
58
|
-
"quote": Quote,
|
|
59
|
-
"minus": Minus,
|
|
60
|
-
"superscript": Superscript,
|
|
61
|
-
"subscript": Subscript,
|
|
62
|
-
"highlight": Highlighter,
|
|
63
|
-
"type": Type,
|
|
64
|
-
"chevron-up": ChevronUp,
|
|
65
|
-
"chevron-down": ChevronDown,
|
|
66
|
-
"trash": Trash2,
|
|
67
|
-
"undo": Undo2,
|
|
68
|
-
"redo": Redo2,
|
|
69
|
-
"arrow-left": ArrowLeft,
|
|
70
|
-
"grip-vertical": GripVertical,
|
|
71
|
-
"mic": Mic,
|
|
72
|
-
"paperclip": Paperclip,
|
|
73
|
-
"send": Send,
|
|
74
|
-
"log-out": LogOut,
|
|
75
|
-
"edit": Pencil,
|
|
76
|
-
"menu": Menu
|
|
77
|
-
};
|
|
78
26
|
var packCache = /* @__PURE__ */ new Map();
|
|
79
|
-
packCache.set("lucide", lucideAliases);
|
|
80
27
|
var fullyLoaded = /* @__PURE__ */ new Set();
|
|
81
28
|
async function loadLucide() {
|
|
82
|
-
const
|
|
83
|
-
|
|
29
|
+
const L = await import('lucide-react');
|
|
30
|
+
const aliases = {
|
|
31
|
+
"home": L.Home,
|
|
32
|
+
"folder": L.FolderKanban,
|
|
33
|
+
"chart": L.BarChart3,
|
|
34
|
+
"settings": L.Settings,
|
|
35
|
+
"chevron-right": L.ChevronRight,
|
|
36
|
+
"close": L.X,
|
|
37
|
+
"plus": L.Plus,
|
|
38
|
+
"search": L.Search,
|
|
39
|
+
"bell": L.Bell,
|
|
40
|
+
"user": L.User,
|
|
41
|
+
"check": L.Check,
|
|
42
|
+
"warning": L.AlertTriangle,
|
|
43
|
+
"info": L.Info,
|
|
44
|
+
"error": L.AlertCircle,
|
|
45
|
+
"clock": L.Clock,
|
|
46
|
+
"calendar": L.CalendarDays,
|
|
47
|
+
"bold": L.Bold,
|
|
48
|
+
"italic": L.Italic,
|
|
49
|
+
"underline": L.Underline,
|
|
50
|
+
"strikethrough": L.Strikethrough,
|
|
51
|
+
"align-left": L.AlignLeft,
|
|
52
|
+
"align-center": L.AlignCenter,
|
|
53
|
+
"align-right": L.AlignRight,
|
|
54
|
+
"list": L.List,
|
|
55
|
+
"list-ordered": L.ListOrdered,
|
|
56
|
+
"list-checks": L.ListChecks,
|
|
57
|
+
"link": L.Link,
|
|
58
|
+
"image": L.Image,
|
|
59
|
+
"table": L.Table,
|
|
60
|
+
"code": L.Code,
|
|
61
|
+
"quote": L.Quote,
|
|
62
|
+
"minus": L.Minus,
|
|
63
|
+
"superscript": L.Superscript,
|
|
64
|
+
"subscript": L.Subscript,
|
|
65
|
+
"highlight": L.Highlighter,
|
|
66
|
+
"type": L.Type,
|
|
67
|
+
"chevron-up": L.ChevronUp,
|
|
68
|
+
"chevron-down": L.ChevronDown,
|
|
69
|
+
"trash": L.Trash2,
|
|
70
|
+
"undo": L.Undo2,
|
|
71
|
+
"redo": L.Redo2,
|
|
72
|
+
"arrow-left": L.ArrowLeft,
|
|
73
|
+
"grip-vertical": L.GripVertical,
|
|
74
|
+
"mic": L.Mic,
|
|
75
|
+
"paperclip": L.Paperclip,
|
|
76
|
+
"send": L.Send,
|
|
77
|
+
"log-out": L.LogOut,
|
|
78
|
+
"edit": L.Pencil,
|
|
79
|
+
"menu": L.Menu
|
|
80
|
+
};
|
|
81
|
+
return buildExtendedMap(L, aliases);
|
|
84
82
|
}
|
|
85
83
|
async function loadPhosphor() {
|
|
86
84
|
const P = await import('@phosphor-icons/react');
|
|
@@ -310,6 +308,9 @@ var packLoaders = {
|
|
|
310
308
|
feather: loadFeather
|
|
311
309
|
};
|
|
312
310
|
var IconCtx = createContext({ pack: "lucide", weight: 1.5 });
|
|
311
|
+
function IconProvider({ pack, weight, children }) {
|
|
312
|
+
return /* @__PURE__ */ jsx(IconCtx.Provider, { value: { pack, weight }, children });
|
|
313
|
+
}
|
|
313
314
|
function useIconMap(pack) {
|
|
314
315
|
const [map, setMap] = useState(packCache.get(pack) ?? null);
|
|
315
316
|
useEffect(() => {
|
|
@@ -358,6 +359,6 @@ function Icon({ name, size = 16, className }) {
|
|
|
358
359
|
return /* @__PURE__ */ jsx(Comp, { size, strokeWidth: weight, className });
|
|
359
360
|
}
|
|
360
361
|
|
|
361
|
-
export { Icon };
|
|
362
|
-
//# sourceMappingURL=chunk-
|
|
363
|
-
//# sourceMappingURL=chunk-
|
|
362
|
+
export { Icon, IconProvider };
|
|
363
|
+
//# sourceMappingURL=chunk-OGIR65SM.js.map
|
|
364
|
+
//# sourceMappingURL=chunk-OGIR65SM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../showcase/src/lib/icons.tsx"],"names":[],"mappings":"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","file":"chunk-OGIR65SM.js","sourcesContent":["import { createContext, useContext, useState, useEffect, type ReactNode, type ComponentType } from \"react\";\n\n/* ── Types ────────────────────────────────────────────────────── */\n\ntype CuratedIconName =\n | \"home\" | \"folder\" | \"chart\" | \"settings\"\n | \"chevron-right\" | \"close\" | \"plus\" | \"search\"\n | \"bell\" | \"user\" | \"check\" | \"warning\" | \"info\" | \"error\"\n | \"clock\" | \"calendar\"\n | \"bold\" | \"italic\" | \"underline\" | \"strikethrough\"\n | \"align-left\" | \"align-center\" | \"align-right\"\n | \"list\" | \"list-ordered\" | \"list-checks\"\n | \"link\" | \"image\" | \"table\" | \"code\" | \"quote\" | \"minus\"\n | \"superscript\" | \"subscript\" | \"highlight\" | \"type\"\n | \"chevron-up\" | \"chevron-down\" | \"trash\"\n | \"undo\" | \"redo\"\n | \"arrow-left\" | \"grip-vertical\"\n | \"mic\" | \"paperclip\" | \"send\"\n | \"log-out\" | \"edit\" | \"menu\";\n\n/**\n * Curated names provide autocomplete and work identically across all 5 packs.\n * Any kebab-case string is also accepted — it resolves directly against the\n * active pack's native exports (e.g. \"clipboard-copy\" → Lucide's ClipboardCopy).\n */\nexport type IconName = CuratedIconName | (string & {});\n\nexport type IconPack = \"lucide\" | \"phosphor\" | \"heroicons\" | \"tabler\" | \"feather\";\n\ntype IconComponent = ComponentType<Record<string, unknown>>;\ntype IconMap = Record<string, IconComponent>;\n\n/* ── Helpers ───────────────────────────────────────────────────── */\n\nfunction pascalToKebab(s: string): string {\n return s\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .replace(/(\\d)([a-zA-Z])/g, \"$1-$2\")\n .toLowerCase();\n}\n\n/**\n * Build an extended icon map from a pack module's exports.\n * Each PascalCase function export is converted to a kebab-case entry.\n * Pack prefixes/suffixes (Icon*, *Icon, Fi*) are stripped before conversion.\n * Curated aliases always take precedence over auto-generated names.\n */\nfunction buildExtendedMap(\n mod: Record<string, unknown>,\n aliases: IconMap,\n opts?: { stripPrefix?: string; stripSuffix?: string },\n): IconMap {\n const map: IconMap = {};\n\n for (const [exportName, value] of Object.entries(mod)) {\n if (typeof value !== \"function\") continue;\n if (!exportName[0] || exportName[0] !== exportName[0].toUpperCase()) continue;\n\n let name = exportName;\n if (opts?.stripPrefix && name.startsWith(opts.stripPrefix)) {\n name = name.slice(opts.stripPrefix.length);\n }\n if (opts?.stripSuffix && name.endsWith(opts.stripSuffix)) {\n name = name.slice(0, -opts.stripSuffix.length);\n }\n if (!name) continue;\n\n map[pascalToKebab(name)] = value as IconComponent;\n }\n\n Object.assign(map, aliases);\n return map;\n}\n\n/* ── Pack loading ─────────────────────────────────────────────── */\n\nconst packCache = new Map<IconPack, IconMap>();\n\nconst fullyLoaded = new Set<IconPack>();\n\nasync function loadLucide(): Promise<IconMap> {\n const L = await import(\"lucide-react\");\n const aliases: IconMap = {\n \"home\": L.Home, \"folder\": L.FolderKanban, \"chart\": L.BarChart3, \"settings\": L.Settings,\n \"chevron-right\": L.ChevronRight, \"close\": L.X, \"plus\": L.Plus, \"search\": L.Search,\n \"bell\": L.Bell, \"user\": L.User, \"check\": L.Check, \"warning\": L.AlertTriangle,\n \"info\": L.Info, \"error\": L.AlertCircle, \"clock\": L.Clock, \"calendar\": L.CalendarDays,\n \"bold\": L.Bold, \"italic\": L.Italic, \"underline\": L.Underline, \"strikethrough\": L.Strikethrough,\n \"align-left\": L.AlignLeft, \"align-center\": L.AlignCenter, \"align-right\": L.AlignRight,\n \"list\": L.List, \"list-ordered\": L.ListOrdered, \"list-checks\": L.ListChecks,\n \"link\": L.Link, \"image\": L.Image, \"table\": L.Table, \"code\": L.Code,\n \"quote\": L.Quote, \"minus\": L.Minus, \"superscript\": L.Superscript, \"subscript\": L.Subscript,\n \"highlight\": L.Highlighter, \"type\": L.Type, \"chevron-up\": L.ChevronUp, \"chevron-down\": L.ChevronDown,\n \"trash\": L.Trash2, \"undo\": L.Undo2, \"redo\": L.Redo2,\n \"arrow-left\": L.ArrowLeft, \"grip-vertical\": L.GripVertical,\n \"mic\": L.Mic, \"paperclip\": L.Paperclip, \"send\": L.Send,\n \"log-out\": L.LogOut, \"edit\": L.Pencil, \"menu\": L.Menu,\n };\n return buildExtendedMap(L as unknown as Record<string, unknown>, aliases);\n}\n\nasync function loadPhosphor(): Promise<IconMap> {\n const P = await import(\"@phosphor-icons/react\");\n const aliases: IconMap = {\n \"home\": P.House, \"folder\": P.FolderSimple, \"chart\": P.ChartBar,\n \"settings\": P.Gear, \"chevron-right\": P.CaretRight, \"close\": P.X,\n \"plus\": P.Plus, \"search\": P.MagnifyingGlass, \"bell\": P.Bell, \"user\": P.User,\n \"check\": P.Check, \"warning\": P.Warning, \"info\": P.Info,\n \"error\": P.WarningCircle, \"clock\": P.Clock, \"calendar\": P.CalendarBlank,\n \"bold\": P.TextB, \"italic\": P.TextItalic, \"underline\": P.TextUnderline,\n \"strikethrough\": P.TextStrikethrough, \"align-left\": P.TextAlignLeft,\n \"align-center\": P.TextAlignCenter, \"align-right\": P.TextAlignRight,\n \"list\": P.ListBullets, \"list-ordered\": P.ListNumbers, \"list-checks\": P.ListChecks,\n \"link\": P.Link, \"image\": P.Image, \"table\": P.Table, \"code\": P.Code,\n \"quote\": P.Quotes, \"minus\": P.Minus, \"superscript\": P.TextSuperscript,\n \"subscript\": P.TextSubscript, \"highlight\": P.Highlighter, \"type\": P.TextT,\n \"chevron-up\": P.CaretUp, \"chevron-down\": P.CaretDown, \"trash\": P.Trash,\n \"undo\": P.ArrowCounterClockwise, \"redo\": P.ArrowClockwise,\n \"arrow-left\": P.ArrowLeft, \"grip-vertical\": P.DotsSixVertical,\n \"mic\": P.Microphone, \"paperclip\": P.Paperclip, \"send\": P.PaperPlaneTilt,\n \"log-out\": P.SignOut, \"edit\": P.PencilSimple, \"menu\": P.List,\n };\n return buildExtendedMap(P as unknown as Record<string, unknown>, aliases);\n}\n\nasync function loadHeroicons(): Promise<IconMap> {\n const H = await import(\"@heroicons/react/24/outline\");\n const aliases: IconMap = {\n \"home\": H.HomeIcon, \"folder\": H.FolderIcon, \"chart\": H.ChartBarIcon,\n \"settings\": H.Cog6ToothIcon, \"chevron-right\": H.ChevronRightIcon,\n \"close\": H.XMarkIcon, \"plus\": H.PlusIcon, \"search\": H.MagnifyingGlassIcon,\n \"bell\": H.BellIcon, \"user\": H.UserIcon, \"check\": H.CheckIcon,\n \"warning\": H.ExclamationTriangleIcon, \"info\": H.InformationCircleIcon,\n \"error\": H.ExclamationCircleIcon, \"clock\": H.ClockIcon, \"calendar\": H.CalendarDaysIcon,\n \"bold\": H.BoldIcon, \"italic\": H.ItalicIcon, \"underline\": H.UnderlineIcon,\n \"strikethrough\": H.StrikethroughIcon, \"align-left\": H.Bars3BottomLeftIcon,\n \"align-center\": H.Bars3Icon, \"align-right\": H.Bars3BottomRightIcon,\n \"list\": H.ListBulletIcon, \"list-ordered\": H.NumberedListIcon,\n \"list-checks\": H.ClipboardDocumentCheckIcon, \"link\": H.LinkIcon,\n \"image\": H.PhotoIcon, \"table\": H.TableCellsIcon, \"code\": H.CodeBracketIcon,\n \"quote\": H.ChatBubbleBottomCenterTextIcon, \"minus\": H.MinusIcon,\n \"superscript\": H.H1Icon, \"subscript\": H.H2Icon,\n \"highlight\": H.PaintBrushIcon, \"type\": H.LanguageIcon,\n \"chevron-up\": H.ChevronUpIcon, \"chevron-down\": H.ChevronDownIcon, \"trash\": H.TrashIcon,\n \"undo\": H.ArrowUturnLeftIcon, \"redo\": H.ArrowUturnRightIcon,\n \"arrow-left\": H.ArrowLeftIcon, \"grip-vertical\": H.Bars2Icon,\n \"mic\": H.MicrophoneIcon, \"paperclip\": H.PaperClipIcon, \"send\": H.PaperAirplaneIcon,\n \"log-out\": H.ArrowRightStartOnRectangleIcon, \"edit\": H.PencilIcon, \"menu\": H.Bars3Icon,\n };\n return buildExtendedMap(H as unknown as Record<string, unknown>, aliases, { stripSuffix: \"Icon\" });\n}\n\nasync function loadTabler(): Promise<IconMap> {\n const T = await import(\"@tabler/icons-react\");\n const aliases: IconMap = {\n \"home\": T.IconHome, \"folder\": T.IconFolder, \"chart\": T.IconChartBar,\n \"settings\": T.IconSettings, \"chevron-right\": T.IconChevronRight,\n \"close\": T.IconX, \"plus\": T.IconPlus, \"search\": T.IconSearch,\n \"bell\": T.IconBell, \"user\": T.IconUser, \"check\": T.IconCheck,\n \"warning\": T.IconAlertTriangle, \"info\": T.IconInfoCircle,\n \"error\": T.IconAlertCircle, \"clock\": T.IconClock, \"calendar\": T.IconCalendar,\n \"bold\": T.IconBold, \"italic\": T.IconItalic, \"underline\": T.IconUnderline,\n \"strikethrough\": T.IconStrikethrough, \"align-left\": T.IconAlignLeft,\n \"align-center\": T.IconAlignCenter, \"align-right\": T.IconAlignRight,\n \"list\": T.IconList, \"list-ordered\": T.IconListNumbers, \"list-checks\": T.IconListCheck,\n \"link\": T.IconLink, \"image\": T.IconPhoto, \"table\": T.IconTable, \"code\": T.IconCode,\n \"quote\": T.IconQuote, \"minus\": T.IconMinus, \"superscript\": T.IconSuperscript,\n \"subscript\": T.IconSubscript, \"highlight\": T.IconHighlight, \"type\": T.IconTypography,\n \"chevron-up\": T.IconChevronUp, \"chevron-down\": T.IconChevronDown, \"trash\": T.IconTrash,\n \"undo\": T.IconArrowBackUp, \"redo\": T.IconArrowForwardUp,\n \"arrow-left\": T.IconArrowLeft, \"grip-vertical\": T.IconGripVertical,\n \"mic\": T.IconMicrophone, \"paperclip\": T.IconPaperclip, \"send\": T.IconSend,\n \"log-out\": T.IconLogout, \"edit\": T.IconPencil, \"menu\": T.IconMenu2,\n };\n return buildExtendedMap(T as unknown as Record<string, unknown>, aliases, { stripPrefix: \"Icon\" });\n}\n\nasync function loadFeather(): Promise<IconMap> {\n const F = await import(\"react-icons/fi\");\n const aliases: IconMap = {\n \"home\": F.FiHome, \"folder\": F.FiFolder, \"chart\": F.FiBarChart2, \"settings\": F.FiSettings,\n \"chevron-right\": F.FiChevronRight, \"close\": F.FiX, \"plus\": F.FiPlus, \"search\": F.FiSearch,\n \"bell\": F.FiBell, \"user\": F.FiUser, \"check\": F.FiCheck, \"warning\": F.FiAlertTriangle,\n \"info\": F.FiInfo, \"error\": F.FiAlertCircle, \"clock\": F.FiClock, \"calendar\": F.FiCalendar,\n \"bold\": F.FiBold, \"italic\": F.FiItalic, \"underline\": F.FiUnderline, \"strikethrough\": F.FiSlash,\n \"align-left\": F.FiAlignLeft, \"align-center\": F.FiAlignCenter, \"align-right\": F.FiAlignRight,\n \"list\": F.FiList, \"list-ordered\": F.FiList, \"list-checks\": F.FiCheckSquare,\n \"link\": F.FiLink, \"image\": F.FiImage, \"table\": F.FiGrid, \"code\": F.FiCode,\n \"quote\": F.FiMessageSquare, \"minus\": F.FiMinus, \"superscript\": F.FiChevronUp,\n \"subscript\": F.FiChevronDown, \"highlight\": F.FiEdit2, \"type\": F.FiType,\n \"chevron-up\": F.FiChevronUp, \"chevron-down\": F.FiChevronDown, \"trash\": F.FiTrash2,\n \"undo\": F.FiRotateCcw, \"redo\": F.FiRotateCw,\n \"arrow-left\": F.FiArrowLeft, \"grip-vertical\": F.FiMoreVertical,\n \"mic\": F.FiMic, \"paperclip\": F.FiPaperclip, \"send\": F.FiSend,\n \"log-out\": F.FiLogOut, \"edit\": F.FiEdit2, \"menu\": F.FiMenu,\n };\n return buildExtendedMap(F as unknown as Record<string, unknown>, aliases, { stripPrefix: \"Fi\" });\n}\n\nconst packLoaders: Record<IconPack, () => Promise<IconMap>> = {\n lucide: loadLucide,\n phosphor: loadPhosphor,\n heroicons: loadHeroicons,\n tabler: loadTabler,\n feather: loadFeather,\n};\n\n/* ── Context ──────────────────────────────────────────────────── */\n\ninterface IconContextValue {\n pack: IconPack;\n weight: number;\n}\n\nconst IconCtx = createContext<IconContextValue>({ pack: \"lucide\", weight: 1.5 });\n\nexport function IconProvider({ pack, weight, children }: { pack: IconPack; weight: number; children: ReactNode }) {\n return <IconCtx.Provider value={{ pack, weight }}>{children}</IconCtx.Provider>;\n}\n\n/* ── Hook ─────────────────────────────────────────────────────── */\n\nfunction useIconMap(pack: IconPack): IconMap | null {\n const [map, setMap] = useState<IconMap | null>(packCache.get(pack) ?? null);\n\n useEffect(() => {\n if (fullyLoaded.has(pack)) {\n const cached = packCache.get(pack);\n if (cached) setMap(cached);\n return;\n }\n\n let cancelled = false;\n packLoaders[pack]().then((loaded) => {\n packCache.set(pack, loaded);\n fullyLoaded.add(pack);\n if (!cancelled) setMap(loaded);\n });\n return () => { cancelled = true; };\n }, [pack]);\n\n return map;\n}\n\n/* ── Phosphor weight mapping ──────────────────────────────────── */\n\nfunction getPhosphorWeight(numericWeight: number): \"thin\" | \"light\" | \"regular\" | \"bold\" | \"fill\" | \"duotone\" {\n if (numericWeight <= 0.75) return \"thin\";\n if (numericWeight <= 1.25) return \"light\";\n if (numericWeight <= 1.75) return \"regular\";\n if (numericWeight <= 2.25) return \"bold\";\n return \"fill\";\n}\n\n/* ── Icon component ───────────────────────────────────────────── */\n\nexport function Icon({ name, size = 16, className }: { name: IconName; size?: number; className?: string }) {\n const { pack, weight } = useContext(IconCtx);\n const map = useIconMap(pack);\n if (!map) return null;\n const Comp = map[name];\n if (!Comp) return null;\n\n if (pack === \"phosphor\") {\n return <Comp size={size} weight={getPhosphorWeight(weight)} className={className} />;\n }\n\n if (pack === \"heroicons\") {\n return <Comp className={className} style={{ width: size, height: size, strokeWidth: weight }} />;\n }\n\n if (pack === \"tabler\") {\n return <Comp size={size} stroke={weight} className={className} />;\n }\n\n if (pack === \"feather\") {\n return <Comp size={size} className={className} strokeWidth={weight} />;\n }\n\n return <Comp size={size} strokeWidth={weight} className={className} />;\n}\n"]}
|
package/dist/icons.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
2
3
|
|
|
3
4
|
type CuratedIconName = "home" | "folder" | "chart" | "settings" | "chevron-right" | "close" | "plus" | "search" | "bell" | "user" | "check" | "warning" | "info" | "error" | "clock" | "calendar" | "bold" | "italic" | "underline" | "strikethrough" | "align-left" | "align-center" | "align-right" | "list" | "list-ordered" | "list-checks" | "link" | "image" | "table" | "code" | "quote" | "minus" | "superscript" | "subscript" | "highlight" | "type" | "chevron-up" | "chevron-down" | "trash" | "undo" | "redo" | "arrow-left" | "grip-vertical" | "mic" | "paperclip" | "send" | "log-out" | "edit" | "menu";
|
|
4
5
|
/**
|
|
@@ -7,10 +8,16 @@ type CuratedIconName = "home" | "folder" | "chart" | "settings" | "chevron-right
|
|
|
7
8
|
* active pack's native exports (e.g. "clipboard-copy" → Lucide's ClipboardCopy).
|
|
8
9
|
*/
|
|
9
10
|
type IconName = CuratedIconName | (string & {});
|
|
11
|
+
type IconPack = "lucide" | "phosphor" | "heroicons" | "tabler" | "feather";
|
|
12
|
+
declare function IconProvider({ pack, weight, children }: {
|
|
13
|
+
pack: IconPack;
|
|
14
|
+
weight: number;
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
17
|
declare function Icon({ name, size, className }: {
|
|
11
18
|
name: IconName;
|
|
12
19
|
size?: number;
|
|
13
20
|
className?: string;
|
|
14
21
|
}): react_jsx_runtime.JSX.Element | null;
|
|
15
22
|
|
|
16
|
-
export { Icon, type IconName };
|
|
23
|
+
export { Icon, type IconName, type IconPack, IconProvider };
|
package/dist/icons.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -956,6 +956,19 @@ interface NavbarProps {
|
|
|
956
956
|
}
|
|
957
957
|
declare const Navbar: react.ForwardRefExoticComponent<NavbarProps & react.RefAttributes<HTMLElement>>;
|
|
958
958
|
|
|
959
|
+
type NavItemType = "default" | "underline" | "minimal";
|
|
960
|
+
interface NavItemProps {
|
|
961
|
+
label: string;
|
|
962
|
+
icon?: IconName;
|
|
963
|
+
active?: boolean;
|
|
964
|
+
href?: string;
|
|
965
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
966
|
+
type?: NavItemType;
|
|
967
|
+
className?: string;
|
|
968
|
+
children?: ReactNode;
|
|
969
|
+
}
|
|
970
|
+
declare const NavItem: react.ForwardRefExoticComponent<NavItemProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
971
|
+
|
|
959
972
|
interface NavMenuItem {
|
|
960
973
|
label: string;
|
|
961
974
|
href?: string;
|
|
@@ -1308,4 +1321,4 @@ interface ActionPanelGroupProps {
|
|
|
1308
1321
|
}
|
|
1309
1322
|
declare const ActionPanelGroup: react.ForwardRefExoticComponent<ActionPanelGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
1310
1323
|
|
|
1311
|
-
export { Accordion, ActionPanel, ActionPanelGroup, Alert, AppShell, type AppShellContextValue, Avatar, Badge, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, Breadcrumbs, type BreakpointKey, BreakpointWidthProvider, BulkActionBar, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, ChatMessageList, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, DataGrid, DataList, DatePicker, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, EmptyState, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, KanbanBoard, Kbd, Label, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavMenu, type NavMenuItem, Navbar, type NavbarType, NotificationCenter, NumberInput, PageContainer, PageHeader, type PageHeaderProps, Pagination, PinInput, Popover, Progress, RadioGroup, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarSection, type SidebarType, Skeleton, SliderRange, Spinner, StackedList, StatsCard, Stepper, type Tab, Table, type TableDensity, type TableProps, Tabs, Tag, TagInput, type TagVariant, Textarea, TimePicker, Timeline, Toast, Toggle, Tooltip, Tour, TransferList, TreeView, VirtualizedList, useAppShell, useBreakpoint, useFormContext, useSidebar };
|
|
1324
|
+
export { Accordion, ActionPanel, ActionPanelGroup, Alert, AppShell, type AppShellContextValue, Avatar, Badge, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, Breadcrumbs, type BreakpointKey, BreakpointWidthProvider, BulkActionBar, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, ChatMessageList, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, DataGrid, DataList, DatePicker, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, EmptyState, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, KanbanBoard, Kbd, Label, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarType, NotificationCenter, NumberInput, PageContainer, PageHeader, type PageHeaderProps, Pagination, PinInput, Popover, Progress, RadioGroup, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarSection, type SidebarType, Skeleton, SliderRange, Spinner, StackedList, StatsCard, Stepper, type Tab, Table, type TableDensity, type TableProps, Tabs, Tag, TagInput, type TagVariant, Textarea, TimePicker, Timeline, Toast, Toggle, Tooltip, Tour, TransferList, TreeView, VirtualizedList, useAppShell, useBreakpoint, useFormContext, useSidebar };
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { cn, GLASS_BACKDROP, lockBodyScroll, unlockBodyScroll, GLASS_OVERLAY, GLASS_DROPDOWN, GLASS_SURFACE } from './chunk-5XIPPVH7.js';
|
|
2
|
-
import { Icon } from './chunk-
|
|
2
|
+
import { Icon } from './chunk-OGIR65SM.js';
|
|
3
3
|
import { __commonJS, __toESM } from './chunk-5WRI5ZAA.js';
|
|
4
4
|
import * as React6 from 'react';
|
|
5
|
-
import React6__default, { createContext, forwardRef, useState, useCallback, useRef,
|
|
5
|
+
import React6__default, { createContext, forwardRef, useState, useCallback, useRef, useContext, useId, useMemo, useEffect, createElement, Fragment as Fragment$1, useLayoutEffect, isValidElement, cloneElement, useDebugValue, memo, useReducer, useSyncExternalStore as useSyncExternalStore$1, useImperativeHandle } from 'react';
|
|
6
6
|
import ReactDOM, { createPortal, unstable_batchedUpdates, flushSync } from 'react-dom';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';
|
|
@@ -95166,6 +95166,58 @@ var AppShell = forwardRef(function AppShell2({
|
|
|
95166
95166
|
}
|
|
95167
95167
|
);
|
|
95168
95168
|
});
|
|
95169
|
+
var NavbarTypeContext = createContext("default");
|
|
95170
|
+
var NavItem = forwardRef(function NavItem2({ label, icon, active = false, href, onClick, type: typeProp, className, children }, ref) {
|
|
95171
|
+
const contextType = useContext(NavbarTypeContext);
|
|
95172
|
+
const type = typeProp ?? contextType;
|
|
95173
|
+
const baseClasses = cn(
|
|
95174
|
+
"inline-flex items-center gap-ds-2 cursor-pointer select-none",
|
|
95175
|
+
"transition-colors duration-[var(--ds-transition-speed)] ease-[var(--ds-transition-ease)]",
|
|
95176
|
+
"focus-visible:outline-none focus-visible:shadow-[var(--ds-shadow-focus)]",
|
|
95177
|
+
"text-[length:var(--ds-font-size-sm)]"
|
|
95178
|
+
);
|
|
95179
|
+
const typeClasses = getTypeClasses(type, active);
|
|
95180
|
+
return /* @__PURE__ */ jsxs(
|
|
95181
|
+
"a",
|
|
95182
|
+
{
|
|
95183
|
+
ref,
|
|
95184
|
+
href: href ?? "#",
|
|
95185
|
+
onClick,
|
|
95186
|
+
"aria-current": active ? "page" : void 0,
|
|
95187
|
+
className: cn(baseClasses, typeClasses, className),
|
|
95188
|
+
children: [
|
|
95189
|
+
icon && /* @__PURE__ */ jsx(Icon, { name: icon, size: 16 }),
|
|
95190
|
+
children ?? label,
|
|
95191
|
+
type === "underline" && active && /* @__PURE__ */ jsx(
|
|
95192
|
+
"span",
|
|
95193
|
+
{
|
|
95194
|
+
className: "absolute bottom-0 left-ds-1 right-ds-1 rounded-t-full bg-[var(--ds-accent-primary)]",
|
|
95195
|
+
style: { height: "2px" }
|
|
95196
|
+
}
|
|
95197
|
+
)
|
|
95198
|
+
]
|
|
95199
|
+
}
|
|
95200
|
+
);
|
|
95201
|
+
});
|
|
95202
|
+
function getTypeClasses(type, active) {
|
|
95203
|
+
switch (type) {
|
|
95204
|
+
case "underline":
|
|
95205
|
+
return cn(
|
|
95206
|
+
"px-ds-2 py-ds-2 relative",
|
|
95207
|
+
active ? "text-[var(--ds-text-primary)] font-[var(--ds-weight-heading)]" : "text-[var(--ds-text-muted)] hover:text-[var(--ds-text-primary)]"
|
|
95208
|
+
);
|
|
95209
|
+
case "minimal":
|
|
95210
|
+
return cn(
|
|
95211
|
+
"px-ds-2 py-ds-1",
|
|
95212
|
+
active ? "text-[var(--ds-accent-primary)] font-medium" : "text-[var(--ds-text-muted)] hover:text-[var(--ds-text-secondary)]"
|
|
95213
|
+
);
|
|
95214
|
+
default:
|
|
95215
|
+
return cn(
|
|
95216
|
+
"px-ds-2 py-ds-1 rounded-[var(--ds-radius-sm)]",
|
|
95217
|
+
active ? "bg-[color-mix(in_oklch,var(--ds-accent-primary)_10%,transparent)] text-[var(--ds-accent-primary)] font-[var(--ds-weight-heading)]" : "text-[var(--ds-text-secondary)] hover:text-[var(--ds-text-primary)] hover:bg-[var(--ds-bg-muted)]"
|
|
95218
|
+
);
|
|
95219
|
+
}
|
|
95220
|
+
}
|
|
95169
95221
|
function HamburgerButton({ onClick, className: cls }) {
|
|
95170
95222
|
return /* @__PURE__ */ jsx(
|
|
95171
95223
|
"button",
|
|
@@ -95231,7 +95283,7 @@ var Navbar = forwardRef(function Navbar2({
|
|
|
95231
95283
|
showHamburger && /* @__PURE__ */ jsx(HamburgerButton, { onClick: handleHamburger }),
|
|
95232
95284
|
logo && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: logo })
|
|
95233
95285
|
] }),
|
|
95234
|
-
navLinks && !hideNavLinks ? /* @__PURE__ */ jsx("nav", { className: "flex items-center gap-ds-1 min-w-0 overflow-x-clip justify-center", "data-navbar-type": type, children: navLinks }) : /* @__PURE__ */ jsx("div", {}),
|
|
95286
|
+
navLinks && !hideNavLinks ? /* @__PURE__ */ jsx(NavbarTypeContext.Provider, { value: type, children: /* @__PURE__ */ jsx("nav", { className: "flex items-center gap-ds-1 min-w-0 overflow-x-clip justify-center", "data-navbar-type": type, children: navLinks }) }) : /* @__PURE__ */ jsx("div", {}),
|
|
95235
95287
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-ds-4 justify-end", children: [
|
|
95236
95288
|
search && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: search }),
|
|
95237
95289
|
actions && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-ds-2 shrink-0", children: actions }),
|
|
@@ -95257,7 +95309,7 @@ var Navbar = forwardRef(function Navbar2({
|
|
|
95257
95309
|
showHamburger && /* @__PURE__ */ jsx(HamburgerButton, { onClick: handleHamburger }),
|
|
95258
95310
|
logo && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: logo }),
|
|
95259
95311
|
align === "right" && /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
95260
|
-
navLinks && !hideNavLinks && /* @__PURE__ */ jsx("nav", { className: cn("flex items-center gap-ds-1 min-w-0 overflow-x-clip", align === "left" && "flex-1"), "data-navbar-type": type, children: navLinks }),
|
|
95312
|
+
navLinks && !hideNavLinks && /* @__PURE__ */ jsx(NavbarTypeContext.Provider, { value: type, children: /* @__PURE__ */ jsx("nav", { className: cn("flex items-center gap-ds-1 min-w-0 overflow-x-clip", align === "left" && "flex-1"), "data-navbar-type": type, children: navLinks }) }),
|
|
95261
95313
|
(!navLinks || hideNavLinks) && /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
95262
95314
|
search && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: search }),
|
|
95263
95315
|
actions && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-ds-2 shrink-0", children: actions }),
|
|
@@ -99162,6 +99214,6 @@ var ActionPanelGroup = forwardRef(function ActionPanelGroup2({
|
|
|
99162
99214
|
*)
|
|
99163
99215
|
*/
|
|
99164
99216
|
|
|
99165
|
-
export { Accordion, ActionPanel, ActionPanelGroup, Alert, AppShell, Avatar, Badge, BottomNav, Breadcrumbs, BreakpointWidthProvider, BulkActionBar, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, ChatMessageList, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock2 as CodeBlock, Collapsible, ColorPicker, Combobox, CommandPalette, ContextMenu, DataGrid, DataList, DatePicker, Dialog, Divider2 as Divider, Dock, Drawer, Dropdown, DropdownMenu, EmptyState, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, KanbanBoard, Kbd, Label, MentionInput, MobileHeaderMenu, NavMenu, Navbar, NotificationCenter, NumberInput, PageContainer, PageHeader, Pagination, PinInput, Popover, Progress, RadioGroup, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, SidebarNav, Skeleton, SliderRange, Spinner, StackedList, StatsCard, Stepper, Table2 as Table, Tabs, Tag, TagInput, Textarea, TimePicker, Timeline, Toast, Toggle, Tooltip, Tour, TransferList, TreeView, VirtualizedList, useAppShell, useBreakpoint, useFormContext, useSidebar };
|
|
99217
|
+
export { Accordion, ActionPanel, ActionPanelGroup, Alert, AppShell, Avatar, Badge, BottomNav, Breadcrumbs, BreakpointWidthProvider, BulkActionBar, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, ChatMessageList, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock2 as CodeBlock, Collapsible, ColorPicker, Combobox, CommandPalette, ContextMenu, DataGrid, DataList, DatePicker, Dialog, Divider2 as Divider, Dock, Drawer, Dropdown, DropdownMenu, EmptyState, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, KanbanBoard, Kbd, Label, MentionInput, MobileHeaderMenu, NavItem, NavMenu, Navbar, NotificationCenter, NumberInput, PageContainer, PageHeader, Pagination, PinInput, Popover, Progress, RadioGroup, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, SidebarNav, Skeleton, SliderRange, Spinner, StackedList, StatsCard, Stepper, Table2 as Table, Tabs, Tag, TagInput, Textarea, TimePicker, Timeline, Toast, Toggle, Tooltip, Tour, TransferList, TreeView, VirtualizedList, useAppShell, useBreakpoint, useFormContext, useSidebar };
|
|
99166
99218
|
//# sourceMappingURL=index.js.map
|
|
99167
99219
|
//# sourceMappingURL=index.js.map
|