@fayz-ai/ui 0.12.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/{ChartWidgetInner-GDE5PBTR.js → ChartWidgetInner-IOLIUYTB.js} +21 -8
  2. package/dist/ChartWidgetInner-IOLIUYTB.js.map +1 -0
  3. package/dist/analytics/AnalyticsCard.d.ts.map +1 -1
  4. package/dist/analytics/AnalyticsControls.d.ts +5 -1
  5. package/dist/analytics/AnalyticsControls.d.ts.map +1 -1
  6. package/dist/chunk-3OVZ5JJQ.js +540 -0
  7. package/dist/chunk-3OVZ5JJQ.js.map +1 -0
  8. package/dist/{chunk-22EVFMS3.js → chunk-4GK6IHOI.js} +17 -3
  9. package/dist/chunk-4GK6IHOI.js.map +1 -0
  10. package/dist/{chunk-7BMXN7MP.js → chunk-5KMAEQA3.js} +25 -24
  11. package/dist/chunk-5KMAEQA3.js.map +1 -0
  12. package/dist/chunk-AASANYXN.js +601 -0
  13. package/dist/chunk-AASANYXN.js.map +1 -0
  14. package/dist/chunk-FFJ2C5YH.js +92 -0
  15. package/dist/chunk-FFJ2C5YH.js.map +1 -0
  16. package/dist/chunk-J7F3Z52K.js +152 -0
  17. package/dist/chunk-J7F3Z52K.js.map +1 -0
  18. package/dist/{chunk-JGJNRNQW.js → chunk-KD2V3TAX.js} +290 -67
  19. package/dist/chunk-KD2V3TAX.js.map +1 -0
  20. package/dist/{chunk-ZDRHCKRK.js → chunk-NA3GE4H3.js} +746 -533
  21. package/dist/chunk-NA3GE4H3.js.map +1 -0
  22. package/dist/{chunk-7BHG3XGJ.js → chunk-SLWTKHNY.js} +296 -269
  23. package/dist/chunk-SLWTKHNY.js.map +1 -0
  24. package/dist/dashboard/ChartWidgetInner.d.ts.map +1 -1
  25. package/dist/dashboard/DashboardCanvas.d.ts.map +1 -1
  26. package/dist/dashboard/DashboardCustomizeMenu.d.ts.map +1 -1
  27. package/dist/dashboard/DashboardRange.d.ts +8 -2
  28. package/dist/dashboard/DashboardRange.d.ts.map +1 -1
  29. package/dist/dashboard/index.js +4 -4
  30. package/dist/icons.d.ts.map +1 -1
  31. package/dist/icons.js +1 -1
  32. package/dist/index.d.ts +4 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +86 -99
  35. package/dist/index.js.map +1 -1
  36. package/dist/layout/AppShell.d.ts +8 -2
  37. package/dist/layout/AppShell.d.ts.map +1 -1
  38. package/dist/layout/ModulePage.d.ts +24 -1
  39. package/dist/layout/ModulePage.d.ts.map +1 -1
  40. package/dist/layout/Sidebar.d.ts +27 -4
  41. package/dist/layout/Sidebar.d.ts.map +1 -1
  42. package/dist/layout/Topbar.d.ts +10 -3
  43. package/dist/layout/Topbar.d.ts.map +1 -1
  44. package/dist/layout/index.d.ts +2 -1
  45. package/dist/layout/index.d.ts.map +1 -1
  46. package/dist/layout/index.js +4 -4
  47. package/dist/layout/rail-flyout.d.ts +10 -0
  48. package/dist/layout/rail-flyout.d.ts.map +1 -1
  49. package/dist/primitives/SearchCombobox.d.ts +9 -1
  50. package/dist/primitives/SearchCombobox.d.ts.map +1 -1
  51. package/dist/primitives/bulk-action-bar.d.ts +3 -1
  52. package/dist/primitives/bulk-action-bar.d.ts.map +1 -1
  53. package/dist/primitives/color-palette.d.ts +24 -0
  54. package/dist/primitives/color-palette.d.ts.map +1 -0
  55. package/dist/primitives/header-tabs.d.ts +47 -7
  56. package/dist/primitives/header-tabs.d.ts.map +1 -1
  57. package/dist/primitives/image-drop.d.ts +28 -0
  58. package/dist/primitives/image-drop.d.ts.map +1 -0
  59. package/dist/primitives/index.d.ts +9 -3
  60. package/dist/primitives/index.d.ts.map +1 -1
  61. package/dist/primitives/index.js +6 -3
  62. package/dist/primitives/list-view.d.ts +9 -1
  63. package/dist/primitives/list-view.d.ts.map +1 -1
  64. package/dist/primitives/option-select.d.ts +46 -0
  65. package/dist/primitives/option-select.d.ts.map +1 -0
  66. package/dist/primitives/page-toolbar.d.ts +80 -0
  67. package/dist/primitives/page-toolbar.d.ts.map +1 -0
  68. package/dist/primitives/search-select.d.ts +3 -1
  69. package/dist/primitives/search-select.d.ts.map +1 -1
  70. package/dist/primitives/sheet.d.ts.map +1 -1
  71. package/dist/primitives/step-progress.d.ts +20 -0
  72. package/dist/primitives/step-progress.d.ts.map +1 -0
  73. package/dist/primitives/tabs.d.ts.map +1 -1
  74. package/dist/primitives/use-row-selection.d.ts +50 -0
  75. package/dist/primitives/use-row-selection.d.ts.map +1 -0
  76. package/dist/stores/index.d.ts +1 -1
  77. package/dist/stores/index.d.ts.map +1 -1
  78. package/dist/stores/page-header.store.d.ts +26 -2
  79. package/dist/stores/page-header.store.d.ts.map +1 -1
  80. package/dist/styles.css +74 -17
  81. package/dist/wizard/Wizard.d.ts +38 -0
  82. package/dist/wizard/Wizard.d.ts.map +1 -0
  83. package/dist/wizard/WizardField.d.ts +22 -0
  84. package/dist/wizard/WizardField.d.ts.map +1 -0
  85. package/dist/wizard/index.d.ts +6 -0
  86. package/dist/wizard/index.d.ts.map +1 -0
  87. package/dist/wizard/index.js +5 -0
  88. package/dist/wizard/index.js.map +1 -0
  89. package/dist/wizard/logic.d.ts +39 -0
  90. package/dist/wizard/logic.d.ts.map +1 -0
  91. package/dist/wizard/types.d.ts +95 -0
  92. package/dist/wizard/types.d.ts.map +1 -0
  93. package/dist/wizard/useWizard.d.ts +47 -0
  94. package/dist/wizard/useWizard.d.ts.map +1 -0
  95. package/package.json +14 -8
  96. package/dist/ChartWidgetInner-GDE5PBTR.js.map +0 -1
  97. package/dist/chunk-22EVFMS3.js.map +0 -1
  98. package/dist/chunk-7BHG3XGJ.js.map +0 -1
  99. package/dist/chunk-7BMXN7MP.js.map +0 -1
  100. package/dist/chunk-JGJNRNQW.js.map +0 -1
  101. package/dist/chunk-VAKWUUVC.js +0 -425
  102. package/dist/chunk-VAKWUUVC.js.map +0 -1
  103. package/dist/chunk-ZBQ772DU.js +0 -17
  104. package/dist/chunk-ZBQ772DU.js.map +0 -1
  105. package/dist/chunk-ZDRHCKRK.js.map +0 -1
