@kya-os/consent 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/bundle/index.d.ts +44 -0
  2. package/dist/bundle/index.d.ts.map +1 -0
  3. package/dist/bundle/index.js +45 -0
  4. package/dist/bundle/index.js.map +1 -0
  5. package/dist/bundle/inline.d.ts +18 -0
  6. package/dist/bundle/inline.d.ts.map +1 -0
  7. package/dist/bundle/inline.js +18 -0
  8. package/dist/bundle/inline.js.map +1 -0
  9. package/dist/bundle/shell.d.ts +91 -0
  10. package/dist/bundle/shell.d.ts.map +1 -0
  11. package/dist/bundle/shell.js +282 -0
  12. package/dist/bundle/shell.js.map +1 -0
  13. package/dist/components/consent-button.d.ts +61 -0
  14. package/dist/components/consent-button.d.ts.map +1 -0
  15. package/dist/components/consent-button.js +177 -0
  16. package/dist/components/consent-button.js.map +1 -0
  17. package/dist/components/consent-checkbox.d.ts +61 -0
  18. package/dist/components/consent-checkbox.d.ts.map +1 -0
  19. package/dist/components/consent-checkbox.js +220 -0
  20. package/dist/components/consent-checkbox.js.map +1 -0
  21. package/dist/components/consent-input.d.ts +91 -0
  22. package/dist/components/consent-input.d.ts.map +1 -0
  23. package/dist/components/consent-input.js +332 -0
  24. package/dist/components/consent-input.js.map +1 -0
  25. package/dist/components/consent-oauth-button.d.ts +87 -0
  26. package/dist/components/consent-oauth-button.d.ts.map +1 -0
  27. package/dist/components/consent-oauth-button.js +389 -0
  28. package/dist/components/consent-oauth-button.js.map +1 -0
  29. package/dist/components/consent-otp-input.d.ts +92 -0
  30. package/dist/components/consent-otp-input.d.ts.map +1 -0
  31. package/dist/components/consent-otp-input.js +378 -0
  32. package/dist/components/consent-otp-input.js.map +1 -0
  33. package/dist/components/consent-permissions.d.ts +104 -0
  34. package/dist/components/consent-permissions.d.ts.map +1 -0
  35. package/dist/components/consent-permissions.js +430 -0
  36. package/dist/components/consent-permissions.js.map +1 -0
  37. package/dist/components/consent-shell.d.ts +72 -0
  38. package/dist/components/consent-shell.d.ts.map +1 -0
  39. package/dist/components/consent-shell.js +231 -0
  40. package/dist/components/consent-shell.js.map +1 -0
  41. package/dist/components/consent-terms.d.ts +89 -0
  42. package/dist/components/consent-terms.d.ts.map +1 -0
  43. package/dist/components/consent-terms.js +284 -0
  44. package/dist/components/consent-terms.js.map +1 -0
  45. package/dist/components/index.d.ts +19 -0
  46. package/dist/components/index.d.ts.map +1 -0
  47. package/dist/components/index.js +23 -0
  48. package/dist/components/index.js.map +1 -0
  49. package/dist/components/mcp-consent.d.ts +152 -0
  50. package/dist/components/mcp-consent.d.ts.map +1 -0
  51. package/dist/components/mcp-consent.js +874 -0
  52. package/dist/components/mcp-consent.js.map +1 -0
  53. package/dist/consent.js +3737 -0
  54. package/dist/consent.min.js +1564 -0
  55. package/dist/constants/auth-modes.d.ts +7 -2
  56. package/dist/constants/auth-modes.d.ts.map +1 -1
  57. package/dist/constants/auth-modes.js +28 -36
  58. package/dist/constants/auth-modes.js.map +1 -1
  59. package/dist/constants/colors.js +1 -4
  60. package/dist/constants/colors.js.map +1 -1
  61. package/dist/constants/defaults.d.ts +1 -1
  62. package/dist/constants/defaults.d.ts.map +1 -1
  63. package/dist/constants/defaults.js +16 -19
  64. package/dist/constants/defaults.js.map +1 -1
  65. package/dist/constants/index.d.ts +3 -3
  66. package/dist/constants/index.d.ts.map +1 -1
  67. package/dist/constants/index.js +3 -26
  68. package/dist/constants/index.js.map +1 -1
  69. package/dist/index.d.ts +10 -7
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +12 -23
  72. package/dist/index.js.map +1 -1
  73. package/dist/react/index.d.ts +123 -0
  74. package/dist/react/index.d.ts.map +1 -0
  75. package/dist/react/index.js +154 -0
  76. package/dist/react/index.js.map +1 -0
  77. package/dist/resolution/index.d.ts +3 -3
  78. package/dist/resolution/index.d.ts.map +1 -1
  79. package/dist/resolution/index.js +3 -19
  80. package/dist/resolution/index.js.map +1 -1
  81. package/dist/resolution/resolve-branding.d.ts +1 -1
  82. package/dist/resolution/resolve-branding.d.ts.map +1 -1
  83. package/dist/resolution/resolve-branding.js +14 -24
  84. package/dist/resolution/resolve-branding.js.map +1 -1
  85. package/dist/resolution/resolve-config.d.ts +2 -2
  86. package/dist/resolution/resolve-config.d.ts.map +1 -1
  87. package/dist/resolution/resolve-config.js +57 -53
  88. package/dist/resolution/resolve-config.js.map +1 -1
  89. package/dist/resolution/resolve-copy.d.ts +2 -2
  90. package/dist/resolution/resolve-copy.d.ts.map +1 -1
  91. package/dist/resolution/resolve-copy.js +35 -43
  92. package/dist/resolution/resolve-copy.js.map +1 -1
  93. package/dist/schemas/api.schemas.d.ts +7 -4
  94. package/dist/schemas/api.schemas.d.ts.map +1 -1
  95. package/dist/schemas/api.schemas.js +70 -74
  96. package/dist/schemas/api.schemas.js.map +1 -1
  97. package/dist/schemas/branding.schemas.js +17 -20
  98. package/dist/schemas/branding.schemas.js.map +1 -1
  99. package/dist/schemas/config.schemas.d.ts +1 -1
  100. package/dist/schemas/config.schemas.d.ts.map +1 -1
  101. package/dist/schemas/config.schemas.js +64 -70
  102. package/dist/schemas/config.schemas.js.map +1 -1
  103. package/dist/schemas/index.d.ts +4 -4
  104. package/dist/schemas/index.d.ts.map +1 -1
  105. package/dist/schemas/index.js +4 -20
  106. package/dist/schemas/index.js.map +1 -1
  107. package/dist/schemas/modes.schemas.js +60 -63
  108. package/dist/schemas/modes.schemas.js.map +1 -1
  109. package/dist/security/escape.d.ts.map +1 -1
  110. package/dist/security/escape.js +12 -17
  111. package/dist/security/escape.js.map +1 -1
  112. package/dist/security/index.d.ts +2 -2
  113. package/dist/security/index.d.ts.map +1 -1
  114. package/dist/security/index.js +2 -18
  115. package/dist/security/index.js.map +1 -1
  116. package/dist/security/validators.js +9 -20
  117. package/dist/security/validators.js.map +1 -1
  118. package/dist/styles/css-variables.d.ts +1 -1
  119. package/dist/styles/css-variables.d.ts.map +1 -1
  120. package/dist/styles/css-variables.js +18 -27
  121. package/dist/styles/css-variables.js.map +1 -1
  122. package/dist/styles/index.d.ts +3 -3
  123. package/dist/styles/index.d.ts.map +1 -1
  124. package/dist/styles/index.js +3 -19
  125. package/dist/styles/index.js.map +1 -1
  126. package/dist/styles/stylesheet.d.ts +1 -1
  127. package/dist/styles/stylesheet.d.ts.map +1 -1
  128. package/dist/styles/stylesheet.js +20 -27
  129. package/dist/styles/stylesheet.js.map +1 -1
  130. package/dist/styles/tokens.js +1 -4
  131. package/dist/styles/tokens.js.map +1 -1
  132. package/dist/templates/base/base-template.d.ts +3 -3
  133. package/dist/templates/base/base-template.d.ts.map +1 -1
  134. package/dist/templates/base/base-template.js +31 -35
  135. package/dist/templates/base/base-template.js.map +1 -1
  136. package/dist/templates/base/components.js +49 -65
  137. package/dist/templates/base/components.js.map +1 -1
  138. package/dist/templates/base/index.d.ts +2 -2
  139. package/dist/templates/base/index.d.ts.map +1 -1
  140. package/dist/templates/base/index.js +2 -20
  141. package/dist/templates/base/index.js.map +1 -1
  142. package/dist/templates/index.d.ts +9 -9
  143. package/dist/templates/index.d.ts.map +1 -1
  144. package/dist/templates/index.js +9 -25
  145. package/dist/templates/index.js.map +1 -1
  146. package/dist/templates/modes/consent-only.template.d.ts +2 -2
  147. package/dist/templates/modes/consent-only.template.d.ts.map +1 -1
  148. package/dist/templates/modes/consent-only.template.js +11 -15
  149. package/dist/templates/modes/consent-only.template.js.map +1 -1
  150. package/dist/templates/modes/credentials.template.d.ts +4 -4
  151. package/dist/templates/modes/credentials.template.d.ts.map +1 -1
  152. package/dist/templates/modes/credentials.template.js +20 -24
  153. package/dist/templates/modes/credentials.template.js.map +1 -1
  154. package/dist/templates/modes/index.d.ts +6 -6
  155. package/dist/templates/modes/index.d.ts.map +1 -1
  156. package/dist/templates/modes/index.js +6 -16
  157. package/dist/templates/modes/index.js.map +1 -1
  158. package/dist/templates/modes/magic-link.template.d.ts +2 -2
  159. package/dist/templates/modes/magic-link.template.d.ts.map +1 -1
  160. package/dist/templates/modes/magic-link.template.js +14 -18
  161. package/dist/templates/modes/magic-link.template.js.map +1 -1
  162. package/dist/templates/modes/oauth.template.d.ts +2 -2
  163. package/dist/templates/modes/oauth.template.d.ts.map +1 -1
  164. package/dist/templates/modes/oauth.template.js +21 -25
  165. package/dist/templates/modes/oauth.template.js.map +1 -1
  166. package/dist/templates/modes/otp.template.d.ts +2 -2
  167. package/dist/templates/modes/otp.template.d.ts.map +1 -1
  168. package/dist/templates/modes/otp.template.js +17 -21
  169. package/dist/templates/modes/otp.template.js.map +1 -1
  170. package/dist/templates/modes/success.template.d.ts +2 -2
  171. package/dist/templates/modes/success.template.d.ts.map +1 -1
  172. package/dist/templates/modes/success.template.js +24 -29
  173. package/dist/templates/modes/success.template.js.map +1 -1
  174. package/dist/templates/registry.d.ts +4 -4
  175. package/dist/templates/registry.d.ts.map +1 -1
  176. package/dist/templates/registry.js +30 -38
  177. package/dist/templates/registry.js.map +1 -1
  178. package/dist/types/api.types.d.ts +6 -5
  179. package/dist/types/api.types.d.ts.map +1 -1
  180. package/dist/types/api.types.js +1 -2
  181. package/dist/types/api.types.js.map +1 -1
  182. package/dist/types/branding.types.js +1 -2
  183. package/dist/types/branding.types.js.map +1 -1
  184. package/dist/types/config.types.d.ts +5 -5
  185. package/dist/types/config.types.d.ts.map +1 -1
  186. package/dist/types/config.types.js +1 -2
  187. package/dist/types/config.types.js.map +1 -1
  188. package/dist/types/copy.types.js +1 -2
  189. package/dist/types/copy.types.js.map +1 -1
  190. package/dist/types/index.d.ts +6 -6
  191. package/dist/types/index.d.ts.map +1 -1
  192. package/dist/types/index.js +6 -22
  193. package/dist/types/index.js.map +1 -1
  194. package/dist/types/modes.types.js +1 -4
  195. package/dist/types/modes.types.js.map +1 -1
  196. package/dist/types/page.types.d.ts +6 -6
  197. package/dist/types/page.types.d.ts.map +1 -1
  198. package/dist/types/page.types.js +1 -2
  199. package/dist/types/page.types.js.map +1 -1
  200. package/package.json +41 -4
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Consent OAuth Button Web Component
3
+ *
4
+ * A styled button for OAuth provider authentication with provider branding.
5
+ * Supports common OAuth providers with built-in icons.
6
+ *
7
+ * @module components/consent-oauth-button
8
+ */
9
+ import { LitElement, TemplateResult } from 'lit';
10
+ /**
11
+ * Supported OAuth providers with built-in styling
12
+ */
13
+ export type OAuthProvider = 'google' | 'microsoft' | 'apple' | 'github' | 'twitter' | 'facebook' | 'custom';
14
+ /**
15
+ * ConsentOAuthButton - OAuth provider sign-in button
16
+ *
17
+ * @example
18
+ * ```html
19
+ * <consent-oauth-button
20
+ * provider="google"
21
+ * url="/auth/google"
22
+ * ></consent-oauth-button>
23
+ *
24
+ * <consent-oauth-button
25
+ * provider="custom"
26
+ * provider-name="Acme Corp"
27
+ * url="/auth/acme"
28
+ * ></consent-oauth-button>
29
+ * ```
30
+ *
31
+ * @fires oauth-click - When button is clicked (includes provider and url in detail)
32
+ * @csspart button - The button element
33
+ * @csspart icon - The provider icon
34
+ * @csspart text - The button text
35
+ */
36
+ export declare class ConsentOAuthButton extends LitElement {
37
+ /**
38
+ * OAuth provider type
39
+ */
40
+ provider: OAuthProvider;
41
+ /**
42
+ * Custom provider name (used when provider='custom')
43
+ */
44
+ providerName?: string;
45
+ /**
46
+ * OAuth authorization URL
47
+ */
48
+ url: string;
49
+ /**
50
+ * Custom button text (overrides default)
51
+ */
52
+ buttonText?: string;
53
+ /**
54
+ * Loading state
55
+ */
56
+ loading: boolean;
57
+ /**
58
+ * Disabled state
59
+ */
60
+ disabled: boolean;
61
+ /**
62
+ * Full width mode
63
+ */
64
+ fullWidth: boolean;
65
+ /**
66
+ * Custom icon SVG string (for custom providers)
67
+ */
68
+ customIcon?: string;
69
+ /**
70
+ * Internal state for tracking redirect
71
+ */
72
+ private redirecting;
73
+ static styles: import("lit").CSSResult;
74
+ private get config();
75
+ private get displayName();
76
+ private get displayText();
77
+ private handleClick;
78
+ private renderProviderIcon;
79
+ protected updated(changedProperties: Map<string, unknown>): void;
80
+ render(): TemplateResult<1>;
81
+ }
82
+ declare global {
83
+ interface HTMLElementTagNameMap {
84
+ 'consent-oauth-button': ConsentOAuthButton;
85
+ }
86
+ }
87
+ //# sourceMappingURL=consent-oauth-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-oauth-button.d.ts","sourceRoot":"","sources":["../../src/components/consent-oauth-button.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAa,cAAc,EAAW,MAAM,KAAK,CAAC;AAIrE;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,UAAU,GACV,QAAQ,CAAC;AA4Fb;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IAChD;;OAEG;IAEH,QAAQ,EAAE,aAAa,CAAY;IAEnC;;OAEG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IAEH,GAAG,SAAM;IAET;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IAEH,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAgB,MAAM,0BAmEpB;IAEF,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,kBAAkB;cAiGP,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAUzD,MAAM;CAuBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,kBAAkB,CAAC;KAC5C;CACF"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Consent OAuth Button Web Component
3
+ *
4
+ * A styled button for OAuth provider authentication with provider branding.
5
+ * Supports common OAuth providers with built-in icons.
6
+ *
7
+ * @module components/consent-oauth-button
8
+ */
9
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ import { LitElement, html, css, nothing } from 'lit';
16
+ import { customElement, property, state } from 'lit/decorators.js';
17
+ import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
18
+ /**
19
+ * Sanitize SVG content to prevent XSS attacks.
20
+ * Removes script tags, event handlers, and dangerous attributes.
21
+ *
22
+ * @param svg - Raw SVG string
23
+ * @returns Sanitized SVG safe for rendering
24
+ */
25
+ function sanitizeSvg(svg) {
26
+ if (!svg || typeof svg !== 'string')
27
+ return '';
28
+ // Remove script tags and their content
29
+ let sanitized = svg.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
30
+ // Remove event handlers (onclick, onerror, onload, etc.)
31
+ sanitized = sanitized.replace(/\s*on\w+\s*=\s*["'][^"']*["']/gi, '');
32
+ sanitized = sanitized.replace(/\s*on\w+\s*=\s*[^\s>]*/gi, '');
33
+ // Remove javascript: and data: URLs from href, src, xlink:href
34
+ sanitized = sanitized.replace(/(href|src|xlink:href)\s*=\s*["']?\s*javascript:[^"'>\s]*/gi, '$1=""');
35
+ sanitized = sanitized.replace(/(href|src|xlink:href)\s*=\s*["']?\s*data:[^"'>\s]*/gi, '$1=""');
36
+ // Remove base64 embedded content that might be executable
37
+ sanitized = sanitized.replace(/data:text\/html[^"'>\s]*/gi, '');
38
+ return sanitized;
39
+ }
40
+ const PROVIDER_CONFIGS = {
41
+ google: {
42
+ name: 'Google',
43
+ bgColor: '#ffffff',
44
+ textColor: '#374151',
45
+ borderColor: '#d1d5db',
46
+ hoverBgColor: '#f9fafb',
47
+ },
48
+ microsoft: {
49
+ name: 'Microsoft',
50
+ bgColor: '#2f2f2f',
51
+ textColor: '#ffffff',
52
+ borderColor: '#2f2f2f',
53
+ hoverBgColor: '#1f1f1f',
54
+ },
55
+ apple: {
56
+ name: 'Apple',
57
+ bgColor: '#000000',
58
+ textColor: '#ffffff',
59
+ borderColor: '#000000',
60
+ hoverBgColor: '#1a1a1a',
61
+ },
62
+ github: {
63
+ name: 'GitHub',
64
+ bgColor: '#24292f',
65
+ textColor: '#ffffff',
66
+ borderColor: '#24292f',
67
+ hoverBgColor: '#1b1f23',
68
+ },
69
+ twitter: {
70
+ name: 'Twitter',
71
+ bgColor: '#1da1f2',
72
+ textColor: '#ffffff',
73
+ borderColor: '#1da1f2',
74
+ hoverBgColor: '#0c8de4',
75
+ },
76
+ facebook: {
77
+ name: 'Facebook',
78
+ bgColor: '#1877f2',
79
+ textColor: '#ffffff',
80
+ borderColor: '#1877f2',
81
+ hoverBgColor: '#0b5ed7',
82
+ },
83
+ custom: {
84
+ name: 'Sign in',
85
+ bgColor: '#ffffff',
86
+ textColor: '#374151',
87
+ borderColor: '#d1d5db',
88
+ hoverBgColor: '#f9fafb',
89
+ },
90
+ };
91
+ /**
92
+ * ConsentOAuthButton - OAuth provider sign-in button
93
+ *
94
+ * @example
95
+ * ```html
96
+ * <consent-oauth-button
97
+ * provider="google"
98
+ * url="/auth/google"
99
+ * ></consent-oauth-button>
100
+ *
101
+ * <consent-oauth-button
102
+ * provider="custom"
103
+ * provider-name="Acme Corp"
104
+ * url="/auth/acme"
105
+ * ></consent-oauth-button>
106
+ * ```
107
+ *
108
+ * @fires oauth-click - When button is clicked (includes provider and url in detail)
109
+ * @csspart button - The button element
110
+ * @csspart icon - The provider icon
111
+ * @csspart text - The button text
112
+ */
113
+ let ConsentOAuthButton = class ConsentOAuthButton extends LitElement {
114
+ constructor() {
115
+ super(...arguments);
116
+ /**
117
+ * OAuth provider type
118
+ */
119
+ this.provider = 'custom';
120
+ /**
121
+ * OAuth authorization URL
122
+ */
123
+ this.url = '';
124
+ /**
125
+ * Loading state
126
+ */
127
+ this.loading = false;
128
+ /**
129
+ * Disabled state
130
+ */
131
+ this.disabled = false;
132
+ /**
133
+ * Full width mode
134
+ */
135
+ this.fullWidth = false;
136
+ /**
137
+ * Internal state for tracking redirect
138
+ */
139
+ this.redirecting = false;
140
+ }
141
+ get config() {
142
+ return PROVIDER_CONFIGS[this.provider] || PROVIDER_CONFIGS.custom;
143
+ }
144
+ get displayName() {
145
+ if (this.providerName)
146
+ return this.providerName;
147
+ return this.config.name;
148
+ }
149
+ get displayText() {
150
+ if (this.buttonText)
151
+ return this.buttonText;
152
+ return `Continue with ${this.displayName}`;
153
+ }
154
+ handleClick() {
155
+ if (this.disabled || this.loading || this.redirecting)
156
+ return;
157
+ if (this.url) {
158
+ this.redirecting = true;
159
+ window.location.href = this.url;
160
+ }
161
+ // Dispatch custom event with provider details (named 'oauth-click' to avoid
162
+ // collision with native 'click' event which already bubbles through shadow DOM)
163
+ this.dispatchEvent(new CustomEvent('oauth-click', {
164
+ detail: { provider: this.provider, url: this.url },
165
+ bubbles: true,
166
+ composed: true,
167
+ }));
168
+ }
169
+ renderProviderIcon() {
170
+ if (this.customIcon) {
171
+ // Sanitize custom SVG to prevent XSS attacks
172
+ const sanitized = sanitizeSvg(this.customIcon);
173
+ return html `<div class="icon">${unsafeSVG(sanitized)}</div>`;
174
+ }
175
+ switch (this.provider) {
176
+ case 'google':
177
+ return html `
178
+ <div class="icon">
179
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
180
+ <path
181
+ fill="#4285F4"
182
+ d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
183
+ />
184
+ <path
185
+ fill="#34A853"
186
+ d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
187
+ />
188
+ <path
189
+ fill="#FBBC05"
190
+ d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
191
+ />
192
+ <path
193
+ fill="#EA4335"
194
+ d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
195
+ />
196
+ </svg>
197
+ </div>
198
+ `;
199
+ case 'microsoft':
200
+ return html `
201
+ <div class="icon">
202
+ <svg viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg">
203
+ <rect x="1" y="1" width="9" height="9" fill="#f25022" />
204
+ <rect x="1" y="11" width="9" height="9" fill="#00a4ef" />
205
+ <rect x="11" y="1" width="9" height="9" fill="#7fba00" />
206
+ <rect x="11" y="11" width="9" height="9" fill="#ffb900" />
207
+ </svg>
208
+ </div>
209
+ `;
210
+ case 'apple':
211
+ return html `
212
+ <div class="icon">
213
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
214
+ <path
215
+ fill="currentColor"
216
+ d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"
217
+ />
218
+ </svg>
219
+ </div>
220
+ `;
221
+ case 'github':
222
+ return html `
223
+ <div class="icon">
224
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
225
+ <path
226
+ fill="currentColor"
227
+ d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.17 6.839 9.49.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.464-1.11-1.464-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.831.092-.646.35-1.086.636-1.336-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.167 22 16.418 22 12c0-5.523-4.477-10-10-10z"
228
+ />
229
+ </svg>
230
+ </div>
231
+ `;
232
+ case 'twitter':
233
+ return html `
234
+ <div class="icon">
235
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
236
+ <path
237
+ fill="currentColor"
238
+ d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"
239
+ />
240
+ </svg>
241
+ </div>
242
+ `;
243
+ case 'facebook':
244
+ return html `
245
+ <div class="icon">
246
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
247
+ <path
248
+ fill="currentColor"
249
+ d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"
250
+ />
251
+ </svg>
252
+ </div>
253
+ `;
254
+ default:
255
+ return nothing;
256
+ }
257
+ }
258
+ updated(changedProperties) {
259
+ if (changedProperties.has('provider')) {
260
+ const config = this.config;
261
+ this.style.setProperty('--button-bg', config.bgColor);
262
+ this.style.setProperty('--button-text', config.textColor);
263
+ this.style.setProperty('--button-border', config.borderColor);
264
+ this.style.setProperty('--button-hover-bg', config.hoverBgColor);
265
+ }
266
+ }
267
+ render() {
268
+ const isLoading = this.loading || this.redirecting;
269
+ return html `
270
+ <button
271
+ part="button"
272
+ type="button"
273
+ ?disabled=${this.disabled || isLoading}
274
+ @click=${this.handleClick}
275
+ style="
276
+ background-color: var(--button-bg, ${this.config.bgColor});
277
+ color: var(--button-text, ${this.config.textColor});
278
+ border: 1px solid var(--button-border, ${this.config.borderColor});
279
+ "
280
+ aria-busy=${isLoading}
281
+ >
282
+ ${isLoading
283
+ ? html `<span class="spinner"></span>`
284
+ : this.renderProviderIcon()}
285
+ <span class="text" part="text">${this.displayText}</span>
286
+ </button>
287
+ `;
288
+ }
289
+ };
290
+ ConsentOAuthButton.styles = css `
291
+ :host {
292
+ display: inline-block;
293
+ }
294
+
295
+ :host([full-width]) {
296
+ display: block;
297
+ width: 100%;
298
+ }
299
+
300
+ button {
301
+ width: 100%;
302
+ padding: 0.75rem 1rem;
303
+ height: 2.75rem;
304
+ border-radius: 0.5rem;
305
+ font-size: 0.875rem;
306
+ font-weight: 500;
307
+ font-family: inherit;
308
+ cursor: pointer;
309
+ transition: background-color 0.15s ease, opacity 0.15s ease;
310
+ display: inline-flex;
311
+ align-items: center;
312
+ justify-content: center;
313
+ gap: 0.75rem;
314
+ }
315
+
316
+ button:disabled {
317
+ opacity: 0.5;
318
+ cursor: not-allowed;
319
+ }
320
+
321
+ button:focus-visible {
322
+ outline: 2px solid #2563eb;
323
+ outline-offset: 2px;
324
+ }
325
+
326
+ .icon {
327
+ width: 1.125rem;
328
+ height: 1.125rem;
329
+ flex-shrink: 0;
330
+ }
331
+
332
+ .icon svg {
333
+ width: 100%;
334
+ height: 100%;
335
+ }
336
+
337
+ /* Loading spinner */
338
+ .spinner {
339
+ width: 1rem;
340
+ height: 1rem;
341
+ border: 2px solid currentColor;
342
+ border-top-color: transparent;
343
+ border-radius: 50%;
344
+ animation: spin 0.8s linear infinite;
345
+ }
346
+
347
+ @keyframes spin {
348
+ to {
349
+ transform: rotate(360deg);
350
+ }
351
+ }
352
+
353
+ .text {
354
+ flex: 1;
355
+ text-align: center;
356
+ }
357
+ `;
358
+ __decorate([
359
+ property({ type: String })
360
+ ], ConsentOAuthButton.prototype, "provider", void 0);
361
+ __decorate([
362
+ property({ type: String, attribute: 'provider-name' })
363
+ ], ConsentOAuthButton.prototype, "providerName", void 0);
364
+ __decorate([
365
+ property({ type: String })
366
+ ], ConsentOAuthButton.prototype, "url", void 0);
367
+ __decorate([
368
+ property({ type: String, attribute: 'button-text' })
369
+ ], ConsentOAuthButton.prototype, "buttonText", void 0);
370
+ __decorate([
371
+ property({ type: Boolean, reflect: true })
372
+ ], ConsentOAuthButton.prototype, "loading", void 0);
373
+ __decorate([
374
+ property({ type: Boolean, reflect: true })
375
+ ], ConsentOAuthButton.prototype, "disabled", void 0);
376
+ __decorate([
377
+ property({ type: Boolean, attribute: 'full-width' })
378
+ ], ConsentOAuthButton.prototype, "fullWidth", void 0);
379
+ __decorate([
380
+ property({ type: String, attribute: 'custom-icon' })
381
+ ], ConsentOAuthButton.prototype, "customIcon", void 0);
382
+ __decorate([
383
+ state()
384
+ ], ConsentOAuthButton.prototype, "redirecting", void 0);
385
+ ConsentOAuthButton = __decorate([
386
+ customElement('consent-oauth-button')
387
+ ], ConsentOAuthButton);
388
+ export { ConsentOAuthButton };
389
+ //# sourceMappingURL=consent-oauth-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-oauth-button.js","sourceRoot":"","sources":["../../src/components/consent-oauth-button.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,OAAO,EAAE,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAyBzD;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE/C,uCAAuC;IACvC,IAAI,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,qDAAqD,EAAE,EAAE,CAAC,CAAC;IAEvF,yDAAyD;IACzD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;IACrE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAE9D,+DAA+D;IAC/D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,4DAA4D,EAAE,OAAO,CAAC,CAAC;IACrG,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sDAAsD,EAAE,OAAO,CAAC,CAAC;IAE/F,0DAA0D;IAC1D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAEhE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,gBAAgB,GAA0C;IAC9D,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QACL;;WAEG;QAEH,aAAQ,GAAkB,QAAQ,CAAC;QAQnC;;WAEG;QAEH,QAAG,GAAG,EAAE,CAAC;QAQT;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;WAEG;QAEH,cAAS,GAAG,KAAK,CAAC;QAQlB;;WAEG;QAEK,gBAAW,GAAG,KAAK,CAAC;IA0O9B,CAAC;IAnKC,IAAY,MAAM;QAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,OAAO,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9D,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,CAAC;QAED,4EAA4E;QAC5E,gFAAgF;QAChF,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,aAAa,EAAE;YAC7B,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YAClD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,6CAA6C;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAA,qBAAqB,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC/D,CAAC;QAED,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;SAqBV,CAAC;YAEJ,KAAK,WAAW;gBACd,OAAO,IAAI,CAAA;;;;;;;;;SASV,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO,IAAI,CAAA;;;;;;;;;SASV,CAAC;YAEJ,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAA;;;;;;;;;SASV,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAA;;;;;;;;;SASV,CAAC;YAEJ,KAAK,UAAU;gBACb,OAAO,IAAI,CAAA;;;;;;;;;SASV,CAAC;YAEJ;gBACE,OAAO,OAAO,CAAC;QACnB,CAAC;IACH,CAAC;IAEkB,OAAO,CAAC,iBAAuC;QAChE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC;QAEnD,OAAO,IAAI,CAAA;;;;oBAIK,IAAI,CAAC,QAAQ,IAAI,SAAS;iBAC7B,IAAI,CAAC,WAAW;;+CAEc,IAAI,CAAC,MAAM,CAAC,OAAO;sCAC5B,IAAI,CAAC,MAAM,CAAC,SAAS;mDACR,IAAI,CAAC,MAAM,CAAC,WAAW;;oBAEtD,SAAS;;UAEnB,SAAS;YACT,CAAC,CAAC,IAAI,CAAA,+BAA+B;YACrC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;yCACI,IAAI,CAAC,WAAW;;KAEpD,CAAC;IACJ,CAAC;;AAvOe,yBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmE3B,AAnEqB,CAmEpB;AArHF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACQ;AAMnC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;wDACjC;AAMtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAClB;AAMT;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;sDACjC;AAMpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAC3B;AAMhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAC1B;AAMjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;qDACnC;AAMlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;sDACjC;AAMZ;IADP,KAAK,EAAE;uDACoB;AArDjB,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CA+R9B"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Consent OTP Input Web Component
3
+ *
4
+ * Individual digit input boxes for one-time password entry.
5
+ * Supports auto-focus, paste handling, and keyboard navigation.
6
+ * Implements Form Associated Custom Elements for proper form participation.
7
+ *
8
+ * @module components/consent-otp-input
9
+ */
10
+ import { LitElement, TemplateResult } from 'lit';
11
+ /**
12
+ * ConsentOTPInput - OTP digit input boxes
13
+ *
14
+ * @example
15
+ * ```html
16
+ * <consent-otp-input
17
+ * length="6"
18
+ * name="otp"
19
+ * ></consent-otp-input>
20
+ * ```
21
+ *
22
+ * @fires input - Fired on each digit entry
23
+ * @fires complete - Fired when all digits are entered
24
+ * @fires change - Fired when value changes
25
+ * @csspart container - The container for all digit boxes
26
+ * @csspart input - Individual digit input
27
+ * @cssprop --consent-primary - Primary brand color for focus state
28
+ */
29
+ export declare class ConsentOTPInput extends LitElement {
30
+ static formAssociated: boolean;
31
+ private internals;
32
+ constructor();
33
+ /**
34
+ * Number of OTP digits
35
+ */
36
+ length: number;
37
+ /**
38
+ * Form field name
39
+ */
40
+ name: string;
41
+ /**
42
+ * Current OTP value
43
+ */
44
+ value: string;
45
+ /**
46
+ * Disabled state
47
+ */
48
+ disabled: boolean;
49
+ /**
50
+ * Error state
51
+ */
52
+ error: boolean;
53
+ /**
54
+ * Auto-focus first input on mount
55
+ */
56
+ autoFocus: boolean;
57
+ /**
58
+ * Input type (text or number)
59
+ */
60
+ inputType: 'text' | 'number';
61
+ /**
62
+ * Internal digit values
63
+ */
64
+ private digits;
65
+ private inputs;
66
+ static styles: import("lit").CSSResult;
67
+ connectedCallback(): void;
68
+ private initializeDigits;
69
+ protected firstUpdated(): void;
70
+ protected updated(changedProperties: Map<string, unknown>): void;
71
+ private getFullValue;
72
+ private handleInput;
73
+ private handleKeyDown;
74
+ private handlePaste;
75
+ private handleFocus;
76
+ /**
77
+ * Focus the first empty input or the last input
78
+ */
79
+ focus(): void;
80
+ /**
81
+ * Clear all digits
82
+ */
83
+ clear(): void;
84
+ private renderDigitInput;
85
+ render(): TemplateResult<1>;
86
+ }
87
+ declare global {
88
+ interface HTMLElementTagNameMap {
89
+ 'consent-otp-input': ConsentOTPInput;
90
+ }
91
+ }
92
+ //# sourceMappingURL=consent-otp-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-otp-input.d.ts","sourceRoot":"","sources":["../../src/components/consent-otp-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAG5D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAE7C,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAO,CAAC,SAAS,CAAmB;;IAOpC;;OAEG;IAEH,MAAM,SAAK;IAEX;;OAEG;IAEH,IAAI,SAAS;IAEb;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAU;IAEtC;;OAEG;IAEH,OAAO,CAAC,MAAM,CAAgB;IAG9B,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAgB,MAAM,0BA+EpB;IAEO,iBAAiB;IAK1B,OAAO,CAAC,gBAAgB;cAYL,YAAY;cAMZ,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAclE,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACa,KAAK;IAMrB;;OAEG;IACI,KAAK;IAMZ,OAAO,CAAC,gBAAgB;IAwBf,MAAM;CAOhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}