@flowselections/core 1.0.22 → 1.0.24

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 (134) hide show
  1. package/README.md +80 -0
  2. package/dist/auth/redirect.d.ts +33 -4
  3. package/dist/auth/redirect.d.ts.map +1 -1
  4. package/dist/auth/redirect.js +58 -7
  5. package/dist/auth/roles.d.ts +10 -0
  6. package/dist/auth/roles.d.ts.map +1 -0
  7. package/dist/auth/roles.js +11 -0
  8. package/dist/auth/useAuth.d.ts +1 -1
  9. package/dist/auth/useAuth.d.ts.map +1 -1
  10. package/dist/auth/useAuth.js +1 -1
  11. package/dist/auth/useIsSuperadmin.d.ts +19 -0
  12. package/dist/auth/useIsSuperadmin.d.ts.map +1 -0
  13. package/dist/auth/useIsSuperadmin.js +16 -0
  14. package/dist/components/instellingen/NotificationSettingsCard.js +3 -3
  15. package/dist/components/layout/AuthenticatedLayout.d.ts +19 -10
  16. package/dist/components/layout/AuthenticatedLayout.d.ts.map +1 -1
  17. package/dist/components/layout/AuthenticatedLayout.js +43 -9
  18. package/dist/components/layout/BugsDialog.js +10 -10
  19. package/dist/components/layout/HandoverPage.d.ts +5 -1
  20. package/dist/components/layout/HandoverPage.d.ts.map +1 -1
  21. package/dist/components/layout/HandoverPage.js +24 -7
  22. package/dist/components/layout/Header.js +4 -4
  23. package/dist/components/layout/InstellingenPage.d.ts +1 -1
  24. package/dist/components/layout/InstellingenPage.d.ts.map +1 -1
  25. package/dist/components/layout/InstellingenPage.js +15 -7
  26. package/dist/components/layout/LoginPage.js +7 -7
  27. package/dist/components/layout/NotificationBell.js +4 -4
  28. package/dist/components/layout/ResetWachtwoordPage.d.ts +3 -1
  29. package/dist/components/layout/ResetWachtwoordPage.d.ts.map +1 -1
  30. package/dist/components/layout/ResetWachtwoordPage.js +10 -8
  31. package/dist/components/layout/Sidebar.d.ts +31 -7
  32. package/dist/components/layout/Sidebar.d.ts.map +1 -1
  33. package/dist/components/layout/Sidebar.js +33 -11
  34. package/dist/components/ui/accordion.js +1 -1
  35. package/dist/components/ui/alert-dialog.js +2 -2
  36. package/dist/components/ui/alert.js +1 -1
  37. package/dist/components/ui/avatar.js +1 -1
  38. package/dist/components/ui/badge.js +1 -1
  39. package/dist/components/ui/breadcrumb.js +1 -1
  40. package/dist/components/ui/button.js +1 -1
  41. package/dist/components/ui/calendar.d.ts +1 -1
  42. package/dist/components/ui/calendar.d.ts.map +1 -1
  43. package/dist/components/ui/calendar.js +2 -2
  44. package/dist/components/ui/card.js +1 -1
  45. package/dist/components/ui/carousel.d.ts +2 -2
  46. package/dist/components/ui/carousel.d.ts.map +1 -1
  47. package/dist/components/ui/carousel.js +2 -2
  48. package/dist/components/ui/chart.d.ts +10 -10
  49. package/dist/components/ui/chart.js +1 -1
  50. package/dist/components/ui/checkbox.js +1 -1
  51. package/dist/components/ui/command.js +2 -2
  52. package/dist/components/ui/context-menu.js +1 -1
  53. package/dist/components/ui/dialog.js +1 -1
  54. package/dist/components/ui/drawer.js +1 -1
  55. package/dist/components/ui/dropdown-menu.js +1 -1
  56. package/dist/components/ui/form.js +2 -2
  57. package/dist/components/ui/hover-card.js +1 -1
  58. package/dist/components/ui/icon-picker.js +3 -3
  59. package/dist/components/ui/input-otp.d.ts.map +1 -1
  60. package/dist/components/ui/input-otp.js +1 -1
  61. package/dist/components/ui/input.js +1 -1
  62. package/dist/components/ui/label.js +1 -1
  63. package/dist/components/ui/menubar.js +1 -1
  64. package/dist/components/ui/navigation-menu.js +1 -1
  65. package/dist/components/ui/pagination.d.ts +1 -1
  66. package/dist/components/ui/pagination.d.ts.map +1 -1
  67. package/dist/components/ui/pagination.js +2 -2
  68. package/dist/components/ui/popover.js +1 -1
  69. package/dist/components/ui/progress.js +1 -1
  70. package/dist/components/ui/radio-group.js +1 -1
  71. package/dist/components/ui/resizable.js +1 -1
  72. package/dist/components/ui/scroll-area.js +1 -1
  73. package/dist/components/ui/select.js +1 -1
  74. package/dist/components/ui/separator.js +1 -1
  75. package/dist/components/ui/sheet.js +1 -1
  76. package/dist/components/ui/sidebar.d.ts +2 -2
  77. package/dist/components/ui/sidebar.d.ts.map +1 -1
  78. package/dist/components/ui/sidebar.js +8 -8
  79. package/dist/components/ui/skeleton.js +1 -1
  80. package/dist/components/ui/slider.js +1 -1
  81. package/dist/components/ui/switch.js +1 -1
  82. package/dist/components/ui/table.js +1 -1
  83. package/dist/components/ui/tabs.js +1 -1
  84. package/dist/components/ui/textarea.js +1 -1
  85. package/dist/components/ui/toggle-group.js +2 -2
  86. package/dist/components/ui/toggle.js +1 -1
  87. package/dist/components/ui/tooltip.js +1 -1
  88. package/dist/extensions/ShellExtensions.d.ts +14 -1
  89. package/dist/extensions/ShellExtensions.d.ts.map +1 -1
  90. package/dist/extensions/ShellExtensions.js +21 -2
  91. package/dist/hooks/useLogoSrc.d.ts +7 -0
  92. package/dist/hooks/useLogoSrc.d.ts.map +1 -0
  93. package/dist/hooks/useLogoSrc.js +29 -0
  94. package/dist/index.d.ts +53 -44
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +42 -35
  97. package/dist/permissions/resolve.d.ts +22 -0
  98. package/dist/permissions/resolve.d.ts.map +1 -0
  99. package/dist/permissions/resolve.js +76 -0
  100. package/dist/permissions/store.d.ts +38 -0
  101. package/dist/permissions/store.d.ts.map +1 -0
  102. package/dist/permissions/store.js +180 -0
  103. package/dist/permissions/useModulePermission.d.ts +52 -32
  104. package/dist/permissions/useModulePermission.d.ts.map +1 -1
  105. package/dist/permissions/useModulePermission.js +72 -104
  106. package/dist/routes/index.d.ts +50 -0
  107. package/dist/routes/index.d.ts.map +1 -0
  108. package/dist/routes/index.js +63 -0
  109. package/dist/server/handover-handler.d.ts +24 -0
  110. package/dist/server/handover-handler.d.ts.map +1 -0
  111. package/dist/server/handover-handler.js +59 -0
  112. package/dist/server/index.d.ts +4 -1
  113. package/dist/server/index.d.ts.map +1 -1
  114. package/dist/server/index.js +3 -1
  115. package/dist/server/permissions.server.d.ts +14 -8
  116. package/dist/server/permissions.server.d.ts.map +1 -1
  117. package/dist/server/permissions.server.js +46 -9
  118. package/dist/shell/ShellContext.d.ts +26 -0
  119. package/dist/shell/ShellContext.d.ts.map +1 -0
  120. package/dist/shell/ShellContext.js +14 -0
  121. package/dist/styles.css +127 -0
  122. package/dist/supabase/auth-middleware.d.ts +16 -16
  123. package/dist/supabase/auth-middleware.d.ts.map +1 -1
  124. package/dist/supabase/client.d.ts +16 -16
  125. package/dist/supabase/client.d.ts.map +1 -1
  126. package/dist/supabase/client.server.d.ts +16 -16
  127. package/dist/supabase/client.server.d.ts.map +1 -1
  128. package/dist/types/module.d.ts +39 -4
  129. package/dist/types/module.d.ts.map +1 -1
  130. package/dist/types/module.js +33 -5
  131. package/package.json +14 -5
  132. package/dist/auth/handover.functions.d.ts +0 -16
  133. package/dist/auth/handover.functions.d.ts.map +0 -1
  134. package/dist/auth/handover.functions.js +0 -23
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { ButtonProps } from "./button";
2
+ import { ButtonProps } from "./button.js";
3
3
  declare const Pagination: {
4
4
  ({ className, ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
5
5
  displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/core/components/ui/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAA;AAEtD,QAAA,MAAM,UAAU;8BAA6B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;;CAOvE,CAAA;AAGD,QAAA,MAAM,iBAAiB,yKASrB,CAAA;AAGF,QAAA,MAAM,cAAc,kKAKlB,CAAA;AAGF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AAE3B,QAAA,MAAM,cAAc;8CAKjB,mBAAmB;;CAYrB,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAGrB,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;CAU7C,CAAA;AAGD,QAAA,MAAM,cAAc;8BAGjB,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;CAU7C,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAGrB,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;CAS9B,CAAA;AAGD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,CAAA"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/core/components/ui/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAA;AAEzD,QAAA,MAAM,UAAU;8BAA6B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;;CAOvE,CAAA;AAGD,QAAA,MAAM,iBAAiB,yKASrB,CAAA;AAGF,QAAA,MAAM,cAAc,kKAKlB,CAAA;AAGF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAC3B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AAE3B,QAAA,MAAM,cAAc;8CAKjB,mBAAmB;;CAYrB,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAGrB,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;CAU7C,CAAA;AAGD,QAAA,MAAM,cAAc;8BAGjB,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;CAU7C,CAAA;AAGD,QAAA,MAAM,kBAAkB;8BAGrB,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;CAS9B,CAAA;AAGD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
4
- import { cn } from "../../lib/utils";
5
- import { buttonVariants } from "./button";
4
+ import { cn } from "../../lib/utils.js";
5
+ import { buttonVariants } from "./button.js";
6
6
  const Pagination = ({ className, ...props }) => (_jsx("nav", { role: "navigation", "aria-label": "pagination", className: cn("mx-auto flex w-full justify-center", className), ...props }));
7
7
  Pagination.displayName = "Pagination";
8
8
  const PaginationContent = React.forwardRef(({ className, ...props }, ref) => (_jsx("ul", { ref: ref, className: cn("flex flex-row items-center gap-1", className), ...props })));
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as PopoverPrimitive from "@radix-ui/react-popover";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const Popover = PopoverPrimitive.Root;
6
6
  const PopoverTrigger = PopoverPrimitive.Trigger;
7
7
  const PopoverAnchor = PopoverPrimitive.Anchor;
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as ProgressPrimitive from "@radix-ui/react-progress";
5
- import { cn } from "../../lib/utils";
5
+ import { cn } from "../../lib/utils.js";
6
6
  const Progress = React.forwardRef(({ className, value, ...props }, ref) => (_jsx(ProgressPrimitive.Root, { ref: ref, className: cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className), ...props, children: _jsx(ProgressPrimitive.Indicator, { className: "h-full w-full flex-1 bg-primary transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) })));
7
7
  Progress.displayName = ProgressPrimitive.Root.displayName;
8
8
  export { Progress };
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4
4
  import { Circle } from "lucide-react";
5
- import { cn } from "../../lib/utils";
5
+ import { cn } from "../../lib/utils.js";
6
6
  const RadioGroup = React.forwardRef(({ className, ...props }, ref) => {
7
7
  return (_jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref: ref }));
8
8
  });
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { GripVertical } from "lucide-react";
3
3
  import { Group, Panel, Separator } from "react-resizable-panels";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const ResizablePanelGroup = ({ className, ...props }) => (_jsx(Group, { className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className), ...props }));
6
6
  const ResizablePanel = Panel;
7
7
  const ResizableHandle = ({ withHandle, className, ...props }) => (_jsx(Separator, { className: cn("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90", className), ...props, children: withHandle && (_jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: _jsx(GripVertical, { className: "h-2.5 w-2.5" }) })) }));
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const ScrollArea = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(ScrollAreaPrimitive.Root, { ref: ref, className: cn("relative overflow-hidden", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] })));
6
6
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
7
7
  const ScrollBar = React.forwardRef(({ className, orientation = "vertical", ...props }, ref) => (_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, { ref: ref, orientation: orientation, className: cn("flex touch-none select-none transition-colors", orientation === "vertical" &&
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as SelectPrimitive from "@radix-ui/react-select";
5
5
  import { Check, ChevronDown, ChevronUp } from "lucide-react";
6
- import { cn } from "../../lib/utils";
6
+ import { cn } from "../../lib/utils.js";
7
7
  const Select = SelectPrimitive.Root;
8
8
  const SelectGroup = SelectPrimitive.Group;
9
9
  const SelectValue = SelectPrimitive.Value;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const Separator = React.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className), ...props })));
