efficient-easel 2.2.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -5
- package/dist/blocks/index.d.ts +2 -2
- package/dist/chrome/index.d.ts +2 -2
- package/dist/chrome/index.js +1 -1
- package/dist/{chunk-ZNNATBDC.js → chunk-2T3ED73A.js} +1 -1
- package/dist/chunk-2WVZ3CK3.js +5 -0
- package/dist/{chunk-2JIWFFXA.js → chunk-42TMLDSQ.js} +1 -1
- package/dist/chunk-4WEGYBTV.js +7 -0
- package/dist/chunk-55IKQFBW.js +5 -0
- package/dist/chunk-5SOSVTVI.js +5 -0
- package/dist/{chunk-7SQF6LZL.js → chunk-66LWADFP.js} +1 -1
- package/dist/{chunk-AAT3O7PK.js → chunk-6QSPOILR.js} +1 -1
- package/dist/chunk-7VP5RXNO.js +64 -0
- package/dist/{chunk-ZV6OYSZ7.js → chunk-AVYFZZAP.js} +1 -1
- package/dist/chunk-BF3PIXZD.js +1 -0
- package/dist/chunk-CRPJGCSO.js +20 -0
- package/dist/chunk-FFYXVAAL.js +1 -0
- package/dist/{chunk-UAVNI3BU.js → chunk-FRGCTHDB.js} +1 -1
- package/dist/{chunk-OXYGFK2B.js → chunk-GTDLBUOC.js} +6 -6
- package/dist/chunk-IMRJHRQ2.js +1 -0
- package/dist/{chunk-PT6V53OO.js → chunk-J2JBETVO.js} +1 -1
- package/dist/chunk-JZDEIRH4.js +1 -0
- package/dist/{chunk-35Q5HMJZ.js → chunk-KNUFI3WV.js} +1 -1
- package/dist/chunk-LMHGVI5R.js +4 -0
- package/dist/{chunk-VB5LRSGJ.js → chunk-OFNXIZEP.js} +1 -1
- package/dist/{chunk-FOBGSFFS.js → chunk-OZ72A6MY.js} +7 -7
- package/dist/chunk-PDZXAFNX.js +9 -0
- package/dist/{chunk-ONRYLR2D.js → chunk-PRSTFWUY.js} +2 -2
- package/dist/chunk-QASZFO4S.js +1 -0
- package/dist/chunk-U2DVXW2H.js +2 -0
- package/dist/chunk-Y2G7CU6A.js +1 -0
- package/dist/{chunk-6OY2THZH.js → chunk-ZN752E2O.js} +1 -1
- package/dist/copy/copy.css +79 -82
- package/dist/copy/index.d.ts +9 -7
- package/dist/copy/index.js +21 -31
- package/dist/easel/index.d.ts +5 -5
- package/dist/easel/index.js +1 -1
- package/dist/fields/fields.css +0 -28
- package/dist/fields/index.d.ts +2 -2
- package/dist/fields/index.js +1 -1
- package/dist/node-ops/index.d.ts +2 -2
- package/dist/node-ops/index.js +1 -1
- package/dist/panel/index.d.ts +4 -222
- package/dist/panel/index.js +12 -15
- package/dist/panel/panel.css +0 -165
- package/dist/{plan-DChbUXdS.d.ts → plan-BdQ9mLIf.d.ts} +20 -1
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaSidePanel.d.ts +3 -3
- package/dist/screen/components/MediaSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.d.ts +19 -17
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +3 -3
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +3 -3
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +3 -3
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +16 -16
- package/dist/screen/components/SidePanelHead.js +1 -1
- package/dist/screen/components/UiIcon.js +1 -1
- package/dist/screen/components/panel-widths.js +1 -1
- package/dist/screen/components/usePartBridge.d.ts +3 -3
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +3 -3
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/admin-bridge.d.ts +3 -3
- package/dist/screen/lib/document-addressing.d.ts +3 -3
- package/dist/screen/lib/document-hooks.d.ts +2 -2
- package/dist/screen/lib/host-chrome.d.ts +1 -1
- package/dist/screen/lib/host.d.ts +3 -3
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/links/link-filters.d.ts +1 -2
- package/dist/screen/lib/media-panel.d.ts +3 -3
- package/dist/screen/lib/media-picker.d.ts +3 -3
- package/dist/screen/lib/page-lock.d.ts +3 -3
- package/dist/screen/lib/puck/device-fields.js +1 -1
- package/dist/screen/lib/puck/palette-sections.d.ts +2 -2
- package/dist/screen/lib/puck/section-doc.d.ts +2 -2
- package/dist/screen/lib/puck/style-clipboard.d.ts +10 -6
- package/dist/screen/lib/puck/style-clipboard.js +1 -1
- package/dist/screen/lib/puck/use-section-ops.d.ts +2 -2
- package/dist/screen/lib/puck/use-section-ops.js +1 -1
- package/dist/screen/lib/screen-parts.d.ts +5 -5
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/lib/section-templates.d.ts +3 -3
- package/dist/screen/lib/session-context.d.ts +3 -3
- package/dist/screen/lib/session.d.ts +3 -3
- package/dist/screen/words.d.ts +123 -1
- package/dist/screen/words.js +1 -1
- package/dist/strings/catalogue.d.ts +3 -3
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.d.ts +3 -3
- package/dist/strings/index.js +1 -1
- package/dist/text-styles/index.js +11 -11
- package/dist/{types-E3HrTPg2.d.ts → types-CGFykP7c.d.ts} +1 -1
- package/dist/{useNodeOps-BF0fQsif.d.ts → useNodeOps-B3e4b8a2.d.ts} +1 -1
- package/dist/{words-AHHfiaRY.d.ts → words-C1U_dLBh.d.ts} +7 -0
- package/dist/{words-XH0TvZPg.d.ts → words-lpvYzf5U.d.ts} +4 -19
- package/dist/{words-D8kf071T.d.ts → words-vhnV8sM7.d.ts} +4 -26
- package/package.json +3 -3
- package/dist/LinkPicker-hPEr1MJx.d.ts +0 -113
- package/dist/chunk-4TMMEBAG.js +0 -4
- package/dist/chunk-5TRBCPRB.js +0 -5
- package/dist/chunk-BSSKAEFF.js +0 -5
- package/dist/chunk-D2BCHTQR.js +0 -1
- package/dist/chunk-E2O2MRZR.js +0 -1
- package/dist/chunk-FPOKPNO4.js +0 -1
- package/dist/chunk-HGTPLCTQ.js +0 -1
- package/dist/chunk-PWZOS45R.js +0 -2
- package/dist/chunk-PYCLHOSA.js +0 -9
- package/dist/chunk-RC6DD4XP.js +0 -7
- package/dist/chunk-TSQUEJZB.js +0 -5
- package/dist/chunk-UEM66O42.js +0 -64
- package/dist/chunk-UH7IGZKF.js +0 -1
- package/dist/chunk-VETFIYQR.js +0 -23
- package/dist/chunk-ZJEBF4NB.js +0 -1
package/dist/panel/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { W as WordFit } from '../wordFit-7XpmhcaW.js';
|
|
4
4
|
import { P as PanelWords } from '../words-BGrHZAJJ.js';
|
|
5
|
+
export { CornerOption as SettingsCornerPoint, CornersInput as SettingsCorners, CornersInputProps as SettingsCornersProps, AlignmentGrid as SettingsPlacement, AlignmentPoint as SettingsPlacementPoint, AlignmentGridProps as SettingsPlacementProps } from 'efficient-shell/ui';
|
|
5
6
|
export { a as SETTINGS_BUCKETS, S as SettingsBucket } from '../buckets-CuLM47h9.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -505,104 +506,6 @@ interface SettingsDrillProps {
|
|
|
505
506
|
id?: string;
|
|
506
507
|
className?: string;
|
|
507
508
|
}
|
|
508
|
-
/** One of the nine positions {@link SettingsPlacementProps} offers. */
|
|
509
|
-
interface SettingsPlacementPoint {
|
|
510
|
-
/** What the host stores when this cell is pressed. Also the React key, so
|
|
511
|
-
* the nine must be distinct. */
|
|
512
|
-
value: string;
|
|
513
|
-
/** The cell's accessible name — "Top left", "Centre". Read aloud on its own,
|
|
514
|
-
* so it names the POSITION and never the value behind it. */
|
|
515
|
-
label: string;
|
|
516
|
-
/**
|
|
517
|
-
* This position cannot be chosen. The caller's arithmetic decides it (a
|
|
518
|
-
* position that already holds all it can draw), never this component.
|
|
519
|
-
* Disabled rather than absent: nine squares that became eight would read as
|
|
520
|
-
* a control that had broken.
|
|
521
|
-
*/
|
|
522
|
-
disabled?: boolean;
|
|
523
|
-
/** Why, on hover. Falls back to {@link label}, so a plain cell still has a
|
|
524
|
-
* tooltip and a closed one explains itself. */
|
|
525
|
-
title?: string;
|
|
526
|
-
/**
|
|
527
|
-
* Drawn IN PLACE OF the cell's dot, not beside it.
|
|
528
|
-
*
|
|
529
|
-
* The grid's default mark is a dot, because nine positions are answered by
|
|
530
|
-
* "which square", and a dot is the smallest thing that can say "this one".
|
|
531
|
-
* One control asks a different question with the same nine squares: the
|
|
532
|
-
* Scrolling Bar's `Scroll direction`, where four live cells mean a direction
|
|
533
|
-
* of TRAVEL and a dot cannot say which way. Those cells take an arrow.
|
|
534
|
-
*
|
|
535
|
-
* ⚠️ IT REPLACES THE DOT. A cell drawing both would put an arrow beside a dot
|
|
536
|
-
* inside a 26.67px square, and the dot would read as a second control. Leave
|
|
537
|
-
* it off and the cell renders exactly what it has always rendered — which is
|
|
538
|
-
* what keeps the five existing call sites byte-identical.
|
|
539
|
-
*
|
|
540
|
-
* Silent: the slot is `aria-hidden`, because the button around it already
|
|
541
|
-
* names the position and two voices in one cell is worse than one.
|
|
542
|
-
*/
|
|
543
|
-
icon?: ReactNode;
|
|
544
|
-
}
|
|
545
|
-
/** One of the four corners {@link SettingsCornersProps} offers. */
|
|
546
|
-
interface SettingsCornerPoint {
|
|
547
|
-
/** What the host stores when this corner is on. Also the React key and half
|
|
548
|
-
* of the cell's class name, so the four must be distinct and CSS-safe. */
|
|
549
|
-
value: string;
|
|
550
|
-
/** The cell's accessible name — "Top left". Read aloud on its own, so it
|
|
551
|
-
* names the CORNER and never the value behind it. */
|
|
552
|
-
label: string;
|
|
553
|
-
/**
|
|
554
|
-
* This corner cannot be chosen. The caller's arithmetic decides it (a box
|
|
555
|
-
* whose neighbour already rounds that edge), never this component. Disabled
|
|
556
|
-
* rather than absent: four cells that became three would read as a control
|
|
557
|
-
* that had broken.
|
|
558
|
-
*/
|
|
559
|
-
disabled?: boolean;
|
|
560
|
-
/** Why, on hover. Falls back to {@link label}, so a plain cell still has a
|
|
561
|
-
* tooltip and a closed one explains itself. */
|
|
562
|
-
title?: string;
|
|
563
|
-
}
|
|
564
|
-
interface SettingsCornersProps {
|
|
565
|
-
/** The group's accessible name. NOT drawn — the visible label belongs to the
|
|
566
|
-
* `SettingsField` row around it, the same split `SettingsSwitch` makes. */
|
|
567
|
-
label: string;
|
|
568
|
-
/**
|
|
569
|
-
* The corners that are ON, already resolved by the host: this component has
|
|
570
|
-
* no opinion about what an absent or empty value means. An empty array is a
|
|
571
|
-
* real answer (every corner square), so a host that reads absence as "all
|
|
572
|
-
* four" resolves that before handing this in.
|
|
573
|
-
*/
|
|
574
|
-
value: readonly string[];
|
|
575
|
-
/**
|
|
576
|
-
* The four cells. No default: a component that invented four corner values
|
|
577
|
-
* would be answering a question only the host can answer, and the order it
|
|
578
|
-
* stores them in is the host's too.
|
|
579
|
-
*/
|
|
580
|
-
corners: readonly SettingsCornerPoint[];
|
|
581
|
-
/** The new set, in the order the cells were pressed. The host normalises. */
|
|
582
|
-
onChange: (next: string[]) => void;
|
|
583
|
-
/** A DOM id for the group, so a host can point a label at it. */
|
|
584
|
-
id?: string;
|
|
585
|
-
className?: string;
|
|
586
|
-
}
|
|
587
|
-
interface SettingsPlacementProps {
|
|
588
|
-
/** The radiogroup's accessible name. NOT drawn — the visible label belongs to
|
|
589
|
-
* the `SettingsField` row around it, the same split `SettingsSwitch` makes. */
|
|
590
|
-
label: string;
|
|
591
|
-
/** The chosen position, already resolved by the host: this component has no
|
|
592
|
-
* opinion about what an absent value means. */
|
|
593
|
-
value: string;
|
|
594
|
-
/**
|
|
595
|
-
* The nine cells, in reading order — top-left first, bottom-right last. No
|
|
596
|
-
* default: a component that invented nine positions would be answering a
|
|
597
|
-
* question only the host can answer, and the two callers ask different ones
|
|
598
|
-
* (a picture's focal point, a block's anchor).
|
|
599
|
-
*/
|
|
600
|
-
points: readonly SettingsPlacementPoint[];
|
|
601
|
-
onChange: (next: string) => void;
|
|
602
|
-
/** A DOM id for the radiogroup, so a host can point a label at it. */
|
|
603
|
-
id?: string;
|
|
604
|
-
className?: string;
|
|
605
|
-
}
|
|
606
509
|
/**
|
|
607
510
|
* A FULL-WIDTH ACTION BUTTON that sits under a group's rows and COMMITS.
|
|
608
511
|
*
|
|
@@ -618,8 +521,8 @@ interface SettingsPlacementProps {
|
|
|
618
521
|
interface SettingsActionBaseProps {
|
|
619
522
|
/**
|
|
620
523
|
* What the button says — "Apply to all cards". The package supplies NO
|
|
621
|
-
* default, the way `
|
|
622
|
-
* to the section that knows what it is about to rewrite.
|
|
524
|
+
* default, the way the shell's `CornersInput` invents no corner names: the
|
|
525
|
+
* words belong to the section that knows what it is about to rewrite.
|
|
623
526
|
*/
|
|
624
527
|
label: ReactNode;
|
|
625
528
|
/** Pressed. The write is the host's; this component performs none of it. */
|
|
@@ -964,127 +867,6 @@ declare function SettingsDefaultReset({ label, changed, onReset, detail, disable
|
|
|
964
867
|
*/
|
|
965
868
|
declare function SettingsDrill({ name, preview, offPage, status, onOpen, id, className, }: SettingsDrillProps): react.JSX.Element;
|
|
966
869
|
|
|
967
|
-
/**
|
|
968
|
-
* A 3×3 grid of positions, one of them lit — "which of these nine?".
|
|
969
|
-
*
|
|
970
|
-
* ONE CONTROL, TWO QUESTIONS THAT ARE THE SAME QUESTION. A merchant asks it of
|
|
971
|
-
* an image ("which part of this crop stays in view?") and of a block ("where on
|
|
972
|
-
* the thing behind it does this sit?"). Both are one of nine positions, both
|
|
973
|
-
* want the merchant to PRESS THE CORNER rather than read nine words out of a
|
|
974
|
-
* dropdown, and drawing them as two controls would be two things to keep
|
|
975
|
-
* looking alike for ever.
|
|
976
|
-
*
|
|
977
|
-
* ── WHY IT IS HERE NOW, AND WHY IT WAS NOT BEFORE ───────────────────────────
|
|
978
|
-
*
|
|
979
|
-
* It lived in `efficient-storefront` as `FocalPicker`, and its own comment recorded
|
|
980
|
-
* the rule for moving it: card 66189 said *"the day a second section wants it,
|
|
981
|
-
* that is the card that promotes it"*. Card 66214 was that second caller and
|
|
982
|
-
* deliberately declined — the control was days old and had already changed
|
|
983
|
-
* signature once, so freezing its shape in a released package would have been
|
|
984
|
-
* early. That was right then.
|
|
985
|
-
*
|
|
986
|
-
* It is not right now: the shape has not moved since, and the sections that
|
|
987
|
-
* hold boxes take it past six call sites. A local copy with that many callers
|
|
988
|
-
* is the shape that becomes a second source, so it comes here — the rule its
|
|
989
|
-
* own author wrote, applied on the day it fires.
|
|
990
|
-
*
|
|
991
|
-
* ── WHAT IT DOES NOT DO ─────────────────────────────────────────────────────
|
|
992
|
-
*
|
|
993
|
-
* It renders the CONTROL only. The row around it — the glyph, the label, the
|
|
994
|
-
* caption — is `SettingsField`'s, exactly as `SettingsSwitch` splits. `label`
|
|
995
|
-
* is the radiogroup's accessible name, never a visible one.
|
|
996
|
-
*
|
|
997
|
-
* ── A CELL MAY DRAW A GLYPH INSTEAD OF ITS DOT ──────────────────────────────
|
|
998
|
-
*
|
|
999
|
-
* Nine positions are answered by "which square", and a dot is the smallest mark
|
|
1000
|
-
* that says "this one". ONE control asks a different question with the same
|
|
1001
|
-
* nine squares: the Scrolling Bar's `Scroll direction`, where four live cells
|
|
1002
|
-
* mean a direction of TRAVEL — and a dot cannot say which way. Those cells pass
|
|
1003
|
-
* an `icon` on the point, and it is drawn in place of the dot.
|
|
1004
|
-
*
|
|
1005
|
-
* THE GLYPH COMES FROM THE ICON LIBRARY, never from in here. `efficient-easel/icons`
|
|
1006
|
-
* holds `direction-left`, `direction-right`, `direction-up` and `direction-down`
|
|
1007
|
-
* for exactly this control. A shape drawn inside this component would be the
|
|
1008
|
-
* second source of truth the whole package exists to prevent — the same rule
|
|
1009
|
-
* that stops a panel drawing its own glyph one level up.
|
|
1010
|
-
*
|
|
1011
|
-
* It also holds no opinion about what a position MEANS. The host hands nine
|
|
1012
|
-
* values and gets one back; whether that value becomes a CSS `object-position`
|
|
1013
|
-
* or a grid anchor is the host's business, and keeping it that way is what lets
|
|
1014
|
-
* one control answer both questions.
|
|
1015
|
-
*
|
|
1016
|
-
* ── AN EDITOR'S COMPOSITE, OF THE SHELL'S PARTS (UI-24 §2) ─────────────────
|
|
1017
|
-
*
|
|
1018
|
-
* The shell has a `RadioGroup` of labelled rows and no grid of positions, so
|
|
1019
|
-
* this picture of nine squares stays the editor's — but every cell is the
|
|
1020
|
-
* shell's `IconButton` (a `role="radio"`), its name the shell's `Tooltip`,
|
|
1021
|
-
* and the sheet draws only the picture: the track, the dot, the chosen cell.
|
|
1022
|
-
*
|
|
1023
|
-
* Controlled and hook-free, like every primitive here, so a Next server
|
|
1024
|
-
* component can import this module.
|
|
1025
|
-
*/
|
|
1026
|
-
declare function SettingsPlacement({ label, value, points, onChange, id, className, }: SettingsPlacementProps): react.JSX.Element;
|
|
1027
|
-
|
|
1028
|
-
/**
|
|
1029
|
-
* Four corners of a box, any number of them lit — "which of these corners?".
|
|
1030
|
-
*
|
|
1031
|
-
* ── WHY IT IS NOT {@link SettingsPlacement} WITH FOUR CELLS ──────────────────
|
|
1032
|
-
*
|
|
1033
|
-
* The nine-square asks WHICH ONE and gets one answer back; a radiogroup, and
|
|
1034
|
-
* pressing a second cell releases the first. This asks WHICH ONES and gets a
|
|
1035
|
-
* set: a merchant rounding a stack of boxes turns on the top two of the box at
|
|
1036
|
-
* the top and the bottom two of the box at the bottom, so the run reads as one
|
|
1037
|
-
* shape. Those are different questions with different keyboards — a radiogroup
|
|
1038
|
-
* moves with the arrows and admits exactly one, a set is toggled with Space and
|
|
1039
|
-
* admits any number — so they are two controls rather than one control with a
|
|
1040
|
-
* `multiple` flag that changes what its own ARIA means.
|
|
1041
|
-
*
|
|
1042
|
-
* They still look like siblings, because a merchant meeting the second one
|
|
1043
|
-
* should already know how to press it: the same track, the same chip, the same
|
|
1044
|
-
* "the chosen thing is the darkest thing here" reading the placement grid and
|
|
1045
|
-
* the segmented strip already share.
|
|
1046
|
-
*
|
|
1047
|
-
* ── THE CELL DRAWS THE ANSWER, NOT A DOT ────────────────────────────────────
|
|
1048
|
-
*
|
|
1049
|
-
* The placement grid's cell holds a dot, because a POSITION has no shape of its
|
|
1050
|
-
* own to show. A corner does: each cell here holds a small square whose matching
|
|
1051
|
-
* corner is rounded when the corner is on, and square when it is off. So the
|
|
1052
|
-
* control is a picture of what the setting does rather than four labels a
|
|
1053
|
-
* merchant has to hold in their head — and it stays readable for someone who
|
|
1054
|
-
* cannot separate the accent from the ground, because the SHAPE carries the
|
|
1055
|
-
* state as well as the fill.
|
|
1056
|
-
*
|
|
1057
|
-
* ── WHAT IT DOES NOT DO ─────────────────────────────────────────────────────
|
|
1058
|
-
*
|
|
1059
|
-
* It renders the CONTROL only. The row around it — the glyph, the label, the
|
|
1060
|
-
* caption — is `SettingsField`'s, the same split `SettingsSwitch` and
|
|
1061
|
-
* `SettingsPlacement` make. `label` is the group's accessible name, never a
|
|
1062
|
-
* visible one.
|
|
1063
|
-
*
|
|
1064
|
-
* It also holds no opinion about what a corner MEANS. The host hands the four
|
|
1065
|
-
* corners it wants offered and gets a set back; whether that set becomes a
|
|
1066
|
-
* `border-radius` shorthand, four custom properties or a stored preset is the
|
|
1067
|
-
* host's business, and keeping it that way is what lets one control serve a
|
|
1068
|
-
* section box, a card and whatever asks next.
|
|
1069
|
-
*
|
|
1070
|
-
* ⚠️ IT HAS NO OPINION ABOUT "ALL FOUR" EITHER. An empty set is a real answer
|
|
1071
|
-
* (every corner square) and so is a full one; a host that treats absence as
|
|
1072
|
-
* "all four" resolves that BEFORE handing `value` in, exactly as the placement
|
|
1073
|
-
* grid requires its value already resolved. A control that invented the default
|
|
1074
|
-
* would be answering a question only the host can answer.
|
|
1075
|
-
*
|
|
1076
|
-
* ── AN EDITOR'S COMPOSITE, OF THE SHELL'S PARTS (UI-24 §2) ─────────────────
|
|
1077
|
-
*
|
|
1078
|
-
* The shell's `Segmented` answers ONE of a set, and it has no set of toggles,
|
|
1079
|
-
* so the four corners stay the editor's picture — but every cell is the
|
|
1080
|
-
* shell's `IconButton` (`aria-pressed`), its name the shell's `Tooltip`, and
|
|
1081
|
-
* the sheet draws only the picture: the track, the frame and the marks.
|
|
1082
|
-
*
|
|
1083
|
-
* Controlled and hook-free, like every primitive here, so a Next server
|
|
1084
|
-
* component can import this module.
|
|
1085
|
-
*/
|
|
1086
|
-
declare function SettingsCorners({ label, value, corners, onChange, id, className, }: SettingsCornersProps): react.JSX.Element;
|
|
1087
|
-
|
|
1088
870
|
/**
|
|
1089
871
|
* A FULL-WIDTH BUTTON UNDER A GROUP'S ROWS THAT COMMITS A CHANGE.
|
|
1090
872
|
*
|
|
@@ -1138,4 +920,4 @@ declare function SettingsCorners({ label, value, corners, onChange, id, classNam
|
|
|
1138
920
|
*/
|
|
1139
921
|
declare function SettingsAction({ label, onPress, disabled, note, done, doneLabel, icon, id, className, }: SettingsActionProps): react.JSX.Element;
|
|
1140
922
|
|
|
1141
|
-
export { SettingsAction, type SettingsActionBaseProps, type SettingsActionNote, type SettingsActionProps,
|
|
923
|
+
export { SettingsAction, type SettingsActionBaseProps, type SettingsActionNote, type SettingsActionProps, SettingsDefaultReset, type SettingsDefaultResetProps, SettingsDrill, type SettingsDrillProps, SettingsField, type SettingsFieldProps, SettingsGroup, SettingsGroupHead, type SettingsGroupHeadProps, type SettingsGroupProps, SettingsGroupSub, type SettingsGroupSubProps, SettingsSegmented, type SettingsSegmentedFit, type SettingsSegmentedOption, type SettingsSegmentedProps, SettingsSwitch, type SettingsSwitchBaseProps, type SettingsSwitchLabel, type SettingsSwitchProps, type SettingsTabItem, SettingsTabs, type SettingsTabsProps };
|
package/dist/panel/index.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
export{SETTINGS_BUCKETS,SettingsField,SettingsGroup,SettingsTabs}from"../chunk-YNOZ5NXW.js";import{DEFAULT_PANEL_WORDS as e}from"../chunk-QTLAVDJE.js";export{SettingsSegmented,SettingsSwitch}from"../chunk-QLD57GBB.js";import{withTip as
|
|
2
|
-
return
|
|
3
|
-
return
|
|
4
|
-
return
|
|
5
|
-
return
|
|
6
|
-
/* @__PURE__ */
|
|
7
|
-
/* @__PURE__ */
|
|
8
|
-
/* @__PURE__ */
|
|
9
|
-
return
|
|
10
|
-
|
|
11
|
-
/* @__PURE__ */
|
|
12
|
-
|
|
13
|
-
/* @__PURE__ */s("button",{type:"button",id:o,className:t?"es-action is-done":"es-action",disabled:i,"aria-describedby":b,onClick:l,children:[c?/* @__PURE__ */a("span",{className:"es-action-icon","aria-hidden":"true",children:c}):null,
|
|
14
|
-
/* @__PURE__ */a("span",{className:"es-action-label",children:m})]}),p?/* @__PURE__ */a("p",{id:b,className:"es-action-note",children:n}):null,
|
|
15
|
-
/* @__PURE__ */a("span",{className:"es-action-live",role:"status","aria-live":"polite",children:t?u:null})]})}export{f as SettingsAction,h as SettingsCorners,o as SettingsDefaultReset,p as SettingsDrill,r as SettingsGroupHead,c as SettingsGroupSub,b as SettingsPlacement};
|
|
1
|
+
export{SETTINGS_BUCKETS,SettingsField,SettingsGroup,SettingsTabs}from"../chunk-YNOZ5NXW.js";import{DEFAULT_PANEL_WORDS as e}from"../chunk-QTLAVDJE.js";export{SettingsSegmented,SettingsSwitch}from"../chunk-QLD57GBB.js";import{withTip as n}from"../chunk-P2VEMZH5.js";import{jsx as s,jsxs as t}from"react/jsx-runtime";import{RevertIcon as l}from"efficient-shell/icons/efficient";export{CornersInput as SettingsCorners,AlignmentGrid as SettingsPlacement}from"efficient-shell/ui";function i({title:e,level:n=3,id:t,className:l}){/* @__PURE__ */
|
|
2
|
+
return s(`h${n}`,{id:t,className:l?`es-group-head ${l}`:"es-group-head",children:e})}function a({title:e,level:n=4,id:t,className:l}){/* @__PURE__ */
|
|
3
|
+
return s(`h${n}`,{id:t,className:l?`es-group-sub ${l}`:"es-group-sub",children:e})}function r({label:t,changed:i,onReset:a,detail:r,disabled:u,defaultAction:p,words:m,className:h}){const b={...e,...m},f=["es-default-reset"];if(i&&f.push("is-changed"),h&&f.push(h),!i&&p)return f.push("is-pressable"),n(p.title,/* @__PURE__ */s("button",{type:"button",className:f.join(" "),"aria-label":p.title,disabled:u,onClick:p.onPress,children:p.icon}));if(!i)/* @__PURE__ */
|
|
4
|
+
return s("span",{className:f.join(" "),"aria-hidden":"true"});const N=b.resetName({label:t});return n(r?b.resetTitle({label:t,detail:r}):N,/* @__PURE__ */s("button",{type:"button",className:f.join(" "),"aria-label":N,"aria-description":r||void 0,disabled:u,onClick:e=>{a(),function(e){const n=e.currentTarget,s=n.closest(".es-field");let t=s?.querySelector(c(".es-field-ctl"))??s?.querySelector(c(".es-field-head"))??null,l=s?null:n.parentElement;for(let e=0;!t&&l&&e<d;e+=1,l=l.parentElement)t=[...l.querySelectorAll(o)].find(e=>e!==n)??null;t?.focus()}(e)},children:/* @__PURE__ */s(l,{size:15})}))}var o=['input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled]):not(.es-default-reset)",'[tabindex]:not([tabindex="-1"])'].join(", "),c=e=>o.split(", ").map(n=>`${e} ${n}`).join(", "),d=4;function u({name:e,preview:n,offPage:l,status:i,onOpen:a,id:r,className:o}){const c=null!=n;/* @__PURE__ */
|
|
5
|
+
return t("button",{type:"button",id:r,className:o?`es-drill ${o}`:"es-drill",onClick:a,children:[
|
|
6
|
+
/* @__PURE__ */t("span",{className:"es-drill-text",children:[
|
|
7
|
+
/* @__PURE__ */s("span",{className:"es-drill-name",children:e}),c?/* @__PURE__ */s("span",{className:l?"es-drill-preview is-offpage":"es-drill-preview",children:n}):null]}),i?/* @__PURE__ */s("span",{className:"es-drill-status",children:i}):null,
|
|
8
|
+
/* @__PURE__ */s("span",{className:"es-drill-chev","aria-hidden":"true"})]})}function p({label:e,onPress:n,disabled:l,note:i,done:a,doneLabel:r,icon:o,id:c,className:d}){const u=void 0===r?e:r,p=a?u:e,m=null!=i,h=m&&c?`${c}-note`:void 0;/* @__PURE__ */
|
|
9
|
+
return t("div",{className:d?`es-action-wrap ${d}`:"es-action-wrap",children:[
|
|
10
|
+
/* @__PURE__ */t("button",{type:"button",id:c,className:a?"es-action is-done":"es-action",disabled:l,"aria-describedby":h,onClick:n,children:[o?/* @__PURE__ */s("span",{className:"es-action-icon","aria-hidden":"true",children:o}):null,
|
|
11
|
+
/* @__PURE__ */s("span",{className:"es-action-label",children:p})]}),m?/* @__PURE__ */s("p",{id:h,className:"es-action-note",children:i}):null,
|
|
12
|
+
/* @__PURE__ */s("span",{className:"es-action-live",role:"status","aria-live":"polite",children:a?u:null})]})}export{p as SettingsAction,r as SettingsDefaultReset,u as SettingsDrill,i as SettingsGroupHead,a as SettingsGroupSub};
|
package/dist/panel/panel.css
CHANGED
|
@@ -1037,171 +1037,6 @@ button.es-group-head:hover { background: var(--es-chip-bg); }
|
|
|
1037
1037
|
.es-drill { transition: none; }
|
|
1038
1038
|
}
|
|
1039
1039
|
|
|
1040
|
-
/* ── SettingsPlacement — the 3×3 position grid ─────────────────────────────
|
|
1041
|
-
One control for two questions a merchant asks the same way: which part of a
|
|
1042
|
-
cropped picture stays in view, and where on the thing behind it a block sits.
|
|
1043
|
-
Both are one of nine positions, and both want the corner PRESSED.
|
|
1044
|
-
|
|
1045
|
-
Promoted out of efficient-storefront (`.sf-focal`) the day its own rule fired —
|
|
1046
|
-
card 66189 wrote "the day a second section wants it, that is the card that
|
|
1047
|
-
promotes it"; 66214 declined it early and said why; the sections that hold
|
|
1048
|
-
boxes take it past six callers. The values below are the shop's, token for
|
|
1049
|
-
token, so every existing caller draws exactly what it drew: the only change
|
|
1050
|
-
is that `--sf-*` aliases have become the `--es-*` names they always aliased. */
|
|
1051
|
-
.es-placement {
|
|
1052
|
-
display: grid;
|
|
1053
|
-
grid-template-columns: repeat(3, 1fr);
|
|
1054
|
-
grid-template-rows: repeat(3, 1fr);
|
|
1055
|
-
gap: 4px;
|
|
1056
|
-
width: 96px;
|
|
1057
|
-
height: 96px;
|
|
1058
|
-
padding: 4px;
|
|
1059
|
-
background: var(--es-track-bg);
|
|
1060
|
-
border: 1px solid var(--es-input-border);
|
|
1061
|
-
border-radius: var(--radius-lg);
|
|
1062
|
-
}
|
|
1063
|
-
/* Each cell is the shell's IconButton in its Tooltip's wrapper: the wrapper is
|
|
1064
|
-
the grid's item, and the button fills it. The button's own look (hover,
|
|
1065
|
-
focus ring, disabled) is the shell's. */
|
|
1066
|
-
.es-placement > span,
|
|
1067
|
-
.es-corners > span {
|
|
1068
|
-
display: flex;
|
|
1069
|
-
}
|
|
1070
|
-
.es-placement-cell,
|
|
1071
|
-
.es-corners-cell {
|
|
1072
|
-
width: 100%;
|
|
1073
|
-
height: 100%;
|
|
1074
|
-
}
|
|
1075
|
-
.es-placement-dot {
|
|
1076
|
-
width: 7px;
|
|
1077
|
-
height: 7px;
|
|
1078
|
-
border-radius: 50%;
|
|
1079
|
-
background: var(--es-muted);
|
|
1080
|
-
opacity: 0.5;
|
|
1081
|
-
transition: transform 0.12s, background 0.12s, opacity 0.12s;
|
|
1082
|
-
}
|
|
1083
|
-
.es-placement-cell:hover .es-placement-dot { opacity: 0.85; }
|
|
1084
|
-
/* ⚠️ THE CHOSEN CELL IS THE PANEL'S CHIP, NOT THE SHOP'S TINT — and that is a
|
|
1085
|
-
VISIBLE change to the control the shop ships today. `.sf-focal` marked its
|
|
1086
|
-
chosen square with `--sf-accent-tint` and a bigger accent dot; that is card
|
|
1087
|
-
8811's answer, which cards 66138 and 66302 replaced everywhere else in this
|
|
1088
|
-
panel. The strip tells the chosen chip apart by being the DARKEST thing in
|
|
1089
|
-
the row on a grey track, and a nine-square asks the identical question —
|
|
1090
|
-
which one am I on — so it gets the identical answer. Two answers to one
|
|
1091
|
-
question, one panel apart, is the thing this package exists to prevent, and
|
|
1092
|
-
`panel-layout.test.ts` bans the tint token package-wide to keep it that way.
|
|
1093
|
-
The dot inverts with the ground, or it disappears into it. */
|
|
1094
|
-
.es-placement-cell.is-active {
|
|
1095
|
-
background: var(--es-text);
|
|
1096
|
-
box-shadow: var(--es-raised-shadow);
|
|
1097
|
-
}
|
|
1098
|
-
.es-placement-cell.is-active .es-placement-dot {
|
|
1099
|
-
background: var(--es-on-accent);
|
|
1100
|
-
opacity: 1;
|
|
1101
|
-
transform: scale(1.5);
|
|
1102
|
-
}
|
|
1103
|
-
/* A position the caller has closed. It keeps its square — nine that became
|
|
1104
|
-
eight would read as a broken control — and stops answering the pointer; the
|
|
1105
|
-
reason is the cell's description and its Tooltip. The cell is the shell
|
|
1106
|
-
IconButton's `aria-disabled` (efficient-shell 4.166.0), which fades the
|
|
1107
|
-
whole cell to 0.6 and shows the not-allowed cursor; the dot under that fade
|
|
1108
|
-
stays at the 0.22 it showed before the cell faded (0.22 / 0.6), and does not
|
|
1109
|
-
brighten on hover. */
|
|
1110
|
-
.es-placement-cell.is-off .es-placement-dot { opacity: calc(0.22 / 0.6); }
|
|
1111
|
-
/* A cell that draws a GLYPH instead of its dot — the Scrolling Bar's
|
|
1112
|
-
`Scroll direction`, where four live cells mean a direction of travel and a
|
|
1113
|
-
dot cannot say which way. It follows the cell through every state the dot
|
|
1114
|
-
does, or the chosen square goes dark and the arrow on it stays muted and
|
|
1115
|
-
disappears into the ground it is drawn on.
|
|
1116
|
-
13px, sized against the CELL and not against the settings column: a cell is
|
|
1117
|
-
26.67px across (96px box, 3×3, gap 4, padding 4) and the dot it stands in for
|
|
1118
|
-
is 7px, so 13px reads as a direction without crowding the 6px cell radius. */
|
|
1119
|
-
.es-placement-icon {
|
|
1120
|
-
display: flex;
|
|
1121
|
-
align-items: center;
|
|
1122
|
-
justify-content: center;
|
|
1123
|
-
color: var(--es-muted);
|
|
1124
|
-
opacity: 0.5;
|
|
1125
|
-
transition: color 0.12s, opacity 0.12s;
|
|
1126
|
-
}
|
|
1127
|
-
.es-placement-icon svg { width: 13px; height: 13px; display: block; }
|
|
1128
|
-
.es-placement-cell:hover .es-placement-icon { opacity: 0.85; }
|
|
1129
|
-
/* ⚠️ IT DOES NOT GROW THE WAY THE DOT DOES. The dot scales to 1.5 on the chosen
|
|
1130
|
-
cell because a dot has no other way to say "chosen"; an arrow says its whole
|
|
1131
|
-
meaning by its shape, and growing it would crowd the square and make it read
|
|
1132
|
-
heavier than its three siblings. Colour alone marks it, on the inverted
|
|
1133
|
-
ground the cell already paints. */
|
|
1134
|
-
.es-placement-cell.is-active .es-placement-icon {
|
|
1135
|
-
color: var(--es-on-accent);
|
|
1136
|
-
opacity: 1;
|
|
1137
|
-
}
|
|
1138
|
-
.es-placement-cell.is-off .es-placement-icon { opacity: calc(0.22 / 0.6); }
|
|
1139
|
-
/* Keyboard focus is visible, like every other control in this panel. */
|
|
1140
|
-
@media (prefers-reduced-motion: reduce) {
|
|
1141
|
-
.es-placement-icon,
|
|
1142
|
-
.es-placement-dot { transition: none; }
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
/* ── SettingsCorners — four corners of a box, any number of them lit ─────────
|
|
1146
|
-
The sibling of `.es-placement` above and deliberately built from its parts:
|
|
1147
|
-
the same track, the same chip on the chosen cell, the same focus ring. A
|
|
1148
|
-
merchant who has met the nine-square should not have to learn this one.
|
|
1149
|
-
|
|
1150
|
-
TWO COLUMNS, NOT THREE. The grid is 2×2 and each cell sits in the corner it
|
|
1151
|
-
stands for, so the control has the shape of the thing it edits. */
|
|
1152
|
-
.es-corners {
|
|
1153
|
-
position: relative;
|
|
1154
|
-
display: grid;
|
|
1155
|
-
grid-template-columns: repeat(2, 1fr);
|
|
1156
|
-
grid-template-rows: repeat(2, 1fr);
|
|
1157
|
-
gap: 4px;
|
|
1158
|
-
width: 96px;
|
|
1159
|
-
height: 96px;
|
|
1160
|
-
padding: 4px;
|
|
1161
|
-
background: var(--es-track-bg);
|
|
1162
|
-
border-radius: var(--radius-lg);
|
|
1163
|
-
}
|
|
1164
|
-
/* The BOX the four corners belong to. Inset so the cells sit ON its corners
|
|
1165
|
-
rather than beside it, dashed so it reads as the outline of the thing being
|
|
1166
|
-
edited rather than as a fifth control. See the note in SettingsCorners.tsx:
|
|
1167
|
-
without this the cells are four switches, not one box. */
|
|
1168
|
-
.es-corners-frame {
|
|
1169
|
-
position: absolute;
|
|
1170
|
-
inset: 22px;
|
|
1171
|
-
border: 1.5px dashed var(--es-muted);
|
|
1172
|
-
opacity: 0.45;
|
|
1173
|
-
pointer-events: none;
|
|
1174
|
-
}
|
|
1175
|
-
.es-corners-mark {
|
|
1176
|
-
width: 18px;
|
|
1177
|
-
height: 18px;
|
|
1178
|
-
background: var(--es-muted);
|
|
1179
|
-
opacity: 0.5;
|
|
1180
|
-
transition: border-radius 0.12s, background 0.12s, opacity 0.12s;
|
|
1181
|
-
}
|
|
1182
|
-
.es-corners-cell:hover .es-corners-mark { opacity: 0.85; }
|
|
1183
|
-
/* ⚠️ THE FOUR RULES ARE WRITTEN OUT, ONE PER CORNER, and must stay written out.
|
|
1184
|
-
The corner a cell stands for is in its class name (`es-corners-tl`), and a
|
|
1185
|
-
radius built by interpolating that name is a string no stylesheet contains —
|
|
1186
|
-
the same trap the shop documents on its own card wells. Four rules is the
|
|
1187
|
-
whole cost of never having that bug. */
|
|
1188
|
-
.es-corners-cell.is-on .es-corners-mark {
|
|
1189
|
-
background: var(--es-accent);
|
|
1190
|
-
opacity: 1;
|
|
1191
|
-
}
|
|
1192
|
-
.es-corners-tl.is-on .es-corners-mark { border-radius: var(--radius-lg) 0 0 0; }
|
|
1193
|
-
.es-corners-tr.is-on .es-corners-mark { border-radius: 0 var(--radius-lg) 0 0; }
|
|
1194
|
-
.es-corners-br.is-on .es-corners-mark { border-radius: 0 0 var(--radius-lg) 0; }
|
|
1195
|
-
.es-corners-bl.is-on .es-corners-mark { border-radius: 0 0 0 var(--radius-lg); }
|
|
1196
|
-
/* A corner the caller has closed. It keeps its cell — four that became three
|
|
1197
|
-
would read as a broken control — and stops answering the pointer; the reason
|
|
1198
|
-
is on the button's `title`. */
|
|
1199
|
-
.es-corners-cell.is-off .es-corners-mark { opacity: calc(0.22 / 0.6); }
|
|
1200
|
-
/* Keyboard focus is visible, like every other control in this panel. */
|
|
1201
|
-
@media (prefers-reduced-motion: reduce) {
|
|
1202
|
-
.es-corners-mark { transition: none; }
|
|
1203
|
-
}
|
|
1204
|
-
|
|
1205
1040
|
/* ── THE ACTION BUTTON (`[ADD] A Panel Button That Does One Thing`) ─────────────────────────────────────────
|
|
1206
1041
|
The full-width press under a group's rows that COMMITS — "Apply to all
|
|
1207
1042
|
cards". Measured against `.es-drill`, the panel's other full-width row, and
|
|
@@ -75,6 +75,25 @@ declare function planSetProps(data: Data, config: DataConfig, id: string, patch:
|
|
|
75
75
|
* - a top-level node, or nothing selected: `null` (there is nothing above).
|
|
76
76
|
*/
|
|
77
77
|
declare function parentStep(data: Data, config: DataConfig, selection: NodeSelection, slotIsLevel?: (parent: Node, slot: string) => boolean): NodeSelection;
|
|
78
|
+
/**
|
|
79
|
+
* The nodes from the outermost (the top-level node) down to `id`, by id — the
|
|
80
|
+
* CHAIN a click on the canvas walks (`nextInChain`). Read off `find`'s path,
|
|
81
|
+
* the same lookup `parentStep` climbs, so "what holds what" is asked of the
|
|
82
|
+
* document once. Empty when `id` is not in it.
|
|
83
|
+
*/
|
|
84
|
+
declare function nodeChain(data: Data, config: DataConfig, id: string): string[];
|
|
85
|
+
/**
|
|
86
|
+
* CLICK THROUGH LAYERS (owner 2026-10-12, Wix's rule): what a click on a chain
|
|
87
|
+
* picks, given what is selected now. `chain` is outer → inner.
|
|
88
|
+
*
|
|
89
|
+
* - the selection is in the chain and not its last rung → the next rung in;
|
|
90
|
+
* - the selection IS the last rung → it stays (a click never wraps back out);
|
|
91
|
+
* - anything else (nothing, or something outside the chain) → the first rung.
|
|
92
|
+
*
|
|
93
|
+
* Pure, and over plain ids, so a host that adds rungs of its own (the website's
|
|
94
|
+
* parts: a section's background image) walks them by the SAME rule.
|
|
95
|
+
*/
|
|
96
|
+
declare function nextInChain(chain: readonly string[], selected: string | null): string | null;
|
|
78
97
|
/** A node by its place: the zone key `"<parentId>:<slot>"` and its index. */
|
|
79
98
|
interface ItemSelector {
|
|
80
99
|
zone?: string;
|
|
@@ -85,4 +104,4 @@ declare function toItemSelector(data: Data, config: DataConfig, selection: NodeS
|
|
|
85
104
|
/** Puck's `itemSelector` as a node selection; `null` when it points at nothing. */
|
|
86
105
|
declare function fromItemSelector(data: Data, config: DataConfig, selector: ItemSelector | null | undefined): NodeSelection;
|
|
87
106
|
|
|
88
|
-
export { type AfterRemove as A, type ItemSelector as I, type NodeSelection as N, type Planned as P, type StepBounds as S,
|
|
107
|
+
export { type AfterRemove as A, type ItemSelector as I, type NodeSelection as N, type Planned as P, type StepBounds as S, nodeChain as a, planDuplicate as b, canStep as c, planMove as d, planPaste as e, fromItemSelector as f, planRemove as g, planSetProps as h, planStep as i, nextInChain as n, parentStep as p, toItemSelector as t };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{AddBlockRow as default}from"../../chunk-
|
|
1
|
+
export{AddBlockRow as default}from"../../chunk-LMHGVI5R.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-55IKQFBW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-BF3PIXZD.js";import"../../chunk-PDZXAFNX.js";import"../../chunk-AELNNAFM.js";import"../../chunk-CRPJGCSO.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-UFY6RNMT.js";import"../../chunk-YNOZ5NXW.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-QASZFO4S.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{blockKey,AddSidePanel as default,sectionKey,templateKey}from"../../chunk-
|
|
1
|
+
export{blockKey,AddSidePanel as default,sectionKey,templateKey}from"../../chunk-2WVZ3CK3.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-5SOSVTVI.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-55IKQFBW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-BF3PIXZD.js";import"../../chunk-PDZXAFNX.js";import"../../chunk-AELNNAFM.js";import"../../chunk-CRPJGCSO.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-UFY6RNMT.js";import"../../chunk-YNOZ5NXW.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-QASZFO4S.js";import"../../chunk-GTDLBUOC.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-6HHHBBSY.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -2,18 +2,18 @@ import * as react from 'react';
|
|
|
2
2
|
import { MediaPanelComponent, MediaPickRequest } from '../lib/media-panel.js';
|
|
3
3
|
import '../../host-CiuzZJXj.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
|
-
import '../../types-
|
|
5
|
+
import '../../types-CGFykP7c.js';
|
|
6
6
|
import '../../data/index.js';
|
|
7
7
|
import '../../types-41704JE4.js';
|
|
8
8
|
import '../../resolve-D68pb3Bx.js';
|
|
9
|
-
import '../../plan-
|
|
9
|
+
import '../../plan-BdQ9mLIf.js';
|
|
10
10
|
import '../lib/document-contract.js';
|
|
11
11
|
import '../lib/session.js';
|
|
12
12
|
import '../lib/backend-error.js';
|
|
13
13
|
import '../../edit-lock/index.js';
|
|
14
14
|
import '../lib/host-chrome.js';
|
|
15
15
|
import '../lib/links/link-filters.js';
|
|
16
|
-
import '
|
|
16
|
+
import 'efficient-shell/ui';
|
|
17
17
|
import '../lib/document-hooks.js';
|
|
18
18
|
import '../lib/section-template-types.js';
|
|
19
19
|
import '../lib/puck/content-tree.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{MediaSidePanel as default}from"../../chunk-
|
|
1
|
+
export{MediaSidePanel as default}from"../../chunk-ZN752E2O.js";import"../../chunk-55IKQFBW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-PDZXAFNX.js";import"../../chunk-AELNNAFM.js";import"../../chunk-CRPJGCSO.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-UFY6RNMT.js";import"../../chunk-YNOZ5NXW.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-QASZFO4S.js";import"../../chunk-GTDLBUOC.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { E as EaselContextMenuItem } from '../../types-BsyPh6EW.js';
|
|
3
3
|
import { P as Place } from '../../types-41704JE4.js';
|
|
4
|
-
import { N as NodeClipboard, C as ClipboardEntry, a as NodeOps } from '../../useNodeOps-
|
|
4
|
+
import { N as NodeClipboard, C as ClipboardEntry, a as NodeOps } from '../../useNodeOps-B3e4b8a2.js';
|
|
5
|
+
import { N as NodeMenuWords } from '../../words-DMG4dYq2.js';
|
|
5
6
|
import { StyleSnapshot } from '../../style-clipboard/index.js';
|
|
7
|
+
import { S as StyleClipboardWords } from '../../words-CnnHb9jo.js';
|
|
8
|
+
import { ScreenMenuWords } from '../words.js';
|
|
6
9
|
import { C as CanvasTarget } from '../../watch-BTYOJpQU.js';
|
|
7
10
|
import { AddTarget } from '../lib/puck/add-target-types.js';
|
|
8
11
|
import { ScreenMenuRows } from '../lib/screen-parts.js';
|
|
9
12
|
import { EaselSession } from '../lib/session.js';
|
|
10
|
-
import '../../plan-
|
|
11
|
-
import '../../words-CnnHb9jo.js';
|
|
13
|
+
import '../../plan-BdQ9mLIf.js';
|
|
12
14
|
import '../lib/puck/block-choice.js';
|
|
13
15
|
import '../lib/puck/slot-section-spec.js';
|
|
14
16
|
import '../../blocks/index.js';
|
|
15
|
-
import '../../types-
|
|
17
|
+
import '../../types-CGFykP7c.js';
|
|
16
18
|
import '../../data/index.js';
|
|
17
19
|
import '../../resolve-D68pb3Bx.js';
|
|
18
20
|
import '../../types-Dt1CFR1S.js';
|
|
@@ -35,7 +37,7 @@ import '../../engine-DBxp_v6B.js';
|
|
|
35
37
|
import '../lib/admin-bridge.js';
|
|
36
38
|
import '../lib/host-chrome.js';
|
|
37
39
|
import '../lib/links/link-filters.js';
|
|
38
|
-
import '
|
|
40
|
+
import 'efficient-shell/ui';
|
|
39
41
|
import '../lib/backend-error.js';
|
|
40
42
|
import '../lib/document-hooks.js';
|
|
41
43
|
|
|
@@ -166,6 +168,18 @@ type NodeMenuHost = {
|
|
|
166
168
|
* Absent: "Page settings", as the row always said.
|
|
167
169
|
*/
|
|
168
170
|
pageSettingsLabel?: string;
|
|
171
|
+
/**
|
|
172
|
+
* THE MENU'S WORDS in the host's language (3.1.0): a node's rows
|
|
173
|
+
* (`EaselStrings.menu`), Copy style and Paste style (`styleClipboard`), and
|
|
174
|
+
* the screen's own rows and lines (`screen.menu`). The rows are built by
|
|
175
|
+
* plain functions, which read no provider, so the chrome hands them in.
|
|
176
|
+
* Left out, or any part of it: English.
|
|
177
|
+
*/
|
|
178
|
+
words?: {
|
|
179
|
+
menu?: NodeMenuWords;
|
|
180
|
+
styleClipboard?: StyleClipboardWords;
|
|
181
|
+
screen?: ScreenMenuWords;
|
|
182
|
+
};
|
|
169
183
|
/**
|
|
170
184
|
* NOTHING MAY BE WRITTEN (0.106.0): the document is frozen, somebody else
|
|
171
185
|
* holds it, or a save was refused (`ScreenDocumentValue.readOnly`). The rows
|
|
@@ -542,18 +556,6 @@ declare function nodeMenuItems(host: NodeMenuHost, target: {
|
|
|
542
556
|
zone: string;
|
|
543
557
|
index: number;
|
|
544
558
|
}): EaselContextMenuItem[];
|
|
545
|
-
/**
|
|
546
|
-
* What a right-click on the PAGE offers — the tree's ground, the panel, the
|
|
547
|
-
* canvas between two sections.
|
|
548
|
-
*
|
|
549
|
-
* This ground used to fall through to Chrome, which is half of what the owner
|
|
550
|
-
* was pointing at: a right-click that sometimes gives you the editor and
|
|
551
|
-
* sometimes gives you Reload teaches you not to right-click at all.
|
|
552
|
-
*
|
|
553
|
-
* Everything here already exists on a button or a key. That is on purpose — a
|
|
554
|
-
* context menu is a second door to actions a merchant can already reach, never
|
|
555
|
-
* the only door to one, or the feature is hidden inside a gesture.
|
|
556
|
-
*/
|
|
557
559
|
declare function pageMenuItems(host: NodeMenuHost): EaselContextMenuItem[];
|
|
558
560
|
/**
|
|
559
561
|
* What a right-click INSIDE A TEXT BOX offers.
|