@tachui/modifiers 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 (131) hide show
  1. package/LICENSE +363 -0
  2. package/README.md +322 -0
  3. package/dist/allows-hit-testing-DscPrcOw.js +464 -0
  4. package/dist/allows-hit-testing-DscPrcOw.js.map +1 -0
  5. package/dist/appearance/background.d.ts +38 -0
  6. package/dist/appearance/background.d.ts.map +1 -0
  7. package/dist/appearance/border.d.ts +78 -0
  8. package/dist/appearance/border.d.ts.map +1 -0
  9. package/dist/appearance/clip-shape.d.ts +23 -0
  10. package/dist/appearance/clip-shape.d.ts.map +1 -0
  11. package/dist/appearance/clipped.d.ts +21 -0
  12. package/dist/appearance/clipped.d.ts.map +1 -0
  13. package/dist/appearance/foreground.d.ts +19 -0
  14. package/dist/appearance/foreground.d.ts.map +1 -0
  15. package/dist/appearance/index.d.ts +11 -0
  16. package/dist/appearance/index.d.ts.map +1 -0
  17. package/dist/appearance/index.js +34 -0
  18. package/dist/appearance/index.js.map +1 -0
  19. package/dist/attributes/aria.d.ts +101 -0
  20. package/dist/attributes/aria.d.ts.map +1 -0
  21. package/dist/attributes/css-properties.d.ts +229 -0
  22. package/dist/attributes/css-properties.d.ts.map +1 -0
  23. package/dist/attributes/html.d.ts +108 -0
  24. package/dist/attributes/html.d.ts.map +1 -0
  25. package/dist/attributes/index.d.ts +12 -0
  26. package/dist/attributes/index.d.ts.map +1 -0
  27. package/dist/base-CkGf4b9G.js +786 -0
  28. package/dist/base-CkGf4b9G.js.map +1 -0
  29. package/dist/base.d.ts +154 -0
  30. package/dist/base.d.ts.map +1 -0
  31. package/dist/base.js +842 -0
  32. package/dist/base.js.map +1 -0
  33. package/dist/basic/base.d.ts +147 -0
  34. package/dist/basic/base.d.ts.map +1 -0
  35. package/dist/basic/index.d.ts +9 -0
  36. package/dist/basic/index.d.ts.map +1 -0
  37. package/dist/basic/margin.d.ts +266 -0
  38. package/dist/basic/margin.d.ts.map +1 -0
  39. package/dist/basic/margin.js +160 -0
  40. package/dist/basic/margin.js.map +1 -0
  41. package/dist/basic/padding.d.ts +258 -0
  42. package/dist/basic/padding.d.ts.map +1 -0
  43. package/dist/basic/padding.js +155 -0
  44. package/dist/basic/padding.js.map +1 -0
  45. package/dist/basic/size.d.ts +113 -0
  46. package/dist/basic/size.d.ts.map +1 -0
  47. package/dist/basic/size.js +78 -0
  48. package/dist/basic/size.js.map +1 -0
  49. package/dist/clipped-CCW8gJqJ.js +282 -0
  50. package/dist/clipped-CCW8gJqJ.js.map +1 -0
  51. package/dist/css-CJEXRr6H.js +124 -0
  52. package/dist/css-CJEXRr6H.js.map +1 -0
  53. package/dist/elements/decorative.d.ts +109 -0
  54. package/dist/elements/decorative.d.ts.map +1 -0
  55. package/dist/elements/index.d.ts +6 -0
  56. package/dist/elements/index.d.ts.map +1 -0
  57. package/dist/elements/pseudo-elements.d.ts +145 -0
  58. package/dist/elements/pseudo-elements.d.ts.map +1 -0
  59. package/dist/font-3qM2Z97N.js +135 -0
  60. package/dist/font-3qM2Z97N.js.map +1 -0
  61. package/dist/index.d.ts +20 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +885 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/interaction/allows-hit-testing.d.ts +31 -0
  66. package/dist/interaction/allows-hit-testing.d.ts.map +1 -0
  67. package/dist/interaction/focusable.d.ts +33 -0
  68. package/dist/interaction/focusable.d.ts.map +1 -0
  69. package/dist/interaction/focused.d.ts +28 -0
  70. package/dist/interaction/focused.d.ts.map +1 -0
  71. package/dist/interaction/index.d.ts +11 -0
  72. package/dist/interaction/index.d.ts.map +1 -0
  73. package/dist/interaction/index.js +32 -0
  74. package/dist/interaction/index.js.map +1 -0
  75. package/dist/interaction/keyboard-shortcut.d.ts +30 -0
  76. package/dist/interaction/keyboard-shortcut.d.ts.map +1 -0
  77. package/dist/interaction/on-continuous-hover.d.ts +41 -0
  78. package/dist/interaction/on-continuous-hover.d.ts.map +1 -0
  79. package/dist/interaction/on-long-press-gesture.d.ts +26 -0
  80. package/dist/interaction/on-long-press-gesture.d.ts.map +1 -0
  81. package/dist/interaction/scroll.d.ts +143 -0
  82. package/dist/interaction/scroll.d.ts.map +1 -0
  83. package/dist/layout/aspect-ratio.d.ts +65 -0
  84. package/dist/layout/aspect-ratio.d.ts.map +1 -0
  85. package/dist/layout/fixed-size.d.ts +49 -0
  86. package/dist/layout/fixed-size.d.ts.map +1 -0
  87. package/dist/layout/flexbox.d.ts +253 -0
  88. package/dist/layout/flexbox.d.ts.map +1 -0
  89. package/dist/layout/index.d.ts +19 -0
  90. package/dist/layout/index.d.ts.map +1 -0
  91. package/dist/layout/index.js +30 -0
  92. package/dist/layout/index.js.map +1 -0
  93. package/dist/layout/offset.d.ts +44 -0
  94. package/dist/layout/offset.d.ts.map +1 -0
  95. package/dist/layout/overlay.d.ts +26 -0
  96. package/dist/layout/overlay.d.ts.map +1 -0
  97. package/dist/layout/position.d.ts +55 -0
  98. package/dist/layout/position.d.ts.map +1 -0
  99. package/dist/layout/scale-effect.d.ts +51 -0
  100. package/dist/layout/scale-effect.d.ts.map +1 -0
  101. package/dist/layout/z-index.d.ts +65 -0
  102. package/dist/layout/z-index.d.ts.map +1 -0
  103. package/dist/overlay-DDiSLprp.js +774 -0
  104. package/dist/overlay-DDiSLprp.js.map +1 -0
  105. package/dist/responsive/index.d.ts +10 -0
  106. package/dist/responsive/index.d.ts.map +1 -0
  107. package/dist/types.d.ts +598 -0
  108. package/dist/types.d.ts.map +1 -0
  109. package/dist/types.js +5 -0
  110. package/dist/types.js.map +1 -0
  111. package/dist/typography/font.d.ts +24 -0
  112. package/dist/typography/font.d.ts.map +1 -0
  113. package/dist/typography/index.d.ts +9 -0
  114. package/dist/typography/index.d.ts.map +1 -0
  115. package/dist/typography/index.js +30 -0
  116. package/dist/typography/index.js.map +1 -0
  117. package/dist/typography/text.d.ts +70 -0
  118. package/dist/typography/text.d.ts.map +1 -0
  119. package/dist/typography/text.js +129 -0
  120. package/dist/typography/text.js.map +1 -0
  121. package/dist/typography/typography.d.ts +52 -0
  122. package/dist/typography/typography.d.ts.map +1 -0
  123. package/dist/utility/css.d.ts +86 -0
  124. package/dist/utility/css.d.ts.map +1 -0
  125. package/dist/utility/index.d.ts +6 -0
  126. package/dist/utility/index.d.ts.map +1 -0
  127. package/dist/utility/index.js +17 -0
  128. package/dist/utility/index.js.map +1 -0
  129. package/dist/utility/utility.d.ts +69 -0
  130. package/dist/utility/utility.d.ts.map +1 -0
  131. package/package.json +117 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Pseudo-element Modifiers - ::before and ::after styling
