@fayz-ai/ui 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{chunk-OTUH4K4B.js → chunk-2GDQUARM.js} +214 -4
  2. package/dist/chunk-2GDQUARM.js.map +1 -0
  3. package/dist/{chunk-W5O2X277.js → chunk-A7O7KGNL.js} +8 -4
  4. package/dist/chunk-A7O7KGNL.js.map +1 -0
  5. package/dist/{chunk-FY7OZNKU.js → chunk-BVF2KPTT.js} +7 -7
  6. package/dist/{chunk-FY7OZNKU.js.map → chunk-BVF2KPTT.js.map} +1 -1
  7. package/dist/{chunk-MZZMZYSE.js → chunk-ID2HQK2Q.js} +328 -51
  8. package/dist/chunk-ID2HQK2Q.js.map +1 -0
  9. package/dist/{chunk-ODY3GZ3Y.cjs → chunk-MI6FOB4O.cjs} +7 -7
  10. package/dist/{chunk-ODY3GZ3Y.cjs.map → chunk-MI6FOB4O.cjs.map} +1 -1
  11. package/dist/{chunk-7PTRAWHO.cjs → chunk-SVVKUMSL.cjs} +217 -6
  12. package/dist/chunk-SVVKUMSL.cjs.map +1 -0
  13. package/dist/{chunk-NWPMNPGR.cjs → chunk-WF3STNDX.cjs} +38 -34
  14. package/dist/chunk-WF3STNDX.cjs.map +1 -0
  15. package/dist/{chunk-XAOGMWLC.cjs → chunk-XIRJGVDK.cjs} +325 -48
  16. package/dist/chunk-XIRJGVDK.cjs.map +1 -0
  17. package/dist/dashboard/OnboardingWidget.d.ts.map +1 -1
  18. package/dist/dashboard/index.cjs +26 -26
  19. package/dist/dashboard/index.js +2 -2
  20. package/dist/index.cjs +125 -121
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +4 -4
  24. package/dist/layout/AppShell.d.ts +41 -1
  25. package/dist/layout/AppShell.d.ts.map +1 -1
  26. package/dist/layout/ModulePage.d.ts +9 -6
  27. package/dist/layout/ModulePage.d.ts.map +1 -1
  28. package/dist/layout/Sidebar.d.ts +20 -1
  29. package/dist/layout/Sidebar.d.ts.map +1 -1
  30. package/dist/layout/Topbar.d.ts +13 -1
  31. package/dist/layout/Topbar.d.ts.map +1 -1
  32. package/dist/layout/index.cjs +19 -19
  33. package/dist/layout/index.js +1 -1
  34. package/dist/primitives/SearchCombobox.d.ts +38 -0
  35. package/dist/primitives/SearchCombobox.d.ts.map +1 -0
  36. package/dist/primitives/data-table.d.ts.map +1 -1
  37. package/dist/primitives/index.cjs +80 -76
  38. package/dist/primitives/index.d.ts +1 -0
  39. package/dist/primitives/index.d.ts.map +1 -1
  40. package/dist/primitives/index.js +2 -2
  41. package/package.json +3 -3
  42. package/src/dashboard/OnboardingWidget.tsx +10 -1
  43. package/src/index.ts +2 -0
  44. package/src/layout/AppShell.tsx +255 -7
  45. package/src/layout/ModulePage.tsx +32 -3
  46. package/src/layout/Sidebar.tsx +132 -35
  47. package/src/layout/Topbar.tsx +51 -4
  48. package/src/primitives/SearchCombobox.tsx +216 -0
  49. package/src/primitives/data-table.tsx +10 -1
  50. package/src/primitives/index.ts +1 -0
  51. package/src/styles.css +34 -0
  52. package/dist/chunk-7PTRAWHO.cjs.map +0 -1
  53. package/dist/chunk-MZZMZYSE.js.map +0 -1
  54. package/dist/chunk-NWPMNPGR.cjs.map +0 -1
  55. package/dist/chunk-OTUH4K4B.js.map +0 -1
  56. package/dist/chunk-W5O2X277.js.map +0 -1
  57. package/dist/chunk-XAOGMWLC.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, renderMarkdown, toast } from './chunk-OTUH4K4B.js';