package/dist/icons.js CHANGED
@@ -1,3 +1,3 @@
1
- export { ICON_MAP, getLucideIcon, registerIcons } from './chunk-22EVFMS3.js';
1
+ export { ICON_MAP, getLucideIcon, registerIcons } from './chunk-4GK6IHOI.js';
2
2
  //# sourceMappingURL=icons.js.map
3
3
  //# sourceMappingURL=icons.js.map
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { cn } from './lib/cn';
2
- export { Button, buttonVariants, type ButtonProps, Input, type InputProps, Badge, badgeVariants, type BadgeProps, Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, Modal, ModalPortal, ModalOverlay, ModalClose, ModalTrigger, ModalContent, ModalHeader, ModalBody, ModalFooter, ModalTitle, ModalDescription, type ModalSize, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DropdownCheckboxItem, DropdownRadioItem, DropdownLabel, DropdownSeparator, DropdownShortcut, DropdownGroup, DropdownPortal, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownRadioGroup, DataTable, type DataTableProps, Checkbox, type CheckboxColor, type CheckboxProps, Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetBody, SheetFooter, SheetTitle, SheetDescription, Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, ToastProvider, toast, Tabs, TabsList, TabsTrigger, TabsContent, Separator, PhoneLink, normalizePhone, type PhoneLinkProps, type NormalizedPhone, Breadcrumb, Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, PageHeader, PageHeaderCrumb, type PageHeaderProps, SearchField, ChevronPager, BulkActionBar, type BulkAction, type BulkActionBarProps, Thumbnail, type ThumbnailProps, type ThumbnailSize, PhoneField, formatPhone, type PhoneFieldProps, type SearchFieldProps, type ChevronPagerProps, StatTiles, type StatTilesProps, type StatTileData, Switch, type SwitchProps, Hint, type HintProps, TimePicker, Skeleton, TableSkeleton, ListView, DatePicker, SearchSelect, type SearchSelectOption, type SearchSelectProps, CurrencyInput, ConfirmDialog, Popover, PopoverTrigger, PopoverContent, SegmentedControl, type SegmentedControlProps, type SegmentedOption, HeaderTabs, type HeaderTabsProps, type HeaderTab, FilterChip, type FilterChipProps, type FilterChipOption, Markdown, renderMarkdown, type MarkdownProps, MarkdownEditor, type MarkdownEditorProps, SearchCombobox, type ComboboxOption, RefreshButton, type RefreshButtonProps, } from './primitives';
3
- export { AppShell, type AppShellProps, type AppShellUser, AppShellSkeleton, type AppShellSkeletonProps, type BottomNavItem, type BottomNavRouteItem, type BottomNavActionItem, type MobileHeaderVariant, Sidebar, type SidebarProps, type SidebarUser, type NavigationItem, ICON_MAP, Topbar, type TopbarProps, ModulePage, SubpageHeader, ContentSplit, ContentSplitTrigger, ModuleLayoutProvider, useModuleLayout, PageHeaderActions, BackStyleProvider, useBackStyle, PageTrail, usePageTrail, usePageTrailParent, navigateToCrumb, type PageTrailCrumb, SaveBar, SaveBarProvider, useSaveBar, useBackHandler, type SaveBarRegistration, useModuleHeaderSlot, useModuleHeaderActionsSlot, PageTransition, NavTransitionProvider, useNavTransition, type NavTransition, type ModulePageProps, type ModuleNavItem, type ModuleNavVariant, type SubpageHeaderProps, type ContentSplitProps, type ContentSplitTriggerProps, type BackButtonStyle, } from './layout';
4
- export { useLayoutStore, usePageHeader, usePageHeaderSlot, usePageHeaderHost, useHasPageHeaderHost, useHasPageHeaderOutlet, PageHeaderOutlet, useThemeStore, lightTheme, darkTheme, type ThemeTokens, type SemanticColors, type UIPerceptionTokens, type CreateThemeOptions, } from './stores';
2
+ export { Button, buttonVariants, type ButtonProps, Input, type InputProps, Badge, badgeVariants, type BadgeProps, Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, Modal, ModalPortal, ModalOverlay, ModalClose, ModalTrigger, ModalContent, ModalHeader, ModalBody, ModalFooter, ModalTitle, ModalDescription, type ModalSize, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DropdownCheckboxItem, DropdownRadioItem, DropdownLabel, DropdownSeparator, DropdownShortcut, DropdownGroup, DropdownPortal, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownRadioGroup, DataTable, type DataTableProps, Checkbox, type CheckboxColor, type CheckboxProps, Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetBody, SheetFooter, SheetTitle, SheetDescription, Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, ToastProvider, toast, Tabs, TabsList, TabsTrigger, TabsContent, Separator, PhoneLink, normalizePhone, type PhoneLinkProps, type NormalizedPhone, Breadcrumb, Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, PageHeader, PageHeaderCrumb, type PageHeaderProps, SearchField, ChevronPager, BulkActionBar, type BulkAction, type BulkActionBarProps, Thumbnail, type ThumbnailProps, type ThumbnailSize, PhoneField, formatPhone, type PhoneFieldProps, type SearchFieldProps, type ChevronPagerProps, StatTiles, type StatTilesProps, type StatTileData, Switch, type SwitchProps, Hint, type HintProps, TimePicker, Skeleton, TableSkeleton, ListView, type ListViewProps, useRowSelection, type RowBulkAction, type RowSelection, type UseRowSelectionOptions, DatePicker, SearchSelect, type SearchSelectOption, type SearchSelectProps, CurrencyInput, ConfirmDialog, Popover, PopoverTrigger, PopoverAnchor, PopoverContent, SegmentedControl, type SegmentedControlProps, type SegmentedOption, HeaderTabs, PageTabs, PageToolbar, RangeControl, ToolbarButton, ToolbarAction, type PageToolbarProps, type RangeControlProps, type RangeOption, type HeaderTabsProps, type PageTabsProps, type HeaderTab, FilterChip, type FilterChipProps, type FilterChipOption, Markdown, renderMarkdown, type MarkdownProps, MarkdownEditor, type MarkdownEditorProps, SearchCombobox, type ComboboxOption, RefreshButton, type RefreshButtonProps, StepProgress, type StepProgressProps, OptionCards, OptionChips, type OptionCardsProps, type OptionChipsProps, type SelectableOption, ImageDrop, type ImageDropProps, } from './primitives';
3
+ export { Wizard, type WizardProps, type WizardLabels, WizardField, type WizardFieldProps, useWizard, type UseWizardOptions, type UseWizardResult, type WizardFieldDef, type WizardFieldKind, type WizardMedia, type WizardRenderContext, type WizardStepDef, type WizardValues, } from './wizard';
4
+ export { AppShell, type AppShellProps, type AppShellUser, AppShellSkeleton, type AppShellSkeletonProps, type BottomNavItem, type BottomNavRouteItem, type BottomNavActionItem, type MobileHeaderVariant, Sidebar, type SidebarProps, type SidebarUser, type NavigationItem, ICON_MAP, Topbar, type TopbarProps, ModulePage, SubpageHeader, ContentSplit, ContentSplitTrigger, ModuleLayoutProvider, useModuleLayout, PageHeaderActions, PageRail, RailNavItem, useRailRow, type RailFlyoutContent, BackStyleProvider, useBackStyle, PageTrail, usePageTrail, usePageTrailParent, navigateToCrumb, type PageTrailCrumb, SaveBar, SaveBarProvider, useSaveBar, useBackHandler, type SaveBarRegistration, useModuleHeaderSlot, useModuleHeaderActionsSlot, PageTransition, NavTransitionProvider, useNavTransition, type NavTransition, type ModulePageProps, type ModuleNavItem, type ModuleNavVariant, type SubpageHeaderProps, type ContentSplitProps, type ContentSplitTriggerProps, type BackButtonStyle, } from './layout';
5
+ export { useLayoutStore, usePageHeader, usePageHeaderSlot, usePageHeaderHost, useHasPageHeaderHost, useHasPageHeaderBack, useHasPageHeaderOutlet, PageHeaderOutlet, useRegisterPageActions, useHasPageActions, useThemeStore, lightTheme, darkTheme, type ThemeTokens, type SemanticColors, type UIPerceptionTokens, type CreateThemeOptions, } from './stores';
5
6
  export { ThemeProvider, useTheme, createTheme, createFayzTheme, fayzThemePresets, type ThemeProviderProps, type FayzThemePresetId, } from './theme';
