@likec4/diagram 1.31.0 → 1.32.1
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/bundle/{chunk-BBzMXzCg.js → chunk-DlHyKoeo.js} +1700 -1206
- package/bundle/custom.js +51 -47
- package/bundle/index.js +5495 -5428
- package/dist/LikeC4CustomColors.d.ts +2 -7
- package/dist/LikeC4CustomColors.js +17 -6
- package/dist/LikeC4Diagram.d.ts +3 -2
- package/dist/LikeC4Diagram.js +10 -14
- package/dist/LikeC4Diagram.props.d.ts +41 -24
- package/dist/LikeC4ModelProvider.d.ts +5 -4
- package/dist/StaticLikeC4Diagram.d.ts +3 -2
- package/dist/StaticLikeC4Diagram.js +2 -2
- package/dist/base/BaseXYFlow.js +5 -5
- package/dist/base/const.d.ts +1 -1
- package/dist/base/const.js +1 -1
- package/dist/base/index.d.ts +2 -1
- package/dist/base/primitives/compound/CompoundActionButton.js +2 -1
- package/dist/base/primitives/compound/CompoundDetailsButton.js +2 -1
- package/dist/base/primitives/compound/CompoundTitle.d.ts +1 -1
- package/dist/base/primitives/compound/CompoundTitle.js +2 -1
- package/dist/base/primitives/edge/EdgeContainer.d.ts +1 -1
- package/dist/base/primitives/edge/EdgeLabel.css.js +1 -0
- package/dist/base/primitives/edge/EdgeLabel.d.ts +3 -3
- package/dist/base/primitives/edge/EdgeLabel.js +6 -4
- package/dist/base/primitives/edge/EdgeLabelContainer.d.ts +1 -1
- package/dist/base/primitives/edge/EdgeMarkers.d.ts +1 -1
- package/dist/base/primitives/edge/EdgePath.d.ts +1 -1
- package/dist/base/primitives/element/ElementActionButtons.js +10 -9
- package/dist/base/primitives/element/ElementDetailsButton.js +2 -1
- package/dist/base/primitives/element/ElementShape.d.ts +1 -1
- package/dist/base/primitives/element/ElementTags.d.ts +14 -0
- package/dist/base/primitives/element/ElementTags.js +176 -0
- package/dist/base/primitives/element/ElementTitle.d.ts +5 -4
- package/dist/base/primitives/element/ElementTitle.js +6 -6
- package/dist/base/primitives/index.d.ts +1 -0
- package/dist/base/types.Base.d.ts +54 -0
- package/dist/base/types.Base.js +48 -0
- package/dist/base/types.d.ts +2 -52
- package/dist/bundle/LikeC4View.d.ts +2 -1
- package/dist/bundle/LikeC4View.js +22 -19
- package/dist/bundle/LikeC4View.props.d.ts +15 -4
- package/dist/bundle/ReactLikeC4.d.ts +4 -7
- package/dist/bundle/ReactLikeC4.js +10 -8
- package/dist/bundle/index.js +1 -1
- package/dist/components/ErrorFallback.d.ts +2 -0
- package/dist/components/ErrorFallback.js +29 -0
- package/dist/context/DiagramEventHandlers.d.ts +6 -5
- package/dist/context/DiagramFeatures.d.ts +2 -2
- package/dist/context/DiagramFeatures.js +3 -31
- package/dist/context/EnsureMantine.js +1 -1
- package/dist/context/IconRenderer.js +1 -4
- package/dist/context/RootContainer.js +5 -1
- package/dist/context/TagStylesContext.d.ts +7 -0
- package/dist/context/TagStylesContext.js +85 -0
- package/dist/custom/components.d.ts +1 -1
- package/dist/custom/customNodes.d.ts +32 -17
- package/dist/custom/hooks.d.ts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/useDiagram.d.ts +73 -38
- package/dist/hooks/useDiagram.js +7 -3
- package/dist/hooks/useMantinePortalProps.d.ts +2 -2
- package/dist/hooks/useSearchActor.d.ts +2 -0
- package/dist/hooks/useSearchActor.js +10 -0
- package/dist/hooks/useUpdateEffect.js +3 -0
- package/dist/hooks/useXYFlow.d.ts +39 -37
- package/dist/hooks/useXYFlow.js +5 -1
- package/dist/index.js +1 -1
- package/dist/likec4diagram/DiagramUI.js +7 -2
- package/dist/likec4diagram/DiagramXYFlow.d.ts +4 -3
- package/dist/likec4diagram/DiagramXYFlow.js +107 -110
- package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +7 -6
- package/dist/likec4diagram/custom/edges/RelationshipEdge.js +8 -0
- package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +7 -5
- package/dist/likec4diagram/custom/index.d.ts +7 -6
- package/dist/likec4diagram/custom/nodes/nodes.js +39 -26
- package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +7 -7
- package/dist/likec4diagram/types.d.ts +5 -5
- package/dist/likec4diagram/ui/controls/Controls.js +12 -4
- package/dist/likec4diagram/ui/notation/NotationPanel.js +1 -1
- package/dist/likec4diagram/useViewToNodesEdges.d.ts +5 -3
- package/dist/likec4diagram/useViewToNodesEdges.js +20 -30
- package/dist/likec4model/LikeC4ModelContext.d.ts +2 -2
- package/dist/likec4model/index.d.ts +1 -1
- package/dist/likec4model/useLikeC4ElementsTree.js +1 -1
- package/dist/likec4model/useLikeC4Model.d.ts +23 -10
- package/dist/likec4model/useLikeC4Model.js +22 -7
- package/dist/overlays/Overlays.js +4 -27
- package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
- package/dist/overlays/element-details/ElementDetailsCard.js +19 -12
- package/dist/overlays/element-details/TabPanelDeployments.d.ts +1 -1
- package/dist/overlays/element-details/TabPanelDeployments.js +1 -1
- package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
- package/dist/overlays/element-details/TabPanelStructure.d.ts +1 -1
- package/dist/overlays/element-details/actor.d.ts +288 -286
- package/dist/overlays/overlay/Overlay.css.d.ts +57 -2
- package/dist/overlays/overlay/Overlay.css.js +76 -39
- package/dist/overlays/overlay/Overlay.d.ts +12 -0
- package/dist/overlays/overlay/Overlay.js +58 -27
- package/dist/overlays/overlaysActor.d.ts +1 -1
- package/dist/overlays/relationship-details/RelationshipDetails.d.ts +3 -2
- package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
- package/dist/overlays/relationship-details/_types.d.ts +2 -2
- package/dist/overlays/relationship-details/actor.js +7 -7
- package/dist/overlays/relationship-details/custom/edgeTypes.d.ts +3 -2
- package/dist/overlays/relationship-details/custom/nodeTypes.js +4 -0
- package/dist/overlays/relationship-details/hooks.d.ts +10 -9
- package/dist/overlays/relationship-details/layout-to-xyflow.js +1 -0
- package/dist/overlays/relationship-details/layout.js +3 -1
- package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +3 -2
- package/dist/overlays/relationships-browser/SelectElement.js +1 -1
- package/dist/overlays/relationships-browser/_types.d.ts +2 -2
- package/dist/overlays/relationships-browser/actor.d.ts +1 -1
- package/dist/overlays/relationships-browser/actor.js +7 -7
- package/dist/overlays/relationships-browser/custom/edgeTypes.d.ts +3 -2
- package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +8 -5
- package/dist/overlays/relationships-browser/custom/nodeTypes.js +4 -0
- package/dist/overlays/relationships-browser/layout.d.ts +2 -2
- package/dist/overlays/relationships-browser/layout.js +10 -6
- package/dist/overlays/relationships-browser/useViewToNodesEdges.js +4 -3
- package/dist/search/Search.d.ts +4 -0
- package/dist/search/Search.js +173 -0
- package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.js +0 -1
- package/dist/search/components/ElementsColumn.d.ts +2 -0
- package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.js +26 -25
- package/dist/search/components/PickView.d.ts +4 -0
- package/dist/search/components/PickView.js +135 -0
- package/dist/search/components/SearchByTags.d.ts +1 -0
- package/dist/search/components/SearchByTags.js +119 -0
- package/dist/search/components/SearchInput.d.ts +2 -0
- package/dist/{likec4diagram/ui/search → search/components}/SearchInput.js +61 -40
- package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.d.ts +3 -2
- package/dist/{likec4diagram/ui/search → search/components}/ViewsColum.js +25 -17
- package/dist/{likec4diagram/ui/search → search/components}/_shared.css.js +26 -35
- package/dist/{likec4diagram/ui/search/LikeC4Search.css.d.ts → search/components/styles.css.d.ts} +0 -2
- package/dist/search/components/styles.css.js +60 -0
- package/dist/search/components/utils.d.ts +5 -0
- package/dist/search/components/utils.js +58 -0
- package/dist/search/hooks.d.ts +10 -0
- package/dist/search/hooks.js +35 -0
- package/dist/search/searchActor.d.ts +90 -0
- package/dist/search/searchActor.js +75 -0
- package/dist/state/DiagramActorProvider.d.ts +9 -7
- package/dist/state/DiagramActorProvider.js +24 -18
- package/dist/state/assign.d.ts +0 -1
- package/dist/state/assign.js +9 -19
- package/dist/state/diagram-machine.d.ts +645 -183
- package/dist/state/diagram-machine.js +127 -60
- package/dist/state/syncManualLayoutActor.d.ts +2 -2
- package/dist/state/types.d.ts +2 -0
- package/dist/state/utils.d.ts +2 -0
- package/dist/state/utils.js +3 -0
- package/dist/styles-min.css +1 -1
- package/dist/styles-xyflow.css +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css2.js +1 -1
- package/package.json +20 -19
- package/panda.buildinfo.json +171 -148
- package/src/LikeC4CustomColors.tsx +21 -6
- package/src/LikeC4Diagram.props.ts +48 -32
- package/src/LikeC4Diagram.tsx +19 -20
- package/src/LikeC4ModelProvider.tsx +6 -5
- package/src/StaticLikeC4Diagram.tsx +8 -6
- package/src/base/const.ts +1 -1
- package/src/base/index.ts +2 -1
- package/src/base/primitives/compound/CompoundActionButton.tsx +2 -1
- package/src/base/primitives/compound/CompoundDetailsButton.tsx +2 -1
- package/src/base/primitives/compound/CompoundTitle.tsx +3 -2
- package/src/base/primitives/edge/EdgeContainer.tsx +2 -1
- package/src/base/primitives/edge/EdgeLabel.css.ts +1 -0
- package/src/base/primitives/edge/EdgeLabel.tsx +20 -15
- package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -1
- package/src/base/primitives/edge/EdgeMarkers.tsx +2 -1
- package/src/base/primitives/edge/EdgePath.tsx +1 -1
- package/src/base/primitives/element/ElementActionButtons.tsx +11 -10
- package/src/base/primitives/element/ElementDetailsButton.tsx +2 -1
- package/src/base/primitives/element/ElementShape.tsx +2 -1
- package/src/base/primitives/element/ElementTags.tsx +182 -0
- package/src/base/primitives/element/ElementTitle.tsx +21 -15
- package/src/base/primitives/index.ts +1 -0
- package/src/base/types.Base.ts +104 -0
- package/src/base/types.ts +2 -99
- package/src/bundle/LikeC4View.props.ts +17 -4
- package/src/bundle/LikeC4View.tsx +27 -36
- package/src/bundle/ReactLikeC4.tsx +16 -36
- package/src/components/ErrorFallback.tsx +30 -0
- package/src/context/DiagramEventHandlers.tsx +5 -4
- package/src/context/DiagramFeatures.tsx +3 -22
- package/src/context/EnsureMantine.tsx +1 -1
- package/src/context/IconRenderer.tsx +1 -4
- package/src/context/RootContainer.tsx +9 -3
- package/src/context/TagStylesContext.tsx +96 -0
- package/src/custom/components.ts +2 -0
- package/src/custom/customNodes.tsx +29 -14
- package/src/custom/hooks.ts +2 -0
- package/src/hooks/index.ts +1 -1
- package/src/hooks/useCurrentViewId.ts +1 -4
- package/src/hooks/useDiagram.ts +104 -12
- package/src/hooks/useMantinePortalProps.ts +10 -1
- package/src/hooks/useSearchActor.ts +11 -0
- package/src/hooks/useUpdateEffect.ts +7 -4
- package/src/hooks/useXYFlow.ts +5 -0
- package/src/likec4diagram/DiagramUI.tsx +5 -0
- package/src/likec4diagram/DiagramXYFlow.tsx +118 -121
- package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +9 -0
- package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +10 -9
- package/src/likec4diagram/custom/nodes/nodes.tsx +45 -43
- package/src/likec4diagram/custom/nodes/toolbar/_shared.tsx +11 -3
- package/src/likec4diagram/types.ts +5 -3
- package/src/likec4diagram/ui/controls/Controls.tsx +11 -4
- package/src/likec4diagram/ui/notation/NotationPanel.tsx +2 -2
- package/src/likec4diagram/useViewToNodesEdges.ts +34 -36
- package/src/likec4model/LikeC4ModelContext.ts +2 -2
- package/src/likec4model/index.ts +2 -0
- package/src/likec4model/useLikeC4ElementsTree.ts +1 -1
- package/src/likec4model/useLikeC4Model.ts +32 -16
- package/src/overlays/Overlays.tsx +5 -32
- package/src/overlays/element-details/ElementDetailsCard.tsx +25 -18
- package/src/overlays/element-details/TabPanelDeployments.tsx +3 -2
- package/src/overlays/element-details/TabPanelRelationships.tsx +2 -1
- package/src/overlays/element-details/TabPanelStructure.tsx +1 -1
- package/src/overlays/element-details/actor.ts +2 -2
- package/src/overlays/overlay/Overlay.css.ts +75 -38
- package/src/overlays/overlay/Overlay.tsx +61 -29
- package/src/overlays/overlaysActor.ts +1 -1
- package/src/overlays/relationship-details/RelationshipDetails.tsx +4 -4
- package/src/overlays/relationship-details/_types.ts +2 -1
- package/src/overlays/relationship-details/custom/nodeTypes.tsx +4 -0
- package/src/overlays/relationship-details/layout-to-xyflow.ts +1 -0
- package/src/overlays/relationship-details/layout.ts +3 -1
- package/src/overlays/relationships-browser/SelectElement.tsx +1 -1
- package/src/overlays/relationships-browser/_types.ts +2 -1
- package/src/overlays/relationships-browser/custom/nodeTypes.tsx +4 -0
- package/src/overlays/relationships-browser/layout.ts +12 -7
- package/src/overlays/relationships-browser/useViewToNodesEdges.ts +4 -4
- package/src/search/Search.tsx +220 -0
- package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.css.ts +0 -29
- package/src/{likec4diagram/ui/search → search/components}/ElementsColumn.tsx +28 -29
- package/src/search/components/PickView.tsx +134 -0
- package/src/search/components/SearchByTags.tsx +112 -0
- package/src/{likec4diagram/ui/search → search/components}/SearchInput.tsx +72 -42
- package/src/{likec4diagram/ui/search → search/components}/ViewsColum.tsx +29 -22
- package/src/{likec4diagram/ui/search → search/components}/_shared.css.ts +26 -37
- package/src/{likec4diagram/ui/search/LikeC4Search.css.ts → search/components/styles.css.ts} +9 -36
- package/src/search/components/utils.ts +64 -0
- package/src/search/hooks.ts +38 -0
- package/src/search/searchActor.ts +99 -0
- package/src/state/DiagramActorProvider.tsx +37 -25
- package/src/state/assign.ts +10 -10
- package/src/state/diagram-machine.ts +123 -58
- package/src/state/syncManualLayoutActor.ts +1 -1
- package/src/state/types.ts +2 -0
- package/src/state/utils.ts +4 -0
- package/dist/base/types.js +0 -54
- package/dist/likec4diagram/ui/search/ElementsColumn.d.ts +0 -1
- package/dist/likec4diagram/ui/search/LikeC4Search.css.js +0 -87
- package/dist/likec4diagram/ui/search/LikeC4Search.d.ts +0 -2
- package/dist/likec4diagram/ui/search/LikeC4Search.js +0 -267
- package/dist/likec4diagram/ui/search/SearchInput.d.ts +0 -1
- package/dist/likec4diagram/ui/search/state.d.ts +0 -19
- package/dist/likec4diagram/ui/search/state.js +0 -63
- package/dist/likec4diagram/ui/search/utils.d.ts +0 -3
- package/dist/likec4diagram/ui/search/utils.js +0 -20
- package/src/likec4diagram/ui/search/LikeC4Search.tsx +0 -301
- package/src/likec4diagram/ui/search/state.ts +0 -78
- package/src/likec4diagram/ui/search/utils.ts +0 -20
- /package/dist/{likec4diagram/ui/search → search/components}/ElementsColumn.css.d.ts +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.d.ts +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/ViewsColumn.css.js +0 -0
- /package/dist/{likec4diagram/ui/search → search/components}/_shared.css.d.ts +0 -0
- /package/src/{likec4diagram/ui/search → search/components}/ViewsColumn.css.ts +0 -0
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
type
|
|
2
|
+
type DiagramNode,
|
|
3
3
|
type DiagramView,
|
|
4
4
|
type EdgeId,
|
|
5
|
-
type ElementNotation,
|
|
6
5
|
type Fqn,
|
|
7
6
|
type NodeId,
|
|
7
|
+
type NodeNotation as ElementNotation,
|
|
8
8
|
type StepEdgeId,
|
|
9
9
|
type ViewChange,
|
|
10
10
|
type ViewId,
|
|
11
11
|
type XYPoint,
|
|
12
|
-
|
|
13
|
-
getBBoxCenter,
|
|
12
|
+
BBox,
|
|
14
13
|
getParallelStepsPrefix,
|
|
15
14
|
invariant,
|
|
16
15
|
isStepEdgeId,
|
|
@@ -51,6 +50,7 @@ import type { OpenSourceParams, PaddingWithUnit } from '../LikeC4Diagram.props'
|
|
|
51
50
|
import type { Types } from '../likec4diagram/types'
|
|
52
51
|
import { createLayoutConstraints } from '../likec4diagram/useLayoutConstraints'
|
|
53
52
|
import { overlaysActorLogic } from '../overlays/overlaysActor'
|
|
53
|
+
import { searchActorLogic } from '../search/searchActor'
|
|
54
54
|
import { type AlignmentMode, getAligner, toNodeRect } from './aligners'
|
|
55
55
|
import {
|
|
56
56
|
focusNodesEdges,
|
|
@@ -59,7 +59,6 @@ import {
|
|
|
59
59
|
navigateBack,
|
|
60
60
|
navigateForward,
|
|
61
61
|
resetEdgeControlPoints,
|
|
62
|
-
unfocusNodesEdges,
|
|
63
62
|
updateActiveWalkthrough,
|
|
64
63
|
updateEdgeData,
|
|
65
64
|
updateNavigationHistory,
|
|
@@ -161,6 +160,7 @@ export type Events =
|
|
|
161
160
|
| { type: 'open.elementDetails'; fqn: Fqn; fromNode?: NodeId | undefined }
|
|
162
161
|
| { type: 'open.relationshipDetails'; params: { edgeId: EdgeId } | { source: Fqn; target: Fqn } }
|
|
163
162
|
| { type: 'open.relationshipsBrowser'; fqn: Fqn }
|
|
163
|
+
| { type: 'open.search'; search?: string }
|
|
164
164
|
// | { type: 'close.overlay' }
|
|
165
165
|
| { type: 'navigate.to'; viewId: ViewId; fromNode?: NodeId | undefined }
|
|
166
166
|
| { type: 'navigate.back' }
|
|
@@ -175,6 +175,8 @@ export type Events =
|
|
|
175
175
|
| { type: 'walkthrough.end' }
|
|
176
176
|
| { type: 'notations.highlight'; notation: ElementNotation; kind?: string }
|
|
177
177
|
| { type: 'notations.unhighlight' }
|
|
178
|
+
| { type: 'tag.highlight'; tag: string }
|
|
179
|
+
| { type: 'tag.unhighlight' }
|
|
178
180
|
| { type: 'toggle.feature'; feature: FeatureName; forceValue?: boolean }
|
|
179
181
|
|
|
180
182
|
export type ActionArg = { context: Context; event: Events }
|
|
@@ -188,6 +190,7 @@ const _diagramMachine = setup({
|
|
|
188
190
|
syncLayout: 'syncManualLayoutActorLogic'
|
|
189
191
|
hotkey: 'hotkeyActorLogic'
|
|
190
192
|
overlays: 'overlaysActorLogic'
|
|
193
|
+
search: 'searchActorLogic'
|
|
191
194
|
},
|
|
192
195
|
events: {} as Events,
|
|
193
196
|
},
|
|
@@ -195,6 +198,7 @@ const _diagramMachine = setup({
|
|
|
195
198
|
syncManualLayoutActorLogic,
|
|
196
199
|
hotkeyActorLogic,
|
|
197
200
|
overlaysActorLogic,
|
|
201
|
+
searchActorLogic,
|
|
198
202
|
},
|
|
199
203
|
guards: {
|
|
200
204
|
'isReady': ({ context }) => context.initialized.xydata && context.initialized.xyflow,
|
|
@@ -202,8 +206,9 @@ const _diagramMachine = setup({
|
|
|
202
206
|
'enabled: FocusMode': ({ context }) => context.features.enableFocusMode,
|
|
203
207
|
'enabled: Readonly': ({ context }) => context.features.enableReadOnly,
|
|
204
208
|
'enabled: RelationshipDetails': ({ context }) => context.features.enableRelationshipDetails,
|
|
209
|
+
'enabled: Search': ({ context }) => context.features.enableSearch,
|
|
205
210
|
'not readonly': ({ context }) => !context.features.enableReadOnly,
|
|
206
|
-
'is dynamic view': ({ context }) => context.view.
|
|
211
|
+
'is dynamic view': ({ context }) => context.view._type === 'dynamic',
|
|
207
212
|
'is another view': ({ context, event }) => {
|
|
208
213
|
assertEvent(event, ['update.view', 'navigate.to'])
|
|
209
214
|
if (event.type === 'update.view') {
|
|
@@ -258,10 +263,10 @@ const _diagramMachine = setup({
|
|
|
258
263
|
const diagramNode = findDiagramNode(context, nodeId)
|
|
259
264
|
if (!diagramNode) return
|
|
260
265
|
|
|
261
|
-
if (
|
|
262
|
-
enqueue.raise({ type: 'open.source', deployment:
|
|
263
|
-
} else if (
|
|
264
|
-
enqueue.raise({ type: 'open.source', element:
|
|
266
|
+
if (diagramNode.deploymentRef) {
|
|
267
|
+
enqueue.raise({ type: 'open.source', deployment: diagramNode.deploymentRef })
|
|
268
|
+
} else if (diagramNode.modelRef) {
|
|
269
|
+
enqueue.raise({ type: 'open.source', element: diagramNode.modelRef })
|
|
265
270
|
}
|
|
266
271
|
}),
|
|
267
272
|
|
|
@@ -270,7 +275,7 @@ const _diagramMachine = setup({
|
|
|
270
275
|
bounds = context.view.bounds,
|
|
271
276
|
duration = 450,
|
|
272
277
|
} = params ?? {}
|
|
273
|
-
const { width, height, panZoom, transform } = context.xystore.getState()
|
|
278
|
+
const { width, height, panZoom, transform } = nonNullable(context.xystore).getState()
|
|
274
279
|
|
|
275
280
|
const maxZoom = Math.max(1, transform[2])
|
|
276
281
|
const viewport = getViewportForBounds(
|
|
@@ -288,7 +293,7 @@ const _diagramMachine = setup({
|
|
|
288
293
|
|
|
289
294
|
'xyflow:fitFocusedBounds': ({ context }) => {
|
|
290
295
|
const { bounds, duration = 450 } = focusedBounds({ context })
|
|
291
|
-
const { width, height, panZoom, transform } = context.xystore.getState()
|
|
296
|
+
const { width, height, panZoom, transform } = nonNullable(context.xystore).getState()
|
|
292
297
|
|
|
293
298
|
const maxZoom = Math.max(1, transform[2])
|
|
294
299
|
const viewport = getViewportForBounds(
|
|
@@ -316,7 +321,7 @@ const _diagramMachine = setup({
|
|
|
316
321
|
viewport,
|
|
317
322
|
duration = 350,
|
|
318
323
|
} = params
|
|
319
|
-
const
|
|
324
|
+
const panZoom = context.xystore?.getState().panZoom
|
|
320
325
|
panZoom?.setViewport(viewport, duration > 0 ? { duration } : undefined)
|
|
321
326
|
},
|
|
322
327
|
|
|
@@ -333,12 +338,12 @@ const _diagramMachine = setup({
|
|
|
333
338
|
x: Math.round(fromPos.x - toPos.x),
|
|
334
339
|
y: Math.round(fromPos.y - toPos.y),
|
|
335
340
|
}
|
|
336
|
-
context.xystore
|
|
341
|
+
context.xystore!.getState().panBy(diff)
|
|
337
342
|
},
|
|
338
343
|
|
|
339
344
|
'layout.align': ({ context }, params: { mode: AlignmentMode }) => {
|
|
340
345
|
const { mode } = params
|
|
341
|
-
const
|
|
346
|
+
const xystore = nonNullable(context.xystore, 'xystore is not initialized')
|
|
342
347
|
const { nodeLookup, parentLookup } = xystore.getState()
|
|
343
348
|
|
|
344
349
|
const selectedNodes = new Set(nodeLookup.values().filter(n => n.selected).map(n => n.id))
|
|
@@ -365,14 +370,7 @@ const _diagramMachine = setup({
|
|
|
365
370
|
}
|
|
366
371
|
constraints.updateXYFlowNodes()
|
|
367
372
|
},
|
|
368
|
-
|
|
369
|
-
'updateFeatures': enqueueActions(({ enqueue, system, event }) => {
|
|
370
|
-
assertEvent(event, 'update.features')
|
|
371
|
-
const { features } = event
|
|
372
|
-
enqueue.assign({
|
|
373
|
-
features: { ...features },
|
|
374
|
-
})
|
|
375
|
-
|
|
373
|
+
'ensure overlays actor state': enqueueActions(({ enqueue, context: { features }, system }) => {
|
|
376
374
|
const enableOverlays = features.enableElementDetails || features.enableRelationshipDetails ||
|
|
377
375
|
features.enableRelationshipBrowser
|
|
378
376
|
const hasRunning = typedSystem(system).overlaysActorRef
|
|
@@ -387,14 +385,37 @@ const _diagramMachine = setup({
|
|
|
387
385
|
enqueue.stopChild('overlays')
|
|
388
386
|
}
|
|
389
387
|
}),
|
|
390
|
-
|
|
388
|
+
'ensure search actor state': enqueueActions(({ enqueue, context: { features: { enableSearch } }, system }) => {
|
|
389
|
+
const hasRunning = typedSystem(system).searchActorRef
|
|
390
|
+
if (enableSearch && !hasRunning) {
|
|
391
|
+
enqueue.spawnChild('searchActorLogic', { id: 'search', systemId: 'search' })
|
|
392
|
+
return
|
|
393
|
+
}
|
|
394
|
+
if (!enableSearch && hasRunning) {
|
|
395
|
+
enqueue.sendTo(hasRunning, {
|
|
396
|
+
type: 'close',
|
|
397
|
+
})
|
|
398
|
+
enqueue.stopChild('search')
|
|
399
|
+
}
|
|
400
|
+
}),
|
|
401
|
+
'updateFeatures': assign(({ event }) => {
|
|
402
|
+
assertEvent(event, 'update.features')
|
|
403
|
+
return {
|
|
404
|
+
features: { ...event.features },
|
|
405
|
+
}
|
|
406
|
+
}),
|
|
407
|
+
'closeSearch': sendTo(
|
|
408
|
+
({ system }) => typedSystem(system).searchActorRef!,
|
|
409
|
+
{
|
|
410
|
+
type: 'close',
|
|
411
|
+
},
|
|
412
|
+
),
|
|
391
413
|
'closeAllOverlays': sendTo(
|
|
392
414
|
({ system }) => typedSystem(system).overlaysActorRef!,
|
|
393
415
|
{
|
|
394
416
|
type: 'close.all',
|
|
395
417
|
},
|
|
396
418
|
),
|
|
397
|
-
|
|
398
419
|
'startSyncLayout': assign(({ context, spawn, self }) => ({
|
|
399
420
|
syncLayoutActorRef: spawn('syncManualLayoutActorLogic', {
|
|
400
421
|
id: 'syncLayout',
|
|
@@ -450,6 +471,7 @@ const _diagramMachine = setup({
|
|
|
450
471
|
}),
|
|
451
472
|
}
|
|
452
473
|
}),
|
|
474
|
+
'focus on nodes and edges': assign(focusNodesEdges),
|
|
453
475
|
'notations.highlight': assign(({ context }, params: { notation: ElementNotation; kind?: string }) => {
|
|
454
476
|
const kinds = params.kind ? [params.kind] : params.notation.kinds
|
|
455
477
|
const xynodes = context.xynodes.map((n) => {
|
|
@@ -470,10 +492,29 @@ const _diagramMachine = setup({
|
|
|
470
492
|
xyedges: context.xyedges.map(Base.setDimmed('immediate')),
|
|
471
493
|
}
|
|
472
494
|
}),
|
|
495
|
+
'tag.highlight': assign(({ context, event }) => {
|
|
496
|
+
assertEvent(event, 'tag.highlight')
|
|
497
|
+
return {
|
|
498
|
+
xynodes: context.xynodes.map((n) => {
|
|
499
|
+
if (n.data.tags?.includes(event.tag)) {
|
|
500
|
+
return Base.setDimmed(n, false)
|
|
501
|
+
}
|
|
502
|
+
return Base.setDimmed(n, 'immediate')
|
|
503
|
+
}),
|
|
504
|
+
}
|
|
505
|
+
}),
|
|
506
|
+
'undim everything': assign(({ context }) => ({
|
|
507
|
+
xynodes: context.xynodes.map(Base.setDimmed(false)),
|
|
508
|
+
xyedges: context.xyedges.map(Base.setData({
|
|
509
|
+
dimmed: false,
|
|
510
|
+
active: false,
|
|
511
|
+
})),
|
|
512
|
+
})),
|
|
513
|
+
'update active walkthrough': assign(updateActiveWalkthrough),
|
|
473
514
|
},
|
|
474
515
|
}).createMachine({
|
|
475
516
|
initial: 'initializing',
|
|
476
|
-
context: ({ input
|
|
517
|
+
context: ({ input }): Context => ({
|
|
477
518
|
...input,
|
|
478
519
|
xyedges: [],
|
|
479
520
|
xynodes: [],
|
|
@@ -528,7 +569,7 @@ const _diagramMachine = setup({
|
|
|
528
569
|
},
|
|
529
570
|
},
|
|
530
571
|
},
|
|
531
|
-
|
|
572
|
+
isReady: {
|
|
532
573
|
always: [{
|
|
533
574
|
guard: 'isReady',
|
|
534
575
|
actions: [
|
|
@@ -609,8 +650,8 @@ const _diagramMachine = setup({
|
|
|
609
650
|
node: NodeId
|
|
610
651
|
clientRect: Rect
|
|
611
652
|
}
|
|
612
|
-
const fromNodeId = event.fromNode ?? context.view.nodes.find(n =>
|
|
613
|
-
const internalNode = fromNodeId ? context.xystore.getState().nodeLookup.get(fromNodeId) : null
|
|
653
|
+
const fromNodeId = event.fromNode ?? context.view.nodes.find(n => n.modelRef === event.fqn)?.id
|
|
654
|
+
const internalNode = fromNodeId ? nonNullable(context.xystore).getState().nodeLookup.get(fromNodeId) : null
|
|
614
655
|
if (fromNodeId && internalNode) {
|
|
615
656
|
const nodeRect = nodeToRect(internalNode)
|
|
616
657
|
const zoom = context.xyflow!.getZoom()
|
|
@@ -703,10 +744,13 @@ const _diagramMachine = setup({
|
|
|
703
744
|
},
|
|
704
745
|
},
|
|
705
746
|
'notations.unhighlight': {
|
|
706
|
-
actions:
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
747
|
+
actions: 'undim everything',
|
|
748
|
+
},
|
|
749
|
+
'tag.highlight': {
|
|
750
|
+
actions: 'tag.highlight',
|
|
751
|
+
},
|
|
752
|
+
'tag.unhighlight': {
|
|
753
|
+
actions: 'undim everything',
|
|
710
754
|
},
|
|
711
755
|
'saveManualLayout.*': {
|
|
712
756
|
guard: 'not readonly',
|
|
@@ -720,6 +764,13 @@ const _diagramMachine = setup({
|
|
|
720
764
|
nonexhaustive(event)
|
|
721
765
|
}),
|
|
722
766
|
},
|
|
767
|
+
'open.search': {
|
|
768
|
+
guard: 'enabled: Search',
|
|
769
|
+
actions: sendTo(({ system }) => typedSystem(system).searchActorRef!, ({ event }) => ({
|
|
770
|
+
type: 'open',
|
|
771
|
+
search: event.search,
|
|
772
|
+
})),
|
|
773
|
+
},
|
|
723
774
|
},
|
|
724
775
|
exit: [
|
|
725
776
|
cancel('fitDiagram'),
|
|
@@ -798,8 +849,8 @@ const _diagramMachine = setup({
|
|
|
798
849
|
},
|
|
799
850
|
focused: {
|
|
800
851
|
entry: [
|
|
852
|
+
'focus on nodes and edges',
|
|
801
853
|
assign(s => ({
|
|
802
|
-
...focusNodesEdges(s),
|
|
803
854
|
viewportBeforeFocus: { ...s.context.viewport },
|
|
804
855
|
})),
|
|
805
856
|
'open source of focused or last clicked node',
|
|
@@ -811,10 +862,10 @@ const _diagramMachine = setup({
|
|
|
811
862
|
if (context.viewportBeforeFocus) {
|
|
812
863
|
enqueue({ type: 'xyflow:setViewport', params: { viewport: context.viewportBeforeFocus } })
|
|
813
864
|
} else {
|
|
814
|
-
enqueue(
|
|
865
|
+
enqueue('xyflow:fitDiagram')
|
|
815
866
|
}
|
|
867
|
+
enqueue('undim everything')
|
|
816
868
|
enqueue.assign({
|
|
817
|
-
...unfocusNodesEdges({ context, event }),
|
|
818
869
|
viewportBeforeFocus: null,
|
|
819
870
|
focusedNode: null,
|
|
820
871
|
})
|
|
@@ -842,7 +893,7 @@ const _diagramMachine = setup({
|
|
|
842
893
|
assign({
|
|
843
894
|
focusedNode: ({ event }) => event.nodeId,
|
|
844
895
|
}),
|
|
845
|
-
|
|
896
|
+
'focus on nodes and edges',
|
|
846
897
|
'open source of focused or last clicked node',
|
|
847
898
|
'xyflow:fitFocusedBounds',
|
|
848
899
|
],
|
|
@@ -857,9 +908,10 @@ const _diagramMachine = setup({
|
|
|
857
908
|
target: 'idle',
|
|
858
909
|
},
|
|
859
910
|
'notations.unhighlight': {
|
|
860
|
-
actions:
|
|
861
|
-
|
|
862
|
-
|
|
911
|
+
actions: 'focus on nodes and edges',
|
|
912
|
+
},
|
|
913
|
+
'tag.unhighlight': {
|
|
914
|
+
actions: 'focus on nodes and edges',
|
|
863
915
|
},
|
|
864
916
|
},
|
|
865
917
|
},
|
|
@@ -877,7 +929,7 @@ const _diagramMachine = setup({
|
|
|
877
929
|
}
|
|
878
930
|
},
|
|
879
931
|
}),
|
|
880
|
-
|
|
932
|
+
'update active walkthrough',
|
|
881
933
|
'xyflow:fitFocusedBounds',
|
|
882
934
|
],
|
|
883
935
|
on: {
|
|
@@ -908,7 +960,7 @@ const _diagramMachine = setup({
|
|
|
908
960
|
parallelPrefix: getParallelStepsPrefix(nextStepId),
|
|
909
961
|
},
|
|
910
962
|
})
|
|
911
|
-
enqueue
|
|
963
|
+
enqueue('update active walkthrough')
|
|
912
964
|
enqueue('xyflow:fitFocusedBounds')
|
|
913
965
|
}),
|
|
914
966
|
},
|
|
@@ -925,14 +977,15 @@ const _diagramMachine = setup({
|
|
|
925
977
|
},
|
|
926
978
|
}
|
|
927
979
|
}),
|
|
928
|
-
|
|
980
|
+
'update active walkthrough',
|
|
929
981
|
'xyflow:fitFocusedBounds',
|
|
930
982
|
],
|
|
931
983
|
},
|
|
932
984
|
'notations.unhighlight': {
|
|
933
|
-
actions:
|
|
934
|
-
|
|
935
|
-
|
|
985
|
+
actions: 'update active walkthrough',
|
|
986
|
+
},
|
|
987
|
+
'tag.unhighlight': {
|
|
988
|
+
actions: 'update active walkthrough',
|
|
936
989
|
},
|
|
937
990
|
'walkthrough.end': {
|
|
938
991
|
target: 'idle',
|
|
@@ -952,11 +1005,11 @@ const _diagramMachine = setup({
|
|
|
952
1005
|
if (context.viewportBeforeFocus) {
|
|
953
1006
|
enqueue({ type: 'xyflow:setViewport', params: { viewport: context.viewportBeforeFocus } })
|
|
954
1007
|
} else {
|
|
955
|
-
enqueue(
|
|
1008
|
+
enqueue('xyflow:fitDiagram')
|
|
956
1009
|
}
|
|
1010
|
+
enqueue('undim everything')
|
|
957
1011
|
enqueue.assign({
|
|
958
1012
|
activeWalkthrough: null,
|
|
959
|
-
...unfocusNodesEdges({ context, event }),
|
|
960
1013
|
viewportBeforeFocus: null,
|
|
961
1014
|
})
|
|
962
1015
|
}),
|
|
@@ -968,13 +1021,16 @@ const _diagramMachine = setup({
|
|
|
968
1021
|
id: 'navigating',
|
|
969
1022
|
entry: [
|
|
970
1023
|
'closeAllOverlays',
|
|
1024
|
+
'closeSearch',
|
|
971
1025
|
'stopSyncLayout',
|
|
972
|
-
{
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
1026
|
+
enqueueActions(({ enqueue, context }) => {
|
|
1027
|
+
enqueue({
|
|
1028
|
+
type: 'trigger:NavigateTo',
|
|
1029
|
+
params: {
|
|
1030
|
+
viewId: nonNullable(context.lastOnNavigate, 'Invalid state, lastOnNavigate is null').toView,
|
|
1031
|
+
},
|
|
1032
|
+
})
|
|
1033
|
+
}),
|
|
978
1034
|
],
|
|
979
1035
|
on: {
|
|
980
1036
|
'update.view': {
|
|
@@ -994,7 +1050,7 @@ const _diagramMachine = setup({
|
|
|
994
1050
|
} else {
|
|
995
1051
|
enqueue({
|
|
996
1052
|
type: 'xyflow:setViewportCenter',
|
|
997
|
-
params:
|
|
1053
|
+
params: BBox.center(event.view.bounds),
|
|
998
1054
|
})
|
|
999
1055
|
}
|
|
1000
1056
|
enqueue.assign(updateNavigationHistory)
|
|
@@ -1047,6 +1103,7 @@ const _diagramMachine = setup({
|
|
|
1047
1103
|
const isAnotherView = check('is another view')
|
|
1048
1104
|
if (isAnotherView) {
|
|
1049
1105
|
enqueue('closeAllOverlays')
|
|
1106
|
+
enqueue('closeSearch')
|
|
1050
1107
|
enqueue('stopSyncLayout')
|
|
1051
1108
|
enqueue.assign({
|
|
1052
1109
|
focusedNode: null,
|
|
@@ -1067,7 +1124,7 @@ const _diagramMachine = setup({
|
|
|
1067
1124
|
} else {
|
|
1068
1125
|
enqueue({
|
|
1069
1126
|
type: 'xyflow:setViewportCenter',
|
|
1070
|
-
params:
|
|
1127
|
+
params: BBox.center(event.view.bounds),
|
|
1071
1128
|
})
|
|
1072
1129
|
enqueue.raise({ type: 'fitDiagram', duration: 200 }, { id: 'fitDiagram', delay: 25 })
|
|
1073
1130
|
}
|
|
@@ -1091,13 +1148,19 @@ const _diagramMachine = setup({
|
|
|
1091
1148
|
actions: assign(({ event }) => ({ ...event.inputs })),
|
|
1092
1149
|
},
|
|
1093
1150
|
'update.features': {
|
|
1094
|
-
actions:
|
|
1151
|
+
actions: [
|
|
1152
|
+
'updateFeatures',
|
|
1153
|
+
'ensure overlays actor state',
|
|
1154
|
+
'ensure search actor state',
|
|
1155
|
+
],
|
|
1095
1156
|
},
|
|
1096
1157
|
},
|
|
1097
1158
|
exit: [
|
|
1098
1159
|
'stopSyncLayout',
|
|
1099
1160
|
cancel('fitDiagram'),
|
|
1100
1161
|
stopChild('hotkey'),
|
|
1162
|
+
stopChild('overlays'),
|
|
1163
|
+
stopChild('search'),
|
|
1101
1164
|
assign({
|
|
1102
1165
|
xyflow: null,
|
|
1103
1166
|
xystore: null as any,
|
|
@@ -1112,7 +1175,9 @@ const _diagramMachine = setup({
|
|
|
1112
1175
|
],
|
|
1113
1176
|
})
|
|
1114
1177
|
|
|
1115
|
-
|
|
1178
|
+
function nodeRef(node: DiagramNode) {
|
|
1179
|
+
return node.modelRef ?? node.deploymentRef
|
|
1180
|
+
}
|
|
1116
1181
|
function findCorrespondingNode(context: Context, event: { view: DiagramView }) {
|
|
1117
1182
|
const fromNodeId = context.lastOnNavigate?.fromNode
|
|
1118
1183
|
const fromNode = fromNodeId && context.view.nodes.find(n => n.id === fromNodeId)
|
package/src/state/types.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ActorRefFromLogic, ActorSystem, EventFromLogic, SnapshotFrom } from 'xstate'
|
|
2
2
|
import type { OverlaysActorRef } from '../overlays/overlaysActor'
|
|
3
|
+
import type { SearchActorRef } from '../search/searchActor'
|
|
3
4
|
import type { DiagramMachineLogic } from './diagram-machine'
|
|
4
5
|
import type { SyncLayoutActorLogic } from './syncManualLayoutActor'
|
|
5
6
|
|
|
@@ -7,6 +8,7 @@ export type System = ActorSystem<{
|
|
|
7
8
|
actors: {
|
|
8
9
|
diagram: ActorRefFromLogic<DiagramMachineLogic>
|
|
9
10
|
overlays: OverlaysActorRef
|
|
11
|
+
search: SearchActorRef
|
|
10
12
|
}
|
|
11
13
|
}>
|
|
12
14
|
|
package/src/state/utils.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BBox, DiagramEdge, DiagramNode, XYPoint } from '@likec4/core/types'
|
|
2
2
|
import type { ActorSystem } from 'xstate'
|
|
3
3
|
import type { OverlaysActorRef } from '../overlays/overlaysActor'
|
|
4
|
+
import type { SearchActorRef } from '../search/searchActor'
|
|
4
5
|
import type { Context } from './diagram-machine'
|
|
5
6
|
import type { DiagramActorRef, System } from './types'
|
|
6
7
|
|
|
@@ -12,6 +13,9 @@ export function typedSystem(system: ActorSystem<any>) {
|
|
|
12
13
|
get diagramActorRef(): DiagramActorRef | null {
|
|
13
14
|
return (system as System).get('diagram') ?? null
|
|
14
15
|
},
|
|
16
|
+
get searchActorRef(): SearchActorRef | null {
|
|
17
|
+
return (system as System).get('search') ?? null
|
|
18
|
+
},
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
|
package/dist/base/types.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { hasSubObject } from 'remeda';
|
|
2
|
-
|
|
3
|
-
var Base;
|
|
4
|
-
((Base2) => {
|
|
5
|
-
const _setDimmed = (v, dimmed) => (v.data.dimmed ?? false) === dimmed ? v : {
|
|
6
|
-
...v,
|
|
7
|
-
data: {
|
|
8
|
-
...v.data,
|
|
9
|
-
dimmed
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
function setDimmed(arg1, arg2) {
|
|
13
|
-
if (arg2 !== void 0) {
|
|
14
|
-
return _setDimmed(arg1, arg2);
|
|
15
|
-
}
|
|
16
|
-
return (v) => _setDimmed(v, arg1);
|
|
17
|
-
}
|
|
18
|
-
Base2.setDimmed = setDimmed;
|
|
19
|
-
const _setHovered = (v, hovered) => (v.data.hovered ?? false) === hovered ? v : {
|
|
20
|
-
...v,
|
|
21
|
-
data: {
|
|
22
|
-
...v.data,
|
|
23
|
-
hovered
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
function setHovered(arg1, arg2) {
|
|
27
|
-
if (arg2 !== void 0) {
|
|
28
|
-
return _setHovered(arg1, arg2);
|
|
29
|
-
}
|
|
30
|
-
return (v) => _setHovered(v, arg1);
|
|
31
|
-
}
|
|
32
|
-
Base2.setHovered = setHovered;
|
|
33
|
-
function _setData(value, state) {
|
|
34
|
-
if (hasSubObject(value.data, state)) {
|
|
35
|
-
return value;
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
...value,
|
|
39
|
-
data: {
|
|
40
|
-
...value.data,
|
|
41
|
-
...state
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function setData(arg1, arg2) {
|
|
46
|
-
if (arg2 !== void 0) {
|
|
47
|
-
return _setData(arg1, arg2);
|
|
48
|
-
}
|
|
49
|
-
return (edge) => _setData(edge, arg1);
|
|
50
|
-
}
|
|
51
|
-
Base2.setData = setData;
|
|
52
|
-
})(Base || (Base = {}));
|
|
53
|
-
|
|
54
|
-
export { Base };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function ElementsColumn(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { css } from '@likec4/styles/css';
|
|
2
|
-
|
|
3
|
-
const backdrop = css({
|
|
4
|
-
position: "fixed",
|
|
5
|
-
zIndex: 900,
|
|
6
|
-
inset: "0px",
|
|
7
|
-
backgroundColor: "[rgb(34 34 34 / 0.95)]",
|
|
8
|
-
backdropFilter: "auto",
|
|
9
|
-
backdropBlur: "10px",
|
|
10
|
-
_light: {
|
|
11
|
-
backgroundColor: "[rgb(255 255 255 / 0.92 )]"
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
const root = css({
|
|
15
|
-
containerName: "likec4-search",
|
|
16
|
-
containerType: "size",
|
|
17
|
-
position: "fixed",
|
|
18
|
-
zIndex: 901,
|
|
19
|
-
top: 0,
|
|
20
|
-
left: 0,
|
|
21
|
-
width: "100%",
|
|
22
|
-
height: "100%",
|
|
23
|
-
maxHeight: "100vh",
|
|
24
|
-
overflow: "hidden",
|
|
25
|
-
display: "flex",
|
|
26
|
-
flexDirection: "column",
|
|
27
|
-
justifyContent: "stretch",
|
|
28
|
-
gap: "md",
|
|
29
|
-
paddingTop: "32px",
|
|
30
|
-
paddingLeft: "16px",
|
|
31
|
-
paddingRight: "16px",
|
|
32
|
-
paddingBottom: 0
|
|
33
|
-
});
|
|
34
|
-
const input = css({
|
|
35
|
-
border: "transparent",
|
|
36
|
-
background: "transparent",
|
|
37
|
-
_focusWithin: {
|
|
38
|
-
background: `mantine.colors.gray[3]/55`,
|
|
39
|
-
_dark: {
|
|
40
|
-
background: `mantine.colors.dark[4]/55`
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const pickviewBackdrop = css({
|
|
45
|
-
position: "absolute",
|
|
46
|
-
inset: 0,
|
|
47
|
-
width: "100%",
|
|
48
|
-
height: "100%",
|
|
49
|
-
backgroundColor: "[rgb(34 34 34 / 0.7)]",
|
|
50
|
-
zIndex: 902,
|
|
51
|
-
backdropFilter: "auto",
|
|
52
|
-
backdropBlur: "10px",
|
|
53
|
-
_light: {
|
|
54
|
-
backgroundColor: "[rgb(255 255 255 / 0.6)]"
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
const pickview = css({
|
|
58
|
-
position: "absolute",
|
|
59
|
-
top: "2rem",
|
|
60
|
-
left: "50%",
|
|
61
|
-
width: "100%",
|
|
62
|
-
maxWidth: "600px",
|
|
63
|
-
minWidth: "200px",
|
|
64
|
-
transform: "translateX(-50%)",
|
|
65
|
-
zIndex: 903
|
|
66
|
-
});
|
|
67
|
-
const pickviewGroup = css({
|
|
68
|
-
marginTop: "8px",
|
|
69
|
-
"& + &": {
|
|
70
|
-
marginTop: "32px"
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
const scrollArea = css({
|
|
74
|
-
height: [
|
|
75
|
-
"100%",
|
|
76
|
-
"100cqh"
|
|
77
|
-
],
|
|
78
|
-
"& .mantine-ScrollArea-viewport": {
|
|
79
|
-
minHeight: "100%",
|
|
80
|
-
"& > div": {
|
|
81
|
-
minHeight: "100%",
|
|
82
|
-
height: "100%"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
export { backdrop, input, pickview, pickviewBackdrop, pickviewGroup, root, scrollArea };
|