@tachui/primitives 0.8.0-alpha

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 (49) hide show
  1. package/LICENSE +363 -0
  2. package/README.md +458 -0
  3. package/dist/BasicInput-CWFHw9rL.js +390 -0
  4. package/dist/Divider-DWgDKavU.js +474 -0
  5. package/dist/HTML-aWcvQ0VC.js +321 -0
  6. package/dist/Picker-DrZ7ibdt.js +1675 -0
  7. package/dist/Text-DYyFBJ6i.js +165 -0
  8. package/dist/controls/Button.d.ts +250 -0
  9. package/dist/controls/Button.d.ts.map +1 -0
  10. package/dist/controls/Link.d.ts +365 -0
  11. package/dist/controls/Link.d.ts.map +1 -0
  12. package/dist/controls/Picker.d.ts +153 -0
  13. package/dist/controls/Picker.d.ts.map +1 -0
  14. package/dist/controls/Toggle.d.ts +207 -0
  15. package/dist/controls/Toggle.d.ts.map +1 -0
  16. package/dist/controls/index.d.ts +8 -0
  17. package/dist/controls/index.d.ts.map +1 -0
  18. package/dist/controls/index.js +18 -0
  19. package/dist/display/HTML.d.ts +120 -0
  20. package/dist/display/HTML.d.ts.map +1 -0
  21. package/dist/display/Image.d.ts +192 -0
  22. package/dist/display/Image.d.ts.map +1 -0
  23. package/dist/display/Text.d.ts +269 -0
  24. package/dist/display/Text.d.ts.map +1 -0
  25. package/dist/display/index.d.ts +7 -0
  26. package/dist/display/index.d.ts.map +1 -0
  27. package/dist/display/index.js +21 -0
  28. package/dist/forms/BasicForm.d.ts +141 -0
  29. package/dist/forms/BasicForm.d.ts.map +1 -0
  30. package/dist/forms/BasicInput.d.ts +116 -0
  31. package/dist/forms/BasicInput.d.ts.map +1 -0
  32. package/dist/forms/index.d.ts +6 -0
  33. package/dist/forms/index.d.ts.map +1 -0
  34. package/dist/forms/index.js +10 -0
  35. package/dist/index.d.ts +11 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +485 -0
  38. package/dist/layout/Divider.d.ts +168 -0
  39. package/dist/layout/Divider.d.ts.map +1 -0
  40. package/dist/layout/Spacer.d.ts +35 -0
  41. package/dist/layout/Spacer.d.ts.map +1 -0
  42. package/dist/layout/Stack.d.ts +74 -0
  43. package/dist/layout/Stack.d.ts.map +1 -0
  44. package/dist/layout/index.d.ts +7 -0
  45. package/dist/layout/index.d.ts.map +1 -0
  46. package/dist/layout/index.js +15 -0
  47. package/dist/validation.d.ts +91 -0
  48. package/dist/validation.d.ts.map +1 -0
  49. package/package.json +82 -0
