react-wizard-engine 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # react-wizard-engine
2
2
 
3
+ ## 0.1.6
4
+
5
+ ### Patch Changes
6
+
7
+ - Internal: `pnpm typecheck` now uses `tsconfig.build.json` (excludes spec files), removing jest-dom matcher false positives. Wrap `WizardLayout` in `forwardRef` so refs attach correctly on React 18 (peer dep allows `>=18`). Add `afterEach(cleanup)` to remaining hook/component specs to fix happy-dom test isolation.
8
+
3
9
  ## 0.1.5
4
10
 
5
11
  ### Patch Changes
@@ -82,8 +82,8 @@ var WizardLayoutContext = _react.createContext.call(void 0, null);
82
82
 
83
83
  // src/shadcn/wizard-layout.tsx
84
84
 
85
- function WizardLayout(props) {
86
- const { children, className, defaultRailTitle = "Wizard steps", rail, railTitle, ref, topBar } = props;
85
+ var WizardLayout = _react.forwardRef.call(void 0, function WizardLayout2(props, ref) {
86
+ const { children, className, defaultRailTitle = "Wizard steps", rail, railTitle, topBar } = props;
87
87
  const [mobileSheetOpen, setMobileSheetOpen] = _react.useState.call(void 0, false);
88
88
  const closeMobileSheet = () => setMobileSheetOpen(false);
89
89
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, WizardLayoutContext.Provider, { value: { mobileSheetOpen, setMobileSheetOpen }, children: [
@@ -134,7 +134,7 @@ function WizardLayout(props) {
134
134
  )
135
135
  ] }) })
136
136
  ] });
137
- }
137
+ });
138
138
 
139
139
  // src/shadcn/wizard-top-bar.tsx
