@design.estate/dees-catalog 12.2.0 → 12.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +120 -18
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.d.ts +5 -0
- package/dist_ts_web/elements/00group-button/dees-button/dees-button.d.ts +18 -0
- package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +10 -1
- package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +103 -5
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.d.ts +2 -1
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +2 -1
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.d.ts +12 -2
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +11 -1
- package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +7 -2
- package/dist_ts_web/elements/00group-workspace/dees-workspace/dees-workspace.js +3 -3
- package/dist_ts_web/elements/00group-workspace/dees-workspace/styles.js +10 -2
- package/package.json +1 -1
- package/readme.md +27 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts +6 -0
- package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +10 -0
- package/ts_web/elements/00group-button/dees-button/dees-button.ts +96 -3
- package/ts_web/elements/00group-form/dees-form/dees-form.ts +2 -1
- package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +11 -1
- package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +6 -1
- package/ts_web/elements/00group-workspace/dees-workspace/dees-workspace.ts +2 -2
- package/ts_web/elements/00group-workspace/dees-workspace/styles.ts +9 -1
package/dist_bundle/bundle.js
CHANGED
|
@@ -62897,13 +62897,18 @@ var init_workspace = __esm({
|
|
|
62897
62897
|
});
|
|
62898
62898
|
|
|
62899
62899
|
// ts_web/elements/00group-button/dees-button/dees-button.demo.ts
|
|
62900
|
-
var clicked, demoFunc3;
|
|
62900
|
+
var clicked, toggled, demoFunc3;
|
|
62901
62901
|
var init_dees_button_demo = __esm({
|
|
62902
62902
|
"ts_web/elements/00group-button/dees-button/dees-button.demo.ts"() {
|
|
62903
62903
|
init_dist_ts26();
|
|
62904
62904
|
init_templates();
|
|
62905
62905
|
init_workspace();
|
|
62906
62906
|
clicked = /* @__PURE__ */ __name((event) => showDemoResult(event.currentTarget, `${event.target.text || "Button"} selected.`), "clicked");
|
|
62907
|
+
toggled = /* @__PURE__ */ __name((event) => {
|
|
62908
|
+
const button = event.target;
|
|
62909
|
+
button.pressed = !button.pressed;
|
|
62910
|
+
showDemoResult(button, `${button.text}: ${button.pressed ? "on" : "off"}`);
|
|
62911
|
+
}, "toggled");
|
|
62907
62912
|
demoFunc3 = /* @__PURE__ */ __name(() => demoPage("Button", "A shared shape and rhythm for actions, with a clear hierarchy of intent.", b2`
|
|
62908
62913
|
${demoSection("Intent", "Accent marks the primary action. Quieter treatments keep supporting actions available.", b2`
|
|
62909
62914
|
<div class="dees-demo-row" @clicked=${clicked}>${["default", "accent", "secondary", "destructive", "outline", "ghost", "link"].map((type5) => b2`<dees-button .type=${type5} .text=${type5}></dees-button>`)}</div>
|
|
@@ -62917,6 +62922,9 @@ var init_dees_button_demo = __esm({
|
|
|
62917
62922
|
${demoOutput()}${demoCode('<dees-button size="icon" text="Settings" icon="lucide:settings"></dees-button>')}`)}
|
|
62918
62923
|
${demoSection("Status", "Pending, success, and error faces are inert. Disabled actions stay visible.", b2`
|
|
62919
62924
|
<div class="dees-demo-row">${["normal", "pending", "success", "error"].map((status) => b2`<dees-button .status=${status} .text=${status}></dees-button>`)}<dees-button disabled text="Unavailable"></dees-button></div>`)}
|
|
62925
|
+
${demoSection("Toggle", "Setting pressed makes a button a toggle and announces it as one. The on face layers over the type face and stays on when the pointer leaves. A button without pressed stays a plain action.", b2`
|
|
62926
|
+
<div class="dees-demo-row" @clicked=${toggled}><dees-button type="ghost" size="icon" icon="lucide:terminal" text="DevTools" .pressed=${true}></dees-button><dees-button type="ghost" icon="lucide:panel-left" text="Sidebar" .pressed=${false}></dees-button><dees-button type="outline" text="Wrap lines" .pressed=${true}></dees-button><dees-button text="Live preview" .pressed=${false}></dees-button><dees-button type="accent" text="Recording" .pressed=${true}></dees-button></div>
|
|
62927
|
+
${demoOutput()}${demoCode('<dees-button size="icon" icon="lucide:terminal" text="DevTools" .pressed=${this.devtoolsOpen} @clicked=${() => this.devtoolsOpen = !this.devtoolsOpen}></dees-button>')}`)}
|
|
62920
62928
|
${demoSection("Event data", "Activation uses the clicked event for pointer and keyboard input.", b2`
|
|
62921
62929
|
<div class="dees-demo-row"><dees-button text="Inspect event" .eventDetailData=${"workspace-preview"} @clicked=${(event) => showDemoResult(event.currentTarget, event.detail)}></dees-button></div>${demoOutput()}`)}
|
|
62922
62930
|
${demoSection("In a form", "The same button proportions carry through to form submission.", workspaceForm())}
|
|
@@ -62927,7 +62935,7 @@ var init_dees_button_demo = __esm({
|
|
|
62927
62935
|
});
|
|
62928
62936
|
|
|
62929
62937
|
// ts_web/elements/00group-button/dees-button/dees-button.ts
|
|
62930
|
-
var _adoptedIconPosition_dec, _adoptedIcon_dec, _adoptedText_dec, _iconPosition_dec, _icon_dec, _fullWidth_dec, _insideForm_dec, _shape_dec, _status_dec, _size_dec2, _type_dec, _isHidden_dec, _disabled_dec, _eventDetailData_dec, _text_dec, _a3, _DeesButton_decorators, _init3, _text, _eventDetailData, _disabled, _isHidden, _type, _size2, _status, _shape, _insideForm, _fullWidth, _icon, _iconPosition, _adoptedText, _adoptedIcon, _adoptedIconPosition, _DeesButton, DeesButton;
|
|
62938
|
+
var _adoptedIconPosition_dec, _adoptedIcon_dec, _adoptedText_dec, _iconPosition_dec, _icon_dec, _fullWidth_dec, _insideForm_dec, _shape_dec, _pressed_dec, _status_dec, _size_dec2, _type_dec, _isHidden_dec, _disabled_dec, _eventDetailData_dec, _text_dec, _a3, _DeesButton_decorators, _init3, _text, _eventDetailData, _disabled, _isHidden, _type, _size2, _status, _pressed, _shape, _insideForm, _fullWidth, _icon, _iconPosition, _adoptedText, _adoptedIcon, _adoptedIconPosition, _DeesButton, DeesButton;
|
|
62931
62939
|
var init_dees_button = __esm({
|
|
62932
62940
|
"ts_web/elements/00group-button/dees-button/dees-button.ts"() {
|
|
62933
62941
|
init_dist_ts26();
|
|
@@ -62951,6 +62959,9 @@ var init_dees_button = __esm({
|
|
|
62951
62959
|
type: String
|
|
62952
62960
|
})], _status_dec = [n5({
|
|
62953
62961
|
type: String
|
|
62962
|
+
})], _pressed_dec = [n5({
|
|
62963
|
+
type: Boolean,
|
|
62964
|
+
reflect: true
|
|
62954
62965
|
})], _shape_dec = [n5({
|
|
62955
62966
|
type: String
|
|
62956
62967
|
})], _insideForm_dec = [n5({
|
|
@@ -62966,14 +62977,15 @@ var init_dees_button = __esm({
|
|
|
62966
62977
|
__privateAdd(this, _type, __runInitializers(_init3, 24, this, "default")), __runInitializers(_init3, 27, this);
|
|
62967
62978
|
__privateAdd(this, _size2, __runInitializers(_init3, 28, this, "default")), __runInitializers(_init3, 31, this);
|
|
62968
62979
|
__privateAdd(this, _status, __runInitializers(_init3, 32, this, "normal")), __runInitializers(_init3, 35, this);
|
|
62969
|
-
__privateAdd(this,
|
|
62970
|
-
__privateAdd(this,
|
|
62971
|
-
__privateAdd(this,
|
|
62972
|
-
__privateAdd(this,
|
|
62973
|
-
__privateAdd(this,
|
|
62974
|
-
__privateAdd(this,
|
|
62975
|
-
__privateAdd(this,
|
|
62976
|
-
__privateAdd(this,
|
|
62980
|
+
__privateAdd(this, _pressed, __runInitializers(_init3, 36, this)), __runInitializers(_init3, 39, this);
|
|
62981
|
+
__privateAdd(this, _shape, __runInitializers(_init3, 40, this, "squircle")), __runInitializers(_init3, 43, this);
|
|
62982
|
+
__privateAdd(this, _insideForm, __runInitializers(_init3, 44, this, false)), __runInitializers(_init3, 47, this);
|
|
62983
|
+
__privateAdd(this, _fullWidth, __runInitializers(_init3, 48, this, false)), __runInitializers(_init3, 51, this);
|
|
62984
|
+
__privateAdd(this, _icon, __runInitializers(_init3, 52, this)), __runInitializers(_init3, 55, this);
|
|
62985
|
+
__privateAdd(this, _iconPosition, __runInitializers(_init3, 56, this, "left")), __runInitializers(_init3, 59, this);
|
|
62986
|
+
__privateAdd(this, _adoptedText, __runInitializers(_init3, 60, this, "")), __runInitializers(_init3, 63, this);
|
|
62987
|
+
__privateAdd(this, _adoptedIcon, __runInitializers(_init3, 64, this, "")), __runInitializers(_init3, 67, this);
|
|
62988
|
+
__privateAdd(this, _adoptedIconPosition, __runInitializers(_init3, 68, this, "left")), __runInitializers(_init3, 71, this);
|
|
62977
62989
|
__publicField(this, "lightDomObserver");
|
|
62978
62990
|
__publicField(this, "handleKeydown", /* @__PURE__ */ __name((eventArg) => {
|
|
62979
62991
|
if (eventArg.key === " " || eventArg.key === "Spacebar") {
|
|
@@ -63076,12 +63088,13 @@ var init_dees_button = __esm({
|
|
|
63076
63088
|
return b2`
|
|
63077
63089
|
<div
|
|
63078
63090
|
part="button"
|
|
63079
|
-
class="button ${this.isHidden ? "hidden" : ""} ${actualType} size-${actualSize} shape-${this.shape} ${this.status} ${this.disabled ? "disabled" : ""}"
|
|
63091
|
+
class="button ${this.isHidden ? "hidden" : ""} ${actualType} size-${actualSize} shape-${this.shape} ${this.status} ${this.pressed ? "pressed" : ""} ${this.disabled ? "disabled" : ""}"
|
|
63080
63092
|
role="button"
|
|
63081
63093
|
tabindex=${this.disabled ? -1 : 0}
|
|
63082
63094
|
aria-disabled=${this.disabled ? "true" : "false"}
|
|
63083
63095
|
aria-busy=${this.status === "pending" ? "true" : "false"}
|
|
63084
63096
|
.ariaLabel=${showText ? null : effectiveText || null}
|
|
63097
|
+
.ariaPressed=${this.pressed === void 0 ? null : String(this.pressed)}
|
|
63085
63098
|
@click="${this.dispatchClick}"
|
|
63086
63099
|
@keydown=${this.handleKeydown}
|
|
63087
63100
|
@keyup=${this.handleKeyup}
|
|
@@ -63165,6 +63178,7 @@ var init_dees_button = __esm({
|
|
|
63165
63178
|
_type = new WeakMap();
|
|
63166
63179
|
_size2 = new WeakMap();
|
|
63167
63180
|
_status = new WeakMap();
|
|
63181
|
+
_pressed = new WeakMap();
|
|
63168
63182
|
_shape = new WeakMap();
|
|
63169
63183
|
_insideForm = new WeakMap();
|
|
63170
63184
|
_fullWidth = new WeakMap();
|
|
@@ -63180,6 +63194,7 @@ var init_dees_button = __esm({
|
|
|
63180
63194
|
__decorateElement(_init3, 4, "type", _type_dec, _DeesButton, _type);
|
|
63181
63195
|
__decorateElement(_init3, 4, "size", _size_dec2, _DeesButton, _size2);
|
|
63182
63196
|
__decorateElement(_init3, 4, "status", _status_dec, _DeesButton, _status);
|
|
63197
|
+
__decorateElement(_init3, 4, "pressed", _pressed_dec, _DeesButton, _pressed);
|
|
63183
63198
|
__decorateElement(_init3, 4, "shape", _shape_dec, _DeesButton, _shape);
|
|
63184
63199
|
__decorateElement(_init3, 4, "insideForm", _insideForm_dec, _DeesButton, _insideForm);
|
|
63185
63200
|
__decorateElement(_init3, 4, "fullWidth", _fullWidth_dec, _DeesButton, _fullWidth);
|
|
@@ -63207,6 +63222,12 @@ var init_dees_button = __esm({
|
|
|
63207
63222
|
--button-success-fg: var(--dees-color-text-success);
|
|
63208
63223
|
--button-error-bg: color-mix(in srgb, var(--dees-color-accent-error) 20%, transparent);
|
|
63209
63224
|
--button-error-fg: var(--dees-color-text-error);
|
|
63225
|
+
/* toggle-on face: the shared selected-surface wash, an accent ring and the accent
|
|
63226
|
+
label colour. All three inputs are theme-aware tokens, so this face needs no
|
|
63227
|
+
bright/dark split of its own. */
|
|
63228
|
+
--button-pressed-wash: var(--dees-color-nav-selected);
|
|
63229
|
+
--button-pressed-ring: color-mix(in srgb, var(--dees-color-accent-primary) 50%, transparent);
|
|
63230
|
+
--button-pressed-fg: var(--dees-color-link);
|
|
63210
63231
|
}
|
|
63211
63232
|
:host([gobright]) {
|
|
63212
63233
|
--button-pending-bg: var(--dees-color-accent-primary);
|
|
@@ -63226,11 +63247,15 @@ var init_dees_button = __esm({
|
|
|
63226
63247
|
}
|
|
63227
63248
|
|
|
63228
63249
|
/* A full-width button is sized by its container, so its label has to yield rather
|
|
63229
|
-
than spill out of the face when the container is narrower than the text.
|
|
63250
|
+
than spill out of the face when the container is narrower than the text. It clips with
|
|
63251
|
+
a 1px margin rather than hiding: a button face is no scroll container, and the
|
|
63252
|
+
toggle-on overlay sits 1px outside the padding box so that its ring lands on the
|
|
63253
|
+
type's own border edge — overflow: hidden would cut exactly that pixel away. */
|
|
63230
63254
|
:host([full-width]) .button {
|
|
63231
63255
|
width: 100%;
|
|
63232
63256
|
min-width: 0;
|
|
63233
|
-
overflow:
|
|
63257
|
+
overflow: clip;
|
|
63258
|
+
overflow-clip-margin: 1px;
|
|
63234
63259
|
}
|
|
63235
63260
|
|
|
63236
63261
|
:host([full-width]) .textbox {
|
|
@@ -63434,6 +63459,59 @@ var init_dees_button = __esm({
|
|
|
63434
63459
|
text-decoration-color: currentColor;
|
|
63435
63460
|
}
|
|
63436
63461
|
|
|
63462
|
+
/* Toggle-on face (the pressed property).
|
|
63463
|
+
A toggle has to stay visibly on once the pointer leaves it, so this cannot be the
|
|
63464
|
+
hover face; it layers on top of whatever the type paints instead of replacing it. The
|
|
63465
|
+
wash rides on an overlay rather than on the face's own background, because every
|
|
63466
|
+
type, hover and active rule sets the background shorthand and would reset a layer
|
|
63467
|
+
declared on the face itself. isolation scopes the overlay's negative layer to this
|
|
63468
|
+
face, which paints it above the type's background and below the label and icon. */
|
|
63469
|
+
.button.pressed {
|
|
63470
|
+
isolation: isolate;
|
|
63471
|
+
}
|
|
63472
|
+
|
|
63473
|
+
.button.pressed::after {
|
|
63474
|
+
content: '';
|
|
63475
|
+
position: absolute;
|
|
63476
|
+
/* the face's border box, so the ring lands on the type's own border edge */
|
|
63477
|
+
inset: -1px;
|
|
63478
|
+
z-index: -1;
|
|
63479
|
+
border-radius: inherit;
|
|
63480
|
+
corner-shape: inherit;
|
|
63481
|
+
background: var(--button-pressed-wash);
|
|
63482
|
+
box-shadow: inset 0 0 0 1px var(--button-pressed-ring);
|
|
63483
|
+
pointer-events: none;
|
|
63484
|
+
}
|
|
63485
|
+
|
|
63486
|
+
/* A filled face already carries the accent as its surface, where an accent wash cannot
|
|
63487
|
+
read, so it recesses behind a scrim with a light inner ring instead. Both faces are
|
|
63488
|
+
dark in either theme, which is why these two values do not follow the theme. */
|
|
63489
|
+
.button.accent,
|
|
63490
|
+
.button.destructive {
|
|
63491
|
+
--button-pressed-wash: color-mix(in srgb, black 24%, transparent);
|
|
63492
|
+
--button-pressed-ring: color-mix(in srgb, white 40%, transparent);
|
|
63493
|
+
}
|
|
63494
|
+
|
|
63495
|
+
/* At size="icon" there is no label, so the foreground carries the state as well. Filled
|
|
63496
|
+
faces keep their on-accent label, and a status face keeps its own. */
|
|
63497
|
+
.button.pressed:not(.accent):not(.destructive):not(.pending):not(.success):not(.error) {
|
|
63498
|
+
color: var(--button-pressed-fg);
|
|
63499
|
+
}
|
|
63500
|
+
|
|
63501
|
+
/* A status face owns the whole surface for as long as it shows, and type="link" has no
|
|
63502
|
+
surface to wash at all (no border, no padding) — its on state is the hover underline
|
|
63503
|
+
made permanent. aria-pressed reports the state in every one of these cases. */
|
|
63504
|
+
.button.pressed.pending::after,
|
|
63505
|
+
.button.pressed.success::after,
|
|
63506
|
+
.button.pressed.error::after,
|
|
63507
|
+
.button.pressed.link::after {
|
|
63508
|
+
content: none;
|
|
63509
|
+
}
|
|
63510
|
+
|
|
63511
|
+
.button.pressed.link {
|
|
63512
|
+
text-decoration-color: currentColor;
|
|
63513
|
+
}
|
|
63514
|
+
|
|
63437
63515
|
/* Status states */
|
|
63438
63516
|
.button.pending,
|
|
63439
63517
|
.button.success,
|
|
@@ -156913,6 +156991,16 @@ var _DeesInputWysiwyg = class _DeesInputWysiwyg extends (_a55 = DeesInputBase, _
|
|
|
156913
156991
|
__publicField(this, "blockOperations");
|
|
156914
156992
|
__publicField(this, "inputHandler");
|
|
156915
156993
|
__publicField(this, "keyboardHandler");
|
|
156994
|
+
/**
|
|
156995
|
+
* Block drag and drop, public alongside `blockOperations` because the drag *interaction* has
|
|
156996
|
+
* no other seam: `dragState`, the drop indicator and the global drag-over listener all live in
|
|
156997
|
+
* this handler, and a native HTML5 drag sequence cannot be synthesised from script, so a host
|
|
156998
|
+
* or a test that exercises dragging has to drive `handleDragStart` / `handleDragEnd` itself.
|
|
156999
|
+
* Reordering a block programmatically needs none of that: `blockOperations.moveBlock(blockId,
|
|
157000
|
+
* targetIndex)` is the public path for that, on the public `blocks` accessor. The remaining
|
|
157001
|
+
* handlers stay private because everything they own is reachable through ordinary input and
|
|
157002
|
+
* keyboard events.
|
|
157003
|
+
*/
|
|
156916
157004
|
__publicField(this, "dragDropHandler");
|
|
156917
157005
|
__publicField(this, "history");
|
|
156918
157006
|
__publicField(this, "blurTimeout", null);
|
|
@@ -158491,6 +158579,7 @@ var _DeesForm = class _DeesForm extends (_a58 = DeesElement, _horizontalLayout_d
|
|
|
158491
158579
|
constructor() {
|
|
158492
158580
|
super(...arguments);
|
|
158493
158581
|
__publicField(this, "name", "myform");
|
|
158582
|
+
/** emits the collected form data on every child change; the only producer is `collectFormData()` */
|
|
158494
158583
|
__publicField(this, "changeSubject", new domtools_pluginexports_exports.smartrx.rxjs.Subject());
|
|
158495
158584
|
__publicField(this, "readyDeferred", domtools_pluginexports_exports.smartpromise.defer());
|
|
158496
158585
|
__privateAdd(this, _horizontalLayout, __runInitializers(_init59, 8, this, false)), __runInitializers(_init59, 11, this);
|
|
@@ -218090,7 +218179,12 @@ __publicField(_DeesSimpleAppDash, "styles", [themeDefaultStyles, cssManager.defa
|
|
|
218090
218179
|
.controlbar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; border-top: 1px solid var(--dees-color-border-subtle); background: var(--dees-color-bg-secondary); font-size: 11px; color: var(--dees-color-text-secondary); }
|
|
218091
218180
|
.control { display: flex; align-items: center; gap: 6px; padding: 0 12px; height: 100%; }
|
|
218092
218181
|
.status-terminal { border-left: 1px solid var(--dees-color-border-subtle); }
|
|
218093
|
-
|
|
218182
|
+
/* The on face is the catalog's toggle-on face: the shared selected surface plus the accent
|
|
218183
|
+
*text* colour, not --dees-color-accent-primary, which only reaches 3.6:1 as a label. The
|
|
218184
|
+
hovered rule exists because the shared button:hover rule below outranks a plain
|
|
218185
|
+
[aria-pressed] rule and would wash the on state away under the pointer. */
|
|
218186
|
+
.status-terminal[aria-pressed='true'] { color: var(--dees-color-link); background: var(--dees-color-nav-selected); }
|
|
218187
|
+
.status-terminal[aria-pressed='true']:hover { color: var(--dees-color-link); background: color-mix(in srgb, var(--dees-color-nav-selected) 88%, var(--dees-color-text-primary)); }
|
|
218094
218188
|
.collapsed .sidebar-header { justify-content: center; padding: 0; }
|
|
218095
218189
|
.collapsed .sidebar-header > dees-icon, .collapsed .appName, .collapsed .section-label, .collapsed .viewTab span, .collapsed .viewTab .chevron, .collapsed .action span { display: none; }
|
|
218096
218190
|
.collapsed .collapseToggle { margin: 0; width: 40px; height: 38px; }
|
|
@@ -220534,7 +220628,15 @@ var workspaceStyles = i`
|
|
|
220534
220628
|
.toolbar-actions, .panel-header-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
|
|
220535
220629
|
.panel-action { width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--dees-radius-md); color: var(--dees-color-text-secondary); transition: color 140ms ease, background-color 140ms ease; }
|
|
220536
220630
|
.panel-action:hover:not(:disabled) { color: var(--dees-color-text-primary); background: var(--dees-color-hover); }
|
|
220537
|
-
|
|
220631
|
+
/* A panel toggle announces one state, aria-expanded, and paints it with the shared selected
|
|
220632
|
+
surface — the same wash and accent label dees-button gives its pressed state. It cannot
|
|
220633
|
+
reuse the hover background: an expanded toggle would then be indistinguishable from a
|
|
220634
|
+
hovered collapsed one. Both on-state rules repeat the hover rule's :not(:disabled), which
|
|
220635
|
+
puts them at (0,4,0) and (0,5,0) against that rule's (0,3,0), so the on face outranks hover
|
|
220636
|
+
on specificity instead of on source order, and the hovered-expanded rule keeps it under the
|
|
220637
|
+
pointer. A disabled toggle falls back to the base face, the way it does for hover. */
|
|
220638
|
+
.panel-action.panel-toggle[aria-expanded='true']:not(:disabled) { color: var(--dees-color-link); background: var(--dees-color-nav-selected); }
|
|
220639
|
+
.panel-action.panel-toggle[aria-expanded='true']:not(:disabled):hover { color: var(--dees-color-link); background: color-mix(in srgb, var(--dees-color-nav-selected) 88%, var(--dees-color-text-primary)); }
|
|
220538
220640
|
.workspace-container { display: flex; flex: 1; min-height: 0; min-width: 0; position: relative; }
|
|
220539
220641
|
.editor-area { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; overflow: hidden; }
|
|
220540
220642
|
.filetree-panel { position: relative; flex-shrink: 0; min-width: 0; overflow: hidden; background: var(--dees-color-bg-secondary); }
|
|
@@ -223256,8 +223358,8 @@ var _DeesWorkspace = class _DeesWorkspace extends (_a142 = DeesElement, _executi
|
|
|
223256
223358
|
<span class="save-state" role="status">${this.isInitializing ? "Starting\u2026" : this.initializationError ? "Connection failed" : !ready ? "Not connected" : modifiedCount ? `${modifiedCount} unsaved` : "All changes saved"}</span>
|
|
223257
223359
|
<div class="toolbar-actions">
|
|
223258
223360
|
<button class="panel-action" type="button" aria-label="Save all files" title="Save all files" ?disabled=${!ready || !modifiedCount} @click=${this.saveAllFiles}><dees-icon icon="lucide:Save" iconSize="16"></dees-icon></button>
|
|
223259
|
-
${this.showFileTree ? b2`<button class="panel-action" type="button" aria-label="Toggle files" aria-controls="workspace-files" aria-expanded=${!this.isFileTreeCollapsed}
|
|
223260
|
-
${this.showTerminal ? b2`<button class="panel-action" type="button" aria-label="Toggle terminal" aria-controls="workspace-terminal" aria-expanded=${!this.isTerminalCollapsed}
|
|
223361
|
+
${this.showFileTree ? b2`<button class="panel-action panel-toggle" type="button" aria-label="Toggle files" aria-controls="workspace-files" aria-expanded=${!this.isFileTreeCollapsed} title="Toggle files" @click=${() => this.isFileTreeCollapsed = !this.isFileTreeCollapsed}><dees-icon icon="lucide:PanelLeft" iconSize="16"></dees-icon></button>` : ""}
|
|
223362
|
+
${this.showTerminal ? b2`<button class="panel-action panel-toggle" type="button" aria-label="Toggle terminal" aria-controls="workspace-terminal" aria-expanded=${!this.isTerminalCollapsed} title="Toggle terminal" @click=${this.toggleTerminal}><dees-icon icon="lucide:PanelBottom" iconSize="16"></dees-icon></button>` : ""}
|
|
223261
223363
|
<button class="panel-action" type="button" aria-label="Editor options" aria-haspopup="menu" title="Editor options" @click=${this.showEditorMenu}><dees-icon icon="lucide:Ellipsis" iconSize="16"></dees-icon></button>
|
|
223262
223364
|
</div>
|
|
223263
223365
|
</header>
|
|
@@ -224953,7 +225055,7 @@ init_group_runtime();
|
|
|
224953
225055
|
// ts_web/00_commitinfo_data.ts
|
|
224954
225056
|
var commitinfo = {
|
|
224955
225057
|
name: "@design.estate/dees-catalog",
|
|
224956
|
-
version: "12.
|
|
225058
|
+
version: "12.4.0",
|
|
224957
225059
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
224958
225060
|
};
|
|
224959
225061
|
|