@idp.global/catalog 1.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 (88) hide show
  1. package/assets/v2/draw-41d55381-b162-433d-956c-fe4cd400212e.png +0 -0
  2. package/assets/v2/draw-bd386bf3-ce94-4452-88da-05ae372fae35.png +0 -0
  3. package/assets/v2/draw-be69231a-f491-4bd3-9a47-71561ce14c15.png +0 -0
  4. package/assets/v2/draw-d58859a8-0615-44ec-80fe-626033c888f7.png +0 -0
  5. package/assets/v2/draw-db67b502-d987-4226-a5f8-d57e3f8d7ba9.png +0 -0
  6. package/assets/v2/draw-e6ac3ef5-5a93-464d-9d3f-5ae7b7278bdd.png +0 -0
  7. package/changelog.md +26 -0
  8. package/dist_bundle/bundle.js +6385 -0
  9. package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
  10. package/dist_ts_web/00_commitinfo_data.js +9 -0
  11. package/dist_ts_web/elements/idp-admin-shell.d.ts +292 -0
  12. package/dist_ts_web/elements/idp-admin-shell.js +2615 -0
  13. package/dist_ts_web/elements/idp-approval-card.d.ts +25 -0
  14. package/dist_ts_web/elements/idp-approval-card.js +274 -0
  15. package/dist_ts_web/elements/idp-badge.d.ts +14 -0
  16. package/dist_ts_web/elements/idp-badge.js +135 -0
  17. package/dist_ts_web/elements/idp-button.d.ts +21 -0
  18. package/dist_ts_web/elements/idp-button.js +234 -0
  19. package/dist_ts_web/elements/idp-card.d.ts +15 -0
  20. package/dist_ts_web/elements/idp-card.js +139 -0
  21. package/dist_ts_web/elements/idp-checkbox.d.ts +23 -0
  22. package/dist_ts_web/elements/idp-checkbox.js +233 -0
  23. package/dist_ts_web/elements/idp-dashboard-window.d.ts +23 -0
  24. package/dist_ts_web/elements/idp-dashboard-window.js +587 -0
  25. package/dist_ts_web/elements/idp-data-table.d.ts +45 -0
  26. package/dist_ts_web/elements/idp-data-table.js +472 -0
  27. package/dist_ts_web/elements/idp-form-submit.d.ts +20 -0
  28. package/dist_ts_web/elements/idp-form-submit.js +136 -0
  29. package/dist_ts_web/elements/idp-form.d.ts +31 -0
  30. package/dist_ts_web/elements/idp-form.js +197 -0
  31. package/dist_ts_web/elements/idp-icon.d.ts +18 -0
  32. package/dist_ts_web/elements/idp-icon.js +204 -0
  33. package/dist_ts_web/elements/idp-inbox-preview.d.ts +18 -0
  34. package/dist_ts_web/elements/idp-inbox-preview.js +245 -0
  35. package/dist_ts_web/elements/idp-input.d.ts +26 -0
  36. package/dist_ts_web/elements/idp-input.js +249 -0
  37. package/dist_ts_web/elements/idp-landing-hero.d.ts +15 -0
  38. package/dist_ts_web/elements/idp-landing-hero.js +209 -0
  39. package/dist_ts_web/elements/idp-landing-page.d.ts +21 -0
  40. package/dist_ts_web/elements/idp-landing-page.js +694 -0
  41. package/dist_ts_web/elements/idp-mobile-frame.d.ts +14 -0
  42. package/dist_ts_web/elements/idp-mobile-frame.js +195 -0
  43. package/dist_ts_web/elements/idp-mobile-showcase.d.ts +16 -0
  44. package/dist_ts_web/elements/idp-mobile-showcase.js +339 -0
  45. package/dist_ts_web/elements/idp-select.d.ts +28 -0
  46. package/dist_ts_web/elements/idp-select.js +179 -0
  47. package/dist_ts_web/elements/idp-toggle.d.ts +15 -0
  48. package/dist_ts_web/elements/idp-toggle.js +134 -0
  49. package/dist_ts_web/elements/index.d.ts +20 -0
  50. package/dist_ts_web/elements/index.js +21 -0
  51. package/dist_ts_web/elements/tokens.d.ts +21 -0
  52. package/dist_ts_web/elements/tokens.js +190 -0
  53. package/dist_ts_web/index.d.ts +1 -0
  54. package/dist_ts_web/index.js +2 -0
  55. package/dist_ts_web/pages/index.d.ts +5 -0
  56. package/dist_ts_web/pages/index.js +23 -0
  57. package/dist_watch/bundle.js +120699 -0
  58. package/dist_watch/bundle.js.map +7 -0
  59. package/dist_watch/index.html +29 -0
  60. package/html/index.html +29 -0
  61. package/html/index.ts +39 -0
  62. package/license +21 -0
  63. package/package.json +64 -0
  64. package/readme.md +103 -0
  65. package/ts_web/00_commitinfo_data.ts +8 -0
  66. package/ts_web/elements/idp-admin-shell.ts +2664 -0
  67. package/ts_web/elements/idp-approval-card.ts +182 -0
  68. package/ts_web/elements/idp-badge.ts +84 -0
  69. package/ts_web/elements/idp-button.ts +166 -0
  70. package/ts_web/elements/idp-card.ts +76 -0
  71. package/ts_web/elements/idp-checkbox.ts +143 -0
  72. package/ts_web/elements/idp-dashboard-window.ts +564 -0
  73. package/ts_web/elements/idp-data-table.ts +407 -0
  74. package/ts_web/elements/idp-form-submit.ts +65 -0
  75. package/ts_web/elements/idp-form.ts +159 -0
  76. package/ts_web/elements/idp-icon.ts +263 -0
  77. package/ts_web/elements/idp-inbox-preview.ts +192 -0
  78. package/ts_web/elements/idp-input.ts +151 -0
  79. package/ts_web/elements/idp-landing-hero.ts +165 -0
  80. package/ts_web/elements/idp-landing-page.ts +655 -0
  81. package/ts_web/elements/idp-mobile-frame.ts +137 -0
  82. package/ts_web/elements/idp-mobile-showcase.ts +295 -0
  83. package/ts_web/elements/idp-select.ts +119 -0
  84. package/ts_web/elements/idp-toggle.ts +77 -0
  85. package/ts_web/elements/index.ts +20 -0
  86. package/ts_web/elements/tokens.ts +193 -0
  87. package/ts_web/index.ts +1 -0
  88. package/ts_web/pages/index.ts +26 -0