6
7
  export { Avatar, AvatarImage, AvatarFallback } from './primitives/Avatar';
7
8
  export { DashboardCanvas, WidgetGrid, DashboardNavigateProvider, useDashboardNavigate, type DashboardCanvasProps, resolveDashboardLayout, type LaidOutWidget, useDashboardPreferences, type DashboardPreferencesState, DashboardCustomizeMenu, type DashboardCustomizeMenuProps, DashboardGrid, type DashboardGridItem, type DashboardGridProps, GoldCard, type GoldCardProps, DashboardRangeProvider, DashboardRangeControl, useDashboardRange, DEFAULT_RANGE_OPTIONS, type DashboardRange, type DashboardRangeProviderProps, type DashboardRangeOptions, KpiCard, formatKpiValue, type KpiCardProps, ChartWidget, type ChartWidgetProps, TableWidget, type TableWidgetProps, OnboardingWidget, type OnboardingStepInput, type OnboardingWidgetProps, SidebarOnboarding, type SidebarOnboardingProps, useOnboardingProgress, type OnboardingProgress, renderIcon, defineKpiWidget, defineChartWidget, defineTableWidget, defineOnboardingWidget, defineCustomWidget, type DefineWidgetInput, type KpiFormat, type KpiTrend, type KpiValue, type KpiCurrency, type IconRef, type ChartType, type ChartSeries, } from './dashboard';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAG7B,OAAO,EACL,MAAM,EACN,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,EACL,aAAa,EACb,KAAK,UAAU,EACf,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,KAAK,SAAS,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,KAAK,cAAc,EACnB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,UAAU,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,eAAe,EACf,UAAU,EACV,eAAe,EACf,KAAK,eAAe,EACpB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,UAAU,EACV,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,WAAW,EAChB,IAAI,EACJ,KAAK,SAAS,EACd,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,QAAQ,EACR,cAAc,EACd,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,mBAAmB,EACxB,cAAc,EACd,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,QAAQ,EACR,MAAM,EACN,KAAK,WAAW,EAChB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,KAAK,cAAc,EACnB,OAAO,EACP,eAAe,EACf,UAAU,EACV,cAAc,EACd,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzE,OAAO,EACL,eAAe,EACf,UAAU,EACV,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,KAAK,aAAa,EAClB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,QAAQ,EACR,KAAK,aAAa,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,OAAO,EACP,cAAc,EACd,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,gBAAgB,EACrB,WAAW,EACX,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA;AAIpB,cAAc,aAAa,CAAA;AAI3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,20 +1,22 @@
