@tenphi/tasty 0.0.0-snapshot.056b911

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 (332) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +635 -0
  3. package/dist/_virtual/_rolldown/runtime.js +7 -0
  4. package/dist/chunks/cacheKey.d.ts +1 -0
  5. package/dist/chunks/cacheKey.js +77 -0
  6. package/dist/chunks/cacheKey.js.map +1 -0
  7. package/dist/chunks/definitions.d.ts +37 -0
  8. package/dist/chunks/definitions.js +258 -0
  9. package/dist/chunks/definitions.js.map +1 -0
  10. package/dist/chunks/index.d.ts +1 -0
  11. package/dist/chunks/renderChunk.d.ts +1 -0
  12. package/dist/chunks/renderChunk.js +59 -0
  13. package/dist/chunks/renderChunk.js.map +1 -0
  14. package/dist/compute-styles.d.ts +31 -0
  15. package/dist/compute-styles.js +335 -0
  16. package/dist/compute-styles.js.map +1 -0
  17. package/dist/config.d.ts +409 -0
  18. package/dist/config.js +584 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/core/index.d.ts +34 -0
  21. package/dist/core/index.js +27 -0
  22. package/dist/counter-style/index.js +51 -0
  23. package/dist/counter-style/index.js.map +1 -0
  24. package/dist/debug.d.ts +89 -0
  25. package/dist/debug.js +453 -0
  26. package/dist/debug.js.map +1 -0
  27. package/dist/font-face/index.js +63 -0
  28. package/dist/font-face/index.js.map +1 -0
  29. package/dist/hooks/index.d.ts +7 -0
  30. package/dist/hooks/useCounterStyle.d.ts +36 -0
  31. package/dist/hooks/useCounterStyle.js +64 -0
  32. package/dist/hooks/useCounterStyle.js.map +1 -0
  33. package/dist/hooks/useFontFace.d.ts +45 -0
  34. package/dist/hooks/useFontFace.js +66 -0
  35. package/dist/hooks/useFontFace.js.map +1 -0
  36. package/dist/hooks/useGlobalStyles.d.ts +46 -0
  37. package/dist/hooks/useGlobalStyles.js +88 -0
  38. package/dist/hooks/useGlobalStyles.js.map +1 -0
  39. package/dist/hooks/useKeyframes.d.ts +58 -0
  40. package/dist/hooks/useKeyframes.js +54 -0
  41. package/dist/hooks/useKeyframes.js.map +1 -0
  42. package/dist/hooks/useProperty.d.ts +81 -0
  43. package/dist/hooks/useProperty.js +96 -0
  44. package/dist/hooks/useProperty.js.map +1 -0
  45. package/dist/hooks/useRawCSS.d.ts +22 -0
  46. package/dist/hooks/useRawCSS.js +103 -0
  47. package/dist/hooks/useRawCSS.js.map +1 -0
  48. package/dist/hooks/useStyles.d.ts +40 -0
  49. package/dist/hooks/useStyles.js +31 -0
  50. package/dist/hooks/useStyles.js.map +1 -0
  51. package/dist/index.d.ts +51 -0
  52. package/dist/index.js +36 -0
  53. package/dist/injector/index.d.ts +182 -0
  54. package/dist/injector/index.js +185 -0
  55. package/dist/injector/index.js.map +1 -0
  56. package/dist/injector/injector.d.ts +193 -0
  57. package/dist/injector/injector.js +564 -0
  58. package/dist/injector/injector.js.map +1 -0
  59. package/dist/injector/sheet-manager.d.ts +132 -0
  60. package/dist/injector/sheet-manager.js +698 -0
  61. package/dist/injector/sheet-manager.js.map +1 -0
  62. package/dist/injector/types.d.ts +228 -0
  63. package/dist/keyframes/index.js +206 -0
  64. package/dist/keyframes/index.js.map +1 -0
  65. package/dist/parser/classify.js +319 -0
  66. package/dist/parser/classify.js.map +1 -0
  67. package/dist/parser/const.js +60 -0
  68. package/dist/parser/const.js.map +1 -0
  69. package/dist/parser/lru.js +109 -0
  70. package/dist/parser/lru.js.map +1 -0
  71. package/dist/parser/parser.d.ts +25 -0
  72. package/dist/parser/parser.js +115 -0
  73. package/dist/parser/parser.js.map +1 -0
  74. package/dist/parser/tokenizer.js +69 -0
  75. package/dist/parser/tokenizer.js.map +1 -0
  76. package/dist/parser/types.d.ts +51 -0
  77. package/dist/parser/types.js +46 -0
  78. package/dist/parser/types.js.map +1 -0
  79. package/dist/pipeline/conditions.d.ts +134 -0
  80. package/dist/pipeline/conditions.js +406 -0
  81. package/dist/pipeline/conditions.js.map +1 -0
  82. package/dist/pipeline/exclusive.js +230 -0
  83. package/dist/pipeline/exclusive.js.map +1 -0
  84. package/dist/pipeline/index.d.ts +55 -0
  85. package/dist/pipeline/index.js +708 -0
  86. package/dist/pipeline/index.js.map +1 -0
  87. package/dist/pipeline/materialize.js +1103 -0
  88. package/dist/pipeline/materialize.js.map +1 -0
  89. package/dist/pipeline/parseStateKey.d.ts +15 -0
  90. package/dist/pipeline/parseStateKey.js +446 -0
  91. package/dist/pipeline/parseStateKey.js.map +1 -0
  92. package/dist/pipeline/simplify.js +515 -0
  93. package/dist/pipeline/simplify.js.map +1 -0
  94. package/dist/pipeline/warnings.js +18 -0
  95. package/dist/pipeline/warnings.js.map +1 -0
  96. package/dist/plugins/index.d.ts +2 -0
  97. package/dist/plugins/okhsl-plugin.d.ts +35 -0
  98. package/dist/plugins/okhsl-plugin.js +97 -0
  99. package/dist/plugins/okhsl-plugin.js.map +1 -0
  100. package/dist/plugins/types.d.ts +87 -0
  101. package/dist/properties/index.js +222 -0
  102. package/dist/properties/index.js.map +1 -0
  103. package/dist/properties/property-type-resolver.d.ts +24 -0
  104. package/dist/properties/property-type-resolver.js +90 -0
  105. package/dist/properties/property-type-resolver.js.map +1 -0
  106. package/dist/rsc-cache.js +81 -0
  107. package/dist/rsc-cache.js.map +1 -0
  108. package/dist/ssr/astro-client.d.ts +1 -0
  109. package/dist/ssr/astro-client.js +24 -0
  110. package/dist/ssr/astro-client.js.map +1 -0
  111. package/dist/ssr/astro-middleware.d.ts +15 -0
  112. package/dist/ssr/astro-middleware.js +19 -0
  113. package/dist/ssr/astro-middleware.js.map +1 -0
  114. package/dist/ssr/astro.d.ts +106 -0
  115. package/dist/ssr/astro.js +149 -0
  116. package/dist/ssr/astro.js.map +1 -0
  117. package/dist/ssr/async-storage.d.ts +17 -0
  118. package/dist/ssr/async-storage.js +44 -0
  119. package/dist/ssr/async-storage.js.map +1 -0
  120. package/dist/ssr/collect-auto-properties.js +58 -0
  121. package/dist/ssr/collect-auto-properties.js.map +1 -0
  122. package/dist/ssr/collector.d.ts +102 -0
  123. package/dist/ssr/collector.js +227 -0
  124. package/dist/ssr/collector.js.map +1 -0
  125. package/dist/ssr/context.js +16 -0
  126. package/dist/ssr/context.js.map +1 -0
  127. package/dist/ssr/format-global-rules.js +22 -0
  128. package/dist/ssr/format-global-rules.js.map +1 -0
  129. package/dist/ssr/format-keyframes.js +69 -0
  130. package/dist/ssr/format-keyframes.js.map +1 -0
  131. package/dist/ssr/format-property.js +49 -0
  132. package/dist/ssr/format-property.js.map +1 -0
  133. package/dist/ssr/format-rules.js +73 -0
  134. package/dist/ssr/format-rules.js.map +1 -0
  135. package/dist/ssr/hydrate.d.ts +22 -0
  136. package/dist/ssr/hydrate.js +49 -0
  137. package/dist/ssr/hydrate.js.map +1 -0
  138. package/dist/ssr/index.d.ts +4 -0
  139. package/dist/ssr/index.js +10 -0
  140. package/dist/ssr/index.js.map +1 -0
  141. package/dist/ssr/next.d.ts +45 -0
  142. package/dist/ssr/next.js +75 -0
  143. package/dist/ssr/next.js.map +1 -0
  144. package/dist/ssr/ssr-collector-ref.js +29 -0
  145. package/dist/ssr/ssr-collector-ref.js.map +1 -0
  146. package/dist/states/index.d.ts +49 -0
  147. package/dist/states/index.js +170 -0
  148. package/dist/states/index.js.map +1 -0
  149. package/dist/static/index.d.ts +5 -0
  150. package/dist/static/index.js +4 -0
  151. package/dist/static/inject.d.ts +5 -0
  152. package/dist/static/inject.js +17 -0
  153. package/dist/static/inject.js.map +1 -0
  154. package/dist/static/tastyStatic.d.ts +46 -0
  155. package/dist/static/tastyStatic.js +30 -0
  156. package/dist/static/tastyStatic.js.map +1 -0
  157. package/dist/static/types.d.ts +49 -0
  158. package/dist/static/types.js +24 -0
  159. package/dist/static/types.js.map +1 -0
  160. package/dist/styles/border.d.ts +25 -0
  161. package/dist/styles/border.js +120 -0
  162. package/dist/styles/border.js.map +1 -0
  163. package/dist/styles/color.d.ts +14 -0
  164. package/dist/styles/color.js +26 -0
  165. package/dist/styles/color.js.map +1 -0
  166. package/dist/styles/const.js +17 -0
  167. package/dist/styles/const.js.map +1 -0
  168. package/dist/styles/createStyle.js +79 -0
  169. package/dist/styles/createStyle.js.map +1 -0
  170. package/dist/styles/dimension.js +109 -0
  171. package/dist/styles/dimension.js.map +1 -0
  172. package/dist/styles/directional.js +133 -0
  173. package/dist/styles/directional.js.map +1 -0
  174. package/dist/styles/display.d.ts +30 -0
  175. package/dist/styles/display.js +73 -0
  176. package/dist/styles/display.js.map +1 -0
  177. package/dist/styles/fade.d.ts +15 -0
  178. package/dist/styles/fade.js +62 -0
  179. package/dist/styles/fade.js.map +1 -0
  180. package/dist/styles/fill.d.ts +42 -0
  181. package/dist/styles/fill.js +51 -0
  182. package/dist/styles/fill.js.map +1 -0
  183. package/dist/styles/flow.d.ts +16 -0
  184. package/dist/styles/flow.js +12 -0
  185. package/dist/styles/flow.js.map +1 -0
  186. package/dist/styles/gap.d.ts +31 -0
  187. package/dist/styles/gap.js +38 -0
  188. package/dist/styles/gap.js.map +1 -0
  189. package/dist/styles/height.d.ts +17 -0
  190. package/dist/styles/height.js +19 -0
  191. package/dist/styles/height.js.map +1 -0
  192. package/dist/styles/index.d.ts +1 -0
  193. package/dist/styles/index.js +8 -0
  194. package/dist/styles/index.js.map +1 -0
  195. package/dist/styles/inset.d.ts +24 -0
  196. package/dist/styles/inset.js +34 -0
  197. package/dist/styles/inset.js.map +1 -0
  198. package/dist/styles/list.d.ts +16 -0
  199. package/dist/styles/list.js +100 -0
  200. package/dist/styles/list.js.map +1 -0
  201. package/dist/styles/margin.d.ts +24 -0
  202. package/dist/styles/margin.js +32 -0
  203. package/dist/styles/margin.js.map +1 -0
  204. package/dist/styles/outline.d.ts +29 -0
  205. package/dist/styles/outline.js +55 -0
  206. package/dist/styles/outline.js.map +1 -0
  207. package/dist/styles/padding.d.ts +24 -0
  208. package/dist/styles/padding.js +32 -0
  209. package/dist/styles/padding.js.map +1 -0
  210. package/dist/styles/placement.d.ts +37 -0
  211. package/dist/styles/placement.js +74 -0
  212. package/dist/styles/placement.js.map +1 -0
  213. package/dist/styles/predefined.d.ts +71 -0
  214. package/dist/styles/predefined.js +237 -0
  215. package/dist/styles/predefined.js.map +1 -0
  216. package/dist/styles/preset.d.ts +52 -0
  217. package/dist/styles/preset.js +127 -0
  218. package/dist/styles/preset.js.map +1 -0
  219. package/dist/styles/radius.d.ts +12 -0
  220. package/dist/styles/radius.js +83 -0
  221. package/dist/styles/radius.js.map +1 -0
  222. package/dist/styles/scrollMargin.d.ts +24 -0
  223. package/dist/styles/scrollMargin.js +32 -0
  224. package/dist/styles/scrollMargin.js.map +1 -0
  225. package/dist/styles/scrollbar.d.ts +25 -0
  226. package/dist/styles/scrollbar.js +51 -0
  227. package/dist/styles/scrollbar.js.map +1 -0
  228. package/dist/styles/shadow.d.ts +14 -0
  229. package/dist/styles/shadow.js +25 -0
  230. package/dist/styles/shadow.js.map +1 -0
  231. package/dist/styles/shared.js +17 -0
  232. package/dist/styles/shared.js.map +1 -0
  233. package/dist/styles/transition.d.ts +14 -0
  234. package/dist/styles/transition.js +159 -0
  235. package/dist/styles/transition.js.map +1 -0
  236. package/dist/styles/types.d.ts +564 -0
  237. package/dist/styles/width.d.ts +17 -0
  238. package/dist/styles/width.js +19 -0
  239. package/dist/styles/width.js.map +1 -0
  240. package/dist/tasty.d.ts +134 -0
  241. package/dist/tasty.js +243 -0
  242. package/dist/tasty.js.map +1 -0
  243. package/dist/types.d.ts +184 -0
  244. package/dist/utils/cache-wrapper.js +21 -0
  245. package/dist/utils/cache-wrapper.js.map +1 -0
  246. package/dist/utils/case-converter.js +8 -0
  247. package/dist/utils/case-converter.js.map +1 -0
  248. package/dist/utils/color-math.d.ts +46 -0
  249. package/dist/utils/color-math.js +749 -0
  250. package/dist/utils/color-math.js.map +1 -0
  251. package/dist/utils/color-space.d.ts +5 -0
  252. package/dist/utils/color-space.js +228 -0
  253. package/dist/utils/color-space.js.map +1 -0
  254. package/dist/utils/colors.d.ts +5 -0
  255. package/dist/utils/colors.js +10 -0
  256. package/dist/utils/colors.js.map +1 -0
  257. package/dist/utils/css-types.d.ts +7 -0
  258. package/dist/utils/deps-equal.js +15 -0
  259. package/dist/utils/deps-equal.js.map +1 -0
  260. package/dist/utils/dotize.d.ts +26 -0
  261. package/dist/utils/dotize.js +122 -0
  262. package/dist/utils/dotize.js.map +1 -0
  263. package/dist/utils/filter-base-props.d.ts +15 -0
  264. package/dist/utils/filter-base-props.js +45 -0
  265. package/dist/utils/filter-base-props.js.map +1 -0
  266. package/dist/utils/get-display-name.d.ts +7 -0
  267. package/dist/utils/get-display-name.js +10 -0
  268. package/dist/utils/get-display-name.js.map +1 -0
  269. package/dist/utils/has-keys.js +13 -0
  270. package/dist/utils/has-keys.js.map +1 -0
  271. package/dist/utils/hash.js +14 -0
  272. package/dist/utils/hash.js.map +1 -0
  273. package/dist/utils/is-dev-env.js +19 -0
  274. package/dist/utils/is-dev-env.js.map +1 -0
  275. package/dist/utils/is-valid-element-type.js +15 -0
  276. package/dist/utils/is-valid-element-type.js.map +1 -0
  277. package/dist/utils/merge-styles.d.ts +7 -0
  278. package/dist/utils/merge-styles.js +145 -0
  279. package/dist/utils/merge-styles.js.map +1 -0
  280. package/dist/utils/mod-attrs.d.ts +6 -0
  281. package/dist/utils/mod-attrs.js +20 -0
  282. package/dist/utils/mod-attrs.js.map +1 -0
  283. package/dist/utils/process-tokens.d.ts +17 -0
  284. package/dist/utils/process-tokens.js +83 -0
  285. package/dist/utils/process-tokens.js.map +1 -0
  286. package/dist/utils/resolve-recipes.d.ts +17 -0
  287. package/dist/utils/resolve-recipes.js +146 -0
  288. package/dist/utils/resolve-recipes.js.map +1 -0
  289. package/dist/utils/selector-transform.js +32 -0
  290. package/dist/utils/selector-transform.js.map +1 -0
  291. package/dist/utils/string.js +8 -0
  292. package/dist/utils/string.js.map +1 -0
  293. package/dist/utils/styles.d.ts +99 -0
  294. package/dist/utils/styles.js +220 -0
  295. package/dist/utils/styles.js.map +1 -0
  296. package/dist/utils/typography.d.ts +58 -0
  297. package/dist/utils/typography.js +51 -0
  298. package/dist/utils/typography.js.map +1 -0
  299. package/dist/utils/warnings.d.ts +16 -0
  300. package/dist/utils/warnings.js +16 -0
  301. package/dist/utils/warnings.js.map +1 -0
  302. package/dist/zero/babel.d.ts +195 -0
  303. package/dist/zero/babel.js +456 -0
  304. package/dist/zero/babel.js.map +1 -0
  305. package/dist/zero/css-writer.d.ts +45 -0
  306. package/dist/zero/css-writer.js +73 -0
  307. package/dist/zero/css-writer.js.map +1 -0
  308. package/dist/zero/extractor.d.ts +24 -0
  309. package/dist/zero/extractor.js +266 -0
  310. package/dist/zero/extractor.js.map +1 -0
  311. package/dist/zero/index.d.ts +3 -0
  312. package/dist/zero/index.js +3 -0
  313. package/dist/zero/next.d.ts +86 -0
  314. package/dist/zero/next.js +143 -0
  315. package/dist/zero/next.js.map +1 -0
  316. package/docs/PIPELINE.md +519 -0
  317. package/docs/README.md +31 -0
  318. package/docs/adoption.md +298 -0
  319. package/docs/comparison.md +419 -0
  320. package/docs/configuration.md +389 -0
  321. package/docs/debug.md +318 -0
  322. package/docs/design-system.md +436 -0
  323. package/docs/dsl.md +688 -0
  324. package/docs/getting-started.md +217 -0
  325. package/docs/injector.md +544 -0
  326. package/docs/methodology.md +616 -0
  327. package/docs/react-api.md +557 -0
  328. package/docs/ssr.md +440 -0
  329. package/docs/styles.md +596 -0
  330. package/docs/tasty-static.md +532 -0
  331. package/package.json +221 -0
  332. package/tasty.config.ts +14 -0
