@giddaa-housing/ui 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -6
- package/css/base.css +37 -0
- package/css/components.css +135 -0
- package/css/generated/shared.css +1 -0
- package/css/giddaa.css +402 -0
- package/css/preset.css +77 -0
- package/css/styles.css +2 -0
- package/css/theme.css +255 -0
- package/dist/accordion.js +5 -35
- package/dist/accordion.js.map +1 -1
- package/dist/activity-timeline.d.ts +33 -0
- package/dist/activity-timeline.js +212 -0
- package/dist/activity-timeline.js.map +1 -0
- package/dist/alert.js +5 -35
- package/dist/alert.js.map +1 -1
- package/dist/auth-layout.d.ts +23 -0
- package/dist/auth-layout.js +304 -0
- package/dist/auth-layout.js.map +1 -0
- package/dist/avatar.js +10 -142
- package/dist/avatar.js.map +1 -1
- package/dist/badge.d.ts +3 -2
- package/dist/badge.js +6 -114
- package/dist/badge.js.map +1 -1
- package/dist/bar-chart.d.ts +101 -77
- package/dist/bar-chart.js +142 -220
- package/dist/bar-chart.js.map +1 -1
- package/dist/breadcrumb.js +5 -35
- package/dist/breadcrumb.js.map +1 -1
- package/dist/bullet-chart.js +15 -48
- package/dist/bullet-chart.js.map +1 -1
- package/dist/button-group.js +14 -90
- package/dist/button-group.js.map +1 -1
- package/dist/button.d.ts +5 -5
- package/dist/button.js +7 -140
- package/dist/button.js.map +1 -1
- package/dist/calendar.js +12 -287
- package/dist/calendar.js.map +1 -1
- package/dist/card.js +5 -35
- package/dist/card.js.map +1 -1
- package/dist/carousel.js +12 -386
- package/dist/carousel.js.map +1 -1
- package/dist/chart.js +16 -480
- package/dist/chart.js.map +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js +13 -48
- package/dist/checkbox.js.map +1 -1
- package/dist/chunk-322YCNVL.js +278 -0
- package/dist/chunk-322YCNVL.js.map +1 -0
- package/dist/chunk-3ACQVT7A.js +25 -0
- package/dist/chunk-3ACQVT7A.js.map +1 -0
- package/dist/chunk-3T65TLJX.js +334 -0
- package/dist/chunk-3T65TLJX.js.map +1 -0
- package/dist/chunk-6ZSGQHH2.js +192 -0
- package/dist/chunk-6ZSGQHH2.js.map +1 -0
- package/dist/chunk-7TBMLFGW.js +41 -0
- package/dist/chunk-7TBMLFGW.js.map +1 -0
- package/dist/chunk-B4H6RNDH.js +135 -0
- package/dist/chunk-B4H6RNDH.js.map +1 -0
- package/dist/chunk-BUXCGZ6X.js +219 -0
- package/dist/chunk-BUXCGZ6X.js.map +1 -0
- package/dist/chunk-CHII2QHH.js +58 -0
- package/dist/chunk-CHII2QHH.js.map +1 -0
- package/dist/chunk-DMNOXRRW.js +147 -0
- package/dist/chunk-DMNOXRRW.js.map +1 -0
- package/dist/chunk-EFSOSSIC.js +130 -0
- package/dist/chunk-EFSOSSIC.js.map +1 -0
- package/dist/chunk-FZDSVMKY.js +363 -0
- package/dist/chunk-FZDSVMKY.js.map +1 -0
- package/dist/chunk-GJOFIJS3.js +246 -0
- package/dist/chunk-GJOFIJS3.js.map +1 -0
- package/dist/chunk-HL3ZSYES.js +23 -0
- package/dist/chunk-HL3ZSYES.js.map +1 -0
- package/dist/chunk-JVLUBAPB.js +129 -0
- package/dist/chunk-JVLUBAPB.js.map +1 -0
- package/dist/chunk-KDPYSOYZ.js +64 -0
- package/dist/chunk-KDPYSOYZ.js.map +1 -0
- package/dist/chunk-KSMDANKI.js +43 -0
- package/dist/chunk-KSMDANKI.js.map +1 -0
- package/dist/chunk-MEKCCOP5.js +46 -0
- package/dist/chunk-MEKCCOP5.js.map +1 -0
- package/dist/chunk-NOFXVRWL.js +451 -0
- package/dist/chunk-NOFXVRWL.js.map +1 -0
- package/dist/chunk-PC5MHNVA.js +171 -0
- package/dist/chunk-PC5MHNVA.js.map +1 -0
- package/dist/chunk-QKAQZ2GU.js +122 -0
- package/dist/chunk-QKAQZ2GU.js.map +1 -0
- package/dist/chunk-QZHSHSVV.js +26 -0
- package/dist/chunk-QZHSHSVV.js.map +1 -0
- package/dist/chunk-RBMK26XD.js +19 -0
- package/dist/chunk-RBMK26XD.js.map +1 -0
- package/dist/chunk-SFNJGF6M.js +262 -0
- package/dist/chunk-SFNJGF6M.js.map +1 -0
- package/dist/chunk-UJJNLGTM.js +112 -0
- package/dist/chunk-UJJNLGTM.js.map +1 -0
- package/dist/chunk-VGR4ZWJ3.js +418 -0
- package/dist/chunk-VGR4ZWJ3.js.map +1 -0
- package/dist/chunk-XG47P6D4.js +99 -0
- package/dist/chunk-XG47P6D4.js.map +1 -0
- package/dist/chunk-XZZAHNVM.js +21 -0
- package/dist/chunk-XZZAHNVM.js.map +1 -0
- package/dist/chunk-Y4TTYVNE.js +36 -0
- package/dist/chunk-Y4TTYVNE.js.map +1 -0
- package/dist/chunk-YDWIHW6Q.js +69 -0
- package/dist/chunk-YDWIHW6Q.js.map +1 -0
- package/dist/collapsible.js +6 -35
- package/dist/collapsible.js.map +1 -1
- package/dist/combobox.js +26 -694
- package/dist/combobox.js.map +1 -1
- package/dist/cta.d.ts +66 -0
- package/dist/cta.js +358 -0
- package/dist/cta.js.map +1 -0
- package/dist/currency-selector.d.ts +42 -0
- package/dist/currency-selector.js +192 -0
- package/dist/currency-selector.js.map +1 -0
- package/dist/date-picker.d.ts +18 -10
- package/dist/date-picker.js +105 -430
- package/dist/date-picker.js.map +1 -1
- package/dist/details-card.d.ts +19 -0
- package/dist/details-card.js +267 -0
- package/dist/details-card.js.map +1 -0
- package/dist/dialog.js +36 -146
- package/dist/dialog.js.map +1 -1
- package/dist/dropdown-menu.d.ts +1 -1
- package/dist/dropdown-menu.js +20 -358
- package/dist/dropdown-menu.js.map +1 -1
- package/dist/dropzone.js +13 -40
- package/dist/dropzone.js.map +1 -1
- package/dist/editorial-card.d.ts +29 -0
- package/dist/editorial-card.js +311 -0
- package/dist/editorial-card.js.map +1 -0
- package/dist/empty-state.js +5 -35
- package/dist/empty-state.js.map +1 -1
- package/dist/field.js +30 -135
- package/dist/field.js.map +1 -1
- package/dist/footer.d.ts +47 -0
- package/dist/footer.js +430 -0
- package/dist/footer.js.map +1 -0
- package/dist/funnel-chart.js +42 -415
- package/dist/funnel-chart.js.map +1 -1
- package/dist/gallery-indicator.d.ts +18 -0
- package/dist/gallery-indicator.js +12 -0
- package/dist/gallery-indicator.js.map +1 -0
- package/dist/heatmap-chart.d.ts +98 -0
- package/dist/heatmap-chart.js +248 -0
- package/dist/heatmap-chart.js.map +1 -0
- package/dist/infotip.d.ts +11 -0
- package/dist/infotip.js +66 -0
- package/dist/infotip.js.map +1 -0
- package/dist/input-group.d.ts +2 -1
- package/dist/input-group.js +15 -371
- package/dist/input-group.js.map +1 -1
- package/dist/input-size-context.js +5 -19
- package/dist/input-size-context.js.map +1 -1
- package/dist/input.js +6 -78
- package/dist/input.js.map +1 -1
- package/dist/item.js +5 -35
- package/dist/item.js.map +1 -1
- package/dist/kpi-card.js +12 -52
- package/dist/kpi-card.js.map +1 -1
- package/dist/label.js +5 -64
- package/dist/label.js.map +1 -1
- package/dist/line-chart.js +9 -166
- package/dist/line-chart.js.map +1 -1
- package/dist/logo.js +4 -141
- package/dist/logo.js.map +1 -1
- package/dist/map-indicator.d.ts +13 -0
- package/dist/map-indicator.js +109 -0
- package/dist/map-indicator.js.map +1 -0
- package/dist/match.d.ts +16 -0
- package/dist/match.js +113 -0
- package/dist/match.js.map +1 -0
- package/dist/media-gallery-hero.d.ts +60 -0
- package/dist/media-gallery-hero.js +362 -0
- package/dist/media-gallery-hero.js.map +1 -0
- package/dist/media-player.d.ts +60 -0
- package/dist/media-player.js +1394 -0
- package/dist/media-player.js.map +1 -0
- package/dist/number-input.js +30 -325
- package/dist/number-input.js.map +1 -1
- package/dist/page-header.js +4 -32
- package/dist/page-header.js.map +1 -1
- package/dist/pagination.d.ts +1 -0
- package/dist/pagination.js +27 -161
- package/dist/pagination.js.map +1 -1
- package/dist/password-input.d.ts +1 -0
- package/dist/password-input.js +21 -319
- package/dist/password-input.js.map +1 -1
- package/dist/phone-input.d.ts +2 -1
- package/dist/phone-input.js +148 -359
- package/dist/phone-input.js.map +1 -1
- package/dist/photo-gallery.d.ts +1 -1
- package/dist/photo-gallery.js +97 -393
- package/dist/photo-gallery.js.map +1 -1
- package/dist/pie-chart.js +17 -52
- package/dist/pie-chart.js.map +1 -1
- package/dist/popover.js +13 -158
- package/dist/popover.js.map +1 -1
- package/dist/price-tag.d.ts +35 -0
- package/dist/price-tag.js +178 -0
- package/dist/price-tag.js.map +1 -0
- package/dist/progress.d.ts +5 -2
- package/dist/progress.js +14 -303
- package/dist/progress.js.map +1 -1
- package/dist/property-listing-card.d.ts +32 -0
- package/dist/property-listing-card.js +235 -0
- package/dist/property-listing-card.js.map +1 -0
- package/dist/radar-chart.d.ts +110 -0
- package/dist/radar-chart.js +147 -0
- package/dist/radar-chart.js.map +1 -0
- package/dist/radio-group.js +15 -50
- package/dist/radio-group.js.map +1 -1
- package/dist/review-block.d.ts +20 -0
- package/dist/review-block.js +10 -0
- package/dist/review-block.js.map +1 -0
- package/dist/rich-text-editor.js +172 -433
- package/dist/rich-text-editor.js.map +1 -1
- package/dist/scatter-chart.d.ts +142 -0
- package/dist/scatter-chart.js +252 -0
- package/dist/scatter-chart.js.map +1 -0
- package/dist/search-input.d.ts +1 -0
- package/dist/search-input.js +22 -320
- package/dist/search-input.js.map +1 -1
- package/dist/select.js +15 -292
- package/dist/select.js.map +1 -1
- package/dist/separator.js +5 -68
- package/dist/separator.js.map +1 -1
- package/dist/sheet.js +14 -271
- package/dist/sheet.js.map +1 -1
- package/dist/sidebar.d.ts +1 -1
- package/dist/sidebar.js +89 -494
- package/dist/sidebar.js.map +1 -1
- package/dist/size-context.js +5 -17
- package/dist/size-context.js.map +1 -1
- package/dist/skeleton.js +4 -44
- package/dist/skeleton.js.map +1 -1
- package/dist/slider.d.ts +28 -0
- package/dist/slider.js +152 -0
- package/dist/slider.js.map +1 -0
- package/dist/sparkline.js +33 -341
- package/dist/sparkline.js.map +1 -1
- package/dist/stepper.js +5 -35
- package/dist/stepper.js.map +1 -1
- package/dist/styles.css +9593 -2
- package/dist/switch.js +13 -48
- package/dist/switch.js.map +1 -1
- package/dist/tab-list.js +35 -306
- package/dist/tab-list.js.map +1 -1
- package/dist/table.js +5 -32
- package/dist/table.js.map +1 -1
- package/dist/tabs.js +10 -150
- package/dist/tabs.js.map +1 -1
- package/dist/tag.d.ts +7 -6
- package/dist/tag.js +101 -97
- package/dist/tag.js.map +1 -1
- package/dist/testimonial-block.d.ts +34 -0
- package/dist/testimonial-block.js +377 -0
- package/dist/testimonial-block.js.map +1 -0
- package/dist/textarea.js +6 -73
- package/dist/textarea.js.map +1 -1
- package/dist/time-picker.js +119 -279
- package/dist/time-picker.js.map +1 -1
- package/dist/toast.js +27 -132
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.d.ts +5 -5
- package/dist/tooltip.js +7 -90
- package/dist/tooltip.js.map +1 -1
- package/dist/tree-map.js +41 -414
- package/dist/tree-map.js.map +1 -1
- package/dist/waterfall-chart.d.ts +129 -0
- package/dist/waterfall-chart.js +577 -0
- package/dist/waterfall-chart.js.map +1 -0
- package/package.json +98 -28
- package/dist/base.css +0 -32
- package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
- package/dist/index.d.ts +0 -87
- package/dist/index.js +0 -10448
- package/dist/index.js.map +0 -1
- package/dist/red-hat-display.css +0 -2
- package/dist/theme/giddaa.css +0 -2
package/dist/stepper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/stepper.tsx","../src/lib/cn.ts"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\ntype StepperOrientation = \"horizontal\" | \"vertical\";\ntype StepperState = \"complete\" | \"active\" | \"upcoming\";\n\ntype StepperContextValue = {\n\torientation: StepperOrientation;\n\t/** Active step number (1-based). Steps derive their state from this. */\n\tvalue?: number;\n};\n\nconst StepperContext = React.createContext<StepperContextValue | null>(null);\n\nfunction useStepper() {\n\tconst context = React.useContext(StepperContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper parts must be used within a <Stepper />\");\n\t}\n\n\treturn context;\n}\n\ntype StepperItemContextValue = {\n\tstate: StepperState;\n\t/** 1-based position of this step in the stepper. */\n\tstep: number;\n};\n\nconst StepperItemContext = React.createContext<StepperItemContextValue | null>(\n\tnull,\n);\n\nfunction useStepperItem() {\n\tconst context = React.useContext(StepperItemContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper item parts must be used within a <StepperItem />\");\n\t}\n\n\treturn context;\n}\n\nfunction resolveState(\n\tstep: number,\n\tvalue: number | undefined,\n\toverride: StepperState | undefined,\n): StepperState {\n\tif (override) return override;\n\tif (value == null) return \"upcoming\";\n\tif (step < value) return \"complete\";\n\tif (step === value) return \"active\";\n\treturn \"upcoming\";\n}\n\ntype StepperProps = React.ComponentProps<\"div\"> & {\n\torientation?: StepperOrientation;\n\t/** Active step number (1-based). Items without an explicit `state` derive theirs from this. */\n\tvalue?: number;\n};\n\nfunction Stepper({\n\torientation = \"horizontal\",\n\tvalue,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperProps) {\n\tconst items = React.Children.toArray(children).filter(React.isValidElement);\n\n\tconst contextValue = React.useMemo<StepperContextValue>(\n\t\t() => ({ orientation, value }),\n\t\t[orientation, value],\n\t);\n\n\treturn (\n\t\t<StepperContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"flex-row\" : \"flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{items.map((child, index) => {\n\t\t\t\t\tif (!React.isValidElement<StepperItemProps>(child)) return child;\n\n\t\t\t\t\treturn React.cloneElement(child, {\n\t\t\t\t\t\tstep: child.props.step ?? index + 1,\n\t\t\t\t\t\tlast: child.props.last ?? index === items.length - 1,\n\t\t\t\t\t});\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</StepperContext.Provider>\n\t);\n}\n\ntype StepperItemProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\t/** Force a specific state instead of deriving it from the stepper `value`. */\n\tstate?: StepperState;\n\t/** 1-based position. Injected by `Stepper`; only set this to override. */\n\tstep?: number;\n\t/** Whether this is the last item (hides its connector). Injected by `Stepper`. */\n\tlast?: boolean;\n\t/** Custom indicator node. Defaults to a numbered circle / checkmark. */\n\tindicator?: React.ReactNode;\n\tchildren?: React.ReactNode;\n};\n\nfunction StepperItem({\n\tstate: stateOverride,\n\tstep = 1,\n\tlast = false,\n\tindicator,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperItemProps) {\n\tconst { orientation, value } = useStepper();\n\tconst state = resolveState(step, value, stateOverride);\n\n\tconst itemContext = React.useMemo<StepperItemContextValue>(\n\t\t() => ({ state, step }),\n\t\t[state, step],\n\t);\n\n\treturn (\n\t\t<StepperItemContext.Provider value={itemContext}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper-item\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"group/stepper-item flex min-w-0\",\n\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t? \"flex-1 flex-col gap-3 last:flex-none\"\n\t\t\t\t\t\t: \"flex-row items-stretch gap-3\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"flex\",\n\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t? \"items-center\"\n\t\t\t\t\t\t\t: \"flex-col items-center\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{indicator ?? <StepperIndicator />}\n\t\t\t\t\t{!last && <StepperSeparator />}\n\t\t\t\t</div>\n\n\t\t\t\t{children != null && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex min-w-0 flex-col gap-1\",\n\t\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t\t? \"pr-4\"\n\t\t\t\t\t\t\t\t: cn(\"pt-1\", !last && \"pb-8\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</StepperItemContext.Provider>\n\t);\n}\n\nconst indicatorVariants = cva(\n\t\"relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9\",\n\t{\n\t\tvariants: {\n\t\t\tstate: {\n\t\t\t\tcomplete:\n\t\t\t\t\t\"border border-transparent bg-action-primary text-fg-on-brand\",\n\t\t\t\tactive: \"border-2 border-line-focus bg-canvas text-fg-brand\",\n\t\t\t\tupcoming: \"border border-line bg-surface text-fg-secondary\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tstate: \"upcoming\",\n\t\t},\n\t},\n);\n\ntype StepperIndicatorProps = Omit<React.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof indicatorVariants> & {\n\t\t/** Override the rendered glyph. Defaults to the step number / checkmark. */\n\t\tchildren?: React.ReactNode;\n\t};\n\nfunction StepperIndicator({\n\tclassName,\n\tstate: stateProp,\n\tchildren,\n\t...props\n}: StepperIndicatorProps) {\n\tconst { state, step } = useStepperItem();\n\tconst resolved = stateProp ?? state;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-indicator\"\n\t\t\tdata-state={resolved}\n\t\t\tclassName={cn(indicatorVariants({ state: resolved }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ??\n\t\t\t\t(resolved === \"complete\" ? (\n\t\t\t\t\t<CheckIcon className=\"size-4 sm:size-4.5\" strokeWidth={2.5} />\n\t\t\t\t) : (\n\t\t\t\t\tstep\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n\nconst separatorVariants = cva(\"shrink-0 rounded-full transition-colors\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"bg-action-primary\",\n\t\t\tactive: \"bg-line\",\n\t\t\tupcoming: \"bg-line\",\n\t\t},\n\t\torientation: {\n\t\t\thorizontal: \"h-0.5 flex-1\",\n\t\t\tvertical: \"w-0.5 flex-1 min-h-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t\torientation: \"horizontal\",\n\t},\n});\n\nfunction StepperSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useStepper();\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-separator\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(separatorVariants({ state, orientation }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst titleVariants = cva(\"text-gdt-sm font-bold\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-primary\",\n\t\t\tactive: \"text-fg-brand\",\n\t\t\tupcoming: \"text-fg-secondary\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-title\"\n\t\t\tclassName={cn(titleVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst descriptionVariants = cva(\"text-gdt-sm\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-secondary\",\n\t\t\tactive: \"text-fg-secondary\",\n\t\t\tupcoming: \"text-fg-caption-placeholder\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-description\"\n\t\t\tclassName={cn(descriptionVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype StepperMetaProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\tdate?: React.ReactNode;\n\ttime?: React.ReactNode;\n};\n\n/** Date / timestamp caption pair. Placeholder colour regardless of state. */\nfunction StepperMeta({ date, time, className, ...props }: StepperMetaProps) {\n\tif (date == null && time == null) return null;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-meta\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{date != null && <span>{date}</span>}\n\t\t\t{time != null && <span>{time}</span>}\n\t\t</div>\n\t);\n}\n\nexport {\n\tStepper,\n\tStepperItem,\n\tStepperIndicator,\n\tStepperSeparator,\n\tStepperTitle,\n\tStepperDescription,\n\tStepperMeta,\n\ttype StepperOrientation,\n\ttype StepperState,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/stepper.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"./lib/cn\";\n\ntype StepperOrientation = \"horizontal\" | \"vertical\";\ntype StepperState = \"complete\" | \"active\" | \"upcoming\";\n\ntype StepperContextValue = {\n\torientation: StepperOrientation;\n\t/** Active step number (1-based). Steps derive their state from this. */\n\tvalue?: number;\n};\n\nconst StepperContext = React.createContext<StepperContextValue | null>(null);\n\nfunction useStepper() {\n\tconst context = React.useContext(StepperContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper parts must be used within a <Stepper />\");\n\t}\n\n\treturn context;\n}\n\ntype StepperItemContextValue = {\n\tstate: StepperState;\n\t/** 1-based position of this step in the stepper. */\n\tstep: number;\n};\n\nconst StepperItemContext = React.createContext<StepperItemContextValue | null>(\n\tnull,\n);\n\nfunction useStepperItem() {\n\tconst context = React.useContext(StepperItemContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"Stepper item parts must be used within a <StepperItem />\");\n\t}\n\n\treturn context;\n}\n\nfunction resolveState(\n\tstep: number,\n\tvalue: number | undefined,\n\toverride: StepperState | undefined,\n): StepperState {\n\tif (override) return override;\n\tif (value == null) return \"upcoming\";\n\tif (step < value) return \"complete\";\n\tif (step === value) return \"active\";\n\treturn \"upcoming\";\n}\n\ntype StepperProps = React.ComponentProps<\"div\"> & {\n\torientation?: StepperOrientation;\n\t/** Active step number (1-based). Items without an explicit `state` derive theirs from this. */\n\tvalue?: number;\n};\n\nfunction Stepper({\n\torientation = \"horizontal\",\n\tvalue,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperProps) {\n\tconst items = React.Children.toArray(children).filter(React.isValidElement);\n\n\tconst contextValue = React.useMemo<StepperContextValue>(\n\t\t() => ({ orientation, value }),\n\t\t[orientation, value],\n\t);\n\n\treturn (\n\t\t<StepperContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"flex-row\" : \"flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{items.map((child, index) => {\n\t\t\t\t\tif (!React.isValidElement<StepperItemProps>(child)) return child;\n\n\t\t\t\t\treturn React.cloneElement(child, {\n\t\t\t\t\t\tstep: child.props.step ?? index + 1,\n\t\t\t\t\t\tlast: child.props.last ?? index === items.length - 1,\n\t\t\t\t\t});\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</StepperContext.Provider>\n\t);\n}\n\ntype StepperItemProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\t/** Force a specific state instead of deriving it from the stepper `value`. */\n\tstate?: StepperState;\n\t/** 1-based position. Injected by `Stepper`; only set this to override. */\n\tstep?: number;\n\t/** Whether this is the last item (hides its connector). Injected by `Stepper`. */\n\tlast?: boolean;\n\t/** Custom indicator node. Defaults to a numbered circle / checkmark. */\n\tindicator?: React.ReactNode;\n\tchildren?: React.ReactNode;\n};\n\nfunction StepperItem({\n\tstate: stateOverride,\n\tstep = 1,\n\tlast = false,\n\tindicator,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperItemProps) {\n\tconst { orientation, value } = useStepper();\n\tconst state = resolveState(step, value, stateOverride);\n\n\tconst itemContext = React.useMemo<StepperItemContextValue>(\n\t\t() => ({ state, step }),\n\t\t[state, step],\n\t);\n\n\treturn (\n\t\t<StepperItemContext.Provider value={itemContext}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper-item\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"group/stepper-item flex min-w-0\",\n\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t? \"flex-1 flex-col gap-3 last:flex-none\"\n\t\t\t\t\t\t: \"flex-row items-stretch gap-3\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"flex\",\n\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t? \"items-center\"\n\t\t\t\t\t\t\t: \"flex-col items-center\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{indicator ?? <StepperIndicator />}\n\t\t\t\t\t{!last && <StepperSeparator />}\n\t\t\t\t</div>\n\n\t\t\t\t{children != null && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex min-w-0 flex-col gap-1\",\n\t\t\t\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t\t\t\t? \"pr-4\"\n\t\t\t\t\t\t\t\t: cn(\"pt-1\", !last && \"pb-8\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</StepperItemContext.Provider>\n\t);\n}\n\nconst indicatorVariants = cva(\n\t\"relative flex size-7 shrink-0 items-center justify-center rounded-full text-gdt-sm font-semibold transition-colors sm:size-9\",\n\t{\n\t\tvariants: {\n\t\t\tstate: {\n\t\t\t\tcomplete:\n\t\t\t\t\t\"border border-transparent bg-action-primary text-fg-on-brand\",\n\t\t\t\tactive: \"border-2 border-line-focus bg-canvas text-fg-brand\",\n\t\t\t\tupcoming: \"border border-line bg-surface text-fg-secondary\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tstate: \"upcoming\",\n\t\t},\n\t},\n);\n\ntype StepperIndicatorProps = Omit<React.ComponentProps<\"div\">, \"children\"> &\n\tVariantProps<typeof indicatorVariants> & {\n\t\t/** Override the rendered glyph. Defaults to the step number / checkmark. */\n\t\tchildren?: React.ReactNode;\n\t};\n\nfunction StepperIndicator({\n\tclassName,\n\tstate: stateProp,\n\tchildren,\n\t...props\n}: StepperIndicatorProps) {\n\tconst { state, step } = useStepperItem();\n\tconst resolved = stateProp ?? state;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-indicator\"\n\t\t\tdata-state={resolved}\n\t\t\tclassName={cn(indicatorVariants({ state: resolved }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ??\n\t\t\t\t(resolved === \"complete\" ? (\n\t\t\t\t\t<CheckIcon className=\"size-4 sm:size-4.5\" strokeWidth={2.5} />\n\t\t\t\t) : (\n\t\t\t\t\tstep\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n\nconst separatorVariants = cva(\"shrink-0 rounded-full transition-colors\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"bg-action-primary\",\n\t\t\tactive: \"bg-line\",\n\t\t\tupcoming: \"bg-line\",\n\t\t},\n\t\torientation: {\n\t\t\thorizontal: \"h-0.5 flex-1\",\n\t\t\tvertical: \"w-0.5 flex-1 min-h-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t\torientation: \"horizontal\",\n\t},\n});\n\nfunction StepperSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useStepper();\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-separator\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(separatorVariants({ state, orientation }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst titleVariants = cva(\"text-gdt-sm font-bold\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-primary\",\n\t\t\tactive: \"text-fg-brand\",\n\t\t\tupcoming: \"text-fg-secondary\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-title\"\n\t\t\tclassName={cn(titleVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst descriptionVariants = cva(\"text-gdt-sm\", {\n\tvariants: {\n\t\tstate: {\n\t\t\tcomplete: \"text-fg-secondary\",\n\t\t\tactive: \"text-fg-secondary\",\n\t\t\tupcoming: \"text-fg-caption-placeholder\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tstate: \"upcoming\",\n\t},\n});\n\nfunction StepperDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"p\">) {\n\tconst { state } = useStepperItem();\n\n\treturn (\n\t\t<p\n\t\t\tdata-slot=\"stepper-description\"\n\t\t\tclassName={cn(descriptionVariants({ state }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype StepperMetaProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n\tdate?: React.ReactNode;\n\ttime?: React.ReactNode;\n};\n\n/** Date / timestamp caption pair. Placeholder colour regardless of state. */\nfunction StepperMeta({ date, time, className, ...props }: StepperMetaProps) {\n\tif (date == null && time == null) return null;\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"stepper-meta\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-x-2 gap-y-0.5 text-gdt-xs text-fg-caption-placeholder\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{date != null && <span>{date}</span>}\n\t\t\t{time != null && <span>{time}</span>}\n\t\t</div>\n\t);\n}\n\nexport {\n\tStepper,\n\tStepperItem,\n\tStepperIndicator,\n\tStepperSeparator,\n\tStepperTitle,\n\tStepperDescription,\n\tStepperMeta,\n\ttype StepperOrientation,\n\ttype StepperState,\n};\n"],"mappings":";;;;;AAAA,SAAS,WAA8B;AACvC,SAAS,iBAAiB;AAC1B,YAAY,WAAW;AA+EpB,cAmEC,YAnED;AAlEH,IAAM,iBAAuB,oBAA0C,IAAI;AAE3E,SAAS,aAAa;AACrB,QAAM,UAAgB,iBAAW,cAAc;AAE/C,MAAI,CAAC,SAAS;AACb,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAEA,SAAO;AACR;AAQA,IAAM,qBAA2B;AAAA,EAChC;AACD;AAEA,SAAS,iBAAiB;AACzB,QAAM,UAAgB,iBAAW,kBAAkB;AAEnD,MAAI,CAAC,SAAS;AACb,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AAEA,SAAO;AACR;AAEA,SAAS,aACR,MACA,OACA,UACe;AACf,MAAI,SAAU,QAAO;AACrB,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,OAAO,MAAO,QAAO;AACzB,MAAI,SAAS,MAAO,QAAO;AAC3B,SAAO;AACR;AAQA,SAAS,QAAQ;AAAA,EAChB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAiB;AAChB,QAAM,QAAc,eAAS,QAAQ,QAAQ,EAAE,OAAa,oBAAc;AAE1E,QAAM,eAAqB;AAAA,IAC1B,OAAO,EAAE,aAAa,MAAM;AAAA,IAC5B,CAAC,aAAa,KAAK;AAAA,EACpB;AAEA,SACC,oBAAC,eAAe,UAAf,EAAwB,OAAO,cAC/B;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,oBAAkB;AAAA,MAClB,WAAW;AAAA,QACV;AAAA,QACA,gBAAgB,eAAe,aAAa;AAAA,QAC5C;AAAA,MACD;AAAA,MACC,GAAG;AAAA,MAEH,gBAAM,IAAI,CAAC,OAAO,UAAU;AAC5B,YAAI,CAAO,qBAAiC,KAAK,EAAG,QAAO;AAE3D,eAAa,mBAAa,OAAO;AAAA,UAChC,MAAM,MAAM,MAAM,QAAQ,QAAQ;AAAA,UAClC,MAAM,MAAM,MAAM,QAAQ,UAAU,MAAM,SAAS;AAAA,QACpD,CAAC;AAAA,MACF,CAAC;AAAA;AAAA,EACF,GACD;AAEF;AAcA,SAAS,YAAY;AAAA,EACpB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAqB;AACpB,QAAM,EAAE,aAAa,MAAM,IAAI,WAAW;AAC1C,QAAM,QAAQ,aAAa,MAAM,OAAO,aAAa;AAErD,QAAM,cAAoB;AAAA,IACzB,OAAO,EAAE,OAAO,KAAK;AAAA,IACrB,CAAC,OAAO,IAAI;AAAA,EACb;AAEA,SACC,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,aACnC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,oBAAkB;AAAA,MAClB,WAAW;AAAA,QACV;AAAA,QACA,gBAAgB,eACb,yCACA;AAAA,QACH;AAAA,MACD;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,WAAW;AAAA,cACV;AAAA,cACA,gBAAgB,eACb,iBACA;AAAA,YACJ;AAAA,YAEC;AAAA,2BAAa,oBAAC,oBAAiB;AAAA,cAC/B,CAAC,QAAQ,oBAAC,oBAAiB;AAAA;AAAA;AAAA,QAC7B;AAAA,QAEC,YAAY,QACZ;AAAA,UAAC;AAAA;AAAA,YACA,WAAW;AAAA,cACV;AAAA,cACA,gBAAgB,eACb,SACA,GAAG,QAAQ,CAAC,QAAQ,MAAM;AAAA,YAC9B;AAAA,YAEC;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EAEF,GACD;AAEF;AAEA,IAAM,oBAAoB;AAAA,EACzB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,OAAO;AAAA,QACN,UACC;AAAA,QACD,QAAQ;AAAA,QACR,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,OAAO;AAAA,IACR;AAAA,EACD;AACD;AAQA,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACJ,GAA0B;AACzB,QAAM,EAAE,OAAO,KAAK,IAAI,eAAe;AACvC,QAAM,WAAW,aAAa;AAE9B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,WAAW,GAAG,kBAAkB,EAAE,OAAO,SAAS,CAAC,GAAG,SAAS;AAAA,MAC9D,GAAG;AAAA,MAEH,uBACC,aAAa,aACb,oBAAC,aAAU,WAAU,sBAAqB,aAAa,KAAK,IAE5D;AAAA;AAAA,EAEH;AAEF;AAEA,IAAM,oBAAoB,IAAI,2CAA2C;AAAA,EACxE,UAAU;AAAA,IACT,OAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,IACP,aAAa;AAAA,EACd;AACD,CAAC;AAED,SAAS,iBAAiB;AAAA,EACzB;AAAA,EACA,GAAG;AACJ,GAAgC;AAC/B,QAAM,EAAE,YAAY,IAAI,WAAW;AACnC,QAAM,EAAE,MAAM,IAAI,eAAe;AAEjC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,WAAW,GAAG,kBAAkB,EAAE,OAAO,YAAY,CAAC,GAAG,SAAS;AAAA,MACjE,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,IAAM,gBAAgB,IAAI,yBAAyB;AAAA,EAClD,UAAU;AAAA,IACT,OAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EACR;AACD,CAAC;AAED,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAA8B;AACzE,QAAM,EAAE,MAAM,IAAI,eAAe;AAEjC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS;AAAA,MAChD,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,IAAM,sBAAsB,IAAI,eAAe;AAAA,EAC9C,UAAU;AAAA,IACT,OAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EACR;AACD,CAAC;AAED,SAAS,mBAAmB;AAAA,EAC3B;AAAA,EACA,GAAG;AACJ,GAA8B;AAC7B,QAAM,EAAE,MAAM,IAAI,eAAe;AAEjC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,oBAAoB,EAAE,MAAM,CAAC,GAAG,SAAS;AAAA,MACtD,GAAG;AAAA;AAAA,EACL;AAEF;AAQA,SAAS,YAAY,EAAE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAqB;AAC3E,MAAI,QAAQ,QAAQ,QAAQ,KAAM,QAAO;AAEzC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,gBAAQ,QAAQ,oBAAC,UAAM,gBAAK;AAAA,QAC5B,QAAQ,QAAQ,oBAAC,UAAM,gBAAK;AAAA;AAAA;AAAA,EAC9B;AAEF;","names":[]}
|