@almadar/orb-shell-typescript-linux-x64 18.0.0 → 19.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/orb-shell-typescript +0 -0
- package/package.json +1 -1
- package/templates/almadar-renderers-typescript/bundling.d.mts +18 -0
- package/templates/almadar-renderers-typescript/bundling.mjs +28 -0
- package/templates/almadar-renderers-typescript/eslint.config.cjs +30 -0
- package/templates/almadar-renderers-typescript/index.css +199 -0
- package/templates/almadar-renderers-typescript/package.json +246 -0
- package/templates/almadar-renderers-typescript/pnpm-lock.yaml +7160 -0
- package/templates/almadar-renderers-typescript/postcss.config.js +6 -0
- package/templates/almadar-renderers-typescript/scripts/audit-tailwind-safelist.ts +234 -0
- package/templates/almadar-renderers-typescript/scripts/component-contrast-audit.mjs +106 -0
- package/templates/almadar-renderers-typescript/scripts/export-static.js +61 -0
- package/templates/almadar-renderers-typescript/scripts/gates/h5.sh +72 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/audit.txt +3 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/component-contrast.txt +16 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/dist.txt +1 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/eslint.txt +1 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/themes.txt +1 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/tsc.txt +1 -0
- package/templates/almadar-renderers-typescript/scripts/gates/known-failures/vitest.txt +1 -0
- package/templates/almadar-renderers-typescript/scripts/generate-design-system.ts +344 -0
- package/templates/almadar-renderers-typescript/scripts/generate-theme-from-schema.ts +480 -0
- package/templates/almadar-renderers-typescript/scripts/generate.ts +835 -0
- package/templates/almadar-renderers-typescript/scripts/lib/ensure-use-client.d.mts +3 -0
- package/templates/almadar-renderers-typescript/scripts/lib/ensure-use-client.mjs +18 -0
- package/templates/almadar-renderers-typescript/scripts/lib/theme-colors.d.mts +19 -0
- package/templates/almadar-renderers-typescript/scripts/lib/theme-colors.mjs +88 -0
- package/templates/almadar-renderers-typescript/scripts/strip-base-tokens-from-themes.mjs +179 -0
- package/templates/almadar-renderers-typescript/scripts/suggest-components.ts +508 -0
- package/templates/almadar-renderers-typescript/scripts/theme-contrast-audit.mjs +86 -0
- package/templates/almadar-renderers-typescript/scripts/theme-distinctness-audit.mjs +126 -0
- package/templates/almadar-renderers-typescript/scripts/types.ts +282 -0
- package/templates/almadar-renderers-typescript/scripts/verify-dist-esm.mjs +38 -0
- package/templates/almadar-renderers-typescript/shell-role.json +3 -0
- package/templates/almadar-renderers-typescript/src/auth/browser/index.ts +1 -0
- package/templates/almadar-renderers-typescript/src/auth/react/index.tsx +221 -0
- package/templates/almadar-renderers-typescript/src/avl/index.ts +200 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlApplication.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlBinding.tsx +71 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlBindingRef.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlEffect.tsx +238 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlEntity.tsx +94 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlEvent.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlField.tsx +59 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlFieldType.tsx +106 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlGuard.tsx +49 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlLiteral.tsx +47 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlOperator.tsx +56 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlOrbital.tsx +63 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlPage.tsx +53 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlPersistence.tsx +64 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlSExpr.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlState.tsx +108 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlTrait.tsx +62 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/AvlTransition.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/avl/atoms/index.ts +38 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlBackwardEdge.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlBehaviorGlyph.tsx +493 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlBindingEdge.tsx +60 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlCircuit.tsx +397 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlClosedCircuit.tsx +206 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlEffectChip.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlEmitListen.tsx +126 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlEventWireEdge.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlExplain.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlExprTree.tsx +150 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlGlyph.tsx +123 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlOrbitalMachine.tsx +618 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlOrbitalUnit.tsx +142 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlPageEdge.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlSlotMap.tsx +182 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlStateMachine.tsx +448 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlSwimLane.tsx +176 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlTransitionDetail.tsx +199 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlTransitionEdge.tsx +78 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlTransitionExplainer.tsx +59 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/AvlTransitionLane.tsx +154 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/BehaviorView.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/DesignGuidesOverlay.tsx +63 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/DesignSelectionOverlay.tsx +400 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/DetailView.tsx +124 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/EventFlowEdge.tsx +140 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/KnobField.tsx +735 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/KnobSettingRow.tsx +64 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/MiniStateMachine.tsx +167 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/ModuleCard.tsx +195 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/OrbPreviewNode.tsx +1994 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/SystemNode.tsx +234 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/TraitCardNode.tsx +135 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlCircuit.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlExplain.test.tsx +192 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlGlyph.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlStateMachine.a11y.test.tsx +72 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlStateMachine.follow.test.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlStateMachine.layout-failure.test.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlStateMachine.rtl-guard.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlStateMachine.test.tsx +177 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlTransitionDetail.explain.test.tsx +97 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlTransitionDetail.raw.test.tsx +82 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/AvlTransitionDetail.test.tsx +104 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/BehaviorView.test.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/DesignGuidesOverlay.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/DesignSelectionOverlay.test.tsx +344 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/MiniStateMachine.layout.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/__tests__/OrbPreviewNode.pause.test.tsx +854 -0
- package/templates/almadar-renderers-typescript/src/components/avl/molecules/index.ts +42 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlClickTarget.tsx +106 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlCosmicZoom.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlGraphCanvas.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlLegend.tsx +206 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlOrbitalsCosmicZoom.tsx +369 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlTraitScene.tsx +180 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/AvlTransitionScene.tsx +285 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/FlowCanvas.tsx +1253 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/LayersPanel.tsx +297 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/OrbInspector.tsx +1431 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/ZoomBreadcrumb.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/ZoomLegend.tsx +88 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/AvlGraphCanvas.test.tsx +58 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/AvlOrbitalsCosmicZoom.test.tsx +226 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/FlowCanvas.card-width.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/FlowCanvas.reduced-motion.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/FlowCanvas.system-map.test.tsx +128 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/FlowCanvas.test.tsx +401 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/FlowCanvas.verify.test.tsx +102 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/LayersPanel.test.tsx +359 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/__tests__/OrbInspector.test.tsx +716 -0
- package/templates/almadar-renderers-typescript/src/components/avl/organisms/index.ts +60 -0
- package/templates/almadar-renderers-typescript/src/components/avl/patterns.ts +19 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/TraitFrame.tsx +153 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/AnimatedGraphic.a11y.test.tsx +27 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/AnimatedReveal.offscreen.test.tsx +144 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/AtlasImage.a11y.test.tsx +21 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Avatar.a11y.test.tsx +19 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Badge.a11y.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Box.theme.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Button.alignment.test.tsx +64 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/FilterPill.a11y.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/FormAtoms.a11y.test.tsx +184 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/ProgressBar.a11y.test.tsx +27 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Select.a11y.test.tsx +215 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/Spinner.a11y.test.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/__tests__/TextHighlight.a11y.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/components/core/atoms/index.ts +83 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Accordion.tsx +242 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ActivationBlock.tsx +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ActivityRail.tsx +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/AgentActivityFeed.tsx +440 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/AgentChatFeed.tsx +297 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Alert.tsx +139 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/AnimatedCounter.tsx +161 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/AssetPicker.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/BloomQuizBlock.tsx +143 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/BranchingLogicBuilder.tsx +628 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Breadcrumb.tsx +201 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ButtonGroup.tsx +214 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/CalendarGrid.tsx +599 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Card.tsx +163 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Carousel.tsx +409 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ChangeList.tsx +128 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Chart.tsx +1084 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ChartLegend.tsx +58 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Coachmark.tsx +279 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/CommandPalette.tsx +291 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/CommitRow.tsx +138 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ConfirmDialog.tsx +190 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ConnectionBlock.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Container.tsx +86 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ContentRenderer.tsx +133 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DataGrid.tsx +816 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DataList.tsx +919 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DateRangePicker.tsx +227 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DateRangeSelector.tsx +60 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocBreadcrumb.tsx +96 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocPagination.tsx +126 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocSearch.tsx +232 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocSidebar.tsx +149 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocTOC.tsx +90 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocumentDetails.tsx +309 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocumentPanel.tsx +305 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/DocumentViewer.tsx +319 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Drawer.tsx +262 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/EdgeDecoration.tsx +309 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/EmojiPicker.tsx +132 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/EmptyState.tsx +184 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ErrorBoundary.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ErrorState.tsx +72 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FeatureCard.tsx +121 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FeatureGrid.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FileTree.tsx +753 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FilterGroup.tsx +814 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Flex.tsx +134 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FlipCard.tsx +70 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FloatingActionButton.tsx +283 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FloatingToolbar.tsx +139 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FormField.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FormSection.tsx +191 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FormSectionHeader.tsx +139 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/FxOverlay.tsx +246 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Gantt.tsx +396 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GeometricPattern.tsx +441 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GradientDivider.tsx +54 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GraphCanvas.tsx +1130 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GraphView.tsx +518 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Grid.tsx +265 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GridPicker.tsx +249 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/GuestView.tsx +129 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Header.tsx +337 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/IconButton.tsx +42 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/IconPicker.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/InputGroup.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/JazariStateMachine.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/JsonTreeEditor.tsx +373 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Lightbox.tsx +231 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/LikertScale.tsx +217 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/LineChart.tsx +232 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/LoadingState.tsx +62 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/MapView.tsx +303 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/MatrixQuestion.tsx +191 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Menu.tsx +666 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Meter.tsx +352 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Modal.tsx +295 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Navigation.tsx +178 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/NodeSlotEditor.tsx +107 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/NumberStepper.tsx +228 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/OnboardingSpotlight.tsx +108 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/OptionConstraintGroup.tsx +240 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/OrbitalVisualization.tsx +521 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/PageHeader.tsx +249 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/PageTransition.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Pagination.tsx +285 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Popover.tsx +416 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/PositionedCanvas.tsx +302 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ProgressDots.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/PropertyInspector.tsx +289 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/PullToRefresh.tsx +145 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/QrScanner.tsx +257 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/QuizBlock.tsx +85 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ReflectionBlock.tsx +95 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/RelationSelect.tsx +406 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/RepeatableFormSection.tsx +278 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ReplyTree.tsx +365 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/RichTextEditor.tsx +636 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ScaledDiagram.tsx +153 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SearchInput.tsx +203 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Section.tsx +144 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SidePanel.tsx +153 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Sidebar.tsx +320 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SignaturePad.tsx +272 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SimpleGrid.tsx +123 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Skeleton.tsx +336 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SocialProof.tsx +116 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SortableList.tsx +147 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Split.tsx +142 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/StarRating.tsx +201 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/StatDisplay.tsx +256 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/SwipeableRow.tsx +249 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/TableView.tsx +705 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Tabs.tsx +347 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/TagInput.tsx +162 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Toast.tsx +214 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/Tooltip.tsx +242 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/TopNavItem.tsx +160 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/UploadDropZone.tsx +272 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/VersionDiff.tsx +449 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/ViolationAlert.tsx +148 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/VoteStack.tsx +176 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/WizardContainer.tsx +344 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/WizardNavigation.tsx +178 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/WizardProgress.tsx +147 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ActionCard.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ActivityRail.test.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/AgentActivityFeed.test.tsx +334 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Alert.test.tsx +47 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/AnimatedCounter.test.tsx +102 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Breadcrumb.test.tsx +55 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ButtonGroup.test.tsx +187 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/CalendarGrid.longpress.test.tsx +78 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.a11y.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.bar-color.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.empty.test.tsx +16 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.itemMove.test.tsx +55 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.line-axis.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Chart.time-label.test.ts +47 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/CommandPalette.test.tsx +352 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/CommitRow.test.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ConfirmDialog.busy.test.tsx +57 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ConfirmDialog.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.containerCols.test.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.declared.test.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.media-slot.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.progress.test.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.rows.test.tsx +107 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.scrollx.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataGrid.title-clamp.test.tsx +28 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.anatomy.test.tsx +156 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.badge-labels.test.tsx +31 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.declared.test.tsx +125 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.dnd-reorder.test.tsx +123 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.group-format.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.item-enter.test.tsx +25 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.itemMove.test.tsx +223 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.message-footer.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.navigates-to.test.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.primary-action.test.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DataList.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DateRangePicker.test.tsx +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DocNav.a11y.test.tsx +123 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/DocNav.states.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Drawer.layer.test.tsx +47 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/EmojiPicker.lazy.test.tsx +22 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/EmojiPicker.test.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/EmptyContract.test.tsx +70 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FileTree.a11y.test.tsx +118 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FileTree.test.tsx +238 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FilterGroup.responsive.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FilterGroup.test.tsx +312 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FloatingToolbar.test.tsx +150 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FormField.label.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/FormSectionHeader.test.tsx +20 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Gantt.bars.test.tsx +71 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphCanvas.a11y.test.tsx +91 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphCanvas.colors.test.ts +31 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphCanvas.edgeStroke.test.ts +29 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphView.a11y.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphView.colors.test.ts +18 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GraphView.edgeEndpoints.test.ts +30 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Grid.responsive-classes.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/GuestView.test.tsx +201 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Header.brand-href.test.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Header.nav-href.test.tsx +65 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/IconButton.test.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/IconControls.a11y.test.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ImportPreviewTree.test.tsx +115 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ImportProgress.a11y.test.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ImportProgress.test.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ImportSourcePicker.test.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/JazariStateMachine.test.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Lightbox.test.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/LineChart.test.tsx +85 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ListRows.no-nested-controls.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Menu.keyboard.test.tsx +124 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Menu.test.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/MermaidDiagram.test.tsx +168 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Meter.a11y.test.tsx +37 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Modal.test.tsx +132 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Navigation.test.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/PageHeader.busy.test.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/PageHeader.converge.test.tsx +35 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/PageHeader.layout.test.tsx +106 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/PageTransition.test.tsx +62 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Pagination.responsive.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Popover.dialog.test.tsx +58 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Popover.edge-size.test.tsx +90 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Popover.hover-close.test.tsx +28 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Popover.hover-sticky.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Popover.placement.test.ts +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/PositionedCanvas.a11y.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/RelationSelect.combobox.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/RepeatableFormSection.reorder.test.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ScaledDiagram.contents.test.tsx +45 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ScaledDiagram.measure.test.tsx +68 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ScaledDiagram.rtl.test.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/SearchInput.test.tsx +182 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/SignaturePad.a11y.test.tsx +26 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/SimpleGrid.cols.test.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/SimpleGrid.maxCols.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Skeleton.variants.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Split.container.test.tsx +27 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/StarRating.a11y.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TableView.badge-boolean.test.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TableView.declared.test.tsx +99 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TableView.header-tracks.test.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TableView.test.tsx +131 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Tabs.aria.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Tabs.overflow.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Tabs.test.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TagInput.test.tsx +107 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Toast.a11y.test.tsx +85 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/Tooltip.a11y.test.tsx +56 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/TopNavItem.test.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/UploadDropZone.readAs.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/VersionDiff.pane-scroll.test.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/VersionDiff.test.tsx +184 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/ViolationAlert.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/WizardProgress.test.tsx +56 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/focus-rings.test.tsx +23 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/mermaidGrammar.test.ts +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/mermaidSource.test.ts +58 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/nav-item-links.test.tsx +56 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/selectionState.a11y.test.tsx +151 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/__tests__/state-markers.test.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/emojiItems.ts +24 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/import/ImportPreviewTree.tsx +197 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/import/ImportProgress.tsx +140 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/import/ImportSourcePicker.tsx +157 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/import/index.ts +18 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/index.ts +341 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/CodeBlock.tsx +2456 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/MarkdownContent.tsx +315 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/MermaidDiagram.tsx +133 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/SelectionAnnotator.tsx +142 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.assist.test.tsx +195 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.capacity.test.tsx +60 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.caret.test.tsx +114 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.color-scheme.test.tsx +55 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.completions.test.tsx +188 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.copy-only-header.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.definition.test.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.diagnostics.test.tsx +88 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.empty-collections.test.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.highlight-lines.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.lazy-highlighter.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.overlay-lines.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.rtl-code.test.tsx +86 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/CodeBlock.test.tsx +355 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/MarkdownContent.math.test.tsx +24 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/MarkdownContent.stream.test.tsx +31 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/__tests__/annotations.test.tsx +235 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/index.ts +20 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/katexPlugin.ts +4 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/mermaidSource.ts +154 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/prism.ts +159 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/markdown/useEditorCapabilities.ts +336 -0
- package/templates/almadar-renderers-typescript/src/components/core/molecules/useDataDnd.tsx +674 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/ChatBar.tsx +287 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/CodeRunnerPanel.tsx +248 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/ComponentPatterns.tsx +370 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/CustomPattern.tsx +500 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/DetailPanel.tsx +1130 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/DrawerSlot.tsx +109 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/Form.tsx +1512 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/LayoutPatterns.tsx +199 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/MediaGallery.tsx +347 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/ModalSlot.tsx +100 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/SegmentRenderer.tsx +271 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/StatCard.tsx +338 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/StateMachineView.tsx +79 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/SubagentTracePanel.tsx +1186 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/Timeline.tsx +321 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/ToastSlot.tsx +141 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/UISlotRenderer.tsx +2316 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/ChatBar.focus.test.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/ChatBar.running.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/ChatBar.sendEvent.test.tsx +81 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/CodeRunnerPanel.busy.test.tsx +71 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/ComponentPatterns.a11y.test.tsx +39 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DetailPanel.a11y.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DetailPanel.anatomy.test.tsx +230 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DetailPanel.declared.test.tsx +116 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DetailPanel.looks.test.tsx +224 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DetailPanel.test.tsx +116 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/DrawerSlot.test.tsx +229 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Form.a11y.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Form.research.test.tsx +120 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/LayoutPatterns.test.tsx +366 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/MediaGallery.lightbox.test.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/SegmentRenderer.runCode.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/StatCard.declared.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/StatCard.format.test.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/StatCard.test.tsx +326 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/StateMachineView.test.tsx +78 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/StateMachineViewOrbital.test.tsx +449 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Timeline.actions.test.tsx +58 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Timeline.declared.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Timeline.entity.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Timeline.itemMove.test.tsx +56 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/Timeline.single-row.test.tsx +31 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/ToastSlot.portal.test.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.modal-a11y.test.tsx +75 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.nested-trait-refs.test.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.sexpr-props.test.tsx +31 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.systemSlot.test.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.test.tsx +338 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/UISlotRenderer.toastStack.test.tsx +69 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/component-registry.lazy-avl.test.tsx +20 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/__tests__/verification-contract.test.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/component-registry.generated.ts +516 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/MachinePanel.tsx +217 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/RuntimeDebugger.css +116 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/RuntimeDebugger.tsx +434 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/__tests__/MachinePanel.test.tsx +171 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/__tests__/RuntimeDebugger.test.tsx +142 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/hooks/useDebugData.ts +133 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/index.ts +15 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/EntitiesTab.tsx +132 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/EventDispatcherTab.tsx +261 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/EventFlowTab.tsx +138 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/GuardsPanel.tsx +127 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/ServerBridgeTab.tsx +128 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/TicksTab.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/TraitsTab.tsx +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/TransitionTimeline.tsx +183 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/debug/tabs/VerificationTab.tsx +106 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/detail-looks/DetailLookLayout.tsx +331 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/index.ts +104 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/DashboardGrid.tsx +109 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/DockLayout.tsx +508 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/MasterDetailLayout.tsx +100 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/SplitPane.tsx +162 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/TabbedContainer.tsx +81 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/DashboardGrid.responsive.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/DockLayout.compact.test.tsx +145 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/DockLayout.test.tsx +207 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/MasterDetailLayout.test.tsx +27 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/SplitPane.test.tsx +149 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/__tests__/TabbedContainer.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/layout/index.ts +11 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/trace-edit-focus.ts +77 -0
- package/templates/almadar-renderers-typescript/src/components/core/organisms/types.ts +101 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/AuthLayout.tsx +144 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/CounterTemplate.tsx +285 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/DashboardLayout.tsx +1042 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/GenericAppTemplate.tsx +88 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/AuthLayout.contrast.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/CounterTemplate.test.tsx +138 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.a11y.test.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.compact.test.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.drawer.test.tsx +101 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.fullBleed.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.sameHref.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.search.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.theme.test.tsx +60 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/__tests__/DashboardLayout.userMenu.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/index.ts +27 -0
- package/templates/almadar-renderers-typescript/src/components/core/templates/types.ts +35 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/ChoiceButton.tsx +94 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/ControlButton.tsx +153 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DialogueBubble.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawGroup.tsx +68 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawMesh.tsx +279 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawShape.tsx +448 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawSkinnedMesh.tsx +219 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawSprite.tsx +190 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/DrawText.tsx +59 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/GameAudioCue.tsx +74 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/GameAudioToggle.tsx +108 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/HealthBar.tsx +174 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/MiniMap.tsx +198 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/ScoreDisplay.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/StateIndicator.tsx +122 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/TimerDisplay.tsx +88 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/ChoiceButton.a11y.test.tsx +42 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/ControlButton.empty-payload.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/DialogueBubble.portrait.test.tsx +18 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/DrawSprite.unset-asset.test.ts +86 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/GameAudioToggle.loading.test.tsx +16 -0
- package/templates/almadar-renderers-typescript/src/components/game/atoms/__tests__/MiniMap.a11y.test.tsx +23 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/ActionPalette.tsx +70 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/ActionTile.tsx +97 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/Canvas.tsx +312 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/Canvas2D.tsx +1049 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/ControlGrid.tsx +238 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/DrawFxLayer.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/DrawShapeLayer.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/DrawSpriteLayer.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/DrawTextLayer.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/GameHud.tsx +209 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/GameMenu.tsx +166 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/SequenceBar.tsx +122 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/StatBadge.tsx +135 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/StateGraph.tsx +95 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/StateJsonView.tsx +90 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/TraitSlot.tsx +388 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/TraitStateViewer.tsx +379 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/ActionTile.contract.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas.cameraControls.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.a11y.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.background.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.editable.test.tsx +297 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.keymap.test.tsx +92 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.offscreen.test.tsx +88 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.reduced-motion.test.tsx +68 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/Canvas2D.shrink.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/ControlGrid.diagonals.test.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/GameMenu.overlay.test.tsx +47 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/StateGraph.test.tsx +55 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/TraitSlot.events.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/__tests__/TraitStateViewer.a11y.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/components/game/molecules/index.ts +138 -0
- package/templates/almadar-renderers-typescript/src/components/game/patterns.ts +24 -0
- package/templates/almadar-renderers-typescript/src/components/game/templates/GameShell.tsx +224 -0
- package/templates/almadar-renderers-typescript/src/components/game/templates/__tests__/GameShell.width.test.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/components/index.ts +17 -0
- package/templates/almadar-renderers-typescript/src/components/learning/atoms/LearningCanvas.tsx +329 -0
- package/templates/almadar-renderers-typescript/src/components/learning/atoms/__tests__/LearningCanvas.a11y.test.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/AlgoGraphCanvas.tsx +166 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/AlgorithmCanvas.tsx +225 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/BiologyCanvas.tsx +354 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/ChemistryCanvas.tsx +328 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/MathCanvas.tsx +311 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/PhysicsCanvas.tsx +450 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/__tests__/BiologyCanvas.theme.test.ts +17 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/__tests__/ChemistryCanvas.theme.test.ts +25 -0
- package/templates/almadar-renderers-typescript/src/components/learning/molecules/__tests__/PhysicsCanvas.theme.test.ts +25 -0
- package/templates/almadar-renderers-typescript/src/context/index.ts +60 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/AnimatedGraphic.tsx +262 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/AnimatedReveal.tsx +236 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Aside.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/AtlasImage.tsx +207 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Avatar.tsx +271 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Badge.tsx +166 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Box.tsx +425 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Button.tsx +351 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Card.tsx +221 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Center.tsx +67 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Checkbox.tsx +90 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/ConditionalWrapper.tsx +133 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/ConfettiEffect.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/DayCell.tsx +84 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Dialog.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Divider.tsx +113 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/FilterPill.tsx +167 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/FlipContainer.tsx +53 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/GameIcon.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Icon.tsx +189 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Image.tsx +118 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/InfiniteScrollSentinel.tsx +67 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Input.tsx +331 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Label.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/LawReferenceTooltip.tsx +201 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Overlay.tsx +59 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/PatternTile.tsx +60 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Presence.tsx +171 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/ProgressBar.tsx +282 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Radio.tsx +247 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/RangeSlider.tsx +250 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/SectionHeader.tsx +64 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Select.tsx +524 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Spacer.tsx +72 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Sparkline.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Spinner.tsx +83 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Stack.tsx +183 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/StatusDot.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Switch.tsx +117 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/TextHighlight.tsx +148 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Textarea.tsx +106 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/ThemeToggle.tsx +115 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/TimeSlotCell.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/TrendIndicator.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/TypewriterText.tsx +114 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/Typography.tsx +227 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/VideoEmbed.tsx +223 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Box.animateChanges.test.tsx +119 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Box.animateHeight.test.tsx +113 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Box.animateLayout.test.tsx +82 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Box.band.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Box.dir.test.tsx +16 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Button.href.test.tsx +153 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Button.secondary-contrast.test.tsx +26 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Icon.theme-stroke.test.tsx +123 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Image.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Input.label.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/PatternTile.geometry.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Presence.onexited.test.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Spinner.loader-mark.test.tsx +30 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Switch.action.test.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Switch.label.test.tsx +41 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Textarea.test.tsx +63 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/Typography.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/VideoEmbed.events.test.tsx +126 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/passthrough.test.tsx +63 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/__tests__/reduced-motion.test.tsx +217 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/fx.ts +261 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgBranch.tsx +149 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgConnection.tsx +80 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgFlow.tsx +91 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgGrid.tsx +78 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgLobe.tsx +92 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgMesh.tsx +109 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgMorph.tsx +242 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgNode.tsx +86 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgPulse.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgRing.tsx +94 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgShield.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/SvgStack.tsx +97 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/svg/index.ts +12 -0
- package/templates/almadar-renderers-typescript/src/core/atoms/types.ts +94 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/__tests__/create-translate-locale.test.ts +34 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/__tests__/useFieldDraft.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useDialogBehavior.ts +115 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useEventBus.ts +358 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useFieldDraft.ts +32 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useInfiniteScroll.ts +68 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useMediaQuery.ts +33 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/usePrefersReducedMotion.ts +8 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useTapReveal.ts +84 -0
- package/templates/almadar-renderers-typescript/src/core/hooks/useTranslate.ts +158 -0
- package/templates/almadar-renderers-typescript/src/core/index.ts +95 -0
- package/templates/almadar-renderers-typescript/src/core/lib/animate-changes.ts +231 -0
- package/templates/almadar-renderers-typescript/src/core/lib/atlasSlice.ts +142 -0
- package/templates/almadar-renderers-typescript/src/core/lib/band-shapes.json +7 -0
- package/templates/almadar-renderers-typescript/src/core/lib/bandShapes.ts +67 -0
- package/templates/almadar-renderers-typescript/src/core/lib/cn.ts +33 -0
- package/templates/almadar-renderers-typescript/src/core/lib/domPassthrough.ts +22 -0
- package/templates/almadar-renderers-typescript/src/core/lib/followHref.ts +20 -0
- package/templates/almadar-renderers-typescript/src/core/lib/format.ts +193 -0
- package/templates/almadar-renderers-typescript/src/core/lib/iconFamily.tsx +234 -0
- package/templates/almadar-renderers-typescript/src/core/lib/inlineText.ts +6 -0
- package/templates/almadar-renderers-typescript/src/core/lib/lucide-dynamic-icon-imports.d.ts +4 -0
- package/templates/almadar-renderers-typescript/src/core/lib/lucideIcons.tsx +102 -0
- package/templates/almadar-renderers-typescript/src/core/lib/motion-tokens.ts +42 -0
- package/templates/almadar-renderers-typescript/src/core/lib/navStack.ts +226 -0
- package/templates/almadar-renderers-typescript/src/core/lib/pendingDispatch.ts +163 -0
- package/templates/almadar-renderers-typescript/src/core/lib/pressable.ts +101 -0
- package/templates/almadar-renderers-typescript/src/core/lib/render-eval.ts +41 -0
- package/templates/almadar-renderers-typescript/src/core/lib/svgMotion.ts +19 -0
- package/templates/almadar-renderers-typescript/src/core/lib/theme-scale.ts +15 -0
- package/templates/almadar-renderers-typescript/src/core/lib/traitPresence.ts +125 -0
- package/templates/almadar-renderers-typescript/src/core/locales/ar.json +1276 -0
- package/templates/almadar-renderers-typescript/src/core/locales/en.json +1276 -0
- package/templates/almadar-renderers-typescript/src/core/locales/index.ts +54 -0
- package/templates/almadar-renderers-typescript/src/core/locales/sl.json +1276 -0
- package/templates/almadar-renderers-typescript/src/core/providers/EventBusProvider.tsx +344 -0
- package/templates/almadar-renderers-typescript/src/core/providers/NavStackContext.tsx +245 -0
- package/templates/almadar-renderers-typescript/src/core/providers/SurfaceContext.tsx +43 -0
- package/templates/almadar-renderers-typescript/src/core/providers/ThemeContext.tsx +404 -0
- package/templates/almadar-renderers-typescript/src/core/providers/TraitScopeProvider.tsx +134 -0
- package/templates/almadar-renderers-typescript/src/core/providers/builtInThemes.ts +70 -0
- package/templates/almadar-renderers-typescript/src/core/providers/navigation.tsx +431 -0
- package/templates/almadar-renderers-typescript/src/core/tokens/native-tokens.json +369 -0
- package/templates/almadar-renderers-typescript/src/core/types/event-bus-types.ts +77 -0
- package/templates/almadar-renderers-typescript/src/effects/on-device-handlers.ts +11 -0
- package/templates/almadar-renderers-typescript/src/effects/page-facts.ts +1 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/I18nProvider.document.test.tsx +33 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useCanvasDnd.test.tsx +195 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useCanvasDraggable.role.test.tsx +28 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useDialogBehavior.test.tsx +202 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useInlineTextEdit.test.tsx +152 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useMediaQuery.test.ts +23 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useOnScreen.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/usePageHead.test.tsx +98 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useTickVisibility.test.tsx +25 -0
- package/templates/almadar-renderers-typescript/src/hooks/__tests__/useUIEvents.claim.test.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useAwaitingSkeletonSource.ts +40 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useBrowserStore.ts +54 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useBusIngress.ts +153 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useCircuitKernel.ts +324 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useClientTicks.ts +35 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useEntityBindingSource.ts +75 -0
- package/templates/almadar-renderers-typescript/src/hooks/circuit/useSlotFlush.ts +235 -0
- package/templates/almadar-renderers-typescript/src/hooks/index.ts +210 -0
- package/templates/almadar-renderers-typescript/src/hooks/useAgentChat.ts +215 -0
- package/templates/almadar-renderers-typescript/src/hooks/useAlmadarDndCollision.ts +87 -0
- package/templates/almadar-renderers-typescript/src/hooks/useAuthContext.ts +36 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCamera.ts +209 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCanvasDnd.tsx +422 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCanvasGestures.ts +181 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCanvasTheme.ts +25 -0
- package/templates/almadar-renderers-typescript/src/hooks/useClientEffects.ts +240 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCodeAssist.ts +165 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCodeCompletion.ts +134 -0
- package/templates/almadar-renderers-typescript/src/hooks/useCompile.ts +80 -0
- package/templates/almadar-renderers-typescript/src/hooks/useContainerWidth.ts +16 -0
- package/templates/almadar-renderers-typescript/src/hooks/useDeepAgentGeneration.ts +166 -0
- package/templates/almadar-renderers-typescript/src/hooks/useDragReorder.ts +128 -0
- package/templates/almadar-renderers-typescript/src/hooks/useDraggable.ts +87 -0
- package/templates/almadar-renderers-typescript/src/hooks/useDropZone.ts +123 -0
- package/templates/almadar-renderers-typescript/src/hooks/useExtensions.ts +159 -0
- package/templates/almadar-renderers-typescript/src/hooks/useFileEditor.ts +201 -0
- package/templates/almadar-renderers-typescript/src/hooks/useFileSystem.ts +261 -0
- package/templates/almadar-renderers-typescript/src/hooks/useGameAudio.ts +411 -0
- package/templates/almadar-renderers-typescript/src/hooks/useGitHub.ts +152 -0
- package/templates/almadar-renderers-typescript/src/hooks/useImageCache.ts +78 -0
- package/templates/almadar-renderers-typescript/src/hooks/useInlineTextEdit.ts +102 -0
- package/templates/almadar-renderers-typescript/src/hooks/useKeyMapEvents.ts +40 -0
- package/templates/almadar-renderers-typescript/src/hooks/useKeyboardRouter.ts +138 -0
- package/templates/almadar-renderers-typescript/src/hooks/useLongPress.ts +83 -0
- package/templates/almadar-renderers-typescript/src/hooks/useOnScreen.ts +28 -0
- package/templates/almadar-renderers-typescript/src/hooks/usePageHead.ts +93 -0
- package/templates/almadar-renderers-typescript/src/hooks/usePreview.ts +186 -0
- package/templates/almadar-renderers-typescript/src/hooks/usePullToRefresh.ts +110 -0
- package/templates/almadar-renderers-typescript/src/hooks/useQuerySingleton.ts +181 -0
- package/templates/almadar-renderers-typescript/src/hooks/useRenderInterpolation.ts +123 -0
- package/templates/almadar-renderers-typescript/src/hooks/useRowActions.ts +67 -0
- package/templates/almadar-renderers-typescript/src/hooks/useSharedEntityStore.ts +180 -0
- package/templates/almadar-renderers-typescript/src/hooks/useSwipeGesture.ts +122 -0
- package/templates/almadar-renderers-typescript/src/hooks/useThemeColors.ts +30 -0
- package/templates/almadar-renderers-typescript/src/hooks/useTickVisibility.ts +12 -0
- package/templates/almadar-renderers-typescript/src/hooks/useTraitInspector.ts +109 -0
- package/templates/almadar-renderers-typescript/src/hooks/useTraitStateMachine.ts +481 -0
- package/templates/almadar-renderers-typescript/src/hooks/useUIEvents.ts +156 -0
- package/templates/almadar-renderers-typescript/src/hooks/useUISlots.ts +777 -0
- package/templates/almadar-renderers-typescript/src/hooks/useUnitSpriteAtlas.ts +157 -0
- package/templates/almadar-renderers-typescript/src/hooks/useValidation.ts +136 -0
- package/templates/almadar-renderers-typescript/src/index.ts +39 -0
- package/templates/almadar-renderers-typescript/src/kernel/engine.ts +17 -0
- package/templates/almadar-renderers-typescript/src/kernel/host.ts +9 -0
- package/templates/almadar-renderers-typescript/src/kernel/kv-web.ts +1 -0
- package/templates/almadar-renderers-typescript/src/kernel/os-fetch-port.ts +1 -0
- package/templates/almadar-renderers-typescript/src/kernel/tick-driver.ts +110 -0
- package/templates/almadar-renderers-typescript/src/lib/ThemedPortal.tsx +29 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/__snapshots__/iconNativeMap.test.ts.snap +239 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/atlasSlice.empty-atlas.test.ts +27 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-circuit-layout.test.ts +87 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-dependency-graph.test.ts +55 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-deployment-graph.test.ts +36 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-elk-layout-lazy.test.ts +44 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-elk-layout.test.ts +71 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-event-wires.test.ts +129 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-layered-graph.test.ts +66 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-play.test.ts +146 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-played-state.test.ts +37 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-system-graph.test.ts +70 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-theme.test.ts +84 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-trait-description.test.ts +106 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/avl-trait-flow.test.ts +100 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/bandShapes.test.ts +45 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/bundling.test.ts +45 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/canvas-view.test.ts +236 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/canvasTheme.test.ts +221 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/cn.test.ts +84 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/codeAssist.test.ts +74 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/codeDiagnostics.test.ts +100 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/codeIdentifiers.test.ts +33 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/compute-insertion-index.test.ts +54 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/consent-popup.test.ts +101 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/displayField.test.ts +40 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/entityRows.test.ts +17 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/event-sources.test.ts +51 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/followHref.focus.test.ts +41 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/followHref.test.ts +27 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/format.local-date.test.ts +55 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/format.locale-number.test.ts +45 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/gameFonts.test.ts +11 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/host-actions.test.ts +29 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/hostDispatchInView.test.ts +50 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/iconNativeMap.test.ts +77 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/inAppLinks.test.tsx +79 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/keyMapEvent.test.ts +103 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/lineDiff.test.ts +77 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/lucideIcons.test.tsx +44 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/mermaidTheme.test.ts +65 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/navStack.label.test.ts +64 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/pressable.test.tsx +100 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/propTypeMismatch.test.ts +70 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/recordDispatchVerdict.test.ts +109 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/render-ui-agreement.test.ts +56 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/selection-geometry.test.ts +290 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/skinning.test.ts +147 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/theme-color.test.ts +68 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/traitPresence.test.ts +107 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/verification-config-binding.test.ts +27 -0
- package/templates/almadar-renderers-typescript/src/lib/__tests__/verificationRegistry.event-source.test.ts +59 -0
- package/templates/almadar-renderers-typescript/src/lib/api-client.ts +136 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-annotations.ts +20 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-circuit-layout.ts +227 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-dependency-graph.ts +72 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-deployment-graph.ts +22 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-elk-layout.ts +694 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-event-wires.ts +19 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-flow-converter.ts +123 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-layered-graph.ts +121 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-layout.ts +110 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-play.ts +146 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-preview-converter.ts +1248 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-prop-decoders.ts +202 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-schema-parser.ts +532 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-theme.ts +231 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-trait-flow.ts +108 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-zoom-band.ts +56 -0
- package/templates/almadar-renderers-typescript/src/lib/avl-zoom-state.ts +233 -0
- package/templates/almadar-renderers-typescript/src/lib/boardEntity.ts +81 -0
- package/templates/almadar-renderers-typescript/src/lib/browser-row-sets.ts +39 -0
- package/templates/almadar-renderers-typescript/src/lib/bus-claim.ts +34 -0
- package/templates/almadar-renderers-typescript/src/lib/canvas-tools.ts +32 -0
- package/templates/almadar-renderers-typescript/src/lib/canvasTheme.ts +445 -0
- package/templates/almadar-renderers-typescript/src/lib/circuit-surface.ts +74 -0
- package/templates/almadar-renderers-typescript/src/lib/circuitVerificationObserver.ts +93 -0
- package/templates/almadar-renderers-typescript/src/lib/client-effect-executor.ts +223 -0
- package/templates/almadar-renderers-typescript/src/lib/codeAssist.ts +94 -0
- package/templates/almadar-renderers-typescript/src/lib/codeCompletion.ts +20 -0
- package/templates/almadar-renderers-typescript/src/lib/codeDiagnostics.ts +124 -0
- package/templates/almadar-renderers-typescript/src/lib/codeIdentifiers.ts +40 -0
- package/templates/almadar-renderers-typescript/src/lib/command-send-pump.ts +42 -0
- package/templates/almadar-renderers-typescript/src/lib/compute-insertion-index.ts +61 -0
- package/templates/almadar-renderers-typescript/src/lib/consent-popup.ts +45 -0
- package/templates/almadar-renderers-typescript/src/lib/content-annotations.ts +64 -0
- package/templates/almadar-renderers-typescript/src/lib/data-resolver.ts +199 -0
- package/templates/almadar-renderers-typescript/src/lib/debug.ts +157 -0
- package/templates/almadar-renderers-typescript/src/lib/debugRegistry.ts +110 -0
- package/templates/almadar-renderers-typescript/src/lib/debugUtils.ts +62 -0
- package/templates/almadar-renderers-typescript/src/lib/derive-edit-focus.ts +61 -0
- package/templates/almadar-renderers-typescript/src/lib/design-classes.ts +520 -0
- package/templates/almadar-renderers-typescript/src/lib/displayField.ts +50 -0
- package/templates/almadar-renderers-typescript/src/lib/doc-nav-classes.ts +21 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/__tests__/hitTest.test.ts +102 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/__tests__/themeDrawables.test.ts +76 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/contract.ts +151 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/hitTest.ts +188 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/orbital/OrbitalCanvas3D.css +562 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/orbital/OrbitalCanvas3D.tsx +279 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/orbital/OrbitalSceneCanvas.tsx +246 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/orbital/__tests__/OrbitalCanvas3D.error-keeps-canvas.test.tsx +96 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/orbital/sceneConfig.ts +56 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/paintDispatch.ts +118 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/projector.ts +78 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/registry.ts +18 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/scene3dTypes.ts +51 -0
- package/templates/almadar-renderers-typescript/src/lib/drawable/themeDrawables.ts +134 -0
- package/templates/almadar-renderers-typescript/src/lib/editorMotions.ts +544 -0
- package/templates/almadar-renderers-typescript/src/lib/editorUtils.tsx +335 -0
- package/templates/almadar-renderers-typescript/src/lib/element-edit-access.ts +50 -0
- package/templates/almadar-renderers-typescript/src/lib/embedded-traits.ts +9 -0
- package/templates/almadar-renderers-typescript/src/lib/enter.ts +58 -0
- package/templates/almadar-renderers-typescript/src/lib/entityDebug.ts +81 -0
- package/templates/almadar-renderers-typescript/src/lib/entityRows.ts +16 -0
- package/templates/almadar-renderers-typescript/src/lib/fn-form-lambda.ts +390 -0
- package/templates/almadar-renderers-typescript/src/lib/game.ts +185 -0
- package/templates/almadar-renderers-typescript/src/lib/gameFonts.ts +16 -0
- package/templates/almadar-renderers-typescript/src/lib/gameShared.ts +84 -0
- package/templates/almadar-renderers-typescript/src/lib/getNestedValue.ts +36 -0
- package/templates/almadar-renderers-typescript/src/lib/graphViewLayouts.ts +315 -0
- package/templates/almadar-renderers-typescript/src/lib/groupRows.ts +25 -0
- package/templates/almadar-renderers-typescript/src/lib/guardRegistry.ts +81 -0
- package/templates/almadar-renderers-typescript/src/lib/host-actions.ts +117 -0
- package/templates/almadar-renderers-typescript/src/lib/hostDispatchInView.ts +18 -0
- package/templates/almadar-renderers-typescript/src/lib/iconNativeMap.json +1182 -0
- package/templates/almadar-renderers-typescript/src/lib/iconNativeMap.ts +58 -0
- package/templates/almadar-renderers-typescript/src/lib/imageCache.ts +93 -0
- package/templates/almadar-renderers-typescript/src/lib/inAppLinks.tsx +81 -0
- package/templates/almadar-renderers-typescript/src/lib/index.ts +74 -0
- package/templates/almadar-renderers-typescript/src/lib/init.ts +80 -0
- package/templates/almadar-renderers-typescript/src/lib/isometric.ts +254 -0
- package/templates/almadar-renderers-typescript/src/lib/isometricTypes.ts +157 -0
- package/templates/almadar-renderers-typescript/src/lib/item-move.ts +141 -0
- package/templates/almadar-renderers-typescript/src/lib/jazari/index.ts +18 -0
- package/templates/almadar-renderers-typescript/src/lib/jazari/layout.ts +297 -0
- package/templates/almadar-renderers-typescript/src/lib/jazari/svg-paths.ts +200 -0
- package/templates/almadar-renderers-typescript/src/lib/jazari/types.ts +97 -0
- package/templates/almadar-renderers-typescript/src/lib/kernel-client-lazy.ts +46 -0
- package/templates/almadar-renderers-typescript/src/lib/kernel-client.ts +751 -0
- package/templates/almadar-renderers-typescript/src/lib/kernel-frames.ts +2 -0
- package/templates/almadar-renderers-typescript/src/lib/kernel-schema.ts +12 -0
- package/templates/almadar-renderers-typescript/src/lib/kernel-wire.ts +96 -0
- package/templates/almadar-renderers-typescript/src/lib/keyMapEvent.ts +29 -0
- package/templates/almadar-renderers-typescript/src/lib/lessonSegmentUtils.ts +47 -0
- package/templates/almadar-renderers-typescript/src/lib/lineDiff.ts +108 -0
- package/templates/almadar-renderers-typescript/src/lib/makeAsset.ts +39 -0
- package/templates/almadar-renderers-typescript/src/lib/mechanics.ts +55 -0
- package/templates/almadar-renderers-typescript/src/lib/mermaidTheme.ts +103 -0
- package/templates/almadar-renderers-typescript/src/lib/orbitalsByTrait.ts +10 -0
- package/templates/almadar-renderers-typescript/src/lib/painter2d.ts +138 -0
- package/templates/almadar-renderers-typescript/src/lib/parseContentSegments.ts +127 -0
- package/templates/almadar-renderers-typescript/src/lib/parseLessonSegments.ts +135 -0
- package/templates/almadar-renderers-typescript/src/lib/pattern-resolver.ts +212 -0
- package/templates/almadar-renderers-typescript/src/lib/perf.ts +59 -0
- package/templates/almadar-renderers-typescript/src/lib/physicsPresets.ts +11 -0
- package/templates/almadar-renderers-typescript/src/lib/physicsTypes.ts +39 -0
- package/templates/almadar-renderers-typescript/src/lib/portalRoot.ts +19 -0
- package/templates/almadar-renderers-typescript/src/lib/propTypeMismatch.ts +77 -0
- package/templates/almadar-renderers-typescript/src/lib/puzzleObject.ts +72 -0
- package/templates/almadar-renderers-typescript/src/lib/reconcile-slot-content.ts +150 -0
- package/templates/almadar-renderers-typescript/src/lib/relationLabel.ts +69 -0
- package/templates/almadar-renderers-typescript/src/lib/resolve-direct-children.ts +45 -0
- package/templates/almadar-renderers-typescript/src/lib/resolve-pattern-config.ts +150 -0
- package/templates/almadar-renderers-typescript/src/lib/resolve-render-bindings.ts +312 -0
- package/templates/almadar-renderers-typescript/src/lib/row-action-when.ts +203 -0
- package/templates/almadar-renderers-typescript/src/lib/row-set-resolver.ts +104 -0
- package/templates/almadar-renderers-typescript/src/lib/rows-changed.ts +36 -0
- package/templates/almadar-renderers-typescript/src/lib/selection-geometry.ts +320 -0
- package/templates/almadar-renderers-typescript/src/lib/skinning.ts +154 -0
- package/templates/almadar-renderers-typescript/src/lib/slot-definitions.ts +156 -0
- package/templates/almadar-renderers-typescript/src/lib/slotContained.ts +12 -0
- package/templates/almadar-renderers-typescript/src/lib/spriteAnimation.ts +261 -0
- package/templates/almadar-renderers-typescript/src/lib/spriteAnimationTypes.ts +88 -0
- package/templates/almadar-renderers-typescript/src/lib/spriteSheetConstants.ts +27 -0
- package/templates/almadar-renderers-typescript/src/lib/store-row-set-resolver.ts +30 -0
- package/templates/almadar-renderers-typescript/src/lib/theme-color.ts +132 -0
- package/templates/almadar-renderers-typescript/src/lib/themeTokens.ts +507 -0
- package/templates/almadar-renderers-typescript/src/lib/tickRegistry.ts +86 -0
- package/templates/almadar-renderers-typescript/src/lib/trait-binding-resolver.ts +119 -0
- package/templates/almadar-renderers-typescript/src/lib/traitRegistry.ts +84 -0
- package/templates/almadar-renderers-typescript/src/lib/verificationRegistry.ts +738 -0
- package/templates/almadar-renderers-typescript/src/lib/webPainter2d.ts +234 -0
- package/templates/almadar-renderers-typescript/src/lib/wire-validation.ts +79 -0
- package/templates/almadar-renderers-typescript/src/lib/wrapCallbackForEvent.ts +7 -0
- package/templates/almadar-renderers-typescript/src/preview/OrbPreview.tsx +1056 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.arbitrary-classes.test.tsx +45 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.browser-stored-entity.test.tsx +99 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.embedded-scope.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.fit-content.test.tsx +46 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.host-runs-program.test.tsx +186 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.kernel-loader.test.tsx +159 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.mount-error.test.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.navigates-to.test.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.notify-toast.test.tsx +61 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.page-access.test.tsx +128 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.page-alternates.test.tsx +67 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.page-circuit.test.tsx +66 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.page-frame.test.tsx +65 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.paused-ticks.test.tsx +59 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.preview-theme.test.ts +32 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.prop-type-error.test.tsx +49 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.sign-out.test.tsx +69 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.stateless-cross-orbital-fanout.test.tsx +127 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.tick-browser-store.test.tsx +110 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.tick-visible.test.tsx +95 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/OrbPreview.topology-before-dispatch.test.tsx +77 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/fitContent.test.ts +58 -0
- package/templates/almadar-renderers-typescript/src/preview/__tests__/fixtures/std-calendar.website-catalog.json +2438 -0
- package/templates/almadar-renderers-typescript/src/preview/fitContent.ts +65 -0
- package/templates/almadar-renderers-typescript/src/preview/index.ts +58 -0
- package/templates/almadar-renderers-typescript/src/providers/ArbitraryClassCompiler.tsx +76 -0
- package/templates/almadar-renderers-typescript/src/providers/AwaitingSkeletonContext.tsx +37 -0
- package/templates/almadar-renderers-typescript/src/providers/CurrentPagePathContext.tsx +25 -0
- package/templates/almadar-renderers-typescript/src/providers/DesignThemeContext.tsx +36 -0
- package/templates/almadar-renderers-typescript/src/providers/EditorFocusContext.tsx +38 -0
- package/templates/almadar-renderers-typescript/src/providers/EntityBindingContext.tsx +70 -0
- package/templates/almadar-renderers-typescript/src/providers/EntitySchemaContext.tsx +51 -0
- package/templates/almadar-renderers-typescript/src/providers/GameAudioProvider.tsx +111 -0
- package/templates/almadar-renderers-typescript/src/providers/KernelEngineContext.tsx +83 -0
- package/templates/almadar-renderers-typescript/src/providers/OrbitalProvider.tsx +188 -0
- package/templates/almadar-renderers-typescript/src/providers/OrbitalThemeProvider.tsx +119 -0
- package/templates/almadar-renderers-typescript/src/providers/PageAccessHost.tsx +55 -0
- package/templates/almadar-renderers-typescript/src/providers/RenderSlotContext.tsx +34 -0
- package/templates/almadar-renderers-typescript/src/providers/RowSetResolverContext.tsx +32 -0
- package/templates/almadar-renderers-typescript/src/providers/SelectionProvider.tsx +239 -0
- package/templates/almadar-renderers-typescript/src/providers/ServerBridge.tsx +188 -0
- package/templates/almadar-renderers-typescript/src/providers/UISlotContext.tsx +148 -0
- package/templates/almadar-renderers-typescript/src/providers/UserContext.tsx +238 -0
- package/templates/almadar-renderers-typescript/src/providers/VerificationProvider.tsx +330 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/ArbitraryClassCompiler.test.tsx +109 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/NavStackContext.navItems.test.tsx +50 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/OrbitalThemeProvider.override.test.tsx +97 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/OrbitalThemeProvider.test.tsx +67 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/PageAccessHost.test.tsx +103 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/SystemNavigate.test.tsx +73 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/ThemedPortal.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/TraitScopeProvider.presence.test.tsx +47 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/VerificationProvider.mapServerEffectResults.test.ts +60 -0
- package/templates/almadar-renderers-typescript/src/providers/__tests__/barrel-completeness.test.ts +36 -0
- package/templates/almadar-renderers-typescript/src/providers/index.ts +133 -0
- package/templates/almadar-renderers-typescript/src/renderer/index.ts +122 -0
- package/templates/almadar-renderers-typescript/src/runtime/evaluation/browser-store-transport.ts +257 -0
- package/templates/almadar-renderers-typescript/src/runtime/evaluation/local-store-transport.ts +8 -0
- package/templates/almadar-renderers-typescript/src/runtime/evaluation/native-memory.ts +13 -0
- package/templates/almadar-renderers-typescript/src/runtime/evaluation/persisted-memory.ts +76 -0
- package/templates/almadar-renderers-typescript/src/runtime/index.ts +27 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/contract-errors.ts +28 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/embedded-traits.ts +110 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/index.ts +72 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/orbitalsByTrait.ts +83 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/perf.ts +222 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/slots.ts +266 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/verification.ts +169 -0
- package/templates/almadar-renderers-typescript/src/runtime/ui/wrapCallbackForEvent.ts +33 -0
- package/templates/almadar-renderers-typescript/src/ssr/index.ts +49 -0
- package/templates/almadar-renderers-typescript/src/storage/browser/index.ts +1 -0
- package/templates/almadar-renderers-typescript/src/test-support/circuit.ts +14 -0
- package/templates/almadar-renderers-typescript/src/test-support/index.ts +4 -0
- package/templates/almadar-renderers-typescript/src/test-support/kernel-engine.ts +86 -0
- package/templates/almadar-renderers-typescript/src/test-support/lolo-program.ts +68 -0
- package/templates/almadar-renderers-typescript/src/test-support/stateless-kernel.ts +22 -0
- package/templates/almadar-renderers-typescript/src/test-support/stub-kernel-module.ts +47 -0
- package/templates/almadar-renderers-typescript/src/types/assets.d.ts +19 -0
- package/templates/almadar-renderers-typescript/src/types/emojilib.d.ts +16 -0
- package/templates/almadar-renderers-typescript/src/types/index.ts +11 -0
- package/templates/almadar-renderers-typescript/src/types/react-syntax-highlighter.d.ts +204 -0
- package/templates/almadar-renderers-typescript/src/types/renderer-types.ts +178 -0
- package/templates/almadar-renderers-typescript/src/types/slot-host.ts +62 -0
- package/templates/almadar-renderers-typescript/src/types/slot-types.ts +67 -0
- package/templates/almadar-renderers-typescript/src/types/testing.d.ts +9 -0
- package/templates/almadar-renderers-typescript/src/types/vite-env.d.ts +12 -0
- package/templates/almadar-renderers-typescript/tailwind-compile.cjs +29 -0
- package/templates/almadar-renderers-typescript/tailwind-preset.cjs +1020 -0
- package/templates/almadar-renderers-typescript/tailwind.config.js +27 -0
- package/templates/almadar-renderers-typescript/test/bundled-browser-store.test.ts +21 -0
- package/templates/almadar-renderers-typescript/test/channel-transport.test.ts +163 -0
- package/templates/almadar-renderers-typescript/test/circuit-store.test.ts +120 -0
- package/templates/almadar-renderers-typescript/test/declared-input-dispatch.test.ts +65 -0
- package/templates/almadar-renderers-typescript/test/ensure-use-client.test.ts +46 -0
- package/templates/almadar-renderers-typescript/test/event-transport.resolve-rows.test.ts +29 -0
- package/templates/almadar-renderers-typescript/test/event-transport.test.ts +455 -0
- package/templates/almadar-renderers-typescript/test/fixtures/credentials-source.json +82 -0
- package/templates/almadar-renderers-typescript/test/fixtures/kv-trace.json +47 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-guarded.lolo +26 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-guarded.orb.json +546 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-opening.lolo +41 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-opening.orb.json +703 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-view.lolo +71 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/canvas-view.orb.json +1019 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/event-wires.lolo +33 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/event-wires.orb.json +684 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/stat-card.lolo +23 -0
- package/templates/almadar-renderers-typescript/test/fixtures/programs/wire-emitter.lolo +24 -0
- package/templates/almadar-renderers-typescript/test/frame-applier.test.ts +148 -0
- package/templates/almadar-renderers-typescript/test/helpers/persistence.ts +70 -0
- package/templates/almadar-renderers-typescript/test/http-transport-behavior.test.ts +48 -0
- package/templates/almadar-renderers-typescript/test/http-transport-compression.test.ts +76 -0
- package/templates/almadar-renderers-typescript/test/in-flight-calls.test.ts +43 -0
- package/templates/almadar-renderers-typescript/test/kernel-client-gpu.test.ts +101 -0
- package/templates/almadar-renderers-typescript/test/kernel-client-reseed.test.ts +238 -0
- package/templates/almadar-renderers-typescript/test/kernel-decode-progress.test.ts +76 -0
- package/templates/almadar-renderers-typescript/test/kernel-decode-request.test.ts +81 -0
- package/templates/almadar-renderers-typescript/test/kernel-engine-resolve-rows.test.ts +182 -0
- package/templates/almadar-renderers-typescript/test/kernel-host-substrate.test.ts +164 -0
- package/templates/almadar-renderers-typescript/test/kernel-host-tabs.test.ts +166 -0
- package/templates/almadar-renderers-typescript/test/kernel-host-write-declined.test.ts +21 -0
- package/templates/almadar-renderers-typescript/test/kernel-native-host-parity.test.ts +74 -0
- package/templates/almadar-renderers-typescript/test/lazy-page-loader.test.ts +62 -0
- package/templates/almadar-renderers-typescript/test/local-fold.test.ts +110 -0
- package/templates/almadar-renderers-typescript/test/nav-items-label.test.ts +41 -0
- package/templates/almadar-renderers-typescript/test/page-facts-runtime-boundary.test.ts +40 -0
- package/templates/almadar-renderers-typescript/test/relation-label.test.ts +32 -0
- package/templates/almadar-renderers-typescript/test/runtime/persisted-memory.test.ts +65 -0
- package/templates/almadar-renderers-typescript/test/runtime/routed-persistence.test.ts +61 -0
- package/templates/almadar-renderers-typescript/test/runtime/ui/contract.test.ts +91 -0
- package/templates/almadar-renderers-typescript/test/runtime/ui/orbitalsByTrait.test.ts +50 -0
- package/templates/almadar-renderers-typescript/test/runtime/ui/slots.test.ts +30 -0
- package/templates/almadar-renderers-typescript/test/runtime/ui/wrapCallbackForEvent.test.ts +29 -0
- package/templates/almadar-renderers-typescript/test/runtime-emit-stamp-parity.test.ts +60 -0
- package/templates/almadar-renderers-typescript/test/tab-client-id.test.ts +24 -0
- package/templates/almadar-renderers-typescript/test/tick-driver.test.ts +126 -0
- package/templates/almadar-renderers-typescript/test/ui/CodeBlock.editable.test.tsx +178 -0
- package/templates/almadar-renderers-typescript/test/ui/CodeBlock.modal-keys.test.tsx +90 -0
- package/templates/almadar-renderers-typescript/test/ui/CodeBlock.scoped-mode.test.tsx +54 -0
- package/templates/almadar-renderers-typescript/test/ui/a11y-optin-A1.test.tsx +83 -0
- package/templates/almadar-renderers-typescript/test/ui/a11y-optin-A2.test.tsx +90 -0
- package/templates/almadar-renderers-typescript/test/ui/a11y-optin-B.test.tsx +57 -0
- package/templates/almadar-renderers-typescript/test/ui/a11y-optin-C.test.tsx +80 -0
- package/templates/almadar-renderers-typescript/test/ui/accent-text-contrast.test.tsx +60 -0
- package/templates/almadar-renderers-typescript/test/ui/agent-chat-feed.test.tsx +85 -0
- package/templates/almadar-renderers-typescript/test/ui/arbitrary-classes.test.ts +95 -0
- package/templates/almadar-renderers-typescript/test/ui/avl-prop-decoders.test.ts +48 -0
- package/templates/almadar-renderers-typescript/test/ui/awaiting-skeleton-slot.test.tsx +190 -0
- package/templates/almadar-renderers-typescript/test/ui/axe-helper.test.tsx +19 -0
- package/templates/almadar-renderers-typescript/test/ui/axe.ts +19 -0
- package/templates/almadar-renderers-typescript/test/ui/bus-ingress-embedded-route.test.tsx +105 -0
- package/templates/almadar-renderers-typescript/test/ui/bus-ingress-settle.test.ts +163 -0
- package/templates/almadar-renderers-typescript/test/ui/button-focused-disabled.test.tsx +67 -0
- package/templates/almadar-renderers-typescript/test/ui/calendar-grid-slot-coverage.test.ts +170 -0
- package/templates/almadar-renderers-typescript/test/ui/callsite-capture-keeps-state.test.ts +116 -0
- package/templates/almadar-renderers-typescript/test/ui/callsite-capture-server-frame-wins.test.ts +130 -0
- package/templates/almadar-renderers-typescript/test/ui/callsite-capture-walk-through.test.ts +85 -0
- package/templates/almadar-renderers-typescript/test/ui/callsite-child-deferred-mount.test.ts +130 -0
- package/templates/almadar-renderers-typescript/test/ui/camera-zoom-clamp.test.ts +43 -0
- package/templates/almadar-renderers-typescript/test/ui/carousel-feed.test.tsx +207 -0
- package/templates/almadar-renderers-typescript/test/ui/chat-bar-autogrow.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/test/ui/circuit-kernel-fanout.test.ts +99 -0
- package/templates/almadar-renderers-typescript/test/ui/circuit-kernel-forwards-hooks.test.ts +86 -0
- package/templates/almadar-renderers-typescript/test/ui/circuit-kernel-local-leg-messages.test.tsx +81 -0
- package/templates/almadar-renderers-typescript/test/ui/circuit-kernel-records-server-response.test.ts +68 -0
- package/templates/almadar-renderers-typescript/test/ui/circuit-kernel-unmount.test.ts +143 -0
- package/templates/almadar-renderers-typescript/test/ui/command-send-pump.test.ts +96 -0
- package/templates/almadar-renderers-typescript/test/ui/component-contrast-page-ground.test.ts +41 -0
- package/templates/almadar-renderers-typescript/test/ui/components-barrel-exports-patterns.test.ts +20 -0
- package/templates/almadar-renderers-typescript/test/ui/compute-insertion-index.test.ts +77 -0
- package/templates/almadar-renderers-typescript/test/ui/content-surface-contract.test.ts +65 -0
- package/templates/almadar-renderers-typescript/test/ui/content-surface.test.tsx +79 -0
- package/templates/almadar-renderers-typescript/test/ui/dashboard-cross-trait.test.ts +162 -0
- package/templates/almadar-renderers-typescript/test/ui/data-grid-list-render-item-prop.test.tsx +54 -0
- package/templates/almadar-renderers-typescript/test/ui/default-names.test.tsx +48 -0
- package/templates/almadar-renderers-typescript/test/ui/derive-edit-focus.test.ts +92 -0
- package/templates/almadar-renderers-typescript/test/ui/design-classes.test.ts +322 -0
- package/templates/almadar-renderers-typescript/test/ui/dialogue-bubble-slot.test.tsx +180 -0
- package/templates/almadar-renderers-typescript/test/ui/dnd-collision-innermost.test.ts +53 -0
- package/templates/almadar-renderers-typescript/test/ui/dock-slot.test.tsx +164 -0
- package/templates/almadar-renderers-typescript/test/ui/drawing-surfaces.literal-ban.test.ts +87 -0
- package/templates/almadar-renderers-typescript/test/ui/editorMotions.test.ts +657 -0
- package/templates/almadar-renderers-typescript/test/ui/element-enter.test.tsx +95 -0
- package/templates/almadar-renderers-typescript/test/ui/embedded-emit-bubble.test.ts +140 -0
- package/templates/almadar-renderers-typescript/test/ui/embedded-trait-null-clears.test.ts +49 -0
- package/templates/almadar-renderers-typescript/test/ui/entity-binding-source-snapshot.test.ts +89 -0
- package/templates/almadar-renderers-typescript/test/ui/event-bus-cross-chunk.test.ts +95 -0
- package/templates/almadar-renderers-typescript/test/ui/fn-form-lambda-marker.test.ts +84 -0
- package/templates/almadar-renderers-typescript/test/ui/fn-form-lambda-row-data.test.ts +35 -0
- package/templates/almadar-renderers-typescript/test/ui/form-conditions.test.tsx +116 -0
- package/templates/almadar-renderers-typescript/test/ui/game-keyboard-routing.test.ts +146 -0
- package/templates/almadar-renderers-typescript/test/ui/graphViewLayouts.test.ts +165 -0
- package/templates/almadar-renderers-typescript/test/ui/hardcoded-text.test.ts +67 -0
- package/templates/almadar-renderers-typescript/test/ui/header-logo.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/test/ui/heading-voice-discipline.test.ts +80 -0
- package/templates/almadar-renderers-typescript/test/ui/helpers/composed-program.ts +8 -0
- package/templates/almadar-renderers-typescript/test/ui/helpers/kernel-engine-default.setup.ts +10 -0
- package/templates/almadar-renderers-typescript/test/ui/helpers/kernel-evaluator.setup.ts +14 -0
- package/templates/almadar-renderers-typescript/test/ui/helpers/package-root.ts +29 -0
- package/templates/almadar-renderers-typescript/test/ui/helpers/traced.ts +17 -0
- package/templates/almadar-renderers-typescript/test/ui/inline-text-markers.test.tsx +38 -0
- package/templates/almadar-renderers-typescript/test/ui/kernel-engine-parity.test.tsx +43 -0
- package/templates/almadar-renderers-typescript/test/ui/kernel-engine.test.tsx +497 -0
- package/templates/almadar-renderers-typescript/test/ui/listen-source-routing.test.ts +202 -0
- package/templates/almadar-renderers-typescript/test/ui/locale-keys.test.ts +65 -0
- package/templates/almadar-renderers-typescript/test/ui/map-view-token.test.ts +31 -0
- package/templates/almadar-renderers-typescript/test/ui/markdown-data-image.test.tsx +41 -0
- package/templates/almadar-renderers-typescript/test/ui/menu-trigger-single-control.test.tsx +70 -0
- package/templates/almadar-renderers-typescript/test/ui/motion-tokens.scoped.test.ts +31 -0
- package/templates/almadar-renderers-typescript/test/ui/mount-lifecycle-once.test.ts +240 -0
- package/templates/almadar-renderers-typescript/test/ui/multi-source-slot-scope.test.ts +88 -0
- package/templates/almadar-renderers-typescript/test/ui/navigation.route-precedence.test.ts +148 -0
- package/templates/almadar-renderers-typescript/test/ui/no-runtime-require.test.ts +35 -0
- package/templates/almadar-renderers-typescript/test/ui/off-page-trait-effects.test.ts +154 -0
- package/templates/almadar-renderers-typescript/test/ui/orbitalsByTrait.test.ts +61 -0
- package/templates/almadar-renderers-typescript/test/ui/package/index-css-react-flow.test.ts +28 -0
- package/templates/almadar-renderers-typescript/test/ui/package/size-containers.test.ts +49 -0
- package/templates/almadar-renderers-typescript/test/ui/pattern-conformance.test.tsx +230 -0
- package/templates/almadar-renderers-typescript/test/ui/pending-action.test.tsx +182 -0
- package/templates/almadar-renderers-typescript/test/ui/pressable-surfaces.test.tsx +69 -0
- package/templates/almadar-renderers-typescript/test/ui/pressable-sweep.test.tsx +152 -0
- package/templates/almadar-renderers-typescript/test/ui/program-stamp.test.ts +22 -0
- package/templates/almadar-renderers-typescript/test/ui/reconcile-slot-content.test.ts +103 -0
- package/templates/almadar-renderers-typescript/test/ui/render-eval-no-kernel.test.tsx +36 -0
- package/templates/almadar-renderers-typescript/test/ui/resolve-direct-children.test.ts +111 -0
- package/templates/almadar-renderers-typescript/test/ui/resolve-render-bindings.config-trait-ref.test.ts +30 -0
- package/templates/almadar-renderers-typescript/test/ui/resolve-render-bindings.render-nodes.test.ts +43 -0
- package/templates/almadar-renderers-typescript/test/ui/resolve-render-bindings.row-set.test.ts +155 -0
- package/templates/almadar-renderers-typescript/test/ui/resolve-render-bindings.test.ts +188 -0
- package/templates/almadar-renderers-typescript/test/ui/row-action-payload.test.ts +51 -0
- package/templates/almadar-renderers-typescript/test/ui/row-action-route.test.ts +54 -0
- package/templates/almadar-renderers-typescript/test/ui/row-action-when-components.test.tsx +188 -0
- package/templates/almadar-renderers-typescript/test/ui/row-action-when.test.ts +180 -0
- package/templates/almadar-renderers-typescript/test/ui/row-set-remote.test.ts +73 -0
- package/templates/almadar-renderers-typescript/test/ui/row-set-wiring.test.ts +108 -0
- package/templates/almadar-renderers-typescript/test/ui/scroll-region-keyboard.test.tsx +40 -0
- package/templates/almadar-renderers-typescript/test/ui/server-bridge-auth.test.tsx +121 -0
- package/templates/almadar-renderers-typescript/test/ui/server-bridge-event-transport.test.tsx +80 -0
- package/templates/almadar-renderers-typescript/test/ui/server-push-paints.test.ts +223 -0
- package/templates/almadar-renderers-typescript/test/ui/sharedEntityStore.test.ts +88 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-embedded-portal.test.ts +85 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-host-ask.test.ts +78 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-identity.test.tsx +87 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-render-provenance.test.ts +83 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-rollback.test.tsx +81 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-rows-changed.test.tsx +42 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-flush-sexpr-props.test.ts +56 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-host-manifest.test.ts +54 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-motion.test.tsx +188 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-no-field-enrichment.test.tsx +52 -0
- package/templates/almadar-renderers-typescript/test/ui/slot-vocabulary-coverage.test.ts +57 -0
- package/templates/almadar-renderers-typescript/test/ui/sortRows.test.ts +65 -0
- package/templates/almadar-renderers-typescript/test/ui/sprite-hit-test.test.ts +64 -0
- package/templates/almadar-renderers-typescript/test/ui/svg-motion-classes.test.ts +63 -0
- package/templates/almadar-renderers-typescript/test/ui/table-sort-a11y.test.tsx +42 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-compile.test.ts +45 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-preset-band-children.test.ts +37 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-preset-design-classes.test.ts +17 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-preset-interactive-border.test.ts +32 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-preset-marquee-rtl.test.ts +40 -0
- package/templates/almadar-renderers-typescript/test/ui/tailwind-preset-split.test.tsx +55 -0
- package/templates/almadar-renderers-typescript/test/ui/tests-never-climb-to-siblings.test.ts +34 -0
- package/templates/almadar-renderers-typescript/test/ui/theme-head.test.ts +33 -0
- package/templates/almadar-renderers-typescript/test/ui/theme-root-color-alias.test.ts +31 -0
- package/templates/almadar-renderers-typescript/test/ui/theme-scope-mode.test.tsx +82 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.band-axes.test.ts +38 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.diagram-axes.test.ts +114 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.illustration-axis.test.ts +34 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.range-axes.test.ts +133 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.skin-axes.test.ts +302 -0
- package/templates/almadar-renderers-typescript/test/ui/themeTokens.test.ts +116 -0
- package/templates/almadar-renderers-typescript/test/ui/trait-binding-slot-cleanup.test.ts +225 -0
- package/templates/almadar-renderers-typescript/test/ui/ui-slot-component-fallback.test.tsx +171 -0
- package/templates/almadar-renderers-typescript/test/ui/ui-slots-trait-frame-portal.test.ts +55 -0
- package/templates/almadar-renderers-typescript/test/ui/useEditorCapabilities.test.tsx +401 -0
- package/templates/almadar-renderers-typescript/test/ui/useKeyboardRouter.test.tsx +228 -0
- package/templates/almadar-renderers-typescript/test/ui/web-parity-defects.test.tsx +75 -0
- package/templates/almadar-renderers-typescript/themes/_base.css +451 -0
- package/templates/almadar-renderers-typescript/themes/_contract.md +307 -0
- package/templates/almadar-renderers-typescript/themes/_fonts-kenney.css +11 -0
- package/templates/almadar-renderers-typescript/themes/_fonts.css +12 -0
- package/templates/almadar-renderers-typescript/themes/_foundation.css +105 -0
- package/templates/almadar-renderers-typescript/themes/_head.css +22 -0
- package/templates/almadar-renderers-typescript/themes/_presets.css +67 -0
- package/templates/almadar-renderers-typescript/themes/almadar-heritage.css +455 -0
- package/templates/almadar-renderers-typescript/themes/almadar-website.css +269 -0
- package/templates/almadar-renderers-typescript/themes/almadar.css +269 -0
- package/templates/almadar-renderers-typescript/themes/aqua.css +455 -0
- package/templates/almadar-renderers-typescript/themes/arabesque.css +459 -0
- package/templates/almadar-renderers-typescript/themes/art-deco.css +457 -0
- package/templates/almadar-renderers-typescript/themes/art-nouveau.css +459 -0
- package/templates/almadar-renderers-typescript/themes/atelier.css +463 -0
- package/templates/almadar-renderers-typescript/themes/bauhaus.css +461 -0
- package/templates/almadar-renderers-typescript/themes/bloomberg-dense.css +463 -0
- package/templates/almadar-renderers-typescript/themes/blueprint.css +457 -0
- package/templates/almadar-renderers-typescript/themes/clay.css +449 -0
- package/templates/almadar-renderers-typescript/themes/comic.css +453 -0
- package/templates/almadar-renderers-typescript/themes/constructivist.css +457 -0
- package/templates/almadar-renderers-typescript/themes/corporate.css +449 -0
- package/templates/almadar-renderers-typescript/themes/cyberpunk.css +453 -0
- package/templates/almadar-renderers-typescript/themes/frutiger-aero.css +458 -0
- package/templates/almadar-renderers-typescript/themes/game-adventure.css +201 -0
- package/templates/almadar-renderers-typescript/themes/game-rpg.css +203 -0
- package/templates/almadar-renderers-typescript/themes/game-sci-fi.css +201 -0
- package/templates/almadar-renderers-typescript/themes/game-ui-pack.css +200 -0
- package/templates/almadar-renderers-typescript/themes/gazette.css +449 -0
- package/templates/almadar-renderers-typescript/themes/glass.css +457 -0
- package/templates/almadar-renderers-typescript/themes/gothic.css +453 -0
- package/templates/almadar-renderers-typescript/themes/index.css +21 -0
- package/templates/almadar-renderers-typescript/themes/ink-wash.css +459 -0
- package/templates/almadar-renderers-typescript/themes/kawaii.css +459 -0
- package/templates/almadar-renderers-typescript/themes/kflow.css +310 -0
- package/templates/almadar-renderers-typescript/themes/kiosk.css +449 -0
- package/templates/almadar-renderers-typescript/themes/linear-clean.css +463 -0
- package/templates/almadar-renderers-typescript/themes/luxury.css +451 -0
- package/templates/almadar-renderers-typescript/themes/mac-classic.css +455 -0
- package/templates/almadar-renderers-typescript/themes/material.css +463 -0
- package/templates/almadar-renderers-typescript/themes/memphis.css +453 -0
- package/templates/almadar-renderers-typescript/themes/mid-century.css +455 -0
- package/templates/almadar-renderers-typescript/themes/minimalist.css +449 -0
- package/templates/almadar-renderers-typescript/themes/mudcloth.css +459 -0
- package/templates/almadar-renderers-typescript/themes/nata.css +310 -0
- package/templates/almadar-renderers-typescript/themes/neon.css +453 -0
- package/templates/almadar-renderers-typescript/themes/neumorphic.css +451 -0
- package/templates/almadar-renderers-typescript/themes/newsprint.css +455 -0
- package/templates/almadar-renderers-typescript/themes/notion-editorial.css +463 -0
- package/templates/almadar-renderers-typescript/themes/orb.css +465 -0
- package/templates/almadar-renderers-typescript/themes/pixel.css +449 -0
- package/templates/almadar-renderers-typescript/themes/prism.css +309 -0
- package/templates/almadar-renderers-typescript/themes/rawi.css +310 -0
- package/templates/almadar-renderers-typescript/themes/retro.css +452 -0
- package/templates/almadar-renderers-typescript/themes/risograph.css +463 -0
- package/templates/almadar-renderers-typescript/themes/scandi.css +469 -0
- package/templates/almadar-renderers-typescript/themes/sketch.css +455 -0
- package/templates/almadar-renderers-typescript/themes/solarpunk.css +469 -0
- package/templates/almadar-renderers-typescript/themes/steampunk.css +451 -0
- package/templates/almadar-renderers-typescript/themes/swiss.css +455 -0
- package/templates/almadar-renderers-typescript/themes/terminal.css +466 -0
- package/templates/almadar-renderers-typescript/themes/trait-wars.css +487 -0
- package/templates/almadar-renderers-typescript/themes/ukiyo-e.css +459 -0
- package/templates/almadar-renderers-typescript/themes/vaporwave.css +455 -0
- package/templates/almadar-renderers-typescript/themes/victorian.css +453 -0
- package/templates/almadar-renderers-typescript/themes/wabi-sabi.css +459 -0
- package/templates/almadar-renderers-typescript/themes/win95.css +455 -0
- package/templates/almadar-renderers-typescript/themes/wireframe.css +439 -0
- package/templates/almadar-renderers-typescript/themes/zine.css +455 -0
- package/templates/almadar-renderers-typescript/tsconfig.json +22 -0
- package/templates/almadar-renderers-typescript/tsup.config.ts +68 -0
- package/templates/almadar-renderers-typescript/vitest.config.ts +49 -0
- package/templates/almadar-renderers-typescript/vitest.setup.ts +13 -0
- package/templates/almadar-shell/package.json +1 -1
- package/templates/almadar-shell/packages/client/eslint.config.cjs +2 -1
- package/templates/almadar-shell/packages/client/package.json +10 -18
- package/templates/almadar-shell/packages/client/src/App.tsx +92 -88
- package/templates/almadar-shell/packages/client/src/client-program.ts +26 -0
- package/templates/almadar-shell/packages/client/src/config/auth.ts +31 -9
- package/templates/almadar-shell/packages/client/src/features/auth/AuthContext.tsx +2 -2
- package/templates/almadar-shell/packages/client/src/features/auth/components/PersonaSwitcher.tsx +12 -7
- package/templates/almadar-shell/packages/client/src/features/auth/index.ts +0 -1
- package/templates/almadar-shell/packages/client/src/features/auth/types.ts +1 -1
- package/templates/almadar-shell/packages/client/src/index.css +4 -3
- package/templates/almadar-shell/packages/client/src/kernel-host.ts +28 -0
- package/templates/almadar-shell/packages/client/src/locale.tsx +32 -0
- package/templates/almadar-shell/packages/client/src/main.tsx +79 -4
- package/templates/almadar-shell/packages/client/tailwind-content.txt +352 -0
- package/templates/almadar-shell/packages/client/tailwind-preset.cjs +5 -5
- package/templates/almadar-shell/packages/client/tailwind.config.js +9 -6
- package/templates/almadar-shell/packages/client/vite.config.ts +24 -3
- package/templates/almadar-shell/packages/server/eslint.config.cjs +1 -0
- package/templates/almadar-shell/packages/server/package.json +6 -17
- package/templates/almadar-shell/packages/server/pnpm-lock.yaml +610 -3273
- package/templates/almadar-shell/packages/server/src/index.ts +27 -66
- package/templates/almadar-shell/packages/shared/package.json +2 -2
- package/templates/almadar-shell/packages/shared/pnpm-lock.yaml +23 -5
- package/templates/almadar-shell/pnpm-lock.yaml +1019 -6713
- package/templates/almadar-web-client/assets/AvlTransitionDetail-QZX6G5KJ-BGp6ha5s.js +1 -0
- package/templates/almadar-web-client/assets/AvlTransitionExplainer-26WLEIC6-DKlK405p.js +1 -0
- package/templates/almadar-web-client/assets/BehaviorView-JLZ4PKWY-Do3IkQBu.js +1 -0
- package/templates/almadar-web-client/assets/LayersPanel-M2LHWUFF-zP1lk1Z2.js +1 -0
- package/templates/almadar-web-client/assets/ModuleCard-NJD6JQGD-BhjeAUaF.js +1 -0
- package/templates/almadar-web-client/assets/a-arrow-down-BCZdbcpG.js +6 -0
- package/templates/almadar-web-client/assets/a-arrow-up-EHHcKqWC.js +6 -0
- package/templates/almadar-web-client/assets/a-large-small-DsPMwzNL.js +6 -0
- package/templates/almadar-web-client/assets/abnfDiagram-VCTEODGH-Ba9P4GDN.js +1 -0
- package/templates/almadar-web-client/assets/accessibility-CYuQ1LfZ.js +6 -0
- package/templates/almadar-web-client/assets/activity-DTgL4Ovg.js +6 -0
- package/templates/almadar-web-client/assets/air-vent-C1knC3cR.js +6 -0
- package/templates/almadar-web-client/assets/airplay-hskp8sJH.js +6 -0
- package/templates/almadar-web-client/assets/alarm-clock-Cb74SyyM.js +6 -0
- package/templates/almadar-web-client/assets/alarm-clock-check-B_3IFg-Y.js +6 -0
- package/templates/almadar-web-client/assets/alarm-clock-minus-CulN1_KD.js +6 -0
- package/templates/almadar-web-client/assets/alarm-clock-off-DqkKWxaa.js +6 -0
- package/templates/almadar-web-client/assets/alarm-clock-plus-Bt1zB4au.js +6 -0
- package/templates/almadar-web-client/assets/alarm-smoke-DLAcANJ4.js +6 -0
- package/templates/almadar-web-client/assets/album-BC2rcMpY.js +6 -0
- package/templates/almadar-web-client/assets/align-center-horizontal-BbD0MnmJ.js +6 -0
- package/templates/almadar-web-client/assets/align-center-vertical-BA5whnLM.js +6 -0
- package/templates/almadar-web-client/assets/align-end-horizontal-65mWC0J0.js +6 -0
- package/templates/almadar-web-client/assets/align-end-vertical-Dh3AiE-A.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-distribute-center-BJpYuMGa.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-distribute-end-l4dJuWvF.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-distribute-start-DSzqRTIb.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-justify-center-apFCRwCx.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-justify-end-vyJKGHmc.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-justify-start-8-7BXQe9.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-space-around-CLHIxniE.js +6 -0
- package/templates/almadar-web-client/assets/align-horizontal-space-between-JlRJxsa4.js +6 -0
- package/templates/almadar-web-client/assets/align-start-horizontal-ChaWk5JK.js +6 -0
- package/templates/almadar-web-client/assets/align-start-vertical-o04_Y_FM.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-distribute-center-BOdpgXzL.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-distribute-end-0NeJUmf0.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-distribute-start-CdRyvAPH.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-justify-center-CjeFwMTg.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-justify-end-DMgWz9Ju.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-justify-start-BJZvjrEM.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-space-around-RGqKIk9l.js +6 -0
- package/templates/almadar-web-client/assets/align-vertical-space-between-Dxyu2mom.js +6 -0
- package/templates/almadar-web-client/assets/ambulance-7AdrKEAR.js +6 -0
- package/templates/almadar-web-client/assets/ampersand-YPlMFlj-.js +6 -0
- package/templates/almadar-web-client/assets/ampersands-CyDjOCQf.js +6 -0
- package/templates/almadar-web-client/assets/amphora-BJuD9557.js +6 -0
- package/templates/almadar-web-client/assets/anchor-fJ8_tPgO.js +6 -0
- package/templates/almadar-web-client/assets/angry-CeifjrIQ.js +6 -0
- package/templates/almadar-web-client/assets/annoyed-C32Wm8Ms.js +6 -0
- package/templates/almadar-web-client/assets/antenna-BkABYyxP.js +6 -0
- package/templates/almadar-web-client/assets/anvil-nyzw7CiP.js +6 -0
- package/templates/almadar-web-client/assets/aperture-BkZGv6ji.js +6 -0
- package/templates/almadar-web-client/assets/app-window-DC67HDFr.js +6 -0
- package/templates/almadar-web-client/assets/app-window-mac-B5krQztv.js +6 -0
- package/templates/almadar-web-client/assets/apple-COzQTjgQ.js +6 -0
- package/templates/almadar-web-client/assets/arc-POC8qJgn.js +1 -0
- package/templates/almadar-web-client/assets/architectureDiagram-5GKGNRK7-CdqTFMVm.js +36 -0
- package/templates/almadar-web-client/assets/archive-DRpU0rqo.js +6 -0
- package/templates/almadar-web-client/assets/archive-restore-jsiFv-1T.js +6 -0
- package/templates/almadar-web-client/assets/archive-x-DElulmgn.js +6 -0
- package/templates/almadar-web-client/assets/armchair-LPeiMFaI.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-down-D8_Btvru.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-down-dash-DhhigAYU.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-left-CkCwGTPr.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-left-dash-B0iOffGO.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-right-C5Rhva4S.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-right-dash-CnLgSkOz.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-up-NwNOuyrB.js +6 -0
- package/templates/almadar-web-client/assets/arrow-big-up-dash-C5Tv8Cu7.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-0-1-DFkhApfN.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-1-0-BNFq_Wcj.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-Ba3FP1Pa.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-a-z-D4OHfXop.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-from-line-Dbk7e7Ye.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-left-HyxTaVi7.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-right-LjcCOBpK.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-to-dot-DmhgmcvY.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-to-line-DDzQnjSa.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-up-DpXXK21J.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-wide-narrow-DTMPI4nQ.js +6 -0
- package/templates/almadar-web-client/assets/arrow-down-z-a-CA8vtGcz.js +6 -0
- package/templates/almadar-web-client/assets/arrow-left-from-line-DxeBeNBK.js +6 -0
- package/templates/almadar-web-client/assets/arrow-left-right-Byep3EoQ.js +6 -0
- package/templates/almadar-web-client/assets/arrow-left-to-line-OLwAzgcM.js +6 -0
- package/templates/almadar-web-client/assets/arrow-right-from-line-Dpp6S70s.js +6 -0
- package/templates/almadar-web-client/assets/arrow-right-left-DQcqAvcr.js +6 -0
- package/templates/almadar-web-client/assets/arrow-right-to-line-BR_N74a8.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-0-1-B5vQFsOo.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-1-0-CVCWbFqt.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-C_sAVHtR.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-a-z-C-6Q6ZbX.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-down-CQRynW0A.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-from-dot-B0nrNvtE.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-from-line-DgHoPDV-.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-left-fUgkh-mh.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-right-DlSJd_7Q.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-to-line-Cns9KnM8.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-wide-narrow-IeXrzpVq.js +6 -0
- package/templates/almadar-web-client/assets/arrow-up-z-a-A32CUrl6.js +6 -0
- package/templates/almadar-web-client/assets/arrows-up-from-line-CwNDBf8j.js +6 -0
- package/templates/almadar-web-client/assets/asterisk-Bf7Rs2bS.js +6 -0
- package/templates/almadar-web-client/assets/at-sign-CSwq07k9.js +6 -0
- package/templates/almadar-web-client/assets/atom-Cgb4wdI3.js +6 -0
- package/templates/almadar-web-client/assets/audio-lines-D_IfcEHy.js +6 -0
- package/templates/almadar-web-client/assets/audio-waveform-BceNL36f.js +6 -0
- package/templates/almadar-web-client/assets/award-DRXRDLKG.js +6 -0
- package/templates/almadar-web-client/assets/axe-BFgwUMqm.js +6 -0
- package/templates/almadar-web-client/assets/axis-3d-cIc7A-nn.js +6 -0
- package/templates/almadar-web-client/assets/baby-QxQCnyyA.js +6 -0
- package/templates/almadar-web-client/assets/backpack-CJnNiAAs.js +6 -0
- package/templates/almadar-web-client/assets/badge-BuGAtkgv.js +6 -0
- package/templates/almadar-web-client/assets/badge-alert-CNbasxkg.js +6 -0
- package/templates/almadar-web-client/assets/badge-cent-BXaEDb7B.js +6 -0
- package/templates/almadar-web-client/assets/badge-check-DXhmEU5j.js +6 -0
- package/templates/almadar-web-client/assets/badge-dollar-sign-DCB2WRTA.js +6 -0
- package/templates/almadar-web-client/assets/badge-euro-DWEHS2Uh.js +6 -0
- package/templates/almadar-web-client/assets/badge-indian-rupee-CYTabaut.js +6 -0
- package/templates/almadar-web-client/assets/badge-info-EA_EyTR0.js +6 -0
- package/templates/almadar-web-client/assets/badge-japanese-yen-DbnjMEAl.js +6 -0
- package/templates/almadar-web-client/assets/badge-minus-DUmtlDnX.js +6 -0
- package/templates/almadar-web-client/assets/badge-percent-BOWn_jCF.js +6 -0
- package/templates/almadar-web-client/assets/badge-plus-CL0ayfMT.js +6 -0
- package/templates/almadar-web-client/assets/badge-pound-sterling-CNMXVDRY.js +6 -0
- package/templates/almadar-web-client/assets/badge-question-mark-Bi6ZNV-D.js +6 -0
- package/templates/almadar-web-client/assets/badge-russian-ruble-CM_DvNGi.js +6 -0
- package/templates/almadar-web-client/assets/badge-swiss-franc-CTdRMN3r.js +6 -0
- package/templates/almadar-web-client/assets/badge-turkish-lira-Cm4ZExZJ.js +6 -0
- package/templates/almadar-web-client/assets/badge-x-B7lJrnQd.js +6 -0
- package/templates/almadar-web-client/assets/baggage-claim-BrAxVsJk.js +6 -0
- package/templates/almadar-web-client/assets/balloon-EQ7iUoj7.js +6 -0
- package/templates/almadar-web-client/assets/ban-Cm6GpnkF.js +6 -0
- package/templates/almadar-web-client/assets/banana-DtgFfXOb.js +6 -0
- package/templates/almadar-web-client/assets/bandage-CxVuVi31.js +6 -0
- package/templates/almadar-web-client/assets/banknote-DcxfEo1B.js +6 -0
- package/templates/almadar-web-client/assets/banknote-arrow-down-FgQPuVbv.js +6 -0
- package/templates/almadar-web-client/assets/banknote-arrow-up-D-a8TE3x.js +6 -0
- package/templates/almadar-web-client/assets/banknote-x-D0TV0C3y.js +6 -0
- package/templates/almadar-web-client/assets/barcode-Dv661WWU.js +6 -0
- package/templates/almadar-web-client/assets/barrel-DnEHR680.js +6 -0
- package/templates/almadar-web-client/assets/baseline-owjFcMno.js +6 -0
- package/templates/almadar-web-client/assets/bath-CcMYvPOX.js +6 -0
- package/templates/almadar-web-client/assets/battery-charging-CJyUKYHV.js +6 -0
- package/templates/almadar-web-client/assets/battery-full-TGDsJJbU.js +6 -0
- package/templates/almadar-web-client/assets/battery-low-Dum097fs.js +6 -0
- package/templates/almadar-web-client/assets/battery-medium-BQ_Lfj2l.js +6 -0
- package/templates/almadar-web-client/assets/battery-plus-DVr5rD7S.js +6 -0
- package/templates/almadar-web-client/assets/battery-t3nuQ7DZ.js +6 -0
- package/templates/almadar-web-client/assets/battery-warning-BccKbDsX.js +6 -0
- package/templates/almadar-web-client/assets/beaker-BbwvmQ4Z.js +6 -0
- package/templates/almadar-web-client/assets/bean-CIWhSvqP.js +6 -0
- package/templates/almadar-web-client/assets/bean-off-Cth6RCbp.js +6 -0
- package/templates/almadar-web-client/assets/bed-DHFqb-ss.js +6 -0
- package/templates/almadar-web-client/assets/bed-double-54myvGeG.js +6 -0
- package/templates/almadar-web-client/assets/bed-single-CU-rdw5p.js +6 -0
- package/templates/almadar-web-client/assets/beef-DXTGmub-.js +6 -0
- package/templates/almadar-web-client/assets/beer-DnlLnAm7.js +6 -0
- package/templates/almadar-web-client/assets/beer-off-DcN_9V7h.js +6 -0
- package/templates/almadar-web-client/assets/bell-ZYJJE5tx.js +6 -0
- package/templates/almadar-web-client/assets/bell-dot-BrSlN2t3.js +6 -0
- package/templates/almadar-web-client/assets/bell-electric-BgSixLJ1.js +6 -0
- package/templates/almadar-web-client/assets/bell-minus-LdBP3VmB.js +6 -0
- package/templates/almadar-web-client/assets/bell-off-65prAkX2.js +6 -0
- package/templates/almadar-web-client/assets/bell-plus-BD8Vl8_9.js +6 -0
- package/templates/almadar-web-client/assets/bell-ring-oT-R82Wl.js +6 -0
- package/templates/almadar-web-client/assets/between-horizontal-end-MpHznmX0.js +6 -0
- package/templates/almadar-web-client/assets/between-horizontal-start-DyDl0N2e.js +6 -0
- package/templates/almadar-web-client/assets/between-vertical-end-CcxWulzQ.js +6 -0
- package/templates/almadar-web-client/assets/between-vertical-start-BkO2Pqbw.js +6 -0
- package/templates/almadar-web-client/assets/biceps-flexed-BTPY5w7H.js +6 -0
- package/templates/almadar-web-client/assets/bike-CAoUdsiJ.js +6 -0
- package/templates/almadar-web-client/assets/binary-DO-CN6gR.js +6 -0
- package/templates/almadar-web-client/assets/binoculars-Mv0iefKS.js +6 -0
- package/templates/almadar-web-client/assets/biohazard-DCQJwYCD.js +6 -0
- package/templates/almadar-web-client/assets/bird-CvPUuMno.js +6 -0
- package/templates/almadar-web-client/assets/birdhouse-BOskzffo.js +6 -0
- package/templates/almadar-web-client/assets/bitcoin-CNX8oE53.js +6 -0
- package/templates/almadar-web-client/assets/blend-6F3sudmi.js +6 -0
- package/templates/almadar-web-client/assets/blinds-8E3pfYNp.js +6 -0
- package/templates/almadar-web-client/assets/blockDiagram-I7D4REHJ-DTJjROLR.js +129 -0
- package/templates/almadar-web-client/assets/blocks-BgzK9uVR.js +6 -0
- package/templates/almadar-web-client/assets/bluetooth-connected-2L7WTzg7.js +6 -0
- package/templates/almadar-web-client/assets/bluetooth-gkW71cmh.js +6 -0
- package/templates/almadar-web-client/assets/bluetooth-off-Dbw4Ed-L.js +6 -0
- package/templates/almadar-web-client/assets/bluetooth-searching-D_xAn2-D.js +6 -0
- package/templates/almadar-web-client/assets/bolt-BnWYbuHb.js +6 -0
- package/templates/almadar-web-client/assets/bomb-DmHuU6w7.js +6 -0
- package/templates/almadar-web-client/assets/bone-CwfCWNZG.js +6 -0
- package/templates/almadar-web-client/assets/book-BJKr3PY3.js +6 -0
- package/templates/almadar-web-client/assets/book-a-DkcPOURo.js +6 -0
- package/templates/almadar-web-client/assets/book-alert-DEJFhnCa.js +6 -0
- package/templates/almadar-web-client/assets/book-audio-Cg-C4G9c.js +6 -0
- package/templates/almadar-web-client/assets/book-check-8bA4Jp9M.js +6 -0
- package/templates/almadar-web-client/assets/book-copy-CroB7208.js +6 -0
- package/templates/almadar-web-client/assets/book-dashed-CR3P-c-Y.js +6 -0
- package/templates/almadar-web-client/assets/book-down-C2CygXsh.js +6 -0
- package/templates/almadar-web-client/assets/book-headphones-C65T9Ugg.js +6 -0
- package/templates/almadar-web-client/assets/book-heart-AjpSFBWe.js +6 -0
- package/templates/almadar-web-client/assets/book-image-CdYDRH9k.js +6 -0
- package/templates/almadar-web-client/assets/book-key-h-IRL7gm.js +6 -0
- package/templates/almadar-web-client/assets/book-lock-CNzIE0uE.js +6 -0
- package/templates/almadar-web-client/assets/book-marked-DzgzB5YB.js +6 -0
- package/templates/almadar-web-client/assets/book-minus-E4GmyQ9R.js +6 -0
- package/templates/almadar-web-client/assets/book-open-DC-ZatxN.js +6 -0
- package/templates/almadar-web-client/assets/book-open-check-Dl0PScTm.js +6 -0
- package/templates/almadar-web-client/assets/book-open-text-BLEeenV9.js +6 -0
- package/templates/almadar-web-client/assets/book-plus-DiqPR1LM.js +6 -0
- package/templates/almadar-web-client/assets/book-search-DR0Fi3PC.js +6 -0
- package/templates/almadar-web-client/assets/book-text-DG8fWbra.js +6 -0
- package/templates/almadar-web-client/assets/book-type-CAVF1YRH.js +6 -0
- package/templates/almadar-web-client/assets/book-up-2-B7IviFZR.js +6 -0
- package/templates/almadar-web-client/assets/book-up-C7wiHicO.js +6 -0
- package/templates/almadar-web-client/assets/book-user-BqUAbaZ5.js +6 -0
- package/templates/almadar-web-client/assets/book-x-BgQPVIQX.js +6 -0
- package/templates/almadar-web-client/assets/bookmark-CjOE7qQO.js +6 -0
- package/templates/almadar-web-client/assets/bookmark-check-D28GHG_d.js +6 -0
- package/templates/almadar-web-client/assets/bookmark-minus-Cma_te6_.js +6 -0
- package/templates/almadar-web-client/assets/bookmark-plus-EPP_mpO8.js +6 -0
- package/templates/almadar-web-client/assets/bookmark-x-CqYnjtkA.js +6 -0
- package/templates/almadar-web-client/assets/boom-box-BC7Xrrsm.js +6 -0
- package/templates/almadar-web-client/assets/bot-DdPaGgKc.js +6 -0
- package/templates/almadar-web-client/assets/bot-message-square-Cc-F3WER.js +6 -0
- package/templates/almadar-web-client/assets/bot-off-ByOQtYlG.js +6 -0
- package/templates/almadar-web-client/assets/bottle-wine-DIK8esGl.js +6 -0
- package/templates/almadar-web-client/assets/bow-arrow-N8zUk087.js +6 -0
- package/templates/almadar-web-client/assets/box-Bgmob6Gt.js +6 -0
- package/templates/almadar-web-client/assets/boxes-Dr23824s.js +6 -0
- package/templates/almadar-web-client/assets/braces-CI39p_ig.js +6 -0
- package/templates/almadar-web-client/assets/brackets-il4e0sIS.js +6 -0
- package/templates/almadar-web-client/assets/brain-DdRH6W-Q.js +6 -0
- package/templates/almadar-web-client/assets/brain-circuit-K23dkUYk.js +6 -0
- package/templates/almadar-web-client/assets/brain-cog-QvU4lQx_.js +6 -0
- package/templates/almadar-web-client/assets/brick-wall-CGHgWHKu.js +6 -0
- package/templates/almadar-web-client/assets/brick-wall-fire-BUbL-nyL.js +6 -0
- package/templates/almadar-web-client/assets/brick-wall-shield-C4MuBwEv.js +6 -0
- package/templates/almadar-web-client/assets/briefcase-LW6Dm8Vt.js +6 -0
- package/templates/almadar-web-client/assets/briefcase-business-BaudHvLL.js +6 -0
- package/templates/almadar-web-client/assets/briefcase-conveyor-belt-BTDmTRIl.js +6 -0
- package/templates/almadar-web-client/assets/briefcase-medical-BYPpmC47.js +6 -0
- package/templates/almadar-web-client/assets/bring-to-front-qMa59kDn.js +6 -0
- package/templates/almadar-web-client/assets/brush-C4bN7x0N.js +6 -0
- package/templates/almadar-web-client/assets/brush-cleaning-B0Bxaa5G.js +6 -0
- package/templates/almadar-web-client/assets/bubbles-QTPdxeiC.js +6 -0
- package/templates/almadar-web-client/assets/bug-B9xz8yqs.js +6 -0
- package/templates/almadar-web-client/assets/bug-off-DLyA6HeL.js +6 -0
- package/templates/almadar-web-client/assets/bug-play-Dc9_YDJX.js +6 -0
- package/templates/almadar-web-client/assets/building-2-Br4G4Lz8.js +6 -0
- package/templates/almadar-web-client/assets/building-BmW7MGD8.js +6 -0
- package/templates/almadar-web-client/assets/bus-CKF2cMWO.js +6 -0
- package/templates/almadar-web-client/assets/bus-front-CJiEGxb9.js +6 -0
- package/templates/almadar-web-client/assets/c4Diagram-7LVT6UL2-C1s5GcWb.js +38 -0
- package/templates/almadar-web-client/assets/cable-CpgGSXfa.js +6 -0
- package/templates/almadar-web-client/assets/cable-car-BG2FRj1C.js +6 -0
- package/templates/almadar-web-client/assets/cake-De_QDNQs.js +6 -0
- package/templates/almadar-web-client/assets/cake-slice-SMa-8yBq.js +6 -0
- package/templates/almadar-web-client/assets/calculator-DvQP0nuZ.js +6 -0
- package/templates/almadar-web-client/assets/calendar-1-DBjFppOd.js +6 -0
- package/templates/almadar-web-client/assets/calendar-BzWP-XVB.js +6 -0
- package/templates/almadar-web-client/assets/calendar-arrow-down-CuI4F-q2.js +6 -0
- package/templates/almadar-web-client/assets/calendar-arrow-up-CBrSy14s.js +6 -0
- package/templates/almadar-web-client/assets/calendar-check-2-BdmcUvhg.js +6 -0
- package/templates/almadar-web-client/assets/calendar-check-oxki9zbB.js +6 -0
- package/templates/almadar-web-client/assets/calendar-clock-CXcre5A2.js +6 -0
- package/templates/almadar-web-client/assets/calendar-cog-pFs3OZ8f.js +6 -0
- package/templates/almadar-web-client/assets/calendar-days-C5BjrOlO.js +6 -0
- package/templates/almadar-web-client/assets/calendar-fold-B9E-oW91.js +6 -0
- package/templates/almadar-web-client/assets/calendar-heart-BbXkXU1j.js +6 -0
- package/templates/almadar-web-client/assets/calendar-minus-2-Dz-r2DPo.js +6 -0
- package/templates/almadar-web-client/assets/calendar-minus-DJowrR3u.js +6 -0
- package/templates/almadar-web-client/assets/calendar-off-B6TG-2QA.js +6 -0
- package/templates/almadar-web-client/assets/calendar-plus-2-HpYkgFOY.js +6 -0
- package/templates/almadar-web-client/assets/calendar-plus-DxKI94V9.js +6 -0
- package/templates/almadar-web-client/assets/calendar-range-DS-uHg7S.js +6 -0
- package/templates/almadar-web-client/assets/calendar-search-C8jKOl4O.js +6 -0
- package/templates/almadar-web-client/assets/calendar-sync-BbVsnql_.js +6 -0
- package/templates/almadar-web-client/assets/calendar-x-2-B7Squdlw.js +6 -0
- package/templates/almadar-web-client/assets/calendar-x-CHcmsJtr.js +6 -0
- package/templates/almadar-web-client/assets/calendars-DOEZjw-i.js +6 -0
- package/templates/almadar-web-client/assets/camera-72N0ReJY.js +6 -0
- package/templates/almadar-web-client/assets/camera-off-CMiUiZyV.js +6 -0
- package/templates/almadar-web-client/assets/candy-DNXkg5cA.js +6 -0
- package/templates/almadar-web-client/assets/candy-cane-CQq_vVWd.js +6 -0
- package/templates/almadar-web-client/assets/candy-off-oSWpey9S.js +6 -0
- package/templates/almadar-web-client/assets/cannabis-ClWrzjzu.js +6 -0
- package/templates/almadar-web-client/assets/cannabis-off-DmMpA0pR.js +6 -0
- package/templates/almadar-web-client/assets/captions-B4leh6l2.js +6 -0
- package/templates/almadar-web-client/assets/captions-off-CnSHcEh1.js +6 -0
- package/templates/almadar-web-client/assets/car-8NKlR4YP.js +6 -0
- package/templates/almadar-web-client/assets/car-front-c_Gf5DB-.js +6 -0
- package/templates/almadar-web-client/assets/car-taxi-front-Bphv6jWH.js +6 -0
- package/templates/almadar-web-client/assets/caravan-BJIiISJ4.js +6 -0
- package/templates/almadar-web-client/assets/card-sim-Ba-UCeqv.js +6 -0
- package/templates/almadar-web-client/assets/carrot-DDfsaqjD.js +6 -0
- package/templates/almadar-web-client/assets/case-lower-ws5Q0EJ5.js +6 -0
- package/templates/almadar-web-client/assets/case-sensitive-DCVZvaJk.js +6 -0
- package/templates/almadar-web-client/assets/case-upper-DNPj3SXM.js +6 -0
- package/templates/almadar-web-client/assets/cassette-tape-ubXvsybd.js +6 -0
- package/templates/almadar-web-client/assets/cast-DHMwRxOJ.js +6 -0
- package/templates/almadar-web-client/assets/castle-EMV55hyl.js +6 -0
- package/templates/almadar-web-client/assets/cat-CKYsmoJX.js +6 -0
- package/templates/almadar-web-client/assets/cctv-zQDgSIKW.js +6 -0
- package/templates/almadar-web-client/assets/channel-CWFeThdU.js +1 -0
- package/templates/almadar-web-client/assets/chart-area-BhULs_V0.js +6 -0
- package/templates/almadar-web-client/assets/chart-bar-D30RTnoH.js +6 -0
- package/templates/almadar-web-client/assets/chart-bar-big-kQeXX6Cl.js +6 -0
- package/templates/almadar-web-client/assets/chart-bar-decreasing-Dnuwlnxi.js +6 -0
- package/templates/almadar-web-client/assets/chart-bar-increasing-DNgCk-4U.js +6 -0
- package/templates/almadar-web-client/assets/chart-bar-stacked-CijuFiZs.js +6 -0
- package/templates/almadar-web-client/assets/chart-candlestick-B98xHdOG.js +6 -0
- package/templates/almadar-web-client/assets/chart-column-CytdvDTR.js +6 -0
- package/templates/almadar-web-client/assets/chart-column-big-Jff6XROl.js +6 -0
- package/templates/almadar-web-client/assets/chart-column-decreasing-d9JAiEqu.js +6 -0
- package/templates/almadar-web-client/assets/chart-column-increasing-D5d541CU.js +6 -0
- package/templates/almadar-web-client/assets/chart-column-stacked-Cr05XwRe.js +6 -0
- package/templates/almadar-web-client/assets/chart-gantt-BSa7P3To.js +6 -0
- package/templates/almadar-web-client/assets/chart-line-COzdsrWu.js +6 -0
- package/templates/almadar-web-client/assets/chart-network-CBKfWGc5.js +6 -0
- package/templates/almadar-web-client/assets/chart-no-axes-column-Dyb803xW.js +6 -0
- package/templates/almadar-web-client/assets/chart-no-axes-column-decreasing-BKTAhMNN.js +6 -0
- package/templates/almadar-web-client/assets/chart-no-axes-column-increasing-p0TeUQym.js +6 -0
- package/templates/almadar-web-client/assets/chart-no-axes-combined-BVobj0SS.js +6 -0
- package/templates/almadar-web-client/assets/chart-no-axes-gantt-DbJ69nuB.js +6 -0
- package/templates/almadar-web-client/assets/chart-pie-R-E7u_ZF.js +6 -0
- package/templates/almadar-web-client/assets/chart-scatter-Ddm-d18N.js +6 -0
- package/templates/almadar-web-client/assets/chart-spline-BdYgu-Lu.js +6 -0
- package/templates/almadar-web-client/assets/check-check-CCHbyOSy.js +6 -0
- package/templates/almadar-web-client/assets/check-line-NHVez6eF.js +6 -0
- package/templates/almadar-web-client/assets/chef-hat-CQrbD-Df.js +6 -0
- package/templates/almadar-web-client/assets/cherry-D7E9SjLX.js +6 -0
- package/templates/almadar-web-client/assets/chess-bishop-kDiH4kAo.js +6 -0
- package/templates/almadar-web-client/assets/chess-king-BguA_Sli.js +6 -0
- package/templates/almadar-web-client/assets/chess-knight-BpzlzNiS.js +6 -0
- package/templates/almadar-web-client/assets/chess-pawn-CRbFTPIq.js +6 -0
- package/templates/almadar-web-client/assets/chess-queen-Bic-LF3T.js +6 -0
- package/templates/almadar-web-client/assets/chess-rook-CI-11bA4.js +6 -0
- package/templates/almadar-web-client/assets/chevron-first-DYfEnJ5u.js +6 -0
- package/templates/almadar-web-client/assets/chevron-last-DL99ahsl.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-down-DvKt6DMk.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-down-up-CLaEZA1h.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-left-DegRbLid.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-left-right-CCRcA1VB.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-left-right-ellipsis-D5jrGE04.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-right-BHB0qrWQ.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-right-left-B35kP9rq.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-up-QbJTZUnB.js +6 -0
- package/templates/almadar-web-client/assets/chevrons-up-down-M9UfFWeT.js +6 -0
- package/templates/almadar-web-client/assets/chromium-CDRoJKQR.js +6 -0
- package/templates/almadar-web-client/assets/chunk-2Q5K7J3B-BFICRowB.js +1 -0
- package/templates/almadar-web-client/assets/chunk-5VM5RSS4-CEpGWioC.js +15 -0
- package/templates/almadar-web-client/assets/chunk-F27PBJKO-BBJBYNvu.js +1 -0
- package/templates/almadar-web-client/assets/chunk-IMKFNOWR-CqiRcqdF.js +231 -0
- package/templates/almadar-web-client/assets/chunk-JWPE2WC7-CEqu3UzC.js +1 -0
- package/templates/almadar-web-client/assets/chunk-POPQ4Y6H-C5cfCRwo.js +1 -0
- package/templates/almadar-web-client/assets/chunk-SVP7TREG-B8tdWtm7.js +88 -0
- package/templates/almadar-web-client/assets/chunk-TICWLB2K-CMiolxDD.js +206 -0
- package/templates/almadar-web-client/assets/chunk-XXDRQBXY-CfUEBRtC.js +1 -0
- package/templates/almadar-web-client/assets/church-CTTgHVc-.js +6 -0
- package/templates/almadar-web-client/assets/cigarette-G9SQeCf5.js +6 -0
- package/templates/almadar-web-client/assets/cigarette-off-Dg-pOaR6.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-down-A1h58Jl7.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-left-CWtXrQWN.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-out-down-left-CImuKkWF.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-out-down-right-DSj9CqbX.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-out-up-left-CHe87gnn.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-out-up-right-CaKwZvM-.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-right-wUfc7bjb.js +6 -0
- package/templates/almadar-web-client/assets/circle-arrow-up-4opnfg_s.js +6 -0
- package/templates/almadar-web-client/assets/circle-chevron-down-U1770ag1.js +6 -0
- package/templates/almadar-web-client/assets/circle-chevron-left-Ds6Diaap.js +6 -0
- package/templates/almadar-web-client/assets/circle-chevron-right-DhWCd6A-.js +6 -0
- package/templates/almadar-web-client/assets/circle-chevron-up-DQJBHSin.js +6 -0
- package/templates/almadar-web-client/assets/circle-dashed-C98tQTdF.js +6 -0
- package/templates/almadar-web-client/assets/circle-divide-WmgHomzJ.js +6 -0
- package/templates/almadar-web-client/assets/circle-dollar-sign-Br9oaNnS.js +6 -0
- package/templates/almadar-web-client/assets/circle-dot-D20AOjSF.js +6 -0
- package/templates/almadar-web-client/assets/circle-dot-dashed-CBCdVqYg.js +6 -0
- package/templates/almadar-web-client/assets/circle-ellipsis-CC3z1YZE.js +6 -0
- package/templates/almadar-web-client/assets/circle-equal-DoLlV2Kb.js +6 -0
- package/templates/almadar-web-client/assets/circle-fading-arrow-up-nzCqcpxE.js +6 -0
- package/templates/almadar-web-client/assets/circle-fading-plus-D21STNHD.js +6 -0
- package/templates/almadar-web-client/assets/circle-gauge-C_xMdLiB.js +6 -0
- package/templates/almadar-web-client/assets/circle-minus-CBYNMfHU.js +6 -0
- package/templates/almadar-web-client/assets/circle-off-C5eU18jY.js +6 -0
- package/templates/almadar-web-client/assets/circle-parking-Ci6fxGCZ.js +6 -0
- package/templates/almadar-web-client/assets/circle-parking-off-Dj6MbPyQ.js +6 -0
- package/templates/almadar-web-client/assets/circle-percent-Bdvl1EQ5.js +6 -0
- package/templates/almadar-web-client/assets/circle-pile-BASd9AoV.js +6 -0
- package/templates/almadar-web-client/assets/circle-play-yPeyUF6v.js +6 -0
- package/templates/almadar-web-client/assets/circle-plus-DSd_tOHh.js +6 -0
- package/templates/almadar-web-client/assets/circle-pound-sterling-asc4TQDD.js +6 -0
- package/templates/almadar-web-client/assets/circle-power-DzT_0VMT.js +6 -0
- package/templates/almadar-web-client/assets/circle-slash-2-BQWbE0o4.js +6 -0
- package/templates/almadar-web-client/assets/circle-slash-BdGF3esq.js +6 -0
- package/templates/almadar-web-client/assets/circle-small-Bi6ncIMk.js +6 -0
- package/templates/almadar-web-client/assets/circle-star-CN5yqR5Q.js +6 -0
- package/templates/almadar-web-client/assets/circle-stop-dMgg8tm7.js +6 -0
- package/templates/almadar-web-client/assets/circle-user-Dmcs6vh-.js +6 -0
- package/templates/almadar-web-client/assets/circle-user-round-dUMDTrbl.js +6 -0
- package/templates/almadar-web-client/assets/circuit-board-BciwSQVx.js +6 -0
- package/templates/almadar-web-client/assets/citrus-uB__zWi-.js +6 -0
- package/templates/almadar-web-client/assets/clapperboard-lWaJtvuR.js +6 -0
- package/templates/almadar-web-client/assets/classDiagram-ZZMXUADV-CVIFTbTR.js +1 -0
- package/templates/almadar-web-client/assets/classDiagram-v2-VYDZK3BY-CVIFTbTR.js +1 -0
- package/templates/almadar-web-client/assets/clipboard-DsOxHzVb.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-check-OOS6btZN.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-clock-CX1uT_mP.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-copy-B1pzghqn.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-list-DgLrw1nC.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-minus-DvbH-sgj.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-paste-BlvFnWJB.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-pen-CuMKfFdD.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-pen-line-DcgwV5z6.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-plus-C8eXLt_d.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-type-r8WT5Lon.js +6 -0
- package/templates/almadar-web-client/assets/clipboard-x-C0gPgn9R.js +6 -0
- package/templates/almadar-web-client/assets/clock-1-DjprBRxN.js +6 -0
- package/templates/almadar-web-client/assets/clock-10-BmAF4Klk.js +6 -0
- package/templates/almadar-web-client/assets/clock-11-CDlh0Giy.js +6 -0
- package/templates/almadar-web-client/assets/clock-12-DyAaWHY6.js +6 -0
- package/templates/almadar-web-client/assets/clock-2-Rigxp9XX.js +6 -0
- package/templates/almadar-web-client/assets/clock-3-DYVmlApj.js +6 -0
- package/templates/almadar-web-client/assets/clock-4-BrnyVe9n.js +6 -0
- package/templates/almadar-web-client/assets/clock-5-DBQfPFQU.js +6 -0
- package/templates/almadar-web-client/assets/clock-6-V9UjeCZf.js +6 -0
- package/templates/almadar-web-client/assets/clock-7-BLG6JPMG.js +6 -0
- package/templates/almadar-web-client/assets/clock-8-B8Mw8AhZ.js +6 -0
- package/templates/almadar-web-client/assets/clock-9-B9Ov0L5X.js +6 -0
- package/templates/almadar-web-client/assets/clock-alert-D9tT9hgS.js +6 -0
- package/templates/almadar-web-client/assets/clock-arrow-down-DqbF2-Gm.js +6 -0
- package/templates/almadar-web-client/assets/clock-arrow-up-CqPEJSbg.js +6 -0
- package/templates/almadar-web-client/assets/clock-check-6ZK2lfpi.js +6 -0
- package/templates/almadar-web-client/assets/clock-fading-BGFI_dHz.js +6 -0
- package/templates/almadar-web-client/assets/clock-plus-DgiDKI-9.js +6 -0
- package/templates/almadar-web-client/assets/closed-caption-9ifFyUCT.js +6 -0
- package/templates/almadar-web-client/assets/cloud-BV5erezO.js +6 -0
- package/templates/almadar-web-client/assets/cloud-alert-BubRe8XB.js +6 -0
- package/templates/almadar-web-client/assets/cloud-backup--eR6W6qD.js +6 -0
- package/templates/almadar-web-client/assets/cloud-check-D5qwj_no.js +6 -0
- package/templates/almadar-web-client/assets/cloud-cog-SMl7K7qJ.js +6 -0
- package/templates/almadar-web-client/assets/cloud-download-DDA6guzh.js +6 -0
- package/templates/almadar-web-client/assets/cloud-drizzle-0VGfkaCU.js +6 -0
- package/templates/almadar-web-client/assets/cloud-fog-BzagQn6j.js +6 -0
- package/templates/almadar-web-client/assets/cloud-hail-CY9EOX_t.js +6 -0
- package/templates/almadar-web-client/assets/cloud-lightning-CSFa8U9r.js +6 -0
- package/templates/almadar-web-client/assets/cloud-moon-DzqYGXVw.js +6 -0
- package/templates/almadar-web-client/assets/cloud-moon-rain-6tpTXqmv.js +6 -0
- package/templates/almadar-web-client/assets/cloud-off-BjITJSDX.js +6 -0
- package/templates/almadar-web-client/assets/cloud-rain-A0vMpAXV.js +6 -0
- package/templates/almadar-web-client/assets/cloud-rain-wind-D77os7Wz.js +6 -0
- package/templates/almadar-web-client/assets/cloud-snow-DiK8ILcj.js +6 -0
- package/templates/almadar-web-client/assets/cloud-sun-B_MwP1tL.js +6 -0
- package/templates/almadar-web-client/assets/cloud-sun-rain-DLq1Gwda.js +6 -0
- package/templates/almadar-web-client/assets/cloud-sync-BoK6FMap.js +6 -0
- package/templates/almadar-web-client/assets/cloud-upload-CF2DQgXz.js +6 -0
- package/templates/almadar-web-client/assets/cloudy-ThldJK59.js +6 -0
- package/templates/almadar-web-client/assets/clover-DD-zRJ7J.js +6 -0
- package/templates/almadar-web-client/assets/club-C24xntSr.js +6 -0
- package/templates/almadar-web-client/assets/code-xml-CUQ2vkwx.js +6 -0
- package/templates/almadar-web-client/assets/codepen-IFULzQln.js +6 -0
- package/templates/almadar-web-client/assets/codesandbox-Bxl7zVbY.js +6 -0
- package/templates/almadar-web-client/assets/coffee-Bnb6mBGr.js +6 -0
- package/templates/almadar-web-client/assets/cog-DjXgjh1Z.js +6 -0
- package/templates/almadar-web-client/assets/coins-DR921D8H.js +6 -0
- package/templates/almadar-web-client/assets/columns-2-m7qFbcBk.js +6 -0
- package/templates/almadar-web-client/assets/columns-3-Pyx5D6-5.js +6 -0
- package/templates/almadar-web-client/assets/columns-3-cog-CMxF45Gp.js +6 -0
- package/templates/almadar-web-client/assets/columns-4-CylXLHZx.js +6 -0
- package/templates/almadar-web-client/assets/combine-DFEgSf0A.js +6 -0
- package/templates/almadar-web-client/assets/command-DVWhMgwh.js +6 -0
- package/templates/almadar-web-client/assets/compass-BHYEm52t.js +6 -0
- package/templates/almadar-web-client/assets/component-CbOIBi0-.js +6 -0
- package/templates/almadar-web-client/assets/computer-CJa76IV_.js +6 -0
- package/templates/almadar-web-client/assets/concierge-bell-rw5ft8Wg.js +6 -0
- package/templates/almadar-web-client/assets/cone-CgWAb1Ev.js +6 -0
- package/templates/almadar-web-client/assets/construction-CwQHKguV.js +6 -0
- package/templates/almadar-web-client/assets/contact-DB9gyPYt.js +6 -0
- package/templates/almadar-web-client/assets/contact-round-KwoWxzVX.js +6 -0
- package/templates/almadar-web-client/assets/container-CprQMG31.js +6 -0
- package/templates/almadar-web-client/assets/contrast-CNbN3Wjh.js +6 -0
- package/templates/almadar-web-client/assets/cookie-CvLnbgYT.js +6 -0
- package/templates/almadar-web-client/assets/cooking-pot-BoJA6Y56.js +6 -0
- package/templates/almadar-web-client/assets/copy-check-0rWwLcLm.js +6 -0
- package/templates/almadar-web-client/assets/copy-minus-K21U5dBB.js +6 -0
- package/templates/almadar-web-client/assets/copy-plus-ClfmxIHV.js +6 -0
- package/templates/almadar-web-client/assets/copy-slash-CgMIrwW4.js +6 -0
- package/templates/almadar-web-client/assets/copy-x-CnSTsvZj.js +6 -0
- package/templates/almadar-web-client/assets/copyleft-BlVMa2a3.js +6 -0
- package/templates/almadar-web-client/assets/copyright-DEGMm2_f.js +6 -0
- package/templates/almadar-web-client/assets/corner-down-left-BnTfa8q8.js +6 -0
- package/templates/almadar-web-client/assets/corner-down-right-hvsVaBrT.js +6 -0
- package/templates/almadar-web-client/assets/corner-left-down-C8LWQSMj.js +6 -0
- package/templates/almadar-web-client/assets/corner-left-up-C-e2g5Mk.js +6 -0
- package/templates/almadar-web-client/assets/corner-right-down-BLs3G752.js +6 -0
- package/templates/almadar-web-client/assets/corner-right-up-BUEdAUc0.js +6 -0
- package/templates/almadar-web-client/assets/corner-up-left-pozBtwEL.js +6 -0
- package/templates/almadar-web-client/assets/corner-up-right-CCZ9qPSJ.js +6 -0
- package/templates/almadar-web-client/assets/cose-bilkent-JH36ORCC-_jw0URI7.js +1 -0
- package/templates/almadar-web-client/assets/cpu-CebpRVCQ.js +6 -0
- package/templates/almadar-web-client/assets/creative-commons-GJ_yNxyI.js +6 -0
- package/templates/almadar-web-client/assets/credit-card-CyFkmDDM.js +6 -0
- package/templates/almadar-web-client/assets/croissant-DMktRRE7.js +6 -0
- package/templates/almadar-web-client/assets/crop-ByjeO5yh.js +6 -0
- package/templates/almadar-web-client/assets/cross-CQFOsD_S.js +6 -0
- package/templates/almadar-web-client/assets/crosshair-yYhWFj9B.js +6 -0
- package/templates/almadar-web-client/assets/crown-C1spPG-D.js +6 -0
- package/templates/almadar-web-client/assets/cuboid-BgXi6ypx.js +6 -0
- package/templates/almadar-web-client/assets/cup-soda-DG91-hks.js +6 -0
- package/templates/almadar-web-client/assets/currency-sw4igoh8.js +6 -0
- package/templates/almadar-web-client/assets/cylinder-C6jvprkl.js +6 -0
- package/templates/almadar-web-client/assets/cynefin-OW5HDTMX-Fw9ZfRna.js +178 -0
- package/templates/almadar-web-client/assets/cynefinDiagram-5FMLGOSQ-C0CcnEFi.js +62 -0
- package/templates/almadar-web-client/assets/cytoscape.esm-BLAcgzS2.js +331 -0
- package/templates/almadar-web-client/assets/dagre-GXQ25YYZ-CcsKmr95.js +4 -0
- package/templates/almadar-web-client/assets/dam-CmanMjEe.js +6 -0
- package/templates/almadar-web-client/assets/database-DQ_lmrNX.js +6 -0
- package/templates/almadar-web-client/assets/database-backup-AUuaZa3F.js +6 -0
- package/templates/almadar-web-client/assets/database-search-qfOhoQqe.js +6 -0
- package/templates/almadar-web-client/assets/database-zap-DzO5yTH3.js +6 -0
- package/templates/almadar-web-client/assets/decimals-arrow-left-rLiAK9Zn.js +6 -0
- package/templates/almadar-web-client/assets/decimals-arrow-right-CcLjs_Nt.js +6 -0
- package/templates/almadar-web-client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/templates/almadar-web-client/assets/delete-DXrr67q1.js +6 -0
- package/templates/almadar-web-client/assets/dessert-BXr7bfcU.js +6 -0
- package/templates/almadar-web-client/assets/diagram-S7CK7UJ4-B7a68n34.js +30 -0
- package/templates/almadar-web-client/assets/diagram-UQ7AKVKN-4_NClYHt.js +41 -0
- package/templates/almadar-web-client/assets/diagram-VSXAHHWV-C-M0xNpk.js +3 -0
- package/templates/almadar-web-client/assets/diagram-VX7I27RA-ByJ1OaC4.js +24 -0
- package/templates/almadar-web-client/assets/diagram-Z3DM3KII-1Lp9A1Dy.js +24 -0
- package/templates/almadar-web-client/assets/diameter-CP7r464G.js +6 -0
- package/templates/almadar-web-client/assets/diamond-BhOvRnvD.js +6 -0
- package/templates/almadar-web-client/assets/diamond-minus-A51nWTgh.js +6 -0
- package/templates/almadar-web-client/assets/diamond-percent-ngeokOqK.js +6 -0
- package/templates/almadar-web-client/assets/diamond-plus-m_HbV3yJ.js +6 -0
- package/templates/almadar-web-client/assets/dice-1-Bn7zgLPO.js +6 -0
- package/templates/almadar-web-client/assets/dice-2-DwRenZnC.js +6 -0
- package/templates/almadar-web-client/assets/dice-3-CZ5NdjMu.js +6 -0
- package/templates/almadar-web-client/assets/dice-4-CZo8PDMP.js +6 -0
- package/templates/almadar-web-client/assets/dice-5-nObPFngR.js +6 -0
- package/templates/almadar-web-client/assets/dice-6-4hEHytjC.js +6 -0
- package/templates/almadar-web-client/assets/dices-Cow0nDen.js +6 -0
- package/templates/almadar-web-client/assets/diff-DYB5WseK.js +6 -0
- package/templates/almadar-web-client/assets/disc-2-DAs1MFMs.js +6 -0
- package/templates/almadar-web-client/assets/disc-3-Cn-ahSWA.js +6 -0
- package/templates/almadar-web-client/assets/disc-DdMJwxBS.js +6 -0
- package/templates/almadar-web-client/assets/disc-album-6DH8vMAc.js +6 -0
- package/templates/almadar-web-client/assets/divide-tD68UjU7.js +6 -0
- package/templates/almadar-web-client/assets/dna-DYohItix.js +6 -0
- package/templates/almadar-web-client/assets/dna-off-YmTpTWKH.js +6 -0
- package/templates/almadar-web-client/assets/dock-BShgx2Rf.js +6 -0
- package/templates/almadar-web-client/assets/dog-gHRrq1Vy.js +6 -0
- package/templates/almadar-web-client/assets/donut-CzAd1G-S.js +6 -0
- package/templates/almadar-web-client/assets/door-closed-DNVvroQD.js +6 -0
- package/templates/almadar-web-client/assets/door-closed-locked-Dg0Mn9jJ.js +6 -0
- package/templates/almadar-web-client/assets/door-open-UI6Q4xBY.js +6 -0
- package/templates/almadar-web-client/assets/dot-ClRyt7mb.js +6 -0
- package/templates/almadar-web-client/assets/drafting-compass-D9ySMksq.js +6 -0
- package/templates/almadar-web-client/assets/drama-qY8dUJHs.js +6 -0
- package/templates/almadar-web-client/assets/dribbble-sKsFZQhm.js +6 -0
- package/templates/almadar-web-client/assets/drill-CxL-37Xu.js +6 -0
- package/templates/almadar-web-client/assets/drone-C8BlpEWc.js +6 -0
- package/templates/almadar-web-client/assets/droplet-XK_rMRig.js +6 -0
- package/templates/almadar-web-client/assets/droplet-off-16NP3gIc.js +6 -0
- package/templates/almadar-web-client/assets/droplets-BYLSQSvD.js +6 -0
- package/templates/almadar-web-client/assets/drum-BFQcoT2Y.js +6 -0
- package/templates/almadar-web-client/assets/drumstick-B2I0ovN0.js +6 -0
- package/templates/almadar-web-client/assets/dumbbell-CdIPXjb9.js +6 -0
- package/templates/almadar-web-client/assets/ear-B6B0lTVk.js +6 -0
- package/templates/almadar-web-client/assets/ear-off-j8ikhx4W.js +6 -0
- package/templates/almadar-web-client/assets/earth-Dw0BcKwJ.js +6 -0
- package/templates/almadar-web-client/assets/earth-lock-P0Mf02QT.js +6 -0
- package/templates/almadar-web-client/assets/ebnfDiagram-PWID7BFC--JWi_EuX.js +1 -0
- package/templates/almadar-web-client/assets/eclipse-Ck2dM9z7.js +6 -0
- package/templates/almadar-web-client/assets/egg-CW4sN2FL.js +6 -0
- package/templates/almadar-web-client/assets/egg-fried-4sZ7IAP5.js +6 -0
- package/templates/almadar-web-client/assets/egg-off-DjP1tCE5.js +6 -0
- package/templates/almadar-web-client/assets/elk.bundled-C9tZEZ2I.js +24 -0
- package/templates/almadar-web-client/assets/ellipsis-BdObfTnZ.js +6 -0
- package/templates/almadar-web-client/assets/ellipsis-vertical-E2cs6hiF.js +6 -0
- package/templates/almadar-web-client/assets/emojiItems-QGSNAABW-DwKKltqO.js +1 -0
- package/templates/almadar-web-client/assets/equal-Cto-2GCE.js +6 -0
- package/templates/almadar-web-client/assets/equal-approximately-Dh2UEad2.js +6 -0
- package/templates/almadar-web-client/assets/equal-not-fzh6ICGd.js +6 -0
- package/templates/almadar-web-client/assets/erDiagram-RLTQ6QDP-Da3_pagC.js +99 -0
- package/templates/almadar-web-client/assets/ethernet-port-BqHUfEI4.js +6 -0
- package/templates/almadar-web-client/assets/euro-DxLbrpw0.js +6 -0
- package/templates/almadar-web-client/assets/ev-charger-BRg8uFHR.js +6 -0
- package/templates/almadar-web-client/assets/expand-Dsf7kT0T.js +6 -0
- package/templates/almadar-web-client/assets/external-link-ZPqkL4aY.js +6 -0
- package/templates/almadar-web-client/assets/eye-closed-BPw5hyUg.js +6 -0
- package/templates/almadar-web-client/assets/eye-off-BQ7W86yr.js +6 -0
- package/templates/almadar-web-client/assets/facebook-DwrvsyGw.js +6 -0
- package/templates/almadar-web-client/assets/factory-D88jh_pe.js +6 -0
- package/templates/almadar-web-client/assets/fan-Y5ch_Hwd.js +6 -0
- package/templates/almadar-web-client/assets/fast-forward-B6KJpON-.js +6 -0
- package/templates/almadar-web-client/assets/feather-DUNjs3Ma.js +6 -0
- package/templates/almadar-web-client/assets/fence-1BSW7O7H.js +6 -0
- package/templates/almadar-web-client/assets/ferris-wheel-VbX0-kxL.js +6 -0
- package/templates/almadar-web-client/assets/figma-DsDlnU44.js +6 -0
- package/templates/almadar-web-client/assets/file-CWPQmDhJ.js +6 -0
- package/templates/almadar-web-client/assets/file-archive-Bd0XNXTw.js +6 -0
- package/templates/almadar-web-client/assets/file-axis-3d-CMtUXDAA.js +6 -0
- package/templates/almadar-web-client/assets/file-badge-CzoL5XzK.js +6 -0
- package/templates/almadar-web-client/assets/file-box-CKHmpU5d.js +6 -0
- package/templates/almadar-web-client/assets/file-braces-CZWrCiGp.js +6 -0
- package/templates/almadar-web-client/assets/file-braces-corner-BfJLuR98.js +6 -0
- package/templates/almadar-web-client/assets/file-chart-column-increasing-YYWtCswi.js +6 -0
- package/templates/almadar-web-client/assets/file-chart-column-qRqATFyr.js +6 -0
- package/templates/almadar-web-client/assets/file-chart-line-Dv63gG2j.js +6 -0
- package/templates/almadar-web-client/assets/file-chart-pie-BBs_m07d.js +6 -0
- package/templates/almadar-web-client/assets/file-check-Ba8b15ih.js +6 -0
- package/templates/almadar-web-client/assets/file-check-corner-BSWeWOW7.js +6 -0
- package/templates/almadar-web-client/assets/file-clock-dIZygFg1.js +6 -0
- package/templates/almadar-web-client/assets/file-code-D1zDriwo.js +6 -0
- package/templates/almadar-web-client/assets/file-code-corner-7VCERlYp.js +6 -0
- package/templates/almadar-web-client/assets/file-cog-C4rh3PkH.js +6 -0
- package/templates/almadar-web-client/assets/file-diff-te4-CB-E.js +6 -0
- package/templates/almadar-web-client/assets/file-digit-DM-ruHBx.js +6 -0
- package/templates/almadar-web-client/assets/file-down-CcenqjOM.js +6 -0
- package/templates/almadar-web-client/assets/file-exclamation-point-BdhID9Ai.js +6 -0
- package/templates/almadar-web-client/assets/file-headphone-Dty19sIL.js +6 -0
- package/templates/almadar-web-client/assets/file-heart-DGbXV-a-.js +6 -0
- package/templates/almadar-web-client/assets/file-image-BtfneTaI.js +6 -0
- package/templates/almadar-web-client/assets/file-input-Wk6-WS5n.js +6 -0
- package/templates/almadar-web-client/assets/file-key-KYnyqzNH.js +6 -0
- package/templates/almadar-web-client/assets/file-lock-DTBp_E5q.js +6 -0
- package/templates/almadar-web-client/assets/file-minus-CrqsYgaT.js +6 -0
- package/templates/almadar-web-client/assets/file-minus-corner-DTJTSU4R.js +6 -0
- package/templates/almadar-web-client/assets/file-music-78VCJd_p.js +6 -0
- package/templates/almadar-web-client/assets/file-output-DyZF9BC8.js +6 -0
- package/templates/almadar-web-client/assets/file-pen-Un4ALWjn.js +6 -0
- package/templates/almadar-web-client/assets/file-pen-line-I5XWxXMr.js +6 -0
- package/templates/almadar-web-client/assets/file-play-_4dkQx_s.js +6 -0
- package/templates/almadar-web-client/assets/file-plus-DyE6qquQ.js +6 -0
- package/templates/almadar-web-client/assets/file-plus-corner-DsyCDupc.js +6 -0
- package/templates/almadar-web-client/assets/file-question-mark-Dg_pg38B.js +6 -0
- package/templates/almadar-web-client/assets/file-scan-BJnUsEAD.js +6 -0
- package/templates/almadar-web-client/assets/file-search-Cl2dSPMO.js +6 -0
- package/templates/almadar-web-client/assets/file-search-corner-BLWpaKYU.js +6 -0
- package/templates/almadar-web-client/assets/file-signal-C-gkCDP-.js +6 -0
- package/templates/almadar-web-client/assets/file-sliders-BFQOSFSR.js +6 -0
- package/templates/almadar-web-client/assets/file-spreadsheet-C-Dj_vp0.js +6 -0
- package/templates/almadar-web-client/assets/file-stack-CTB-ZF8J.js +6 -0
- package/templates/almadar-web-client/assets/file-symlink-CVsi84Gw.js +6 -0
- package/templates/almadar-web-client/assets/file-terminal-D2atsv5V.js +6 -0
- package/templates/almadar-web-client/assets/file-type-CVFt_SW9.js +6 -0
- package/templates/almadar-web-client/assets/file-type-corner-CCI1YaIc.js +6 -0
- package/templates/almadar-web-client/assets/file-up-DxtkBRn7.js +6 -0
- package/templates/almadar-web-client/assets/file-user-IvFunv-f.js +6 -0
- package/templates/almadar-web-client/assets/file-video-camera-DS_XXkCa.js +6 -0
- package/templates/almadar-web-client/assets/file-volume-BeQzeQk1.js +6 -0
- package/templates/almadar-web-client/assets/file-x-DX01M-kI.js +6 -0
- package/templates/almadar-web-client/assets/file-x-corner-CXG-jZxs.js +6 -0
- package/templates/almadar-web-client/assets/files-HpA2lv00.js +6 -0
- package/templates/almadar-web-client/assets/film-wtM9RKE0.js +6 -0
- package/templates/almadar-web-client/assets/fingerprint-pattern-D4uVObSY.js +6 -0
- package/templates/almadar-web-client/assets/fire-extinguisher-CKYj-oxc.js +6 -0
- package/templates/almadar-web-client/assets/firebase-B-bLEaNH.js +1605 -0
- package/templates/almadar-web-client/assets/fish-CVxu1XMc.js +6 -0
- package/templates/almadar-web-client/assets/fish-off-BmPKPC8j.js +6 -0
- package/templates/almadar-web-client/assets/fish-symbol-D1BsLMhD.js +6 -0
- package/templates/almadar-web-client/assets/fishing-hook-kD_VAdN-.js +6 -0
- package/templates/almadar-web-client/assets/flag-DQpZsR7q.js +6 -0
- package/templates/almadar-web-client/assets/flag-off-BzBGJAeA.js +6 -0
- package/templates/almadar-web-client/assets/flag-triangle-left-B_sDCKxf.js +6 -0
- package/templates/almadar-web-client/assets/flag-triangle-right-BVpExXuB.js +6 -0
- package/templates/almadar-web-client/assets/flame-CeI0jAQU.js +6 -0
- package/templates/almadar-web-client/assets/flame-kindling-DugJAUOt.js +6 -0
- package/templates/almadar-web-client/assets/flashlight-MPNtkckf.js +6 -0
- package/templates/almadar-web-client/assets/flashlight-off-Wp_8znQK.js +6 -0
- package/templates/almadar-web-client/assets/flask-conical-DEsc08gr.js +6 -0
- package/templates/almadar-web-client/assets/flask-conical-off-Bzhc1m1Y.js +6 -0
- package/templates/almadar-web-client/assets/flask-round-C8iXPOAB.js +6 -0
- package/templates/almadar-web-client/assets/flip-horizontal-2-AsY-kpar.js +6 -0
- package/templates/almadar-web-client/assets/flip-horizontal-RuzyYlp3.js +6 -0
- package/templates/almadar-web-client/assets/flip-vertical-2-CCG7sdoC.js +6 -0
- package/templates/almadar-web-client/assets/flip-vertical-Dhxivb2L.js +6 -0
- package/templates/almadar-web-client/assets/flowDiagram-HODETNUW-CQwAjIUh.js +168 -0
- package/templates/almadar-web-client/assets/flower-2-B4OBchZB.js +6 -0
- package/templates/almadar-web-client/assets/flower-BMsQoKRy.js +6 -0
- package/templates/almadar-web-client/assets/focus-A-Yl75d-.js +6 -0
- package/templates/almadar-web-client/assets/fold-horizontal-Bt-WWzU7.js +6 -0
- package/templates/almadar-web-client/assets/fold-vertical-DUHKzLxf.js +6 -0
- package/templates/almadar-web-client/assets/folder-C5Duj4gp.js +6 -0
- package/templates/almadar-web-client/assets/folder-archive-DcvLZ5FC.js +6 -0
- package/templates/almadar-web-client/assets/folder-check-D7MKR_gE.js +6 -0
- package/templates/almadar-web-client/assets/folder-clock-CdQUEYsf.js +6 -0
- package/templates/almadar-web-client/assets/folder-closed-78A2-hre.js +6 -0
- package/templates/almadar-web-client/assets/folder-code-D3bISwEH.js +6 -0
- package/templates/almadar-web-client/assets/folder-cog-DHWC--2a.js +6 -0
- package/templates/almadar-web-client/assets/folder-dot-B2FY4mmA.js +6 -0
- package/templates/almadar-web-client/assets/folder-down-W5AAoF7U.js +6 -0
- package/templates/almadar-web-client/assets/folder-git-2-BJSx5noc.js +6 -0
- package/templates/almadar-web-client/assets/folder-git-jbGqieu9.js +6 -0
- package/templates/almadar-web-client/assets/folder-heart-DhYH9reZ.js +6 -0
- package/templates/almadar-web-client/assets/folder-input-CN2KXxj4.js +6 -0
- package/templates/almadar-web-client/assets/folder-kanban-BzzikIGt.js +6 -0
- package/templates/almadar-web-client/assets/folder-key-neVxVHCD.js +6 -0
- package/templates/almadar-web-client/assets/folder-lock-Bu5aMzy_.js +6 -0
- package/templates/almadar-web-client/assets/folder-minus-CQyT9pEu.js +6 -0
- package/templates/almadar-web-client/assets/folder-open-Z7HOA4Rh.js +6 -0
- package/templates/almadar-web-client/assets/folder-open-dot-BgdMupN5.js +6 -0
- package/templates/almadar-web-client/assets/folder-output-dOTBasXl.js +6 -0
- package/templates/almadar-web-client/assets/folder-pen-D1oQsxR3.js +6 -0
- package/templates/almadar-web-client/assets/folder-plus-DUPohEEL.js +6 -0
- package/templates/almadar-web-client/assets/folder-root-DFDKa2bs.js +6 -0
- package/templates/almadar-web-client/assets/folder-search-2-CD7c7u9m.js +6 -0
- package/templates/almadar-web-client/assets/folder-search-C3Q3ESQi.js +6 -0
- package/templates/almadar-web-client/assets/folder-symlink-DJWj2TiG.js +6 -0
- package/templates/almadar-web-client/assets/folder-sync-F3xkdqkm.js +6 -0
- package/templates/almadar-web-client/assets/folder-tree-B7615FZj.js +6 -0
- package/templates/almadar-web-client/assets/folder-up-Dg-YxdFe.js +6 -0
- package/templates/almadar-web-client/assets/folder-x-DGOhfkax.js +6 -0
- package/templates/almadar-web-client/assets/folders-aBs8cywG.js +6 -0
- package/templates/almadar-web-client/assets/footprints-BFTOPHnz.js +6 -0
- package/templates/almadar-web-client/assets/forklift-82oknO9T.js +6 -0
- package/templates/almadar-web-client/assets/form-BvYvN8dG.js +6 -0
- package/templates/almadar-web-client/assets/forward-vUM28MdI.js +6 -0
- package/templates/almadar-web-client/assets/frame-DJOsojHO.js +6 -0
- package/templates/almadar-web-client/assets/framer-Det5T4su.js +6 -0
- package/templates/almadar-web-client/assets/frown-BbOkkyAc.js +6 -0
- package/templates/almadar-web-client/assets/fuel-BHj1GUp2.js +6 -0
- package/templates/almadar-web-client/assets/fullscreen-DPHpfdwh.js +6 -0
- package/templates/almadar-web-client/assets/funnel-BtoLNndY.js +6 -0
- package/templates/almadar-web-client/assets/funnel-plus-7lVaFRpg.js +6 -0
- package/templates/almadar-web-client/assets/funnel-x-IKE8FV_N.js +6 -0
- package/templates/almadar-web-client/assets/gallery-horizontal-C3RbifIj.js +6 -0
- package/templates/almadar-web-client/assets/gallery-horizontal-end-iZWZPL9O.js +6 -0
- package/templates/almadar-web-client/assets/gallery-thumbnails-Dzn6i1M1.js +6 -0
- package/templates/almadar-web-client/assets/gallery-vertical-DV_ADZ3H.js +6 -0
- package/templates/almadar-web-client/assets/gallery-vertical-end-B5djDl1-.js +6 -0
- package/templates/almadar-web-client/assets/gamepad-2-jjR5quhc.js +6 -0
- package/templates/almadar-web-client/assets/gamepad-CweVcy5y.js +6 -0
- package/templates/almadar-web-client/assets/gamepad-directional-C3R6uhD2.js +6 -0
- package/templates/almadar-web-client/assets/ganttDiagram-EL5Y4UJY-B7vTb5_Z.js +292 -0
- package/templates/almadar-web-client/assets/gauge-ITZj7uyb.js +6 -0
- package/templates/almadar-web-client/assets/gavel-BSnJ8OWa.js +6 -0
- package/templates/almadar-web-client/assets/gem-JTV8Pc8X.js +6 -0
- package/templates/almadar-web-client/assets/georgian-lari-Cam9fHaS.js +6 -0
- package/templates/almadar-web-client/assets/ghost-BuLuNQJA.js +6 -0
- package/templates/almadar-web-client/assets/gift-BQkzleuZ.js +6 -0
- package/templates/almadar-web-client/assets/git-branch-minus-BLUnVxIi.js +6 -0
- package/templates/almadar-web-client/assets/git-branch-plus-DPeLcKJB.js +6 -0
- package/templates/almadar-web-client/assets/git-commit-horizontal-BaNsnESn.js +6 -0
- package/templates/almadar-web-client/assets/git-commit-vertical-BMoAgcXU.js +6 -0
- package/templates/almadar-web-client/assets/git-compare-5K4bW_H9.js +6 -0
- package/templates/almadar-web-client/assets/git-compare-arrows-COjUWPNh.js +6 -0
- package/templates/almadar-web-client/assets/git-fork-B-2lZZlg.js +6 -0
- package/templates/almadar-web-client/assets/git-graph-DV2BWDZM.js +6 -0
- package/templates/almadar-web-client/assets/git-merge-DuFe8Tqm.js +6 -0
- package/templates/almadar-web-client/assets/git-merge-conflict-CUvLDkJz.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-ad9WPNqy.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-arrow-wRPiqna8.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-closed-CkIEZ5Fv.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-create-DSJM0wBu.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-create-arrow-Br8RevDT.js +6 -0
- package/templates/almadar-web-client/assets/git-pull-request-draft-DAY3SDlC.js +6 -0
- package/templates/almadar-web-client/assets/gitGraphDiagram-WWUBYQGX-B_CIkRYs.js +106 -0
- package/templates/almadar-web-client/assets/github-B6fBNgfV.js +6 -0
- package/templates/almadar-web-client/assets/gitlab-uDzJ10Py.js +6 -0
- package/templates/almadar-web-client/assets/glass-water-BTKd9siI.js +6 -0
- package/templates/almadar-web-client/assets/glasses-BoCJAVgp.js +6 -0
- package/templates/almadar-web-client/assets/globe-FDJ4FmoM.js +6 -0
- package/templates/almadar-web-client/assets/globe-lock-Br6v0-5Q.js +6 -0
- package/templates/almadar-web-client/assets/globe-off-BBNDZBZH.js +6 -0
- package/templates/almadar-web-client/assets/globe-x-RclMJ3R9.js +6 -0
- package/templates/almadar-web-client/assets/goal-DASfK0q_.js +6 -0
- package/templates/almadar-web-client/assets/gpu-C8DQIcJD.js +6 -0
- package/templates/almadar-web-client/assets/graduation-cap-DaAqTXVL.js +6 -0
- package/templates/almadar-web-client/assets/grape-C0kJ0kaO.js +6 -0
- package/templates/almadar-web-client/assets/grid-2x2-3wCoQndG.js +6 -0
- package/templates/almadar-web-client/assets/grid-2x2-check-q0Q368HJ.js +6 -0
- package/templates/almadar-web-client/assets/grid-2x2-plus-D59Wn7Gp.js +6 -0
- package/templates/almadar-web-client/assets/grid-2x2-x-LUlI5Gn4.js +6 -0
- package/templates/almadar-web-client/assets/grid-3x2-D6kbjH5s.js +6 -0
- package/templates/almadar-web-client/assets/grid-3x3-CspW-37G.js +6 -0
- package/templates/almadar-web-client/assets/grip-C7Eiaj1X.js +6 -0
- package/templates/almadar-web-client/assets/grip-horizontal-D0uOjxxq.js +6 -0
- package/templates/almadar-web-client/assets/grip-vertical-ZIigAwm7.js +6 -0
- package/templates/almadar-web-client/assets/group-_g1Ukhyc.js +6 -0
- package/templates/almadar-web-client/assets/guitar-vhyPeUi_.js +6 -0
- package/templates/almadar-web-client/assets/ham-BDEwcoHB.js +6 -0
- package/templates/almadar-web-client/assets/hamburger-DdsK727H.js +6 -0
- package/templates/almadar-web-client/assets/hammer-9gS0XhDJ.js +6 -0
- package/templates/almadar-web-client/assets/hand-CkxrNOO7.js +6 -0
- package/templates/almadar-web-client/assets/hand-coins-BZQNZo12.js +6 -0
- package/templates/almadar-web-client/assets/hand-fist-C1TfT8md.js +6 -0
- package/templates/almadar-web-client/assets/hand-grab-D49-ZhqT.js +6 -0
- package/templates/almadar-web-client/assets/hand-heart-CtWajk0M.js +6 -0
- package/templates/almadar-web-client/assets/hand-helping-CbOuNwpz.js +6 -0
- package/templates/almadar-web-client/assets/hand-metal-Bua03Bwp.js +6 -0
- package/templates/almadar-web-client/assets/hand-platter-CsXaK5RC.js +6 -0
- package/templates/almadar-web-client/assets/handbag-Co-zAONr.js +6 -0
- package/templates/almadar-web-client/assets/handshake-DvrMMR2V.js +6 -0
- package/templates/almadar-web-client/assets/hard-drive-Dk_G1ChB.js +6 -0
- package/templates/almadar-web-client/assets/hard-drive-download-c2EX7ufP.js +6 -0
- package/templates/almadar-web-client/assets/hard-drive-upload-0r9jcRhM.js +6 -0
- package/templates/almadar-web-client/assets/hard-hat-C3_O-pQd.js +6 -0
- package/templates/almadar-web-client/assets/hash-C0MGX2wN.js +6 -0
- package/templates/almadar-web-client/assets/hat-glasses-mAjl39jk.js +6 -0
- package/templates/almadar-web-client/assets/haze-CsDwFou6.js +6 -0
- package/templates/almadar-web-client/assets/hd-DC0Wwv4u.js +6 -0
- package/templates/almadar-web-client/assets/hdmi-port-BQvhSD6i.js +6 -0
- package/templates/almadar-web-client/assets/heading-4-YbChKH4S.js +6 -0
- package/templates/almadar-web-client/assets/heading-5-TgCgvS4G.js +6 -0
- package/templates/almadar-web-client/assets/heading-6-Cp4gxzoC.js +6 -0
- package/templates/almadar-web-client/assets/heading-Dh9BCGYJ.js +6 -0
- package/templates/almadar-web-client/assets/headphone-off-IOSakHJy.js +6 -0
- package/templates/almadar-web-client/assets/headphones-CyRKRc3D.js +6 -0
- package/templates/almadar-web-client/assets/headset-BKWUcxuM.js +6 -0
- package/templates/almadar-web-client/assets/heart-BLYVLCzC.js +6 -0
- package/templates/almadar-web-client/assets/heart-crack-BzgWOjH5.js +6 -0
- package/templates/almadar-web-client/assets/heart-handshake-Bh84TqBE.js +6 -0
- package/templates/almadar-web-client/assets/heart-minus-Rweu4Xn2.js +6 -0
- package/templates/almadar-web-client/assets/heart-off-DxMU-tPK.js +6 -0
- package/templates/almadar-web-client/assets/heart-plus-IgMBdlYs.js +6 -0
- package/templates/almadar-web-client/assets/heart-pulse-CBRDkPFw.js +6 -0
- package/templates/almadar-web-client/assets/heater-CBsEpSrx.js +6 -0
- package/templates/almadar-web-client/assets/helicopter-DkZZWHXU.js +6 -0
- package/templates/almadar-web-client/assets/hexagon-BBk_dCbi.js +6 -0
- package/templates/almadar-web-client/assets/highlighter-C5naXKfl.js +6 -0
- package/templates/almadar-web-client/assets/history-B4tP6Mqv.js +6 -0
- package/templates/almadar-web-client/assets/hop-Btb7xVJc.js +6 -0
- package/templates/almadar-web-client/assets/hop-off-BbhPOWVR.js +6 -0
- package/templates/almadar-web-client/assets/hospital-BVUqTwQp.js +6 -0
- package/templates/almadar-web-client/assets/hotel-B78qqbBo.js +6 -0
- package/templates/almadar-web-client/assets/hourglass-BpMCr0k7.js +6 -0
- package/templates/almadar-web-client/assets/house-heart-L_3yV9ei.js +6 -0
- package/templates/almadar-web-client/assets/house-jk2eFi1s.js +6 -0
- package/templates/almadar-web-client/assets/house-plug-oKphBpCo.js +6 -0
- package/templates/almadar-web-client/assets/house-plus-DCYHpa2u.js +6 -0
- package/templates/almadar-web-client/assets/house-wifi-D8kg_4ri.js +6 -0
- package/templates/almadar-web-client/assets/ice-cream-bowl-uEDAfXt5.js +6 -0
- package/templates/almadar-web-client/assets/ice-cream-cone-9Gv-yxuR.js +6 -0
- package/templates/almadar-web-client/assets/id-card-BurhFk0k.js +6 -0
- package/templates/almadar-web-client/assets/id-card-lanyard-CPAKpxkU.js +6 -0
- package/templates/almadar-web-client/assets/image-down--CQgEFkC.js +6 -0
- package/templates/almadar-web-client/assets/image-minus-DhYrHB7I.js +6 -0
- package/templates/almadar-web-client/assets/image-off-DSzI_wcS.js +6 -0
- package/templates/almadar-web-client/assets/image-play-bs1zOgBt.js +6 -0
- package/templates/almadar-web-client/assets/image-plus-CxhGwtFb.js +6 -0
- package/templates/almadar-web-client/assets/image-up-DHhYqo2o.js +6 -0
- package/templates/almadar-web-client/assets/image-upscale-DOQl_S-b.js +6 -0
- package/templates/almadar-web-client/assets/images-BKhj_S4S.js +6 -0
- package/templates/almadar-web-client/assets/import-2qoNwmdx.js +6 -0
- package/templates/almadar-web-client/assets/inbox-DGLfKPqB.js +6 -0
- package/templates/almadar-web-client/assets/index-DrNfCe6P.css +1 -0
- package/templates/almadar-web-client/assets/index-KTExyhEo.js +1 -0
- package/templates/almadar-web-client/assets/index-i3RF3skp.js +1 -0
- package/templates/almadar-web-client/assets/index-qZgmBVnb.js +637 -0
- package/templates/almadar-web-client/assets/indian-rupee-DwA8vpa0.js +6 -0
- package/templates/almadar-web-client/assets/infinity-BzwcEEaa.js +6 -0
- package/templates/almadar-web-client/assets/info-CJBHQn7v.js +6 -0
- package/templates/almadar-web-client/assets/infoDiagram-27XIBGKW-YU7pvGJ5.js +2 -0
- package/templates/almadar-web-client/assets/init-Gi6I4Gst.js +1 -0
- package/templates/almadar-web-client/assets/inspection-panel-NXLX0XMR.js +6 -0
- package/templates/almadar-web-client/assets/instagram-CXVkxvUC.js +6 -0
- package/templates/almadar-web-client/assets/ishikawaDiagram-5VMMS53U-D6rP0LeW.js +70 -0
- package/templates/almadar-web-client/assets/iteration-ccw-Cxerkuc_.js +6 -0
- package/templates/almadar-web-client/assets/iteration-cw-Ghvv9fFr.js +6 -0
- package/templates/almadar-web-client/assets/japanese-yen-CVJeKp5k.js +6 -0
- package/templates/almadar-web-client/assets/journeyDiagram-3NMN7TZE-BFwDjphM.js +139 -0
- package/templates/almadar-web-client/assets/joystick-DyempV_5.js +6 -0
- package/templates/almadar-web-client/assets/kanban-DxsLoc_H.js +6 -0
- package/templates/almadar-web-client/assets/kanban-definition-UXKFOSKX-B4vMGGNT.js +89 -0
- package/templates/almadar-web-client/assets/katex-C5jXJg4s.js +257 -0
- package/templates/almadar-web-client/assets/katexPlugin-NCDKOOQY-CnQCEyYn.js +3 -0
- package/templates/almadar-web-client/assets/kayak-Ct2MeEoX.js +6 -0
- package/templates/almadar-web-client/assets/kernel-CUmU0Gex.js +2 -0
- package/templates/almadar-web-client/assets/kernel-client-JW6OH5FX-CYgTvyQy.js +1 -0
- package/templates/almadar-web-client/assets/key-Bgaa8S07.js +6 -0
- package/templates/almadar-web-client/assets/key-round-DOQyCigX.js +6 -0
- package/templates/almadar-web-client/assets/key-square-C_N_94IM.js +6 -0
- package/templates/almadar-web-client/assets/keyboard-CoBoePfB.js +6 -0
- package/templates/almadar-web-client/assets/keyboard-music-BlMSClcM.js +6 -0
- package/templates/almadar-web-client/assets/keyboard-off-CPZJmkVR.js +6 -0
- package/templates/almadar-web-client/assets/lamp-Sg7p_5kt.js +6 -0
- package/templates/almadar-web-client/assets/lamp-ceiling-B_Dek26Y.js +6 -0
- package/templates/almadar-web-client/assets/lamp-desk-BBGLCee9.js +6 -0
- package/templates/almadar-web-client/assets/lamp-floor-lgzcc8ee.js +6 -0
- package/templates/almadar-web-client/assets/lamp-wall-down-I7OZNCo9.js +6 -0
- package/templates/almadar-web-client/assets/lamp-wall-up-Buy-ATDM.js +6 -0
- package/templates/almadar-web-client/assets/land-plot-Burp5vk-.js +6 -0
- package/templates/almadar-web-client/assets/landmark-7RB_eRkq.js +6 -0
- package/templates/almadar-web-client/assets/languages-Dine3Bkx.js +6 -0
- package/templates/almadar-web-client/assets/laptop-CO2ittXC.js +6 -0
- package/templates/almadar-web-client/assets/laptop-minimal-DvWsU-AI.js +6 -0
- package/templates/almadar-web-client/assets/laptop-minimal-check-DuHZeCxw.js +6 -0
- package/templates/almadar-web-client/assets/lasso-C9jxL2wE.js +6 -0
- package/templates/almadar-web-client/assets/lasso-select-CByQw8Ot.js +6 -0
- package/templates/almadar-web-client/assets/laugh-DH-llZUq.js +6 -0
- package/templates/almadar-web-client/assets/layers-2-DF1j93xD.js +6 -0
- package/templates/almadar-web-client/assets/layers-BfVYtxGq.js +6 -0
- package/templates/almadar-web-client/assets/layers-plus-BnQp0bEi.js +6 -0
- package/templates/almadar-web-client/assets/layout-BPfsNcYc.js +1 -0
- package/templates/almadar-web-client/assets/layout-dashboard-k6K2Ci7x.js +6 -0
- package/templates/almadar-web-client/assets/layout-grid-CbP-jcvL.js +6 -0
- package/templates/almadar-web-client/assets/layout-list-DGCAOqlW.js +6 -0
- package/templates/almadar-web-client/assets/layout-panel-left-DBDhrlpy.js +6 -0
- package/templates/almadar-web-client/assets/layout-panel-top-7TAvtizQ.js +6 -0
- package/templates/almadar-web-client/assets/layout-template-DUS0UFjF.js +6 -0
- package/templates/almadar-web-client/assets/leaf-CqzTnRXZ.js +6 -0
- package/templates/almadar-web-client/assets/leaflet-Dgihpmma.css +1 -0
- package/templates/almadar-web-client/assets/leaflet-src-C3GlA_SY.js +4 -0
- package/templates/almadar-web-client/assets/leafy-green-5dlOKPPK.js +6 -0
- package/templates/almadar-web-client/assets/lectern-PnILWCTg.js +6 -0
- package/templates/almadar-web-client/assets/lens-concave-BymSjTSw.js +6 -0
- package/templates/almadar-web-client/assets/lens-convex-CPSyKjG7.js +6 -0
- package/templates/almadar-web-client/assets/library-BxTee2uk.js +6 -0
- package/templates/almadar-web-client/assets/library-big-DYNVw0aL.js +6 -0
- package/templates/almadar-web-client/assets/life-buoy-fRZgRmxe.js +6 -0
- package/templates/almadar-web-client/assets/ligature-BlVq4NNy.js +6 -0
- package/templates/almadar-web-client/assets/lightbulb-off-BH-b0-jy.js +6 -0
- package/templates/almadar-web-client/assets/line-dot-right-horizontal-CKMMc_Cu.js +6 -0
- package/templates/almadar-web-client/assets/line-squiggle-ssR4GuJ4.js +6 -0
- package/templates/almadar-web-client/assets/linear-BZ33nqK2.js +1 -0
- package/templates/almadar-web-client/assets/link-2-off-lZx2wHOB.js +6 -0
- package/templates/almadar-web-client/assets/linkedin-C8ONyAmC.js +6 -0
- package/templates/almadar-web-client/assets/list-check-CuIpnwH_.js +6 -0
- package/templates/almadar-web-client/assets/list-checks-CCWpgea1.js +6 -0
- package/templates/almadar-web-client/assets/list-chevrons-down-up-AoPT_H3y.js +6 -0
- package/templates/almadar-web-client/assets/list-chevrons-up-down-D3_SU4b-.js +6 -0
- package/templates/almadar-web-client/assets/list-collapse-BWaE6R0X.js +6 -0
- package/templates/almadar-web-client/assets/list-end-DWe5BURR.js +6 -0
- package/templates/almadar-web-client/assets/list-filter-jqTwxloY.js +6 -0
- package/templates/almadar-web-client/assets/list-filter-plus-5_ulaRcP.js +6 -0
- package/templates/almadar-web-client/assets/list-indent-decrease-B0-nOzJ9.js +6 -0
- package/templates/almadar-web-client/assets/list-indent-increase-fhrKoWF4.js +6 -0
- package/templates/almadar-web-client/assets/list-minus-BlOK1skI.js +6 -0
- package/templates/almadar-web-client/assets/list-music-BXypKpGy.js +6 -0
- package/templates/almadar-web-client/assets/list-plus-CvrMBc3D.js +6 -0
- package/templates/almadar-web-client/assets/list-restart-CroO9g8P.js +6 -0
- package/templates/almadar-web-client/assets/list-start-CRvlB_20.js +6 -0
- package/templates/almadar-web-client/assets/list-todo-BkudK4vB.js +6 -0
- package/templates/almadar-web-client/assets/list-tree-BAjD1l2l.js +6 -0
- package/templates/almadar-web-client/assets/list-video-4EXxq-9z.js +6 -0
- package/templates/almadar-web-client/assets/list-x-CPW2Ip8q.js +6 -0
- package/templates/almadar-web-client/assets/loader-BCh6uv6Z.js +6 -0
- package/templates/almadar-web-client/assets/loader-pinwheel-DL0o16L3.js +6 -0
- package/templates/almadar-web-client/assets/locate-DqkeFMa5.js +6 -0
- package/templates/almadar-web-client/assets/locate-fixed-CRdqcXXG.js +6 -0
- package/templates/almadar-web-client/assets/locate-off-CtTz4JOy.js +6 -0
- package/templates/almadar-web-client/assets/lock-C960fAU2.js +6 -0
- package/templates/almadar-web-client/assets/lock-keyhole-Ch2QHaxg.js +6 -0
- package/templates/almadar-web-client/assets/lock-keyhole-open-XXZZQ3Hu.js +6 -0
- package/templates/almadar-web-client/assets/lock-open-CmcU-xUZ.js +6 -0
- package/templates/almadar-web-client/assets/log-in-BhMANzk4.js +6 -0
- package/templates/almadar-web-client/assets/log-out-BvMv27h_.js +6 -0
- package/templates/almadar-web-client/assets/logs-Ct7089XJ.js +6 -0
- package/templates/almadar-web-client/assets/lollipop-Dyk5u4u6.js +6 -0
- package/templates/almadar-web-client/assets/luggage-Nl0mndD5.js +6 -0
- package/templates/almadar-web-client/assets/magnet-BTOZVcHx.js +6 -0
- package/templates/almadar-web-client/assets/mail-check-Bjrg7Ut1.js +6 -0
- package/templates/almadar-web-client/assets/mail-minus-CbaNqZuJ.js +6 -0
- package/templates/almadar-web-client/assets/mail-open-CRlJT-eN.js +6 -0
- package/templates/almadar-web-client/assets/mail-plus-BlmK5byQ.js +6 -0
- package/templates/almadar-web-client/assets/mail-question-mark-BQL1sGBM.js +6 -0
- package/templates/almadar-web-client/assets/mail-search-D9FR1Z0I.js +6 -0
- package/templates/almadar-web-client/assets/mail-thsM981c.js +6 -0
- package/templates/almadar-web-client/assets/mail-warning-BAMGuaGy.js +6 -0
- package/templates/almadar-web-client/assets/mail-x-CZYsrJ1r.js +6 -0
- package/templates/almadar-web-client/assets/mailbox-BZcQoGBr.js +6 -0
- package/templates/almadar-web-client/assets/mails-C1SWqFHp.js +6 -0
- package/templates/almadar-web-client/assets/map-B07RS38l.js +6 -0
- package/templates/almadar-web-client/assets/map-minus-Ci-y8tsm.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-QhtM3t3I.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-check-NnBwK_uU.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-check-inside-CakuvZ7d.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-house-dpO_-V6o.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-minus-DFpfOCqS.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-minus-inside-BcK5hPC-.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-off-Fm-HdIT4.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-pen-BOnrefWK.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-plus-B5-IMny0.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-plus-inside-BaDLrdQy.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-x-CZ4U_PD8.js +6 -0
- package/templates/almadar-web-client/assets/map-pin-x-inside-CO-KoNDl.js +6 -0
- package/templates/almadar-web-client/assets/map-pinned-NBWyKvsT.js +6 -0
- package/templates/almadar-web-client/assets/map-plus-DUsSk6RB.js +6 -0
- package/templates/almadar-web-client/assets/mars-BlmER6uv.js +6 -0
- package/templates/almadar-web-client/assets/mars-stroke-DopD3wdJ.js +6 -0
- package/templates/almadar-web-client/assets/martini-DQsa6Xpe.js +6 -0
- package/templates/almadar-web-client/assets/maximize-2-DH8rPRWV.js +6 -0
- package/templates/almadar-web-client/assets/maximize-CX-pJDhs.js +6 -0
- package/templates/almadar-web-client/assets/medal-KNYk861f.js +6 -0
- package/templates/almadar-web-client/assets/megaphone-BAYkqT_U.js +6 -0
- package/templates/almadar-web-client/assets/megaphone-off-BxWl9ECv.js +6 -0
- package/templates/almadar-web-client/assets/meh-CsKUBzsx.js +6 -0
- package/templates/almadar-web-client/assets/memory-stick-D2nngBXF.js +6 -0
- package/templates/almadar-web-client/assets/merge-OEXdKJLw.js +6 -0
- package/templates/almadar-web-client/assets/mermaid.core-Cqn8fV__.js +312 -0
- package/templates/almadar-web-client/assets/message-circle-C-8xCHLb.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-code-CQCwm0fL.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-dashed-BptnB3oZ.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-heart-Dg3wxmav.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-more-CUT4I_wd.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-off-Dfn2izPk.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-plus-BUuSIUbw.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-question-mark-DEBdkhsm.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-reply-t1eykvQj.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-warning-Crox96Ev.js +6 -0
- package/templates/almadar-web-client/assets/message-circle-x-eD1LC7CC.js +6 -0
- package/templates/almadar-web-client/assets/message-square-BPWRdsgy.js +6 -0
- package/templates/almadar-web-client/assets/message-square-code-BrqALilM.js +6 -0
- package/templates/almadar-web-client/assets/message-square-dashed-BD6DWMur.js +6 -0
- package/templates/almadar-web-client/assets/message-square-diff-Dx2xtXAT.js +6 -0
- package/templates/almadar-web-client/assets/message-square-dot-jpzWOMLV.js +6 -0
- package/templates/almadar-web-client/assets/message-square-heart-D4Fi3SWj.js +6 -0
- package/templates/almadar-web-client/assets/message-square-lock-DzJcGTw_.js +6 -0
- package/templates/almadar-web-client/assets/message-square-more-BcCqOOBr.js +6 -0
- package/templates/almadar-web-client/assets/message-square-off-B-IotEpi.js +6 -0
- package/templates/almadar-web-client/assets/message-square-plus-C7gJ_Idw.js +6 -0
- package/templates/almadar-web-client/assets/message-square-quote-91jHeoLb.js +6 -0
- package/templates/almadar-web-client/assets/message-square-reply-C3yIEbpQ.js +6 -0
- package/templates/almadar-web-client/assets/message-square-share-ZCkPd0-V.js +6 -0
- package/templates/almadar-web-client/assets/message-square-text-BX8TmLCQ.js +6 -0
- package/templates/almadar-web-client/assets/message-square-warning-B2qvp-kO.js +6 -0
- package/templates/almadar-web-client/assets/message-square-x-DMIua9Wt.js +6 -0
- package/templates/almadar-web-client/assets/messages-square-DBeoVko3.js +6 -0
- package/templates/almadar-web-client/assets/mic-BbGDQtL4.js +6 -0
- package/templates/almadar-web-client/assets/mic-off-DNQP72XF.js +6 -0
- package/templates/almadar-web-client/assets/mic-vocal-BBj3o3j4.js +6 -0
- package/templates/almadar-web-client/assets/microchip-D4-UnZKN.js +6 -0
- package/templates/almadar-web-client/assets/microscope-DUx91G7R.js +6 -0
- package/templates/almadar-web-client/assets/microwave-BRuA5Pw2.js +6 -0
- package/templates/almadar-web-client/assets/milestone-RKtE2i_t.js +6 -0
- package/templates/almadar-web-client/assets/milk-off-D6oqoAw5.js +6 -0
- package/templates/almadar-web-client/assets/milk-xglJnqVe.js +6 -0
- package/templates/almadar-web-client/assets/mindmap-definition-YA3MSWOX-COfKdQWM.js +96 -0
- package/templates/almadar-web-client/assets/minimize-2-zNIfQrqD.js +6 -0
- package/templates/almadar-web-client/assets/minimize-XcCxw16d.js +6 -0
- package/templates/almadar-web-client/assets/mirror-rectangular--jHjOVsS.js +6 -0
- package/templates/almadar-web-client/assets/mirror-round-D8SDI2t2.js +6 -0
- package/templates/almadar-web-client/assets/monitor-BYU2mHmk.js +6 -0
- package/templates/almadar-web-client/assets/monitor-check-yKdPRGTu.js +6 -0
- package/templates/almadar-web-client/assets/monitor-cloud-BsnFA2XZ.js +6 -0
- package/templates/almadar-web-client/assets/monitor-cog-S_272Vek.js +6 -0
- package/templates/almadar-web-client/assets/monitor-dot-Do16UDXi.js +6 -0
- package/templates/almadar-web-client/assets/monitor-down-DGHNLCwa.js +6 -0
- package/templates/almadar-web-client/assets/monitor-off-Bx7p87dN.js +6 -0
- package/templates/almadar-web-client/assets/monitor-pause-3EX_tC9c.js +6 -0
- package/templates/almadar-web-client/assets/monitor-play-C4PF7Xd1.js +6 -0
- package/templates/almadar-web-client/assets/monitor-smartphone-C90vzMJQ.js +6 -0
- package/templates/almadar-web-client/assets/monitor-speaker-Cu80ImXq.js +6 -0
- package/templates/almadar-web-client/assets/monitor-stop-g-OFxNdR.js +6 -0
- package/templates/almadar-web-client/assets/monitor-up-BegcVhrD.js +6 -0
- package/templates/almadar-web-client/assets/monitor-x-CmkEkCap.js +6 -0
- package/templates/almadar-web-client/assets/moon-DBrcqT7m.js +6 -0
- package/templates/almadar-web-client/assets/moon-star-CyAPZYkd.js +6 -0
- package/templates/almadar-web-client/assets/motorbike-Cyjf0rEl.js +6 -0
- package/templates/almadar-web-client/assets/mountain-bz4_UlzP.js +6 -0
- package/templates/almadar-web-client/assets/mountain-snow-CbBK6Zbk.js +6 -0
- package/templates/almadar-web-client/assets/mouse-CU2iyNcm.js +6 -0
- package/templates/almadar-web-client/assets/mouse-off-DLDnhF2Z.js +6 -0
- package/templates/almadar-web-client/assets/mouse-pointer-2-BWOab7BM.js +6 -0
- package/templates/almadar-web-client/assets/mouse-pointer-2-off-BNGZA7Gc.js +6 -0
- package/templates/almadar-web-client/assets/mouse-pointer-Dwz0haHG.js +6 -0
- package/templates/almadar-web-client/assets/mouse-pointer-ban-C5N-9CAl.js +6 -0
- package/templates/almadar-web-client/assets/mouse-pointer-click-DvsWu024.js +6 -0
- package/templates/almadar-web-client/assets/move-3d-Di_FsPLD.js +6 -0
- package/templates/almadar-web-client/assets/move-BVOVK30j.js +6 -0
- package/templates/almadar-web-client/assets/move-diagonal-2-D4t4euZg.js +6 -0
- package/templates/almadar-web-client/assets/move-diagonal-HIiHUYMI.js +6 -0
- package/templates/almadar-web-client/assets/move-down-Cmt3y2cc.js +6 -0
- package/templates/almadar-web-client/assets/move-down-left-BeIJd9Gd.js +6 -0
- package/templates/almadar-web-client/assets/move-down-right-B7lY-7zo.js +6 -0
- package/templates/almadar-web-client/assets/move-horizontal-DkP9B0EW.js +6 -0
- package/templates/almadar-web-client/assets/move-left-BHEeF_nN.js +6 -0
- package/templates/almadar-web-client/assets/move-right-PUQQA5Y_.js +6 -0
- package/templates/almadar-web-client/assets/move-up-DE9zFd4a.js +6 -0
- package/templates/almadar-web-client/assets/move-up-left-BlDMrMdK.js +6 -0
- package/templates/almadar-web-client/assets/move-up-right-CbMXwEpx.js +6 -0
- package/templates/almadar-web-client/assets/move-vertical-BttIozgX.js +6 -0
- package/templates/almadar-web-client/assets/music-2-BaTEjA3-.js +6 -0
- package/templates/almadar-web-client/assets/music-3-E3ADXlNg.js +6 -0
- package/templates/almadar-web-client/assets/music-4-BaLgnscF.js +6 -0
- package/templates/almadar-web-client/assets/music-qK-hUU9P.js +6 -0
- package/templates/almadar-web-client/assets/navigation-2-B06z3ocs.js +6 -0
- package/templates/almadar-web-client/assets/navigation-2-off-BE85LZFg.js +6 -0
- package/templates/almadar-web-client/assets/navigation-DyFns2aZ.js +6 -0
- package/templates/almadar-web-client/assets/navigation-off-BgD-usQ7.js +6 -0
- package/templates/almadar-web-client/assets/network-CKFd4aTN.js +6 -0
- package/templates/almadar-web-client/assets/newspaper-BKqQ6puw.js +6 -0
- package/templates/almadar-web-client/assets/nfc-DtKKCkHm.js +6 -0
- package/templates/almadar-web-client/assets/non-binary-RMr3hYCh.js +6 -0
- package/templates/almadar-web-client/assets/notebook-BmwG8dnR.js +6 -0
- package/templates/almadar-web-client/assets/notebook-pen-cyqKberl.js +6 -0
- package/templates/almadar-web-client/assets/notebook-tabs-DNS7CuGn.js +6 -0
- package/templates/almadar-web-client/assets/notebook-text-DEnKuv8s.js +6 -0
- package/templates/almadar-web-client/assets/notepad-text-9dw5J9_p.js +6 -0
- package/templates/almadar-web-client/assets/notepad-text-dashed-C8Ur5UXg.js +6 -0
- package/templates/almadar-web-client/assets/nut-m--9V4ic.js +6 -0
- package/templates/almadar-web-client/assets/nut-off-Bid15mz1.js +6 -0
- package/templates/almadar-web-client/assets/octagon-B3QkQz7Q.js +6 -0
- package/templates/almadar-web-client/assets/octagon-alert-wDotAHT2.js +6 -0
- package/templates/almadar-web-client/assets/octagon-minus-kQpjR7W1.js +6 -0
- package/templates/almadar-web-client/assets/octagon-pause-DhSa6PTU.js +6 -0
- package/templates/almadar-web-client/assets/octagon-x-Ctj5YYdX.js +6 -0
- package/templates/almadar-web-client/assets/omega-D1piAiny.js +6 -0
- package/templates/almadar-web-client/assets/option-PI40jxJo.js +6 -0
- package/templates/almadar-web-client/assets/orbit-D84DmvAX.js +6 -0
- package/templates/almadar-web-client/assets/orbital_wasm_bg-nTA5UC0_.wasm +0 -0
- package/templates/almadar-web-client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/templates/almadar-web-client/assets/origami-CuOGvF79.js +6 -0
- package/templates/almadar-web-client/assets/package-2-Bem7jWTT.js +6 -0
- package/templates/almadar-web-client/assets/package-Cwcs1FRG.js +6 -0
- package/templates/almadar-web-client/assets/package-check-DKxnBGm2.js +6 -0
- package/templates/almadar-web-client/assets/package-minus-i9n_PX-d.js +6 -0
- package/templates/almadar-web-client/assets/package-open-BH_aiHge.js +6 -0
- package/templates/almadar-web-client/assets/package-plus-Co-CRFNh.js +6 -0
- package/templates/almadar-web-client/assets/package-search-BebHlc3o.js +6 -0
- package/templates/almadar-web-client/assets/package-x-eVzs9ZtO.js +6 -0
- package/templates/almadar-web-client/assets/paint-bucket-QlCzwoE0.js +6 -0
- package/templates/almadar-web-client/assets/paint-roller-C6P1ubBI.js +6 -0
- package/templates/almadar-web-client/assets/paintbrush-vG9xM3uk.js +6 -0
- package/templates/almadar-web-client/assets/paintbrush-vertical-BkZ8wsIo.js +6 -0
- package/templates/almadar-web-client/assets/palette-CY_qhWwG.js +6 -0
- package/templates/almadar-web-client/assets/panda-Ex5jGGSJ.js +6 -0
- package/templates/almadar-web-client/assets/panel-bottom-CEcK38L4.js +6 -0
- package/templates/almadar-web-client/assets/panel-bottom-close-BIPdypqQ.js +6 -0
- package/templates/almadar-web-client/assets/panel-bottom-dashed-NiHsSVBp.js +6 -0
- package/templates/almadar-web-client/assets/panel-bottom-open-C3PJmr9K.js +6 -0
- package/templates/almadar-web-client/assets/panel-left-Cs-dRIvQ.js +6 -0
- package/templates/almadar-web-client/assets/panel-left-close-BfK_PLFV.js +6 -0
- package/templates/almadar-web-client/assets/panel-left-dashed-Cvkg3-Yo.js +6 -0
- package/templates/almadar-web-client/assets/panel-left-open-BsPP8aRA.js +6 -0
- package/templates/almadar-web-client/assets/panel-left-right-dashed-BNlvD6ON.js +6 -0
- package/templates/almadar-web-client/assets/panel-right-c2Z-Id81.js +6 -0
- package/templates/almadar-web-client/assets/panel-right-close-BPkbMACi.js +6 -0
- package/templates/almadar-web-client/assets/panel-right-dashed-Cf7WhqWc.js +6 -0
- package/templates/almadar-web-client/assets/panel-right-open-LXc7M1UD.js +6 -0
- package/templates/almadar-web-client/assets/panel-top-bottom-dashed-fclFYsXa.js +6 -0
- package/templates/almadar-web-client/assets/panel-top-close--PgqvfGA.js +6 -0
- package/templates/almadar-web-client/assets/panel-top-dashed-CE2BB8AE.js +6 -0
- package/templates/almadar-web-client/assets/panel-top-open-9teFECEE.js +6 -0
- package/templates/almadar-web-client/assets/panel-top-vnuCgAdo.js +6 -0
- package/templates/almadar-web-client/assets/panels-left-bottom-DxxhxABj.js +6 -0
- package/templates/almadar-web-client/assets/panels-right-bottom-Y126oUDh.js +6 -0
- package/templates/almadar-web-client/assets/panels-top-left-CbnuwKKz.js +6 -0
- package/templates/almadar-web-client/assets/paperclip-GaEckryv.js +6 -0
- package/templates/almadar-web-client/assets/parentheses-BMJvcBnb.js +6 -0
- package/templates/almadar-web-client/assets/parking-meter-B7uoJaJH.js +6 -0
- package/templates/almadar-web-client/assets/party-popper-B81lbBh7.js +6 -0
- package/templates/almadar-web-client/assets/pause-Byec14_q.js +6 -0
- package/templates/almadar-web-client/assets/paw-print-B4RK1bIl.js +6 -0
- package/templates/almadar-web-client/assets/pc-case-BXLtQeEI.js +6 -0
- package/templates/almadar-web-client/assets/pegDiagram-XKGWAZYB-DZn7vuA4.js +1 -0
- package/templates/almadar-web-client/assets/pen-dIngdO1n.js +6 -0
- package/templates/almadar-web-client/assets/pen-line-DImLQhx_.js +6 -0
- package/templates/almadar-web-client/assets/pen-off-DhvcIXVG.js +6 -0
- package/templates/almadar-web-client/assets/pen-tool-COlYu_ND.js +6 -0
- package/templates/almadar-web-client/assets/pencil-line-C-HRCt3G.js +6 -0
- package/templates/almadar-web-client/assets/pencil-off-CliOBfM4.js +6 -0
- package/templates/almadar-web-client/assets/pencil-ruler-ByBuLnFO.js +6 -0
- package/templates/almadar-web-client/assets/pentagon-CtH3ry9F.js +6 -0
- package/templates/almadar-web-client/assets/percent-DpCD50iQ.js +6 -0
- package/templates/almadar-web-client/assets/person-standing-C9AZrOqi.js +6 -0
- package/templates/almadar-web-client/assets/philippine-peso-DmAc_MEg.js +6 -0
- package/templates/almadar-web-client/assets/phone-call-CVew14Tr.js +6 -0
- package/templates/almadar-web-client/assets/phone-forwarded-IB9GfNDY.js +6 -0
- package/templates/almadar-web-client/assets/phone-h9jMGcwU.js +6 -0
- package/templates/almadar-web-client/assets/phone-incoming-Cgi90uQ_.js +6 -0
- package/templates/almadar-web-client/assets/phone-missed-Dw4XfMid.js +6 -0
- package/templates/almadar-web-client/assets/phone-off-DTdIFYon.js +6 -0
- package/templates/almadar-web-client/assets/phone-outgoing-BT8TbuH6.js +6 -0
- package/templates/almadar-web-client/assets/pi-8zMLT6Ni.js +6 -0
- package/templates/almadar-web-client/assets/piano-M77XthLm.js +6 -0
- package/templates/almadar-web-client/assets/pickaxe-BmXNJxHn.js +6 -0
- package/templates/almadar-web-client/assets/picture-in-picture-2-Cxq96jST.js +6 -0
- package/templates/almadar-web-client/assets/picture-in-picture-CA3YqqnF.js +6 -0
- package/templates/almadar-web-client/assets/pieDiagram-E7YTZNPT-CleZNZdK.js +39 -0
- package/templates/almadar-web-client/assets/piggy-bank-DevaoV4o.js +6 -0
- package/templates/almadar-web-client/assets/pilcrow-gtchWMTb.js +6 -0
- package/templates/almadar-web-client/assets/pilcrow-left-CkzbaTFd.js +6 -0
- package/templates/almadar-web-client/assets/pilcrow-right-BcWEmp4g.js +6 -0
- package/templates/almadar-web-client/assets/pill-UnXLp8H2.js +6 -0
- package/templates/almadar-web-client/assets/pill-bottle-YM9nYBiy.js +6 -0
- package/templates/almadar-web-client/assets/pin-off-DIW4nN-s.js +6 -0
- package/templates/almadar-web-client/assets/pin-sSvy5t2j.js +6 -0
- package/templates/almadar-web-client/assets/pipette-B_4Jcqjv.js +6 -0
- package/templates/almadar-web-client/assets/pizza-B28py62M.js +6 -0
- package/templates/almadar-web-client/assets/plane-M8HcXuZC.js +6 -0
- package/templates/almadar-web-client/assets/plane-landing-B-v-_NAU.js +6 -0
- package/templates/almadar-web-client/assets/plane-takeoff-DpfQiVGd.js +6 -0
- package/templates/almadar-web-client/assets/plug-2-DjmyRU-d.js +6 -0
- package/templates/almadar-web-client/assets/plug-DUGsf0Y9.js +6 -0
- package/templates/almadar-web-client/assets/plug-zap-DpSv_Heo.js +6 -0
- package/templates/almadar-web-client/assets/pocket-BvSiQ6ah.js +6 -0
- package/templates/almadar-web-client/assets/pocket-knife-BIxMfHKF.js +6 -0
- package/templates/almadar-web-client/assets/podcast-xJqIyLCT.js +6 -0
- package/templates/almadar-web-client/assets/pointer-JcdLiWIv.js +6 -0
- package/templates/almadar-web-client/assets/pointer-off-CGshnqQu.js +6 -0
- package/templates/almadar-web-client/assets/popcorn-zfr6UHjc.js +6 -0
- package/templates/almadar-web-client/assets/popsicle-D-jC-7TL.js +6 -0
- package/templates/almadar-web-client/assets/pound-sterling-C1ATQLBE.js +6 -0
- package/templates/almadar-web-client/assets/power-DTsu_pcq.js +6 -0
- package/templates/almadar-web-client/assets/power-off-BeH0LuLN.js +6 -0
- package/templates/almadar-web-client/assets/presentation-BtOQlTmX.js +6 -0
- package/templates/almadar-web-client/assets/printer-check-DIgazvbk.js +6 -0
- package/templates/almadar-web-client/assets/printer-x-CMIxwq-4.js +6 -0
- package/templates/almadar-web-client/assets/prism-X5YWKXO5-D0fzbaD9.js +8 -0
- package/templates/almadar-web-client/assets/projector-D4-6Bo3z.js +6 -0
- package/templates/almadar-web-client/assets/proportions-BNSMRk9H.js +6 -0
- package/templates/almadar-web-client/assets/puzzle-BQnSoT05.js +6 -0
- package/templates/almadar-web-client/assets/pyramid-qIzqOswA.js +6 -0
- package/templates/almadar-web-client/assets/qr-code-mVlN7fLm.js +6 -0
- package/templates/almadar-web-client/assets/quadrantDiagram-AXDQQJYC-2X4tCv68.js +7 -0
- package/templates/almadar-web-client/assets/rabbit-C3tQEcM7.js +6 -0
- package/templates/almadar-web-client/assets/radar-DouPZTRd.js +6 -0
- package/templates/almadar-web-client/assets/radiation-CpqEUmBI.js +6 -0
- package/templates/almadar-web-client/assets/radical-WINAM3L_.js +6 -0
- package/templates/almadar-web-client/assets/radio-CJxMUh1C.js +6 -0
- package/templates/almadar-web-client/assets/radio-receiver-BUHwA2q9.js +6 -0
- package/templates/almadar-web-client/assets/radio-tower-B13F6bSa.js +6 -0
- package/templates/almadar-web-client/assets/radius-ITFCaGQt.js +6 -0
- package/templates/almadar-web-client/assets/rail-symbol-B_CbwKaA.js +6 -0
- package/templates/almadar-web-client/assets/railroadDiagram-O6MQD6OU-C9BJr8s5.js +1 -0
- package/templates/almadar-web-client/assets/rainbow-Ocf-Aw0m.js +6 -0
- package/templates/almadar-web-client/assets/rat-CXYMzIop.js +6 -0
- package/templates/almadar-web-client/assets/ratio-O-1SabS9.js +6 -0
- package/templates/almadar-web-client/assets/react-CWo85Aiw.js +49 -0
- package/templates/almadar-web-client/assets/receipt-Dz9Ep1LU.js +6 -0
- package/templates/almadar-web-client/assets/receipt-cent-BOBZcyoK.js +6 -0
- package/templates/almadar-web-client/assets/receipt-euro-k0w-Kz9s.js +6 -0
- package/templates/almadar-web-client/assets/receipt-indian-rupee-PBwlXtWt.js +6 -0
- package/templates/almadar-web-client/assets/receipt-japanese-yen-BeCK14Et.js +6 -0
- package/templates/almadar-web-client/assets/receipt-pound-sterling-CBt3U2Ya.js +6 -0
- package/templates/almadar-web-client/assets/receipt-russian-ruble-21QrGCQ9.js +6 -0
- package/templates/almadar-web-client/assets/receipt-swiss-franc-P8zcPlH2.js +6 -0
- package/templates/almadar-web-client/assets/receipt-text-BlUIEmt0.js +6 -0
- package/templates/almadar-web-client/assets/receipt-turkish-lira-C43aZWBA.js +6 -0
- package/templates/almadar-web-client/assets/rectangle-circle-DwNu_Nbl.js +6 -0
- package/templates/almadar-web-client/assets/rectangle-ellipsis-DYdYnHHa.js +6 -0
- package/templates/almadar-web-client/assets/rectangle-goggles-CvqUB21V.js +6 -0
- package/templates/almadar-web-client/assets/rectangle-horizontal-pWxQKXqJ.js +6 -0
- package/templates/almadar-web-client/assets/rectangle-vertical-BxUaKdWd.js +6 -0
- package/templates/almadar-web-client/assets/recycle-BgxaOzdY.js +6 -0
- package/templates/almadar-web-client/assets/redo-2-C7Xo5Htv.js +6 -0
- package/templates/almadar-web-client/assets/redo-CU9rfHc7.js +6 -0
- package/templates/almadar-web-client/assets/redo-dot-CPlEk8Z_.js +6 -0
- package/templates/almadar-web-client/assets/refresh-ccw-dot-CauOkWoY.js +6 -0
- package/templates/almadar-web-client/assets/refresh-ccw-eGQzM3he.js +6 -0
- package/templates/almadar-web-client/assets/refresh-cw-off-DvDijhaP.js +6 -0
- package/templates/almadar-web-client/assets/refrigerator-BYHVNphX.js +6 -0
- package/templates/almadar-web-client/assets/regex-CysBK5mJ.js +6 -0
- package/templates/almadar-web-client/assets/remove-formatting-BwVICZbf.js +6 -0
- package/templates/almadar-web-client/assets/repeat-1-hmhCPnKL.js +6 -0
- package/templates/almadar-web-client/assets/repeat-2-CjtPqKfM.js +6 -0
- package/templates/almadar-web-client/assets/repeat-BOp9rDsz.js +6 -0
- package/templates/almadar-web-client/assets/replace-BP_qIKUm.js +6 -0
- package/templates/almadar-web-client/assets/replace-all-Bhr20Eyh.js +6 -0
- package/templates/almadar-web-client/assets/reply-BPpKiwso.js +6 -0
- package/templates/almadar-web-client/assets/reply-all-Dudbh4I3.js +6 -0
- package/templates/almadar-web-client/assets/requirementDiagram-BXWQKSXE-9prEHtTL.js +84 -0
- package/templates/almadar-web-client/assets/rewind-CDbKZVIG.js +6 -0
- package/templates/almadar-web-client/assets/ribbon-CP_FZIfY.js +6 -0
- package/templates/almadar-web-client/assets/rocket-dxskBoZ1.js +6 -0
- package/templates/almadar-web-client/assets/rocking-chair-DHLpmVYx.js +6 -0
- package/templates/almadar-web-client/assets/roller-coaster-BBrhbyJ4.js +6 -0
- package/templates/almadar-web-client/assets/rose-_s_ExXAO.js +6 -0
- package/templates/almadar-web-client/assets/rotate-3d-BgbEJ_J_.js +6 -0
- package/templates/almadar-web-client/assets/rotate-ccw-key-C1Iuxzsv.js +6 -0
- package/templates/almadar-web-client/assets/rotate-ccw-square-BgZPD1pm.js +6 -0
- package/templates/almadar-web-client/assets/rotate-cw-VVNeNYdp.js +6 -0
- package/templates/almadar-web-client/assets/rotate-cw-square-C5VfJVB_.js +6 -0
- package/templates/almadar-web-client/assets/route-DXktAfAf.js +6 -0
- package/templates/almadar-web-client/assets/route-off-Brb1vR86.js +6 -0
- package/templates/almadar-web-client/assets/router-BmGJRts3.js +6 -0
- package/templates/almadar-web-client/assets/rows-2-Dw2tGvQ5.js +6 -0
- package/templates/almadar-web-client/assets/rows-3-D39vyOZt.js +6 -0
- package/templates/almadar-web-client/assets/rows-4-BPfC0ujc.js +6 -0
- package/templates/almadar-web-client/assets/rss-1CVR0Rdh.js +6 -0
- package/templates/almadar-web-client/assets/ruler-BcHHm7qp.js +6 -0
- package/templates/almadar-web-client/assets/ruler-dimension-line-CkoySjus.js +6 -0
- package/templates/almadar-web-client/assets/russian-ruble-DGH9yrmP.js +6 -0
- package/templates/almadar-web-client/assets/sailboat-BJ5hjlED.js +6 -0
- package/templates/almadar-web-client/assets/salad-CcDjfJAW.js +6 -0
- package/templates/almadar-web-client/assets/sandwich-B0oG944g.js +6 -0
- package/templates/almadar-web-client/assets/sankeyDiagram-P5KCCOFB-tV86x_rp.js +40 -0
- package/templates/almadar-web-client/assets/satellite-CoauNEMO.js +6 -0
- package/templates/almadar-web-client/assets/satellite-dish-BReP3223.js +6 -0
- package/templates/almadar-web-client/assets/saudi-riyal-BeP70bID.js +6 -0
- package/templates/almadar-web-client/assets/save-Dpq_Dnly.js +6 -0
- package/templates/almadar-web-client/assets/save-all-BzPDXG-T.js +6 -0
- package/templates/almadar-web-client/assets/save-off-BxSrmLhC.js +6 -0
- package/templates/almadar-web-client/assets/scale-3d-DEgMbSgy.js +6 -0
- package/templates/almadar-web-client/assets/scale-V0CSMIHG.js +6 -0
- package/templates/almadar-web-client/assets/scaling-C8PktxKK.js +6 -0
- package/templates/almadar-web-client/assets/scan-X-cJg2YH.js +6 -0
- package/templates/almadar-web-client/assets/scan-barcode-CIgJe8_N.js +6 -0
- package/templates/almadar-web-client/assets/scan-eye-C7w_s3Uk.js +6 -0
- package/templates/almadar-web-client/assets/scan-face-BWfYbZFS.js +6 -0
- package/templates/almadar-web-client/assets/scan-heart-DASJXZrv.js +6 -0
- package/templates/almadar-web-client/assets/scan-line-mGJFf408.js +6 -0
- package/templates/almadar-web-client/assets/scan-qr-code-CgP0h2HH.js +6 -0
- package/templates/almadar-web-client/assets/scan-search-Bemy56VG.js +6 -0
- package/templates/almadar-web-client/assets/scan-text-B_gzRFSt.js +6 -0
- package/templates/almadar-web-client/assets/school-nyLzwRoF.js +6 -0
- package/templates/almadar-web-client/assets/scissors-BMJqLNfc.js +6 -0
- package/templates/almadar-web-client/assets/scissors-line-dashed-C5kUw3Z8.js +6 -0
- package/templates/almadar-web-client/assets/scooter-C_wyPE5t.js +6 -0
- package/templates/almadar-web-client/assets/screen-share-Wfxj6MZ2.js +6 -0
- package/templates/almadar-web-client/assets/screen-share-off-CVnMg33M.js +6 -0
- package/templates/almadar-web-client/assets/scroll-text-D9iYkVQk.js +6 -0
- package/templates/almadar-web-client/assets/scroll-vogxlgfo.js +6 -0
- package/templates/almadar-web-client/assets/search-alert-DFJMoo2C.js +6 -0
- package/templates/almadar-web-client/assets/search-check-CrWSfzUT.js +6 -0
- package/templates/almadar-web-client/assets/search-code-BoeKeLdy.js +6 -0
- package/templates/almadar-web-client/assets/search-slash-CcfoMeGu.js +6 -0
- package/templates/almadar-web-client/assets/search-x-DOWVUVK8.js +6 -0
- package/templates/almadar-web-client/assets/section-DPdh76ZR.js +6 -0
- package/templates/almadar-web-client/assets/send-D90xgiQ0.js +6 -0
- package/templates/almadar-web-client/assets/send-horizontal-BF41KiFR.js +6 -0
- package/templates/almadar-web-client/assets/send-to-back-BCF4E4Ie.js +6 -0
- package/templates/almadar-web-client/assets/separator-horizontal-CfwXYjQ8.js +6 -0
- package/templates/almadar-web-client/assets/separator-vertical-Bg6C_FF0.js +6 -0
- package/templates/almadar-web-client/assets/sequenceDiagram-WJ2MYXX4-YGSjK1I0.js +162 -0
- package/templates/almadar-web-client/assets/server-BB0e557U.js +6 -0
- package/templates/almadar-web-client/assets/server-cog-DWao_Fsz.js +6 -0
- package/templates/almadar-web-client/assets/server-crash-CK9m4LcS.js +6 -0
- package/templates/almadar-web-client/assets/server-off-BaEZXulU.js +6 -0
- package/templates/almadar-web-client/assets/settings-2-CUXBW5ms.js +6 -0
- package/templates/almadar-web-client/assets/settings-BZ1Et8WJ.js +6 -0
- package/templates/almadar-web-client/assets/shapes-BzfBzNNu.js +6 -0
- package/templates/almadar-web-client/assets/share-B0PYrJo8.js +6 -0
- package/templates/almadar-web-client/assets/sheet-COQewTL3.js +6 -0
- package/templates/almadar-web-client/assets/shell-quEaEOQY.js +6 -0
- package/templates/almadar-web-client/assets/shield-Da1Ix8IE.js +6 -0
- package/templates/almadar-web-client/assets/shield-alert-DzDoVW-Y.js +6 -0
- package/templates/almadar-web-client/assets/shield-ban-BEMrfjIe.js +6 -0
- package/templates/almadar-web-client/assets/shield-check-BR34b98-.js +6 -0
- package/templates/almadar-web-client/assets/shield-ellipsis-DWohI3Yk.js +6 -0
- package/templates/almadar-web-client/assets/shield-half-Qe8PfXWK.js +6 -0
- package/templates/almadar-web-client/assets/shield-minus-6v8OAUws.js +6 -0
- package/templates/almadar-web-client/assets/shield-off-BG3s3ZXZ.js +6 -0
- package/templates/almadar-web-client/assets/shield-plus-DBvCO6uK.js +6 -0
- package/templates/almadar-web-client/assets/shield-question-mark-DMAcoL_-.js +6 -0
- package/templates/almadar-web-client/assets/shield-user-fUaG8Hcy.js +6 -0
- package/templates/almadar-web-client/assets/shield-x-CSGBoPul.js +6 -0
- package/templates/almadar-web-client/assets/ship-nJ6BySHb.js +6 -0
- package/templates/almadar-web-client/assets/ship-wheel-BpEGa21z.js +6 -0
- package/templates/almadar-web-client/assets/shirt-DD12WSDb.js +6 -0
- package/templates/almadar-web-client/assets/shopping-bag-K6cuyVcd.js +6 -0
- package/templates/almadar-web-client/assets/shopping-basket-dlqvOrWL.js +6 -0
- package/templates/almadar-web-client/assets/shopping-cart-CTqHxVf-.js +6 -0
- package/templates/almadar-web-client/assets/shovel-UG31BZeX.js +6 -0
- package/templates/almadar-web-client/assets/shower-head-C23tNNif.js +6 -0
- package/templates/almadar-web-client/assets/shredder-D5DfBCyN.js +6 -0
- package/templates/almadar-web-client/assets/shrimp-IpwW6KuX.js +6 -0
- package/templates/almadar-web-client/assets/shrink-XD7spwcZ.js +6 -0
- package/templates/almadar-web-client/assets/shrub-BHkSucC-.js +6 -0
- package/templates/almadar-web-client/assets/shuffle-WX2fJ7w6.js +6 -0
- package/templates/almadar-web-client/assets/sigma-Ck8c9VAL.js +6 -0
- package/templates/almadar-web-client/assets/signal-1Bye15-Y.js +6 -0
- package/templates/almadar-web-client/assets/signal-high-DYRzjPnJ.js +6 -0
- package/templates/almadar-web-client/assets/signal-low-6lPt3iSK.js +6 -0
- package/templates/almadar-web-client/assets/signal-medium-DUKlwlGD.js +6 -0
- package/templates/almadar-web-client/assets/signal-zero-CwVvnWb1.js +6 -0
- package/templates/almadar-web-client/assets/signature-DJlAHfvT.js +6 -0
- package/templates/almadar-web-client/assets/signpost-B3UPF-O5.js +6 -0
- package/templates/almadar-web-client/assets/signpost-big-E4GkBZLk.js +6 -0
- package/templates/almadar-web-client/assets/siren-eYpa9BFG.js +6 -0
- package/templates/almadar-web-client/assets/sizeCapture-INFHLROL-DvAZRAPe.js +1 -0
- package/templates/almadar-web-client/assets/skip-back-B3gHpJ3H.js +6 -0
- package/templates/almadar-web-client/assets/skip-forward-bXl44FEZ.js +6 -0
- package/templates/almadar-web-client/assets/skull-B3_H5HM7.js +6 -0
- package/templates/almadar-web-client/assets/slack-BAbYAl50.js +6 -0
- package/templates/almadar-web-client/assets/slash-DEJJ1Krs.js +6 -0
- package/templates/almadar-web-client/assets/slice-i1Rietyy.js +6 -0
- package/templates/almadar-web-client/assets/sliders-horizontal-ZjHFfn61.js +6 -0
- package/templates/almadar-web-client/assets/sliders-vertical-ClCQZmTf.js +6 -0
- package/templates/almadar-web-client/assets/smartphone-DTiH6tOv.js +6 -0
- package/templates/almadar-web-client/assets/smartphone-charging-Cj6gf1_0.js +6 -0
- package/templates/almadar-web-client/assets/smartphone-nfc-Cb8Mrhm9.js +6 -0
- package/templates/almadar-web-client/assets/smile-mAiVetRg.js +6 -0
- package/templates/almadar-web-client/assets/smile-plus-CSG5lVL3.js +6 -0
- package/templates/almadar-web-client/assets/snail-1RdidJdz.js +6 -0
- package/templates/almadar-web-client/assets/snowflake-BEDtD97r.js +6 -0
- package/templates/almadar-web-client/assets/soap-dispenser-droplet-D7UYhX-0.js +6 -0
- package/templates/almadar-web-client/assets/sofa-ItMWe6SS.js +6 -0
- package/templates/almadar-web-client/assets/solar-panel-DO98bg-U.js +6 -0
- package/templates/almadar-web-client/assets/soup-T5aV8NMZ.js +6 -0
- package/templates/almadar-web-client/assets/space-DUAk8TZY.js +6 -0
- package/templates/almadar-web-client/assets/spade-BnDhTdoK.js +6 -0
- package/templates/almadar-web-client/assets/sparkle-Ci5Irl-V.js +6 -0
- package/templates/almadar-web-client/assets/sparkles-Dm5XV0nN.js +6 -0
- package/templates/almadar-web-client/assets/speaker-CTUXvSsG.js +6 -0
- package/templates/almadar-web-client/assets/speech-CU_cjpBt.js +6 -0
- package/templates/almadar-web-client/assets/spell-check-2-Svm2wKkc.js +6 -0
- package/templates/almadar-web-client/assets/spell-check-Bqi_O8NY.js +6 -0
- package/templates/almadar-web-client/assets/spline-pointer-CgJjoWwk.js +6 -0
- package/templates/almadar-web-client/assets/spline-rO4X3hCL.js +6 -0
- package/templates/almadar-web-client/assets/split-NrxGOmnM.js +6 -0
- package/templates/almadar-web-client/assets/spool-DJy_Pta3.js +6 -0
- package/templates/almadar-web-client/assets/spotlight-Bsz_2xFf.js +6 -0
- package/templates/almadar-web-client/assets/spray-can-FHFk7XjV.js +6 -0
- package/templates/almadar-web-client/assets/sprout-B5189clG.js +6 -0
- package/templates/almadar-web-client/assets/square-activity-l1GYS0pn.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-down-BRNDHnYi.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-down-left-BEqTxL0g.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-down-right-CIigrf3v.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-left-CPUu19iy.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-out-down-left-BxihDIyK.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-out-down-right-rfxkdL22.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-out-up-left-BqEAkCo9.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-out-up-right-HLzdkLFe.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-right-DyzjVCj1.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-up-CSIrsVwC.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-up-left-DxvKRR7n.js +6 -0
- package/templates/almadar-web-client/assets/square-arrow-up-right-BJgEPKJv.js +6 -0
- package/templates/almadar-web-client/assets/square-asterisk-kw0fwzk6.js +6 -0
- package/templates/almadar-web-client/assets/square-bottom-dashed-scissors-BQyVp4HW.js +6 -0
- package/templates/almadar-web-client/assets/square-chart-gantt-Xpg-GqpG.js +6 -0
- package/templates/almadar-web-client/assets/square-check-BuQ2Rudw.js +6 -0
- package/templates/almadar-web-client/assets/square-check-big-BA2n4-gi.js +6 -0
- package/templates/almadar-web-client/assets/square-chevron-down-B0gmHzX4.js +6 -0
- package/templates/almadar-web-client/assets/square-chevron-left-DNizpipQ.js +6 -0
- package/templates/almadar-web-client/assets/square-chevron-right-CrnE70Q1.js +6 -0
- package/templates/almadar-web-client/assets/square-chevron-up-DI91ZL-T.js +6 -0
- package/templates/almadar-web-client/assets/square-code-BM9D0HX0.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-CgwaXb-K.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-bottom-code-UoG57rGC.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-bottom-hV_PZeyh.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-kanban-Bqwv1nEo.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-mouse-pointer-hNoTN6K4.js +6 -0
- package/templates/almadar-web-client/assets/square-dashed-top-solid-CRvbTzhy.js +6 -0
- package/templates/almadar-web-client/assets/square-divide-Cqo8WxZ7.js +6 -0
- package/templates/almadar-web-client/assets/square-dot-BmcWt8C3.js +6 -0
- package/templates/almadar-web-client/assets/square-equal-Q2gLajHS.js +6 -0
- package/templates/almadar-web-client/assets/square-function-CUw0S6n8.js +6 -0
- package/templates/almadar-web-client/assets/square-kanban-CmTK7jky.js +6 -0
- package/templates/almadar-web-client/assets/square-library-vKmqmPZQ.js +6 -0
- package/templates/almadar-web-client/assets/square-m-NfVHmeH7.js +6 -0
- package/templates/almadar-web-client/assets/square-menu-Daj-0gn3.js +6 -0
- package/templates/almadar-web-client/assets/square-minus-D6mDE92y.js +6 -0
- package/templates/almadar-web-client/assets/square-mouse-pointer-lyNTiDtz.js +6 -0
- package/templates/almadar-web-client/assets/square-parking-D3QVjdDW.js +6 -0
- package/templates/almadar-web-client/assets/square-parking-off-AUGdNOwI.js +6 -0
- package/templates/almadar-web-client/assets/square-pause-Di0vTz6J.js +6 -0
- package/templates/almadar-web-client/assets/square-pen-DjG9uWp4.js +6 -0
- package/templates/almadar-web-client/assets/square-percent-DEuGyue_.js +6 -0
- package/templates/almadar-web-client/assets/square-pi-COO-HinV.js +6 -0
- package/templates/almadar-web-client/assets/square-pilcrow-DoeSzp7M.js +6 -0
- package/templates/almadar-web-client/assets/square-play-BQFjSNGk.js +6 -0
- package/templates/almadar-web-client/assets/square-plus-egNQnugw.js +6 -0
- package/templates/almadar-web-client/assets/square-power-Ch2EA4yg.js +6 -0
- package/templates/almadar-web-client/assets/square-radical-0SuPKlf7.js +6 -0
- package/templates/almadar-web-client/assets/square-round-corner-C47xuCGy.js +6 -0
- package/templates/almadar-web-client/assets/square-scissors-1nZgCzjE.js +6 -0
- package/templates/almadar-web-client/assets/square-sigma-5N494E6Y.js +6 -0
- package/templates/almadar-web-client/assets/square-slash-BUBudPXL.js +6 -0
- package/templates/almadar-web-client/assets/square-split-horizontal-D1FkKS8D.js +6 -0
- package/templates/almadar-web-client/assets/square-split-vertical-PZmV1IkU.js +6 -0
- package/templates/almadar-web-client/assets/square-square-CBh3TBkK.js +6 -0
- package/templates/almadar-web-client/assets/square-stack-rdmrLm-o.js +6 -0
- package/templates/almadar-web-client/assets/square-star-Y4zlAGzt.js +6 -0
- package/templates/almadar-web-client/assets/square-stop-BMzJSvVt.js +6 -0
- package/templates/almadar-web-client/assets/square-terminal-Ckvditno.js +6 -0
- package/templates/almadar-web-client/assets/square-user-BL35CutL.js +6 -0
- package/templates/almadar-web-client/assets/square-user-round-CtY-cNl9.js +6 -0
- package/templates/almadar-web-client/assets/square-x-72vErVhP.js +6 -0
- package/templates/almadar-web-client/assets/squares-exclude-DYC_9XIY.js +6 -0
- package/templates/almadar-web-client/assets/squares-intersect-jhOo7-JX.js +6 -0
- package/templates/almadar-web-client/assets/squares-subtract-Dsvb3SAB.js +6 -0
- package/templates/almadar-web-client/assets/squares-unite-DEBMYo7W.js +6 -0
- package/templates/almadar-web-client/assets/squircle-BdABJWaU.js +6 -0
- package/templates/almadar-web-client/assets/squircle-dashed-BcpuAhIt.js +6 -0
- package/templates/almadar-web-client/assets/squirrel-DcjIi2ok.js +6 -0
- package/templates/almadar-web-client/assets/stamp-C-xbEfLr.js +6 -0
- package/templates/almadar-web-client/assets/star-DHiGa2vy.js +6 -0
- package/templates/almadar-web-client/assets/star-half-CRbQFTWE.js +6 -0
- package/templates/almadar-web-client/assets/star-off-BnazCR5O.js +6 -0
- package/templates/almadar-web-client/assets/stateDiagram-D77RDMKH-AXPLdCSm.js +1 -0
- package/templates/almadar-web-client/assets/stateDiagram-v2-MP3YSRHH-CMmE3zFN.js +1 -0
- package/templates/almadar-web-client/assets/step-back-Cf9rgBpC.js +6 -0
- package/templates/almadar-web-client/assets/step-forward-JGgFbxCX.js +6 -0
- package/templates/almadar-web-client/assets/stethoscope-BZT9DQGd.js +6 -0
- package/templates/almadar-web-client/assets/sticker-C1W3scVY.js +6 -0
- package/templates/almadar-web-client/assets/sticky-note-CqErEMx1.js +6 -0
- package/templates/almadar-web-client/assets/stone-BDtpUFpf.js +6 -0
- package/templates/almadar-web-client/assets/store-Cn6IdjeD.js +6 -0
- package/templates/almadar-web-client/assets/stretch-horizontal-B-jSKDFG.js +6 -0
- package/templates/almadar-web-client/assets/stretch-vertical-BPg_r8Cq.js +6 -0
- package/templates/almadar-web-client/assets/subscript-Cghy1ZPg.js +6 -0
- package/templates/almadar-web-client/assets/sun-NPcooQnI.js +6 -0
- package/templates/almadar-web-client/assets/sun-dim-Drl9YXzs.js +6 -0
- package/templates/almadar-web-client/assets/sun-medium-DTmN-DfF.js +6 -0
- package/templates/almadar-web-client/assets/sun-moon-K73Os3IT.js +6 -0
- package/templates/almadar-web-client/assets/sun-snow-DrqnitlD.js +6 -0
- package/templates/almadar-web-client/assets/sunrise-Bnow_XV_.js +6 -0
- package/templates/almadar-web-client/assets/sunset-ydfdSxm9.js +6 -0
- package/templates/almadar-web-client/assets/superscript-CPk69gty.js +6 -0
- package/templates/almadar-web-client/assets/swatch-book-DotE78N0.js +6 -0
- package/templates/almadar-web-client/assets/swimlanes-42K2YHIH-xM6yZG7M.js +1 -0
- package/templates/almadar-web-client/assets/swimlanesDiagram-VR7AAH4N-9nrASDWK.js +8 -0
- package/templates/almadar-web-client/assets/swiss-franc-zExSqJKS.js +6 -0
- package/templates/almadar-web-client/assets/switch-camera-DFiI0jFw.js +6 -0
- package/templates/almadar-web-client/assets/sword-C0CE1Hfd.js +6 -0
- package/templates/almadar-web-client/assets/swords-Bp_FGS_W.js +6 -0
- package/templates/almadar-web-client/assets/syringe-BfuEl34Z.js +6 -0
- package/templates/almadar-web-client/assets/table-2-mYfge0El.js +6 -0
- package/templates/almadar-web-client/assets/table-DWhXP7bj.js +6 -0
- package/templates/almadar-web-client/assets/table-cells-merge-D1YPvuoF.js +6 -0
- package/templates/almadar-web-client/assets/table-cells-split-3AYCTjtZ.js +6 -0
- package/templates/almadar-web-client/assets/table-columns-split-DfKyyDOM.js +6 -0
- package/templates/almadar-web-client/assets/table-of-contents-gkYr8xH2.js +6 -0
- package/templates/almadar-web-client/assets/table-properties-BsgEs3Kg.js +6 -0
- package/templates/almadar-web-client/assets/table-rows-split-CxkvKYw0.js +6 -0
- package/templates/almadar-web-client/assets/tablet-Cx9YHLMy.js +6 -0
- package/templates/almadar-web-client/assets/tablet-smartphone-BqBO-I2O.js +6 -0
- package/templates/almadar-web-client/assets/tablets-D0ZGbgCt.js +6 -0
- package/templates/almadar-web-client/assets/tag-DSiIoklO.js +6 -0
- package/templates/almadar-web-client/assets/tags-iQC2Ylco.js +6 -0
- package/templates/almadar-web-client/assets/tally-1-BwVjNFQQ.js +6 -0
- package/templates/almadar-web-client/assets/tally-2--0hjsUsq.js +6 -0
- package/templates/almadar-web-client/assets/tally-3-CKM9yiEC.js +6 -0
- package/templates/almadar-web-client/assets/tally-4-Cto01zeN.js +6 -0
- package/templates/almadar-web-client/assets/tally-5-DoypJSws.js +6 -0
- package/templates/almadar-web-client/assets/tangent-De96Mmy_.js +6 -0
- package/templates/almadar-web-client/assets/target-DVN9Btq4.js +6 -0
- package/templates/almadar-web-client/assets/telescope-CWGf8h-b.js +6 -0
- package/templates/almadar-web-client/assets/tent-D9uSl1cD.js +6 -0
- package/templates/almadar-web-client/assets/tent-tree-B8rjwKI2.js +6 -0
- package/templates/almadar-web-client/assets/test-tube-CrQP9cJ4.js +6 -0
- package/templates/almadar-web-client/assets/test-tube-diagonal-BIPgtmbd.js +6 -0
- package/templates/almadar-web-client/assets/test-tubes-DKpuFUYi.js +6 -0
- package/templates/almadar-web-client/assets/text-align-center-BNy1d_gZ.js +6 -0
- package/templates/almadar-web-client/assets/text-align-end-BgcID-3M.js +6 -0
- package/templates/almadar-web-client/assets/text-align-justify-BTzG8tTw.js +6 -0
- package/templates/almadar-web-client/assets/text-align-start-und6dkZo.js +6 -0
- package/templates/almadar-web-client/assets/text-cursor-GujZT_td.js +6 -0
- package/templates/almadar-web-client/assets/text-cursor-input-Dgtc4pXb.js +6 -0
- package/templates/almadar-web-client/assets/text-initial-CCd3bgS8.js +6 -0
- package/templates/almadar-web-client/assets/text-quote-vyARRYuL.js +6 -0
- package/templates/almadar-web-client/assets/text-search-D1zMpaXT.js +6 -0
- package/templates/almadar-web-client/assets/text-select-DLFde8Je.js +6 -0
- package/templates/almadar-web-client/assets/theater-Bm09cZmY.js +6 -0
- package/templates/almadar-web-client/assets/thermometer-BNXRN8AL.js +6 -0
- package/templates/almadar-web-client/assets/thermometer-snowflake-Bz7uCxOw.js +6 -0
- package/templates/almadar-web-client/assets/thermometer-sun-C-0iyPHx.js +6 -0
- package/templates/almadar-web-client/assets/thumbs-down-D9sWMF8q.js +6 -0
- package/templates/almadar-web-client/assets/thumbs-up-Dp48p2O_.js +6 -0
- package/templates/almadar-web-client/assets/ticket-I_-hFGoT.js +6 -0
- package/templates/almadar-web-client/assets/ticket-check-B8CL7w9A.js +6 -0
- package/templates/almadar-web-client/assets/ticket-minus-CKPIwSs6.js +6 -0
- package/templates/almadar-web-client/assets/ticket-percent-B42L5diD.js +6 -0
- package/templates/almadar-web-client/assets/ticket-plus-Dl2ziMVi.js +6 -0
- package/templates/almadar-web-client/assets/ticket-slash-1C6tG9jr.js +6 -0
- package/templates/almadar-web-client/assets/ticket-x-Bdy-9F7X.js +6 -0
- package/templates/almadar-web-client/assets/tickets-CwT27sed.js +6 -0
- package/templates/almadar-web-client/assets/tickets-plane-C00wwNKs.js +6 -0
- package/templates/almadar-web-client/assets/timeline-definition-24CTP7MA-CeWDClL-.js +120 -0
- package/templates/almadar-web-client/assets/timer-DTHyTlxA.js +6 -0
- package/templates/almadar-web-client/assets/timer-off-BnUyoj9d.js +6 -0
- package/templates/almadar-web-client/assets/timer-reset-BsTgnoPe.js +6 -0
- package/templates/almadar-web-client/assets/toggle-left-tkb4WMnN.js +6 -0
- package/templates/almadar-web-client/assets/toggle-right-B_GprE6X.js +6 -0
- package/templates/almadar-web-client/assets/toilet-CoMa-S4T.js +6 -0
- package/templates/almadar-web-client/assets/tool-case-BAPVeLHx.js +6 -0
- package/templates/almadar-web-client/assets/toolbox-XCgRTGXK.js +6 -0
- package/templates/almadar-web-client/assets/tornado-DwykwVx1.js +6 -0
- package/templates/almadar-web-client/assets/torus-1haaX6YZ.js +6 -0
- package/templates/almadar-web-client/assets/touchpad-BI11PJ7O.js +6 -0
- package/templates/almadar-web-client/assets/touchpad-off-hCpV6zEt.js +6 -0
- package/templates/almadar-web-client/assets/towel-rack-CEbQKnKd.js +6 -0
- package/templates/almadar-web-client/assets/tower-control-DOmDUaWX.js +6 -0
- package/templates/almadar-web-client/assets/toy-brick-GHZNwqL9.js +6 -0
- package/templates/almadar-web-client/assets/tractor-B9vmoL2_.js +6 -0
- package/templates/almadar-web-client/assets/traffic-cone-Dmq2awbn.js +6 -0
- package/templates/almadar-web-client/assets/train-front-CGfGGySz.js +6 -0
- package/templates/almadar-web-client/assets/train-front-tunnel-DtGFKCGg.js +6 -0
- package/templates/almadar-web-client/assets/train-track-DdhcDUyS.js +6 -0
- package/templates/almadar-web-client/assets/tram-front-GArkyC4B.js +6 -0
- package/templates/almadar-web-client/assets/transgender-C3oH9G3V.js +6 -0
- package/templates/almadar-web-client/assets/tree-deciduous-BcDC-mEa.js +6 -0
- package/templates/almadar-web-client/assets/tree-palm-UURIcplF.js +6 -0
- package/templates/almadar-web-client/assets/tree-pine-DmQolJyN.js +6 -0
- package/templates/almadar-web-client/assets/trees-B7r2PYzp.js +6 -0
- package/templates/almadar-web-client/assets/trello-CgpNtSjW.js +6 -0
- package/templates/almadar-web-client/assets/trending-up-down-C4zAldUQ.js +6 -0
- package/templates/almadar-web-client/assets/triangle-DdL4azA2.js +6 -0
- package/templates/almadar-web-client/assets/triangle-dashed-DjBCH4pS.js +6 -0
- package/templates/almadar-web-client/assets/triangle-right-Cp5S1j54.js +6 -0
- package/templates/almadar-web-client/assets/trophy-DCn1V258.js +6 -0
- package/templates/almadar-web-client/assets/truck-BvfttvOv.js +6 -0
- package/templates/almadar-web-client/assets/truck-electric-DSIYuksq.js +6 -0
- package/templates/almadar-web-client/assets/turkish-lira-I_c9Bvgk.js +6 -0
- package/templates/almadar-web-client/assets/turntable-BvP_CNPL.js +6 -0
- package/templates/almadar-web-client/assets/turtle-B-V3a5b_.js +6 -0
- package/templates/almadar-web-client/assets/tv-B4s8U5fm.js +6 -0
- package/templates/almadar-web-client/assets/tv-minimal-hvvYM9z-.js +6 -0
- package/templates/almadar-web-client/assets/tv-minimal-play-CRpAkTik.js +6 -0
- package/templates/almadar-web-client/assets/twitch-DPe59zig.js +6 -0
- package/templates/almadar-web-client/assets/twitter-wsgV8HgV.js +6 -0
- package/templates/almadar-web-client/assets/type-BGACY9Bf.js +6 -0
- package/templates/almadar-web-client/assets/type-outline-BeKgfkYf.js +6 -0
- package/templates/almadar-web-client/assets/umbrella-BKR0kam8.js +6 -0
- package/templates/almadar-web-client/assets/umbrella-off-C2hA3fWC.js +6 -0
- package/templates/almadar-web-client/assets/undo-2-DtUZZjfo.js +6 -0
- package/templates/almadar-web-client/assets/undo-CSlgpyy7.js +6 -0
- package/templates/almadar-web-client/assets/undo-dot-CYOEjcg_.js +6 -0
- package/templates/almadar-web-client/assets/unfold-horizontal-LQ5OZIwb.js +6 -0
- package/templates/almadar-web-client/assets/unfold-vertical-CmlhW_Qq.js +6 -0
- package/templates/almadar-web-client/assets/ungroup-D_SRNSIw.js +6 -0
- package/templates/almadar-web-client/assets/university-BwVLPi4C.js +6 -0
- package/templates/almadar-web-client/assets/unlink-2-C6YFw5JR.js +6 -0
- package/templates/almadar-web-client/assets/unlink-CxX56tAw.js +6 -0
- package/templates/almadar-web-client/assets/unplug-CQRJYVBS.js +6 -0
- package/templates/almadar-web-client/assets/usb-CRzChloa.js +6 -0
- package/templates/almadar-web-client/assets/user-Dc-HglQ7.js +6 -0
- package/templates/almadar-web-client/assets/user-check-DSi9FEmw.js +6 -0
- package/templates/almadar-web-client/assets/user-cog-CXQwj9br.js +6 -0
- package/templates/almadar-web-client/assets/user-key-CZgYAWmF.js +6 -0
- package/templates/almadar-web-client/assets/user-lock-BVc3N-Lv.js +6 -0
- package/templates/almadar-web-client/assets/user-minus-CCkOx0E3.js +6 -0
- package/templates/almadar-web-client/assets/user-pen-DbsKEEhm.js +6 -0
- package/templates/almadar-web-client/assets/user-plus-Dd9OrUt9.js +6 -0
- package/templates/almadar-web-client/assets/user-round-CaDCofn8.js +6 -0
- package/templates/almadar-web-client/assets/user-round-check-EDRkx9Lj.js +6 -0
- package/templates/almadar-web-client/assets/user-round-cog-DIQj-I0z.js +6 -0
- package/templates/almadar-web-client/assets/user-round-key-B_Qe89Tr.js +6 -0
- package/templates/almadar-web-client/assets/user-round-minus-C1i3CKJf.js +6 -0
- package/templates/almadar-web-client/assets/user-round-pen-BsGGNkEt.js +6 -0
- package/templates/almadar-web-client/assets/user-round-plus-CeOch9Yc.js +6 -0
- package/templates/almadar-web-client/assets/user-round-search-COHBhv24.js +6 -0
- package/templates/almadar-web-client/assets/user-round-x-_bVTu8rX.js +6 -0
- package/templates/almadar-web-client/assets/user-search-Ddy47OAO.js +6 -0
- package/templates/almadar-web-client/assets/user-star-CM__mCyq.js +6 -0
- package/templates/almadar-web-client/assets/user-x-bHtZeQ6h.js +6 -0
- package/templates/almadar-web-client/assets/users-Is5ZjHmK.js +6 -0
- package/templates/almadar-web-client/assets/users-round-lWoiSdUC.js +6 -0
- package/templates/almadar-web-client/assets/utensils-DASNQkL_.js +6 -0
- package/templates/almadar-web-client/assets/utensils-crossed-qtALeslU.js +6 -0
- package/templates/almadar-web-client/assets/utility-pole-D6BTtbXi.js +6 -0
- package/templates/almadar-web-client/assets/van-BStPX4lh.js +6 -0
- package/templates/almadar-web-client/assets/variable-hdYPnq46.js +6 -0
- package/templates/almadar-web-client/assets/vault-Dc0IFwjZ.js +6 -0
- package/templates/almadar-web-client/assets/vector-square-Cx_xp9HZ.js +6 -0
- package/templates/almadar-web-client/assets/vegan-C8Jv1ns4.js +6 -0
- package/templates/almadar-web-client/assets/venetian-mask-CA2u9BeG.js +6 -0
- package/templates/almadar-web-client/assets/vennDiagram-4TSXK5OY-BWo5uIB1.js +34 -0
- package/templates/almadar-web-client/assets/venus-D2R23suk.js +6 -0
- package/templates/almadar-web-client/assets/venus-and-mars-CRZj_-K0.js +6 -0
- package/templates/almadar-web-client/assets/vibrate-AoC-2h8G.js +6 -0
- package/templates/almadar-web-client/assets/vibrate-off-xTSY-ukD.js +6 -0
- package/templates/almadar-web-client/assets/video-7WNNOqPS.js +6 -0
- package/templates/almadar-web-client/assets/video-off-CORkZd-S.js +6 -0
- package/templates/almadar-web-client/assets/videotape-BKdWO2cv.js +6 -0
- package/templates/almadar-web-client/assets/view-CM1Dl3cL.js +6 -0
- package/templates/almadar-web-client/assets/voicemail-9OVbhp3p.js +6 -0
- package/templates/almadar-web-client/assets/volleyball-Die8ibfk.js +6 -0
- package/templates/almadar-web-client/assets/volume-1-Booa6VFE.js +6 -0
- package/templates/almadar-web-client/assets/volume-BK31PpOS.js +6 -0
- package/templates/almadar-web-client/assets/volume-off-gqYOiFfh.js +6 -0
- package/templates/almadar-web-client/assets/vote-YWUjKqgU.js +6 -0
- package/templates/almadar-web-client/assets/wallet-UhjIZuy0.js +6 -0
- package/templates/almadar-web-client/assets/wallet-cards-DhVGCURc.js +6 -0
- package/templates/almadar-web-client/assets/wallet-minimal-tVXIqJJr.js +6 -0
- package/templates/almadar-web-client/assets/wallpaper-CqzR8C68.js +6 -0
- package/templates/almadar-web-client/assets/wand-Ct9Sn6dE.js +6 -0
- package/templates/almadar-web-client/assets/wand-sparkles-Bai6Jd3u.js +6 -0
- package/templates/almadar-web-client/assets/wardleyDiagram-VM6X3IG4-Q8bimxOd.js +78 -0
- package/templates/almadar-web-client/assets/warehouse-YMPSQett.js +6 -0
- package/templates/almadar-web-client/assets/washing-machine-BTcLZ8G-.js +6 -0
- package/templates/almadar-web-client/assets/watch-Cz7hpSH3.js +6 -0
- package/templates/almadar-web-client/assets/waves-BQkEGoNz.js +6 -0
- package/templates/almadar-web-client/assets/waves-arrow-down-DNi7_Oq0.js +6 -0
- package/templates/almadar-web-client/assets/waves-arrow-up-Dq7BHBKD.js +6 -0
- package/templates/almadar-web-client/assets/waves-ladder-DEWJvBMD.js +6 -0
- package/templates/almadar-web-client/assets/waypoints-CH9VoSj1.js +6 -0
- package/templates/almadar-web-client/assets/webcam-CUwH_cJj.js +6 -0
- package/templates/almadar-web-client/assets/webhook-DgYrILUS.js +6 -0
- package/templates/almadar-web-client/assets/webhook-off-BoqiItD2.js +6 -0
- package/templates/almadar-web-client/assets/weight-BAqHHufR.js +6 -0
- package/templates/almadar-web-client/assets/weight-tilde-y_HF_AUy.js +6 -0
- package/templates/almadar-web-client/assets/wheat-B_aC0gIK.js +6 -0
- package/templates/almadar-web-client/assets/wheat-off-CTofaUNa.js +6 -0
- package/templates/almadar-web-client/assets/whole-word-vRTLmdL_.js +6 -0
- package/templates/almadar-web-client/assets/wifi-BpAfM8q7.js +6 -0
- package/templates/almadar-web-client/assets/wifi-cog-BNrF5bO6.js +6 -0
- package/templates/almadar-web-client/assets/wifi-high-CKRrnahM.js +6 -0
- package/templates/almadar-web-client/assets/wifi-low-CUr1webS.js +6 -0
- package/templates/almadar-web-client/assets/wifi-off-DobPXBIj.js +6 -0
- package/templates/almadar-web-client/assets/wifi-pen-BqhsFiEk.js +6 -0
- package/templates/almadar-web-client/assets/wifi-sync-CuCeOqd7.js +6 -0
- package/templates/almadar-web-client/assets/wifi-zero-C_Dd0A2K.js +6 -0
- package/templates/almadar-web-client/assets/wind-arrow-down-BOxfTv5O.js +6 -0
- package/templates/almadar-web-client/assets/wind-sxJehgua.js +6 -0
- package/templates/almadar-web-client/assets/wine-DYRyrtuK.js +6 -0
- package/templates/almadar-web-client/assets/wine-off-CyiDMZdl.js +6 -0
- package/templates/almadar-web-client/assets/workflow-B74My1gm.js +6 -0
- package/templates/almadar-web-client/assets/worm-DjGV3MXZ.js +6 -0
- package/templates/almadar-web-client/assets/wrench-Dvr5csKf.js +6 -0
- package/templates/almadar-web-client/assets/xychartDiagram-S5SC5T6Z-BGKxknkY.js +7 -0
- package/templates/almadar-web-client/assets/youtube-Nab9C0fp.js +6 -0
- package/templates/almadar-web-client/assets/zap-DzIByoU-.js +6 -0
- package/templates/almadar-web-client/assets/zap-off-C-uhlbvw.js +6 -0
- package/templates/almadar-web-client/index.html +17 -0
- package/templates/chrome-shell/package.json +36 -0
- package/templates/chrome-shell/panel.html +12 -0
- package/templates/chrome-shell/pnpm-workspace.yaml +12 -0
- package/templates/chrome-shell/postcss.config.js +6 -0
- package/templates/chrome-shell/scripts/finalize.mjs +9 -0
- package/templates/chrome-shell/src/channel.ts +26 -0
- package/templates/chrome-shell/src/config.ts +35 -0
- package/templates/chrome-shell/src/content.ts +4 -0
- package/templates/chrome-shell/src/generated/assets.json +1 -0
- package/templates/chrome-shell/src/generated/embedder.ts +3 -0
- package/templates/chrome-shell/src/generated/manifest.json +1 -0
- package/templates/chrome-shell/src/generated/secret-ports.ts +3 -0
- package/templates/chrome-shell/src/generated/themes.css +0 -0
- package/templates/chrome-shell/src/index.css +19 -0
- package/templates/chrome-shell/src/panel.tsx +53 -0
- package/templates/chrome-shell/src/worker.ts +72 -0
- package/templates/chrome-shell/tailwind.config.js +12 -0
- package/templates/chrome-shell/tsconfig.json +15 -0
- package/templates/chrome-shell/vite.config.ts +21 -0
- package/templates/chrome-shell/vite.content.config.ts +10 -0
- package/templates/almadar-shell/packages/client/src/features/auth/SignOutListener.tsx +0 -11
- package/templates/almadar-shell/packages/client/src/features/auth/__tests__/SignOutListener.test.tsx +0 -44
- package/templates/almadar-shell/packages/client/src/navigation/index.ts +0 -55
- package/templates/almadar-shell/packages/server/src/app.ts +0 -94
- package/templates/almadar-shell/packages/server/src/hooks-providers.ts +0 -11
- package/templates/almadar-shell/packages/server/src/routes.ts +0 -11
- package/templates/almadar-shell/packages/server/src/services/clients.ts +0 -17
- package/templates/almadar-shell/packages/server/src/sse.ts +0 -20
- package/templates/almadar-shell/packages/server/src/types/express.d.ts +0 -11
- package/templates/almadar-shell/packages/server/src/viewer.ts +0 -22
- package/templates/almadar-shell-hono/LICENSE +0 -72
- package/templates/almadar-shell-hono/README.md +0 -25
- package/templates/almadar-shell-hono/locales/en.json +0 -120
- package/templates/almadar-shell-hono/package.json +0 -38
- package/templates/almadar-shell-hono/packages/client/eslint.config.cjs +0 -23
- package/templates/almadar-shell-hono/packages/client/index.html +0 -13
- package/templates/almadar-shell-hono/packages/client/package-lock.json +0 -9750
- package/templates/almadar-shell-hono/packages/client/package.json +0 -65
- package/templates/almadar-shell-hono/packages/client/postcss.config.js +0 -6
- package/templates/almadar-shell-hono/packages/client/scripts/route-documents.mjs +0 -141
- package/templates/almadar-shell-hono/packages/client/src/App.tsx +0 -104
- package/templates/almadar-shell-hono/packages/client/src/config/auth.ts +0 -68
- package/templates/almadar-shell-hono/packages/client/src/features/auth/AuthContext.tsx +0 -10
- package/templates/almadar-shell-hono/packages/client/src/features/auth/SignOutListener.tsx +0 -11
- package/templates/almadar-shell-hono/packages/client/src/features/auth/__tests__/SignOutListener.test.tsx +0 -44
- package/templates/almadar-shell-hono/packages/client/src/features/auth/components/Login.tsx +0 -222
- package/templates/almadar-shell-hono/packages/client/src/features/auth/components/PersonaSwitcher.tsx +0 -48
- package/templates/almadar-shell-hono/packages/client/src/features/auth/components/UserProfile.tsx +0 -68
- package/templates/almadar-shell-hono/packages/client/src/features/auth/components/index.ts +0 -2
- package/templates/almadar-shell-hono/packages/client/src/features/auth/index.ts +0 -11
- package/templates/almadar-shell-hono/packages/client/src/features/auth/types.ts +0 -10
- package/templates/almadar-shell-hono/packages/client/src/generated/index.ts +0 -13
- package/templates/almadar-shell-hono/packages/client/src/index.css +0 -36
- package/templates/almadar-shell-hono/packages/client/src/main.tsx +0 -8
- package/templates/almadar-shell-hono/packages/client/src/navigation/index.ts +0 -55
- package/templates/almadar-shell-hono/packages/client/src/pages/index.ts +0 -12
- package/templates/almadar-shell-hono/packages/client/tailwind-preset.cjs +0 -259
- package/templates/almadar-shell-hono/packages/client/tailwind.config.js +0 -24
- package/templates/almadar-shell-hono/packages/client/tsconfig.json +0 -33
- package/templates/almadar-shell-hono/packages/client/vite.config.ts +0 -50
- package/templates/almadar-shell-hono/packages/server/eslint.config.cjs +0 -19
- package/templates/almadar-shell-hono/packages/server/package.json +0 -38
- package/templates/almadar-shell-hono/packages/server/pnpm-lock.yaml +0 -4665
- package/templates/almadar-shell-hono/packages/server/scripts/emulators.mjs +0 -10
- package/templates/almadar-shell-hono/packages/server/src/app.ts +0 -79
- package/templates/almadar-shell-hono/packages/server/src/hooks-providers.ts +0 -11
- package/templates/almadar-shell-hono/packages/server/src/index.ts +0 -72
- package/templates/almadar-shell-hono/packages/server/src/routes.ts +0 -12
- package/templates/almadar-shell-hono/packages/server/src/serve.ts +0 -49
- package/templates/almadar-shell-hono/packages/server/src/services/clients.ts +0 -17
- package/templates/almadar-shell-hono/packages/server/src/sse.ts +0 -20
- package/templates/almadar-shell-hono/packages/server/src/viewer.ts +0 -22
- package/templates/almadar-shell-hono/packages/server/tsconfig.json +0 -23
- package/templates/almadar-shell-hono/packages/shared/package.json +0 -25
- package/templates/almadar-shell-hono/packages/shared/pnpm-lock.yaml +0 -919
- package/templates/almadar-shell-hono/packages/shared/src/index.ts +0 -2
- package/templates/almadar-shell-hono/packages/shared/tsconfig.json +0 -17
- package/templates/almadar-shell-hono/packages/shared/tsup.config.ts +0 -10
- package/templates/almadar-shell-hono/pnpm-lock.yaml +0 -12931
- package/templates/almadar-shell-hono/pnpm-workspace.yaml +0 -2
- package/templates/almadar-shell-hono/routes.json +0 -4
- package/templates/almadar-shell-hono/tsup.config.ts +0 -13
- package/templates/almadar-shell-hono/turbo.json +0 -17
- package/templates/almadar-shell-hono/vitest.config.ts +0 -8
package/templates/almadar-renderers-typescript/src/components/avl/molecules/OrbPreviewNode.tsx
ADDED
|
@@ -0,0 +1,1994 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* OrbPreviewNode
|
|
5
|
+
*
|
|
6
|
+
* React Flow node that renders a real OrbPreview inside it.
|
|
7
|
+
* The canvas is always live and editable (like Figma). Clicking any
|
|
8
|
+
* rendered UI element selects its pattern and shows props in the
|
|
9
|
+
* TransitionPanel. No edit mode toggle needed.
|
|
10
|
+
*
|
|
11
|
+
* The header is the drag handle for React Flow. The content area
|
|
12
|
+
* passes clicks through to the pattern elements.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React, { useMemo, useState, useCallback, useContext, createContext, useRef, useEffect } from 'react';
|
|
16
|
+
import { Handle, NodeResizeControl, Position, ResizeControlVariant, useReactFlow, type NodeProps } from '@xyflow/react';
|
|
17
|
+
import type { OrbitalSchema, OrbitalDefinition, Trait, Transition, Effect, EntityData, EntityRow, EventPayloadField, TraitEventContract, EventPayload, EventPayloadValue, PageRef } from '@almadar/core';
|
|
18
|
+
import { isInlineTrait, isPageReference, toPayloadValue } from '@almadar/core';
|
|
19
|
+
import type { EditFocus, EntityRef, TraitRef } from '@almadar/core';
|
|
20
|
+
import { collectEmbeddedTraits } from '../../../lib/embedded-traits';
|
|
21
|
+
|
|
22
|
+
import { CANVAS_TOOLS, hasCanvasTool, type CanvasTool } from '../../../lib/canvas-tools';
|
|
23
|
+
import { avlTint } from '../../../lib/avl-theme';
|
|
24
|
+
|
|
25
|
+
function entityNameOf(ref: EntityRef | undefined): string | undefined {
|
|
26
|
+
if (!ref) return undefined;
|
|
27
|
+
if (typeof ref === 'string') return ref;
|
|
28
|
+
return 'name' in ref ? ref.name : undefined;
|
|
29
|
+
}
|
|
30
|
+
import { Box } from '../../../core';
|
|
31
|
+
import { Typography } from '../../../core';
|
|
32
|
+
import { Button } from '../../../core';
|
|
33
|
+
import { Icon } from '../../../core';
|
|
34
|
+
import { Select } from '../../../core';
|
|
35
|
+
import { IconButton } from '../../core/molecules/IconButton';
|
|
36
|
+
import { Badge } from '../../../core';
|
|
37
|
+
import { LIVE_STATE, type CanvasStateOptions } from '../../../lib/avl-preview-converter';
|
|
38
|
+
import { resolvePatternConfig, patternNodeAt, parseClipboardPatterns, PATTERN_CLIPBOARD_TYPE } from '../../../lib/resolve-pattern-config';
|
|
39
|
+
import { isEditableTarget } from '../../../lib/keyMapEvent';
|
|
40
|
+
import { useInlineTextEdit } from '../../../hooks/useInlineTextEdit';
|
|
41
|
+
import { DesignSelectionOverlay } from './DesignSelectionOverlay';
|
|
42
|
+
import { axisPositionFrom, distanceLines, insertionLineRect, layoutBoxOf, marqueeHits, marqueeRect, offsetWithin, renderedAlignment, renderedSpacing, snapMove, spacingScaleOf, type GuideLine, type MeasureLine, type OffsetInParent, type OverlayRect } from '../../../lib/selection-geometry';
|
|
43
|
+
import { DesignGuidesOverlay } from './DesignGuidesOverlay';
|
|
44
|
+
import { OrbPreview } from '../../../preview/OrbPreview';
|
|
45
|
+
import { avlSeries } from '../../../lib/avl-theme';
|
|
46
|
+
import { useEventBus } from '../../../core';
|
|
47
|
+
import { useTranslate } from '../../../core';
|
|
48
|
+
import { usePrefersReducedMotion } from '../../../core';
|
|
49
|
+
import {
|
|
50
|
+
useCanvasDroppable,
|
|
51
|
+
useCanvasDraggable,
|
|
52
|
+
useCanvasDragKind,
|
|
53
|
+
type CanvasDropTarget,
|
|
54
|
+
type CanvasContainerNode,
|
|
55
|
+
} from '../../../hooks/useCanvasDnd';
|
|
56
|
+
import { formatPayloadTooltip } from '../../../lib/wire-validation';
|
|
57
|
+
import { deriveEditFocusFromElement, traitOfElement, withNodeTransition } from '../../../lib/derive-edit-focus';
|
|
58
|
+
import { ElementEditAccessContext, propAccessAt } from '../../../lib/element-edit-access';
|
|
59
|
+
import { computeInsertionIndex, type DOMRectLike, type InsertionAxis } from '../../../lib/compute-insertion-index';
|
|
60
|
+
import { directPatternChildren, resolveDirectChildren } from '../../../lib/resolve-direct-children';
|
|
61
|
+
import { createLogger } from '@almadar/logger';
|
|
62
|
+
import { type SpacingStepPx, positionOf, withPosition } from '../../../lib/design-classes';
|
|
63
|
+
import { type PreviewNodeData, type PatternEventSource, type ScreenSize, SCREEN_SIZE_PRESETS } from '../../../lib/avl-preview-converter';
|
|
64
|
+
import { STATE_COLORS, CONNECTION_COLORS, type StateRole } from '../../../lib/avl-theme';
|
|
65
|
+
|
|
66
|
+
const eventHandleLog = createLogger('almadar:ui:nan-coord');
|
|
67
|
+
const orbPreviewLog = createLogger('almadar:ui:orb-preview-node');
|
|
68
|
+
|
|
69
|
+
// AVL canvas wire check: log module-init so we can confirm OrbPreviewNode
|
|
70
|
+
// actually finished defining before FlowCanvas's NODE_TYPES picks it up.
|
|
71
|
+
// If this never fires but FlowCanvas's `node-type-registry` log does, the
|
|
72
|
+
// import order is wrong and `preview` lands `undefined` in the registry.
|
|
73
|
+
orbPreviewLog.debug('module-init', () => ({ orbPreview: typeof OrbPreview }));
|
|
74
|
+
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// Contexts (provided by FlowCanvas)
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
export const ScreenSizeContext = createContext<ScreenSize>('tablet');
|
|
80
|
+
|
|
81
|
+
const CARD_MIN_WIDTH = 240;
|
|
82
|
+
const CARD_MAX_WIDTH = 1600;
|
|
83
|
+
|
|
84
|
+
/** Selected pattern info, emitted when user clicks a UI element in the node. */
|
|
85
|
+
export interface SelectedPattern {
|
|
86
|
+
/** The pattern type (e.g., "button", "input", "stack"). */
|
|
87
|
+
patternType: string;
|
|
88
|
+
/** The DOM element's data-pattern-id if available. */
|
|
89
|
+
patternId?: string;
|
|
90
|
+
/** The node this pattern belongs to. */
|
|
91
|
+
nodeData: PreviewNodeData;
|
|
92
|
+
/** The source trait for this slot content. */
|
|
93
|
+
sourceTrait?: string;
|
|
94
|
+
/** Bounding rect relative to the node for floating inspector positioning. */
|
|
95
|
+
rect?: { top: number; left: number; width: number; height: number };
|
|
96
|
+
/** Every selected pattern path in this node (multi-select), this one — the primary — last. */
|
|
97
|
+
selection?: string[];
|
|
98
|
+
/** Its distances from its parent's four sides and the parent's size (card px), when it has a parent pattern. */
|
|
99
|
+
offsetInParent?: OffsetInParent;
|
|
100
|
+
/** The element's own address — the trait that drew it (an embedded trait's, not the card's), transition, slot, path. */
|
|
101
|
+
focus?: EditFocus;
|
|
102
|
+
/** Every selected element's own address (multi-select), the primary last — `selection` repeats paths across embedded traits. */
|
|
103
|
+
elements?: EditFocus[];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export const PatternSelectionContext = createContext<{
|
|
107
|
+
selected: SelectedPattern | null;
|
|
108
|
+
select: (pattern: SelectedPattern | null) => void;
|
|
109
|
+
}>({ selected: null, select: () => {} });
|
|
110
|
+
|
|
111
|
+
/** The canvas editing tools the host turned on (a persona's shell manifest declares them); all by default. */
|
|
112
|
+
export const CanvasToolsContext = createContext<readonly CanvasTool[]>(CANVAS_TOOLS);
|
|
113
|
+
|
|
114
|
+
/** The state dropdown each orbital card shows in its header (FlowCanvas provides it). */
|
|
115
|
+
export interface CanvasStatePicker {
|
|
116
|
+
optionsOf: (orbital: string) => CanvasStateOptions;
|
|
117
|
+
chosen: (orbital: string) => string;
|
|
118
|
+
choose: (orbital: string, stateId: string) => void;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export const CanvasStatePickerContext = createContext<CanvasStatePicker | null>(null);
|
|
122
|
+
|
|
123
|
+
/** A trait's latest verification verdict, as the host keeps it. */
|
|
124
|
+
export interface CardVerdict {
|
|
125
|
+
status: 'pass' | 'fail' | 'stale' | 'running';
|
|
126
|
+
detail?: string;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* A host that verifies from the canvas (Studio's Designer): each card shows controls to verify
|
|
131
|
+
* the transition it shows (`UI:CARD_VERIFY_STEP`) or its trait's whole walk
|
|
132
|
+
* (`UI:CARD_VERIFY_TRAIT`, paused and stopped with `UI:CARD_VERIFY_PAUSE` / `_STOP`), and the
|
|
133
|
+
* trait's verdict. Absent: no verify controls.
|
|
134
|
+
*/
|
|
135
|
+
export interface CanvasVerify {
|
|
136
|
+
verdictOf: (orbital: string, trait: string) => CardVerdict | undefined;
|
|
137
|
+
playing: (orbital: string) => boolean;
|
|
138
|
+
/** Subscribe to the states a run reaches; a card with a screen for the step flips to it. Returns the unsubscribe. */
|
|
139
|
+
follow: (onStep: (step: CanvasStepReached) => void) => () => void;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** A transition a verification run just took, on the trait of `orbital`. */
|
|
143
|
+
export interface CanvasStepReached {
|
|
144
|
+
orbital: string;
|
|
145
|
+
trait: string;
|
|
146
|
+
event: string;
|
|
147
|
+
from: string;
|
|
148
|
+
to: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export const CanvasVerifyContext = createContext<CanvasVerify | null>(null);
|
|
152
|
+
|
|
153
|
+
/** A card's frame was resized to `width` (its right-edge control); FlowCanvas provides it and persists the width with the positions. */
|
|
154
|
+
export const CanvasCardWidthContext = createContext<(nodeId: string, width: number) => void>(() => undefined);
|
|
155
|
+
|
|
156
|
+
const VERDICT_VARIANT: Record<CardVerdict['status'], 'success' | 'error' | 'warning' | 'info'> = {
|
|
157
|
+
pass: 'success',
|
|
158
|
+
fail: 'error',
|
|
159
|
+
stale: 'warning',
|
|
160
|
+
running: 'info',
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* `useCanvasDraggable`'s `'pattern-instance'` payload data (see
|
|
165
|
+
* `useCanvasDnd.tsx`). `[key: string]: EventPayloadValue` mirrors
|
|
166
|
+
* `CanvasContainerNode`'s own index signature — required to structurally
|
|
167
|
+
* match `EventPayload` when handed to `useCanvasDraggable`.
|
|
168
|
+
*/
|
|
169
|
+
interface PatternInstanceDragData {
|
|
170
|
+
fromPath: string;
|
|
171
|
+
loc: CanvasContainerNode;
|
|
172
|
+
[key: string]: EventPayloadValue;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// ---------------------------------------------------------------------------
|
|
176
|
+
// State role colors
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
|
|
179
|
+
// Read at render: `STATE_COLORS` lives in another module, and the split dist chunks
|
|
180
|
+
// do not guarantee it is initialised when this module is.
|
|
181
|
+
function roleColors(role: StateRole): { border: string; dot: string } {
|
|
182
|
+
if (role === 'default') return { border: 'var(--color-border)', dot: STATE_COLORS.default.border };
|
|
183
|
+
return { border: STATE_COLORS[role].border, dot: STATE_COLORS[role].border };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const LAYER_ORDER = ['Infrastructure', 'Services', 'UI Patterns', 'Game', 'ML', 'Domain', 'Community'] as const;
|
|
187
|
+
const LAYER_LABEL_KEYS: Record<string, string> = {
|
|
188
|
+
Infrastructure: 'orbPreview.layer.infrastructure',
|
|
189
|
+
Services: 'orbPreview.layer.services',
|
|
190
|
+
'UI Patterns': 'orbPreview.layer.uiPatterns',
|
|
191
|
+
Game: 'orbPreview.layer.game',
|
|
192
|
+
ML: 'orbPreview.layer.ml',
|
|
193
|
+
Domain: 'orbPreview.layer.domain',
|
|
194
|
+
Community: 'orbPreview.layer.community',
|
|
195
|
+
};
|
|
196
|
+
let layerColors: Record<string, string> | undefined;
|
|
197
|
+
// Built on first use: avlSeries reads THEME_SERIES, which another chunk may not have evaluated yet at module load.
|
|
198
|
+
const layerColorOf = (layer: string): string | undefined => {
|
|
199
|
+
layerColors ??= Object.fromEntries(LAYER_ORDER.map((name, i) => [name, avlSeries(i)]));
|
|
200
|
+
return layerColors[layer];
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
// ---------------------------------------------------------------------------
|
|
204
|
+
// Handle styles
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
206
|
+
|
|
207
|
+
const TARGET_HANDLE_STYLE: React.CSSProperties = {
|
|
208
|
+
background: 'var(--color-primary)',
|
|
209
|
+
width: 8,
|
|
210
|
+
height: 8,
|
|
211
|
+
border: '2px solid var(--color-card)',
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
function eventHandleStyle(source: PatternEventSource): React.CSSProperties {
|
|
215
|
+
const hint = Number.isFinite(source.positionHint) ? source.positionHint : 0.5;
|
|
216
|
+
if (hint !== source.positionHint) {
|
|
217
|
+
eventHandleLog.warn('orb-preview-handle: non-finite positionHint on PatternEventSource', {
|
|
218
|
+
event: source.event,
|
|
219
|
+
patternType: source.patternType,
|
|
220
|
+
label: source.label,
|
|
221
|
+
positionHint: source.positionHint,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
background: CONNECTION_COLORS.emitListen.color,
|
|
226
|
+
width: 10,
|
|
227
|
+
height: 10,
|
|
228
|
+
border: '2px solid var(--color-card)',
|
|
229
|
+
top: `${hint * 100}%`,
|
|
230
|
+
right: -5,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// ---------------------------------------------------------------------------
|
|
235
|
+
// Schema builders for OrbPreview
|
|
236
|
+
// ---------------------------------------------------------------------------
|
|
237
|
+
|
|
238
|
+
function buildOrbitalSchema(
|
|
239
|
+
fullSchema: OrbitalSchema,
|
|
240
|
+
orbitalName: string,
|
|
241
|
+
): OrbitalSchema {
|
|
242
|
+
const orbital = (fullSchema.orbitals ?? []).find((o: OrbitalDefinition) => o.name === orbitalName);
|
|
243
|
+
if (!orbital) return fullSchema;
|
|
244
|
+
return { ...fullSchema, name: `${fullSchema.name}__${orbitalName}`, orbitals: [orbital] };
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* The L2 transition card synthesizes a one-state state machine that fires INIT
|
|
249
|
+
* with the target transition's render-ui effects. But render-ui props bind
|
|
250
|
+
* `@payload.<X>` — values normally carried by the triggering event. With an
|
|
251
|
+
* auto-INIT and no payload, those bindings resolve to undefined and the
|
|
252
|
+
* preview is empty. We rebuild a representative payload from the trait's
|
|
253
|
+
* declared `emits[<event>].payloadSchema` (every std-14 emit has one), then
|
|
254
|
+
* substitute every `@payload.<path>` reference in the cloned effects.
|
|
255
|
+
*/
|
|
256
|
+
|
|
257
|
+
function generateMockPayload(
|
|
258
|
+
payloadSchema: EventPayloadField[] | undefined,
|
|
259
|
+
schema: OrbitalSchema,
|
|
260
|
+
linkedEntity: string | undefined,
|
|
261
|
+
mockData: EntityData | undefined,
|
|
262
|
+
): EventPayload {
|
|
263
|
+
const payload: EventPayload = {};
|
|
264
|
+
if (!payloadSchema || payloadSchema.length === 0) return payload;
|
|
265
|
+
|
|
266
|
+
const entityNames = new Set<string>();
|
|
267
|
+
for (const orb of schema.orbitals ?? []) {
|
|
268
|
+
const name = entityNameOf(orb.entity);
|
|
269
|
+
if (name) entityNames.add(name);
|
|
270
|
+
}
|
|
271
|
+
const linkedRows: EntityRow[] = linkedEntity
|
|
272
|
+
? mockData?.[linkedEntity] ?? []
|
|
273
|
+
: [];
|
|
274
|
+
const linkedFirstRow: EntityRow | undefined = linkedRows[0];
|
|
275
|
+
|
|
276
|
+
const valueForType = (rawType: string, entityType?: string): EventPayloadValue | undefined => {
|
|
277
|
+
const type = rawType.replace(/!$/, '').trim();
|
|
278
|
+
const arrayMatch = /^\[\s*(\w+)\s*\]$/.exec(type);
|
|
279
|
+
if (arrayMatch) {
|
|
280
|
+
// [X] → rows for X. Fall back to linkedEntity rows when the resolver
|
|
281
|
+
// hasn't rewritten the atom's original entity name (e.g. `[BrowseItem]`
|
|
282
|
+
// surviving on a Channel-bound trait).
|
|
283
|
+
return mockData?.[arrayMatch[1]] ?? linkedRows;
|
|
284
|
+
}
|
|
285
|
+
if (type === 'array') return linkedRows;
|
|
286
|
+
if (type === 'entity') {
|
|
287
|
+
const target = entityType && mockData?.[entityType] ? entityType : linkedEntity;
|
|
288
|
+
return (target && mockData?.[target]?.[0]) ?? linkedFirstRow ?? {};
|
|
289
|
+
}
|
|
290
|
+
if (entityNames.has(type)) {
|
|
291
|
+
return mockData?.[type]?.[0] ?? linkedFirstRow ?? {};
|
|
292
|
+
}
|
|
293
|
+
switch (type) {
|
|
294
|
+
case 'string': return 'Sample';
|
|
295
|
+
case 'number': return 1;
|
|
296
|
+
case 'boolean': return false;
|
|
297
|
+
case 'object': return {};
|
|
298
|
+
case 'date':
|
|
299
|
+
case 'datetime':
|
|
300
|
+
case 'timestamp': return new Date().toISOString();
|
|
301
|
+
default: return undefined;
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
const setByPath = (target: EventPayload, path: string, value: EventPayloadValue): void => {
|
|
306
|
+
const parts = path.split('.');
|
|
307
|
+
let cur: EventPayload = target;
|
|
308
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
309
|
+
const k = parts[i];
|
|
310
|
+
const next = cur[k];
|
|
311
|
+
if (next === null || typeof next !== 'object' || Array.isArray(next)) {
|
|
312
|
+
cur[k] = {};
|
|
313
|
+
}
|
|
314
|
+
// After the assignment above, cur[k] is an EventPayload object.
|
|
315
|
+
cur = cur[k] as EventPayload;
|
|
316
|
+
}
|
|
317
|
+
cur[parts[parts.length - 1]] = value;
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
for (const field of payloadSchema) {
|
|
321
|
+
let value = valueForType(field.type, field.entity);
|
|
322
|
+
// For path-style fields (e.g. `row.id`) whose declared type is a
|
|
323
|
+
// primitive, prefer the matching value off the linked entity's first row
|
|
324
|
+
// so the preview shows real, consistent data instead of "Sample".
|
|
325
|
+
if (
|
|
326
|
+
linkedFirstRow !== undefined &&
|
|
327
|
+
field.name.includes('.') &&
|
|
328
|
+
(typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
|
|
329
|
+
) {
|
|
330
|
+
const tail = field.name.split('.').pop()!;
|
|
331
|
+
const fromRow = linkedFirstRow[tail];
|
|
332
|
+
if (fromRow !== undefined) value = fromRow;
|
|
333
|
+
}
|
|
334
|
+
if (value !== undefined) setByPath(payload, field.name, value);
|
|
335
|
+
}
|
|
336
|
+
return payload;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
function substitutePayloadBindings(
|
|
340
|
+
effects: Effect[],
|
|
341
|
+
payload: EventPayload,
|
|
342
|
+
): Effect[] {
|
|
343
|
+
const isPayloadObject = (v: EventPayloadValue | undefined): v is EventPayload =>
|
|
344
|
+
v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
345
|
+
const getByPath = (path: string): EventPayloadValue | undefined => {
|
|
346
|
+
let cur: EventPayloadValue | undefined = payload;
|
|
347
|
+
for (const k of path.split('.')) {
|
|
348
|
+
if (!isPayloadObject(cur)) return undefined;
|
|
349
|
+
cur = cur[k];
|
|
350
|
+
}
|
|
351
|
+
return cur;
|
|
352
|
+
};
|
|
353
|
+
const replaceValue = (v: EventPayloadValue): EventPayloadValue => {
|
|
354
|
+
if (typeof v === 'string' && v.startsWith('@payload.')) {
|
|
355
|
+
const resolved = getByPath(v.slice('@payload.'.length));
|
|
356
|
+
// Leave the literal in place when a field is missing from the schema —
|
|
357
|
+
// the runtime's existing resolver will treat it as undefined like
|
|
358
|
+
// before, so we never fabricate values for un-declared paths.
|
|
359
|
+
return resolved === undefined ? v : resolved;
|
|
360
|
+
}
|
|
361
|
+
if (Array.isArray(v)) return v.map(replaceValue);
|
|
362
|
+
if (v && typeof v === 'object' && !(v instanceof Date)) {
|
|
363
|
+
const out: EventPayload = {};
|
|
364
|
+
for (const [k, inner] of Object.entries(v)) {
|
|
365
|
+
out[k] = replaceValue(inner);
|
|
366
|
+
}
|
|
367
|
+
return out;
|
|
368
|
+
}
|
|
369
|
+
return v;
|
|
370
|
+
};
|
|
371
|
+
// Effects are JSON-serialisable trees of strings, numbers, booleans, arrays
|
|
372
|
+
// and objects — structurally a subset of EventPayloadValue, the canonical
|
|
373
|
+
// recursive JSON shape from @almadar/core. Take its typed JSON form,
|
|
374
|
+
// substitute, then narrow back to Effect on the way out.
|
|
375
|
+
const tree: EventPayloadValue = toPayloadValue(effects);
|
|
376
|
+
const substituted = replaceValue(tree);
|
|
377
|
+
return substituted as Effect[];
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
function findEmitContract(trait: Trait, event: string): TraitEventContract | undefined {
|
|
381
|
+
return trait.emits?.find((e) => e.event === event);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/** Paths restart at each embedded trait's root: an element is its path within the trait that drew it. */
|
|
385
|
+
function elementIn(container: Element | null | undefined, path: string, trait: string | undefined): HTMLElement | null {
|
|
386
|
+
const candidates = Array.from(container?.querySelectorAll(`[data-pattern-path="${CSS.escape(path)}"]`) ?? []);
|
|
387
|
+
const el = candidates.find((c) => trait === undefined || traitOfElement(c) === trait);
|
|
388
|
+
return el instanceof HTMLElement ? el : null;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
function sameElement(a: EditFocus, b: EditFocus): boolean {
|
|
392
|
+
return a.trait === b.trait && a.path === b.path;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
type DropContainer = { orbital: string; trait: string; transition: string; slot: string; path: string };
|
|
396
|
+
|
|
397
|
+
/** The address a structure edit carries, when the element has a complete one. */
|
|
398
|
+
function elementAddressOf(focus: EditFocus): DropContainer | null {
|
|
399
|
+
const { orbital, trait, transition, slot, path } = focus;
|
|
400
|
+
return trait && transition !== undefined && slot && path ? { orbital, trait, transition, slot, path } : null;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* The topmost rendered element under a point inside `content`: the canvas's
|
|
405
|
+
* own chrome drawn over the render (selection frame, handles, badges) is
|
|
406
|
+
* looked through, so a drop onto a selected element resolves into the render
|
|
407
|
+
* beneath it, not the card's dead space.
|
|
408
|
+
*/
|
|
409
|
+
function renderedElementAt(content: HTMLElement | null, point: { x: number; y: number }): HTMLElement | null {
|
|
410
|
+
const stack = document.elementsFromPoint(point.x, point.y);
|
|
411
|
+
const rendered = stack.find((el): el is HTMLElement => el instanceof HTMLElement && content?.contains(el) === true && el.closest('[data-pattern-path]') !== null);
|
|
412
|
+
if (rendered) return rendered;
|
|
413
|
+
const top = stack[0];
|
|
414
|
+
return top instanceof HTMLElement ? top : null;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/** `traitName` and every trait it embeds, transitively (the runtime's own `@trait.X` scan). */
|
|
418
|
+
function embeddedClosure(traits: ReadonlyArray<TraitRef>, traitName: string): Set<string> {
|
|
419
|
+
const byName = new Map(traits.flatMap((t): Array<[string, TraitRef]> => (typeof t !== 'string' && 'name' in t && t.name ? [[t.name, t]] : [])));
|
|
420
|
+
const kept = new Set([traitName]);
|
|
421
|
+
let frontier = [traitName];
|
|
422
|
+
while (frontier.length > 0) {
|
|
423
|
+
const scan = frontier.flatMap((n) => { const t = byName.get(n); return t ? [t] : []; });
|
|
424
|
+
const refs = collectEmbeddedTraits({ name: 'closure', orbitals: [{ name: 'closure', entity: { name: 'closure', fields: [] }, traits: scan, pages: [] }] });
|
|
425
|
+
frontier = [...refs].filter((n) => byName.has(n) && !kept.has(n));
|
|
426
|
+
frontier.forEach((n) => kept.add(n));
|
|
427
|
+
}
|
|
428
|
+
return kept;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
function buildTransitionSchema(
|
|
432
|
+
fullSchema: OrbitalSchema,
|
|
433
|
+
orbitalName: string,
|
|
434
|
+
traitName: string,
|
|
435
|
+
transitionEvent: string,
|
|
436
|
+
fromState: string | undefined,
|
|
437
|
+
toState: string | undefined,
|
|
438
|
+
mockData: EntityData | undefined,
|
|
439
|
+
): OrbitalSchema {
|
|
440
|
+
const orbital = (fullSchema.orbitals ?? []).find((o: OrbitalDefinition) => o.name === orbitalName);
|
|
441
|
+
if (!orbital) return fullSchema;
|
|
442
|
+
|
|
443
|
+
const clonedOrbital: OrbitalDefinition = structuredClone(orbital);
|
|
444
|
+
|
|
445
|
+
const traits = clonedOrbital.traits ?? [];
|
|
446
|
+
for (let ti = 0; ti < traits.length; ti++) {
|
|
447
|
+
const trait = traits[ti];
|
|
448
|
+
if (!isInlineTrait(trait)) continue;
|
|
449
|
+
const traitObj: Trait = trait;
|
|
450
|
+
if (traitObj.name !== traitName) continue;
|
|
451
|
+
|
|
452
|
+
const sm = traitObj.stateMachine;
|
|
453
|
+
if (!sm) continue;
|
|
454
|
+
|
|
455
|
+
const allTransitions: Transition[] = sm.transitions ?? [];
|
|
456
|
+
const targetTransition = fromState && toState
|
|
457
|
+
? allTransitions.find(t => t.event === transitionEvent && t.from === fromState && t.to === toState)
|
|
458
|
+
?? allTransitions.find(t => t.event === transitionEvent)
|
|
459
|
+
: allTransitions.find(t => t.event === transitionEvent);
|
|
460
|
+
if (!targetTransition?.effects) continue;
|
|
461
|
+
|
|
462
|
+
// STUDIO-2: keep `["set", "@entity.X", ...]` effects so render-ui
|
|
463
|
+
// expressions reading those bindings resolve against the trait's
|
|
464
|
+
// own authored data (e.g. std-stats' DefaultKpiStats sets
|
|
465
|
+
// `@entity.cards` to a literal array of stat objects before its
|
|
466
|
+
// render-ui consumes them). Without this the L2 grouped cards
|
|
467
|
+
// render their `render-ui` against undefined bindings and show
|
|
468
|
+
// empty placeholders ("No items" / "No data available").
|
|
469
|
+
//
|
|
470
|
+
// Side effects that mutate external state (persist, call-service,
|
|
471
|
+
// fetch, emit) are still stripped — the L2 card is a sandbox.
|
|
472
|
+
const previewEffects: Effect[] = [];
|
|
473
|
+
let hasRenderUI = false;
|
|
474
|
+
for (const eff of targetTransition.effects) {
|
|
475
|
+
if (!Array.isArray(eff)) continue;
|
|
476
|
+
const op = eff[0];
|
|
477
|
+
if (op === 'render-ui') {
|
|
478
|
+
// L2 transition cards preview the screen the user will see when
|
|
479
|
+
// this transition fires. The runtime's portal slots (modal,
|
|
480
|
+
// drawer, overlay, center) render with `absolute inset-0` chrome
|
|
481
|
+
// that's tied to the host page's viewport — useful in a real
|
|
482
|
+
// app, useless in a card preview where there's no "page" to
|
|
483
|
+
// overlay. Worse, absolute children don't contribute to their
|
|
484
|
+
// parent's height, so the card can't auto-fit content the way
|
|
485
|
+
// L1 orbital cards do; it stays whatever fixed height we
|
|
486
|
+
// pinned it to, with empty space under tiny modals and
|
|
487
|
+
// overflow scroll on tall ones. Rewrite portal slots to
|
|
488
|
+
// `main` so the rendered pattern lands inline in the L2 card's
|
|
489
|
+
// main slot — content drives card height, just like L1.
|
|
490
|
+
const slotTarget = eff[1];
|
|
491
|
+
const PORTAL_SLOTS = new Set(['modal', 'drawer', 'overlay', 'center']);
|
|
492
|
+
const rewritten: Effect = (typeof slotTarget === 'string' && PORTAL_SLOTS.has(slotTarget))
|
|
493
|
+
? (['render-ui', 'main', ...eff.slice(2)] as Effect)
|
|
494
|
+
: eff;
|
|
495
|
+
previewEffects.push(rewritten);
|
|
496
|
+
hasRenderUI = true;
|
|
497
|
+
continue;
|
|
498
|
+
}
|
|
499
|
+
if (op === 'set') {
|
|
500
|
+
// Only preserve `set @entity.*` writes. `set @memory.*` etc.
|
|
501
|
+
// are global state we shouldn't pollute from a preview.
|
|
502
|
+
const target = eff[1];
|
|
503
|
+
if (typeof target === 'string' && target.startsWith('@entity.')) {
|
|
504
|
+
previewEffects.push(eff);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
if (!hasRenderUI) continue;
|
|
510
|
+
|
|
511
|
+
const linkedEntity = traitObj.linkedEntity ?? entityNameOf(clonedOrbital.entity);
|
|
512
|
+
const emitContract = findEmitContract(traitObj, transitionEvent);
|
|
513
|
+
const mockPayload = generateMockPayload(
|
|
514
|
+
emitContract?.payloadSchema,
|
|
515
|
+
fullSchema,
|
|
516
|
+
linkedEntity,
|
|
517
|
+
mockData,
|
|
518
|
+
);
|
|
519
|
+
const seededEffects = substitutePayloadBindings(previewEffects, mockPayload);
|
|
520
|
+
|
|
521
|
+
traitObj.stateMachine = {
|
|
522
|
+
states: [{ name: 'preview', isInitial: true }],
|
|
523
|
+
events: [{ key: 'INIT', name: 'INIT' }],
|
|
524
|
+
transitions: [{ from: 'preview', to: 'preview', event: 'INIT', effects: seededEffects }],
|
|
525
|
+
};
|
|
526
|
+
traitObj.emits = [];
|
|
527
|
+
traitObj.listens = [];
|
|
528
|
+
break;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
const targetTrait = traits.find((t) => {
|
|
532
|
+
if (typeof t === 'string') return t === traitName;
|
|
533
|
+
if ('name' in t) return t.name === traitName;
|
|
534
|
+
if ('ref' in t) return t.ref === traitName;
|
|
535
|
+
return false;
|
|
536
|
+
});
|
|
537
|
+
// Keep the traits the card embeds (`@trait.X`, transitively): a real
|
|
538
|
+
// screen is mostly embedded behaviors, whose frames render from their own
|
|
539
|
+
// traits. Everything else on the orbital is dropped.
|
|
540
|
+
const kept = targetTrait ? embeddedClosure(traits, traitName) : new Set<string>();
|
|
541
|
+
if (targetTrait) {
|
|
542
|
+
clonedOrbital.traits = traits.filter((t) => typeof t !== 'string' && 'name' in t && t.name !== undefined && kept.has(t.name));
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// Filter pages to reference ONLY the target trait. Without this the
|
|
546
|
+
// synthesized schema's pages still list the original 7+ trait names
|
|
547
|
+
// (ProductAppLayout, ProductCatalog, …) but `clonedOrbital.traits` was
|
|
548
|
+
// just narrowed to the target — `useResolvedSchema`'s page-binding
|
|
549
|
+
// resolution then drops or fails on the missing refs, and the
|
|
550
|
+
// `traitLinkedEntitiesMap` SchemaRunner builds from page bindings ends
|
|
551
|
+
// up empty (or missing our target). UISlotRenderer's form-section
|
|
552
|
+
// enrichment is gated on `entityDef` resolved via that map, so
|
|
553
|
+
// `fields: ["name", "price", …]` stays as raw strings and Form renders
|
|
554
|
+
// no inputs. Restricting pages.traits[] to the target restores the
|
|
555
|
+
// page → trait → entity chain the form needs.
|
|
556
|
+
//
|
|
557
|
+
// Each surviving binding gets an explicit `linkedEntity` so the chain
|
|
558
|
+
// resolves cleanly even when the original page binding relied on the
|
|
559
|
+
// trait's own `linkedEntity` declaration.
|
|
560
|
+
if (Array.isArray(clonedOrbital.pages)) {
|
|
561
|
+
const linkedEntityForTrait =
|
|
562
|
+
isInlineTrait(targetTrait as Trait)
|
|
563
|
+
? (targetTrait as Trait).linkedEntity ?? entityNameOf(clonedOrbital.entity)
|
|
564
|
+
: entityNameOf(clonedOrbital.entity);
|
|
565
|
+
clonedOrbital.pages = clonedOrbital.pages
|
|
566
|
+
.map((page: PageRef): PageRef => {
|
|
567
|
+
// String refs and PageRefObject refs point to imported pages
|
|
568
|
+
// we can't introspect here — leave them as-is so the resolver
|
|
569
|
+
// either follows the import or skips them gracefully.
|
|
570
|
+
if (isPageReference(page)) return page;
|
|
571
|
+
const inline = page;
|
|
572
|
+
if (!Array.isArray(inline.traits)) return inline;
|
|
573
|
+
const filteredTraits = inline.traits
|
|
574
|
+
.filter((t) => kept.has(t.ref))
|
|
575
|
+
.map((t) => (t.ref === traitName ? { ...t, linkedEntity: t.linkedEntity ?? linkedEntityForTrait } : t));
|
|
576
|
+
return { ...inline, traits: filteredTraits };
|
|
577
|
+
})
|
|
578
|
+
.filter((page: PageRef): boolean => {
|
|
579
|
+
if (isPageReference(page)) return true;
|
|
580
|
+
return Array.isArray(page.traits) && page.traits.length > 0;
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
return { ...fullSchema, name: `${fullSchema.name}__${orbitalName}__${traitName}__${transitionEvent}`, orbitals: [clonedOrbital] };
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
// ---------------------------------------------------------------------------
|
|
588
|
+
// Selection highlight styles (injected once)
|
|
589
|
+
// ---------------------------------------------------------------------------
|
|
590
|
+
|
|
591
|
+
// NOTE: hover/selection outlines are NOT done with CSS `outline` on
|
|
592
|
+
// `[data-pattern]`. Those wrappers are `display:contents` (no generated box),
|
|
593
|
+
// so `outline` paints nothing and `getBoundingClientRect()` is 0×0. The
|
|
594
|
+
// visible highlight is a JS-positioned overlay (see component) sized to the
|
|
595
|
+
// union of the wrapper's rendered children. CSS here only sets the cursor.
|
|
596
|
+
const SELECTION_STYLES = `
|
|
597
|
+
.orb-preview-live [data-pattern] {
|
|
598
|
+
cursor: pointer;
|
|
599
|
+
}
|
|
600
|
+
.orb-preview-live.drag-active [data-accepts-children="true"] {
|
|
601
|
+
outline: 2px dashed var(--color-primary);
|
|
602
|
+
outline-offset: -2px;
|
|
603
|
+
transition: outline-color 0.15s, background-color 0.15s;
|
|
604
|
+
}
|
|
605
|
+
.orb-preview-live.drag-active [data-accepts-children="true"].drag-hover {
|
|
606
|
+
outline-color: var(--color-primary);
|
|
607
|
+
background-color: color-mix(in srgb, var(--color-primary) 5%, transparent);
|
|
608
|
+
}
|
|
609
|
+
.orb-preview-live .drop-indicator {
|
|
610
|
+
height: 2px;
|
|
611
|
+
background: var(--color-primary);
|
|
612
|
+
border-radius: 1px;
|
|
613
|
+
pointer-events: none;
|
|
614
|
+
}
|
|
615
|
+
`;
|
|
616
|
+
|
|
617
|
+
// ---------------------------------------------------------------------------
|
|
618
|
+
// Selection / hover overlay geometry
|
|
619
|
+
// ---------------------------------------------------------------------------
|
|
620
|
+
|
|
621
|
+
interface RectLike {
|
|
622
|
+
top: number;
|
|
623
|
+
left: number;
|
|
624
|
+
width: number;
|
|
625
|
+
height: number;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* Absolute (viewport) union box of `el`. A `[data-pattern]` wrapper is
|
|
630
|
+
* `display:contents`, so its own `getBoundingClientRect()` is 0×0 — we union
|
|
631
|
+
* its rendered descendants' boxes instead (recursing through any nested
|
|
632
|
+
* contents wrappers) to get the real painted bounds.
|
|
633
|
+
*/
|
|
634
|
+
function absUnion(el: Element): { top: number; left: number; right: number; bottom: number } | null {
|
|
635
|
+
const own = el.getBoundingClientRect();
|
|
636
|
+
if (own.width > 0 || own.height > 0) {
|
|
637
|
+
return { top: own.top, left: own.left, right: own.right, bottom: own.bottom };
|
|
638
|
+
}
|
|
639
|
+
let r: { top: number; left: number; right: number; bottom: number } | null = null;
|
|
640
|
+
for (const child of Array.from(el.children)) {
|
|
641
|
+
const box = absUnion(child);
|
|
642
|
+
if (!box) continue;
|
|
643
|
+
r = r
|
|
644
|
+
? {
|
|
645
|
+
top: Math.min(r.top, box.top),
|
|
646
|
+
left: Math.min(r.left, box.left),
|
|
647
|
+
right: Math.max(r.right, box.right),
|
|
648
|
+
bottom: Math.max(r.bottom, box.bottom),
|
|
649
|
+
}
|
|
650
|
+
: box;
|
|
651
|
+
}
|
|
652
|
+
return r;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
/**
|
|
656
|
+
* `el`'s painted bounds in `container`'s LOCAL (pre-transform) coordinate
|
|
657
|
+
* space. getBoundingClientRect returns SCREEN px — and this node lives inside
|
|
658
|
+
* ReactFlow's zoom/pan CSS transform — so the screen-space delta is divided by
|
|
659
|
+
* `zoom` to undo the transform. The overlay (a child of the same transformed
|
|
660
|
+
* container) is then re-scaled by ReactFlow to land exactly on the element.
|
|
661
|
+
*/
|
|
662
|
+
/** `root.children.2` → parent `root`, index 2; the root has no position. */
|
|
663
|
+
function childPosition(path: string): { parentPath: string; index: number } | null {
|
|
664
|
+
const match = /^(.*)\.children\.(\d+)$/.exec(path);
|
|
665
|
+
return match ? { parentPath: match[1], index: Number(match[2]) } : null;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
interface InsertionTarget {
|
|
669
|
+
parentPath: string;
|
|
670
|
+
index: number;
|
|
671
|
+
/** The container element's own address (the trait that drew it — an embedded behavior's, not the card's). */
|
|
672
|
+
container: DropContainer | null;
|
|
673
|
+
containerBox: DOMRectLike;
|
|
674
|
+
childRects: DOMRectLike[];
|
|
675
|
+
axis: InsertionAxis;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
interface SelectedLayout {
|
|
679
|
+
axis: InsertionAxis;
|
|
680
|
+
alignment: ReturnType<typeof renderedAlignment>;
|
|
681
|
+
spacing: ReturnType<typeof renderedSpacing>;
|
|
682
|
+
childRects: RectLike[];
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/** A layout container's flow direction and its direct children's boxes; null for anything else. */
|
|
686
|
+
function measureLayout(el: Element, container: Element, zoom: number): SelectedLayout | null {
|
|
687
|
+
if (el.getAttribute('data-accepts-children') !== 'true') return null;
|
|
688
|
+
const path = el.getAttribute('data-pattern-path') ?? 'root';
|
|
689
|
+
const children = resolveDirectChildren(
|
|
690
|
+
path,
|
|
691
|
+
Array.from(el.querySelectorAll('[data-pattern-path]')).map((child) => ({
|
|
692
|
+
path: child.getAttribute('data-pattern-path') ?? '',
|
|
693
|
+
ref: child,
|
|
694
|
+
})),
|
|
695
|
+
);
|
|
696
|
+
const childRects = children
|
|
697
|
+
.map((child) => rectRelativeTo(child, container, zoom))
|
|
698
|
+
.filter((r): r is RectLike => r !== null);
|
|
699
|
+
const axis = resolveLayoutAxis(el);
|
|
700
|
+
const style = getComputedStyle(layoutBoxOf(el));
|
|
701
|
+
return { axis, alignment: renderedAlignment(style), spacing: renderedSpacing(style, axis), childRects };
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
function rectRelativeTo(el: Element, container: Element, zoom: number): RectLike | null {
|
|
705
|
+
const u = absUnion(el);
|
|
706
|
+
if (!u) return null;
|
|
707
|
+
const base = container.getBoundingClientRect();
|
|
708
|
+
const z = zoom > 0 ? zoom : 1;
|
|
709
|
+
return {
|
|
710
|
+
top: (u.top - base.top) / z,
|
|
711
|
+
left: (u.left - base.left) / z,
|
|
712
|
+
width: (u.right - u.left) / z,
|
|
713
|
+
height: (u.bottom - u.top) / z,
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/**
|
|
718
|
+
* Where an element sits in its parent pattern, as an absolute child would be
|
|
719
|
+
* placed: against the parent's padding box (inside its border). Undefined for
|
|
720
|
+
* the root, which has no parent pattern.
|
|
721
|
+
*/
|
|
722
|
+
function offsetInParentOf(el: Element, rect: RectLike | null, container: Element, zoom: number): OffsetInParent | undefined {
|
|
723
|
+
const parent = rect ? parentBoxOf(el, container, zoom) : null;
|
|
724
|
+
return rect && parent ? offsetWithin(rect, parent.box) : undefined;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
/** The parent pattern of `el` and its padding box (what an absolute child is placed against), in content coordinates. */
|
|
728
|
+
function parentBoxOf(el: Element, container: Element, zoom: number): { el: Element; box: RectLike } | null {
|
|
729
|
+
const parentPattern = el.parentElement?.closest('[data-pattern-path]');
|
|
730
|
+
if (!parentPattern || !container.contains(parentPattern)) return null;
|
|
731
|
+
const box = layoutBoxOf(parentPattern);
|
|
732
|
+
if (!(box instanceof HTMLElement)) return null;
|
|
733
|
+
const z = zoom > 0 ? zoom : 1;
|
|
734
|
+
const b = box.getBoundingClientRect();
|
|
735
|
+
const base = container.getBoundingClientRect();
|
|
736
|
+
return {
|
|
737
|
+
el: parentPattern,
|
|
738
|
+
box: {
|
|
739
|
+
top: (b.top - base.top) / z + box.clientTop,
|
|
740
|
+
left: (b.left - base.left) / z + box.clientLeft,
|
|
741
|
+
width: box.clientWidth,
|
|
742
|
+
height: box.clientHeight,
|
|
743
|
+
},
|
|
744
|
+
};
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/** Flow direction of a container, read from the element that lays it out. */
|
|
748
|
+
function resolveLayoutAxis(el: Element): InsertionAxis {
|
|
749
|
+
return getComputedStyle(layoutBoxOf(el)).flexDirection === 'row' ? 'horizontal' : 'vertical';
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
// ---------------------------------------------------------------------------
|
|
753
|
+
// Component
|
|
754
|
+
// ---------------------------------------------------------------------------
|
|
755
|
+
|
|
756
|
+
const OrbPreviewNodeInner: React.FC<NodeProps> = (props) => {
|
|
757
|
+
const data = props.data as PreviewNodeData;
|
|
758
|
+
const screenSize = useContext(ScreenSizeContext);
|
|
759
|
+
const preset = SCREEN_SIZE_PRESETS[screenSize];
|
|
760
|
+
const { select } = useContext(PatternSelectionContext);
|
|
761
|
+
const { t } = useTranslate();
|
|
762
|
+
const eventBus = useEventBus();
|
|
763
|
+
const setCardWidth = useContext(CanvasCardWidthContext);
|
|
764
|
+
const reactFlow = useReactFlow();
|
|
765
|
+
const cameraMs = usePrefersReducedMotion() ? 0 : 200;
|
|
766
|
+
const contentRef = useRef<HTMLDivElement>(null);
|
|
767
|
+
const [hovered, setHovered] = useState(false);
|
|
768
|
+
// Paused by default: an edit surface first. While paused the card's ticks
|
|
769
|
+
// stop and clicks select elements instead of driving its trait machine.
|
|
770
|
+
const [playing, setPlaying] = useState(false);
|
|
771
|
+
const tools = useContext(CanvasToolsContext);
|
|
772
|
+
// Multi-select: every selected path (primary last), the others' outlines, and a marquee in progress.
|
|
773
|
+
const [selectedPaths, setSelectedPaths] = useState<string[]>([]);
|
|
774
|
+
const [selectedFocuses, setSelectedFocuses] = useState<EditFocus[]>([]);
|
|
775
|
+
const [extraRects, setExtraRects] = useState<RectLike[]>([]);
|
|
776
|
+
const [marquee, setMarquee] = useState<OverlayRect | null>(null);
|
|
777
|
+
const [guides, setGuides] = useState<GuideLine[]>([]);
|
|
778
|
+
const [measures, setMeasures] = useState<MeasureLine[]>([]);
|
|
779
|
+
const suppressClickRef = useRef(false);
|
|
780
|
+
const togglePlaying = useCallback((e: React.MouseEvent) => {
|
|
781
|
+
e.stopPropagation();
|
|
782
|
+
setPlaying((p) => !p);
|
|
783
|
+
}, []);
|
|
784
|
+
const handleMouseEnter = useCallback(() => setHovered(true), []);
|
|
785
|
+
const handleMouseLeave = useCallback(() => setHovered(false), []);
|
|
786
|
+
|
|
787
|
+
// Contextual-edit selection/hover overlays (sized to the union of the
|
|
788
|
+
// clicked/hovered element's rendered children; see rectRelativeTo).
|
|
789
|
+
const [selectedRect, setSelectedRect] = useState<RectLike | null>(null);
|
|
790
|
+
// The selected element's address in the render-ui tree, for edits made on the canvas.
|
|
791
|
+
const [selectedAddress, setSelectedAddress] = useState<{ patternId: string; patternType: string; focus: EditFocus | null } | null>(null);
|
|
792
|
+
// The selected element's layout (when it is a layout container), for spacing handles.
|
|
793
|
+
const [selectedLayout, setSelectedLayout] = useState<SelectedLayout | null>(null);
|
|
794
|
+
// What each spacing step renders at on the selection (its theme's --space-N tokens).
|
|
795
|
+
const [selectedScale, setSelectedScale] = useState<SpacingStepPx | undefined>(undefined);
|
|
796
|
+
const [hoverRect, setHoverRect] = useState<RectLike | null>(null);
|
|
797
|
+
const lastHoverElRef = useRef<Element | null>(null);
|
|
798
|
+
|
|
799
|
+
const role = data.stateRole ?? 'default';
|
|
800
|
+
const colors = roleColors(role);
|
|
801
|
+
const eventSources = data.eventSources ?? [];
|
|
802
|
+
const layerColor = data.layer ? layerColorOf(data.layer) : undefined;
|
|
803
|
+
|
|
804
|
+
const isExpanded = Boolean(data.traitName);
|
|
805
|
+
const status = data.status ?? 'idle';
|
|
806
|
+
const isRunning = status === 'running';
|
|
807
|
+
const isSuccess = status === 'success';
|
|
808
|
+
const isError = status === 'error';
|
|
809
|
+
const statePicker = useContext(CanvasStatePickerContext);
|
|
810
|
+
const verify = useContext(CanvasVerifyContext);
|
|
811
|
+
const stateOptions = useMemo(() => {
|
|
812
|
+
if (!statePicker || data.kind === 'trait-card') return null;
|
|
813
|
+
const { own, groups } = statePicker.optionsOf(data.orbitalName);
|
|
814
|
+
return {
|
|
815
|
+
options: [{ value: LIVE_STATE, label: t('canvas.liveState') }, ...own.map((o) => ({ value: o.id, label: o.label }))],
|
|
816
|
+
groups: groups.map((g) => ({ label: `${g.alias} · ${g.behaviorName}`, options: g.options.map((o) => ({ value: o.id, label: o.label })) })),
|
|
817
|
+
};
|
|
818
|
+
}, [statePicker, data.orbitalName, data.kind, t]);
|
|
819
|
+
const shownStep = useMemo(() => {
|
|
820
|
+
if (!verify || !statePicker || data.kind === 'trait-card') return null;
|
|
821
|
+
const { own, groups } = statePicker.optionsOf(data.orbitalName);
|
|
822
|
+
const chosen = statePicker.chosen(data.orbitalName);
|
|
823
|
+
const option = [...own, ...groups.flatMap((g) => g.options)].find((o) => o.id === chosen);
|
|
824
|
+
const trait = option?.data.traitName;
|
|
825
|
+
if (!option || !trait) return null;
|
|
826
|
+
return { trait, event: option.data.transitionEvent ?? '', from: option.data.fromState ?? '' };
|
|
827
|
+
}, [verify, statePicker, data.orbitalName, data.kind]);
|
|
828
|
+
const verdict = shownStep ? verify?.verdictOf(data.orbitalName, shownStep.trait) : undefined;
|
|
829
|
+
const verifyPlaying = verify?.playing(data.orbitalName) ?? false;
|
|
830
|
+
const sublabel = data.entityName ?? '';
|
|
831
|
+
|
|
832
|
+
const orbitalSchema = useMemo(() => {
|
|
833
|
+
const fullSchema = data._fullSchema as OrbitalSchema | undefined;
|
|
834
|
+
if (!fullSchema) return undefined;
|
|
835
|
+
|
|
836
|
+
if (isExpanded && data.traitName && data.transitionEvent) {
|
|
837
|
+
return buildTransitionSchema(
|
|
838
|
+
fullSchema,
|
|
839
|
+
data.orbitalName,
|
|
840
|
+
data.traitName,
|
|
841
|
+
data.transitionEvent,
|
|
842
|
+
data.fromState as string | undefined,
|
|
843
|
+
data.toState as string | undefined,
|
|
844
|
+
data._mockData as EntityData | undefined,
|
|
845
|
+
);
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
return buildOrbitalSchema(fullSchema, data.orbitalName);
|
|
849
|
+
}, [data._fullSchema, data._mockData, data.orbitalName, data.traitName, data.transitionEvent, data.fromState, data.toState, isExpanded]);
|
|
850
|
+
|
|
851
|
+
// Click delegation: find the closest [data-pattern] ancestor of the click target
|
|
852
|
+
// Select one rendered pattern element (or clear the selection with null) —
|
|
853
|
+
// shared by clicks and keyboard navigation.
|
|
854
|
+
const focusOfElement = useCallback((el: HTMLElement): EditFocus | null => {
|
|
855
|
+
const derived = deriveEditFocusFromElement(el);
|
|
856
|
+
return derived ? withNodeTransition(derived, data) : null;
|
|
857
|
+
}, [data]);
|
|
858
|
+
|
|
859
|
+
// `selection`: every selected element, the primary last (multi-select).
|
|
860
|
+
const selectPatternElement = useCallback((patternEl: HTMLElement | null, selection?: HTMLElement[]) => {
|
|
861
|
+
const container = contentRef.current;
|
|
862
|
+
|
|
863
|
+
// Clear previous selection highlights
|
|
864
|
+
container?.querySelectorAll('.pattern-selected').forEach(el => {
|
|
865
|
+
el.classList.remove('pattern-selected');
|
|
866
|
+
});
|
|
867
|
+
|
|
868
|
+
const zoom = reactFlow.getViewport().zoom;
|
|
869
|
+
if (patternEl && container) {
|
|
870
|
+
patternEl.classList.add('pattern-selected');
|
|
871
|
+
// Union of rendered children — the wrapper itself is display:contents
|
|
872
|
+
// (0×0 own rect), so its own getBoundingClientRect is useless.
|
|
873
|
+
const rect = rectRelativeTo(patternEl, container, zoom);
|
|
874
|
+
setSelectedRect(rect);
|
|
875
|
+
setSelectedLayout(measureLayout(patternEl, container, zoom));
|
|
876
|
+
setSelectedScale(() => spacingScaleOf(layoutBoxOf(patternEl)));
|
|
877
|
+
const primaryPath = patternEl.getAttribute('data-pattern-path') ?? 'root';
|
|
878
|
+
// The element's own address: the trait that drew it (an embedded
|
|
879
|
+
// trait's, not the card's), its transition, slot and path.
|
|
880
|
+
const focus = focusOfElement(patternEl);
|
|
881
|
+
setSelectedAddress({
|
|
882
|
+
patternId: primaryPath,
|
|
883
|
+
patternType: patternEl.getAttribute('data-pattern') ?? 'unknown',
|
|
884
|
+
focus,
|
|
885
|
+
});
|
|
886
|
+
const selectedEls = selection ?? [patternEl];
|
|
887
|
+
const paths = selectedEls.map((el) => el.getAttribute('data-pattern-path') ?? 'root');
|
|
888
|
+
const elements = selectedEls.flatMap((el) => { const f = focusOfElement(el); return f ? [f] : []; });
|
|
889
|
+
setSelectedPaths(paths);
|
|
890
|
+
setSelectedFocuses(elements);
|
|
891
|
+
setExtraRects(selectedEls.filter((el) => el !== patternEl).flatMap((el) => {
|
|
892
|
+
const r = rectRelativeTo(el, container, zoom);
|
|
893
|
+
return r ? [r] : [];
|
|
894
|
+
}));
|
|
895
|
+
|
|
896
|
+
select({
|
|
897
|
+
patternType: patternEl.getAttribute('data-pattern') ?? 'unknown',
|
|
898
|
+
// `data-pattern-path` is the SExpr tree path (`children.0.…`) emitted by
|
|
899
|
+
// UISlotRenderer; `data-id` is the runtime content id. `OrbInspector`
|
|
900
|
+
// resolves pattern config by walking the render-ui SExpr tree, so the
|
|
901
|
+
// path is the correct key — reading `data-id` silently broke prop
|
|
902
|
+
// resolution and rendered every value as '—'.
|
|
903
|
+
patternId: patternEl.getAttribute('data-pattern-path') ?? undefined,
|
|
904
|
+
sourceTrait: patternEl.getAttribute('data-source-trait') ?? undefined,
|
|
905
|
+
nodeData: data,
|
|
906
|
+
rect: rect ?? undefined,
|
|
907
|
+
offsetInParent: offsetInParentOf(patternEl, rect, container, zoom),
|
|
908
|
+
selection: paths,
|
|
909
|
+
elements,
|
|
910
|
+
...(focus ? { focus } : {}),
|
|
911
|
+
});
|
|
912
|
+
|
|
913
|
+
// Feed the studio chatbox's contextual-edit flow with the element's
|
|
914
|
+
// address. The orbital is read from the DOM (`data-orb-orbital`, stamped
|
|
915
|
+
// by UISlotRenderer from the schema context) rather than the node's own
|
|
916
|
+
// name, so a click correctly attributes to whichever of N orbitals it hit.
|
|
917
|
+
if (focus) {
|
|
918
|
+
// Spread into a fresh literal (not the bare function return) —
|
|
919
|
+
// `EditFocus` has no index signature, so TS's excess-property
|
|
920
|
+
// leniency for object literals is what makes this assignable to
|
|
921
|
+
// `EventPayload` without a cast; a typed non-literal value isn't.
|
|
922
|
+
eventBus.emit('UI:ELEMENT_SELECTED', {
|
|
923
|
+
focus: { ...focus },
|
|
924
|
+
});
|
|
925
|
+
}
|
|
926
|
+
} else {
|
|
927
|
+
setSelectedRect(null);
|
|
928
|
+
setSelectedLayout(null);
|
|
929
|
+
setSelectedScale(undefined);
|
|
930
|
+
setSelectedAddress(null);
|
|
931
|
+
setSelectedPaths([]);
|
|
932
|
+
setSelectedFocuses([]);
|
|
933
|
+
setExtraRects([]);
|
|
934
|
+
select(null);
|
|
935
|
+
eventBus.emit('UI:ELEMENT_SELECTED', { focus: null });
|
|
936
|
+
}
|
|
937
|
+
}, [focusOfElement, select, eventBus, reactFlow]);
|
|
938
|
+
|
|
939
|
+
// Shift-click (with the multi-select tool) adds an element to the selection,
|
|
940
|
+
// or takes a selected one out; the last one picked is the primary.
|
|
941
|
+
const pickElement = useCallback((el: HTMLElement | null, additive: boolean) => {
|
|
942
|
+
const picked = el ? focusOfElement(el) : null;
|
|
943
|
+
if (!el || !picked || !additive || !hasCanvasTool(tools, 'multiSelect') || selectedFocuses.length === 0) {
|
|
944
|
+
selectPatternElement(el);
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
const container = contentRef.current;
|
|
948
|
+
const current = selectedFocuses.flatMap((f) => { const e = f.path ? elementIn(container, f.path, f.trait) : null; return e ? [e] : []; });
|
|
949
|
+
if (selectedFocuses.some((f) => sameElement(f, picked))) {
|
|
950
|
+
const rest = current.filter((e) => { const f = focusOfElement(e); return !f || !sameElement(f, picked); });
|
|
951
|
+
selectPatternElement(rest[rest.length - 1] ?? null, rest.length > 0 ? rest : undefined);
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
954
|
+
selectPatternElement(el, [...current, el]);
|
|
955
|
+
}, [tools, selectedFocuses, selectPatternElement, focusOfElement]);
|
|
956
|
+
|
|
957
|
+
const handleContentClick = useCallback((e: React.MouseEvent) => {
|
|
958
|
+
e.stopPropagation(); // Prevent React Flow from interpreting as node click
|
|
959
|
+
const target = e.target as HTMLElement;
|
|
960
|
+
pickElement(target.closest('[data-pattern]') as HTMLElement | null, e.shiftKey);
|
|
961
|
+
}, [pickElement]);
|
|
962
|
+
|
|
963
|
+
// Paths navigate within the trait that drew the selected element.
|
|
964
|
+
const selectedTrait = selectedAddress?.focus?.trait;
|
|
965
|
+
const patternElementAt = useCallback(
|
|
966
|
+
(path: string): HTMLElement | null => elementIn(contentRef.current, path, selectedTrait),
|
|
967
|
+
[selectedTrait],
|
|
968
|
+
);
|
|
969
|
+
|
|
970
|
+
// Paused: take the click in the capture phase so it selects and never
|
|
971
|
+
// reaches the rendered control (whose handler would dispatch an event).
|
|
972
|
+
const handlePausedClickCapture = useCallback((e: React.MouseEvent) => {
|
|
973
|
+
// The selection overlay's own controls, and text being edited in place, handle their clicks.
|
|
974
|
+
if (e.target instanceof Element && e.target.closest('[data-design-overlay]')) return;
|
|
975
|
+
if (isEditableTarget(e.target)) return;
|
|
976
|
+
// A marquee drag ends in a click on the card; it already selected.
|
|
977
|
+
if (suppressClickRef.current) {
|
|
978
|
+
suppressClickRef.current = false;
|
|
979
|
+
e.preventDefault();
|
|
980
|
+
return;
|
|
981
|
+
}
|
|
982
|
+
handleContentClick(e);
|
|
983
|
+
e.preventDefault();
|
|
984
|
+
// Keys go to the focused element; take focus so the ones pressed next
|
|
985
|
+
// (Enter, Esc, arrows, ⌘D, ⇧A) reach handlePausedKeyDown.
|
|
986
|
+
contentRef.current?.focus({ preventScroll: true });
|
|
987
|
+
}, [handleContentClick]);
|
|
988
|
+
const swallowWhilePaused = useCallback((e: React.SyntheticEvent) => {
|
|
989
|
+
e.preventDefault();
|
|
990
|
+
e.stopPropagation();
|
|
991
|
+
}, []);
|
|
992
|
+
// Paused keys edit the selection like Figma and never reach the preview's
|
|
993
|
+
// controls: Enter selects the first child, Esc / Shift+Enter the parent,
|
|
994
|
+
// the arrow keys move the selection among its siblings, ⌘D duplicates it
|
|
995
|
+
// and ⇧A wraps it in an auto-layout stack. Delete (and Esc
|
|
996
|
+
// with nothing selected) belong to FlowCanvas's own document-level handler,
|
|
997
|
+
// so those keep propagating.
|
|
998
|
+
const handlePausedKeyDown = useCallback((e: React.KeyboardEvent) => {
|
|
999
|
+
// Keys typed into the selection overlay's fields, or into text being edited in place, are theirs.
|
|
1000
|
+
if (e.target instanceof Element && e.target.closest('[data-design-overlay]')) return;
|
|
1001
|
+
if (isEditableTarget(e.target)) return;
|
|
1002
|
+
const path = selectedAddress?.patternId;
|
|
1003
|
+
const position = path ? childPosition(path) : null;
|
|
1004
|
+
const handled = (): void => {
|
|
1005
|
+
e.preventDefault();
|
|
1006
|
+
e.stopPropagation();
|
|
1007
|
+
};
|
|
1008
|
+
if (e.key === 'Delete' || e.key === 'Backspace') {
|
|
1009
|
+
e.preventDefault();
|
|
1010
|
+
return;
|
|
1011
|
+
}
|
|
1012
|
+
// Clipboard shortcuts must reach the browser, or it never fires copy/cut/paste.
|
|
1013
|
+
if ((e.metaKey || e.ctrlKey) && ['c', 'x', 'v'].includes(e.key.toLowerCase())) return;
|
|
1014
|
+
// ⇧2 zooms to the selection, ⇧1 fits everything (Figma).
|
|
1015
|
+
if (e.shiftKey && (e.code === 'Digit1' || e.code === 'Digit2') && hasCanvasTool(tools, 'zoomToSelection')) {
|
|
1016
|
+
handled();
|
|
1017
|
+
if (e.code === 'Digit1') {
|
|
1018
|
+
void reactFlow.fitView({ padding: 0.1, duration: cameraMs });
|
|
1019
|
+
return;
|
|
1020
|
+
}
|
|
1021
|
+
const container = contentRef.current;
|
|
1022
|
+
const targets = selectedFocuses.length > 0 ? selectedFocuses : selectedAddress?.focus ? [selectedAddress.focus] : [];
|
|
1023
|
+
const paths = targets.flatMap((f) => (f.path ? [f.path] : []));
|
|
1024
|
+
const boxes = targets.flatMap((f) => {
|
|
1025
|
+
const el = f.path ? elementIn(container, f.path, f.trait) : null;
|
|
1026
|
+
const box = el ? absUnion(el) : null;
|
|
1027
|
+
return box ? [box] : [];
|
|
1028
|
+
});
|
|
1029
|
+
if (boxes.length === 0) return;
|
|
1030
|
+
const topLeft = reactFlow.screenToFlowPosition({ x: Math.min(...boxes.map((b) => b.left)), y: Math.min(...boxes.map((b) => b.top)) });
|
|
1031
|
+
const bottomRight = reactFlow.screenToFlowPosition({ x: Math.max(...boxes.map((b) => b.right)), y: Math.max(...boxes.map((b) => b.bottom)) });
|
|
1032
|
+
orbPreviewLog.info('zoom-to-selection', { paths, boxes, topLeft, bottomRight });
|
|
1033
|
+
void reactFlow.fitBounds(
|
|
1034
|
+
{ x: topLeft.x, y: topLeft.y, width: bottomRight.x - topLeft.x, height: bottomRight.y - topLeft.y },
|
|
1035
|
+
{ padding: 0.2, duration: cameraMs },
|
|
1036
|
+
);
|
|
1037
|
+
return;
|
|
1038
|
+
}
|
|
1039
|
+
if (e.key === 'Escape' || (e.key === 'Enter' && e.shiftKey)) {
|
|
1040
|
+
if (!path) return;
|
|
1041
|
+
handled();
|
|
1042
|
+
selectPatternElement(position ? patternElementAt(position.parentPath) : null);
|
|
1043
|
+
return;
|
|
1044
|
+
}
|
|
1045
|
+
if (e.key === 'Enter') {
|
|
1046
|
+
handled();
|
|
1047
|
+
const child = path ? patternElementAt(`${path}.children.0`) : null;
|
|
1048
|
+
if (child) selectPatternElement(child);
|
|
1049
|
+
return;
|
|
1050
|
+
}
|
|
1051
|
+
// The selected elements' own addresses. Any drawn by an embedded behavior
|
|
1052
|
+
// makes the edit a structure edit at those addresses — a path on the card
|
|
1053
|
+
// can't name an embedded behavior's place in its container.
|
|
1054
|
+
const focuses = selectedFocuses.length > 0 ? selectedFocuses : selectedAddress?.focus ? [selectedAddress.focus] : [];
|
|
1055
|
+
const addresses = focuses.map(elementAddressOf);
|
|
1056
|
+
const elements = focuses.length > 0 && addresses.every((a): a is NonNullable<typeof a> => a !== null) ? addresses : null;
|
|
1057
|
+
const embedded = elements !== null && elements.some((a) => a.trait !== data.traitName);
|
|
1058
|
+
const duplicate = (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'd';
|
|
1059
|
+
const wrap = e.shiftKey && !e.metaKey && !e.ctrlKey && e.key.toLowerCase() === 'a';
|
|
1060
|
+
if (duplicate || wrap) {
|
|
1061
|
+
handled();
|
|
1062
|
+
if (embedded && elements) {
|
|
1063
|
+
eventBus.emit('UI:STRUCTURE_EDIT', { op: duplicate ? 'duplicate' : 'wrap', elements });
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
1066
|
+
if (!path || !position || !selectedAddress || !data.traitName || !data.transitionEvent) return;
|
|
1067
|
+
const loc = { orbitalName: data.orbitalName, traitName: data.traitName, transitionEvent: data.transitionEvent };
|
|
1068
|
+
const paths = selectedPaths.length > 0 ? selectedPaths : [path];
|
|
1069
|
+
const withElements: EventPayload = elements ? { elements } : {};
|
|
1070
|
+
if (duplicate) {
|
|
1071
|
+
eventBus.emit('UI:PATTERN_DUPLICATE', { paths, loc, ...withElements });
|
|
1072
|
+
if (paths.length > 1) {
|
|
1073
|
+
selectPatternElement(null);
|
|
1074
|
+
return;
|
|
1075
|
+
}
|
|
1076
|
+
const copy = `${position.parentPath}.children.${position.index + 1}`;
|
|
1077
|
+
const copyFocus = selectedAddress.focus && { ...selectedAddress.focus, path: copy };
|
|
1078
|
+
setSelectedAddress({ patternId: copy, patternType: selectedAddress.patternType, focus: copyFocus });
|
|
1079
|
+
setSelectedPaths([copy]);
|
|
1080
|
+
setSelectedFocuses(copyFocus ? [copyFocus] : []);
|
|
1081
|
+
} else {
|
|
1082
|
+
eventBus.emit('UI:PATTERN_WRAP', { paths, loc, ...withElements });
|
|
1083
|
+
// The wrapper takes the first wrapped element's place.
|
|
1084
|
+
const first = [...paths].sort((a, b) => (childPosition(a)?.index ?? 0) - (childPosition(b)?.index ?? 0))[0];
|
|
1085
|
+
const wrapperFocus = selectedAddress.focus && { ...selectedAddress.focus, path: first, patternType: 'stack' };
|
|
1086
|
+
setSelectedAddress({ patternId: first, patternType: 'stack', focus: wrapperFocus });
|
|
1087
|
+
setSelectedPaths([first]);
|
|
1088
|
+
setSelectedFocuses(wrapperFocus ? [wrapperFocus] : []);
|
|
1089
|
+
setExtraRects([]);
|
|
1090
|
+
}
|
|
1091
|
+
return;
|
|
1092
|
+
}
|
|
1093
|
+
const step = e.key === 'ArrowUp' || e.key === 'ArrowLeft' ? -1 : e.key === 'ArrowDown' || e.key === 'ArrowRight' ? 1 : 0;
|
|
1094
|
+
// Every other key is swallowed so it can't activate the paused preview.
|
|
1095
|
+
handled();
|
|
1096
|
+
if (step === 0) return;
|
|
1097
|
+
if (embedded && elements) {
|
|
1098
|
+
// Its place in the container is the host's to find; the bounds too.
|
|
1099
|
+
if (elements.length === 1) eventBus.emit('UI:STRUCTURE_EDIT', { op: 'move', elements, by: step });
|
|
1100
|
+
return;
|
|
1101
|
+
}
|
|
1102
|
+
if (!path || !position || !selectedAddress || !data.traitName || !data.transitionEvent) return;
|
|
1103
|
+
const target = position.index + step;
|
|
1104
|
+
if (target < 0 || !patternElementAt(`${position.parentPath}.children.${target}`)) return;
|
|
1105
|
+
eventBus.emit('UI:PATTERN_MOVE', {
|
|
1106
|
+
fromPath: path,
|
|
1107
|
+
loc: { orbitalName: data.orbitalName, traitName: data.traitName, transitionEvent: data.transitionEvent },
|
|
1108
|
+
toParentPath: position.parentPath,
|
|
1109
|
+
// PATTERN_MOVE inserts before `toIndex` in the pre-move list.
|
|
1110
|
+
toIndex: step > 0 ? target + 1 : target,
|
|
1111
|
+
...(elements ? { elements } : {}),
|
|
1112
|
+
});
|
|
1113
|
+
const moved = `${position.parentPath}.children.${target}`;
|
|
1114
|
+
const movedFocus = selectedAddress.focus && { ...selectedAddress.focus, path: moved };
|
|
1115
|
+
setSelectedAddress({ patternId: moved, patternType: selectedAddress.patternType, focus: movedFocus });
|
|
1116
|
+
setSelectedPaths([moved]);
|
|
1117
|
+
setSelectedFocuses(movedFocus ? [movedFocus] : []);
|
|
1118
|
+
setExtraRects([]);
|
|
1119
|
+
}, [selectedAddress, selectedPaths, selectedFocuses, eventBus, patternElementAt, selectPatternElement, data.orbitalName, data.traitName, data.transitionEvent, tools, reactFlow]);
|
|
1120
|
+
|
|
1121
|
+
// ⌘C / ⌘X / ⌘V on a paused card: the browser's own clipboard events (no
|
|
1122
|
+
// permission prompt, works across cards and tabs). Nodes are copied as
|
|
1123
|
+
// stored in the schema; paste goes after the selection, or into a selected
|
|
1124
|
+
// container, or at the end of the card's root.
|
|
1125
|
+
const clipboardPaths = useCallback((): string[] => {
|
|
1126
|
+
const paths = selectedPaths.length > 0 ? selectedPaths : selectedAddress ? [selectedAddress.patternId] : [];
|
|
1127
|
+
return paths.filter((p) => p !== 'root');
|
|
1128
|
+
}, [selectedPaths, selectedAddress]);
|
|
1129
|
+
|
|
1130
|
+
const copySelection = useCallback((e: React.ClipboardEvent): string[] => {
|
|
1131
|
+
const fullSchema = data._fullSchema as OrbitalSchema | undefined;
|
|
1132
|
+
const paths = clipboardPaths();
|
|
1133
|
+
if (!fullSchema || !data.traitName || !data.transitionEvent || paths.length === 0) return [];
|
|
1134
|
+
const nodes = paths.flatMap((path) => {
|
|
1135
|
+
const node = patternNodeAt(fullSchema, data.orbitalName, data.traitName ?? '', data.transitionEvent ?? '', path);
|
|
1136
|
+
return node ? [node] : [];
|
|
1137
|
+
});
|
|
1138
|
+
if (nodes.length === 0) return [];
|
|
1139
|
+
e.preventDefault();
|
|
1140
|
+
e.clipboardData.setData(PATTERN_CLIPBOARD_TYPE, JSON.stringify(nodes));
|
|
1141
|
+
e.clipboardData.setData('text/plain', JSON.stringify({ 'almadar/patterns': nodes }));
|
|
1142
|
+
return paths;
|
|
1143
|
+
}, [data._fullSchema, data.orbitalName, data.traitName, data.transitionEvent, clipboardPaths]);
|
|
1144
|
+
|
|
1145
|
+
// Double-click text to edit it in place (L2 screens; at L1 double-click opens the orbital).
|
|
1146
|
+
const handleInlineText = useInlineTextEdit({
|
|
1147
|
+
schema: data._fullSchema as OrbitalSchema | undefined,
|
|
1148
|
+
enabled: !playing && isExpanded && hasCanvasTool(tools, 'inlineText'),
|
|
1149
|
+
node: data,
|
|
1150
|
+
});
|
|
1151
|
+
|
|
1152
|
+
const handleCopy = useCallback((e: React.ClipboardEvent) => {
|
|
1153
|
+
if (!hasCanvasTool(tools, 'clipboard') || isEditableTarget(e.target)) return;
|
|
1154
|
+
copySelection(e);
|
|
1155
|
+
}, [tools, copySelection]);
|
|
1156
|
+
|
|
1157
|
+
const handleCut = useCallback((e: React.ClipboardEvent) => {
|
|
1158
|
+
if (!hasCanvasTool(tools, 'clipboard') || isEditableTarget(e.target)) return;
|
|
1159
|
+
const paths = copySelection(e);
|
|
1160
|
+
if (paths.length === 0) return;
|
|
1161
|
+
const elements = selectedFocuses.flatMap((f) => { const a = f.path && paths.includes(f.path) ? elementAddressOf(f) : null; return a ? [a] : []; });
|
|
1162
|
+
eventBus.emit('UI:DELETE_PATTERN', { patternIds: paths, ...(elements.length === paths.length ? { elements } : {}) });
|
|
1163
|
+
selectPatternElement(null);
|
|
1164
|
+
}, [tools, copySelection, selectedFocuses, eventBus, selectPatternElement]);
|
|
1165
|
+
|
|
1166
|
+
const handlePaste = useCallback((e: React.ClipboardEvent) => {
|
|
1167
|
+
if (!hasCanvasTool(tools, 'clipboard') || isEditableTarget(e.target)) return;
|
|
1168
|
+
if (!data.traitName || !data.transitionEvent) return;
|
|
1169
|
+
const patterns = parseClipboardPatterns(e.clipboardData.getData(PATTERN_CLIPBOARD_TYPE))
|
|
1170
|
+
?? parseClipboardPatterns(e.clipboardData.getData('text/plain'));
|
|
1171
|
+
if (!patterns) return;
|
|
1172
|
+
e.preventDefault();
|
|
1173
|
+
const container = contentRef.current;
|
|
1174
|
+
const childCount = (path: string) => resolveDirectChildren(
|
|
1175
|
+
path,
|
|
1176
|
+
Array.from(container?.querySelectorAll('[data-pattern-path]') ?? []).map((el) => ({ path: el.getAttribute('data-pattern-path') ?? '', ref: el })),
|
|
1177
|
+
).length;
|
|
1178
|
+
const primary = selectedAddress?.patternId;
|
|
1179
|
+
const primaryEl = primary ? patternElementAt(primary) : null;
|
|
1180
|
+
const position = primary ? childPosition(primary) : null;
|
|
1181
|
+
const target = primary && primaryEl?.getAttribute('data-accepts-children') === 'true'
|
|
1182
|
+
? { parentPath: primary, index: childCount(primary) }
|
|
1183
|
+
: position
|
|
1184
|
+
? { parentPath: position.parentPath, index: position.index + 1 }
|
|
1185
|
+
: { parentPath: 'root', index: childCount('root') };
|
|
1186
|
+
eventBus.emit('UI:PATTERN_PASTE', {
|
|
1187
|
+
loc: { orbitalName: data.orbitalName, traitName: data.traitName, transitionEvent: data.transitionEvent },
|
|
1188
|
+
...target,
|
|
1189
|
+
patternsJson: JSON.stringify(patterns),
|
|
1190
|
+
});
|
|
1191
|
+
}, [tools, data.orbitalName, data.traitName, data.transitionEvent, selectedAddress, patternElementAt, eventBus]);
|
|
1192
|
+
|
|
1193
|
+
// Hover overlay — track the nearest [data-pattern] under the cursor.
|
|
1194
|
+
// ⌥-hover (Figma): distances from the selection to the hovered element, or
|
|
1195
|
+
// to its parent when hovering the selection itself.
|
|
1196
|
+
const measureFromSelection = useCallback((hovered: HTMLElement | null) => {
|
|
1197
|
+
const container = contentRef.current;
|
|
1198
|
+
const selectedEl = selectedAddress ? patternElementAt(selectedAddress.patternId) : null;
|
|
1199
|
+
if (!hovered || !container || !selectedEl || !selectedRect || playing || !hasCanvasTool(tools, 'measure')) {
|
|
1200
|
+
setMeasures((prev) => (prev.length === 0 ? prev : []));
|
|
1201
|
+
return;
|
|
1202
|
+
}
|
|
1203
|
+
const zoom = reactFlow.getViewport().zoom;
|
|
1204
|
+
const other = hovered === selectedEl ? parentBoxOf(selectedEl, container, zoom)?.box ?? null : rectRelativeTo(hovered, container, zoom);
|
|
1205
|
+
setMeasures(other ? distanceLines(selectedRect, other) : []);
|
|
1206
|
+
}, [selectedAddress, selectedRect, playing, tools, reactFlow, patternElementAt]);
|
|
1207
|
+
|
|
1208
|
+
// Letting go of ⌥ clears the measurements.
|
|
1209
|
+
useEffect(() => {
|
|
1210
|
+
if (measures.length === 0) return;
|
|
1211
|
+
const up = (e: KeyboardEvent) => { if (e.key === 'Alt') setMeasures([]); };
|
|
1212
|
+
window.addEventListener('keyup', up);
|
|
1213
|
+
return () => window.removeEventListener('keyup', up);
|
|
1214
|
+
}, [measures.length]);
|
|
1215
|
+
|
|
1216
|
+
const handleContentMouseMove = useCallback((e: React.MouseEvent) => {
|
|
1217
|
+
const container = contentRef.current;
|
|
1218
|
+
if (!container) return;
|
|
1219
|
+
const el = (e.target as HTMLElement).closest('[data-pattern]') as HTMLElement | null;
|
|
1220
|
+
measureFromSelection(e.altKey ? el : null);
|
|
1221
|
+
if (el === lastHoverElRef.current) return;
|
|
1222
|
+
lastHoverElRef.current = el;
|
|
1223
|
+
setHoverRect(el ? rectRelativeTo(el, container, reactFlow.getViewport().zoom) : null);
|
|
1224
|
+
}, [reactFlow, measureFromSelection]);
|
|
1225
|
+
|
|
1226
|
+
const handleContentMouseLeave = useCallback(() => {
|
|
1227
|
+
lastHoverElRef.current = null;
|
|
1228
|
+
setHoverRect(null);
|
|
1229
|
+
setMeasures([]);
|
|
1230
|
+
}, []);
|
|
1231
|
+
|
|
1232
|
+
// Drop stale overlays whenever the rendered schema changes (post-edit
|
|
1233
|
+
// re-render moves elements; a stale rect would float over the wrong spot).
|
|
1234
|
+
// The selection itself survives an edit: re-measure the same element once
|
|
1235
|
+
// the new render has painted, like a design tool keeping its selection.
|
|
1236
|
+
const selectedAddressRef = useRef(selectedAddress);
|
|
1237
|
+
selectedAddressRef.current = selectedAddress;
|
|
1238
|
+
useEffect(() => {
|
|
1239
|
+
setSelectedRect(null);
|
|
1240
|
+
setHoverRect(null);
|
|
1241
|
+
lastHoverElRef.current = null;
|
|
1242
|
+
const address = selectedAddressRef.current;
|
|
1243
|
+
if (!address) return;
|
|
1244
|
+
const frame = requestAnimationFrame(() => {
|
|
1245
|
+
const container = contentRef.current;
|
|
1246
|
+
const el = elementIn(container, address.patternId, address.focus?.trait);
|
|
1247
|
+
if (container && el) {
|
|
1248
|
+
const zoom = reactFlow.getViewport().zoom;
|
|
1249
|
+
setSelectedRect(rectRelativeTo(el, container, zoom));
|
|
1250
|
+
setSelectedLayout(measureLayout(el, container, zoom));
|
|
1251
|
+
setSelectedScale(() => spacingScaleOf(layoutBoxOf(el)));
|
|
1252
|
+
}
|
|
1253
|
+
});
|
|
1254
|
+
return () => cancelAnimationFrame(frame);
|
|
1255
|
+
}, [orbitalSchema, reactFlow]);
|
|
1256
|
+
|
|
1257
|
+
// The selected element's own classes (null when `className` is a binding):
|
|
1258
|
+
// what the design overlay edits. Canvas edits go through the same
|
|
1259
|
+
// `UI:PROP_CHANGE` (scope local) the inspector emits.
|
|
1260
|
+
const selectedClasses = useMemo<string[] | null>(() => {
|
|
1261
|
+
const fullSchema = data._fullSchema as OrbitalSchema | undefined;
|
|
1262
|
+
const focus = selectedAddress?.focus;
|
|
1263
|
+
if (!selectedAddress || !fullSchema || !focus?.trait || !focus.transition) return null;
|
|
1264
|
+
const config = resolvePatternConfig(fullSchema, {
|
|
1265
|
+
orbitalName: focus.orbital,
|
|
1266
|
+
traitName: focus.trait,
|
|
1267
|
+
transitionEvent: focus.transition,
|
|
1268
|
+
patternId: selectedAddress.patternId,
|
|
1269
|
+
patternType: selectedAddress.patternType,
|
|
1270
|
+
});
|
|
1271
|
+
const current = config?.className;
|
|
1272
|
+
if (current === undefined || current === null) return [];
|
|
1273
|
+
return typeof current === 'string' ? current.split(/\s+/).filter(Boolean) : null;
|
|
1274
|
+
}, [data, selectedAddress]);
|
|
1275
|
+
|
|
1276
|
+
// What the host lets the user change on the selected element (its classes
|
|
1277
|
+
// drive the design handles), and the behavior it belongs to when embedded.
|
|
1278
|
+
const editAccess = useContext(ElementEditAccessContext);
|
|
1279
|
+
const selectedFocus = selectedAddress?.focus ?? null;
|
|
1280
|
+
const classesEditable = propAccessAt(editAccess, selectedFocus, 'className').editable;
|
|
1281
|
+
const selectedPartOf = editAccess && selectedFocus ? editAccess(selectedFocus).partOf : undefined;
|
|
1282
|
+
|
|
1283
|
+
const handleClassesChange = useCallback((next: string[]) => {
|
|
1284
|
+
const focus = selectedAddress?.focus;
|
|
1285
|
+
if (!selectedAddress || !focus?.trait || !focus.transition) return;
|
|
1286
|
+
eventBus.emit('UI:PROP_CHANGE', {
|
|
1287
|
+
scope: 'local',
|
|
1288
|
+
propName: 'className',
|
|
1289
|
+
value: next.join(' '),
|
|
1290
|
+
selection: {
|
|
1291
|
+
patternPath: selectedAddress.patternId,
|
|
1292
|
+
orbitalName: focus.orbital,
|
|
1293
|
+
traitName: focus.trait,
|
|
1294
|
+
transitionEvent: focus.transition,
|
|
1295
|
+
...(focus.slot ? { slot: focus.slot } : {}),
|
|
1296
|
+
},
|
|
1297
|
+
});
|
|
1298
|
+
}, [selectedAddress, eventBus]);
|
|
1299
|
+
|
|
1300
|
+
// The canvas drag in progress (the CanvasDndProvider's context) toggles container highlighting for a palette grab.
|
|
1301
|
+
const dragKind = useCanvasDragKind();
|
|
1302
|
+
const dragActive = dragKind === 'pattern';
|
|
1303
|
+
|
|
1304
|
+
// Same, but scoped to an L2 reorder grab (kept separate from `dragActive`
|
|
1305
|
+
// above so the L1 "drop to add and open" hint — which only applies to
|
|
1306
|
+
// `'pattern'` palette drops, L1 doesn't accept `'pattern-instance'` —
|
|
1307
|
+
// doesn't light up during a reorder). Drives only the L2 content area's
|
|
1308
|
+
// `drag-active` styling.
|
|
1309
|
+
const reorderDragActive = dragKind === 'pattern-instance';
|
|
1310
|
+
|
|
1311
|
+
// L2 cursor-to-path resolver. Walks from the cursor's DOM element up to the
|
|
1312
|
+
// nearest `[data-accepts-children="true"]` container, then computes the
|
|
1313
|
+
// insertion index from the cursor's relative position among the container's
|
|
1314
|
+
// direct `[data-pattern-path]` children. Runs at drop time via @dnd-kit's
|
|
1315
|
+
// resolvePath callback — same logic the legacy `onDrop` ran inline.
|
|
1316
|
+
const resolveInsertion = useCallback(
|
|
1317
|
+
(cursor: { x: number; y: number }): InsertionTarget | null => {
|
|
1318
|
+
const hit = renderedElementAt(contentRef.current, cursor);
|
|
1319
|
+
if (!hit) return null;
|
|
1320
|
+
let el: HTMLElement | null = hit;
|
|
1321
|
+
while (el && el.dataset.acceptsChildren !== 'true') {
|
|
1322
|
+
if (el === contentRef.current) break;
|
|
1323
|
+
el = el.parentElement;
|
|
1324
|
+
}
|
|
1325
|
+
if (!el) return null;
|
|
1326
|
+
// Dead space inside the screen but outside any accepts-children
|
|
1327
|
+
// container (below the last child, padding) walks up to contentRef,
|
|
1328
|
+
// which carries no path — resolve those drops against the root
|
|
1329
|
+
// container's children with the same index math (a below-everything
|
|
1330
|
+
// drop then lands at the END, not hardcoded index 0).
|
|
1331
|
+
const containerPath = el.dataset?.patternPath ?? 'root';
|
|
1332
|
+
// Axis must come from the container we resolve against: in the
|
|
1333
|
+
// dead-space fallback `el` is contentRef (a plain block, whose computed
|
|
1334
|
+
// flexDirection defaults to 'row'), so retarget to the root wrapper.
|
|
1335
|
+
if (!el.dataset?.patternPath) {
|
|
1336
|
+
const rootEl = el.querySelector('[data-pattern-path="root"]');
|
|
1337
|
+
if (rootEl instanceof HTMLElement) el = rootEl;
|
|
1338
|
+
}
|
|
1339
|
+
// Direct children in the pattern tree — its own nodes and the frames of
|
|
1340
|
+
// behaviors embedded in its children (whose paths restart at `root`).
|
|
1341
|
+
const directChildren = directPatternChildren(el);
|
|
1342
|
+
// Each child is a UISlotRenderer `slot-content contents` wrapper — its
|
|
1343
|
+
// own getBoundingClientRect() is 0x0 (display:contents) — union its
|
|
1344
|
+
// rendered descendants' boxes instead (see absUnion above), falling
|
|
1345
|
+
// back to the raw rect when the element does carry its own box.
|
|
1346
|
+
const childRects: DOMRectLike[] = directChildren.map((child) => {
|
|
1347
|
+
const u = absUnion(child);
|
|
1348
|
+
if (u) return { ...u, width: u.right - u.left, height: u.bottom - u.top };
|
|
1349
|
+
const raw = child.getBoundingClientRect();
|
|
1350
|
+
return { top: raw.top, left: raw.left, right: raw.right, bottom: raw.bottom, width: raw.width, height: raw.height };
|
|
1351
|
+
});
|
|
1352
|
+
const axis = resolveLayoutAxis(el);
|
|
1353
|
+
const insertIndex = computeInsertionIndex(childRects, cursor, axis);
|
|
1354
|
+
orbPreviewLog.debug('resolveL2Path', {
|
|
1355
|
+
containerPath,
|
|
1356
|
+
childCount: childRects.length,
|
|
1357
|
+
axis,
|
|
1358
|
+
cursorY: cursor.y,
|
|
1359
|
+
mids: childRects.map((r) => (axis === 'vertical' ? r.top + r.height / 2 : r.left + r.width / 2)),
|
|
1360
|
+
insertIndex,
|
|
1361
|
+
});
|
|
1362
|
+
const own = absUnion(el);
|
|
1363
|
+
const containerBox: DOMRectLike = own
|
|
1364
|
+
? { ...own, width: own.right - own.left, height: own.bottom - own.top }
|
|
1365
|
+
: (() => {
|
|
1366
|
+
const raw = el.getBoundingClientRect();
|
|
1367
|
+
return { top: raw.top, left: raw.left, right: raw.right, bottom: raw.bottom, width: raw.width, height: raw.height };
|
|
1368
|
+
})();
|
|
1369
|
+
const focus = focusOfElement(el);
|
|
1370
|
+
const container = focus ? elementAddressOf(focus) : null;
|
|
1371
|
+
return { parentPath: containerPath, index: insertIndex, container, containerBox, childRects, axis };
|
|
1372
|
+
},
|
|
1373
|
+
[focusOfElement],
|
|
1374
|
+
);
|
|
1375
|
+
const resolveL2Path = useCallback(
|
|
1376
|
+
(cursor: { x: number; y: number }): { parentPath: string; index: number; container?: DropContainer } | null => {
|
|
1377
|
+
const hit = resolveInsertion(cursor);
|
|
1378
|
+
return hit ? { parentPath: hit.parentPath, index: hit.index, ...(hit.container ? { container: hit.container } : {}) } : null;
|
|
1379
|
+
},
|
|
1380
|
+
[resolveInsertion],
|
|
1381
|
+
);
|
|
1382
|
+
|
|
1383
|
+
// Figma's blue insertion indicator: while a pattern is dragged over this
|
|
1384
|
+
// card, show where it would land among its new siblings.
|
|
1385
|
+
const [insertionLine, setInsertionLine] = useState<RectLike | null>(null);
|
|
1386
|
+
const trackInsertion = useCallback((e: React.PointerEvent<HTMLDivElement>) => {
|
|
1387
|
+
if (!(dragActive || reorderDragActive) || !isExpanded) return;
|
|
1388
|
+
const content = contentRef.current;
|
|
1389
|
+
const hit = resolveInsertion({ x: e.clientX, y: e.clientY });
|
|
1390
|
+
if (!content || !hit) {
|
|
1391
|
+
setInsertionLine(null);
|
|
1392
|
+
return;
|
|
1393
|
+
}
|
|
1394
|
+
const base = content.getBoundingClientRect();
|
|
1395
|
+
const z = reactFlow.getViewport().zoom || 1;
|
|
1396
|
+
const toContent = (r: DOMRectLike): RectLike => ({
|
|
1397
|
+
top: (r.top - base.top) / z,
|
|
1398
|
+
left: (r.left - base.left) / z,
|
|
1399
|
+
width: r.width / z,
|
|
1400
|
+
height: r.height / z,
|
|
1401
|
+
});
|
|
1402
|
+
setInsertionLine(insertionLineRect(toContent(hit.containerBox), hit.childRects.map(toContent), hit.index, hit.axis));
|
|
1403
|
+
}, [dragActive, reorderDragActive, isExpanded, resolveInsertion, reactFlow]);
|
|
1404
|
+
useEffect(() => {
|
|
1405
|
+
if (!dragActive && !reorderDragActive) setInsertionLine(null);
|
|
1406
|
+
}, [dragActive, reorderDragActive]);
|
|
1407
|
+
|
|
1408
|
+
// L2 inner zone — the render-ui slot inside the expanded orbital. Each
|
|
1409
|
+
// OrbPreviewNode owns one. @dnd-kit's useCanvasDroppable manages the
|
|
1410
|
+
// pointer-driven over/drop lifecycle; `resolvePath` extracts the precise
|
|
1411
|
+
// (parentPath, index) at drop time.
|
|
1412
|
+
const l2Target = useMemo<CanvasDropTarget>(
|
|
1413
|
+
() => ({
|
|
1414
|
+
level: 'l2',
|
|
1415
|
+
containerNode: {
|
|
1416
|
+
orbitalName: data.orbitalName,
|
|
1417
|
+
traitName: data.traitName,
|
|
1418
|
+
transitionEvent: data.transitionEvent,
|
|
1419
|
+
},
|
|
1420
|
+
resolvePath: resolveL2Path,
|
|
1421
|
+
}),
|
|
1422
|
+
[data.orbitalName, data.traitName, data.transitionEvent, resolveL2Path],
|
|
1423
|
+
);
|
|
1424
|
+
const { setNodeRef: l2SetNodeRef, isOver: l2IsOver } = useCanvasDroppable({
|
|
1425
|
+
// Keyed by the card, not its trait/transition: several screen cards can share those.
|
|
1426
|
+
id: `orb-l2-${props.id}`,
|
|
1427
|
+
target: l2Target,
|
|
1428
|
+
accepts: ['pattern', 'pattern-instance', 'behavior'],
|
|
1429
|
+
disabled: !isExpanded,
|
|
1430
|
+
});
|
|
1431
|
+
|
|
1432
|
+
// L2 reorder drag SOURCE — dragging an already-placed pattern by its own
|
|
1433
|
+
// rendered content (not a palette tile). One `useCanvasDraggable` per node
|
|
1434
|
+
// (not per pattern element, since patterns render several layers deep
|
|
1435
|
+
// inside UISlotRenderer/OrbPreview, outside this component's JSX)
|
|
1436
|
+
// with listeners merged onto the same content container that already owns
|
|
1437
|
+
// click-to-select. `reorderDataRef` is a STABLE object mutated in place at
|
|
1438
|
+
// pointerdown — dnd-kit reads `active.data.current` (a ref to whatever
|
|
1439
|
+
// `data` object was passed) at drag-end time, so if `data` were a fresh
|
|
1440
|
+
// object built from React state instead, a mousemove crossing into a
|
|
1441
|
+
// different pattern mid-drag (after activation) would silently overwrite
|
|
1442
|
+
// it before drag-end reads it. Mutating the same reference sidesteps that
|
|
1443
|
+
// render-timing race entirely.
|
|
1444
|
+
const reorderDataRef = useRef<PatternInstanceDragData>({ fromPath: '', loc: {} });
|
|
1445
|
+
const {
|
|
1446
|
+
setNodeRef: reorderSetNodeRef,
|
|
1447
|
+
listeners: reorderListeners,
|
|
1448
|
+
} = useCanvasDraggable({
|
|
1449
|
+
id: `orb-l2-reorder-${props.id}`,
|
|
1450
|
+
payload: { kind: 'pattern-instance', data: reorderDataRef.current },
|
|
1451
|
+
disabled: !isExpanded,
|
|
1452
|
+
});
|
|
1453
|
+
|
|
1454
|
+
// Resolves the grabbed pattern from the pointerdown target (same
|
|
1455
|
+
// `closest('[data-pattern]')` walk as click-to-select), freezes it into
|
|
1456
|
+
// `reorderDataRef`, then hands off to dnd-kit's own activator. No-ops
|
|
1457
|
+
// (never calls the activator) when the pointerdown didn't land on a
|
|
1458
|
+
// pattern or reorder is disabled (`reorderListeners` is `undefined` then).
|
|
1459
|
+
// Drag on the card's own frame (its root, not an element in it) draws a
|
|
1460
|
+
// marquee; the root's children it touches become the selection (Figma).
|
|
1461
|
+
const startMarquee = useCallback((e: React.PointerEvent<HTMLDivElement>) => {
|
|
1462
|
+
const container = contentRef.current;
|
|
1463
|
+
if (!container) return;
|
|
1464
|
+
const zoom = reactFlow.getViewport().zoom || 1;
|
|
1465
|
+
const toContent = (clientX: number, clientY: number) => {
|
|
1466
|
+
const base = container.getBoundingClientRect();
|
|
1467
|
+
return { x: (clientX - base.left) / zoom, y: (clientY - base.top) / zoom };
|
|
1468
|
+
};
|
|
1469
|
+
const from = toContent(e.clientX, e.clientY);
|
|
1470
|
+
let box: OverlayRect | null = null;
|
|
1471
|
+
const move = (ev: PointerEvent) => {
|
|
1472
|
+
const to = toContent(ev.clientX, ev.clientY);
|
|
1473
|
+
if (!box && Math.hypot(to.x - from.x, to.y - from.y) < 3) return;
|
|
1474
|
+
box = marqueeRect(from, to);
|
|
1475
|
+
setMarquee(box);
|
|
1476
|
+
};
|
|
1477
|
+
const up = () => {
|
|
1478
|
+
window.removeEventListener('pointermove', move);
|
|
1479
|
+
window.removeEventListener('pointerup', up);
|
|
1480
|
+
setMarquee(null);
|
|
1481
|
+
if (!box) return;
|
|
1482
|
+
const children = resolveDirectChildren(
|
|
1483
|
+
'root',
|
|
1484
|
+
Array.from(container.querySelectorAll('[data-pattern-path]')).map((el) => ({ path: el.getAttribute('data-pattern-path') ?? '', ref: el })),
|
|
1485
|
+
);
|
|
1486
|
+
const rects = children.map((el) => rectRelativeTo(el, container, zoom));
|
|
1487
|
+
const hits = marqueeHits(box, rects.map((r) => r ?? { top: 0, left: 0, width: 0, height: 0 }))
|
|
1488
|
+
.filter((i) => rects[i] !== null)
|
|
1489
|
+
.map((i) => children[i]);
|
|
1490
|
+
suppressClickRef.current = true;
|
|
1491
|
+
const selected = hits.filter((el): el is HTMLElement => el instanceof HTMLElement && el.hasAttribute('data-pattern-path'));
|
|
1492
|
+
const primary = selected[selected.length - 1];
|
|
1493
|
+
selectPatternElement(primary ?? null, selected.length > 0 ? selected : undefined);
|
|
1494
|
+
};
|
|
1495
|
+
window.addEventListener('pointermove', move);
|
|
1496
|
+
window.addEventListener('pointerup', up);
|
|
1497
|
+
}, [reactFlow, selectPatternElement]);
|
|
1498
|
+
|
|
1499
|
+
// Dragging the selected absolute element moves it (Figma): it follows the
|
|
1500
|
+
// pointer, snapping to its siblings' and parent's edges and centres (smart
|
|
1501
|
+
// guides), and on release its offsets are rewritten for its constraints.
|
|
1502
|
+
const startAbsoluteMove = useCallback((e: React.PointerEvent<HTMLDivElement>, el: HTMLElement, classes: readonly string[]) => {
|
|
1503
|
+
const container = contentRef.current;
|
|
1504
|
+
const zoom = reactFlow.getViewport().zoom || 1;
|
|
1505
|
+
const start = container ? rectRelativeTo(el, container, zoom) : null;
|
|
1506
|
+
const parent = container ? parentBoxOf(el, container, zoom) : null;
|
|
1507
|
+
if (!container || !start || !parent) return;
|
|
1508
|
+
const parentPath = parent.el.getAttribute('data-pattern-path') ?? 'root';
|
|
1509
|
+
const siblings = resolveDirectChildren(
|
|
1510
|
+
parentPath,
|
|
1511
|
+
Array.from(parent.el.querySelectorAll('[data-pattern-path]')).map((c) => ({ path: c.getAttribute('data-pattern-path') ?? '', ref: c })),
|
|
1512
|
+
).filter((c) => c !== el).map((c) => rectRelativeTo(c, container, zoom)).filter((r): r is RectLike => r !== null);
|
|
1513
|
+
const targets = [...siblings, parent.box];
|
|
1514
|
+
const moved = layoutBoxOf(el);
|
|
1515
|
+
const painted = moved instanceof HTMLElement ? moved : null;
|
|
1516
|
+
const before = painted?.style.translate ?? '';
|
|
1517
|
+
let current: RectLike = start;
|
|
1518
|
+
let dragging = false;
|
|
1519
|
+
const move = (ev: PointerEvent) => {
|
|
1520
|
+
const dx = (ev.clientX - e.clientX) / zoom;
|
|
1521
|
+
const dy = (ev.clientY - e.clientY) / zoom;
|
|
1522
|
+
if (!dragging && Math.hypot(ev.clientX - e.clientX, ev.clientY - e.clientY) < 3) return;
|
|
1523
|
+
dragging = true;
|
|
1524
|
+
const raw = { ...start, left: start.left + dx, top: start.top + dy };
|
|
1525
|
+
const snap = snapMove(raw, targets, 4 / zoom);
|
|
1526
|
+
current = { ...raw, left: raw.left + snap.dx, top: raw.top + snap.dy };
|
|
1527
|
+
if (painted) painted.style.translate = `${current.left - start.left}px ${current.top - start.top}px`;
|
|
1528
|
+
setGuides(snap.guides);
|
|
1529
|
+
setSelectedRect(current);
|
|
1530
|
+
};
|
|
1531
|
+
const up = () => {
|
|
1532
|
+
window.removeEventListener('pointermove', move);
|
|
1533
|
+
window.removeEventListener('pointerup', up);
|
|
1534
|
+
setGuides([]);
|
|
1535
|
+
if (!dragging) return;
|
|
1536
|
+
if (painted) painted.style.translate = before;
|
|
1537
|
+
suppressClickRef.current = true;
|
|
1538
|
+
const position = positionOf(classes);
|
|
1539
|
+
const offset = offsetWithin(current, parent.box);
|
|
1540
|
+
handleClassesChange(withPosition(classes, {
|
|
1541
|
+
absolute: true,
|
|
1542
|
+
x: axisPositionFrom('x', position.x.constraint, offset),
|
|
1543
|
+
y: axisPositionFrom('y', position.y.constraint, offset),
|
|
1544
|
+
}));
|
|
1545
|
+
};
|
|
1546
|
+
window.addEventListener('pointermove', move);
|
|
1547
|
+
window.addEventListener('pointerup', up);
|
|
1548
|
+
}, [reactFlow, handleClassesChange]);
|
|
1549
|
+
|
|
1550
|
+
const handleContentPointerDown = useCallback((e: React.PointerEvent<HTMLDivElement>) => {
|
|
1551
|
+
const patternEl = (e.target as HTMLElement).closest('[data-pattern]') as HTMLElement | null;
|
|
1552
|
+
const fromPath = patternEl?.getAttribute('data-pattern-path');
|
|
1553
|
+
const selectedEl = selectedAddress ? patternElementAt(selectedAddress.patternId) : null;
|
|
1554
|
+
if (!playing && isExpanded && e.button === 0 && hasCanvasTool(tools, 'absolute') && selectedEl && selectedClasses?.includes('absolute')
|
|
1555
|
+
&& e.target instanceof Node && selectedEl.contains(e.target) && !(e.target instanceof Element && e.target.closest('[data-design-overlay]'))) {
|
|
1556
|
+
startAbsoluteMove(e, selectedEl, selectedClasses);
|
|
1557
|
+
return;
|
|
1558
|
+
}
|
|
1559
|
+
if (!playing && isExpanded && hasCanvasTool(tools, 'multiSelect') && (fromPath === 'root' || !fromPath)
|
|
1560
|
+
&& !(e.target instanceof Element && e.target.closest('[data-design-overlay]'))) {
|
|
1561
|
+
startMarquee(e);
|
|
1562
|
+
return;
|
|
1563
|
+
}
|
|
1564
|
+
if (!fromPath) return;
|
|
1565
|
+
reorderDataRef.current.fromPath = fromPath;
|
|
1566
|
+
reorderDataRef.current.loc = {
|
|
1567
|
+
orbitalName: data.orbitalName,
|
|
1568
|
+
traitName: data.traitName,
|
|
1569
|
+
transitionEvent: data.transitionEvent,
|
|
1570
|
+
};
|
|
1571
|
+
reorderListeners?.onPointerDown?.(e);
|
|
1572
|
+
}, [reorderListeners, data.orbitalName, data.traitName, data.transitionEvent, playing, isExpanded, tools, startMarquee, selectedAddress, selectedClasses, patternElementAt, startAbsoluteMove]);
|
|
1573
|
+
|
|
1574
|
+
// Callback ref that fans the same DOM node to both useRef + dnd-kit.
|
|
1575
|
+
// contentRef stays read-only for the click-to-select walker; l2SetNodeRef
|
|
1576
|
+
// registers the node as a droppable, reorderSetNodeRef as the reorder
|
|
1577
|
+
// draggable (dnd-kit fully supports a node being both).
|
|
1578
|
+
const setContentRef = useCallback((el: HTMLDivElement | null) => {
|
|
1579
|
+
contentRef.current = el;
|
|
1580
|
+
l2SetNodeRef(el);
|
|
1581
|
+
reorderSetNodeRef(el);
|
|
1582
|
+
}, [l2SetNodeRef, reorderSetNodeRef]);
|
|
1583
|
+
|
|
1584
|
+
// Status-driven outline color. Running > error > success > hover > default.
|
|
1585
|
+
const statusBorder = isRunning
|
|
1586
|
+
? 'var(--color-primary)'
|
|
1587
|
+
: isError
|
|
1588
|
+
? 'var(--color-danger)'
|
|
1589
|
+
: isSuccess
|
|
1590
|
+
? 'var(--color-success)'
|
|
1591
|
+
: null;
|
|
1592
|
+
const borderWidth = isRunning || isError || isSuccess || data.focused ? '2px' : '1.5px';
|
|
1593
|
+
const borderColor = statusBorder ?? (hovered || data.focused ? 'var(--color-primary)' : colors.border);
|
|
1594
|
+
|
|
1595
|
+
// L1 outer drop zone — fires when a palette-pattern is dropped on the
|
|
1596
|
+
// orbital's frame outside the inner render-ui preview. Emits the default
|
|
1597
|
+
// UI:PATTERN_DROP with a partial containerNode (orbital only) so the
|
|
1598
|
+
// page-level handler can resolve to the orbital's first render-ui
|
|
1599
|
+
// transition.
|
|
1600
|
+
const l1Target = useMemo<CanvasDropTarget>(
|
|
1601
|
+
() => ({ level: 'l1', containerNode: { orbitalName: data.orbitalName } }),
|
|
1602
|
+
[data.orbitalName],
|
|
1603
|
+
);
|
|
1604
|
+
const { setNodeRef: l1SetNodeRef, isOver: l1IsOver } = useCanvasDroppable({
|
|
1605
|
+
id: `orb-l1-${data.orbitalName}`,
|
|
1606
|
+
target: l1Target,
|
|
1607
|
+
accepts: ['pattern'],
|
|
1608
|
+
disabled: isExpanded,
|
|
1609
|
+
});
|
|
1610
|
+
|
|
1611
|
+
return (
|
|
1612
|
+
<Box
|
|
1613
|
+
ref={isExpanded ? undefined : l1SetNodeRef}
|
|
1614
|
+
className={`@container/preview rounded-lg border shadow-sm bg-card transition-all duration-200 overflow-hidden relative${isRunning ? ' orb-preview-running' : ''}`}
|
|
1615
|
+
style={{
|
|
1616
|
+
borderColor: l1IsOver ? 'var(--color-primary)' : borderColor,
|
|
1617
|
+
borderWidth: l1IsOver ? '2px' : borderWidth,
|
|
1618
|
+
width: typeof data.cardWidth === 'number' ? data.cardWidth : preset.width,
|
|
1619
|
+
boxShadow: l1IsOver ? '0 0 0 3px var(--color-primary), 0 0 12px var(--color-primary)' : undefined,
|
|
1620
|
+
}}
|
|
1621
|
+
onMouseEnter={handleMouseEnter}
|
|
1622
|
+
onMouseLeave={handleMouseLeave}
|
|
1623
|
+
>
|
|
1624
|
+
{/* Inject selection highlight CSS */}
|
|
1625
|
+
<style>{SELECTION_STYLES}</style>
|
|
1626
|
+
|
|
1627
|
+
{/* L1 affordances — only render at overview level (no traitName).
|
|
1628
|
+
Preview badge is always visible so the user knows the embedded
|
|
1629
|
+
render is sample data. Click-to-open overlay surfaces on hover.
|
|
1630
|
+
Drop-to-place overlay surfaces when a palette pattern is being
|
|
1631
|
+
dragged anywhere on the canvas. */}
|
|
1632
|
+
{!isExpanded && (
|
|
1633
|
+
<>
|
|
1634
|
+
<Box
|
|
1635
|
+
className="absolute top-1.5 right-1.5 rounded px-1 py-[1px] text-xs font-mono uppercase tracking-wider pointer-events-none"
|
|
1636
|
+
style={{
|
|
1637
|
+
backgroundColor: 'var(--color-muted)',
|
|
1638
|
+
color: 'var(--color-muted-foreground)',
|
|
1639
|
+
zIndex: 3,
|
|
1640
|
+
}}
|
|
1641
|
+
>
|
|
1642
|
+
{t('orbPreview.previewBadge')}
|
|
1643
|
+
</Box>
|
|
1644
|
+
{hovered && !dragActive && !l1IsOver && (
|
|
1645
|
+
<Box
|
|
1646
|
+
className="absolute inset-0 flex items-center justify-center pointer-events-none"
|
|
1647
|
+
style={{
|
|
1648
|
+
backgroundColor: avlTint('var(--color-foreground)', 4),
|
|
1649
|
+
zIndex: 2,
|
|
1650
|
+
}}
|
|
1651
|
+
>
|
|
1652
|
+
<Box
|
|
1653
|
+
className="rounded-md px-2 py-1 text-xs font-medium flex items-center gap-1"
|
|
1654
|
+
style={{
|
|
1655
|
+
backgroundColor: 'var(--color-card)',
|
|
1656
|
+
color: 'var(--color-foreground)',
|
|
1657
|
+
boxShadow: 'var(--shadow-main)',
|
|
1658
|
+
}}
|
|
1659
|
+
>
|
|
1660
|
+
<span style={{ fontSize: 12 }}>{'➞'}</span>
|
|
1661
|
+
{t('orbPreview.doubleClickToOpen')}
|
|
1662
|
+
</Box>
|
|
1663
|
+
</Box>
|
|
1664
|
+
)}
|
|
1665
|
+
{(dragActive || l1IsOver) && (
|
|
1666
|
+
<Box
|
|
1667
|
+
className="absolute inset-0 flex items-center justify-center pointer-events-none"
|
|
1668
|
+
style={{
|
|
1669
|
+
backgroundColor: l1IsOver ? avlTint('var(--color-primary)', 15) : avlTint('var(--color-primary)', 6),
|
|
1670
|
+
zIndex: 2,
|
|
1671
|
+
}}
|
|
1672
|
+
>
|
|
1673
|
+
<Box
|
|
1674
|
+
className="rounded-md px-2 py-1 text-xs font-semibold"
|
|
1675
|
+
style={{
|
|
1676
|
+
backgroundColor: 'var(--color-primary)',
|
|
1677
|
+
color: 'var(--color-primary-foreground)',
|
|
1678
|
+
boxShadow: 'var(--shadow-lg)',
|
|
1679
|
+
}}
|
|
1680
|
+
>
|
|
1681
|
+
{t('orbPreview.dropToAddAndOpen')}
|
|
1682
|
+
</Box>
|
|
1683
|
+
</Box>
|
|
1684
|
+
)}
|
|
1685
|
+
</>
|
|
1686
|
+
)}
|
|
1687
|
+
{/* Running-state pulse — subtle inner glow + corner spinner. Inert to
|
|
1688
|
+
pointer events so the existing canvas interactions stay intact. */}
|
|
1689
|
+
{isRunning && (
|
|
1690
|
+
<>
|
|
1691
|
+
<style>{`
|
|
1692
|
+
@keyframes orb-preview-running-pulse {
|
|
1693
|
+
0%, 100% { box-shadow: 0 0 0 0 var(--color-primary); opacity: 0.6; }
|
|
1694
|
+
50% { box-shadow: 0 0 0 4px var(--color-primary); opacity: 0.15; }
|
|
1695
|
+
}
|
|
1696
|
+
.orb-preview-running {
|
|
1697
|
+
animation: orb-preview-running-pulse 1.8s ease-in-out infinite;
|
|
1698
|
+
}
|
|
1699
|
+
@keyframes orb-preview-spinner {
|
|
1700
|
+
from { transform: rotate(0deg); }
|
|
1701
|
+
to { transform: rotate(360deg); }
|
|
1702
|
+
}
|
|
1703
|
+
.orb-preview-spinner {
|
|
1704
|
+
animation: orb-preview-spinner 0.9s linear infinite;
|
|
1705
|
+
}
|
|
1706
|
+
`}</style>
|
|
1707
|
+
<Box
|
|
1708
|
+
className="orb-preview-spinner absolute top-2 right-2 rounded-full pointer-events-none"
|
|
1709
|
+
style={{
|
|
1710
|
+
width: 14,
|
|
1711
|
+
height: 14,
|
|
1712
|
+
border: '2px solid var(--color-primary)',
|
|
1713
|
+
borderTopColor: 'transparent',
|
|
1714
|
+
zIndex: 2,
|
|
1715
|
+
}}
|
|
1716
|
+
title={t('orbPreview.dispatching')}
|
|
1717
|
+
/>
|
|
1718
|
+
</>
|
|
1719
|
+
)}
|
|
1720
|
+
{isError && (
|
|
1721
|
+
<Box
|
|
1722
|
+
data-testid="orb-preview-error-badge"
|
|
1723
|
+
className="absolute top-2 right-2 flex items-center justify-center rounded-full pointer-events-none"
|
|
1724
|
+
style={{ width: 18, height: 18, background: 'var(--color-error)', color: 'var(--color-background)', zIndex: 2 }}
|
|
1725
|
+
title={t('orbPreview.hasProblems')}
|
|
1726
|
+
>
|
|
1727
|
+
<Icon name="alert-triangle" size="xs" />
|
|
1728
|
+
</Box>
|
|
1729
|
+
)}
|
|
1730
|
+
|
|
1731
|
+
{/* Layer color band */}
|
|
1732
|
+
{layerColor && (
|
|
1733
|
+
<Box
|
|
1734
|
+
style={{ height: 3, backgroundColor: layerColor }}
|
|
1735
|
+
title={data.layer && LAYER_LABEL_KEYS[data.layer] ? t(LAYER_LABEL_KEYS[data.layer]) : data.layer}
|
|
1736
|
+
/>
|
|
1737
|
+
)}
|
|
1738
|
+
|
|
1739
|
+
{/* Header - this is the drag handle */}
|
|
1740
|
+
<Box className="flex items-center gap-2 px-3 py-1.5 border-b border-border/40 drag-handle cursor-grab">
|
|
1741
|
+
<Box
|
|
1742
|
+
className="rounded-full shrink-0"
|
|
1743
|
+
style={{ width: 8, height: 8, backgroundColor: colors.dot }}
|
|
1744
|
+
/>
|
|
1745
|
+
<Box className="flex flex-col min-w-0 flex-1">
|
|
1746
|
+
<Typography variant="small" className="font-semibold truncate leading-tight">
|
|
1747
|
+
{data.orbitalName}
|
|
1748
|
+
</Typography>
|
|
1749
|
+
{sublabel && (
|
|
1750
|
+
<Typography variant="small" className="text-muted-foreground truncate text-xs leading-tight">
|
|
1751
|
+
{sublabel}
|
|
1752
|
+
</Typography>
|
|
1753
|
+
)}
|
|
1754
|
+
</Box>
|
|
1755
|
+
{stateOptions && statePicker && (
|
|
1756
|
+
<Box className="nodrag shrink-0 max-w-[55%]" onClick={(e) => e.stopPropagation()}>
|
|
1757
|
+
<Select
|
|
1758
|
+
options={stateOptions.options}
|
|
1759
|
+
groups={stateOptions.groups}
|
|
1760
|
+
value={statePicker.chosen(data.orbitalName)}
|
|
1761
|
+
onValueChange={(value) => { if (typeof value === 'string') statePicker.choose(data.orbitalName, value); }}
|
|
1762
|
+
aria-label={t('canvas.stateOf', { orbital: data.orbitalName })}
|
|
1763
|
+
data-testid={`canvas-state-${data.orbitalName}`}
|
|
1764
|
+
className="h-7 py-0 text-xs"
|
|
1765
|
+
/>
|
|
1766
|
+
</Box>
|
|
1767
|
+
)}
|
|
1768
|
+
{shownStep && (
|
|
1769
|
+
<Box className="nodrag flex shrink-0 items-center gap-0.5" onClick={(e) => e.stopPropagation()}>
|
|
1770
|
+
{verdict && (
|
|
1771
|
+
<Badge
|
|
1772
|
+
variant={VERDICT_VARIANT[verdict.status]}
|
|
1773
|
+
size="sm"
|
|
1774
|
+
data-testid={`card-verdict-${data.orbitalName}`}
|
|
1775
|
+
data-status={verdict.status}
|
|
1776
|
+
title={verdict.detail}
|
|
1777
|
+
>
|
|
1778
|
+
{t(`canvas.verdict.${verdict.status}`)}
|
|
1779
|
+
</Badge>
|
|
1780
|
+
)}
|
|
1781
|
+
<IconButton
|
|
1782
|
+
icon="check-circle"
|
|
1783
|
+
label={t('canvas.verifyTransition')}
|
|
1784
|
+
tooltipPosition="top"
|
|
1785
|
+
className="w-6 h-6"
|
|
1786
|
+
data-testid={`card-verify-transition-${data.orbitalName}`}
|
|
1787
|
+
onClick={() => eventBus.emit('UI:CARD_VERIFY_STEP', { orbital: data.orbitalName, trait: shownStep.trait, from: shownStep.from, event: shownStep.event, payload: {} })}
|
|
1788
|
+
/>
|
|
1789
|
+
{verifyPlaying ? (
|
|
1790
|
+
<>
|
|
1791
|
+
<IconButton icon="pause" label={t('canvas.verifyPause')} tooltipPosition="top" className="w-6 h-6" data-testid={`card-verify-pause-${data.orbitalName}`} onClick={() => eventBus.emit('UI:CARD_VERIFY_PAUSE', { orbital: data.orbitalName, trait: shownStep.trait })} />
|
|
1792
|
+
<IconButton icon="square" label={t('canvas.verifyStop')} tooltipPosition="top" className="w-6 h-6" data-testid={`card-verify-stop-${data.orbitalName}`} onClick={() => eventBus.emit('UI:CARD_VERIFY_STOP', { orbital: data.orbitalName, trait: shownStep.trait })} />
|
|
1793
|
+
</>
|
|
1794
|
+
) : (
|
|
1795
|
+
<IconButton
|
|
1796
|
+
icon="list-checks"
|
|
1797
|
+
label={t('canvas.verifyTrait')}
|
|
1798
|
+
tooltipPosition="top"
|
|
1799
|
+
className="w-6 h-6"
|
|
1800
|
+
data-testid={`card-verify-trait-${data.orbitalName}`}
|
|
1801
|
+
onClick={() => eventBus.emit('UI:CARD_VERIFY_TRAIT', { orbital: data.orbitalName, trait: shownStep.trait })}
|
|
1802
|
+
/>
|
|
1803
|
+
)}
|
|
1804
|
+
</Box>
|
|
1805
|
+
)}
|
|
1806
|
+
<IconButton
|
|
1807
|
+
icon={playing ? 'pause' : 'play'}
|
|
1808
|
+
label={t(playing ? 'orbPreview.pause' : 'orbPreview.play')}
|
|
1809
|
+
tooltipPosition="top"
|
|
1810
|
+
className="nodrag shrink-0 w-6 h-6"
|
|
1811
|
+
aria-pressed={playing}
|
|
1812
|
+
data-testid="orb-preview-play-toggle"
|
|
1813
|
+
onClick={togglePlaying}
|
|
1814
|
+
/>
|
|
1815
|
+
{eventSources.length > 0 && (
|
|
1816
|
+
<Box className="flex gap-0.5 shrink-0">
|
|
1817
|
+
{eventSources.slice(0, 3).map((src) => (
|
|
1818
|
+
<Box
|
|
1819
|
+
key={src.event}
|
|
1820
|
+
className="rounded-full px-1 py-0 text-xs font-medium leading-tight"
|
|
1821
|
+
style={{
|
|
1822
|
+
backgroundColor: avlTint(CONNECTION_COLORS.emitListen.color, 8),
|
|
1823
|
+
color: CONNECTION_COLORS.emitListen.color,
|
|
1824
|
+
border: `1px solid ${avlTint(CONNECTION_COLORS.emitListen.color, 19)}`,
|
|
1825
|
+
}}
|
|
1826
|
+
title={`${src.label ?? src.patternType} \u2192 ${src.event}${src.payloadFields?.length ? ` ${formatPayloadTooltip(src.payloadFields)}` : ''}`}
|
|
1827
|
+
>
|
|
1828
|
+
{src.label ?? src.event}
|
|
1829
|
+
</Box>
|
|
1830
|
+
))}
|
|
1831
|
+
</Box>
|
|
1832
|
+
)}
|
|
1833
|
+
</Box>
|
|
1834
|
+
|
|
1835
|
+
{/* OrbPreview - always interactive, click to select patterns. The
|
|
1836
|
+
ref is set by `setContentRef`, which fans the node to
|
|
1837
|
+
contentRef (read by handleContentClick), @dnd-kit's L2 droppable,
|
|
1838
|
+
AND the L2 reorder draggable. `nodrag` keeps React Flow's own
|
|
1839
|
+
node-drag out of this whole region and `nopan` keeps its pane pan
|
|
1840
|
+
out (a card that isn't draggable pans the pane otherwise), so the
|
|
1841
|
+
reorder / marquee / drop gestures always reach the preview. */}
|
|
1842
|
+
<Box
|
|
1843
|
+
ref={setContentRef}
|
|
1844
|
+
className={`orb-preview-live nodrag nopan relative outline-none focus-visible:ring-[length:var(--focus-ring-width)] focus-visible:ring-ring focus-visible:ring-inset${dragActive || reorderDragActive || l2IsOver ? ' drag-active' : ''}`}
|
|
1845
|
+
data-playing={playing}
|
|
1846
|
+
onClick={playing ? handleContentClick : undefined}
|
|
1847
|
+
onClickCapture={playing ? undefined : handlePausedClickCapture}
|
|
1848
|
+
onKeyDownCapture={playing ? undefined : handlePausedKeyDown}
|
|
1849
|
+
tabIndex={playing ? undefined : -1}
|
|
1850
|
+
onSubmitCapture={playing ? undefined : swallowWhilePaused}
|
|
1851
|
+
onDoubleClickCapture={playing ? undefined : handleInlineText}
|
|
1852
|
+
onCopyCapture={playing ? undefined : handleCopy}
|
|
1853
|
+
onCutCapture={playing ? undefined : handleCut}
|
|
1854
|
+
onPasteCapture={playing ? undefined : handlePaste}
|
|
1855
|
+
onMouseMove={handleContentMouseMove}
|
|
1856
|
+
onMouseLeave={handleContentMouseLeave}
|
|
1857
|
+
onPointerDown={handleContentPointerDown}
|
|
1858
|
+
onPointerMove={trackInsertion}
|
|
1859
|
+
>
|
|
1860
|
+
{/* Hover + selection overlays. Positioned over the element's painted
|
|
1861
|
+
bounds (the [data-pattern] wrapper is display:contents, so CSS
|
|
1862
|
+
outline on it paints nothing — this overlay is the highlight). */}
|
|
1863
|
+
{hoverRect && (
|
|
1864
|
+
<div
|
|
1865
|
+
aria-hidden
|
|
1866
|
+
style={{
|
|
1867
|
+
position: 'absolute',
|
|
1868
|
+
pointerEvents: 'none',
|
|
1869
|
+
top: hoverRect.top,
|
|
1870
|
+
left: hoverRect.left,
|
|
1871
|
+
width: hoverRect.width,
|
|
1872
|
+
height: hoverRect.height,
|
|
1873
|
+
outline: '2px dashed var(--color-primary)',
|
|
1874
|
+
outlineOffset: '1px',
|
|
1875
|
+
borderRadius: '2px',
|
|
1876
|
+
zIndex: 20,
|
|
1877
|
+
}}
|
|
1878
|
+
/>
|
|
1879
|
+
)}
|
|
1880
|
+
{insertionLine && (
|
|
1881
|
+
<Box
|
|
1882
|
+
aria-hidden
|
|
1883
|
+
data-testid="orb-preview-insertion-line"
|
|
1884
|
+
className="rounded-full bg-primary"
|
|
1885
|
+
style={{
|
|
1886
|
+
position: 'absolute',
|
|
1887
|
+
pointerEvents: 'none',
|
|
1888
|
+
top: insertionLine.top,
|
|
1889
|
+
left: insertionLine.left,
|
|
1890
|
+
width: insertionLine.width,
|
|
1891
|
+
height: insertionLine.height,
|
|
1892
|
+
zIndex: 22,
|
|
1893
|
+
}}
|
|
1894
|
+
/>
|
|
1895
|
+
)}
|
|
1896
|
+
{extraRects.map((r, i) => (
|
|
1897
|
+
<Box
|
|
1898
|
+
key={`extra-${i}`}
|
|
1899
|
+
data-testid="orb-preview-selection-extra"
|
|
1900
|
+
style={{ position: 'absolute', pointerEvents: 'none', top: r.top, left: r.left, width: r.width, height: r.height, outline: '2px solid var(--color-primary)', outlineOffset: '1px', borderRadius: '2px', zIndex: 21 }}
|
|
1901
|
+
/>
|
|
1902
|
+
))}
|
|
1903
|
+
{marquee && (
|
|
1904
|
+
<Box
|
|
1905
|
+
data-testid="orb-preview-marquee"
|
|
1906
|
+
className="border border-primary bg-primary/10"
|
|
1907
|
+
style={{ position: 'absolute', pointerEvents: 'none', top: marquee.top, left: marquee.left, width: marquee.width, height: marquee.height, zIndex: 23 }}
|
|
1908
|
+
/>
|
|
1909
|
+
)}
|
|
1910
|
+
<DesignGuidesOverlay guides={guides} measures={measures} zoom={reactFlow.getViewport().zoom} />
|
|
1911
|
+
{selectedRect && (
|
|
1912
|
+
<DesignSelectionOverlay
|
|
1913
|
+
rect={selectedRect}
|
|
1914
|
+
childRects={selectedLayout?.childRects ?? []}
|
|
1915
|
+
axis={selectedLayout?.axis ?? null}
|
|
1916
|
+
alignment={selectedLayout?.alignment}
|
|
1917
|
+
pxOfStep={selectedScale}
|
|
1918
|
+
renderedSpacing={selectedLayout?.spacing}
|
|
1919
|
+
classes={!playing && isExpanded && hasCanvasTool(tools, 'designHandles') && classesEditable ? selectedClasses : null}
|
|
1920
|
+
layoutBar={hasCanvasTool(tools, 'autoLayout')}
|
|
1921
|
+
zoom={reactFlow.getViewport().zoom}
|
|
1922
|
+
onChange={handleClassesChange}
|
|
1923
|
+
/>
|
|
1924
|
+
)}
|
|
1925
|
+
{selectedRect && selectedPartOf && (
|
|
1926
|
+
<Box
|
|
1927
|
+
data-testid="orb-preview-part-of"
|
|
1928
|
+
className="rounded bg-muted px-1.5 py-0.5 text-muted-foreground shadow-sm"
|
|
1929
|
+
style={{ position: 'absolute', pointerEvents: 'none', top: Math.max(0, selectedRect.top - 22), left: selectedRect.left, zIndex: 24 }}
|
|
1930
|
+
>
|
|
1931
|
+
<Typography variant="caption">{t('orbPreview.partOf', { behavior: selectedPartOf })}</Typography>
|
|
1932
|
+
</Box>
|
|
1933
|
+
)}
|
|
1934
|
+
{orbitalSchema ? (
|
|
1935
|
+
// L1 and L2 both auto-grow with content. L2's `buildTransitionSchema`
|
|
1936
|
+
// rewrites portal slots (modal/drawer/overlay/center) to `main`, so
|
|
1937
|
+
// the rendered pattern lands inline in the main slot and contributes
|
|
1938
|
+
// to the card's height — same height model as L1 orbital cards.
|
|
1939
|
+
<Box style={{ minHeight: preset.minHeight }}>
|
|
1940
|
+
<OrbPreview
|
|
1941
|
+
schema={orbitalSchema}
|
|
1942
|
+
isolated
|
|
1943
|
+
height="auto"
|
|
1944
|
+
paused={!playing}
|
|
1945
|
+
/>
|
|
1946
|
+
</Box>
|
|
1947
|
+
) : (
|
|
1948
|
+
<Box className="flex items-center justify-center" style={{ minHeight: preset.minHeight }}>
|
|
1949
|
+
<Typography variant="small" className="text-muted-foreground">
|
|
1950
|
+
{t('orbPreview.noPreview')}
|
|
1951
|
+
</Typography>
|
|
1952
|
+
</Box>
|
|
1953
|
+
)}
|
|
1954
|
+
</Box>
|
|
1955
|
+
|
|
1956
|
+
{/* Frame width: the right edge resizes the card; the width is persisted with its position. */}
|
|
1957
|
+
<NodeResizeControl
|
|
1958
|
+
position="right"
|
|
1959
|
+
variant={ResizeControlVariant.Line}
|
|
1960
|
+
minWidth={CARD_MIN_WIDTH}
|
|
1961
|
+
maxWidth={CARD_MAX_WIDTH}
|
|
1962
|
+
shouldResize={(_event, params) => params.direction[0] !== 0}
|
|
1963
|
+
onResizeEnd={(_event, params) => {
|
|
1964
|
+
setCardWidth(props.id, Math.round(params.width));
|
|
1965
|
+
}}
|
|
1966
|
+
/>
|
|
1967
|
+
|
|
1968
|
+
{/* Handles */}
|
|
1969
|
+
<Handle type="target" position={Position.Left} style={TARGET_HANDLE_STYLE} />
|
|
1970
|
+
{eventSources.length === 0 && (
|
|
1971
|
+
<Handle type="source" position={Position.Right} style={TARGET_HANDLE_STYLE} />
|
|
1972
|
+
)}
|
|
1973
|
+
{eventSources.map((src) => (
|
|
1974
|
+
<Handle
|
|
1975
|
+
key={`event-${src.event}`}
|
|
1976
|
+
id={`event-${src.event}`}
|
|
1977
|
+
type="source"
|
|
1978
|
+
position={Position.Right}
|
|
1979
|
+
style={eventHandleStyle(src)}
|
|
1980
|
+
title={`${src.label ?? src.patternType}: ${src.event}${src.payloadFields?.length ? ` ${formatPayloadTooltip(src.payloadFields)}` : ''}`}
|
|
1981
|
+
/>
|
|
1982
|
+
))}
|
|
1983
|
+
</Box>
|
|
1984
|
+
);
|
|
1985
|
+
};
|
|
1986
|
+
|
|
1987
|
+
export const OrbPreviewNode = React.memo(OrbPreviewNodeInner);
|
|
1988
|
+
OrbPreviewNode.displayName = 'OrbPreviewNode';
|
|
1989
|
+
|
|
1990
|
+
orbPreviewLog.debug('export-resolved', () => ({
|
|
1991
|
+
type: typeof OrbPreviewNode,
|
|
1992
|
+
displayName: OrbPreviewNode.displayName ?? null,
|
|
1993
|
+
innerDefined: typeof OrbPreviewNodeInner === 'function',
|
|
1994
|
+
}));
|