PageSourceSearch

https://orbisflow.ai/_next/static/chunks/commons-deadfb154e33810d.js

js orbisflow.ai collected 2026-10-05 14:56:06 UTC 29,818 bytes, 554 lines download raw bytes

1(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([ [ 351 ], {
2    /***/ 1396: 
3    /***/ function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4        Promise.resolve().then(__webpack_require__.t.bind(__webpack_require__, 4095, 23))
5        /***/;
6    },
7    /***/ 6354: 
8    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9        "use strict";
10        /* harmony export */        __webpack_require__.d(__webpack_exports__, {
11            /* harmony export */ J: function() {
12                /* binding */ return FlowAnimation;
13            }
14            /* harmony export */        });
15        /* harmony import */        var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9221);
16        /* harmony import */        var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7884);
17        /* __next_internal_client_entry_do_not_use__ FlowAnimation auto */
18        /**
19 * Renders a canvas with animated, wavy lines that move across the screen.
20 * The lines are generated using a sine wave function, and are drawn with
21 * varying opacity to create a sense of depth.
22 * 
23 * The component uses the `ResizeObserver` API to detect changes in the
24 * size of its container element, and updates the canvas size accordingly.
25 * 
26 * @param fps - Target frames per second (default: 30)
27 * @returns {JSX.Element} The animated canvas element.
28 */        const FlowAnimation = param => {
29            let {colorScheme: colorScheme = "multi", fps: fps = 30} = param;
30            const containerRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
31            const canvasRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
32            (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
33            const resizeObserverRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
34            const flowsRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);
35            const lastLoggedProps = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)({
36                colorScheme: colorScheme
37            });
38            (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);
39            (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(1e3 / fps);
40            // Reset flows when colorScheme changes
41                        (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => {
42                if (lastLoggedProps.current.colorScheme !== colorScheme) {
43                    flowsRef.current = [];
44 // This will trigger re-initialization in the next animation frame
45                                        lastLoggedProps.current = {
46                        colorScheme: colorScheme
47                    };
48                }
49            }), [ colorScheme ]);
50            // Check for reduced motion preference
51                        const prefersReducedMotion = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
52            (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => {
53                const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
54                prefersReducedMotion.current = mediaQuery.matches;
55                const handleChange = e => {
56                    prefersReducedMotion.current = e.matches;
57                    // Reset flows when motion preference changes
58                                        flowsRef.current = [];
59                };
60                mediaQuery.addEventListener("change", handleChange);
61                return () => mediaQuery.removeEventListener("change", handleChange);
62            }), []);
63            // Animation configuration
64                        const CONFIG = {
65                FLOW_COUNT: +(12 || 0),
66                POINT_COUNT: +(50 || 0)
67            };
68            // Use appropriate config based on environment
69                        const MAX_POINTS = CONFIG.POINT_COUNT;
70            const MAX_FLOWS = prefersReducedMotion.current ? 10 : CONFIG.FLOW_COUNT;
71            const BASE_WAVE_AMPLITUDE = prefersReducedMotion.current ? 10 : 20;
72            const BASE_WAVE_FREQUENCY = prefersReducedMotion.current ? .005 : .01;
73            const BASE_MOVE_SPEED = prefersReducedMotion.current ? 2.5 : 3.5;
74            const BASE_LINE_WIDTH = 5.5;
75 // Increased base thickness
76                        const POINT_SPACING = 5;
77            // Flow colors and distribution
78            /*
79   * Color choices optimized for dark mode conversation UI:
80   * 
81   * 1. Text Contrast Ratios:
82   *    - Blue, Green, Red: Use white text (contrast ratio > 4.5:1)
83   *    - Gold: Uses black text (contrast ratio > 4.5:1)
84   * 
85   * 2. Conversation UI Context:
86   *    - Blue: AI messages - trustworthy, technological (white text)
87   *    - Gold: Internal team - warm, professional (black text)
88   *    - Green: Human/AI collaboration - balanced, productive (white text)
89   *    - Red: Customer messages - attention-grabbing but not harsh (white text)
90   */            const FLOW_COLORS = {
91                primary: "hsl(160, 84%, 39%)",
92                secondary: "hsl(0, 84%, 60%)",
93                tertiary: "hsl(45, 93%, 47%)",
94                customer: "hsl(217, 91%, 60%)"
95            };
96            Math.floor(MAX_FLOWS / 4);
97 // Updated to accommodate 4 colors
98            // Color selection strategies
99                        const drawFlow = (ctx, flow) => {
100                const orderedPoints = [ ...flow.points.slice(flow.headIndex), ...flow.points.slice(0, flow.headIndex) ];
101                if (orderedPoints.length < 2) return;
102                ctx.lineWidth = flow.lineWidth;
103                ctx.lineCap = "round";
104                ctx.lineJoin = "round";
105                const totalLength = orderedPoints.length - 1;
106                // Draw segments
107                                for (let i = 0; i < totalLength; i++) {
108                    const progress = i / totalLength;
109                    let segmentColor;
110                    // Direct comparison without toLowerCase
111                                        if (colorScheme === "single") segmentColor = flow.color; else {
112                        const segmentIndex = Math.floor(i / totalLength * 4);
113                        switch (segmentIndex) {
114                          case 0:
115                            segmentColor = FLOW_COLORS.secondary;
116                            break;
117
118                          case 1:
119                            segmentColor = FLOW_COLORS.customer;
120                            break;
121
122                          case 2:
123                            segmentColor = FLOW_COLORS.tertiary;
124                            break;
125
126                          default:
127                            segmentColor = FLOW_COLORS.primary;
128                        }
129                    }
130                    const opacity = Math.sin(progress * Math.PI) * (.3 + Math.random() * .7);
131                    const baseColor = segmentColor.replace("hsl", "hsla");
132                    const colorPrefix = baseColor.substring(0, baseColor.lastIndexOf(")"));
133                    ctx.beginPath();
134                    ctx.strokeStyle = "".concat(colorPrefix, ", ").concat(opacity, ")");
135                    const p1 = orderedPoints[i];
136                    const p2 = orderedPoints[i + 1];
137                    if (i === 0) ctx.moveTo(p1.x, p1.y); else {
138                        const xc = (p1.x + p2.x) / 2;
139                        const yc = (p1.y + p2.y) / 2;
140                        ctx.quadraticCurveTo(p1.x, p1.y, xc, yc);
141                    }
142                    ctx.lineTo(p2.x, p2.y);
143                    ctx.stroke();
144                }
145            };
146            const createFlow = function(canvasHeight) {
147                let startX = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, currentFlowCount = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
148                // Random variations for the flow
149                                const amplitudeVariation = .5 + Math.random();
150                const frequencyVariation = .8 + Math.random() * .4;
151                const speedVariation = .5 + Math.random();
152                const lineWidthVariation = .4 + Math.random() * 1.2;
153                // Select color based on mode
154                                const colorKeys = Object.keys(FLOW_COLORS);
155                const colorIndex = currentFlowCount % colorKeys.length;
156                const color = FLOW_COLORS[colorKeys[colorIndex]];
157                return {
158                    points: [],
159                    headIndex: 0,
160                    startY: Math.random() * canvasHeight,
161                    speed: BASE_MOVE_SPEED * speedVariation,
162                    amplitude: BASE_WAVE_AMPLITUDE * amplitudeVariation,
163                    frequency: BASE_WAVE_FREQUENCY * frequencyVariation,
164                    frameCount: Math.floor(startX / (BASE_MOVE_SPEED * speedVariation)),
165                    color: color,
166                    lineWidth: BASE_LINE_WIDTH * lineWidthVariation,
167                    lastUpdateTime: performance.now()
168                };
169            };
170            const updateFlow = (flow, canvasWidth, canvasHeight, currentTime) => {
171                const deltaTime = currentTime - flow.lastUpdateTime;
172                flow.lastUpdateTime = currentTime;
173                // Update position based on time
174                                const timeStep = deltaTime / 16.667;
175 // Normalize to 60fps
176                                flow.frameCount += timeStep;
177                if (Math.floor(flow.frameCount) % POINT_SPACING === 0) {
178                    let x = flow.frameCount * flow.speed;
179                    // Check if all points have moved past the canvas width
180                                        if (x > canvasWidth) {
181                        const allPointsPastCanvas = flow.points.length > 0 && flow.points.every((point => point.x > canvasWidth));
182                        if (allPointsPastCanvas) {
183                            // Reset the flow to start from the left again
184                            flow.frameCount = 0;
185                            flow.points = [];
186                            flow.headIndex = 0;
187                            flow.startY = Math.random() * canvasHeight;
188                            // Randomize properties for variety
189                                                        const amplitudeVariation = .5 + Math.random();
190                            const frequencyVariation = .8 + Math.random() * .4;
191                            const speedVariation = .4 + Math.random() * 1.2;
192                            const lineWidthVariation = .4 + Math.random() * 1.2;
193                            flow.amplitude = BASE_WAVE_AMPLITUDE * amplitudeVariation;
194                            flow.frequency = BASE_WAVE_FREQUENCY * frequencyVariation;
195                            flow.speed = BASE_MOVE_SPEED * speedVariation;
196                            flow.lineWidth = BASE_LINE_WIDTH * lineWidthVariation;
197                            // Recalculate x after reset
198                                                        x = flow.frameCount * flow.speed;
199                        }
200                    }
201                    const y = flow.startY + Math.sin(x * flow.frequency) * flow.amplitude;
202                    if (flow.points.length < MAX_POINTS) flow.points.push({
203                        x: x,
204                        y: y
205                    }); else {
206                        // Reuse point at head index
207                        flow.points[flow.headIndex] = {
208                            x: x,
209                            y: y
210                        };
211                        flow.headIndex = (flow.headIndex + 1) % MAX_POINTS;
212                    }
213                }
214            };
215            const animate = timestamp => {
216                const canvas = canvasRef.current;
217                const container = containerRef.current;
218                const ctx = canvas === null || canvas === void 0 ? void 0 : canvas.getContext("2d", {
219                    alpha: true
220                });
221                if (!canvas || !ctx || !container) return;
222                ctx.clearRect(0, 0, canvas.width, canvas.height);
223                // Initialize with multiple flows spread across the canvas
224                                if (flowsRef.current.length === 0) {
225                    const initialFlows = Math.floor(MAX_FLOWS * .9);
226                    const spreadWidth = canvas.width * .8;
227                    flowsRef.current = Array.from({
228                        length: initialFlows
229                    }, ((_, i) => {
230                        const startX = i * spreadWidth / initialFlows;
231                        return createFlow(canvas.height, startX, i);
232                    }));
233                }
234                // Add remaining flows gradually
235                                if (flowsRef.current.length < MAX_FLOWS) {
236                    const lastFlow = flowsRef.current[flowsRef.current.length - 1];
237                    if (!lastFlow || lastFlow.frameCount * lastFlow.speed > canvas.width / 3) flowsRef.current.push(createFlow(canvas.height, 0, flowsRef.current.length));
238                }
239                // Update and draw each flow
240                                flowsRef.current.forEach((flow => {
241                    updateFlow(flow, canvas.width, canvas.height, timestamp);
242                    drawFlow(ctx, flow);
243                }));
244            };
245            const updateCanvasSize = () => {
246                const canvas = canvasRef.current;
247                const container = containerRef.current;
248                if (!canvas || !container) return;
249                const rect = container.getBoundingClientRect();
250                const scale = window.devicePixelRatio || 1;
251                canvas.width = rect.width * scale;
252                canvas.height = rect.height * scale;
253                canvas.style.width = "".concat(rect.width, "px");
254                canvas.style.height = "".concat(rect.height, "px");
255                const ctx = canvas.getContext("2d");
256                if (ctx) ctx.scale(scale, scale);
257            };
258            (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => {
259                const resizeObserver = new ResizeObserver((() => {
260                    if (containerRef.current && canvasRef.current) updateCanvasSize();
261                }));
262                resizeObserverRef.current = resizeObserver;
263                if (containerRef.current) {
264                    resizeObserver.observe(containerRef.current);
265                    updateCanvasSize();
266                }
267                let animationFrame;
268                const runAnimation = timestamp => {
269                    animate(timestamp);
270                    animationFrame = requestAnimationFrame(runAnimation);
271                };
272                animationFrame = requestAnimationFrame(runAnimation);
273                return () => {
274                    resizeObserver.disconnect();
275                    cancelAnimationFrame(animationFrame);
276                };
277            }), [ fps ]);
278             
279            return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
280                ref: containerRef,
281                className: "absolute inset-0 w-full h-full",
282                children:   (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("canvas", {
283                    ref: canvasRef,
284                    className: "absolute inset-0",
285                    style: {
286                        background: "transparent",
287                        zIndex: 0
288                    }
289                })
290            });
291        };
292        /***/    },
293    /***/ 6786: 
294    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
295        "use strict";
296        __webpack_require__.r(__webpack_exports__);
297        /* harmony export */        __webpack_require__.d(__webpack_exports__, {
298            /* harmony export */ FlowIndicator: function() {
299                /* binding */ return FlowIndicator;
300            },
301            /* harmony export */ FlowList: function() {
302                /* binding */ return FlowList;
303            }
304            /* harmony export */        });
305        /* harmony import */        var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9221);
306        /* harmony import */        __webpack_require__(7884);
307        /* harmony import */        var _contexts_AccessibilityContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4927);
308        /* __next_internal_client_entry_do_not_use__ FlowIndicator,FlowList auto */        const sizeClasses = {
309            sm: {
310                circle: "w-4 h-4",
311                text: "text-xs"
312            },
313            md: {
314                circle: "w-6 h-6",
315                text: "text-sm"
316            },
317            lg: {
318                circle: "w-8 h-8",
319                text: "text-base"
320            }
321        };
322        const flowStyles = {
323            human: {
324                bg: "bg-[hsl(45,100%,65%)]",
325                bgHighContrast: "bg-[hsl(45,100%,75%)]",
326                pattern: "bg-dots-amber border border-amber-400/30",
327                label: "Human-driven",
328                description: "Process handled by human team members"
329            },
330            ai: {
331                bg: "bg-[hsl(210,100%,50%)]",
332                bgHighContrast: "bg-[hsl(210,100%,60%)]",
333                pattern: "bg-grid-blue border border-blue-400/30",
334                label: "AI-powered",
335                description: "Process automated by AI"
336            },
337            combined: {
338                bg: "bg-[hsl(160,100%,45%)]",
339                bgHighContrast: "bg-[hsl(160,100%,55%)]",
340                pattern: "bg-waves-emerald border border-emerald-400/30",
341                label: "AI-Human collaboration",
342                description: "Collaborative process between AI and humans"
343            }
344        };
345        function FlowIndicator(param) {
346            let {type: type, size: size = "md", className: className = "", showLabel: showLabel = false} = param;
347            const {settings: settings} = (0, _contexts_AccessibilityContext__WEBPACK_IMPORTED_MODULE_2__.useAccessibility)();
348            const sizeClass = sizeClasses[size];
349            const style = flowStyles[type];
350            // Use either pattern or color, not both
351                        const visualStyle = settings.usePatterns ? style.pattern : settings.highContrast ? style.bgHighContrast : style.bg;
352             
353            return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
354                className: "flex items-center gap-2",
355                children: [ 
356                
357                 (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
358                    className: "\n          ".concat(sizeClass.circle, " \n          ").concat(visualStyle, "\n          rounded-full \n          ").concat(className, "\n        "),
359                    role: "img",
360                    "aria-label": style.description
361                }), (showLabel || settings.alwaysShowLabels) &&   (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
362                    className: "".concat(sizeClass.text, " text-gray-300"),
363                    children: style.label
364                }) ]
365            });
366        }
367        // Example usage in a list:
368                function FlowList(param) {
369            let {items: items} = param;
370             
371            return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("ul", {
372                className: "space-y-2",
373                children: items.map(((item, index) =>   (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("li", {
374                    className: "flex items-center gap-2",
375                    children: [ 
376                    
377                     (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(FlowIndicator, {
378                        type: item.type,
379                        size: "sm"
380                    }), 
381                    
382                     (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
383                        children: item.text
384                    }) ]
385                }, index)))
386            });
387        }
388        /***/    },
389    /***/ 2931: 
390    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
391        "use strict";
392        // ESM COMPAT FLAG
393                __webpack_require__.r(__webpack_exports__);
394        // EXPORTS
395                __webpack_require__.d(__webpack_exports__, {
396            OrbisLogo: function() {
397                /* binding */ return OrbisLogo;
398            }
399        });
400        // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/react/jsx-runtime.js
401                var jsx_runtime = __webpack_require__(9221);
402        // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/react/index.js
403                var react = __webpack_require__(7884);
404        // CONCATENATED MODULE: ./components/ui/OrbisLogo.tsx
405        /* __next_internal_client_entry_do_not_use__ OrbisLogo auto */
406        function OrbisLogo(param) {
407            let {className: className = "", tmColor: tmColor = "text-gray-400", tmSize: tmSize = "text-sm", animated: animated = true, testMobile: testMobile = false} = param;
408            const containerRef = (0, react.useRef)(null);
409            const [dimensions, setDimensions] = (0, react.useState)({
410                width: 0
411            });
412            (0, react.useEffect)((() => {
413                const updateDimensions = () => {
414                    if (containerRef.current) {
415                        const rect = containerRef.current.getBoundingClientRect();
416                        setDimensions({
417                            width: rect.width
418                        });
419                    }
420                };
421                updateDimensions();
422                window.addEventListener("resize", updateDimensions);
423                return () => window.removeEventListener("resize", updateDimensions);
424            }), []);
425             
426            return (0, jsx_runtime.jsxs)("span", {
427                className: "relative inline-block group transition-all duration-300",
428                children: [ 
429                
430                 (0, jsx_runtime.jsxs)("span", {
431                    ref: containerRef,
432                    className: "font-bold logo-font ".concat(animated ? "logo-hover" : "", " ").concat(testMobile ? "force-mobile-animation" : "", " ").concat(className, " transform group-hover:scale-[1.02] transition-all duration-300 group-hover:drop-shadow-[0_0_8px_rgba(59,130,246,0.5)]"),
433                    children: [ 
434                    
435                     (0, jsx_runtime.jsx)("span", {
436                        className: "text-white inline-block mr-[1px] bg-gradient-to-br from-emerald-400 via-amber-300 to-blue-400 bg-clip-text group-hover:text-transparent transition-colors duration-300",
437                        children: "Orb"
438                    }), 
439                    
440                     (0, jsx_runtime.jsx)("span", {
441                        className: "text-white inline-block mr-[1px]",
442                        children: "is"
443                    }), 
444                    
445                     (0, jsx_runtime.jsx)("span", {
446                        className: "text-white inline-block mr-[1px] bg-gradient-to-br from-blue-400 via-amber-300 to-emerald-400 bg-clip-text group-hover:text-transparent transition-colors duration-300",
447                        children: "Flow"
448                    }), 
449                    
450                     (0, jsx_runtime.jsx)("span", {
451                        className: "text-white inline-block",
452                        children: ".ai"
453                    }), 
454                    
455                     (0, jsx_runtime.jsx)("span", {
456                        className: "".concat(tmColor, " ").concat(tmSize),
457                        children: "™"
458                    }) ]
459                }), dimensions.width > 0 &&   (0, jsx_runtime.jsx)("span", {
460                    className: "absolute left-0 -bottom-2 w-full h-[6px] rounded-[3px]",
461                    style: {
462                        background: "linear-gradient(to right, rgba(239, 68, 68, 0.3), rgba(59, 130, 246, 0.3) 30%, rgba(245, 158, 11, 0.3) 60%, rgba(16, 185, 129, 0.3))",
463                        backdropFilter: "blur(4px)"
464                    }
465                }) ]
466            });
467        }
468        /***/    },
469    /***/ 4927: 
470    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
471        "use strict";
472        __webpack_require__.r(__webpack_exports__);
473        /* harmony export */        __webpack_require__.d(__webpack_exports__, {
474            /* harmony export */ AccessibilityProvider: function() {
475                /* binding */ return AccessibilityProvider;
476            },
477            /* harmony export */ useAccessibility: function() {
478                /* binding */ return useAccessibility;
479            }
480            /* harmony export */        });
481        /* harmony import */        var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9221);
482        /* harmony import */        var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7884);
483        /* __next_internal_client_entry_do_not_use__ AccessibilityProvider,useAccessibility auto */        const defaultSettings = {
484            usePatterns: false,
485            highContrast: false,
486            alwaysShowLabels: false,
487            reduceMotion: false
488        };
489        const AccessibilityContext =   (0, react__WEBPACK_IMPORTED_MODULE_1__.createContext)(void 0);
490        function AccessibilityProvider(param) {
491            let {children: children} = param;
492            const [settings, setSettings] = (0, react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultSettings);
493            // Load settings from localStorage on mount
494                        (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => {
495                const savedSettings = localStorage.getItem("accessibilitySettings");
496                if (savedSettings) setSettings(JSON.parse(savedSettings));
497            }), []);
498            // Save settings to localStorage whenever they change
499                        const updateSettings = newSettings => {
500                setSettings((prev => {
501                    const updated = {
502                        ...prev,
503                        ...newSettings
504                    };
505                    localStorage.setItem("accessibilitySettings", JSON.stringify(updated));
506                    return updated;
507                }));
508            };
509             
510            return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AccessibilityContext.Provider, {
511                value: {
512                    settings: settings,
513                    updateSettings: updateSettings
514                },
515                children: children
516            });
517        }
518        function useAccessibility() {
519            const context = (0, react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AccessibilityContext);
520            if (context === void 0) throw new Error("useAccessibility must be used within an AccessibilityProvider");
521            return context;
522        }
523        /***/    },
524    /***/ 9898: 
525    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
526        "use strict";
527        /* harmony import */        var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8424);
528        /* harmony import */         __webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);
529        /* harmony reexport (checked) */        if (__webpack_require__.o(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__, "usePathname")) __webpack_require__.d(__webpack_exports__, {
530            usePathname: function() {
531                return _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.usePathname;
532            }
533        });
534        /* harmony reexport (checked) */        if (__webpack_require__.o(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__, "useSearchParams")) __webpack_require__.d(__webpack_exports__, {
535            useSearchParams: function() {
536                return _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__.useSearchParams;
537            }
538        });
539        //# sourceMappingURL=navigation.js.map
540        /***/    },
541    /***/ 6169: 
542    /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
543        "use strict";
544        /* harmony export */        __webpack_require__.d(__webpack_exports__, {
545            /* harmony export */ d4: function() {
546                /* reexport safe */ return _Volumes_Untitled_mahboob_dev_ai_landing_1_node_modules_pnpm_next_14_1_0_babel_core_7_26_0_react_dom_18_3_1_react_18_3_1_react_18_3_1_node_modules_next_dist_compiled_react_index_js__WEBPACK_IMPORTED_MODULE_0__.useEffect;
547            },
548            /* harmony export */ eJ: function() {
549                /* reexport safe */ return _Volumes_Untitled_mahboob_dev_ai_landing_1_node_modules_pnpm_next_14_1_0_babel_core_7_26_0_react_dom_18_3_1_react_18_3_1_react_18_3_1_node_modules_next_dist_compiled_react_index_js__WEBPACK_IMPORTED_MODULE_0__.useState;
550            }
551            /* harmony export */        });
552        /* harmony import */        var _Volumes_Untitled_mahboob_dev_ai_landing_1_node_modules_pnpm_next_14_1_0_babel_core_7_26_0_react_dom_18_3_1_react_18_3_1_react_18_3_1_node_modules_next_dist_compiled_react_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7884);
553        /***/    }
554} ]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.