140
140
  var _lucidereact = require('lucide-react');
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/knazark/work/extract-tmp/perks-extract/dist/shadcn/index.cjs","../../src/shadcn/default-back-arrow-icon.tsx","../../src/shadcn/default-button.tsx","../../src/shadcn/components-provider-with-defaults.tsx","../../src/shadcn/wizard-layout.tsx","../../src/shadcn/wizard-layout.context.ts","../../src/shadcn/wizard-top-bar.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"/Users/knazark/work/extract-tmp/perks-extract/dist/shadcn/index.cjs","sourcesContent":[null,"'use client';\n\nimport { type ComponentProps } from 'react';\n\nimport { cn } from '~/utils/cn';\n\n/** Animated back-arrow icon. The arrow translates -2px on the parent's group-hover. */\nexport function defaultBackArrowIcon({ className, ...rest }: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn(\n\t\t\t\t'h-4 w-4 transition-transform duration-150 group-hover:-translate-x-0.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={1.75}\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t\taria-hidden\n\t\t\t{...rest}\n\t\t>\n\t\t\t<path d=\"M10 4 L6 8 L10 12\" />\n\t\t</svg>\n\t);\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ElementType, forwardRef, type ReactNode } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { type IWizardButtonProps } from '../react/components-provider';\n\nconst buttonVariants = cva(\n\t'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground hover:bg-primary/90',\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 px-4 py-2',\n\t\t\t\t'icon-sm': 'h-8 w-8',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t}\n);\n\ntype InternalProps = Omit<IWizardButtonProps, 'size' | 'variant'> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tchildren?: ReactNode;\n\t};\n\nexport const defaultButton = forwardRef<HTMLButtonElement, InternalProps>(function DefaultButton(\n\t{ asChild, className, size, variant, type, ...rest },\n\tref\n) {\n\tconst Comp: ElementType = asChild ? Slot : 'button';\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\ttype={asChild ? undefined : (type ?? 'button')}\n\t\t\tclassName={cn(buttonVariants({ size, variant }), className)}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n","'use client';\n\nimport { type ReactNode } from 'react';\n\nimport { WizardComponentsProvider } from '../react/components-provider';\nimport { defaultBackArrowIcon } from './default-back-arrow-icon';\nimport { defaultButton } from './default-button';\n\n/**\n * Convenience wrapper around `WizardComponentsProvider` that wires in the\n * package-shipped `defaultButton` and `defaultBackArrowIcon`. Use this if\n * you want the styled adapter out of the box; use `WizardComponentsProvider`\n * directly if you want to pass your own.\n */\nexport function WizardComponentsProviderWithDefaults({ children }: { children: ReactNode }) {\n\treturn (\n\t\t<WizardComponentsProvider Button={defaultButton} BackArrowIcon={defaultBackArrowIcon}>\n\t\t\t{children}\n\t\t</WizardComponentsProvider>\n\t);\n}\n","'use client';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { type ReactNode, type Ref, useState } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardLayoutProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tdefaultRailTitle?: string;\n\trail: ReactNode;\n\trailTitle?: ReactNode;\n\tref?: Ref<HTMLDivElement>;\n\ttopBar: ReactNode;\n}\n\n/**\n * Full-page wizard shell. Renders a top bar across the right column on\n * desktop, a vertical rail on the left, and a scrollable content area for\n * the active step. Below the `md` breakpoint the rail collapses into a\n * left-side dialog whose open state is exposed via `WizardLayoutContext`\n * so the top bar's hamburger button can drive it.\n */\nexport function WizardLayout(props: IWizardLayoutProps) {\n\tconst { children, className, defaultRailTitle = 'Wizard steps', rail, railTitle, ref, topBar } = props;\n\tconst [mobileSheetOpen, setMobileSheetOpen] = useState(false);\n\n\tconst closeMobileSheet = () => setMobileSheetOpen(false);\n\n\treturn (\n\t\t<WizardLayoutContext.Provider value={{ mobileSheetOpen, setMobileSheetOpen }}>\n\t\t\t<div className={cn('flex h-full min-h-0 w-full flex-1 bg-sidebar', className)} data-slot=\"wizard-layout-outer\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"flex flex-1 overflow-hidden bg-background text-foreground shadow-sm ring-1 ring-foreground/10 md:rounded-xl\"\n\t\t\t\t\tdata-slot=\"wizard-layout\"\n\t\t\t\t>\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName=\"hidden w-[280px] shrink-0 flex-col gap-4 border-r border-border px-4 py-6 md:flex\"\n\t\t\t\t\t\tdata-slot=\"wizard-layout-rail\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{railTitle && <div className=\"px-3 text-base font-semibold text-foreground\">{railTitle}</div>}\n\t\t\t\t\t\t{rail}\n\t\t\t\t\t</aside>\n\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 flex-col\">\n\t\t\t\t\t\t{topBar}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"min-h-0 flex-1 overflow-y-auto px-4 py-6 sm:px-8\"\n\t\t\t\t\t\t\tdata-slot=\"wizard-layout-scroll\"\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dialog.Root onOpenChange={setMobileSheetOpen} open={mobileSheetOpen}>\n\t\t\t\t<Dialog.Portal>\n\t\t\t\t\t<Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\" />\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\taria-describedby={undefined}\n\t\t\t\t\t\tclassName=\"fixed inset-y-0 left-0 z-50 flex w-3/4 max-w-sm flex-col gap-4 border-r border-border bg-background px-4 py-6 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Dialog.Title className=\"px-3 text-base font-semibold\">{railTitle ?? defaultRailTitle}</Dialog.Title>\n\t\t\t\t\t\t<div onClickCapture={closeMobileSheet}>{rail}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Portal>\n\t\t\t</Dialog.Root>\n\t\t</WizardLayoutContext.Provider>\n\t);\n}\n","'use client';\n\nimport { createContext } from 'react';\n\nexport interface IWizardLayoutContextValue {\n\tmobileSheetOpen: boolean;\n\tsetMobileSheetOpen: (open: boolean) => void;\n}\n\n/**\n * Communicates the rail's mobile-Sheet open state from `WizardLayout` to\n * `WizardTopBar`. Null outside a layout — consumers (top bar's hamburger\n * button) silently no-op when context is missing, so the top bar stays usable\n * outside `WizardLayout`.\n */\nexport const WizardLayoutContext = createContext<IWizardLayoutContextValue | null>(null);\n","'use client';\n\nimport { MenuIcon, XIcon } from 'lucide-react';\nimport { type ReactNode, useContext } from 'react';\n\nimport { useWizardComponents } from '../react/components-provider';\nimport { useWizard } from '../react/use-wizard';\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardTopBarProps {\n\tbackLabel?: ReactNode;\n\tclassName?: string;\n\tcloseLabel?: string;\n\tdisabled?: boolean;\n\textraActions?: ReactNode;\n\tfinishLabel?: ReactNode;\n\tmenuLabel?: string;\n\tnextLabel?: ReactNode;\n\tonClose: () => void;\n}\n\n/**\n * Header bar for full-page wizard layouts. Renders Back / primary action /\n * extras / close X. Reads `useWizard` for first/last-step detection. The\n * primary action is `type=\"submit\"` on the last step (lets the parent form\n * own submission) and dispatches `wizard.next()` otherwise. Hamburger only\n * surfaces when wrapped by a `WizardLayout`.\n */\nexport function WizardTopBar(props: IWizardTopBarProps) {\n\tconst { backLabel, className, closeLabel, disabled, extraActions, finishLabel, menuLabel, nextLabel, onClose } =\n\t\tprops;\n\tconst wizard = useWizard();\n\tconst layout = useContext(WizardLayoutContext);\n\tconst { Button, BackArrowIcon } = useWizardComponents();\n\n\tconst config = wizard.configOptions;\n\tconst tree = wizard.tree;\n\tconst isFirstStep = tree.activeBranch.prevCategory == null && tree.activeCategory.prevStep == null;\n\tconst isLastStep = tree.activeBranch.nextCategory == null && tree.activeCategory.nextStep == null;\n\n\tconst resolvedBackLabel = backLabel ?? config.backBtnText;\n\tconst resolvedFinishLabel = finishLabel ?? config.finishText;\n\tconst resolvedNextLabel = nextLabel ?? config.nextBtnText;\n\tconst resolvedMenuLabel = menuLabel ?? 'Open wizard steps';\n\tconst resolvedCloseLabel = closeLabel ?? 'Close';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('flex h-14 items-center gap-3 border-b border-border bg-background px-4 sm:px-6', className)}\n\t\t\tdata-slot=\"wizard-top-bar\"\n\t\t>\n\t\t\t{layout && (\n\t\t\t\t<Button\n\t\t\t\t\taria-label={resolvedMenuLabel}\n\t\t\t\t\tclassName=\"md:hidden\"\n\t\t\t\t\tonClick={() => layout.setMobileSheetOpen(true)}\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<MenuIcon />\n\t\t\t\t</Button>\n\t\t\t)}\n\n\t\t\t{!isFirstStep && (\n\t\t\t\t<button\n\t\t\t\t\taria-label={typeof resolvedBackLabel === 'string' ? resolvedBackLabel : undefined}\n\t\t\t\t\tclassName=\"group inline-flex items-center gap-1 rounded-md py-1 pr-2.5 pl-3.5 text-sm font-normal text-muted-foreground transition-colors duration-150 hover:bg-muted hover:text-foreground\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tvoid wizard.back();\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t<BackArrowIcon />\n\t\t\t\t\t<span>{resolvedBackLabel}</span>\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className=\"flex flex-1 items-center justify-end gap-2\">\n\t\t\t\t{extraActions}\n\t\t\t\t{isLastStep ? (\n\t\t\t\t\t<Button disabled={disabled} key=\"wizard-finish\" type=\"submit\" variant=\"default\">\n\t\t\t\t\t\t{resolvedFinishLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tkey=\"wizard-next\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tvoid wizard.next();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedNextLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button aria-label={resolvedCloseLabel} onClick={onClose} size=\"icon-sm\" type=\"button\" variant=\"ghost\">\n\t\t\t\t\t<XIcon />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["/Users/knazark/work/extract-tmp/perks-extract/dist/shadcn/index.cjs","../../src/shadcn/default-back-arrow-icon.tsx","../../src/shadcn/default-button.tsx","../../src/shadcn/components-provider-with-defaults.tsx","../../src/shadcn/wizard-layout.tsx","../../src/shadcn/wizard-layout.context.ts","../../src/shadcn/wizard-top-bar.tsx"],"names":["jsx","forwardRef","WizardLayout","jsxs"],"mappings":"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","file":"/Users/knazark/work/extract-tmp/perks-extract/dist/shadcn/index.cjs","sourcesContent":[null,"'use client';\n\nimport { type ComponentProps } from 'react';\n\nimport { cn } from '~/utils/cn';\n\n/** Animated back-arrow icon. The arrow translates -2px on the parent's group-hover. */\nexport function defaultBackArrowIcon({ className, ...rest }: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn(\n\t\t\t\t'h-4 w-4 transition-transform duration-150 group-hover:-translate-x-0.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={1.75}\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t\taria-hidden\n\t\t\t{...rest}\n\t\t>\n\t\t\t<path d=\"M10 4 L6 8 L10 12\" />\n\t\t</svg>\n\t);\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ElementType, forwardRef, type ReactNode } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { type IWizardButtonProps } from '../react/components-provider';\n\nconst buttonVariants = cva(\n\t'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground hover:bg-primary/90',\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 px-4 py-2',\n\t\t\t\t'icon-sm': 'h-8 w-8',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t}\n);\n\ntype InternalProps = Omit<IWizardButtonProps, 'size' | 'variant'> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tchildren?: ReactNode;\n\t};\n\nexport const defaultButton = forwardRef<HTMLButtonElement, InternalProps>(function DefaultButton(\n\t{ asChild, className, size, variant, type, ...rest },\n\tref\n) {\n\tconst Comp: ElementType = asChild ? Slot : 'button';\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\ttype={asChild ? undefined : (type ?? 'button')}\n\t\t\tclassName={cn(buttonVariants({ size, variant }), className)}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n","'use client';\n\nimport { type ReactNode } from 'react';\n\nimport { WizardComponentsProvider } from '../react/components-provider';\nimport { defaultBackArrowIcon } from './default-back-arrow-icon';\nimport { defaultButton } from './default-button';\n\n/**\n * Convenience wrapper around `WizardComponentsProvider` that wires in the\n * package-shipped `defaultButton` and `defaultBackArrowIcon`. Use this if\n * you want the styled adapter out of the box; use `WizardComponentsProvider`\n * directly if you want to pass your own.\n */\nexport function WizardComponentsProviderWithDefaults({ children }: { children: ReactNode }) {\n\treturn (\n\t\t<WizardComponentsProvider Button={defaultButton} BackArrowIcon={defaultBackArrowIcon}>\n\t\t\t{children}\n\t\t</WizardComponentsProvider>\n\t);\n}\n","'use client';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { forwardRef, type ReactNode, useState } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardLayoutProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tdefaultRailTitle?: string;\n\trail: ReactNode;\n\trailTitle?: ReactNode;\n\ttopBar: ReactNode;\n}\n\n/**\n * Full-page wizard shell. Renders a top bar across the right column on\n * desktop, a vertical rail on the left, and a scrollable content area for\n * the active step. Below the `md` breakpoint the rail collapses into a\n * left-side dialog whose open state is exposed via `WizardLayoutContext`\n * so the top bar's hamburger button can drive it.\n */\nexport const WizardLayout = forwardRef<HTMLDivElement, IWizardLayoutProps>(function WizardLayout(props, ref) {\n\tconst { children, className, defaultRailTitle = 'Wizard steps', rail, railTitle, topBar } = props;\n\tconst [mobileSheetOpen, setMobileSheetOpen] = useState(false);\n\n\tconst closeMobileSheet = () => setMobileSheetOpen(false);\n\n\treturn (\n\t\t<WizardLayoutContext.Provider value={{ mobileSheetOpen, setMobileSheetOpen }}>\n\t\t\t<div className={cn('flex h-full min-h-0 w-full flex-1 bg-sidebar', className)} data-slot=\"wizard-layout-outer\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"flex flex-1 overflow-hidden bg-background text-foreground shadow-sm ring-1 ring-foreground/10 md:rounded-xl\"\n\t\t\t\t\tdata-slot=\"wizard-layout\"\n\t\t\t\t>\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName=\"hidden w-[280px] shrink-0 flex-col gap-4 border-r border-border px-4 py-6 md:flex\"\n\t\t\t\t\t\tdata-slot=\"wizard-layout-rail\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{railTitle && <div className=\"px-3 text-base font-semibold text-foreground\">{railTitle}</div>}\n\t\t\t\t\t\t{rail}\n\t\t\t\t\t</aside>\n\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 flex-col\">\n\t\t\t\t\t\t{topBar}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"min-h-0 flex-1 overflow-y-auto px-4 py-6 sm:px-8\"\n\t\t\t\t\t\t\tdata-slot=\"wizard-layout-scroll\"\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dialog.Root onOpenChange={setMobileSheetOpen} open={mobileSheetOpen}>\n\t\t\t\t<Dialog.Portal>\n\t\t\t\t\t<Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\" />\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\taria-describedby={undefined}\n\t\t\t\t\t\tclassName=\"fixed inset-y-0 left-0 z-50 flex w-3/4 max-w-sm flex-col gap-4 border-r border-border bg-background px-4 py-6 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Dialog.Title className=\"px-3 text-base font-semibold\">{railTitle ?? defaultRailTitle}</Dialog.Title>\n\t\t\t\t\t\t<div onClickCapture={closeMobileSheet}>{rail}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Portal>\n\t\t\t</Dialog.Root>\n\t\t</WizardLayoutContext.Provider>\n\t);\n});\n","'use client';\n\nimport { createContext } from 'react';\n\nexport interface IWizardLayoutContextValue {\n\tmobileSheetOpen: boolean;\n\tsetMobileSheetOpen: (open: boolean) => void;\n}\n\n/**\n * Communicates the rail's mobile-Sheet open state from `WizardLayout` to\n * `WizardTopBar`. Null outside a layout — consumers (top bar's hamburger\n * button) silently no-op when context is missing, so the top bar stays usable\n * outside `WizardLayout`.\n */\nexport const WizardLayoutContext = createContext<IWizardLayoutContextValue | null>(null);\n","'use client';\n\nimport { MenuIcon, XIcon } from 'lucide-react';\nimport { type ReactNode, useContext } from 'react';\n\nimport { useWizardComponents } from '../react/components-provider';\nimport { useWizard } from '../react/use-wizard';\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardTopBarProps {\n\tbackLabel?: ReactNode;\n\tclassName?: string;\n\tcloseLabel?: string;\n\tdisabled?: boolean;\n\textraActions?: ReactNode;\n\tfinishLabel?: ReactNode;\n\tmenuLabel?: string;\n\tnextLabel?: ReactNode;\n\tonClose: () => void;\n}\n\n/**\n * Header bar for full-page wizard layouts. Renders Back / primary action /\n * extras / close X. Reads `useWizard` for first/last-step detection. The\n * primary action is `type=\"submit\"` on the last step (lets the parent form\n * own submission) and dispatches `wizard.next()` otherwise. Hamburger only\n * surfaces when wrapped by a `WizardLayout`.\n */\nexport function WizardTopBar(props: IWizardTopBarProps) {\n\tconst { backLabel, className, closeLabel, disabled, extraActions, finishLabel, menuLabel, nextLabel, onClose } =\n\t\tprops;\n\tconst wizard = useWizard();\n\tconst layout = useContext(WizardLayoutContext);\n\tconst { Button, BackArrowIcon } = useWizardComponents();\n\n\tconst config = wizard.configOptions;\n\tconst tree = wizard.tree;\n\tconst isFirstStep = tree.activeBranch.prevCategory == null && tree.activeCategory.prevStep == null;\n\tconst isLastStep = tree.activeBranch.nextCategory == null && tree.activeCategory.nextStep == null;\n\n\tconst resolvedBackLabel = backLabel ?? config.backBtnText;\n\tconst resolvedFinishLabel = finishLabel ?? config.finishText;\n\tconst resolvedNextLabel = nextLabel ?? config.nextBtnText;\n\tconst resolvedMenuLabel = menuLabel ?? 'Open wizard steps';\n\tconst resolvedCloseLabel = closeLabel ?? 'Close';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('flex h-14 items-center gap-3 border-b border-border bg-background px-4 sm:px-6', className)}\n\t\t\tdata-slot=\"wizard-top-bar\"\n\t\t>\n\t\t\t{layout && (\n\t\t\t\t<Button\n\t\t\t\t\taria-label={resolvedMenuLabel}\n\t\t\t\t\tclassName=\"md:hidden\"\n\t\t\t\t\tonClick={() => layout.setMobileSheetOpen(true)}\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<MenuIcon />\n\t\t\t\t</Button>\n\t\t\t)}\n\n\t\t\t{!isFirstStep && (\n\t\t\t\t<button\n\t\t\t\t\taria-label={typeof resolvedBackLabel === 'string' ? resolvedBackLabel : undefined}\n\t\t\t\t\tclassName=\"group inline-flex items-center gap-1 rounded-md py-1 pr-2.5 pl-3.5 text-sm font-normal text-muted-foreground transition-colors duration-150 hover:bg-muted hover:text-foreground\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tvoid wizard.back();\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t<BackArrowIcon />\n\t\t\t\t\t<span>{resolvedBackLabel}</span>\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className=\"flex flex-1 items-center justify-end gap-2\">\n\t\t\t\t{extraActions}\n\t\t\t\t{isLastStep ? (\n\t\t\t\t\t<Button disabled={disabled} key=\"wizard-finish\" type=\"submit\" variant=\"default\">\n\t\t\t\t\t\t{resolvedFinishLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tkey=\"wizard-next\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tvoid wizard.next();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedNextLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button aria-label={resolvedCloseLabel} onClick={onClose} size=\"icon-sm\" type=\"button\" variant=\"ghost\">\n\t\t\t\t\t<XIcon />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
- import { ReactNode, ComponentProps, Ref } from 'react';
3
+ import { ReactNode, ComponentProps } from 'react';
4
4
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
  import { a as IWizardButtonProps } from '../components-provider-bC3_zfyb.cjs';
@@ -31,7 +31,6 @@ interface IWizardLayoutProps {
31
31
  defaultRailTitle?: string;
32
32
  rail: ReactNode;
33
33
  railTitle?: ReactNode;
34
- ref?: Ref<HTMLDivElement>;
35
34
  topBar: ReactNode;
36
35
  }
37
36
  /**
@@ -41,7 +40,7 @@ interface IWizardLayoutProps {
41
40
  * left-side dialog whose open state is exposed via `WizardLayoutContext`
42
41
  * so the top bar's hamburger button can drive it.
43
42
  */
44
- declare function WizardLayout(props: IWizardLayoutProps): react_jsx_runtime.JSX.Element;
43
+ declare const WizardLayout: react.ForwardRefExoticComponent<IWizardLayoutProps & react.RefAttributes<HTMLDivElement>>;
45
44
 
46
45
  interface IWizardLayoutContextValue {
47
46
  mobileSheetOpen: boolean;
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
- import { ReactNode, ComponentProps, Ref } from 'react';
3
+ import { ReactNode, ComponentProps } from 'react';
4
4
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
  import { a as IWizardButtonProps } from '../components-provider-bC3_zfyb.js';
@@ -31,7 +31,6 @@ interface IWizardLayoutProps {
31
31
  defaultRailTitle?: string;
32
32
  rail: ReactNode;
33
33
  railTitle?: ReactNode;
34
- ref?: Ref<HTMLDivElement>;
35
34
  topBar: ReactNode;
36
35
  }
37
36
  /**
@@ -41,7 +40,7 @@ interface IWizardLayoutProps {
41
40
  * left-side dialog whose open state is exposed via `WizardLayoutContext`
42
41
  * so the top bar's hamburger button can drive it.
43
42
  */
44
- declare function WizardLayout(props: IWizardLayoutProps): react_jsx_runtime.JSX.Element;
43
+ declare const WizardLayout: react.ForwardRefExoticComponent<IWizardLayoutProps & react.RefAttributes<HTMLDivElement>>;
45
44
 
46
45
  interface IWizardLayoutContextValue {
47
46
  mobileSheetOpen: boolean;
@@ -74,7 +74,7 @@ function WizardComponentsProviderWithDefaults({ children }) {
74
74
 
75
75
  // src/shadcn/wizard-layout.tsx
76
76
  import * as Dialog from "@radix-ui/react-dialog";
77
- import { useState } from "react";
77
+ import { forwardRef as forwardRef2, useState } from "react";
78
78
 
79
79
  // src/shadcn/wizard-layout.context.ts
80
80
  import { createContext } from "react";
@@ -82,8 +82,8 @@ var WizardLayoutContext = createContext(null);
82
82
 
83
83
  // src/shadcn/wizard-layout.tsx
84
84
  import { jsx as jsx4, jsxs } from "react/jsx-runtime";
85
- function WizardLayout(props) {
86
- const { children, className, defaultRailTitle = "Wizard steps", rail, railTitle, ref, topBar } = props;
85
+ var WizardLayout = forwardRef2(function WizardLayout2(props, ref) {
86
+ const { children, className, defaultRailTitle = "Wizard steps", rail, railTitle, topBar } = props;
87
87
  const [mobileSheetOpen, setMobileSheetOpen] = useState(false);
88
88
  const closeMobileSheet = () => setMobileSheetOpen(false);
89
89
  return /* @__PURE__ */ jsxs(WizardLayoutContext.Provider, { value: { mobileSheetOpen, setMobileSheetOpen }, children: [
@@ -134,7 +134,7 @@ function WizardLayout(props) {
134
134
  )
135
135
  ] }) })
136
136
  ] });
137
- }
137
+ });
138
138
 
139
139
  // src/shadcn/wizard-top-bar.tsx
140
140
  import { MenuIcon, XIcon } from "lucide-react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shadcn/default-back-arrow-icon.tsx","../../src/shadcn/default-button.tsx","../../src/shadcn/components-provider-with-defaults.tsx","../../src/shadcn/wizard-layout.tsx","../../src/shadcn/wizard-layout.context.ts","../../src/shadcn/wizard-top-bar.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentProps } from 'react';\n\nimport { cn } from '~/utils/cn';\n\n/** Animated back-arrow icon. The arrow translates -2px on the parent's group-hover. */\nexport function defaultBackArrowIcon({ className, ...rest }: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn(\n\t\t\t\t'h-4 w-4 transition-transform duration-150 group-hover:-translate-x-0.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={1.75}\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t\taria-hidden\n\t\t\t{...rest}\n\t\t>\n\t\t\t<path d=\"M10 4 L6 8 L10 12\" />\n\t\t</svg>\n\t);\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ElementType, forwardRef, type ReactNode } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { type IWizardButtonProps } from '../react/components-provider';\n\nconst buttonVariants = cva(\n\t'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground hover:bg-primary/90',\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 px-4 py-2',\n\t\t\t\t'icon-sm': 'h-8 w-8',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t}\n);\n\ntype InternalProps = Omit<IWizardButtonProps, 'size' | 'variant'> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tchildren?: ReactNode;\n\t};\n\nexport const defaultButton = forwardRef<HTMLButtonElement, InternalProps>(function DefaultButton(\n\t{ asChild, className, size, variant, type, ...rest },\n\tref\n) {\n\tconst Comp: ElementType = asChild ? Slot : 'button';\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\ttype={asChild ? undefined : (type ?? 'button')}\n\t\t\tclassName={cn(buttonVariants({ size, variant }), className)}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n","'use client';\n\nimport { type ReactNode } from 'react';\n\nimport { WizardComponentsProvider } from '../react/components-provider';\nimport { defaultBackArrowIcon } from './default-back-arrow-icon';\nimport { defaultButton } from './default-button';\n\n/**\n * Convenience wrapper around `WizardComponentsProvider` that wires in the\n * package-shipped `defaultButton` and `defaultBackArrowIcon`. Use this if\n * you want the styled adapter out of the box; use `WizardComponentsProvider`\n * directly if you want to pass your own.\n */\nexport function WizardComponentsProviderWithDefaults({ children }: { children: ReactNode }) {\n\treturn (\n\t\t<WizardComponentsProvider Button={defaultButton} BackArrowIcon={defaultBackArrowIcon}>\n\t\t\t{children}\n\t\t</WizardComponentsProvider>\n\t);\n}\n","'use client';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { type ReactNode, type Ref, useState } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardLayoutProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tdefaultRailTitle?: string;\n\trail: ReactNode;\n\trailTitle?: ReactNode;\n\tref?: Ref<HTMLDivElement>;\n\ttopBar: ReactNode;\n}\n\n/**\n * Full-page wizard shell. Renders a top bar across the right column on\n * desktop, a vertical rail on the left, and a scrollable content area for\n * the active step. Below the `md` breakpoint the rail collapses into a\n * left-side dialog whose open state is exposed via `WizardLayoutContext`\n * so the top bar's hamburger button can drive it.\n */\nexport function WizardLayout(props: IWizardLayoutProps) {\n\tconst { children, className, defaultRailTitle = 'Wizard steps', rail, railTitle, ref, topBar } = props;\n\tconst [mobileSheetOpen, setMobileSheetOpen] = useState(false);\n\n\tconst closeMobileSheet = () => setMobileSheetOpen(false);\n\n\treturn (\n\t\t<WizardLayoutContext.Provider value={{ mobileSheetOpen, setMobileSheetOpen }}>\n\t\t\t<div className={cn('flex h-full min-h-0 w-full flex-1 bg-sidebar', className)} data-slot=\"wizard-layout-outer\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"flex flex-1 overflow-hidden bg-background text-foreground shadow-sm ring-1 ring-foreground/10 md:rounded-xl\"\n\t\t\t\t\tdata-slot=\"wizard-layout\"\n\t\t\t\t>\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName=\"hidden w-[280px] shrink-0 flex-col gap-4 border-r border-border px-4 py-6 md:flex\"\n\t\t\t\t\t\tdata-slot=\"wizard-layout-rail\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{railTitle && <div className=\"px-3 text-base font-semibold text-foreground\">{railTitle}</div>}\n\t\t\t\t\t\t{rail}\n\t\t\t\t\t</aside>\n\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 flex-col\">\n\t\t\t\t\t\t{topBar}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"min-h-0 flex-1 overflow-y-auto px-4 py-6 sm:px-8\"\n\t\t\t\t\t\t\tdata-slot=\"wizard-layout-scroll\"\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dialog.Root onOpenChange={setMobileSheetOpen} open={mobileSheetOpen}>\n\t\t\t\t<Dialog.Portal>\n\t\t\t\t\t<Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\" />\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\taria-describedby={undefined}\n\t\t\t\t\t\tclassName=\"fixed inset-y-0 left-0 z-50 flex w-3/4 max-w-sm flex-col gap-4 border-r border-border bg-background px-4 py-6 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Dialog.Title className=\"px-3 text-base font-semibold\">{railTitle ?? defaultRailTitle}</Dialog.Title>\n\t\t\t\t\t\t<div onClickCapture={closeMobileSheet}>{rail}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Portal>\n\t\t\t</Dialog.Root>\n\t\t</WizardLayoutContext.Provider>\n\t);\n}\n","'use client';\n\nimport { createContext } from 'react';\n\nexport interface IWizardLayoutContextValue {\n\tmobileSheetOpen: boolean;\n\tsetMobileSheetOpen: (open: boolean) => void;\n}\n\n/**\n * Communicates the rail's mobile-Sheet open state from `WizardLayout` to\n * `WizardTopBar`. Null outside a layout — consumers (top bar's hamburger\n * button) silently no-op when context is missing, so the top bar stays usable\n * outside `WizardLayout`.\n */\nexport const WizardLayoutContext = createContext<IWizardLayoutContextValue | null>(null);\n","'use client';\n\nimport { MenuIcon, XIcon } from 'lucide-react';\nimport { type ReactNode, useContext } from 'react';\n\nimport { useWizardComponents } from '../react/components-provider';\nimport { useWizard } from '../react/use-wizard';\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardTopBarProps {\n\tbackLabel?: ReactNode;\n\tclassName?: string;\n\tcloseLabel?: string;\n\tdisabled?: boolean;\n\textraActions?: ReactNode;\n\tfinishLabel?: ReactNode;\n\tmenuLabel?: string;\n\tnextLabel?: ReactNode;\n\tonClose: () => void;\n}\n\n/**\n * Header bar for full-page wizard layouts. Renders Back / primary action /\n * extras / close X. Reads `useWizard` for first/last-step detection. The\n * primary action is `type=\"submit\"` on the last step (lets the parent form\n * own submission) and dispatches `wizard.next()` otherwise. Hamburger only\n * surfaces when wrapped by a `WizardLayout`.\n */\nexport function WizardTopBar(props: IWizardTopBarProps) {\n\tconst { backLabel, className, closeLabel, disabled, extraActions, finishLabel, menuLabel, nextLabel, onClose } =\n\t\tprops;\n\tconst wizard = useWizard();\n\tconst layout = useContext(WizardLayoutContext);\n\tconst { Button, BackArrowIcon } = useWizardComponents();\n\n\tconst config = wizard.configOptions;\n\tconst tree = wizard.tree;\n\tconst isFirstStep = tree.activeBranch.prevCategory == null && tree.activeCategory.prevStep == null;\n\tconst isLastStep = tree.activeBranch.nextCategory == null && tree.activeCategory.nextStep == null;\n\n\tconst resolvedBackLabel = backLabel ?? config.backBtnText;\n\tconst resolvedFinishLabel = finishLabel ?? config.finishText;\n\tconst resolvedNextLabel = nextLabel ?? config.nextBtnText;\n\tconst resolvedMenuLabel = menuLabel ?? 'Open wizard steps';\n\tconst resolvedCloseLabel = closeLabel ?? 'Close';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('flex h-14 items-center gap-3 border-b border-border bg-background px-4 sm:px-6', className)}\n\t\t\tdata-slot=\"wizard-top-bar\"\n\t\t>\n\t\t\t{layout && (\n\t\t\t\t<Button\n\t\t\t\t\taria-label={resolvedMenuLabel}\n\t\t\t\t\tclassName=\"md:hidden\"\n\t\t\t\t\tonClick={() => layout.setMobileSheetOpen(true)}\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<MenuIcon />\n\t\t\t\t</Button>\n\t\t\t)}\n\n\t\t\t{!isFirstStep && (\n\t\t\t\t<button\n\t\t\t\t\taria-label={typeof resolvedBackLabel === 'string' ? resolvedBackLabel : undefined}\n\t\t\t\t\tclassName=\"group inline-flex items-center gap-1 rounded-md py-1 pr-2.5 pl-3.5 text-sm font-normal text-muted-foreground transition-colors duration-150 hover:bg-muted hover:text-foreground\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tvoid wizard.back();\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t<BackArrowIcon />\n\t\t\t\t\t<span>{resolvedBackLabel}</span>\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className=\"flex flex-1 items-center justify-end gap-2\">\n\t\t\t\t{extraActions}\n\t\t\t\t{isLastStep ? (\n\t\t\t\t\t<Button disabled={disabled} key=\"wizard-finish\" type=\"submit\" variant=\"default\">\n\t\t\t\t\t\t{resolvedFinishLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tkey=\"wizard-next\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tvoid wizard.next();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedNextLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button aria-label={resolvedCloseLabel} onClick={onClose} size=\"icon-sm\" type=\"button\" variant=\"ghost\">\n\t\t\t\t\t<XIcon />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsxs"]}
