{"version":3,"file":"origin-ui-components-stepper.mjs","sources":["../../../../packages/components/stepper/src/stepper.ts","../../../../packages/components/stepper/origin-ui-components-stepper.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    Directive,\n    inject,\n    input\n} from '@angular/core';\nimport { cn } from '@origin-ui/components/utils';\nimport {\n    RdxStepperIndicatorDirective,\n    RdxStepperItemDirective,\n    RdxStepperRootDirective,\n    RdxStepperSeparatorDirective,\n    RdxStepperTriggerDirective\n} from '@radix-ng/primitives/stepper';\nimport { Check, LoaderCircle, LucideAngularModule } from 'lucide-angular';\n\n@Directive({\n    selector: '[oriStepper]',\n    hostDirectives: [\n        {\n            directive: RdxStepperRootDirective,\n            inputs: ['orientation', 'value', 'dir', 'defaultValue', 'linear'],\n            outputs: ['valueChange']\n        }\n    ],\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nexport class OriStepper {\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn(\n            'group/stepper inline-flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col',\n            this.class()\n        );\n    });\n}\n\n@Directive({\n    selector: '[oriStepperItem]',\n    hostDirectives: [\n        {\n            directive: RdxStepperItemDirective,\n            inputs: [\n                'disabled',\n                'completed',\n                'step'\n            ]\n        }\n    ],\n    host: {\n        '[class]': 'hostClasses()',\n        '[attr.data-loading]': 'isLoading()'\n    }\n})\nexport class OriStepperItem {\n    readonly rdxStepper = inject(RdxStepperRootDirective, { host: true });\n    readonly rdxStepperItem = inject(RdxStepperItemDirective, { host: true });\n\n    readonly class = input<string>();\n\n    readonly loading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n    readonly hostClasses = computed(() => {\n        return cn(\n            'group/step flex items-center group-data-[orientation=horizontal]/stepper:flex-row group-data-[orientation=vertical]/stepper:flex-col',\n            this.class()\n        );\n    });\n\n    readonly isLoading = computed<boolean>(() => {\n        return this.loading() && this.rdxStepperItem.step() === this.rdxStepper.value();\n    });\n}\n\n@Directive({\n    selector: '[oriStepperTrigger]',\n    hostDirectives: [RdxStepperTriggerDirective],\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nexport class OriStepperTrigger {\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn('inline-flex items-center gap-3 disabled:pointer-events-none disabled:opacity-50', this.class());\n    });\n}\n\n@Component({\n    selector: 'ori-stepper-indicator,[oriStepperIndicator]',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [RdxStepperIndicatorDirective, LucideAngularModule],\n    template: `\n        <div\n            #item=\"rdxStepperIndicator\"\n            [class]=\"hostClasses()\"\n            [attr.data-state]=\"item.itemContext.itemState()\"\n            rdxStepperIndicator\n        >\n            @if (asChild()) {\n                <ng-content />\n            } @else {\n                <span\n                    class=\"transition-all group-data-[loading=true]/step:scale-0 group-data-[state=completed]/step:scale-0 group-data-[loading=true]/step:opacity-0 group-data-[state=completed]/step:opacity-0 group-data-[loading=true]/step:transition-none\"\n                >\n                    {{ item.itemContext.step() }}\n                </span>\n                <span class=\"absolute\">\n                    <lucide-angular\n                        class=\"scale-0 opacity-0 transition-all group-data-[state=completed]/step:scale-100 group-data-[state=completed]/step:opacity-100\"\n                        [img]=\"Check\"\n                        size=\"16\"\n                        strokeWidth=\"2\"\n                        aria-hidden=\"true\"\n                    />\n                </span>\n                @if (oriStepperItem.isLoading()) {\n                    <span class=\"absolute transition-all\">\n                        <lucide-angular\n                            class=\"animate-spin\"\n                            [img]=\"LoaderCircle\"\n                            size=\"14\"\n                            strokeWidth=\"2\"\n                            aria-hidden=\"true\"\n                        />\n                    </span>\n                }\n            }\n        </div>\n    `\n})\nexport class OriStepperIndicator {\n    readonly oriStepperItem = inject(OriStepperItem);\n\n    readonly asChild = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn(\n            'relative flex size-6 shrink-0 items-center justify-center rounded-full bg-muted text-xs font-medium text-muted-foreground data-[state=active]:bg-primary data-[state=completed]:bg-primary data-[state=active]:text-primary-foreground data-[state=completed]:text-primary-foreground',\n            this.class()\n        );\n    });\n    protected readonly Check = Check;\n    protected readonly LoaderCircle = LoaderCircle;\n}\n\n@Directive({\n    selector: '[oriStepperSeparator]',\n    hostDirectives: [\n        RdxStepperSeparatorDirective\n    ],\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nexport class OriStepperSeparator {\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn(\n            'm-0.5 bg-muted group-data-[orientation=horizontal]/stepper:h-0.5 group-data-[orientation=vertical]/stepper:h-12 group-data-[orientation=horizontal]/stepper:w-full group-data-[orientation=vertical]/stepper:w-0.5 group-data-[orientation=horizontal]/stepper:flex-1 group-data-[state=completed]/step:bg-primary',\n            this.class()\n        );\n    });\n}\n\n@Directive({\n    selector: 'h3[oriStepperTitle]',\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nexport class OriStepperTitle {\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn('text-sm font-medium', this.class());\n    });\n}\n\n@Directive({\n    selector: 'p[oriStepperDescription]',\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nexport class OriStepperDescription {\n    readonly class = input<string>();\n\n    readonly hostClasses = computed(() => {\n        return cn('text-sm text-muted-foreground', this.class());\n    });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAiCa,UAAU,CAAA;IACV,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CACL,4IAA4I,EAC5I,IAAI,CAAC,KAAK,EAAE,CACf;AACL,KAAC,CAAC;uGARO,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAbtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,uBAAuB;4BAClC,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC;4BACjE,OAAO,EAAE,CAAC,aAAa;AAC1B;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;MA6BY,cAAc,CAAA;IACd,UAAU,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5D,cAAc,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEhE,KAAK,GAAG,KAAK,EAAU;IAEvB,OAAO,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE9E,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CACL,sIAAsI,EACtI,IAAI,CAAC,KAAK,EAAE,CACf;AACL,KAAC,CAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAU,MAAK;AACxC,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACnF,KAAC,CAAC;uGAjBO,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,uBAAuB;AAClC,4BAAA,MAAM,EAAE;gCACJ,UAAU;gCACV,WAAW;gCACX;AACH;AACJ;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,qBAAqB,EAAE;AAC1B;AACJ,iBAAA;;MA4BY,iBAAiB,CAAA;IACjB,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CAAC,iFAAiF,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC9G,KAAC,CAAC;uGALO,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,cAAc,EAAE,CAAC,0BAA0B,CAAC;AAC5C,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;MAoDY,mBAAmB,CAAA;AACnB,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAEvC,OAAO,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE9E,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CACL,uRAAuR,EACvR,IAAI,CAAC,KAAK,EAAE,CACf;AACL,KAAC,CAAC;IACiB,KAAK,GAAG,KAAK;IACb,YAAY,GAAG,YAAY;uGAdrC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAvClB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCT,EAtCS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,4BAA4B,oGAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAwClD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA3C/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6CAA6C;oBACvD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,4BAA4B,EAAE,mBAAmB,CAAC;AAC5D,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,IAAA;AACJ,iBAAA;;MA2BY,mBAAmB,CAAA;IACnB,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CACL,oTAAoT,EACpT,IAAI,CAAC,KAAK,EAAE,CACf;AACL,KAAC,CAAC;uGARO,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,cAAc,EAAE;wBACZ;AACH,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;MAkBY,eAAe,CAAA;IACf,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAClD,KAAC,CAAC;uGALO,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;MAeY,qBAAqB,CAAA;IACrB,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,EAAE,CAAC,+BAA+B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC5D,KAAC,CAAC;uGALO,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;;ACnMD;;AAEG;;;;"}