@asymmetric-effort/specifyjs 0.2.98 → 0.2.100
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/dist/specifyjs-build.cjs.js +160 -1
- package/dist/specifyjs-build.cjs.js.map +7 -1
- package/dist/specifyjs-build.d.ts +1 -110
- package/dist/specifyjs-build.esm.js +160 -1
- package/dist/specifyjs-build.esm.js.map +7 -1
- package/dist/specifyjs-client.cjs.js +2 -1
- package/dist/specifyjs-client.cjs.js.map +7 -1
- package/dist/specifyjs-client.d.ts +1 -159
- package/dist/specifyjs-client.esm.js +2 -1
- package/dist/specifyjs-client.esm.js.map +7 -1
- package/dist/specifyjs-components.cjs.js +8 -1
- package/dist/specifyjs-components.cjs.js.map +7 -1
- package/dist/specifyjs-components.d.ts +1 -3334
- package/dist/specifyjs-components.esm.js +8 -1
- package/dist/specifyjs-components.esm.js.map +7 -1
- package/dist/specifyjs-dom.cjs.js +2 -1
- package/dist/specifyjs-dom.cjs.js.map +7 -1
- package/dist/specifyjs-dom.d.ts +1 -107
- package/dist/specifyjs-dom.esm.js +2 -1
- package/dist/specifyjs-dom.esm.js.map +7 -1
- package/dist/specifyjs-jsx-dev-runtime.cjs.js +2 -1
- package/dist/specifyjs-jsx-dev-runtime.cjs.js.map +7 -1
- package/dist/specifyjs-jsx-dev-runtime.esm.js +2 -1
- package/dist/specifyjs-jsx-dev-runtime.esm.js.map +7 -1
- package/dist/specifyjs-jsx-runtime.cjs.js +2 -1
- package/dist/specifyjs-jsx-runtime.cjs.js.map +7 -1
- package/dist/specifyjs-jsx-runtime.esm.js +2 -1
- package/dist/specifyjs-jsx-runtime.esm.js.map +7 -1
- package/dist/specifyjs-server.cjs.js +2 -1
- package/dist/specifyjs-server.cjs.js.map +7 -1
- package/dist/specifyjs-server.d.ts +1 -136
- package/dist/specifyjs-server.esm.js +2 -1
- package/dist/specifyjs-server.esm.js.map +7 -1
- package/dist/specifyjs-telemetry.cjs.js +2 -1
- package/dist/specifyjs-telemetry.cjs.js.map +7 -1
- package/dist/specifyjs-telemetry.d.ts +1 -165
- package/dist/specifyjs-telemetry.esm.js +2 -1
- package/dist/specifyjs-telemetry.esm.js.map +7 -1
- package/dist/specifyjs.cjs.js +2 -1
- package/dist/specifyjs.cjs.js.map +7 -1
- package/dist/specifyjs.d.ts +1 -581
- package/dist/specifyjs.esm.js +2 -1
- package/dist/specifyjs.esm.js.map +7 -1
- package/dist/types/build/index.d.ts +5 -0
- package/dist/types/build/index.d.ts.map +1 -0
- package/dist/types/build/noscript-plugin.d.ts +63 -0
- package/dist/types/build/noscript-plugin.d.ts.map +1 -0
- package/dist/types/build/seo-plugin.d.ts +43 -0
- package/dist/types/build/seo-plugin.d.ts.map +1 -0
- package/dist/types/client/graphql.d.ts +64 -0
- package/dist/types/client/graphql.d.ts.map +1 -0
- package/dist/types/client/index.d.ts +4 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/client/protobuf.d.ts +40 -0
- package/dist/types/client/protobuf.d.ts.map +1 -0
- package/dist/types/client/rest.d.ts +61 -0
- package/dist/types/client/rest.d.ts.map +1 -0
- package/dist/types/components/ad/adsense/src/AdSense.d.ts +19 -0
- package/dist/types/components/ad/adsense/src/index.d.ts +2 -0
- package/dist/types/components/analytics/google-analytics/src/GoogleAnalytics.d.ts +13 -0
- package/dist/types/components/analytics/google-analytics/src/index.d.ts +2 -0
- package/dist/types/components/component.d.ts +39 -0
- package/dist/types/components/component.d.ts.map +1 -0
- package/dist/types/components/data/analog-clock/src/AnalogClock.d.ts +17 -0
- package/dist/types/components/data/analog-clock/src/index.d.ts +2 -0
- package/dist/types/components/data/avatar/src/Avatar.d.ts +19 -0
- package/dist/types/components/data/avatar/src/index.d.ts +2 -0
- package/dist/types/components/data/badge/src/Badge.d.ts +17 -0
- package/dist/types/components/data/badge/src/index.d.ts +2 -0
- package/dist/types/components/data/data-grid/src/DataGrid.d.ts +47 -0
- package/dist/types/components/data/data-grid/src/index.d.ts +2 -0
- package/dist/types/components/data/digital-clock/src/DigitalClock.d.ts +15 -0
- package/dist/types/components/data/digital-clock/src/index.d.ts +2 -0
- package/dist/types/components/data/list-view/src/ListView.d.ts +23 -0
- package/dist/types/components/data/list-view/src/index.d.ts +2 -0
- package/dist/types/components/data/tag/src/Tag.d.ts +21 -0
- package/dist/types/components/data/tag/src/index.d.ts +2 -0
- package/dist/types/components/data/virtual-scroll/src/VirtualScroll.d.ts +13 -0
- package/dist/types/components/data/virtual-scroll/src/index.d.ts +2 -0
- package/dist/types/components/error-boundary.d.ts +23 -0
- package/dist/types/components/error-boundary.d.ts.map +1 -0
- package/dist/types/components/errors/_shared/src/HttpErrorPage.d.ts +15 -0
- package/dist/types/components/errors/_shared/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-400/src/Http400.d.ts +9 -0
- package/dist/types/components/errors/http-400/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-401/src/Http401.d.ts +9 -0
- package/dist/types/components/errors/http-401/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-403/src/Http403.d.ts +9 -0
- package/dist/types/components/errors/http-403/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-404/src/Http404.d.ts +9 -0
- package/dist/types/components/errors/http-404/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-405/src/Http405.d.ts +9 -0
- package/dist/types/components/errors/http-405/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-408/src/Http408.d.ts +9 -0
- package/dist/types/components/errors/http-408/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-429/src/Http429.d.ts +9 -0
- package/dist/types/components/errors/http-429/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-500/src/Http500.d.ts +9 -0
- package/dist/types/components/errors/http-500/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-502/src/Http502.d.ts +9 -0
- package/dist/types/components/errors/http-502/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-503/src/Http503.d.ts +9 -0
- package/dist/types/components/errors/http-503/src/index.d.ts +2 -0
- package/dist/types/components/errors/http-504/src/Http504.d.ts +9 -0
- package/dist/types/components/errors/http-504/src/index.d.ts +2 -0
- package/dist/types/components/feedback/alert/src/Alert.d.ts +25 -0
- package/dist/types/components/feedback/alert/src/index.d.ts +2 -0
- package/dist/types/components/feedback/empty-state/src/EmptyState.d.ts +17 -0
- package/dist/types/components/feedback/empty-state/src/index.d.ts +2 -0
- package/dist/types/components/feedback/progress-bar/src/ProgressBar.d.ts +23 -0
- package/dist/types/components/feedback/progress-bar/src/index.d.ts +2 -0
- package/dist/types/components/feedback/skeleton/src/Skeleton.d.ts +15 -0
- package/dist/types/components/feedback/skeleton/src/index.d.ts +2 -0
- package/dist/types/components/feedback/spinner/src/Spinner.d.ts +13 -0
- package/dist/types/components/feedback/spinner/src/index.d.ts +2 -0
- package/dist/types/components/form/button/src/Button.d.ts +25 -0
- package/dist/types/components/form/button/src/index.d.ts +2 -0
- package/dist/types/components/form/checkbox/src/Checkbox.d.ts +19 -0
- package/dist/types/components/form/checkbox/src/index.d.ts +2 -0
- package/dist/types/components/form/color-picker/src/ColorPicker.d.ts +19 -0
- package/dist/types/components/form/color-picker/src/index.d.ts +2 -0
- package/dist/types/components/form/color-wheel/src/ColorWheel.d.ts +17 -0
- package/dist/types/components/form/color-wheel/src/index.d.ts +2 -0
- package/dist/types/components/form/datepicker/src/DatePicker.d.ts +23 -0
- package/dist/types/components/form/datepicker/src/index.d.ts +2 -0
- package/dist/types/components/form/file-upload/src/FileUpload.d.ts +19 -0
- package/dist/types/components/form/file-upload/src/index.d.ts +2 -0
- package/dist/types/components/form/multiline/src/MultilineField.d.ts +41 -0
- package/dist/types/components/form/multiline/src/index.d.ts +2 -0
- package/dist/types/components/form/number-spinner/src/NumberSpinner.d.ts +25 -0
- package/dist/types/components/form/number-spinner/src/index.d.ts +2 -0
- package/dist/types/components/form/radio/src/RadioGroup.d.ts +26 -0
- package/dist/types/components/form/radio/src/index.d.ts +2 -0
- package/dist/types/components/form/select/src/Select.d.ts +33 -0
- package/dist/types/components/form/select/src/index.d.ts +2 -0
- package/dist/types/components/form/slider/src/Slider.d.ts +33 -0
- package/dist/types/components/form/slider/src/index.d.ts +2 -0
- package/dist/types/components/form/texteditor/src/TextEditor.d.ts +46 -0
- package/dist/types/components/form/texteditor/src/index.d.ts +2 -0
- package/dist/types/components/form/textfield/src/TextField.d.ts +48 -0
- package/dist/types/components/form/textfield/src/index.d.ts +2 -0
- package/dist/types/components/form/timepicker/src/TimePicker.d.ts +29 -0
- package/dist/types/components/form/timepicker/src/index.d.ts +2 -0
- package/dist/types/components/form/toggle/src/Toggle.d.ts +19 -0
- package/dist/types/components/form/toggle/src/index.d.ts +2 -0
- package/dist/types/components/form/wrapper/src/FormFieldWrapper.d.ts +67 -0
- package/dist/types/components/form/wrapper/src/index.d.ts +2 -0
- package/dist/types/components/layout/card/src/Card.d.ts +31 -0
- package/dist/types/components/layout/card/src/index.d.ts +2 -0
- package/dist/types/components/layout/desktop-background/src/DesktopBackground.d.ts +23 -0
- package/dist/types/components/layout/desktop-background/src/index.d.ts +2 -0
- package/dist/types/components/layout/draggable-window/src/DraggableWindow.d.ts +59 -0
- package/dist/types/components/layout/draggable-window/src/index.d.ts +2 -0
- package/dist/types/components/layout/flex-container/src/FlexContainer.d.ts +42 -0
- package/dist/types/components/layout/flex-container/src/index.d.ts +2 -0
- package/dist/types/components/layout/footer/src/Footer.d.ts +25 -0
- package/dist/types/components/layout/footer/src/index.d.ts +2 -0
- package/dist/types/components/layout/grid/src/Grid.d.ts +54 -0
- package/dist/types/components/layout/grid/src/index.d.ts +2 -0
- package/dist/types/components/layout/panel/src/Panel.d.ts +23 -0
- package/dist/types/components/layout/panel/src/index.d.ts +2 -0
- package/dist/types/components/layout/scroll-container/src/ScrollContainer.d.ts +21 -0
- package/dist/types/components/layout/scroll-container/src/index.d.ts +2 -0
- package/dist/types/components/layout/splitter/src/Splitter.d.ts +19 -0
- package/dist/types/components/layout/splitter/src/index.d.ts +2 -0
- package/dist/types/components/layout/tabs/src/Tabs.d.ts +29 -0
- package/dist/types/components/layout/tabs/src/index.d.ts +2 -0
- package/dist/types/components/layout/window-manager/src/WindowManager.d.ts +106 -0
- package/dist/types/components/layout/window-manager/src/index.d.ts +2 -0
- package/dist/types/components/math/src/index.d.ts +5 -0
- package/dist/types/components/math/src/mat.d.ts +71 -0
- package/dist/types/components/math/src/mat4.d.ts +101 -0
- package/dist/types/components/math/src/quaternion.d.ts +62 -0
- package/dist/types/components/math/src/solver.d.ts +55 -0
- package/dist/types/components/math/src/vec.d.ts +54 -0
- package/dist/types/components/media/carousel/src/Carousel.d.ts +23 -0
- package/dist/types/components/media/carousel/src/index.d.ts +2 -0
- package/dist/types/components/media/image/src/Image.d.ts +23 -0
- package/dist/types/components/media/image/src/index.d.ts +2 -0
- package/dist/types/components/media/video-player/src/VideoPlayer.d.ts +27 -0
- package/dist/types/components/media/video-player/src/index.d.ts +2 -0
- package/dist/types/components/nav/accordion/src/Accordion.d.ts +52 -0
- package/dist/types/components/nav/accordion/src/index.d.ts +2 -0
- package/dist/types/components/nav/breadcrumb/src/Breadcrumb.d.ts +20 -0
- package/dist/types/components/nav/breadcrumb/src/index.d.ts +2 -0
- package/dist/types/components/nav/dock/src/Dock.d.ts +46 -0
- package/dist/types/components/nav/dock/src/index.d.ts +2 -0
- package/dist/types/components/nav/dropdown/src/Dropdown.d.ts +36 -0
- package/dist/types/components/nav/dropdown/src/index.d.ts +2 -0
- package/dist/types/components/nav/menubar/src/Menubar.d.ts +27 -0
- package/dist/types/components/nav/menubar/src/index.d.ts +2 -0
- package/dist/types/components/nav/pagination/src/Pagination.d.ts +19 -0
- package/dist/types/components/nav/pagination/src/index.d.ts +2 -0
- package/dist/types/components/nav/sidebar/src/Sidebar.d.ts +29 -0
- package/dist/types/components/nav/sidebar/src/index.d.ts +2 -0
- package/dist/types/components/nav/stepper/src/Stepper.d.ts +25 -0
- package/dist/types/components/nav/stepper/src/index.d.ts +2 -0
- package/dist/types/components/nav/system-tray/src/SystemTray.d.ts +47 -0
- package/dist/types/components/nav/system-tray/src/index.d.ts +2 -0
- package/dist/types/components/nav/toolbar/src/Toolbar.d.ts +27 -0
- package/dist/types/components/nav/toolbar/src/index.d.ts +2 -0
- package/dist/types/components/nav/treenav/src/TreeNav.d.ts +34 -0
- package/dist/types/components/nav/treenav/src/TreeNode.d.ts +74 -0
- package/dist/types/components/nav/treenav/src/index.d.ts +4 -0
- package/dist/types/components/nav/wrapper/src/NavWrapper.d.ts +73 -0
- package/dist/types/components/nav/wrapper/src/index.d.ts +2 -0
- package/dist/types/components/overlay/context-menu/src/ContextMenu.d.ts +21 -0
- package/dist/types/components/overlay/context-menu/src/index.d.ts +2 -0
- package/dist/types/components/overlay/drawer/src/Drawer.d.ts +22 -0
- package/dist/types/components/overlay/drawer/src/index.d.ts +2 -0
- package/dist/types/components/overlay/modal/src/Modal.d.ts +22 -0
- package/dist/types/components/overlay/modal/src/index.d.ts +2 -0
- package/dist/types/components/overlay/popover/src/Popover.d.ts +20 -0
- package/dist/types/components/overlay/popover/src/index.d.ts +2 -0
- package/dist/types/components/overlay/toast/src/Toast.d.ts +59 -0
- package/dist/types/components/overlay/toast/src/index.d.ts +2 -0
- package/dist/types/components/overlay/tooltip/src/Tooltip.d.ts +14 -0
- package/dist/types/components/overlay/tooltip/src/index.d.ts +2 -0
- package/dist/types/components/page/ide/src/IDE.d.ts +5 -0
- package/dist/types/components/page/ide/src/index.d.ts +2 -0
- package/dist/types/components/page/trading-dashboard/src/TradingDashboard.d.ts +5 -0
- package/dist/types/components/page/trading-dashboard/src/index.d.ts +2 -0
- package/dist/types/components/page/unity-desktop/src/UnityApp.d.ts +30 -0
- package/dist/types/components/page/unity-desktop/src/UnityDesktop.d.ts +30 -0
- package/dist/types/components/page/unity-desktop/src/index.d.ts +4 -0
- package/dist/types/components/page/word-processor/src/WordProcessor.d.ts +7 -0
- package/dist/types/components/page/word-processor/src/index.d.ts +2 -0
- package/dist/types/components/profiler.d.ts +6 -0
- package/dist/types/components/profiler.d.ts.map +1 -0
- package/dist/types/components/strict-mode.d.ts +6 -0
- package/dist/types/components/strict-mode.d.ts.map +1 -0
- package/dist/types/components/suspense.d.ts +6 -0
- package/dist/types/components/suspense.d.ts.map +1 -0
- package/dist/types/components/viz/2D-bar-graph/src/BarGraph.d.ts +61 -0
- package/dist/types/components/viz/2D-bar-graph/src/index.d.ts +2 -0
- package/dist/types/components/viz/2D-cartesian-raw/src/CartesianGraph2D.d.ts +40 -0
- package/dist/types/components/viz/2D-cartesian-raw/src/index.d.ts +2 -0
- package/dist/types/components/viz/2D-complex-graph/src/ComplexGraph2D.d.ts +33 -0
- package/dist/types/components/viz/2D-complex-graph/src/index.d.ts +2 -0
- package/dist/types/components/viz/2D-discrete-cartesian/src/DiscreteCartesian2D.d.ts +31 -0
- package/dist/types/components/viz/2D-discrete-cartesian/src/index.d.ts +2 -0
- package/dist/types/components/viz/2D-line-graph/src/LineGraph.d.ts +53 -0
- package/dist/types/components/viz/2D-line-graph/src/index.d.ts +2 -0
- package/dist/types/components/viz/2D-pie-graph/src/PieGraph.d.ts +49 -0
- package/dist/types/components/viz/2D-pie-graph/src/index.d.ts +3 -0
- package/dist/types/components/viz/2D-polar-graph/src/PolarGraph2D.d.ts +35 -0
- package/dist/types/components/viz/2D-polar-graph/src/index.d.ts +2 -0
- package/dist/types/components/viz/3d-layers/src/ThreeDLayers.d.ts +35 -0
- package/dist/types/components/viz/3d-layers/src/index.d.ts +2 -0
- package/dist/types/components/viz/3dSpace/src/Space3D.d.ts +63 -0
- package/dist/types/components/viz/3dSpace/src/animation.d.ts +75 -0
- package/dist/types/components/viz/3dSpace/src/bounds.d.ts +36 -0
- package/dist/types/components/viz/3dSpace/src/camera-controller.d.ts +59 -0
- package/dist/types/components/viz/3dSpace/src/camera.d.ts +43 -0
- package/dist/types/components/viz/3dSpace/src/collision.d.ts +54 -0
- package/dist/types/components/viz/3dSpace/src/cpu-pipeline.d.ts +47 -0
- package/dist/types/components/viz/3dSpace/src/index.d.ts +32 -0
- package/dist/types/components/viz/3dSpace/src/light.d.ts +23 -0
- package/dist/types/components/viz/3dSpace/src/lighting-model.d.ts +34 -0
- package/dist/types/components/viz/3dSpace/src/material.d.ts +12 -0
- package/dist/types/components/viz/3dSpace/src/mesh.d.ts +35 -0
- package/dist/types/components/viz/3dSpace/src/picking.d.ts +51 -0
- package/dist/types/components/viz/3dSpace/src/render-pipeline.d.ts +12 -0
- package/dist/types/components/viz/3dSpace/src/scene-graph.d.ts +20 -0
- package/dist/types/components/viz/3dSpace/src/scene-object.d.ts +31 -0
- package/dist/types/components/viz/3dSpace/src/terrain.d.ts +34 -0
- package/dist/types/components/viz/3dSpace/src/texture.d.ts +22 -0
- package/dist/types/components/viz/3dSpace/src/types.d.ts +42 -0
- package/dist/types/components/viz/3dSpace/src/viewport.d.ts +19 -0
- package/dist/types/components/viz/3dSpace/src/webgl-pipeline.d.ts +54 -0
- package/dist/types/components/viz/big-number/src/BigNumber.d.ts +29 -0
- package/dist/types/components/viz/big-number/src/index.d.ts +2 -0
- package/dist/types/components/viz/bloch-sphere/src/BlochSphere.d.ts +73 -0
- package/dist/types/components/viz/bloch-sphere/src/index.d.ts +2 -0
- package/dist/types/components/viz/box-plot/src/BoxPlot.d.ts +47 -0
- package/dist/types/components/viz/box-plot/src/index.d.ts +2 -0
- package/dist/types/components/viz/bubble-chart/src/BubbleChart.d.ts +38 -0
- package/dist/types/components/viz/bubble-chart/src/index.d.ts +2 -0
- package/dist/types/components/viz/calendar-heat-map/src/CalendarHeatMap.d.ts +29 -0
- package/dist/types/components/viz/calendar-heat-map/src/index.d.ts +2 -0
- package/dist/types/components/viz/chord/src/ChordDiagram.d.ts +25 -0
- package/dist/types/components/viz/chord/src/index.d.ts +2 -0
- package/dist/types/components/viz/decomposition-tree/src/DecompositionTree.d.ts +33 -0
- package/dist/types/components/viz/decomposition-tree/src/index.d.ts +2 -0
- package/dist/types/components/viz/earth-globe/src/EarthGlobe.d.ts +62 -0
- package/dist/types/components/viz/earth-globe/src/globe-data.d.ts +23 -0
- package/dist/types/components/viz/earth-globe/src/index.d.ts +5 -0
- package/dist/types/components/viz/force-graph/src/ForceGraph.d.ts +99 -0
- package/dist/types/components/viz/force-graph/src/index.d.ts +2 -0
- package/dist/types/components/viz/funnel/src/FunnelChart.d.ts +28 -0
- package/dist/types/components/viz/funnel/src/index.d.ts +2 -0
- package/dist/types/components/viz/gantt-chart/src/GanttChart.d.ts +33 -0
- package/dist/types/components/viz/gantt-chart/src/index.d.ts +2 -0
- package/dist/types/components/viz/gauge/src/Gauge.d.ts +37 -0
- package/dist/types/components/viz/gauge/src/index.d.ts +2 -0
- package/dist/types/components/viz/graph/src/HypercubeGraph.d.ts +43 -0
- package/dist/types/components/viz/graph/src/hypercube.d.ts +78 -0
- package/dist/types/components/viz/graph/src/index.d.ts +4 -0
- package/dist/types/components/viz/heat-map/src/HeatMap.d.ts +29 -0
- package/dist/types/components/viz/heat-map/src/index.d.ts +2 -0
- package/dist/types/components/viz/histogram/src/Histogram.d.ts +27 -0
- package/dist/types/components/viz/histogram/src/index.d.ts +2 -0
- package/dist/types/components/viz/lollipop/src/LollipopChart.d.ts +32 -0
- package/dist/types/components/viz/lollipop/src/index.d.ts +2 -0
- package/dist/types/components/viz/matrix/src/Matrix.d.ts +29 -0
- package/dist/types/components/viz/matrix/src/index.d.ts +2 -0
- package/dist/types/components/viz/partition/src/Partition.d.ts +31 -0
- package/dist/types/components/viz/partition/src/index.d.ts +2 -0
- package/dist/types/components/viz/pivot-table/src/PivotTable.d.ts +25 -0
- package/dist/types/components/viz/pivot-table/src/index.d.ts +2 -0
- package/dist/types/components/viz/radar-chart/src/RadarChart.d.ts +35 -0
- package/dist/types/components/viz/radar-chart/src/index.d.ts +2 -0
- package/dist/types/components/viz/sankey/src/SankeyDiagram.d.ts +38 -0
- package/dist/types/components/viz/sankey/src/index.d.ts +2 -0
- package/dist/types/components/viz/sunburst/src/Sunburst.d.ts +27 -0
- package/dist/types/components/viz/sunburst/src/index.d.ts +2 -0
- package/dist/types/components/viz/tree-map/src/TreeMap.d.ts +29 -0
- package/dist/types/components/viz/tree-map/src/index.d.ts +2 -0
- package/dist/types/components/viz/us-state-map/src/USStateMap.d.ts +23 -0
- package/dist/types/components/viz/us-state-map/src/index.d.ts +4 -0
- package/dist/types/components/viz/us-state-map/src/us-state-paths.d.ts +10 -0
- package/dist/types/components/viz/vector-field/src/VectorField.d.ts +61 -0
- package/dist/types/components/viz/vector-field/src/index.d.ts +2 -0
- package/dist/types/components/viz/waterfall/src/WaterfallChart.d.ts +32 -0
- package/dist/types/components/viz/waterfall/src/index.d.ts +2 -0
- package/dist/types/components/viz/word-cloud/src/WordCloud.d.ts +30 -0
- package/dist/types/components/viz/word-cloud/src/index.d.ts +2 -0
- package/dist/types/components/viz/wrapper/src/VizWrapper.d.ts +60 -0
- package/dist/types/components/viz/wrapper/src/index.d.ts +2 -0
- package/dist/types/compute/context.d.ts +20 -0
- package/dist/types/compute/context.d.ts.map +1 -0
- package/dist/types/compute/cpu-backend.d.ts +15 -0
- package/dist/types/compute/cpu-backend.d.ts.map +1 -0
- package/dist/types/compute/index.d.ts +3 -0
- package/dist/types/compute/index.d.ts.map +1 -0
- package/dist/types/compute/types.d.ts +57 -0
- package/dist/types/compute/types.d.ts.map +1 -0
- package/dist/types/compute/webgl-backend.d.ts +33 -0
- package/dist/types/compute/webgl-backend.d.ts.map +1 -0
- package/dist/types/compute/webgpu-backend.d.ts +50 -0
- package/dist/types/compute/webgpu-backend.d.ts.map +1 -0
- package/dist/types/context/create-context.d.ts +15 -0
- package/dist/types/context/create-context.d.ts.map +1 -0
- package/dist/types/core/children.d.ts +15 -0
- package/dist/types/core/children.d.ts.map +1 -0
- package/dist/types/core/clone-element.d.ts +10 -0
- package/dist/types/core/clone-element.d.ts.map +1 -0
- package/dist/types/core/create-element.d.ts +20 -0
- package/dist/types/core/create-element.d.ts.map +1 -0
- package/dist/types/core/create-ref.d.ts +7 -0
- package/dist/types/core/create-ref.d.ts.map +1 -0
- package/dist/types/core/fiber.d.ts +30 -0
- package/dist/types/core/fiber.d.ts.map +1 -0
- package/dist/types/core/forward-ref.d.ts +16 -0
- package/dist/types/core/forward-ref.d.ts.map +1 -0
- package/dist/types/core/fragment.d.ts +6 -0
- package/dist/types/core/fragment.d.ts.map +1 -0
- package/dist/types/core/is-valid-element.d.ts +7 -0
- package/dist/types/core/is-valid-element.d.ts.map +1 -0
- package/dist/types/core/lanes.d.ts +47 -0
- package/dist/types/core/lanes.d.ts.map +1 -0
- package/dist/types/core/lazy.d.ts +20 -0
- package/dist/types/core/lazy.d.ts.map +1 -0
- package/dist/types/core/memo.d.ts +13 -0
- package/dist/types/core/memo.d.ts.map +1 -0
- package/dist/types/core/reconciler.d.ts +12 -0
- package/dist/types/core/reconciler.d.ts.map +1 -0
- package/dist/types/core/scheduler-host-config.d.ts +37 -0
- package/dist/types/core/scheduler-host-config.d.ts.map +1 -0
- package/dist/types/core/scheduler.d.ts +29 -0
- package/dist/types/core/scheduler.d.ts.map +1 -0
- package/dist/types/core/src/build/index.d.ts +4 -0
- package/dist/types/core/src/build/noscript-plugin.d.ts +62 -0
- package/dist/types/core/src/build/seo-plugin.d.ts +42 -0
- package/dist/types/core/src/client/graphql.d.ts +63 -0
- package/dist/types/core/src/client/index.d.ts +3 -0
- package/dist/types/core/src/client/protobuf.d.ts +39 -0
- package/dist/types/core/src/client/rest.d.ts +60 -0
- package/dist/types/core/src/components/component.d.ts +38 -0
- package/dist/types/core/src/components/error-boundary.d.ts +22 -0
- package/dist/types/core/src/components/profiler.d.ts +5 -0
- package/dist/types/core/src/components/strict-mode.d.ts +5 -0
- package/dist/types/core/src/components/suspense.d.ts +5 -0
- package/dist/types/core/src/components-barrel.d.ts +100 -0
- package/dist/types/core/src/compute/context.d.ts +19 -0
- package/dist/types/core/src/compute/cpu-backend.d.ts +14 -0
- package/dist/types/core/src/compute/index.d.ts +2 -0
- package/dist/types/core/src/compute/types.d.ts +56 -0
- package/dist/types/core/src/compute/webgl-backend.d.ts +32 -0
- package/dist/types/core/src/compute/webgpu-backend.d.ts +49 -0
- package/dist/types/core/src/context/create-context.d.ts +14 -0
- package/dist/types/core/src/core/children.d.ts +14 -0
- package/dist/types/core/src/core/clone-element.d.ts +9 -0
- package/dist/types/core/src/core/create-element.d.ts +19 -0
- package/dist/types/core/src/core/create-ref.d.ts +6 -0
- package/dist/types/core/src/core/fiber.d.ts +29 -0
- package/dist/types/core/src/core/forward-ref.d.ts +15 -0
- package/dist/types/core/src/core/fragment.d.ts +5 -0
- package/dist/types/core/src/core/is-valid-element.d.ts +6 -0
- package/dist/types/core/src/core/lanes.d.ts +46 -0
- package/dist/types/core/src/core/lazy.d.ts +19 -0
- package/dist/types/core/src/core/memo.d.ts +12 -0
- package/dist/types/core/src/core/reconciler.d.ts +11 -0
- package/dist/types/core/src/core/scheduler-host-config.d.ts +36 -0
- package/dist/types/core/src/core/scheduler.d.ts +28 -0
- package/dist/types/core/src/core/transitions.d.ts +31 -0
- package/dist/types/core/src/devtools/index.d.ts +21 -0
- package/dist/types/core/src/dom/create-portal.d.ts +6 -0
- package/dist/types/core/src/dom/create-root.d.ts +23 -0
- package/dist/types/core/src/dom/flush-sync.d.ts +1 -0
- package/dist/types/core/src/dom/index.d.ts +4 -0
- package/dist/types/core/src/dom/legacy.d.ts +16 -0
- package/dist/types/core/src/dom/synthetic-event.d.ts +90 -0
- package/dist/types/core/src/dom/work-loop.d.ts +34 -0
- package/dist/types/core/src/features/feature-flags.d.ts +38 -0
- package/dist/types/core/src/features/index.d.ts +27 -0
- package/dist/types/core/src/hooks/dispatcher.d.ts +26 -0
- package/dist/types/core/src/hooks/hook-state.d.ts +46 -0
- package/dist/types/core/src/hooks/index.d.ts +47 -0
- package/dist/types/core/src/hooks/install-dispatcher.d.ts +2 -0
- package/dist/types/core/src/hooks/use-head.d.ts +54 -0
- package/dist/types/core/src/index.d.ts +23 -0
- package/dist/types/core/src/jsx-dev-runtime.d.ts +1 -0
- package/dist/types/core/src/jsx-runtime.d.ts +7 -0
- package/dist/types/core/src/router/index.d.ts +12 -0
- package/dist/types/core/src/router/link-component.d.ts +16 -0
- package/dist/types/core/src/router/match-path.d.ts +28 -0
- package/dist/types/core/src/router/route-component.d.ts +12 -0
- package/dist/types/core/src/router/router-component.d.ts +5 -0
- package/dist/types/core/src/router/router-context.d.ts +13 -0
- package/dist/types/core/src/router/router-store.d.ts +22 -0
- package/dist/types/core/src/router/use-navigate.d.ts +4 -0
- package/dist/types/core/src/router/use-params.d.ts +2 -0
- package/dist/types/core/src/router/use-router.d.ts +3 -0
- package/dist/types/core/src/server/index.d.ts +3 -0
- package/dist/types/core/src/server/render-to-pipeable-stream.d.ts +31 -0
- package/dist/types/core/src/server/render-to-readable-stream.d.ts +19 -0
- package/dist/types/core/src/server/render-to-string.d.ts +25 -0
- package/dist/types/core/src/shared/act.d.ts +1 -0
- package/dist/types/core/src/shared/aria-warnings.d.ts +1 -0
- package/dist/types/core/src/shared/async-compute.d.ts +63 -0
- package/dist/types/core/src/shared/component-registry.d.ts +53 -0
- package/dist/types/core/src/shared/render-guard.d.ts +47 -0
- package/dist/types/core/src/shared/secure-fetch.d.ts +21 -0
- package/dist/types/core/src/shared/types.d.ts +127 -0
- package/dist/types/core/src/shared/warnings.d.ts +19 -0
- package/dist/types/core/src/telemetry/index.d.ts +2 -0
- package/dist/types/core/src/telemetry/metrics.d.ts +67 -0
- package/dist/types/core/src/telemetry/tracing.d.ts +95 -0
- package/dist/types/core/transitions.d.ts +32 -0
- package/dist/types/core/transitions.d.ts.map +1 -0
- package/dist/types/devtools/index.d.ts +22 -0
- package/dist/types/devtools/index.d.ts.map +1 -0
- package/dist/types/dom/create-portal.d.ts +7 -0
- package/dist/types/dom/create-portal.d.ts.map +1 -0
- package/dist/types/dom/create-root.d.ts +24 -0
- package/dist/types/dom/create-root.d.ts.map +1 -0
- package/dist/types/dom/flush-sync.d.ts +2 -0
- package/dist/types/dom/flush-sync.d.ts.map +1 -0
- package/dist/types/dom/index.d.ts +5 -0
- package/dist/types/dom/index.d.ts.map +1 -0
- package/dist/types/dom/legacy.d.ts +17 -0
- package/dist/types/dom/legacy.d.ts.map +1 -0
- package/dist/types/dom/synthetic-event.d.ts +91 -0
- package/dist/types/dom/synthetic-event.d.ts.map +1 -0
- package/dist/types/dom/work-loop.d.ts +35 -0
- package/dist/types/dom/work-loop.d.ts.map +1 -0
- package/dist/types/features/feature-flags.d.ts +39 -0
- package/dist/types/features/feature-flags.d.ts.map +1 -0
- package/dist/types/features/index.d.ts +28 -0
- package/dist/types/features/index.d.ts.map +1 -0
- package/dist/types/hooks/dispatcher.d.ts +27 -0
- package/dist/types/hooks/dispatcher.d.ts.map +1 -0
- package/dist/types/hooks/hook-state.d.ts +47 -0
- package/dist/types/hooks/hook-state.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +48 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/install-dispatcher.d.ts +3 -0
- package/dist/types/hooks/install-dispatcher.d.ts.map +1 -0
- package/dist/types/hooks/use-head.d.ts +55 -0
- package/dist/types/hooks/use-head.d.ts.map +1 -0
- package/dist/types/index.d.ts +24 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/jsx-dev-runtime.d.ts +2 -0
- package/dist/types/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/types/jsx-runtime.d.ts +8 -0
- package/dist/types/jsx-runtime.d.ts.map +1 -0
- package/dist/types/router/index.d.ts +13 -0
- package/dist/types/router/index.d.ts.map +1 -0
- package/dist/types/router/link-component.d.ts +17 -0
- package/dist/types/router/link-component.d.ts.map +1 -0
- package/dist/types/router/match-path.d.ts +29 -0
- package/dist/types/router/match-path.d.ts.map +1 -0
- package/dist/types/router/route-component.d.ts +13 -0
- package/dist/types/router/route-component.d.ts.map +1 -0
- package/dist/types/router/router-component.d.ts +6 -0
- package/dist/types/router/router-component.d.ts.map +1 -0
- package/dist/types/router/router-context.d.ts +14 -0
- package/dist/types/router/router-context.d.ts.map +1 -0
- package/dist/types/router/router-store.d.ts +23 -0
- package/dist/types/router/router-store.d.ts.map +1 -0
- package/dist/types/router/use-navigate.d.ts +5 -0
- package/dist/types/router/use-navigate.d.ts.map +1 -0
- package/dist/types/router/use-params.d.ts +3 -0
- package/dist/types/router/use-params.d.ts.map +1 -0
- package/dist/types/router/use-router.d.ts +4 -0
- package/dist/types/router/use-router.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +4 -0
- package/dist/types/server/index.d.ts.map +1 -0
- package/dist/types/server/render-to-pipeable-stream.d.ts +32 -0
- package/dist/types/server/render-to-pipeable-stream.d.ts.map +1 -0
- package/dist/types/server/render-to-readable-stream.d.ts +20 -0
- package/dist/types/server/render-to-readable-stream.d.ts.map +1 -0
- package/dist/types/server/render-to-string.d.ts +26 -0
- package/dist/types/server/render-to-string.d.ts.map +1 -0
- package/dist/types/shared/act.d.ts +2 -0
- package/dist/types/shared/act.d.ts.map +1 -0
- package/dist/types/shared/aria-warnings.d.ts +2 -0
- package/dist/types/shared/aria-warnings.d.ts.map +1 -0
- package/dist/types/shared/async-compute.d.ts +64 -0
- package/dist/types/shared/async-compute.d.ts.map +1 -0
- package/dist/types/shared/component-registry.d.ts +54 -0
- package/dist/types/shared/component-registry.d.ts.map +1 -0
- package/dist/types/shared/render-guard.d.ts +48 -0
- package/dist/types/shared/render-guard.d.ts.map +1 -0
- package/dist/types/shared/secure-fetch.d.ts +22 -0
- package/dist/types/shared/secure-fetch.d.ts.map +1 -0
- package/dist/types/shared/types.d.ts +128 -0
- package/dist/types/shared/types.d.ts.map +1 -0
- package/dist/types/shared/warnings.d.ts +20 -0
- package/dist/types/shared/warnings.d.ts.map +1 -0
- package/dist/types/telemetry/index.d.ts +3 -0
- package/dist/types/telemetry/index.d.ts.map +1 -0
- package/dist/types/telemetry/metrics.d.ts +68 -0
- package/dist/types/telemetry/metrics.d.ts.map +1 -0
- package/dist/types/telemetry/tracing.d.ts +96 -0
- package/dist/types/telemetry/tracing.d.ts.map +1 -0
- package/package.json +8 -17
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"specifyjs.cjs.js","sources":["../../src/shared/types.ts","../../src/core/create-element.ts","../../src/core/fragment.ts","../../src/context/create-context.ts","../../src/core/is-valid-element.ts","../../src/core/children.ts","../../src/components/component.ts","../../src/hooks/use-head.ts","../../src/hooks/index.ts","../../src/components/suspense.ts","../../src/components/strict-mode.ts","../../src/components/profiler.ts","../../src/router/router-context.ts","../../src/router/router-store.ts","../../src/router/match-path.ts","../../src/core/transitions.ts","../../src/core/scheduler.ts","../../src/shared/secure-fetch.ts","../../src/shared/component-registry.ts","../../src/features/feature-flags.ts","../../src/components/error-boundary.ts","../../src/router/link-component.ts","../../src/router/route-component.ts","../../src/router/router-component.ts","../../src/shared/act.ts","../../src/core/clone-element.ts","../../src/core/create-ref.ts","../../src/core/forward-ref.ts","../../src/core/lazy.ts","../../src/core/memo.ts","../../src/router/use-navigate.ts","../../src/router/use-params.ts","../../src/router/use-router.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SPEC_ELEMENT_TYPE","Symbol","for","SPEC_FRAGMENT_TYPE","SPEC_PROVIDER_TYPE","SPEC_CONSUMER_TYPE","SPEC_FORWARD_REF_TYPE","SPEC_MEMO_TYPE","SPEC_LAZY_TYPE","SPEC_SUSPENSE_TYPE","SPEC_STRICT_MODE_TYPE","SPEC_PROFILER_TYPE","createElement","type","config","children","key","ref","props","undefined","propName","Object","prototype","hasOwnProperty","call","length","defaultProps","keys","$$typeof","Fragment","createContext","defaultValue","context","Provider","Consumer","_currentValue","_defaultValue","provider","_context","consumer","isValidElement","object","flattenChildren","result","stack","node","pop","Array","isArray","i","push","Children","map","fn","flat","child","forEach","index","count","only","Error","toArray","filter","Component","constructor","this","_fiber","_pendingState","_forceUpdate","state","setState","updater","callback","_enqueueUpdate","forceUpdate","render","_callback","isSpecComponent","PureComponent","shouldComponentUpdate","nextProps","nextState","shallowEqual","a","b","is","keysA","keysB","objA","objB","escapeCssAttr","s","replace","setMeta","attr","content","selector","el","document","querySelector","existed","prevContent","setAttribute","head","appendChild","remove","setHttpEquivMeta","httpEquiv","resolveDispatcher","useState","initialState","useEffect","create","deps","useContext","useCallback","useMemo","factory","useRef","initialValue","isPureSpecComponent","Suspense","StrictMode","Profiler","RouterContext","pathname","params","navigate","basePath","getHashPath","path","window","location","hash","currentSnapshot","listeners","Set","emitChange","listener","getSnapshot","stripTrailingSlashes","end","charCodeAt","slice","matchPath","pattern","options","exact","normalizedPattern","normalizedPath","isExact","url","patternSegments","split","Boolean","pathSegments","hasWildcard","matchedSegments","patternSeg","remaining","join","pathSeg","startsWith","decodeURIComponent","toLowerCase","matchedUrl","addEventListener","transitionCallbacks","pendingTasks","flushPendingTasks","tasks","task","assertSecureUrl","parsed","URL","href","protocol","hostname","secureFetch","input","init","fetch","typeMap","Map","FeatureFlagContext","flags","isEnabled","setFlag","loading","getDerivedStateFromError","error","hasError","super","componentDidCatch","info","onError","fallback","setFlags","defaults","setLoading","cancelled","then","res","ok","status","json","safe","k","prev","catch","args","flag","enabled","value","to","className","activeClassName","rest","router","isActive","handleClick","preventDefault","cls","onClick","match","nestedValue","component","setPathname","add","delete","nav","hashPath","search","history","replaceState","element","current","displayName","name","payload","_status","_result","_payload","_init","promise","module","default","compare","id","typeIndex","parseInt","instanceId","entry","values","typeName","callbacks","cb","flushTransitions","format","useDebugValue","useDeferredValue","headRef","cleanup","prevTitle","title","description","keywords","author","canonical","link","rel","og","entries","twitter","httpEquivMap","csp","referrer","contentType","frameOptions","cacheControl","httpEquivName","meta","tag","property","JSON","stringify","useId","createHandle","useImperativeHandle","useInsertionEffect","useLayoutEffect","reducer","initialArg","useReducer","subscribe","getServerSnapshot","useSyncExternalStore","useTransition"],"mappings":"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"}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts", "../src/shared/types.ts", "../src/core/create-element.ts", "../src/core/fragment.ts", "../src/context/create-context.ts", "../src/core/create-ref.ts", "../src/core/forward-ref.ts", "../src/core/memo.ts", "../src/core/lazy.ts", "../src/core/is-valid-element.ts", "../src/core/clone-element.ts", "../src/core/children.ts", "../src/components/component.ts", "../src/components/error-boundary.ts", "../src/hooks/use-head.ts", "../src/hooks/index.ts", "../src/components/suspense.ts", "../src/components/strict-mode.ts", "../src/components/profiler.ts", "../src/router/router-context.ts", "../src/router/router-store.ts", "../src/router/router-component.ts", "../src/router/match-path.ts", "../src/router/route-component.ts", "../src/router/link-component.ts", "../src/router/use-router.ts", "../src/router/use-params.ts", "../src/router/use-navigate.ts", "../src/core/lanes.ts", "../src/core/transitions.ts", "../src/core/scheduler.ts", "../src/shared/act.ts", "../src/shared/secure-fetch.ts", "../src/shared/component-registry.ts", "../src/features/feature-flags.ts"],
|
|
4
|
+
"sourcesContent": ["// ============================================================================\n// SpecifyJS \u2014 Core Public API\n// ============================================================================\n// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nexport { createElement, createElement as h, createFactory } from './core/create-element';\nexport { Fragment } from './core/fragment';\nexport { createContext } from './context/create-context';\nexport { createRef } from './core/create-ref';\nexport { forwardRef } from './core/forward-ref';\nexport { memo } from './core/memo';\nexport { lazy } from './core/lazy';\nexport { isValidElement } from './core/is-valid-element';\nexport { cloneElement } from './core/clone-element';\nexport { Children } from './core/children';\nexport { Component, PureComponent } from './components/component';\nexport { ErrorBoundary } from './components/error-boundary';\n\n// Hooks\nexport {\n useState,\n useEffect,\n useContext,\n useReducer,\n useCallback,\n useMemo,\n useRef,\n useImperativeHandle,\n useLayoutEffect,\n useDebugValue,\n useId,\n useDeferredValue,\n useTransition,\n useSyncExternalStore,\n useInsertionEffect,\n useHead,\n} from './hooks/index';\n\n// Special component types\nexport { Suspense } from './components/suspense';\nexport { StrictMode } from './components/strict-mode';\nexport { Profiler } from './components/profiler';\n\n// Router\nexport { Router, Route, Link, useRouter, useParams, useNavigate, matchPath } from './router/index';\n\n// Utilities\nexport { startTransition } from './core/transitions';\nexport { act } from './shared/act';\nexport { secureFetch, assertSecureUrl } from './shared/secure-fetch';\nexport {\n resolveComponentId,\n getComponentTypeTable,\n setComponentIdsEnabled,\n} from './shared/component-registry';\n\n// Feature Flags\nexport { FeatureFlagProvider, FeatureGate, useFeatureFlags } from './features/index';\n\n// Types\nexport type {\n SpecElement,\n SpecNode,\n SpecChild,\n Props,\n Key,\n Ref,\n RefObject,\n RefCallback,\n FunctionComponent,\n ClassComponentConstructor,\n ClassComponentInstance,\n SpecContext,\n ErrorInfo,\n Fiber,\n} from './shared/types';\n", "// ============================================================================\n// SpecifyJS Core Types\n// ============================================================================\n// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/** Unique symbol to identify SpecifyJS elements */\nexport const SPEC_ELEMENT_TYPE = Symbol.for('spec.element');\nexport const SPEC_FRAGMENT_TYPE = Symbol.for('spec.fragment');\nexport const SPEC_PORTAL_TYPE = Symbol.for('spec.portal');\nexport const SPEC_PROVIDER_TYPE = Symbol.for('spec.provider');\nexport const SPEC_CONSUMER_TYPE = Symbol.for('spec.consumer');\nexport const SPEC_FORWARD_REF_TYPE = Symbol.for('spec.forward_ref');\nexport const SPEC_MEMO_TYPE = Symbol.for('spec.memo');\nexport const SPEC_LAZY_TYPE = Symbol.for('spec.lazy');\nexport const SPEC_SUSPENSE_TYPE = Symbol.for('spec.suspense');\nexport const SPEC_STRICT_MODE_TYPE = Symbol.for('spec.strict_mode');\nexport const SPEC_PROFILER_TYPE = Symbol.for('spec.profiler');\n\n/** A key used for reconciliation */\nexport type Key = string | number | null;\n\n/** A ref can be a callback, an object, or null */\nexport type Ref<T = unknown> = RefCallback<T> | RefObject<T> | null;\nexport type RefCallback<T> = (instance: T | null) => void;\nexport interface RefObject<T> {\n current: T | null;\n}\n\n/** Props are an arbitrary key-value map */\nexport type Props = Record<string, unknown> & {\n children?: SpecNode;\n key?: Key;\n ref?: Ref;\n};\n\n/** Valid child types in a SpecifyJS tree */\nexport type SpecChild = SpecElement | string | number | boolean | null | undefined;\nexport type SpecNode = SpecChild | SpecNode[];\n\n/** A functional component */\nexport type FunctionComponent<P extends Props = Props> = (props: P) => SpecNode;\n\n/** A class component constructor */\nexport interface ClassComponentConstructor<P extends Props = Props, S = unknown> {\n new (props: P): ClassComponentInstance<P, S>;\n getDerivedStateFromProps?(props: P, state: S): Partial<S> | null;\n getDerivedStateFromError?(error: unknown): Partial<S> | null;\n}\n\n/** Instance of a class component */\nexport interface ClassComponentInstance<P extends Props = Props, S = unknown> {\n props: P;\n state: S;\n setState(updater: Partial<S> | ((prevState: S, props: P) => Partial<S> | null)): void;\n forceUpdate(callback?: () => void): void;\n render(): SpecNode;\n componentDidMount?(): void;\n componentDidUpdate?(prevProps: P, prevState: S, snapshot?: unknown): void;\n componentWillUnmount?(): void;\n shouldComponentUpdate?(nextProps: P, nextState: S): boolean;\n getSnapshotBeforeUpdate?(prevProps: P, prevState: S): unknown;\n componentDidCatch?(error: unknown, info: ErrorInfo): void;\n // Internal: set by the reconciler for setState/forceUpdate wiring\n _fiber: unknown;\n _pendingState: Array<Partial<S> | ((prevState: S, props: P) => Partial<S> | null)>;\n _forceUpdate: boolean;\n _enqueueUpdate(callback?: () => void): void;\n}\n\nexport interface ErrorInfo {\n componentStack: string;\n}\n\n/** A component type can be a function, a class, or a special symbol type */\nexport type ComponentType<P extends Props = Props> =\n | FunctionComponent<P>\n | ClassComponentConstructor<P>\n | string\n | symbol;\n\n/** The core element structure \u2014 equivalent to React.Element */\nexport interface SpecElement<P extends Props = Props> {\n $$typeof: typeof SPEC_ELEMENT_TYPE;\n type: ComponentType<P>;\n props: P;\n key: Key;\n ref: Ref;\n}\n\n/** Fiber node types for the reconciler */\nexport const enum FiberTag {\n FunctionComponent = 0,\n ClassComponent = 1,\n HostRoot = 2,\n HostComponent = 3,\n HostText = 4,\n Fragment = 5,\n ContextProvider = 6,\n ContextConsumer = 7,\n ForwardRef = 8,\n MemoComponent = 9,\n LazyComponent = 10,\n SuspenseComponent = 11,\n Profiler = 12,\n Portal = 13,\n}\n\n/** Effect flags for fiber work */\nexport const enum EffectTag {\n NoEffect = 0,\n Placement = 1,\n Update = 2,\n Deletion = 4,\n ChildDeletion = 8,\n Snapshot = 16,\n Passive = 32,\n Layout = 64,\n Ref = 128,\n}\n\n/** Fiber node \u2014 the internal work unit */\nexport interface Fiber<P extends Props = Props> {\n tag: FiberTag;\n type: ComponentType<P> | null;\n key: Key;\n ref: Ref;\n\n stateNode: unknown;\n pendingProps: P;\n memoizedProps: P | null;\n memoizedState: unknown;\n\n return: Fiber | null;\n child: Fiber | null;\n sibling: Fiber | null;\n index: number;\n\n alternate: Fiber | null;\n effectTag: EffectTag;\n\n updateQueue: unknown;\n dependencies: unknown;\n\n lanes: number;\n childLanes: number;\n}\n\n/** Context type */\nexport interface SpecContext<T> {\n $$typeof: symbol;\n Provider: ComponentType;\n Consumer: ComponentType;\n _currentValue: T;\n _defaultValue: T;\n displayName?: string;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport {\n SPEC_ELEMENT_TYPE,\n type SpecElement,\n type ComponentType,\n type Props,\n type Key,\n type Ref,\n} from '../shared/types';\n\n/**\n * Creates a SpecifyJS element (virtual DOM node).\n * Equivalent to React.createElement.\n */\nexport function createElement<P extends Props>(\n type: ComponentType<P>,\n config: (Omit<P, 'children'> & { key?: Key; ref?: Ref }) | null,\n ...children: unknown[]\n): SpecElement<P> {\n let key: Key = null;\n let ref: Ref = null;\n const props: Record<string, unknown> = {};\n\n if (config != null) {\n if (config.key !== undefined) {\n key = '' + config.key;\n }\n if (config.ref !== undefined) {\n ref = config.ref as Ref;\n }\n\n for (const propName in config) {\n if (\n Object.prototype.hasOwnProperty.call(config, propName) &&\n propName !== 'key' &&\n propName !== 'ref' &&\n propName !== '__proto__' &&\n propName !== 'constructor' &&\n propName !== 'prototype'\n ) {\n props[propName] = (config as Record<string, unknown>)[propName];\n }\n }\n }\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n // Apply default props for component types\n if (\n typeof type === 'function' &&\n (type as unknown as { defaultProps?: Partial<P> }).defaultProps\n ) {\n const defaultProps = (type as unknown as { defaultProps: Partial<P> }).defaultProps;\n for (const propName of Object.keys(defaultProps)) {\n if (propName !== '__proto__' && propName !== 'constructor' && props[propName] === undefined) {\n props[propName] = defaultProps[propName as keyof typeof defaultProps];\n }\n }\n }\n\n return {\n $$typeof: SPEC_ELEMENT_TYPE,\n type,\n props: props as P,\n key,\n ref,\n };\n}\n\n/**\n * Creates a factory function for producing elements of a given type.\n * Legacy API \u2014 equivalent to React.createFactory.\n *\n * @deprecated Use createElement directly or JSX instead.\n */\nexport function createFactory<P extends Props>(\n type: ComponentType<P>,\n): (\n config?: (Omit<P, 'children'> & { key?: Key; ref?: Ref }) | null,\n ...children: unknown[]\n) => SpecElement<P> {\n return (config, ...children) => createElement(type, config ?? null, ...children);\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_FRAGMENT_TYPE } from '../shared/types';\n\n/**\n * Fragment allows grouping children without adding extra DOM nodes.\n * Usage: <Fragment>...</Fragment> or <>...</>\n */\nexport const Fragment: symbol = SPEC_FRAGMENT_TYPE;\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport {\n SPEC_PROVIDER_TYPE,\n SPEC_CONSUMER_TYPE,\n type SpecContext,\n type ComponentType,\n} from '../shared/types';\n\nexport interface ContextProvider<T> {\n $$typeof: typeof SPEC_PROVIDER_TYPE;\n _context: SpecContext<T>;\n}\n\nexport interface ContextConsumer<T> {\n $$typeof: typeof SPEC_CONSUMER_TYPE;\n _context: SpecContext<T>;\n}\n\n/**\n * Creates a context object with Provider and Consumer.\n * Equivalent to React.createContext.\n */\nexport function createContext<T>(defaultValue: T): SpecContext<T> {\n const context: SpecContext<T> = {\n $$typeof: Symbol.for('spec.context'),\n Provider: null as unknown as ComponentType,\n Consumer: null as unknown as ComponentType,\n _currentValue: defaultValue,\n _defaultValue: defaultValue,\n };\n\n const provider: ContextProvider<T> = {\n $$typeof: SPEC_PROVIDER_TYPE,\n _context: context,\n };\n\n const consumer: ContextConsumer<T> = {\n $$typeof: SPEC_CONSUMER_TYPE,\n _context: context,\n };\n\n context.Provider = provider as unknown as ComponentType;\n context.Consumer = consumer as unknown as ComponentType;\n\n return context;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport type { RefObject } from '../shared/types';\n\n/**\n * Creates a ref object with a mutable .current property.\n * Equivalent to React.createRef.\n */\nexport function createRef<T = unknown>(): RefObject<T> {\n return { current: null };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_FORWARD_REF_TYPE, type Props, type Ref, type SpecNode } from '../shared/types';\n\nexport interface ForwardRefRenderFunction<T, P extends Props = Props> {\n (props: P, ref: Ref<T>): SpecNode;\n displayName?: string;\n}\n\nexport interface ForwardRefComponent<T, P extends Props = Props> {\n $$typeof: typeof SPEC_FORWARD_REF_TYPE;\n render: ForwardRefRenderFunction<T, P>;\n displayName?: string;\n}\n\n/**\n * Forwards a ref through a component to a child.\n * Equivalent to React.forwardRef.\n */\nexport function forwardRef<T, P extends Props = Props>(\n render: ForwardRefRenderFunction<T, P>,\n): ForwardRefComponent<T, P> {\n return {\n $$typeof: SPEC_FORWARD_REF_TYPE,\n render,\n displayName: render.displayName || render.name || 'ForwardRef',\n };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_MEMO_TYPE, type Props, type ComponentType } from '../shared/types';\n\nexport interface MemoComponent<P extends Props = Props> {\n $$typeof: typeof SPEC_MEMO_TYPE;\n type: ComponentType<P>;\n compare: ((prevProps: P, nextProps: P) => boolean) | null;\n displayName?: string;\n}\n\n/**\n * Memoizes a component, skipping re-render if props are shallowly equal.\n * Equivalent to React.memo.\n */\nexport function memo<P extends Props>(\n component: ComponentType<P>,\n compare?: (prevProps: P, nextProps: P) => boolean,\n): MemoComponent<P> {\n return {\n $$typeof: SPEC_MEMO_TYPE,\n type: component,\n compare: compare || null,\n displayName:\n (component as { displayName?: string }).displayName ||\n (component as { name?: string }).name ||\n 'Memo',\n };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_LAZY_TYPE, type Props, type ComponentType } from '../shared/types';\n\ntype LazyStatus = 'pending' | 'resolved' | 'rejected';\n\nexport interface LazyComponent<P extends Props = Props> {\n $$typeof: typeof SPEC_LAZY_TYPE;\n _payload: {\n _status: LazyStatus;\n _result: ComponentType<P> | unknown;\n };\n _init: () => ComponentType<P>;\n displayName?: string;\n}\n\n/**\n * Lazily loads a component. Must be used with Suspense.\n * Equivalent to React.lazy.\n */\nexport function lazy<P extends Props>(\n factory: () => Promise<{ default: ComponentType<P> }>,\n): LazyComponent<P> {\n const payload: LazyComponent<P>['_payload'] = {\n _status: 'pending',\n _result: undefined,\n };\n\n const init = (): ComponentType<P> => {\n if (payload._status === 'resolved') {\n return payload._result as ComponentType<P>;\n }\n if (payload._status === 'rejected') {\n throw payload._result;\n }\n\n const promise = factory();\n payload._status = 'pending';\n\n promise.then(\n (module) => {\n payload._status = 'resolved';\n payload._result = module.default;\n },\n (error) => {\n payload._status = 'rejected';\n payload._result = error;\n },\n );\n\n throw promise;\n };\n\n return {\n $$typeof: SPEC_LAZY_TYPE,\n _payload: payload,\n _init: init,\n displayName: 'Lazy',\n };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_ELEMENT_TYPE, type SpecElement } from '../shared/types';\n\n/**\n * Checks if a value is a valid SpecifyJS element.\n * Equivalent to React.isValidElement.\n */\nexport function isValidElement(object: unknown): object is SpecElement {\n return (\n typeof object === 'object' &&\n object !== null &&\n (object as SpecElement).$$typeof === SPEC_ELEMENT_TYPE\n );\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport {\n SPEC_ELEMENT_TYPE,\n type SpecElement,\n type Props,\n type Key,\n type Ref,\n} from '../shared/types';\nimport { isValidElement } from './is-valid-element';\n\n/**\n * Clones a SpecifyJS element with new props merged in.\n * Equivalent to React.cloneElement.\n */\nexport function cloneElement<P extends Props>(\n element: SpecElement<P>,\n config?: Partial<P> & { key?: Key; ref?: Ref },\n ...children: unknown[]\n): SpecElement<P> {\n if (!isValidElement(element)) {\n throw new Error('cloneElement: argument must be a valid SpecifyJS element');\n }\n\n let key: Key = element.key;\n let ref: Ref = element.ref;\n const props: Record<string, unknown> = { ...element.props };\n\n if (config != null) {\n if (config.key !== undefined) {\n key = '' + config.key;\n }\n if (config.ref !== undefined) {\n ref = config.ref as Ref;\n }\n\n for (const propName in config) {\n if (\n Object.prototype.hasOwnProperty.call(config, propName) &&\n propName !== 'key' &&\n propName !== 'ref' &&\n propName !== '__proto__' &&\n propName !== 'constructor' &&\n propName !== 'prototype'\n ) {\n props[propName] = (config as Record<string, unknown>)[propName];\n }\n }\n }\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n return {\n $$typeof: SPEC_ELEMENT_TYPE,\n type: element.type,\n props: props as P,\n key,\n ref,\n };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport type { SpecNode, SpecChild, SpecElement } from '../shared/types';\nimport { isValidElement } from './is-valid-element';\n\n/**\n * Utilities for working with the children prop.\n * Equivalent to React.Children.\n */\n\nfunction flattenChildren(children: SpecNode): SpecChild[] {\n const result: SpecChild[] = [];\n const stack: SpecNode[] = [children];\n\n while (stack.length > 0) {\n const node = stack.pop()!;\n if (Array.isArray(node)) {\n for (let i = node.length - 1; i >= 0; i--) {\n stack.push(node[i] as SpecNode);\n }\n } else {\n result.push(node as SpecChild);\n }\n }\n\n return result;\n}\n\nfunction mapChildren(\n children: SpecNode,\n fn: (child: SpecChild, index: number) => SpecChild,\n): SpecChild[] {\n const flat = flattenChildren(children);\n const result: SpecChild[] = [];\n\n for (let i = 0; i < flat.length; i++) {\n const child = flat[i];\n if (child == null || typeof child === 'boolean') {\n continue;\n }\n result.push(fn(child, i));\n }\n\n return result;\n}\n\nfunction forEachChildren(children: SpecNode, fn: (child: SpecChild, index: number) => void): void {\n const flat = flattenChildren(children);\n let index = 0;\n\n for (const child of flat) {\n if (child == null || typeof child === 'boolean') {\n continue;\n }\n fn(child, index++);\n }\n}\n\nfunction countChildren(children: SpecNode): number {\n const flat = flattenChildren(children);\n let count = 0;\n\n for (const child of flat) {\n if (child != null && typeof child !== 'boolean') {\n count++;\n }\n }\n\n return count;\n}\n\nfunction onlyChild(children: SpecNode): SpecElement {\n if (!isValidElement(children)) {\n throw new Error('Children.only: expected a single SpecifyJS element child');\n }\n return children as SpecElement;\n}\n\nfunction toArray(children: SpecNode): SpecChild[] {\n const flat = flattenChildren(children);\n return flat.filter((child) => child != null && typeof child !== 'boolean');\n}\n\nexport const Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n only: onlyChild,\n toArray,\n};\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport type { Props, SpecNode, ErrorInfo } from '../shared/types';\n\n/**\n * Base class for class components.\n * Equivalent to React.Component.\n */\nexport class Component<P extends Props = Props, S = unknown> {\n static contextType?: unknown;\n static getDerivedStateFromProps?(_props: Props, _state: unknown): Partial<unknown> | null;\n static getDerivedStateFromError?(_error: unknown): Partial<unknown> | null;\n\n props: P;\n state: S;\n context: unknown;\n\n // Set by the reconciler\n _fiber: unknown = null;\n _pendingState: Array<Partial<S> | ((prevState: S, props: P) => Partial<S> | null)> = [];\n _forceUpdate = false;\n\n constructor(props: P) {\n this.props = props;\n this.state = {} as S;\n this.context = undefined;\n }\n\n setState(\n updater: Partial<S> | ((prevState: S, props: P) => Partial<S> | null),\n callback?: () => void,\n ): void {\n this._pendingState.push(updater);\n // Trigger re-render via reconciler\n this._enqueueUpdate(callback);\n }\n\n forceUpdate(callback?: () => void): void {\n this._forceUpdate = true;\n this._enqueueUpdate(callback);\n }\n\n render(): SpecNode {\n return null;\n }\n\n // Lifecycle methods \u2014 overridden by subclasses\n componentDidMount?(): void;\n componentDidUpdate?(_prevProps: P, _prevState: S, _snapshot?: unknown): void;\n componentWillUnmount?(): void;\n shouldComponentUpdate?(_nextProps: P, _nextState: S): boolean;\n getSnapshotBeforeUpdate?(_prevProps: P, _prevState: S): unknown;\n componentDidCatch?(_error: unknown, _info: ErrorInfo): void;\n\n // Internal: replaced by the reconciler when the instance is mounted\n _enqueueUpdate(_callback?: () => void): void {\n // Placeholder \u2014 the reconciler attaches the real implementation\n }\n}\n\n// Set on prototype so instanceof checks and prototype inspection work\n(Component.prototype as unknown as Record<string, boolean>).isSpecComponent = true;\n\n/**\n * PureComponent implements shouldComponentUpdate with shallow prop/state comparison.\n * Equivalent to React.PureComponent.\n */\nexport class PureComponent<P extends Props = Props, S = unknown> extends Component<P, S> {\n shouldComponentUpdate(nextProps: P, nextState: S): boolean {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);\n }\n}\n\n(PureComponent.prototype as unknown as Record<string, boolean>).isPureSpecComponent = true;\n\n/**\n * Shallow comparison of two objects.\n */\nexport function shallowEqual(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) return true;\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {\n return false;\n }\n\n const keysA = Object.keys(a as Record<string, unknown>);\n const keysB = Object.keys(b as Record<string, unknown>);\n\n if (keysA.length !== keysB.length) return false;\n\n const objA = a as Record<string, unknown>;\n const objB = b as Record<string, unknown>;\n\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, key) || !Object.is(objA[key], objB[key])) {\n return false;\n }\n }\n\n return true;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport type { Props, SpecNode, ErrorInfo } from '../shared/types';\nimport { Component } from './component';\n\nexport interface ErrorBoundaryProps extends Props {\n fallback?: SpecNode;\n onError?: (error: unknown, info: ErrorInfo) => void;\n children?: SpecNode;\n}\n\nexport interface ErrorBoundaryState {\n hasError: boolean;\n error: unknown;\n}\n\n/**\n * A built-in error boundary component.\n * Users can also create their own by implementing componentDidCatch\n * and getDerivedStateFromError on a class component.\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n static getDerivedStateFromError(error: unknown): Partial<ErrorBoundaryState> {\n return { hasError: true, error };\n }\n\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n componentDidCatch(error: unknown, info: ErrorInfo): void {\n this.props.onError?.(error, info);\n }\n\n render(): SpecNode {\n if (this.state.hasError) {\n return this.props.fallback ?? null;\n }\n return this.props.children ?? null;\n }\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * useHead \u2014 Manages document <head> meta tags from within components.\n *\n * Allows components to declaratively set page title, meta description,\n * keywords, author, Open Graph tags, and arbitrary meta elements.\n * Tags are applied on mount and cleaned up on unmount.\n */\n\nimport { useEffect, useRef } from './index';\n\nexport interface HeadHttpEquiv {\n /** Content-Security-Policy */\n csp?: string;\n /** Referrer-Policy */\n referrer?: string;\n /** X-Content-Type-Options */\n contentType?: string;\n /** X-Frame-Options (via Content-Security-Policy frame-ancestors) */\n frameOptions?: string;\n /** Cache-Control */\n cacheControl?: string;\n /** Arbitrary http-equiv tags */\n [key: string]: string | undefined;\n}\n\nexport interface HeadMeta {\n /** Document title */\n title?: string;\n /** Meta description */\n description?: string;\n /** Meta keywords (comma-separated) */\n keywords?: string;\n /** Meta author */\n author?: string;\n /** Canonical URL */\n canonical?: string;\n /** Open Graph tags */\n og?: Record<string, string>;\n /** Twitter card tags */\n twitter?: Record<string, string>;\n /** HTTP-equiv meta tags (security headers, caching, etc.) */\n httpEquiv?: HeadHttpEquiv;\n /** Arbitrary meta tags: [{ name, content }] or [{ property, content }] */\n meta?: Array<{ name?: string; property?: string; content: string }>;\n}\n\n/**\n * Sets document head meta tags. Tags are applied when the component\n * mounts and removed when it unmounts, preventing stale meta from\n * persisting across route changes.\n *\n * ```typescript\n * useHead({\n * title: 'My Page',\n * description: 'Page description for SEO',\n * keywords: 'specifyjs, framework, spa',\n * author: 'Your Name',\n * og: { title: 'My Page', image: '/og-image.png' },\n * });\n * ```\n */\nexport function useHead(head: HeadMeta): void {\n // Store head config in a ref to avoid unstable object deps\n const headRef = useRef(head);\n headRef.current = head;\n\n // Serialize scalar deps for stable comparison; objects use JSON\n const depsKey = JSON.stringify([\n head.title,\n head.description,\n head.keywords,\n head.author,\n head.canonical,\n head.og,\n head.twitter,\n head.httpEquiv,\n head.meta,\n ]);\n\n useEffect(() => {\n const head = headRef.current;\n const cleanup: (() => void)[] = [];\n\n // Title\n const prevTitle = document.title;\n if (head.title) {\n document.title = head.title;\n cleanup.push(() => {\n document.title = prevTitle;\n });\n }\n\n // Standard meta tags\n if (head.description) {\n cleanup.push(setMeta('name', 'description', head.description));\n }\n if (head.keywords) {\n cleanup.push(setMeta('name', 'keywords', head.keywords));\n }\n if (head.author) {\n cleanup.push(setMeta('name', 'author', head.author));\n }\n\n // Canonical link\n if (head.canonical) {\n const link = document.createElement('link');\n link.rel = 'canonical';\n link.href = head.canonical;\n document.head.appendChild(link);\n cleanup.push(() => link.remove());\n }\n\n // Open Graph\n if (head.og) {\n for (const [key, value] of Object.entries(head.og)) {\n cleanup.push(setMeta('property', `og:${key}`, value));\n }\n }\n\n // Twitter Card\n if (head.twitter) {\n for (const [key, value] of Object.entries(head.twitter)) {\n cleanup.push(setMeta('name', `twitter:${key}`, value));\n }\n }\n\n // HTTP-equiv meta tags (security headers)\n if (head.httpEquiv) {\n const httpEquivMap: Record<string, string> = {\n csp: 'Content-Security-Policy',\n referrer: 'Referrer-Policy',\n contentType: 'X-Content-Type-Options',\n frameOptions: 'X-Frame-Options',\n cacheControl: 'Cache-Control',\n };\n for (const [key, value] of Object.entries(head.httpEquiv)) {\n if (value === undefined) continue;\n const httpEquivName = httpEquivMap[key] ?? key;\n cleanup.push(setHttpEquivMeta(httpEquivName, value));\n }\n }\n\n // Arbitrary meta tags\n if (head.meta) {\n for (const tag of head.meta) {\n if (tag.name) {\n cleanup.push(setMeta('name', tag.name, tag.content));\n } else if (tag.property) {\n cleanup.push(setMeta('property', tag.property, tag.content));\n }\n }\n }\n\n return () => {\n for (const fn of cleanup) fn();\n };\n }, [depsKey]);\n}\n\n/**\n * Set or update a meta tag and return a cleanup function that removes it.\n */\nfunction escapeCssAttr(s: string): string {\n return s.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\nfunction setMeta(attr: 'name' | 'property', key: string, content: string): () => void {\n const selector = `meta[${attr}=\"${escapeCssAttr(key)}\"]`;\n let el = document.querySelector(selector) as HTMLMetaElement | null;\n const existed = el !== null;\n const prevContent = el?.content;\n\n if (!el) {\n el = document.createElement('meta');\n el.setAttribute(attr, key);\n document.head.appendChild(el);\n }\n el.content = content;\n\n return () => {\n if (existed && prevContent !== undefined) {\n el!.content = prevContent;\n } else if (!existed) {\n el!.remove();\n }\n };\n}\n\n/**\n * Set or update an http-equiv meta tag and return a cleanup function.\n */\nfunction setHttpEquivMeta(httpEquiv: string, content: string): () => void {\n const selector = `meta[http-equiv=\"${escapeCssAttr(httpEquiv)}\"]`;\n let el = document.querySelector(selector) as HTMLMetaElement | null;\n const existed = el !== null;\n const prevContent = el?.content;\n\n if (!el) {\n el = document.createElement('meta');\n el.setAttribute('http-equiv', httpEquiv);\n document.head.appendChild(el);\n }\n el.content = content;\n\n return () => {\n if (existed && prevContent !== undefined) {\n el!.content = prevContent;\n } else if (!existed) {\n el!.remove();\n }\n };\n}\n", "// ============================================================================\n// SpecifyJS Hooks\n// ============================================================================\n// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport type { SpecContext } from '../shared/types';\n\n// Internal: the currently rendering fiber sets these\ntype Dispatcher = {\n useState: typeof useState;\n useEffect: typeof useEffect;\n useContext: typeof useContext;\n useReducer: typeof useReducer;\n useCallback: typeof useCallback;\n useMemo: typeof useMemo;\n useRef: typeof useRef;\n useImperativeHandle: typeof useImperativeHandle;\n useLayoutEffect: typeof useLayoutEffect;\n useDebugValue: typeof useDebugValue;\n useId: typeof useId;\n useDeferredValue: typeof useDeferredValue;\n useTransition: typeof useTransition;\n useSyncExternalStore: typeof useSyncExternalStore;\n useInsertionEffect: typeof useInsertionEffect;\n};\n\nlet currentDispatcher: Dispatcher | null = null;\n\nexport function __setDispatcher(dispatcher: Dispatcher | null): void {\n currentDispatcher = dispatcher;\n}\n\nexport function __getDispatcher(): Dispatcher | null {\n return currentDispatcher;\n}\n\nfunction resolveDispatcher(): Dispatcher {\n if (currentDispatcher === null) {\n throw new Error(\n 'Invalid hook call. Hooks can only be called inside the body of a function component.',\n );\n }\n return currentDispatcher;\n}\n\nexport function useState<T>(\n initialState: T | (() => T),\n): [T, (action: T | ((prev: T) => T)) => void] {\n return resolveDispatcher().useState(initialState);\n}\n\nexport function useEffect(create: () => void | (() => void), deps?: readonly unknown[]): void {\n return resolveDispatcher().useEffect(create, deps);\n}\n\nexport function useContext<T>(context: SpecContext<T>): T {\n return resolveDispatcher().useContext(context);\n}\n\nexport function useReducer<S, A>(\n reducer: (state: S, action: A) => S,\n initialArg: S,\n init?: (arg: S) => S,\n): [S, (action: A) => void] {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useCallback<T extends (...args: any[]) => any>(\n callback: T,\n deps: readonly unknown[],\n): T {\n return resolveDispatcher().useCallback(callback, deps);\n}\n\nexport function useMemo<T>(factory: () => T, deps: readonly unknown[]): T {\n return resolveDispatcher().useMemo(factory, deps);\n}\n\nexport function useRef<T>(initialValue: T): { current: T };\nexport function useRef<T>(initialValue: T | null): { current: T | null };\nexport function useRef<T>(): { current: T | undefined };\nexport function useRef<T>(initialValue?: T): { current: T | undefined } {\n return resolveDispatcher().useRef(initialValue);\n}\n\nexport function useImperativeHandle<T>(\n ref: { current: T | null } | ((instance: T | null) => void) | null,\n createHandle: () => T,\n deps?: readonly unknown[],\n): void {\n return resolveDispatcher().useImperativeHandle(ref, createHandle, deps);\n}\n\nexport function useLayoutEffect(\n create: () => void | (() => void),\n deps?: readonly unknown[],\n): void {\n return resolveDispatcher().useLayoutEffect(create, deps);\n}\n\nexport function useDebugValue<T>(value: T, format?: (value: T) => unknown): void {\n return resolveDispatcher().useDebugValue(value, format);\n}\n\nexport function useId(): string {\n return resolveDispatcher().useId();\n}\n\nexport function useDeferredValue<T>(value: T): T {\n return resolveDispatcher().useDeferredValue(value);\n}\n\nexport function useTransition(): [boolean, (callback: () => void) => void] {\n return resolveDispatcher().useTransition();\n}\n\nexport function useSyncExternalStore<T>(\n subscribe: (onStoreChange: () => void) => () => void,\n getSnapshot: () => T,\n getServerSnapshot?: () => T,\n): T {\n return resolveDispatcher().useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\nexport function useInsertionEffect(\n create: () => void | (() => void),\n deps?: readonly unknown[],\n): void {\n return resolveDispatcher().useInsertionEffect(create, deps);\n}\n\n// Custom hooks (not dispatcher-based)\nexport { useHead } from './use-head';\nexport type { HeadMeta, HeadHttpEquiv } from './use-head';\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_SUSPENSE_TYPE } from '../shared/types';\n\n/**\n * Suspense component for handling async loading states.\n * Equivalent to React.Suspense.\n */\nexport const Suspense: symbol = SPEC_SUSPENSE_TYPE;\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_STRICT_MODE_TYPE } from '../shared/types';\n\n/**\n * StrictMode enables additional development checks.\n * Equivalent to React.StrictMode.\n */\nexport const StrictMode: symbol = SPEC_STRICT_MODE_TYPE;\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { SPEC_PROFILER_TYPE } from '../shared/types';\n\n/**\n * Profiler measures rendering performance of its subtree.\n * Equivalent to React.Profiler.\n */\nexport const Profiler: symbol = SPEC_PROFILER_TYPE;\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Router context \u2014 provides routing state to descendant components.\n */\n\nimport { createContext } from '../context/create-context';\n\nexport interface RouterContextValue {\n /** Current hash pathname */\n pathname: string;\n /** Matched route parameters */\n params: Record<string, string>;\n /** Navigate to a new path */\n navigate: (to: string, options?: { replace?: boolean }) => void;\n /** Base path for nested routing (parent route's matched URL) */\n basePath: string;\n}\n\nexport const RouterContext = createContext<RouterContextValue>({\n pathname: '/',\n params: {},\n /* v8 ignore next 3 */\n navigate: () => {\n throw new Error('useNavigate must be used inside a <Router> component.');\n },\n basePath: '',\n});\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * External store for hash-based routing state.\n * Compatible with useSyncExternalStore for tear-free reads.\n */\n\nexport interface RouterSnapshot {\n /** Hash path without '#', e.g., '/users/123' */\n pathname: string;\n /** Full hash string, e.g., '#/users/123' */\n hash: string;\n}\n\nfunction getHashPath(): string {\n /* v8 ignore next */\n const hash = typeof window !== 'undefined' ? window.location.hash : '';\n const path = hash.replace(/^#\\/?/, '/');\n return path === '' ? '/' : path;\n}\n\nlet currentSnapshot: RouterSnapshot = {\n pathname: getHashPath(),\n /* v8 ignore next */\n hash: typeof window !== 'undefined' ? window.location.hash : '',\n};\n\nconst listeners = new Set<() => void>();\n\n/** Force-refresh the snapshot from the current hash. For testing. */\nexport function __resetSnapshot(): void {\n currentSnapshot = {\n pathname: getHashPath(),\n /* v8 ignore next */\n hash: typeof window !== 'undefined' ? window.location.hash : '',\n };\n}\n\nfunction emitChange(): void {\n currentSnapshot = {\n pathname: getHashPath(),\n /* v8 ignore next */\n hash: typeof window !== 'undefined' ? window.location.hash : '',\n };\n for (const listener of listeners) {\n listener();\n }\n}\n\n// Listen to hashchange events\n/* v8 ignore next 3 */\nif (typeof window !== 'undefined') {\n window.addEventListener('hashchange', emitChange);\n}\n\n/** Subscribe to hash changes. Returns unsubscribe function. */\nexport function subscribe(callback: () => void): () => void {\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n };\n}\n\n/** Get the current router snapshot. */\nexport function getSnapshot(): RouterSnapshot {\n return currentSnapshot;\n}\n\n/** Server-side snapshot (always root). */\nexport function getServerSnapshot(): RouterSnapshot {\n return { pathname: '/', hash: '' };\n}\n\n/** Navigate to a new hash path. */\nexport function navigate(to: string, options?: { replace?: boolean }): void {\n const hashPath = to.startsWith('#') ? to : '#' + to;\n\n if (options?.replace) {\n const url = window.location.pathname + window.location.search + hashPath;\n window.history.replaceState(null, '', url);\n } else {\n window.location.hash = hashPath;\n }\n\n // Always emit synchronously so subscribers are notified immediately.\n // The hashchange event may fire asynchronously, but we need immediate\n // notification for synchronous rendering.\n emitChange();\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Router \u2014 top-level component that subscribes to hash changes\n * and provides routing context to descendants.\n */\n\nimport { createElement } from '../core/create-element';\nimport { useState, useEffect, useCallback, useMemo } from '../hooks/index';\nimport type { SpecNode } from '../shared/types';\nimport { RouterContext, type RouterContextValue } from './router-context';\nimport { subscribe, getSnapshot, navigate } from './router-store';\n\nexport interface RouterProps {\n children?: SpecNode;\n}\n\nexport function Router(props: RouterProps): SpecNode {\n const [pathname, setPathname] = useState(() => getSnapshot().pathname);\n\n useEffect(() => {\n // Sync with current hash on mount\n setPathname(getSnapshot().pathname);\n\n const unsubscribe = subscribe(() => {\n setPathname(getSnapshot().pathname);\n });\n\n return unsubscribe;\n }, []);\n\n const nav = useCallback((...args: unknown[]) => {\n navigate(args[0] as string, args[1] as { replace?: boolean } | undefined);\n }, []) as unknown as (to: string, options?: { replace?: boolean }) => void;\n\n const value: RouterContextValue = useMemo(\n () => ({\n pathname,\n params: {},\n navigate: nav,\n basePath: '',\n }),\n [pathname, nav],\n );\n\n return createElement(RouterContext.Provider, { value }, props.children);\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Path matching utility for hash-based routing.\n *\n * Supports:\n * - Literal segments: `/about` matches `/about`\n * - Named parameters: `/users/:id` matches `/users/123` \u2192 { id: '123' }\n * - Wildcards: `/files/*` matches `/files/a/b/c` \u2192 { '*': 'a/b/c' }\n * - Exact vs. partial matching for nested routes\n */\n\nexport interface MatchResult {\n /** Extracted route parameters */\n params: Record<string, string>;\n /** Whether the entire pathname was consumed */\n isExact: boolean;\n /** The pattern that was matched */\n path: string;\n /** The matched portion of the pathname */\n url: string;\n}\n\nexport interface MatchOptions {\n /** If true, the pattern must match the entire pathname. Default: false. */\n exact?: boolean;\n}\n\n/** Strip trailing slash characters without regex (avoids ReDoS). */\nfunction stripTrailingSlashes(s: string): string {\n let end = s.length;\n while (end > 1 && s.charCodeAt(end - 1) === 47 /* '/' */) {\n end--;\n }\n return end === s.length ? s : s.slice(0, end);\n}\n\n/**\n * Match a route pattern against a pathname.\n * Returns a MatchResult if the pattern matches, or null if it doesn't.\n */\nexport function matchPath(\n pattern: string,\n pathname: string,\n options?: MatchOptions,\n): MatchResult | null {\n const exact = options?.exact ?? false;\n\n // Normalize: strip trailing slashes (but keep root /)\n const normalizedPattern = pattern === '/' ? '/' : stripTrailingSlashes(pattern);\n const normalizedPath = pathname === '/' ? '/' : stripTrailingSlashes(pathname);\n\n // Root pattern\n if (normalizedPattern === '/') {\n const isExact = normalizedPath === '/';\n if (exact && !isExact) {\n return null;\n }\n return {\n params: {},\n isExact,\n path: pattern,\n url: '/',\n };\n }\n\n const patternSegments = normalizedPattern.split('/').filter(Boolean);\n const pathSegments = normalizedPath.split('/').filter(Boolean);\n\n // If exact, path can't have more segments than pattern (unless wildcard)\n const hasWildcard = patternSegments[patternSegments.length - 1] === '*';\n\n if (!hasWildcard && exact && pathSegments.length !== patternSegments.length) {\n return null;\n }\n\n if (!hasWildcard && pathSegments.length < patternSegments.length) {\n return null;\n }\n\n const params: Record<string, string> = {};\n const matchedSegments: string[] = [];\n\n for (let i = 0; i < patternSegments.length; i++) {\n const patternSeg = patternSegments[i]!;\n\n // Wildcard \u2014 consume all remaining segments\n if (patternSeg === '*') {\n const remaining = pathSegments.slice(i).join('/');\n params['*'] = remaining;\n return {\n params,\n isExact: true,\n path: pattern,\n url: '/' + pathSegments.join('/'),\n };\n }\n\n // No more path segments to match against\n if (i >= pathSegments.length) {\n return null;\n }\n\n const pathSeg = pathSegments[i]!;\n\n // Named parameter\n if (patternSeg.startsWith(':')) {\n const paramName = patternSeg.slice(1);\n params[paramName] = decodeURIComponent(pathSeg);\n matchedSegments.push(pathSeg);\n continue;\n }\n\n // Literal segment \u2014 case-insensitive comparison\n if (patternSeg.toLowerCase() !== pathSeg.toLowerCase()) {\n return null;\n }\n\n matchedSegments.push(pathSeg);\n }\n\n const matchedUrl = '/' + matchedSegments.join('/');\n const isExact = pathSegments.length === patternSegments.length;\n\n if (exact && !isExact) {\n return null;\n }\n\n return {\n params,\n isExact,\n path: pattern,\n url: matchedUrl,\n };\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Route \u2014 conditionally renders content when the current path matches.\n */\n\nimport { createElement } from '../core/create-element';\nimport { useContext, useMemo } from '../hooks/index';\nimport type { SpecNode, FunctionComponent } from '../shared/types';\nimport { RouterContext, type RouterContextValue } from './router-context';\nimport { matchPath } from './match-path';\n\nexport interface RouteProps {\n /** Path pattern to match (e.g., '/users/:id') */\n path: string;\n /** Component to render when matched. Receives route params as props. */\n component?: FunctionComponent;\n /** If true, path must match the entire pathname. Default: false. */\n exact?: boolean;\n /** Children to render when matched (alternative to component). */\n children?: SpecNode;\n}\n\nexport function Route(props: RouteProps): SpecNode {\n const router = useContext(RouterContext);\n const fullPattern = router.basePath + props.path;\n const match = matchPath(fullPattern, router.pathname, {\n exact: props.exact ?? false,\n });\n\n // useMemo must be called unconditionally (rules of hooks)\n const nestedValue: RouterContextValue = useMemo(\n () => ({\n pathname: router.pathname,\n params: {\n ...router.params,\n ...(match ? match.params : {}),\n },\n navigate: router.navigate,\n basePath: match ? match.url : router.basePath,\n }),\n [router.pathname, router.navigate, router.params, router.basePath, match],\n );\n\n if (!match) return null;\n\n // Merge parent params\n for (const key of Object.keys(router.params)) {\n if (!(key in nestedValue.params)) {\n nestedValue.params[key] = router.params[key]!;\n }\n }\n\n const content = props.component\n ? createElement(props.component, { ...nestedValue.params })\n : props.children;\n\n return createElement(RouterContext.Provider, { value: nestedValue }, content);\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Link \u2014 navigation anchor that updates the hash without page reload.\n */\n\nimport { createElement } from '../core/create-element';\nimport { useContext, useCallback } from '../hooks/index';\nimport type { SpecNode } from '../shared/types';\nimport { RouterContext } from './router-context';\nimport { matchPath } from './match-path';\n\nexport interface LinkProps {\n /** Target path (e.g., '/about') */\n to: string;\n /** CSS class name */\n className?: string;\n /** Additional class when the link's path matches the current route */\n activeClassName?: string;\n /** If true, activeClassName requires exact path match. Default: false. */\n exact?: boolean;\n /** Children (link text/content) */\n children?: SpecNode;\n /** Additional props passed to the anchor element */\n [key: string]: unknown;\n}\n\nexport function Link(props: LinkProps): SpecNode {\n const { to, className, activeClassName, exact, children, ...rest } = props;\n const router = useContext(RouterContext);\n\n const isActive = matchPath(to, router.pathname, { exact: exact ?? false }) !== null;\n\n const handleClick = useCallback(\n ((...args: unknown[]) => {\n const e = args[0] as Event;\n e.preventDefault();\n router.navigate(to);\n }) as (...args: unknown[]) => unknown,\n [to, router.navigate],\n );\n\n const cls = [className, isActive ? activeClassName : null].filter(Boolean).join(' ') || undefined;\n\n return createElement(\n 'a',\n {\n ...rest,\n href: '#' + to,\n onClick: handleClick,\n className: cls,\n },\n children,\n );\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { useContext } from '../hooks/index';\nimport { RouterContext, type RouterContextValue } from './router-context';\n\n/** Returns the full router context value. */\nexport function useRouter(): RouterContextValue {\n return useContext(RouterContext);\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { useContext } from '../hooks/index';\nimport { RouterContext } from './router-context';\n\n/** Returns the matched route parameters. */\nexport function useParams<T extends Record<string, string> = Record<string, string>>(): T {\n return useContext(RouterContext).params as T;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\nimport { useContext } from '../hooks/index';\nimport { RouterContext } from './router-context';\n\n/** Returns the navigate function from the nearest Router. */\nexport function useNavigate(): (to: string, options?: { replace?: boolean }) => void {\n return useContext(RouterContext).navigate;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Lane-based priority system for concurrent rendering.\n *\n * Lanes are bitmask values representing priority levels. Lower bits = higher\n * priority. Multiple lanes can be active simultaneously. The scheduler uses\n * lanes to determine which work to process first and whether to interrupt\n * lower-priority work for higher-priority updates.\n */\n\n// ---------------------------------------------------------------------------\n// Lane constants (bitmask values, lower = higher priority)\n// ---------------------------------------------------------------------------\n\nexport const NoLane = 0;\nexport const NoLanes = 0;\n\n/** Synchronous, blocking \u2014 used by flushSync */\nexport const SyncLane = /* .............. */ 0b00000001; // 1\n\n/** Continuous user input \u2014 drag, scroll, hover */\nexport const InputContinuousLane = /* ... */ 0b00000010; // 2\n\n/** Default priority \u2014 normal state updates */\nexport const DefaultLane = /* ........... */ 0b00000100; // 4\n\n/** First transition lane \u2014 startTransition */\nexport const TransitionLane1 = /* ....... */ 0b00001000; // 8\n\n/** Second transition lane \u2014 concurrent transitions */\nexport const TransitionLane2 = /* ....... */ 0b00010000; // 16\n\n/** Retry lane \u2014 Suspense retries */\nexport const RetryLane = /* ............. */ 0b00100000; // 32\n\n/** Idle priority \u2014 offscreen/low-priority work */\nexport const IdleLane = /* .............. */ 0b01000000; // 64\n\n/** Offscreen rendering (future) */\nexport const OffscreenLane = /* ......... */ 0b10000000; // 128\n\n/** All non-idle lanes */\nexport const NonIdleLanes =\n SyncLane | InputContinuousLane | DefaultLane | TransitionLane1 | TransitionLane2 | RetryLane;\n\n// ---------------------------------------------------------------------------\n// Lane utilities\n// ---------------------------------------------------------------------------\n\n/** Combine two lane sets. */\nexport function mergeLanes(a: number, b: number): number {\n return a | b;\n}\n\n/** Check if `subset` is entirely contained within `set`. */\nexport function isSubsetOfLanes(set: number, subset: number): boolean {\n return (set & subset) === subset;\n}\n\n/** Check if `a` and `b` share any lanes. */\nexport function includesSomeLane(a: number, b: number): boolean {\n return (a & b) !== NoLanes;\n}\n\n/** Remove `subset` lanes from `set`. */\nexport function removeLanes(set: number, subset: number): number {\n return set & ~subset;\n}\n\n/**\n * Isolate the highest-priority (lowest-bit) lane from a lane set.\n * Uses the two's complement trick: `lanes & -lanes` isolates the rightmost set bit.\n */\nexport function getHighestPriorityLane(lanes: number): number {\n return lanes & -lanes;\n}\n\n/** Check if a lane set is empty. */\nexport function isEmpty(lanes: number): boolean {\n return lanes === NoLanes;\n}\n\n// ---------------------------------------------------------------------------\n// Lane expiration \u2014 starvation prevention\n// ---------------------------------------------------------------------------\n\n/** Timeout in ms before a pending lane is promoted to SyncLane. -1 = never. */\nexport function laneExpirationMs(lane: number): number {\n switch (lane) {\n case SyncLane:\n case InputContinuousLane:\n return -1; // Already highest priority\n case DefaultLane:\n return 5000;\n case TransitionLane1:\n case TransitionLane2:\n return 5000;\n case RetryLane:\n return 5000;\n case IdleLane:\n case OffscreenLane:\n return -1; // Never expire \u2014 only run when idle\n default:\n return -1;\n }\n}\n\n/**\n * Pick the next transition lane. Alternates between TransitionLane1 and\n * TransitionLane2 to allow two concurrent transitions.\n */\nlet nextTransitionLane: number = TransitionLane1;\n\nexport function claimNextTransitionLane(): number {\n const lane = nextTransitionLane;\n nextTransitionLane = lane === TransitionLane1 ? TransitionLane2 : TransitionLane1;\n return lane;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Transition system for marking non-urgent updates.\n *\n * Integrates with the lane system to assign lower priority to state updates\n * made inside startTransition. Also tracks flushSync context.\n */\n\nimport { DefaultLane, SyncLane, claimNextTransitionLane } from './lanes';\n\n// ---------------------------------------------------------------------------\n// Lane context \u2014 tracks which lane new updates should be assigned to\n// ---------------------------------------------------------------------------\n\nlet currentUpdateLane: number = DefaultLane;\nlet isTransitionPending = false;\nlet isFlushSyncContext = false;\nlet transitionCallbacks: (() => void)[] = [];\n\n/**\n * Get the lane that should be assigned to a new state update.\n * Respects the current context: flushSync \u2192 SyncLane,\n * startTransition \u2192 TransitionLane, else DefaultLane.\n */\nexport function requestUpdateLane(): number {\n if (isFlushSyncContext) {\n return SyncLane;\n }\n return currentUpdateLane;\n}\n\n/**\n * Enter flushSync context. State updates within will use SyncLane.\n */\nexport function enterFlushSyncContext(): void {\n isFlushSyncContext = true;\n}\n\n/**\n * Exit flushSync context.\n */\nexport function exitFlushSyncContext(): void {\n isFlushSyncContext = false;\n}\n\n// ---------------------------------------------------------------------------\n// startTransition\n// ---------------------------------------------------------------------------\n\n/**\n * Marks a state update as a transition (non-urgent).\n * Equivalent to React.startTransition.\n *\n * State updates called within the callback receive TransitionLane priority\n * instead of DefaultLane, allowing them to be interrupted by higher-priority\n * updates (user input, flushSync, etc.).\n */\nexport function startTransition(callback: () => void): void {\n const prevLane = currentUpdateLane;\n const prevPending = isTransitionPending;\n\n currentUpdateLane = claimNextTransitionLane();\n isTransitionPending = true;\n\n try {\n callback();\n } finally {\n currentUpdateLane = prevLane;\n isTransitionPending = prevPending;\n flushTransitions();\n }\n}\n\n/**\n * Check if we're currently inside a transition.\n */\nexport function isInTransition(): boolean {\n return isTransitionPending;\n}\n\n/**\n * Queue a callback to run at the end of the current transition batch.\n */\nexport function queueTransitionCallback(callback: () => void): void {\n transitionCallbacks.push(callback);\n}\n\nfunction flushTransitions(): void {\n const callbacks = transitionCallbacks;\n transitionCallbacks = [];\n for (const cb of callbacks) {\n cb();\n }\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Minimal scheduler for batching updates and scheduling work.\n * This is the internal engine that drives re-renders.\n */\n\ntype Task = () => void;\n\nconst MAX_PENDING_TASKS = 10000;\nlet isBatchingUpdates = false;\nlet pendingTasks: Task[] = [];\n\n/**\n * Schedule a task. If inside a batch, it's deferred.\n * Otherwise it runs synchronously (or via microtask).\n */\nexport function scheduleUpdate(task: Task): void {\n if (isBatchingUpdates) {\n if (pendingTasks.length >= MAX_PENDING_TASKS) {\n if (typeof console !== 'undefined')\n console.warn(\n '[SpecifyJS] Scheduler: pending task queue exceeded 10000 \u2014 dropping oldest tasks',\n );\n pendingTasks = pendingTasks.slice(-Math.floor(MAX_PENDING_TASKS / 2));\n }\n pendingTasks.push(task);\n return;\n }\n task();\n}\n\n/**\n * Run a callback inside a batch \u2014 all updates are deferred\n * until the batch completes.\n */\nexport function batchUpdates<T>(fn: () => T): T {\n const prevBatching = isBatchingUpdates;\n isBatchingUpdates = true;\n try {\n return fn();\n } finally {\n isBatchingUpdates = prevBatching;\n if (!isBatchingUpdates) {\n flushPendingTasks();\n }\n }\n}\n\n/**\n * Flush all pending tasks synchronously.\n */\nexport function flushPendingTasks(): void {\n const tasks = pendingTasks;\n pendingTasks = [];\n for (const task of tasks) {\n task();\n }\n}\n\n/**\n * Schedule work via microtask for async batching.\n */\nexport function scheduleMicrotask(fn: () => void): void {\n if (typeof queueMicrotask === 'function') {\n queueMicrotask(fn);\n } else {\n /* v8 ignore next -- Promise fallback for environments without queueMicrotask */\n Promise.resolve().then(fn);\n }\n}\n\n/**\n * Check if we're currently batching.\n */\nexport function isBatching(): boolean {\n return isBatchingUpdates;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Testing utility that flushes pending updates.\n * Equivalent to React's act().\n */\n\nimport { flushPendingTasks } from '../core/scheduler';\n\nexport function act(callback: () => void | Promise<void>): void {\n const result = callback();\n flushPendingTasks();\n\n if (result && typeof (result as Promise<void>).then === 'function') {\n // For async callbacks, we can't fully flush in a synchronous function\n // but we can schedule the flush\n (result as Promise<void>).then(() => {\n flushPendingTasks();\n });\n }\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Secure fetch wrapper \u2014 enforces HTTPS-only policy.\n *\n * SpecifyJS prohibits HTTP connections. All network requests must use\n * HTTPS or be relative URLs. This prevents data from being transmitted\n * in plaintext, protecting against eavesdropping and MITM attacks.\n *\n * Exceptions:\n * - Relative URLs (./path, /path) \u2014 resolved by the browser\n * - localhost and 127.0.0.1 \u2014 development only\n */\n\n/**\n * Validate that a URL uses HTTPS or is a relative/localhost URL.\n * Throws if the URL uses plaintext HTTP.\n */\nexport function assertSecureUrl(url: string): void {\n // Block protocol-relative URLs (//evil.com) \u2014 they inherit the page's protocol\n if (url.startsWith('//')) {\n throw new Error(\n `[SpecifyJS] Protocol-relative URL rejected: \"${url}\". ` + `Use an explicit https:// prefix.`,\n );\n }\n\n // Relative URLs are always allowed\n if (url.startsWith('/') || url.startsWith('./') || url.startsWith('../')) {\n return;\n }\n\n // Data URLs are allowed\n if (url.startsWith('data:')) {\n return;\n }\n\n // Parse absolute URLs\n let parsed: URL;\n try {\n parsed = new URL(url, typeof window !== 'undefined' ? window.location.href : undefined);\n } catch {\n /* v8 ignore next 2 -- URL parse failure is environment-specific; jsdom always provides a base */\n return;\n }\n\n // Allow HTTPS\n if (parsed.protocol === 'https:') {\n return;\n }\n\n // Allow localhost/127.0.0.1 for development (any protocol)\n if (parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1') {\n return;\n }\n\n // Reject HTTP and other insecure protocols\n throw new Error(\n `[SpecifyJS] Insecure URL rejected: \"${url}\". ` +\n `SpecifyJS enforces HTTPS-only for all network requests. ` +\n `Use https:// or a relative URL. ` +\n `Localhost URLs are allowed for development.`,\n );\n}\n\n/**\n * Secure fetch \u2014 drop-in replacement for window.fetch that enforces HTTPS.\n * Use this instead of fetch() directly to comply with the HTTPS-only policy.\n */\nexport function secureFetch(input: string | URL | Request, init?: RequestInit): Promise<Response> {\n const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;\n assertSecureUrl(url);\n return fetch(input, init);\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Component Registry \u2014 assigns compact, deterministic IDs to component instances.\n *\n * Each component TYPE gets a numeric index (0, 1, 2, ...) on first registration.\n * Each component INSTANCE gets a sequential instance number within its type.\n *\n * DOM elements receive: id=\"s-{typeIndex}-{instanceId}\"\n * Example: s-3-12 = type index 3, instance 12\n *\n * The lookup table at window.__SPECIFYJS_COMPONENTS__ maps indices to names\n * for debugging, testing, and programmatic interaction.\n */\n\ninterface ComponentTypeEntry {\n name: string;\n index: number;\n instanceCount: number;\n}\n\nconst typeMap = new Map<string, ComponentTypeEntry>();\nlet nextTypeIndex = 0;\nlet enabled = true;\n\n/**\n * Enable or disable component ID assignment.\n * When disabled, registerComponentInstance returns '' and no IDs are assigned.\n */\nexport function setComponentIdsEnabled(value: boolean): void {\n enabled = value;\n}\n\n/**\n * Register a component type and get a unique instance ID.\n * Returns the compact ID string: \"s-{typeIndex}-{instanceId}\"\n */\nexport function registerComponentInstance(componentName: string): string {\n if (!enabled) return '';\n let entry = typeMap.get(componentName);\n if (!entry) {\n entry = { name: componentName, index: nextTypeIndex++, instanceCount: 0 };\n typeMap.set(componentName, entry);\n updateGlobalLookup();\n }\n const instanceId = entry.instanceCount++;\n return `s-${entry.index}-${instanceId}`;\n}\n\n/**\n * Resolve a compact ID back to component metadata.\n * Returns null if the ID is not recognized.\n */\nexport function resolveComponentId(\n id: string,\n): { typeName: string; typeIndex: number; instanceId: number } | null {\n const match = id.match(/^s-(\\d+)-(\\d+)$/);\n if (!match || !match[1] || !match[2]) return null;\n const typeIndex = parseInt(match[1], 10);\n const instanceId = parseInt(match[2], 10);\n for (const entry of typeMap.values()) {\n if (entry.index === typeIndex) {\n return { typeName: entry.name, typeIndex, instanceId };\n }\n }\n return null;\n}\n\n/**\n * Get the full component type table (for debugging/DevTools).\n */\nexport function getComponentTypeTable(): ReadonlyMap<string, Readonly<ComponentTypeEntry>> {\n return typeMap;\n}\n\n/**\n * Update the global lookup table on window for debugging.\n */\nfunction updateGlobalLookup(): void {\n if (typeof globalThis !== 'undefined') {\n const lookup: Record<number, string> = {};\n for (const entry of typeMap.values()) {\n lookup[entry.index] = entry.name;\n }\n (globalThis as unknown as Record<string, unknown>).__SPECIFYJS_COMPONENTS__ = lookup;\n }\n}\n\n/**\n * Derive a short component name from a fiber's type.\n * - Function components: function.name\n * - Class components: constructor.name\n * - Host components: tag name\n * - Fragments/portals: type description\n */\nexport function getComponentName(type: unknown): string {\n if (typeof type === 'string') return type;\n if (typeof type === 'function') return (type as { name?: string }).name || 'Anonymous';\n if (type === null || type === undefined) return 'Unknown';\n return 'Component';\n}\n\n/**\n * Reset the registry (for testing).\n */\nexport function resetComponentRegistry(): void {\n typeMap.clear();\n nextTypeIndex = 0;\n}\n", "// (c) 2025-2026 Asymmetric Effort, LLC. MIT LICENSE\n// SPDX-License-Identifier: MIT\n\n/**\n * Feature flag system \u2014 context-based feature gating for SpecifyJS.\n */\n\nimport { createElement } from '../core/create-element';\nimport { createContext } from '../context/create-context';\nimport { useState, useEffect, useContext, useCallback } from '../hooks/index';\nimport { secureFetch } from '../shared/secure-fetch';\nimport type { SpecNode } from '../shared/types';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type FeatureFlags = Record<string, boolean>;\n\nexport interface FeatureFlagContextValue {\n /** Current flag states */\n flags: FeatureFlags;\n /** Check if a flag is enabled */\n isEnabled: (flag: string) => boolean;\n /** Set a flag's state at runtime */\n setFlag: (flag: string, enabled: boolean) => void;\n /** Whether flags are still loading from remote */\n loading: boolean;\n}\n\nexport interface FeatureFlagProviderProps {\n /** URL to fetch feature flags JSON from (optional) */\n url?: string;\n /** Initial/default flag values */\n defaults?: FeatureFlags;\n /** Children */\n children?: SpecNode;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\n/* v8 ignore start -- default context value, only used without Provider */\nconst FeatureFlagContext = createContext<FeatureFlagContextValue>({\n flags: {},\n isEnabled: () => false,\n setFlag: () => {},\n loading: false,\n});\n/* v8 ignore stop */\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\nexport function FeatureFlagProvider(props: FeatureFlagProviderProps): SpecNode {\n const [flags, setFlags] = useState<FeatureFlags>(() => ({ ...props.defaults }));\n const [loading, setLoading] = useState(!!props.url);\n\n // Fetch flags from URL if provided\n useEffect(() => {\n if (!props.url) return;\n\n let cancelled = false;\n setLoading(true);\n\n secureFetch(props.url)\n .then((res) => {\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json();\n })\n .then((json: unknown) => {\n if (!cancelled && typeof json === 'object' && json !== null) {\n // M-9: Filter __proto__/constructor from untrusted JSON before merging\n const safe: FeatureFlags = {};\n for (const k of Object.keys(json as Record<string, unknown>)) {\n if (k !== '__proto__' && k !== 'constructor' && k !== 'prototype') {\n safe[k] = (json as Record<string, boolean>)[k] === true;\n }\n }\n setFlags((prev: FeatureFlags) => ({ ...prev, ...safe }));\n }\n if (!cancelled) setLoading(false);\n })\n .catch(() => {\n if (!cancelled) setLoading(false);\n });\n\n return () => {\n cancelled = true;\n };\n }, [props.url]);\n\n const isEnabled = useCallback(\n ((...args: unknown[]) => {\n const flag = args[0] as string;\n return flags[flag] === true;\n }) as (...args: unknown[]) => unknown,\n [flags],\n ) as (flag: string) => boolean;\n\n const setFlag = useCallback(\n ((...args: unknown[]) => {\n const flag = args[0] as string;\n const enabled = args[1] as boolean;\n setFlags((prev: FeatureFlags) => ({ ...prev, [flag]: enabled }));\n }) as (...args: unknown[]) => unknown,\n [],\n ) as (flag: string, enabled: boolean) => void;\n\n const value: FeatureFlagContextValue = {\n flags,\n isEnabled,\n setFlag,\n loading,\n };\n\n return createElement(FeatureFlagContext.Provider, { value }, props.children);\n}\n\n// ---------------------------------------------------------------------------\n// Gate component\n// ---------------------------------------------------------------------------\n\nexport interface FeatureGateProps {\n /** Flag name to check */\n flag: string;\n /** Content to render when flag is enabled */\n children?: SpecNode;\n /** Content to render when flag is disabled (optional) */\n fallback?: SpecNode;\n}\n\n/**\n * Conditionally renders children based on a feature flag.\n * Renders nothing (or fallback) when the flag is disabled.\n */\nexport function FeatureGate(props: FeatureGateProps): SpecNode {\n const { isEnabled } = useContext(FeatureFlagContext);\n return isEnabled(props.flag) ? (props.children as SpecNode) : (props.fallback ?? null);\n}\n\n// ---------------------------------------------------------------------------\n// Hook\n// ---------------------------------------------------------------------------\n\n/**\n * Hook to access feature flag state and controls.\n */\nexport function useFeatureFlags(): FeatureFlagContextValue {\n return useContext(FeatureFlagContext);\n}\n"],
|
|
5
|
+
"mappings": ";mbAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,cAAAE,GAAA,cAAAC,EAAA,kBAAAC,EAAA,wBAAAC,EAAA,gBAAAC,EAAA,aAAAC,GAAA,SAAAC,EAAA,aAAAC,GAAA,kBAAAC,EAAA,UAAAC,EAAA,WAAAC,EAAA,eAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,oBAAAC,EAAA,iBAAAC,GAAA,kBAAAC,EAAA,kBAAAC,EAAA,kBAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,0BAAAC,GAAA,MAAAJ,EAAA,mBAAAK,EAAA,SAAAC,GAAA,cAAAC,EAAA,SAAAC,GAAA,uBAAAC,GAAA,gBAAAC,EAAA,2BAAAC,GAAA,oBAAAC,GAAA,gBAAAC,EAAA,eAAAC,EAAA,kBAAAC,GAAA,qBAAAC,GAAA,cAAAC,EAAA,oBAAAC,EAAA,YAAAC,EAAA,UAAAC,GAAA,wBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,GAAA,YAAAC,EAAA,gBAAAC,EAAA,cAAAC,EAAA,eAAAC,GAAA,WAAAC,EAAA,cAAAC,EAAA,aAAAC,EAAA,yBAAAC,GAAA,kBAAAC,KAAA,eAAAC,GAAApD,ICOO,IAAMqD,EAAoB,OAAO,IAAI,cAAc,EAC7CC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,GAAmB,OAAO,IAAI,aAAa,EAC3CC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,GAAwB,OAAO,IAAI,kBAAkB,EACrDC,GAAiB,OAAO,IAAI,WAAW,EACvCC,GAAiB,OAAO,IAAI,WAAW,EACvCC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,GAAwB,OAAO,IAAI,kBAAkB,EACrDC,GAAqB,OAAO,IAAI,eAAe,ECDrD,SAASC,EACdC,EACAC,KACGC,EACa,CAChB,IAAIC,EAAW,KACXC,EAAW,KACTC,EAAiC,CAAC,EAExC,GAAIJ,GAAU,KAAM,CACdA,EAAO,MAAQ,SACjBE,EAAM,GAAKF,EAAO,KAEhBA,EAAO,MAAQ,SACjBG,EAAMH,EAAO,KAGf,QAAWK,KAAYL,EAEnB,OAAO,UAAU,eAAe,KAAKA,EAAQK,CAAQ,GACrDA,IAAa,OACbA,IAAa,OACbA,IAAa,aACbA,IAAa,eACbA,IAAa,cAEbD,EAAMC,CAAQ,EAAKL,EAAmCK,CAAQ,EAGpE,CASA,GAPIJ,EAAS,SAAW,EACtBG,EAAM,SAAWH,EAAS,CAAC,EAClBA,EAAS,OAAS,IAC3BG,EAAM,SAAWH,GAKjB,OAAOF,GAAS,YACfA,EAAkD,aACnD,CACA,IAAMO,EAAgBP,EAAiD,aACvE,QAAWM,KAAY,OAAO,KAAKC,CAAY,EACzCD,IAAa,aAAeA,IAAa,eAAiBD,EAAMC,CAAQ,IAAM,SAChFD,EAAMC,CAAQ,EAAIC,EAAaD,CAAqC,EAG1E,CAEA,MAAO,CACL,SAAUE,EACV,KAAAR,EACA,MAAOK,EACP,IAAAF,EACA,IAAAC,CACF,CACF,CAQO,SAASK,GACdT,EAIkB,CAClB,MAAO,CAACC,KAAWC,IAAaH,EAAcC,EAAMC,GAAU,KAAM,GAAGC,CAAQ,CACjF,CC/EO,IAAMQ,GAAmBC,GCezB,SAASC,EAAiBC,EAAiC,CAChE,IAAMC,EAA0B,CAC9B,SAAU,OAAO,IAAI,cAAc,EACnC,SAAU,KACV,SAAU,KACV,cAAeD,EACf,cAAeA,CACjB,EAEME,EAA+B,CACnC,SAAUC,GACV,SAAUF,CACZ,EAEMG,EAA+B,CACnC,SAAUC,GACV,SAAUJ,CACZ,EAEA,OAAAA,EAAQ,SAAWC,EACnBD,EAAQ,SAAWG,EAEZH,CACT,CCtCO,SAASK,IAAuC,CACrD,MAAO,CAAE,QAAS,IAAK,CACzB,CCSO,SAASC,GACdC,EAC2B,CAC3B,MAAO,CACL,SAAUC,GACV,OAAAD,EACA,YAAaA,EAAO,aAAeA,EAAO,MAAQ,YACpD,CACF,CCZO,SAASE,GACdC,EACAC,EACkB,CAClB,MAAO,CACL,SAAUC,GACV,KAAMF,EACN,QAASC,GAAW,KACpB,YACGD,EAAuC,aACvCA,EAAgC,MACjC,MACJ,CACF,CCRO,SAASG,GACdC,EACkB,CAClB,IAAMC,EAAwC,CAC5C,QAAS,UACT,QAAS,MACX,EA2BA,MAAO,CACL,SAAUC,GACV,SAAUD,EACV,MA5BW,IAAwB,CACnC,GAAIA,EAAQ,UAAY,WACtB,OAAOA,EAAQ,QAEjB,GAAIA,EAAQ,UAAY,WACtB,MAAMA,EAAQ,QAGhB,IAAME,EAAUH,EAAQ,EACxB,MAAAC,EAAQ,QAAU,UAElBE,EAAQ,KACLC,GAAW,CACVH,EAAQ,QAAU,WAClBA,EAAQ,QAAUG,EAAO,OAC3B,EACCC,GAAU,CACTJ,EAAQ,QAAU,WAClBA,EAAQ,QAAUI,CACpB,CACF,EAEMF,CACR,EAME,YAAa,MACf,CACF,CCnDO,SAASG,EAAeC,EAAwC,CACrE,OACE,OAAOA,GAAW,UAClBA,IAAW,MACVA,EAAuB,WAAaC,CAEzC,CCCO,SAASC,GACdC,EACAC,KACGC,EACa,CAChB,GAAI,CAACC,EAAeH,CAAO,EACzB,MAAM,IAAI,MAAM,0DAA0D,EAG5E,IAAII,EAAWJ,EAAQ,IACnBK,EAAWL,EAAQ,IACjBM,EAAiC,CAAE,GAAGN,EAAQ,KAAM,EAE1D,GAAIC,GAAU,KAAM,CACdA,EAAO,MAAQ,SACjBG,EAAM,GAAKH,EAAO,KAEhBA,EAAO,MAAQ,SACjBI,EAAMJ,EAAO,KAGf,QAAWM,KAAYN,EAEnB,OAAO,UAAU,eAAe,KAAKA,EAAQM,CAAQ,GACrDA,IAAa,OACbA,IAAa,OACbA,IAAa,aACbA,IAAa,eACbA,IAAa,cAEbD,EAAMC,CAAQ,EAAKN,EAAmCM,CAAQ,EAGpE,CAEA,OAAIL,EAAS,SAAW,EACtBI,EAAM,SAAWJ,EAAS,CAAC,EAClBA,EAAS,OAAS,IAC3BI,EAAM,SAAWJ,GAGZ,CACL,SAAUM,EACV,KAAMR,EAAQ,KACd,MAAOM,EACP,IAAAF,EACA,IAAAC,CACF,CACF,CCrDA,SAASI,EAAgBC,EAAiC,CACxD,IAAMC,EAAsB,CAAC,EACvBC,EAAoB,CAACF,CAAQ,EAEnC,KAAOE,EAAM,OAAS,GAAG,CACvB,IAAMC,EAAOD,EAAM,IAAI,EACvB,GAAI,MAAM,QAAQC,CAAI,EACpB,QAASC,EAAID,EAAK,OAAS,EAAGC,GAAK,EAAGA,IACpCF,EAAM,KAAKC,EAAKC,CAAC,CAAa,OAGhCH,EAAO,KAAKE,CAAiB,CAEjC,CAEA,OAAOF,CACT,CAEA,SAASI,GACPL,EACAM,EACa,CACb,IAAMC,EAAOR,EAAgBC,CAAQ,EAC/BC,EAAsB,CAAC,EAE7B,QAASG,EAAI,EAAGA,EAAIG,EAAK,OAAQH,IAAK,CACpC,IAAMI,EAAQD,EAAKH,CAAC,EAChBI,GAAS,MAAQ,OAAOA,GAAU,WAGtCP,EAAO,KAAKK,EAAGE,EAAOJ,CAAC,CAAC,CAC1B,CAEA,OAAOH,CACT,CAEA,SAASQ,GAAgBT,EAAoBM,EAAqD,CAChG,IAAMC,EAAOR,EAAgBC,CAAQ,EACjCU,EAAQ,EAEZ,QAAWF,KAASD,EACdC,GAAS,MAAQ,OAAOA,GAAU,WAGtCF,EAAGE,EAAOE,GAAO,CAErB,CAEA,SAASC,GAAcX,EAA4B,CACjD,IAAMO,EAAOR,EAAgBC,CAAQ,EACjCY,EAAQ,EAEZ,QAAWJ,KAASD,EACdC,GAAS,MAAQ,OAAOA,GAAU,WACpCI,IAIJ,OAAOA,CACT,CAEA,SAASC,GAAUb,EAAiC,CAClD,GAAI,CAACc,EAAed,CAAQ,EAC1B,MAAM,IAAI,MAAM,0DAA0D,EAE5E,OAAOA,CACT,CAEA,SAASe,GAAQf,EAAiC,CAEhD,OADaD,EAAgBC,CAAQ,EACzB,OAAQQ,GAAUA,GAAS,MAAQ,OAAOA,GAAU,SAAS,CAC3E,CAEO,IAAMQ,GAAW,CACtB,IAAKX,GACL,QAASI,GACT,MAAOE,GACP,KAAME,GACN,QAAAE,EACF,ECjFO,IAAME,EAAN,KAAsD,CAc3D,YAAYC,EAAU,CAJtB,YAAkB,KAClB,mBAAqF,CAAC,EACtF,kBAAe,GAGb,KAAK,MAAQA,EACb,KAAK,MAAQ,CAAC,EACd,KAAK,QAAU,MACjB,CAEA,SACEC,EACAC,EACM,CACN,KAAK,cAAc,KAAKD,CAAO,EAE/B,KAAK,eAAeC,CAAQ,CAC9B,CAEA,YAAYA,EAA6B,CACvC,KAAK,aAAe,GACpB,KAAK,eAAeA,CAAQ,CAC9B,CAEA,QAAmB,CACjB,OAAO,IACT,CAWA,eAAeC,EAA8B,CAE7C,CACF,EAGCJ,EAAU,UAAiD,gBAAkB,GAMvE,IAAMK,EAAN,cAAkEL,CAAgB,CACvF,sBAAsBM,EAAcC,EAAuB,CACzD,MAAO,CAACC,GAAa,KAAK,MAAOF,CAAS,GAAK,CAACE,GAAa,KAAK,MAAOD,CAAS,CACpF,CACF,EAECF,EAAc,UAAiD,oBAAsB,GAK/E,SAASG,GAAaC,EAAYC,EAAqB,CAC5D,GAAI,OAAO,GAAGD,EAAGC,CAAC,EAAG,MAAO,GAC5B,GAAI,OAAOD,GAAM,UAAYA,IAAM,MAAQ,OAAOC,GAAM,UAAYA,IAAM,KACxE,MAAO,GAGT,IAAMC,EAAQ,OAAO,KAAKF,CAA4B,EAChDG,EAAQ,OAAO,KAAKF,CAA4B,EAEtD,GAAIC,EAAM,SAAWC,EAAM,OAAQ,MAAO,GAE1C,IAAMC,EAAOJ,EACPK,EAAOJ,EAEb,QAAWK,KAAOJ,EAChB,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKG,EAAMC,CAAG,GAAK,CAAC,OAAO,GAAGF,EAAKE,CAAG,EAAGD,EAAKC,CAAG,CAAC,EACrF,MAAO,GAIX,MAAO,EACT,CC9EO,IAAMC,EAAN,cAA4BC,CAAkD,CACnF,OAAO,yBAAyBC,EAA6C,CAC3E,MAAO,CAAE,SAAU,GAAM,MAAAA,CAAM,CACjC,CAEA,YAAYC,EAA2B,CACrC,MAAMA,CAAK,EACX,KAAK,MAAQ,CAAE,SAAU,GAAO,MAAO,IAAK,CAC9C,CAEA,kBAAkBD,EAAgBE,EAAuB,CACvD,KAAK,MAAM,UAAUF,EAAOE,CAAI,CAClC,CAEA,QAAmB,CACjB,OAAI,KAAK,MAAM,SACN,KAAK,MAAM,UAAY,KAEzB,KAAK,MAAM,UAAY,IAChC,CACF,ECsBO,SAASC,EAAQC,EAAsB,CAE5C,IAAMC,EAAUC,EAAOF,CAAI,EAC3BC,EAAQ,QAAUD,EAGlB,IAAMG,EAAU,KAAK,UAAU,CAC7BH,EAAK,MACLA,EAAK,YACLA,EAAK,SACLA,EAAK,OACLA,EAAK,UACLA,EAAK,GACLA,EAAK,QACLA,EAAK,UACLA,EAAK,IACP,CAAC,EAEDI,EAAU,IAAM,CACd,IAAMJ,EAAOC,EAAQ,QACfI,EAA0B,CAAC,EAG3BC,EAAY,SAAS,MAoB3B,GAnBIN,EAAK,QACP,SAAS,MAAQA,EAAK,MACtBK,EAAQ,KAAK,IAAM,CACjB,SAAS,MAAQC,CACnB,CAAC,GAICN,EAAK,aACPK,EAAQ,KAAKE,EAAQ,OAAQ,cAAeP,EAAK,WAAW,CAAC,EAE3DA,EAAK,UACPK,EAAQ,KAAKE,EAAQ,OAAQ,WAAYP,EAAK,QAAQ,CAAC,EAErDA,EAAK,QACPK,EAAQ,KAAKE,EAAQ,OAAQ,SAAUP,EAAK,MAAM,CAAC,EAIjDA,EAAK,UAAW,CAClB,IAAMQ,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,IAAM,YACXA,EAAK,KAAOR,EAAK,UACjB,SAAS,KAAK,YAAYQ,CAAI,EAC9BH,EAAQ,KAAK,IAAMG,EAAK,OAAO,CAAC,CAClC,CAGA,GAAIR,EAAK,GACP,OAAW,CAACS,EAAKC,CAAK,IAAK,OAAO,QAAQV,EAAK,EAAE,EAC/CK,EAAQ,KAAKE,EAAQ,WAAY,MAAME,CAAG,GAAIC,CAAK,CAAC,EAKxD,GAAIV,EAAK,QACP,OAAW,CAACS,EAAKC,CAAK,IAAK,OAAO,QAAQV,EAAK,OAAO,EACpDK,EAAQ,KAAKE,EAAQ,OAAQ,WAAWE,CAAG,GAAIC,CAAK,CAAC,EAKzD,GAAIV,EAAK,UAAW,CAClB,IAAMW,EAAuC,CAC3C,IAAK,0BACL,SAAU,kBACV,YAAa,yBACb,aAAc,kBACd,aAAc,eAChB,EACA,OAAW,CAACF,EAAKC,CAAK,IAAK,OAAO,QAAQV,EAAK,SAAS,EAAG,CACzD,GAAIU,IAAU,OAAW,SACzB,IAAME,EAAgBD,EAAaF,CAAG,GAAKA,EAC3CJ,EAAQ,KAAKQ,GAAiBD,EAAeF,CAAK,CAAC,CACrD,CACF,CAGA,GAAIV,EAAK,KACP,QAAWc,KAAOd,EAAK,KACjBc,EAAI,KACNT,EAAQ,KAAKE,EAAQ,OAAQO,EAAI,KAAMA,EAAI,OAAO,CAAC,EAC1CA,EAAI,UACbT,EAAQ,KAAKE,EAAQ,WAAYO,EAAI,SAAUA,EAAI,OAAO,CAAC,EAKjE,MAAO,IAAM,CACX,QAAWC,KAAMV,EAASU,EAAG,CAC/B,CACF,EAAG,CAACZ,CAAO,CAAC,CACd,CAKA,SAASa,GAAcC,EAAmB,CACxC,OAAOA,EAAE,QAAQ,SAAU,MAAM,CACnC,CAEA,SAASV,EAAQW,EAA2BT,EAAaU,EAA6B,CACpF,IAAMC,EAAW,QAAQF,CAAI,KAAKF,GAAcP,CAAG,CAAC,KAChDY,EAAK,SAAS,cAAcD,CAAQ,EAClCE,EAAUD,IAAO,KACjBE,EAAcF,GAAI,QAExB,OAAKA,IACHA,EAAK,SAAS,cAAc,MAAM,EAClCA,EAAG,aAAaH,EAAMT,CAAG,EACzB,SAAS,KAAK,YAAYY,CAAE,GAE9BA,EAAG,QAAUF,EAEN,IAAM,CACPG,GAAWC,IAAgB,OAC7BF,EAAI,QAAUE,EACJD,GACVD,EAAI,OAAO,CAEf,CACF,CAKA,SAASR,GAAiBW,EAAmBL,EAA6B,CACxE,IAAMC,EAAW,oBAAoBJ,GAAcQ,CAAS,CAAC,KACzDH,EAAK,SAAS,cAAcD,CAAQ,EAClCE,EAAUD,IAAO,KACjBE,EAAcF,GAAI,QAExB,OAAKA,IACHA,EAAK,SAAS,cAAc,MAAM,EAClCA,EAAG,aAAa,aAAcG,CAAS,EACvC,SAAS,KAAK,YAAYH,CAAE,GAE9BA,EAAG,QAAUF,EAEN,IAAM,CACPG,GAAWC,IAAgB,OAC7BF,EAAI,QAAUE,EACJD,GACVD,EAAI,OAAO,CAEf,CACF,CC3LA,IAAII,GAAuC,KAU3C,SAASC,GAAgC,CACvC,GAAIC,KAAsB,KACxB,MAAM,IAAI,MACR,sFACF,EAEF,OAAOA,EACT,CAEO,SAASC,EACdC,EAC6C,CAC7C,OAAOH,EAAkB,EAAE,SAASG,CAAY,CAClD,CAEO,SAASC,EAAUC,EAAmCC,EAAiC,CAC5F,OAAON,EAAkB,EAAE,UAAUK,EAAQC,CAAI,CACnD,CAEO,SAASC,EAAcC,EAA4B,CACxD,OAAOR,EAAkB,EAAE,WAAWQ,CAAO,CAC/C,CAEO,SAASC,GACdC,EACAC,EACAC,EAC0B,CAC1B,OAAOZ,EAAkB,EAAE,WAAWU,EAASC,EAAYC,CAAI,CACjE,CAGO,SAASC,EACdC,EACAR,EACG,CACH,OAAON,EAAkB,EAAE,YAAYc,EAAUR,CAAI,CACvD,CAEO,SAASS,EAAWC,EAAkBV,EAA6B,CACxE,OAAON,EAAkB,EAAE,QAAQgB,EAASV,CAAI,CAClD,CAKO,SAASW,EAAUC,EAA8C,CACtE,OAAOlB,EAAkB,EAAE,OAAOkB,CAAY,CAChD,CAEO,SAASC,GACdC,EACAC,EACAf,EACM,CACN,OAAON,EAAkB,EAAE,oBAAoBoB,EAAKC,EAAcf,CAAI,CACxE,CAEO,SAASgB,GACdjB,EACAC,EACM,CACN,OAAON,EAAkB,EAAE,gBAAgBK,EAAQC,CAAI,CACzD,CAEO,SAASiB,GAAiBC,EAAUC,EAAsC,CAC/E,OAAOzB,EAAkB,EAAE,cAAcwB,EAAOC,CAAM,CACxD,CAEO,SAASC,IAAgB,CAC9B,OAAO1B,EAAkB,EAAE,MAAM,CACnC,CAEO,SAAS2B,GAAoBH,EAAa,CAC/C,OAAOxB,EAAkB,EAAE,iBAAiBwB,CAAK,CACnD,CAEO,SAASI,IAA2D,CACzE,OAAO5B,EAAkB,EAAE,cAAc,CAC3C,CAEO,SAAS6B,GACdC,EACAC,EACAC,EACG,CACH,OAAOhC,EAAkB,EAAE,qBAAqB8B,EAAWC,EAAaC,CAAiB,CAC3F,CAEO,SAASC,GACd5B,EACAC,EACM,CACN,OAAON,EAAkB,EAAE,mBAAmBK,EAAQC,CAAI,CAC5D,CC1HO,IAAM4B,GAAmBC,GCAzB,IAAMC,GAAqBC,GCA3B,IAAMC,GAAmBC,GCWzB,IAAMC,EAAgBC,EAAkC,CAC7D,SAAU,IACV,OAAQ,CAAC,EAET,SAAU,IAAM,CACd,MAAM,IAAI,MAAM,uDAAuD,CACzE,EACA,SAAU,EACZ,CAAC,ECbD,SAASC,IAAsB,CAG7B,IAAMC,GADO,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,IAClD,QAAQ,QAAS,GAAG,EACtC,OAAOA,IAAS,GAAK,IAAMA,CAC7B,CAEA,IAAIC,GAAkC,CACpC,SAAUF,GAAY,EAEtB,KAAM,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,EAC/D,EAEMG,EAAY,IAAI,IAWtB,SAASC,IAAmB,CAC1BC,GAAkB,CAChB,SAAUC,GAAY,EAEtB,KAAM,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,EAC/D,EACA,QAAWC,KAAYC,EACrBD,EAAS,CAEb,CAII,OAAO,OAAW,KACpB,OAAO,iBAAiB,aAAcH,EAAU,EAI3C,SAASK,GAAUC,EAAkC,CAC1D,OAAAF,EAAU,IAAIE,CAAQ,EACf,IAAM,CACXF,EAAU,OAAOE,CAAQ,CAC3B,CACF,CAGO,SAASC,GAA8B,CAC5C,OAAON,EACT,CAQO,SAASO,GAASC,EAAYC,EAAuC,CAC1E,IAAMC,EAAWF,EAAG,WAAW,GAAG,EAAIA,EAAK,IAAMA,EAEjD,GAAIC,GAAS,QAAS,CACpB,IAAME,EAAM,OAAO,SAAS,SAAW,OAAO,SAAS,OAASD,EAChE,OAAO,QAAQ,aAAa,KAAM,GAAIC,CAAG,CAC3C,MACE,OAAO,SAAS,KAAOD,EAMzBE,GAAW,CACb,CCvEO,SAASC,EAAOC,EAA8B,CACnD,GAAM,CAACC,EAAUC,CAAW,EAAIC,EAAS,IAAMC,EAAY,EAAE,QAAQ,EAErEC,EAAU,KAERH,EAAYE,EAAY,EAAE,QAAQ,EAEdE,GAAU,IAAM,CAClCJ,EAAYE,EAAY,EAAE,QAAQ,CACpC,CAAC,GAGA,CAAC,CAAC,EAEL,IAAMG,EAAMC,EAAY,IAAIC,IAAoB,CAC9CC,GAASD,EAAK,CAAC,EAAaA,EAAK,CAAC,CAAsC,CAC1E,EAAG,CAAC,CAAC,EAECE,EAA4BC,EAChC,KAAO,CACL,SAAAX,EACA,OAAQ,CAAC,EACT,SAAUM,EACV,SAAU,EACZ,GACA,CAACN,EAAUM,CAAG,CAChB,EAEA,OAAOM,EAAcC,EAAc,SAAU,CAAE,MAAAH,CAAM,EAAGX,EAAM,QAAQ,CACxE,CCjBA,SAASe,GAAqBC,EAAmB,CAC/C,IAAIC,EAAMD,EAAE,OACZ,KAAOC,EAAM,GAAKD,EAAE,WAAWC,EAAM,CAAC,IAAM,IAC1CA,IAEF,OAAOA,IAAQD,EAAE,OAASA,EAAIA,EAAE,MAAM,EAAGC,CAAG,CAC9C,CAMO,SAASC,EACdC,EACAC,EACAC,EACoB,CACpB,IAAMC,EAAQD,GAAS,OAAS,GAG1BE,EAAoBJ,IAAY,IAAM,IAAMJ,GAAqBI,CAAO,EACxEK,EAAiBJ,IAAa,IAAM,IAAML,GAAqBK,CAAQ,EAG7E,GAAIG,IAAsB,IAAK,CAC7B,IAAME,EAAUD,IAAmB,IACnC,OAAIF,GAAS,CAACG,EACL,KAEF,CACL,OAAQ,CAAC,EACT,QAAAA,EACA,KAAMN,EACN,IAAK,GACP,CACF,CAEA,IAAMO,EAAkBH,EAAkB,MAAM,GAAG,EAAE,OAAO,OAAO,EAC7DI,EAAeH,EAAe,MAAM,GAAG,EAAE,OAAO,OAAO,EAGvDI,EAAcF,EAAgBA,EAAgB,OAAS,CAAC,IAAM,IAMpE,GAJI,CAACE,GAAeN,GAASK,EAAa,SAAWD,EAAgB,QAIjE,CAACE,GAAeD,EAAa,OAASD,EAAgB,OACxD,OAAO,KAGT,IAAMG,EAAiC,CAAC,EAClCC,EAA4B,CAAC,EAEnC,QAASC,EAAI,EAAGA,EAAIL,EAAgB,OAAQK,IAAK,CAC/C,IAAMC,EAAaN,EAAgBK,CAAC,EAGpC,GAAIC,IAAe,IAAK,CACtB,IAAMC,EAAYN,EAAa,MAAMI,CAAC,EAAE,KAAK,GAAG,EAChD,OAAAF,EAAO,GAAG,EAAII,EACP,CACL,OAAAJ,EACA,QAAS,GACT,KAAMV,EACN,IAAK,IAAMQ,EAAa,KAAK,GAAG,CAClC,CACF,CAGA,GAAII,GAAKJ,EAAa,OACpB,OAAO,KAGT,IAAMO,EAAUP,EAAaI,CAAC,EAG9B,GAAIC,EAAW,WAAW,GAAG,EAAG,CAC9B,IAAMG,EAAYH,EAAW,MAAM,CAAC,EACpCH,EAAOM,CAAS,EAAI,mBAAmBD,CAAO,EAC9CJ,EAAgB,KAAKI,CAAO,EAC5B,QACF,CAGA,GAAIF,EAAW,YAAY,IAAME,EAAQ,YAAY,EACnD,OAAO,KAGTJ,EAAgB,KAAKI,CAAO,CAC9B,CAEA,IAAME,EAAa,IAAMN,EAAgB,KAAK,GAAG,EAC3CL,EAAUE,EAAa,SAAWD,EAAgB,OAExD,OAAIJ,GAAS,CAACG,EACL,KAGF,CACL,OAAAI,EACA,QAAAJ,EACA,KAAMN,EACN,IAAKiB,CACP,CACF,CC/GO,SAASC,EAAMC,EAA6B,CACjD,IAAMC,EAASC,EAAWC,CAAa,EACjCC,EAAcH,EAAO,SAAWD,EAAM,KACtCK,EAAQC,EAAUF,EAAaH,EAAO,SAAU,CACpD,MAAOD,EAAM,OAAS,EACxB,CAAC,EAGKO,EAAkCC,EACtC,KAAO,CACL,SAAUP,EAAO,SACjB,OAAQ,CACN,GAAGA,EAAO,OACV,GAAII,EAAQA,EAAM,OAAS,CAAC,CAC9B,EACA,SAAUJ,EAAO,SACjB,SAAUI,EAAQA,EAAM,IAAMJ,EAAO,QACvC,GACA,CAACA,EAAO,SAAUA,EAAO,SAAUA,EAAO,OAAQA,EAAO,SAAUI,CAAK,CAC1E,EAEA,GAAI,CAACA,EAAO,OAAO,KAGnB,QAAWI,KAAO,OAAO,KAAKR,EAAO,MAAM,EACnCQ,KAAOF,EAAY,SACvBA,EAAY,OAAOE,CAAG,EAAIR,EAAO,OAAOQ,CAAG,GAI/C,IAAMC,EAAUV,EAAM,UAClBW,EAAcX,EAAM,UAAW,CAAE,GAAGO,EAAY,MAAO,CAAC,EACxDP,EAAM,SAEV,OAAOW,EAAcR,EAAc,SAAU,CAAE,MAAOI,CAAY,EAAGG,CAAO,CAC9E,CC/BO,SAASE,EAAKC,EAA4B,CAC/C,GAAM,CAAE,GAAAC,EAAI,UAAAC,EAAW,gBAAAC,EAAiB,MAAAC,EAAO,SAAAC,EAAU,GAAGC,CAAK,EAAIN,EAC/DO,EAASC,EAAWC,CAAa,EAEjCC,EAAWC,EAAUV,EAAIM,EAAO,SAAU,CAAE,MAAOH,GAAS,EAAM,CAAC,IAAM,KAEzEQ,EAAcC,GACjB,IAAIC,IAAoB,CACbA,EAAK,CAAC,EACd,eAAe,EACjBP,EAAO,SAASN,CAAE,CACpB,GACA,CAACA,EAAIM,EAAO,QAAQ,CACtB,EAEMQ,EAAM,CAACb,EAAWQ,EAAWP,EAAkB,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAAK,OAExF,OAAOa,EACL,IACA,CACE,GAAGV,EACH,KAAM,IAAML,EACZ,QAASW,EACT,UAAWG,CACb,EACAV,CACF,CACF,CChDO,SAASY,GAAgC,CAC9C,OAAOC,EAAWC,CAAa,CACjC,CCFO,SAASC,GAA0E,CACxF,OAAOC,EAAWC,CAAa,EAAE,MACnC,CCFO,SAASC,GAAqE,CACnF,OAAOC,EAAWC,CAAa,EAAE,QACnC,CCwGA,IAAIC,GAA6B,EAE1B,SAASC,IAAkC,CAChD,IAAMC,EAAOF,GACb,OAAAA,GAAqBE,IAAS,EAAkB,GAAkB,EAC3DA,CACT,CCvGA,IAAIC,EAA4B,EAC5BC,EAAsB,GAE1B,IAAIC,GAAsC,CAAC,EAwCpC,SAASC,GAAgBC,EAA4B,CAC1D,IAAMC,EAAWC,EACXC,EAAcC,EAEpBF,EAAoBG,GAAwB,EAC5CD,EAAsB,GAEtB,GAAI,CACFJ,EAAS,CACX,QAAE,CACAE,EAAoBD,EACpBG,EAAsBD,EACtBG,GAAiB,CACnB,CACF,CAgBA,SAASC,IAAyB,CAChC,IAAMC,EAAYC,GAClBA,GAAsB,CAAC,EACvB,QAAWC,KAAMF,EACfE,EAAG,CAEP,CCnFA,IAAIC,GAAuB,CAAC,EAyCrB,SAASC,GAA0B,CACxC,IAAMC,EAAQC,GACdA,GAAe,CAAC,EAChB,QAAWC,KAAQF,EACjBE,EAAK,CAET,CCjDO,SAASC,GAAIC,EAA4C,CAC9D,IAAMC,EAASD,EAAS,EACxBE,EAAkB,EAEdD,GAAU,OAAQA,EAAyB,MAAS,YAGrDA,EAAyB,KAAK,IAAM,CACnCC,EAAkB,CACpB,CAAC,CAEL,CCFO,SAASC,EAAgBC,EAAmB,CAEjD,GAAIA,EAAI,WAAW,IAAI,EACrB,MAAM,IAAI,MACR,gDAAgDA,CAAG,qCACrD,EASF,GALIA,EAAI,WAAW,GAAG,GAAKA,EAAI,WAAW,IAAI,GAAKA,EAAI,WAAW,KAAK,GAKnEA,EAAI,WAAW,OAAO,EACxB,OAIF,IAAIC,EACJ,GAAI,CACFA,EAAS,IAAI,IAAID,EAAK,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,MAAS,CACxF,MAAQ,CAEN,MACF,CAGA,GAAIC,EAAO,WAAa,UAKpB,EAAAA,EAAO,WAAa,aAAeA,EAAO,WAAa,aAK3D,MAAM,IAAI,MACR,uCAAuCD,CAAG,wIAI5C,CACF,CAMO,SAASE,EAAYC,EAA+BC,EAAuC,CAChG,IAAMJ,EAAM,OAAOG,GAAU,SAAWA,EAAQA,aAAiB,IAAMA,EAAM,KAAOA,EAAM,IAC1F,OAAAJ,EAAgBC,CAAG,EACZ,MAAMG,EAAOC,CAAI,CAC1B,CCnDA,IAAMC,GAAU,IAAI,IAEpB,IAAIC,GAAU,GAMP,SAASC,GAAuBC,EAAsB,CAC3DF,GAAUE,CACZ,CAsBO,SAASC,GACdC,EACoE,CACpE,IAAMC,EAAQD,EAAG,MAAM,iBAAiB,EACxC,GAAI,CAACC,GAAS,CAACA,EAAM,CAAC,GAAK,CAACA,EAAM,CAAC,EAAG,OAAO,KAC7C,IAAMC,EAAY,SAASD,EAAM,CAAC,EAAG,EAAE,EACjCE,EAAa,SAASF,EAAM,CAAC,EAAG,EAAE,EACxC,QAAWG,KAASC,GAAQ,OAAO,EACjC,GAAID,EAAM,QAAUF,EAClB,MAAO,CAAE,SAAUE,EAAM,KAAM,UAAAF,EAAW,WAAAC,CAAW,EAGzD,OAAO,IACT,CAKO,SAASG,IAA2E,CACzF,OAAOD,EACT,CC9BA,IAAME,EAAqBC,EAAuC,CAChE,MAAO,CAAC,EACR,UAAW,IAAM,GACjB,QAAS,IAAM,CAAC,EAChB,QAAS,EACX,CAAC,EAOM,SAASC,EAAoBC,EAA2C,CAC7E,GAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAuB,KAAO,CAAE,GAAGH,EAAM,QAAS,EAAE,EACxE,CAACI,EAASC,CAAU,EAAIF,EAAS,CAAC,CAACH,EAAM,GAAG,EAGlDM,EAAU,IAAM,CACd,GAAI,CAACN,EAAM,IAAK,OAEhB,IAAIO,EAAY,GAChB,OAAAF,EAAW,EAAI,EAEfG,EAAYR,EAAM,GAAG,EAClB,KAAMS,GAAQ,CACb,GAAI,CAACA,EAAI,GAAI,MAAM,IAAI,MAAM,QAAQA,EAAI,MAAM,EAAE,EACjD,OAAOA,EAAI,KAAK,CAClB,CAAC,EACA,KAAMC,GAAkB,CACvB,GAAI,CAACH,GAAa,OAAOG,GAAS,UAAYA,IAAS,KAAM,CAE3D,IAAMC,EAAqB,CAAC,EAC5B,QAAWC,KAAK,OAAO,KAAKF,CAA+B,EACrDE,IAAM,aAAeA,IAAM,eAAiBA,IAAM,cACpDD,EAAKC,CAAC,EAAKF,EAAiCE,CAAC,IAAM,IAGvDV,EAAUW,IAAwB,CAAE,GAAGA,EAAM,GAAGF,CAAK,EAAE,CACzD,CACKJ,GAAWF,EAAW,EAAK,CAClC,CAAC,EACA,MAAM,IAAM,CACNE,GAAWF,EAAW,EAAK,CAClC,CAAC,EAEI,IAAM,CACXE,EAAY,EACd,CACF,EAAG,CAACP,EAAM,GAAG,CAAC,EAEd,IAAMc,EAAYC,GACf,IAAIC,IAAoB,CACvB,IAAMC,EAAOD,EAAK,CAAC,EACnB,OAAOf,EAAMgB,CAAI,IAAM,EACzB,GACA,CAAChB,CAAK,CACR,EAEMiB,EAAUH,GACb,IAAIC,IAAoB,CACvB,IAAMC,EAAOD,EAAK,CAAC,EACbG,EAAUH,EAAK,CAAC,EACtBd,EAAUW,IAAwB,CAAE,GAAGA,EAAM,CAACI,CAAI,EAAGE,CAAQ,EAAE,CACjE,GACA,CAAC,CACH,EAEMC,EAAiC,CACrC,MAAAnB,EACA,UAAAa,EACA,QAAAI,EACA,QAAAd,CACF,EAEA,OAAOiB,EAAcxB,EAAmB,SAAU,CAAE,MAAAuB,CAAM,EAAGpB,EAAM,QAAQ,CAC7E,CAmBO,SAASsB,EAAYtB,EAAmC,CAC7D,GAAM,CAAE,UAAAc,CAAU,EAAIS,EAAW1B,CAAkB,EACnD,OAAOiB,EAAUd,EAAM,IAAI,EAAKA,EAAM,SAAyBA,EAAM,UAAY,IACnF,CASO,SAASwB,GAA2C,CACzD,OAAOD,EAAW1B,CAAkB,CACtC",
|
|
6
|
+
"names": ["index_exports", "__export", "Children", "Component", "ErrorBoundary", "FeatureFlagProvider", "FeatureGate", "Fragment", "Link", "Profiler", "PureComponent", "Route", "Router", "StrictMode", "Suspense", "act", "assertSecureUrl", "cloneElement", "createContext", "createElement", "createFactory", "createRef", "forwardRef", "getComponentTypeTable", "isValidElement", "lazy", "matchPath", "memo", "resolveComponentId", "secureFetch", "setComponentIdsEnabled", "startTransition", "useCallback", "useContext", "useDebugValue", "useDeferredValue", "useEffect", "useFeatureFlags", "useHead", "useId", "useImperativeHandle", "useInsertionEffect", "useLayoutEffect", "useMemo", "useNavigate", "useParams", "useReducer", "useRef", "useRouter", "useState", "useSyncExternalStore", "useTransition", "__toCommonJS", "SPEC_ELEMENT_TYPE", "SPEC_FRAGMENT_TYPE", "SPEC_PORTAL_TYPE", "SPEC_PROVIDER_TYPE", "SPEC_CONSUMER_TYPE", "SPEC_FORWARD_REF_TYPE", "SPEC_MEMO_TYPE", "SPEC_LAZY_TYPE", "SPEC_SUSPENSE_TYPE", "SPEC_STRICT_MODE_TYPE", "SPEC_PROFILER_TYPE", "createElement", "type", "config", "children", "key", "ref", "props", "propName", "defaultProps", "SPEC_ELEMENT_TYPE", "createFactory", "Fragment", "SPEC_FRAGMENT_TYPE", "createContext", "defaultValue", "context", "provider", "SPEC_PROVIDER_TYPE", "consumer", "SPEC_CONSUMER_TYPE", "createRef", "forwardRef", "render", "SPEC_FORWARD_REF_TYPE", "memo", "component", "compare", "SPEC_MEMO_TYPE", "lazy", "factory", "payload", "SPEC_LAZY_TYPE", "promise", "module", "error", "isValidElement", "object", "SPEC_ELEMENT_TYPE", "cloneElement", "element", "config", "children", "isValidElement", "key", "ref", "props", "propName", "SPEC_ELEMENT_TYPE", "flattenChildren", "children", "result", "stack", "node", "i", "mapChildren", "fn", "flat", "child", "forEachChildren", "index", "countChildren", "count", "onlyChild", "isValidElement", "toArray", "Children", "Component", "props", "updater", "callback", "_callback", "PureComponent", "nextProps", "nextState", "shallowEqual", "a", "b", "keysA", "keysB", "objA", "objB", "key", "ErrorBoundary", "Component", "error", "props", "info", "useHead", "head", "headRef", "useRef", "depsKey", "useEffect", "cleanup", "prevTitle", "setMeta", "link", "key", "value", "httpEquivMap", "httpEquivName", "setHttpEquivMeta", "tag", "fn", "escapeCssAttr", "s", "attr", "content", "selector", "el", "existed", "prevContent", "httpEquiv", "currentDispatcher", "resolveDispatcher", "currentDispatcher", "useState", "initialState", "useEffect", "create", "deps", "useContext", "context", "useReducer", "reducer", "initialArg", "init", "useCallback", "callback", "useMemo", "factory", "useRef", "initialValue", "useImperativeHandle", "ref", "createHandle", "useLayoutEffect", "useDebugValue", "value", "format", "useId", "useDeferredValue", "useTransition", "useSyncExternalStore", "subscribe", "getSnapshot", "getServerSnapshot", "useInsertionEffect", "Suspense", "SPEC_SUSPENSE_TYPE", "StrictMode", "SPEC_STRICT_MODE_TYPE", "Profiler", "SPEC_PROFILER_TYPE", "RouterContext", "createContext", "getHashPath", "path", "currentSnapshot", "listeners", "emitChange", "currentSnapshot", "getHashPath", "listener", "listeners", "subscribe", "callback", "getSnapshot", "navigate", "to", "options", "hashPath", "url", "emitChange", "Router", "props", "pathname", "setPathname", "useState", "getSnapshot", "useEffect", "subscribe", "nav", "useCallback", "args", "navigate", "value", "useMemo", "createElement", "RouterContext", "stripTrailingSlashes", "s", "end", "matchPath", "pattern", "pathname", "options", "exact", "normalizedPattern", "normalizedPath", "isExact", "patternSegments", "pathSegments", "hasWildcard", "params", "matchedSegments", "i", "patternSeg", "remaining", "pathSeg", "paramName", "matchedUrl", "Route", "props", "router", "useContext", "RouterContext", "fullPattern", "match", "matchPath", "nestedValue", "useMemo", "key", "content", "createElement", "Link", "props", "to", "className", "activeClassName", "exact", "children", "rest", "router", "useContext", "RouterContext", "isActive", "matchPath", "handleClick", "useCallback", "args", "cls", "createElement", "useRouter", "useContext", "RouterContext", "useParams", "useContext", "RouterContext", "useNavigate", "useContext", "RouterContext", "nextTransitionLane", "claimNextTransitionLane", "lane", "currentUpdateLane", "isTransitionPending", "transitionCallbacks", "startTransition", "callback", "prevLane", "currentUpdateLane", "prevPending", "isTransitionPending", "claimNextTransitionLane", "flushTransitions", "flushTransitions", "callbacks", "transitionCallbacks", "cb", "pendingTasks", "flushPendingTasks", "tasks", "pendingTasks", "task", "act", "callback", "result", "flushPendingTasks", "assertSecureUrl", "url", "parsed", "secureFetch", "input", "init", "typeMap", "enabled", "setComponentIdsEnabled", "value", "resolveComponentId", "id", "match", "typeIndex", "instanceId", "entry", "typeMap", "getComponentTypeTable", "FeatureFlagContext", "createContext", "FeatureFlagProvider", "props", "flags", "setFlags", "useState", "loading", "setLoading", "useEffect", "cancelled", "secureFetch", "res", "json", "safe", "k", "prev", "isEnabled", "useCallback", "args", "flag", "setFlag", "enabled", "value", "createElement", "FeatureGate", "useContext", "useFeatureFlags"]
|
|
7
|
+
}
|