@@ -0,0 +1,564 @@
1
+ import { CounterStyleDescriptors, FontFaceInput, KeyframesSteps, PropertyDefinition } from "../injector/types.js";
2
+ import { CSSProperties } from "../utils/css-types.js";
3
+ import { StyleValue, StyleValueStateMap } from "../utils/styles.js";
4
+
5
+ //#region src/styles/types.d.ts
6
+ /**
7
+ * Extensible interface for named color tokens.
8
+ * Augment this interface to register project-specific color names
9
+ * for autocomplete in `fill`, `color`, `svgFill`, and other color style props.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * declare module '@tenphi/tasty' {
14
+ * interface TastyNamedColors {
15
+ * primary: true;
16
+ * danger: true;
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ interface TastyNamedColors {}
22
+ type NamedColorKey = Extract<keyof TastyNamedColors, string>;
23
+ type NamedColor = [NamedColorKey] extends [never] ? string : NamedColorKey;
24
+ /**
25
+ * Extensible interface for typography preset names.
26
+ * Augment this interface to register project-specific preset names for autocomplete.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * declare module '@tenphi/tasty' {
31
+ * interface TastyPresetNames {
32
+ * h1: true;
33
+ * t3: true;
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ interface TastyPresetNames {}
39
+ type PresetNameKey = Extract<keyof TastyPresetNames, string>;
40
+ type PresetName = [PresetNameKey] extends [never] ? string : PresetNameKey;
41
+ type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
42
+ type OpaquePercentage = '' | `.${Digit}` | `.${Digit}${Digit}` | '.100';
43
+ type ColorValue = `#${NamedColor}${OpaquePercentage}` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})` | (string & {});
44
+ type NoType = false | null | undefined;
45
+ interface StylesInterface extends Omit<CSSProperties, 'color' | 'fill' | 'font' | 'outline' | 'type' | 'gap' | 'padding' | 'margin' | 'width' | 'height' | 'border' | 'transition' | 'placeContent' | 'placeItems' | 'scrollMargin' | 'scrollMarginTop' | 'scrollMarginRight' | 'scrollMarginBottom' | 'scrollMarginLeft' | 'scrollMarginBlock' | 'scrollMarginInline'> {
46
+ /**
47
+ * @deprecated Use `flow` style instead.
48
+ */
49
+ flexDirection: CSSProperties['flexDirection'];
50
+ /**
51
+ * @deprecated Use `placeContent`, `placeItems`, `gridColumns`, `gridRows`, and `gridTemplate` styles instead.
52
+ */
53
+ grid: CSSProperties['grid'];
54
+ /**
55
+ * @deprecated Use `flexShrink`, `flexGrow`, and `flexBasis` styles instead.
56
+ */
57
+ flex: CSSProperties['flex'];
58
+ /**
59
+ * Set the background color of the element. Shortcut for `background-color` with enhanced support for Tasty color tokens and syntaxes.
60
+ *
61
+ * Supports double-color syntax: the second color is applied as a foreground overlay via a CSS custom property.
62
+ *
63
+ * Examples:
64
+ * - `fill="#purple.10"` // purple background with 10% opacity
65
+ * - `fill="#danger"` // danger theme color
66
+ * - `fill="rgb(255 128 0)"` // custom RGB color
67
+ * - `fill="rgb(255 128 0 / 0.5)"` // RGB with opacity
68
+ * - `fill="hsl(200 100% 50%)"` // HSL color
69
+ * - `fill="okhsl(200 100% 50%)"` // perceptually uniform OKHSL color
70
+ * - `fill="oklch(0.7 0.15 200)"` // OKLCH color
71
+ * - `fill="#primary #secondary"` // double color (second as foreground overlay)
72
+ * - `fill={true}` // default fill color
73
+ */
74
+ fill?: ColorValue | boolean;
75
+ /**
76
+ * @deprecated Use `fill` instead.
77
+ */
78
+ backgroundColor?: CSSProperties['backgroundColor'];
79
+ /**
80
+ * Set the background image of the element. Shortcut for `background-image` with enhanced support for Tasty tokens.
81
+ *
82
+ * Examples:
83
+ * - `image="url(/path/to/image.png)"` // image from URL
84
+ * - `image="linear-gradient(to right, #purple, #danger)"` // gradient
85
+ */
86
+ image?: CSSProperties['backgroundImage'];
87
+ /**
88
+ * @deprecated Use `image` instead.
89
+ */
90
+ backgroundImage?: CSSProperties['backgroundImage'];
91
+ /**
92
+ * @deprecated Use separate background styles (`fill`, `image`, `backgroundSize`, etc.) instead.
93
+ * When set, overrides all other background-related styles.
94
+ */
95
+ background?: CSSProperties['background'];
96
+ /**
97
+ * Set the fill color of SVG elements. Outputs the native CSS `fill` property with enhanced support for Tasty color tokens and syntaxes.
98
+ *
99
+ * Examples:
100
+ * - `svgFill="#purple.10"` // purple fill with 10% opacity
101
+ * - `svgFill="#danger"` // danger theme color
102
+ * - `svgFill="rgb(255 128 0)"` // custom RGB color
103
+ * - `svgFill="hsl(200 100% 50%)"` // HSL color
104
+ * - `svgFill="okhsl(200 100% 50%)"` // OKHSL color
105
+ * - `svgFill="oklch(0.7 0.15 200)"` // OKLCH color
106
+ * - `svgFill="currentColor"` // inherit from parent color
107
+ */
108
+ svgFill?: ColorValue;
109
+ /**
110
+ * Set the text (current) color of the element. Shortcut for `color` with enhanced support for Tasty color tokens and syntaxes.
111
+ *
112
+ * Examples:
113
+ * - `color="#purple"` // purple text color
114
+ * - `color="#danger.6"` // danger color with 60% opacity
115
+ * - `color="rgb(255 128 0)"` // custom RGB color
116
+ * - `color="hsl(200 100% 50%)"` // HSL color
117
+ * - `color="okhsl(200 100% 50%)"` // OKHSL color
118
+ * - `color="oklch(0.7 0.15 200)"` // OKLCH color
119
+ * - `color="red"` // CSS color name
120
+ * - `color={true}` // currentColor
121
+ */
122
+ color?: ColorValue | boolean;
123
+ /**
124
+ * The fade style applies gradient-based fading masks to the edges of an element. Replaces complex CSS mask gradients with a simple, declarative API.
125
+ *
126
+ * Syntax: `[width] [directions] [#from-color] [#to-color]`
127
+ *
128
+ * Multiple groups can be separated by commas to specify different colors per direction.
129
+ *
130
+ * Color tokens (optional):
131
+ * - First color: transparent start of gradient (default: `rgb(0 0 0 / 0)`)
132
+ * - Second color: opaque end of gradient (default: `rgb(0 0 0 / 1)`)
133
+ *
134
+ * Examples:
135
+ * - `fade="top"` // fade only top edge with default width
136
+ * - `fade="2x left right"` // fade left and right edges with 2x width
137
+ * - `fade="1x top"` // fade only top edge with 1x width
138
+ * - `fade="3x 1x top bottom"` // top: 3x width, bottom: 1x width
139
+ * - `fade="2x #transparent #dark"` // custom colors for gradient mask
140
+ * - `fade="1x top #clear #solid"` // top edge with custom mask colors
141
+ * - `fade="top #red #blue, bottom #green #yellow"` // different colors per direction
142
+ * - `fade="2x top #a #b, 1x bottom #c #d"` // different widths and colors per direction
143
+ */
144
+ fade?: 'top' | 'right' | 'bottom' | 'left' | string;
145
+ /**
146
+ * Scrollbar styling using standard CSS properties (`scrollbar-width`, `scrollbar-color`, `scrollbar-gutter`).
147
+ *
148
+ * Syntax: `[width] [modifiers...] [thumb-color] [track-color]`
149
+ *
150
+ * Width values: `thin` (default), `auto`, `none`
151
+ * Modifiers: `stable`, `both-edges`, `always`
152
+ *
153
+ * Examples:
154
+ * - `scrollbar={true}` // thin scrollbar, default colors
155
+ * - `scrollbar="thin #purple.40 #dark.04"`
156
+ * - `scrollbar="auto #red #blue"`
157
+ * - `scrollbar="none"`
158
+ * - `scrollbar="always #primary.50 #white.02"`
159
+ * - `scrollbar="thin stable #red #blue"`
160
+ */
161
+ scrollbar?: string | boolean;
162
+ /**
163
+ * Set font weight for bold texts.
164
+ */
165
+ boldFontWeight?: number;
166
+ /**
167
+ * The gap style is a powerful, cross-layout shorthand for spacing between child elements. Works with flex, grid, and block layouts.
168
+ *
169
+ * For flex/grid: sets native `gap` property
170
+ * For block layouts: emulated using margin on children
171
+ *
172
+ * Examples:
173
+ * - `gap="2x"` // gap: 2x (or margin-bottom: 2x for block)
174
+ * - `gap="1x 2x"` // row gap: 1x, column gap: 2x
175
+ * - `gap={true}` // default gap (1x)
176
+ */
177
+ gap?: CSSProperties['gap'] | string | boolean;
178
+ /**
179
+ * Shorthand for element padding. Supports custom units, directional modifiers, and design-system-driven defaults.
180
+ *
181
+ * Examples:
182
+ * - `padding="2x 1x"` // top/bottom: 2x, left/right: 1x
183
+ * - `padding="2x top"` // only top padding: 2x
184
+ * - `padding="1x left right"` // left and right padding: 1x
185
+ * - `padding={true}` // default padding on all sides
186
+ */
187
+ padding?: CSSProperties['padding'] | string | boolean;
188
+ /**
189
+ * Shorthand for element margin. Supports custom units, directional modifiers, and design-system-driven defaults.
190
+ *
191
+ * Examples:
192
+ * - `margin="2x 1x"` // top/bottom: 2x, left/right: 1x
193
+ * - `margin="2x top"` // only top margin: 2x
194
+ * - `margin="1x left right"` // left and right margin: 1x
195
+ * - `margin={true}` // default margin on all sides
196
+ */
197
+ margin?: CSSProperties['margin'] | string | boolean;
198
+ /**
199
+ * Concise shorthand for setting element width, including min-width and max-width. Supports custom units and advanced sizing keywords.
200
+ *
201
+ * Syntax: `[value]` | `[min max]` | `[min value max]` | `[modifier value]`
202
+ *
203
+ * Modifiers: `min`, `max`
204
+ * Keywords: `stretch`, `max-content`, `min-content`, `fit-content`
205
+ *
206
+ * Examples:
207
+ * - `width="10x"` // width: 10x
208
+ * - `width="1x 10x"` // min-width: 1x; max-width: 10x
209
+ * - `width="min 2x"` // min-width: 2x
210
+ * - `width="stretch"` // width: stretch (fill-available)
211
+ * - `width={true}` // width: auto
212
+ */
213
+ width?: CSSProperties['width'] | string | boolean;
214
+ /**
215
+ * Concise shorthand for setting element height, including min-height and max-height. Supports custom units and advanced sizing keywords.
216
+ *
217
+ * Syntax: `[value]` | `[min max]` | `[min value max]` | `[modifier value]`
218
+ *
219
+ * Modifiers: `min`, `max`
220
+ * Keywords: `stretch`, `max-content`, `min-content`, `fit-content`
221
+ *
222
+ * Examples:
223
+ * - `height="100px"` // height: 100px
224
+ * - `height="1x 5x 10x"` // min-height: 1x; height: 5x; max-height: 10x
225
+ * - `height="min 2x"` // min-height: 2x
226
+ * - `height={true}` // height: auto
227
+ */
228
+ height?: CSSProperties['height'] | string | boolean;
229
+ /**
230
+ * Shorthand for border width, style, and color. Supports directional modifiers and design-system defaults.
231
+ *
232
+ * Syntax: `[width] [style] [color] [directions]` | `[directions]` | `true`
233
+ *
234
+ * Multiple groups can be separated by commas. Later groups override earlier groups for conflicting directions.
235
+ *
236
+ * Examples:
237
+ * - `border={true}` // default border on all sides (1bw solid)
238
+ * - `border="2bw dashed #purple"` // 2bw dashed purple border
239
+ * - `border="2bw top"` // only top border: 2bw solid
240
+ * - `border="dotted #danger left right"` // left/right: 1bw dotted danger
241
+ * - `border="1bw #red, 2bw #blue top"` // all sides red 1bw, top overridden to blue 2bw
242
+ * - `border="1bw, dashed top bottom, #purple left right"` // base 1bw, dashed on top/bottom, purple on left/right
243
+ */
244
+ border?: CSSProperties['border'] | string | boolean;
245
+ /**
246
+ * Powerful shorthand for CSS transitions using semantic names and design tokens. Supports grouped transitions for common UI effects.
247
+ *
248
+ * Semantic names: `fade`, `fill`, `border`, `radius`, `shadow`, `preset`, `gap`, `theme`
249
+ * Multiple transitions: separated by commas
250
+ *
251
+ * Examples:
252
+ * - `transition="fill 0.2s, radius 0.3s"` // transitions background-color and border-radius
253
+ * - `transition="fade 0.15s ease-in"` // transitions mask with easing
254
+ * - `transition="theme 0.3s"` // transitions all theme-related properties
255
+ * - `transition="preset 0.2s"` // transitions typography properties
256
+ */
257
+ transition?: CSSProperties['transition'] | string;
258
+ /**
259
+ * Whether the element is hidden using `display: none`. Boolean shortcut for conditional element visibility.
260
+ *
261
+ * Examples:
262
+ * - `hide={true}` // display: none
263
+ * - `hide={false}` // element remains visible
264
+ */
265
+ hide?: boolean;
266
+ /**
267
+ * The shadow style adds shadow effects around an element's frame. Supports multiple effects separated by commas with X/Y offsets, blur, spread radius, and color.
268
+ *
269
+ * Examples:
270
+ * - `shadow="1x .5x .5x #dark.50"` // custom shadow with Tasty units and colors
271
+ * - `shadow="0 1x 2x #dark.20"` // standard shadow syntax
272
+ * - `shadow={true}` // default shadow from design system
273
+ */
274
+ shadow?: string | boolean;
275
+ /**
276
+ * The radius style rounds the corners of an element's outer border edge. Supports custom units, advanced shapes, and directional modifiers.
277
+ *
278
+ * Syntax: `[value] [modifiers]` | `[shape]` | `true`
279
+ *
280
+ * Shapes: `round` (fully rounded), `ellipse` (50%), `leaf`, `backleaf` (asymmetric), `inherit` (inherit from parent)
281
+ * Directional modifiers: `top`, `right`, `bottom`, `left`
282
+ *
283
+ * Examples:
284
+ * - `radius="2r"` // border-radius: calc(var(--radius) * 2)
285
+ * - `radius={true}` // default radius (1r)
286
+ * - `radius="round"` // fully rounded (9999rem)
287
+ * - `radius="leaf"` // asymmetric leaf shape
288
+ * - `radius="1r top"` // round only top corners
289
+ * - `radius="inherit"` // inherit border-radius from parent
290
+ * - `radius="inherit right"` // inherit only right corners (uses longhand properties)
291
+ */
292
+ radius?: 'round' | 'ellipse' | 'leaf' | 'backleaf' | 'inherit' | string | true;
293
+ /**
294
+ * The flow style is a unified shorthand for controlling layout direction and wrapping in both flex and grid containers. Replaces `flexDirection` and `gridAutoFlow`.
295
+ *
296
+ * For flex: sets `flex-flow` (direction + wrapping)
297
+ * For grid: sets `grid-auto-flow` (direction + density)
298
+ * For block: determines gap direction (row/column)
299
+ *
300
+ * Syntax: `[direction] [wrap|dense]`
301
+ *
302
+ * Examples:
303
+ * - `flow="row wrap"` // flex-flow: row wrap
304
+ * - `flow="column dense"` // grid-auto-flow: column dense
305
+ * - `flow="row"` // primary axis direction
306
+ */
307
+ flow?: CSSProperties['flexFlow'] | CSSProperties['gridAutoFlow'] | string;
308
+ /**
309
+ * The gridAreas style specifies named grid areas, establishing cells in the grid and assigning them names.
310
+ *
311
+ * Examples:
312
+ * - `gridAreas='"header header" "sidebar content" "footer footer"'`
313
+ */
314
+ gridAreas?: CSSProperties['gridTemplateAreas'];
315
+ /**
316
+ * The gridColumns style defines line names and track sizing functions of grid columns.
317
+ *
318
+ * Examples:
319
+ * - `gridColumns="1fr 2fr 1fr"` // three columns with flex ratios
320
+ * - `gridColumns={3}` // three equal columns (shorthand)
321
+ * - `gridColumns="repeat(auto-fit, minmax(200px, 1fr))"` // responsive columns
322
+ */
323
+ gridColumns?: CSSProperties['gridTemplateColumns'] | number;
324
+ /**
325
+ * The gridRows style defines line names and track sizing functions of grid rows.
326
+ *
327
+ * Examples:
328
+ * - `gridRows="auto 1fr auto"` // header, content, footer layout
329
+ * - `gridRows={4}` // four equal rows (shorthand)
330
+ * - `gridRows="repeat(3, 100px)"` // three 100px rows
331
+ */
332
+ gridRows?: CSSProperties['gridTemplateRows'] | number;
333
+ /**
334
+ * The gridTemplate style is a shorthand property for defining grid columns, rows, and areas simultaneously.
335
+ *
336
+ * Examples:
337
+ * - `gridTemplate='"header header" auto "content sidebar" 1fr / 2fr 1fr'`
338
+ */
339
+ gridTemplate?: CSSProperties['gridTemplate'];
340
+ /**
341
+ * The font style specifies a prioritized list of font family names with design-system-driven defaults and fallbacks.
342
+ *
343
+ * Examples:
344
+ * - `font="monospace"` // monospace font stack
345
+ * - `font="Helvetica, Arial, sans-serif"` // custom font list
346
+ * - `font={true}` // default design system font
347
+ */
348
+ font?: CSSProperties['fontFamily'] | boolean;
349
+ /**
350
+ * The outline style sets the outline for the element.
351
+ *
352
+ * Syntax: `[width] [style] [color] / [offset]` | `true`
353
+ *
354
+ * Examples:
355
+ * - `outline="2ow dashed #purple"` // 2ow dashed purple outline
356
+ * - `outline="2ow #danger / 1x"` // 2ow solid danger outline, 1x offset
357
+ * - `outline={true}` // default outline (1ow solid)
358
+ */
359
+ outline?: string | boolean;
360
+ /**
361
+ * The outline offset style sets the offset of the outline.
362
+ *
363
+ * Examples:
364
+ * - `outlineOffset="4px"` // 4px offset
365
+ * - `outlineOffset="1x"` // 1x (8px) offset
366
+ */
367
+ outlineOffset?: string | number;
368
+ /**
369
+ * The preset style sets base text settings according to named presets. Affects `font-size`, `line-height`, `letter-spacing`, `font-weight`, and `text-transform`.
370
+ *
371
+ * Syntax: `name`, `name / modifier`, or `modifier` (shorthand, name defaults to `inherit`).
372
+ * Preset names are project-specific. Augment `TastyPresetNames` to register them for autocomplete.
373
+ *
374
+ * Examples:
375
+ * - `preset="h1"` // heading 1 typography
376
+ * - `preset="h2 / strong"` // bold heading 2
377
+ * - `preset="bold"` // inherit with bold (shorthand)
378
+ * - `preset="t3"` // text size 3
379
+ */
380
+ preset?: PresetName | (string & {});
381
+ /**
382
+ * Shorthand for `align-items` and `align-content`. Sets both properties for unified vertical alignment in flex/grid layouts.
383
+ *
384
+ * Examples:
385
+ * - `align="center"` // align-items: center; align-content: center
386
+ * - `align="flex-start"` // align both to start
387
+ * - `align="space-between"` // distribute space between items
388
+ */
389
+ align?: CSSProperties['alignItems'] | CSSProperties['alignContent'];
390
+ /**
391
+ * Shorthand for `justify-items` and `justify-content`. Sets both properties for unified horizontal alignment in flex/grid layouts.
392
+ *
393
+ * Examples:
394
+ * - `justify="center"` // justify-items: center; justify-content: center
395
+ * - `justify="space-between"` // distribute space between items
396
+ * - `justify="flex-end"` // align both to end
397
+ */
398
+ justify?: CSSProperties['justifyItems'] | CSSProperties['justifyContent'];
399
+ /**
400
+ * Shorthand for all placement properties. Sets all 4 longhands: align-items, justify-items, align-content, justify-content.
401
+ *
402
+ * Examples:
403
+ * - `place="center"` // all 4 longhands: center
404
+ * - `place="start end"` // align-*: start; justify-*: end
405
+ * - `place="stretch"` // all 4 longhands: stretch
406
+ */
407
+ place?: CSSProperties['placeItems'] | CSSProperties['placeContent'] | string;
408
+ /**
409
+ * Sets `place-content` property for aligning and distributing content in grid/flex containers.
410
+ *
411
+ * Examples:
412
+ * - `placeContent="center"` // center content in both axes
413
+ * - `placeContent="space-between"` // distribute content with space between
414
+ */
415
+ placeContent?: CSSProperties['placeContent'];
416
+ /**
417
+ * Sets `place-items` property for aligning items in grid/flex containers.
418
+ *
419
+ * Examples:
420
+ * - `placeItems="center"` // center items in both axes
421
+ * - `placeItems="start end"` // start on block axis, end on inline axis
422
+ */
423
+ placeItems?: CSSProperties['placeItems'];
424
+ /**
425
+ * Shorthand for scroll-margin on all sides. Supports custom units and directional modifiers.
426
+ *
427
+ * Examples:
428
+ * - `scrollMargin="2x"` // scroll-margin on all sides: 2x
429
+ * - `scrollMargin="2x top"` // only top scroll-margin: 2x
430
+ * - `scrollMargin={true}` // default scroll-margin on all sides
431
+ */
432
+ scrollMargin?: CSSProperties['scrollMargin'] | string | boolean;
433
+ scrollMarginTop?: string | number | boolean;
434
+ scrollMarginRight?: string | number | boolean;
435
+ scrollMarginBottom?: string | number | boolean;
436
+ scrollMarginLeft?: string | number | boolean;
437
+ scrollMarginBlock?: string | number | boolean;
438
+ scrollMarginInline?: string | number | boolean;
439
+ /**
440
+ * Shorthand for `top`, `right`, `bottom`, and `left` offsets. Supports custom units, directional modifiers, and positioning.
441
+ *
442
+ * Examples:
443
+ * - `inset="0"` // all sides: 0
444
+ * - `inset="2x top"` // only top offset: 2x
445
+ * - `inset="1x left right"` // left and right offsets: 1x
446
+ * - `inset={true}` // all sides: 0
447
+ */
448
+ inset?: 'top' | 'right' | 'bottom' | 'left' | string | CSSProperties['inset'];
449
+ /**
450
+ * Local keyframes definitions for this component.
451
+ * Keys are animation names, values are keyframes step definitions.
452
+ * Local keyframes override global keyframes with the same name.
453
+ *
454
+ * Examples:
455
+ * - `'@keyframes': { fadeIn: { from: { opacity: 0 }, to: { opacity: 1 } } }`
456
+ * - `'@keyframes': { pulse: { '0%, 100%': { transform: 'scale(1)' }, '50%': { transform: 'scale(1.05)' } } }`
457
+ */
458
+ '@keyframes'?: Record<string, KeyframesSteps>;
459
+ /**
460
+ * CSS @property definitions for custom properties using tasty token syntax.
461
+ * Properties are registered once and are permanent (never removed).
462
+ *
463
+ * Token formats:
464
+ * - `$name` for regular properties → `--name` (requires syntax to be specified)
465
+ * - `#name` for color properties → `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
466
+ *
467
+ * Examples:
468
+ * - `'@properties': { '$rotation': { syntax: '<angle>', inherits: false, initialValue: '45deg' } }`
469
+ * - `'@properties': { '#theme': { initialValue: 'purple' } }` // syntax: '<color>' is auto-set
470
+ */
471
+ '@properties'?: Record<string, PropertyDefinition>;
472
+ /**
473
+ * Local @font-face definitions for this component.
474
+ * Keys are font-family names, values are descriptors or arrays of descriptors
475
+ * (for multiple weights/styles of the same family).
476
+ *
477
+ * Examples:
478
+ * - `'@fontFace': { Icons: { src: 'url("/fonts/icons.woff2") format("woff2")', fontDisplay: 'block' } }`
479
+ * - `'@fontFace': { 'Brand Sans': [{ src: '...', fontWeight: 400 }, { src: '...', fontWeight: 700 }] }`
480
+ */
481
+ '@fontFace'?: Record<string, FontFaceInput>;
482
+ /**
483
+ * Local @counter-style definitions for this component.
484
+ * Keys are counter-style names, values are descriptor objects.
485
+ *
486
+ * Examples:
487
+ * - `'@counterStyle': { thumbs: { system: 'cyclic', symbols: '"👍"', suffix: '" "' } }`
488
+ */
489
+ '@counterStyle'?: Record<string, CounterStyleDescriptors>;
490
+ /**
491
+ * Apply one or more predefined style recipes by name.
492
+ * Recipes are defined globally via `configure({ recipes: { ... } })`.
493
+ * Multiple recipes are space-separated. Use `/` to separate base recipes
494
+ * (applied before component styles) from post recipes (applied after, via mergeStyles).
495
+ * Use `none` to explicitly skip base recipes.
496
+ *
497
+ * Examples:
498
+ * - `recipe: 'card'` // Apply the 'card' recipe
499
+ * - `recipe: 'card elevated'` // Apply 'card' then 'elevated', then component styles
500
+ * - `recipe: 'reset input / input-autofill'` // Base recipes, then post recipe
501
+ * - `recipe: 'none / disabled'` // No base recipes, only post recipe
502
+ * - `recipe: ''` // Clear recipes from base styles when extending
503
+ */
504
+ recipe?: string;
505
+ }
506
+ type SuffixForSelector = '&' | '.' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z';
507
+ type Selector = `${SuffixForSelector}${string}`;
508
+ type NotSelector = Exclude<string, Selector | keyof StylesInterface>;
509
+ /** Special style keys that should not be wrapped in StyleValue/StyleValueStateMap */
510
+ type SpecialStyleKeys = '@keyframes' | '@properties' | '@fontFace' | '@counterStyle' | 'recipe';
511
+ type StylesWithoutSelectors = { [key in keyof StylesInterface as key extends SpecialStyleKeys ? never : key]?: StyleValue<StylesInterface[key]> | StyleValueStateMap<StylesInterface[key]> };
512
+ /**
513
+ * Index signature for recipe-specific arbitrary keys.
514
+ * Supports local predefined states (`@name`), vendor-prefixed CSS properties (`-webkit-*`),
515
+ * CSS custom properties (`$name`), and color tokens (`#name`).
516
+ * Unlike StylesIndexSignature, does NOT allow sub-element selectors (recipes are flat).
517
+ */
518
+ type RecipeIndexSignature = Record<string, StyleValue<string | number | boolean | undefined> | StyleValueStateMap<string | number | boolean | undefined>>;
519
+ /**
520
+ * Style type for recipe definitions.
521
+ * Like StylesWithoutSelectors but also allows `@keyframes`, `@properties`,
522
+ * local predefined states, and vendor-prefixed CSS properties.
523
+ * Excludes `recipe` to prevent recursive references.
524
+ */
525
+ type RecipeStyles = StylesWithoutSelectors & RecipeIndexSignature & {
526
+ '@keyframes'?: StylesInterface['@keyframes'];
527
+ '@properties'?: StylesInterface['@properties'];
528
+ '@fontFace'?: StylesInterface['@fontFace'];
529
+ '@counterStyle'?: StylesInterface['@counterStyle'];
530
+ };
531
+ /** Special properties that are not regular style values */
532
+ interface SpecialStyleProperties {
533
+ '@keyframes'?: StylesInterface['@keyframes'];
534
+ '@properties'?: StylesInterface['@properties'];
535
+ '@fontFace'?: StylesInterface['@fontFace'];
536
+ '@counterStyle'?: StylesInterface['@counterStyle'];
537
+ recipe?: StylesInterface['recipe'];
538
+ }
539
+ /** Index signature for arbitrary style keys (sub-elements, CSS variables, etc.) */
540
+ interface StylesIndexSignature {
541
+ [key: string]: StyleValue<string | number | boolean | undefined> | StyleValueStateMap<string | number | boolean | undefined> | Styles | false | StylesInterface['@keyframes'] | StylesInterface['@properties'] | StylesInterface['@fontFace'] | StylesInterface['@counterStyle'];
542
+ /**
543
+ * Selector combinator: `undefined` (descendant, default), `'>'` (child), `'+'` (adjacent), `'~'` (sibling).
544
+ * Can chain with capitalized names: `'> Body > Row >'`. Spaces required around combinators.
545
+ */
546
+ $?: string;
547
+ }
548
+ type Styles = StylesWithoutSelectors & SpecialStyleProperties & StylesIndexSignature;
549
+ /**
550
+ * Value type for design tokens passed to `configure({ tokens })`.
551
+ * Can be a direct value or a state map for responsive/theme-aware tokens.
552
+ */
553
+ type ConfigTokenValue = string | number | boolean | Record<string, string | number | boolean | undefined | null | '@inherit'>;
554
+ /**
555
+ * Design tokens injected as CSS custom properties on `:root`.
556
+ * Keys must start with `$` (value tokens) or `#` (color tokens).
557
+ *
558
+ * - `$name` keys become `--name` CSS custom properties
559
+ * - `#name` keys become `--name-color` and `--name-color-{colorSpace}` properties
560
+ */
561
+ type ConfigTokens = Record<`$${string}` | `#${string}`, ConfigTokenValue>;
562
+ //#endregion
563
+ export { ConfigTokenValue, ConfigTokens, NoType, NotSelector, RecipeStyles, Selector, Styles, StylesInterface, StylesWithoutSelectors, SuffixForSelector, TastyNamedColors, TastyPresetNames };
564
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,17 @@
1
+ //#region src/styles/width.d.ts
2
+ interface WidthStyleProps {
3
+ width?: string | number | boolean;
4
+ minWidth?: string | number | boolean;
5
+ maxWidth?: string | number | boolean;
6
+ }
7
+ declare function widthStyle({
8
+ width,
9
+ minWidth,
10
+ maxWidth
11
+ }: WidthStyleProps): Record<string, string | string[]> | null;
12
+ declare namespace widthStyle {
13
+ var __lookupStyles: string[];
14
+ }
15
+ //#endregion
16
+ export { widthStyle };
17
+ //# sourceMappingURL=width.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { dimensionStyle } from "./dimension.js";
2
+ //#region src/styles/width.ts
3
+ const dimension = dimensionStyle("width");
4
+ function widthStyle({ width, minWidth, maxWidth }) {
5
+ return dimension({
6
+ value: width,
7
+ min: minWidth,
8
+ max: maxWidth
9
+ });
10
+ }
11
+ widthStyle.__lookupStyles = [
12
+ "width",
13
+ "minWidth",
14
+ "maxWidth"
15
+ ];
16
+ //#endregion
17
+ export { widthStyle };
18
+
19
+ //# sourceMappingURL=width.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"width.js","names":[],"sources":["../../src/styles/width.ts"],"sourcesContent":["import { dimensionStyle } from './dimension';\n\nconst dimension = dimensionStyle('width');\n\ninterface WidthStyleProps {\n width?: string | number | boolean;\n minWidth?: string | number | boolean;\n maxWidth?: string | number | boolean;\n}\n\nexport function widthStyle({ width, minWidth, maxWidth }: WidthStyleProps) {\n return dimension({ value: width, min: minWidth, max: maxWidth });\n}\n\nwidthStyle.__lookupStyles = ['width', 'minWidth', 'maxWidth'];\n"],"mappings":";;AAEA,MAAM,YAAY,eAAe,QAAQ;AAQzC,SAAgB,WAAW,EAAE,OAAO,UAAU,YAA6B;AACzE,QAAO,UAAU;EAAE,OAAO;EAAO,KAAK;EAAU,KAAK;EAAU,CAAC;;AAGlE,WAAW,iBAAiB;CAAC;CAAS;CAAY;CAAW"}