6
6
  Separator.displayName = SeparatorPrimitive.Root.displayName;
7
7
  export { Separator };
@@ -4,7 +4,7 @@ import * as React from "react";
4
4
  import * as SheetPrimitive from "@radix-ui/react-dialog";
5
5
  import { cva } from "class-variance-authority";
6
6
  import { X } from "lucide-react";
7
- import { cn } from "../../lib/utils";
7
+ import { cn } from "../../lib/utils.js";
8
8
  const Sheet = SheetPrimitive.Root;
9
9
  const SheetTrigger = SheetPrimitive.Trigger;
10
10
  const SheetClose = SheetPrimitive.Close;
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
- import { TooltipContent } from "./tooltip";
3
+ import { TooltipContent } from "./tooltip.js";
4
4
  type SidebarContextProps = {
5
5
  state: "expanded" | "collapsed";
6
6
  open: boolean;
@@ -21,7 +21,7 @@ declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.ClassAttribute
21
21
  variant?: "sidebar" | "floating" | "inset";
22
22
  collapsible?: "offcanvas" | "icon" | "none";
23
23
  }, "ref"> & React.RefAttributes<HTMLDivElement>>;
24
- declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<import("./button").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
24
+ declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<import("./button.js").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
25
25
  declare const SidebarRail: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