1
- import { Popover, PopoverTrigger, PopoverContent, Input, Hint, DatePicker } from './chunk-7BHG3XGJ.js';
2
- export { Badge, Breadcrumb, BulkActionBar, ChevronPager, ConfirmDialog, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverContent, PopoverTrigger, RefreshButton, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone, normalizePhone, renderMarkdown, toast } from './chunk-7BHG3XGJ.js';
3
- export { AppShell, AppShellSkeleton, BackStyleProvider, ContentSplit, ContentSplitTrigger, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTrail, PageTransition, Sidebar, SubpageHeader, Topbar, navigateToCrumb, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, usePageTrail, usePageTrailParent } from './chunk-ZDRHCKRK.js';
4
- export { HeaderTabs, PageHeader, PageHeaderCrumb, PageHeaderOutlet, SaveBar, SaveBarProvider, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, useBackHandler, useHasPageHeaderHost, useHasPageHeaderOutlet, usePageHeader, usePageHeaderHost, usePageHeaderSlot, useSaveBar } from './chunk-VAKWUUVC.js';
1
+ import { Popover, PopoverTrigger, PopoverContent, Input, Hint, DatePicker } from './chunk-SLWTKHNY.js';
2
+ export { Badge, Breadcrumb, BulkActionBar, ChevronPager, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RefreshButton, SearchCombobox, SearchField, SearchSelect, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone, normalizePhone, renderMarkdown, toast, useRowSelection } from './chunk-SLWTKHNY.js';
3
+ export { AppShellSkeleton, ContentSplit, ContentSplitTrigger, PageTrail, navigateToCrumb, usePageTrail, usePageTrailParent } from './chunk-J7F3Z52K.js';
4
+ export { AppShell, BackStyleProvider, HeaderTabs, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeader, PageHeaderActions, PageHeaderCrumb, PageRail, PageTabs, PageTransition, RailNavItem, SaveBar, SaveBarProvider, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SubpageHeader, Topbar, useBackHandler, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, useRailRow, useSaveBar } from './chunk-NA3GE4H3.js';
5
5
  export { ThemeProvider, createFayzTheme, createTheme, darkTheme, fayzThemePresets, lightTheme, useTheme, useThemeStore } from './chunk-VDAYIQX4.js';
