@design.estate/dees-catalog 3.56.1 → 3.58.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.
@@ -57136,6 +57136,7 @@ var init_theme = __esm({
57136
57136
  --dees-color-hover: ${cssManager.bdTheme("rgba(0, 0, 0, 0.04)", "rgba(255, 255, 255, 0.06)")};
57137
57137
  --dees-color-active: ${cssManager.bdTheme("rgba(0, 0, 0, 0.06)", "rgba(255, 255, 255, 0.08)")};
57138
57138
  --dees-color-pressed: ${cssManager.bdTheme("rgba(0, 0, 0, 0.08)", "rgba(255, 255, 255, 0.12)")};
57139
+ --dees-color-row-hover: ${cssManager.bdTheme("hsl(222.2 47.4% 51.2% / 0.06)", "hsl(217.2 91.2% 59.8% / 0.08)")};
57139
57140
 
57140
57141
  /* ========================================
57141
57142
  * Colors — Focus Ring
@@ -140458,7 +140459,7 @@ var DeesWorkspaceMonaco = _DeesWorkspaceMonaco;
140458
140459
  init_dist_ts30();
140459
140460
  init_theme();
140460
140461
  init_dees_icon();
140461
- var _copySuccess_dec, _isLanguageDropdownOpen_dec, _showLineNumbers_dec, _wordWrap_dec2, _height_dec, _language_dec2, _value_dec2, _a18, _DeesInputCode_decorators, _init16, _value2, _language2, _height, _wordWrap2, _showLineNumbers, _isLanguageDropdownOpen, _copySuccess;
140462
+ var _cursorPosition_dec, _lineCount_dec, _copySuccess_dec, _isLanguageDropdownOpen_dec, _showLineNumbers_dec, _wordWrap_dec2, _height_dec, _language_dec2, _value_dec2, _a18, _DeesInputCode_decorators, _init16, _value2, _language2, _height, _wordWrap2, _showLineNumbers, _isLanguageDropdownOpen, _copySuccess, _lineCount, _cursorPosition;
140462
140463
  var LANGUAGES = [
140463
140464
  { key: "typescript", label: "TypeScript" },
140464
140465
  { key: "javascript", label: "JavaScript" },
@@ -140480,7 +140481,7 @@ var LANGUAGES = [
140480
140481
  { key: "plaintext", label: "Plain Text" }
140481
140482
  ];
140482
140483
  _DeesInputCode_decorators = [customElement("dees-input-code")];
140483
- var _DeesInputCode = class _DeesInputCode extends (_a18 = DeesInputBase, _value_dec2 = [n5({ type: String })], _language_dec2 = [n5({ type: String })], _height_dec = [n5({ type: String })], _wordWrap_dec2 = [n5({ type: String })], _showLineNumbers_dec = [n5({ type: Boolean })], _isLanguageDropdownOpen_dec = [r5()], _copySuccess_dec = [r5()], _a18) {
140484
+ var _DeesInputCode = class _DeesInputCode extends (_a18 = DeesInputBase, _value_dec2 = [n5({ type: String })], _language_dec2 = [n5({ type: String })], _height_dec = [n5({ type: String })], _wordWrap_dec2 = [n5({ type: String })], _showLineNumbers_dec = [n5({ type: Boolean })], _isLanguageDropdownOpen_dec = [r5()], _copySuccess_dec = [r5()], _lineCount_dec = [r5()], _cursorPosition_dec = [r5()], _a18) {
140484
140485
  constructor() {
140485
140486
  super(...arguments);
140486
140487
  __privateAdd(this, _value2, __runInitializers(_init16, 8, this, "")), __runInitializers(_init16, 11, this);
@@ -140490,6 +140491,8 @@ var _DeesInputCode = class _DeesInputCode extends (_a18 = DeesInputBase, _value_
140490
140491
  __privateAdd(this, _showLineNumbers, __runInitializers(_init16, 24, this, true)), __runInitializers(_init16, 27, this);
140491
140492
  __privateAdd(this, _isLanguageDropdownOpen, __runInitializers(_init16, 28, this, false)), __runInitializers(_init16, 31, this);
140492
140493
  __privateAdd(this, _copySuccess, __runInitializers(_init16, 32, this, false)), __runInitializers(_init16, 35, this);
140494
+ __privateAdd(this, _lineCount, __runInitializers(_init16, 36, this, 0)), __runInitializers(_init16, 39, this);
140495
+ __privateAdd(this, _cursorPosition, __runInitializers(_init16, 40, this, { line: 1, column: 1 })), __runInitializers(_init16, 43, this);
140493
140496
  __publicField(this, "editorElement", null);
140494
140497
  }
140495
140498
  render() {
@@ -140568,6 +140571,16 @@ var _DeesInputCode = class _DeesInputCode extends (_a18 = DeesInputBase, _value_
140568
140571
  @content-change=${this.handleContentChange}
140569
140572
  ></dees-workspace-monaco>
140570
140573
  </div>
140574
+ <div slot="footer" class="editor-footer">
140575
+ <div class="footer-left">
140576
+ <span>Ln ${this.cursorPosition.line}, Col ${this.cursorPosition.column}</span>
140577
+ <div class="footer-separator"></div>
140578
+ <span>${this.lineCount} line${this.lineCount !== 1 ? "s" : ""}</span>
140579
+ </div>
140580
+ <div class="footer-right">
140581
+ <span>${(LANGUAGES.find((l7) => l7.key === this.language) || LANGUAGES[0]).label}</span>
140582
+ </div>
140583
+ </div>
140571
140584
  </dees-tile>
140572
140585
  </div>
140573
140586
  `;
@@ -140581,6 +140594,39 @@ var _DeesInputCode = class _DeesInputCode extends (_a18 = DeesInputBase, _value_
140581
140594
  this.changeSubject.next(this);
140582
140595
  }
140583
140596
  });
140597
+ const editor = await this.editorElement.editorDeferred.promise;
140598
+ const model = editor.getModel();
140599
+ if (model) {
140600
+ this.lineCount = model.getLineCount();
140601
+ model.onDidChangeContent(() => {
140602
+ this.lineCount = model.getLineCount();
140603
+ });
140604
+ }
140605
+ editor.onDidChangeCursorPosition((e11) => {
140606
+ this.cursorPosition = { line: e11.position.lineNumber, column: e11.position.column };
140607
+ });
140608
+ const domtoolsInstance = await this.editorElement.domtoolsPromise;
140609
+ const updateEditorBg = /* @__PURE__ */ __name((isBright) => {
140610
+ const bg = isBright ? "#ffffff" : "#0a0a0a";
140611
+ editor.updateOptions({});
140612
+ window.monaco?.editor?.defineTheme?.("dees-light", {
140613
+ base: "vs",
140614
+ inherit: true,
140615
+ rules: [],
140616
+ colors: { "editor.background": bg }
140617
+ });
140618
+ window.monaco?.editor?.defineTheme?.("dees-dark", {
140619
+ base: "vs-dark",
140620
+ inherit: true,
140621
+ rules: [],
140622
+ colors: { "editor.background": bg }
140623
+ });
140624
+ editor.updateOptions({ theme: isBright ? "dees-light" : "dees-dark" });
140625
+ }, "updateEditorBg");
140626
+ updateEditorBg(domtoolsInstance.themeManager.goBrightBoolean);
140627
+ domtoolsInstance.themeManager.themeObservable.subscribe((goBright) => {
140628
+ updateEditorBg(goBright);
140629
+ });
140584
140630
  }
140585
140631
  }
