@idp.global/catalog 2.0.0 → 2.1.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.
Files changed (70) hide show
  1. package/changelog.md +27 -0
  2. package/dist_bundle/bundle.js +3726 -1337
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/idp-admin-overview.d.ts +28 -0
  5. package/dist_ts_web/elements/idp-admin-overview.js +460 -0
  6. package/dist_ts_web/elements/idp-admin-shared.d.ts +18 -0
  7. package/dist_ts_web/elements/idp-admin-shared.js +404 -0
  8. package/dist_ts_web/elements/idp-admin-shell.d.ts +96 -11
  9. package/dist_ts_web/elements/idp-admin-shell.js +442 -816
  10. package/dist_ts_web/elements/idp-admin-sidebar.d.ts +42 -0
  11. package/dist_ts_web/elements/idp-admin-sidebar.js +702 -0
  12. package/dist_ts_web/elements/idp-app-pair.d.ts +19 -0
  13. package/dist_ts_web/elements/idp-app-pair.js +187 -0
  14. package/dist_ts_web/elements/idp-auth-card.d.ts +17 -0
  15. package/dist_ts_web/elements/idp-auth-card.js +180 -0
  16. package/dist_ts_web/elements/idp-avatar.d.ts +17 -0
  17. package/dist_ts_web/elements/idp-avatar.js +151 -0
  18. package/dist_ts_web/elements/idp-badge.d.ts +2 -0
  19. package/dist_ts_web/elements/idp-badge.js +12 -3
  20. package/dist_ts_web/elements/idp-brand-mark.d.ts +16 -0
  21. package/dist_ts_web/elements/idp-brand-mark.js +139 -0
  22. package/dist_ts_web/elements/idp-button.d.ts +3 -0
  23. package/dist_ts_web/elements/idp-button.js +47 -3
  24. package/dist_ts_web/elements/idp-consent-card.d.ts +34 -0
  25. package/dist_ts_web/elements/idp-consent-card.js +217 -0
  26. package/dist_ts_web/elements/idp-delegation-section.d.ts +59 -0
  27. package/dist_ts_web/elements/idp-delegation-section.js +609 -0
  28. package/dist_ts_web/elements/idp-form-submit.d.ts +2 -1
  29. package/dist_ts_web/elements/idp-form-submit.js +11 -2
  30. package/dist_ts_web/elements/idp-form.js +2 -2
  31. package/dist_ts_web/elements/idp-input.d.ts +4 -0
  32. package/dist_ts_web/elements/idp-input.js +68 -15
  33. package/dist_ts_web/elements/idp-option-row.d.ts +25 -0
  34. package/dist_ts_web/elements/idp-option-row.js +267 -0
  35. package/dist_ts_web/elements/idp-otp-input.d.ts +32 -0
  36. package/dist_ts_web/elements/idp-otp-input.js +274 -0
  37. package/dist_ts_web/elements/idp-progress-bar.d.ts +14 -0
  38. package/dist_ts_web/elements/idp-progress-bar.js +127 -0
  39. package/dist_ts_web/elements/idp-signed-in-pill.d.ts +15 -0
  40. package/dist_ts_web/elements/idp-signed-in-pill.js +113 -0
  41. package/dist_ts_web/elements/idp-spinner.d.ts +13 -0
  42. package/dist_ts_web/elements/idp-spinner.js +109 -0
  43. package/dist_ts_web/elements/idp-status-icon.d.ts +18 -0
  44. package/dist_ts_web/elements/idp-status-icon.js +136 -0
  45. package/dist_ts_web/elements/index.d.ts +15 -0
  46. package/dist_ts_web/elements/index.js +16 -1
  47. package/package.json +2 -2
  48. package/ts_web/00_commitinfo_data.ts +1 -1
  49. package/ts_web/elements/idp-admin-overview.ts +388 -0
  50. package/ts_web/elements/idp-admin-shared.ts +419 -0
  51. package/ts_web/elements/idp-admin-shell.ts +514 -871
  52. package/ts_web/elements/idp-admin-sidebar.ts +648 -0
  53. package/ts_web/elements/idp-app-pair.ts +120 -0
  54. package/ts_web/elements/idp-auth-card.ts +113 -0
  55. package/ts_web/elements/idp-avatar.ts +84 -0
  56. package/ts_web/elements/idp-badge.ts +5 -1
  57. package/ts_web/elements/idp-brand-mark.ts +76 -0
  58. package/ts_web/elements/idp-button.ts +36 -1
  59. package/ts_web/elements/idp-consent-card.ts +146 -0
  60. package/ts_web/elements/idp-delegation-section.ts +576 -0
  61. package/ts_web/elements/idp-form-submit.ts +5 -1
  62. package/ts_web/elements/idp-form.ts +1 -1
  63. package/ts_web/elements/idp-input.ts +58 -13
  64. package/ts_web/elements/idp-option-row.ts +184 -0
  65. package/ts_web/elements/idp-otp-input.ts +204 -0
  66. package/ts_web/elements/idp-progress-bar.ts +69 -0
  67. package/ts_web/elements/idp-signed-in-pill.ts +55 -0
  68. package/ts_web/elements/idp-spinner.ts +56 -0
  69. package/ts_web/elements/idp-status-icon.ts +76 -0
  70. package/ts_web/elements/index.ts +15 -0