1
+ {"version":3,"sources":["../../src/shadcn/default-back-arrow-icon.tsx","../../src/shadcn/default-button.tsx","../../src/shadcn/components-provider-with-defaults.tsx","../../src/shadcn/wizard-layout.tsx","../../src/shadcn/wizard-layout.context.ts","../../src/shadcn/wizard-top-bar.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentProps } from 'react';\n\nimport { cn } from '~/utils/cn';\n\n/** Animated back-arrow icon. The arrow translates -2px on the parent's group-hover. */\nexport function defaultBackArrowIcon({ className, ...rest }: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn(\n\t\t\t\t'h-4 w-4 transition-transform duration-150 group-hover:-translate-x-0.5',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={1.75}\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tviewBox=\"0 0 16 16\"\n\t\t\taria-hidden\n\t\t\t{...rest}\n\t\t>\n\t\t\t<path d=\"M10 4 L6 8 L10 12\" />\n\t\t</svg>\n\t);\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ElementType, forwardRef, type ReactNode } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { type IWizardButtonProps } from '../react/components-provider';\n\nconst buttonVariants = cva(\n\t'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground hover:bg-primary/90',\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 px-4 py-2',\n\t\t\t\t'icon-sm': 'h-8 w-8',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t}\n);\n\ntype InternalProps = Omit<IWizardButtonProps, 'size' | 'variant'> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tchildren?: ReactNode;\n\t};\n\nexport const defaultButton = forwardRef<HTMLButtonElement, InternalProps>(function DefaultButton(\n\t{ asChild, className, size, variant, type, ...rest },\n\tref\n) {\n\tconst Comp: ElementType = asChild ? Slot : 'button';\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\ttype={asChild ? undefined : (type ?? 'button')}\n\t\t\tclassName={cn(buttonVariants({ size, variant }), className)}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n","'use client';\n\nimport { type ReactNode } from 'react';\n\nimport { WizardComponentsProvider } from '../react/components-provider';\nimport { defaultBackArrowIcon } from './default-back-arrow-icon';\nimport { defaultButton } from './default-button';\n\n/**\n * Convenience wrapper around `WizardComponentsProvider` that wires in the\n * package-shipped `defaultButton` and `defaultBackArrowIcon`. Use this if\n * you want the styled adapter out of the box; use `WizardComponentsProvider`\n * directly if you want to pass your own.\n */\nexport function WizardComponentsProviderWithDefaults({ children }: { children: ReactNode }) {\n\treturn (\n\t\t<WizardComponentsProvider Button={defaultButton} BackArrowIcon={defaultBackArrowIcon}>\n\t\t\t{children}\n\t\t</WizardComponentsProvider>\n\t);\n}\n","'use client';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { forwardRef, type ReactNode, useState } from 'react';\n\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardLayoutProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tdefaultRailTitle?: string;\n\trail: ReactNode;\n\trailTitle?: ReactNode;\n\ttopBar: ReactNode;\n}\n\n/**\n * Full-page wizard shell. Renders a top bar across the right column on\n * desktop, a vertical rail on the left, and a scrollable content area for\n * the active step. Below the `md` breakpoint the rail collapses into a\n * left-side dialog whose open state is exposed via `WizardLayoutContext`\n * so the top bar's hamburger button can drive it.\n */\nexport const WizardLayout = forwardRef<HTMLDivElement, IWizardLayoutProps>(function WizardLayout(props, ref) {\n\tconst { children, className, defaultRailTitle = 'Wizard steps', rail, railTitle, topBar } = props;\n\tconst [mobileSheetOpen, setMobileSheetOpen] = useState(false);\n\n\tconst closeMobileSheet = () => setMobileSheetOpen(false);\n\n\treturn (\n\t\t<WizardLayoutContext.Provider value={{ mobileSheetOpen, setMobileSheetOpen }}>\n\t\t\t<div className={cn('flex h-full min-h-0 w-full flex-1 bg-sidebar', className)} data-slot=\"wizard-layout-outer\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"flex flex-1 overflow-hidden bg-background text-foreground shadow-sm ring-1 ring-foreground/10 md:rounded-xl\"\n\t\t\t\t\tdata-slot=\"wizard-layout\"\n\t\t\t\t>\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName=\"hidden w-[280px] shrink-0 flex-col gap-4 border-r border-border px-4 py-6 md:flex\"\n\t\t\t\t\t\tdata-slot=\"wizard-layout-rail\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{railTitle && <div className=\"px-3 text-base font-semibold text-foreground\">{railTitle}</div>}\n\t\t\t\t\t\t{rail}\n\t\t\t\t\t</aside>\n\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 flex-col\">\n\t\t\t\t\t\t{topBar}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"min-h-0 flex-1 overflow-y-auto px-4 py-6 sm:px-8\"\n\t\t\t\t\t\t\tdata-slot=\"wizard-layout-scroll\"\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dialog.Root onOpenChange={setMobileSheetOpen} open={mobileSheetOpen}>\n\t\t\t\t<Dialog.Portal>\n\t\t\t\t\t<Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\" />\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\taria-describedby={undefined}\n\t\t\t\t\t\tclassName=\"fixed inset-y-0 left-0 z-50 flex w-3/4 max-w-sm flex-col gap-4 border-r border-border bg-background px-4 py-6 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Dialog.Title className=\"px-3 text-base font-semibold\">{railTitle ?? defaultRailTitle}</Dialog.Title>\n\t\t\t\t\t\t<div onClickCapture={closeMobileSheet}>{rail}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Portal>\n\t\t\t</Dialog.Root>\n\t\t</WizardLayoutContext.Provider>\n\t);\n});\n","'use client';\n\nimport { createContext } from 'react';\n\nexport interface IWizardLayoutContextValue {\n\tmobileSheetOpen: boolean;\n\tsetMobileSheetOpen: (open: boolean) => void;\n}\n\n/**\n * Communicates the rail's mobile-Sheet open state from `WizardLayout` to\n * `WizardTopBar`. Null outside a layout — consumers (top bar's hamburger\n * button) silently no-op when context is missing, so the top bar stays usable\n * outside `WizardLayout`.\n */\nexport const WizardLayoutContext = createContext<IWizardLayoutContextValue | null>(null);\n","'use client';\n\nimport { MenuIcon, XIcon } from 'lucide-react';\nimport { type ReactNode, useContext } from 'react';\n\nimport { useWizardComponents } from '../react/components-provider';\nimport { useWizard } from '../react/use-wizard';\nimport { cn } from '~/utils/cn';\nimport { WizardLayoutContext } from './wizard-layout.context';\n\ninterface IWizardTopBarProps {\n\tbackLabel?: ReactNode;\n\tclassName?: string;\n\tcloseLabel?: string;\n\tdisabled?: boolean;\n\textraActions?: ReactNode;\n\tfinishLabel?: ReactNode;\n\tmenuLabel?: string;\n\tnextLabel?: ReactNode;\n\tonClose: () => void;\n}\n\n/**\n * Header bar for full-page wizard layouts. Renders Back / primary action /\n * extras / close X. Reads `useWizard` for first/last-step detection. The\n * primary action is `type=\"submit\"` on the last step (lets the parent form\n * own submission) and dispatches `wizard.next()` otherwise. Hamburger only\n * surfaces when wrapped by a `WizardLayout`.\n */\nexport function WizardTopBar(props: IWizardTopBarProps) {\n\tconst { backLabel, className, closeLabel, disabled, extraActions, finishLabel, menuLabel, nextLabel, onClose } =\n\t\tprops;\n\tconst wizard = useWizard();\n\tconst layout = useContext(WizardLayoutContext);\n\tconst { Button, BackArrowIcon } = useWizardComponents();\n\n\tconst config = wizard.configOptions;\n\tconst tree = wizard.tree;\n\tconst isFirstStep = tree.activeBranch.prevCategory == null && tree.activeCategory.prevStep == null;\n\tconst isLastStep = tree.activeBranch.nextCategory == null && tree.activeCategory.nextStep == null;\n\n\tconst resolvedBackLabel = backLabel ?? config.backBtnText;\n\tconst resolvedFinishLabel = finishLabel ?? config.finishText;\n\tconst resolvedNextLabel = nextLabel ?? config.nextBtnText;\n\tconst resolvedMenuLabel = menuLabel ?? 'Open wizard steps';\n\tconst resolvedCloseLabel = closeLabel ?? 'Close';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('flex h-14 items-center gap-3 border-b border-border bg-background px-4 sm:px-6', className)}\n\t\t\tdata-slot=\"wizard-top-bar\"\n\t\t>\n\t\t\t{layout && (\n\t\t\t\t<Button\n\t\t\t\t\taria-label={resolvedMenuLabel}\n\t\t\t\t\tclassName=\"md:hidden\"\n\t\t\t\t\tonClick={() => layout.setMobileSheetOpen(true)}\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<MenuIcon />\n\t\t\t\t</Button>\n\t\t\t)}\n\n\t\t\t{!isFirstStep && (\n\t\t\t\t<button\n\t\t\t\t\taria-label={typeof resolvedBackLabel === 'string' ? resolvedBackLabel : undefined}\n\t\t\t\t\tclassName=\"group inline-flex items-center gap-1 rounded-md py-1 pr-2.5 pl-3.5 text-sm font-normal text-muted-foreground transition-colors duration-150 hover:bg-muted hover:text-foreground\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tvoid wizard.back();\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t<BackArrowIcon />\n\t\t\t\t\t<span>{resolvedBackLabel}</span>\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className=\"flex flex-1 items-center justify-end gap-2\">\n\t\t\t\t{extraActions}\n\t\t\t\t{isLastStep ? (\n\t\t\t\t\t<Button disabled={disabled} key=\"wizard-finish\" type=\"submit\" variant=\"default\">\n\t\t\t\t\t\t{resolvedFinishLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tkey=\"wizard-next\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tvoid wizard.next();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedNextLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button aria-label={resolvedCloseLabel} onClick={onClose} size=\"icon-sm\" type=\"button\" variant=\"ghost\">\n\t\t\t\t\t<XIcon />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","names":["jsx","jsx","forwardRef","jsx","forwardRef","WizardLayout","jsx","jsxs"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-wizard-engine",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "license": "MIT",
5
5
  "description": "Multi-step flow engine for React: steps, categories, branches, pluggable strategies, async navigation with cancellation.",
6
6
  "keywords": [
@@ -47,7 +47,7 @@
47
47
  "test": "vitest run",
48
48
  "test:watch": "vitest",
49
49
  "lint": "eslint .",
50
- "typecheck": "tsc --noEmit",
50
+ "typecheck": "tsc -p tsconfig.build.json --noEmit",
51
51
  "release": "changeset publish",
52
52
  "prepublishOnly": "pnpm build"
53
53
  },