impact-nova 2.0.4 → 2.0.5

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.
@@ -0,0 +1,42 @@
1
+ import * as React from "react";
2
+ interface LayoutProps extends React.ComponentProps<"div"> {
3
+ /**
4
+ * Sidebar column — render `<Sidebar collapsible="offcanvas">` here.
5
+ * Do **not** wrap with SidebarProvider; place SidebarProvider at the app
6
+ * root around this entire layout (see impact-nova://layout).
7
+ */
8
+ sidebar: React.ReactNode;
9
+ /**
10
+ * App header — compose with Header, HeaderLeft, HeaderRight, etc.
11
+ */
12
+ header: React.ReactNode;
13
+ /**
14
+ * Main content area. Pages compose breadcrumb, filter strip, and body
15
+ * directly here using BreadcrumbHeader, FilterStrip, etc.
16
+ */
17
+ children: React.ReactNode;
18
+ }
19
+ /**
20
+ * App shell: Sidebar | (Header + scrollable main).
21
+ *
22
+ * Place SidebarProvider at the app root around this layout. Pages handle
23
+ * their own breadcrumb and filter strip inside `children`.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <SidebarProvider
28
+ * defaultOpen={false}
29
+ * id="app-sidebar"
30
+ * className="flex h-svh min-h-0 w-full min-w-0 overflow-hidden"
31
+ * >
32
+ * <Layout sidebar={<AppSidebar />} header={<AppHeader />}>
33
+ * <Suspense fallback={<Loader />}>
34
+ * <Outlet />
35
+ * </Suspense>
36
+ * </Layout>
37
+ * <CommandPalette />
38
+ * </SidebarProvider>
39
+ * ```
40
+ */
41
+ export declare function Layout({ sidebar, header, children, className, ...props }: LayoutProps): import("react/jsx-runtime").JSX.Element;
42
+ export {};
@@ -0,0 +1,41 @@
1
+ import { jsxs as o, jsx as i } from "react/jsx-runtime";
2
+ import "react";
3
+ import { cn as f } from "../../lib/utils.js";
4
+ function c({
5
+ sidebar: e,
6
+ header: l,
7
+ children: t,
8
+ className: a,
9
+ ...n
10
+ }) {
11
+ return /* @__PURE__ */ o(
12
+ "div",
13
+ {
14
+ className: f(
15
+ "flex h-full min-h-0 w-full min-w-0 flex-1 overflow-hidden",
16
+ a
17
+ ),
18
+ "data-testid": "app-root",
19
+ "data-component": "layout",
20
+ ...n,
21
+ children: [
22
+ e,
23
+ /* @__PURE__ */ o("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden", children: [
24
+ l,
25
+ /* @__PURE__ */ i(
26
+ "main",
27
+ {
28
+ id: "layout-content",
29
+ "data-testid": "layout-content",
30
+ className: "flex min-h-0 min-w-0 flex-1 flex-col overflow-y-auto bg-canvas-wash",
31
+ children: t
32
+ }
33
+ )
34
+ ] })
35
+ ]
36
+ }
37
+ );
38
+ }
39
+ export {
40
+ c as Layout
41
+ };
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+ export type RouteItem = {
3
+ value: string;
4
+ label: string;
5
+ icon?: ReactNode;
6
+ url?: string;
7
+ disabled?: boolean;
8
+ children?: {
9
+ value: string;
10
+ label: string;
11
+ url: string;
12
+ }[];
13
+ };
14
+ export declare function getMockRoutes(tStory: (key: string) => string): RouteItem[];
15
+ /** Production pattern: SidebarProvider wraps the full layout at the app root. */
16
+ export declare function LayoutStoryShell({ defaultSidebarOpen, children, }: {
17
+ defaultSidebarOpen?: boolean;
18
+ children: ReactNode;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export declare function MockAppSidebar(): import("react/jsx-runtime").JSX.Element;
21
+ export declare function MockHeaderSimple({ title }: {
22
+ title?: string;
23
+ }): import("react/jsx-runtime").JSX.Element;
24
+ export declare function MockHeaderFull({ title, userInitials, showIndicator, }: {
25
+ title?: string;
26
+ userInitials?: string;
27
+ showIndicator?: boolean;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ export declare function MockBreadcrumbDeep(): import("react/jsx-runtime").JSX.Element;
30
+ export declare function MockBreadcrumbShallow({ label }: {
31
+ label?: string;
32
+ }): import("react/jsx-runtime").JSX.Element;
33
+ export declare function MockFilterStrip(): import("react/jsx-runtime").JSX.Element;
34
+ export declare function MockHeaderWithBot({ title }: {
35
+ title: string;
36
+ }): import("react/jsx-runtime").JSX.Element;
37
+ export declare function WidgetGrid({ count }: {
38
+ count?: number;
39
+ }): import("react/jsx-runtime").JSX.Element;
40
+ export declare function ScrollContent({ rows }: {
41
+ rows?: number;
42
+ }): import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,6 @@ import { getDefaultClassNames as Ke, DayPicker as We } from "react-day-picker";
4
4
  import { ChevronRight as oe } from "impact-nova-icons";
5
5
  import { cn as m } from "../../lib/utils.js";
6
6
  import { Button as O } from "./button.js";
7
- import "./button-variants.js";
8
7
  import me from "./select/select.js";
9
8
  import { FISCAL_PATTERNS as Ge, resolveWeekSelection as qe } from "../../lib/fiscal-calendar.js";
10
9
  import { getIntlLocale as Je, getDateFnsLocale as Qe } from "../../i18n/getDateFnsLocale.js";
@@ -33,7 +32,7 @@ function Ve({ children: A }) {
33
32
  }
34
33
  );
35
34
  }
36
- function ft({
35
+ function ut({
37
36
  className: A,
38
37
  classNames: B,
39
38
  showOutsideDays: p = !1,
@@ -893,6 +892,6 @@ function et({
893
892
  );
894
893
  }
895
894
  export {
896
- ft as Calendar,
895
+ ut as Calendar,
897
896
  et as CalendarDayButton
898
897
  };
@@ -1,2 +1,3 @@
1
- export * from './horizontal-scroller';
1
+ export { default } from './horizontal-scroller';
2
+ export { default as HorizontalScroller } from './horizontal-scroller';
2
3
  export * from '../types/horizontal-scroller.types';
@@ -1 +1,5 @@
1
-
1
+ import { default as r, default as a } from "./horizontal-scroller.js";
2
+ export {
3
+ r as HorizontalScroller,
4
+ a as default
5
+ };