@transcodes/ui-components 0.3.5 → 0.3.6
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/CHANGELOG.md +27 -0
- package/dist/controllers/index.d.ts +0 -2
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +10 -12
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -64
- package/dist/primitives/index.d.ts +1 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +18 -16
- package/dist/primitives/tc-box.js +4 -4
- package/dist/primitives/tc-button.d.ts.map +1 -1
- package/dist/primitives/tc-button.js +21 -20
- package/dist/primitives/tc-callout.d.ts.map +1 -1
- package/dist/primitives/tc-callout.js +5 -4
- package/dist/primitives/tc-card.d.ts.map +1 -1
- package/dist/primitives/tc-card.js +11 -10
- package/dist/primitives/tc-chip.d.ts.map +1 -1
- package/dist/primitives/tc-chip.js +18 -16
- package/dist/primitives/tc-container.d.ts.map +1 -1
- package/dist/primitives/tc-container.js +12 -10
- package/dist/primitives/tc-divider.d.ts.map +1 -1
- package/dist/primitives/tc-divider.js +4 -3
- package/dist/primitives/tc-error-message.d.ts.map +1 -1
- package/dist/primitives/tc-error-message.js +13 -9
- package/dist/primitives/tc-form-header.d.ts.map +1 -1
- package/dist/primitives/tc-form-header.js +9 -7
- package/dist/primitives/tc-icon.js +3 -3
- package/dist/primitives/tc-input-with-chip.d.ts.map +1 -1
- package/dist/primitives/tc-input-with-chip.js +12 -8
- package/dist/primitives/tc-input.d.ts.map +1 -1
- package/dist/primitives/tc-input.js +11 -9
- package/dist/primitives/tc-item-button.d.ts.map +1 -1
- package/dist/primitives/tc-item-button.js +18 -17
- package/dist/primitives/tc-item.d.ts.map +1 -1
- package/dist/primitives/tc-item.js +13 -12
- package/dist/primitives/tc-otp-input.d.ts.map +1 -1
- package/dist/primitives/tc-otp-input.js +6 -4
- package/dist/primitives/tc-page-decoration.d.ts.map +1 -0
- package/dist/{widgets → primitives}/tc-page-decoration.js +8 -8
- package/dist/primitives/tc-section.d.ts.map +1 -1
- package/dist/primitives/tc-section.js +15 -13
- package/dist/primitives/tc-spinner.js +17 -17
- package/dist/primitives/tc-symbol.d.ts.map +1 -1
- package/dist/primitives/tc-symbol.js +15 -13
- package/dist/primitives/tc-text.js +3 -3
- package/dist/primitives/tc-toast.js +3 -3
- package/dist/screens/tc-error-screen.d.ts +6 -1
- package/dist/screens/tc-error-screen.d.ts.map +1 -1
- package/dist/screens/tc-error-screen.js +84 -29
- package/dist/screens/tc-loading-screen.d.ts +1 -1
- package/dist/screens/tc-loading-screen.d.ts.map +1 -1
- package/dist/screens/tc-loading-screen.js +16 -11
- package/dist/screens/tc-success-screen.d.ts.map +1 -1
- package/dist/screens/tc-success-screen.js +19 -13
- package/package.json +13 -13
- package/dist/controllers/form-validation.controller.d.ts +0 -48
- package/dist/controllers/form-validation.controller.d.ts.map +0 -1
- package/dist/controllers/form-validation.controller.js +0 -49
- package/dist/widgets/index.d.ts +0 -9
- package/dist/widgets/index.d.ts.map +0 -1
- package/dist/widgets/index.js +0 -18
- package/dist/widgets/tc-authenticator-card.d.ts +0 -35
- package/dist/widgets/tc-authenticator-card.d.ts.map +0 -1
- package/dist/widgets/tc-authenticator-card.js +0 -213
- package/dist/widgets/tc-floating-button.d.ts +0 -25
- package/dist/widgets/tc-floating-button.d.ts.map +0 -1
- package/dist/widgets/tc-floating-button.js +0 -132
- package/dist/widgets/tc-iframe-modal.d.ts +0 -43
- package/dist/widgets/tc-iframe-modal.d.ts.map +0 -1
- package/dist/widgets/tc-iframe-modal.js +0 -263
- package/dist/widgets/tc-installation-banner.d.ts +0 -42
- package/dist/widgets/tc-installation-banner.d.ts.map +0 -1
- package/dist/widgets/tc-installation-banner.js +0 -234
- package/dist/widgets/tc-ios-installation-guide.d.ts +0 -34
- package/dist/widgets/tc-ios-installation-guide.d.ts.map +0 -1
- package/dist/widgets/tc-ios-installation-guide.js +0 -240
- package/dist/widgets/tc-notification-modal.d.ts +0 -42
- package/dist/widgets/tc-notification-modal.d.ts.map +0 -1
- package/dist/widgets/tc-notification-modal.js +0 -230
- package/dist/widgets/tc-offline-modal.d.ts +0 -39
- package/dist/widgets/tc-offline-modal.d.ts.map +0 -1
- package/dist/widgets/tc-offline-modal.js +0 -202
- package/dist/widgets/tc-page-decoration.d.ts.map +0 -1
- /package/dist/{widgets → primitives}/tc-page-decoration.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transcodes/ui-components",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Lit 3.x component library with Reactive Controllers",
|
|
6
6
|
"keywords": [
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"module": "./dist/index.js",
|
|
33
33
|
"types": "./dist/index.d.ts",
|
|
34
34
|
"sideEffects": [
|
|
35
|
-
"dist/**/*.js"
|
|
35
|
+
"dist/**/*.js",
|
|
36
|
+
"src/**/*.ts",
|
|
37
|
+
"src/**/*.js"
|
|
36
38
|
],
|
|
37
39
|
"exports": {
|
|
38
40
|
".": {
|
|
@@ -43,10 +45,6 @@
|
|
|
43
45
|
"types": "./dist/primitives/index.d.ts",
|
|
44
46
|
"import": "./dist/primitives/index.js"
|
|
45
47
|
},
|
|
46
|
-
"./widgets": {
|
|
47
|
-
"types": "./dist/widgets/index.d.ts",
|
|
48
|
-
"import": "./dist/widgets/index.js"
|
|
49
|
-
},
|
|
50
48
|
"./screens": {
|
|
51
49
|
"types": "./dist/screens/index.d.ts",
|
|
52
50
|
"import": "./dist/screens/index.js"
|
|
@@ -64,7 +62,9 @@
|
|
|
64
62
|
],
|
|
65
63
|
"scripts": {
|
|
66
64
|
"build": "tsc && vite build",
|
|
65
|
+
"prebuild-storybook": "cd ../design-tokens && bun run build && cd ../ui-components && cp -r ../design-tokens/build .storybook/design-tokens",
|
|
67
66
|
"build-storybook": "storybook build",
|
|
67
|
+
"predev": "cd ../design-tokens && bun run build && cd ../ui-components && cp -r ../design-tokens/build .storybook/design-tokens",
|
|
68
68
|
"clean": "rm -rf dist",
|
|
69
69
|
"dev": "storybook dev -p 6006",
|
|
70
70
|
"preview": "vite preview",
|
|
@@ -74,16 +74,16 @@
|
|
|
74
74
|
"lit": "^3.0.0"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@transcodes/design-tokens": "^0.3.
|
|
77
|
+
"@transcodes/design-tokens": "^0.3.6"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@storybook/addon-a11y": "^10.1.
|
|
81
|
-
"@storybook/addon-docs": "^10.1.
|
|
82
|
-
"@storybook/addon-links": "^10.1.
|
|
83
|
-
"@storybook/web-components": "^10.1.
|
|
84
|
-
"@storybook/web-components-vite": "^10.1.
|
|
80
|
+
"@storybook/addon-a11y": "^10.1.9",
|
|
81
|
+
"@storybook/addon-docs": "^10.1.9",
|
|
82
|
+
"@storybook/addon-links": "^10.1.9",
|
|
83
|
+
"@storybook/web-components": "^10.1.9",
|
|
84
|
+
"@storybook/web-components-vite": "^10.1.9",
|
|
85
85
|
"lit": "^3.3.1",
|
|
86
|
-
"storybook": "^10.1.
|
|
86
|
+
"storybook": "^10.1.9",
|
|
87
87
|
"typescript": "^5.9.3",
|
|
88
88
|
"vite": "^7.2.7",
|
|
89
89
|
"vite-plugin-dts": "^4.5.4"
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { BaseController } from './base.controller.js';
|
|
2
|
-
export type ValidationType = 'required' | 'email' | 'minLength' | 'maxLength' | 'pattern' | 'custom';
|
|
3
|
-
export interface ValidationRule {
|
|
4
|
-
type: ValidationType;
|
|
5
|
-
value?: string | number | RegExp;
|
|
6
|
-
message: string;
|
|
7
|
-
validator?: (value: string) => boolean;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Controller for form field validation.
|
|
11
|
-
* Manages validation rules and error states.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* class MyForm extends LitElement {
|
|
16
|
-
* private validation = new FormValidationController(this);
|
|
17
|
-
*
|
|
18
|
-
* private emailRules: ValidationRule[] = [
|
|
19
|
-
* { type: 'required', message: 'Email is required' },
|
|
20
|
-
* { type: 'email', message: 'Please enter a valid email' },
|
|
21
|
-
* ];
|
|
22
|
-
*
|
|
23
|
-
* handleBlur(e: Event) {
|
|
24
|
-
* const input = e.target as HTMLInputElement;
|
|
25
|
-
* this.validation.validate('email', input.value, this.emailRules);
|
|
26
|
-
* }
|
|
27
|
-
*
|
|
28
|
-
* render() {
|
|
29
|
-
* const error = this.validation.getError('email');
|
|
30
|
-
* return html`
|
|
31
|
-
* <input @blur=${this.handleBlur} />
|
|
32
|
-
* ${error ? html`<span class="error">${error}</span>` : ''}
|
|
33
|
-
* `;
|
|
34
|
-
* }
|
|
35
|
-
* }
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export declare class FormValidationController extends BaseController {
|
|
39
|
-
private errors;
|
|
40
|
-
get isValid(): boolean;
|
|
41
|
-
getError(field: string): string | undefined;
|
|
42
|
-
getAllErrors(): Map<string, string>;
|
|
43
|
-
validate(field: string, value: string, rules: ValidationRule[]): boolean;
|
|
44
|
-
clearError(field: string): void;
|
|
45
|
-
reset(): void;
|
|
46
|
-
private runRule;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=form-validation.controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-validation.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/form-validation.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,WAAW,GACX,WAAW,GACX,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,OAAO,CAAC,MAAM,CAA6B;IAE3C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO;IAcxE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,OAAO;CAwBhB"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { BaseController as o } from "./base.controller.js";
|
|
2
|
-
class i extends o {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments), this.errors = /* @__PURE__ */ new Map();
|
|
5
|
-
}
|
|
6
|
-
get isValid() {
|
|
7
|
-
return this.errors.size === 0;
|
|
8
|
-
}
|
|
9
|
-
getError(r) {
|
|
10
|
-
return this.errors.get(r);
|
|
11
|
-
}
|
|
12
|
-
getAllErrors() {
|
|
13
|
-
return new Map(this.errors);
|
|
14
|
-
}
|
|
15
|
-
validate(r, e, s) {
|
|
16
|
-
this.clearError(r);
|
|
17
|
-
for (const t of s)
|
|
18
|
-
if (!this.runRule(e, t))
|
|
19
|
-
return this.errors.set(r, t.message), this.host.requestUpdate(), !1;
|
|
20
|
-
return !0;
|
|
21
|
-
}
|
|
22
|
-
clearError(r) {
|
|
23
|
-
this.errors.has(r) && (this.errors.delete(r), this.host.requestUpdate());
|
|
24
|
-
}
|
|
25
|
-
reset() {
|
|
26
|
-
this.errors.clear(), this.host.requestUpdate();
|
|
27
|
-
}
|
|
28
|
-
runRule(r, e) {
|
|
29
|
-
switch (e.type) {
|
|
30
|
-
case "required":
|
|
31
|
-
return r.trim().length > 0;
|
|
32
|
-
case "email":
|
|
33
|
-
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r);
|
|
34
|
-
case "minLength":
|
|
35
|
-
return r.length >= e.value;
|
|
36
|
-
case "maxLength":
|
|
37
|
-
return r.length <= e.value;
|
|
38
|
-
case "pattern":
|
|
39
|
-
return e.value.test(r);
|
|
40
|
-
case "custom":
|
|
41
|
-
return e.validator ? e.validator(r) : !0;
|
|
42
|
-
default:
|
|
43
|
-
return !0;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
export {
|
|
48
|
-
i as FormValidationController
|
|
49
|
-
};
|
package/dist/widgets/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { TcAuthenticatorCard } from './tc-authenticator-card.js';
|
|
2
|
-
export { TcFloatingButton } from './tc-floating-button.js';
|
|
3
|
-
export { TcIframeModal } from './tc-iframe-modal.js';
|
|
4
|
-
export { TcInstallationBanner } from './tc-installation-banner.js';
|
|
5
|
-
export { TcIosInstallationGuide } from './tc-ios-installation-guide.js';
|
|
6
|
-
export { TcNotificationModal } from './tc-notification-modal.js';
|
|
7
|
-
export { TcOfflineModal } from './tc-offline-modal.js';
|
|
8
|
-
export { TcPageDecoration } from './tc-page-decoration.js';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/widgets/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { TcAuthenticatorCard as t } from "./tc-authenticator-card.js";
|
|
2
|
-
import { TcFloatingButton as e } from "./tc-floating-button.js";
|
|
3
|
-
import { TcIframeModal as n } from "./tc-iframe-modal.js";
|
|
4
|
-
import { TcInstallationBanner as i } from "./tc-installation-banner.js";
|
|
5
|
-
import { TcIosInstallationGuide as m } from "./tc-ios-installation-guide.js";
|
|
6
|
-
import { TcNotificationModal as x } from "./tc-notification-modal.js";
|
|
7
|
-
import { TcOfflineModal as d } from "./tc-offline-modal.js";
|
|
8
|
-
import { TcPageDecoration as s } from "./tc-page-decoration.js";
|
|
9
|
-
export {
|
|
10
|
-
t as TcAuthenticatorCard,
|
|
11
|
-
e as TcFloatingButton,
|
|
12
|
-
n as TcIframeModal,
|
|
13
|
-
i as TcInstallationBanner,
|
|
14
|
-
m as TcIosInstallationGuide,
|
|
15
|
-
x as TcNotificationModal,
|
|
16
|
-
d as TcOfflineModal,
|
|
17
|
-
s as TcPageDecoration
|
|
18
|
-
};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* A card component for displaying authenticator information.
|
|
4
|
-
* Commonly used for passkeys, TOTP, USB security keys, etc.
|
|
5
|
-
*
|
|
6
|
-
* @fires tc-delete - Fired when the delete button is clicked
|
|
7
|
-
* @fires tc-toggle - Fired when the enable/disable toggle is clicked
|
|
8
|
-
* @fires tc-click - Fired when the card is clicked
|
|
9
|
-
* @csspart card - The card container
|
|
10
|
-
* @csspart icon - The authenticator type icon container
|
|
11
|
-
* @csspart content - The main content area
|
|
12
|
-
* @csspart name - The authenticator name
|
|
13
|
-
* @csspart meta - The metadata area (last used, etc.)
|
|
14
|
-
* @csspart actions - The actions area
|
|
15
|
-
* @csspart delete - The delete button
|
|
16
|
-
*/
|
|
17
|
-
export declare class TcAuthenticatorCard extends LitElement {
|
|
18
|
-
name: string;
|
|
19
|
-
type: 'passkey' | 'totp' | 'usb' | 'phone' | 'email';
|
|
20
|
-
lastUsed: string;
|
|
21
|
-
enabled: boolean;
|
|
22
|
-
deletable: boolean;
|
|
23
|
-
clickable: boolean;
|
|
24
|
-
static styles: import('lit').CSSResult;
|
|
25
|
-
private getIconName;
|
|
26
|
-
private handleCardClick;
|
|
27
|
-
private handleDelete;
|
|
28
|
-
render(): import('lit').TemplateResult<1>;
|
|
29
|
-
}
|
|
30
|
-
declare global {
|
|
31
|
-
interface HTMLElementTagNameMap {
|
|
32
|
-
'tc-authenticator-card': TcAuthenticatorCard;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=tc-authenticator-card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tc-authenticator-card.d.ts","sourceRoot":"","sources":["../../src/widgets/tc-authenticator-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAGlC;;;;;;;;;;;;;;GAcG;AACH,qBACa,mBAAoB,SAAQ,UAAU;IACrB,IAAI,SAAM;IACV,IAAI,EAC5B,SAAS,GACT,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,CAAa;IAC4B,QAAQ,SAAM;IACrC,OAAO,UAAQ;IACf,SAAS,UAAQ;IACjB,SAAS,UAAS;IAE/C,OAAgB,MAAM,0BAmGpB;IAEF,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;IAWX,MAAM;CAwDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,mBAAmB,CAAC;KAC9C;CACF"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { LitElement as p, html as l, css as h } from "lit";
|
|
2
|
-
import { property as s, customElement as m } from "lit/decorators.js";
|
|
3
|
-
import { classMap as u } from "lit/directives/class-map.js";
|
|
4
|
-
var b = Object.defineProperty, v = Object.getOwnPropertyDescriptor, a = (r, i, c, n) => {
|
|
5
|
-
for (var t = n > 1 ? void 0 : n ? v(i, c) : i, o = r.length - 1, d; o >= 0; o--)
|
|
6
|
-
(d = r[o]) && (t = (n ? d(i, c, t) : d(t)) || t);
|
|
7
|
-
return n && t && b(i, c, t), t;
|
|
8
|
-
};
|
|
9
|
-
let e = class extends p {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments), this.name = "", this.type = "passkey", this.lastUsed = "", this.enabled = !0, this.deletable = !0, this.clickable = !1;
|
|
12
|
-
}
|
|
13
|
-
getIconName() {
|
|
14
|
-
switch (this.type) {
|
|
15
|
-
case "passkey":
|
|
16
|
-
return "key";
|
|
17
|
-
case "totp":
|
|
18
|
-
return "totp";
|
|
19
|
-
case "usb":
|
|
20
|
-
return "device";
|
|
21
|
-
case "phone":
|
|
22
|
-
return "phone";
|
|
23
|
-
case "email":
|
|
24
|
-
return "email";
|
|
25
|
-
default:
|
|
26
|
-
return "key";
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
handleCardClick() {
|
|
30
|
-
this.clickable && this.enabled && this.dispatchEvent(
|
|
31
|
-
new CustomEvent("tc-click", {
|
|
32
|
-
bubbles: !0,
|
|
33
|
-
composed: !0
|
|
34
|
-
})
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
handleDelete(r) {
|
|
38
|
-
r.stopPropagation(), this.dispatchEvent(
|
|
39
|
-
new CustomEvent("tc-delete", {
|
|
40
|
-
bubbles: !0,
|
|
41
|
-
composed: !0,
|
|
42
|
-
detail: { name: this.name, type: this.type }
|
|
43
|
-
})
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
render() {
|
|
47
|
-
const r = {
|
|
48
|
-
card: !0,
|
|
49
|
-
clickable: this.clickable && this.enabled,
|
|
50
|
-
disabled: !this.enabled
|
|
51
|
-
};
|
|
52
|
-
return l`
|
|
53
|
-
<div
|
|
54
|
-
part="card"
|
|
55
|
-
class=${u(r)}
|
|
56
|
-
@click=${this.handleCardClick}
|
|
57
|
-
role=${this.clickable ? "button" : "article"}
|
|
58
|
-
tabindex=${this.clickable && this.enabled ? "0" : "-1"}
|
|
59
|
-
>
|
|
60
|
-
<div part="icon" class="icon-container">
|
|
61
|
-
<tc-icon name=${this.getIconName()} size="1.25rem" color="var(--ink-dark)"></tc-icon>
|
|
62
|
-
</div>
|
|
63
|
-
<div part="content" class="content">
|
|
64
|
-
<div part="name" class="name">${this.name}</div>
|
|
65
|
-
${this.lastUsed ? l`
|
|
66
|
-
<div part="meta" class="meta">
|
|
67
|
-
<span class="last-used">${this.lastUsed}</span>
|
|
68
|
-
</div>
|
|
69
|
-
` : ""}
|
|
70
|
-
</div>
|
|
71
|
-
<div part="actions" class="actions">
|
|
72
|
-
${this.enabled ? "" : l`
|
|
73
|
-
<tc-chip class="status-chip" variant="default" size="sm">Disabled</tc-chip>
|
|
74
|
-
`}
|
|
75
|
-
${this.deletable ? l`
|
|
76
|
-
<button
|
|
77
|
-
part="delete"
|
|
78
|
-
class="delete-btn"
|
|
79
|
-
@click=${this.handleDelete}
|
|
80
|
-
aria-label="Delete ${this.name}"
|
|
81
|
-
>
|
|
82
|
-
<tc-icon name="x" size="1rem"></tc-icon>
|
|
83
|
-
</button>
|
|
84
|
-
` : ""}
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
`;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
e.styles = h`
|
|
91
|
-
:host {
|
|
92
|
-
display: block;
|
|
93
|
-
width: 100%;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.card {
|
|
97
|
-
display: flex;
|
|
98
|
-
align-items: center;
|
|
99
|
-
gap: var(--space-md);
|
|
100
|
-
padding: var(--space-md);
|
|
101
|
-
background: var(--paper-cream);
|
|
102
|
-
border-radius: var(--radius-md);
|
|
103
|
-
transition: var(--transition-fast);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.card.clickable {
|
|
107
|
-
cursor: pointer;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.card.clickable:hover {
|
|
111
|
-
background: var(--paper-warm);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.card.disabled {
|
|
115
|
-
opacity: var(--opacity-disabled);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.icon-container {
|
|
119
|
-
display: flex;
|
|
120
|
-
align-items: center;
|
|
121
|
-
justify-content: center;
|
|
122
|
-
width: 2.5rem;
|
|
123
|
-
height: 2.5rem;
|
|
124
|
-
background: var(--paper-white);
|
|
125
|
-
border-radius: var(--radius-md);
|
|
126
|
-
flex-shrink: 0;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.content {
|
|
130
|
-
flex: 1;
|
|
131
|
-
min-width: 0;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.name {
|
|
135
|
-
font-weight: 500;
|
|
136
|
-
color: var(--ink-black);
|
|
137
|
-
white-space: nowrap;
|
|
138
|
-
overflow: hidden;
|
|
139
|
-
text-overflow: ellipsis;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.meta {
|
|
143
|
-
display: flex;
|
|
144
|
-
align-items: center;
|
|
145
|
-
gap: var(--space-sm);
|
|
146
|
-
margin-top: var(--space-xs);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.last-used {
|
|
150
|
-
font-size: var(--font-size-sm);
|
|
151
|
-
color: var(--ink-light);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
.actions {
|
|
155
|
-
display: flex;
|
|
156
|
-
align-items: center;
|
|
157
|
-
gap: var(--space-sm);
|
|
158
|
-
flex-shrink: 0;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.delete-btn {
|
|
162
|
-
display: flex;
|
|
163
|
-
align-items: center;
|
|
164
|
-
justify-content: center;
|
|
165
|
-
width: 2rem;
|
|
166
|
-
height: 2rem;
|
|
167
|
-
padding: 0;
|
|
168
|
-
background: transparent;
|
|
169
|
-
border: none;
|
|
170
|
-
border-radius: var(--radius-sm);
|
|
171
|
-
color: var(--ink-light);
|
|
172
|
-
cursor: pointer;
|
|
173
|
-
transition: var(--transition-fast);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.delete-btn:hover {
|
|
177
|
-
background: var(--alpha-ink04);
|
|
178
|
-
color: var(--error-base);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.delete-btn:focus-visible {
|
|
182
|
-
outline: 2px solid var(--accent-primary);
|
|
183
|
-
outline-offset: 2px;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.status-chip {
|
|
187
|
-
flex-shrink: 0;
|
|
188
|
-
}
|
|
189
|
-
`;
|
|
190
|
-
a([
|
|
191
|
-
s({ type: String })
|
|
192
|
-
], e.prototype, "name", 2);
|
|
193
|
-
a([
|
|
194
|
-
s({ type: String })
|
|
195
|
-
], e.prototype, "type", 2);
|
|
196
|
-
a([
|
|
197
|
-
s({ type: String, attribute: "last-used" })
|
|
198
|
-
], e.prototype, "lastUsed", 2);
|
|
199
|
-
a([
|
|
200
|
-
s({ type: Boolean })
|
|
201
|
-
], e.prototype, "enabled", 2);
|
|
202
|
-
a([
|
|
203
|
-
s({ type: Boolean })
|
|
204
|
-
], e.prototype, "deletable", 2);
|
|
205
|
-
a([
|
|
206
|
-
s({ type: Boolean })
|
|
207
|
-
], e.prototype, "clickable", 2);
|
|
208
|
-
e = a([
|
|
209
|
-
m("tc-authenticator-card")
|
|
210
|
-
], e);
|
|
211
|
-
export {
|
|
212
|
-
e as TcAuthenticatorCard
|
|
213
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* A floating action button positioned fixed on the screen.
|
|
4
|
-
*
|
|
5
|
-
* @slot - Button content (icon recommended)
|
|
6
|
-
* @fires tc-click - Fired when the button is clicked
|
|
7
|
-
* @csspart button - The button element
|
|
8
|
-
*/
|
|
9
|
-
export declare class TcFloatingButton extends LitElement {
|
|
10
|
-
position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
11
|
-
size: string;
|
|
12
|
-
disabled: boolean;
|
|
13
|
-
sx: Record<string, string | number>;
|
|
14
|
-
static styles: import('lit').CSSResult[];
|
|
15
|
-
connectedCallback(): void;
|
|
16
|
-
updated(changedProperties: Map<string, unknown>): void;
|
|
17
|
-
private handleClick;
|
|
18
|
-
render(): import('lit').TemplateResult<1>;
|
|
19
|
-
}
|
|
20
|
-
declare global {
|
|
21
|
-
interface HTMLElementTagNameMap {
|
|
22
|
-
'tc-floating-button': TcFloatingButton;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=tc-floating-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tc-floating-button.d.ts","sourceRoot":"","sources":["../../src/widgets/tc-floating-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAK5C;;;;;;GAMG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAClB,QAAQ,EAChC,cAAc,GACd,aAAa,GACb,WAAW,GACX,UAAU,CAAkB;IACJ,IAAI,SAAY;IACf,QAAQ,UAAS;IAClB,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAM;IAErE,OAAgB,MAAM,4BAmEpB;IAEO,iBAAiB;IAKjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMxD,OAAO,CAAC,WAAW;IAWV,MAAM;CAmBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { LitElement as c, html as b, css as d } from "lit";
|
|
2
|
-
import { property as a, customElement as h } from "lit/decorators.js";
|
|
3
|
-
import { styleMap as u } from "lit/directives/style-map.js";
|
|
4
|
-
import { sharedStyles as m } from "../styles/shared.js";
|
|
5
|
-
var v = Object.defineProperty, f = Object.getOwnPropertyDescriptor, s = (e, i, n, r) => {
|
|
6
|
-
for (var t = r > 1 ? void 0 : r ? f(i, n) : i, p = e.length - 1, l; p >= 0; p--)
|
|
7
|
-
(l = e[p]) && (t = (r ? l(i, n, t) : l(t)) || t);
|
|
8
|
-
return r && t && v(i, n, t), t;
|
|
9
|
-
};
|
|
10
|
-
let o = class extends c {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(...arguments), this.position = "bottom-right", this.size = "3.5rem", this.disabled = !1, this.sx = {};
|
|
13
|
-
}
|
|
14
|
-
connectedCallback() {
|
|
15
|
-
super.connectedCallback(), this.setAttribute("position", this.position);
|
|
16
|
-
}
|
|
17
|
-
updated(e) {
|
|
18
|
-
e.has("position") && this.setAttribute("position", this.position);
|
|
19
|
-
}
|
|
20
|
-
handleClick() {
|
|
21
|
-
this.disabled || this.dispatchEvent(
|
|
22
|
-
new CustomEvent("tc-click", {
|
|
23
|
-
bubbles: !0,
|
|
24
|
-
composed: !0
|
|
25
|
-
})
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
render() {
|
|
29
|
-
const e = {
|
|
30
|
-
"--fab-size": this.size,
|
|
31
|
-
...this.sx
|
|
32
|
-
};
|
|
33
|
-
return b`
|
|
34
|
-
<button
|
|
35
|
-
part="button"
|
|
36
|
-
class="button"
|
|
37
|
-
?disabled=${this.disabled}
|
|
38
|
-
style=${u(e)}
|
|
39
|
-
@click=${this.handleClick}
|
|
40
|
-
aria-label="Floating action"
|
|
41
|
-
>
|
|
42
|
-
<slot></slot>
|
|
43
|
-
</button>
|
|
44
|
-
`;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
o.styles = [
|
|
48
|
-
m,
|
|
49
|
-
d`
|
|
50
|
-
:host {
|
|
51
|
-
display: block;
|
|
52
|
-
position: fixed;
|
|
53
|
-
z-index: 100;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
:host([position='bottom-right']) {
|
|
57
|
-
bottom: var(--space-lg);
|
|
58
|
-
right: var(--space-lg);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
:host([position='bottom-left']) {
|
|
62
|
-
bottom: var(--space-lg);
|
|
63
|
-
left: var(--space-lg);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
:host([position='top-right']) {
|
|
67
|
-
top: var(--space-lg);
|
|
68
|
-
right: var(--space-lg);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
:host([position='top-left']) {
|
|
72
|
-
top: var(--space-lg);
|
|
73
|
-
left: var(--space-lg);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.button {
|
|
77
|
-
display: flex;
|
|
78
|
-
align-items: center;
|
|
79
|
-
justify-content: center;
|
|
80
|
-
width: var(--fab-size);
|
|
81
|
-
height: var(--fab-size);
|
|
82
|
-
padding: 0;
|
|
83
|
-
border: none;
|
|
84
|
-
border-radius: var(--radius-full);
|
|
85
|
-
background: var(--accent-primary);
|
|
86
|
-
color: white;
|
|
87
|
-
cursor: pointer;
|
|
88
|
-
box-shadow: 0 4px 12px var(--alpha-primary40);
|
|
89
|
-
transition: var(--transition-smooth);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.button:hover:not(:disabled) {
|
|
93
|
-
background: var(--accent-primary-hover);
|
|
94
|
-
transform: scale(1.05);
|
|
95
|
-
box-shadow: 0 6px 16px var(--alpha-primary50);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.button:active:not(:disabled) {
|
|
99
|
-
background: var(--accent-primary-pressed);
|
|
100
|
-
transform: scale(0.98);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.button:focus-visible {
|
|
104
|
-
outline: 2px solid var(--accent-primary);
|
|
105
|
-
outline-offset: 3px;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.button:disabled {
|
|
109
|
-
opacity: var(--opacity-disabled);
|
|
110
|
-
cursor: not-allowed;
|
|
111
|
-
box-shadow: none;
|
|
112
|
-
}
|
|
113
|
-
`
|
|
114
|
-
];
|
|
115
|
-
s([
|
|
116
|
-
a({ type: String })
|
|
117
|
-
], o.prototype, "position", 2);
|
|
118
|
-
s([
|
|
119
|
-
a({ type: String })
|
|
120
|
-
], o.prototype, "size", 2);
|
|
121
|
-
s([
|
|
122
|
-
a({ type: Boolean })
|
|
123
|
-
], o.prototype, "disabled", 2);
|
|
124
|
-
s([
|
|
125
|
-
a({ type: Object })
|
|
126
|
-
], o.prototype, "sx", 2);
|
|
127
|
-
o = s([
|
|
128
|
-
h("tc-floating-button")
|
|
129
|
-
], o);
|
|
130
|
-
export {
|
|
131
|
-
o as TcFloatingButton
|
|
132
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* A modal that displays an iframe with loading states and message communication.
|
|
4
|
-
*
|
|
5
|
-
* @fires tc-close - Fired when the modal is closed
|
|
6
|
-
* @fires tc-message - Fired when a message is received from the iframe
|
|
7
|
-
* @fires tc-load - Fired when the iframe content is loaded
|
|
8
|
-
* @csspart overlay - The backdrop overlay
|
|
9
|
-
* @csspart modal - The modal container
|
|
10
|
-
* @csspart header - The modal header
|
|
11
|
-
* @csspart close - The close button
|
|
12
|
-
* @csspart content - The content area
|
|
13
|
-
* @csspart iframe - The iframe element
|
|
14
|
-
* @csspart loader - The loading overlay
|
|
15
|
-
*/
|
|
16
|
-
export declare class TcIframeModal extends LitElement {
|
|
17
|
-
src: string;
|
|
18
|
-
title: string;
|
|
19
|
-
closeOnEscape: boolean;
|
|
20
|
-
closeOnOverlay: boolean;
|
|
21
|
-
useHistory: boolean;
|
|
22
|
-
private isLoading;
|
|
23
|
-
private animation;
|
|
24
|
-
private history;
|
|
25
|
-
private messageBus;
|
|
26
|
-
static styles: import('lit').CSSResult[];
|
|
27
|
-
connectedCallback(): void;
|
|
28
|
-
disconnectedCallback(): void;
|
|
29
|
-
private handleKeyDown;
|
|
30
|
-
private updateDataState;
|
|
31
|
-
open(): Promise<void>;
|
|
32
|
-
close(): Promise<void>;
|
|
33
|
-
private handleOverlayClick;
|
|
34
|
-
private handleIframeLoad;
|
|
35
|
-
sendMessage(type: string, payload?: unknown): void;
|
|
36
|
-
render(): import('lit').TemplateResult<1>;
|
|
37
|
-
}
|
|
38
|
-
declare global {
|
|
39
|
-
interface HTMLElementTagNameMap {
|
|
40
|
-
'tc-iframe-modal': TcIframeModal;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=tc-iframe-modal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tc-iframe-modal.d.ts","sourceRoot":"","sources":["../../src/widgets/tc-iframe-modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAM5C,OAAO,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,qBACa,aAAc,SAAQ,UAAU;IACf,GAAG,SAAM;IACT,KAAK,SAAM;IACoB,aAAa,UACjE;IACqD,cAAc,UACnE;IACgD,UAAU,UAAQ;IAEhE,OAAO,CAAC,SAAS,CAAQ;IAElC,OAAO,CAAC,SAAS,CAGd;IAEH,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAAkC;IAEpD,OAAgB,MAAM,4BAiIpB;IAEO,iBAAiB;IA6BjB,oBAAoB;IAK7B,OAAO,CAAC,aAAa,CAInB;IAEF,OAAO,CAAC,eAAe;IAIjB,IAAI;IASJ,KAAK;IAeX,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB;IAWxB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAOlC,MAAM;CA+ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
|