@@ -0,0 +1,14 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'idp-mobile-frame': IdpMobileFrame;
5
+ }
6
+ }
7
+ export declare class IdpMobileFrame extends DeesElement {
8
+ static demo: () => TemplateResult<1>;
9
+ static demoGroups: string[];
10
+ accessor time: string;
11
+ accessor dark: boolean;
12
+ static styles: import("@design.estate/dees-element").CSSResult[];
13
+ render(): TemplateResult;
14
+ }
@@ -0,0 +1,195 @@
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
+ let IdpMobileFrame = (() => {
38
+ let _classDecorators = [customElement('idp-mobile-frame')];
39
+ let _classDescriptor;
40
+ let _classExtraInitializers = [];
41
+ let _classThis;
42
+ let _classSuper = DeesElement;
43
+ let _time_decorators;
44
+ let _time_initializers = [];
45
+ let _time_extraInitializers = [];
46
+ let _dark_decorators;
47
+ let _dark_initializers = [];
48
+ let _dark_extraInitializers = [];
49
+ var IdpMobileFrame = class extends _classSuper {
50
+ static { _classThis = this; }
51
+ static {
52
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
53
+ _time_decorators = [property({ type: String })];
54
+ _dark_decorators = [property({ type: Boolean, reflect: true })];
55
+ __esDecorate(this, null, _time_decorators, { kind: "accessor", name: "time", static: false, private: false, access: { has: obj => "time" in obj, get: obj => obj.time, set: (obj, value) => { obj.time = value; } }, metadata: _metadata }, _time_initializers, _time_extraInitializers);
56
+ __esDecorate(this, null, _dark_decorators, { kind: "accessor", name: "dark", static: false, private: false, access: { has: obj => "dark" in obj, get: obj => obj.dark, set: (obj, value) => { obj.dark = value; } }, metadata: _metadata }, _dark_initializers, _dark_extraInitializers);
57
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
58
+ IdpMobileFrame = _classThis = _classDescriptor.value;
59
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
60
+ }
61
+ static demo = () => html `
62
+ <idp-mobile-frame>
63
+ <div style="height: 100%; background: #fff; padding: 72px 20px 20px; box-sizing: border-box;">Screen content</div>
64
+ </idp-mobile-frame>
65
+ `;
66
+ static demoGroups = ['idp.global v3 device frames'];
67
+ #time_accessor_storage = __runInitializers(this, _time_initializers, '9:41');
68
+ get time() { return this.#time_accessor_storage; }
69
+ set time(value) { this.#time_accessor_storage = value; }
70
+ #dark_accessor_storage = (__runInitializers(this, _time_extraInitializers), __runInitializers(this, _dark_initializers, false));
71
+ get dark() { return this.#dark_accessor_storage; }
72
+ set dark(value) { this.#dark_accessor_storage = value; }
73
+ static styles = [
74
+ ...idpElementStyles,
75
+ css `
76
+ :host {
77
+ display: inline-block;
78
+ }
79
+ .device {
80
+ position: relative;
81
+ width: 402px;
82
+ height: 874px;
83
+ max-width: 100%;
84
+ border-radius: 48px;
85
+ overflow: hidden;
86
+ background: var(--idp-bg);
87
+ box-shadow: 0 40px 80px rgb(0 0 0 / 0.18), 0 0 0 1px rgb(0 0 0 / 0.12);
88
+ }
89
+ .island {
90
+ position: absolute;
91
+ top: 11px;
92
+ left: 50%;
93
+ z-index: 50;
94
+ width: 126px;
95
+ height: 37px;
96
+ transform: translateX(-50%);
97
+ border-radius: 24px;
98
+ background: #000;
99
+ }
100
+ .status {
101
+ position: absolute;
102
+ inset: 0 0 auto;
103
+ z-index: 40;
104
+ height: 58px;
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: space-between;
108
+ padding: 18px 28px 0;
109
+ box-sizing: border-box;
110
+ color: var(--idp-fg);
111
+ font-size: 15px;
112
+ font-weight: 650;
113
+ pointer-events: none;
114
+ }
115
+ .status-icons {
116
+ display: inline-flex;
117
+ align-items: center;
118
+ gap: 7px;
119
+ }
120
+ .bar {
121
+ width: 4px;
122
+ border-radius: 999px;
123
+ background: currentColor;
124
+ }
125
+ .screen {
126
+ height: 100%;
127
+ overflow: hidden;
128
+ }
129
+ .home {
130
+ position: absolute;
131
+ left: 0;
132
+ right: 0;
133
+ bottom: 0;
134
+ z-index: 60;
135
+ height: 34px;
136
+ display: flex;
137
+ align-items: flex-end;
138
+ justify-content: center;
139
+ padding-bottom: 8px;
140
+ pointer-events: none;
141
+ }
142
+ .home::before {
143
+ content: '';
144
+ width: 139px;
145
+ height: 5px;
146
+ border-radius: 100px;
147
+ background: color-mix(in srgb, var(--idp-fg), transparent 72%);
148
+ }
149
+ @media (max-width: 520px) {
150
+ :host {
151
+ display: block;
152
+ width: 100%;
153
+ }
154
+ .device {
155
+ width: 100%;
156
+ height: auto;
157
+ aspect-ratio: 402 / 874;
158
+ border-radius: 0;
159
+ }
160
+ .island {
161
+ display: none;
162
+ }
163
+ }
164
+ `,
165
+ ];
166
+ render() {
167
+ return html `
168
+ <div class="device">
169
+ <div class="island"></div>
170
+ <div class="status">
171
+ <span>${this.time}</span>
172
+ <span class="status-icons" aria-hidden="true">
173
+ <span class="bar" style="height: 5px"></span>
174
+ <span class="bar" style="height: 8px"></span>
175
+ <span class="bar" style="height: 11px"></span>
176
+ <span style="width: 24px; height: 12px; border: 1.5px solid currentColor; border-radius: 4px;"></span>
177
+ </span>
178
+ </div>
179
+ <div class="screen"><slot></slot></div>
180
+ <div class="home"></div>
181
+ </div>
182
+ `;
183
+ }
184
+ constructor() {
185
+ super(...arguments);
186
+ __runInitializers(this, _dark_extraInitializers);
187
+ }
188
+ static {
189
+ __runInitializers(_classThis, _classExtraInitializers);
190
+ }
191
+ };
192
+ return IdpMobileFrame = _classThis;
193
+ })();
194
+ export { IdpMobileFrame };
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLW1vYmlsZS1mcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9pZHAtbW9iaWxlLWZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7SUFTbEMsY0FBYzs0QkFEMUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7OEJBQW5CLFNBQVEsV0FBVzs7OztnQ0FRNUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUYzQyxpS0FBZ0IsSUFBSSw2QkFBSixJQUFJLG1GQUFVO1lBRzlCLGlLQUFnQixJQUFJLDZCQUFKLElBQUksbUZBQVM7WUFaL0IsNktBOEhDOzs7O1FBN0hRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7O0dBSTlCLENBQUM7UUFDSyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUczRCxxRUFBdUIsTUFBTSxFQUFDO1FBQTlCLElBQWdCLElBQUksMENBQVU7UUFBOUIsSUFBZ0IsSUFBSSxnREFBVTtRQUc5Qix3SEFBdUIsS0FBSyxHQUFDO1FBQTdCLElBQWdCLElBQUksMENBQVM7UUFBN0IsSUFBZ0IsSUFBSSxnREFBUztRQUV0QixNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5RkY7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7O2tCQUlHLElBQUksQ0FBQyxJQUFJOzs7Ozs7Ozs7OztLQVd0QixDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBN0hVLHVEQUFjOzs7OztTQUFkLGNBQWMifQ==
@@ -0,0 +1,16 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import './idp-button.js';
3
+ import './idp-icon.js';
4
+ import './idp-inbox-preview.js';
5
+ import './idp-mobile-frame.js';
6
+ declare global {
7
+ interface HTMLElementTagNameMap {
8
+ 'idp-mobile-showcase': IdpMobileShowcase;
9
+ }
10
+ }
11
+ export declare class IdpMobileShowcase extends DeesElement {
12
+ static demo: () => TemplateResult<1>;
13
+ static demoGroups: string[];
14
+ static styles: import("@design.estate/dees-element").CSSResult[];
15
+ render(): TemplateResult;
16
+ }
@@ -0,0 +1,339 @@
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, customElement, css } from '@design.estate/dees-element';
36
+ import { idpElementStyles } from './tokens.js';
37
+ import './idp-button.js';
38
+ import './idp-icon.js';
39
+ import './idp-inbox-preview.js';
40
+ import './idp-mobile-frame.js';
41
+ let IdpMobileShowcase = (() => {
42
+ let _classDecorators = [customElement('idp-mobile-showcase')];
43
+ let _classDescriptor;
44
+ let _classExtraInitializers = [];
45
+ let _classThis;
46
+ let _classSuper = DeesElement;
47
+ var IdpMobileShowcase = class extends _classSuper {
48
+ static { _classThis = this; }
49
+ static {
50
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
51
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
52
+ IdpMobileShowcase = _classThis = _classDescriptor.value;
53
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
54
+ }
55
+ static demo = () => html `<idp-mobile-showcase></idp-mobile-showcase>`;
56
+ static demoGroups = ['idp.global v3 full pages'];
57
+ static styles = [
58
+ ...idpElementStyles,
59
+ css `
60
+ :host {
61
+ display: block;
62
+ }
63
+ .showcase {
64
+ min-height: 100vh;
65
+ padding: 56px;
66
+ background: radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--idp-fg), transparent 92%) 1px, transparent 0) 0 0 / 24px 24px, var(--idp-bg);
67
+ color: var(--idp-fg);
68
+ }
69
+ .head {
70
+ max-width: 1180px;
71
+ margin: 0 auto 44px;
72
+ }
73
+ .badge {
74
+ display: inline-flex;
75
+ align-items: center;
76
+ gap: 6px;
77
+ margin-bottom: 16px;
78
+ padding: 4px 10px;
79
+ border: 1px solid var(--idp-border);
80
+ border-radius: 999px;
81
+ background: var(--idp-card);
82
+ color: var(--idp-fg-3);
83
+ font-size: 11px;
84
+ font-weight: 500;
85
+ }
86
+ .dot {
87
+ width: 6px;
88
+ height: 6px;
89
+ border-radius: 50%;
90
+ background: var(--idp-ok);
91
+ }
92
+ h1 {
93
+ max-width: 900px;
94
+ margin: 0 0 14px;
95
+ font-family: var(--idp-display);
96
+ font-size: clamp(36px, 5vw, 56px);
97
+ font-weight: 750;
98
+ letter-spacing: -0.035em;
99
+ line-height: 1.05;
100
+ }
101
+ p {
102
+ max-width: 680px;
103
+ margin: 0;
104
+ color: var(--idp-fg-3);
105
+ font-size: 16px;
106
+ line-height: 1.55;
107
+ }
108
+ .tokens {
109
+ display: flex;
110
+ flex-wrap: wrap;
111
+ gap: 24px;
112
+ margin-top: 24px;
113
+ padding: 16px;
114
+ border: 1px solid var(--idp-border);
115
+ border-radius: 12px;
116
+ background: var(--idp-card);
117
+ }
118
+ .token-label {
119
+ margin-bottom: 4px;
120
+ color: var(--idp-muted-fg);
121
+ font-size: 10px;
122
+ font-weight: 700;
123
+ letter-spacing: 0.08em;
124
+ text-transform: uppercase;
125
+ }
126
+ .token-value {
127
+ display: flex;
128
+ align-items: center;
129
+ gap: 8px;
130
+ color: var(--idp-fg);
131
+ font-size: 13px;
132
+ font-weight: 550;
133
+ }
134
+ .swatch {
135
+ width: 18px;
136
+ height: 18px;
137
+ border-radius: 5px;
138
+ background: var(--swatch);
139
+ border: 1px solid var(--idp-border);
140
+ }
141
+ .section {
142
+ max-width: 1180px;
143
+ margin: 0 auto 56px;
144
+ }
145
+ .section-title {
146
+ margin-bottom: 18px;
147
+ color: var(--idp-muted-fg);
148
+ font-family: var(--idp-mono);
149
+ font-size: 12px;
150
+ font-weight: 700;
151
+ letter-spacing: 0.1em;
152
+ text-transform: uppercase;
153
+ }
154
+ .phones {
155
+ display: grid;
156
+ grid-template-columns: repeat(2, minmax(300px, 402px));
157
+ gap: 28px;
158
+ align-items: start;
159
+ }
160
+ .multi {
161
+ display: grid;
162
+ grid-template-columns: 280px minmax(0, 1fr) 360px;
163
+ gap: 28px;
164
+ align-items: start;
165
+ }
166
+ .watch, .ipad, .mac {
167
+ border: 1px solid var(--idp-border);
168
+ background: var(--idp-card);
169
+ box-shadow: 0 20px 50px color-mix(in srgb, var(--idp-fg), transparent 92%);
170
+ }
171
+ .watch {
172
+ width: 236px;
173
+ height: 286px;
174
+ display: grid;
175
+ place-items: center;
176
+ border-radius: 60px;
177
+ background: #09090b;
178
+ color: #fafafa;
179
+ }
180
+ .watch-screen {
181
+ width: 178px;
182
+ display: grid;
183
+ gap: 12px;
184
+ text-align: center;
185
+ }
186
+ .watch-app {
187
+ color: #a1a1aa;
188
+ font-family: var(--idp-mono);
189
+ font-size: 10px;
190
+ letter-spacing: 0.08em;
191
+ text-transform: uppercase;
192
+ }
193
+ .watch-title {
194
+ font-size: 18px;
195
+ font-weight: 700;
196
+ }
197
+ .watch-actions {
198
+ display: grid;
199
+ grid-template-columns: 1fr 1fr;
200
+ gap: 8px;
201
+ }
202
+ .watch-actions button {
203
+ display: inline-flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ gap: 5px;
207
+ height: 34px;
208
+ border: 1px solid #27272a;
209
+ border-radius: 999px;
210
+ background: #18181b;
211
+ color: #fafafa;
212
+ }
213
+ .watch-actions .approve {
214
+ background: #3b82f6;
215
+ border-color: #3b82f6;
216
+ }
217
+ .ipad {
218
+ min-height: 520px;
219
+ overflow: hidden;
220
+ border-radius: 26px;
221
+ }
222
+ .ipad-shell {
223
+ display: grid;
224
+ grid-template-columns: 220px 1fr;
225
+ min-height: 520px;
226
+ }
227
+ .ipad-sidebar {
228
+ padding: 18px;
229
+ border-right: 1px solid var(--idp-border);
230
+ background: var(--idp-card-2);
231
+ }
232
+ .ipad-main {
233
+ padding: 22px;
234
+ }
235
+ .ipad-card {
236
+ display: flex;
237
+ align-items: flex-start;
238
+ gap: 10px;
239
+ margin-top: 16px;
240
+ padding: 16px;
241
+ border: 1px solid var(--idp-border);
242
+ border-radius: 12px;
243
+ background: var(--idp-card);
244
+ }
245
+ .mac {
246
+ overflow: hidden;
247
+ border-radius: 14px;
248
+ }
249
+ .mac-bar {
250
+ display: flex;
251
+ gap: 6px;
252
+ padding: 11px 14px;
253
+ border-bottom: 1px solid var(--idp-border);
254
+ }
255
+ .tdot {
256
+ width: 10px;
257
+ height: 10px;
258
+ border-radius: 50%;
259
+ }
260
+ .mac-body {
261
+ display: grid;
262
+ gap: 12px;
263
+ padding: 18px;
264
+ }
265
+ .mac-row {
266
+ display: flex;
267
+ align-items: center;
268
+ justify-content: space-between;
269
+ gap: 12px;
270
+ padding: 12px;
271
+ border: 1px solid var(--idp-border);
272
+ border-radius: 10px;
273
+ background: var(--idp-card);
274
+ }
275
+ .inline-muted {
276
+ color: var(--idp-muted-fg);
277
+ }
278
+ .watch-muted {
279
+ color: #a1a1aa;
280
+ }
281
+ .row-label {
282
+ display: inline-flex;
283
+ align-items: center;
284
+ gap: 8px;
285
+ }
286
+ @media (max-width: 1120px) {
287
+ .multi {
288
+ grid-template-columns: 1fr;
289
+ }
290
+ }
291
+ @media (max-width: 900px) {
292
+ .showcase {
293
+ padding: 28px;
294
+ }
295
+ .phones {
296
+ grid-template-columns: 1fr;
297
+ }
298
+ }
299
+ `,
300
+ ];
301
+ render() {
302
+ return html `
303
+ <div class="showcase">
304
+ <header class="head">
305
+ <div class="badge"><span class="dot"></span>Mobile redesign - v3 - shadcn tokens</div>
306
+ <h1>A personal identity provider, built across every device you carry.</h1>
307
+ <p>Same four-platform architecture: flat surfaces, 1px borders, neutral palette, and blue accent used only where action is expected.</p>
308
+ <div class="tokens">
309
+ ${[
310
+ ['Primary', '#18181b', 'zinc-900'],
311
+ ['Accent', '#0050b9', 'idp blue'],
312
+ ['Muted', '#f4f4f2', 'paper muted'],
313
+ ['Border', '#e4e4e7', 'zinc-200'],
314
+ ].map((tokenArg) => html `<div><div class="token-label">${tokenArg[0]}</div><div class="token-value"><span class="swatch" style="--swatch:${tokenArg[1]}"></span>${tokenArg[2]}</div></div>`)}
315
+ </div>
316
+ </header>
317
+ <section class="section">
318
+ <div class="section-title">iPhone</div>
319
+ <div class="phones"><idp-inbox-preview></idp-inbox-preview><idp-inbox-preview dark></idp-inbox-preview></div>
320
+ </section>
321
+ <section class="section">
322
+ <div class="section-title">Watch, iPad, Mac</div>
323
+ <div class="multi">
324
+ <div class="watch"><div class="watch-screen"><div class="watch-app">idp.global</div><idp-icon name="shield" size="28" style="margin:0 auto;color:var(--idp-accent-hover)"></idp-icon><div class="watch-title">GitHub wants access</div><div class="watch-muted" style="font-size:12px;">repo:read - Berlin</div><div class="watch-actions"><button><idp-icon name="x" size="13"></idp-icon>Deny</button><button class="approve"><idp-icon name="check" size="13"></idp-icon>Approve</button></div></div></div>
325
+ <div class="ipad"><div class="ipad-shell"><aside class="ipad-sidebar"><strong>Inbox</strong><p>3 pending approvals</p><div class="ipad-card"><idp-icon name="globe" size="16"></idp-icon><div><strong>GitHub OAuth</strong><br/><span class="inline-muted">repo:read - now</span></div></div><div class="ipad-card"><idp-icon name="cloud" size="16"></idp-icon><div><strong>Hetzner Cloud</strong><br/><span class="inline-muted">new network - 8m</span></div></div></aside><main class="ipad-main"><h2>Approval detail</h2><p>Full context before a sensitive action is approved.</p><div class="ipad-card"><idp-icon name="laptop" size="16"></idp-icon><div><strong>Device</strong><br/>MacBook Pro - Safari - Berlin, DE</div></div><div class="ipad-card"><idp-icon name="key" size="16"></idp-icon><div><strong>Requested scopes</strong><br/>openid, profile, email, repo:read</div></div></main></div></div>
326
+ <div class="mac"><div class="mac-bar"><span class="tdot" style="background:#ff5f57"></span><span class="tdot" style="background:#ffbd2e"></span><span class="tdot" style="background:#28c840"></span></div><div class="mac-body"><strong>Menu bar approvals</strong><div class="mac-row"><span class="row-label"><idp-icon name="globe" size="15"></idp-icon>GitHub OAuth</span><idp-button variant="accent" size="sm" icon="check">Approve</idp-button></div><div class="mac-row"><span class="row-label"><idp-icon name="nfc" size="15"></idp-icon>NFC tap - door 4F</span><idp-button variant="ghost" size="sm" icon="chevron-right">Review</idp-button></div><div class="mac-row"><span class="row-label"><idp-icon name="key" size="15"></idp-icon>Key rotation</span><idp-button variant="ghost" size="sm" icon="shield">Confirm</idp-button></div></div></div>
327
+ </div>
328
+ </section>
329
+ </div>
330
+ `;
331
+ }
332
+ static {
333
+ __runInitializers(_classThis, _classExtraInitializers);
334
+ }
335
+ };
336
+ return IdpMobileShowcase = _classThis;
337
+ })();
338
+ export { IdpMobileShowcase };
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLW1vYmlsZS1zaG93Y2FzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9pZHAtbW9iaWxlLXNob3djYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyx1QkFBdUIsQ0FBQztJQVNsQixpQkFBaUI7NEJBRDdCLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQzs7OztzQkFDRSxXQUFXO2lDQUFuQixTQUFRLFdBQVc7Ozs7WUFBbEQsNktBd1JDOzs7O1FBdlJRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBLDZDQUE2QyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRWpELE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnUEY7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7O2NBT0Q7Z0JBQ0EsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQztnQkFDakMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQztnQkFDbkMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQzthQUNsQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBLGlDQUFpQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHVFQUF1RSxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQm5NLENBQUM7UUFDSixDQUFDOztZQXZSVSx1REFBaUI7Ozs7O1NBQWpCLGlCQUFpQiJ9
@@ -0,0 +1,28 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ export interface IIdpSelectOption {
3
+ option: string;
4
+ key: string;
5
+ payload?: string;
6
+ }
7
+ export interface IIdpSelectEventDetail {
8
+ key: string;
9
+ payload?: string;
10
+ selectedOption: IIdpSelectOption | null;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'idp-select': IdpSelect;
15
+ }
16
+ }
17
+ export declare class IdpSelect extends DeesElement {
18
+ static demo: () => TemplateResult<1>;
19
+ static demoGroups: string[];
20
+ accessor label: string;
21
+ accessor placeholder: string;
22
+ accessor options: IIdpSelectOption[];
23
+ accessor selectedOption: IIdpSelectOption | null;
24
+ accessor disabled: boolean;
25
+ static styles: import("@design.estate/dees-element").CSSResult[];
26
+ private handleChange;
27
+ render(): TemplateResult;
28
+ }