2
- export { AppShell, BackStyleProvider, ContentSplit, ContentSplitTrigger, ICON_MAP, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTransition, Sidebar, SubpageHeader, Topbar, useBackStyle, useLayoutStore, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition } from './chunk-MZZMZYSE.js';
1
+ export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, renderMarkdown, toast } from './chunk-2GDQUARM.js';
2
+ export { AppShell, BackStyleProvider, ContentSplit, ContentSplitTrigger, ICON_MAP, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTransition, Sidebar, SubpageHeader, Topbar, useBackStyle, useLayoutStore, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition } from './chunk-ID2HQK2Q.js';
3
3
  export { SaveBar, SaveBarProvider, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, useBackHandler, useSaveBar } from './chunk-75EFDLST.js';
4
4
  export { ThemeProvider, createFayzTheme, createTheme, darkTheme, fayzThemePresets, lightTheme, useTheme, useThemeStore } from './chunk-O5F4LLSL.js';
5
- export { ChartWidget, DEFAULT_RANGE_OPTIONS, DashboardCanvas, DashboardCustomizeMenu, DashboardGrid, DashboardNavigateProvider, DashboardRangeControl, DashboardRangeProvider, GoldCard, KpiCard, OnboardingWidget, TableWidget, WidgetGrid, defineChartWidget, defineCustomWidget, defineKpiWidget, defineOnboardingWidget, defineTableWidget, formatKpiValue, renderIcon, resolveDashboardLayout, useDashboardNavigate, useDashboardPreferences, useDashboardRange } from './chunk-W5O2X277.js';
6
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl } from './chunk-FY7OZNKU.js';
5
+ export { ChartWidget, DEFAULT_RANGE_OPTIONS, DashboardCanvas, DashboardCustomizeMenu, DashboardGrid, DashboardNavigateProvider, DashboardRangeControl, DashboardRangeProvider, GoldCard, KpiCard, OnboardingWidget, TableWidget, WidgetGrid, defineChartWidget, defineCustomWidget, defineKpiWidget, defineOnboardingWidget, defineTableWidget, formatKpiValue, renderIcon, resolveDashboardLayout, useDashboardNavigate, useDashboardPreferences, useDashboardRange } from './chunk-A7O7KGNL.js';
6
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl } from './chunk-BVF2KPTT.js';
7
7
  import { cn } from './chunk-YRVE4FOD.js';
8
8
  export { Button, buttonVariants, cn } from './chunk-YRVE4FOD.js';
9
9
  import './chunk-IWBXYV4U.js';