26
26
  declare const SidebarInset: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
27
27
  declare const SidebarInput: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/core/components/ui/sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAgBjE,OAAO,EAEL,cAAc,EAGf,MAAM,WAAW,CAAA;AASlB,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,UAAU,GAAG,WAAW,CAAA;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAID,iBAAS,UAAU,wBAOlB;AAED,QAAA,MAAM,eAAe;kBAGH,OAAO;WACd,OAAO;mBACC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;gDAqGzC,CAAA;AAGD,QAAA,MAAM,OAAO;WAGF,MAAM,GAAG,OAAO;cACb,SAAS,GAAG,UAAU,GAAG,OAAO;kBAC5B,WAAW,GAAG,MAAM,GAAG,MAAM;gDAmG9C,CAAA;AAGD,QAAA,MAAM,cAAc,gKAuBlB,CAAA;AAGF,QAAA,MAAM,WAAW,kLA0Bf,CAAA;AAGF,QAAA,MAAM,YAAY,6JAehB,CAAA;AAGF,QAAA,MAAM,YAAY,mOAehB,CAAA;AAGF,QAAA,MAAM,aAAa,mKAYjB,CAAA;AAGF,QAAA,MAAM,aAAa,mKAYjB,CAAA;AAGF,QAAA,MAAM,gBAAgB,iOAYpB,CAAA;AAGF,QAAA,MAAM,cAAc,mKAelB,CAAA;AAGF,QAAA,MAAM,YAAY,mKAYhB,CAAA;AAGF,QAAA,MAAM,iBAAiB;cAEqB,OAAO;gDAgBjD,CAAA;AAGF,QAAA,MAAM,kBAAkB;cAEuB,OAAO;mDAkBpD,CAAA;AAGF,QAAA,MAAM,mBAAmB,mKAUvB,CAAA;AAGF,QAAA,MAAM,WAAW,yKAUf,CAAA;AAGF,QAAA,MAAM,eAAe,kKAUnB,CAAA;AAyBF,QAAA,MAAM,iBAAiB;cAGT,OAAO;eACN,OAAO;cACR,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;;;iIAmDjE,CAAA;AAGD,QAAA,MAAM,iBAAiB;cAGT,OAAO;kBACH,OAAO;mDAwBvB,CAAA;AAGF,QAAA,MAAM,gBAAgB,mKAkBpB,CAAA;AAGF,QAAA,MAAM,mBAAmB;eAGV,OAAO;gDAgCpB,CAAA;AAGF,QAAA,MAAM,cAAc,yKAclB,CAAA;AAGF,QAAA,MAAM,kBAAkB,kKAG6B,CAAA;AAGrD,QAAA,MAAM,oBAAoB;cAGZ,OAAO;WACV,IAAI,GAAG,IAAI;eACP,OAAO;mDAsBpB,CAAA;AAGF,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,GACX,CAAA"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/core/components/ui/sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAgBjE,OAAO,EAEL,cAAc,EAGf,MAAM,cAAc,CAAA;AASrB,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,UAAU,GAAG,WAAW,CAAA;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAID,iBAAS,UAAU,wBAOlB;AAED,QAAA,MAAM,eAAe;kBAGH,OAAO;WACd,OAAO;mBACC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;gDAqGzC,CAAA;AAGD,QAAA,MAAM,OAAO;WAGF,MAAM,GAAG,OAAO;cACb,SAAS,GAAG,UAAU,GAAG,OAAO;kBAC5B,WAAW,GAAG,MAAM,GAAG,MAAM;gDAmG9C,CAAA;AAGD,QAAA,MAAM,cAAc,mKAuBlB,CAAA;AAGF,QAAA,MAAM,WAAW,kLA0Bf,CAAA;AAGF,QAAA,MAAM,YAAY,6JAehB,CAAA;AAGF,QAAA,MAAM,YAAY,mOAehB,CAAA;AAGF,QAAA,MAAM,aAAa,mKAYjB,CAAA;AAGF,QAAA,MAAM,aAAa,mKAYjB,CAAA;AAGF,QAAA,MAAM,gBAAgB,iOAYpB,CAAA;AAGF,QAAA,MAAM,cAAc,mKAelB,CAAA;AAGF,QAAA,MAAM,YAAY,mKAYhB,CAAA;AAGF,QAAA,MAAM,iBAAiB;cAEqB,OAAO;gDAgBjD,CAAA;AAGF,QAAA,MAAM,kBAAkB;cAEuB,OAAO;mDAkBpD,CAAA;AAGF,QAAA,MAAM,mBAAmB,mKAUvB,CAAA;AAGF,QAAA,MAAM,WAAW,yKAUf,CAAA;AAGF,QAAA,MAAM,eAAe,kKAUnB,CAAA;AAyBF,QAAA,MAAM,iBAAiB;cAGT,OAAO;eACN,OAAO;cACR,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC;;;;iIAmDjE,CAAA;AAGD,QAAA,MAAM,iBAAiB;cAGT,OAAO;kBACH,OAAO;mDAwBvB,CAAA;AAGF,QAAA,MAAM,gBAAgB,mKAkBpB,CAAA;AAGF,QAAA,MAAM,mBAAmB;eAGV,OAAO;gDAgCpB,CAAA;AAGF,QAAA,MAAM,cAAc,yKAclB,CAAA;AAGF,QAAA,MAAM,kBAAkB,kKAG6B,CAAA;AAGrD,QAAA,MAAM,oBAAoB;cAGZ,OAAO;WACV,IAAI,GAAG,IAAI;eACP,OAAO;mDAsBpB,CAAA;AAGF,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,GACX,CAAA"}
