@transcodes/ui-components 0.3.4 → 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.
Files changed (110) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/controllers/animation.controller.d.ts +48 -0
  3. package/dist/controllers/animation.controller.d.ts.map +1 -0
  4. package/dist/controllers/base.controller.d.ts +14 -0
  5. package/dist/controllers/base.controller.d.ts.map +1 -0
  6. package/dist/controllers/history.controller.d.ts +34 -0
  7. package/dist/controllers/history.controller.d.ts.map +1 -0
  8. package/dist/controllers/index.d.ts +0 -2
  9. package/dist/controllers/index.d.ts.map +1 -0
  10. package/dist/controllers/index.js +10 -12
  11. package/dist/controllers/loading.controller.d.ts +36 -0
  12. package/dist/controllers/loading.controller.d.ts.map +1 -0
  13. package/dist/controllers/match-media.controller.d.ts +32 -0
  14. package/dist/controllers/match-media.controller.d.ts.map +1 -0
  15. package/dist/controllers/message-bus.controller.d.ts +45 -0
  16. package/dist/controllers/message-bus.controller.d.ts.map +1 -0
  17. package/dist/controllers/storage.controller.d.ts +40 -0
  18. package/dist/controllers/storage.controller.d.ts.map +1 -0
  19. package/dist/index.d.ts +4 -295
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +48 -64
  22. package/dist/primitives/index.d.ts +1 -0
  23. package/dist/primitives/index.d.ts.map +1 -0
  24. package/dist/primitives/index.js +18 -16
  25. package/dist/primitives/tc-box.d.ts +19 -0
  26. package/dist/primitives/tc-box.d.ts.map +1 -0
  27. package/dist/primitives/tc-box.js +4 -4
  28. package/dist/primitives/tc-button.d.ts +25 -0
  29. package/dist/primitives/tc-button.d.ts.map +1 -0
  30. package/dist/primitives/tc-button.js +21 -20
  31. package/dist/primitives/tc-callout.d.ts +22 -0
  32. package/dist/primitives/tc-callout.d.ts.map +1 -0
  33. package/dist/primitives/tc-callout.js +5 -4
  34. package/dist/primitives/tc-card.d.ts +20 -0
  35. package/dist/primitives/tc-card.d.ts.map +1 -0
  36. package/dist/primitives/tc-card.js +11 -10
  37. package/dist/primitives/tc-chip.d.ts +19 -0
  38. package/dist/primitives/tc-chip.d.ts.map +1 -0
  39. package/dist/primitives/tc-chip.js +18 -16
  40. package/dist/primitives/tc-container.d.ts +20 -0
  41. package/dist/primitives/tc-container.d.ts.map +1 -0
  42. package/dist/primitives/tc-container.js +12 -10
  43. package/dist/primitives/tc-divider.d.ts +22 -0
  44. package/dist/primitives/tc-divider.d.ts.map +1 -0
  45. package/dist/primitives/tc-divider.js +4 -3
  46. package/dist/primitives/tc-error-message.d.ts +23 -0
  47. package/dist/primitives/tc-error-message.d.ts.map +1 -0
  48. package/dist/primitives/tc-error-message.js +13 -9
  49. package/dist/primitives/tc-form-header.d.ts +25 -0
  50. package/dist/primitives/tc-form-header.d.ts.map +1 -0
  51. package/dist/primitives/tc-form-header.js +9 -7
  52. package/dist/primitives/tc-icon.d.ts +20 -0
  53. package/dist/primitives/tc-icon.d.ts.map +1 -0
  54. package/dist/primitives/tc-icon.js +3 -3
  55. package/dist/primitives/tc-input-with-chip.d.ts +38 -0
  56. package/dist/primitives/tc-input-with-chip.d.ts.map +1 -0
  57. package/dist/primitives/tc-input-with-chip.js +12 -8
  58. package/dist/primitives/tc-input.d.ts +45 -0
  59. package/dist/primitives/tc-input.d.ts.map +1 -0
  60. package/dist/primitives/tc-input.js +11 -9
  61. package/dist/primitives/tc-item-button.d.ts +30 -0
  62. package/dist/primitives/tc-item-button.d.ts.map +1 -0
  63. package/dist/primitives/tc-item-button.js +18 -17
  64. package/dist/primitives/tc-item.d.ts +25 -0
  65. package/dist/primitives/tc-item.d.ts.map +1 -0
  66. package/dist/primitives/tc-item.js +13 -12
  67. package/dist/primitives/tc-otp-input.d.ts +38 -0
  68. package/dist/primitives/tc-otp-input.d.ts.map +1 -0
  69. package/dist/primitives/tc-otp-input.js +6 -4
  70. package/dist/primitives/tc-page-decoration.d.ts +19 -0
  71. package/dist/primitives/tc-page-decoration.d.ts.map +1 -0
  72. package/dist/{widgets → primitives}/tc-page-decoration.js +8 -8
  73. package/dist/primitives/tc-section.d.ts +19 -0
  74. package/dist/primitives/tc-section.d.ts.map +1 -0
  75. package/dist/primitives/tc-section.js +15 -13
  76. package/dist/primitives/tc-spinner.d.ts +20 -0
  77. package/dist/primitives/tc-spinner.d.ts.map +1 -0
  78. package/dist/primitives/tc-spinner.js +17 -17
  79. package/dist/primitives/tc-symbol.d.ts +20 -0
  80. package/dist/primitives/tc-symbol.d.ts.map +1 -0
  81. package/dist/primitives/tc-symbol.js +15 -13
  82. package/dist/primitives/tc-text.d.ts +31 -0
  83. package/dist/primitives/tc-text.d.ts.map +1 -0
  84. package/dist/primitives/tc-text.js +3 -3
  85. package/dist/primitives/tc-toast.d.ts +34 -0
  86. package/dist/primitives/tc-toast.d.ts.map +1 -0
  87. package/dist/primitives/tc-toast.js +3 -3
  88. package/dist/screens/index.d.ts.map +1 -0
  89. package/dist/screens/tc-error-screen.d.ts +32 -0
  90. package/dist/screens/tc-error-screen.d.ts.map +1 -0
  91. package/dist/screens/tc-error-screen.js +84 -29
  92. package/dist/screens/tc-loading-screen.d.ts +23 -0
  93. package/dist/screens/tc-loading-screen.d.ts.map +1 -0
  94. package/dist/screens/tc-loading-screen.js +16 -11
  95. package/dist/screens/tc-success-screen.d.ts +31 -0
  96. package/dist/screens/tc-success-screen.d.ts.map +1 -0
  97. package/dist/screens/tc-success-screen.js +19 -13
  98. package/dist/styles/shared.d.ts +20 -0
  99. package/dist/styles/shared.d.ts.map +1 -0
  100. package/package.json +13 -13
  101. package/dist/controllers/form-validation.controller.js +0 -49
  102. package/dist/widgets/index.d.ts +0 -9
  103. package/dist/widgets/index.js +0 -18
  104. package/dist/widgets/tc-authenticator-card.js +0 -213
  105. package/dist/widgets/tc-floating-button.js +0 -132
  106. package/dist/widgets/tc-iframe-modal.js +0 -263
  107. package/dist/widgets/tc-installation-banner.js +0 -234
  108. package/dist/widgets/tc-ios-installation-guide.js +0 -240
  109. package/dist/widgets/tc-notification-modal.js +0 -230
  110. package/dist/widgets/tc-offline-modal.js +0 -202