3
+ *
4
+ * Provides comprehensive pseudo-element support for ::before and ::after
5
+ * with dynamic stylesheet generation and flexible styling options.
6
+ */
7
+ import type { DOMNode } from '@tachui/core/runtime/types';
8
+ import { BaseModifier } from '../base';
9
+ import type { ModifierContext } from '@tachui/core/modifiers/types';
10
+ export interface PseudoElementStyles {
11
+ content?: string;
12
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
13
+ top?: number | string;
14
+ right?: number | string;
15
+ bottom?: number | string;
16
+ left?: number | string;
17
+ width?: number | string;
18
+ height?: number | string;
19
+ backgroundColor?: string;
20
+ color?: string;
21
+ fontSize?: number | string;
22
+ fontWeight?: string | number;
23
+ fontFamily?: string;
24
+ lineHeight?: number | string;
25
+ textAlign?: 'left' | 'center' | 'right' | 'justify';
26
+ margin?: number | string;
27
+ marginTop?: number | string;
28
+ marginRight?: number | string;
29
+ marginBottom?: number | string;
30
+ marginLeft?: number | string;
31
+ padding?: number | string;
32
+ paddingTop?: number | string;
33
+ paddingRight?: number | string;
34
+ paddingBottom?: number | string;
35
+ paddingLeft?: number | string;
36
+ border?: string;
37
+ borderTop?: string;
38
+ borderRight?: string;
39
+ borderBottom?: string;
40
+ borderLeft?: string;
41
+ borderRadius?: number | string;
42
+ borderWidth?: number | string;
43
+ borderStyle?: string;
44
+ borderColor?: string;
45
+ boxShadow?: string;
46
+ textShadow?: string;
47
+ opacity?: number;
48
+ transform?: string;
49
+ transformOrigin?: string;
50
+ zIndex?: number;
51
+ display?: string;
52
+ flexDirection?: string;
53
+ flexWrap?: string;
54
+ alignItems?: string;
55
+ justifyContent?: string;
56
+ alignSelf?: string;
57
+ flex?: string;
58
+ flexGrow?: number;
59
+ flexShrink?: number;
60
+ flexBasis?: string;
61
+ order?: number;
62
+ overflow?: 'visible' | 'hidden' | 'scroll' | 'auto';
63
+ overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto';
64
+ overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto';
65
+ whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line';
66
+ textOverflow?: 'clip' | 'ellipsis';
67
+ cursor?: string;
68
+ pointerEvents?: 'auto' | 'none';
69
+ visibility?: 'visible' | 'hidden';
70
+ backgroundImage?: string;
71
+ backgroundSize?: string;
72
+ backgroundPosition?: string;
73
+ backgroundRepeat?: string;
74
+ filter?: string;
75
+ backdropFilter?: string;
76
+ transition?: string;
77
+ animation?: string;
78
+ textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase';
79
+ verticalAlign?: string;
80
+ minWidth?: number | string;
81
+ minHeight?: number | string;
82
+ maxWidth?: number | string;
83
+ maxHeight?: number | string;
84
+ [key: string]: any;
85
+ }
86
+ export interface PseudoElementOptions {
87
+ before?: PseudoElementStyles;
88
+ after?: PseudoElementStyles;
89
+ }
90
+ export declare class PseudoElementModifier extends BaseModifier<PseudoElementOptions> {
91
+ readonly type = "pseudoElement";
92
+ readonly priority = 50;
93
+ private static styleSheetId;
94
+ private static elementCount;
95
+ apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined;
96
+ private addPseudoElementRule;
97
+ private generatePseudoElementCSS;
98
+ private formatCSSValue;
99
+ private getOrCreateStyleSheet;
100
+ protected toCSSProperty(prop: string): string;
101
+ }
102
+ /**
103
+ * ::before pseudo-element modifier
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * .before({
108
+ * content: '★',
109
+ * position: 'absolute',
110
+ * left: -20,
111
+ * color: '#ffd700'
112
+ * })
113
+ * ```
114
+ */
115
+ export declare function before(styles: PseudoElementStyles): PseudoElementModifier;
116
+ /**
117
+ * ::after pseudo-element modifier
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * .after({
122
+ * content: '',
123
+ * position: 'absolute',
124
+ * bottom: 0,
125
+ * left: 0,
126
+ * right: 0,
127
+ * height: 2,
128
+ * backgroundColor: '#007AFF'
129
+ * })
130
+ * ```
131
+ */
132
+ export declare function after(styles: PseudoElementStyles): PseudoElementModifier;
133
+ /**
134
+ * Both ::before and ::after pseudo-elements
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * .pseudoElements({
139
+ * before: { content: '"', fontSize: 24, color: '#666' },
140
+ * after: { content: '"', fontSize: 24, color: '#666' }
141
+ * })
142
+ * ```
143
+ */
144
+ export declare function pseudoElements(options: PseudoElementOptions): PseudoElementModifier;
145
+ //# sourceMappingURL=pseudo-elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudo-elements.d.ts","sourceRoot":"","sources":["../../src/elements/pseudo-elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ var r = Object.defineProperty;
2
+ var f = (t, i, e) => i in t ? r(t, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[i] = e;
3
+ var o = (t, i, e) => f(t, typeof i != "symbol" ? i + "" : i, e);
4
+ import { B as s } from "./base-CkGf4b9G.js";
5
+ class a extends s {
6
+ constructor() {
7
+ super(...arguments);
8
+ o(this, "type", "typography");
9
+ o(this, "priority", 30);
10
+ }
11
+ apply(e, n) {
12
+ if (!n.element) return;
13
+ const l = this.computeTypographyStyles(this.properties);
14
+ this.applyStyles(n.element, l);
15
+ }
16
+ computeTypographyStyles(e) {
17
+ const n = {};
18
+ return e.size !== void 0 && (n.fontSize = this.toCSSValue(e.size)), e.weight !== void 0 && (n.fontWeight = String(e.weight)), e.family !== void 0 && (typeof e.family == "object" && e.family !== null && "resolve" in e.family ? n.fontFamily = e.family.resolve() : n.fontFamily = e.family), e.lineHeight !== void 0 && (n.lineHeight = typeof e.lineHeight == "number" ? e.lineHeight.toString() : e.lineHeight), e.letterSpacing !== void 0 && (n.letterSpacing = this.toCSSValue(e.letterSpacing)), e.wordSpacing !== void 0 && (n.wordSpacing = this.toCSSValue(e.wordSpacing)), e.align !== void 0 && (n.textAlign = e.align), e.transform !== void 0 && (n.textTransform = `${e.transform} !important`), e.decoration !== void 0 && (n.textDecoration = `${e.decoration} !important`), e.variant !== void 0 && (n.fontVariant = e.variant), e.style !== void 0 && (n.fontStyle = e.style), e.color !== void 0 && (typeof e.color == "object" && e.color !== null && "resolve" in e.color ? n.color = e.color.resolve() : n.color = e.color), e.textOverflow !== void 0 && (n.textOverflow = e.textOverflow), e.whiteSpace !== void 0 && (n.whiteSpace = e.whiteSpace), e.overflow !== void 0 && (n.overflow = e.overflow), n;
19
+ }
20
+ toCSSValue(e) {
21
+ return typeof e == "number" ? `${e}px` : e;
22
+ }
23
+ }
24
+ function y(t) {
25
+ return new a(t);
26
+ }
27
+ function h(t) {
28
+ return new a({ align: t });
29
+ }
30
+ function c(t) {
31
+ return new a({ transform: t });
32
+ }
33
+ function d(t) {
34
+ return new a({ decoration: t });
35
+ }
36
+ function m(t) {
37
+ return new a({ size: t });
38
+ }
39
+ function S(t) {
40
+ return new a({ weight: t });
41
+ }
42
+ function v(t) {
43
+ return new a({ lineHeight: t });
44
+ }
45
+ function z(t) {
46
+ return new a({ letterSpacing: t });
47
+ }
48
+ function x(t) {
49
+ return new a({ textOverflow: t });
50
+ }
51
+ function b(t) {
52
+ return new a({ whiteSpace: t });
53
+ }
54
+ function H(t) {
55
+ return new a({ overflow: t });
56
+ }
57
+ function T(t) {
58
+ return c(t);
59
+ }
60
+ function C(t) {
61
+ return new a({ family: t });
62
+ }
63
+ function F(t) {
64
+ return typeof t == "string" ? u(t) : new a({
65
+ family: t.family,
66
+ size: t.size,
67
+ weight: t.weight,
68
+ style: t.style
69
+ });
70
+ }
71
+ function u(t) {
72
+ const i = {
73
+ ".largeTitle": { size: 34, weight: 400 },
74
+ ".title": { size: 28, weight: 400 },
75
+ ".title2": { size: 22, weight: 400 },
76
+ ".title3": { size: 20, weight: 400 },
77
+ ".headline": { size: 17, weight: 600 },
78
+ ".subheadline": { size: 15, weight: 400 },
79
+ ".body": { size: 17, weight: 400 },
80
+ ".callout": { size: 16, weight: 400 },
81
+ ".footnote": { size: 13, weight: 400 },
82
+ ".caption": { size: 12, weight: 400 },
83
+ ".caption2": { size: 11, weight: 400 }
84
+ }, e = i[t];
85
+ return e ? new a(e) : new a(i[".body"]);
86
+ }
87
+ function O(t) {
88
+ let i;
89
+ switch (t.design) {
90
+ case "serif":
91
+ i = "ui-serif, Georgia, serif";
92
+ break;
93
+ case "rounded":
94
+ i = "ui-rounded, system-ui, -apple-system, sans-serif";
95
+ break;
96
+ case "monospaced":
97
+ i = "ui-monospace, SFMono-Regular, Consolas, monospace";
98
+ break;
99
+ default:
100
+ i = "system-ui, -apple-system, BlinkMacSystemFont, sans-serif";
101
+ }
102
+ return new a({
103
+ family: i,
104
+ size: t.size,
105
+ weight: t.weight
106
+ });
107
+ }
108
+ function k(t, i) {
109
+ return new a({
110
+ family: t,
111
+ size: i?.size,
112
+ weight: i?.weight,
113
+ style: i?.style
114
+ });
115
+ }
116
+ export {
117
+ a as T,
118
+ h as a,
119
+ c as b,
120
+ d as c,
121
+ S as d,
122
+ z as e,
123
+ m as f,
124
+ x as g,
125
+ T as h,
126
+ C as i,
127
+ F as j,
128
+ k,
129
+ v as l,
130
+ H as o,
131
+ O as s,
132
+ y as t,
133
+ b as w
134
+ };
135
+ //# sourceMappingURL=font-3qM2Z97N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-3qM2Z97N.js","sources":["../src/typography/typography.ts","../src/typography/font.ts"],"sourcesContent":["/**\n * Typography Modifiers\n *\n * Comprehensive text styling modifiers\n */\n\nimport { BaseModifier } from '../basic/base'\nimport type { ModifierContext, FontWeight } from '@tachui/core/modifiers/types'\nimport type { DOMNode } from '@tachui/core/runtime/types'\n\n// Re-export FontWeight for convenience\nexport type { FontWeight }\n\nexport type TextAlign =\n | 'left'\n | 'center'\n | 'right'\n | 'justify'\n | 'start'\n | 'end'\nexport type TextTransform = 'none' | 'uppercase' | 'lowercase' | 'capitalize'\nexport type TextDecoration = 'none' | 'underline' | 'overline' | 'line-through'\nexport type FontVariant = 'normal' | 'small-caps'\nexport type FontStyle = 'normal' | 'italic' | 'oblique'\n\nexport interface TypographyOptions {\n size?: number | string\n weight?: FontWeight | number\n family?: string | any\n lineHeight?: number | string\n letterSpacing?: number | string\n wordSpacing?: number | string\n align?: TextAlign\n transform?: TextTransform\n decoration?: TextDecoration\n variant?: FontVariant\n style?: FontStyle\n color?: string\n textOverflow?: 'clip' | 'ellipsis' | 'fade' | string\n whiteSpace?:\n | 'normal'\n | 'nowrap'\n | 'pre'\n | 'pre-wrap'\n | 'pre-line'\n | 'break-spaces'\n overflow?: 'visible' | 'hidden' | 'scroll' | 'auto'\n}\n\nexport class TypographyModifier extends BaseModifier<TypographyOptions> {\n readonly type = 'typography'\n readonly priority = 30\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n const styles = this.computeTypographyStyles(this.properties)\n this.applyStyles(context.element, styles)\n\n return undefined\n }\n\n private computeTypographyStyles(props: TypographyOptions) {\n const styles: Record<string, string> = {}\n\n if (props.size !== undefined) {\n styles.fontSize = this.toCSSValue(props.size)\n }\n if (props.weight !== undefined) {\n styles.fontWeight = String(props.weight)\n }\n if (props.family !== undefined) {\n if (\n typeof props.family === 'object' &&\n props.family !== null &&\n 'resolve' in props.family\n ) {\n styles.fontFamily = props.family.resolve()\n } else {\n styles.fontFamily = props.family as string\n }\n }\n if (props.lineHeight !== undefined) {\n styles.lineHeight =\n typeof props.lineHeight === 'number'\n ? props.lineHeight.toString()\n : props.lineHeight\n }\n if (props.letterSpacing !== undefined) {\n styles.letterSpacing = this.toCSSValue(props.letterSpacing)\n }\n if (props.wordSpacing !== undefined) {\n styles.wordSpacing = this.toCSSValue(props.wordSpacing)\n }\n if (props.align !== undefined) {\n styles.textAlign = props.align\n }\n if (props.transform !== undefined) {\n styles.textTransform = `${props.transform} !important`\n }\n if (props.decoration !== undefined) {\n styles.textDecoration = `${props.decoration} !important`\n }\n if (props.variant !== undefined) {\n styles.fontVariant = props.variant\n }\n if (props.style !== undefined) {\n styles.fontStyle = props.style\n }\n if (props.color !== undefined) {\n if (\n typeof props.color === 'object' &&\n props.color !== null &&\n 'resolve' in props.color\n ) {\n styles.color = (props.color as any).resolve()\n } else {\n styles.color = props.color as string\n }\n }\n if (props.textOverflow !== undefined) {\n styles.textOverflow = props.textOverflow\n }\n if (props.whiteSpace !== undefined) {\n styles.whiteSpace = props.whiteSpace\n }\n if (props.overflow !== undefined) {\n styles.overflow = props.overflow\n }\n\n return styles\n }\n\n protected toCSSValue(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value\n }\n}\n\nexport function typography(options: TypographyOptions): TypographyModifier {\n return new TypographyModifier(options)\n}\n\nexport function textAlign(value: TextAlign): TypographyModifier {\n return new TypographyModifier({ align: value })\n}\n\nexport function textTransform(value: TextTransform): TypographyModifier {\n return new TypographyModifier({ transform: value })\n}\n\nexport function textDecoration(value: TextDecoration): TypographyModifier {\n return new TypographyModifier({ decoration: value })\n}\n\nexport function fontSize(value: number | string): TypographyModifier {\n return new TypographyModifier({ size: value })\n}\n\nexport function fontWeight(value: FontWeight | number): TypographyModifier {\n return new TypographyModifier({ weight: value })\n}\n\nexport function lineHeight(value: number | string): TypographyModifier {\n return new TypographyModifier({ lineHeight: value })\n}\n\nexport function letterSpacing(value: number | string): TypographyModifier {\n return new TypographyModifier({ letterSpacing: value })\n}\n\nexport function textOverflow(\n value: 'clip' | 'ellipsis' | 'fade' | string\n): TypographyModifier {\n return new TypographyModifier({ textOverflow: value })\n}\n\nexport function whiteSpace(\n value: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces'\n): TypographyModifier {\n return new TypographyModifier({ whiteSpace: value })\n}\n\nexport function overflow(\n value: 'visible' | 'hidden' | 'scroll' | 'auto'\n): TypographyModifier {\n return new TypographyModifier({ overflow: value })\n}\n\nexport function textCase(value: TextTransform): TypographyModifier {\n return textTransform(value)\n}\n\nexport function fontFamily(value: string | any): TypographyModifier {\n return new TypographyModifier({ family: value })\n}\n","/**\n * Font Modifiers\n *\n * SwiftUI-style font configuration modifiers\n */\n\nimport {\n TypographyModifier,\n type FontStyle,\n type FontWeight,\n} from './typography'\n\nexport interface FontOptions {\n family?: string | any\n size?: number | string\n weight?: FontWeight | any\n style?: FontStyle\n}\n\nexport function font(options: FontOptions | string): TypographyModifier {\n if (typeof options === 'string') {\n return handleFontPreset(options)\n }\n\n return new TypographyModifier({\n family: options.family,\n size: options.size,\n weight: options.weight,\n style: options.style,\n })\n}\n\nfunction handleFontPreset(preset: string): TypographyModifier {\n const presets: Record<string, FontOptions> = {\n '.largeTitle': { size: 34, weight: 400 },\n '.title': { size: 28, weight: 400 },\n '.title2': { size: 22, weight: 400 },\n '.title3': { size: 20, weight: 400 },\n '.headline': { size: 17, weight: 600 },\n '.subheadline': { size: 15, weight: 400 },\n '.body': { size: 17, weight: 400 },\n '.callout': { size: 16, weight: 400 },\n '.footnote': { size: 13, weight: 400 },\n '.caption': { size: 12, weight: 400 },\n '.caption2': { size: 11, weight: 400 },\n }\n\n const presetOptions = presets[preset]\n if (!presetOptions) {\n return new TypographyModifier(presets['.body'])\n }\n\n return new TypographyModifier(presetOptions)\n}\n\nexport function system(options: {\n size?: number | string\n weight?: FontWeight | any\n design?: 'default' | 'serif' | 'rounded' | 'monospaced'\n}): TypographyModifier {\n let family: string\n\n switch (options.design) {\n case 'serif':\n family = 'ui-serif, Georgia, serif'\n break\n case 'rounded':\n family = 'ui-rounded, system-ui, -apple-system, sans-serif'\n break\n case 'monospaced':\n family = 'ui-monospace, SFMono-Regular, Consolas, monospace'\n break\n default:\n family = 'system-ui, -apple-system, BlinkMacSystemFont, sans-serif'\n }\n\n return new TypographyModifier({\n family,\n size: options.size,\n weight: options.weight,\n })\n}\n\nexport function custom(\n family: string | any,\n options?: {\n size?: number | string\n weight?: FontWeight | any\n style?: FontStyle\n }\n): TypographyModifier {\n return new TypographyModifier({\n family,\n size: options?.size,\n weight: options?.weight,\n style: options?.style,\n })\n}\n"],"names":["TypographyModifier","BaseModifier","__publicField","_node","context","styles","props","value","typography","options","textAlign","textTransform","textDecoration","fontSize","fontWeight","lineHeight","letterSpacing","textOverflow","whiteSpace","overflow","textCase","fontFamily","font","handleFontPreset","preset","presets","presetOptions","system","family","custom"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * TachUI Modifiers - Styling System
3
+ *
4
+ * Comprehensive modifier system for declarative styling and behavior modification
5
+ *
6
+ * Auto-registers all modifiers with the global registry when imported.
7
+ */
8
+ export * from './basic/base';
9
+ export type { Modifier, ModifierContext, ModifierBuilder, ModifierRegistry, ReactiveModifierProps, CSSStyleProperties, ModifierApplicationOptions, } from '@tachui/core/modifiers/types';
10
+ export { ModifierPriority } from '@tachui/core/modifiers/types';
11
+ export * from './basic';
12
+ export * from './layout';
13
+ export * from './utility';
14
+ export * from './appearance';
15
+ export * from './typography';
16
+ export * from './interaction';
17
+ export * from './responsive';
18
+ export * from './elements';
19
+ export * from './attributes';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,cAAc,cAAc,CAAA;AAC5B,YAAY,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,cAAc,SAAS,CAAA;AAGvB,cAAc,UAAU,CAAA;AAGxB,cAAc,WAAW,CAAA;AAGzB,cAAc,cAAc,CAAA;AAG5B,cAAc,cAAc,CAAA;AAG5B,cAAc,eAAe,CAAA;AAG7B,cAAc,cAAc,CAAA;AAG5B,cAAc,YAAY,CAAA;AAG1B,cAAc,cAAc,CAAA"}