@@ -3,14 +3,14 @@ import * as React from "react";
3
3
  import { Slot } from "@radix-ui/react-slot";
4
4
  import { cva } from "class-variance-authority";
5
5
  import { PanelLeft } from "lucide-react";
6
- import { useIsMobile } from "../../hooks/use-mobile";
7
- import { cn } from "../../lib/utils";
8
- import { Button } from "./button";
9
- import { Input } from "./input";
10
- import { Separator } from "./separator";
11
- import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "./sheet";
12
- import { Skeleton } from "./skeleton";
13
- import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "./tooltip";
6
+ import { useIsMobile } from "../../hooks/use-mobile.js";
7
+ import { cn } from "../../lib/utils.js";
8
+ import { Button } from "./button.js";
9
+ import { Input } from "./input.js";
10
+ import { Separator } from "./separator.js";
11
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "./sheet.js";
12
+ import { Skeleton } from "./skeleton.js";
13
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "./tooltip.js";
14
14
  const SIDEBAR_COOKIE_NAME = "sidebar_state";
15
15
  const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
16
16
  const SIDEBAR_WIDTH = "16rem";
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../../lib/utils";
2
+ import { cn } from "../../lib/utils.js";
3
3
  function Skeleton({ className, ...props }) {
4
4
  return (_jsx("div", { className: cn("animate-pulse rounded-md bg-primary/10", className), ...props }));
5
5
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as SliderPrimitive from "@radix-ui/react-slider";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const Slider = React.forwardRef(({ className, ...props }, ref) => (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })] })));
6
6
  Slider.displayName = SliderPrimitive.Root.displayName;
