efficient-easel 0.0.0 → 0.97.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.
Files changed (119) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +818 -4
  3. package/dist/autosave/index.d.ts +101 -0
  4. package/dist/autosave/index.js +1 -0
  5. package/dist/blocks/index.d.ts +306 -0
  6. package/dist/blocks/index.js +0 -0
  7. package/dist/buckets-1vRlQceY.d.ts +13 -0
  8. package/dist/canvas/index.d.ts +194 -0
  9. package/dist/canvas/index.js +1 -0
  10. package/dist/chrome/chrome.css +570 -0
  11. package/dist/chrome/index.d.ts +219 -0
  12. package/dist/chrome/index.js +21 -0
  13. package/dist/chunk-2LUSK32B.js +1 -0
  14. package/dist/chunk-2OAZYSWJ.js +1 -0
  15. package/dist/chunk-67VZRQLG.js +13 -0
  16. package/dist/chunk-6OPSJGAI.js +1 -0
  17. package/dist/chunk-6PS6STGA.js +1 -0
  18. package/dist/chunk-6WY6ZXJG.js +1 -0
  19. package/dist/chunk-7A7O2JWQ.js +1 -0
  20. package/dist/chunk-BZ5ASXOL.js +1 -0
  21. package/dist/chunk-CERTFXCV.js +13 -0
  22. package/dist/chunk-D2BCHTQR.js +1 -0
  23. package/dist/chunk-FI23ALVJ.js +1 -0
  24. package/dist/chunk-GGTPNGFJ.js +1 -0
  25. package/dist/chunk-H4B72XCJ.js +1 -0
  26. package/dist/chunk-H6DDIBQ4.js +1 -0
  27. package/dist/chunk-KDIVA6WD.js +1 -0
  28. package/dist/chunk-KRXQM65X.js +1 -0
  29. package/dist/chunk-MCLBHENY.js +1 -0
  30. package/dist/chunk-MFIRYGHW.js +1 -0
  31. package/dist/chunk-NKB3KVAB.js +1 -0
  32. package/dist/chunk-O2NLQBFX.js +1 -0
  33. package/dist/chunk-OGZFDJ6G.js +1 -0
  34. package/dist/chunk-OWBO4WKA.js +0 -0
  35. package/dist/chunk-QB3BZIRA.js +5 -0
  36. package/dist/chunk-RE4LP46F.js +1 -0
  37. package/dist/chunk-STFMZJKU.js +14 -0
  38. package/dist/chunk-SUO5627P.js +1 -0
  39. package/dist/chunk-TDA4HH54.js +1 -0
  40. package/dist/chunk-WK3AFPXY.js +1 -0
  41. package/dist/chunk-YIMRTIBN.js +3 -0
  42. package/dist/chunk-YNZZYHA4.js +450 -0
  43. package/dist/chunk-YRLPFZW3.js +1 -0
  44. package/dist/chunk-ZAOM6PFH.js +1 -0
  45. package/dist/chunk-ZNCEOSXO.js +1 -0
  46. package/dist/copy/copy.css +282 -0
  47. package/dist/copy/index.d.ts +336 -0
  48. package/dist/copy/index.js +10 -0
  49. package/dist/data/index.d.ts +375 -0
  50. package/dist/data/index.js +1 -0
  51. package/dist/drag/drag.css +360 -0
  52. package/dist/drag/index.d.ts +379 -0
  53. package/dist/drag/index.js +18 -0
  54. package/dist/edit-lock/index.d.ts +354 -0
  55. package/dist/edit-lock/index.js +1 -0
  56. package/dist/editor/editor.css +58 -0
  57. package/dist/editor/index.d.ts +361 -0
  58. package/dist/editor/index.js +9 -0
  59. package/dist/fields/fields.css +207 -0
  60. package/dist/fields/index.d.ts +273 -0
  61. package/dist/fields/index.js +46 -0
  62. package/dist/gold/gold.css +196 -0
  63. package/dist/gold/index.d.ts +280 -0
  64. package/dist/gold/index.js +1 -0
  65. package/dist/icons/index.d.ts +474 -0
  66. package/dist/icons/index.js +1 -0
  67. package/dist/index.d.ts +6 -0
  68. package/dist/index.js +1 -0
  69. package/dist/markup/index.d.ts +452 -0
  70. package/dist/markup/index.js +1 -0
  71. package/dist/menu/index.d.ts +49 -0
  72. package/dist/menu/index.js +15 -0
  73. package/dist/menu/menu.css +254 -0
  74. package/dist/node-ops/index.d.ts +91 -0
  75. package/dist/node-ops/index.js +1 -0
  76. package/dist/panel/index.d.ts +1088 -0
  77. package/dist/panel/index.js +16 -0
  78. package/dist/panel/panel.css +1460 -0
  79. package/dist/pick/index.d.ts +153 -0
  80. package/dist/pick/index.js +14 -0
  81. package/dist/pick/pick.css +235 -0
  82. package/dist/plan-DChbUXdS.d.ts +88 -0
  83. package/dist/rail/index.d.ts +145 -0
  84. package/dist/rail/index.js +1 -0
  85. package/dist/rail/rail.css +175 -0
  86. package/dist/render/index.d.ts +117 -0
  87. package/dist/render/index.js +5 -0
  88. package/dist/resolve-D68pb3Bx.d.ts +57 -0
  89. package/dist/shell/index.d.ts +159 -0
  90. package/dist/shell/index.js +1 -0
  91. package/dist/shell/shell.css +122 -0
  92. package/dist/strings/catalogue.d.ts +141 -0
  93. package/dist/strings/catalogue.js +1 -0
  94. package/dist/strings/index.d.ts +56 -0
  95. package/dist/strings/index.js +2 -0
  96. package/dist/style-clipboard/index.d.ts +184 -0
  97. package/dist/style-clipboard/index.js +1 -0
  98. package/dist/tree/index.d.ts +173 -0
  99. package/dist/tree/index.js +1 -0
  100. package/dist/tree/tree.css +618 -0
  101. package/dist/types-41704JE4.d.ts +112 -0
  102. package/dist/types-CEqUFH2j.d.ts +129 -0
  103. package/dist/types-CuNiSnX6.d.ts +204 -0
  104. package/dist/types-DNrn_w4V.d.ts +88 -0
  105. package/dist/types-Dy6oR6Z2.d.ts +153 -0
  106. package/dist/types-pGBXevBU.d.ts +131 -0
  107. package/dist/useNodeOps-BF0fQsif.d.ts +68 -0
  108. package/dist/watch-DmasQA61.d.ts +60 -0
  109. package/dist/wordFit-9B9nqyf3.d.ts +35 -0
  110. package/dist/words-B2YLaKEr.d.ts +30 -0
  111. package/dist/words-B87GIFWH.d.ts +86 -0
  112. package/dist/words-BK-npta-.d.ts +27 -0
  113. package/dist/words-CD3WADyb.d.ts +51 -0
  114. package/dist/words-CsRWXkY4.d.ts +129 -0
  115. package/dist/words-D9ChvbNC.d.ts +52 -0
  116. package/dist/words-DOhF-4D4.d.ts +35 -0
  117. package/dist/words-DagJdwIA.d.ts +78 -0
  118. package/dist/words-DfxEp_RH.d.ts +142 -0
  119. package/package.json +202 -3