6
- import { ChartWidget, Sparkline, DashboardGrid } from './chunk-7BMXN7MP.js';
7
- export { ChartWidget, DEFAULT_RANGE_OPTIONS, DashboardCanvas, DashboardCustomizeMenu, DashboardGrid, DashboardNavigateProvider, DashboardRangeControl, DashboardRangeProvider, GoldCard, KpiCard, OnboardingWidget, SidebarOnboarding, TableWidget, WidgetGrid, defineChartWidget, defineCustomWidget, defineKpiWidget, defineOnboardingWidget, defineTableWidget, formatKpiValue, renderIcon, resolveDashboardLayout, useDashboardNavigate, useDashboardPreferences, useDashboardRange, useOnboardingProgress } from './chunk-7BMXN7MP.js';
8
- import { Skeleton, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, Card, CardContent, DropdownSeparator } from './chunk-JGJNRNQW.js';
9
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl, Skeleton, TableSkeleton } from './chunk-JGJNRNQW.js';
10
- export { useLayoutStore } from './chunk-ZBQ772DU.js';
6
+ import { ChartWidget, Sparkline, DashboardGrid } from './chunk-5KMAEQA3.js';
7
+ export { ChartWidget, DEFAULT_RANGE_OPTIONS, DashboardCanvas, DashboardCustomizeMenu, DashboardGrid, DashboardNavigateProvider, DashboardRangeControl, DashboardRangeProvider, GoldCard, KpiCard, OnboardingWidget, SidebarOnboarding, TableWidget, WidgetGrid, defineChartWidget, defineCustomWidget, defineKpiWidget, defineOnboardingWidget, defineTableWidget, formatKpiValue, renderIcon, resolveDashboardLayout, useDashboardNavigate, useDashboardPreferences, useDashboardRange, useOnboardingProgress } from './chunk-5KMAEQA3.js';
8
+ import { Skeleton, ToolbarButton, PageToolbar, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, Card, CardContent, RangeControl, DropdownSeparator } from './chunk-KD2V3TAX.js';
9
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, PageToolbar, RangeControl, Skeleton, TableSkeleton, ToolbarAction, ToolbarButton } from './chunk-KD2V3TAX.js';
10
+ export { PageHeaderOutlet, useHasPageActions, useHasPageHeaderBack, useHasPageHeaderHost, useHasPageHeaderOutlet, useLayoutStore, usePageHeader, usePageHeaderHost, usePageHeaderSlot, useRegisterPageActions } from './chunk-FFJ2C5YH.js';
11
+ export { Wizard, WizardField, useWizard } from './chunk-AASANYXN.js';
12
+ export { ConfirmDialog, ImageDrop, OptionCards, OptionChips, StepProgress, Switch } from './chunk-3OVZ5JJQ.js';
11
13
  import { cn, Button } from './chunk-OKZ6WQB3.js';
12
14
  export { Button, buttonVariants, cn } from './chunk-OKZ6WQB3.js';
13
- export { ICON_MAP, getLucideIcon, registerIcons } from './chunk-22EVFMS3.js';
15
+ export { ICON_MAP, getLucideIcon, registerIcons } from './chunk-4GK6IHOI.js';
14
16
  import * as React2 from 'react';
15
17
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
16
18
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
17
- import { ChevronDown, Construction, DatabaseZap, AlertCircle, SlidersHorizontal, Search, ChevronRight, GitCompareArrows, Check, RefreshCw, X, TrendingUp, TrendingDown, Info, ArrowUpRight, Calendar } from 'lucide-react';
19
+ import { Construction, DatabaseZap, AlertCircle, SlidersHorizontal, Search, ChevronRight, GitCompareArrows, Check, X, TrendingUp, TrendingDown, Info, ArrowUpRight } from 'lucide-react';
18
20
  import { useTranslation, getCurrentLocale } from '@fayz-ai/core';
