@ingcreators/annot-core 0.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/CHANGELOG.md +7 -0
- package/LICENSE +201 -0
- package/README.md +56 -0
- package/dist/auto-capture-options.d.ts +78 -0
- package/dist/editor/arrow-markers.d.ts +142 -0
- package/dist/editor/bake-translate.d.ts +192 -0
- package/dist/editor/font-registry.d.ts +58 -0
- package/dist/editor/gradient-utils.d.ts +23 -0
- package/dist/editor/history-core.d.ts +48 -0
- package/dist/editor/icons/brand-icons.d.ts +53 -0
- package/dist/editor/icons/material-symbols.d.ts +105 -0
- package/dist/editor/icons/registry.d.ts +179 -0
- package/dist/editor/icons/render.d.ts +22 -0
- package/dist/editor/icons/sanitize.d.ts +60 -0
- package/dist/editor/index.d.ts +13 -0
- package/dist/editor/path-utils.d.ts +32 -0
- package/dist/editor/property-schema.d.ts +263 -0
- package/dist/editor/rich-text-mapper.d.ts +8 -0
- package/dist/editor/selection-geometry.d.ts +66 -0
- package/dist/editor/shape-utils.d.ts +27 -0
- package/dist/editor/svg-format.d.ts +68 -0
- package/dist/editor/svg-id-utils.d.ts +37 -0
- package/dist/editor/svg-to-annotation-shapes.d.ts +34 -0
- package/dist/editor/text-utils.d.ts +212 -0
- package/dist/editor/tool-lifecycle.d.ts +56 -0
- package/dist/editor/tool-options.d.ts +126 -0
- package/dist/editor/tool-panel-adapter.d.ts +105 -0
- package/dist/editor/tool-preset-serde.d.ts +43 -0
- package/dist/editor/tool-registry.d.ts +320 -0
- package/dist/editor/tool-style-reader.d.ts +36 -0
- package/dist/editor/tool-style-writer.d.ts +33 -0
- package/dist/editor/toolbar-icons.d.ts +84 -0
- package/dist/editor/transform-utils.d.ts +127 -0
- package/dist/editor/viewport-math.d.ts +69 -0
- package/dist/encode/index.d.ts +4 -0
- package/dist/encode/options.d.ts +79 -0
- package/dist/encode/png8.d.ts +10 -0
- package/dist/headless.d.ts +29 -0
- package/dist/icons/index.d.ts +15 -0
- package/dist/icons/types.d.ts +108 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3164 -0
- package/dist/storage/errors.d.ts +59 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/metadata-cache.d.ts +231 -0
- package/dist/storage/path.d.ts +49 -0
- package/dist/storage/thumbnail-cache.d.ts +110 -0
- package/dist/storage/thumbnail.d.ts +31 -0
- package/dist/storage/types.d.ts +677 -0
- package/dist/utils/assert.d.ts +31 -0
- package/dist/utils/constants.d.ts +10 -0
- package/dist/utils/dash-utils.d.ts +6 -0
- package/dist/utils/desktop-bridge.d.ts +349 -0
- package/dist/utils/filename.d.ts +48 -0
- package/dist/utils/id.d.ts +21 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/types.d.ts +20 -0
- package/dist/xmp/xmp-browser.d.ts +39 -0
- package/dist/zip/zip-builder.d.ts +8 -0
- package/dist/zip/zip-bytes.d.ts +22 -0
- package/package.json +58 -0
- package/styles/editor.css +1912 -0
- package/styles/fonts.css +46 -0
- package/styles/property-panel.css +779 -0
- package/styles/toolbar.css +673 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Move-bake helpers — phase 2 of `docs/plans/move-bakes-coordinates.md`.
|
|
3
|
+
*
|
|
4
|
+
* Public entry point: `bakeTranslate(el, dx, dy)`. Dispatches by
|
|
5
|
+
* `tagName` + `data-type` / `data-shape-kind` to a per-shape baker
|
|
6
|
+
* that translates the element's children's geometry attrs (or the
|
|
7
|
+
* `<path>` `d` for path shapes) by (dx, dy) in world space — so
|
|
8
|
+
* `getBBox()` after the bake returns the post-move bounds without
|
|
9
|
+
* any `transform="translate(...)"` on the wrapper.
|
|
10
|
+
*
|
|
11
|
+
* Tier B — pure Element manipulation, jsdom-friendly. No live-
|
|
12
|
+
* browser dependencies (no canvas, no MutationObserver, no
|
|
13
|
+
* pointer events). Lives next to `transform-utils.ts` since the
|
|
14
|
+
* dispatcher pairs with `nudgeTranslate`'s rotation/flip path.
|
|
15
|
+
*
|
|
16
|
+
* Phase 2 is dead code until phase 3 wires this into the move
|
|
17
|
+
* dispatcher in `selection.ts`. Tests cover the bake helpers in
|
|
18
|
+
* isolation.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Translate a Counter (marker) `<g>` and its children by (dx, dy).
|
|
22
|
+
*
|
|
23
|
+
* Marker structure (see `packages/editor/src/tools/marker-tool.ts`):
|
|
24
|
+
*
|
|
25
|
+
* <g data-marker="N" data-shape="circle|rect|rounded">
|
|
26
|
+
* <circle cx cy r ...> | <rect x y w h ...> ← background
|
|
27
|
+
* <text x y ...>N</text> ← numeral
|
|
28
|
+
* </g>
|
|
29
|
+
*
|
|
30
|
+
* Either bg shape carries position; the inner `<text>` carries x/y
|
|
31
|
+
* and a single textContent (no `<tspan>` children). Shift all
|
|
32
|
+
* positional attrs in place.
|
|
33
|
+
*
|
|
34
|
+
* No-op for non-marker `<g>` inputs. Caller is expected to confirm
|
|
35
|
+
* the marker discriminator (`data-marker` attribute) before
|
|
36
|
+
* dispatching.
|
|
37
|
+
*/
|
|
38
|
+
export declare function bakeMarkerTranslate(g: SVGElement, dx: number, dy: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Translate a `<path>` element's `d` attribute by (dx, dy). Thin
|
|
41
|
+
* wrapper around the Tier A `translatePathD` helper that also
|
|
42
|
+
* handles the missing-attribute case.
|
|
43
|
+
*/
|
|
44
|
+
export declare function bakePathTranslate(p: SVGElement, dx: number, dy: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Translate a `<g data-type="group">` and all its descendants by
|
|
47
|
+
* (dx, dy), recursing into children via the public `bakeTranslate`
|
|
48
|
+
* dispatcher. Each level decides per-child whether the legacy
|
|
49
|
+
* transform-based move is needed (rotated / flipped child) or the
|
|
50
|
+
* bake path applies.
|
|
51
|
+
*
|
|
52
|
+
* Children that already use a non-identity rotation/flip transform
|
|
53
|
+
* have their TRANSLATE component baked into the local geometry
|
|
54
|
+
* (matching the parent's bake), and their rotation/flip transform
|
|
55
|
+
* gets re-emitted via `applyTransformState` so the matrix's pivot
|
|
56
|
+
* tracks the new bbox center. The visual result is identical
|
|
57
|
+
* because `parent_translate * child_rotate(cx, cy) ===
|
|
58
|
+
* child_rotate(cx + dx, cy + dy)` after baking.
|
|
59
|
+
*/
|
|
60
|
+
export declare function bakeGroupTranslate(g: SVGElement, dx: number, dy: number): void;
|
|
61
|
+
/**
|
|
62
|
+
* Public dispatcher. Translates the element's visual position by
|
|
63
|
+
* (dx, dy) without using a `transform="translate(...)"` — the
|
|
64
|
+
* children's geometry attrs absorb the move.
|
|
65
|
+
*
|
|
66
|
+
* Dispatch:
|
|
67
|
+
*
|
|
68
|
+
* | Element / discriminator | Routes to |
|
|
69
|
+
* |---|---|
|
|
70
|
+
* | `<g data-type="shape">` (sticky / callout / text-on-shape / textbox) | `bakeTextShapeTranslate` |
|
|
71
|
+
* | `<g data-type="group">` | `bakeGroupTranslate` (recursive) |
|
|
72
|
+
* | `<g data-marker>` (Counter) | `bakeMarkerTranslate` |
|
|
73
|
+
* | `<path>` (Freehand / Redact-path / future Focus-mask) | `bakePathTranslate` |
|
|
74
|
+
* | Other `<g>` (unrecognised) | recursive children (best-effort) |
|
|
75
|
+
* | `<rect>` / `<ellipse>` / `<circle>` / `<image>` / `<text>` / `<foreignObject>` | direct geometry-attr rewrite |
|
|
76
|
+
* | `<line>` and `<g data-type="arrow">` | NOT handled here — callers should use the existing `bakeLineTransform` + endpoint-rewrite path in `transform-utils.ts`, since lines already carry no `data-tx` / `data-ty` (their position is in their endpoints from the start). |
|
|
77
|
+
*
|
|
78
|
+
* No-op for unrecognised inputs.
|
|
79
|
+
*
|
|
80
|
+
* Tier B — jsdom-friendly. Caller (live editor in `annot-editor`)
|
|
81
|
+
* is expected to call `applyTransformState(el)` afterwards if the
|
|
82
|
+
* element has a non-identity rotation/flip whose pivot needs to
|
|
83
|
+
* recompute against the post-bake bbox center.
|
|
84
|
+
*/
|
|
85
|
+
export declare function bakeTranslate(el: SVGElement, dx: number, dy: number): void;
|
|
86
|
+
/**
|
|
87
|
+
* Translate a single annotation element by (dx, dy) in world space,
|
|
88
|
+
* mirroring the move dispatch the live editor uses
|
|
89
|
+
* (`packages/editor/src/selection.ts:#moveElement`):
|
|
90
|
+
*
|
|
91
|
+
* 1. Lines / arrows route to `bakeLineTranslate`, which bakes any
|
|
92
|
+
* pending rotation/flip/translate state into the endpoints first
|
|
93
|
+
* and then shifts those endpoints (plus the optional curved-arrow
|
|
94
|
+
* control point) by the world-space delta.
|
|
95
|
+
* 2. Unrotated / unflipped shapes bake the translate into their
|
|
96
|
+
* children's geometry attrs via the `bakeTranslate` dispatcher,
|
|
97
|
+
* fold any pre-existing `data-tx` / `data-ty` into the bake delta,
|
|
98
|
+
* clear those data attrs, and re-emit the (now-identity) matrix
|
|
99
|
+
* via `applyTransformState` so the wrapper carries no leftover
|
|
100
|
+
* transform attribute. Identical to a freshly placed shape.
|
|
101
|
+
* 3. Rotated / flipped shapes shift either the geometry attrs (for
|
|
102
|
+
* `usesGeometryPosition` tags — `<rect>` / `<ellipse>` / etc.)
|
|
103
|
+
* or the `data-tx` / `data-ty` (for `<path>` / `<g>`), then call
|
|
104
|
+
* `nudgeTranslate(el, 0, 0)` to refresh the rotation pivot
|
|
105
|
+
* against the new bbox center.
|
|
106
|
+
*
|
|
107
|
+
* Used by callers outside `selection.ts` that need to move a single
|
|
108
|
+
* annotation by a world-space delta: scratchpad save / paste, future
|
|
109
|
+
* stamp / template features, future plugin host APIs. The live
|
|
110
|
+
* editor's move path stays in `selection.ts` for now (the gesture
|
|
111
|
+
* loop owns its own snap / multi-select bookkeeping); a future
|
|
112
|
+
* unification refactor can route both call sites through here.
|
|
113
|
+
*
|
|
114
|
+
* Tier B — pure Element manipulation, jsdom-friendly. No live-
|
|
115
|
+
* browser dependencies beyond what the underlying bake helpers /
|
|
116
|
+
* `applyTransformState` already require (which themselves are
|
|
117
|
+
* jsdom-friendly aside from a `getBBox()` pivot fallback for the
|
|
118
|
+
* rotated branch — same caveat the bake helpers carry).
|
|
119
|
+
*/
|
|
120
|
+
export declare function moveAnnotationElement(el: SVGElement, dx: number, dy: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* Translate every direct child of an annotations group by (dx, dy).
|
|
123
|
+
*
|
|
124
|
+
* Like {@link bakeTranslate} but also handles `<line>` and
|
|
125
|
+
* `<g data-type="arrow">` children — the destructive-crop path
|
|
126
|
+
* (`EditorShell.applyCrop`) calls this to shift the annotation
|
|
127
|
+
* tree into the cropped image's new origin, so it has to cover
|
|
128
|
+
* EVERY annotation type the editor produces (the `bakeTranslate`
|
|
129
|
+
* dispatcher itself omits lines/arrows because their move flow goes
|
|
130
|
+
* through `transform-utils.ts:bakeLineTranslate` directly).
|
|
131
|
+
*
|
|
132
|
+
* Tier B — pure DOM mutation, jsdom-friendly. The line/arrow path
|
|
133
|
+
* uses `DOMMatrix` via `bakeLineTransform`, which jsdom polyfills
|
|
134
|
+
* via `applyInverseAffine`-style numeric helpers; happy-dom ships a
|
|
135
|
+
* working `DOMMatrix` for the same routine. No-op for (0, 0).
|
|
136
|
+
*/
|
|
137
|
+
export declare function bakeAnnotationsTranslate(group: SVGElement, dx: number, dy: number): void;
|
|
138
|
+
/** Axis-aligned bbox in world (svg-root) coordinates. */
|
|
139
|
+
export interface AnnotationBBox {
|
|
140
|
+
x: number;
|
|
141
|
+
y: number;
|
|
142
|
+
w: number;
|
|
143
|
+
h: number;
|
|
144
|
+
}
|
|
145
|
+
/** Compute world-space bbox of an annotation element from its
|
|
146
|
+
* geometry attrs. Returns `null` when the element doesn't carry
|
|
147
|
+
* enough information for a confident bbox — callers SHOULD treat
|
|
148
|
+
* null as "keep" (defensive: never delete what we can't measure).
|
|
149
|
+
*
|
|
150
|
+
* Tag dispatch mirrors `bakeTranslate`:
|
|
151
|
+
*
|
|
152
|
+
* - `<rect>`, `<image>`, `<foreignObject>`: x, y, width, height
|
|
153
|
+
* - `<circle>`: (cx-r, cy-r, 2r, 2r)
|
|
154
|
+
* - `<ellipse>`: (cx-rx, cy-ry, 2rx, 2ry)
|
|
155
|
+
* - `<text>`: a single point at (x, y) — we treat it as 0×0; if
|
|
156
|
+
* the user's text overflows the point we err on the side of
|
|
157
|
+
* keeping (rare). The bg of a sticky/callout/textbox is the
|
|
158
|
+
* `<g data-type="shape">` wrapper case, not a plain `<text>`.
|
|
159
|
+
* - `<line>`: bbox of the two endpoints
|
|
160
|
+
* - `<g data-type="arrow">`: bbox of `data-x1/y1` … `data-x2/y2`
|
|
161
|
+
* plus `data-cx/cy` if curved
|
|
162
|
+
* - `<path>`: bbox of every absolute `M` / `L` / `Q` / `C` / `T`
|
|
163
|
+
* / `S` / `A` coordinate token in `d` (good enough for
|
|
164
|
+
* freehand and redact-path shapes — both write absolute coords
|
|
165
|
+
* today via `translatePathD`'s round-trip discipline)
|
|
166
|
+
* - `<g data-marker>`: recurse into the bg circle / rect
|
|
167
|
+
* - `<g data-type="shape">`: bbox of the bg `<rect>`
|
|
168
|
+
* - `<g data-type="group">`: union of every direct child's bbox
|
|
169
|
+
* - other `<g>`: union of every direct child's bbox (best-effort)
|
|
170
|
+
*
|
|
171
|
+
* Pure attribute-reading; no DOM-API calls beyond `getAttribute`.
|
|
172
|
+
*/
|
|
173
|
+
export declare function annotationBBox(el: SVGElement): AnnotationBBox | null;
|
|
174
|
+
/**
|
|
175
|
+
* Remove direct children of `group` whose entire bbox falls outside
|
|
176
|
+
* the supplied rect (in world coords). Returns the count of removed
|
|
177
|
+
* children. Used by `EditorShell.applyCrop` to prune annotations
|
|
178
|
+
* that the destructive crop would put off-screen.
|
|
179
|
+
*
|
|
180
|
+
* "Fully outside" means `bbox.right <= rect.x` or `bbox.bottom <=
|
|
181
|
+
* rect.y` or `bbox.left >= rect.x + rect.w` or `bbox.top >= rect.y
|
|
182
|
+
* + rect.h`. Annotations that PARTIALLY overlap the rect (straddle
|
|
183
|
+
* the boundary) are kept — clipping per-shape geometry is out of
|
|
184
|
+
* scope, so the visible portion stays visible after the crop and
|
|
185
|
+
* the invisible portion remains in the data (acceptable v1 trade-
|
|
186
|
+
* off; see `_done/destructive-crop-bake.md`).
|
|
187
|
+
*
|
|
188
|
+
* Children whose bbox cannot be determined (`annotationBBox`
|
|
189
|
+
* returns null) are kept defensively — never delete what we can't
|
|
190
|
+
* measure.
|
|
191
|
+
*/
|
|
192
|
+
export declare function pruneAnnotationsOutsideRect(group: SVGElement, rect: AnnotationBBox): number;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logical font-family registry — Phase 1 of
|
|
3
|
+
* `docs/plans/multilingual-fonts-os-stack.md`.
|
|
4
|
+
*
|
|
5
|
+
* Annot exposes three logical family tokens to the editor and to
|
|
6
|
+
* stored SVG. The host (PWA / extension / desktop / future
|
|
7
|
+
* `annot-annotator`) resolves each token to:
|
|
8
|
+
*
|
|
9
|
+
* - A long, OS-aware CSS font stack that interleaves Latin /
|
|
10
|
+
* CJK / Arabic / Indic / Thai families so the browser's
|
|
11
|
+
* per-codepoint font selection lands on the OS native script
|
|
12
|
+
* font without any web-font download.
|
|
13
|
+
* - A 3-typeface OOXML triple (`<a:latin>` + `<a:ea>` + `<a:cs>`)
|
|
14
|
+
* so PowerPoint / Office paste consumers apply the same
|
|
15
|
+
* per-script logic on the receive side.
|
|
16
|
+
*
|
|
17
|
+
* Pure (Tier A): strings + lookup tables, no DOM, no runtime
|
|
18
|
+
* dependency on a browser. Importable from headless tests, the
|
|
19
|
+
* pptx exporter (`@ingcreators/annot-render`), and the editor
|
|
20
|
+
* UI alike.
|
|
21
|
+
*/
|
|
22
|
+
/** The three logical family tokens. The editor stores exactly one
|
|
23
|
+
* of these in `data-font-family`; raw CSS family strings are
|
|
24
|
+
* coerced to `Annot Sans` via `coerceToLogicalFamily`. */
|
|
25
|
+
export declare const LOGICAL_FAMILIES: readonly ["Annot Sans", "Annot Serif", "Annot Mono"];
|
|
26
|
+
export type LogicalFamily = (typeof LOGICAL_FAMILIES)[number];
|
|
27
|
+
/** Per-token OOXML typeface triple. PowerPoint applies these
|
|
28
|
+
* per-codepoint at render time:
|
|
29
|
+
* - `<a:latin>` for Latin / Cyrillic / Greek
|
|
30
|
+
* - `<a:ea>` for East Asian (CJK)
|
|
31
|
+
* - `<a:cs>` for complex script (Arabic / Hebrew / Indic / Thai)
|
|
32
|
+
* Picks land on Office-bundled standards (Calibri / Yu Gothic UI
|
|
33
|
+
* etc.) so cross-environment sharing without embedded fonts is
|
|
34
|
+
* "good enough" — the receiver sees Office's default substitute
|
|
35
|
+
* when a typeface is missing. */
|
|
36
|
+
interface OoxmlTypefaces {
|
|
37
|
+
latin: string;
|
|
38
|
+
ea: string;
|
|
39
|
+
cs: string;
|
|
40
|
+
}
|
|
41
|
+
/** Resolve a logical token to its CSS font stack string. */
|
|
42
|
+
export declare function cssStackFor(family: LogicalFamily): string;
|
|
43
|
+
/** Resolve a logical token to its OOXML typeface triple. */
|
|
44
|
+
export declare function ooxmlTypefacesFor(family: LogicalFamily): OoxmlTypefaces;
|
|
45
|
+
/** Type guard — true when `s` is one of the three logical
|
|
46
|
+
* family tokens. Useful for validating user-typed input or
|
|
47
|
+
* storage payloads before passing to the resolvers. */
|
|
48
|
+
export declare function isLogicalFamily(s: string | null | undefined): s is LogicalFamily;
|
|
49
|
+
/** Coerce any string (legacy raw CSS family, plugin-author input,
|
|
50
|
+
* unknown storage payload) to one of the three logical tokens.
|
|
51
|
+
* Unknown / empty / null → `Annot Sans` so callers downstream
|
|
52
|
+
* (PPTX export, CSS resolver) always get a valid token.
|
|
53
|
+
*
|
|
54
|
+
* Pre-release decision: legacy `data-font-family` values like
|
|
55
|
+
* `sans-serif` or `"Hiragino Kaku Gothic"` get coerced silently
|
|
56
|
+
* on next save. Per the plan, no migration shim is required. */
|
|
57
|
+
export declare function coerceToLogicalFamily(s: string | null | undefined): LogicalFamily;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GradientSpec, GradientStop } from './tool-options.js';
|
|
2
|
+
/** Apply a gradient as the element's stroke (or fill). `which` selects
|
|
3
|
+
* which attribute takes the url(...) ref; the spec is also serialized
|
|
4
|
+
* into `data-{which}-gradient` so it survives round-trips. */
|
|
5
|
+
export declare function applyGradient(el: SVGElement, which: "stroke" | "fill", spec: GradientSpec): void;
|
|
6
|
+
/** Remove the gradient from an element (both the defs node and the
|
|
7
|
+
* element's url(...) ref). `fallbackColor` restores a solid paint so
|
|
8
|
+
* the element doesn't suddenly turn invisible. */
|
|
9
|
+
export declare function removeGradient(el: SVGElement, which: "stroke" | "fill", fallbackColor: string): void;
|
|
10
|
+
/** Read the persisted gradient spec off an element, or null if the
|
|
11
|
+
* attribute isn't there (i.e. the paint is solid). */
|
|
12
|
+
export declare function detectGradient(el: SVGElement, which: "stroke" | "fill"): GradientSpec | null;
|
|
13
|
+
/** On load of a saved SVG, reconstruct every `<linearGradient>` that a
|
|
14
|
+
* `data-*-gradient` attribute references. Saved files may have lost
|
|
15
|
+
* the defs section if they were serialized by a path that doesn't
|
|
16
|
+
* include defs (rare but possible), so this provides a self-healing
|
|
17
|
+
* fallback. */
|
|
18
|
+
export declare function rebuildGradients(svg: SVGSVGElement): void;
|
|
19
|
+
/** Sample convenience spec for the "just turn gradient on" flow. Two
|
|
20
|
+
* stops derived from the element's current solid color: the color
|
|
21
|
+
* itself and a darkened variant. */
|
|
22
|
+
export declare function defaultGradientFrom(color: string): GradientSpec;
|
|
23
|
+
export type { GradientSpec, GradientStop };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default ceiling on the undo stack depth. Matches the historical
|
|
3
|
+
* value in `@ingcreators/annot-editor`'s `History` class.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_HISTORY_DEPTH = 100;
|
|
6
|
+
export interface HistoryHooks {
|
|
7
|
+
/** Read the current snapshot the user can undo TO. Called inside
|
|
8
|
+
* `save()`. Must return a stable string for deterministic equality
|
|
9
|
+
* checks (none performed today, but reserved for future "skip
|
|
10
|
+
* duplicate save" optimisations). */
|
|
11
|
+
getSnapshot: () => string;
|
|
12
|
+
/** Apply a snapshot. Called inside `undo()` / `redo()` when a
|
|
13
|
+
* restore is about to happen. Should mutate whatever live model
|
|
14
|
+
* `getSnapshot()` is reading from. */
|
|
15
|
+
setSnapshot: (snapshot: string) => void;
|
|
16
|
+
/** Fired after `setSnapshot` runs — i.e. when the model was actually
|
|
17
|
+
* mutated by an undo or redo. NOT called by `save()`. The editor
|
|
18
|
+
* uses this to refresh selection handles and the property panel. */
|
|
19
|
+
onRestore?: () => void;
|
|
20
|
+
/** Fired after every state-changing call (save / undo / redo) where
|
|
21
|
+
* the stacks were modified. The editor uses this for auto-save. */
|
|
22
|
+
onStateChange?: () => void;
|
|
23
|
+
/** Cap on undo-stack depth. Older snapshots are dropped FIFO once
|
|
24
|
+
* the cap is exceeded. Defaults to {@link DEFAULT_HISTORY_DEPTH}. */
|
|
25
|
+
maxDepth?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface HistoryCore {
|
|
28
|
+
/** Push the current snapshot (per `getSnapshot`) onto the undo
|
|
29
|
+
* stack and clear the redo stack. Always fires `onStateChange`. */
|
|
30
|
+
save(): void;
|
|
31
|
+
/** Restore the previous snapshot. Returns `true` if the model was
|
|
32
|
+
* actually mutated, `false` if the guard rejected the call (only
|
|
33
|
+
* the seed snapshot is left). Fires `onRestore` + `onStateChange`
|
|
34
|
+
* on success. */
|
|
35
|
+
undo(): boolean;
|
|
36
|
+
/** Replay the most recently undone snapshot. Returns `true` if the
|
|
37
|
+
* model was mutated, `false` if the redo stack was empty. */
|
|
38
|
+
redo(): boolean;
|
|
39
|
+
readonly canUndo: boolean;
|
|
40
|
+
readonly canRedo: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build a {@link HistoryCore} bound to the supplied hooks. The first
|
|
44
|
+
* snapshot is captured eagerly inside the constructor — matching the
|
|
45
|
+
* existing browser-side `History` constructor that called
|
|
46
|
+
* `this.save()` to seed the undo stack with the initial state.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createHistoryCore(hooks: HistoryHooks): HistoryCore;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand-glyph SVG strings used by the storage chip in the gallery
|
|
3
|
+
* sidebar.
|
|
4
|
+
*
|
|
5
|
+
* Today the only brand-mark we ship is GitHub's; Google Drive uses
|
|
6
|
+
* Material Symbols' `add_to_drive` glyph instead so the storage
|
|
7
|
+
* chip rail stays uniformly monochrome (the official multi-colour
|
|
8
|
+
* Drive logo would clash with every adjacent monochrome icon and
|
|
9
|
+
* skew the visual hierarchy in the sidebar). When a Drive
|
|
10
|
+
* integration needs the official multi-colour mark — e.g. an
|
|
11
|
+
* "Open in Drive" CTA, the Workspace Marketplace listing — that
|
|
12
|
+
* usage will live in its own asset, NOT here, since the trade-off
|
|
13
|
+
* (theme-locked colours) only makes sense in dedicated brand
|
|
14
|
+
* surfaces.
|
|
15
|
+
*
|
|
16
|
+
* **Trademark notice.** "GitHub" and the GitHub Mark are trademarks
|
|
17
|
+
* of GitHub, Inc. The path data below is the official mark provided
|
|
18
|
+
* by GitHub for indicating product integration; we render it
|
|
19
|
+
* unmodified to comply with their brand guidelines:
|
|
20
|
+
*
|
|
21
|
+
* GitHub Logos & Usage: https://github.com/logos
|
|
22
|
+
*
|
|
23
|
+
* Specifically:
|
|
24
|
+
*
|
|
25
|
+
* 1. Geometry is verbatim from the published mark — no scaling
|
|
26
|
+
* distortion, no path mutation. The `viewBox` matches the
|
|
27
|
+
* upstream asset (16×16).
|
|
28
|
+
* 2. The Mark uses `fill="currentColor"`, which is the monochrome
|
|
29
|
+
* usage GitHub explicitly permits in their guidelines ("you may
|
|
30
|
+
* render the mark in any colour that contrasts with its
|
|
31
|
+
* background"). This keeps the icon theme-aware in the sidebar
|
|
32
|
+
* without violating the "do not modify" rule — we are choosing a
|
|
33
|
+
* permitted fill colour, not editing the mark.
|
|
34
|
+
*
|
|
35
|
+
* If GitHub updates their published mark in a way that supersedes
|
|
36
|
+
* the path data here, mirror the upstream change in this file —
|
|
37
|
+
* never patch a stale mark in place.
|
|
38
|
+
*
|
|
39
|
+
* Reserved registry ids: hosts and plugin authors should NOT
|
|
40
|
+
* override `brand.*` keys. The dotted prefix is documented as a
|
|
41
|
+
* host-reserved namespace in `docs/plugin-api/icons.md`.
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* GitHub Mark (the simplified silhouette mark, sometimes called
|
|
45
|
+
* "Invertocat"). Verbatim path data from `github.com/logos`.
|
|
46
|
+
*
|
|
47
|
+
* Why the simplified Mark, not the Octocat: GitHub's brand
|
|
48
|
+
* guidelines apply tighter restrictions to the Octocat illustration
|
|
49
|
+
* (the cat-with-tentacles mascot) than to the Mark — the Mark is
|
|
50
|
+
* the asset GitHub explicitly publishes for product-integration
|
|
51
|
+
* use, the Octocat is more like a brand character.
|
|
52
|
+
*/
|
|
53
|
+
export declare const BRAND_GITHUB_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82a7.42 7.42 0 0 1 2-.27c.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8Z\"/></svg>";
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
export declare const MATERIAL_SYMBOL_GLYPHS: {
|
|
2
|
+
readonly add: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z\"/></svg>";
|
|
3
|
+
readonly add_to_drive: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M210-100q-12 0-25.5-7.5T165-126L55-318q-6-11-6-26t6-26l270-464q6-11 19.5-18.5T370-860h220q12 0 25.5 7.5T635-834l187 321q-18-5-36.5-7t-37.5-1L585-800H375L109-344l105 184h338q10 17 22.5 32t26.5 28H210Zm80-180-29-51 183-319h72l101 176q-13 9-23.5 20T573-431l-93-161-145 252h193q-4 14-6 29t-2 31H290Zm440 150v-120H610v-60h120v-120h60v120h120v60H790v120h-60Z\"/></svg>";
|
|
4
|
+
readonly align_horizontal_center: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M450-80v-210H240v-100h210v-180H120v-100h330v-210h60v210h330v100H510v180h210v100H510v210h-60Z\"/></svg>";
|
|
5
|
+
readonly align_horizontal_left: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-80v-800h60v800H80Zm160-210v-100h400v100H240Zm0-280v-100h640v100H240Z\"/></svg>";
|
|
6
|
+
readonly align_horizontal_right: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M820-80v-800h60v800h-60ZM320-290v-100h400v100H320ZM80-570v-100h640v100H80Z\"/></svg>";
|
|
7
|
+
readonly align_vertical_bottom: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-80v-60h800v60H80Zm210-160v-640h100v640H290Zm280 0v-400h100v400H570Z\"/></svg>";
|
|
8
|
+
readonly align_vertical_center: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M290-120v-330H80v-60h210v-330h100v330h180v-210h100v210h210v60H670v210H570v-210H390v330H290Z\"/></svg>";
|
|
9
|
+
readonly align_vertical_top: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M290-80v-640h100v640H290Zm280-240v-400h100v400H570ZM80-820v-60h800v60H80Z\"/></svg>";
|
|
10
|
+
readonly apps: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M179-179q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19ZM179-433q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19ZM179-687q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Z\"/></svg>";
|
|
11
|
+
readonly arrow_right_alt: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m560-242-43-42 168-168H160v-60h525L516-681l43-42 241 241-240 240Z\"/></svg>";
|
|
12
|
+
readonly arrow_selector_tool: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m300-347 109-153h218L300-757v410ZM560-84 412-401 240-160v-720l560 440H505l145 314-90 42ZM409-500Z\"/></svg>";
|
|
13
|
+
readonly article: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M277-279h275v-60H277v60Zm0-171h406v-60H277v60Zm0-171h406v-60H277v60Zm-97 501q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z\"/></svg>";
|
|
14
|
+
readonly blur_on: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M106-387q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm0-156q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm107 330q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-162q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-156q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-162q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm150.5 329.5Q348-379 348-402t15.5-38.5Q379-456 402-456t38.5 15.5Q456-425 456-402t-15.5 38.5Q425-348 402-348t-38.5-15.5Zm0-156Q348-535 348-558t15.5-38.5Q379-612 402-612t38.5 15.5Q456-581 456-558t-15.5 38.5Q425-504 402-504t-38.5-15.5ZM375-213q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-480q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm12 587q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm0-718q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm132.5 460.5Q504-379 504-402t15.5-38.5Q535-456 558-456t38.5 15.5Q612-425 612-402t-15.5 38.5Q581-348 558-348t-38.5-15.5Zm0-156Q504-535 504-558t15.5-38.5Q535-612 558-612t38.5 15.5Q612-581 612-558t-15.5 38.5Q581-504 558-504t-38.5-15.5ZM531-213q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-480q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm18 587q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm-6-718q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm150 611q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-162q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-156q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm0-162q-11-11-11-27t11-27q11-11 27-11t27 11q11 11 11 27t-11 27q-11 11-27 11t-27-11Zm131 306q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Zm0-156q-6-6-6-15t6-15q6-6 15-6t15 6q6 6 6 15t-6 15q-6 6-15 6t-15-6Z\"/></svg>";
|
|
15
|
+
readonly chat: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M240-399h313v-60H240v60Zm0-130h480v-60H240v60Zm0-130h480v-60H240v60ZM80-80v-740q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H240L80-80Zm134-220h606v-520H140v600l74-80Zm-74 0v-520 520Z\"/></svg>";
|
|
16
|
+
readonly chat_bubble: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-80v-740q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H240L80-80Zm134-220h606v-520H140v600l74-80Zm-74 0v-520 520Z\"/></svg>";
|
|
17
|
+
readonly check_box: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m419-321 289-289-43-43-246 246-119-119-43 43 162 162ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z\"/></svg>";
|
|
18
|
+
readonly chevron_right: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z\"/></svg>";
|
|
19
|
+
readonly circle: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z\"/></svg>";
|
|
20
|
+
readonly close: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z\"/></svg>";
|
|
21
|
+
readonly cloud: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M251-160q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H251Zm0-60h500q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-91-61-154t-149-63q-88 0-149.5 63T267-522h-19q-62 0-105 43.5T100-371q0 63 44 107t107 44Zm229-260Z\"/></svg>";
|
|
22
|
+
readonly cloud_done: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m412-279 230-230-40-40-189 189-100-100-41 41 140 140ZM251-160q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H251Zm0-60h500q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-91-61-154t-149-63q-88 0-149.5 63T267-522h-19q-62 0-105 43.5T100-371q0 63 44 107t107 44Zm229-260Z\"/></svg>";
|
|
23
|
+
readonly cloud_off: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M818-56 703-171H248q-88 0-148-59T40-377q0-80 50.5-134T217-577q2-14 6.5-31.5T236-640L70-806l42-42L861-99l-43 43ZM248-231h397L285-591q-11 15-14.5 34t-3.5 37h-19q-62 0-105 39.5t-43 101q0 61.5 43 105T248-231Zm216-181Zm390 210-47-47q25-17 39-38t14-50q0-43-31-73.5T755-441h-67v-81q0-88-61-147.5T478.47-729q-28.47 0-60.97 9T358-691l-42-42q36-29 77.5-42.5T478-789q111 0 190.5 79T748-520v21q72-1 122 45t50 117q0 35-16.5 73.5T854-202ZM583-470Z\"/></svg>";
|
|
24
|
+
readonly cloud_queue: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M251-160q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H251Zm0-60h500q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-91-61-154t-149-63q-88 0-149.5 63T267-522h-19q-62 0-105 43.5T100-371q0 63 44 107t107 44Zm229-260Z\"/></svg>";
|
|
25
|
+
readonly collections_bookmark: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M260-260h560v-560h-60v278l-93-57-93 57v-278H260v560Zm0 60q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Zm434-740h186-186Zm-314 0h560-560Z\"/></svg>";
|
|
26
|
+
readonly content_copy: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300Zm0-60h440v-560H300v560ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Zm120-180v-560 560Z\"/></svg>";
|
|
27
|
+
readonly content_paste: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-120q-26 0-43-17t-17-43v-600q0-26 17-43t43-17h202q7-35 34.5-57.5T480-920q36 0 63.5 22.5T578-840h202q26 0 43 17t17 43v600q0 26-17 43t-43 17H180Zm0-60h600v-600h-60v90H240v-90h-60v600Zm328.5-611.5Q520-803 520-820t-11.5-28.5Q497-860 480-860t-28.5 11.5Q440-837 440-820t11.5 28.5Q463-780 480-780t28.5-11.5Z\"/></svg>";
|
|
28
|
+
readonly counter_1: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Zm-8 203h60v-406H389v60h83v346Z\"/></svg>";
|
|
29
|
+
readonly create_new_folder: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M550-320h60v-90h90v-60h-90v-90h-60v90h-90v60h90v90ZM140-160q-24 0-42-18.5T80-220v-520q0-23 18-41.5t42-18.5h281l60 60h339q23 0 41.5 18.5T880-680v460q0 23-18.5 41.5T820-160H140Zm0-60h680v-460H456l-60-60H140v520Zm0 0v-520 520Z\"/></svg>";
|
|
30
|
+
readonly crop: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M695-40v-165H265q-24 0-42-18t-18-42v-430H40v-60h165v-165h60v655h655v60H755v165h-60Zm0-285v-370H325v-60h370q24 0 42 18t18 42v370h-60Z\"/></svg>";
|
|
31
|
+
readonly crop_square: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0 0v-600 600Z\"/></svg>";
|
|
32
|
+
readonly dark_mode: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-120q-150 0-255-105T120-480q0-150 105-255t255-105q8 0 17 .5t23 1.5q-36 32-56 79t-20 99q0 90 63 153t153 63q52 0 99-18.5t79-51.5q1 12 1.5 19.5t.5 14.5q0 150-105 255T480-120Zm0-60q109 0 190-67.5T771-406q-25 11-53.67 16.5Q688.67-384 660-384q-114.69 0-195.34-80.66Q384-545.31 384-660q0-24 5-51.5t18-62.5q-98 27-162.5 109.5T180-480q0 125 87.5 212.5T480-180Zm-4-297Z\"/></svg>";
|
|
33
|
+
readonly database: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-120q-151 0-255.5-46.5T120-280v-400q0-66 105.5-113T480-840q149 0 254.5 47T840-680v400q0 67-104.5 113.5T480-120Zm0-488q86 0 176.5-26.5T773-694q-27-32-117.5-59T480-780q-88 0-177 26t-117 60q28 35 116 60.5T480-608Zm-1 214q42 0 84-4.5t80.5-13.5q38.5-9 73.5-22t63-29v-155q-29 16-64 29t-74 22q-39 9-80 14t-83 5q-42 0-84-5t-80.5-14q-38.5-9-73-22T180-618v155q27 16 61 29t72.5 22q38.5 9 80.5 13.5t85 4.5Zm1 214q48 0 99-8.5t93.5-22.5q42.5-14 72-31t35.5-35v-125q-28 16-63 28.5T643.5-352q-38.5 9-80 13.5T479-334q-43 0-85-4.5T313.5-352q-38.5-9-72.5-21.5T180-402v126q5 17 34 34.5t72 31q43 13.5 94 22t100 8.5Z\"/></svg>";
|
|
34
|
+
readonly delete: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M261-120q-24.75 0-42.37-17.63Q201-155.25 201-180v-570h-41v-60h188v-30h264v30h188v60h-41v570q0 24-18 42t-42 18H261Zm438-630H261v570h438v-570ZM367-266h60v-399h-60v399Zm166 0h60v-399h-60v399ZM261-750v570-570Z\"/></svg>";
|
|
35
|
+
readonly desktop_windows: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M334-120v-60h86v-100H140q-24 0-42-18t-18-42v-440q0-24 18-42t42-18h680q24 0 42 18t18 42v440q0 24-18 42t-42 18H540v100h86v60H334ZM140-340h680v-440H140v440Zm0 0v-440 440Z\"/></svg>";
|
|
36
|
+
readonly download: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-313 287-506l43-43 120 120v-371h60v371l120-120 43 43-193 193ZM220-160q-24 0-42-18t-18-42v-143h60v143h520v-143h60v143q0 24-18 42t-42 18H220Z\"/></svg>";
|
|
37
|
+
readonly draw: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M160-120v-128l571-571q11-11 22.5-16t24.5-5q12 0 23.5 5t22.5 16l35 35q11 10 16 21.5t5 24.5q0 12-5 24t-16 23L288-120H160Zm60-60h44l446-446-22-22-22-22-446 446v44Zm601-557-44-44 44 44Zm-133 89-22-22 44 44-22-22ZM560-120q78 0 139-36.5T760-260q0-40-29.5-73.5T638-386l-47 47q50 12 79.5 34t29.5 45q0 32-40.5 56T560-180q-12 0-21 8.5t-9 21.5q0 12 9 21t21 9ZM240-414l48-48q-54-13-81-27.5T180-520q0-16 21.5-30.5T290-590q83-31 111.5-59.5T430-719q0-56-41-88.5T280-840q-42 0-76 14.5T153-789q-8 9-7.5 21t11.5 20q10 8 22.5 6.5T200-751q15-15 34-22t46-7q46 0 68 18t22 43q0 20-19 35t-85 39q-94 34-120 62t-26 63q0 32 28 62t92 44Z\"/></svg>";
|
|
38
|
+
readonly drive_file_rename_outline: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h405l-60 60H180v600h600v-348l60-60v408q0 24-18 42t-42 18H180Zm300-360ZM360-360v-170l382-382q9-9 20-13t22-4q11 0 22.32 4.5Q817.63-920 827-911l83 84q8.61 8.96 13.3 19.78 4.7 10.83 4.7 22.02 0 11.2-4.5 22.7T910-742L530-360H360Zm508-425-84-84 84 84ZM420-420h85l253-253-43-42-43-42-252 251v86Zm295-295-43-42 43 42 43 42-43-42Z\"/></svg>";
|
|
39
|
+
readonly drive_folder_upload: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M450-280h60v-227l74 74 42-42-146-146-146 146 42 42 74-74v227ZM140-160q-24 0-42-18.5T80-220v-520q0-23 18-41.5t42-18.5h281l60 60h339q23 0 41.5 18.5T880-680v460q0 23-18.5 41.5T820-160H140Zm0-60h680v-460H456l-60-60H140v520Zm0 0v-520 520Z\"/></svg>";
|
|
40
|
+
readonly edit: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-180h44l472-471-44-44-472 471v44Zm-60 60v-128l575-574q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L248-120H120Zm659-617-41-41 41 41Zm-105 64-22-22 44 44-22-22Z\"/></svg>";
|
|
41
|
+
readonly error: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M503.5-289.48q9.5-9.48 9.5-23.5t-9.48-23.52q-9.48-9.5-23.5-9.5t-23.52 9.48q-9.5 9.48-9.5 23.5t9.48 23.52q9.48 9.5 23.5 9.5t23.52-9.48ZM453-433h60v-253h-60v253Zm27.27 353q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z\"/></svg>";
|
|
42
|
+
readonly expand_more: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z\"/></svg>";
|
|
43
|
+
readonly extension: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M356-120H180q-24 0-42-18t-18-42v-176q44-5 75.5-34.5T227-463q0-43-31.5-72.5T120-570v-176q0-24 18-42t42-18h177q11-40 39.5-67t68.5-27q40 0 68.5 27t39.5 67h173q24 0 42 18t18 42v173q40 11 65.5 41.5T897-461q0 40-25.5 67T806-356v176q0 24-18 42t-42 18H570q-5-48-35.5-77.5T463-227q-41 0-71.5 29.5T356-120Zm-176-60h130q25-61 69.89-84t83-23Q501-287 546-264t70 84h130v-235h45q20 0 33-13t13-33q0-20-13-33t-33-13h-45v-239H511v-48q0-20-13-33t-33-13q-20 0-33 13t-13 33v48H180v130q48.15 17.82 77.58 59.69Q287-514.45 287-462.78 287-412 257.5-370T180-310v130Zm285-281Z\"/></svg>";
|
|
44
|
+
readonly file_copy: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M780-160H260q-24 0-42-18t-18-42v-640q0-24 18-42t42-18h348l232 232v468q0 24-18 42t-42 18ZM578-662v-198H260v640h520v-442H578ZM140-40q-24 0-42-18t-18-42v-619h60v619h498v60H140Zm120-820v198-198 640-640Z\"/></svg>";
|
|
45
|
+
readonly flip: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M349-120H180q-24.75 0-42.37-17.63Q120-155.25 120-180v-600q0-24.75 17.63-42.38Q155.25-840 180-840h169v60H180v600h169v60Zm103 80v-880h60v880h-60Zm163-80v-60h60v60h-60Zm0-660v-60h60v60h-60Zm165 660v-60h60q0 25-17.62 42.5Q804.75-120 780-120Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60q24.75 0 42.38 17.62Q840-804.75 840-780h-60Z\"/></svg>";
|
|
46
|
+
readonly flip_to_back: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-120q-24.75 0-42.37-17.63Q120-155.25 120-180v-495h60v495h495v60H180Zm165-225v60q-24.75 0-42.37-17.63Q285-320.25 285-345h60Zm-60-105v-60h60v60h-60Zm0-165v-60h60v60h-60Zm60-165h-60q0-24.75 17.63-42.38Q320.25-840 345-840v60Zm105 495v-60h60v60h-60Zm0-495v-60h60v60h-60Zm165 0v-60h60v60h-60Zm0 495v-60h60v60h-60Zm165-495v-60q24.75 0 42.38 17.62Q840-804.75 840-780h-60Zm0 435h60q0 24.75-17.62 42.37Q804.75-285 780-285v-60Zm0-105v-60h60v60h-60Zm0-165v-60h60v60h-60Z\"/></svg>";
|
|
47
|
+
readonly flip_to_front: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M345-285q-24 0-42-18t-18-42v-435q0-24 18-42t42-18h435q24 0 42 18t18 42v435q0 24-18 42t-42 18H345Zm0-60h435v-435H345v435ZM180-180v60q-24.75 0-42.37-17.63Q120-155.25 120-180h60Zm-60-105v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm165 495v-60h60v60h-60Zm165 0v-60h60v60h-60Zm165 0v-60h60v60h-60Z\"/></svg>";
|
|
48
|
+
readonly folder: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M140-160q-24 0-42-18.5T80-220v-520q0-23 18-41.5t42-18.5h281l60 60h339q23 0 41.5 18.5T880-680v460q0 23-18.5 41.5T820-160H140Zm0-60h680v-460H456l-60-60H140v520Zm0 0v-520 520Z\"/></svg>";
|
|
49
|
+
readonly folder_open: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M140-160q-23 0-41.5-18.5T80-220v-520q0-23 18.5-41.5T140-800h281l60 60h339q23 0 41.5 18.5T880-680H455l-60-60H140v520l102-400h698L833-206q-6 24-22 35t-41 11H140Zm63-60h572l84-340H287l-84 340Zm0 0 84-340-84 340Zm-63-460v-60 60Z\"/></svg>";
|
|
50
|
+
readonly grid_view: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M120-510v-330h330v330H120Zm0 390v-330h330v330H120Zm390-390v-330h330v330H510Zm0 390v-330h330v330H510ZM180-570h210v-210H180v210Zm390 0h210v-210H570v210Zm0 390h210v-210H570v210Zm-390 0h210v-210H180v210Zm390-390Zm0 180Zm-180 0Zm0-180Z\"/></svg>";
|
|
51
|
+
readonly group_remove: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M474-486q26-32 38.5-66t12.5-79q0-45-12.5-79T474-776q76-17 133.5 23T665-631q0 82-57.5 122T474-486Zm216 326v-94q0-51-26-95t-90-74q173 22 236.5 64T874-254v94H690Zm270-389H700v-60h260v60Zm-753 26q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM0-160v-94q0-35 18.5-63.5T68-360q72-32 128.5-46T315-420q62 0 118 14t128 46q31 14 50 42.5t19 63.5v94H0Zm315-381q39 0 64.5-25.5T405-631q0-39-25.5-64.5T315-721q-39 0-64.5 25.5T225-631q0 39 25.5 64.5T315-541ZM60-220h510v-34q0-16-8-30t-25-22q-69-32-117-43t-105-11q-57 0-104.5 11T92-306q-15 7-23.5 21.5T60-254v34Zm255-411Zm0 411Z\"/></svg>";
|
|
52
|
+
readonly group_work: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M387-320q31 0 52-21.42t21-51.5q0-30.08-21-51.58T387.5-466q-30.5 0-52 21.42t-21.5 51.5q0 30.08 21.44 51.58Q356.89-320 387-320Zm237.5-21.42q21.5-21.42 21.5-51.5t-21.42-51.58q-21.42-21.5-51.5-21.5t-51.58 21.42q-21.5 21.42-21.5 51.5t21.42 51.58q21.42 21.5 51.5 21.5t51.58-21.42ZM531.5-528q21.5-21 21.5-51.5t-21.42-52q-21.42-21.5-51.5-21.5t-51.58 21.44Q407-610.11 407-580q0 31 21.42 52t51.5 21q30.08 0 51.58-21ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z\"/></svg>";
|
|
53
|
+
readonly groups: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780Zm-480-60h360v-6q0-37-50.5-60.5T480-390q-79 0-129.5 23.5T300-305v5ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Zm.35-60Q506-540 523-557.35t17-43Q540-626 522.85-643t-42.5-17q-25.35 0-42.85 17.15t-17.5 42.5q0 25.35 17.35 42.85t43 17.5ZM480-300Zm0-300Z\"/></svg>";
|
|
54
|
+
readonly help_outline: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M511-258q11-11 11-27t-11-27q-11-11-27-11t-27 11q-11 11-11 27t11 27q11 11 27 11t27-11Zm-62-135h59q0-26 6.5-47.5T555-490q31-26 44-51t13-55q0-53-34.5-85T486-713q-49 0-86.5 24.5T345-621l53 20q11-28 33-43.5t52-15.5q34 0 55 18.5t21 47.5q0 22-13 41.5T508-512q-30 26-44.5 51.5T449-393Zm31 313q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z\"/></svg>";
|
|
55
|
+
readonly highlight: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m225-655-85-84 43-43 84 85-42 42Zm225-105v-120h60v120h-60Zm285 107-43-43 86-84 42 42-85 85ZM360-80v-200L240-400v-200h480v200L600-280v200H360Zm60-60h120v-165l120-120v-115H300v115l120 120v165Zm60-200Z\"/></svg>";
|
|
56
|
+
readonly history: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M477-120q-149 0-253-105.5T120-481h60q0 125 86 213t211 88q127 0 215-89t88-216q0-124-89-209.5T477-780q-68 0-127.5 31T246-667h105v60H142v-208h60v106q52-61 123.5-96T477-840q75 0 141 28t115.5 76.5Q783-687 811.5-622T840-482q0 75-28.5 141t-78 115Q684-177 618-148.5T477-120Zm128-197L451-469v-214h60v189l137 134-43 43Z\"/></svg>";
|
|
57
|
+
readonly home_storage: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m200-120-80-480h720l-80 480H200Zm50-60h460l57-360H193l57 360Zm150-200h160q13 0 21.5-9t8.5-21q0-13-8.5-21.5T560-440H400q-12 0-21 8.5t-9 21.5q0 12 9 21t21 9ZM240-660q-12 0-21-9t-9-21q0-13 9-21.5t21-8.5h480q13 0 21.5 8.5T750-690q0 12-8.5 21t-21.5 9H240Zm80-120q-12 0-21-9t-9-21q0-13 9-21.5t21-8.5h320q13 0 21.5 8.5T670-810q0 12-8.5 21t-21.5 9H320Zm-70 600h460-460Z\"/></svg>";
|
|
58
|
+
readonly horizontal_distribute: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-80v-800h60v800H80Zm350-200v-400h100v400H430ZM820-80v-800h60v800h-60Z\"/></svg>";
|
|
59
|
+
readonly horizontal_rule: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M160-450v-60h640v60H160Z\"/></svg>";
|
|
60
|
+
readonly hub: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M153-73q-33-33-33-81t33.25-81q33.25-33 80.75-33 14 0 24.5 2.5T280-258l85-106q-19-23-29-52.5t-5-61.5l-121-41q-15 25-39.5 39T114-466q-47.5 0-80.75-33.25T0-580q0-47.5 33.25-80.75T114-694q47.5 0 80.75 33.25T228-580v4l122 42q18-32 43.5-49t56.5-24v-129q-39-11-61.5-43T366-846q0-47.5 33-80.75T480-960q48 0 81 33.25T594-846q0 35-23 67t-61 43v129q31 7 57 24t44 49l121-42v-4q0-47.5 33.25-80.75T846-694q47.5 0 80.75 33T960-580q0 48-33.25 81T846-466q-32 0-57-14t-39-39l-121 41q5 32-4.5 61.5T595-364l85 106q11-5 21.5-7.5t24.06-2.5Q774-268 807-235t33 81q0 48-33 81t-81 33q-48 0-81-33.25T612-154q0-20 5.5-36t15.5-31l-85-106q-32.13 17-68.56 17Q443-310 411-327l-84 107q10 15 15.5 30.5T348-154q0 47.5-33 80.75T234-40q-48 0-81-33Zm-38.96-453q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5Q91-634 75.5-618.46 60-602.93 60-579.96 60-557 75.54-541.5q15.53 15.5 38.5 15.5ZM272.5-115.54q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54Zm246-692q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54ZM480.5-370q37.5 0 63.5-26.5t26-64q0-37.5-26.1-63.5T480-550q-37 0-63.5 26.1T390-460q0 37 26.5 63.5t64 26.5Zm284 254.46q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54Zm120-426q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54ZM480-846ZM114-580Zm366 120Zm366-120ZM234-154Zm492 0Z\"/></svg>";
|
|
61
|
+
readonly info: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M453-280h60v-240h-60v240Zm50.5-323.2q9.5-9.2 9.5-22.8 0-14.45-9.48-24.22-9.48-9.78-23.5-9.78t-23.52 9.78Q447-640.45 447-626q0 13.6 9.48 22.8 9.48 9.2 23.5 9.2t23.52-9.2ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z\"/></svg>";
|
|
62
|
+
readonly ink_highlighter: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M554-407 439-522 217-300l115 115 222-222Zm-72-158 115 115 213-213-115-115-213 213Zm-64-21 200 200-234 234q-19 19-52.5 19T279-152l-11-11-43 43H70l120-120-4-4q-22-22-21.5-55.5T187-355l231-231Zm0 0 237-237q17-17 43-17t43 17l112 112q17 17 16.5 45.5T852-620L618-386 418-586Z\"/></svg>";
|
|
63
|
+
readonly join_inner: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M320-200q-117 0-198.5-81.5T40-480q0-117 81.5-198.5T320-760q36 0 69.5 8.5T452-727q-13 10-24 21t-22 23q-20-8-41.5-12.5T320-700q-91 0-155.5 64T100-480q0 91 64.5 155.5T320-260q23 0 44.5-4.5T406-277q11 12 22 23t24 21q-29 16-62.5 24.5T320-200Zm320 0q-36 0-69.5-8.5T508-233q13-10 24-21t22-23q20 8 41.5 12.5T640-260q92 0 156-64.5T860-480q0-92-64-156t-156-64q-23 0-44.5 4.5T554-683q-11-12-22-23t-24-21q29-16 62.5-24.5T640-760q117 0 198.5 81.5T920-480q0 117-81.5 198.5T640-200Zm-160-50q-57-39-88.5-100T360-480q0-69 31.5-130T480-710q57 39 88.5 100T600-480q0 69-31.5 130T480-250Z\"/></svg>";
|
|
64
|
+
readonly join_left: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M320-200q-117 0-198.5-81.5T40-480q0-117 81.5-198.5T320-760q36 0 69.5 8.5T452-727q-58 45-90 109.5T330-480q0 73 32 137.5T452-233q-29 16-62.5 24.5T320-200Zm320 0q-36 0-69.5-8.5T508-233q13-10 24-21t22-23q20 8 41.5 12.5T640-260q92 0 156-64.5T860-480q0-92-64-156t-156-64q-23 0-44.5 4.5T554-683q-11-12-22-23t-24-21q29-16 62.5-24.5T640-760q117 0 198.5 81.5T920-480q0 117-81.5 198.5T640-200Zm-160-50q-57-39-88.5-100T360-480q0-69 31.5-130T480-710q57 39 88.5 100T600-480q0 69-31.5 130T480-250Z\"/></svg>";
|
|
65
|
+
readonly keyboard_arrow_down: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z\"/></svg>";
|
|
66
|
+
readonly keyboard_arrow_up: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z\"/></svg>";
|
|
67
|
+
readonly laptop: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M57-160q-23.51 0-40.26-17.63Q0-195.25 0-220h141q-24 0-42-18t-18-42v-500q0-24 18-42t42-18h678q24 0 42 18t18 42v500q0 24-18 42t-42 18h141q0 25-17.62 42.5Q924.75-160 900-160H57Zm447-32q10-10 10-24t-10-24q-10-10-24-10t-24 10q-10 10-10 24t10 24q10 10 24 10t24-10Zm-363-88h678v-500H141v500Zm0 0v-500 500Z\"/></svg>";
|
|
68
|
+
readonly library_books: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M343-420h225v-60H343v60Zm0-90h395v-60H343v60Zm0-90h395v-60H343v60Zm-83 400q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260Zm0-60h560v-560H260v560ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Zm120-740v560-560Z\"/></svg>";
|
|
69
|
+
readonly light_mode: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M579-381q41-41 41-99t-41-99q-41-41-99-41t-99 41q-41 41-41 99t41 99q41 41 99 41t99-41Zm-240.5 42.5Q280-397 280-480t58.5-141.5Q397-680 480-680t141.5 58.5Q680-563 680-480t-58.5 141.5Q563-280 480-280t-141.5-58.5ZM200-450H40v-60h160v60Zm720 0H760v-60h160v60ZM450-760v-160h60v160h-60Zm0 720v-160h60v160h-60ZM262-658l-100-97 43-44 96 100-39 41Zm494 496-98-100 41-41 99 98-42 43Zm-99-537 98-99 44 42-99 98-43-41ZM162-205l99-98 42 42-98 99-43-43Zm318-275Z\"/></svg>";
|
|
70
|
+
readonly more_vert: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M479.86-160Q460-160 446-174.14t-14-34Q432-228 446.14-242t34-14Q500-256 514-241.86t14 34Q528-188 513.86-174t-34 14Zm0-272Q460-432 446-446.14t-14-34Q432-500 446.14-514t34-14Q500-528 514-513.86t14 34Q528-460 513.86-446t-34 14Zm0-272Q460-704 446-718.14t-14-34Q432-772 446.14-786t34-14Q500-800 514-785.86t14 34Q528-732 513.86-718t-34 14Z\"/></svg>";
|
|
71
|
+
readonly near_me: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M527-120 413-413 120-527v-43l720-270-270 720h-43Zm18-114 192-503-502 192 224 86 86 225Zm-86-225Z\"/></svg>";
|
|
72
|
+
readonly north_east: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m202-160-42-42 498-498H364v-60h396v396h-60v-294L202-160Z\"/></svg>";
|
|
73
|
+
readonly open_in_new: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h279v60H180v600h600v-279h60v279q0 24-18 42t-42 18H180Zm202-219-42-43 398-398H519v-60h321v321h-60v-218L382-339Z\"/></svg>";
|
|
74
|
+
readonly rectangle: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-160v-640h800v640H80Zm60-60h680v-520H140v520Zm0 0v-520 520Z\"/></svg>";
|
|
75
|
+
readonly redo: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M392-200q-95 0-163.5-64T160-422q0-94 68.5-158T392-644h294L572-758l42-42 186 186-186 186-42-42 114-114H391q-70 0-120.5 46.5T220-422q0 69 50.5 115.5T391-260h310v60H392Z\"/></svg>";
|
|
76
|
+
readonly refresh: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M480-160q-133 0-226.5-93.5T160-480q0-133 93.5-226.5T480-800q85 0 149 34.5T740-671v-129h60v254H546v-60h168q-38-60-97-97t-137-37q-109 0-184.5 75.5T220-480q0 109 75.5 184.5T480-220q83 0 152-47.5T728-393h62q-29 105-115 169t-195 64Z\"/></svg>";
|
|
77
|
+
readonly remove: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M200-450v-60h560v60H200Z\"/></svg>";
|
|
78
|
+
readonly rotate_left: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M435-80q-48-7-93-25t-85-48l43-44q32 24 66 37.5t69 19.5v60Zm90 0v-60q110-21 182.5-103.5T780-443q0-127-86.5-213.5T480-743h-20l79 79-44 44-153-153 153-153 44 44-79 79h20q75 0 140.5 28T735-698q49 49 77 114.5T840-443q0 140-89 241T525-80ZM194-216q-28-38-46.5-84.5T122-398h61q5 38 18.5 73t36.5 65l-44 44Zm-72-272q7-50 25-95.5t47-85.5l44 43q-23 33-36.5 68T183-488h-61Z\"/></svg>";
|
|
79
|
+
readonly rotate_right: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M527-80v-60q35-6 69-19.5t66-37.5l43 44q-40 30-85 48t-93 25Zm-90 0q-137-21-226-122t-89-241q0-75 28-140.5T227-698q49-49 114.5-77T482-803h20l-79-79 44-44 153 153-153 153-44-44 79-79h-20q-127 0-213.5 86.5T182-443q0 117 72.5 199.5T437-140v60Zm331-136-44-44q23-30 36.5-65t18.5-73h61q-7 51-25.5 97.5T768-216Zm72-272h-61q-5-35-18.5-70T724-626l44-43q29 40 47 85.5t25 95.5Z\"/></svg>";
|
|
80
|
+
readonly rounded_corner: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M120-120v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm0-165v-60h60v60h-60Zm165 660v-60h60v60h-60Zm0-660v-60h60v60h-60Zm165 660v-60h60v60h-60Zm165 0v-60h60v60h-60Zm165 0v-60h60v60h-60Zm0-165v-60h60v60h-60Zm60-165h-60v-195q0-57-39-96t-96-39H450v-60h195q80.93 0 137.96 57.04Q840-725.93 840-645v195Z\"/></svg>";
|
|
81
|
+
readonly save: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M840-683v503q0 24-18 42t-42 18H180q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h503l157 157Zm-60 27L656-780H180v600h600v-476ZM553.5-275.26q30.5-30.27 30.5-73.5 0-43.24-30.26-73.74-30.27-30.5-73.5-30.5-43.24 0-73.74 30.26-30.5 30.27-30.5 73.5 0 43.24 30.26 73.74 30.27 30.5 73.5 30.5 43.24 0 73.74-30.26ZM233-584h358v-143H233v143Zm-53-72v476-600 124Z\"/></svg>";
|
|
82
|
+
readonly screenshot_monitor: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M600-320h160v-160h-40v120H600v40ZM200-560h40v-120h120v-40H200v160Zm130 440v-80H140q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H630v80H330ZM140-260h680v-520H140v520Zm0 0v-520 520Z\"/></svg>";
|
|
83
|
+
readonly search: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M796-121 533-384q-30 26-70 40.5T378-329q-108 0-183-75t-75-181q0-106 75-181t182-75q106 0 180.5 75T632-585q0 43-14 83t-42 75l264 262-44 44ZM377-389q81 0 138-57.5T572-585q0-81-57-138.5T377-781q-82 0-139.5 57.5T180-585q0 81 57.5 138.5T377-389Z\"/></svg>";
|
|
84
|
+
readonly shapes: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M600-360Zm-280 98q10 2 19.5 2H360q5.5 0 10.25-.25T380-261v121h440v-440H699q.5-5 .75-9.75T700-600v-20.5q0-9.5-2-19.5h122q24.75 0 42.38 17.62Q880-604.75 880-580v440q0 24.75-17.62 42.37Q844.75-80 820-80H380q-24.75 0-42.37-17.63Q320-115.25 320-140v-122ZM161.5-401.5Q80-483 80-600t81.5-198.5Q243-880 360-880t198.5 81.5Q640-717 640-600t-81.5 198.5Q477-320 360-320t-198.5-81.5Zm354-42.79q64.5-64.29 64.5-155.5T515.71-755.5Q451.42-820 360.21-820T204.5-755.71Q140-691.42 140-600.21t64.29 155.71q64.29 64.5 155.5 64.5t155.71-64.29ZM360-600Z\"/></svg>";
|
|
85
|
+
readonly share: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17Q219-366 194-366q-47.5 0-80.75-33T80-480q0-48 33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880q47.5 0 80.75 33.25T800-766q0 47.5-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18q0 8.5-1 16t-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194q0 47.5-33.25 80.75T686-80Zm.04-60q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5Zm-492-286q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5ZM724.5-727.54q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54ZM686-194ZM194-480Zm492-286Z\"/></svg>";
|
|
86
|
+
readonly square: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M120-120v-720h720v720H120Zm60-60h600v-600H180v600Zm0 0v-600 600Z\"/></svg>";
|
|
87
|
+
readonly sticky_note_2: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M180-180h400v-200h200v-400H180v600Zm0 60q-24.75 0-42.37-17.63Q120-155.25 120-180v-600q0-24.75 17.63-42.38Q155.25-840 180-840h600q24.75 0 42.38 17.62Q840-804.75 840-780v420L600-120H180Zm120-300v-60h170v60H300Zm0-160v-60h360v60H300ZM180-180v-600 600Z\"/></svg>";
|
|
88
|
+
readonly swap_horiz: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M273-160 80-353l193-193 42 42-121 121h316v60H194l121 121-42 42Zm414-254-42-42 121-121H450v-60h316L645-758l42-42 193 193-193 193Z\"/></svg>";
|
|
89
|
+
readonly swap_vert: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M323-450v-316L202-645l-42-42 193-193 193 193-42 42-121-121v316h-60ZM607-80 414-273l42-42 121 121v-316h60v316l121-121 42 42L607-80Z\"/></svg>";
|
|
90
|
+
readonly sync: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M167-160v-60h130l-15-12q-64-51-93-111t-29-134q0-106 62.5-190.5T387-784v62q-75 29-121 96.5T220-477q0 63 23.5 109.5T307-287l30 21v-124h60v230H167Zm407-15v-63q76-29 121-96.5T740-483q0-48-23.5-97.5T655-668l-29-26v124h-60v-230h230v60H665l15 14q60 56 90 120t30 123q0 106-62 191T574-175Z\"/></svg>";
|
|
91
|
+
readonly sync_alt: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M271-120 80-311l192-192 42 42-120 120h646v60H194l119 119-42 42Zm418-337-42-42 119-119H120v-60h646L646-798l42-42 192 192-191 191Z\"/></svg>";
|
|
92
|
+
readonly task: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m434-255 229-229-39-39-190 190-103-103-39 39 142 142ZM220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h361l219 219v521q0 24-18 42t-42 18H220Zm331-554v-186H220v680h520v-494H551ZM220-820v186-186 680-680Z\"/></svg>";
|
|
93
|
+
readonly text_fields: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M290-160v-540H80v-100h520v100H390v540H290Zm360 0v-340H520v-100h360v100H750v340H650Z\"/></svg>";
|
|
94
|
+
readonly timer: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M360-860v-60h240v60H360Zm90 447h60v-230h-60v230ZM340.5-109.5Q275-138 226-187t-77.5-114.5Q120-367 120-441t28.5-139.5Q177-646 226-695t114.5-77.5Q406-801 480-801q67 0 126 22.5T711-716l51-51 42 42-51 51q36 40 61.5 97T840-441q0 74-28.5 139.5T734-187q-49 49-114.5 77.5T480-81q-74 0-139.5-28.5Zm352-119Q780-316 780-441t-87.5-212.5Q605-741 480-741t-212.5 87.5Q180-566 180-441t87.5 212.5Q355-141 480-141t212.5-87.5ZM480-440Z\"/></svg>";
|
|
95
|
+
readonly title: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M430-160v-540H200v-100h560v100H530v540H430Z\"/></svg>";
|
|
96
|
+
readonly tune: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M427-120v-225h60v83h353v60H487v82h-60Zm-307-82v-60h247v60H120Zm187-166v-82H120v-60h187v-84h60v226h-60Zm120-82v-60h413v60H427Zm166-165v-225h60v82h187v60H653v83h-60Zm-473-83v-60h413v60H120Z\"/></svg>";
|
|
97
|
+
readonly undo: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M259-200v-60h310q70 0 120.5-46.5T740-422q0-69-50.5-115.5T569-584H274l114 114-42 42-186-186 186-186 42 42-114 114h294q95 0 163.5 64T800-422q0 94-68.5 158T568-200H259Z\"/></svg>";
|
|
98
|
+
readonly upload: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M450-313v-371L330-564l-43-43 193-193 193 193-43 43-120-120v371h-60ZM220-160q-24 0-42-18t-18-42v-143h60v143h520v-143h60v143q0 24-18 42t-42 18H220Z\"/></svg>";
|
|
99
|
+
readonly vertical_distribute: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M80-80v-60h800v60H80Zm200-350v-100h400v100H280ZM80-820v-60h800v60H80Z\"/></svg>";
|
|
100
|
+
readonly view_list: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M350-220h470v-137H350v137ZM140-603h150v-137H140v137Zm0 187h150v-127H140v127Zm0 196h150v-137H140v137Zm210-196h470v-127H350v127Zm0-187h470v-137H350v137ZM140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Z\"/></svg>";
|
|
101
|
+
readonly view_module: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M621-510h159v-190H621v190Zm-221 0h161v-190H400v190Zm-219 0h159v-190H181v190Zm0 250h159v-190H181v190Zm219 0h161v-190H400v190Zm221 0h159v-190H621v190Zm-500 0v-440q0-24.75 17.63-42.38Q156.25-760 181-760h599q24.75 0 42.38 17.62Q840-724.75 840-700v440q0 24.75-17.62 42.37Q804.75-200 780-200H181q-24.75 0-42.37-17.63Q121-235.25 121-260Z\"/></svg>";
|
|
102
|
+
readonly visibility_off: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m629-419-44-44q26-71-27-118t-115-24l-44-44q17-11 38-16t43-5q71 0 120.5 49.5T650-500q0 22-5.5 43.5T629-419Zm129 129-40-40q49-36 85.5-80.5T857-500q-50-111-150-175.5T490-740q-42 0-86 8t-69 19l-46-47q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93Zm58 226L648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM223-654q-37 27-71.5 71T102-500q51 111 153.5 175.5T488-260q33 0 65-4t48-12l-64-64q-11 5-27 7.5t-30 2.5q-70 0-120-49t-50-121q0-15 2.5-30t7.5-27l-97-97Zm305 142Zm-116 58Z\"/></svg>";
|
|
103
|
+
readonly warning: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"m40-120 440-760 440 760H40Zm104-60h672L480-760 144-180Zm361.5-65.68q8.5-8.67 8.5-21.5 0-12.82-8.68-21.32-8.67-8.5-21.5-8.5-12.82 0-21.32 8.68-8.5 8.67-8.5 21.5 0 12.82 8.68 21.32 8.67 8.5 21.5 8.5 12.82 0 21.32-8.68ZM454-348h60v-224h-60v224Zm26-122Z\"/></svg>";
|
|
104
|
+
};
|
|
105
|
+
export type MaterialSymbolGlyphId = keyof typeof MATERIAL_SYMBOL_GLYPHS;
|