@@ -1,12 +1,12 @@
1
- import { LitElement as p, html as d, css as m } from "lit";
2
- import { property as c, customElement as f } from "lit/decorators.js";
3
- import { styleMap as h } from "lit/directives/style-map.js";
4
- var w = Object.defineProperty, y = Object.getOwnPropertyDescriptor, l = (r, i, o, s) => {
5
- for (var t = s > 1 ? void 0 : s ? y(i, o) : i, n = r.length - 1, a; n >= 0; n--)
1
+ import { css as p, LitElement as d, html as m } from "lit";
2
+ import { property as c, customElement as h } from "lit/decorators.js";
3
+ import { styleMap as f } from "lit/directives/style-map.js";
4
+ var w = Object.defineProperty, x = Object.getOwnPropertyDescriptor, l = (r, i, o, s) => {
5
+ for (var t = s > 1 ? void 0 : s ? x(i, o) : i, n = r.length - 1, a; n >= 0; n--)
6
6
  (a = r[n]) && (t = (s ? a(i, o, t) : a(t)) || t);
7
7
  return s && t && w(i, o, t), t;
8
8
  };
9
- let e = class extends p {
9
+ let e = class extends d {
10
10
  constructor() {
11
11
  super(...arguments), this.wide = !1, this.sx = {}, this.defaultStyles = {
12
12
  display: "flex",
@@ -20,21 +20,22 @@ let e = class extends p {
20
20
  ...this.defaultStyles,
21
21
  ...this.sx
22
22
  };
23
- return d`
23
+ return m`
24
24
  <div
25
25
  part="container"
26
26
  class="container ${this.wide ? "container--wide" : ""}"
27
- style=${h(r)}
27
+ style=${f(r)}
28
28
  >
29
29
  <slot></slot>
30
30
  </div>
31
31
  `;
32
32
  }
33
33
  };
34
- e.styles = m`
34
+ e.styles = p`
35
35
  :host {
36
36
  display: block;
37
37
  width: 100%;
38
+ min-width: 0;
38
39
  }
39
40
 
40
41
  .container {
@@ -42,6 +43,7 @@ e.styles = m`
42
43
  width: 100%;
43
44
  max-width: var(--container-max-width);
44
45
  margin: 0 auto;
46
+ box-sizing: border-box;
45
47
  }
46
48
 
47
49
  .container--wide {
@@ -55,7 +57,7 @@ l([
55
57
  c({ type: Object })
56
58
  ], e.prototype, "sx", 2);
57
59
  e = l([
58
- f("tc-container")
60
+ h("tc-container")
59
61
  ], e);
60
62
  export {
61
63
  e as TcContainer
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A horizontal divider line with optional text.
4
+ *
5
+ * @csspart divider - The divider element (simple mode)
6
+ * @csspart container - The container element (text mode)
7
+ * @csspart line - The line elements (text mode)
8
+ * @csspart text - The text element (text mode)
9
+ */
10
+ export declare class TcDivider extends LitElement {
11
+ color: string;
12
+ spacing: string;
13
+ text: string;
14
+ static styles: import('lit').CSSResult;
15
+ render(): import('lit').TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'tc-divider': TcDivider;
20
+ }
21
+ }
22
+ //# sourceMappingURL=tc-divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-divider.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-divider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C;;;;;;;GAOG;AACH,qBACa,SAAU,SAAQ,UAAU;IACX,KAAK,SAAsB;IAC3B,OAAO,SAAqB;IAC5B,IAAI,SAAM;IAEtC,OAAgB,MAAM,0BAqCpB;IAEO,MAAM;CAiBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -1,11 +1,11 @@
1
- import { LitElement as c, html as p, css as v } from "lit";
1
+ import { css as c, LitElement as v, html as p } from "lit";
2
2
  import { property as l, customElement as h } from "lit/decorators.js";
3
3
  var g = Object.defineProperty, m = Object.getOwnPropertyDescriptor, n = (e, t, o, s) => {
4
4
  for (var r = s > 1 ? void 0 : s ? m(t, o) : t, d = e.length - 1, a; d >= 0; d--)
5
5
  (a = e[d]) && (r = (s ? a(t, o, r) : a(r)) || r);
6
6
  return s && r && g(t, o, r), r;
7
7
  };
8
- let i = class extends c {
8
+ let i = class extends v {
9
9
  constructor() {
10
10
  super(...arguments), this.color = "var(--ink-faint)", this.spacing = "var(--space-md)", this.text = "";
11
11
  }
@@ -22,10 +22,11 @@ let i = class extends c {
22
22
  `;
23
23
  }
24
24
  };
25
- i.styles = v`
25
+ i.styles = c`
26
26
  :host {
27
27
  display: block;
28
28
  width: 100%;
29
+ min-width: 0;
29
30
  }
30
31
 
31
32
  /* Simple divider (no text) */
@@ -0,0 +1,23 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A simplified error/warning/info message component.
4
+ * Wraps tc-callout with appropriate icon and text styling.
5
+ *
6
+ * @csspart callout - The underlying callout container
7
+ * @csspart icon - The icon element
8
+ * @csspart message - The message text
9
+ */
10
+ export declare class TcErrorMessage extends LitElement {
11
+ variant: 'warning' | 'info' | 'error';
12
+ message: string;
13
+ static styles: import('lit').CSSResult;
14
+ private getIconName;
15
+ private getIconColor;
16
+ render(): import('lit').TemplateResult<1> | null;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'tc-error-message': TcErrorMessage;
21
+ }
22
+ }
23
+ //# sourceMappingURL=tc-error-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-error-message.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-error-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AAEtB;;;;;;;GAOG;AACH,qBACa,cAAe,SAAQ,UAAU;IAChB,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAW;IAChD,OAAO,SAAM;IAEzC,OAAgB,MAAM,0BAcpB;IAEF,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAWX,MAAM;CAoBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -1,11 +1,14 @@
1
- import { LitElement as m, html as p, css as g } from "lit";
1
+ import { css as m, LitElement as p, html as g } from "lit";
2
2
  import { property as l, customElement as u } from "lit/decorators.js";
3
- var h = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (c, r, a, s) => {
4
- for (var t = s > 1 ? void 0 : s ? v(r, a) : r, n = c.length - 1, i; n >= 0; n--)
5
- (i = c[n]) && (t = (s ? i(r, a, t) : i(t)) || t);
6
- return s && t && h(r, a, t), t;
3
+ import "./tc-callout.js";
4
+ import "./tc-icon.js";
5
+ import "./tc-text.js";
6
+ var h = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (c, r, s, a) => {
7
+ for (var t = a > 1 ? void 0 : a ? v(r, s) : r, i = c.length - 1, n; i >= 0; i--)
8
+ (n = c[i]) && (t = (a ? n(r, s, t) : n(t)) || t);
9
+ return a && t && h(r, s, t), t;
7
10
  };
8
- let e = class extends m {
11
+ let e = class extends p {
9
12
  constructor() {
10
13
  super(...arguments), this.variant = "error", this.message = "";
11
14
  }
@@ -30,13 +33,13 @@ let e = class extends m {
30
33
  }
31
34
  }
32
35
  render() {
33
- return this.message ? p`
36
+ return this.message ? g`
34
37
  <tc-callout part="callout" variant=${this.variant}>
35
38
  <tc-icon
36
39
  slot="icon"
37
40
  part="icon"
38
41
  name=${this.getIconName()}
39
- size="1.25rem"
42
+ size="var(--size-icon-action)"
40
43
  color=${this.getIconColor()}
41
44
  ></tc-icon>
42
45
  <tc-text part="message" class="message-text" size="sm">
@@ -46,10 +49,11 @@ let e = class extends m {
46
49
  ` : null;
47
50
  }
48
51
  };
49
- e.styles = g`
52
+ e.styles = m`
50
53
  :host {
51
54
  display: block;
52
55
  width: 100%;
56
+ min-width: 0;
53
57
  }
54
58
 
55
59
  tc-callout::part(callout) {
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Form header component with animated title, subtitle, and optional notice.
4
+ * Uses design-tokens form classes (.form-title, .form-subtitle).
5
+ *
6
+ * @csspart header - The header container
7
+ * @csspart title - The title element
8
+ * @csspart subtitle - The subtitle element
9
+ * @csspart notice - The notice element
10
+ */
11
+ export declare class TcFormHeader extends LitElement {
12
+ title: string;
13
+ subtitle: string;
14
+ notice: string;
15
+ noAnimation: boolean;
16
+ sx: Record<string, string | number>;
17
+ static styles: import('lit').CSSResult[];
18
+ render(): import('lit').TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'tc-form-header': TcFormHeader;
23
+ }
24
+ }
25
+ //# sourceMappingURL=tc-form-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-form-header.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-form-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAK5C;;;;;;;;GAQG;AACH,qBACa,YAAa,SAAQ,UAAU;IACd,KAAK,SAAM;IACX,QAAQ,SAAM;IACd,MAAM,SAAM;IACgB,WAAW,UAAS;IAChD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAM;IAErE,OAAgB,MAAM,4BAsEpB;IAEO,MAAM;CA6BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -1,20 +1,20 @@
1
- import { LitElement as p, html as n, css as c } from "lit";
1
+ import { css as p, LitElement as c, html as n } from "lit";
2
2
  import { property as r, customElement as f } from "lit/decorators.js";
3
- import { styleMap as u } from "lit/directives/style-map.js";
4
- import { sharedStyles as h } from "../styles/shared.js";
3
+ import { styleMap as h } from "lit/directives/style-map.js";
4
+ import { sharedStyles as u } from "../styles/shared.js";
5
5
  var v = Object.defineProperty, b = Object.getOwnPropertyDescriptor, a = (i, o, m, s) => {
6
6
  for (var e = s > 1 ? void 0 : s ? b(o, m) : o, l = i.length - 1, d; l >= 0; l--)
7
7
  (d = i[l]) && (e = (s ? d(o, m, e) : d(e)) || e);
8
8
  return s && e && v(o, m, e), e;
9
9
  };
10
- let t = class extends p {
10
+ let t = class extends c {
11
11
  constructor() {
12
12
  super(...arguments), this.title = "", this.subtitle = "", this.notice = "", this.noAnimation = !1, this.sx = {};
13
13
  }
14
14
  render() {
15
15
  const i = !this.noAnimation;
16
16
  return n`
17
- <header part="header" class="header" style=${u(this.sx)}>
17
+ <header part="header" class="header" style=${h(this.sx)}>
18
18
  ${this.title ? n`<h1 part="title" class="form-title ${i ? "form-title--animated" : ""}">
19
19
  ${this.title}
20
20
  </h1>` : ""}
@@ -29,10 +29,12 @@ let t = class extends p {
29
29
  }
30
30
  };
31
31
  t.styles = [
32
- h,
33
- c`
32
+ u,
33
+ p`
34
34
  :host {
35
35
  display: block;
36
+ width: 100%;
37
+ min-width: 0;
36
38
  text-align: center;
37
39
  }
38
40
 
@@ -0,0 +1,20 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ export type IconName = 'arrow-left' | 'arrow-right' | 'check' | 'x' | 'close' | 'chevron-right' | 'chevron-left' | 'error' | 'alert-circle' | 'info' | 'warning' | 'loading' | 'loader' | 'biometric' | 'email' | 'passkey' | 'bell' | 'download' | 'wifi-off' | 'apple' | 'google' | 'windows' | 'samsung' | 'phone' | 'success' | 'lock' | 'person' | 'device' | 'totp' | 'email-otp' | 'qrcode' | 'key';
3
+ /**
4
+ * An icon component with built-in icon set.
5
+ *
6
+ * @csspart icon - The icon container
7
+ */
8
+ export declare class TcIcon extends LitElement {
9
+ name: IconName;
10
+ size: string;
11
+ color: string;
12
+ static styles: import('lit').CSSResult;
13
+ render(): TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'tc-icon': TcIcon;
18
+ }
19
+ }
20
+ //# sourceMappingURL=tc-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-icon.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGjE,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,aAAa,GACb,OAAO,GACP,GAAG,GACH,OAAO,GACP,eAAe,GACf,cAAc,GACd,OAAO,GACP,cAAc,GACd,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,GACR,WAAW,GACX,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GAEV,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GAET,OAAO,GACP,SAAS,GACT,MAAM,GACN,QAAQ,GACR,QAAQ,GAER,MAAM,GACN,WAAW,GACX,QAAQ,GACR,KAAK,CAAC;AAwCV;;;;GAIG;AACH,qBACa,MAAO,SAAQ,UAAU;IACR,IAAI,EAAE,QAAQ,CAAU;IACxB,IAAI,SAAY;IAChB,KAAK,SAAkB;IAEnD,OAAgB,MAAM,0BAkBpB;IAEO,MAAM;CAkBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -1,4 +1,4 @@
1
- import { LitElement as a, html as o, css as p } from "lit";
1
+ import { html as o, css as a, LitElement as p } from "lit";
2
2
  import { property as h, customElement as g } from "lit/decorators.js";
3
3
  var d = Object.defineProperty, x = Object.getOwnPropertyDescriptor, n = (r, t, s, i) => {
4
4
  for (var e = i > 1 ? void 0 : i ? x(t, s) : t, v = r.length - 1, c; v >= 0; v--)
@@ -42,7 +42,7 @@ const z = {
42
42
  qrcode: o`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM15 19h2v2h-2zM17 17h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2zM19 19h2v2h-2z"/><path d="M6 6h2v2H6zM6 16h2v2H6zM16 6h2v2h-2z"/></svg>`,
43
43
  key: o`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z"/></svg>`
44
44
  };
45
- let l = class extends a {
45
+ let l = class extends p {
46
46
  constructor() {
47
47
  super(...arguments), this.name = "info", this.size = "1.5rem", this.color = "currentColor";
48
48
  }
@@ -59,7 +59,7 @@ let l = class extends a {
59
59
  ` : (console.warn(`Icon "${this.name}" not found`), o``);
60
60
  }
61
61
  };
62
- l.styles = p`
62
+ l.styles = a`
63
63
  :host {
64
64
  display: inline-flex;
65
65
  align-items: center;
@@ -0,0 +1,38 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * An input field with an attached chip indicator.
4
+ * Useful for showing authentication method alongside email/username input.
5
+ *
6
+ * @fires tc-input - Fired when input value changes
7
+ * @fires tc-blur - Fired when input loses focus
8
+ * @fires tc-keydown - Fired on keydown
9
+ * @csspart wrapper - The input wrapper container
10
+ * @csspart input - The input element
11
+ * @csspart chip - The chip element
12
+ */
13
+ export declare class TcInputWithChip extends LitElement {
14
+ label: string;
15
+ placeholder: string;
16
+ value: string;
17
+ error: string;
18
+ disabled: boolean;
19
+ readonly: boolean;
20
+ chipLabel: string;
21
+ chipIcon: string;
22
+ chipVariant: 'default' | 'success' | 'error' | 'info';
23
+ private inputId;
24
+ private isFocused;
25
+ static styles: import('lit').CSSResult[];
26
+ render(): import('lit').TemplateResult<1>;
27
+ private handleInput;
28
+ private handleFocus;
29
+ private handleBlur;
30
+ private handleKeydown;
31
+ focus(): void;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ 'tc-input-with-chip': TcInputWithChip;
36
+ }
37
+ }
38
+ //# sourceMappingURL=tc-input-with-chip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-input-with-chip.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-input-with-chip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAI5C,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AAGtB;;;;;;;;;;GAUG;AACH,qBACa,eAAgB,SAAQ,UAAU;IACjB,KAAK,SAAM;IACX,WAAW,SAAM;IACjB,KAAK,SAAM;IACX,KAAK,SAAM;IACV,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACO,SAAS,SAAM;IAChB,QAAQ,SAAM;IACX,WAAW,EAC9D,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CAAa;IAEd,OAAO,CAAC,OAAO,CACiC;IAChD,OAAO,CAAC,SAAS,CAAS;IAEnC,OAAgB,MAAM,4BA6GpB;IAEO,MAAM;IAoEf,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,aAAa;IAUrB,KAAK;CAIN;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,eAAe,CAAC;KACvC;CACF"}
@@ -1,13 +1,15 @@
1
- import { LitElement as h, html as n, css as b } from "lit";
2
- import { property as a, state as u, customElement as v } from "lit/decorators.js";
1
+ import { css as h, LitElement as v, html as n } from "lit";
2
+ import { property as a, state as u, customElement as b } from "lit/decorators.js";
3
3
  import { classMap as d } from "lit/directives/class-map.js";
4
4
  import { sharedStyles as f } from "../styles/shared.js";
5
+ import "./tc-chip.js";
6
+ import "./tc-icon.js";
5
7
  var m = Object.defineProperty, y = Object.getOwnPropertyDescriptor, r = (t, i, s, p) => {
6
8
  for (var o = p > 1 ? void 0 : p ? y(i, s) : i, l = t.length - 1, c; l >= 0; l--)
7
9
  (c = t[l]) && (o = (p ? c(i, s, o) : c(o)) || o);
8
10
  return p && o && m(i, s, o), o;
9
11
  };
10
- let e = class extends h {
12
+ let e = class extends v {
11
13
  constructor() {
12
14
  super(...arguments), this.label = "", this.placeholder = "", this.value = "", this.error = "", this.disabled = !1, this.readonly = !1, this.chipLabel = "", this.chipIcon = "", this.chipVariant = "default", this.inputId = `tc-input-chip-${Math.random().toString(36).slice(2)}`, this.isFocused = !1;
13
15
  }
@@ -95,9 +97,11 @@ let e = class extends h {
95
97
  };
96
98
  e.styles = [
97
99
  f,
98
- b`
100
+ h`
99
101
  :host {
100
102
  display: block;
103
+ width: 100%;
104
+ min-width: 0;
101
105
  }
102
106
 
103
107
  .field-group {
@@ -125,7 +129,7 @@ e.styles = [
125
129
 
126
130
  .input-container:focus-within {
127
131
  border-color: var(--accent-primary);
128
- box-shadow: 0 0 0 3px var(--alpha-primary10);
132
+ box-shadow: 0 0 0 var(--shadow-focus-ring-width) var(--alpha-primary10);
129
133
  }
130
134
 
131
135
  .input-container.has-error {
@@ -134,7 +138,7 @@ e.styles = [
134
138
  }
135
139
 
136
140
  .input-container.has-error:focus-within {
137
- box-shadow: 0 0 0 3px var(--error-border);
141
+ box-shadow: 0 0 0 var(--shadow-focus-ring-width) var(--error-border);
138
142
  }
139
143
 
140
144
  .input {
@@ -184,7 +188,7 @@ e.styles = [
184
188
  @keyframes slideDown {
185
189
  from {
186
190
  opacity: 0;
187
- transform: translateY(-0.25rem);
191
+ transform: translateY(calc(-1 * var(--offset-slide-up-sm)));
188
192
  }
189
193
  to {
190
194
  opacity: 1;
@@ -235,7 +239,7 @@ r([
235
239
  u()
236
240
  ], e.prototype, "isFocused", 2);
237
241
  e = r([
238
- v("tc-input-with-chip")
242
+ b("tc-input-with-chip")
239
243
  ], e);
240
244
  export {
241
245
  e as TcInputWithChip
@@ -0,0 +1,45 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Form input component with label and error states.
4
+ * Uses design-tokens classes (.input, .label, .field-group).
5
+ *
6
+ * @fires tc-input - Fired when input value changes
7
+ * @fires tc-blur - Fired when input loses focus
8
+ * @fires tc-keydown - Fired when a key is pressed
9
+ * @fires tc-paste - Fired when content is pasted
10
+ * @csspart wrapper - The input wrapper element
11
+ * @csspart input - The input element
12
+ * @csspart label - The label element
13
+ * @csspart ink-line - The animated ink line
14
+ * @csspart error - The error message element
15
+ */
16
+ export declare class TcInput extends LitElement {
17
+ label: string;
18
+ type: string;
19
+ placeholder: string;
20
+ value: string;
21
+ error: string;
22
+ disabled: boolean;
23
+ required: boolean;
24
+ name: string;
25
+ autocomplete: string;
26
+ inputmode: string;
27
+ maxlength: number;
28
+ sx: Record<string, string | number>;
29
+ private inputId;
30
+ private isFocused;
31
+ static styles: import('lit').CSSResult[];
32
+ render(): import('lit').TemplateResult<1>;
33
+ private handleInput;
34
+ private handleFocus;
35
+ private handleBlur;
36
+ private handleKeydown;
37
+ private handlePaste;
38
+ focus(): void;
39
+ }
40
+ declare global {
41
+ interface HTMLElementTagNameMap {
42
+ 'tc-input': TcInput;
43
+ }
44
+ }
45
+ //# sourceMappingURL=tc-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-input.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAM5C;;;;;;;;;;;;;GAaG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACT,KAAK,SAAM;IACX,IAAI,SAAU;IACd,WAAW,SAAM;IACjB,KAAK,SAAM;IACX,KAAK,SAAM;IACV,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAClB,IAAI,SAAM;IACV,YAAY,SAAM;IAClB,SAAS,SAAM;IACf,SAAS,SAAK;IACd,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAM;IAE5D,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,SAAS,CAAS;IAEnC,OAAgB,MAAM,4BA6GpB;IAEO,MAAM;IA+Df,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAUnB,KAAK;CAIN;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -1,14 +1,14 @@
1
- import { LitElement as c, html as d, css as m } from "lit";
1
+ import { css as c, LitElement as m, html as d } from "lit";
2
2
  import { property as i, state as h, customElement as b } from "lit/decorators.js";
3
3
  import { classMap as u } from "lit/directives/class-map.js";
4
- import { styleMap as y } from "lit/directives/style-map.js";
5
- import { sharedStyles as v } from "../styles/shared.js";
4
+ import { styleMap as v } from "lit/directives/style-map.js";
5
+ import { sharedStyles as y } from "../styles/shared.js";
6
6
  var f = Object.defineProperty, g = Object.getOwnPropertyDescriptor, r = (e, o, n, a) => {
7
7
  for (var s = a > 1 ? void 0 : a ? g(o, n) : o, l = e.length - 1, p; l >= 0; l--)
8
8
  (p = e[l]) && (s = (a ? p(o, n, s) : p(s)) || s);
9
9
  return a && s && f(o, n, s), s;
10
10
  };
11
- let t = class extends c {
11
+ let t = class extends m {
12
12
  constructor() {
13
13
  super(...arguments), this.label = "", this.type = "text", this.placeholder = "", this.value = "", this.error = "", this.disabled = !1, this.required = !1, this.name = "", this.autocomplete = "", this.inputmode = "", this.maxlength = 0, this.sx = {}, this.inputId = `tc-input-${Math.random().toString(36).slice(2)}`, this.isFocused = !1;
14
14
  }
@@ -44,7 +44,7 @@ let t = class extends c {
44
44
  maxlength=${this.maxlength || ""}
45
45
  aria-invalid=${e ? "true" : "false"}
46
46
  aria-describedby=${e ? `${this.inputId}-error` : ""}
47
- style=${y(this.sx)}
47
+ style=${v(this.sx)}
48
48
  @input=${this.handleInput}
49
49
  @focus=${this.handleFocus}
50
50
  @blur=${this.handleBlur}
@@ -105,10 +105,12 @@ let t = class extends c {
105
105
  }
106
106
  };
107
107
  t.styles = [
108
- v,
109
- m`
108
+ y,
109
+ c`
110
110
  :host {
111
111
  display: block;
112
+ width: 100%;
113
+ min-width: 0;
112
114
  }
113
115
 
114
116
  /* Extend design-tokens .field-group */
@@ -171,7 +173,7 @@ t.styles = [
171
173
 
172
174
  .input.has-error:focus {
173
175
  border-color: var(--error-base);
174
- box-shadow: 0 0 0 0.1875rem var(--error-border);
176
+ box-shadow: 0 0 0 var(--shadow-focus-ring-width) var(--error-border);
175
177
  }
176
178
 
177
179
  .input-wrapper.has-error .ink-line {
@@ -192,7 +194,7 @@ t.styles = [
192
194
  @keyframes slideDown {
193
195
  from {
194
196
  opacity: 0;
195
- transform: translateY(-0.25rem);
197
+ transform: translateY(calc(-1 * var(--offset-slide-up-sm)));
196
198
  }
197
199
  to {
198
200
  opacity: 1;
@@ -0,0 +1,30 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A clickable item button with hover states and optional arrow indicator.
4
+ *
5
+ * @slot - Item content
6
+ * @slot prefix - Left side content (icon, symbol)
7
+ * @slot suffix - Right side content (replaces arrow if provided)
8
+ * @fires tc-click - Fired when the item is clicked
9
+ * @csspart button - The button element
10
+ * @csspart prefix - The prefix container
11
+ * @csspart content - The main content container
12
+ * @csspart suffix - The suffix container
13
+ * @csspart arrow - The arrow indicator
14
+ */
15
+ export declare class TcItemButton extends LitElement {
16
+ gap: string;
17
+ padding: string;
18
+ disabled: boolean;
19
+ showArrow: boolean;
20
+ sx: Record<string, string | number>;
21
+ static styles: import('lit').CSSResult;
22
+ private handleClick;
23
+ render(): import('lit').TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'tc-item-button': TcItemButton;
28
+ }
29
+ }
30
+ //# sourceMappingURL=tc-item-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc-item-button.d.ts","sourceRoot":"","sources":["../../src/primitives/tc-item-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAI5C;;;;;;;;;;;;GAYG;AACH,qBACa,YAAa,SAAQ,UAAU;IACd,GAAG,SAAqB;IACxB,OAAO,SAAqB;IAC3B,QAAQ,UAAS;IACQ,SAAS,UAAQ;IAC3C,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAM;IAErE,OAAgB,MAAM,0BAsFpB;IAEF,OAAO,CAAC,WAAW;IAWV,MAAM;CA6ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -1,12 +1,12 @@
1
- import { LitElement as c, html as d, css as f } from "lit";
2
- import { property as o, customElement as u } from "lit/decorators.js";
1
+ import { css as c, LitElement as f, html as d } from "lit";
2
+ import { property as i, customElement as u } from "lit/decorators.js";
3
3
  import { styleMap as h } from "lit/directives/style-map.js";
4
- var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, r = (i, s, a, n) => {
5
- for (var e = n > 1 ? void 0 : n ? b(s, a) : s, l = i.length - 1, p; l >= 0; l--)
6
- (p = i[l]) && (e = (n ? p(s, a, e) : p(e)) || e);
7
- return n && e && m(s, a, e), e;
4
+ var b = Object.defineProperty, m = Object.getOwnPropertyDescriptor, r = (o, s, a, n) => {
5
+ for (var e = n > 1 ? void 0 : n ? m(s, a) : s, l = o.length - 1, p; l >= 0; l--)
6
+ (p = o[l]) && (e = (n ? p(s, a, e) : p(e)) || e);
7
+ return n && e && b(s, a, e), e;
8
8
  };
9
- let t = class extends c {
9
+ let t = class extends f {
10
10
  constructor() {
11
11
  super(...arguments), this.gap = "var(--space-md)", this.padding = "var(--space-md)", this.disabled = !1, this.showArrow = !0, this.sx = {};
12
12
  }
@@ -19,7 +19,7 @@ let t = class extends c {
19
19
  );
20
20
  }
21
21
  render() {
22
- const i = {
22
+ const o = {
23
23
  "--item-padding": this.padding,
24
24
  "--item-gap": this.gap,
25
25
  ...this.sx
@@ -29,7 +29,7 @@ let t = class extends c {
29
29
  part="button"
30
30
  class="button"
31
31
  ?disabled=${this.disabled}
32
- style=${h(i)}
32
+ style=${h(o)}
33
33
  @click=${this.handleClick}
34
34
  >
35
35
  <div part="prefix" class="prefix">
@@ -59,10 +59,11 @@ let t = class extends c {
59
59
  `;
60
60
  }
61
61
  };
62
- t.styles = f`
62
+ t.styles = c`
63
63
  :host {
64
64
  display: block;
65
65
  width: 100%;
66
+ min-width: 0;
66
67
  }
67
68
 
68
69
  .button {
@@ -123,8 +124,8 @@ t.styles = f`
123
124
 
124
125
  .arrow {
125
126
  flex-shrink: 0;
126
- width: 1.25rem;
127
- height: 1.25rem;
127
+ width: var(--size-icon-action);
128
+ height: var(--size-icon-action);
128
129
  color: var(--ink-light);
129
130
  transition: var(--transition-fast);
130
131
  }
@@ -146,19 +147,19 @@ t.styles = f`
146
147
  }
147
148
  `;
148
149
  r([
149
- o({ type: String })
150
+ i({ type: String })
150
151
  ], t.prototype, "gap", 2);
151
152
  r([
152
- o({ type: String })
153
+ i({ type: String })
153
154
  ], t.prototype, "padding", 2);
154
155
  r([
155
- o({ type: Boolean })
156
+ i({ type: Boolean })
156
157
  ], t.prototype, "disabled", 2);
157
158
  r([
158
- o({ type: Boolean, attribute: "show-arrow" })
159
+ i({ type: Boolean, attribute: "show-arrow" })
159
160
  ], t.prototype, "showArrow", 2);
160
161
  r([
161
- o({ type: Object })
162
+ i({ type: Object })
162
163
  ], t.prototype, "sx", 2);
163
164
  t = r([
164
165
  u("tc-item-button")