19
21
 
20
22
  var Avatar = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
@@ -595,13 +597,17 @@ function BreakdownList({
595
597
  /* @__PURE__ */ jsx("span", { className: "h-1.5 flex-1 overflow-hidden rounded-full bg-muted", role: "presentation", children: /* @__PURE__ */ jsx(
596
598
  "span",
597
599
  {
598
- className: "block h-full rounded-full bg-[hsl(var(--info))]",
600
+ className: "block h-full rounded-full bg-[hsl(var(--chart-1,var(--info)))]",
599
601
  style: { width: `${Math.max(item.share * 100, item.value === 0 ? 0 : 2)}%` }
600
602
  }
601
603
  ) }),
602
604
  /* @__PURE__ */ jsx("span", { className: "shrink-0 tabular-nums font-medium", children: item.formatted })
603
605
  ] }, `${item.label}-${i}`)) });
604
606
  }
607
+ var VALUE_FORMATS = /* @__PURE__ */ new Set(["number", "currency", "percent", "duration", "date", "text"]);
608
+ function columnFormat(type) {
609
+ return VALUE_FORMATS.has(type) ? type : "text";
610
+ }
605
611
  function MiniTable({
606
612
  rows,
607
613
  card,
@@ -610,12 +616,18 @@ function MiniTable({
610
616
  }) {
611
617
  const dims = (card.query.dimensions ?? []).filter((d) => !d.hidden);
612
618
  const measures = vizMeasures(card);
613
- const cols = [
619
+ const aggregated = [
614
620
  ...dims.map((d) => ({ key: d.key, label: d.label, format: d.format, align: "left" })),
615
621
  ...measures.map((m) => ({ key: m.key, label: m.label, format: m.format, align: "right" }))
616
622
  ];
623
+ const cols = aggregated.length > 0 ? aggregated : (card.columns ?? []).filter((c) => c.visible !== false).map((c) => ({
624
+ key: c.key,
625
+ label: c.label,
626
+ format: columnFormat(c.type),
627
+ align: c.align === "right" ? "right" : "left"
628
+ }));
617
629
  const shown = limit ? rows.slice(0, limit) : rows;
618
- if (shown.length === 0) return /* @__PURE__ */ jsx(EmptyState, {});
630
+ if (shown.length === 0 || cols.length === 0) return /* @__PURE__ */ jsx(EmptyState, {});
619
631
  return /* @__PURE__ */ jsx("div", { className: "-mx-1 overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "w-full text-sm", children: [
620
632
  /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { className: "border-b text-xs text-muted-foreground", children: cols.map((c) => /* @__PURE__ */ jsx("th", { className: cn("px-1 pb-2 font-medium", c.align === "right" ? "text-right" : "text-left"), children: c.label }, c.key)) }) }),
621
633
  /* @__PURE__ */ jsx("tbody", { children: shown.map((row, i) => /* @__PURE__ */ jsx("tr", { className: "border-b border-border/50 last:border-0", children: cols.map((c) => /* @__PURE__ */ jsx("td", { className: cn("px-1 py-2", c.align === "right" ? "text-right tabular-nums" : "truncate"), children: formatAnalyticsValue(row[c.key], c.format, currency) }, c.key)) }, i)) })
@@ -672,7 +684,7 @@ function AnalyticsCard({ card, className, hideOpen }) {
672
684
  Sparkline,
673
685
  {
674
686
  data: spark,
675
- color: "hsl(var(--info))",
687
+ color: "hsl(var(--chart-1,var(--info)))",
676
688
  width: 120,
677
689
  height: 28,
678
690
  padding: 2,
@@ -714,7 +726,7 @@ function AnalyticsCard({ card, className, hideOpen }) {
714
726
  ] })
715
727
  ] })
716
728
  ] }),
717
- /* @__PURE__ */ jsx("span", { className: "block h-1.5 overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx("span", { className: "block h-full rounded-full bg-[hsl(var(--info))]", style: { width: `${value / first * 100}%` } }) })
729
+ /* @__PURE__ */ jsx("span", { className: "block h-1.5 overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx("span", { className: "block h-full rounded-full bg-[hsl(var(--chart-1,var(--info)))]", style: { width: `${value / first * 100}%` } }) })
718
730
  ] }, i);
719
731
  }) });
720
732
  }
@@ -784,13 +796,6 @@ var PRESETS = [
784
796
  "this_year"
785
797
  ];
786
798
  var COMPARE_OPTIONS = ["previous_period", "previous_year", "none"];
