@digital-realty/ix-widget 1.0.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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -0
  3. package/dist/IxWidget.d.ts +6 -0
  4. package/dist/IxWidget.js +85 -0
  5. package/dist/IxWidget.js.map +1 -0
  6. package/dist/assets/columns.d.ts +5 -0
  7. package/dist/assets/columns.js +45 -0
  8. package/dist/assets/columns.js.map +1 -0
  9. package/dist/assets/contacts.d.ts +17 -0
  10. package/dist/assets/contacts.js +88 -0
  11. package/dist/assets/contacts.js.map +1 -0
  12. package/dist/assets/data.d.ts +2243 -0
  13. package/dist/assets/data.js +2354 -0
  14. package/dist/assets/data.js.map +1 -0
  15. package/dist/assets/iconset.d.ts +16 -0
  16. package/dist/assets/iconset.js +18 -0
  17. package/dist/assets/iconset.js.map +1 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/ix-action-list.d.ts +8 -0
  22. package/dist/ix-action-list.js +108 -0
  23. package/dist/ix-action-list.js.map +1 -0
  24. package/dist/ix-contacts.d.ts +9 -0
  25. package/dist/ix-contacts.js +137 -0
  26. package/dist/ix-contacts.js.map +1 -0
  27. package/dist/ix-info-card.d.ts +10 -0
  28. package/dist/ix-info-card.js +164 -0
  29. package/dist/ix-info-card.js.map +1 -0
  30. package/dist/ix-launchpad.d.ts +14 -0
  31. package/dist/ix-launchpad.js +188 -0
  32. package/dist/ix-launchpad.js.map +1 -0
  33. package/dist/ix-nav-item.d.ts +8 -0
  34. package/dist/ix-nav-item.js +98 -0
  35. package/dist/ix-nav-item.js.map +1 -0
  36. package/dist/ix-nav-list.d.ts +8 -0
  37. package/dist/ix-nav-list.js +44 -0
  38. package/dist/ix-nav-list.js.map +1 -0
  39. package/dist/ix-news-feed.d.ts +9 -0
  40. package/dist/ix-news-feed.js +243 -0
  41. package/dist/ix-news-feed.js.map +1 -0
  42. package/dist/ix-status-counter-group.d.ts +8 -0
  43. package/dist/ix-status-counter-group.js +115 -0
  44. package/dist/ix-status-counter-group.js.map +1 -0
  45. package/dist/ix-status-counter.d.ts +12 -0
  46. package/dist/ix-status-counter.js +163 -0
  47. package/dist/ix-status-counter.js.map +1 -0
  48. package/dist/ix-table-data.d.ts +12 -0
  49. package/dist/ix-table-data.js +99 -0
  50. package/dist/ix-table-data.js.map +1 -0
  51. package/dist/ix-widget.d.ts +1 -0
  52. package/dist/ix-widget.js +3 -0
  53. package/dist/ix-widget.js.map +1 -0
  54. package/dist/ix-widget.min.js +1 -0
  55. package/dist/styles/launchpad-styles.d.ts +1 -0
  56. package/dist/styles/launchpad-styles.js +221 -0
  57. package/dist/styles/launchpad-styles.js.map +1 -0
  58. package/package.json +128 -0
