tyrell-components 1.0.0-RC10
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/LICENSE +21 -0
- package/README.md +221 -0
- package/css/tyrell-brand.css +767 -0
- package/css/tyrell.css +1679 -0
- package/dist/tyrell-brand.css +767 -0
- package/dist/tyrell.css +1679 -0
- package/dist/tyrell.js +2 -0
- package/lib/base/ty-component.d.ts +133 -0
- package/lib/base/ty-component.d.ts.map +1 -0
- package/lib/base/ty-component.js +297 -0
- package/lib/base/ty-component.js.map +1 -0
- package/lib/components/button.d.ts +135 -0
- package/lib/components/button.d.ts.map +1 -0
- package/lib/components/button.js +277 -0
- package/lib/components/button.js.map +1 -0
- package/lib/components/calendar-month.d.ts +132 -0
- package/lib/components/calendar-month.d.ts.map +1 -0
- package/lib/components/calendar-month.js +440 -0
- package/lib/components/calendar-month.js.map +1 -0
- package/lib/components/calendar-navigation.d.ts +137 -0
- package/lib/components/calendar-navigation.d.ts.map +1 -0
- package/lib/components/calendar-navigation.js +366 -0
- package/lib/components/calendar-navigation.js.map +1 -0
- package/lib/components/calendar.d.ts +166 -0
- package/lib/components/calendar.d.ts.map +1 -0
- package/lib/components/calendar.js +774 -0
- package/lib/components/calendar.js.map +1 -0
- package/lib/components/checkbox.d.ts +189 -0
- package/lib/components/checkbox.d.ts.map +1 -0
- package/lib/components/checkbox.js +400 -0
- package/lib/components/checkbox.js.map +1 -0
- package/lib/components/copy.d.ts +180 -0
- package/lib/components/copy.d.ts.map +1 -0
- package/lib/components/copy.js +393 -0
- package/lib/components/copy.js.map +1 -0
- package/lib/components/date-picker.d.ts +379 -0
- package/lib/components/date-picker.d.ts.map +1 -0
- package/lib/components/date-picker.js +1586 -0
- package/lib/components/date-picker.js.map +1 -0
- package/lib/components/dropdown.d.ts +424 -0
- package/lib/components/dropdown.d.ts.map +1 -0
- package/lib/components/dropdown.js +1640 -0
- package/lib/components/dropdown.js.map +1 -0
- package/lib/components/file-upload.d.ts +121 -0
- package/lib/components/file-upload.d.ts.map +1 -0
- package/lib/components/file-upload.js +441 -0
- package/lib/components/file-upload.js.map +1 -0
- package/lib/components/icon.d.ts +118 -0
- package/lib/components/icon.d.ts.map +1 -0
- package/lib/components/icon.js +245 -0
- package/lib/components/icon.js.map +1 -0
- package/lib/components/input.d.ts +270 -0
- package/lib/components/input.d.ts.map +1 -0
- package/lib/components/input.js +721 -0
- package/lib/components/input.js.map +1 -0
- package/lib/components/modal.d.ts +78 -0
- package/lib/components/modal.d.ts.map +1 -0
- package/lib/components/modal.js +497 -0
- package/lib/components/modal.js.map +1 -0
- package/lib/components/multiselect.d.ts +397 -0
- package/lib/components/multiselect.d.ts.map +1 -0
- package/lib/components/multiselect.js +1595 -0
- package/lib/components/multiselect.js.map +1 -0
- package/lib/components/option.d.ts +66 -0
- package/lib/components/option.d.ts.map +1 -0
- package/lib/components/option.js +314 -0
- package/lib/components/option.js.map +1 -0
- package/lib/components/popup.d.ts +43 -0
- package/lib/components/popup.d.ts.map +1 -0
- package/lib/components/popup.js +380 -0
- package/lib/components/popup.js.map +1 -0
- package/lib/components/radio.d.ts +198 -0
- package/lib/components/radio.d.ts.map +1 -0
- package/lib/components/radio.js +437 -0
- package/lib/components/radio.js.map +1 -0
- package/lib/components/resize-observer.d.ts +48 -0
- package/lib/components/resize-observer.d.ts.map +1 -0
- package/lib/components/resize-observer.js +108 -0
- package/lib/components/resize-observer.js.map +1 -0
- package/lib/components/scroll-container.d.ts +51 -0
- package/lib/components/scroll-container.d.ts.map +1 -0
- package/lib/components/scroll-container.js +239 -0
- package/lib/components/scroll-container.js.map +1 -0
- package/lib/components/step.d.ts +26 -0
- package/lib/components/step.d.ts.map +1 -0
- package/lib/components/step.js +75 -0
- package/lib/components/step.js.map +1 -0
- package/lib/components/switch.d.ts +111 -0
- package/lib/components/switch.d.ts.map +1 -0
- package/lib/components/switch.js +240 -0
- package/lib/components/switch.js.map +1 -0
- package/lib/components/tab.d.ts +23 -0
- package/lib/components/tab.d.ts.map +1 -0
- package/lib/components/tab.js +76 -0
- package/lib/components/tab.js.map +1 -0
- package/lib/components/tabs.d.ts +93 -0
- package/lib/components/tabs.d.ts.map +1 -0
- package/lib/components/tabs.js +653 -0
- package/lib/components/tabs.js.map +1 -0
- package/lib/components/tag.d.ts +144 -0
- package/lib/components/tag.d.ts.map +1 -0
- package/lib/components/tag.js +316 -0
- package/lib/components/tag.js.map +1 -0
- package/lib/components/textarea.d.ts +241 -0
- package/lib/components/textarea.d.ts.map +1 -0
- package/lib/components/textarea.js +585 -0
- package/lib/components/textarea.js.map +1 -0
- package/lib/components/tooltip.d.ts +40 -0
- package/lib/components/tooltip.d.ts.map +1 -0
- package/lib/components/tooltip.js +439 -0
- package/lib/components/tooltip.js.map +1 -0
- package/lib/components/wizard.d.ts +86 -0
- package/lib/components/wizard.d.ts.map +1 -0
- package/lib/components/wizard.js +636 -0
- package/lib/components/wizard.js.map +1 -0
- package/lib/icons/fontawesome/brands.d.ts +557 -0
- package/lib/icons/fontawesome/brands.d.ts.map +1 -0
- package/lib/icons/fontawesome/brands.js +557 -0
- package/lib/icons/fontawesome/brands.js.map +1 -0
- package/lib/icons/fontawesome/regular.d.ts +281 -0
- package/lib/icons/fontawesome/regular.d.ts.map +1 -0
- package/lib/icons/fontawesome/regular.js +281 -0
- package/lib/icons/fontawesome/regular.js.map +1 -0
- package/lib/icons/fontawesome/solid.d.ts +1992 -0
- package/lib/icons/fontawesome/solid.d.ts.map +1 -0
- package/lib/icons/fontawesome/solid.js +1992 -0
- package/lib/icons/fontawesome/solid.js.map +1 -0
- package/lib/icons/heroicons/micro.d.ts +324 -0
- package/lib/icons/heroicons/micro.d.ts.map +1 -0
- package/lib/icons/heroicons/micro.js +1032 -0
- package/lib/icons/heroicons/micro.js.map +1 -0
- package/lib/icons/heroicons/mini.d.ts +332 -0
- package/lib/icons/heroicons/mini.d.ts.map +1 -0
- package/lib/icons/heroicons/mini.js +1038 -0
- package/lib/icons/heroicons/mini.js.map +1 -0
- package/lib/icons/heroicons/outline.d.ts +332 -0
- package/lib/icons/heroicons/outline.d.ts.map +1 -0
- package/lib/icons/heroicons/outline.js +993 -0
- package/lib/icons/heroicons/outline.js.map +1 -0
- package/lib/icons/heroicons/solid.d.ts +332 -0
- package/lib/icons/heroicons/solid.d.ts.map +1 -0
- package/lib/icons/heroicons/solid.js +1063 -0
- package/lib/icons/heroicons/solid.js.map +1 -0
- package/lib/icons/lucide.d.ts +1872 -0
- package/lib/icons/lucide.d.ts.map +1 -0
- package/lib/icons/lucide.js +28212 -0
- package/lib/icons/lucide.js.map +1 -0
- package/lib/icons/material/filled.d.ts +2180 -0
- package/lib/icons/material/filled.d.ts.map +1 -0
- package/lib/icons/material/filled.js +14003 -0
- package/lib/icons/material/filled.js.map +1 -0
- package/lib/icons/material/outlined.d.ts +2142 -0
- package/lib/icons/material/outlined.d.ts.map +1 -0
- package/lib/icons/material/outlined.js +14545 -0
- package/lib/icons/material/outlined.js.map +1 -0
- package/lib/icons/material/round.d.ts +2147 -0
- package/lib/icons/material/round.d.ts.map +1 -0
- package/lib/icons/material/round.js +14779 -0
- package/lib/icons/material/round.js.map +1 -0
- package/lib/icons/material/sharp.d.ts +2147 -0
- package/lib/icons/material/sharp.d.ts.map +1 -0
- package/lib/icons/material/sharp.js +14189 -0
- package/lib/icons/material/sharp.js.map +1 -0
- package/lib/icons/material/two-tone.d.ts +2185 -0
- package/lib/icons/material/two-tone.d.ts.map +1 -0
- package/lib/icons/material/two-tone.js +17152 -0
- package/lib/icons/material/two-tone.js.map +1 -0
- package/lib/index.d.ts +86 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/styles/button.d.ts +14 -0
- package/lib/styles/button.d.ts.map +1 -0
- package/lib/styles/button.js +498 -0
- package/lib/styles/button.js.map +1 -0
- package/lib/styles/calendar-month.d.ts +6 -0
- package/lib/styles/calendar-month.d.ts.map +1 -0
- package/lib/styles/calendar-month.js +275 -0
- package/lib/styles/calendar-month.js.map +1 -0
- package/lib/styles/calendar-navigation.d.ts +6 -0
- package/lib/styles/calendar-navigation.d.ts.map +1 -0
- package/lib/styles/calendar-navigation.js +143 -0
- package/lib/styles/calendar-navigation.js.map +1 -0
- package/lib/styles/calendar.d.ts +6 -0
- package/lib/styles/calendar.d.ts.map +1 -0
- package/lib/styles/calendar.js +28 -0
- package/lib/styles/calendar.js.map +1 -0
- package/lib/styles/checkbox.d.ts +9 -0
- package/lib/styles/checkbox.d.ts.map +1 -0
- package/lib/styles/checkbox.js +19 -0
- package/lib/styles/checkbox.js.map +1 -0
- package/lib/styles/copy.d.ts +7 -0
- package/lib/styles/copy.d.ts.map +1 -0
- package/lib/styles/copy.js +94 -0
- package/lib/styles/copy.js.map +1 -0
- package/lib/styles/custom-scrollbar.d.ts +6 -0
- package/lib/styles/custom-scrollbar.d.ts.map +1 -0
- package/lib/styles/custom-scrollbar.js +157 -0
- package/lib/styles/custom-scrollbar.js.map +1 -0
- package/lib/styles/date-picker.d.ts +6 -0
- package/lib/styles/date-picker.d.ts.map +1 -0
- package/lib/styles/date-picker.js +438 -0
- package/lib/styles/date-picker.js.map +1 -0
- package/lib/styles/dropdown.d.ts +12 -0
- package/lib/styles/dropdown.d.ts.map +1 -0
- package/lib/styles/dropdown.js +1081 -0
- package/lib/styles/dropdown.js.map +1 -0
- package/lib/styles/file-upload.d.ts +2 -0
- package/lib/styles/file-upload.d.ts.map +1 -0
- package/lib/styles/file-upload.js +241 -0
- package/lib/styles/file-upload.js.map +1 -0
- package/lib/styles/icon.d.ts +6 -0
- package/lib/styles/icon.d.ts.map +1 -0
- package/lib/styles/icon.js +241 -0
- package/lib/styles/icon.js.map +1 -0
- package/lib/styles/input.d.ts +7 -0
- package/lib/styles/input.d.ts.map +1 -0
- package/lib/styles/input.js +685 -0
- package/lib/styles/input.js.map +1 -0
- package/lib/styles/modal.d.ts +8 -0
- package/lib/styles/modal.d.ts.map +1 -0
- package/lib/styles/modal.js +134 -0
- package/lib/styles/modal.js.map +1 -0
- package/lib/styles/multiselect.d.ts +6 -0
- package/lib/styles/multiselect.d.ts.map +1 -0
- package/lib/styles/multiselect.js +825 -0
- package/lib/styles/multiselect.js.map +1 -0
- package/lib/styles/option.d.ts +6 -0
- package/lib/styles/option.d.ts.map +1 -0
- package/lib/styles/option.js +116 -0
- package/lib/styles/option.js.map +1 -0
- package/lib/styles/popup.d.ts +8 -0
- package/lib/styles/popup.d.ts.map +1 -0
- package/lib/styles/popup.js +95 -0
- package/lib/styles/popup.js.map +1 -0
- package/lib/styles/radio.d.ts +8 -0
- package/lib/styles/radio.d.ts.map +1 -0
- package/lib/styles/radio.js +160 -0
- package/lib/styles/radio.js.map +1 -0
- package/lib/styles/resize-observer.d.ts +6 -0
- package/lib/styles/resize-observer.d.ts.map +1 -0
- package/lib/styles/resize-observer.js +18 -0
- package/lib/styles/resize-observer.js.map +1 -0
- package/lib/styles/scroll-container.d.ts +6 -0
- package/lib/styles/scroll-container.d.ts.map +1 -0
- package/lib/styles/scroll-container.js +198 -0
- package/lib/styles/scroll-container.js.map +1 -0
- package/lib/styles/step.d.ts +5 -0
- package/lib/styles/step.d.ts.map +1 -0
- package/lib/styles/step.js +50 -0
- package/lib/styles/step.js.map +1 -0
- package/lib/styles/switch.d.ts +9 -0
- package/lib/styles/switch.d.ts.map +1 -0
- package/lib/styles/switch.js +100 -0
- package/lib/styles/switch.js.map +1 -0
- package/lib/styles/tab.d.ts +5 -0
- package/lib/styles/tab.d.ts.map +1 -0
- package/lib/styles/tab.js +51 -0
- package/lib/styles/tab.js.map +1 -0
- package/lib/styles/tabs.d.ts +13 -0
- package/lib/styles/tabs.d.ts.map +1 -0
- package/lib/styles/tabs.js +184 -0
- package/lib/styles/tabs.js.map +1 -0
- package/lib/styles/tag.d.ts +6 -0
- package/lib/styles/tag.d.ts.map +1 -0
- package/lib/styles/tag.js +409 -0
- package/lib/styles/tag.js.map +1 -0
- package/lib/styles/textarea.d.ts +6 -0
- package/lib/styles/textarea.d.ts.map +1 -0
- package/lib/styles/textarea.js +350 -0
- package/lib/styles/textarea.js.map +1 -0
- package/lib/styles/tooltip.d.ts +9 -0
- package/lib/styles/tooltip.d.ts.map +1 -0
- package/lib/styles/tooltip.js +133 -0
- package/lib/styles/tooltip.js.map +1 -0
- package/lib/styles/wizard.d.ts +25 -0
- package/lib/styles/wizard.d.ts.map +1 -0
- package/lib/styles/wizard.js +348 -0
- package/lib/styles/wizard.js.map +1 -0
- package/lib/types/common.d.ts +143 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +5 -0
- package/lib/types/common.js.map +1 -0
- package/lib/utils/calendar-utils.d.ts +176 -0
- package/lib/utils/calendar-utils.d.ts.map +1 -0
- package/lib/utils/calendar-utils.js +370 -0
- package/lib/utils/calendar-utils.js.map +1 -0
- package/lib/utils/custom-scrollbar.d.ts +82 -0
- package/lib/utils/custom-scrollbar.d.ts.map +1 -0
- package/lib/utils/custom-scrollbar.js +320 -0
- package/lib/utils/custom-scrollbar.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +78 -0
- package/lib/utils/icon-registry.d.ts.map +1 -0
- package/lib/utils/icon-registry.js +304 -0
- package/lib/utils/icon-registry.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +35 -0
- package/lib/utils/loader-registry.d.ts.map +1 -0
- package/lib/utils/loader-registry.js +43 -0
- package/lib/utils/loader-registry.js.map +1 -0
- package/lib/utils/locale.d.ts +136 -0
- package/lib/utils/locale.d.ts.map +1 -0
- package/lib/utils/locale.js +213 -0
- package/lib/utils/locale.js.map +1 -0
- package/lib/utils/mobile.d.ts +14 -0
- package/lib/utils/mobile.d.ts.map +1 -0
- package/lib/utils/mobile.js +21 -0
- package/lib/utils/mobile.js.map +1 -0
- package/lib/utils/number-format.d.ts +83 -0
- package/lib/utils/number-format.d.ts.map +1 -0
- package/lib/utils/number-format.js +143 -0
- package/lib/utils/number-format.js.map +1 -0
- package/lib/utils/parse-boolean.d.ts +39 -0
- package/lib/utils/parse-boolean.d.ts.map +1 -0
- package/lib/utils/parse-boolean.js +58 -0
- package/lib/utils/parse-boolean.js.map +1 -0
- package/lib/utils/positioning.d.ts +143 -0
- package/lib/utils/positioning.d.ts.map +1 -0
- package/lib/utils/positioning.js +308 -0
- package/lib/utils/positioning.js.map +1 -0
- package/lib/utils/property-capture.d.ts +132 -0
- package/lib/utils/property-capture.d.ts.map +1 -0
- package/lib/utils/property-capture.js +152 -0
- package/lib/utils/property-capture.js.map +1 -0
- package/lib/utils/property-manager.d.ts +90 -0
- package/lib/utils/property-manager.d.ts.map +1 -0
- package/lib/utils/property-manager.js +197 -0
- package/lib/utils/property-manager.js.map +1 -0
- package/lib/utils/resize-observer.d.ts +42 -0
- package/lib/utils/resize-observer.d.ts.map +1 -0
- package/lib/utils/resize-observer.js +71 -0
- package/lib/utils/resize-observer.js.map +1 -0
- package/lib/utils/scroll-lock.d.ts +79 -0
- package/lib/utils/scroll-lock.d.ts.map +1 -0
- package/lib/utils/scroll-lock.js +197 -0
- package/lib/utils/scroll-lock.js.map +1 -0
- package/lib/utils/styles.d.ts +27 -0
- package/lib/utils/styles.d.ts.map +1 -0
- package/lib/utils/styles.js +53 -0
- package/lib/utils/styles.js.map +1 -0
- package/lib/version.d.ts +8 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +11 -0
- package/lib/version.js.map +1 -0
- package/package.json +163 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/components/file-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TyIcon Web Component
|
|
3
|
+
* PORTED FROM: clj/ty/components/icon.cljs
|
|
4
|
+
* SVG icon component with size variants and animations
|
|
5
|
+
*/
|
|
6
|
+
import type { IconSize, IconTempo, TyIconElement } from '../types/common.js';
|
|
7
|
+
import { TyComponent } from '../base/ty-component.js';
|
|
8
|
+
import type { PropertyChange } from '../utils/property-manager.js';
|
|
9
|
+
import * as IconRegistry from '../utils/icon-registry.js';
|
|
10
|
+
/**
|
|
11
|
+
* Component internal state (for typing TyComponent)
|
|
12
|
+
*/
|
|
13
|
+
interface IconState {
|
|
14
|
+
name: string;
|
|
15
|
+
size: string;
|
|
16
|
+
spin: boolean;
|
|
17
|
+
pulse: boolean;
|
|
18
|
+
tempo: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ty Icon Component
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```html
|
|
25
|
+
* <ty-icon name="check"></ty-icon>
|
|
26
|
+
* <ty-icon name="spinner" spin></ty-icon>
|
|
27
|
+
* <ty-icon name="heart" size="xl"></ty-icon>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class TyIcon extends TyComponent<IconState> implements TyIconElement {
|
|
31
|
+
static formAssociated: boolean;
|
|
32
|
+
protected static properties: {
|
|
33
|
+
name: {
|
|
34
|
+
type: "string";
|
|
35
|
+
visual: boolean;
|
|
36
|
+
default: string;
|
|
37
|
+
};
|
|
38
|
+
size: {
|
|
39
|
+
type: "string";
|
|
40
|
+
visual: boolean;
|
|
41
|
+
default: string;
|
|
42
|
+
};
|
|
43
|
+
spin: {
|
|
44
|
+
type: "boolean";
|
|
45
|
+
visual: boolean;
|
|
46
|
+
default: boolean;
|
|
47
|
+
};
|
|
48
|
+
pulse: {
|
|
49
|
+
type: "boolean";
|
|
50
|
+
visual: boolean;
|
|
51
|
+
default: boolean;
|
|
52
|
+
};
|
|
53
|
+
tempo: {
|
|
54
|
+
type: "string";
|
|
55
|
+
visual: boolean;
|
|
56
|
+
default: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
private _watchId;
|
|
60
|
+
/** Track currently rendered SVG to avoid unnecessary re-renders */
|
|
61
|
+
private _currentSvg;
|
|
62
|
+
/**
|
|
63
|
+
* Single shadow-DOM <slot> that holds either:
|
|
64
|
+
* - light-DOM children supplied by the user (server-side path: pasted SVG), or
|
|
65
|
+
* - fallback content driven by the registry (`name=`) or NOT_FOUND_ICON.
|
|
66
|
+
*
|
|
67
|
+
* Browser slot semantics handle precedence: when the host has assigned nodes,
|
|
68
|
+
* the slot's fallback content is hidden automatically — no detection logic needed.
|
|
69
|
+
*/
|
|
70
|
+
private _slot;
|
|
71
|
+
constructor();
|
|
72
|
+
/**
|
|
73
|
+
* Called when component connects to DOM
|
|
74
|
+
*/
|
|
75
|
+
protected onConnect(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Called when component disconnects from DOM
|
|
78
|
+
*/
|
|
79
|
+
protected onDisconnect(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Handle property changes - called BEFORE render
|
|
82
|
+
* Detects name changes to update icon registry watcher
|
|
83
|
+
*/
|
|
84
|
+
protected onPropertiesChanged(changes: PropertyChange[]): void;
|
|
85
|
+
get name(): string;
|
|
86
|
+
set name(value: string);
|
|
87
|
+
get size(): IconSize | undefined;
|
|
88
|
+
set size(value: IconSize | undefined);
|
|
89
|
+
get spin(): boolean;
|
|
90
|
+
set spin(value: boolean);
|
|
91
|
+
get pulse(): boolean;
|
|
92
|
+
set pulse(value: boolean);
|
|
93
|
+
get tempo(): IconTempo | undefined;
|
|
94
|
+
set tempo(value: IconTempo | undefined);
|
|
95
|
+
/** Build CSS classes for the host element */
|
|
96
|
+
private buildClasses;
|
|
97
|
+
/** Update host element classes */
|
|
98
|
+
private updateClasses;
|
|
99
|
+
/**
|
|
100
|
+
* Render the icon SVG
|
|
101
|
+
* Smart rendering strategy:
|
|
102
|
+
* 1. Check memory registry (instant)
|
|
103
|
+
* 2. If found in memory -> render immediately
|
|
104
|
+
* 3. If not in memory -> show NOT_FOUND_ICON immediately (prevents empty state)
|
|
105
|
+
* 4. Then check cache asynchronously and replace if found
|
|
106
|
+
* 5. Only re-render if SVG actually changed
|
|
107
|
+
*/
|
|
108
|
+
protected render(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Update the slot's fallback content.
|
|
111
|
+
* If the user has slotted light-DOM children (e.g., raw <svg>), the browser
|
|
112
|
+
* shows those instead and the fallback stays hidden — but we still keep it
|
|
113
|
+
* up to date so removing the children reveals the right registry/fallback SVG.
|
|
114
|
+
*/
|
|
115
|
+
private renderSvg;
|
|
116
|
+
}
|
|
117
|
+
export { IconRegistry };
|
|
118
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/components/icon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAA;AAYzD;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,WAAW,CAAC,SAAS,CAAE,YAAW,aAAa;IACzE,MAAM,CAAC,cAAc,UAAQ;IAK7B,SAAS,CAAC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;MAM1B;IAMD,OAAO,CAAC,QAAQ,CAAsB;IAEtC,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAa;IAEhC;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,CAA+B;;IAqB5C;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAoB3B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAQ9B;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IA6B9D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,SAAS,CAG/B;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAEnC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAEtB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,IAAI,KAAK,IAAI,SAAS,GAAG,SAAS,CAGjC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAErC;IAMD,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAoCpB,kCAAkC;IAClC,OAAO,CAAC,aAAa;IAOrB;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CAWlB;AAQD,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TyIcon Web Component
|
|
3
|
+
* PORTED FROM: clj/ty/components/icon.cljs
|
|
4
|
+
* SVG icon component with size variants and animations
|
|
5
|
+
*/
|
|
6
|
+
import { TyComponent } from '../base/ty-component.js';
|
|
7
|
+
import { ensureStyles } from '../utils/styles.js';
|
|
8
|
+
import { iconStyles } from '../styles/icon.js';
|
|
9
|
+
import * as IconRegistry from '../utils/icon-registry.js';
|
|
10
|
+
let _iconIdCounter = 0;
|
|
11
|
+
/** Fallback SVG for missing icons - More visible to prevent layout shift */
|
|
12
|
+
const NOT_FOUND_ICON = `<svg xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
viewBox="0 0 512 512"
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
opacity="0.2">
|
|
16
|
+
<path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/>
|
|
17
|
+
</svg>`;
|
|
18
|
+
/**
|
|
19
|
+
* Ty Icon Component
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```html
|
|
23
|
+
* <ty-icon name="check"></ty-icon>
|
|
24
|
+
* <ty-icon name="spinner" spin></ty-icon>
|
|
25
|
+
* <ty-icon name="heart" size="xl"></ty-icon>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class TyIcon extends TyComponent {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(); // TyComponent handles attachInternals() and attachShadow()
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// INTERNAL STATE - Not managed by PropertyManager
|
|
33
|
+
// ============================================================================
|
|
34
|
+
this._watchId = null;
|
|
35
|
+
/** Track currently rendered SVG to avoid unnecessary re-renders */
|
|
36
|
+
this._currentSvg = '';
|
|
37
|
+
/**
|
|
38
|
+
* Single shadow-DOM <slot> that holds either:
|
|
39
|
+
* - light-DOM children supplied by the user (server-side path: pasted SVG), or
|
|
40
|
+
* - fallback content driven by the registry (`name=`) or NOT_FOUND_ICON.
|
|
41
|
+
*
|
|
42
|
+
* Browser slot semantics handle precedence: when the host has assigned nodes,
|
|
43
|
+
* the slot's fallback content is hidden automatically — no detection logic needed.
|
|
44
|
+
*/
|
|
45
|
+
this._slot = null;
|
|
46
|
+
// Apply styles to shadow root
|
|
47
|
+
ensureStyles(this.shadowRoot, { css: iconStyles, id: 'ty-icon' });
|
|
48
|
+
// Build the slot once. Fallback content shows when no light-DOM children are slotted.
|
|
49
|
+
this._slot = document.createElement('slot');
|
|
50
|
+
this._slot.innerHTML = NOT_FOUND_ICON;
|
|
51
|
+
this._currentSvg = NOT_FOUND_ICON;
|
|
52
|
+
this.shadowRoot.appendChild(this._slot);
|
|
53
|
+
}
|
|
54
|
+
// observedAttributes auto-generated by TyComponent from properties config
|
|
55
|
+
// ============================================================================
|
|
56
|
+
// TYCOMPONENT LIFECYCLE HOOKS
|
|
57
|
+
// ============================================================================
|
|
58
|
+
/**
|
|
59
|
+
* Called when component connects to DOM
|
|
60
|
+
*/
|
|
61
|
+
onConnect() {
|
|
62
|
+
// Generate unique watch ID
|
|
63
|
+
this._watchId = `ty-icon-${++_iconIdCounter}`;
|
|
64
|
+
// Watch for registry changes that affect this icon
|
|
65
|
+
if (this.name) {
|
|
66
|
+
IconRegistry.addWatcher(this._watchId, this.name, (changedIcons) => {
|
|
67
|
+
// Re-render if our icon changed
|
|
68
|
+
if (this.name && changedIcons.has(this.name)) {
|
|
69
|
+
this.render();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// Update host element classes
|
|
74
|
+
this.updateClasses();
|
|
75
|
+
// TyComponent will call render() automatically after this hook
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Called when component disconnects from DOM
|
|
79
|
+
*/
|
|
80
|
+
onDisconnect() {
|
|
81
|
+
// Clean up watcher
|
|
82
|
+
if (this._watchId) {
|
|
83
|
+
IconRegistry.removeWatcher(this._watchId);
|
|
84
|
+
this._watchId = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Handle property changes - called BEFORE render
|
|
89
|
+
* Detects name changes to update icon registry watcher
|
|
90
|
+
*/
|
|
91
|
+
onPropertiesChanged(changes) {
|
|
92
|
+
for (const change of changes) {
|
|
93
|
+
if (change.name === 'name') {
|
|
94
|
+
// Remove old watcher
|
|
95
|
+
if (this._watchId) {
|
|
96
|
+
IconRegistry.removeWatcher(this._watchId);
|
|
97
|
+
}
|
|
98
|
+
// Re-add watcher for new name
|
|
99
|
+
const newName = change.newValue || '';
|
|
100
|
+
if (newName && this.isConnected) {
|
|
101
|
+
this._watchId = `ty-icon-${++_iconIdCounter}`;
|
|
102
|
+
IconRegistry.addWatcher(this._watchId, newName, (changedIcons) => {
|
|
103
|
+
if (this.name && changedIcons.has(this.name)) {
|
|
104
|
+
this.render();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Update host element classes for any visual change
|
|
111
|
+
this.updateClasses();
|
|
112
|
+
}
|
|
113
|
+
// ============================================================================
|
|
114
|
+
// PROPERTY ACCESSORS - Simple wrappers (no logic!)
|
|
115
|
+
// ============================================================================
|
|
116
|
+
get name() {
|
|
117
|
+
return this.getProperty('name');
|
|
118
|
+
}
|
|
119
|
+
set name(value) {
|
|
120
|
+
this.setProperty('name', value);
|
|
121
|
+
}
|
|
122
|
+
get size() {
|
|
123
|
+
const val = this.getProperty('size');
|
|
124
|
+
return val || undefined;
|
|
125
|
+
}
|
|
126
|
+
set size(value) {
|
|
127
|
+
this.setProperty('size', value || '');
|
|
128
|
+
}
|
|
129
|
+
get spin() {
|
|
130
|
+
return this.getProperty('spin');
|
|
131
|
+
}
|
|
132
|
+
set spin(value) {
|
|
133
|
+
this.setProperty('spin', value);
|
|
134
|
+
}
|
|
135
|
+
get pulse() {
|
|
136
|
+
return this.getProperty('pulse');
|
|
137
|
+
}
|
|
138
|
+
set pulse(value) {
|
|
139
|
+
this.setProperty('pulse', value);
|
|
140
|
+
}
|
|
141
|
+
get tempo() {
|
|
142
|
+
const val = this.getProperty('tempo');
|
|
143
|
+
return val || undefined;
|
|
144
|
+
}
|
|
145
|
+
set tempo(value) {
|
|
146
|
+
this.setProperty('tempo', value || '');
|
|
147
|
+
}
|
|
148
|
+
// ============================================================================
|
|
149
|
+
// RENDERING
|
|
150
|
+
// ============================================================================
|
|
151
|
+
/** Build CSS classes for the host element */
|
|
152
|
+
buildClasses() {
|
|
153
|
+
const classes = [];
|
|
154
|
+
// Size class
|
|
155
|
+
const size = this.getProperty('size');
|
|
156
|
+
if (size) {
|
|
157
|
+
classes.push(`icon-${size}`);
|
|
158
|
+
}
|
|
159
|
+
// Animation classes
|
|
160
|
+
if (this.getProperty('spin')) {
|
|
161
|
+
classes.push('icon-spin');
|
|
162
|
+
}
|
|
163
|
+
if (this.getProperty('pulse')) {
|
|
164
|
+
classes.push('icon-pulse');
|
|
165
|
+
}
|
|
166
|
+
// Tempo class
|
|
167
|
+
const tempo = this.getProperty('tempo');
|
|
168
|
+
if (tempo && (this.getProperty('spin') || this.getProperty('pulse'))) {
|
|
169
|
+
classes.push(`icon-tempo-${tempo}`);
|
|
170
|
+
}
|
|
171
|
+
// Preserve user-added classes that don't conflict
|
|
172
|
+
const currentClasses = this.className.split(/\s+/).filter(cls => {
|
|
173
|
+
// Filter out component-managed classes
|
|
174
|
+
return cls &&
|
|
175
|
+
!cls.startsWith('icon-') &&
|
|
176
|
+
cls !== 'icon-spin' &&
|
|
177
|
+
cls !== 'icon-pulse';
|
|
178
|
+
});
|
|
179
|
+
return [...classes, ...currentClasses];
|
|
180
|
+
}
|
|
181
|
+
/** Update host element classes */
|
|
182
|
+
updateClasses() {
|
|
183
|
+
const newClasses = this.buildClasses().join(' ');
|
|
184
|
+
if (this.className !== newClasses) {
|
|
185
|
+
this.className = newClasses;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Render the icon SVG
|
|
190
|
+
* Smart rendering strategy:
|
|
191
|
+
* 1. Check memory registry (instant)
|
|
192
|
+
* 2. If found in memory -> render immediately
|
|
193
|
+
* 3. If not in memory -> show NOT_FOUND_ICON immediately (prevents empty state)
|
|
194
|
+
* 4. Then check cache asynchronously and replace if found
|
|
195
|
+
* 5. Only re-render if SVG actually changed
|
|
196
|
+
*/
|
|
197
|
+
render() {
|
|
198
|
+
const name = this.getProperty('name');
|
|
199
|
+
if (!name) {
|
|
200
|
+
this.renderSvg(NOT_FOUND_ICON);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
// Fast path: Check memory registry first
|
|
204
|
+
const memorySvg = IconRegistry.getIcon(name);
|
|
205
|
+
if (memorySvg) {
|
|
206
|
+
this.renderSvg(memorySvg);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
this.renderSvg(NOT_FOUND_ICON);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Update the slot's fallback content.
|
|
213
|
+
* If the user has slotted light-DOM children (e.g., raw <svg>), the browser
|
|
214
|
+
* shows those instead and the fallback stays hidden — but we still keep it
|
|
215
|
+
* up to date so removing the children reveals the right registry/fallback SVG.
|
|
216
|
+
*/
|
|
217
|
+
renderSvg(svg) {
|
|
218
|
+
// Only render if content actually changed
|
|
219
|
+
if (this._currentSvg === svg) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
if (this._slot) {
|
|
223
|
+
this._slot.innerHTML = svg;
|
|
224
|
+
this._currentSvg = svg;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
TyIcon.formAssociated = false;
|
|
229
|
+
// ============================================================================
|
|
230
|
+
// PROPERTY CONFIGURATION - Declarative property lifecycle
|
|
231
|
+
// ============================================================================
|
|
232
|
+
TyIcon.properties = {
|
|
233
|
+
name: { type: 'string', visual: true, default: '' },
|
|
234
|
+
size: { type: 'string', visual: true, default: '' },
|
|
235
|
+
spin: { type: 'boolean', visual: true, default: false },
|
|
236
|
+
pulse: { type: 'boolean', visual: true, default: false },
|
|
237
|
+
tempo: { type: 'string', visual: true, default: '' },
|
|
238
|
+
};
|
|
239
|
+
// Register the custom element
|
|
240
|
+
if (!customElements.get('ty-icon')) {
|
|
241
|
+
customElements.define('ty-icon', TyIcon);
|
|
242
|
+
}
|
|
243
|
+
// Export for use in other modules
|
|
244
|
+
export { IconRegistry };
|
|
245
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/components/icon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TyInput Web Component
|
|
3
|
+
* PORTED FROM: clj/ty/components/input.cljs
|
|
4
|
+
* Phase D: Complete with debounce feature for input and change events
|
|
5
|
+
*
|
|
6
|
+
* Enhanced input component with:
|
|
7
|
+
* - Label, error messages, semantic styling
|
|
8
|
+
* - Icon slots (start/end)
|
|
9
|
+
* - Numeric formatting with shadow values
|
|
10
|
+
* - Currency, percent, compact notation
|
|
11
|
+
* - Format-on-blur / raw-on-focus behavior
|
|
12
|
+
* - Debounce (0-5000ms) for input/change events
|
|
13
|
+
* - Immediate event firing on blur (cancels pending debounce)
|
|
14
|
+
*
|
|
15
|
+
* NOTE: Checkbox functionality is in separate ty-checkbox component
|
|
16
|
+
*/
|
|
17
|
+
import type { Flavor, Size, InputType, TyInputElement } from '../types/common.js';
|
|
18
|
+
import { TyComponent } from '../base/ty-component.js';
|
|
19
|
+
import type { PropertyChange } from '../utils/property-manager.js';
|
|
20
|
+
/**
|
|
21
|
+
* Ty Input Component (Phase D - Complete with Debounce)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```html
|
|
25
|
+
* <!-- Basic input -->
|
|
26
|
+
* <ty-input label="Email" type="email" placeholder="Enter email" required></ty-input>
|
|
27
|
+
*
|
|
28
|
+
* <!-- With icons -->
|
|
29
|
+
* <ty-input label="Search">
|
|
30
|
+
* <ty-icon slot="start" name="search"></ty-icon>
|
|
31
|
+
* </ty-input>
|
|
32
|
+
*
|
|
33
|
+
* <!-- With debounce (500ms) -->
|
|
34
|
+
* <ty-input
|
|
35
|
+
* label="Search"
|
|
36
|
+
* debounce="500"
|
|
37
|
+
* placeholder="Type to search...">
|
|
38
|
+
* </ty-input>
|
|
39
|
+
*
|
|
40
|
+
* <!-- Currency formatting -->
|
|
41
|
+
* <ty-input
|
|
42
|
+
* label="Price"
|
|
43
|
+
* type="currency"
|
|
44
|
+
* currency="USD"
|
|
45
|
+
* locale="en-US"
|
|
46
|
+
* value="1234.56">
|
|
47
|
+
* </ty-input>
|
|
48
|
+
*
|
|
49
|
+
* <!-- Percent formatting -->
|
|
50
|
+
* <ty-input
|
|
51
|
+
* label="Tax Rate"
|
|
52
|
+
* type="percent"
|
|
53
|
+
* value="15"
|
|
54
|
+
* precision="2">
|
|
55
|
+
* </ty-input>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
/**
|
|
59
|
+
* Internal state interface for TyInput component
|
|
60
|
+
*/
|
|
61
|
+
interface InputState {
|
|
62
|
+
shadowValue: number | string | null;
|
|
63
|
+
isFocused: boolean;
|
|
64
|
+
listenersSetup: boolean;
|
|
65
|
+
inputHandler: ((e: Event) => void) | null;
|
|
66
|
+
changeHandler: ((e: Event) => void) | null;
|
|
67
|
+
focusHandler: ((e: Event) => void) | null;
|
|
68
|
+
blurHandler: ((e: Event) => void) | null;
|
|
69
|
+
inputDebounceTimer: number | null;
|
|
70
|
+
changeDebounceTimer: number | null;
|
|
71
|
+
localeObserver?: () => void;
|
|
72
|
+
}
|
|
73
|
+
export declare class TyInput extends TyComponent<InputState> implements TyInputElement {
|
|
74
|
+
static formAssociated: boolean;
|
|
75
|
+
protected static properties: {
|
|
76
|
+
type: {
|
|
77
|
+
type: "string";
|
|
78
|
+
visual: boolean;
|
|
79
|
+
default: string;
|
|
80
|
+
validate: (v: any) => boolean;
|
|
81
|
+
coerce: (v: any) => any;
|
|
82
|
+
};
|
|
83
|
+
value: {
|
|
84
|
+
type: "string";
|
|
85
|
+
visual: boolean;
|
|
86
|
+
formValue: boolean;
|
|
87
|
+
emitChange: boolean;
|
|
88
|
+
default: string;
|
|
89
|
+
};
|
|
90
|
+
name: {
|
|
91
|
+
type: "string";
|
|
92
|
+
default: string;
|
|
93
|
+
};
|
|
94
|
+
placeholder: {
|
|
95
|
+
type: "string";
|
|
96
|
+
visual: boolean;
|
|
97
|
+
default: string;
|
|
98
|
+
};
|
|
99
|
+
label: {
|
|
100
|
+
type: "string";
|
|
101
|
+
visual: boolean;
|
|
102
|
+
default: string;
|
|
103
|
+
};
|
|
104
|
+
disabled: {
|
|
105
|
+
type: "boolean";
|
|
106
|
+
visual: boolean;
|
|
107
|
+
default: boolean;
|
|
108
|
+
};
|
|
109
|
+
required: {
|
|
110
|
+
type: "boolean";
|
|
111
|
+
visual: boolean;
|
|
112
|
+
default: boolean;
|
|
113
|
+
};
|
|
114
|
+
error: {
|
|
115
|
+
type: "string";
|
|
116
|
+
visual: boolean;
|
|
117
|
+
default: string;
|
|
118
|
+
};
|
|
119
|
+
size: {
|
|
120
|
+
type: "string";
|
|
121
|
+
visual: boolean;
|
|
122
|
+
default: string;
|
|
123
|
+
validate: (v: any) => boolean;
|
|
124
|
+
coerce: (v: any) => any;
|
|
125
|
+
};
|
|
126
|
+
flavor: {
|
|
127
|
+
type: "string";
|
|
128
|
+
visual: boolean;
|
|
129
|
+
default: string;
|
|
130
|
+
validate: (v: any) => boolean;
|
|
131
|
+
coerce: (v: any) => any;
|
|
132
|
+
};
|
|
133
|
+
currency: {
|
|
134
|
+
type: "string";
|
|
135
|
+
visual: boolean;
|
|
136
|
+
default: string;
|
|
137
|
+
};
|
|
138
|
+
locale: {
|
|
139
|
+
type: "string";
|
|
140
|
+
visual: boolean;
|
|
141
|
+
default: string;
|
|
142
|
+
};
|
|
143
|
+
precision: {
|
|
144
|
+
type: "number";
|
|
145
|
+
visual: boolean;
|
|
146
|
+
default: undefined;
|
|
147
|
+
validate: (v: any) => boolean;
|
|
148
|
+
coerce: (v: any) => number | undefined;
|
|
149
|
+
};
|
|
150
|
+
debounce: {
|
|
151
|
+
type: "number";
|
|
152
|
+
default: number;
|
|
153
|
+
validate: (v: any) => boolean;
|
|
154
|
+
coerce: (v: any) => number;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
private _shadowValue;
|
|
158
|
+
private _isFocused;
|
|
159
|
+
private _listenersSetup;
|
|
160
|
+
private _inputHandler;
|
|
161
|
+
private _changeHandler;
|
|
162
|
+
private _focusHandler;
|
|
163
|
+
private _blurHandler;
|
|
164
|
+
private _inputDebounceTimer;
|
|
165
|
+
private _changeDebounceTimer;
|
|
166
|
+
private _localeObserver?;
|
|
167
|
+
constructor();
|
|
168
|
+
/**
|
|
169
|
+
* Called when component connects to DOM
|
|
170
|
+
* TyComponent already handled pre-connection property capture
|
|
171
|
+
*/
|
|
172
|
+
protected onConnect(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Called when component disconnects from DOM
|
|
175
|
+
*/
|
|
176
|
+
protected onDisconnect(): void;
|
|
177
|
+
/**
|
|
178
|
+
* Handle property changes - called BEFORE render
|
|
179
|
+
* This replaces the old attributeChangedCallback logic
|
|
180
|
+
*/
|
|
181
|
+
protected onPropertiesChanged(changes: PropertyChange[]): void;
|
|
182
|
+
/**
|
|
183
|
+
* Hook: Called when form is reset
|
|
184
|
+
* Clear shadow value and focus state
|
|
185
|
+
*/
|
|
186
|
+
protected onFormReset(): void;
|
|
187
|
+
/**
|
|
188
|
+
* Override form value to return shadow value
|
|
189
|
+
* This ensures numeric types submit their parsed values
|
|
190
|
+
*/
|
|
191
|
+
protected getFormValue(): FormDataEntryValue | null;
|
|
192
|
+
/**
|
|
193
|
+
* Initialize shadow value from the initial value attribute
|
|
194
|
+
*/
|
|
195
|
+
private initializeShadowValue;
|
|
196
|
+
/**
|
|
197
|
+
* Parse a string value to the appropriate shadow value type
|
|
198
|
+
*/
|
|
199
|
+
private parseShadowValue;
|
|
200
|
+
/**
|
|
201
|
+
* Check if current input should format numbers
|
|
202
|
+
*/
|
|
203
|
+
private shouldFormat;
|
|
204
|
+
/**
|
|
205
|
+
* Get the format configuration for current input
|
|
206
|
+
*/
|
|
207
|
+
private getFormatConfig;
|
|
208
|
+
/**
|
|
209
|
+
* Get the display value (formatted or raw)
|
|
210
|
+
*/
|
|
211
|
+
private getDisplayValue;
|
|
212
|
+
get type(): InputType;
|
|
213
|
+
set type(v: InputType);
|
|
214
|
+
get value(): string;
|
|
215
|
+
set value(v: string);
|
|
216
|
+
get name(): string;
|
|
217
|
+
set name(v: string);
|
|
218
|
+
get placeholder(): string;
|
|
219
|
+
set placeholder(v: string);
|
|
220
|
+
get label(): string;
|
|
221
|
+
set label(v: string);
|
|
222
|
+
get disabled(): boolean;
|
|
223
|
+
set disabled(v: boolean);
|
|
224
|
+
get required(): boolean;
|
|
225
|
+
set required(v: boolean);
|
|
226
|
+
get error(): string;
|
|
227
|
+
set error(v: string);
|
|
228
|
+
get size(): Size;
|
|
229
|
+
set size(v: Size);
|
|
230
|
+
get flavor(): Flavor;
|
|
231
|
+
set flavor(v: Flavor);
|
|
232
|
+
get currency(): string;
|
|
233
|
+
set currency(v: string);
|
|
234
|
+
get locale(): string;
|
|
235
|
+
set locale(v: string);
|
|
236
|
+
get precision(): number | undefined;
|
|
237
|
+
set precision(v: number | string | undefined);
|
|
238
|
+
get debounce(): number;
|
|
239
|
+
set debounce(v: number | string);
|
|
240
|
+
get form(): HTMLFormElement | null;
|
|
241
|
+
/**
|
|
242
|
+
* Build CSS class list for input wrapper
|
|
243
|
+
*/
|
|
244
|
+
private buildClassList;
|
|
245
|
+
/**
|
|
246
|
+
* Dispatch input event (helper method for debouncing)
|
|
247
|
+
*/
|
|
248
|
+
private dispatchInputEvent;
|
|
249
|
+
/**
|
|
250
|
+
* Dispatch change event (helper method for debouncing)
|
|
251
|
+
*/
|
|
252
|
+
private dispatchChangeEvent;
|
|
253
|
+
/**
|
|
254
|
+
* Remove event listeners for cleanup
|
|
255
|
+
*/
|
|
256
|
+
private removeEventListeners;
|
|
257
|
+
/**
|
|
258
|
+
* Setup event listeners for input element
|
|
259
|
+
* IMPORTANT: Only called ONCE, not on every render (like ClojureScript)
|
|
260
|
+
*/
|
|
261
|
+
private setupEventListeners;
|
|
262
|
+
/**
|
|
263
|
+
* Render the input component with wrapper and slots
|
|
264
|
+
* Phase C: Uses getDisplayValue() for formatted output
|
|
265
|
+
*
|
|
266
|
+
*/
|
|
267
|
+
render(): void;
|
|
268
|
+
}
|
|
269
|
+
export {};
|
|
270
|
+
//# sourceMappingURL=input.d.ts.map
|