787
- var ControlButton = React2.forwardRef(function ControlButton2({ icon: Icon, children, className, ...props }, ref) {
788
- return /* @__PURE__ */ jsxs(Button, { ref, variant: "outline", size: "sm", className: cn("gap-1.5", className), ...props, children: [
789
- Icon ? /* @__PURE__ */ jsx(Icon, { className: "h-3 w-3 shrink-0 opacity-70" }) : null,
790
- children,
791
- /* @__PURE__ */ jsx(ChevronDown, { className: "h-3 w-3 shrink-0 opacity-60" })
792
- ] });
793
- });
794
799
  function formatSpan(from, to, locale) {
795
800
  const opts = { day: "2-digit", month: "short" };
796
801
  const a = parseDay(from);
@@ -908,8 +913,7 @@ function AnalyticsFilterPicker({ filters }) {
908
913
  const activeCount = Object.keys(state.filters).length;
909
914
  if (filters.length === 0) return null;
910
915
  return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
911
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "sm", className: "gap-1.5", children: [
912
- /* @__PURE__ */ jsx(SlidersHorizontal, { className: "h-3 w-3 shrink-0 opacity-70" }),
916
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(ToolbarButton, { icon: SlidersHorizontal, caret: false, children: [
913
917
  t("analytics.filters"),
914
918
  activeCount > 0 ? /* @__PURE__ */ jsx("span", { className: "ml-0.5 rounded-full bg-primary px-1.5 text-[10px] font-semibold text-primary-foreground", children: activeCount }) : null
915
919
  ] }) }),
@@ -985,105 +989,88 @@ function AnalyticsRangeControl() {
985
989
  const { state, preset, setPreset, setDateRange } = useAnalyticsContext();
986
990
  const custom = preset === "custom";
987
991
  const span = formatSpan(state.dateRange.from, state.dateRange.to, locale);
988
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
989
- /* @__PURE__ */ jsxs(Dropdown, { children: [
990
- /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(ControlButton, { icon: Calendar, children: [
991
- custom ? t("analytics.range.custom") : t(`analytics.range.${preset}`),
992
- !custom ? /* @__PURE__ */ jsx("span", { className: "font-normal text-muted-foreground", children: span }) : null
993
- ] }) }),
994
- /* @__PURE__ */ jsxs(DropdownContent, { align: "start", className: "w-56", children: [
995
- PRESETS.map((p) => /* @__PURE__ */ jsxs(DropdownItem, { onSelect: () => setPreset(p), children: [
996
- t(`analytics.range.${p}`),
997
- preset === p ? /* @__PURE__ */ jsx(Check, { className: "ml-auto h-3.5 w-3.5 shrink-0 pl-1" }) : null
998
- ] }, p)),
992
+ return /* @__PURE__ */ jsx(
993
+ RangeControl,
994
+ {
995
+ options: PRESETS.map((p) => ({ value: p, label: t(`analytics.range.${p}`) })),
996
+ value: preset,
997
+ onChange: (p) => setPreset(p),
998
+ label: custom ? t("analytics.range.custom") : void 0,
999
+ span: custom ? void 0 : span,
1000
+ extra: /* @__PURE__ */ jsxs(Fragment, { children: [
999
1001
  /* @__PURE__ */ jsx(DropdownSeparator, {}),
1000
1002
  /* @__PURE__ */ jsxs(DropdownItem, { onSelect: () => setDateRange({ ...state.dateRange }), children: [
1001
1003
  t("analytics.range.custom"),
1002
1004
  custom ? /* @__PURE__ */ jsx(Check, { className: "ml-auto h-3.5 w-3.5 shrink-0 pl-1" }) : null
1003
1005
  ] })
1004
- ] })
1005
- ] }),
1006
- custom ? /* @__PURE__ */ jsxs(Fragment, { children: [
1007
- /* @__PURE__ */ jsx(
1008
- DatePicker,
1009
- {
1010
- variant: "toolbar",
1011
- value: state.dateRange.from,
1012
- onChange: (from) => setDateRange({
1013
- from,
1014
- to: from > state.dateRange.to ? from : state.dateRange.to
1015
- })
1016
- }
1017
- ),
1018
- /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "\u2013" }),
1019
- /* @__PURE__ */ jsx(
1020
- DatePicker,
1021
- {
1022
- variant: "toolbar",
1023
- value: state.dateRange.to,
1024
- onChange: (to) => setDateRange({
1025
- from: to < state.dateRange.from ? to : state.dateRange.from,
1026
- to
1027
- })
1028
- }
1029
- )
1030
- ] }) : null
1031
- ] });
1006
+ ] }),
1007
+ children: custom ? /* @__PURE__ */ jsxs(Fragment, { children: [
1008
+ /* @__PURE__ */ jsx(
1009
+ DatePicker,
1010
+ {
1011
+ variant: "toolbar",
1012
+ value: state.dateRange.from,
1013
+ onChange: (from) => setDateRange({
1014
+ from,
1015
+ to: from > state.dateRange.to ? from : state.dateRange.to
1016
+ })
1017
+ }
1018
+ ),
1019
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "\u2013" }),
1020
+ /* @__PURE__ */ jsx(
1021
+ DatePicker,
1022
+ {
1023
+ variant: "toolbar",
1024
+ value: state.dateRange.to,
1025
+ onChange: (to) => setDateRange({
1026
+ from: to < state.dateRange.from ? to : state.dateRange.from,
1027
+ to
1028
+ })
1029
+ }
1030
+ )
1031
+ ] }) : null
1032
+ }
1033
+ );
1032
1034
  }