@@ -34,6 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { DeesElement, html, property, customElement, css } from '@design.estate/dees-element';
36
36
  import { idpElementStyles } from './tokens.js';
37
+ import './idp-icon.js';
37
38
  let IdpBadge = (() => {
38
39
  let _classDecorators = [customElement('idp-badge')];
39
40
  let _classDescriptor;
@@ -43,12 +44,17 @@ let IdpBadge = (() => {
43
44
  let _variant_decorators;
44
45
  let _variant_initializers = [];
45
46
  let _variant_extraInitializers = [];
47
+ let _icon_decorators;
48
+ let _icon_initializers = [];
49
+ let _icon_extraInitializers = [];
46
50
  var IdpBadge = class extends _classSuper {
47
51
  static { _classThis = this; }
48
52
  static {
49
53
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
50
54
  _variant_decorators = [property({ type: String })];
55
+ _icon_decorators = [property({ type: String })];
51
56
  __esDecorate(this, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
57
+ __esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
52
58
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
53
59
  IdpBadge = _classThis = _classDescriptor.value;
54
60
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -66,6 +72,9 @@ let IdpBadge = (() => {
66
72
  #variant_accessor_storage = __runInitializers(this, _variant_initializers, 'default');
67
73
  get variant() { return this.#variant_accessor_storage; }
68
74
  set variant(value) { this.#variant_accessor_storage = value; }
75
+ #icon_accessor_storage = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _icon_initializers, ''));
76
+ get icon() { return this.#icon_accessor_storage; }
77
+ set icon(value) { this.#icon_accessor_storage = value; }
69
78
  static styles = [
70
79
  ...idpElementStyles,
71
80
  css `
@@ -116,11 +125,11 @@ let IdpBadge = (() => {
116
125
  `,
117
126
  ];
118
127
  render() {
119
- return html `<span class="badge ${this.variant}"><slot></slot></span>`;
128
+ return html `<span class="badge ${this.variant}">${this.icon ? html `<idp-icon name=${this.icon} size="11"></idp-icon>` : html ``}<slot></slot></span>`;
120
129
  }
121
130
  constructor() {
122
131
  super(...arguments);
123
- __runInitializers(this, _variant_extraInitializers);
132
+ __runInitializers(this, _icon_extraInitializers);
124
133
  }
125
134
  static {
126
135
  __runInitializers(_classThis, _classExtraInitializers);
@@ -129,4 +138,4 @@ let IdpBadge = (() => {
129
138
  return IdpBadge = _classThis;
130
139
  })();
131
140
  export { IdpBadge };
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWJhZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1iYWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQXVCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0lBV2xDLFFBQVE7NEJBRHBCLGFBQWEsQ0FBQyxXQUFXLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozt3QkFBbkIsU0FBUSxXQUFXOzs7O21DQVl0QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0IsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBK0I7WUFieEQsNktBb0VDOzs7O1FBbkVRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7OztHQVE5QixDQUFDO1FBQ0ssTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHeEQsMkVBQTRDLFNBQVMsRUFBQztRQUF0RCxJQUFnQixPQUFPLDZDQUErQjtRQUF0RCxJQUFnQixPQUFPLG1EQUErQjtRQUUvQyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkNGO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQSxzQkFBc0IsSUFBSSxDQUFDLE9BQU8sd0JBQXdCLENBQUM7UUFDeEUsQ0FBQzs7Ozs7O1lBbkVVLHVEQUFROzs7OztTQUFSLFFBQVEifQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWJhZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1iYWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQXVCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sZUFBZSxDQUFDO0lBV1YsUUFBUTs0QkFEcEIsYUFBYSxDQUFDLFdBQVcsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7O3dCQUFuQixTQUFRLFdBQVc7Ozs7bUNBWXRDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBRjNCLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQStCO1lBR3RELGlLQUFnQixJQUFJLDZCQUFKLElBQUksbUZBQU07WUFoQjVCLDZLQXVFQzs7OztRQXRFUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7R0FROUIsQ0FBQztRQUNLLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBR3hELDJFQUE0QyxTQUFTLEVBQUM7UUFBdEQsSUFBZ0IsT0FBTyw2Q0FBK0I7UUFBdEQsSUFBZ0IsT0FBTyxtREFBK0I7UUFHdEQsMkhBQXVCLEVBQUUsR0FBQztRQUExQixJQUFnQixJQUFJLDBDQUFNO1FBQTFCLElBQWdCLElBQUksZ0RBQU07UUFFbkIsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTZDRjtTQUNGLENBQUM7UUFFSyxNQUFNO1lBQ1gsT0FBTyxJQUFJLENBQUEsc0JBQXNCLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLGtCQUFrQixJQUFJLENBQUMsSUFBVyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUUsc0JBQXNCLENBQUM7UUFDOUosQ0FBQzs7Ozs7O1lBdEVVLHVEQUFROzs7OztTQUFSLFFBQVEifQ==
@@ -0,0 +1,16 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import './idp-icon.js';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'idp-brand-mark': IdpBrandMark;
6
+ }
7
+ }
8
+ export declare class IdpBrandMark extends DeesElement {
9
+ static demo: () => TemplateResult<1>;
10
+ static demoGroups: string[];
11
+ accessor size: number;
12
+ accessor wordmark: boolean;
13
+ accessor label: string;
14
+ static styles: import("@design.estate/dees-element").CSSResult[];
15
+ render(): TemplateResult;
16
+ }
@@ -0,0 +1,139 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { DeesElement, html, property, customElement, css } from '@design.estate/dees-element';
36
+ import { idpElementStyles } from './tokens.js';
37
+ import './idp-icon.js';
38
+ let IdpBrandMark = (() => {
39
+ let _classDecorators = [customElement('idp-brand-mark')];
40
+ let _classDescriptor;
41
+ let _classExtraInitializers = [];
42
+ let _classThis;
43
+ let _classSuper = DeesElement;
44
+ let _size_decorators;
45
+ let _size_initializers = [];
46
+ let _size_extraInitializers = [];
47
+ let _wordmark_decorators;
48
+ let _wordmark_initializers = [];
49
+ let _wordmark_extraInitializers = [];
50
+ let _label_decorators;
51
+ let _label_initializers = [];
52
+ let _label_extraInitializers = [];
53
+ var IdpBrandMark = class extends _classSuper {
54
+ static { _classThis = this; }
55
+ static {
56
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
57
+ _size_decorators = [property({ type: Number })];
58
+ _wordmark_decorators = [property({ type: Boolean })];
59
+ _label_decorators = [property({ type: String })];
60
+ __esDecorate(this, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
61
+ __esDecorate(this, null, _wordmark_decorators, { kind: "accessor", name: "wordmark", static: false, private: false, access: { has: obj => "wordmark" in obj, get: obj => obj.wordmark, set: (obj, value) => { obj.wordmark = value; } }, metadata: _metadata }, _wordmark_initializers, _wordmark_extraInitializers);
62
+ __esDecorate(this, null, _label_decorators, { kind: "accessor", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
63
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
64
+ IdpBrandMark = _classThis = _classDescriptor.value;
65
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
66
+ }
67
+ static demo = () => html `
68
+ <div style="display: flex; gap: 18px; align-items: center;">
69
+ <idp-brand-mark></idp-brand-mark>
70
+ <idp-brand-mark wordmark></idp-brand-mark>
71
+ <idp-brand-mark size="44"></idp-brand-mark>
72
+ </div>
73
+ `;
74
+ static demoGroups = ['idp.global v5 primitives'];
75
+ #size_accessor_storage = __runInitializers(this, _size_initializers, 30);
76
+ get size() { return this.#size_accessor_storage; }
77
+ set size(value) { this.#size_accessor_storage = value; }
78
+ #wordmark_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _wordmark_initializers, false));
79
+ get wordmark() { return this.#wordmark_accessor_storage; }
80
+ set wordmark(value) { this.#wordmark_accessor_storage = value; }
81
+ #label_accessor_storage = (__runInitializers(this, _wordmark_extraInitializers), __runInitializers(this, _label_initializers, 'idp.global'));
82
+ get label() { return this.#label_accessor_storage; }
83
+ set label(value) { this.#label_accessor_storage = value; }
84
+ static styles = [
85
+ ...idpElementStyles,
86
+ css `
87
+ :host {
88
+ display: inline-flex;
89
+ }
90
+ .brand {
91
+ display: inline-flex;
92
+ align-items: center;
93
+ gap: 8px;
94
+ }
95
+ .tile {
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ flex-shrink: 0;
100
+ background: var(--idp-accent);
101
+ color: #fff;
102
+ box-shadow: 0 2px 6px var(--sh-accent-ring);
103
+ }
104
+ .wordmark {
105
+ font-family: var(--idp-font);
106
+ font-size: 16px;
107
+ font-weight: 700;
108
+ letter-spacing: -0.4px;
109
+ color: var(--idp-fg);
110
+ white-space: nowrap;
111
+ }
112
+ `,
113
+ ];
114
+ render() {
115
+ const radius = Math.round(this.size * 0.27);
116
+ return html `
117
+ <span class="brand">
118
+ <span
119
+ class="tile"
120
+ style="width: ${this.size}px; height: ${this.size}px; border-radius: ${radius}px;"
121
+ >
122
+ <idp-icon name="shield" size=${Math.round(this.size * 0.55)}></idp-icon>
123
+ </span>
124
+ ${this.wordmark ? html `<span class="wordmark">${this.label}</span>` : html ``}
125
+ </span>
126
+ `;
127
+ }
128
+ constructor() {
129
+ super(...arguments);
130
+ __runInitializers(this, _label_extraInitializers);
131
+ }
132
+ static {
133
+ __runInitializers(_classThis, _classExtraInitializers);
134
+ }
135
+ };
136
+ return IdpBrandMark = _classThis;
137
+ })();
138
+ export { IdpBrandMark };
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWJyYW5kLW1hcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaWRwLWJyYW5kLW1hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGVBQWUsQ0FBQztJQVNWLFlBQVk7NEJBRHhCLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7OzRCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBVTFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2lDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFMM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFBTTtZQUcxQiw2S0FBZ0IsUUFBUSw2QkFBUixRQUFRLDJGQUFTO1lBR2pDLG9LQUFnQixLQUFLLDZCQUFMLEtBQUsscUZBQWdCO1lBakJ2Qyw2S0FnRUM7Ozs7UUEvRFEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7OztHQU05QixDQUFDO1FBQ0ssTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHeEQscUVBQXVCLEVBQUUsRUFBQztRQUExQixJQUFnQixJQUFJLDBDQUFNO1FBQTFCLElBQWdCLElBQUksZ0RBQU07UUFHMUIsZ0lBQTJCLEtBQUssR0FBQztRQUFqQyxJQUFnQixRQUFRLDhDQUFTO1FBQWpDLElBQWdCLFFBQVEsb0RBQVM7UUFHakMsOEhBQXdCLFlBQVksR0FBQztRQUFyQyxJQUFnQixLQUFLLDJDQUFnQjtRQUFyQyxJQUFnQixLQUFLLGlEQUFnQjtRQUU5QixNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EwQkY7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQTs7OzswQkFJVyxJQUFJLENBQUMsSUFBSSxlQUFlLElBQUksQ0FBQyxJQUFJLHNCQUFzQixNQUFNOzt5Q0FFOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzs7VUFFM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDBCQUEwQixJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFOztLQUUvRSxDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBL0RVLHVEQUFZOzs7OztTQUFaLFlBQVkifQ==
@@ -2,6 +2,7 @@ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
2
  import './idp-icon.js';
3
3
  export type TIdpButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'accent' | 'tint' | 'link';
4
4
  export type TIdpButtonSize = 'sm' | 'md' | 'lg';
5
+ export type TIdpButtonShape = 'pill' | 'rect';
5
6
  declare global {
6
7
  interface HTMLElementTagNameMap {
7
8
  'idp-button': IdpButton;
@@ -12,6 +13,8 @@ export declare class IdpButton extends DeesElement {
12
13
  static demoGroups: string[];
13
14
  accessor variant: TIdpButtonVariant;
14
15
  accessor size: TIdpButtonSize;
16
+ accessor shape: TIdpButtonShape;
17
+ accessor block: boolean;
15
18
  accessor icon: string;
16
19
  accessor type: 'button' | 'submit' | 'reset';
17
20
  accessor disabled: boolean;
@@ -47,6 +47,12 @@ let IdpButton = (() => {
47
47
  let _size_decorators;
48
48
  let _size_initializers = [];
49
49
  let _size_extraInitializers = [];
50
+ let _shape_decorators;
51
+ let _shape_initializers = [];
52
+ let _shape_extraInitializers = [];
53
+ let _block_decorators;
54
+ let _block_initializers = [];
55
+ let _block_extraInitializers = [];
50
56
  let _icon_decorators;
51
57
  let _icon_initializers = [];
52
58
  let _icon_extraInitializers = [];
@@ -65,12 +71,16 @@ let IdpButton = (() => {
65
71
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
66
72
  _variant_decorators = [property({ type: String })];
67
73
  _size_decorators = [property({ type: String })];
74
+ _shape_decorators = [property({ type: String })];
75
+ _block_decorators = [property({ type: Boolean, reflect: true })];
68
76
  _icon_decorators = [property({ type: String })];
69
77
  _type_decorators = [property({ type: String })];
70
78
  _disabled_decorators = [property({ type: Boolean, reflect: true })];
71
79
  _loading_decorators = [property({ type: Boolean, reflect: true })];
72
80
  __esDecorate(this, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
73
81
  __esDecorate(this, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
82
+ __esDecorate(this, null, _shape_decorators, { kind: "accessor", name: "shape", static: false, private: false, access: { has: obj => "shape" in obj, get: obj => obj.shape, set: (obj, value) => { obj.shape = value; } }, metadata: _metadata }, _shape_initializers, _shape_extraInitializers);
83
+ __esDecorate(this, null, _block_decorators, { kind: "accessor", name: "block", static: false, private: false, access: { has: obj => "block" in obj, get: obj => obj.block, set: (obj, value) => { obj.block = value; } }, metadata: _metadata }, _block_initializers, _block_extraInitializers);
74
84
  __esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
75
85
  __esDecorate(this, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
76
86
  __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
@@ -96,7 +106,13 @@ let IdpButton = (() => {
96
106
  #size_accessor_storage = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _size_initializers, 'md'));
97
107
  get size() { return this.#size_accessor_storage; }
98
108
  set size(value) { this.#size_accessor_storage = value; }
99
- #icon_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _icon_initializers, ''));
109
+ #shape_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _shape_initializers, 'pill'));
110
+ get shape() { return this.#shape_accessor_storage; }
111
+ set shape(value) { this.#shape_accessor_storage = value; }
112
+ #block_accessor_storage = (__runInitializers(this, _shape_extraInitializers), __runInitializers(this, _block_initializers, false));
113
+ get block() { return this.#block_accessor_storage; }
114
+ set block(value) { this.#block_accessor_storage = value; }
115
+ #icon_accessor_storage = (__runInitializers(this, _block_extraInitializers), __runInitializers(this, _icon_initializers, ''));
100
116
  get icon() { return this.#icon_accessor_storage; }
101
117
  set icon(value) { this.#icon_accessor_storage = value; }
102
118
  #type_accessor_storage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _type_initializers, 'button'));
@@ -117,6 +133,12 @@ let IdpButton = (() => {
117
133
  :host([disabled]) {
118
134
  pointer-events: none;
119
135
  }
136
+ :host([block]) {
137
+ display: block;
138
+ }
139
+ :host([block]) button {
140
+ width: 100%;
141
+ }
120
142
  button {
121
143
  display: inline-flex;
122
144
  align-items: center;
@@ -155,6 +177,28 @@ let IdpButton = (() => {
155
177
  padding: 11px 24px;
156
178
  font-size: 19px;
157
179
  }
180
+ .rect {
181
+ border-radius: 12px;
182
+ height: 44px;
183
+ padding: 0 18px;
184
+ font-size: 15px;
185
+ font-weight: 600;
186
+ }
187
+ .rect.outline {
188
+ background: var(--idp-card);
189
+ border: 1.5px solid var(--idp-border);
190
+ font-weight: 550;
191
+ font-size: 14.5px;
192
+ }
193
+ .rect.outline:hover:not(:disabled) {
194
+ background: var(--sh-hover);
195
+ }
196
+ .rect.link {
197
+ height: auto;
198
+ padding: 0;
199
+ border-radius: 0;
200
+ font-size: 12.5px;
201
+ }
158
202
  .default {
159
203
  background: var(--idp-primary);
160
204
  color: var(--idp-primary-fg);
@@ -235,7 +279,7 @@ let IdpButton = (() => {
235
279
  ];
236
280
  render() {
237
281
  return html `
238
- <button class="${this.variant} ${this.size}" type=${this.type} ?disabled=${this.disabled || this.loading} part="button">
282
+ <button class="${this.variant} ${this.size} ${this.shape === 'rect' ? 'rect' : ''}" type=${this.type} ?disabled=${this.disabled || this.loading} part="button">
239
283
  ${this.loading
240
284
  ? html `<span class="spinner" aria-hidden="true"></span>`
241
285
  : this.icon ? html `<idp-icon name=${this.icon} size="14"></idp-icon>` : html ``}
@@ -254,4 +298,4 @@ let IdpButton = (() => {
254
298
  return IdpButton = _classThis;
255
299
  })();
256
300
  export { IdpButton };
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9pZHAtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsYUFBYSxFQUNiLEdBQUcsR0FFSixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGVBQWUsQ0FBQztJQVlWLFNBQVM7NEJBRHJCLGFBQWEsQ0FBQyxZQUFZLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkFBbkIsU0FBUSxXQUFXOzs7O21DQWF2QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO21DQUcxQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQWQzQywwS0FBZ0IsT0FBTyw2QkFBUCxPQUFPLHlGQUFnQztZQUd2RCxpS0FBZ0IsSUFBSSw2QkFBSixJQUFJLG1GQUF3QjtZQUc1QyxpS0FBZ0IsSUFBSSw2QkFBSixJQUFJLG1GQUFNO1lBRzFCLGlLQUFnQixJQUFJLDZCQUFKLElBQUksbUZBQTJDO1lBRy9ELDZLQUFnQixRQUFRLDZCQUFSLFFBQVEsMkZBQVM7WUFHakMsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBUztZQTdCbEMsNktBdUtDOzs7O1FBdEtRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7R0FTOUIsQ0FBQztRQUNLLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBR3hELDJFQUE2QyxTQUFTLEVBQUM7UUFBdkQsSUFBZ0IsT0FBTyw2Q0FBZ0M7UUFBdkQsSUFBZ0IsT0FBTyxtREFBZ0M7UUFHdkQsMkhBQXVDLElBQUksR0FBQztRQUE1QyxJQUFnQixJQUFJLDBDQUF3QjtRQUE1QyxJQUFnQixJQUFJLGdEQUF3QjtRQUc1Qyx3SEFBdUIsRUFBRSxHQUFDO1FBQTFCLElBQWdCLElBQUksMENBQU07UUFBMUIsSUFBZ0IsSUFBSSxnREFBTTtRQUcxQix3SEFBc0QsUUFBUSxHQUFDO1FBQS9ELElBQWdCLElBQUksMENBQTJDO1FBQS9ELElBQWdCLElBQUksZ0RBQTJDO1FBRy9ELGdJQUEyQixLQUFLLEdBQUM7UUFBakMsSUFBZ0IsUUFBUSw4Q0FBUztRQUFqQyxJQUFnQixRQUFRLG9EQUFTO1FBR2pDLGtJQUEwQixLQUFLLEdBQUM7UUFBaEMsSUFBZ0IsT0FBTyw2Q0FBUztRQUFoQyxJQUFnQixPQUFPLG1EQUFTO1FBRXpCLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUhGO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTt1QkFDUSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLFVBQVUsSUFBSSxDQUFDLElBQUksY0FBYyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPO1VBQ3BHLElBQUksQ0FBQyxPQUFPO2dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUEsa0RBQWtEO2dCQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLGtCQUFrQixJQUFJLENBQUMsSUFBVyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7OztLQUcxRixDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBdEtVLHVEQUFTOzs7OztTQUFULFNBQVMifQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9pZHAtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsYUFBYSxFQUNiLEdBQUcsR0FFSixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGVBQWUsQ0FBQztJQWFWLFNBQVM7NEJBRHJCLGFBQWEsQ0FBQyxZQUFZLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkFBbkIsU0FBUSxXQUFXOzs7O21DQWF2QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztpQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQ0FHMUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO21DQUcxQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQXBCM0MsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBZ0M7WUFHdkQsaUtBQWdCLElBQUksNkJBQUosSUFB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
@@ -0,0 +1,34 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import './idp-auth-card.js';
3
+ import './idp-app-pair.js';
4
+ import './idp-option-row.js';
5
+ import './idp-badge.js';
6
+ import './idp-button.js';
7
+ import './idp-icon.js';
8
+ export interface IIdpConsentScope {
9
+ id: string;
10
+ title: string;
11
+ description: string;
12
+ icon?: string;
13
+ granted?: boolean;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'idp-consent-card': IdpConsentCard;
18
+ }
19
+ }
20
+ export declare class IdpConsentCard extends DeesElement {
21
+ static demo: () => TemplateResult<1>;
22
+ static demoGroups: string[];
23
+ accessor appName: string;
24
+ accessor appUrl: string;
25
+ accessor appLogoUrl: string;
26
+ accessor appColor: string;
27
+ accessor userName: string;
28
+ accessor busy: boolean;
29
+ accessor scopes: IIdpConsentScope[];
30
+ static styles: import("@design.estate/dees-element").CSSResult[];
31
+ render(): TemplateResult;
32
+ private handleAllow;
33
+ private handleCancel;
34
+ }
@@ -0,0 +1,217 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { DeesElement, html, property, customElement, css } from '@design.estate/dees-element';
36
+ import { idpElementStyles } from './tokens.js';
37
+ import './idp-auth-card.js';
38
+ import './idp-app-pair.js';
39
+ import './idp-option-row.js';
40
+ import './idp-badge.js';
41
+ import './idp-button.js';
42
+ import './idp-icon.js';
43
+ let IdpConsentCard = (() => {
44
+ let _classDecorators = [customElement('idp-consent-card')];
45
+ let _classDescriptor;
46
+ let _classExtraInitializers = [];
47
+ let _classThis;
48
+ let _classSuper = DeesElement;
49
+ let _appName_decorators;
50
+ let _appName_initializers = [];
51
+ let _appName_extraInitializers = [];
52
+ let _appUrl_decorators;
53
+ let _appUrl_initializers = [];
54
+ let _appUrl_extraInitializers = [];
55
+ let _appLogoUrl_decorators;
56
+ let _appLogoUrl_initializers = [];
57
+ let _appLogoUrl_extraInitializers = [];
58
+ let _appColor_decorators;
59
+ let _appColor_initializers = [];
60
+ let _appColor_extraInitializers = [];
61
+ let _userName_decorators;
62
+ let _userName_initializers = [];
63
+ let _userName_extraInitializers = [];
64
+ let _busy_decorators;
65
+ let _busy_initializers = [];
66
+ let _busy_extraInitializers = [];
67
+ let _scopes_decorators;
68
+ let _scopes_initializers = [];
69
+ let _scopes_extraInitializers = [];
70
+ var IdpConsentCard = class extends _classSuper {
71
+ static { _classThis = this; }
72
+ static {
73
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
74
+ _appName_decorators = [property({ type: String })];
75
+ _appUrl_decorators = [property({ type: String })];
76
+ _appLogoUrl_decorators = [property({ type: String })];
77
+ _appColor_decorators = [property({ type: String })];
78
+ _userName_decorators = [property({ type: String })];
79
+ _busy_decorators = [property({ type: Boolean })];
80
+ _scopes_decorators = [property({ type: Array })];
81
+ __esDecorate(this, null, _appName_decorators, { kind: "accessor", name: "appName", static: false, private: false, access: { has: obj => "appName" in obj, get: obj => obj.appName, set: (obj, value) => { obj.appName = value; } }, metadata: _metadata }, _appName_initializers, _appName_extraInitializers);
82
+ __esDecorate(this, null, _appUrl_decorators, { kind: "accessor", name: "appUrl", static: false, private: false, access: { has: obj => "appUrl" in obj, get: obj => obj.appUrl, set: (obj, value) => { obj.appUrl = value; } }, metadata: _metadata }, _appUrl_initializers, _appUrl_extraInitializers);
83
+ __esDecorate(this, null, _appLogoUrl_decorators, { kind: "accessor", name: "appLogoUrl", static: false, private: false, access: { has: obj => "appLogoUrl" in obj, get: obj => obj.appLogoUrl, set: (obj, value) => { obj.appLogoUrl = value; } }, metadata: _metadata }, _appLogoUrl_initializers, _appLogoUrl_extraInitializers);
84
+ __esDecorate(this, null, _appColor_decorators, { kind: "accessor", name: "appColor", static: false, private: false, access: { has: obj => "appColor" in obj, get: obj => obj.appColor, set: (obj, value) => { obj.appColor = value; } }, metadata: _metadata }, _appColor_initializers, _appColor_extraInitializers);
85
+ __esDecorate(this, null, _userName_decorators, { kind: "accessor", name: "userName", static: false, private: false, access: { has: obj => "userName" in obj, get: obj => obj.userName, set: (obj, value) => { obj.userName = value; } }, metadata: _metadata }, _userName_initializers, _userName_extraInitializers);
86
+ __esDecorate(this, null, _busy_decorators, { kind: "accessor", name: "busy", static: false, private: false, access: { has: obj => "busy" in obj, get: obj => obj.busy, set: (obj, value) => { obj.busy = value; } }, metadata: _metadata }, _busy_initializers, _busy_extraInitializers);
87
+ __esDecorate(this, null, _scopes_decorators, { kind: "accessor", name: "scopes", static: false, private: false, access: { has: obj => "scopes" in obj, get: obj => obj.scopes, set: (obj, value) => { obj.scopes = value; } }, metadata: _metadata }, _scopes_initializers, _scopes_extraInitializers);
88
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
89
+ IdpConsentCard = _classThis = _classDescriptor.value;
90
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
91
+ }
92
+ static demo = () => html `
93
+ <div style="background: var(--sh-bg, #f5f5f7); padding: 40px; display: flex; justify-content: center;">
94
+ <idp-consent-card
95
+ appName="design.estate"
96
+ userName="Alex Mercer"
97
+ .scopes=${[
98
+ { id: 'profile', title: 'Your name and email', description: 'alex@lossless.com', icon: 'user' },
99
+ { id: 'openid', title: 'Your verified identity', description: 'Signed identifier for design.estate', icon: 'fingerprint' },
100
+ { id: 'organizations', title: 'Organisation membership', description: 'Read which orgs you belong to', icon: 'building-2', granted: true },
101
+ ]}
102
+ ></idp-consent-card>
103
+ </div>
104
+ `;
105
+ static demoGroups = ['idp.global v5 auth'];
106
+ #appName_accessor_storage = __runInitializers(this, _appName_initializers, '');
107
+ get appName() { return this.#appName_accessor_storage; }
108
+ set appName(value) { this.#appName_accessor_storage = value; }
109
+ #appUrl_accessor_storage = (__runInitializers(this, _appName_extraInitializers), __runInitializers(this, _appUrl_initializers, ''));
110
+ get appUrl() { return this.#appUrl_accessor_storage; }
111
+ set appUrl(value) { this.#appUrl_accessor_storage = value; }
112
+ #appLogoUrl_accessor_storage = (__runInitializers(this, _appUrl_extraInitializers), __runInitializers(this, _appLogoUrl_initializers, ''));
113
+ get appLogoUrl() { return this.#appLogoUrl_accessor_storage; }
114
+ set appLogoUrl(value) { this.#appLogoUrl_accessor_storage = value; }
115
+ #appColor_accessor_storage = (__runInitializers(this, _appLogoUrl_extraInitializers), __runInitializers(this, _appColor_initializers, '#6D5EFC'));
116
+ get appColor() { return this.#appColor_accessor_storage; }
117
+ set appColor(value) { this.#appColor_accessor_storage = value; }
118
+ #userName_accessor_storage = (__runInitializers(this, _appColor_extraInitializers), __runInitializers(this, _userName_initializers, ''));
119
+ get userName() { return this.#userName_accessor_storage; }
120
+ set userName(value) { this.#userName_accessor_storage = value; }
121
+ #busy_accessor_storage = (__runInitializers(this, _userName_extraInitializers), __runInitializers(this, _busy_initializers, false));
122
+ get busy() { return this.#busy_accessor_storage; }
123
+ set busy(value) { this.#busy_accessor_storage = value; }
124
+ #scopes_accessor_storage = (__runInitializers(this, _busy_extraInitializers), __runInitializers(this, _scopes_initializers, []));
125
+ get scopes() { return this.#scopes_accessor_storage; }
126
+ set scopes(value) { this.#scopes_accessor_storage = value; }
127
+ static styles = [
128
+ ...idpElementStyles,
129
+ css `
130
+ :host {
131
+ display: block;
132
+ font-family: var(--idp-font);
133
+ }
134
+ .scopes {
135
+ display: flex;
136
+ flex-direction: column;
137
+ gap: 10px;
138
+ margin-top: 16px;
139
+ }
140
+ .lock-note {
141
+ display: flex;
142
+ align-items: center;
143
+ gap: 8px;
144
+ margin-top: 16px;
145
+ padding: 9px 12px;
146
+ background: var(--idp-bg);
147
+ border: 1px solid var(--idp-border);
148
+ border-radius: 11px;
149
+ font-size: 11.5px;
150
+ color: var(--idp-fg-3);
151
+ }
152
+ .actions {
153
+ display: flex;
154
+ flex-direction: column;
155
+ gap: 10px;
156
+ margin-top: 18px;
157
+ }
158
+ `,
159
+ ];
160
+ render() {
161
+ return html `
162
+ <idp-auth-card heading="${this.appName} wants to access your idp.global account" description="This will allow ${this.appName} to:">
163
+ <idp-app-pair
164
+ slot="top"
165
+ appName=${this.appName}
166
+ appLogoUrl=${this.appLogoUrl}
167
+ appColor=${this.appColor}
168
+ ></idp-app-pair>
169
+ <div class="scopes">
170
+ ${this.scopes.map((scopeArg) => html `
171
+ <idp-option-row
172
+ interactive="false"
173
+ tileTone="accent"
174
+ tileSize="30"
175
+ trailing="check"
176
+ icon=${scopeArg.icon || 'check'}
177
+ label=${scopeArg.title}
178
+ description=${scopeArg.description}
179
+ >
180
+ ${scopeArg.granted
181
+ ? html `<idp-badge slot="trailing" variant="ok">Previously allowed</idp-badge>`
182
+ : html ``}
183
+ </idp-option-row>
184
+ `)}
185
+ </div>
186
+ <div class="lock-note">
187
+ <idp-icon name="lock" size="14"></idp-icon>
188
+ <span>${this.appName} can't post or make changes on your behalf.</span>
189
+ </div>
190
+ <div class="actions">
191
+ <idp-button variant="accent" shape="rect" block ?loading=${this.busy} @click=${this.handleAllow}>Allow access</idp-button>
192
+ <idp-button variant="outline" shape="rect" block ?disabled=${this.busy} @click=${this.handleCancel}>Cancel</idp-button>
193
+ </div>
194
+ <span slot="footer">
195
+ ${this.userName ? html `Signed in as ${this.userName} · ` : html ``}Revoke anytime in Connected Apps.
196
+ </span>
197
+ </idp-auth-card>
198
+ `;
199
+ }
200
+ handleAllow() {
201
+ this.dispatchEvent(new CustomEvent('idp-consent-allow', { bubbles: true, composed: true }));
202
+ }
203
+ handleCancel() {
204
+ this.dispatchEvent(new CustomEvent('idp-consent-cancel', { bubbles: true, composed: true }));
205
+ }
206
+ constructor() {
207
+ super(...arguments);
208
+ __runInitializers(this, _scopes_extraInitializers);
209
+ }
210
+ static {
211
+ __runInitializers(_classThis, _classExtraInitializers);
212
+ }
213
+ };
214
+ return IdpConsentCard = _classThis;
215
+ })();
216
+ export { IdpConsentCard };
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWNvbnNlbnQtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9pZHAtY29uc2VudC1jYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sZUFBZSxDQUFDO0lBaUJWLGNBQWM7NEJBRDFCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQUFuQixTQUFRLFdBQVc7Ozs7bUNBZ0I1QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7a0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO29DQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2tDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFqQjFCLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQU07WUFHN0Is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