@@ -0,0 +1,360 @@
1
+ /*
2
+ * efficient-easel/drag.css — the canvas drag layer (blueprint step 3.2): the
3
+ * hover handle, the drop line, "+ Add section" between sections and "+ Add
4
+ * block" in an empty slot. The tree's drag look is tree.css.
5
+ *
6
+ * The layer sits over the canvas frame in the host page and lets every click
7
+ * through to the canvas except on its own few controls. Needs
8
+ * `efficient-easel/shell.css` for the `--es-*` tokens.
9
+ */
10
+
11
+ .es-canvas-layer {
12
+ position: absolute;
13
+ inset: 0;
14
+ z-index: 5;
15
+ pointer-events: none;
16
+ }
17
+
18
+ /* ONE handle, over the smallest box under the pointer. Never unmounted: a
19
+ native drag aborts if its source leaves the page. */
20
+ .es-canvas-handle {
21
+ position: absolute;
22
+ display: inline-flex;
23
+ align-items: center;
24
+ gap: 4px;
25
+ height: 22px;
26
+ padding: 0 8px 0 6px;
27
+ border-radius: 11px;
28
+ background: var(--es-toast-bg);
29
+ color: var(--es-on-accent);
30
+ font: 500 11px/22px var(--es-font);
31
+ white-space: nowrap;
32
+ box-shadow: 0 2px 6px rgba(16, 24, 40, 0.2);
33
+ cursor: grab;
34
+ opacity: 0;
35
+ pointer-events: none;
36
+ transition: opacity 0.12s;
37
+ }
38
+ .es-canvas-handle.is-shown {
39
+ opacity: 1;
40
+ pointer-events: auto;
41
+ }
42
+ .es-canvas-handle:active {
43
+ cursor: grabbing;
44
+ }
45
+ /* Frozen, not removed, while it is being dragged. */
46
+ .es-canvas-handle.is-dragging {
47
+ opacity: 0;
48
+ }
49
+ .es-canvas-grip {
50
+ font-size: 10px;
51
+ letter-spacing: -2px;
52
+ opacity: 0.8;
53
+ }
54
+
55
+ /* While a drag is on — from here, the tree or the Add list — the whole canvas
56
+ is one drop surface in the host page. */
57
+ .es-canvas-catch {
58
+ position: absolute;
59
+ inset: 0;
60
+ pointer-events: auto;
61
+ }
62
+
63
+ /* The drop line: 2px of accent, across a list or down between columns. */
64
+ .es-canvas-line {
65
+ position: absolute;
66
+ background: var(--es-accent);
67
+ border-radius: 2px;
68
+ pointer-events: none;
69
+ }
70
+
71
+ /* "+ Add section", in the gap between two sections, on hover. */
72
+ .es-canvas-seam {
73
+ position: absolute;
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ pointer-events: auto;
78
+ }
79
+ .es-canvas-seam::before {
80
+ content: "";
81
+ position: absolute;
82
+ left: 8px;
83
+ right: 8px;
84
+ top: 50%;
85
+ height: 2px;
86
+ margin-top: -1px;
87
+ background: var(--es-accent);
88
+ border-radius: 2px;
89
+ opacity: 0;
90
+ transition: opacity 0.12s;
91
+ }
92
+ .es-canvas-seam-add {
93
+ position: relative;
94
+ padding: 2px 10px;
95
+ border: none;
96
+ border-radius: 999px;
97
+ background: var(--es-accent);
98
+ color: var(--es-on-accent);
99
+ font: 600 11px/16px var(--es-font);
100
+ cursor: pointer;
101
+ opacity: 0;
102
+ transform: scale(0.9);
103
+ transition: opacity 0.12s, transform 0.12s;
104
+ }
105
+ .es-canvas-seam:hover::before,
106
+ .es-canvas-seam:focus-within::before,
107
+ .es-canvas-seam:hover .es-canvas-seam-add,
108
+ .es-canvas-seam-add:focus-visible {
109
+ opacity: 1;
110
+ }
111
+ .es-canvas-seam:hover .es-canvas-seam-add,
112
+ .es-canvas-seam-add:focus-visible {
113
+ transform: scale(1);
114
+ }
115
+
116
+ /* An empty slot: a faint dashed cell that adds a block there, and takes a drop. */
117
+ .es-canvas-empty {
118
+ position: absolute;
119
+ box-sizing: border-box;
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ border: 1.5px dashed var(--es-input-border);
124
+ border-radius: 6px;
125
+ background: color-mix(in srgb, var(--es-app-bg) 60%, transparent);
126
+ color: var(--es-muted);
127
+ font: 500 12px/1.3 var(--es-font);
128
+ cursor: pointer;
129
+ pointer-events: auto;
130
+ transition: border-color 0.12s, background 0.12s, color 0.12s;
131
+ }
132
+ .es-canvas-empty:hover,
133
+ .es-canvas-empty:focus-visible,
134
+ .es-canvas-empty.is-over {
135
+ border-color: var(--es-accent);
136
+ background: var(--es-accent-tint);
137
+ color: var(--es-accent-text);
138
+ }
139
+
140
+ /* ── The Add panel's shell ───────────────────────────────────────────────────
141
+ The campaign designer's Add view (redesign PR 6b), itself the website
142
+ picker's grammar at the left panel's width: a search that says so when
143
+ nothing matches, uppercase group headings with a count, and tiles that are
144
+ clicked to add and dragged to place. */
145
+ .es-add {
146
+ font-family: var(--es-font);
147
+ }
148
+ .es-add-at {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-between;
152
+ gap: 8px;
153
+ margin: 0 0 10px;
154
+ padding: 7px 8px 7px 11px;
155
+ border-radius: 8px;
156
+ background: var(--es-accent-tint);
157
+ color: var(--es-accent-text);
158
+ font-size: 12.5px;
159
+ font-weight: 600;
160
+ }
161
+ .es-add-at-clear {
162
+ flex: none;
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: center;
166
+ width: 20px;
167
+ height: 20px;
168
+ border: none;
169
+ border-radius: 5px;
170
+ background: transparent;
171
+ color: inherit;
172
+ cursor: pointer;
173
+ }
174
+ .es-add-at-clear:hover {
175
+ background: var(--es-accent-tint-strong);
176
+ }
177
+ .es-add-hint {
178
+ margin: 0 0 10px;
179
+ font-size: 12.5px;
180
+ color: var(--es-muted);
181
+ }
182
+ .es-add-search {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 9px;
186
+ margin-bottom: 16px;
187
+ padding: 0 12px;
188
+ height: 38px;
189
+ background: var(--es-track-bg);
190
+ border: 1px solid var(--es-input-border);
191
+ border-radius: 10px;
192
+ color: var(--es-muted);
193
+ transition: border-color 0.12s, box-shadow 0.12s, background 0.12s;
194
+ }
195
+ .es-add-search:focus-within {
196
+ border-color: var(--es-accent);
197
+ background: var(--es-panel);
198
+ box-shadow: 0 0 0 3px var(--es-accent-ring);
199
+ }
200
+ .es-add-search > svg {
201
+ flex: none;
202
+ }
203
+ .es-add-search input {
204
+ flex: 1;
205
+ min-width: 0;
206
+ border: none;
207
+ background: transparent;
208
+ outline: none;
209
+ box-shadow: none;
210
+ padding: 0;
211
+ font: inherit;
212
+ font-size: 13.5px;
213
+ color: var(--es-text);
214
+ }
215
+ .es-add-search input::placeholder {
216
+ color: var(--es-field-placeholder);
217
+ opacity: 1;
218
+ }
219
+ .es-add-search input::-webkit-search-cancel-button {
220
+ display: none;
221
+ }
222
+ .es-add-search-clear {
223
+ flex: none;
224
+ display: flex;
225
+ align-items: center;
226
+ justify-content: center;
227
+ width: 20px;
228
+ height: 20px;
229
+ border: none;
230
+ border-radius: 5px;
231
+ background: transparent;
232
+ color: var(--es-muted);
233
+ cursor: pointer;
234
+ }
235
+ .es-add-search-clear:hover {
236
+ background: var(--es-divider);
237
+ color: var(--es-text);
238
+ }
239
+ .es-add-group + .es-add-group {
240
+ margin-top: 22px;
241
+ }
242
+ .es-add-group-head {
243
+ display: flex;
244
+ align-items: baseline;
245
+ gap: 8px;
246
+ margin-bottom: 11px;
247
+ }
248
+ .es-add-group-title {
249
+ font-size: 11px;
250
+ font-weight: 700;
251
+ letter-spacing: 0.07em;
252
+ text-transform: uppercase;
253
+ color: var(--es-muted);
254
+ }
255
+ .es-add-group-count {
256
+ font-size: 11px;
257
+ color: var(--es-field-placeholder);
258
+ }
259
+ .es-add-grid {
260
+ display: grid;
261
+ grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
262
+ gap: 6px;
263
+ }
264
+ .es-add-tile {
265
+ display: flex;
266
+ flex-direction: column;
267
+ align-items: center;
268
+ justify-content: center;
269
+ gap: 6px;
270
+ min-height: 64px;
271
+ padding: 9px 6px;
272
+ border: 1px solid var(--es-line);
273
+ border-radius: 7px;
274
+ background: var(--es-panel);
275
+ color: var(--es-text);
276
+ font: inherit;
277
+ font-size: 12px;
278
+ line-height: 1.2;
279
+ text-align: center;
280
+ cursor: grab;
281
+ transition: background 0.12s, border-color 0.12s;
282
+ }
283
+ .es-add-tile:hover {
284
+ background: var(--es-hover);
285
+ border-color: var(--es-accent);
286
+ }
287
+ .es-add-tile:active {
288
+ cursor: grabbing;
289
+ }
290
+ .es-add-tile:focus-visible {
291
+ outline: 2px solid var(--es-accent);
292
+ outline-offset: 1px;
293
+ }
294
+ .es-add-tile[aria-disabled='true'] {
295
+ cursor: not-allowed;
296
+ opacity: 0.5;
297
+ background: var(--es-panel);
298
+ border-color: var(--es-line);
299
+ }
300
+ .es-add-tile-glyph {
301
+ display: flex;
302
+ color: var(--es-icon);
303
+ }
304
+ .es-add-tile-glyph svg {
305
+ width: 20px;
306
+ height: 20px;
307
+ }
308
+ .es-add-tile:hover .es-add-tile-glyph {
309
+ color: var(--es-accent);
310
+ }
311
+ /* Cards (0.80.0): a group whose tiles all carry a cover — two across, the
312
+ picture above the name, so a section is chosen by how it looks. */
313
+ .es-add-grid.is-cards {
314
+ grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
315
+ gap: 8px;
316
+ }
317
+ .es-add-tile.has-cover {
318
+ align-items: stretch;
319
+ justify-content: flex-start;
320
+ gap: 5px;
321
+ min-height: 0;
322
+ padding: 5px 5px 7px;
323
+ text-align: left;
324
+ }
325
+ /* The containing block for the host's picture: a cover drawn to FILL its box
326
+ (the storefront's scenes are positioned against it) must not escape the
327
+ tile and paint over the panel. */
328
+ .es-add-tile-cover {
329
+ position: relative;
330
+ display: block;
331
+ overflow: hidden;
332
+ aspect-ratio: 16 / 10;
333
+ border-radius: 4px;
334
+ background: var(--es-app-bg);
335
+ }
336
+ .es-add-tile-cover > * {
337
+ display: block;
338
+ width: 100%;
339
+ height: 100%;
340
+ }
341
+ .es-add-tile.has-cover .es-add-tile-label {
342
+ padding: 0 2px;
343
+ }
344
+ .es-add-empty {
345
+ display: flex;
346
+ flex-direction: column;
347
+ align-items: center;
348
+ gap: 9px;
349
+ padding: 48px 12px;
350
+ text-align: center;
351
+ color: var(--es-muted);
352
+ }
353
+ .es-add-empty-title {
354
+ font-size: 14px;
355
+ font-weight: 600;
356
+ color: var(--es-text);
357
+ }
358
+ .es-add-empty-sub {
359
+ font-size: 12.5px;
360
+ }