@design.estate/dees-catalog 3.95.0 → 3.96.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.
@@ -59054,6 +59054,8 @@ var init_theme = __esm({
59054
59054
  // tertiary recess (headers, hovers)
59055
59055
  bgCanvas: "#f2f2f7",
59056
59056
  // recessed shell base (systemGroupedBackground)
59057
+ labelBase: "#3c3c43",
59058
+ // opaque system label base
59057
59059
  textPrimary: "#1d1d1f",
59058
59060
  // near-black label
59059
59061
  textSecondary: "rgba(60, 60, 67, 0.60)",
@@ -59105,6 +59107,8 @@ var init_theme = __esm({
59105
59107
  // tertiarySystemBackground / systemGray5 — headers, hovers
59106
59108
  bgCanvas: "#000000",
59107
59109
  // recessed shell base (true black, matches systemBackground)
59110
+ labelBase: "#ebebf5",
59111
+ // opaque system label base
59108
59112
  textPrimary: "#f5f5f7",
59109
59113
  // near-white label
59110
59114
  textSecondary: "rgba(235, 235, 245, 0.60)",
@@ -59345,6 +59349,10 @@ var init_theme = __esm({
59345
59349
  /* ========================================
59346
59350
  * Colors — Text / Label tiers
59347
59351
  * ======================================== */
59352
+ --dees-color-label-base: ${cssManager.bdTheme(l5.labelBase || "#3c3c43", d4.labelBase || "#ebebf5")};
59353
+ --dees-label-opacity-secondary: 0.6;
59354
+ --dees-label-opacity-muted: 0.3;
59355
+ --dees-label-opacity-quaternary: 0.18;
59348
59356
  --dees-color-text-primary: ${cssManager.bdTheme(l5.textPrimary, d4.textPrimary)};
59349
59357
  --dees-color-text-secondary: ${cssManager.bdTheme(l5.textSecondary, d4.textSecondary)};
59350
59358
  --dees-color-text-muted: ${cssManager.bdTheme(l5.textMuted, d4.textMuted)};
@@ -93117,6 +93125,17 @@ var init_dees_icon = __esm({
93117
93125
  pointer-events: none;
93118
93126
  }
93119
93127
 
93128
+ #iconContainer {
93129
+ /*
93130
+ * Apply semantic emphasis to the complete icon, after its Lucide
93131
+ * strokes have been painted. This avoids darker overlap pixels that
93132
+ * occur when a translucent currentColor is composited path by path.
93133
+ *
93134
+ * Consumers keep the stroke color opaque and set --dees-icon-opacity.
93135
+ */
93136
+ opacity: var(--dees-icon-opacity, 1);
93137
+ }
93138
+
93120
93139
  /* Improve rendering performance */
93121
93140
  #iconContainer svg {
93122
93141
  display: block;
@@ -116227,10 +116246,16 @@ var init_versions = __esm({
116227
116246
  });
116228
116247
 
116229
116248
  // ts_web/services/DeesServiceLibLoader.ts
116230
- var DeesServiceLibLoader;
116249
+ var xtermMeasurementFixCss, DeesServiceLibLoader;
116231
116250
  var init_DeesServiceLibLoader = __esm({
116232
116251
  "ts_web/services/DeesServiceLibLoader.ts"() {
116233
116252
  init_versions();
116253
+ xtermMeasurementFixCss = `
116254
+ /* Fix xterm.js WidthCache measurement container causing horizontal scrollbar */
116255
+ body > div[style*="top: -50000px"][style*="width: 50000px"] {
116256
+ left: -50000px !important;
116257
+ }
116258
+ `;
116234
116259
  DeesServiceLibLoader = class _DeesServiceLibLoader {
116235
116260
  static {
116236
116261
  __name(this, "DeesServiceLibLoader");
@@ -116288,6 +116313,31 @@ var init_DeesServiceLibLoader = __esm({
116288
116313
  })();
116289
116314
  return this.xtermLoadingPromise;
116290
116315
  }
116316
+ /**
116317
+ * Provides xterm modules from the host application instead of the CDN.
116318
+ * Hosts that bundle xterm (e.g. Electron apps that must work offline)
116319
+ * call this before any terminal component initializes; subsequent
116320
+ * loadXterm/loadXtermFitAddon calls resolve from these caches without
116321
+ * network access. Pass the css text of xterm.css so the document-level
116322
+ * styles (normally fetched from the CDN) are injected too.
116323
+ */
116324
+ provideXtermModules(input) {
116325
+ this.xtermLib = { Terminal: input.xterm.Terminal };
116326
+ if (input.fitAddon) {
116327
+ this.xtermFitAddonLib = { FitAddon: input.fitAddon.FitAddon };
116328
+ }
116329
+ if (input.cssText) {
116330
+ this.injectProvidedXtermStyles(input.cssText);
116331
+ }
116332
+ }
116333
+ injectProvidedXtermStyles(cssText) {
116334
+ const styleId = "xterm-cdn-styles";
116335
+ if (document.getElementById(styleId)) return;
116336
+ const style2 = document.createElement("style");
116337
+ style2.id = styleId;
116338
+ style2.textContent = cssText + xtermMeasurementFixCss;
116339
+ document.head.appendChild(style2);
116340
+ }
116291
116341
  /**
116292
116342
  * Load xterm-addon-fit from CDN
116293
116343
  * @returns Promise resolving to FitAddon class
@@ -116347,16 +116397,9 @@ var init_DeesServiceLibLoader = __esm({
116347
116397
  const cssUrl = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/css/xterm.css`;
116348
116398
  const response = await fetch(cssUrl);
116349
116399
  const cssText = await response.text();
116350
- const xtermMeasurementFix = `
116351
- /* Fix xterm.js WidthCache measurement container causing horizontal scrollbar */
116352
- /* xterm creates this on document.body - move it off-screen horizontally too */
116353
- body > div[style*="top: -50000px"][style*="width: 50000px"] {
116354
- left: -50000px !important;
116355
- }
116356
- `;
116357
116400
  const style2 = document.createElement("style");
116358
116401
  style2.id = styleId;
116359
- style2.textContent = cssText + xtermMeasurementFix;
116402
+ style2.textContent = cssText + xtermMeasurementFixCss;
116360
116403
  document.head.appendChild(style2);
116361
116404
  }
116362
116405
  /**
@@ -149826,6 +149869,7 @@ var tableStyles = [
149826
149869
  height: var(--dees-control-height-sm);
149827
149870
  border-radius: var(--dees-radius-sm);
149828
149871
  color: var(--dees-color-text-muted);
149872
+ --dees-icon-opacity: var(--dees-label-opacity-muted);
149829
149873
  cursor: pointer;
149830
149874
  transition: all var(--dees-transition-fast) var(--dees-ease-standard);
149831
149875
  }
@@ -149833,6 +149877,7 @@ var tableStyles = [
149833
149877
  .action:hover {
149834
149878
  background: var(--dees-color-badge-default-bg);
149835
149879
  color: var(--dees-color-text-primary);
149880
+ --dees-icon-opacity: 1;
149836
149881
  }
149837
149882
 
149838
149883
  .action:active {
@@ -149840,10 +149885,15 @@ var tableStyles = [
149840
149885
  }
149841
149886
 
149842
149887
  .action dees-icon {
149888
+ color: var(--dees-color-label-base);
149843
149889
  width: 16px;
149844
149890
  height: 16px;
149845
149891
  }
149846
149892
 
149893
+ .action:hover dees-icon {
149894
+ color: var(--dees-color-text-primary);
149895
+ }
149896
+
149847
149897
  .footer {
149848
149898
  display: flex;
149849
149899
  align-items: center;
@@ -150375,7 +150425,9 @@ var _DeesTable = class _DeesTable extends (_a42 = DeesElement, _heading1_dec = [
150375
150425
  this.startEditing(cell2.item, cell2.col);
150376
150426
  return;
150377
150427
  }
150378
- const dblAction = this.dataActions.find((a4) => a4.type?.includes("doubleClick"));
150428
+ const dblAction = this.dataActions.find(
150429
+ (action) => action.type?.includes("doubleClick") && this.isActionRelevant(action, cell2.item)
150430
+ );
150379
150431
  if (dblAction) dblAction.actionFunc({ item: cell2.item, table: this });
150380
150432
  }, "__onTbodyDblclick"));
150381
150433
  __publicField(this, "__onTbodyMousedown", /* @__PURE__ */ __name((eventArg) => {
@@ -150393,7 +150445,7 @@ var _DeesTable = class _DeesTable extends (_a42 = DeesElement, _heading1_dec = [
150393
150445
  this.emitSelectionChange();
150394
150446
  this.requestUpdate();
150395
150447
  }
150396
- const userItems = this.getActionsForType("contextmenu").map(
150448
+ const userItems = this.getActionsForType("contextmenu").filter((action) => this.isActionRelevant(action, item)).map(
150397
150449
  (action) => ({
150398
150450
  name: action.name,
150399
150451
  iconName: action.iconName,
@@ -150706,18 +150758,18 @@ var _DeesTable = class _DeesTable extends (_a42 = DeesElement, _heading1_dec = [
150706
150758
  return b2`
150707
150759
  <td class="actionsCol">
150708
150760
  <div class="actionsContainer">
150709
- ${inRowActions.map(
150761
+ ${inRowActions.filter((actionArg) => this.isActionRelevant(actionArg, itemArg)).map(
150710
150762
  (actionArg) => b2`
150711
- <div
150712
- class="action"
150713
- @click=${() => actionArg.actionFunc({
150763
+ <div
150764
+ class="action"
150765
+ @click=${() => actionArg.actionFunc({
150714
150766
  item: itemArg,
150715
150767
  table: this
150716
150768
  })}
150717
- >
150718
- ${actionArg.iconName ? b2` <dees-icon .icon=${actionArg.iconName}></dees-icon> ` : actionArg.name}
150719
- </div>
150720
- `
150769
+ >
150770
+ ${actionArg.iconName ? b2` <dees-icon .icon=${actionArg.iconName}></dees-icon> ` : actionArg.name}
150771
+ </div>
150772
+ `
150721
150773
  )}
150722
150774
  </div>
150723
150775
  </td>
@@ -151915,6 +151967,9 @@ var _DeesTable = class _DeesTable extends (_a42 = DeesElement, _heading1_dec = [
151915
151967
  })
151916
151968
  );
151917
151969
  }
151970
+ isActionRelevant(actionArg, itemArg) {
151971
+ return !actionArg.actionRelevancyCheckFunc || actionArg.actionRelevancyCheckFunc(itemArg);
151972
+ }
151918
151973
  getActionsForType(typeArg) {
151919
151974
  const actions = [];
151920
151975
  for (const action of this.dataActions) {
@@ -196740,7 +196795,7 @@ init_group_runtime();
196740
196795
  // ts_web/00_commitinfo_data.ts
196741
196796
  var commitinfo = {
196742
196797
  name: "@design.estate/dees-catalog",
196743
- version: "3.95.0",
196798
+ version: "3.96.1",
196744
196799
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
196745
196800
  };
196746
196801
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '3.95.0',
6
+ version: '3.96.1',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
@@ -385,6 +385,7 @@ export declare class DeesTable<T> extends DeesElement {
385
385
  private isVisibleSelectionIndeterminate;
386
386
  private setSelectVisible;
387
387
  private emitSelectionChange;
388
+ private isActionRelevant;
388
389
  getActionsForType(typeArg: ITableAction['type'][0]): ITableAction<any>[];
389
390
  /** True if the column has any in-cell editor configured. */
390
391
  private __isColumnEditable;