@stacksjs/hello-world-stx 0.75.330 → 0.75.336
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.
- package/README.md +7 -0
- package/dist/bundle.js +474 -0
- package/dist/bundle.js.map +23 -0
- package/dist/custom-elements.d.ts +153 -0
- package/dist/custom-elements.json +927 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +13 -0
- package/dist/runtime.js +309 -0
- package/dist/ssr.d.ts +27 -0
- package/dist/ssr.js +388 -0
- package/dist/stacks-context-menu-item.d.ts +27 -0
- package/dist/stacks-context-menu-item.js +85 -0
- package/dist/stacks-context-menu.d.ts +24 -0
- package/dist/stacks-context-menu.js +35 -0
- package/dist/stacks-desktop-icon.d.ts +33 -0
- package/dist/stacks-desktop-icon.js +114 -0
- package/dist/stacks-feature-button.d.ts +26 -0
- package/dist/stacks-feature-button.js +56 -0
- package/dist/stacks-input-group.d.ts +28 -0
- package/dist/stacks-input-group.js +68 -0
- package/dist/stacks-login-form.d.ts +28 -0
- package/dist/stacks-login-form.js +85 -0
- package/dist/stacks-login-screen.d.ts +26 -0
- package/dist/stacks-login-screen.js +77 -0
- package/dist/stacks-notification-popup.d.ts +26 -0
- package/dist/stacks-notification-popup.js +85 -0
- package/dist/stacks-package-item.d.ts +26 -0
- package/dist/stacks-package-item.js +49 -0
- package/dist/stacks-start-menu-item.d.ts +28 -0
- package/dist/stacks-start-menu-item.js +99 -0
- package/dist/stacks-start-menu.d.ts +26 -0
- package/dist/stacks-start-menu.js +85 -0
- package/dist/stacks-taskbar.d.ts +24 -0
- package/dist/stacks-taskbar.js +63 -0
- package/dist/stacks-window.d.ts +31 -0
- package/dist/stacks-window.js +104 -0
- package/package.json +4 -4
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** DesktopIcon web component generated from DesktopIcon.stx. */
|
|
4
|
+
export class DesktopIcon extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { id, icon = "\uD83D\uDCC4", label, type = "window", section = "", url = "", onclick, left = "20px", top = "20px", style = "" } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += `<button
|
|
11
|
+
class="desktop-icon"
|
|
12
|
+
data-icon-id="`;
|
|
13
|
+
out += __escape(id);
|
|
14
|
+
out += `"
|
|
15
|
+
data-icon-type="`;
|
|
16
|
+
out += __escape(type);
|
|
17
|
+
out += `"
|
|
18
|
+
data-icon-section="`;
|
|
19
|
+
out += __escape(section);
|
|
20
|
+
out += `"
|
|
21
|
+
data-icon-url="`;
|
|
22
|
+
out += __escape(url);
|
|
23
|
+
out += `"
|
|
24
|
+
style="`;
|
|
25
|
+
if (style) {
|
|
26
|
+
out += __escape(style);
|
|
27
|
+
} else {
|
|
28
|
+
out += "left: ";
|
|
29
|
+
out += __escape(left);
|
|
30
|
+
out += "; top: ";
|
|
31
|
+
out += __escape(top);
|
|
32
|
+
out += ";";
|
|
33
|
+
}
|
|
34
|
+
out += `"
|
|
35
|
+
`;
|
|
36
|
+
if (onclick) {
|
|
37
|
+
out += `
|
|
38
|
+
onclick="`;
|
|
39
|
+
out += __escape(onclick);
|
|
40
|
+
out += `"
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
out += `>
|
|
44
|
+
<div class="desktop-icon-image">`;
|
|
45
|
+
out += __escape(icon);
|
|
46
|
+
out += `</div>
|
|
47
|
+
<div class="desktop-icon-label">`;
|
|
48
|
+
out += __escape(label);
|
|
49
|
+
out += `</div>
|
|
50
|
+
</button>`;
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
defineComponent(DesktopIcon, {
|
|
57
|
+
"tag": "stacks-desktop-icon",
|
|
58
|
+
"template": "<button\n class=\"desktop-icon\"\n data-icon-id=\"{{ id }}\"\n data-icon-type=\"{{ type }}\"\n data-icon-section=\"{{ section }}\"\n data-icon-url=\"{{ url }}\"\n style=\"@if(style){{ style }}@else left: {{ left }}; top: {{ top }};@endif\"\n @if (onclick)\n onclick=\"{{ onclick }}\"\n @endif\n >\n <div class=\"desktop-icon-image\">{{ icon }}</div>\n <div class=\"desktop-icon-label\">{{ label }}</div>\n </button>",
|
|
59
|
+
"styles": "",
|
|
60
|
+
"shadowMode": false,
|
|
61
|
+
"progressive": true,
|
|
62
|
+
"properties": {
|
|
63
|
+
"id": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"reflect": true
|
|
66
|
+
},
|
|
67
|
+
"icon": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"default": "📄",
|
|
70
|
+
"reflect": true
|
|
71
|
+
},
|
|
72
|
+
"label": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"reflect": true
|
|
75
|
+
},
|
|
76
|
+
"type": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"default": "window",
|
|
79
|
+
"reflect": true
|
|
80
|
+
},
|
|
81
|
+
"section": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"default": "",
|
|
84
|
+
"reflect": true
|
|
85
|
+
},
|
|
86
|
+
"url": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"default": "",
|
|
89
|
+
"reflect": true
|
|
90
|
+
},
|
|
91
|
+
"onclick": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"reflect": true
|
|
94
|
+
},
|
|
95
|
+
"left": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"default": "20px",
|
|
98
|
+
"reflect": true
|
|
99
|
+
},
|
|
100
|
+
"top": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"default": "20px",
|
|
103
|
+
"reflect": true
|
|
104
|
+
},
|
|
105
|
+
"style": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"default": "",
|
|
108
|
+
"reflect": true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"eventTypes": [],
|
|
112
|
+
"bindings": []
|
|
113
|
+
});
|
|
114
|
+
export default DesktopIcon;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface FeatureButtonProps {
|
|
2
|
+
label?: string
|
|
3
|
+
onclick?: string
|
|
4
|
+
active?: boolean
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface FeatureButtonEventMap {
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface FeatureButton extends Required<Pick<FeatureButtonProps, Exclude<keyof FeatureButtonProps, keyof HTMLElement>>> {}
|
|
12
|
+
|
|
13
|
+
export declare class FeatureButton extends HTMLElement {
|
|
14
|
+
|
|
15
|
+
readonly updateComplete: Promise<void>
|
|
16
|
+
requestUpdate(): Promise<void>
|
|
17
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
"stacks-feature-button": FeatureButton
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default FeatureButton
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** FeatureButton web component generated from FeatureButton.stx. */
|
|
4
|
+
export class FeatureButton extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { label, onclick, active = false } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += `<button
|
|
11
|
+
class="feature-btn `;
|
|
12
|
+
if (active) {
|
|
13
|
+
out += "active";
|
|
14
|
+
}
|
|
15
|
+
out += `"
|
|
16
|
+
`;
|
|
17
|
+
if (onclick) {
|
|
18
|
+
out += 'onclick="';
|
|
19
|
+
out += __escape(onclick);
|
|
20
|
+
out += '"';
|
|
21
|
+
}
|
|
22
|
+
out += `>
|
|
23
|
+
`;
|
|
24
|
+
out += __escape(label);
|
|
25
|
+
out += `
|
|
26
|
+
</button>`;
|
|
27
|
+
return out;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
defineComponent(FeatureButton, {
|
|
33
|
+
"tag": "stacks-feature-button",
|
|
34
|
+
"template": "<button\n class=\"feature-btn @if (active)active@endif\"\n @if (onclick)onclick=\"{{ onclick }}\"@endif\n >\n {{ label }}\n </button>",
|
|
35
|
+
"styles": "",
|
|
36
|
+
"shadowMode": false,
|
|
37
|
+
"progressive": true,
|
|
38
|
+
"properties": {
|
|
39
|
+
"label": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"reflect": true
|
|
42
|
+
},
|
|
43
|
+
"onclick": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"reflect": true
|
|
46
|
+
},
|
|
47
|
+
"active": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"default": false,
|
|
50
|
+
"reflect": true
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"eventTypes": [],
|
|
54
|
+
"bindings": []
|
|
55
|
+
});
|
|
56
|
+
export default FeatureButton;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface InputGroupProps {
|
|
2
|
+
id?: string
|
|
3
|
+
label?: string
|
|
4
|
+
type?: string
|
|
5
|
+
placeholder?: string
|
|
6
|
+
class?: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface InputGroupEventMap {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface InputGroup extends Required<Pick<InputGroupProps, Exclude<keyof InputGroupProps, keyof HTMLElement>>> {}
|
|
14
|
+
|
|
15
|
+
export declare class InputGroup extends HTMLElement {
|
|
16
|
+
|
|
17
|
+
readonly updateComplete: Promise<void>
|
|
18
|
+
requestUpdate(): Promise<void>
|
|
19
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare global {
|
|
23
|
+
interface HTMLElementTagNameMap {
|
|
24
|
+
"stacks-input-group": InputGroup
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default InputGroup
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** InputGroup web component generated from InputGroup.stx. */
|
|
4
|
+
export class InputGroup extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { id, label, type = "text", placeholder = "", class: classList = "login-input" } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += `<div class="login-input-group">
|
|
11
|
+
<label>`;
|
|
12
|
+
out += __escape(label);
|
|
13
|
+
out += `:</label>
|
|
14
|
+
<input
|
|
15
|
+
type="`;
|
|
16
|
+
out += __escape(type);
|
|
17
|
+
out += `"
|
|
18
|
+
id="`;
|
|
19
|
+
out += __escape(id);
|
|
20
|
+
out += `"
|
|
21
|
+
class="`;
|
|
22
|
+
out += __escape(classList);
|
|
23
|
+
out += `"
|
|
24
|
+
placeholder="`;
|
|
25
|
+
out += __escape(placeholder);
|
|
26
|
+
out += `"
|
|
27
|
+
/>
|
|
28
|
+
</div>`;
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
defineComponent(InputGroup, {
|
|
35
|
+
"tag": "stacks-input-group",
|
|
36
|
+
"template": "<div class=\"login-input-group\">\n <label>{{ label }}:</label>\n <input\n type=\"{{ type }}\"\n id=\"{{ id }}\"\n class=\"{{ classList }}\"\n placeholder=\"{{ placeholder }}\"\n />\n </div>",
|
|
37
|
+
"styles": "",
|
|
38
|
+
"shadowMode": false,
|
|
39
|
+
"progressive": true,
|
|
40
|
+
"properties": {
|
|
41
|
+
"id": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"reflect": true
|
|
44
|
+
},
|
|
45
|
+
"label": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"reflect": true
|
|
48
|
+
},
|
|
49
|
+
"type": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"default": "text",
|
|
52
|
+
"reflect": true
|
|
53
|
+
},
|
|
54
|
+
"placeholder": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"default": "",
|
|
57
|
+
"reflect": true
|
|
58
|
+
},
|
|
59
|
+
"class": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"default": "login-input",
|
|
62
|
+
"reflect": true
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"eventTypes": [],
|
|
66
|
+
"bindings": []
|
|
67
|
+
});
|
|
68
|
+
export default InputGroup;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface LoginFormProps {
|
|
2
|
+
id?: string
|
|
3
|
+
icon?: string
|
|
4
|
+
title?: string
|
|
5
|
+
prompt?: string
|
|
6
|
+
submitHandler?: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface LoginFormEventMap {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface LoginForm extends Required<Pick<LoginFormProps, Exclude<keyof LoginFormProps, keyof HTMLElement>>> {}
|
|
14
|
+
|
|
15
|
+
export declare class LoginForm extends HTMLElement {
|
|
16
|
+
|
|
17
|
+
readonly updateComplete: Promise<void>
|
|
18
|
+
requestUpdate(): Promise<void>
|
|
19
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare global {
|
|
23
|
+
interface HTMLElementTagNameMap {
|
|
24
|
+
"stacks-login-form": LoginForm
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default LoginForm
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** LoginForm web component generated from LoginForm.stx. */
|
|
4
|
+
export class LoginForm extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { id, icon = "\uD83D\uDC64", title = "Login", prompt = "Enter your credentials", submitHandler = "handleLogin()" } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += '<div id="';
|
|
11
|
+
out += __escape(id);
|
|
12
|
+
out += `" class="hidden login-form">
|
|
13
|
+
<div class="login-form-background">
|
|
14
|
+
<div class="login-form-container">
|
|
15
|
+
<button class="login-close-btn" onclick="closeLoginScreens()">×</button>
|
|
16
|
+
<div class="login-form-header">
|
|
17
|
+
<button class="login-back-button" onclick="hideLoginForms()">← Back</button>
|
|
18
|
+
<div class="login-form-title">
|
|
19
|
+
<div class="login-form-icon">`;
|
|
20
|
+
out += __escape(icon);
|
|
21
|
+
out += `</div>
|
|
22
|
+
<h2>`;
|
|
23
|
+
out += __escape(title);
|
|
24
|
+
out += `</h2>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div class="login-form-content">
|
|
29
|
+
<div class="login-form-prompt">`;
|
|
30
|
+
out += __escape(prompt);
|
|
31
|
+
out += `</div>
|
|
32
|
+
<slot />
|
|
33
|
+
<div class="login-actions">
|
|
34
|
+
<button class="login-submit-btn" onclick="`;
|
|
35
|
+
out += __escape(submitHandler);
|
|
36
|
+
out += `">
|
|
37
|
+
<span class="login-btn-icon">→</span>
|
|
38
|
+
<span>Log In</span>
|
|
39
|
+
</button>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>`;
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
defineComponent(LoginForm, {
|
|
51
|
+
"tag": "stacks-login-form",
|
|
52
|
+
"template": "<div id=\"{{ id }}\" class=\"hidden login-form\">\n <div class=\"login-form-background\">\n <div class=\"login-form-container\">\n <button class=\"login-close-btn\" onclick=\"closeLoginScreens()\">×</button>\n <div class=\"login-form-header\">\n <button class=\"login-back-button\" onclick=\"hideLoginForms()\">← Back</button>\n <div class=\"login-form-title\">\n <div class=\"login-form-icon\">{{ icon }}</div>\n <h2>{{ title }}</h2>\n </div>\n </div>\n\n <div class=\"login-form-content\">\n <div class=\"login-form-prompt\">{{ prompt }}</div>\n <slot />\n <div class=\"login-actions\">\n <button class=\"login-submit-btn\" onclick=\"{{ submitHandler }}\">\n <span class=\"login-btn-icon\">→</span>\n <span>Log In</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>",
|
|
53
|
+
"styles": "",
|
|
54
|
+
"shadowMode": false,
|
|
55
|
+
"progressive": true,
|
|
56
|
+
"properties": {
|
|
57
|
+
"id": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"reflect": true
|
|
60
|
+
},
|
|
61
|
+
"icon": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"default": "👤",
|
|
64
|
+
"reflect": true
|
|
65
|
+
},
|
|
66
|
+
"title": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"default": "Login",
|
|
69
|
+
"reflect": true
|
|
70
|
+
},
|
|
71
|
+
"prompt": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"default": "Enter your credentials",
|
|
74
|
+
"reflect": true
|
|
75
|
+
},
|
|
76
|
+
"submitHandler": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"default": "handleLogin()",
|
|
79
|
+
"reflect": true
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"eventTypes": [],
|
|
83
|
+
"bindings": []
|
|
84
|
+
});
|
|
85
|
+
export default LoginForm;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface LoginScreenProps {
|
|
2
|
+
id?: string
|
|
3
|
+
logoText?: string
|
|
4
|
+
subtitle?: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface LoginScreenEventMap {
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface LoginScreen extends Required<Pick<LoginScreenProps, Exclude<keyof LoginScreenProps, keyof HTMLElement>>> {}
|
|
12
|
+
|
|
13
|
+
export declare class LoginScreen extends HTMLElement {
|
|
14
|
+
|
|
15
|
+
readonly updateComplete: Promise<void>
|
|
16
|
+
requestUpdate(): Promise<void>
|
|
17
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
"stacks-login-screen": LoginScreen
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default LoginScreen
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** LoginScreen web component generated from LoginScreen.stx. */
|
|
4
|
+
export class LoginScreen extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { id = "login-screen", logoText = "STACKS", subtitle = "To begin, click your user name" } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += '<div id="';
|
|
11
|
+
out += __escape(id);
|
|
12
|
+
out += `" class="hidden login-screen">
|
|
13
|
+
<div class="login-background">
|
|
14
|
+
<div class="login-container">
|
|
15
|
+
<button class="login-close-btn" onclick="closeLoginScreens()">×</button>
|
|
16
|
+
<div class="login-header">
|
|
17
|
+
<div class="login-logo">`;
|
|
18
|
+
out += __escape(logoText);
|
|
19
|
+
out += `</div>
|
|
20
|
+
<div class="login-subtitle">`;
|
|
21
|
+
out += __escape(subtitle);
|
|
22
|
+
out += `</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div class="login-users">
|
|
26
|
+
<slot name="login-options">
|
|
27
|
+
<button class="login-user-button" id="email-login-btn">
|
|
28
|
+
<div class="login-user-icon">\uD83D\uDC64</div>
|
|
29
|
+
<div class="login-user-name">Email Login</div>
|
|
30
|
+
</button>
|
|
31
|
+
<button class="login-user-button" id="license-login-btn">
|
|
32
|
+
<div class="login-user-icon">\uD83D\uDD11</div>
|
|
33
|
+
<div class="login-user-name">License Key</div>
|
|
34
|
+
</button>
|
|
35
|
+
</slot>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="login-footer">
|
|
39
|
+
<slot name="footer">
|
|
40
|
+
<div class="login-footer-text">After you log in, you can access the STACKS Desktop</div>
|
|
41
|
+
</slot>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>`;
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
defineComponent(LoginScreen, {
|
|
52
|
+
"tag": "stacks-login-screen",
|
|
53
|
+
"template": "<div id=\"{{ id }}\" class=\"hidden login-screen\">\n <div class=\"login-background\">\n <div class=\"login-container\">\n <button class=\"login-close-btn\" onclick=\"closeLoginScreens()\">×</button>\n <div class=\"login-header\">\n <div class=\"login-logo\">{{ logoText }}</div>\n <div class=\"login-subtitle\">{{ subtitle }}</div>\n </div>\n\n <div class=\"login-users\">\n <slot name=\"login-options\">\n <button class=\"login-user-button\" id=\"email-login-btn\">\n <div class=\"login-user-icon\">👤</div>\n <div class=\"login-user-name\">Email Login</div>\n </button>\n <button class=\"login-user-button\" id=\"license-login-btn\">\n <div class=\"login-user-icon\">🔑</div>\n <div class=\"login-user-name\">License Key</div>\n </button>\n </slot>\n </div>\n\n <div class=\"login-footer\">\n <slot name=\"footer\">\n <div class=\"login-footer-text\">After you log in, you can access the STACKS Desktop</div>\n </slot>\n </div>\n </div>\n </div>\n </div>",
|
|
54
|
+
"styles": "",
|
|
55
|
+
"shadowMode": false,
|
|
56
|
+
"progressive": true,
|
|
57
|
+
"properties": {
|
|
58
|
+
"id": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"default": "login-screen",
|
|
61
|
+
"reflect": true
|
|
62
|
+
},
|
|
63
|
+
"logoText": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"default": "STACKS",
|
|
66
|
+
"reflect": true
|
|
67
|
+
},
|
|
68
|
+
"subtitle": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"default": "To begin, click your user name",
|
|
71
|
+
"reflect": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"eventTypes": [],
|
|
75
|
+
"bindings": []
|
|
76
|
+
});
|
|
77
|
+
export default LoginScreen;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface NotificationPopupProps {
|
|
2
|
+
id?: string
|
|
3
|
+
title?: string
|
|
4
|
+
showSignup?: boolean
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface NotificationPopupEventMap {
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface NotificationPopup extends Required<Pick<NotificationPopupProps, Exclude<keyof NotificationPopupProps, keyof HTMLElement>>> {}
|
|
12
|
+
|
|
13
|
+
export declare class NotificationPopup extends HTMLElement {
|
|
14
|
+
|
|
15
|
+
readonly updateComplete: Promise<void>
|
|
16
|
+
requestUpdate(): Promise<void>
|
|
17
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
"stacks-notification-popup": NotificationPopup
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default NotificationPopup
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { StxElement, defineComponent } from './runtime.js';
|
|
2
|
+
|
|
3
|
+
/** NotificationPopup web component generated from NotificationPopup.stx. */
|
|
4
|
+
export class NotificationPopup extends StxElement {
|
|
5
|
+
|
|
6
|
+
render(__helpers) {
|
|
7
|
+
const { escape: __escape, raw: __raw, values: __values, entries: __entries } = __helpers;
|
|
8
|
+
const { id = "notification-popup", title = "Notifications", showSignup = true } = this._props();
|
|
9
|
+
let out = "";
|
|
10
|
+
out += '<div class="notification-popup" id="';
|
|
11
|
+
out += __escape(id);
|
|
12
|
+
out += `" style="display: none;">
|
|
13
|
+
<div class="notification-header">
|
|
14
|
+
<span class="notification-title">`;
|
|
15
|
+
out += __escape(title);
|
|
16
|
+
out += `</span>
|
|
17
|
+
<button class="notification-close" onclick="closeNotificationPopup()">×</button>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="notification-content">
|
|
20
|
+
<slot />
|
|
21
|
+
</div>
|
|
22
|
+
`;
|
|
23
|
+
if (showSignup) {
|
|
24
|
+
out += `
|
|
25
|
+
<div class="notification-signup" id="notification-signup">
|
|
26
|
+
<div class="notification-separator"></div>
|
|
27
|
+
<div class="notification-signup-text">Get updates on new features & releases:</div>
|
|
28
|
+
<div class="notification-signup-form">
|
|
29
|
+
<input
|
|
30
|
+
type="email"
|
|
31
|
+
id="notification-email"
|
|
32
|
+
class="notification-email-input"
|
|
33
|
+
placeholder="your@email.com"
|
|
34
|
+
autocomplete="email"
|
|
35
|
+
/>
|
|
36
|
+
<button class="notification-signup-btn" onclick="handleEmailSignup()">
|
|
37
|
+
Sign Up
|
|
38
|
+
</button>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="notification-success" id="notification-success" style="display: none;">
|
|
42
|
+
<div class="notification-separator"></div>
|
|
43
|
+
<div class="notification-success-content">
|
|
44
|
+
<div class="notification-success-icon">✓</div>
|
|
45
|
+
<div class="notification-success-text">
|
|
46
|
+
<div class="notification-success-title">Thanks for subscribing!</div>
|
|
47
|
+
<div class="notification-success-subtitle">We'll keep you updated.</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
out += "</div>";
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
defineComponent(NotificationPopup, {
|
|
60
|
+
"tag": "stacks-notification-popup",
|
|
61
|
+
"template": "<div class=\"notification-popup\" id=\"{{ id }}\" style=\"display: none;\">\n <div class=\"notification-header\">\n <span class=\"notification-title\">{{ title }}</span>\n <button class=\"notification-close\" onclick=\"closeNotificationPopup()\">×</button>\n </div>\n <div class=\"notification-content\">\n <slot />\n </div>\n @if (showSignup)\n <div class=\"notification-signup\" id=\"notification-signup\">\n <div class=\"notification-separator\"></div>\n <div class=\"notification-signup-text\">Get updates on new features & releases:</div>\n <div class=\"notification-signup-form\">\n <input\n type=\"email\"\n id=\"notification-email\"\n class=\"notification-email-input\"\n placeholder=\"your@email.com\"\n autocomplete=\"email\"\n />\n <button class=\"notification-signup-btn\" onclick=\"handleEmailSignup()\">\n Sign Up\n </button>\n </div>\n </div>\n <div class=\"notification-success\" id=\"notification-success\" style=\"display: none;\">\n <div class=\"notification-separator\"></div>\n <div class=\"notification-success-content\">\n <div class=\"notification-success-icon\">✓</div>\n <div class=\"notification-success-text\">\n <div class=\"notification-success-title\">Thanks for subscribing!</div>\n <div class=\"notification-success-subtitle\">We'll keep you updated.</div>\n </div>\n </div>\n </div>\n @endif\n </div>",
|
|
62
|
+
"styles": "",
|
|
63
|
+
"shadowMode": false,
|
|
64
|
+
"progressive": true,
|
|
65
|
+
"properties": {
|
|
66
|
+
"id": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"default": "notification-popup",
|
|
69
|
+
"reflect": true
|
|
70
|
+
},
|
|
71
|
+
"title": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"default": "Notifications",
|
|
74
|
+
"reflect": true
|
|
75
|
+
},
|
|
76
|
+
"showSignup": {
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"default": true,
|
|
79
|
+
"reflect": true
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"eventTypes": [],
|
|
83
|
+
"bindings": []
|
|
84
|
+
});
|
|
85
|
+
export default NotificationPopup;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface PackageItemProps {
|
|
2
|
+
emoji?: string
|
|
3
|
+
title?: string
|
|
4
|
+
description?: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface PackageItemEventMap {
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface PackageItem extends Required<Pick<PackageItemProps, Exclude<keyof PackageItemProps, keyof HTMLElement>>> {}
|
|
12
|
+
|
|
13
|
+
export declare class PackageItem extends HTMLElement {
|
|
14
|
+
|
|
15
|
+
readonly updateComplete: Promise<void>
|
|
16
|
+
requestUpdate(): Promise<void>
|
|
17
|
+
emit<T = unknown>(name: string, detail?: T, options?: CustomEventInit<T>): boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
"stacks-package-item": PackageItem
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default PackageItem
|