@formicoidea/labre-core 0.34.1 → 0.35.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/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +18 -2
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +141 -8
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +16 -22
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +18 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +35 -12
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +17 -6
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +10 -2
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +9 -2
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +14 -11
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +14 -7
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +27 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +2 -2
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +10 -1
- package/dist/_pkgs/affine-model/elements/c4/board.d.ts +49 -0
- package/dist/_pkgs/affine-model/elements/c4/board.js +68 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/slide-menu.js +1 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/std/gfx/index.d.ts +1 -1
- package/dist/_pkgs/std/gfx/index.js +1 -1
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.d.ts +57 -0
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +80 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +55 -1
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +87 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +12 -1
- package/package.json +1 -1
|
@@ -247,6 +247,33 @@ export class EditorMenuAction extends LitElement {
|
|
|
247
247
|
pointer-events: none;
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
+
/*
|
|
251
|
+
* An OPTION row: one of N choices, the one in force carrying
|
|
252
|
+
* data-selected. Opt-in through data-option, because a plain command row is
|
|
253
|
+
* not a choice and keeps its left-packed icon and its grey highlight.
|
|
254
|
+
*
|
|
255
|
+
* The shape invents nothing. It is what edgeless-tool-icon-button draws
|
|
256
|
+
* with justify='space-between' and its default active-mode-color -- the
|
|
257
|
+
* Regular/Semibold menu -- and what size-dropdown-menu already spells out
|
|
258
|
+
* for its own check list: label left, tick right and ONLY when selected,
|
|
259
|
+
* the selected row in the primary colour. The colour IS the affordance, so
|
|
260
|
+
* the background highlight goes, and no gutter is held open on the left for
|
|
261
|
+
* a tick that is not there.
|
|
262
|
+
*/
|
|
263
|
+
:host([data-option]) {
|
|
264
|
+
justify-content: space-between;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
:host([data-option][data-selected]) {
|
|
268
|
+
color: var(--affine-primary-color);
|
|
269
|
+
background-color: unset;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* The tick takes the row's colour rather than the neutral icon one. */
|
|
273
|
+
:host([data-option][data-selected]) ::slotted(svg) {
|
|
274
|
+
color: inherit;
|
|
275
|
+
}
|
|
276
|
+
|
|
250
277
|
:host(:hover.delete),
|
|
251
278
|
:host(:hover.delete) ::slotted(svg) {
|
|
252
279
|
background-color: var(--affine-background-error-color);
|
|
@@ -6,7 +6,7 @@ import { type TypedEdge } from './typed-edge.js';
|
|
|
6
6
|
* **M2 of `docs/adr/0010` — "show it".**
|
|
7
7
|
*
|
|
8
8
|
* A typed edge reveals its orientation on hover and on selection: ONE mark, the
|
|
9
|
-
* role's verb laid ALONG the link — `
|
|
9
|
+
* role's verb laid ALONG the link — `needs` — in a box whose far end is a
|
|
10
10
|
* point aimed at the target. At rest the board keeps the canonical arrowless
|
|
11
11
|
* look, because on a Wardley map a permanent head already means something else
|
|
12
12
|
* (evolution movement), and two meanings on one glyph make both unreadable.
|
|
@@ -66,7 +66,7 @@ export interface EdgeLabelAnchor {
|
|
|
66
66
|
* this flag: the point of the box must face the TARGET, so on a link running
|
|
67
67
|
* right-to-left — where the turn put the box's right end at the SOURCE — the
|
|
68
68
|
* point moves to the box's left end. The words themselves never reverse; a
|
|
69
|
-
* mirrored `
|
|
69
|
+
* mirrored `needs` would be a smudge, not a rotation.
|
|
70
70
|
*/
|
|
71
71
|
flipped: boolean;
|
|
72
72
|
}
|
|
@@ -5,7 +5,7 @@ import { asTypedEdge, edgeIsBound, roleVocabularies, } from './typed-edge.js';
|
|
|
5
5
|
* **M2 of `docs/adr/0010` — "show it".**
|
|
6
6
|
*
|
|
7
7
|
* A typed edge reveals its orientation on hover and on selection: ONE mark, the
|
|
8
|
-
* role's verb laid ALONG the link — `
|
|
8
|
+
* role's verb laid ALONG the link — `needs` — in a box whose far end is a
|
|
9
9
|
* point aimed at the target. At rest the board keeps the canonical arrowless
|
|
10
10
|
* look, because on a Wardley map a permanent head already means something else
|
|
11
11
|
* (evolution movement), and two meanings on one glyph make both unreadable.
|
|
@@ -12,7 +12,7 @@ export declare const EDGE_DIRECTION_WIDGET = "affine-edge-direction-widget";
|
|
|
12
12
|
* is an unreadable one):
|
|
13
13
|
*
|
|
14
14
|
* - **M2** — while a typed edge is hovered or selected, the role's VERB laid
|
|
15
|
-
* along the link: `
|
|
15
|
+
* along the link: `needs`, in a box that ends in a point aimed at the
|
|
16
16
|
* provider. Since the PO acceptance of 02/08/2026 this is the only mark the
|
|
17
17
|
* reveal draws; the canvas chevron it used to sit on top of is folded into
|
|
18
18
|
* that point (see `direction-reveal.ts`). Since the second pass of the same
|
|
@@ -86,7 +86,7 @@ const EDGE_DIRECTION_Z_INDEX = 0;
|
|
|
86
86
|
* is an unreadable one):
|
|
87
87
|
*
|
|
88
88
|
* - **M2** — while a typed edge is hovered or selected, the role's VERB laid
|
|
89
|
-
* along the link: `
|
|
89
|
+
* along the link: `needs`, in a box that ends in a point aimed at the
|
|
90
90
|
* provider. Since the PO acceptance of 02/08/2026 this is the only mark the
|
|
91
91
|
* reveal draws; the canvas chevron it used to sit on top of is folded into
|
|
92
92
|
* that point (see `direction-reveal.ts`). Since the second pass of the same
|
|
@@ -139,6 +139,11 @@ let EdgeDirectionWidget = (() => {
|
|
|
139
139
|
* point has no border to speak of, and a hairline diagonal at 40 % zoom is
|
|
140
140
|
* a smudge. Solid house blue with white text reads in both themes and
|
|
141
141
|
* cannot be mistaken for the map's own ink.
|
|
142
|
+
*
|
|
143
|
+
* The background here is the DEFAULT, which every role that declares no
|
|
144
|
+
* chipColor keeps: render() overrides it inline only for a role that asks
|
|
145
|
+
* for one, so a colour decision taken about one relation never repaints the
|
|
146
|
+
* others.
|
|
142
147
|
*/
|
|
143
148
|
.edge-direction-label {
|
|
144
149
|
--edge-direction-point: 9px;
|
|
@@ -325,6 +330,9 @@ let EdgeDirectionWidget = (() => {
|
|
|
325
330
|
const verb = this._verbFor(edge);
|
|
326
331
|
if (!verb)
|
|
327
332
|
return nothing;
|
|
333
|
+
// Declared by the ROLE, defaulted by the stylesheet: only a relation that
|
|
334
|
+
// asked for its own colour gets an inline background at all.
|
|
335
|
+
const chipColor = edge.direction?.chipColor;
|
|
328
336
|
const { viewport } = this.gfx;
|
|
329
337
|
const [x, y] = viewport.toViewCoord(anchor.at[0], anchor.at[1]);
|
|
330
338
|
// Two decimals: below what a reader can see on a 12 px box, and it keeps
|
|
@@ -341,6 +349,7 @@ let EdgeDirectionWidget = (() => {
|
|
|
341
349
|
style=${styleMap({
|
|
342
350
|
left: `${x}px`,
|
|
343
351
|
top: `${y}px`,
|
|
352
|
+
...(chipColor ? { background: chipColor } : {}),
|
|
344
353
|
// Read right to left, as CSS composes it: scale by the zoom and turn
|
|
345
354
|
// onto the line, both about the box's centre, and only THEN slide that
|
|
346
355
|
// centre onto the anchor. The lengths in the class are model units, so
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import type { SerializedXYWH } from '../../../global/gfx/index.js';
|
|
2
|
+
import type { PointTestOptions } from '../../../std/gfx/index.js';
|
|
2
3
|
import type { FrameworkBackgroundProps } from '../framework-background/index.js';
|
|
3
4
|
import { FrameworkBackgroundElementModel } from '../framework-background/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Height of the board's title band — the header strip across the top of the
|
|
7
|
+
* sheet the diagram title is written in, in model units.
|
|
8
|
+
*
|
|
9
|
+
* Declared HERE, in the model, and re-exported by `@labre/affine-gfx-c4` rather
|
|
10
|
+
* than the other way round, for the reason `POOL_BAND_WIDTH` is: the
|
|
11
|
+
* board's own hit test needs it (a board is clickable by its title band as well
|
|
12
|
+
* as its border), and `affine-model` cannot reach into `affine-block-surface`
|
|
13
|
+
* where the declaration is resolved. One number, owned by the layer that both
|
|
14
|
+
* the declaration and the hit test can read.
|
|
15
|
+
*
|
|
16
|
+
* It is the board's TOP MARGIN, and it always was — the deep inset the plot
|
|
17
|
+
* gives up so the title has somewhere to be written. Naming it says out loud
|
|
18
|
+
* what was already true, so the strip that is painted, the strip that is picked
|
|
19
|
+
* and the strip that opens the rename are one number rather than three.
|
|
20
|
+
*
|
|
21
|
+
* 56 is what the title has been written in since the pack shipped: a 20-unit
|
|
22
|
+
* title, sitting on a baseline a third of the band up from its foot, with the
|
|
23
|
+
* rest as breathing room above and below. Changing it moves the title, so it is
|
|
24
|
+
* a visual decision and not a hit-test one.
|
|
25
|
+
*/
|
|
26
|
+
export declare const C4_BOARD_TITLE_BAND_HEIGHT = 56;
|
|
4
27
|
/**
|
|
5
28
|
* Which of C4's levels this board draws — the DECLARED fact, as opposed to the
|
|
6
29
|
* title, which is free text and says whatever its author wants it to.
|
|
@@ -85,4 +108,30 @@ export declare class C4BoardElementModel extends FrameworkBackgroundElementModel
|
|
|
85
108
|
* on a board that declares none — no fact, no rule (PRD principle 8).
|
|
86
109
|
*/
|
|
87
110
|
accessor level: C4BoardLevel | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* A board is picked by its BORDER — and by its TITLE BAND, the one carve-out
|
|
113
|
+
* this frame keeps (issues #194 / #197).
|
|
114
|
+
*
|
|
115
|
+
* The same carve-out a BPMN pool makes, for the same reason and by the same
|
|
116
|
+
* arithmetic: the band is the only part of the sheet that is the SHEET rather
|
|
117
|
+
* than the diagram drawn on it. The title is written there, nothing is ever
|
|
118
|
+
* dropped there by convention, and the plot below is where the work goes — so
|
|
119
|
+
* a click there belongs to whatever node is under the pointer.
|
|
120
|
+
*
|
|
121
|
+
* Without this the title became unreachable the day backgrounds stopped being
|
|
122
|
+
* picked by their area: the only thing left answering was the view's
|
|
123
|
+
* double-click zone, which is the tight box of the DRAWN glyphs, and a single
|
|
124
|
+
* click on the title selected nothing at all.
|
|
125
|
+
*
|
|
126
|
+
* ## Where the geometry comes from
|
|
127
|
+
*
|
|
128
|
+
* The band is the top margin, full width — one number
|
|
129
|
+
* ({@link C4_BOARD_TITLE_BAND_HEIGHT}), read from here by the framework
|
|
130
|
+
* declaration, so what is painted is what is selectable. There is no
|
|
131
|
+
* zoom-grown target here as there is on a pool: the pool grows its 28-unit
|
|
132
|
+
* strip to stay reachable when zoomed out, which would put the rename zone
|
|
133
|
+
* outside the selectable one. A 56-unit header does not need it, and the
|
|
134
|
+
* promise "what is painted is what is picked" is worth more than the pixels.
|
|
135
|
+
*/
|
|
136
|
+
includesPoint(x: number, y: number, options?: PointTestOptions): boolean;
|
|
88
137
|
}
|
|
@@ -32,8 +32,31 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
32
32
|
}
|
|
33
33
|
return useValue ? value : void 0;
|
|
34
34
|
};
|
|
35
|
+
import { rotatePoint } from '../../../global/gfx/index.js';
|
|
35
36
|
import { field } from '../../../std/gfx/index.js';
|
|
36
37
|
import { FrameworkBackgroundElementModel } from '../framework-background/index.js';
|
|
38
|
+
/**
|
|
39
|
+
* Height of the board's title band — the header strip across the top of the
|
|
40
|
+
* sheet the diagram title is written in, in model units.
|
|
41
|
+
*
|
|
42
|
+
* Declared HERE, in the model, and re-exported by `@labre/affine-gfx-c4` rather
|
|
43
|
+
* than the other way round, for the reason `POOL_BAND_WIDTH` is: the
|
|
44
|
+
* board's own hit test needs it (a board is clickable by its title band as well
|
|
45
|
+
* as its border), and `affine-model` cannot reach into `affine-block-surface`
|
|
46
|
+
* where the declaration is resolved. One number, owned by the layer that both
|
|
47
|
+
* the declaration and the hit test can read.
|
|
48
|
+
*
|
|
49
|
+
* It is the board's TOP MARGIN, and it always was — the deep inset the plot
|
|
50
|
+
* gives up so the title has somewhere to be written. Naming it says out loud
|
|
51
|
+
* what was already true, so the strip that is painted, the strip that is picked
|
|
52
|
+
* and the strip that opens the rename are one number rather than three.
|
|
53
|
+
*
|
|
54
|
+
* 56 is what the title has been written in since the pack shipped: a 20-unit
|
|
55
|
+
* title, sitting on a baseline a third of the band up from its foot, with the
|
|
56
|
+
* rest as breathing room above and below. Changing it moves the title, so it is
|
|
57
|
+
* a visual decision and not a hit-test one.
|
|
58
|
+
*/
|
|
59
|
+
export const C4_BOARD_TITLE_BAND_HEIGHT = 56;
|
|
37
60
|
/**
|
|
38
61
|
* The C4 board: the sheet one diagram of the model is drawn on — a context
|
|
39
62
|
* diagram, a container diagram, a component diagram. A framework background like
|
|
@@ -119,6 +142,51 @@ let C4BoardElementModel = (() => {
|
|
|
119
142
|
*/
|
|
120
143
|
get level() { return this.#level_accessor_storage; }
|
|
121
144
|
set level(value) { this.#level_accessor_storage = value; }
|
|
145
|
+
/**
|
|
146
|
+
* A board is picked by its BORDER — and by its TITLE BAND, the one carve-out
|
|
147
|
+
* this frame keeps (issues #194 / #197).
|
|
148
|
+
*
|
|
149
|
+
* The same carve-out a BPMN pool makes, for the same reason and by the same
|
|
150
|
+
* arithmetic: the band is the only part of the sheet that is the SHEET rather
|
|
151
|
+
* than the diagram drawn on it. The title is written there, nothing is ever
|
|
152
|
+
* dropped there by convention, and the plot below is where the work goes — so
|
|
153
|
+
* a click there belongs to whatever node is under the pointer.
|
|
154
|
+
*
|
|
155
|
+
* Without this the title became unreachable the day backgrounds stopped being
|
|
156
|
+
* picked by their area: the only thing left answering was the view's
|
|
157
|
+
* double-click zone, which is the tight box of the DRAWN glyphs, and a single
|
|
158
|
+
* click on the title selected nothing at all.
|
|
159
|
+
*
|
|
160
|
+
* ## Where the geometry comes from
|
|
161
|
+
*
|
|
162
|
+
* The band is the top margin, full width — one number
|
|
163
|
+
* ({@link C4_BOARD_TITLE_BAND_HEIGHT}), read from here by the framework
|
|
164
|
+
* declaration, so what is painted is what is selectable. There is no
|
|
165
|
+
* zoom-grown target here as there is on a pool: the pool grows its 28-unit
|
|
166
|
+
* strip to stay reachable when zoomed out, which would put the rename zone
|
|
167
|
+
* outside the selectable one. A 56-unit header does not need it, and the
|
|
168
|
+
* promise "what is painted is what is picked" is worth more than the pixels.
|
|
169
|
+
*/
|
|
170
|
+
includesPoint(x, y, options) {
|
|
171
|
+
if (super.includesPoint(x, y, options))
|
|
172
|
+
return true;
|
|
173
|
+
const [ex, ey, w, h] = this.deserializedXYWH;
|
|
174
|
+
// Element-local coordinates, undoing the element rotation about its centre
|
|
175
|
+
// — the band is axis-aligned inside the board, not on the canvas.
|
|
176
|
+
let lx = x - ex;
|
|
177
|
+
let ly = y - ey;
|
|
178
|
+
const rotate = this.rotate ?? 0;
|
|
179
|
+
if (rotate) {
|
|
180
|
+
const [ux, uy] = rotatePoint([x, y], [ex + w / 2, ey + h / 2], -rotate);
|
|
181
|
+
lx = ux - ex;
|
|
182
|
+
ly = uy - ey;
|
|
183
|
+
}
|
|
184
|
+
if (lx < 0 || lx > w || ly < 0)
|
|
185
|
+
return false;
|
|
186
|
+
// Clamped to a board shorter than its own header — the degenerate case the
|
|
187
|
+
// renderer clamps too.
|
|
188
|
+
return ly <= Math.min(C4_BOARD_TITLE_BAND_HEIGHT, h);
|
|
189
|
+
}
|
|
122
190
|
constructor() {
|
|
123
191
|
super(...arguments);
|
|
124
192
|
__runInitializers(this, _level_extraInitializers);
|
|
@@ -88,7 +88,7 @@ let EdgelessSlideMenu = (() => {
|
|
|
88
88
|
}
|
|
89
89
|
.menu-container {
|
|
90
90
|
background: var(--affine-background-overlay-panel-color);
|
|
91
|
-
border-radius:
|
|
91
|
+
border-radius: 16px 16px 0 0;
|
|
92
92
|
border: 1px solid var(--affine-border-color);
|
|
93
93
|
border-bottom: none;
|
|
94
94
|
display: flex;
|
|
@@ -19,105 +19,105 @@ export function HeadingIcon(i) {
|
|
|
19
19
|
return Heading1Icon();
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
export const HighLightDuotoneIcon = (color) => html `<svg
|
|
23
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
-
width="24"
|
|
25
|
-
height="24"
|
|
26
|
-
viewBox="0 0 24 24"
|
|
27
|
-
fill="none"
|
|
28
|
-
>
|
|
29
|
-
<path
|
|
30
|
-
d="M5.8291 16.441L7.91757 18.5295L6.57811 19.8689C6.53119 19.9158 6.46406 19.9364 6.3989 19.9239L3.37036 19.3412C3.21285 19.3109 3.15331 19.1168 3.26673 19.0034L5.8291 16.441Z"
|
|
31
|
-
fill="${color}"
|
|
32
|
-
/>
|
|
33
|
-
<path
|
|
34
|
-
fill-rule="evenodd"
|
|
35
|
-
clip-rule="evenodd"
|
|
36
|
-
d="M19.0095 3.63759C17.9526 2.58067 16.26 2.516 15.1255 3.48919L7.32135 10.1837C6.35438 11.0132 6.05275 12.3823 6.58163 13.5414L6.73501 13.8775L5.67697 14.9356C5.30169 15.3108 5.30169 15.9193 5.67697 16.2946L8.06379 18.6814C8.43907 19.0567 9.04752 19.0567 9.4228 18.6814L10.4808 17.6234L10.8171 17.7768C11.9761 18.3057 13.3452 18.0041 14.1747 17.0371L20.8692 9.23294C21.8424 8.09846 21.7778 6.40588 20.7208 5.34896L19.0095 3.63759ZM16.1021 4.62769C16.6415 4.16498 17.4463 4.19572 17.9488 4.69825L19.6602 6.40962C20.1627 6.91215 20.1935 7.7169 19.7307 8.25631L14.6424 14.188L10.1704 9.71604L16.1021 4.62769ZM9.02857 10.6955L8.29798 11.3222C7.83822 11.7166 7.6948 12.3676 7.94627 12.9187L8.29785 13.6892C8.4348 13.9893 8.37947 14.3544 8.13372 14.6001L7.11878 15.6151L8.74329 17.2396L9.75812 16.2247C10.004 15.9789 10.3691 15.9236 10.6693 16.0606L11.4398 16.4122C11.9908 16.6636 12.6418 16.5202 13.0362 16.0605L13.6629 15.3299L9.02857 10.6955Z"
|
|
37
|
-
fill="${cssVarV2('icon/primary')}"
|
|
38
|
-
/>
|
|
22
|
+
export const HighLightDuotoneIcon = (color) => html `<svg
|
|
23
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
+
width="24"
|
|
25
|
+
height="24"
|
|
26
|
+
viewBox="0 0 24 24"
|
|
27
|
+
fill="none"
|
|
28
|
+
>
|
|
29
|
+
<path
|
|
30
|
+
d="M5.8291 16.441L7.91757 18.5295L6.57811 19.8689C6.53119 19.9158 6.46406 19.9364 6.3989 19.9239L3.37036 19.3412C3.21285 19.3109 3.15331 19.1168 3.26673 19.0034L5.8291 16.441Z"
|
|
31
|
+
fill="${color}"
|
|
32
|
+
/>
|
|
33
|
+
<path
|
|
34
|
+
fill-rule="evenodd"
|
|
35
|
+
clip-rule="evenodd"
|
|
36
|
+
d="M19.0095 3.63759C17.9526 2.58067 16.26 2.516 15.1255 3.48919L7.32135 10.1837C6.35438 11.0132 6.05275 12.3823 6.58163 13.5414L6.73501 13.8775L5.67697 14.9356C5.30169 15.3108 5.30169 15.9193 5.67697 16.2946L8.06379 18.6814C8.43907 19.0567 9.04752 19.0567 9.4228 18.6814L10.4808 17.6234L10.8171 17.7768C11.9761 18.3057 13.3452 18.0041 14.1747 17.0371L20.8692 9.23294C21.8424 8.09846 21.7778 6.40588 20.7208 5.34896L19.0095 3.63759ZM16.1021 4.62769C16.6415 4.16498 17.4463 4.19572 17.9488 4.69825L19.6602 6.40962C20.1627 6.91215 20.1935 7.7169 19.7307 8.25631L14.6424 14.188L10.1704 9.71604L16.1021 4.62769ZM9.02857 10.6955L8.29798 11.3222C7.83822 11.7166 7.6948 12.3676 7.94627 12.9187L8.29785 13.6892C8.4348 13.9893 8.37947 14.3544 8.13372 14.6001L7.11878 15.6151L8.74329 17.2396L9.75812 16.2247C10.004 15.9789 10.3691 15.9236 10.6693 16.0606L11.4398 16.4122C11.9908 16.6636 12.6418 16.5202 13.0362 16.0605L13.6629 15.3299L9.02857 10.6955Z"
|
|
37
|
+
fill="${cssVarV2('icon/primary')}"
|
|
38
|
+
/>
|
|
39
39
|
</svg>`;
|
|
40
|
-
export const TextColorIcon = (color) => html `<svg
|
|
41
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
-
width="32"
|
|
43
|
-
height="32"
|
|
44
|
-
viewBox="0 0 32 32"
|
|
45
|
-
fill="none"
|
|
46
|
-
>
|
|
47
|
-
<path
|
|
48
|
-
fill-rule="evenodd"
|
|
49
|
-
clip-rule="evenodd"
|
|
50
|
-
d="M14.0627 6.16255C14.385 5.30291 15.2068 4.7334 16.1249 4.7334C17.043 4.7334 17.8648 5.30291 18.1872 6.16255L23.7279 20.9378C23.9219 21.455 23.6599 22.0314 23.1427 22.2253C22.6256 22.4192 22.0492 22.1572 21.8553 21.6401L20.2289 17.3031H12.021L10.3946 21.6401C10.2007 22.1572 9.62428 22.4192 9.10716 22.2253C8.59004 22.0314 8.32803 21.455 8.52195 20.9378L14.0627 6.16255ZM12.771 15.3031H19.4789L16.3146 6.8648C16.2849 6.78576 16.2094 6.7334 16.1249 6.7334C16.0405 6.7334 15.965 6.78576 15.9353 6.8648L12.771 15.3031Z"
|
|
51
|
-
fill="${cssVarV2('icon/primary')}"
|
|
52
|
-
/>
|
|
53
|
-
<rect
|
|
54
|
-
x="5.45837"
|
|
55
|
-
y="24"
|
|
56
|
-
width="21.3333"
|
|
57
|
-
height="3.33333"
|
|
58
|
-
rx="1"
|
|
59
|
-
fill=${color}
|
|
60
|
-
/>
|
|
40
|
+
export const TextColorIcon = (color) => html `<svg
|
|
41
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
+
width="32"
|
|
43
|
+
height="32"
|
|
44
|
+
viewBox="0 0 32 32"
|
|
45
|
+
fill="none"
|
|
46
|
+
>
|
|
47
|
+
<path
|
|
48
|
+
fill-rule="evenodd"
|
|
49
|
+
clip-rule="evenodd"
|
|
50
|
+
d="M14.0627 6.16255C14.385 5.30291 15.2068 4.7334 16.1249 4.7334C17.043 4.7334 17.8648 5.30291 18.1872 6.16255L23.7279 20.9378C23.9219 21.455 23.6599 22.0314 23.1427 22.2253C22.6256 22.4192 22.0492 22.1572 21.8553 21.6401L20.2289 17.3031H12.021L10.3946 21.6401C10.2007 22.1572 9.62428 22.4192 9.10716 22.2253C8.59004 22.0314 8.32803 21.455 8.52195 20.9378L14.0627 6.16255ZM12.771 15.3031H19.4789L16.3146 6.8648C16.2849 6.78576 16.2094 6.7334 16.1249 6.7334C16.0405 6.7334 15.965 6.78576 15.9353 6.8648L12.771 15.3031Z"
|
|
51
|
+
fill="${cssVarV2('icon/primary')}"
|
|
52
|
+
/>
|
|
53
|
+
<rect
|
|
54
|
+
x="5.45837"
|
|
55
|
+
y="24"
|
|
56
|
+
width="21.3333"
|
|
57
|
+
height="3.33333"
|
|
58
|
+
rx="1"
|
|
59
|
+
fill=${color}
|
|
60
|
+
/>
|
|
61
61
|
</svg>`;
|
|
62
|
-
export const TextBackgroundDuotoneIcon = (color) => html `<svg
|
|
63
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
64
|
-
width="32"
|
|
65
|
-
height="32"
|
|
66
|
-
viewBox="0 0 32 32"
|
|
67
|
-
fill="none"
|
|
68
|
-
>
|
|
69
|
-
<path
|
|
70
|
-
fill-rule="evenodd"
|
|
71
|
-
clip-rule="evenodd"
|
|
72
|
-
d="M4.57507 7.33336C4.57507 5.60287 5.97791 4.20003 7.70841 4.20003H25.0417C26.7722 4.20003 28.1751 5.60287 28.1751 7.33336V24.6667C28.1751 26.3972 26.7722 27.8 25.0417 27.8H7.70841C5.97791 27.8 4.57507 26.3972 4.57507 24.6667V7.33336Z"
|
|
73
|
-
fill="${color}"
|
|
74
|
-
/>
|
|
75
|
-
<path
|
|
76
|
-
fill-rule="evenodd"
|
|
77
|
-
clip-rule="evenodd"
|
|
78
|
-
d="M4.57495 7.33333C4.57495 5.60284 5.97779 4.2 7.70828 4.2H25.0416C26.7721 4.2 28.175 5.60284 28.175 7.33333V24.6667C28.175 26.3972 26.7721 27.8 25.0416 27.8H7.70828C5.97779 27.8 4.57495 26.3972 4.57495 24.6667V7.33333ZM7.70828 5.13333C6.49326 5.13333 5.50828 6.1183 5.50828 7.33333V24.6667C5.50828 25.8817 6.49326 26.8667 7.70828 26.8667H25.0416C26.2566 26.8667 27.2416 25.8817 27.2416 24.6667V7.33333C27.2416 6.1183 26.2566 5.13333 25.0416 5.13333H7.70828Z"
|
|
79
|
-
fill="black"
|
|
80
|
-
fill-opacity="0.22"
|
|
81
|
-
/>
|
|
82
|
-
<path
|
|
83
|
-
fill-rule="evenodd"
|
|
84
|
-
clip-rule="evenodd"
|
|
85
|
-
d="M14.5379 10.0064C14.8251 9.24064 15.5571 8.73332 16.375 8.73332C17.1928 8.73332 17.9249 9.24064 18.2121 10.0064L22.6446 21.8266C22.8386 22.3438 22.5766 22.9202 22.0594 23.1141C21.5423 23.308 20.9659 23.046 20.772 22.5289L19.5196 19.1891H13.2304L11.978 22.5289C11.7841 23.046 11.2076 23.308 10.6905 23.1141C10.1734 22.9202 9.9114 22.3438 10.1053 21.8266L14.5379 10.0064ZM13.9804 17.1891H18.7696L16.375 10.8035L13.9804 17.1891Z"
|
|
86
|
-
fill="${cssVarV2('text/primary')}"
|
|
87
|
-
/>
|
|
62
|
+
export const TextBackgroundDuotoneIcon = (color) => html `<svg
|
|
63
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
64
|
+
width="32"
|
|
65
|
+
height="32"
|
|
66
|
+
viewBox="0 0 32 32"
|
|
67
|
+
fill="none"
|
|
68
|
+
>
|
|
69
|
+
<path
|
|
70
|
+
fill-rule="evenodd"
|
|
71
|
+
clip-rule="evenodd"
|
|
72
|
+
d="M4.57507 7.33336C4.57507 5.60287 5.97791 4.20003 7.70841 4.20003H25.0417C26.7722 4.20003 28.1751 5.60287 28.1751 7.33336V24.6667C28.1751 26.3972 26.7722 27.8 25.0417 27.8H7.70841C5.97791 27.8 4.57507 26.3972 4.57507 24.6667V7.33336Z"
|
|
73
|
+
fill="${color}"
|
|
74
|
+
/>
|
|
75
|
+
<path
|
|
76
|
+
fill-rule="evenodd"
|
|
77
|
+
clip-rule="evenodd"
|
|
78
|
+
d="M4.57495 7.33333C4.57495 5.60284 5.97779 4.2 7.70828 4.2H25.0416C26.7721 4.2 28.175 5.60284 28.175 7.33333V24.6667C28.175 26.3972 26.7721 27.8 25.0416 27.8H7.70828C5.97779 27.8 4.57495 26.3972 4.57495 24.6667V7.33333ZM7.70828 5.13333C6.49326 5.13333 5.50828 6.1183 5.50828 7.33333V24.6667C5.50828 25.8817 6.49326 26.8667 7.70828 26.8667H25.0416C26.2566 26.8667 27.2416 25.8817 27.2416 24.6667V7.33333C27.2416 6.1183 26.2566 5.13333 25.0416 5.13333H7.70828Z"
|
|
79
|
+
fill="black"
|
|
80
|
+
fill-opacity="0.22"
|
|
81
|
+
/>
|
|
82
|
+
<path
|
|
83
|
+
fill-rule="evenodd"
|
|
84
|
+
clip-rule="evenodd"
|
|
85
|
+
d="M14.5379 10.0064C14.8251 9.24064 15.5571 8.73332 16.375 8.73332C17.1928 8.73332 17.9249 9.24064 18.2121 10.0064L22.6446 21.8266C22.8386 22.3438 22.5766 22.9202 22.0594 23.1141C21.5423 23.308 20.9659 23.046 20.772 22.5289L19.5196 19.1891H13.2304L11.978 22.5289C11.7841 23.046 11.2076 23.308 10.6905 23.1141C10.1734 22.9202 9.9114 22.3438 10.1053 21.8266L14.5379 10.0064ZM13.9804 17.1891H18.7696L16.375 10.8035L13.9804 17.1891Z"
|
|
86
|
+
fill="${cssVarV2('text/primary')}"
|
|
87
|
+
/>
|
|
88
88
|
</svg>`;
|
|
89
|
-
export const FigmaDuotoneIcon = html `<svg
|
|
90
|
-
width="32"
|
|
91
|
-
height="32"
|
|
92
|
-
viewBox="0 0 24 24"
|
|
93
|
-
fill="none"
|
|
94
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
95
|
-
>
|
|
96
|
-
<g id="Figma_Duotone">
|
|
97
|
-
<path
|
|
98
|
-
id="Vector"
|
|
99
|
-
d="M8.41842 22.5027C10.3047 22.5027 11.8356 20.9719 11.8356 19.0856V15.6685H8.41842C6.53216 15.6685 5.00128 17.1993 5.00128 19.0856C5.00128 20.9719 6.53216 22.5027 8.41842 22.5027Z"
|
|
100
|
-
fill="#0ACF83"
|
|
101
|
-
/>
|
|
102
|
-
<path
|
|
103
|
-
id="Vector_2"
|
|
104
|
-
d="M5.00128 12.2514C5.00128 10.3651 6.53216 8.83423 8.41842 8.83423H11.8356V15.6685H8.41842C6.53216 15.6685 5.00128 14.1376 5.00128 12.2514Z"
|
|
105
|
-
fill="#A259FF"
|
|
106
|
-
/>
|
|
107
|
-
<path
|
|
108
|
-
id="Vector_3"
|
|
109
|
-
d="M5.00146 5.41714C5.00146 3.53088 6.53234 2 8.4186 2H11.8357V8.83428H8.4186C6.53234 8.83428 5.00146 7.3034 5.00146 5.41714Z"
|
|
110
|
-
fill="#F24E1E"
|
|
111
|
-
/>
|
|
112
|
-
<path
|
|
113
|
-
id="Vector_4"
|
|
114
|
-
d="M11.8356 2H15.2527C17.139 2 18.6699 3.53088 18.6699 5.41714C18.6699 7.3034 17.139 8.83428 15.2527 8.83428H11.8356V2Z"
|
|
115
|
-
fill="#FF7262"
|
|
116
|
-
/>
|
|
117
|
-
<path
|
|
118
|
-
id="Vector_5"
|
|
119
|
-
d="M18.6699 12.2514C18.6699 14.1376 17.139 15.6685 15.2527 15.6685C13.3665 15.6685 11.8356 14.1376 11.8356 12.2514C11.8356 10.3651 13.3665 8.83423 15.2527 8.83423C17.139 8.83423 18.6699 10.3651 18.6699 12.2514Z"
|
|
120
|
-
fill="#1ABCFE"
|
|
121
|
-
/>
|
|
122
|
-
</g>
|
|
89
|
+
export const FigmaDuotoneIcon = html `<svg
|
|
90
|
+
width="32"
|
|
91
|
+
height="32"
|
|
92
|
+
viewBox="0 0 24 24"
|
|
93
|
+
fill="none"
|
|
94
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
95
|
+
>
|
|
96
|
+
<g id="Figma_Duotone">
|
|
97
|
+
<path
|
|
98
|
+
id="Vector"
|
|
99
|
+
d="M8.41842 22.5027C10.3047 22.5027 11.8356 20.9719 11.8356 19.0856V15.6685H8.41842C6.53216 15.6685 5.00128 17.1993 5.00128 19.0856C5.00128 20.9719 6.53216 22.5027 8.41842 22.5027Z"
|
|
100
|
+
fill="#0ACF83"
|
|
101
|
+
/>
|
|
102
|
+
<path
|
|
103
|
+
id="Vector_2"
|
|
104
|
+
d="M5.00128 12.2514C5.00128 10.3651 6.53216 8.83423 8.41842 8.83423H11.8356V15.6685H8.41842C6.53216 15.6685 5.00128 14.1376 5.00128 12.2514Z"
|
|
105
|
+
fill="#A259FF"
|
|
106
|
+
/>
|
|
107
|
+
<path
|
|
108
|
+
id="Vector_3"
|
|
109
|
+
d="M5.00146 5.41714C5.00146 3.53088 6.53234 2 8.4186 2H11.8357V8.83428H8.4186C6.53234 8.83428 5.00146 7.3034 5.00146 5.41714Z"
|
|
110
|
+
fill="#F24E1E"
|
|
111
|
+
/>
|
|
112
|
+
<path
|
|
113
|
+
id="Vector_4"
|
|
114
|
+
d="M11.8356 2H15.2527C17.139 2 18.6699 3.53088 18.6699 5.41714C18.6699 7.3034 17.139 8.83428 15.2527 8.83428H11.8356V2Z"
|
|
115
|
+
fill="#FF7262"
|
|
116
|
+
/>
|
|
117
|
+
<path
|
|
118
|
+
id="Vector_5"
|
|
119
|
+
d="M18.6699 12.2514C18.6699 14.1376 17.139 15.6685 15.2527 15.6685C13.3665 15.6685 11.8356 14.1376 11.8356 12.2514C11.8356 10.3651 13.3665 8.83423 15.2527 8.83423C17.139 8.83423 18.6699 10.3651 18.6699 12.2514Z"
|
|
120
|
+
fill="#1ABCFE"
|
|
121
|
+
/>
|
|
122
|
+
</g>
|
|
123
123
|
</svg> `;
|
|
@@ -2,21 +2,21 @@ import { CheckBoxCheckSolidIcon, CheckBoxUnIcon } from '@blocksuite/icons/lit';
|
|
|
2
2
|
import { css, html } from 'lit';
|
|
3
3
|
import { BaseGroup } from './base.js';
|
|
4
4
|
export class BooleanGroupView extends BaseGroup {
|
|
5
|
-
static { this.styles = css `
|
|
6
|
-
.data-view-group-title-boolean-view {
|
|
7
|
-
display: flex;
|
|
8
|
-
align-items: center;
|
|
9
|
-
}
|
|
10
|
-
.data-view-group-title-boolean-view svg {
|
|
11
|
-
width: 20px;
|
|
12
|
-
height: 20px;
|
|
13
|
-
}
|
|
5
|
+
static { this.styles = css `
|
|
6
|
+
.data-view-group-title-boolean-view {
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
}
|
|
10
|
+
.data-view-group-title-boolean-view svg {
|
|
11
|
+
width: 20px;
|
|
12
|
+
height: 20px;
|
|
13
|
+
}
|
|
14
14
|
`; }
|
|
15
15
|
render() {
|
|
16
|
-
return html ` <div class="data-view-group-title-boolean-view">
|
|
16
|
+
return html ` <div class="data-view-group-title-boolean-view">
|
|
17
17
|
${this.value
|
|
18
18
|
? CheckBoxCheckSolidIcon({ style: `color:#1E96EB` })
|
|
19
|
-
: CheckBoxUnIcon()}
|
|
19
|
+
: CheckBoxUnIcon()}
|
|
20
20
|
</div>`;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { ArrowLeftBigIcon } from '@blocksuite/icons/lit';
|
|
2
2
|
import { html } from 'lit';
|
|
3
3
|
export const menuTitle = (name, onBack) => {
|
|
4
|
-
return html `
|
|
5
|
-
<div
|
|
6
|
-
style="display:flex;align-items:center;gap: 4px;padding: 3px 3px 3px 2px"
|
|
7
|
-
>
|
|
8
|
-
<div
|
|
9
|
-
@click=${onBack}
|
|
10
|
-
class="dv-icon-20 dv-hover dv-pd-2 dv-round-4"
|
|
11
|
-
style="display:flex;"
|
|
12
|
-
>
|
|
13
|
-
${ArrowLeftBigIcon()}
|
|
14
|
-
</div>
|
|
15
|
-
<div
|
|
16
|
-
style="font-weight:500;font-size: 14px;line-height: 22px;color: var(--affine-text-primary-color)"
|
|
17
|
-
>
|
|
18
|
-
${name}
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
4
|
+
return html `
|
|
5
|
+
<div
|
|
6
|
+
style="display:flex;align-items:center;gap: 4px;padding: 3px 3px 3px 2px"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
@click=${onBack}
|
|
10
|
+
class="dv-icon-20 dv-hover dv-pd-2 dv-round-4"
|
|
11
|
+
style="display:flex;"
|
|
12
|
+
>
|
|
13
|
+
${ArrowLeftBigIcon()}
|
|
14
|
+
</div>
|
|
15
|
+
<div
|
|
16
|
+
style="font-weight:500;font-size: 14px;line-height: 22px;color: var(--affine-text-primary-color)"
|
|
17
|
+
>
|
|
18
|
+
${name}
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
21
|
`;
|
|
22
22
|
};
|
|
@@ -19,9 +19,9 @@ export const GroupTitle = (groupData, ops) => {
|
|
|
19
19
|
}
|
|
20
20
|
const icon = groupData.value == null
|
|
21
21
|
? ''
|
|
22
|
-
: html ` <uni-lit
|
|
23
|
-
class="${groupHeaderIcon}"
|
|
24
|
-
.uni="${groupData.property.icon}"
|
|
22
|
+
: html ` <uni-lit
|
|
23
|
+
class="${groupHeaderIcon}"
|
|
24
|
+
.uni="${groupData.property.icon}"
|
|
25
25
|
></uni-lit>`;
|
|
26
26
|
const props = {
|
|
27
27
|
group: groupData,
|
|
@@ -29,25 +29,25 @@ export const GroupTitle = (groupData, ops) => {
|
|
|
29
29
|
};
|
|
30
30
|
const showColumnName = groupData.property.type$.value === 'checkbox';
|
|
31
31
|
const columnName = showColumnName
|
|
32
|
-
? html `<span class="${groupHeaderTitle}"
|
|
33
|
-
>${groupData.property.name$.value}</span
|
|
32
|
+
? html `<span class="${groupHeaderTitle}"
|
|
33
|
+
>${groupData.property.name$.value}</span
|
|
34
34
|
>`
|
|
35
35
|
: nothing;
|
|
36
36
|
const opsClass = clsx(ops.groupHover && show, groupHeaderOps);
|
|
37
|
-
return html `
|
|
38
|
-
<div class="${groupTitleRow}">
|
|
39
|
-
${icon} ${renderUniLit(view, props)} ${columnName}
|
|
40
|
-
${GroupHeaderCount(groupData)}
|
|
41
|
-
</div>
|
|
37
|
+
return html `
|
|
38
|
+
<div class="${groupTitleRow}">
|
|
39
|
+
${icon} ${renderUniLit(view, props)} ${columnName}
|
|
40
|
+
${GroupHeaderCount(groupData)}
|
|
41
|
+
</div>
|
|
42
42
|
${!ops.readonly
|
|
43
|
-
? html ` <div class="${opsClass}">
|
|
44
|
-
<div @click="${ops.clickAdd}" class="${groupHeaderOp}">
|
|
45
|
-
${PlusIcon()}
|
|
46
|
-
</div>
|
|
47
|
-
<div @click="${ops.clickOps}" class="${groupHeaderOp}">
|
|
48
|
-
${MoreHorizontalIcon()}
|
|
49
|
-
</div>
|
|
43
|
+
? html ` <div class="${opsClass}">
|
|
44
|
+
<div @click="${ops.clickAdd}" class="${groupHeaderOp}">
|
|
45
|
+
${PlusIcon()}
|
|
46
|
+
</div>
|
|
47
|
+
<div @click="${ops.clickOps}" class="${groupHeaderOp}">
|
|
48
|
+
${MoreHorizontalIcon()}
|
|
49
|
+
</div>
|
|
50
50
|
</div>`
|
|
51
|
-
: nothing}
|
|
51
|
+
: nothing}
|
|
52
52
|
`;
|
|
53
53
|
};
|
|
@@ -17,7 +17,7 @@ export { type GfxModel, isPrimitiveModel } from './model/model.js';
|
|
|
17
17
|
export { convert, convertProps, derive, field, getDerivedProps, getFieldPropsSet, getLocalPropsSet, initializeObservers, initializeWatchers, local, observe, updateDerivedProps, watch, } from './model/surface/decorators/index.js';
|
|
18
18
|
export { type BaseElementProps, type ForeignInterchange, type InterchangeScope, GfxGroupLikeElementModel, GfxPrimitiveElementModel, type SerializedElement, type ValidationException, } from './model/surface/element-model.js';
|
|
19
19
|
export { GfxLocalElementModel, prop, } from './model/surface/local-element-model.js';
|
|
20
|
-
export { collectPivotOccurrences, isPivotBound, type PivotBoundElement, type PivotOccurrence, } from './model/surface/pivot.js';
|
|
20
|
+
export { collectPivotOccurrences, isPivotBound, type PivotBoundElement, type PivotOccurrence, resolvePivotBinding, } from './model/surface/pivot.js';
|
|
21
21
|
export { type EdgeDirectionDef, findRoleDef, isTypedEdgeRole, type RoleDef, type RoleDefs, type RoleId, roleIsA, type RoleKind, RoleVocabularyExtension, RoleVocabularyIdentifier, } from './model/surface/role.js';
|
|
22
22
|
export { ELEMENT_TAGS_FIELD, type ElementTags, elementTagValues, hasElementTagValue, readElementTags, setElementTag, tagsPropToY, } from './model/surface/tags.js';
|
|
23
23
|
export { SURFACE_TEXT_UNIQ_IDENTIFIER, SURFACE_YMAP_UNIQ_IDENTIFIER, SurfaceBlockModel, type SurfaceBlockProps, type SurfaceMiddleware, } from './model/surface/surface-model.js';
|
|
@@ -14,7 +14,7 @@ export { isPrimitiveModel } from './model/model.js';
|
|
|
14
14
|
export { convert, convertProps, derive, field, getDerivedProps, getFieldPropsSet, getLocalPropsSet, initializeObservers, initializeWatchers, local, observe, updateDerivedProps, watch, } from './model/surface/decorators/index.js';
|
|
15
15
|
export { GfxGroupLikeElementModel, GfxPrimitiveElementModel, } from './model/surface/element-model.js';
|
|
16
16
|
export { GfxLocalElementModel, prop, } from './model/surface/local-element-model.js';
|
|
17
|
-
export { collectPivotOccurrences, isPivotBound, } from './model/surface/pivot.js';
|
|
17
|
+
export { collectPivotOccurrences, isPivotBound, resolvePivotBinding, } from './model/surface/pivot.js';
|
|
18
18
|
export { findRoleDef, isTypedEdgeRole, roleIsA, RoleVocabularyExtension, RoleVocabularyIdentifier, } from './model/surface/role.js';
|
|
19
19
|
export { ELEMENT_TAGS_FIELD, elementTagValues, hasElementTagValue, readElementTags, setElementTag, tagsPropToY, } from './model/surface/tags.js';
|
|
20
20
|
export { SURFACE_TEXT_UNIQ_IDENTIFIER, SURFACE_YMAP_UNIQ_IDENTIFIER, SurfaceBlockModel, } from './model/surface/surface-model.js';
|