@wildwinter/expr-editor 0.14.1 → 0.15.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/dist/styles.css CHANGED
@@ -348,6 +348,7 @@
348
348
  padding: 0.35rem;
349
349
  min-width: 9rem;
350
350
  max-width: 20rem;
351
+ overflow: auto;
351
352
  }
352
353
  .exed-menu {
353
354
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles.css"],"sourcesContent":["/* @wildwinter/expr-editor — styles. Colours come from the host's design tokens\n (var(--accent) etc.) when present, with neutral fallbacks for standalone use.\n Pill-type hues are overridable via the --exed-* variables. */\n\n/* The --exed-* tokens must apply to the mount host (.exed-root), the floating popovers (.exed-pop,\n appended to document.body OUTSIDE the host), AND read-only pill previews (.exed-preview, dropped\n into host chrome like an inspector row) - otherwise those pills lose the variables and render with\n a transparent background. They resolve the host's --surface etc. from :root via the cascade. */\n.exed-root, .exed-pop, .exed-preview {\n --exed-line: var(--line, #d8d2c4);\n --exed-surface: var(--surface, #fff);\n --exed-bg: var(--bg, #f6f3ec);\n --exed-ink: var(--ink, #2b2b2b);\n --exed-soft: var(--ink-soft, #555);\n --exed-muted: var(--muted, #8a8270);\n --exed-accent: var(--accent, #8a5a34);\n --exed-var: var(--exed-accent);\n --exed-bool: #5a7d3c;\n --exed-number: #3a6ea5;\n --exed-string: #9a7d1e;\n --exed-tag: #9a4d6e;\n --exed-func: #3a8a8a;\n --exed-flagpos: #4a7d52;\n --exed-flagneg: #a55142;\n --exed-err: #b3261e;\n --exed-radius: 6px;\n}\n.exed-root {\n font: 0.82rem var(--font-ui, system-ui, sans-serif);\n color: var(--exed-ink);\n display: flex; flex-direction: column; gap: 0.4rem;\n}\n\n/* raw-text fallback */\n.exed-rawwrap { display: flex; flex-direction: column; gap: 0.3rem; }\n.exed-raw { width: 100%; box-sizing: border-box; font: 0.82rem var(--font-mono, monospace); color: var(--exed-ink); background: var(--exed-bg); border: 1px solid var(--exed-line); border-radius: var(--exed-radius); padding: 0.45rem 0.55rem; resize: vertical; }\n.exed-raw:focus { outline: none; border-color: var(--exed-accent); }\n\n/* pills */\n.exed-pill {\n display: inline-flex; align-items: center; cursor: pointer; white-space: nowrap;\n border: 0; border-radius: var(--exed-radius); padding: 0.08rem 0.42rem; margin: 0.06rem 0;\n font: 600 0.78rem var(--font-ui, system-ui, sans-serif); color: #fff; line-height: 1.5;\n}\n.exed-pill:hover { filter: brightness(1.08); }\n.exed-pill-var { background: var(--exed-var); }\n.exed-pill-bool { background: var(--exed-bool); }\n.exed-pill-number { background: var(--exed-number); }\n.exed-pill-string { background: var(--exed-string); }\n.exed-pill-tag { background: var(--exed-tag); }\n.exed-pill-node { background: var(--exed-tag); }\n.exed-pill-func { background: var(--exed-func); }\n/* `advances` stands where a value would, but it is a verb, not a value: same function colour, worn\n lightly (no fill) so the row reads `debt advances` as a sentence rather than as an assignment. */\n.exed-pill-advance { background: none; color: var(--exed-func); font-style: italic; padding-left: 0.1rem; }\n.exed-pill-advance:hover { background: color-mix(in oklab, var(--exed-func) 16%, transparent); filter: none; }\n\n/* read-only pill previews (inspector rows): pills as in the editor, but inert - a click falls\n through to the wrapping \"open editor\" control. */\n.exed-preview { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.12rem; pointer-events: none; }\n/* Interactive preview: property pills accept the right-click menu; left-click\n still has no editor bound (its handler is a no-op) so it bubbles to the host. */\n.exed-preview-interactive .exed-pill-var,\n.exed-preview-interactive .exed-pill-prop { pointer-events: auto; cursor: context-menu; }\n.exed-preview-effects { flex-direction: column; align-items: flex-start; gap: 0.15rem; }\n.exed-preview-eff { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.12rem; }\n.exed-preview-raw { font: 0.76rem var(--font-mono, monospace); color: var(--exed-muted); }\n.exed-pill-flagpos { background: var(--exed-flagpos); }\n.exed-pill-flagneg { background: var(--exed-flagneg); }\n.exed-pill-op { background: transparent; color: var(--exed-soft); font-weight: 700; padding: 0.08rem 0.3rem; }\n.exed-op-structural { color: var(--exed-muted); }\n.exed-pill-err { box-shadow: 0 0 0 2px var(--exed-err); text-decoration: line-through; }\n.exed-pill-always { background: var(--exed-bg); color: var(--exed-muted); border: 1px dashed var(--exed-line); font-weight: 500; }\n.exed-pill-placeholder { background: transparent; color: var(--exed-muted); border: 1px dashed var(--exed-line); font-style: italic; font-weight: 500; }\n.exed-pill-placeholder:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n.exed-paren, .exed-comma { color: var(--exed-muted); }\n/* compact flag-delta call (`@prop: +a -b`): the colon hugs the property */\n.exed-flagsep { color: var(--exed-muted); margin-left: -0.1rem; }\n.exed-call, .exed-unary, .exed-binary { display: inline-flex; align-items: center; gap: 0.1rem; flex-wrap: wrap; }\n\n/* flat body */\n.exed-flat { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.15rem; padding: 0.3rem; border: 1px solid var(--exed-line); border-radius: var(--exed-radius); background: var(--exed-surface); }\n\n/* tree */\n.exed-tree { display: flex; flex-direction: column; gap: 0.3rem; }\n.exed-group { border: 1px solid var(--exed-line); border-radius: var(--exed-radius); background: var(--exed-surface); }\n.exed-grouphead { display: flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.4rem; border-bottom: 1px solid var(--exed-line); background: color-mix(in oklab, var(--exed-accent) 5%, transparent); }\n.exed-grouplabel, .exed-flip { font: 700 0.68rem var(--font-ui, system-ui); letter-spacing: 0.04em; color: var(--exed-accent); }\n.exed-flip { background: none; border: 1px solid transparent; border-radius: 5px; cursor: pointer; padding: 0.05rem 0.35rem; }\n.exed-flip:hover { border-color: var(--exed-accent); }\n.exed-groupbody { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.4rem; }\n.exed-group-or > .exed-grouphead { background: color-mix(in oklab, var(--exed-number) 8%, transparent); }\n\n/* per-child row: left-gutter AND/OR connector + the clause content */\n.exed-child { display: flex; align-items: baseline; gap: 0.3rem; }\n.exed-child > .exed-row, .exed-child > .exed-group, .exed-child > .exed-placeholder { flex: 1 1 auto; min-width: 0; }\n.exed-connector { flex: 0 0 auto; min-width: 2.2rem; text-align: right; font: 700 0.62rem var(--font-ui, system-ui); letter-spacing: 0.05em; color: var(--exed-soft); }\n\n.exed-row { display: flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.3rem; border-radius: var(--exed-radius); }\n.exed-row:hover { background: color-mix(in oklab, var(--exed-accent) 5%, transparent); }\n.exed-rowcontent { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.15rem; flex: 1; }\n.exed-not { font: 700 0.64rem var(--font-ui, system-ui); color: var(--exed-flagneg); letter-spacing: 0.04em; }\n.exed-rowacts { display: flex; gap: 0.15rem; margin-left: auto; }\n.exed-rowbtn { background: none; border: 1px solid transparent; border-radius: 4px; color: var(--exed-muted); cursor: pointer; font: 600 0.66rem var(--font-ui, system-ui); padding: 0.05rem 0.3rem; }\n.exed-rowbtn:hover { color: var(--exed-accent); border-color: var(--exed-line); }\n.exed-rowbtn.danger:hover { color: var(--exed-err); border-color: var(--exed-err); }\n\n.exed-addbar { display: flex; gap: 0.3rem; }\n.exed-add { background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: 600 0.7rem var(--font-ui, system-ui); padding: 0.15rem 0.5rem; }\n.exed-add:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n.exed-placeholder { width: 100%; text-align: left; background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: italic 0.74rem var(--font-ui, system-ui); padding: 0.2rem 0.5rem; }\n.exed-placeholder:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n\n/* validation messages */\n.exed-msgs { display: flex; flex-direction: column; gap: 0.15rem; }\n/* The box is appended on every render, empty when the expression is clean. An\n empty flex item is still an item, so the host column applies its gap to it -\n which pushes the visible body off-centre wherever the host vertically centres\n the editor (e.g. an effect row's [target] = [value] line). Take it out of\n layout when it has nothing to say. */\n.exed-msgs:empty { display: none; }\n.exed-msg { font: 0.72rem var(--font-ui, system-ui); }\n.exed-msg-error { color: var(--exed-err); }\n.exed-msg-warning { color: #9a7d1e; }\n\n/* popover */\n.exed-pop { position: absolute; z-index: 1000; background: var(--exed-surface); border: 1px solid var(--exed-line); border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,0.18); padding: 0.35rem; min-width: 9rem; max-width: 20rem; }\n.exed-menu { display: flex; flex-direction: column; gap: 0.1rem; }\n.exed-menu-head { font: 700 0.64rem var(--font-ui, system-ui); text-transform: uppercase; letter-spacing: 0.05em; color: var(--exed-muted); padding: 0.2rem 0.3rem; }\n.exed-hint { font: italic 0.72rem var(--font-ui, system-ui); color: var(--exed-muted); padding: 0.1rem 0.3rem; }\n.exed-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 0.05rem; text-align: left; width: 100%; background: none; border: 0; border-radius: 5px; cursor: pointer; color: var(--exed-ink); font: 0.8rem var(--font-ui, system-ui); padding: 0.3rem 0.4rem; }\n.exed-opt:hover { background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-opt.sel { background: color-mix(in oklab, var(--exed-accent) 18%, transparent); color: var(--exed-accent); font-weight: 600; }\n.exed-opt.danger:hover { background: color-mix(in oklab, var(--exed-err) 14%, transparent); color: var(--exed-err); }\n.exed-opt.disabled { opacity: 0.4; cursor: not-allowed; }\n.exed-opt.disabled:hover { background: none; }\n.exed-opt-name { font-weight: 600; }\n.exed-opt-type { font: 0.66rem var(--font-mono, monospace); color: var(--exed-muted); }\n.exed-opt-purpose { font-size: 0.7rem; color: var(--exed-muted); }\n/* An operator option is glyph + plain word, and both are short: one line, side by side, so a\n six-operator menu stays a scannable column of operators rather than twelve stacked lines. */\n.exed-opt-op { flex-direction: row; align-items: baseline; gap: 0.45rem; }\n.exed-opt-op .exed-opt-name { min-width: 1.1rem; }\n.exed-field-row { display: flex; gap: 0.3rem; align-items: center; }\n/* +set / −unset flag sign toggle - emerald / rose active, matching the flag pills. */\n.exed-sign { display: flex; gap: 0.3rem; }\n.exed-signbtn { flex: 1; text-align: center; border: 0; border-radius: 5px; cursor: pointer; padding: 0.25rem 0.5rem; font: 600 0.75rem var(--font-mono, monospace); background: var(--exed-bg); color: var(--exed-soft); }\n.exed-signbtn:hover { background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-signbtn.sel-pos { background: var(--exed-flagpos); color: #fff; }\n.exed-signbtn.sel-neg { background: var(--exed-flagneg); color: #fff; }\n\n/* value wizard (guided operand → operator → operand) */\n.exed-vwiz { display: flex; flex-direction: column; gap: 0.3rem; min-width: 12rem; }\n.exed-vwiz-head { display: flex; align-items: center; gap: 0.3rem; border-bottom: 1px solid var(--exed-line); padding-bottom: 0.3rem; }\n.exed-vwiz-title { font: 600 0.72rem var(--font-ui, system-ui); color: var(--exed-ink); }\n.exed-vwiz-mono { font-family: var(--font-mono, monospace); color: var(--exed-accent); }\n.exed-vwiz-back { background: none; border: 0; cursor: pointer; color: var(--exed-muted); font-size: 0.85rem; padding: 0 0.2rem; border-radius: 4px; }\n.exed-vwiz-back:hover { color: var(--exed-accent); }\n.exed-vwiz-body { display: flex; flex-direction: column; gap: 0.1rem; }\n.exed-vwiz-other { background: none; border: 0; cursor: pointer; color: var(--exed-muted); font: 0.72rem var(--font-ui, system-ui); text-align: left; padding: 0.25rem 0.4rem; margin-top: 0.15rem; }\n.exed-vwiz-other:hover { color: var(--exed-accent); }\n.exed-field-cap, .exed-picker-scope { font: 700 0.64rem var(--font-ui, system-ui); text-transform: uppercase; letter-spacing: 0.05em; color: var(--exed-muted); padding: 0.2rem 0.3rem 0.1rem; }\n.exed-input { font: 0.82rem var(--font-ui, system-ui); color: var(--exed-ink); background: var(--exed-bg); border: 1px solid var(--exed-line); border-radius: 5px; padding: 0.25rem 0.4rem; flex: 1; min-width: 6rem; }\n.exed-input:focus { outline: none; border-color: var(--exed-accent); }\n.exed-btn { background: var(--exed-accent); color: #fff; border: 0; border-radius: 5px; cursor: pointer; font: 600 0.72rem var(--font-ui, system-ui); padding: 0.25rem 0.55rem; }\n.exed-btn:disabled { opacity: 0.45; cursor: default; }\n.exed-picker { display: flex; flex-direction: column; gap: 0.3rem; min-width: 13rem; }\n.exed-picker-list { max-height: 16rem; overflow: auto; display: flex; flex-direction: column; }\n/* Rows keep their natural height when the list outgrows the 16rem cap. Without this, flex SHRINKS\n the rows instead of scrolling - <button> flex items (.exed-opt) have no automatic content-based\n minimum size - crushing every option to an unreadable sliver in a property-heavy project. */\n.exed-picker-list > * { flex: none; }\n.exed-picker-foot { border-top: 1px solid var(--exed-line); padding-top: 0.2rem; }\n\n/* --- Effects editor (mountEffectsEditor) — a list of set / emit effects, each\n value/arg an embedded flat pill editor. Reuses the pill + popover chrome. */\n.exed-effects-root { display: flex; flex-direction: column; gap: 0.4rem; }\n.exed-effect-list { display: flex; flex-direction: column; gap: 0.4rem; }\n.exed-effect-empty { font: italic 0.74rem var(--font-ui, system-ui); color: var(--exed-muted); padding: 0.1rem 0.2rem; }\n.exed-effect { border: 1px solid var(--exed-line); border-radius: var(--exed-radius); padding: 0.35rem 0.45rem; background: var(--exed-bg); display: flex; flex-direction: column; gap: 0.25rem; }\n/* a `set` is one line: [target] = [value inline] [actions] (storylets ExpressionField layout) */\n.exed-effect-set { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 0.3rem; }\n.exed-effect-set > .exed-effect-value { flex: 1 1 auto; min-width: 0; padding-left: 0; }\n.exed-effect-head { display: flex; align-items: center; gap: 0.3rem; }\n.exed-effect-eq { color: var(--exed-muted); font: 600 0.8rem var(--font-mono, monospace); }\n.exed-effect-kw { color: var(--exed-func); font: 600 0.72rem var(--font-mono, monospace); }\n.exed-pill-prop { background: var(--exed-var); }\n.exed-pill-event { background: var(--exed-string); } /* a host event name is free author text - reads as a string, not a function */\n.exed-effect-acts { display: flex; gap: 0.1rem; margin-left: auto; }\n.exed-eff-icon { background: none; border: 0; cursor: pointer; color: var(--exed-muted); border-radius: 4px; font-size: 0.78rem; line-height: 1; padding: 0.12rem 0.28rem; }\n.exed-eff-icon:hover { color: var(--exed-accent); background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-eff-icon.danger:hover { color: var(--exed-err); background: color-mix(in oklab, var(--exed-err) 14%, transparent); }\n/* the value: a clickable pill strip that opens the guided wizard */\n.exed-effect-value { padding-left: 0.2rem; }\n/* the \"+ term\" chip on a value's pill strip: a quiet dashed affordance, like the tree add-bar */\n.exed-addterm { margin-left: 0.25rem; }\n.exed-effect-args { display: flex; flex-direction: column; gap: 0.2rem; padding-left: 0.2rem; }\n.exed-effect-arg { display: flex; align-items: flex-start; gap: 0.25rem; }\n.exed-effect-arg .exed-effect-value { flex: 1; }\n.exed-effect-addbar { display: flex; gap: 0.35rem; }\n.exed-eff-add { background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: 600 0.7rem var(--font-ui, system-ui); padding: 0.15rem 0.5rem; }\n.exed-eff-add:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/styles.css"],"sourcesContent":["/* @wildwinter/expr-editor — styles. Colours come from the host's design tokens\n (var(--accent) etc.) when present, with neutral fallbacks for standalone use.\n Pill-type hues are overridable via the --exed-* variables. */\n\n/* The --exed-* tokens must apply to the mount host (.exed-root), the floating popovers (.exed-pop,\n appended to document.body OUTSIDE the host), AND read-only pill previews (.exed-preview, dropped\n into host chrome like an inspector row) - otherwise those pills lose the variables and render with\n a transparent background. They resolve the host's --surface etc. from :root via the cascade. */\n.exed-root, .exed-pop, .exed-preview {\n --exed-line: var(--line, #d8d2c4);\n --exed-surface: var(--surface, #fff);\n --exed-bg: var(--bg, #f6f3ec);\n --exed-ink: var(--ink, #2b2b2b);\n --exed-soft: var(--ink-soft, #555);\n --exed-muted: var(--muted, #8a8270);\n --exed-accent: var(--accent, #8a5a34);\n --exed-var: var(--exed-accent);\n --exed-bool: #5a7d3c;\n --exed-number: #3a6ea5;\n --exed-string: #9a7d1e;\n --exed-tag: #9a4d6e;\n --exed-func: #3a8a8a;\n --exed-flagpos: #4a7d52;\n --exed-flagneg: #a55142;\n --exed-err: #b3261e;\n --exed-radius: 6px;\n}\n.exed-root {\n font: 0.82rem var(--font-ui, system-ui, sans-serif);\n color: var(--exed-ink);\n display: flex; flex-direction: column; gap: 0.4rem;\n}\n\n/* raw-text fallback */\n.exed-rawwrap { display: flex; flex-direction: column; gap: 0.3rem; }\n.exed-raw { width: 100%; box-sizing: border-box; font: 0.82rem var(--font-mono, monospace); color: var(--exed-ink); background: var(--exed-bg); border: 1px solid var(--exed-line); border-radius: var(--exed-radius); padding: 0.45rem 0.55rem; resize: vertical; }\n.exed-raw:focus { outline: none; border-color: var(--exed-accent); }\n\n/* pills */\n.exed-pill {\n display: inline-flex; align-items: center; cursor: pointer; white-space: nowrap;\n border: 0; border-radius: var(--exed-radius); padding: 0.08rem 0.42rem; margin: 0.06rem 0;\n font: 600 0.78rem var(--font-ui, system-ui, sans-serif); color: #fff; line-height: 1.5;\n}\n.exed-pill:hover { filter: brightness(1.08); }\n.exed-pill-var { background: var(--exed-var); }\n.exed-pill-bool { background: var(--exed-bool); }\n.exed-pill-number { background: var(--exed-number); }\n.exed-pill-string { background: var(--exed-string); }\n.exed-pill-tag { background: var(--exed-tag); }\n.exed-pill-node { background: var(--exed-tag); }\n.exed-pill-func { background: var(--exed-func); }\n/* `advances` stands where a value would, but it is a verb, not a value: same function colour, worn\n lightly (no fill) so the row reads `debt advances` as a sentence rather than as an assignment. */\n.exed-pill-advance { background: none; color: var(--exed-func); font-style: italic; padding-left: 0.1rem; }\n.exed-pill-advance:hover { background: color-mix(in oklab, var(--exed-func) 16%, transparent); filter: none; }\n\n/* read-only pill previews (inspector rows): pills as in the editor, but inert - a click falls\n through to the wrapping \"open editor\" control. */\n.exed-preview { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.12rem; pointer-events: none; }\n/* Interactive preview: property pills accept the right-click menu; left-click\n still has no editor bound (its handler is a no-op) so it bubbles to the host. */\n.exed-preview-interactive .exed-pill-var,\n.exed-preview-interactive .exed-pill-prop { pointer-events: auto; cursor: context-menu; }\n.exed-preview-effects { flex-direction: column; align-items: flex-start; gap: 0.15rem; }\n.exed-preview-eff { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.12rem; }\n.exed-preview-raw { font: 0.76rem var(--font-mono, monospace); color: var(--exed-muted); }\n.exed-pill-flagpos { background: var(--exed-flagpos); }\n.exed-pill-flagneg { background: var(--exed-flagneg); }\n.exed-pill-op { background: transparent; color: var(--exed-soft); font-weight: 700; padding: 0.08rem 0.3rem; }\n.exed-op-structural { color: var(--exed-muted); }\n.exed-pill-err { box-shadow: 0 0 0 2px var(--exed-err); text-decoration: line-through; }\n.exed-pill-always { background: var(--exed-bg); color: var(--exed-muted); border: 1px dashed var(--exed-line); font-weight: 500; }\n.exed-pill-placeholder { background: transparent; color: var(--exed-muted); border: 1px dashed var(--exed-line); font-style: italic; font-weight: 500; }\n.exed-pill-placeholder:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n.exed-paren, .exed-comma { color: var(--exed-muted); }\n/* compact flag-delta call (`@prop: +a -b`): the colon hugs the property */\n.exed-flagsep { color: var(--exed-muted); margin-left: -0.1rem; }\n.exed-call, .exed-unary, .exed-binary { display: inline-flex; align-items: center; gap: 0.1rem; flex-wrap: wrap; }\n\n/* flat body */\n.exed-flat { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.15rem; padding: 0.3rem; border: 1px solid var(--exed-line); border-radius: var(--exed-radius); background: var(--exed-surface); }\n\n/* tree */\n.exed-tree { display: flex; flex-direction: column; gap: 0.3rem; }\n.exed-group { border: 1px solid var(--exed-line); border-radius: var(--exed-radius); background: var(--exed-surface); }\n.exed-grouphead { display: flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.4rem; border-bottom: 1px solid var(--exed-line); background: color-mix(in oklab, var(--exed-accent) 5%, transparent); }\n.exed-grouplabel, .exed-flip { font: 700 0.68rem var(--font-ui, system-ui); letter-spacing: 0.04em; color: var(--exed-accent); }\n.exed-flip { background: none; border: 1px solid transparent; border-radius: 5px; cursor: pointer; padding: 0.05rem 0.35rem; }\n.exed-flip:hover { border-color: var(--exed-accent); }\n.exed-groupbody { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.4rem; }\n.exed-group-or > .exed-grouphead { background: color-mix(in oklab, var(--exed-number) 8%, transparent); }\n\n/* per-child row: left-gutter AND/OR connector + the clause content */\n.exed-child { display: flex; align-items: baseline; gap: 0.3rem; }\n.exed-child > .exed-row, .exed-child > .exed-group, .exed-child > .exed-placeholder { flex: 1 1 auto; min-width: 0; }\n.exed-connector { flex: 0 0 auto; min-width: 2.2rem; text-align: right; font: 700 0.62rem var(--font-ui, system-ui); letter-spacing: 0.05em; color: var(--exed-soft); }\n\n.exed-row { display: flex; align-items: center; gap: 0.3rem; padding: 0.15rem 0.3rem; border-radius: var(--exed-radius); }\n.exed-row:hover { background: color-mix(in oklab, var(--exed-accent) 5%, transparent); }\n.exed-rowcontent { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.15rem; flex: 1; }\n.exed-not { font: 700 0.64rem var(--font-ui, system-ui); color: var(--exed-flagneg); letter-spacing: 0.04em; }\n.exed-rowacts { display: flex; gap: 0.15rem; margin-left: auto; }\n.exed-rowbtn { background: none; border: 1px solid transparent; border-radius: 4px; color: var(--exed-muted); cursor: pointer; font: 600 0.66rem var(--font-ui, system-ui); padding: 0.05rem 0.3rem; }\n.exed-rowbtn:hover { color: var(--exed-accent); border-color: var(--exed-line); }\n.exed-rowbtn.danger:hover { color: var(--exed-err); border-color: var(--exed-err); }\n\n.exed-addbar { display: flex; gap: 0.3rem; }\n.exed-add { background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: 600 0.7rem var(--font-ui, system-ui); padding: 0.15rem 0.5rem; }\n.exed-add:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n.exed-placeholder { width: 100%; text-align: left; background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: italic 0.74rem var(--font-ui, system-ui); padding: 0.2rem 0.5rem; }\n.exed-placeholder:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n\n/* validation messages */\n.exed-msgs { display: flex; flex-direction: column; gap: 0.15rem; }\n/* The box is appended on every render, empty when the expression is clean. An\n empty flex item is still an item, so the host column applies its gap to it -\n which pushes the visible body off-centre wherever the host vertically centres\n the editor (e.g. an effect row's [target] = [value] line). Take it out of\n layout when it has nothing to say. */\n.exed-msgs:empty { display: none; }\n.exed-msg { font: 0.72rem var(--font-ui, system-ui); }\n.exed-msg-error { color: var(--exed-err); }\n.exed-msg-warning { color: #9a7d1e; }\n\n/* popover */\n.exed-pop { position: absolute; z-index: 1000; background: var(--exed-surface); border: 1px solid var(--exed-line); border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,0.18); padding: 0.35rem; min-width: 9rem; max-width: 20rem; overflow: auto; }\n.exed-menu { display: flex; flex-direction: column; gap: 0.1rem; }\n.exed-menu-head { font: 700 0.64rem var(--font-ui, system-ui); text-transform: uppercase; letter-spacing: 0.05em; color: var(--exed-muted); padding: 0.2rem 0.3rem; }\n.exed-hint { font: italic 0.72rem var(--font-ui, system-ui); color: var(--exed-muted); padding: 0.1rem 0.3rem; }\n.exed-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 0.05rem; text-align: left; width: 100%; background: none; border: 0; border-radius: 5px; cursor: pointer; color: var(--exed-ink); font: 0.8rem var(--font-ui, system-ui); padding: 0.3rem 0.4rem; }\n.exed-opt:hover { background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-opt.sel { background: color-mix(in oklab, var(--exed-accent) 18%, transparent); color: var(--exed-accent); font-weight: 600; }\n.exed-opt.danger:hover { background: color-mix(in oklab, var(--exed-err) 14%, transparent); color: var(--exed-err); }\n.exed-opt.disabled { opacity: 0.4; cursor: not-allowed; }\n.exed-opt.disabled:hover { background: none; }\n.exed-opt-name { font-weight: 600; }\n.exed-opt-type { font: 0.66rem var(--font-mono, monospace); color: var(--exed-muted); }\n.exed-opt-purpose { font-size: 0.7rem; color: var(--exed-muted); }\n/* An operator option is glyph + plain word, and both are short: one line, side by side, so a\n six-operator menu stays a scannable column of operators rather than twelve stacked lines. */\n.exed-opt-op { flex-direction: row; align-items: baseline; gap: 0.45rem; }\n.exed-opt-op .exed-opt-name { min-width: 1.1rem; }\n.exed-field-row { display: flex; gap: 0.3rem; align-items: center; }\n/* +set / −unset flag sign toggle - emerald / rose active, matching the flag pills. */\n.exed-sign { display: flex; gap: 0.3rem; }\n.exed-signbtn { flex: 1; text-align: center; border: 0; border-radius: 5px; cursor: pointer; padding: 0.25rem 0.5rem; font: 600 0.75rem var(--font-mono, monospace); background: var(--exed-bg); color: var(--exed-soft); }\n.exed-signbtn:hover { background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-signbtn.sel-pos { background: var(--exed-flagpos); color: #fff; }\n.exed-signbtn.sel-neg { background: var(--exed-flagneg); color: #fff; }\n\n/* value wizard (guided operand → operator → operand) */\n.exed-vwiz { display: flex; flex-direction: column; gap: 0.3rem; min-width: 12rem; }\n.exed-vwiz-head { display: flex; align-items: center; gap: 0.3rem; border-bottom: 1px solid var(--exed-line); padding-bottom: 0.3rem; }\n.exed-vwiz-title { font: 600 0.72rem var(--font-ui, system-ui); color: var(--exed-ink); }\n.exed-vwiz-mono { font-family: var(--font-mono, monospace); color: var(--exed-accent); }\n.exed-vwiz-back { background: none; border: 0; cursor: pointer; color: var(--exed-muted); font-size: 0.85rem; padding: 0 0.2rem; border-radius: 4px; }\n.exed-vwiz-back:hover { color: var(--exed-accent); }\n.exed-vwiz-body { display: flex; flex-direction: column; gap: 0.1rem; }\n.exed-vwiz-other { background: none; border: 0; cursor: pointer; color: var(--exed-muted); font: 0.72rem var(--font-ui, system-ui); text-align: left; padding: 0.25rem 0.4rem; margin-top: 0.15rem; }\n.exed-vwiz-other:hover { color: var(--exed-accent); }\n.exed-field-cap, .exed-picker-scope { font: 700 0.64rem var(--font-ui, system-ui); text-transform: uppercase; letter-spacing: 0.05em; color: var(--exed-muted); padding: 0.2rem 0.3rem 0.1rem; }\n.exed-input { font: 0.82rem var(--font-ui, system-ui); color: var(--exed-ink); background: var(--exed-bg); border: 1px solid var(--exed-line); border-radius: 5px; padding: 0.25rem 0.4rem; flex: 1; min-width: 6rem; }\n.exed-input:focus { outline: none; border-color: var(--exed-accent); }\n.exed-btn { background: var(--exed-accent); color: #fff; border: 0; border-radius: 5px; cursor: pointer; font: 600 0.72rem var(--font-ui, system-ui); padding: 0.25rem 0.55rem; }\n.exed-btn:disabled { opacity: 0.45; cursor: default; }\n.exed-picker { display: flex; flex-direction: column; gap: 0.3rem; min-width: 13rem; }\n.exed-picker-list { max-height: 16rem; overflow: auto; display: flex; flex-direction: column; }\n/* Rows keep their natural height when the list outgrows the 16rem cap. Without this, flex SHRINKS\n the rows instead of scrolling - <button> flex items (.exed-opt) have no automatic content-based\n minimum size - crushing every option to an unreadable sliver in a property-heavy project. */\n.exed-picker-list > * { flex: none; }\n.exed-picker-foot { border-top: 1px solid var(--exed-line); padding-top: 0.2rem; }\n\n/* --- Effects editor (mountEffectsEditor) — a list of set / emit effects, each\n value/arg an embedded flat pill editor. Reuses the pill + popover chrome. */\n.exed-effects-root { display: flex; flex-direction: column; gap: 0.4rem; }\n.exed-effect-list { display: flex; flex-direction: column; gap: 0.4rem; }\n.exed-effect-empty { font: italic 0.74rem var(--font-ui, system-ui); color: var(--exed-muted); padding: 0.1rem 0.2rem; }\n.exed-effect { border: 1px solid var(--exed-line); border-radius: var(--exed-radius); padding: 0.35rem 0.45rem; background: var(--exed-bg); display: flex; flex-direction: column; gap: 0.25rem; }\n/* a `set` is one line: [target] = [value inline] [actions] (storylets ExpressionField layout) */\n.exed-effect-set { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 0.3rem; }\n.exed-effect-set > .exed-effect-value { flex: 1 1 auto; min-width: 0; padding-left: 0; }\n.exed-effect-head { display: flex; align-items: center; gap: 0.3rem; }\n.exed-effect-eq { color: var(--exed-muted); font: 600 0.8rem var(--font-mono, monospace); }\n.exed-effect-kw { color: var(--exed-func); font: 600 0.72rem var(--font-mono, monospace); }\n.exed-pill-prop { background: var(--exed-var); }\n.exed-pill-event { background: var(--exed-string); } /* a host event name is free author text - reads as a string, not a function */\n.exed-effect-acts { display: flex; gap: 0.1rem; margin-left: auto; }\n.exed-eff-icon { background: none; border: 0; cursor: pointer; color: var(--exed-muted); border-radius: 4px; font-size: 0.78rem; line-height: 1; padding: 0.12rem 0.28rem; }\n.exed-eff-icon:hover { color: var(--exed-accent); background: color-mix(in oklab, var(--exed-accent) 12%, transparent); }\n.exed-eff-icon.danger:hover { color: var(--exed-err); background: color-mix(in oklab, var(--exed-err) 14%, transparent); }\n/* the value: a clickable pill strip that opens the guided wizard */\n.exed-effect-value { padding-left: 0.2rem; }\n/* the \"+ term\" chip on a value's pill strip: a quiet dashed affordance, like the tree add-bar */\n.exed-addterm { margin-left: 0.25rem; }\n.exed-effect-args { display: flex; flex-direction: column; gap: 0.2rem; padding-left: 0.2rem; }\n.exed-effect-arg { display: flex; align-items: flex-start; gap: 0.25rem; }\n.exed-effect-arg .exed-effect-value { flex: 1; }\n.exed-effect-addbar { display: flex; gap: 0.35rem; }\n.exed-eff-add { background: none; border: 1px dashed var(--exed-line); border-radius: var(--exed-radius); color: var(--exed-muted); cursor: pointer; font: 600 0.7rem var(--font-ui, system-ui); padding: 0.15rem 0.5rem; }\n.exed-eff-add:hover { color: var(--exed-accent); border-color: var(--exed-accent); }\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wildwinter/expr-editor",
3
- "version": "0.14.1",
3
+ "version": "0.15.1",
4
4
  "description": "Framework-neutral (vanilla TS + DOM) visual editor for @wildwinter/expr expressions: a hybrid pill-strip + AND/OR tree builder with a raw-text fallback, property picker, and live validation. Scopes, properties and functions come from an injected Dialect + ExpressionSchema, so any expr-based authoring tool can mount it.",
5
5
  "type": "module",
6
6
  "license": "MIT",