@@ -43,6 +43,13 @@ export interface AppShellProps {
43
43
  onProfile?: () => void;
44
44
  onSettings?: () => void;
45
45
  onBilling?: () => void;
46
+ /** Current-plan pill shown next to the user in the topbar menu. */
47
+ userPlan?: {
48
+ label: string;
49
+ paid: boolean;
50
+ };
51
+ /** i18n label for the billing/subscription user-menu item. */
52
+ billingLabel?: string;
46
53
  pageTitle?: string;
47
54
  currentPath?: string;
48
55
  userMenuExtras?: {
@@ -66,6 +73,39 @@ export interface AppShellProps {
66
73
  notificationSlot?: React.ReactNode;
67
74
  /** Unread notification count */
68
75
  unreadCount?: number;
76
+ /** Optional headings above the sidebar nav sections (contextual sidebars). */
77
+ sidebarSectionLabels?: {
78
+ main?: string;
79
+ secondary?: string;
80
+ settings?: string;
81
+ };
82
+ /** Identity of the current sidebar context — changing it animates the rail
83
+ * swap as a push (new nav in, previous nav out). */
84
+ sidebarNavKey?: string;
85
+ /** Push direction for a `sidebarNavKey` change. Default 'forward'. */
86
+ sidebarNavDirection?: 'forward' | 'back';
87
+ /**
88
+ * Full-height column pinned to the right (the assistant dock, a tasks
89
+ * panel). Rendered as a flex SIBLING of the layout, so the app narrows to
90
+ * make room instead of being covered — the difference between a split view
91
+ * and a modal that happens to be tall.
92
+ *
93
+ * Falsy renders nothing and costs nothing: no wrapper, no divider, the
94
+ * layout element stands alone exactly as before.
95
+ */
96
+ rightRail?: React.ReactNode;
97
+ /** Whether the rail is showing. Separate from `rightRail` so the column can
98
+ * animate its width instead of snapping when it closes. */
99
+ rightRailOpen?: boolean;
100
+ /** Starting width in px. Ignored once the user drags. Default 380. */
101
+ defaultRightRailWidth?: number;
102
+ /** Fired after every drag so the host can persist the preference. */
103
+ onRightRailWidthChange?: (width: number) => void;
104
+ /** Drag bounds in px. Defaults 300 / 720. */
105
+ rightRailMinWidth?: number;
106
+ rightRailMaxWidth?: number;
107
+ /** Accessible name for the drag handle. */
108
+ rightRailResizeLabel?: string;
69
109
  }
70
- export declare function AppShell({ variant, contentFrame, navigation, logo, user, children, onNavigate, onSignOut, onProfile, onSettings, onBilling, pageTitle, currentPath, userMenuExtras, orgSwitcher, topbarStart, topbarEnd, sidebarTopContent, sidebarFooterContent, bottomNav, onBottomNavAction, mobileHeader, userMenuSlot, notificationSlot, unreadCount, }: AppShellProps): React.JSX.Element | null;
110
+ export declare function AppShell({ variant, contentFrame, navigation, logo, user, children, onNavigate, onSignOut, onProfile, onSettings, onBilling, userPlan, billingLabel, pageTitle, currentPath, userMenuExtras, orgSwitcher, topbarStart, topbarEnd, sidebarTopContent, sidebarFooterContent, bottomNav, onBottomNavAction, mobileHeader, userMenuSlot, notificationSlot, unreadCount, sidebarSectionLabels, sidebarNavKey, sidebarNavDirection, rightRail, rightRailOpen, defaultRightRailWidth, onRightRailWidthChange, rightRailMinWidth, rightRailMaxWidth, rightRailResizeLabel, }: AppShellProps): React.JSX.Element | null;
71
111
  //# sourceMappingURL=AppShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/layout/AppShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/layout/AppShell.tsx"],"names":[],"mappings":"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"}
@@ -8,12 +8,15 @@ export interface ModuleNavItem {
8
8
  icon?: string;
9
9
  active?: boolean;
10
10
  onClick?: () => void;
11
- children?: {
12
- id: string;
13
- label: string;
14
- active?: boolean;
15
- onClick?: () => void;
16
- }[];
11
+ /** Feature id for the access gate. When set, `useModuleNavAccess` (in
12
+ * @fayz-ai/saas) resolves this link's role (hide) and plan (Crown) state. */
13
+ feature?: string;
14
+ /** Freemium discovery: the user's role allows this link but their plan does
15
+ * not entitle `feature`. Renders a small Crown badge (same vocabulary as the
16
+ * Sidebar top-level nav); the click still navigates and the gated CONTENT
17
+ * shows the UpgradePrompt. Typically set by `useModuleNavAccess`. */
18
+ premium?: boolean;
19
+ children?: ModuleNavItem[];
17
20
  }
18
21
  export interface ModulePageProps {
19
22
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ModulePage.d.ts","sourceRoot":"","sources":["../../src/layout/ModulePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAkB9B,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAI5E;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,EAAE,CAAA;CACnF;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,aAAa,EAAE,CAAA;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iFAAiF;IACjF,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B;+DAC2D;IAC3D,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B;8FAC0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC/B;AAQD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAI9C,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAEnH;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAElD;AAoJD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAA;AAI5D,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAE3G;AAED,wBAAgB,YAAY,IAAI,eAAe,CAE9C;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,kBAAkB,qBA0EnH;AAuDD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,qBA2DxK"}
1
+ {"version":3,"file":"ModulePage.d.ts","sourceRoot":"","sources":["../../src/layout/ModulePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAkB9B,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAI5E;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;kFAC8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;0EAGsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B;AAkBD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,aAAa,EAAE,CAAA;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iFAAiF;IACjF,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B;+DAC2D;IAC3D,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B;8FAC0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC/B;AAQD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAI9C,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAEnH;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAElD;AAwJD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAA;AAI5D,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAE3G;AAED,wBAAgB,YAAY,IAAI,eAAe,CAE9C;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,kBAAkB,qBA0EnH;AAwDD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,qBA2DxK"}
@@ -11,6 +11,10 @@ export interface NavigationItem {
11
11
  feature: string;
12
12
  action: 'read' | 'create' | 'edit' | 'delete';
13
13
  };
14
+ /** Freemium discovery: the user's role allows this item, but their plan does
15
+ * not entitle the feature. The item stays visible with a small Crown badge
16
+ * and, on click, leads to the plan's UpgradePrompt. */
17
+ premium?: boolean;
14
18
  children?: NavigationItem[];
15
19
  }
16
20
  export interface SidebarUser {
@@ -46,8 +50,23 @@ export interface SidebarProps {
46
50
  notificationSlot?: React.ReactNode;
47
51
  /** Unread notification count for the bell indicator */
48
52
  unreadCount?: number;
53
+ /** Optional headings above each nav section. Used by contextual sidebars
54
+ * (e.g. /settings swaps the rail for "Settings links" + "Plugins"); the
55
+ * normal app rail leaves them undefined and renders no headings. */
56
+ sectionLabels?: {
57
+ main?: string;
58
+ secondary?: string;
59
+ settings?: string;
60
+ };
61
+ /** Identity of the current rail context. When it changes, the rail animates
62
+ * as a push: the new nav slides in while the previous one slides out.
63
+ * Leave undefined for a static rail (no swap animation). */
64
+ navKey?: string;
65
+ /** Push direction for a `navKey` change. 'forward' pulls the new rail in
66
+ * from the right (drilling in), 'back' from the left (returning). */
67
+ navDirection?: 'forward' | 'back';
49
68
  }
50
69
  declare const ICON_MAP: Record<string, LucideIcon>;
51
70
  export { ICON_MAP };
52
- export declare function Sidebar({ navigation, logo, collapsed, onToggle, onNavigate, currentPath: currentPathProp, user: _user, orgSwitcher, topContent, footerContent, borderless, userMenuSlot, notificationSlot, unreadCount, }: SidebarProps): React.JSX.Element;
71
+ export declare function Sidebar({ navigation, logo, collapsed, onToggle, onNavigate, currentPath: currentPathProp, user: _user, orgSwitcher, topContent, footerContent, borderless, userMenuSlot, notificationSlot, unreadCount, sectionLabels, navKey, navDirection, }: SidebarProps): React.JSX.Element;
53
72
  //# sourceMappingURL=Sidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/layout/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAyFL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAIrB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;IAC/E,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,EAAE,CAAA;IACjF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAQxC,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AAiLnB,wBAAgB,OAAO,CAAC,EACtB,UAAU,EACV,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EAAE,eAAqB,EAClC,IAAI,EAAE,KAAK,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAe,GAChB,EAAE,YAAY,qBAkKd"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/layout/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,9 @@ export interface NavigationItem {
12
12
  feature: string;
13
13
  action: 'read' | 'create' | 'edit' | 'delete';
14
14
  };
15
+ /** Freemium discovery: role-allowed but not entitled by the current plan.
16
+ * Renders a small Crown badge; clicking leads to the plan's UpgradePrompt. */
17
+ premium?: boolean;
15
18
  }
16
19
  export interface TopbarProps {
17
20
  navigation: NavigationItem[];
@@ -22,6 +25,8 @@ export interface TopbarProps {
22
25
  email: string;
23
26
  };
24
27
  onMenuClick?: () => void;
28
+ /** Workspace/org switcher rendered right after the logo (desktop). */
29
+ orgSwitcher?: React.ReactNode;
25
30
  leftContent?: React.ReactNode;
26
31
  rightContent?: React.ReactNode;
27
32
  currentPath?: string;
@@ -31,6 +36,13 @@ export interface TopbarProps {
31
36
  onProfile?: () => void;
32
37
  onSettings?: () => void;
33
38
  onBilling?: () => void;
39
+ /** Current-plan pill shown next to the user in the dropdown header. */
40
+ userPlan?: {
41
+ label: string;
42
+ paid: boolean;
43
+ };
44
+ /** i18n label for the billing/subscription menu item (host owns translation). */
45
+ billingLabel?: string;
34
46
  userMenuExtras?: {
35
47
  label: string;
36
48
  icon?: React.ReactNode;
@@ -38,5 +50,5 @@ export interface TopbarProps {
38
50
  }[];
39
51
  }
40
52
  export declare const ICON_MAP: Record<string, LucideIcon>;
41
- export declare function Topbar({ navigation, logo, user, onMenuClick, leftContent, rightContent, currentPath, onNavigate, searchPlaceholder, onSignOut, onProfile, onSettings, onBilling, userMenuExtras, }: TopbarProps): React.JSX.Element;
53
+ export declare function Topbar({ navigation, logo, user, onMenuClick, orgSwitcher, leftContent, rightContent, currentPath, onNavigate, searchPlaceholder, onSignOut, onProfile, onSettings, onBilling, userPlan, billingLabel, userMenuExtras, }: TopbarProps): React.JSX.Element;
42
54
  //# sourceMappingURL=Topbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["../../src/layout/Topbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAsGL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAIrB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;CAChF;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,EAAE,CAAA;CAClF;AAmED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAS/C,CAAA;AAoED,wBAAgB,MAAM,CAAC,EACrB,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAiB,EACjB,UAAU,EACV,iBAA+B,EAC/B,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,GACf,EAAE,WAAW,qBAwHb"}
1
+ {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["../../src/layout/Topbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EA0GL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAIrB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;IAC/E;mFAC+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;IAC3C,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,EAAE,CAAA;CAClF;AA0FD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAS/C,CAAA;AAoED,wBAAgB,MAAM,CAAC,EACrB,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAiB,EACjB,UAAU,EACV,iBAA+B,EAC/B,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,EAAE,WAAW,qBAgIb"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXAOGMWLC_cjs = require('../chunk-XAOGMWLC.cjs');
3
+ var chunkXIRJGVDK_cjs = require('../chunk-XIRJGVDK.cjs');
4
4
  var chunkOW73RZOU_cjs = require('../chunk-OW73RZOU.cjs');
5
5
  require('../chunk-H6OULCHF.cjs');
6
6
 
@@ -8,75 +8,75 @@ require('../chunk-H6OULCHF.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "AppShell", {
10
10
  enumerable: true,
11
- get: function () { return chunkXAOGMWLC_cjs.AppShell; }
11
+ get: function () { return chunkXIRJGVDK_cjs.AppShell; }
12
12
  });
13
13
  Object.defineProperty(exports, "BackStyleProvider", {
14
14
  enumerable: true,
15
- get: function () { return chunkXAOGMWLC_cjs.BackStyleProvider; }
15
+ get: function () { return chunkXIRJGVDK_cjs.BackStyleProvider; }
16
16
  });
17
17
  Object.defineProperty(exports, "ContentSplit", {
18
18
  enumerable: true,
19
- get: function () { return chunkXAOGMWLC_cjs.ContentSplit; }
19
+ get: function () { return chunkXIRJGVDK_cjs.ContentSplit; }
20
20
  });
21
21
  Object.defineProperty(exports, "ContentSplitTrigger", {
22
22
  enumerable: true,
23
- get: function () { return chunkXAOGMWLC_cjs.ContentSplitTrigger; }
23
+ get: function () { return chunkXIRJGVDK_cjs.ContentSplitTrigger; }
24
24
  });
25
25
  Object.defineProperty(exports, "ICON_MAP", {
26
26
  enumerable: true,
27
- get: function () { return chunkXAOGMWLC_cjs.ICON_MAP; }
27
+ get: function () { return chunkXIRJGVDK_cjs.ICON_MAP; }
28
28
  });
29
29
  Object.defineProperty(exports, "ModuleLayoutProvider", {
30
30
  enumerable: true,
31
- get: function () { return chunkXAOGMWLC_cjs.ModuleLayoutProvider; }
31
+ get: function () { return chunkXIRJGVDK_cjs.ModuleLayoutProvider; }
32
32
  });
33
33
  Object.defineProperty(exports, "ModulePage", {
34
34
  enumerable: true,
35
- get: function () { return chunkXAOGMWLC_cjs.ModulePage; }
35
+ get: function () { return chunkXIRJGVDK_cjs.ModulePage; }
36
36
  });
37
37
  Object.defineProperty(exports, "NavTransitionProvider", {
38
38
  enumerable: true,
39
- get: function () { return chunkXAOGMWLC_cjs.NavTransitionProvider; }
39
+ get: function () { return chunkXIRJGVDK_cjs.NavTransitionProvider; }
40
40
  });
41
41
  Object.defineProperty(exports, "PageHeaderActions", {
42
42
  enumerable: true,
43
- get: function () { return chunkXAOGMWLC_cjs.PageHeaderActions; }
43
+ get: function () { return chunkXIRJGVDK_cjs.PageHeaderActions; }
44
44
  });
45
45
  Object.defineProperty(exports, "PageTransition", {
46
46
  enumerable: true,
47
- get: function () { return chunkXAOGMWLC_cjs.PageTransition; }
47
+ get: function () { return chunkXIRJGVDK_cjs.PageTransition; }
48
48
  });
49
49
  Object.defineProperty(exports, "Sidebar", {
50
50
  enumerable: true,
51
- get: function () { return chunkXAOGMWLC_cjs.Sidebar; }
51
+ get: function () { return chunkXIRJGVDK_cjs.Sidebar; }
52
52
  });
53
53
  Object.defineProperty(exports, "SubpageHeader", {
54
54
  enumerable: true,
55
- get: function () { return chunkXAOGMWLC_cjs.SubpageHeader; }
55
+ get: function () { return chunkXIRJGVDK_cjs.SubpageHeader; }
56
56
  });
57
57
  Object.defineProperty(exports, "Topbar", {
58
58
  enumerable: true,
59
- get: function () { return chunkXAOGMWLC_cjs.Topbar; }
59
+ get: function () { return chunkXIRJGVDK_cjs.Topbar; }
60
60
  });
61
61
  Object.defineProperty(exports, "useBackStyle", {
62
62
  enumerable: true,
63
- get: function () { return chunkXAOGMWLC_cjs.useBackStyle; }
63
+ get: function () { return chunkXIRJGVDK_cjs.useBackStyle; }
64
64
  });
65
65
  Object.defineProperty(exports, "useModuleHeaderActionsSlot", {
66
66
  enumerable: true,
67
- get: function () { return chunkXAOGMWLC_cjs.useModuleHeaderActionsSlot; }
67
+ get: function () { return chunkXIRJGVDK_cjs.useModuleHeaderActionsSlot; }
68
68
  });
69
69
  Object.defineProperty(exports, "useModuleHeaderSlot", {
70
70
  enumerable: true,
71
- get: function () { return chunkXAOGMWLC_cjs.useModuleHeaderSlot; }
71
+ get: function () { return chunkXIRJGVDK_cjs.useModuleHeaderSlot; }
72
72
  });
73
73
  Object.defineProperty(exports, "useModuleLayout", {
74
74
  enumerable: true,
75
- get: function () { return chunkXAOGMWLC_cjs.useModuleLayout; }
75
+ get: function () { return chunkXIRJGVDK_cjs.useModuleLayout; }
76
76
  });
77
77
  Object.defineProperty(exports, "useNavTransition", {
78
78
  enumerable: true,
79
- get: function () { return chunkXAOGMWLC_cjs.useNavTransition; }
79
+ get: function () { return chunkXIRJGVDK_cjs.useNavTransition; }
80
80
  });
81
81
  Object.defineProperty(exports, "SaveBar", {
82
82
  enumerable: true,
@@ -1,4 +1,4 @@
1
- export { AppShell, BackStyleProvider, ContentSplit, ContentSplitTrigger, ICON_MAP, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTransition, Sidebar, SubpageHeader, Topbar, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition } from '../chunk-MZZMZYSE.js';
1
+ export { AppShell, BackStyleProvider, ContentSplit, ContentSplitTrigger, ICON_MAP, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTransition, Sidebar, SubpageHeader, Topbar, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition } from '../chunk-ID2HQK2Q.js';
2
2
  export { SaveBar, SaveBarProvider, useBackHandler, useSaveBar } from '../chunk-75EFDLST.js';
3
3
  import '../chunk-YRVE4FOD.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ export interface ComboboxOption {
3
+ id: string;
4
+ label: string;
5
+ subtitle?: string;
6
+ price?: number;
7
+ data?: Record<string, unknown>;
8
+ }
9
+ interface SearchComboboxProps {
10
+ value: string;
11
+ onChange: (value: string) => void;
12
+ onSelect: (option: ComboboxOption) => void;
13
+ options: ComboboxOption[];
14
+ placeholder?: string;
15
+ autoFocus?: boolean;
16
+ onBlurEmpty?: () => void;
17
+ renderRight?: (option: ComboboxOption) => React.ReactNode;
18
+ /** Show a "+ Create ..." option when search has no exact match */
19
+ allowCreate?: boolean;
20
+ /** Called when user clicks the create option. Receives the current search text. */
21
+ onCreateNew?: (searchText: string) => void;
22
+ /** Label for the create option (default: 'Create') */
23
+ createLabel?: string;
24
+ className?: string;
25
+ /** Minimal style — no border/bg, just underline on focus. For inline use. */
26
+ minimal?: boolean;
27
+ /** Inline label shown when collapsed. Click reveals the search input. */
28
+ inlineLabel?: string;
29
+ /** Icon for the inline label: 'search' (default) or 'plus' (for "add" actions) */
30
+ inlineIcon?: 'search' | 'plus';
31
+ /** Show a loading skeleton in the dropdown while results are being fetched */
32
+ loading?: boolean;
33
+ /** Called when the input gains focus */
34
+ onFocus?: () => void;
35
+ }
36
+ export declare function SearchCombobox({ value, onChange, onSelect, options, placeholder, autoFocus, onBlurEmpty, renderRight, allowCreate, onCreateNew, createLabel, className, minimal, inlineLabel, inlineIcon, loading, onFocus: onFocusProp, }: SearchComboboxProps): React.JSX.Element;
37
+ export {};
38
+ //# sourceMappingURL=SearchCombobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchCombobox.d.ts","sourceRoot":"","sources":["../../src/primitives/SearchCombobox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAQvE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAA;IACzD,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mFAAmF;IACnF,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EACvE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAsB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAqB,EACrH,OAAO,EAAE,OAAO,EAAE,WAAW,GAC9B,EAAE,mBAAmB,qBAuKrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/primitives/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,uBAAuB,CAAA;AAK9B,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM;IACpC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAA;IACnC,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IACjC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAChC,OAAO,EACP,IAAI,EACJ,OAAe,EACf,YAAgB,EAChB,YAA4B,EAC5B,UAAU,EACV,OAAgB,EAChB,OAAe,GAChB,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,qBAiH/B;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/primitives/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,uBAAuB,CAAA;AAK9B,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM;IACpC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAA;IACnC,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IACjC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAChC,OAAO,EACP,IAAI,EACJ,OAAe,EACf,YAAgB,EAChB,YAA4B,EAC5B,UAAU,EACV,OAAgB,EAChB,OAAe,GAChB,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,qBA0H/B;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAA"}