140586
140632
  toggleLanguageDropdown() {
@@ -140937,6 +140983,8 @@ _wordWrap2 = new WeakMap();
140937
140983
  _showLineNumbers = new WeakMap();
140938
140984
  _isLanguageDropdownOpen = new WeakMap();
140939
140985
  _copySuccess = new WeakMap();
140986
+ _lineCount = new WeakMap();
140987
+ _cursorPosition = new WeakMap();
140940
140988
  __decorateElement(_init16, 4, "value", _value_dec2, _DeesInputCode, _value2);
140941
140989
  __decorateElement(_init16, 4, "language", _language_dec2, _DeesInputCode, _language2);
140942
140990
  __decorateElement(_init16, 4, "height", _height_dec, _DeesInputCode, _height);
@@ -140944,6 +140992,8 @@ __decorateElement(_init16, 4, "wordWrap", _wordWrap_dec2, _DeesInputCode, _wordW
140944
140992
  __decorateElement(_init16, 4, "showLineNumbers", _showLineNumbers_dec, _DeesInputCode, _showLineNumbers);
140945
140993
  __decorateElement(_init16, 4, "isLanguageDropdownOpen", _isLanguageDropdownOpen_dec, _DeesInputCode, _isLanguageDropdownOpen);
140946
140994
  __decorateElement(_init16, 4, "copySuccess", _copySuccess_dec, _DeesInputCode, _copySuccess);
140995
+ __decorateElement(_init16, 4, "lineCount", _lineCount_dec, _DeesInputCode, _lineCount);
140996
+ __decorateElement(_init16, 4, "cursorPosition", _cursorPosition_dec, _DeesInputCode, _cursorPosition);
140947
140997
  _DeesInputCode = __decorateElement(_init16, 0, "DeesInputCode", _DeesInputCode_decorators, _DeesInputCode);
140948
140998
  __name(_DeesInputCode, "DeesInputCode");
140949
140999
  __publicField(_DeesInputCode, "demo", /* @__PURE__ */ __name(() => b2`
@@ -141098,6 +141148,11 @@ __publicField(_DeesInputCode, "styles", [
141098
141148
  height: 100%;
141099
141149
  }
141100
141150
 
141151
+ /* Match Monaco background to tile */
141152
+ dees-workspace-monaco::part(container) {
141153
+ background: var(--dees-color-bg-primary);
141154
+ }
141155
+
141101
141156
  .toolbar-divider {
141102
141157
  width: 1px;
141103
141158
  height: 20px;
@@ -141105,6 +141160,32 @@ __publicField(_DeesInputCode, "styles", [
141105
141160
  margin: 0 4px;
141106
141161
  }
141107
141162
 
141163
+ /* Footer */
141164
+ .editor-footer {
141165
+ display: flex;
141166
+ align-items: center;
141167
+ justify-content: space-between;
141168
+ padding: 0 12px;
141169
+ height: 28px;
141170
+ font-size: 11px;
141171
+ color: var(--dees-color-text-muted);
141172
+ width: 100%;
141173
+ box-sizing: border-box;
141174
+ }
141175
+
141176
+ .footer-left,
141177
+ .footer-right {
141178
+ display: flex;
141179
+ align-items: center;
141180
+ gap: 12px;
141181
+ }
141182
+
141183
+ .footer-separator {
141184
+ width: 1px;
141185
+ height: 12px;
141186
+ background: var(--dees-color-border-default);
141187
+ }
141188
+
141108
141189
  :host([disabled]) .code-container {
141109
141190
  opacity: 0.5;
141110
141191
  pointer-events: none;
@@ -146021,201 +146102,158 @@ var demoFunc19 = /* @__PURE__ */ __name(() => b2`
146021
146102
 
146022
146103
  // ts_web/elements/00group-input/dees-input-fileupload/styles.ts
146023
146104
  init_dist_ts30();
146105
+ init_theme();
146024
146106
  var fileuploadStyles = [
146025
- cssManager.defaultStyles,
146107
+ themeDefaultStyles,
146026
146108
  ...DeesInputBase.baseStyles,
146109
+ cssManager.defaultStyles,
146027
146110
  i`
146028
146111
  :host {
146029
146112
  position: relative;
146030
146113
  display: block;
146031
146114
  }
146032
146115
 
146033
-
146034
146116
  .input-wrapper {
146035
146117
  display: flex;
146036
146118
  flex-direction: column;
146037
146119
  gap: 12px;
146038
146120
  }
146039
146121
 
146040
- .dropzone {
146041
- position: relative;
146042
- padding: 20px;
146043
- border-radius: 12px;
146044
- border: 1.5px dashed ${cssManager.bdTheme("hsl(215 16% 80%)", "hsl(217 20% 25%)")};
146045
- background: ${cssManager.bdTheme("hsl(0 0% 100%)", "hsl(215 20% 12%)")};
146046
- transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
146047
- cursor: pointer;
146048
- outline: none;
146049
- }
146050
-
146051
- .dropzone:focus-visible {
146052
- box-shadow: 0 0 0 2px ${cssManager.bdTheme("hsl(0 0% 100%)", "hsl(215 20% 12%)")},
146053
- 0 0 0 4px ${cssManager.bdTheme("hsl(217 91% 60% / 0.5)", "hsl(213 93% 68% / 0.4)")};
146054
- border-color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146122
+ /* ── Tile integration ── */
146123
+ dees-tile {
146124
+ cursor: default;
146055
146125
  }
146056
146126
 
146057
- .dropzone--active {
146058
- border-color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146059
- box-shadow: 0 12px 32px ${cssManager.bdTheme("rgba(15, 23, 42, 0.12)", "rgba(0, 0, 0, 0.35)")};
146060
- background: ${cssManager.bdTheme("hsl(217 91% 60% / 0.06)", "hsl(213 93% 68% / 0.12)")};
146127
+ dees-tile:hover::part(outer) {
146128
+ border-color: var(--dees-color-border-strong);
146061
146129
  }
146062
146130
 
146063
- .dropzone--has-files {
146064
- background: ${cssManager.bdTheme("hsl(0 0% 99%)", "hsl(215 20% 11%)")};
146131
+ dees-tile.dragover::part(outer) {
146132
+ border-color: var(--dees-color-accent-primary);
146133
+ box-shadow: 0 0 0 2px ${cssManager.bdTheme("hsl(217 91% 60% / 0.15)", "hsl(213 93% 68% / 0.15)")};
146065
146134
  }
146066
146135
 
146067
- .dropzone--disabled {
146136
+ :host([disabled]) dees-tile {
146068
146137
  opacity: 0.6;
146069
- pointer-events: none;
146070
146138
  cursor: not-allowed;
146139
+ pointer-events: none;
146071
146140
  }
146072
146141
 
146073
- .dropzone__body {
146074
- display: flex;
146075
- align-items: center;
146076
- gap: 16px;
146077
- }
146078
-
146079
- .dropzone__icon {
146080
- width: 48px;
146081
- height: 48px;
146082
- border-radius: 16px;
146142
+ /* ── Header slot: sleek toolbar ── */
146143
+ .dropzone-header {
146083
146144
  display: flex;
146084
146145
  align-items: center;
146085
- justify-content: center;
146086
- color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146087
- background: ${cssManager.bdTheme("hsl(217 91% 60% / 0.12)", "hsl(213 93% 68% / 0.12)")};
146088
- position: relative;
146089
- flex-shrink: 0;
146146
+ gap: 8px;
146147
+ height: 32px;
146148
+ padding: 0 12px;
146090
146149
  }
146091
146150
 
146092
- .dropzone__icon dees-icon {
146093
- font-size: 22px;
146151
+ .dropzone-header dees-icon {
146152
+ width: 14px;
146153
+ height: 14px;
146154
+ color: var(--dees-color-text-muted);
146094
146155
  }
146095
146156
 
146096
- .dropzone__loader {
146097
- width: 20px;
146098
- height: 20px;
146099
- border-radius: 999px;
146157
+ .dropzone-loader {
146158
+ width: 14px;
146159
+ height: 14px;
146160
+ border-radius: var(--dees-radius-full);
146100
146161
  border: 2px solid ${cssManager.bdTheme("rgba(15, 23, 42, 0.15)", "rgba(255, 255, 255, 0.15)")};
146101
- border-top-color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146162
+ border-top-color: var(--dees-color-accent-primary);
146102
146163
  animation: loader-spin 0.6s linear infinite;
146103
146164
  }
146104
146165
 
146105
- .dropzone__content {
146106
- display: flex;
146107
- flex-direction: column;
146108
- gap: 4px;
146109
- min-width: 0;
146110
- }
146111
-
146112
- .dropzone__headline {
146113
- font-size: 15px;
146114
- font-weight: 600;
146115
- color: ${cssManager.bdTheme("hsl(222 47% 11%)", "hsl(210 20% 96%)")};
146116
- }
146117
-
146118
- .dropzone__subline {
146166
+ .dropzone-title {
146119
146167
  font-size: 13px;
146120
- color: ${cssManager.bdTheme("hsl(215 16% 46%)", "hsl(215 16% 70%)")};
146168
+ color: var(--dees-color-text-muted);
146121
146169
  }
146122
146170
 
146123
- .dropzone__browse {
146171
+ .dropzone-browse {
146124
146172
  appearance: none;
146125
146173
  border: none;
146126
146174
  background: none;
146127
146175
  padding: 0;
146128
- margin-left: 4px;
146129
- color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146176
+ font-size: 13px;
146177
+ font-family: inherit;
146130
146178
  font-weight: 600;
146179
+ color: var(--dees-color-accent-primary);
146131
146180
  cursor: pointer;
146132
- text-decoration: none;
146133
146181
  }
146134
146182
 
146135
- .dropzone__browse:hover {
146183
+ .dropzone-browse:hover {
146136
146184
  text-decoration: underline;
146137
146185
  }
146138
146186
 
146139
- .dropzone__browse:disabled {
146187
+ .dropzone-browse:disabled {
146140
146188
  cursor: not-allowed;
146141
- opacity: 0.6;
146189
+ opacity: 0.5;
146142
146190
  }
146143
146191
 
146144
- .dropzone__meta {
146145
- margin-top: 14px;
146192
+ /* ── Content slot: file list in rounded inset ── */
146193
+ .file-list-empty {
146146
146194
  display: flex;
146147
- flex-wrap: wrap;
146195
+ flex-direction: column;
146196
+ align-items: center;
146197
+ justify-content: center;
146148
146198
  gap: 8px;
146149
- font-size: 12px;
146150
- color: ${cssManager.bdTheme("hsl(215 16% 50%)", "hsl(215 16% 72%)")};
146199
+ padding: 24px 16px;
146200
+ color: var(--dees-color-text-muted);
146201
+ font-size: 13px;
146151
146202
  }
146152
146203
 
146153
- .dropzone__meta span {
146154
- padding: 4px 10px;
146155
- border-radius: 999px;
146156
- background: ${cssManager.bdTheme("hsl(217 91% 95%)", "hsl(213 93% 18%)")};
146157
- border: 1px solid ${cssManager.bdTheme("hsl(217 91% 90%)", "hsl(213 93% 24%)")};
146204
+ .file-list-empty dees-icon {
146205
+ font-size: 24px;
146206
+ opacity: 0.4;
146158
146207
  }
146159
146208
 
146160
146209
  .file-list {
146161
146210
  display: flex;
146162
146211
  flex-direction: column;
146163
- gap: 12px;
146164
- margin-top: 20px;
146165
- padding-top: 20px;
146166
- border-top: 1px solid ${cssManager.bdTheme("hsl(217 91% 90%)", "hsl(213 93% 24%)")};
146167
146212
  }
146168
146213
 
146169
- .file-list__header {
146214
+ .file-list-header {
146170
146215
  display: flex;
146171
146216
  align-items: center;
146172
146217
  justify-content: space-between;
146173
- font-size: 13px;
146218
+ padding: 8px 12px;
146219
+ font-size: 12px;
146174
146220
  font-weight: 500;
146175
- color: ${cssManager.bdTheme("hsl(215 16% 45%)", "hsl(215 16% 68%)")};
146221
+ color: var(--dees-color-text-muted);
146176
146222
  }
146177
146223
 
146178
- .file-list__clear {
146224
+ .file-list-clear {
146179
146225
  appearance: none;
146180
146226
  border: none;
146181
146227
  background: none;
146182
- color: ${cssManager.bdTheme("hsl(217 91% 60%)", "hsl(213 93% 68%)")};
146228
+ color: var(--dees-color-accent-primary);
146183
146229
  cursor: pointer;
146184
146230
  font-weight: 500;
146185
- font-size: 13px;
146231
+ font-size: 12px;
146186
146232
  padding: 0;
146233
+ font-family: inherit;
146187
146234
  }
146188
146235
 
146189
- .file-list__clear:hover {
146236
+ .file-list-clear:hover {
146190
146237
  text-decoration: underline;
146191
146238
  }
146192
146239
 
146193
- .file-list__items {
146194
- display: flex;
146195
- flex-direction: column;
146196
- gap: 12px;
146197
- }
146198
-
146199
146240
  .file-row {
146200
146241
  display: flex;
146201
146242
  align-items: center;
146202
146243
  gap: 12px;
146203
- padding: 10px 12px;
146204
- background: ${cssManager.bdTheme("hsl(0 0% 100% / 0.5)", "hsl(215 20% 16% / 0.5)")};
146205
- border: 1px solid ${cssManager.bdTheme("hsl(213 27% 92%)", "hsl(217 25% 26%)")};
146206
- border-radius: 8px;
146207
- transition: background 0.15s ease;
146244
+ padding: 6px 12px;
146245
+ transition: background var(--dees-transition-fast) ease;
146208
146246
  }
146209
146247
 
146210
146248
  .file-row:hover {
146211
- background: ${cssManager.bdTheme("hsl(0 0% 100% / 0.8)", "hsl(215 20% 16% / 0.8)")};
146249
+ background: var(--dees-color-row-hover);
146212
146250
  }
146213
146251
 
146214
146252
  .file-thumb {
146215
- width: 36px;
146216
- height: 36px;
146217
- border-radius: 8px;
146218
- background: ${cssManager.bdTheme("hsl(214 31% 92%)", "hsl(217 32% 18%)")};
146253
+ width: 32px;
146254
+ height: 32px;
146255
+ border-radius: var(--dees-radius-sm);
146256
+ background: var(--dees-color-bg-tertiary);
146219
146257
  display: flex;
146220
146258
  align-items: center;
146221
146259
  justify-content: center;
@@ -146224,16 +146262,15 @@ var fileuploadStyles = [
146224
146262
  }
146225
146263
 
146226
146264
  .file-thumb dees-icon {
146227
- font-size: 18px;
146228
- color: ${cssManager.bdTheme("hsl(215 16% 45%)", "hsl(215 16% 70%)")};
146265
+ font-size: 16px;
146266
+ color: var(--dees-color-text-muted);
146229
146267
  display: block;
146230
- width: 18px;
146231
- height: 18px;
146268
+ width: 16px;
146269
+ height: 16px;
146232
146270
  line-height: 1;
146233
146271
  flex-shrink: 0;
146234
146272
  }
146235
146273
 
146236
-
146237
146274
  .thumb-image {
146238
146275
  width: 100%;
146239
146276
  height: 100%;
@@ -146243,14 +146280,14 @@ var fileuploadStyles = [
146243
146280
  .file-meta {
146244
146281
  display: flex;
146245
146282
  flex-direction: column;
146246
- gap: 4px;
146283
+ gap: 2px;
146247
146284
  min-width: 0;
146248
146285
  }
146249
146286
 
146250
146287
  .file-name {
146251
- font-weight: 600;
146252
- font-size: 14px;
146253
- color: ${cssManager.bdTheme("hsl(222 47% 11%)", "hsl(210 20% 96%)")};
146288
+ font-weight: 500;
146289
+ font-size: 13px;
146290
+ color: var(--dees-color-text-primary);
146254
146291
  white-space: nowrap;
146255
146292
  overflow: hidden;
146256
146293
  text-overflow: ellipsis;
@@ -146261,8 +146298,8 @@ var fileuploadStyles = [
146261
146298
  align-items: center;
146262
146299
  gap: 8px;
146263
146300
  flex-wrap: wrap;
146264
- font-size: 12px;
146265
- color: ${cssManager.bdTheme("hsl(215 16% 46%)", "hsl(215 16% 70%)")};
146301
+ font-size: 11px;
146302
+ color: var(--dees-color-text-muted);
146266
146303
  }
146267
146304
 
146268
146305
  .file-size {
@@ -146270,39 +146307,40 @@ var fileuploadStyles = [
146270
146307
  }
146271
146308
 
146272
146309
  .file-type {
146273
- padding: 2px 8px;
146274
- border-radius: 999px;
146275
- border: 1px solid ${cssManager.bdTheme("hsl(214 31% 86%)", "hsl(217 32% 28%)")};
146276
- color: ${cssManager.bdTheme("hsl(215 16% 46%)", "hsl(215 16% 70%)")};
146310
+ padding: 1px 6px;
146311
+ border-radius: var(--dees-radius-full);
146312
+ border: 1px solid var(--dees-color-border-default);
146313
+ color: var(--dees-color-text-muted);
146277
146314
  text-transform: uppercase;
146278
146315
  letter-spacing: 0.08em;
146279
146316
  line-height: 1;
146317
+ font-size: 10px;
146280
146318
  }
146281
146319
 
146282
146320
  .file-actions {
146283
146321
  display: flex;
146284
146322
  align-items: center;
146285
- gap: 8px;
146286
146323
  margin-left: auto;
146287
146324
  }
146288
146325
 
146289
146326
  .remove-button {
146290
- width: 28px;
146291
- height: 28px;
146292
- border-radius: 6px;
146327
+ width: 24px;
146328
+ height: 24px;
146329
+ border-radius: var(--dees-radius-xs);
146293
146330
  background: transparent;
146294
146331
  border: none;
146295
146332
  cursor: pointer;
146296
146333
  display: flex;
146297
146334
  align-items: center;
146298
146335
  justify-content: center;
146299
- transition: background 0.15s ease, transform 0.15s ease, color 0.15s ease;
146300
- color: ${cssManager.bdTheme("hsl(215 16% 52%)", "hsl(215 16% 68%)")};
146336
+ transition: background var(--dees-transition-fast) ease,
146337
+ color var(--dees-transition-fast) ease;
146338
+ color: var(--dees-color-text-muted);
146301
146339
  }
146302
146340
 
146303
146341
  .remove-button:hover {
146304
146342
  background: ${cssManager.bdTheme("hsl(0 72% 50% / 0.08)", "hsl(0 62% 32% / 0.15)")};
146305
- color: ${cssManager.bdTheme("hsl(0 72% 46%)", "hsl(0 70% 70%)")};
146343
+ color: var(--dees-color-accent-error);
146306
146344
  }
146307
146345
 
146308
146346
  .remove-button:active {
@@ -146318,9 +146356,28 @@ var fileuploadStyles = [
146318
146356
  flex-shrink: 0;
146319
146357
  }
146320
146358
 
146359
+ /* ── Footer slot: meta chips ── */
146360
+ .dropzone-footer {
146361
+ display: flex;
146362
+ flex-wrap: wrap;
146363
+ gap: 6px;
146364
+ padding: 6px 12px;
146365
+ align-items: center;
146366
+ }
146367
+
146368
+ .meta-chip {
146369
+ font-size: 11px;
146370
+ padding: 2px 8px;
146371
+ border-radius: var(--dees-radius-full);
146372
+ color: var(--dees-color-text-muted);
146373
+ background: var(--dees-color-bg-tertiary);
146374
+ border: 1px solid var(--dees-color-border-subtle);
146375
+ }
146376
+
146377
+ /* ── Validation ── */
146321
146378
  .validation-message {
146322
146379
  font-size: 13px;
146323
- color: ${cssManager.bdTheme("hsl(0 72% 40%)", "hsl(0 70% 68%)")};
146380
+ color: var(--dees-color-accent-error);
146324
146381
  line-height: 1.5;
146325
146382
  }
146326
146383
 
@@ -146365,18 +146422,12 @@ var _DeesInputFileupload = class _DeesInputFileupload extends (_a27 = DeesInputB
146365
146422
  if (this.disabled) {
146366
146423
  return;
146367
146424
  }
146368
- if (event.target.closest(".dropzone__browse, .file-list")) {
146425
+ const target = event.target;
146426
+ if (target.closest(".file-list, .dropzone-header, .dropzone-footer")) {
146369
146427
  return;
146370
146428
  }
146371
146429
  this.openFileSelector();
146372
146430
  }, "handleDropzoneClick"));
146373
- __publicField(this, "handleBrowseClick", /* @__PURE__ */ __name((event) => {
146374
- if (this.disabled) {
146375
- return;
146376
- }
146377
- event.stopPropagation();
146378
- this.openFileSelector();
146379
- }, "handleBrowseClick"));
146380
146431
  __publicField(this, "handleDropzoneKeydown", /* @__PURE__ */ __name((event) => {
146381
146432
  if (this.disabled) {
146382
146433
  return;
@@ -146446,14 +146497,13 @@ var _DeesInputFileupload = class _DeesInputFileupload extends (_a27 = DeesInputB
146446
146497
  .description=${this.description}
146447
146498
  .required=${this.required}
146448
146499
  ></dees-label>
146449
- <div
146450
- class="dropzone ${this.state === "dragOver" ? "dropzone--active" : ""} ${this.disabled ? "dropzone--disabled" : ""} ${this.value.length > 0 ? "dropzone--has-files" : ""}"
146451
- role="button"
146500
+ <dees-tile
146501
+ class="${this.state === "dragOver" ? "dragover" : ""}"
146502
+ @click=${this.handleDropzoneClick}
146503
+ @keydown=${this.handleDropzoneKeydown}
146452
146504
  tabindex=${this.disabled ? -1 : 0}
146453
146505
  aria-disabled=${this.disabled}
146454
146506
  aria-label=${`Select files${acceptedSummary ? ` (${acceptedSummary})` : ""}`}
146455
- @click=${this.handleDropzoneClick}
146456
- @keydown=${this.handleDropzoneKeydown}
146457
146507
  >
146458
146508
  <input
146459
146509
  class="file-input"
@@ -146465,47 +146515,44 @@ var _DeesInputFileupload = class _DeesInputFileupload extends (_a27 = DeesInputB
146465
146515
  @change=${this.handleFileInputChange}
146466
146516
  tabindex="-1"
146467
146517
  />
146468
- <div class="dropzone__body">
146469
- <div class="dropzone__icon">
146470
- ${this.isLoading ? b2`<span class="dropzone__loader" aria-hidden="true"></span>` : b2`<dees-icon icon="lucide:FolderOpen"></dees-icon>`}
146471
- </div>
146472
- <div class="dropzone__content">
146473
- <span class="dropzone__headline">${this.buttonText || "Select files"}</span>
146474
- <span class="dropzone__subline">
146475
- Drag and drop files here or
146476
- <button
146477
- type="button"
146478
- class="dropzone__browse"
146479
- @click=${this.handleBrowseClick}
146480
- ?disabled=${this.disabled}
146481
- >
146482
- browse
146483
- </button>
146484
- </span>
146485
- </div>
146486
- </div>
146487
- <div class="dropzone__meta">
146488
- ${metaEntries.map((entry) => b2`<span>${entry}</span>`)}
146518
+ <div slot="header" class="dropzone-header">
146519
+ ${this.isLoading ? b2`<span class="dropzone-loader" aria-hidden="true"></span>` : b2`<dees-icon icon="lucide:Upload"></dees-icon>`}
146520
+ <span class="dropzone-title">Drop files here or</span>
146521
+ <button
146522
+ type="button"
146523
+ class="dropzone-browse"
146524
+ @click=${(e11) => {
146525
+ e11.stopPropagation();
146526
+ this.openFileSelector();
146527
+ }}
146528
+ ?disabled=${this.disabled}
146529
+ >browse</button>
146489
146530
  </div>
146490
146531
  ${this.renderFileList()}
146491
- </div>
146532
+ <div slot="footer" class="dropzone-footer">
146533
+ ${metaEntries.map((entry) => b2`<span class="meta-chip">${entry}</span>`)}
146534
+ </div>
146535
+ </dees-tile>
146492
146536
  ${this.validationMessage ? b2`<div class="validation-message" aria-live="polite">${this.validationMessage}</div>` : b2``}
146493
146537
  </div>
146494
146538
  `;
146495
146539
  }
146496
146540
  renderFileList() {
146497
146541
  if (this.value.length === 0) {
146498
- return b2``;
146542
+ return b2`
146543
+ <div class="file-list-empty">
146544
+ <dees-icon icon="lucide:FileStack"></dees-icon>
146545
+ <span>No files selected</span>
146546
+ </div>
146547
+ `;
146499
146548
  }
146500
146549
  return b2`
146501
146550
  <div class="file-list">
146502
- <div class="file-list__header">
146551
+ <div class="file-list-header">
146503
146552
  <span>${this.value.length} file${this.value.length === 1 ? "" : "s"} selected</span>
146504
- ${this.value.length > 0 ? b2`<button type="button" class="file-list__clear" @click=${this.handleClearAll}>Clear ${this.value.length > 1 ? "all" : ""}</button>` : b2``}
146505
- </div>
146506
- <div class="file-list__items">
146507
- ${this.value.map((file) => this.renderFileRow(file))}
146553
+ <button type="button" class="file-list-clear" @click=${this.handleClearAll}>Clear ${this.value.length > 1 ? "all" : ""}</button>
146508
146554
  </div>
146555
+ ${this.value.map((file) => this.renderFileRow(file))}
146509
146556
  </div>
146510
146557
  `;
146511
146558
  }
@@ -146554,7 +146601,7 @@ var _DeesInputFileupload = class _DeesInputFileupload extends (_a27 = DeesInputB
146554
146601
  });
146555
146602
  }
146556
146603
  rebindInteractiveElements() {
146557
- const newDropArea = this.shadowRoot?.querySelector(".dropzone");
146604
+ const newDropArea = this.shadowRoot?.querySelector("dees-tile");
146558
146605
  if (newDropArea !== this.dropArea) {
146559
146606
  this.detachDropListeners();
146560
146607
  this.dropArea = newDropArea;
@@ -198591,7 +198638,7 @@ init_group_runtime();
198591
198638
  // ts_web/00_commitinfo_data.ts
198592
198639
  var commitinfo = {
198593
198640
  name: "@design.estate/dees-catalog",
198594
- version: "3.56.1",
198641
+ version: "3.58.0",
198595
198642
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
198596
198643
  };
198597
198644
  export {
@@ -200563,4 +200610,4 @@ ibantools/jsnext/ibantools.js:
200563
200610
  * @preferred
200564
200611
  *)
200565
200612
  */
200566
- //# sourceMappingURL=bundle-1775346448265.js.map
200613
+ //# sourceMappingURL=bundle-1775347603313.js.map