{"success":true,"data":{"block":{"id":"process-sticky-steps","name":"Process Sticky Steps","title":"Process Sticky Steps","category":"Process","categorySlug":"process","description":"A process section with a sticky left sidebar containing title, description, and CTA, paired with a scrollable right column of numbered step cards. Each step features a decorative corner illustration and displays step number, title, and description. Ideal for showcasing methodologies, workflows, or multi-step processes.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290534/chi37fdy54oymoo1w9sc7e49mt4a/process-sticky-steps-desktop.png","mobile":"https://cdn.ing/assets/i/r/290535/4fnc9khpwby3po22n4lt9fpjdqdt/process-sticky-steps-mobile.png"},"componentPath":"blocks/process/process-sticky-steps.tsx","code":"import { ProcessStickySteps } from \"@opensite/ui/blocks/process/process-sticky-steps\";\nimport { DynamicIcon } from \"@opensite/ui/components/dynamic-icon\";\n\nexport default function Demo() {\n  return (\n    <ProcessStickySteps\n      heading=\"Delivery Process\"\n      description=\"A transparent, collaborative approach that keeps you informed and engaged throughout the project lifecycle.\"\n      actions={[\n        {\n          label: \"Schedule a Call\",\n          href: \"/contact\",\n          variant: \"default\",\n          iconAfter: <DynamicIcon name=\"lucide/phone\" size={16} />,\n        },\n        {\n          label: \"View Pricing\",\n          href: \"/pricing\",\n          variant: \"outline\",\n        },\n      ]}\n      steps={[\n        {\n          step: \"01\",\n          title: \"Project Kickoff\",\n          description: \"Align on goals, timeline, and success criteria. Meet the team, review the project plan, and establish communication protocols for seamless collaboration.\",\n        },\n        {\n          step: \"02\",\n          title: \"Sprint Planning\",\n          description: \"Break down deliverables into manageable sprints. Prioritize features based on value and complexity, ensuring we tackle the most critical items first.\",\n        },\n        {\n          step: \"03\",\n          title: \"Design Review\",\n          description: \"Present wireframes and mockups for feedback. Iterate based on stakeholder input to ensure the design meets both user needs and business objectives.\",\n        },\n        {\n          step: \"04\",\n          title: \"Development Cycles\",\n          description: \"Build features incrementally with regular check-ins. Demo working software at the end of each sprint to gather feedback and adjust priorities.\",\n        },\n        {\n          step: \"05\",\n          title: \"Quality Assurance\",\n          description: \"Conduct thorough testing across all scenarios. Identify and resolve issues before they reach production, ensuring a smooth user experience.\",\n        },\n        {\n          step: \"06\",\n          title: \"Deployment & Support\",\n          description: \"Launch to production with monitoring and support. Provide training, documentation, and ongoing assistance to ensure successful adoption.\",\n        },\n      ]}\n      spacing=\"xl\"\n      background=\"dark\"\n    />\n  );\n}","propsSchema":{"heading":{"type":"object","description":"Main heading content","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Description text below heading","typeLabel":"React.ReactNode","required":false},"actions":{"type":"array","description":"Array of action configurations for CTA buttons","items":{"type":"object","description":"","fields":{"variant":{"type":"string","description":"","typeLabel":"\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\"","required":false},"size":{"type":"string","description":"","typeLabel":"\"default\" | \"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\" | \"icon-lg\"","required":false},"label":{"type":"object","description":"Button/link label text or ReactNode","typeLabel":"ReactNode","required":false},"icon":{"type":"object","description":"Icon to display (typically before label)","typeLabel":"ReactNode","required":false},"iconAfter":{"type":"object","description":"Icon to display after the label","typeLabel":"ReactNode","required":false},"href":{"type":"string","description":"URL for link behavior","required":false},"onClick":{"type":"object","description":"Click handler for button behavior","typeLabel":"MouseEventHandler","required":false},"className":{"type":"string","description":"Additional CSS classes for the action","required":false},"children":{"type":"object","description":"Custom children (overrides label + icon rendering)","typeLabel":"ReactNode","required":false},"aria-label":{"type":"string","description":"ARIA label for accessibility","required":false},"asButton":{"type":"boolean","description":"Render as a button element instead of an anchor/link","required":false}},"typeLabel":"ActionConfig"},"typeLabel":"ActionConfig[]","required":false},"actionsSlot":{"type":"object","description":"Custom slot for rendering actions (overrides actions array)","typeLabel":"React.ReactNode","required":false},"steps":{"type":"array","description":"Array of step configurations","items":{"type":"object","description":"","fields":{"step":{"type":"object","description":"Step number or label (e.g., \"01\", \"Step 1\")","typeLabel":"React.ReactNode","required":false},"title":{"type":"object","description":"Step title","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Step description","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the step item","required":false},"href":{"type":"string","description":"Optional URL","required":false}},"typeLabel":"ProcessStickyStepItem"},"typeLabel":"ProcessStickyStepItem[]","required":false},"stepsSlot":{"type":"object","description":"Custom slot for rendering steps (overrides steps array)","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the section","required":false},"contentClassName":{"type":"string","description":"Additional CSS classes for the content wrapper","required":false},"headingClassName":{"type":"string","description":"Additional CSS classes for the heading","required":false},"descriptionClassName":{"type":"string","description":"Additional CSS classes for the description","required":false},"actionsClassName":{"type":"string","description":"Additional CSS classes for the actions container","required":false},"stepsClassName":{"type":"string","description":"Additional CSS classes for the steps list","required":false},"stepItemClassName":{"type":"string","description":"Additional CSS classes for each step item","required":false},"background":{"type":"string","description":"Background style for the section","typeLabel":"SectionBackground","required":false},"spacing":{"type":"object","description":"Vertical spacing for the section","fields":{},"typeLabel":"SectionSpacing","required":false},"pattern":{"type":"object","description":"Optional background pattern name or URL","fields":{},"typeLabel":"PatternName","required":false},"patternOpacity":{"type":"number","description":"Pattern overlay opacity (0-1)","required":false},"optixFlowConfig":{"type":"object","description":"OptixFlow image optimization configuration","fields":{"apiKey":{"type":"string","description":"API key for OptixFlow service","required":true},"compression":{"type":"number","description":"Compression level (0-100)","required":false}},"typeLabel":"OptixFlowConfig","required":false},"containerClassName":{"type":"string","description":"Additional CSS classes for the container","required":false},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"defaultProps":{},"dependencies":["@opensite/ui"],"tags":["process","steps","methodology","workflow","sticky","sidebar","numbered","how-it-works","timeline"],"performance":{},"importantUsageNotes":"Ensure to generate exactly 6 'steps' to match the sticky-steps layout shown in the demo. Each step requires a 'step' label (e.g., '01'), 'title', and 'description'. If you supply multiple 'actions', ensure to use a variant of 'default' for the first action, and 'outline' for the second action to ensure proper visual distinction between the two CTAs. Follow the example props closely for this block."}},"timestamp":"2026-05-13T10:38:45.661Z"}