@@ -0,0 +1,108 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement, css } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ import '@digital-realty/ix-icon/ix-icon.js';
5
+ import '@digital-realty/ix-button/ix-button.js';
6
+ import './IxWidget.js';
7
+ let IxActionList = class IxActionList extends LitElement {
8
+ render() {
9
+ return html `<ix-widget type="action-list">
10
+ <div class="header">
11
+ <h2>0 Pending Facility Access Requests</h2>
12
+ <ix-button
13
+ slot="cta"
14
+ type="button"
15
+ has-icon
16
+ trailing-icon
17
+ appearance="text"
18
+ >
19
+ <ix-icon slot="icon">chevron_right</ix-icon>
20
+ Learn more
21
+ </ix-button>
22
+ </div>
23
+ <div class="content">
24
+ <svg
25
+ class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-sfpjfh"
26
+ focusable="false"
27
+ aria-hidden="true"
28
+ viewBox="0 0 24 24"
29
+ data-testid="InfoIcon"
30
+ >
31
+ <path
32
+ d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"
33
+ ></path>
34
+ </svg>
35
+ <div class="description">
36
+ No Facility Access requests pending approval
37
+ </div>
38
+ <ix-button>View All</ix-button>
39
+ </div>
40
+ </ix-widget>`;
41
+ }
42
+ };
43
+ IxActionList.styles = css `
44
+ .content {
45
+ display: flex;
46
+ flex-direction: column;
47
+ -webkit-box-align: center;
48
+ align-items: center;
49
+ -webkit-box-pack: start;
50
+ justify-content: start;
51
+ margin: 24px;
52
+ }
53
+ svg {
54
+ user-select: none;
55
+ width: 48px;
56
+ height: 48px;
57
+ display: inline-block;
58
+ fill: currentcolor;
59
+ flex-shrink: 0;
60
+ transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
61
+ font-size: inherit;
62
+ margin-left: 5px;
63
+ margin-top: 2px;
64
+ color: rgb(20, 86, 224);
65
+ }
66
+ ix-button {
67
+ display: inline-block;
68
+ }
69
+ .header {
70
+ height: 56px;
71
+ display: flex;
72
+ -webkit-box-pack: justify;
73
+ justify-content: space-between;
74
+ -webkit-box-align: center;
75
+ align-items: center;
76
+ padding-left: 24px;
77
+ padding-right: 7px;
78
+ }
79
+ h2 {
80
+ margin: 0px;
81
+ font-family: 'Red Hat Display', sans-serif;
82
+ font-style: normal;
83
+ font-weight: bold;
84
+ font-size: 20px;
85
+ line-height: 24px;
86
+ letter-spacing: 0.15px;
87
+ color: rgb(9, 34, 65);
88
+ }
89
+ .description {
90
+ margin: 0 0 8px;
91
+ font-family: 'Red Hat Display', sans-serif;
92
+ font-style: normal;
93
+ font-weight: bold;
94
+ font-size: 20px;
95
+ line-height: 24px;
96
+ letter-spacing: 0.15px;
97
+ color: rgb(9, 34, 65);
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: 8px;
101
+ margin-top: 24px;
102
+ }
103
+ `;
104
+ IxActionList = __decorate([
105
+ customElement('ix-action-list')
106
+ ], IxActionList);
107
+ export { IxActionList };
108
+ //# sourceMappingURL=ix-action-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-action-list.js","sourceRoot":"","sources":["../src/ix-action-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wCAAwC,CAAC;AAChD,OAAO,eAAe,CAAC;AAGhB,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IA+DvB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BE,CAAC;IAChB,CAAC;;AA/FM,mBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DlB,AA5DY,CA4DX;AA7DS,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAiGxB","sourcesContent":["import { html, LitElement, css } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport '@digital-realty/ix-icon/ix-icon.js';\nimport '@digital-realty/ix-button/ix-button.js';\nimport './IxWidget.js';\n\n@customElement('ix-action-list')\nexport class IxActionList extends LitElement {\n static styles = css`\n .content {\n display: flex;\n flex-direction: column;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: start;\n justify-content: start;\n margin: 24px;\n }\n svg {\n user-select: none;\n width: 48px;\n height: 48px;\n display: inline-block;\n fill: currentcolor;\n flex-shrink: 0;\n transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n font-size: inherit;\n margin-left: 5px;\n margin-top: 2px;\n color: rgb(20, 86, 224);\n }\n ix-button {\n display: inline-block;\n }\n .header {\n height: 56px;\n display: flex;\n -webkit-box-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n align-items: center;\n padding-left: 24px;\n padding-right: 7px;\n }\n h2 {\n margin: 0px;\n font-family: 'Red Hat Display', sans-serif;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: 0.15px;\n color: rgb(9, 34, 65);\n }\n .description {\n margin: 0 0 8px;\n font-family: 'Red Hat Display', sans-serif;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: 0.15px;\n color: rgb(9, 34, 65);\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 24px;\n }\n `;\n\n protected override render() {\n return html`<ix-widget type=\"action-list\">\n <div class=\"header\">\n <h2>0 Pending Facility Access Requests</h2>\n <ix-button\n slot=\"cta\"\n type=\"button\"\n has-icon\n trailing-icon\n appearance=\"text\"\n >\n <ix-icon slot=\"icon\">chevron_right</ix-icon>\n Learn more\n </ix-button>\n </div>\n <div class=\"content\">\n <svg\n class=\"MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-sfpjfh\"\n focusable=\"false\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n data-testid=\"InfoIcon\"\n >\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n ></path>\n </svg>\n <div class=\"description\">\n No Facility Access requests pending approval\n </div>\n <ix-button>View All</ix-button>\n </div>\n </ix-widget>`;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { LitElement } from 'lit';
2
+ import '@digital-realty/ix-icon/ix-icon.js';
3
+ import '@digital-realty/ix-button/ix-button.js';
4
+ import './IxWidget.js';
5
+ export declare class IxContacts extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ phoneNumbers: string;
8
+ protected render(): import("lit").TemplateResult<1>;
9
+ }
@@ -0,0 +1,137 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement, css } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
5
+ import '@digital-realty/ix-icon/ix-icon.js';
6
+ import '@digital-realty/ix-button/ix-button.js';
7
+ import './IxWidget.js';
8
+ import markdownit from 'markdown-it';
9
+ import { phone, question, email } from './assets/iconset.js';
10
+ let IxContacts = class IxContacts extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.phoneNumbers = '';
14
+ }
15
+ render() {
16
+ const md = markdownit();
17
+ const result = md.render(this.phoneNumbers);
18
+ return html `<ix-widget>
19
+ <div class="content customer-support">
20
+ <h2>Customer Support</h2>
21
+ <div class="c2">
22
+ <div class="column">
23
+ <div class="header">
24
+ ${question}
25
+ <h3>Contact us</h3>
26
+ </div>
27
+ <p>Please fill out <a href="#">this form</a></p>
28
+ <div class="header">
29
+ ${email}
30
+ <h3>Email</h3>
31
+ </div>
32
+ <a class="" href="mailto:GlobalPortal@digitalrealty.com"
33
+ >GlobalPortal@digitalrealty.com</a
34
+ >
35
+ </div>
36
+ <div>
37
+ <div class="header">
38
+ ${phone}
39
+ <h3>Phone</h3>
40
+ </div>
41
+ ${unsafeHTML(result)}
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </ix-widget>`;
46
+ }
47
+ };
48
+ IxContacts.styles = [
49
+ css `
50
+ .c2 {
51
+ display: grid;
52
+ grid-template-columns: 1fr 1fr;
53
+ gap: 2rem;
54
+ }
55
+ .c3 {
56
+ display: grid;
57
+ grid-template-columns: auto auto auto;
58
+ gap: 2rem;
59
+ }
60
+ .customer-support h2 {
61
+ margin: 0px;
62
+ font-family: 'Red Hat Display', sans-serif;
63
+ font-style: normal;
64
+ font-weight: bold;
65
+ font-size: 20px;
66
+ line-height: 24px;
67
+ letter-spacing: 0.15px;
68
+ color: rgb(9, 34, 65);
69
+ height: 56px;
70
+ }
71
+ .customer-support h3 {
72
+ margin: 0px;
73
+ font-family: 'Open Sans', sans-serif;
74
+ font-style: normal;
75
+ font-weight: 400;
76
+ font-size: 16px;
77
+ line-height: 20px;
78
+ letter-spacing: 0.15px;
79
+ color: rgb(9, 34, 65);
80
+ }
81
+ .customer-support svg {
82
+ user-select: none;
83
+ width: 1em;
84
+ height: 1em;
85
+ display: inline-block;
86
+ fill: currentcolor;
87
+ flex-shrink: 0;
88
+ transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
89
+ font-size: 1.5rem;
90
+ color: rgb(7, 20, 84);
91
+ }
92
+ .customer-support p {
93
+ margin: 0px;
94
+ font-family: 'Open Sans', sans-serif;
95
+ font-style: normal;
96
+ font-weight: 400;
97
+ font-size: 16px;
98
+ line-height: 28px;
99
+ letter-spacing: 0.44px;
100
+ color: rgb(9, 34, 65);
101
+ }
102
+ .customer-support a {
103
+ margin: 0px;
104
+ font-family: 'Open Sans', sans-serif;
105
+ font-style: normal;
106
+ font-weight: 400;
107
+ font-size: 16px;
108
+ line-height: 28px;
109
+ letter-spacing: 0.44px;
110
+ color: rgb(20, 86, 224);
111
+ text-decoration: underline rgba(20, 86, 224, 0.4);
112
+ }
113
+ .customer-support .column {
114
+ display: flex;
115
+ flex-direction: column;
116
+ gap: 12px;
117
+ white-space: pre-wrap;
118
+ }
119
+ p {
120
+ white-space: pre-wrap;
121
+ }
122
+ .header {
123
+ display: flex;
124
+ -webkit-box-align: center;
125
+ align-items: center;
126
+ gap: 8px;
127
+ }
128
+ `,
129
+ ];
130
+ __decorate([
131
+ property({ type: String })
132
+ ], IxContacts.prototype, "phoneNumbers", void 0);
133
+ IxContacts = __decorate([
134
+ customElement('ix-contacts')
135
+ ], IxContacts);
136
+ export { IxContacts };
137
+ //# sourceMappingURL=ix-contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-contacts.js","sourceRoot":"","sources":["../src/ix-contacts.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wCAAwC,CAAC;AAChD,OAAO,eAAe,CAAC;AACvB,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGtD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAoFuB,iBAAY,GAAG,EAAE,CAAC;IAkChD,CAAC;IAhCoB,MAAM;QACvB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAA;;;;;;gBAMC,QAAQ;;;;;gBAKR,KAAK;;;;;;;;;gBASL,KAAK;;;cAGP,UAAU,CAAC,MAAM,CAAC;;;;iBAIf,CAAC;IAChB,CAAC;;AApHM,iBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EF;CACF,AAjFY,CAiFX;AAE0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAmB;AApFnC,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAsHtB","sourcesContent":["import { html, LitElement, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport '@digital-realty/ix-icon/ix-icon.js';\nimport '@digital-realty/ix-button/ix-button.js';\nimport './IxWidget.js';\nimport markdownit from 'markdown-it';\nimport { phone, question, email } from './assets/iconset.js';\n\n@customElement('ix-contacts')\nexport class IxContacts extends LitElement {\n static styles = [\n css`\n .c2 {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 2rem;\n }\n .c3 {\n display: grid;\n grid-template-columns: auto auto auto;\n gap: 2rem;\n }\n .customer-support h2 {\n margin: 0px;\n font-family: 'Red Hat Display', sans-serif;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: 0.15px;\n color: rgb(9, 34, 65);\n height: 56px;\n }\n .customer-support h3 {\n margin: 0px;\n font-family: 'Open Sans', sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n letter-spacing: 0.15px;\n color: rgb(9, 34, 65);\n }\n .customer-support svg {\n user-select: none;\n width: 1em;\n height: 1em;\n display: inline-block;\n fill: currentcolor;\n flex-shrink: 0;\n transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n font-size: 1.5rem;\n color: rgb(7, 20, 84);\n }\n .customer-support p {\n margin: 0px;\n font-family: 'Open Sans', sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 28px;\n letter-spacing: 0.44px;\n color: rgb(9, 34, 65);\n }\n .customer-support a {\n margin: 0px;\n font-family: 'Open Sans', sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 28px;\n letter-spacing: 0.44px;\n color: rgb(20, 86, 224);\n text-decoration: underline rgba(20, 86, 224, 0.4);\n }\n .customer-support .column {\n display: flex;\n flex-direction: column;\n gap: 12px;\n white-space: pre-wrap;\n }\n p {\n white-space: pre-wrap;\n }\n .header {\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n gap: 8px;\n }\n `,\n ];\n\n @property({ type: String }) phoneNumbers = '';\n\n protected override render() {\n const md = markdownit();\n const result = md.render(this.phoneNumbers);\n return html`<ix-widget>\n <div class=\"content customer-support\">\n <h2>Customer Support</h2>\n <div class=\"c2\">\n <div class=\"column\">\n <div class=\"header\">\n ${question}\n <h3>Contact us</h3>\n </div>\n <p>Please fill out <a href=\"#\">this form</a></p>\n <div class=\"header\">\n ${email}\n <h3>Email</h3>\n </div>\n <a class=\"\" href=\"mailto:GlobalPortal@digitalrealty.com\"\n >GlobalPortal@digitalrealty.com</a\n >\n </div>\n <div>\n <div class=\"header\">\n ${phone}\n <h3>Phone</h3>\n </div>\n ${unsafeHTML(result)}\n </div>\n </div>\n </div>\n </ix-widget>`;\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { LitElement } from 'lit';
2
+ import '@digital-realty/ix-icon/ix-icon.js';
3
+ import '@digital-realty/ix-button/ix-button.js';
4
+ import './IxWidget.js';
5
+ export declare class IxInfoCard extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ type: string;
8
+ img: string;
9
+ protected render(): import("lit").TemplateResult<1>;
10
+ }
@@ -0,0 +1,164 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement, css } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import '@digital-realty/ix-icon/ix-icon.js';
5
+ import '@digital-realty/ix-button/ix-button.js';
6
+ import './IxWidget.js';
7
+ let IxInfoCard = class IxInfoCard extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.type = 'resources';
11
+ this.img = '';
12
+ }
13
+ render() {
14
+ return html `<ix-widget type=${this.type}>
15
+ <slot name="image"></slot>
16
+ <div class="content">
17
+ <div class="overlay"></div>
18
+ <slot name="label"></slot>
19
+ <slot name="title"></slot>
20
+ <slot name="description"></slot>
21
+ <slot name="cta"></slot>
22
+ </div>
23
+ </ix-widget>`;
24
+ }
25
+ };
26
+ IxInfoCard.styles = [
27
+ css `
28
+ :host {
29
+ --ix-widget-padding: 0;
30
+ display: block;
31
+ }
32
+ :host[type='info-card-2'] {
33
+ aspect-ratio: 1 / 1;
34
+ }
35
+ [type='info-card-2'] ::slotted([slot='image']) {
36
+ position: absolute;
37
+ inset: 0px;
38
+ box-sizing: border-box;
39
+ padding: 0px;
40
+ border: none;
41
+ margin: auto;
42
+ display: block;
43
+ width: 0px;
44
+ height: 0px;
45
+ min-width: 100%;
46
+ max-width: 100%;
47
+ min-height: 100%;
48
+ max-height: 100%;
49
+ object-fit: cover;
50
+ }
51
+ [type='info-card-2'] .overlay {
52
+ position: absolute;
53
+ z-index: 0;
54
+ inset: 0px;
55
+ background: rgba(21, 25, 30, 0.66);
56
+ }
57
+
58
+ [type='info-card-2'] ::slotted([slot='title']) {
59
+ position: relative;
60
+ margin: 0px;
61
+ font-family: 'Red Hat Display', sans-serif;
62
+ font-style: normal;
63
+ font-weight: bold;
64
+ font-size: 20px;
65
+ line-height: 24px;
66
+ letter-spacing: 0.15px;
67
+ color: rgb(255, 255, 255);
68
+ z-index: 2;
69
+ }
70
+ [type='info-card-2'] ::slotted([slot='cta']) {
71
+ position: absolute;
72
+ bottom: 1rem;
73
+ left: 0;
74
+ --md-text-button-label-text-color: white;
75
+ --md-text-button-icon-color: white;
76
+ }
77
+ [type='info-card-2'] ::slotted([slot='label']) {
78
+ position: relative;
79
+ max-width: 100%;
80
+ font-family: Roboto, Helvetica, Arial, sans-serif;
81
+ display: inline-flex;
82
+ -webkit-box-align: center;
83
+ align-items: center;
84
+ -webkit-box-pack: center;
85
+ justify-content: center;
86
+ color: rgb(255, 255, 255);
87
+ background-color: rgb(20, 86, 224);
88
+ border-radius: 16px;
89
+ white-space: nowrap;
90
+ transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
91
+ box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
92
+ cursor: default;
93
+ outline: 0px;
94
+ text-decoration: none;
95
+ border: 0px;
96
+ padding-left: 4px;
97
+ padding-right: 4px;
98
+ vertical-align: middle;
99
+ box-sizing: border-box;
100
+ font-size: 8px;
101
+ font-weight: 700;
102
+ line-height: 11px;
103
+ letter-spacing: 0px;
104
+ text-align: center;
105
+ height: 12px;
106
+ margin-bottom: 5px;
107
+ }
108
+ [type='info-card-2'] .image {
109
+ display: block;
110
+ position: absolute;
111
+ top: 0;
112
+ left: 0;
113
+ right: 0;
114
+ bottom: 0;
115
+ background-position: center;
116
+ background-size: cover;
117
+ }
118
+ [type='info-card'] ::slotted([slot='image']) {
119
+ object-fit: cover;
120
+ width: 100%;
121
+ max-height: 200px;
122
+ overflow: hidden;
123
+ }
124
+ [type='info-card'] ::slotted([slot='title']) {
125
+ margin: 0px;
126
+ font-family: 'Red Hat Display', sans-serif;
127
+ font-style: normal;
128
+ font-weight: bold;
129
+ font-size: 20px;
130
+ line-height: 24px;
131
+ letter-spacing: 0.15px;
132
+ color: rgb(20, 86, 224);
133
+ }
134
+ [type='info-card'] ::slotted([slot='description']) {
135
+ margin: 10px 0 0;
136
+ font-family: 'Open Sans', sans-serif;
137
+ font-style: normal;
138
+ font-weight: 400;
139
+ font-size: 16px;
140
+ line-height: 28px;
141
+ letter-spacing: 0.44px;
142
+ color: inherit;
143
+ }
144
+ [type='info-card'] ::slotted([slot='cta']) {
145
+ position: absolute;
146
+ bottom: 1rem;
147
+ left: 0.5rem;
148
+ }
149
+ .content {
150
+ padding: 16px 24px;
151
+ }
152
+ `,
153
+ ];
154
+ __decorate([
155
+ property({ type: String })
156
+ ], IxInfoCard.prototype, "type", void 0);
157
+ __decorate([
158
+ property({ type: String })
159
+ ], IxInfoCard.prototype, "img", void 0);
160
+ IxInfoCard = __decorate([
161
+ customElement('ix-info-card')
162
+ ], IxInfoCard);
163
+ export { IxInfoCard };
164
+ //# sourceMappingURL=ix-info-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-info-card.js","sourceRoot":"","sources":["../src/ix-info-card.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wCAAwC,CAAC;AAChD,OAAO,eAAe,CAAC;AAGhB,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAkIuB,SAAI,GAAG,WAAW,CAAC;QAEnB,QAAG,GAAG,EAAE,CAAC;IAcvC,CAAC;IAZoB,MAAM;QACvB,OAAO,IAAI,CAAA,mBAAmB,IAAI,CAAC,IAAI;;;;;;;;;iBAS1B,CAAC;IAChB,CAAC;;AAhJM,iBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6HF;CACF,AA/HY,CA+HX;AAE0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAoB;AAEnB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCAAU;AApI1B,UAAU;IADtB,aAAa,CAAC,cAAc,CAAC;GACjB,UAAU,CAkJtB","sourcesContent":["import { html, LitElement, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '@digital-realty/ix-icon/ix-icon.js';\nimport '@digital-realty/ix-button/ix-button.js';\nimport './IxWidget.js';\n\n@customElement('ix-info-card')\nexport class IxInfoCard extends LitElement {\n static styles = [\n css`\n :host {\n --ix-widget-padding: 0;\n display: block;\n }\n :host[type='info-card-2'] {\n aspect-ratio: 1 / 1;\n }\n [type='info-card-2'] ::slotted([slot='image']) {\n position: absolute;\n inset: 0px;\n box-sizing: border-box;\n padding: 0px;\n border: none;\n margin: auto;\n display: block;\n width: 0px;\n height: 0px;\n min-width: 100%;\n max-width: 100%;\n min-height: 100%;\n max-height: 100%;\n object-fit: cover;\n }\n [type='info-card-2'] .overlay {\n position: absolute;\n z-index: 0;\n inset: 0px;\n background: rgba(21, 25, 30, 0.66);\n }\n\n [type='info-card-2'] ::slotted([slot='title']) {\n position: relative;\n margin: 0px;\n font-family: 'Red Hat Display', sans-serif;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: 0.15px;\n color: rgb(255, 255, 255);\n z-index: 2;\n }\n [type='info-card-2'] ::slotted([slot='cta']) {\n position: absolute;\n bottom: 1rem;\n left: 0;\n --md-text-button-label-text-color: white;\n --md-text-button-icon-color: white;\n }\n [type='info-card-2'] ::slotted([slot='label']) {\n position: relative;\n max-width: 100%;\n font-family: Roboto, Helvetica, Arial, sans-serif;\n display: inline-flex;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: center;\n justify-content: center;\n color: rgb(255, 255, 255);\n background-color: rgb(20, 86, 224);\n border-radius: 16px;\n white-space: nowrap;\n transition: background-color 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\n box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n cursor: default;\n outline: 0px;\n text-decoration: none;\n border: 0px;\n padding-left: 4px;\n padding-right: 4px;\n vertical-align: middle;\n box-sizing: border-box;\n font-size: 8px;\n font-weight: 700;\n line-height: 11px;\n letter-spacing: 0px;\n text-align: center;\n height: 12px;\n margin-bottom: 5px;\n }\n [type='info-card-2'] .image {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-position: center;\n background-size: cover;\n }\n [type='info-card'] ::slotted([slot='image']) {\n object-fit: cover;\n width: 100%;\n max-height: 200px;\n overflow: hidden;\n }\n [type='info-card'] ::slotted([slot='title']) {\n margin: 0px;\n font-family: 'Red Hat Display', sans-serif;\n font-style: normal;\n font-weight: bold;\n font-size: 20px;\n line-height: 24px;\n letter-spacing: 0.15px;\n color: rgb(20, 86, 224);\n }\n [type='info-card'] ::slotted([slot='description']) {\n margin: 10px 0 0;\n font-family: 'Open Sans', sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 28px;\n letter-spacing: 0.44px;\n color: inherit;\n }\n [type='info-card'] ::slotted([slot='cta']) {\n position: absolute;\n bottom: 1rem;\n left: 0.5rem;\n }\n .content {\n padding: 16px 24px;\n }\n `,\n ];\n\n @property({ type: String }) type = 'resources';\n\n @property({ type: String }) img = '';\n\n protected override render() {\n return html`<ix-widget type=${this.type}>\n <slot name=\"image\"></slot>\n <div class=\"content\">\n <div class=\"overlay\"></div>\n <slot name=\"label\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"description\"></slot>\n <slot name=\"cta\"></slot>\n </div>\n </ix-widget>`;\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { LitElement } from 'lit';
2
+ import './ix-status-counter-group.js';
3
+ import './ix-action-list.js';
4
+ import './ix-contacts.js';
5
+ import './ix-info-card.js';
6
+ import './ix-news-feed.js';
7
+ import './ix-table-data.js';
8
+ import './ix-nav-item.js';
9
+ import './ix-nav-list.js';
10
+ export declare class IxLaunchpad extends LitElement {
11
+ static styles: import("lit").CSSResult[];
12
+ data: any;
13
+ protected render(): import("lit").TemplateResult<1>;
14
+ }
@@ -0,0 +1,188 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import './ix-status-counter-group.js';
5
+ import './ix-action-list.js';
6
+ import './ix-contacts.js';
7
+ import './ix-info-card.js';
8
+ import './ix-news-feed.js';
9
+ import './ix-table-data.js';
10
+ import './ix-nav-item.js';
11
+ import './ix-nav-list.js';
12
+ import { IxLaunchpadStyles } from './styles/launchpad-styles.js';
13
+ import { statusData, pageProps } from './assets/data.js';
14
+ import { columns } from './assets/columns.js';
15
+ import { contacts } from './assets/contacts.js';
16
+ const imgServer = 'https://gp-tst.digitalrealty.com/_next/image?url=https%3A%2F%2Ftst-cms-strapi.digitalrealtytrust.com';
17
+ let IxLaunchpad = class IxLaunchpad extends LitElement {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.data = {
21
+ statusData,
22
+ columns,
23
+ contacts,
24
+ nav: {
25
+ header: 'Service tickets',
26
+ items: [
27
+ { name: 'Customer Support', icon: 'cutomerSupport' },
28
+ { name: 'Facility Access', icon: 'lock' },
29
+ { name: 'Remote Hands', icon: 'remoteHands' },
30
+ { name: 'Shipping and Receiving', icon: 'shipping' },
31
+ ],
32
+ },
33
+ nav2: {
34
+ header: 'USER MANAGEMENT',
35
+ items: [
36
+ { name: 'Add user', icon: 'addUser' },
37
+ { name: 'Manage users', icon: 'manageUsers' },
38
+ ],
39
+ },
40
+ pageProps,
41
+ };
42
+ }
43
+ /* fetchData() {
44
+ fetch('./data.json')
45
+ .then(response => response.json())
46
+ .then(data => {
47
+ setTimeout(() => {
48
+ console.log(data);
49
+ }, 2000);
50
+ });
51
+ }
52
+
53
+ connectedCallback() {
54
+ super.connectedCallback();
55
+ this.fetchData();
56
+ } */
57
+ render() {
58
+ var _a, _b, _c, _d;
59
+ return html `
60
+ <div class="outer">
61
+ <main>
62
+ <div class="inner">
63
+ <header>
64
+ <div>
65
+ <h1>Launchpad</h1>
66
+ </div>
67
+ </header>
68
+ <section>
69
+ <div class="container">
70
+ <div class="content">
71
+ <ix-status-counter-group
72
+ .data=${this.data.statusData}
73
+ ></ix-status-counter-group>
74
+
75
+ <ix-table-data
76
+ .columns=${this.data.columns}
77
+ .rows=${this.data.contacts}
78
+ header="Ticket Updates"
79
+ >
80
+ </ix-table-data>
81
+
82
+ <ix-action-list></ix-action-list>
83
+
84
+ <nav>
85
+ <ix-nav-list .header="${this.data.nav.header}">
86
+ ${this.data.nav.items.map((i) => html `<ix-nav-item .icon=${i === null || i === void 0 ? void 0 : i.icon}
87
+ >${i.name}</ix-nav-item
88
+ >`)}
89
+ </ix-nav-list>
90
+ <ix-nav-list .header="${(_a = this.data.nav2) === null || _a === void 0 ? void 0 : _a.header}">
91
+ ${(_b = this.data.nav2) === null || _b === void 0 ? void 0 : _b.items.map((i) => html `<ix-nav-item .icon=${i === null || i === void 0 ? void 0 : i.icon}
92
+ >${i.name}</ix-nav-item
93
+ >`)}
94
+ </ix-nav-list>
95
+ </nav>
96
+
97
+ <ix-news-feed
98
+ header="What's New"
99
+ .data=${this.data.pageProps.pageProps.whatsNews}
100
+ ></ix-news-feed>
101
+
102
+ <div class="news-info">
103
+ <h2>Resources</h2>
104
+ <div class="resources">
105
+ ${this.data.pageProps.pageProps.resources.map((item) => {
106
+ var _a, _b;
107
+ return html ` <ix-info-card type="info-card-2"
108
+ ><img
109
+ slot="image"
110
+ name="image"
111
+ alt="${item.thumbnail.alternativeText}"
112
+ src="${`${imgServer}${encodeURIComponent(item.thumbnail.url)}&w=3840&q=75`}"
113
+ />
114
+ <div slot="label">${(_b = (_a = item.topics) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name}</div>
115
+ <div slot="title">${item.title}</div>
116
+ <ix-button
117
+ slot="cta"
118
+ type="button"
119
+ has-icon
120
+ trailing-icon
121
+ appearance="text"
122
+ >
123
+ <ix-icon slot="icon">chevron_right</ix-icon>
124
+ Learn more
125
+ </ix-button>
126
+ </ix-info-card>`;
127
+ })}
128
+ </div>
129
+
130
+ <h2 class="">News &amp; Promotions</h2>
131
+ <div class="newsAndPromotions">
132
+ ${this.data.pageProps.pageProps.newsAndPromotions.map((item) => html ` <ix-info-card type="info-card">
133
+ <img
134
+ slot="image"
135
+ name="image"
136
+ alt="${item.thumbnail.alternativeText}"
137
+ src="${`${imgServer}${encodeURIComponent(item.thumbnail.url)}&w=3840&q=75`}"
138
+ />
139
+ <div slot="title">${item.title}</div>
140
+ <div slot="description">${item.abstract}</div>
141
+ <ix-button
142
+ slot="cta"
143
+ type="button"
144
+ has-icon
145
+ trailing-icon
146
+ appearance="text"
147
+ >
148
+ <ix-icon slot="icon">chevron_right</ix-icon>
149
+ Learn more
150
+ </ix-button>
151
+ </ix-info-card>`)}
152
+ </div>
153
+ </div>
154
+
155
+ <ix-contacts
156
+ phonenumbers=${this.data.pageProps.pageProps.contactInfo
157
+ .attributes.phoneNumbers}
158
+ ></ix-contacts>
159
+ </div>
160
+ <nav>
161
+ <ix-nav-list .header="${this.data.nav.header}">
162
+ ${this.data.nav.items.map((i) => html `<ix-nav-item .icon=${i === null || i === void 0 ? void 0 : i.icon}
163
+ >${i.name}</ix-nav-item
164
+ >`)}
165
+ </ix-nav-list>
166
+ <ix-nav-list .header="${(_c = this.data.nav2) === null || _c === void 0 ? void 0 : _c.header}">
167
+ ${(_d = this.data.nav2) === null || _d === void 0 ? void 0 : _d.items.map((i) => html `<ix-nav-item .icon=${i === null || i === void 0 ? void 0 : i.icon}
168
+ >${i.name}</ix-nav-item
169
+ >`)}
170
+ </ix-nav-list>
171
+ </nav>
172
+ </div>
173
+ </section>
174
+ </div>
175
+ </main>
176
+ </div>
177
+ `;
178
+ }
179
+ };
180
+ IxLaunchpad.styles = [IxLaunchpadStyles];
181
+ __decorate([
182
+ property({ type: Object })
183
+ ], IxLaunchpad.prototype, "data", void 0);
184
+ IxLaunchpad = __decorate([
185
+ customElement('ix-launchpad')
186
+ ], IxLaunchpad);
187
+ export { IxLaunchpad };
188
+ //# sourceMappingURL=ix-launchpad.js.map