@@ -0,0 +1,165 @@
1
+ import { ComponentWithCSSClasses as l, processElementOverride as c, h, text as f, createModifiableComponent as d, createModifierBuilder as u } from "@tachui/core";
2
+ var p = Object.defineProperty, g = (e, t, i) => t in e ? p(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, s = (e, t, i) => g(e, typeof t != "symbol" ? t + "" : t, i);
3
+ const a = {
4
+ largeTitle: { size: 34, weight: "400", lineHeight: 1.2 },
5
+ title: { size: 28, weight: "400", lineHeight: 1.3 },
6
+ title2: { size: 22, weight: "400", lineHeight: 1.3 },
7
+ title3: { size: 20, weight: "400", lineHeight: 1.4 },
8
+ headline: { size: 17, weight: "600", lineHeight: 1.4 },
9
+ body: { size: 17, weight: "400", lineHeight: 1.5 },
10
+ callout: { size: 16, weight: "400", lineHeight: 1.4 },
11
+ subheadline: { size: 15, weight: "400", lineHeight: 1.4 },
12
+ footnote: { size: 13, weight: "400", lineHeight: 1.3 },
13
+ caption: { size: 12, weight: "400", lineHeight: 1.2 },
14
+ caption2: { size: 11, weight: "400", lineHeight: 1.1 }
15
+ };
16
+ function b(e) {
17
+ const t = d(e), i = u(t), n = {
18
+ ...t,
19
+ modifier: i,
20
+ modifierBuilder: i
21
+ };
22
+ return e && typeof e.concat == "function" && (n.concat = function(r) {
23
+ return e.concat(r);
24
+ }, n.toSegment = function() {
25
+ return e.toSegment();
26
+ }, n.isConcatenatable = function() {
27
+ return e.isConcatenatable();
28
+ }), n;
29
+ }
30
+ class m extends l {
31
+ constructor(t) {
32
+ super(), this.props = t, s(this, "type", "component"), s(this, "id"), s(this, "mounted", !1), s(this, "cleanup", []), s(this, "effectiveTag"), s(this, "validationResult"), this.id = `text-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
33
+ const i = c("Text", "span", this.props.element);
34
+ this.effectiveTag = i.tag, this.validationResult = i.validation;
35
+ }
36
+ /**
37
+ * Render the text component with reactive content handling, element override support, and CSS classes
38
+ */
39
+ render() {
40
+ const t = ["tachui-text"], i = this.createClassString(this.props, t);
41
+ return [h(
42
+ this.effectiveTag,
43
+ {
44
+ className: i,
45
+ // Pass through debug label for debug system
46
+ ...this.props.debugLabel && { debugLabel: this.props.debugLabel },
47
+ // Add component metadata for semantic role processing
48
+ componentMetadata: {
49
+ originalType: "Text",
50
+ overriddenTo: this.effectiveTag !== "span" ? this.effectiveTag : void 0,
51
+ validationResult: this.validationResult
52
+ }
53
+ },
54
+ f(this.props.content || "")
55
+ )];
56
+ }
57
+ // Concatenation support - simplified for now
58
+ concat(t) {
59
+ return this;
60
+ }
61
+ toSegment() {
62
+ return this;
63
+ }
64
+ isConcatenatable() {
65
+ return !0;
66
+ }
67
+ /**
68
+ * Cleanup resources
69
+ */
70
+ dispose() {
71
+ this.cleanup.forEach((t) => {
72
+ try {
73
+ t();
74
+ } catch (i) {
75
+ console.error("Text component cleanup error:", i);
76
+ }
77
+ }), this.cleanup = [];
78
+ }
79
+ }
80
+ function o(e, t) {
81
+ const i = new m({ content: e, ...t });
82
+ return b(i);
83
+ }
84
+ const y = {
85
+ /**
86
+ * Create formatted text with multiple styling options
87
+ */
88
+ formatted(e, t, i) {
89
+ const n = { ...i };
90
+ return t.bold && (n.font = { ...n.font, weight: "bold" }), t.italic && (n.font = { ...n.font, style: "italic" }), t.underline && (n.textDecoration = "underline"), t.strikethrough && (n.textDecoration = "line-through"), t.monospace && (n.font = { ...n.font, family: "monospace" }), t.smallCaps && (n.font = { ...n.font, variant: "small-caps" }), o(e, n);
91
+ },
92
+ /**
93
+ * Create bold text
94
+ */
95
+ bold(e, t) {
96
+ return o(e, {
97
+ font: { weight: "bold" },
98
+ ...t
99
+ });
100
+ },
101
+ /**
102
+ * Create italic text
103
+ */
104
+ italic(e, t) {
105
+ return o(e, {
106
+ font: { style: "italic" },
107
+ ...t
108
+ });
109
+ },
110
+ /**
111
+ * Create underlined text
112
+ */
113
+ underline(e, t) {
114
+ return o(e, {
115
+ textDecoration: "underline",
116
+ ...t
117
+ });
118
+ },
119
+ /**
120
+ * Create monospace text
121
+ */
122
+ monospace(e, t) {
123
+ return o(e, {
124
+ font: { family: "monospace" },
125
+ ...t
126
+ });
127
+ }
128
+ }, w = {
129
+ heading: (e = 1) => ({
130
+ font: a[e === 1 ? "largeTitle" : e === 2 ? "title" : e === 3 ? "title2" : e === 4 ? "title3" : e === 5 ? "headline" : "body"],
131
+ accessibilityRole: "heading",
132
+ accessibilityLevel: e
133
+ }),
134
+ body: () => ({
135
+ font: a.body,
136
+ accessibilityRole: "text"
137
+ }),
138
+ caption: () => ({
139
+ font: a.caption,
140
+ color: "#666666"
141
+ }),
142
+ footnote: () => ({
143
+ font: a.footnote,
144
+ color: "#888888"
145
+ }),
146
+ // Typography preset functions
147
+ LargeTitle: (e, t) => o(e, { font: a.largeTitle, ...t }),
148
+ Title: (e, t) => o(e, { font: a.title, ...t }),
149
+ Title2: (e, t) => o(e, { font: a.title2, ...t }),
150
+ Title3: (e, t) => o(e, { font: a.title3, ...t }),
151
+ Headline: (e, t) => o(e, { font: a.headline, ...t }),
152
+ Body: (e, t) => o(e, { font: a.body, ...t }),
153
+ Callout: (e, t) => o(e, { font: a.callout, ...t }),
154
+ Subheadline: (e, t) => o(e, { font: a.subheadline, ...t }),
155
+ Footnote: (e, t) => o(e, { font: a.footnote, ...t }),
156
+ Caption: (e, t) => o(e, { font: a.caption, ...t }),
157
+ Caption2: (e, t) => o(e, { font: a.caption2, ...t })
158
+ };
159
+ export {
160
+ m as E,
161
+ o as T,
162
+ y as a,
163
+ w as b,
164
+ a as c
165
+ };
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Enhanced Button Component (Phase 5.2)
3
+ *
4
+ * SwiftUI-inspired Button component with press states, variants,
5
+ * and advanced interaction handling.
6
+ */
7
+ import type { ModifiableComponent, ModifierBuilder, ComponentInstance, ComponentProps, Signal } from '@tachui/core';
8
+ import { ColorAsset } from '@tachui/core';
9
+ import type { Concatenatable, ComponentSegment } from '@tachui/core';
10
+ import { ConcatenatedComponent } from '@tachui/core';
11
+ import { ComponentWithCSSClasses, type CSSClassesProps } from '@tachui/core';
12
+ /**
13
+ * Button role types following SwiftUI patterns
14
+ */
15
+ export type ButtonRole = 'destructive' | 'cancel' | 'none';
16
+ /**
17
+ * Button variants
18
+ */
19
+ export type ButtonVariant = 'filled' | 'outlined' | 'plain' | 'bordered' | 'borderedProminent';
20
+ /**
21
+ * Button size presets
22
+ */
23
+ export type ButtonSize = 'small' | 'medium' | 'large';
24
+ /**
25
+ * Button state
26
+ */
27
+ export type ButtonState = 'normal' | 'pressed' | 'disabled' | 'focused';
28
+ /**
29
+ * Button component properties with CSS classes support
30
+ */
31
+ export interface ButtonProps extends ComponentProps, CSSClassesProps {
32
+ title?: string | (() => string) | Signal<string>;
33
+ systemImage?: string;
34
+ action?: () => void | Promise<void>;
35
+ role?: ButtonRole;
36
+ isEnabled?: boolean | Signal<boolean>;
37
+ variant?: ButtonVariant;
38
+ size?: ButtonSize;
39
+ tint?: string | Signal<string> | ColorAsset;
40
+ backgroundColor?: string | Signal<string> | ColorAsset;
41
+ foregroundColor?: string | Signal<string> | ColorAsset;
42
+ isPressed?: Signal<boolean>;
43
+ isLoading?: boolean | Signal<boolean>;
44
+ accessibilityLabel?: string;
45
+ accessibilityHint?: string;
46
+ controlSize?: ButtonSize;
47
+ hapticFeedback?: boolean;
48
+ }
49
+ /**
50
+ * Button theme configuration
51
+ */
52
+ export interface ButtonTheme {
53
+ colors: {
54
+ primary: string;
55
+ secondary: string;
56
+ destructive: string;
57
+ background: string;
58
+ surface: string;
59
+ onPrimary: string;
60
+ onSecondary: string;
61
+ onSurface: string;
62
+ border: string;
63
+ disabled: string;
64
+ };
65
+ spacing: {
66
+ small: number;
67
+ medium: number;
68
+ large: number;
69
+ };
70
+ borderRadius: {
71
+ small: number;
72
+ medium: number;
73
+ large: number;
74
+ };
75
+ typography: {
76
+ small: {
77
+ size: number;
78
+ weight: string;
79
+ };
80
+ medium: {
81
+ size: number;
82
+ weight: string;
83
+ };
84
+ large: {
85
+ size: number;
86
+ weight: string;
87
+ };
88
+ };
89
+ }
90
+ /**
91
+ * Default button theme
92
+ */
93
+ export declare const defaultButtonTheme: ButtonTheme;
94
+ /**
95
+ * Enhanced Button component class with CSS classes support
96
+ */
97
+ export declare class EnhancedButton extends ComponentWithCSSClasses implements ComponentInstance<ButtonProps>, Concatenatable<ButtonProps> {
98
+ props: ButtonProps;
99
+ readonly type: "component";
100
+ readonly id: string;
101
+ mounted: boolean;
102
+ cleanup: (() => void)[];
103
+ stateSignal: () => ButtonState;
104
+ private setState;
105
+ theme: ButtonTheme;
106
+ constructor(props: ButtonProps, theme?: ButtonTheme);
107
+ /**
108
+ * Set up DOM event listeners for button interactions
109
+ */
110
+ private setupDOMEventListeners;
111
+ /**
112
+ * Set up reactive style updates based on state changes
113
+ */
114
+ private setupReactiveStyles;
115
+ /**
116
+ * Apply computed styles to the button element, respecting modifier-applied styles
117
+ */
118
+ private applyStylesToElement;
119
+ /**
120
+ * Convert camelCase to kebab-case for CSS properties
121
+ */
122
+ private camelToKebabCase;
123
+ /**
124
+ * Resolve color value from string, signal, or asset
125
+ */
126
+ private resolveColorValue;
127
+ /**
128
+ * Attach interaction event listeners to the button element
129
+ */
130
+ private attachInteractionEvents;
131
+ /**
132
+ * Check if button is enabled
133
+ */
134
+ isEnabled(): boolean | (() => boolean);
135
+ /**
136
+ * Render the button component
137
+ */
138
+ render(): {
139
+ type: "element";
140
+ tag: string;
141
+ props: {
142
+ debugLabel?: string | undefined;
143
+ className: string | Signal<string>;
144
+ type: string;
145
+ disabled: boolean | (() => boolean);
146
+ onClick: (() => void) | undefined;
147
+ };
148
+ children: import("@tachui/core").DOMNode[];
149
+ componentMetadata: {
150
+ id: string;
151
+ type: string;
152
+ };
153
+ }[];
154
+ /**
155
+ * Check if button is in loading state
156
+ */
157
+ isLoading(): boolean;
158
+ /**
159
+ * Check if the button has color-related modifiers applied
160
+ */
161
+ private hasColorModifiers;
162
+ /**
163
+ * Check if the button has typography-related modifiers applied
164
+ */
165
+ private hasTypographyModifiers;
166
+ /**
167
+ * Get computed button styles based on variant, size, role, and state
168
+ */
169
+ getButtonStyles(): Record<string, any>;
170
+ /**
171
+ * Handle button press with proper state management
172
+ */
173
+ handlePress(): Promise<void>;
174
+ /**
175
+ * Trigger haptic feedback (mobile Safari support)
176
+ */
177
+ private triggerHapticFeedback;
178
+ /**
179
+ * Helper to darken a color for pressed states
180
+ */
181
+ private darkenColor;
182
+ /**
183
+ * Concatenate this button with another concatenatable component
184
+ */
185
+ concat<U extends Concatenatable<any>>(other: U): ConcatenatedComponent<ButtonProps | U>;
186
+ /**
187
+ * Convert this button to a segment for concatenation
188
+ */
189
+ toSegment(): ComponentSegment;
190
+ /**
191
+ * Check if this component supports concatenation
192
+ */
193
+ isConcatenatable(): boolean;
194
+ /**
195
+ * Determine accessibility role for concatenation
196
+ */
197
+ private determineAccessibilityRole;
198
+ /**
199
+ * Merge accessibility roles when combining components
200
+ */
201
+ private mergeAccessibilityRoles;
202
+ }
203
+ /**
204
+ * Create enhanced Button component with modifier support
205
+ */
206
+ export declare function Button(title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, 'title' | 'action'>): ModifiableComponent<ButtonProps> & {
207
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
208
+ };
209
+ /**
210
+ * Button variant shortcuts
211
+ */
212
+ export declare const ButtonStyles: {
213
+ /**
214
+ * Filled button (primary)
215
+ */
216
+ Filled: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "variant">) => ModifiableComponent<ButtonProps> & {
217
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
218
+ };
219
+ /**
220
+ * Outlined button
221
+ */
222
+ Outlined: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "variant">) => ModifiableComponent<ButtonProps> & {
223
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
224
+ };
225
+ /**
226
+ * Plain button (text only)
227
+ */
228
+ Plain: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "variant">) => ModifiableComponent<ButtonProps> & {
229
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
230
+ };
231
+ /**
232
+ * Bordered button
233
+ */
234
+ Bordered: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "variant">) => ModifiableComponent<ButtonProps> & {
235
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
236
+ };
237
+ /**
238
+ * Destructive button
239
+ */
240
+ Destructive: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "role">) => ModifiableComponent<ButtonProps> & {
241
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
242
+ };
243
+ /**
244
+ * Cancel button
245
+ */
246
+ Cancel: (title: string | (() => string) | Signal<string>, action?: () => void | Promise<void>, props?: Omit<ButtonProps, "title" | "action" | "role">) => ModifiableComponent<ButtonProps> & {
247
+ modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>;
248
+ };
249
+ };
250
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/controls/Button.ts"],"names":[],"mappings":"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"}