7
7
  export { Slider };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as SwitchPrimitives from "@radix-ui/react-switch";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const Switch = React.forwardRef(({ className, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") }) })));
6
6
  Switch.displayName = SwitchPrimitives.Root.displayName;
7
7
  export { Switch };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { cn } from "../../lib/utils";
3
+ import { cn } from "../../lib/utils.js";
4
4
  const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })));
5
5
  Table.displayName = "Table";
6
6
  const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn("[&_tr]:border-b", className), ...props })));
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as TabsPrimitive from "@radix-ui/react-tabs";
4
- import { cn } from "../../lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  const Tabs = TabsPrimitive.Root;
6
6
  const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground", className), ...props })));
7
7
  TabsList.displayName = TabsPrimitive.List.displayName;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { cn } from "../../lib/utils";
3
+ import { cn } from "../../lib/utils.js";
4
4
  const Textarea = React.forwardRef(({ className, ...props }, ref) => {
5
5
  return (_jsx("textarea", { className: cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ref: ref, ...props }));
6
6
  });
@@ -2,8 +2,8 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5
- import { cn } from "../../lib/utils";
6
- import { toggleVariants } from "./toggle";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { toggleVariants } from "./toggle.js";
7
7
  const ToggleGroupContext = React.createContext({
8
8
  size: "default",
9
9
  variant: "default",
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4
4
  import { cva } from "class-variance-authority";
5
- import { cn } from "../../lib/utils";
5
+ import { cn } from "../../lib/utils.js";
6
6
  const toggleVariants = cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
7
7
  variants: {
8
8
  variant: {
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
- import { cn } from "../../lib/utils";
5
+ import { cn } from "../../lib/utils.js";
6
6
  const TooltipProvider = TooltipPrimitive.Provider;
7
7
  const Tooltip = TooltipPrimitive.Root;
8
8
  const TooltipTrigger = TooltipPrimitive.Trigger;
@@ -3,6 +3,17 @@ import type { FlowModule } from "../types/module.js";
3
3
  /** Transformeert de modulelijst (filteren en/of sorteren). Puur, geen side effects. */
4
4
  export type ModuleListTransform = (modules: FlowModule[]) => FlowModule[];
5
5
  export type UseModuleListTransform = () => ModuleListTransform;
6
+ /**
7
+ * Sinds 1.0.23. Footer-items van de zijbalk. Uitloggen staat bewust NIET in dit
8
+ * type: het is nooit te verbergen. Zichtbaarheid, geen beveiliging.
9
+ */
10
+ export interface FooterItems {
11
+ settings: boolean;
12
+ }
13
+ export type FooterTransform = (items: FooterItems) => FooterItems;
14
+ export type UseFooterTransform = () => FooterTransform;
15
+ /** Sinds 1.0.23. Past de footer-transform toe; fout → ongewijzigd. Zichtbaarheid, geen beveiliging. */
16
+ export declare function useFooterItems(base: FooterItems): FooterItems;
6
17
  export interface ShellExtensionsProviderProps {
7
18
  /**
8
19
  * Eén of meer hooks die elk een ModuleListTransform teruggeven.
@@ -16,9 +27,11 @@ export interface ShellExtensionsProviderProps {
16
27
  guard?: ComponentType<{
17
28
  children: ReactNode;
18
29
  }>;
30
+ /** Sinds 1.0.23. Optionele footer-transform (stabiele referentie). Uitloggen blijft altijd. */
31
+ useFooter?: UseFooterTransform;
19
32
  children: ReactNode;
20
33
  }
21
- export declare function ShellExtensionsProvider({ useModuleList, guard, children, }: ShellExtensionsProviderProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function ShellExtensionsProvider({ useModuleList, guard, useFooter, children, }: ShellExtensionsProviderProps): import("react/jsx-runtime").JSX.Element;
22
35
  export declare function useShellGuard(): ComponentType<{
23
36
  children: ReactNode;
24
37
  }> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ShellExtensions.d.ts","sourceRoot":"","sources":["../../src/core/extensions/ShellExtensions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,CAAC;AAE1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,mBAAmB,CAAC;AAS/D,MAAM,WAAW,4BAA4B;IAC3C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;IAClE,kFAAkF;IAClF,KAAK,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,aAAa,EACb,KAAK,EACL,QAAQ,GACT,EAAE,4BAA4B,2CAY9B;AAED,wBAAgB,aAAa,IAAI,aAAa,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,SAAS,CAElF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAuB1E"}
1
+ {"version":3,"file":"ShellExtensions.d.ts","sourceRoot":"","sources":["../../src/core/extensions/ShellExtensions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,CAAC;AAE1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,mBAAmB,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAAC;AAYvD,uGAAuG;AACvG,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAc7D;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;IAClE,kFAAkF;IAClF,KAAK,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC/C,+FAA+F;IAC/F,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,aAAa,EACb,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,4BAA4B,2CAY9B;AAED,wBAAgB,aAAa,IAAI,aAAa,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,SAAS,CAElF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAuB1E"}
@@ -1,13 +1,32 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, useContext, useMemo } from "react";
3
3
  const ShellExtensionsContext = createContext({ transforms: [] });
4
- export function ShellExtensionsProvider({ useModuleList, guard, children, }) {
4
+ const identityFooter = () => (items) => items;
5
+ /** Sinds 1.0.23. Past de footer-transform toe; fout → ongewijzigd. Zichtbaarheid, geen beveiliging. */
6
+ export function useFooterItems(base) {
7
+ const useF = useContext(ShellExtensionsContext).useFooter ?? identityFooter;
8
+ let t = (i) => i;
9
+ try {
10
+ t = useF();
11
+ }
12
+ catch {
13
+ /* fail-open */
14
+ }
15
+ try {
16
+ const next = t(base);
17
+ return { settings: typeof next?.settings === "boolean" ? next.settings : base.settings };
18
+ }
19
+ catch {
20
+ return base;
21
+ }
22
+ }
23
+ export function ShellExtensionsProvider({ useModuleList, guard, useFooter, children, }) {
5
24
  const transforms = useMemo(() => (Array.isArray(useModuleList) ? useModuleList : useModuleList ? [useModuleList] : []),
6
25
  // Bewust op de referentie(s): de hooks moeten stabiel zijn, zodat de
7
26
  // hook-volgorde tussen renders nooit verandert.
8
27
  // eslint-disable-next-line react-hooks/exhaustive-deps
9
28
  [useModuleList]);
10
- const value = useMemo(() => ({ transforms, guard }), [transforms, guard]);
29
+ const value = useMemo(() => ({ transforms, guard, useFooter }), [transforms, guard, useFooter]);
11
30
  return _jsx(ShellExtensionsContext.Provider, { value: value, children: children });
12
31
  }
13
32
  export function useShellGuard() {
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_LOGO_SRC = "/logo.png";
2
+ /**
3
+ * Sinds 1.0.23. Logopad: prop wint, dan `logo` uit `/huisstijl.json`, dan
4
+ * `/logo.png`.
5
+ */
6
+ export declare function useLogoSrc(prop?: string): string;
7
+ //# sourceMappingURL=useLogoSrc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogoSrc.d.ts","sourceRoot":"","sources":["../../src/core/hooks/useLogoSrc.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAa5C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAWhD"}
@@ -0,0 +1,29 @@
1
+ import { useEffect, useState } from "react";
2
+ export const DEFAULT_LOGO_SRC = "/logo.png";
3
+ let huisstijlLogo = null;
4
+ function loadHuisstijlLogo() {
5
+ if (!huisstijlLogo) {
6
+ huisstijlLogo = fetch("/huisstijl.json")
7
+ .then((r) => (r.ok ? r.json() : null))
8
+ .then((j) => (j && typeof j.logo === "string" && j.logo ? j.logo : null))
9
+ .catch(() => null);
10
+ }
11
+ return huisstijlLogo;
12
+ }
13
+ /**
14
+ * Sinds 1.0.23. Logopad: prop wint, dan `logo` uit `/huisstijl.json`, dan
15
+ * `/logo.png`.
16
+ */
17
+ export function useLogoSrc(prop) {
18
+ const [fromFile, setFromFile] = useState(null);
19
+ useEffect(() => {
20
+ if (prop || typeof window === "undefined")
21
+ return;
22
+ let alive = true;
23
+ loadHuisstijlLogo().then((v) => alive && setFromFile(v));
24
+ return () => {
25
+ alive = false;
26
+ };
27
+ }, [prop]);
28
+ return prop || fromFile || DEFAULT_LOGO_SRC;
29
+ }
package/dist/index.d.ts CHANGED
@@ -1,49 +1,58 @@
1
- export { useAuth, useAuthState } from "./auth/useAuth";
2
- export type { AuthContext, AuthState, AuthActions, AppRole } from "./auth/useAuth";
3
- export { supabase } from "./supabase/client";
4
- export type { Database } from "./supabase/types";
5
- export { LoginPage } from "./components/layout/LoginPage";
6
- export { requireAuth, safeRedirectPath, readRedirectParam } from "./auth/redirect";
7
- export type { RequireAuthArgs } from "./auth/redirect";
8
- export { HandoverPage } from "./components/layout/HandoverPage";
9
- export type { HandoverPageProps } from "./components/layout/HandoverPage";
10
- export { ResetWachtwoordPage } from "./components/layout/ResetWachtwoordPage";
11
- export { Header } from "./components/layout/Header";
12
- export { InstellingenPage } from "./components/layout/InstellingenPage";
13
- export { Sidebar } from "./components/layout/Sidebar";
14
- export type { SidebarProps } from "./components/layout/Sidebar";
15
- export { AuthenticatedLayout } from "./components/layout/AuthenticatedLayout";
16
- export type { AuthenticatedLayoutProps } from "./components/layout/AuthenticatedLayout";
17
- export { Toaster } from "./components/ui/sonner";
18
- export { Button } from "./components/ui/button";
19
- export { Input } from "./components/ui/input";
20
- export { Label } from "./components/ui/label";
21
- export { Textarea } from "./components/ui/textarea";
22
- export { Switch } from "./components/ui/switch";
23
- export { Badge } from "./components/ui/badge";
24
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/ui/card";
25
- export { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, DialogFooter, DialogClose, } from "./components/ui/dialog";
26
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "./components/ui/alert-dialog";
27
- export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "./components/ui/table";
28
- export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "./components/ui/select";
29
- export { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/ui/tabs";
30
- export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, } from "./components/ui/dropdown-menu";
31
- export { Popover, PopoverContent, PopoverTrigger } from "./components/ui/popover";
32
- export { Checkbox } from "./components/ui/checkbox";
33
- export { Separator } from "./components/ui/separator";
34
- export { Skeleton } from "./components/ui/skeleton";
1
+ export { useAuth, useAuthState } from "./auth/useAuth.js";
2
+ export type { AuthContext, AuthState, AuthActions, AppRole } from "./auth/useAuth.js";
3
+ export { supabase } from "./supabase/client.js";
4
+ export type { Database } from "./supabase/types.js";
5
+ export { LoginPage } from "./components/layout/LoginPage.js";
6
+ export { requireAuth, safeRedirectPath, readRedirectParam } from "./auth/redirect.js";
7
+ export { resolveModuleAccess, canAccessModule } from "./auth/redirect.js";
8
+ export type { RequireAuthArgs, ModuleAccessContext } from "./auth/redirect.js";
9
+ export { useIsSuperadmin, roleFlags } from "./auth/useIsSuperadmin.js";
10
+ export { HandoverPage, DEFAULT_HANDOVER_EXCHANGE_PATH } from "./components/layout/HandoverPage.js";
11
+ export type { HandoverPageProps } from "./components/layout/HandoverPage.js";
12
+ export { ResetWachtwoordPage } from "./components/layout/ResetWachtwoordPage.js";
13
+ export { Header } from "./components/layout/Header.js";
14
+ export { InstellingenPage } from "./components/layout/InstellingenPage.js";
15
+ export { Sidebar } from "./components/layout/Sidebar.js";
16
+ export type { SidebarProps } from "./components/layout/Sidebar.js";
17
+ export { AuthenticatedLayout, NoAccess } from "./components/layout/AuthenticatedLayout.js";
18
+ export { useSidebarModules } from "./components/layout/Sidebar.js";
19
+ export { useShell, useShellModules } from "./shell/ShellContext.js";
20
+ export type { ShellContextValue } from "./shell/ShellContext.js";
21
+ export { useLogoSrc } from "./hooks/useLogoSrc.js";
22
+ export type { AuthenticatedLayoutProps } from "./components/layout/AuthenticatedLayout.js";
23
+ export { Toaster } from "./components/ui/sonner.js";
24
+ export { Button } from "./components/ui/button.js";
25
+ export { Input } from "./components/ui/input.js";
26
+ export { Label } from "./components/ui/label.js";
27
+ export { Textarea } from "./components/ui/textarea.js";
28
+ export { Switch } from "./components/ui/switch.js";
29
+ export { Badge } from "./components/ui/badge.js";
30
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/ui/card.js";
31
+ export { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, DialogFooter, DialogClose, } from "./components/ui/dialog.js";
32
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "./components/ui/alert-dialog.js";
33
+ export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "./components/ui/table.js";
34
+ export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "./components/ui/select.js";
35
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/ui/tabs.js";
36
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, } from "./components/ui/dropdown-menu.js";
37
+ export { Popover, PopoverContent, PopoverTrigger } from "./components/ui/popover.js";
38
+ export { Checkbox } from "./components/ui/checkbox.js";
39
+ export { Separator } from "./components/ui/separator.js";
40
+ export { Skeleton } from "./components/ui/skeleton.js";
35
41
  export { toast } from "sonner";
36
- export { cn } from "./lib/utils";
37
- export { validateFileUpload, ALLOWED_FILE_TYPES, loginSchema } from "./lib/validationSchemas";
38
- export { useIsMobile } from "./hooks/use-mobile";
39
- export { useHuisstijl } from "./hooks/useHuisstijl";
40
- export type { FlowModule, NavItem, SettingsCard } from "./types/module";
41
- export { moduleKey, navKey } from "./types/module.js";
42
- export { ShellExtensionsProvider, useModuleListTransform } from "./extensions/ShellExtensions.js";
43
- export type { ModuleListTransform, UseModuleListTransform, ShellExtensionsProviderProps, } from "./extensions/ShellExtensions.js";
42
+ export { cn } from "./lib/utils.js";
43
+ export { validateFileUpload, ALLOWED_FILE_TYPES, loginSchema } from "./lib/validationSchemas.js";
44
+ export { useIsMobile } from "./hooks/use-mobile.js";
45
+ export { useHuisstijl } from "./hooks/useHuisstijl.js";
46
+ export type { FlowModule, NavItem, SettingsCard, FeatureDefinition } from "./types/module.js";
47
+ export { moduleKey, navKey, featureKey, moduleFeatures } from "./types/module.js";
48
+ export { ShellExtensionsProvider, useModuleListTransform, useFooterItems } from "./extensions/ShellExtensions.js";
49
+ export type { ModuleListTransform, UseModuleListTransform, ShellExtensionsProviderProps, FooterItems, FooterTransform, UseFooterTransform, } from "./extensions/ShellExtensions.js";
44
50
  export { ModuleGuardSlot } from "./extensions/ModuleGuardSlot.js";
45
- export { useMyModulePermissions, useModulePermission, useModulePermissionTransform, } from "./permissions/useModulePermission.js";
46
- export type { PermissionLevel, ModulePermissionRow } from "./permissions/useModulePermission.js";
51
+ export { useMyModulePermissions, useModulePermission, useModulePermissionTransform, useCan, Can, usePermissionFilteredModules, } from "./permissions/useModulePermission.js";
52
+ export type { PermissionLevel, ModulePermissionRow, CanProps } from "./permissions/useModulePermission.js";
53
+ export { filterModules, resolveLevel } from "./permissions/resolve.js";
54
+ export { usePermissionSnapshot } from "./permissions/store.js";
55
+ export type { PermissionSnapshot, PermissionStatus } from "./permissions/store.js";
47
56
  export { ModuleAccessGuard } from "./permissions/ModuleAccessGuard.js";
48
57
  export type { ModuleAccessGuardProps } from "./permissions/ModuleAccessGuard.js";
49
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/core/index.ts"],"names":[],"mappings":"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"}