1033
- function AnalyticsControls({ filters = [], showCompare = true, actions, className }) {
1035
+ function AnalyticsControls({ filters = [], showCompare = true, actions, customize, sticky, className }) {
1034
1036
  const t = useTranslation();
1035
1037
  const { state, setCompare, refresh } = useAnalyticsContext();
1036
1038
  const compare = state.compare ?? "none";
1037
1039
  const activeFilters = Object.entries(state.filters);
1038
1040
  const filterLabel = (key) => filters.find((f) => f.key === key)?.label ?? key;
1039
1041
  return (
1040
- // A surface of its own, on the same chrome as Card — rounded, hairline
1041
- // border, soft shadow. It used to be a bare tinted strip with square edges
1042
- // running the full content width, which on a grey page background read as a
1043
- // seam in the layout rather than as a control that floats over the grid it
1044
- // is filtering. It is also what makes the sticky state legible: a bar that
1045
- // has an edge and a shadow is clearly ON TOP of the cards scrolling under
1046
- // it, where a flat tint just smeared into them.
1047
- /* @__PURE__ */ jsxs(
1048
- "div",
1042
+ // Sem cromo próprio: a superfície, o encosto à direita e o comportamento
1043
+ // grudado no topo vêm de PageToolbar a mesma barra do dashboard. Aqui
1044
+ // se diz O QUE ela carrega.
1045
+ /* @__PURE__ */ jsx(
1046
+ PageToolbar,
1049
1047
  {
1050
- className: cn(
1051
- "flex flex-wrap items-center gap-2 rounded-card border bg-card/95 px-3 py-2 shadow-sm backdrop-blur",
1052
- className
1053
- ),
1054
- children: [
1055
- /* @__PURE__ */ jsx(AnalyticsRangeControl, {}),
1048
+ className,
1049
+ sticky,
1050
+ moveLabel: t("analytics.moveBar"),
1051
+ range: /* @__PURE__ */ jsx(AnalyticsRangeControl, {}),
1052
+ filters: /* @__PURE__ */ jsxs(Fragment, { children: [
1056
1053
  showCompare ? /* @__PURE__ */ jsxs(Dropdown, { children: [
1057
1054
  /* @__PURE__ */ jsx(DropdownTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1058
- ControlButton,
1055
+ ToolbarButton,
1059
1056
  {
1060
1057
  icon: GitCompareArrows,
1061
1058
  className: compare === "none" ? "text-muted-foreground" : void 0,
1062
1059
  children: t(`analytics.compare.${compare}`)
1063
1060
  }
1064
1061
  ) }),
1065
- /* @__PURE__ */ jsx(DropdownContent, { align: "start", className: "w-48", children: COMPARE_OPTIONS.map((c) => /* @__PURE__ */ jsxs(DropdownItem, { onSelect: () => setCompare(c), children: [
1062
+ /* @__PURE__ */ jsx(DropdownContent, { align: "end", className: "w-48", children: COMPARE_OPTIONS.map((c) => /* @__PURE__ */ jsxs(DropdownItem, { onSelect: () => setCompare(c), children: [
1066
1063
  t(`analytics.compare.${c}`),
1067
1064
  compare === c ? /* @__PURE__ */ jsx(Check, { className: "ml-auto h-3.5 w-3.5 shrink-0 pl-1" }) : null
1068
1065
  ] }, c)) })
1069
1066
  ] }) : null,
1070
- /* @__PURE__ */ jsx(AnalyticsFilterPicker, { filters }),
1071
- activeFilters.map(([key, value]) => /* @__PURE__ */ jsx(ActiveFilterChip, { label: filterLabel(key), value, filterKey: key }, key)),
1072
- /* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
1073
- actions,
1074
- /* @__PURE__ */ jsx(
1075
- Button,
1076
- {
1077
- variant: "outline",
1078
- size: "sm",
1079
- onClick: refresh,
1080
- "aria-label": t("analytics.refresh"),
1081
- className: "w-[26px] p-0",
1082
- children: /* @__PURE__ */ jsx(RefreshCw, { className: "h-3 w-3" })
1083
- }
1084
- )
1085
- ] })
1086
- ]
1067
+ /* @__PURE__ */ jsx(AnalyticsFilterPicker, { filters })
1068
+ ] }),
1069
+ chips: activeFilters.map(([key, value]) => /* @__PURE__ */ jsx(ActiveFilterChip, { label: filterLabel(key), value, filterKey: key }, key)),
1070
+ customize,
1071
+ actions,
1072
+ onRefresh: refresh,
1073
+ refreshLabel: t("analytics.refresh")
1087
1074
  }
1088
1075
  )
1089
1076
  );