@serve.zone/catalog 2.5.0 → 2.6.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/catalog',
6
- version: '2.5.0',
6
+ version: '2.6.0',
7
7
  description: 'UI component catalog for serve.zone'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxxQ0FBcUM7Q0FDbkQsQ0FBQSJ9
@@ -33,6 +33,9 @@ export interface IServiceConfig {
33
33
  memoryLimit: string;
34
34
  restartPolicy: 'always' | 'on-failure' | 'never';
35
35
  networkMode: string;
36
+ enableMongoDB: boolean;
37
+ enableS3: boolean;
38
+ enableClickHouse: boolean;
36
39
  }
37
40
  export declare class SzServiceCreateView extends DeesElement {
38
41
  static demo: () => TemplateResult<1>;
@@ -50,6 +53,9 @@ export declare class SzServiceCreateView extends DeesElement {
50
53
  private accessor restartPolicy;
51
54
  private accessor networkMode;
52
55
  private accessor showAdvanced;
56
+ private accessor enableMongoDB;
57
+ private accessor enableS3;
58
+ private accessor enableClickHouse;
53
59
  static styles: import("@design.estate/dees-element").CSSResult[];
54
60
  render(): TemplateResult;
55
61
  private isValid;
@@ -78,6 +78,15 @@ let SzServiceCreateView = (() => {
78
78
  let _showAdvanced_decorators;
79
79
  let _showAdvanced_initializers = [];
80
80
  let _showAdvanced_extraInitializers = [];
81
+ let _enableMongoDB_decorators;
82
+ let _enableMongoDB_initializers = [];
83
+ let _enableMongoDB_extraInitializers = [];
84
+ let _enableS3_decorators;
85
+ let _enableS3_initializers = [];
86
+ let _enableS3_extraInitializers = [];
87
+ let _enableClickHouse_decorators;
88
+ let _enableClickHouse_initializers = [];
89
+ let _enableClickHouse_extraInitializers = [];
81
90
  var SzServiceCreateView = class extends _classSuper {
82
91
  static { _classThis = this; }
83
92
  static {
@@ -95,6 +104,9 @@ let SzServiceCreateView = (() => {
95
104
  _restartPolicy_decorators = [state()];
96
105
  _networkMode_decorators = [state()];
97
106
  _showAdvanced_decorators = [state()];
107
+ _enableMongoDB_decorators = [state()];
108
+ _enableS3_decorators = [state()];
109
+ _enableClickHouse_decorators = [state()];
98
110
  __esDecorate(this, null, _registries_decorators, { kind: "accessor", name: "registries", static: false, private: false, access: { has: obj => "registries" in obj, get: obj => obj.registries, set: (obj, value) => { obj.registries = value; } }, metadata: _metadata }, _registries_initializers, _registries_extraInitializers);
99
111
  __esDecorate(this, null, _loading_decorators, { kind: "accessor", name: "loading", static: false, private: false, access: { has: obj => "loading" in obj, get: obj => obj.loading, set: (obj, value) => { obj.loading = value; } }, metadata: _metadata }, _loading_initializers, _loading_extraInitializers);
100
112
  __esDecorate(this, null, _serviceName_decorators, { kind: "accessor", name: "serviceName", static: false, private: false, access: { has: obj => "serviceName" in obj, get: obj => obj.serviceName, set: (obj, value) => { obj.serviceName = value; } }, metadata: _metadata }, _serviceName_initializers, _serviceName_extraInitializers);
@@ -108,6 +120,9 @@ let SzServiceCreateView = (() => {
108
120
  __esDecorate(this, null, _restartPolicy_decorators, { kind: "accessor", name: "restartPolicy", static: false, private: false, access: { has: obj => "restartPolicy" in obj, get: obj => obj.restartPolicy, set: (obj, value) => { obj.restartPolicy = value; } }, metadata: _metadata }, _restartPolicy_initializers, _restartPolicy_extraInitializers);
109
121
  __esDecorate(this, null, _networkMode_decorators, { kind: "accessor", name: "networkMode", static: false, private: false, access: { has: obj => "networkMode" in obj, get: obj => obj.networkMode, set: (obj, value) => { obj.networkMode = value; } }, metadata: _metadata }, _networkMode_initializers, _networkMode_extraInitializers);
110
122
  __esDecorate(this, null, _showAdvanced_decorators, { kind: "accessor", name: "showAdvanced", static: false, private: false, access: { has: obj => "showAdvanced" in obj, get: obj => obj.showAdvanced, set: (obj, value) => { obj.showAdvanced = value; } }, metadata: _metadata }, _showAdvanced_initializers, _showAdvanced_extraInitializers);
123
+ __esDecorate(this, null, _enableMongoDB_decorators, { kind: "accessor", name: "enableMongoDB", static: false, private: false, access: { has: obj => "enableMongoDB" in obj, get: obj => obj.enableMongoDB, set: (obj, value) => { obj.enableMongoDB = value; } }, metadata: _metadata }, _enableMongoDB_initializers, _enableMongoDB_extraInitializers);
124
+ __esDecorate(this, null, _enableS3_decorators, { kind: "accessor", name: "enableS3", static: false, private: false, access: { has: obj => "enableS3" in obj, get: obj => obj.enableS3, set: (obj, value) => { obj.enableS3 = value; } }, metadata: _metadata }, _enableS3_initializers, _enableS3_extraInitializers);
125
+ __esDecorate(this, null, _enableClickHouse_decorators, { kind: "accessor", name: "enableClickHouse", static: false, private: false, access: { has: obj => "enableClickHouse" in obj, get: obj => obj.enableClickHouse, set: (obj, value) => { obj.enableClickHouse = value; } }, metadata: _metadata }, _enableClickHouse_initializers, _enableClickHouse_extraInitializers);
111
126
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
112
127
  SzServiceCreateView = _classThis = _classDescriptor.value;
113
128
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -162,6 +177,15 @@ let SzServiceCreateView = (() => {
162
177
  #showAdvanced_accessor_storage = (__runInitializers(this, _networkMode_extraInitializers), __runInitializers(this, _showAdvanced_initializers, false));
163
178
  get showAdvanced() { return this.#showAdvanced_accessor_storage; }
164
179
  set showAdvanced(value) { this.#showAdvanced_accessor_storage = value; }
180
+ #enableMongoDB_accessor_storage = (__runInitializers(this, _showAdvanced_extraInitializers), __runInitializers(this, _enableMongoDB_initializers, false));
181
+ get enableMongoDB() { return this.#enableMongoDB_accessor_storage; }
182
+ set enableMongoDB(value) { this.#enableMongoDB_accessor_storage = value; }
183
+ #enableS3_accessor_storage = (__runInitializers(this, _enableMongoDB_extraInitializers), __runInitializers(this, _enableS3_initializers, false));
184
+ get enableS3() { return this.#enableS3_accessor_storage; }
185
+ set enableS3(value) { this.#enableS3_accessor_storage = value; }
186
+ #enableClickHouse_accessor_storage = (__runInitializers(this, _enableS3_extraInitializers), __runInitializers(this, _enableClickHouse_initializers, false));
187
+ get enableClickHouse() { return this.#enableClickHouse_accessor_storage; }
188
+ set enableClickHouse(value) { this.#enableClickHouse_accessor_storage = value; }
165
189
  static styles = [
166
190
  cssManager.defaultStyles,
167
191
  css `
@@ -370,6 +394,105 @@ let SzServiceCreateView = (() => {
370
394
  accent-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
371
395
  }
372
396
 
397
+ .platform-toggle-list {
398
+ display: flex;
399
+ flex-direction: column;
400
+ gap: 12px;
401
+ }
402
+
403
+ .platform-toggle-item {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: space-between;
407
+ padding: 12px 16px;
408
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
409
+ border-radius: 8px;
410
+ transition: background 200ms ease;
411
+ }
412
+
413
+ .platform-toggle-item:has(input:checked) {
414
+ background: ${cssManager.bdTheme('#eff6ff', 'rgba(59, 130, 246, 0.1)')};
415
+ }
416
+
417
+ .platform-toggle-info {
418
+ display: flex;
419
+ align-items: center;
420
+ gap: 12px;
421
+ }
422
+
423
+ .platform-toggle-icon {
424
+ width: 36px;
425
+ height: 36px;
426
+ border-radius: 8px;
427
+ background: ${cssManager.bdTheme('#ffffff', '#27272a')};
428
+ display: flex;
429
+ align-items: center;
430
+ justify-content: center;
431
+ }
432
+
433
+ .platform-toggle-icon svg {
434
+ width: 20px;
435
+ height: 20px;
436
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
437
+ }
438
+
439
+ .platform-toggle-name {
440
+ font-size: 14px;
441
+ font-weight: 500;
442
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
443
+ }
444
+
445
+ .platform-toggle-desc {
446
+ font-size: 12px;
447
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
448
+ margin-top: 2px;
449
+ }
450
+
451
+ .toggle-switch {
452
+ position: relative;
453
+ width: 44px;
454
+ height: 24px;
455
+ flex-shrink: 0;
456
+ }
457
+
458
+ .toggle-switch input {
459
+ opacity: 0;
460
+ width: 0;
461
+ height: 0;
462
+ }
463
+
464
+ .toggle-slider {
465
+ position: absolute;
466
+ cursor: pointer;
467
+ top: 0;
468
+ left: 0;
469
+ right: 0;
470
+ bottom: 0;
471
+ background: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
472
+ border-radius: 12px;
473
+ transition: background 200ms ease;
474
+ }
475
+
476
+ .toggle-slider::before {
477
+ content: '';
478
+ position: absolute;
479
+ height: 18px;
480
+ width: 18px;
481
+ left: 3px;
482
+ bottom: 3px;
483
+ background: white;
484
+ border-radius: 50%;
485
+ transition: transform 200ms ease;
486
+ }
487
+
488
+ .toggle-switch input:checked + .toggle-slider {
489
+ background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
490
+ }
491
+
492
+ .toggle-switch input:checked + .toggle-slider::before {
493
+ transform: translateX(20px);
494
+ }
495
+
373
496
  .actions {
374
497
  display: flex;
375
498
  justify-content: flex-end;
@@ -593,6 +716,81 @@ let SzServiceCreateView = (() => {
593
716
  </button>
594
717
  </div>
595
718
 
719
+ <!-- Platform Services -->
720
+ <div class="section">
721
+ <div class="section-title">
722
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
723
+ <rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
724
+ <rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
725
+ <line x1="6" y1="6" x2="6.01" y2="6"></line>
726
+ <line x1="6" y1="18" x2="6.01" y2="18"></line>
727
+ </svg>
728
+ Platform Services
729
+ </div>
730
+ <div class="form-hint" style="margin-bottom: 12px;">
731
+ Enable managed infrastructure services for this deployment. Resources are automatically provisioned and connection details injected as environment variables.
732
+ </div>
733
+ <div class="platform-toggle-list">
734
+ <label class="platform-toggle-item">
735
+ <div class="platform-toggle-info">
736
+ <div class="platform-toggle-icon">
737
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
738
+ </div>
739
+ <div>
740
+ <div class="platform-toggle-name">MongoDB</div>
741
+ <div class="platform-toggle-desc">Document database with auto-provisioned credentials</div>
742
+ </div>
743
+ </div>
744
+ <div class="toggle-switch">
745
+ <input
746
+ type="checkbox"
747
+ ?checked=${this.enableMongoDB}
748
+ @change=${(e) => this.enableMongoDB = e.target.checked}
749
+ >
750
+ <span class="toggle-slider"></span>
751
+ </div>
752
+ </label>
753
+ <label class="platform-toggle-item">
754
+ <div class="platform-toggle-info">
755
+ <div class="platform-toggle-icon">
756
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M21 16.5c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18-.21 0-.41-.06-.57-.18l-7.9-4.44A.991.991 0 0 1 3 16.5v-9c0-.38.21-.71.53-.88l7.9-4.44c.16-.12.36-.18.57-.18.21 0 .41.06.57.18l7.9 4.44c.32.17.53.5.53.88v9z"/></svg>
757
+ </div>
758
+ <div>
759
+ <div class="platform-toggle-name">S3 Storage (MinIO)</div>
760
+ <div class="platform-toggle-desc">Object storage bucket with auto-provisioned access keys</div>
761
+ </div>
762
+ </div>
763
+ <div class="toggle-switch">
764
+ <input
765
+ type="checkbox"
766
+ ?checked=${this.enableS3}
767
+ @change=${(e) => this.enableS3 = e.target.checked}
768
+ >
769
+ <span class="toggle-slider"></span>
770
+ </div>
771
+ </label>
772
+ <label class="platform-toggle-item">
773
+ <div class="platform-toggle-info">
774
+ <div class="platform-toggle-icon">
775
+ <svg viewBox="0 0 24 24" fill="currentColor"><rect x="2" y="2" width="6" height="20"/><rect x="9" y="7" width="6" height="15"/><rect x="16" y="12" width="6" height="10"/></svg>
776
+ </div>
777
+ <div>
778
+ <div class="platform-toggle-name">ClickHouse</div>
779
+ <div class="platform-toggle-desc">Analytics database with auto-provisioned credentials</div>
780
+ </div>
781
+ </div>
782
+ <div class="toggle-switch">
783
+ <input
784
+ type="checkbox"
785
+ ?checked=${this.enableClickHouse}
786
+ @change=${(e) => this.enableClickHouse = e.target.checked}
787
+ >
788
+ <span class="toggle-slider"></span>
789
+ </div>
790
+ </label>
791
+ </div>
792
+ </div>
793
+
596
794
  <!-- Advanced Options Toggle -->
597
795
  <button
598
796
  class="toggle-advanced ${this.showAdvanced ? 'open' : ''}"
@@ -795,6 +993,9 @@ let SzServiceCreateView = (() => {
795
993
  memoryLimit: this.memoryLimit,
796
994
  restartPolicy: this.restartPolicy,
797
995
  networkMode: this.networkMode,
996
+ enableMongoDB: this.enableMongoDB,
997
+ enableS3: this.enableS3,
998
+ enableClickHouse: this.enableClickHouse,
798
999
  };
799
1000
  this.dispatchEvent(new CustomEvent('create-service', {
800
1001
  detail: config,
@@ -814,10 +1015,13 @@ let SzServiceCreateView = (() => {
814
1015
  this.restartPolicy = 'always';
815
1016
  this.networkMode = 'bridge';
816
1017
  this.showAdvanced = false;
1018
+ this.enableMongoDB = false;
1019
+ this.enableS3 = false;
1020
+ this.enableClickHouse = false;
817
1021
  }
818
1022
  constructor() {
819
1023
  super(...arguments);
820
- __runInitializers(this, _showAdvanced_extraInitializers);
1024
+ __runInitializers(this, _enableClickHouse_extraInitializers);
821
1025
  }
822
1026
  static {
823
1027
  __runInitializers(_classThis, _classExtraInitializers);
@@ -826,4 +1030,4 @@ let SzServiceCreateView = (() => {
826
1030
  return SzServiceCreateView = _classThis;
827
1031
  })();
828
1032
  export { SzServiceCreateView };
829
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc2VydmljZS1jcmVhdGUtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxHQUVOLE1BQU0sNkJBQTZCLENBQUM7SUE0Q3hCLG1CQUFtQjs0QkFEL0IsYUFBYSxDQUFDLHdCQUF3QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBQW5CLFNBQVEsV0FBVzs7OztzQ0FjakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7dUNBRzNCLEtBQUssRUFBRTtvQ0FHUCxLQUFLLEVBQUU7NENBR1AsS0FBSyxFQUFFO2lDQUdQLEtBQUssRUFBRTttQ0FHUCxLQUFLLEVBQUU7bUNBR1AsS0FBSyxFQUFFO29DQUdQLEtBQUssRUFBRTt1Q0FHUCxLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFBRTt3Q0FHUCxLQUFLLEVBQUU7WUFuQ1IsbUxBQWdCLFVBQVUsNkJBQVYsVUFBVSwrRkFBbUI7WUFHN0MsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBa0I7WUFHekMsc0xBQWlCLFdBQVcsNkJBQVgsV0FBVyxpR0FBYztZQUcxQyw2S0FBaUIsUUFBUSw2QkFBUixRQUFRLDJGQUFjO1lBR3ZDLHFNQUFpQixnQkFBZ0IsNkJBQWhCLGdCQUFnQiwyR0FBYztZQUcvQyxvS0FBaUIsS0FBSyw2QkFBTCxLQUFLLHFGQUEwRTtZQUdoRywwS0FB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
1033
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc2VydmljZS1jcmVhdGUtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1zZXJ2aWNlLWNyZWF0ZS12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxHQUVOLE1BQU0sNkJBQTZCLENBQUM7SUErQ3hCLG1CQUFtQjs0QkFEL0IsYUFBYSxDQUFDLHdCQUF3QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBQW5CLFNBQVEsV0FBVzs7OztzQ0FjakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7dUNBRzNCLEtBQUssRUFBRTtvQ0FHUCxLQUFLLEVBQUU7NENBR1AsS0FBSyxFQUFFO2lDQUdQLEtBQUssRUFBRTttQ0FHUCxLQUFLLEVBQUU7bUNBR1AsS0FBSyxFQUFFO29DQUdQLEtBQUssRUFBRTt1Q0FHUCxLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFBRTt3Q0FHUCxLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFO29DQUdQLEtBQUssRUFBRTs0Q0FHUCxLQUFLLEVBQUU7WUE1Q1IsbUxBQWdCLFVBQVUsNkJBQVYsVUFBVSwrRkFBbUI7WUFHN0MsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBa0I7WUFHekMsc0xBQWlCLFdBQVcsNkJBQVgsV0FBVyxpR0FBYztZQUcxQyw2S0FBaUIsUUFBUSw2QkFBUixRQUFRLDJGQUFjO1lBR3ZDLHFNQUFpQixnQkFBZ0IsNkJBQWhCLGdC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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/catalog",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "private": false,
5
5
  "description": "UI component catalog for serve.zone",
6
6
  "main": "dist_ts_web/index.js",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/catalog',
6
- version: '2.5.0',
6
+ version: '2.6.0',
7
7
  description: 'UI component catalog for serve.zone'
8
8
  }
@@ -48,6 +48,9 @@ export interface IServiceConfig {
48
48
  memoryLimit: string;
49
49
  restartPolicy: 'always' | 'on-failure' | 'never';
50
50
  networkMode: string;
51
+ enableMongoDB: boolean;
52
+ enableS3: boolean;
53
+ enableClickHouse: boolean;
51
54
  }
52
55
 
53
56
  @customElement('sz-service-create-view')
@@ -104,6 +107,15 @@ export class SzServiceCreateView extends DeesElement {
104
107
  @state()
105
108
  private accessor showAdvanced: boolean = false;
106
109
 
110
+ @state()
111
+ private accessor enableMongoDB: boolean = false;
112
+
113
+ @state()
114
+ private accessor enableS3: boolean = false;
115
+
116
+ @state()
117
+ private accessor enableClickHouse: boolean = false;
118
+
107
119
  public static styles = [
108
120
  cssManager.defaultStyles,
109
121
  css`
@@ -312,6 +324,105 @@ export class SzServiceCreateView extends DeesElement {
312
324
  accent-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
313
325
  }
314
326
 
327
+ .platform-toggle-list {
328
+ display: flex;
329
+ flex-direction: column;
330
+ gap: 12px;
331
+ }
332
+
333
+ .platform-toggle-item {
334
+ display: flex;
335
+ align-items: center;
336
+ justify-content: space-between;
337
+ padding: 12px 16px;
338
+ background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
339
+ border-radius: 8px;
340
+ transition: background 200ms ease;
341
+ }
342
+
343
+ .platform-toggle-item:has(input:checked) {
344
+ background: ${cssManager.bdTheme('#eff6ff', 'rgba(59, 130, 246, 0.1)')};
345
+ }
346
+
347
+ .platform-toggle-info {
348
+ display: flex;
349
+ align-items: center;
350
+ gap: 12px;
351
+ }
352
+
353
+ .platform-toggle-icon {
354
+ width: 36px;
355
+ height: 36px;
356
+ border-radius: 8px;
357
+ background: ${cssManager.bdTheme('#ffffff', '#27272a')};
358
+ display: flex;
359
+ align-items: center;
360
+ justify-content: center;
361
+ }
362
+
363
+ .platform-toggle-icon svg {
364
+ width: 20px;
365
+ height: 20px;
366
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
367
+ }
368
+
369
+ .platform-toggle-name {
370
+ font-size: 14px;
371
+ font-weight: 500;
372
+ color: ${cssManager.bdTheme('#18181b', '#fafafa')};
373
+ }
374
+
375
+ .platform-toggle-desc {
376
+ font-size: 12px;
377
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
378
+ margin-top: 2px;
379
+ }
380
+
381
+ .toggle-switch {
382
+ position: relative;
383
+ width: 44px;
384
+ height: 24px;
385
+ flex-shrink: 0;
386
+ }
387
+
388
+ .toggle-switch input {
389
+ opacity: 0;
390
+ width: 0;
391
+ height: 0;
392
+ }
393
+
394
+ .toggle-slider {
395
+ position: absolute;
396
+ cursor: pointer;
397
+ top: 0;
398
+ left: 0;
399
+ right: 0;
400
+ bottom: 0;
401
+ background: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
402
+ border-radius: 12px;
403
+ transition: background 200ms ease;
404
+ }
405
+
406
+ .toggle-slider::before {
407
+ content: '';
408
+ position: absolute;
409
+ height: 18px;
410
+ width: 18px;
411
+ left: 3px;
412
+ bottom: 3px;
413
+ background: white;
414
+ border-radius: 50%;
415
+ transition: transform 200ms ease;
416
+ }
417
+
418
+ .toggle-switch input:checked + .toggle-slider {
419
+ background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
420
+ }
421
+
422
+ .toggle-switch input:checked + .toggle-slider::before {
423
+ transform: translateX(20px);
424
+ }
425
+
315
426
  .actions {
316
427
  display: flex;
317
428
  justify-content: flex-end;
@@ -536,6 +647,81 @@ export class SzServiceCreateView extends DeesElement {
536
647
  </button>
537
648
  </div>
538
649
 
650
+ <!-- Platform Services -->
651
+ <div class="section">
652
+ <div class="section-title">
653
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
654
+ <rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
655
+ <rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
656
+ <line x1="6" y1="6" x2="6.01" y2="6"></line>
657
+ <line x1="6" y1="18" x2="6.01" y2="18"></line>
658
+ </svg>
659
+ Platform Services
660
+ </div>
661
+ <div class="form-hint" style="margin-bottom: 12px;">
662
+ Enable managed infrastructure services for this deployment. Resources are automatically provisioned and connection details injected as environment variables.
663
+ </div>
664
+ <div class="platform-toggle-list">
665
+ <label class="platform-toggle-item">
666
+ <div class="platform-toggle-info">
667
+ <div class="platform-toggle-icon">
668
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
669
+ </div>
670
+ <div>
671
+ <div class="platform-toggle-name">MongoDB</div>
672
+ <div class="platform-toggle-desc">Document database with auto-provisioned credentials</div>
673
+ </div>
674
+ </div>
675
+ <div class="toggle-switch">
676
+ <input
677
+ type="checkbox"
678
+ ?checked=${this.enableMongoDB}
679
+ @change=${(e: Event) => this.enableMongoDB = (e.target as HTMLInputElement).checked}
680
+ >
681
+ <span class="toggle-slider"></span>
682
+ </div>
683
+ </label>
684
+ <label class="platform-toggle-item">
685
+ <div class="platform-toggle-info">
686
+ <div class="platform-toggle-icon">
687
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M21 16.5c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18-.21 0-.41-.06-.57-.18l-7.9-4.44A.991.991 0 0 1 3 16.5v-9c0-.38.21-.71.53-.88l7.9-4.44c.16-.12.36-.18.57-.18.21 0 .41.06.57.18l7.9 4.44c.32.17.53.5.53.88v9z"/></svg>
688
+ </div>
689
+ <div>
690
+ <div class="platform-toggle-name">S3 Storage (MinIO)</div>
691
+ <div class="platform-toggle-desc">Object storage bucket with auto-provisioned access keys</div>
692
+ </div>
693
+ </div>
694
+ <div class="toggle-switch">
695
+ <input
696
+ type="checkbox"
697
+ ?checked=${this.enableS3}
698
+ @change=${(e: Event) => this.enableS3 = (e.target as HTMLInputElement).checked}
699
+ >
700
+ <span class="toggle-slider"></span>
701
+ </div>
702
+ </label>
703
+ <label class="platform-toggle-item">
704
+ <div class="platform-toggle-info">
705
+ <div class="platform-toggle-icon">
706
+ <svg viewBox="0 0 24 24" fill="currentColor"><rect x="2" y="2" width="6" height="20"/><rect x="9" y="7" width="6" height="15"/><rect x="16" y="12" width="6" height="10"/></svg>
707
+ </div>
708
+ <div>
709
+ <div class="platform-toggle-name">ClickHouse</div>
710
+ <div class="platform-toggle-desc">Analytics database with auto-provisioned credentials</div>
711
+ </div>
712
+ </div>
713
+ <div class="toggle-switch">
714
+ <input
715
+ type="checkbox"
716
+ ?checked=${this.enableClickHouse}
717
+ @change=${(e: Event) => this.enableClickHouse = (e.target as HTMLInputElement).checked}
718
+ >
719
+ <span class="toggle-slider"></span>
720
+ </div>
721
+ </label>
722
+ </div>
723
+ </div>
724
+
539
725
  <!-- Advanced Options Toggle -->
540
726
  <button
541
727
  class="toggle-advanced ${this.showAdvanced ? 'open' : ''}"
@@ -750,6 +936,9 @@ export class SzServiceCreateView extends DeesElement {
750
936
  memoryLimit: this.memoryLimit,
751
937
  restartPolicy: this.restartPolicy,
752
938
  networkMode: this.networkMode,
939
+ enableMongoDB: this.enableMongoDB,
940
+ enableS3: this.enableS3,
941
+ enableClickHouse: this.enableClickHouse,
753
942
  };
754
943
 
755
944
  this.dispatchEvent(new CustomEvent('create-service', {
@@ -771,5 +960,8 @@ export class SzServiceCreateView extends DeesElement {
771
960
  this.restartPolicy = 'always';
772
961
  this.networkMode = 'bridge';
773
962
  this.showAdvanced = false;
963
+ this.enableMongoDB = false;
964
+ this.enableS3 = false;
965
+ this.enableClickHouse = false;
774
966
  }
775
967
  }