@tenphi/tasty 1.0.0 → 1.2.0

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 (247) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -2
  2. package/dist/chunks/cacheKey.d.ts +1 -0
  3. package/dist/chunks/cacheKey.js +1 -2
  4. package/dist/chunks/cacheKey.js.map +1 -1
  5. package/dist/chunks/definitions.js +1 -2
  6. package/dist/chunks/definitions.js.map +1 -1
  7. package/dist/chunks/index.d.ts +1 -0
  8. package/dist/chunks/renderChunk.d.ts +1 -0
  9. package/dist/chunks/renderChunk.js +1 -2
  10. package/dist/chunks/renderChunk.js.map +1 -1
  11. package/dist/config.js +1 -2
  12. package/dist/config.js.map +1 -1
  13. package/dist/core/index.d.ts +0 -1
  14. package/dist/core/index.js +1 -2
  15. package/dist/counter-style/index.js +1 -1
  16. package/dist/counter-style/index.js.map +1 -1
  17. package/dist/debug.js +1 -2
  18. package/dist/debug.js.map +1 -1
  19. package/dist/font-face/index.js +1 -1
  20. package/dist/font-face/index.js.map +1 -1
  21. package/dist/hooks/index.d.ts +7 -0
  22. package/dist/hooks/resolve-ssr-collector.js +1 -2
  23. package/dist/hooks/resolve-ssr-collector.js.map +1 -1
  24. package/dist/hooks/useCounterStyle.js +1 -2
  25. package/dist/hooks/useCounterStyle.js.map +1 -1
  26. package/dist/hooks/useFontFace.js +1 -2
  27. package/dist/hooks/useFontFace.js.map +1 -1
  28. package/dist/hooks/useGlobalStyles.js +1 -2
  29. package/dist/hooks/useGlobalStyles.js.map +1 -1
  30. package/dist/hooks/useKeyframes.js +1 -2
  31. package/dist/hooks/useKeyframes.js.map +1 -1
  32. package/dist/hooks/useProperty.js +1 -2
  33. package/dist/hooks/useProperty.js.map +1 -1
  34. package/dist/hooks/useRawCSS.js +1 -2
  35. package/dist/hooks/useRawCSS.js.map +1 -1
  36. package/dist/hooks/useStyles.js +1 -2
  37. package/dist/hooks/useStyles.js.map +1 -1
  38. package/dist/index.d.ts +0 -1
  39. package/dist/index.js +1 -2
  40. package/dist/injector/index.js +2 -3
  41. package/dist/injector/index.js.map +1 -1
  42. package/dist/injector/injector.js +1 -2
  43. package/dist/injector/injector.js.map +1 -1
  44. package/dist/injector/sheet-manager.js +1 -2
  45. package/dist/injector/sheet-manager.js.map +1 -1
  46. package/dist/keyframes/index.js +1 -1
  47. package/dist/parser/classify.js +1 -2
  48. package/dist/parser/classify.js.map +1 -1
  49. package/dist/parser/const.js +14 -3
  50. package/dist/parser/const.js.map +1 -1
  51. package/dist/parser/lru.js +1 -1
  52. package/dist/parser/lru.js.map +1 -1
  53. package/dist/parser/parser.js +1 -2
  54. package/dist/parser/parser.js.map +1 -1
  55. package/dist/parser/tokenizer.js +1 -1
  56. package/dist/parser/tokenizer.js.map +1 -1
  57. package/dist/parser/types.js +1 -1
  58. package/dist/parser/types.js.map +1 -1
  59. package/dist/pipeline/conditions.js +1 -1
  60. package/dist/pipeline/conditions.js.map +1 -1
  61. package/dist/pipeline/exclusive.js +1 -2
  62. package/dist/pipeline/exclusive.js.map +1 -1
  63. package/dist/pipeline/index.js +2 -3
  64. package/dist/pipeline/index.js.map +1 -1
  65. package/dist/pipeline/materialize.js +1 -2
  66. package/dist/pipeline/materialize.js.map +1 -1
  67. package/dist/pipeline/parseStateKey.js +1 -2
  68. package/dist/pipeline/parseStateKey.js.map +1 -1
  69. package/dist/pipeline/simplify.js +1 -2
  70. package/dist/pipeline/simplify.js.map +1 -1
  71. package/dist/pipeline/warnings.js +1 -1
  72. package/dist/plugins/index.d.ts +2 -0
  73. package/dist/plugins/okhsl-plugin.js +1 -2
  74. package/dist/plugins/okhsl-plugin.js.map +1 -1
  75. package/dist/properties/index.js +2 -3
  76. package/dist/properties/index.js.map +1 -1
  77. package/dist/properties/property-type-resolver.js +1 -2
  78. package/dist/properties/property-type-resolver.js.map +1 -1
  79. package/dist/ssr/astro.js +1 -2
  80. package/dist/ssr/astro.js.map +1 -1
  81. package/dist/ssr/async-storage.js +1 -2
  82. package/dist/ssr/async-storage.js.map +1 -1
  83. package/dist/ssr/collect-auto-properties.js +1 -2
  84. package/dist/ssr/collect-auto-properties.js.map +1 -1
  85. package/dist/ssr/collector.js +1 -2
  86. package/dist/ssr/collector.js.map +1 -1
  87. package/dist/ssr/context.d.ts +2 -2
  88. package/dist/ssr/context.js +1 -2
  89. package/dist/ssr/context.js.map +1 -1
  90. package/dist/ssr/format-global-rules.js +1 -1
  91. package/dist/ssr/format-keyframes.js +1 -2
  92. package/dist/ssr/format-keyframes.js.map +1 -1
  93. package/dist/ssr/format-property.js +1 -2
  94. package/dist/ssr/format-property.js.map +1 -1
  95. package/dist/ssr/format-rules.js +1 -1
  96. package/dist/ssr/hydrate.js +1 -2
  97. package/dist/ssr/hydrate.js.map +1 -1
  98. package/dist/ssr/index.js +1 -2
  99. package/dist/ssr/index.js.map +1 -1
  100. package/dist/ssr/next.d.ts +2 -2
  101. package/dist/ssr/next.js +2 -4
  102. package/dist/ssr/next.js.map +1 -1
  103. package/dist/ssr/ssr-collector-ref.js +1 -1
  104. package/dist/states/index.js +1 -2
  105. package/dist/states/index.js.map +1 -1
  106. package/dist/static/index.js +1 -2
  107. package/dist/static/inject.d.ts +5 -0
  108. package/dist/static/inject.js +17 -0
  109. package/dist/static/inject.js.map +1 -0
  110. package/dist/static/tastyStatic.js +1 -2
  111. package/dist/static/tastyStatic.js.map +1 -1
  112. package/dist/static/types.js +1 -1
  113. package/dist/styles/border.d.ts +1 -1
  114. package/dist/styles/border.js +28 -22
  115. package/dist/styles/border.js.map +1 -1
  116. package/dist/styles/color.d.ts +1 -1
  117. package/dist/styles/color.js +2 -3
  118. package/dist/styles/color.js.map +1 -1
  119. package/dist/styles/const.js +17 -0
  120. package/dist/styles/const.js.map +1 -0
  121. package/dist/styles/createStyle.js +4 -5
  122. package/dist/styles/createStyle.js.map +1 -1
  123. package/dist/styles/dimension.js +15 -3
  124. package/dist/styles/dimension.js.map +1 -1
  125. package/dist/styles/directional.js +133 -0
  126. package/dist/styles/directional.js.map +1 -0
  127. package/dist/styles/display.d.ts +3 -10
  128. package/dist/styles/display.js +45 -39
  129. package/dist/styles/display.js.map +1 -1
  130. package/dist/styles/fade.d.ts +1 -1
  131. package/dist/styles/fade.js +9 -5
  132. package/dist/styles/fade.js.map +1 -1
  133. package/dist/styles/fill.d.ts +2 -2
  134. package/dist/styles/fill.js +3 -4
  135. package/dist/styles/fill.js.map +1 -1
  136. package/dist/styles/flow.js +1 -1
  137. package/dist/styles/gap.d.ts +1 -1
  138. package/dist/styles/gap.js +4 -3
  139. package/dist/styles/gap.js.map +1 -1
  140. package/dist/styles/height.d.ts +1 -1
  141. package/dist/styles/height.js +1 -2
  142. package/dist/styles/height.js.map +1 -1
  143. package/dist/styles/index.d.ts +0 -1
  144. package/dist/styles/index.js +3 -4
  145. package/dist/styles/index.js.map +1 -1
  146. package/dist/styles/inset.d.ts +1 -29
  147. package/dist/styles/inset.js +19 -135
  148. package/dist/styles/inset.js.map +1 -1
  149. package/dist/styles/list.d.ts +5 -5
  150. package/dist/styles/list.js +4 -2
  151. package/dist/styles/list.js.map +1 -1
  152. package/dist/styles/margin.d.ts +1 -1
  153. package/dist/styles/margin.js +17 -89
  154. package/dist/styles/margin.js.map +1 -1
  155. package/dist/styles/outline.d.ts +1 -1
  156. package/dist/styles/outline.js +6 -16
  157. package/dist/styles/outline.js.map +1 -1
  158. package/dist/styles/padding.d.ts +1 -1
  159. package/dist/styles/padding.js +17 -89
  160. package/dist/styles/padding.js.map +1 -1
  161. package/dist/styles/placement.d.ts +37 -0
  162. package/dist/styles/placement.js +74 -0
  163. package/dist/styles/placement.js.map +1 -0
  164. package/dist/styles/predefined.d.ts +4 -4
  165. package/dist/styles/predefined.js +8 -9
  166. package/dist/styles/predefined.js.map +1 -1
  167. package/dist/styles/preset.d.ts +6 -1
  168. package/dist/styles/preset.js +29 -14
  169. package/dist/styles/preset.js.map +1 -1
  170. package/dist/styles/radius.d.ts +1 -3
  171. package/dist/styles/radius.js +38 -6
  172. package/dist/styles/radius.js.map +1 -1
  173. package/dist/styles/scrollMargin.d.ts +24 -0
  174. package/dist/styles/scrollMargin.js +32 -0
  175. package/dist/styles/scrollMargin.js.map +1 -0
  176. package/dist/styles/scrollbar.d.ts +1 -1
  177. package/dist/styles/scrollbar.js +8 -5
  178. package/dist/styles/scrollbar.js.map +1 -1
  179. package/dist/styles/shadow.d.ts +1 -1
  180. package/dist/styles/shadow.js +4 -3
  181. package/dist/styles/shadow.js.map +1 -1
  182. package/dist/styles/shared.js +17 -0
  183. package/dist/styles/shared.js.map +1 -0
  184. package/dist/styles/transition.d.ts +1 -1
  185. package/dist/styles/transition.js +5 -4
  186. package/dist/styles/transition.js.map +1 -1
  187. package/dist/styles/types.d.ts +27 -8
  188. package/dist/styles/width.d.ts +1 -1
  189. package/dist/styles/width.js +1 -2
  190. package/dist/styles/width.js.map +1 -1
  191. package/dist/tasty.d.ts +2 -2
  192. package/dist/tasty.js +1 -2
  193. package/dist/tasty.js.map +1 -1
  194. package/dist/utils/cache-wrapper.js +1 -2
  195. package/dist/utils/cache-wrapper.js.map +1 -1
  196. package/dist/utils/case-converter.js +1 -1
  197. package/dist/utils/color-math.js +1 -1
  198. package/dist/utils/color-math.js.map +1 -1
  199. package/dist/utils/color-space.js +1 -2
  200. package/dist/utils/color-space.js.map +1 -1
  201. package/dist/utils/colors.js +1 -2
  202. package/dist/utils/colors.js.map +1 -1
  203. package/dist/utils/dotize.js +1 -1
  204. package/dist/utils/dotize.js.map +1 -1
  205. package/dist/utils/filter-base-props.js +1 -1
  206. package/dist/utils/get-display-name.js +1 -1
  207. package/dist/utils/has-keys.js +1 -1
  208. package/dist/utils/is-dev-env.js +1 -1
  209. package/dist/utils/is-dev-env.js.map +1 -1
  210. package/dist/utils/is-valid-element-type.js +1 -1
  211. package/dist/utils/merge-styles.js +1 -2
  212. package/dist/utils/merge-styles.js.map +1 -1
  213. package/dist/utils/mod-attrs.d.ts +0 -2
  214. package/dist/utils/mod-attrs.js +1 -2
  215. package/dist/utils/mod-attrs.js.map +1 -1
  216. package/dist/utils/process-tokens.js +2 -3
  217. package/dist/utils/process-tokens.js.map +1 -1
  218. package/dist/utils/resolve-recipes.js +1 -2
  219. package/dist/utils/resolve-recipes.js.map +1 -1
  220. package/dist/utils/selector-transform.js +1 -1
  221. package/dist/utils/string.js +1 -1
  222. package/dist/utils/styles.d.ts +1 -1
  223. package/dist/utils/styles.js +2 -3
  224. package/dist/utils/styles.js.map +1 -1
  225. package/dist/utils/typography.js +9 -1
  226. package/dist/utils/typography.js.map +1 -1
  227. package/dist/utils/warnings.js +1 -1
  228. package/dist/zero/babel.d.ts +17 -2
  229. package/dist/zero/babel.js +105 -41
  230. package/dist/zero/babel.js.map +1 -1
  231. package/dist/zero/css-writer.js +1 -2
  232. package/dist/zero/css-writer.js.map +1 -1
  233. package/dist/zero/extractor.js +1 -2
  234. package/dist/zero/extractor.js.map +1 -1
  235. package/dist/zero/index.js +1 -2
  236. package/dist/zero/next.d.ts +12 -0
  237. package/dist/zero/next.js +5 -4
  238. package/dist/zero/next.js.map +1 -1
  239. package/docs/styles.md +26 -6
  240. package/docs/tasty-static.md +87 -0
  241. package/package.json +11 -6
  242. package/dist/styles/align.d.ts +0 -15
  243. package/dist/styles/align.js +0 -14
  244. package/dist/styles/align.js.map +0 -1
  245. package/dist/styles/justify.d.ts +0 -15
  246. package/dist/styles/justify.js +0 -14
  247. package/dist/styles/justify.js.map +0 -1
@@ -1,16 +1,16 @@
1
1
  //#region src/styles/list.d.ts
2
2
  declare const BASE_STYLES: readonly ["display", "font", "preset", "hide", "whiteSpace", "opacity", "transition"];
3
- declare const POSITION_STYLES: readonly ["gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position"];
3
+ declare const POSITION_STYLES: readonly ["gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position", "scrollMargin"];
4
4
  declare const BLOCK_INNER_STYLES: readonly ["padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign"];
5
5
  declare const BLOCK_OUTER_STYLES: readonly ["border", "radius", "shadow", "outline"];
6
6
  declare const BLOCK_STYLES: readonly ["padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign", "border", "radius", "shadow", "outline"];
7
7
  declare const COLOR_STYLES: readonly ["color", "fill", "fade", "image"];
8
8
  declare const TEXT_STYLES: readonly ["textTransform", "fontWeight", "fontStyle"];
9
9
  declare const DIMENSION_STYLES: readonly ["width", "height", "flexBasis", "flexGrow", "flexShrink", "flex"];
10
- declare const FLOW_STYLES: readonly ["flow", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
11
- declare const CONTAINER_STYLES: readonly ["display", "font", "preset", "hide", "whiteSpace", "opacity", "transition", "color", "fill", "fade", "image", "width", "height", "flexBasis", "flexGrow", "flexShrink", "flex", "gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position", "padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign", "border", "radius", "shadow", "outline", "flow", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
12
- declare const OUTER_STYLES: readonly ["gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position", "width", "height", "flexBasis", "flexGrow", "flexShrink", "flex", "border", "radius", "shadow", "outline"];
13
- declare const INNER_STYLES: readonly ["display", "font", "preset", "hide", "whiteSpace", "opacity", "transition", "color", "fill", "fade", "image", "padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign", "flow", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
10
+ declare const FLOW_STYLES: readonly ["flow", "place", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
11
+ declare const CONTAINER_STYLES: readonly ["display", "font", "preset", "hide", "whiteSpace", "opacity", "transition", "color", "fill", "fade", "image", "width", "height", "flexBasis", "flexGrow", "flexShrink", "flex", "gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position", "scrollMargin", "padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign", "border", "radius", "shadow", "outline", "flow", "place", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
12
+ declare const OUTER_STYLES: readonly ["gridArea", "order", "gridColumn", "gridRow", "placeSelf", "alignSelf", "justifySelf", "zIndex", "margin", "inset", "position", "scrollMargin", "width", "height", "flexBasis", "flexGrow", "flexShrink", "flex", "border", "radius", "shadow", "outline"];
13
+ declare const INNER_STYLES: readonly ["display", "font", "preset", "hide", "whiteSpace", "opacity", "transition", "color", "fill", "fade", "image", "padding", "paddingInline", "paddingBlock", "overflow", "scrollbar", "textAlign", "flow", "place", "placeItems", "placeContent", "alignItems", "alignContent", "justifyItems", "justifyContent", "align", "justify", "gap", "columnGap", "rowGap", "gridColumns", "gridRows", "gridTemplate", "gridAreas"];
14
14
  //#endregion
15
15
  export { BASE_STYLES, BLOCK_INNER_STYLES, BLOCK_OUTER_STYLES, BLOCK_STYLES, COLOR_STYLES, CONTAINER_STYLES, DIMENSION_STYLES, FLOW_STYLES, INNER_STYLES, OUTER_STYLES, POSITION_STYLES, TEXT_STYLES };
16
16
  //# sourceMappingURL=list.d.ts.map
@@ -19,7 +19,8 @@ const POSITION_STYLES = [
19
19
  "zIndex",
20
20
  "margin",
21
21
  "inset",
22
- "position"
22
+ "position",
23
+ "scrollMargin"
23
24
  ];
24
25
  const BLOCK_INNER_STYLES = [
25
26
  "padding",
@@ -57,6 +58,7 @@ const DIMENSION_STYLES = [
57
58
  ];
58
59
  const FLOW_STYLES = [
59
60
  "flow",
61
+ "place",
60
62
  "placeItems",
61
63
  "placeContent",
62
64
  "alignItems",
@@ -92,7 +94,7 @@ const INNER_STYLES = [
92
94
  ...BLOCK_INNER_STYLES,
93
95
  ...FLOW_STYLES
94
96
  ];
95
-
96
97
  //#endregion
97
98
  export { BASE_STYLES, BLOCK_INNER_STYLES, BLOCK_OUTER_STYLES, BLOCK_STYLES, COLOR_STYLES, CONTAINER_STYLES, DIMENSION_STYLES, FLOW_STYLES, INNER_STYLES, OUTER_STYLES, POSITION_STYLES, TEXT_STYLES };
99
+
98
100
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","names":[],"sources":["../../src/styles/list.ts"],"sourcesContent":["export const BASE_STYLES = [\n 'display',\n 'font',\n 'preset',\n 'hide',\n 'whiteSpace',\n 'opacity',\n 'transition',\n] as const;\n\nexport const POSITION_STYLES = [\n 'gridArea',\n 'order',\n 'gridColumn',\n 'gridRow',\n 'placeSelf',\n 'alignSelf',\n 'justifySelf',\n 'zIndex',\n 'margin',\n 'inset',\n 'position',\n] as const;\n\nexport const BLOCK_INNER_STYLES = [\n 'padding',\n 'paddingInline',\n 'paddingBlock',\n 'overflow',\n 'scrollbar',\n 'textAlign',\n] as const;\n\nexport const BLOCK_OUTER_STYLES = [\n 'border',\n 'radius',\n 'shadow',\n 'outline',\n] as const;\n\nexport const BLOCK_STYLES = [\n ...BLOCK_INNER_STYLES,\n ...BLOCK_OUTER_STYLES,\n] as const;\n\nexport const COLOR_STYLES = ['color', 'fill', 'fade', 'image'] as const;\n\nexport const TEXT_STYLES = [\n 'textTransform',\n 'fontWeight',\n 'fontStyle',\n] as const;\n\nexport const DIMENSION_STYLES = [\n 'width',\n 'height',\n 'flexBasis',\n 'flexGrow',\n 'flexShrink',\n 'flex',\n] as const;\n\nexport const FLOW_STYLES = [\n 'flow',\n 'placeItems',\n 'placeContent',\n 'alignItems',\n 'alignContent',\n 'justifyItems',\n 'justifyContent',\n 'align',\n 'justify',\n 'gap',\n 'columnGap',\n 'rowGap',\n 'gridColumns',\n 'gridRows',\n 'gridTemplate',\n 'gridAreas',\n] as const;\n\nexport const CONTAINER_STYLES = [\n ...BASE_STYLES,\n ...COLOR_STYLES,\n ...DIMENSION_STYLES,\n ...POSITION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n] as const;\n\nexport const OUTER_STYLES = [\n ...POSITION_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_OUTER_STYLES,\n] as const;\n\nexport const INNER_STYLES = [\n ...BASE_STYLES,\n ...COLOR_STYLES,\n ...BLOCK_INNER_STYLES,\n ...FLOW_STYLES,\n] as const;\n"],"mappings":";AAAA,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,kBAAkB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACD;AAED,MAAa,eAAe,CAC1B,GAAG,oBACH,GAAG,mBACJ;AAED,MAAa,eAAe;CAAC;CAAS;CAAQ;CAAQ;CAAQ;AAE9D,MAAa,cAAc;CACzB;CACA;CACA;CACD;AAED,MAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,mBAAmB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAED,MAAa,eAAe;CAC1B,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAED,MAAa,eAAe;CAC1B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ"}
1
+ {"version":3,"file":"list.js","names":[],"sources":["../../src/styles/list.ts"],"sourcesContent":["export const BASE_STYLES = [\n 'display',\n 'font',\n 'preset',\n 'hide',\n 'whiteSpace',\n 'opacity',\n 'transition',\n] as const;\n\nexport const POSITION_STYLES = [\n 'gridArea',\n 'order',\n 'gridColumn',\n 'gridRow',\n 'placeSelf',\n 'alignSelf',\n 'justifySelf',\n 'zIndex',\n 'margin',\n 'inset',\n 'position',\n 'scrollMargin',\n] as const;\n\nexport const BLOCK_INNER_STYLES = [\n 'padding',\n 'paddingInline',\n 'paddingBlock',\n 'overflow',\n 'scrollbar',\n 'textAlign',\n] as const;\n\nexport const BLOCK_OUTER_STYLES = [\n 'border',\n 'radius',\n 'shadow',\n 'outline',\n] as const;\n\nexport const BLOCK_STYLES = [\n ...BLOCK_INNER_STYLES,\n ...BLOCK_OUTER_STYLES,\n] as const;\n\nexport const COLOR_STYLES = ['color', 'fill', 'fade', 'image'] as const;\n\nexport const TEXT_STYLES = [\n 'textTransform',\n 'fontWeight',\n 'fontStyle',\n] as const;\n\nexport const DIMENSION_STYLES = [\n 'width',\n 'height',\n 'flexBasis',\n 'flexGrow',\n 'flexShrink',\n 'flex',\n] as const;\n\nexport const FLOW_STYLES = [\n 'flow',\n 'place',\n 'placeItems',\n 'placeContent',\n 'alignItems',\n 'alignContent',\n 'justifyItems',\n 'justifyContent',\n 'align',\n 'justify',\n 'gap',\n 'columnGap',\n 'rowGap',\n 'gridColumns',\n 'gridRows',\n 'gridTemplate',\n 'gridAreas',\n] as const;\n\nexport const CONTAINER_STYLES = [\n ...BASE_STYLES,\n ...COLOR_STYLES,\n ...DIMENSION_STYLES,\n ...POSITION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n] as const;\n\nexport const OUTER_STYLES = [\n ...POSITION_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_OUTER_STYLES,\n] as const;\n\nexport const INNER_STYLES = [\n ...BASE_STYLES,\n ...COLOR_STYLES,\n ...BLOCK_INNER_STYLES,\n ...FLOW_STYLES,\n] as const;\n"],"mappings":";AAAA,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,kBAAkB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACD;AAED,MAAa,eAAe,CAC1B,GAAG,oBACH,GAAG,mBACJ;AAED,MAAa,eAAe;CAAC;CAAS;CAAQ;CAAQ;CAAQ;AAE9D,MAAa,cAAc;CACzB;CACA;CACA;CACD;AAED,MAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,mBAAmB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAED,MAAa,eAAe;CAC1B,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAED,MAAa,eAAe;CAC1B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ"}
@@ -15,7 +15,7 @@ declare function marginStyle({
15
15
  marginRight?: string | number | boolean;
16
16
  marginBottom?: string | number | boolean;
17
17
  marginLeft?: string | number | boolean;
18
- }): {};
18
+ }): Record<string, string> | null;
19
19
  declare namespace marginStyle {
20
20
  var __lookupStyles: string[];
21
21
  }
@@ -1,93 +1,21 @@
1
- import { DIRECTIONS, filterMods, parseStyle } from "../utils/styles.js";
2
-
1
+ import { processDirectionalStyle } from "./directional.js";
3
2
  //#region src/styles/margin.ts
4
- /**
5
- * Parse a margin value and return the first processed value
6
- */
7
- function parseMarginValue(value) {
8
- if (typeof value === "number") return `${value}px`;
9
- if (!value) return null;
10
- if (value === true) value = "1x";
11
- const { values } = parseStyle(value).groups[0] ?? { values: [] };
12
- return values[0] || "var(--gap)";
13
- }
14
- /**
15
- * Extract values and directions from a single parsed group.
16
- */
17
- function extractGroupData(group) {
18
- const { values = [], mods = [] } = group;
19
- return {
20
- values: values.length ? values : ["var(--gap)"],
21
- directions: filterMods(mods, DIRECTIONS)
22
- };
23
- }
24
- /**
25
- * Apply a single group's values and directions onto a direction map.
26
- */
27
- function applyGroup(dirs, values, directions) {
28
- if (!values.length) return;
29
- if (directions.length === 0) {
30
- dirs.top = values[0];
31
- dirs.right = values[1] || values[0];
32
- dirs.bottom = values[2] || values[0];
33
- dirs.left = values[3] || values[1] || values[0];
34
- } else directions.forEach((dir, i) => {
35
- dirs[dir] = values[i] ?? values[0];
36
- });
37
- }
38
- /**
39
- * Optimize margin output shorthand.
40
- */
41
- function optimizeMargin(dirs) {
42
- const { top, right, bottom, left } = dirs;
43
- if (top === right && right === bottom && bottom === left) return { margin: top };
44
- if (top === bottom && left === right) return { margin: `${top} ${left}` };
45
- return { margin: `${top} ${right} ${bottom} ${left}` };
46
- }
3
+ const MARGIN_CONFIG = {
4
+ property: "margin",
5
+ defaultValue: "var(--gap)",
6
+ trueValue: "1x",
7
+ defaultInit: "0"
8
+ };
47
9
  function marginStyle({ margin, marginBlock, marginInline, marginTop, marginRight, marginBottom, marginLeft }) {
48
- if (margin == null && marginBlock == null && marginInline == null && marginTop == null && marginRight == null && marginBottom == null && marginLeft == null) return {};
49
- const dirs = {
50
- top: "0",
51
- right: "0",
52
- bottom: "0",
53
- left: "0"
54
- };
55
- if (margin != null) {
56
- if (typeof margin === "number") dirs.top = dirs.right = dirs.bottom = dirs.left = `${margin}px`;
57
- else if (margin === true) margin = "1x";
58
- if (typeof margin === "string" && margin) {
59
- const groups = parseStyle(margin).groups ?? [];
60
- for (const group of groups) {
61
- const { values, directions } = extractGroupData(group);
62
- applyGroup(dirs, values, directions);
63
- }
64
- }
65
- }
66
- if (marginBlock != null) {
67
- const val = parseMarginValue(marginBlock);
68
- if (val) dirs.top = dirs.bottom = val;
69
- }
70
- if (marginInline != null) {
71
- const val = parseMarginValue(marginInline);
72
- if (val) dirs.left = dirs.right = val;
73
- }
74
- if (marginTop != null) {
75
- const val = parseMarginValue(marginTop);
76
- if (val) dirs.top = val;
77
- }
78
- if (marginRight != null) {
79
- const val = parseMarginValue(marginRight);
80
- if (val) dirs.right = val;
81
- }
82
- if (marginBottom != null) {
83
- const val = parseMarginValue(marginBottom);
84
- if (val) dirs.bottom = val;
85
- }
86
- if (marginLeft != null) {
87
- const val = parseMarginValue(marginLeft);
88
- if (val) dirs.left = val;
89
- }
90
- return optimizeMargin(dirs);
10
+ return processDirectionalStyle(MARGIN_CONFIG, {
11
+ main: margin,
12
+ block: marginBlock,
13
+ inline: marginInline,
14
+ top: marginTop,
15
+ right: marginRight,
16
+ bottom: marginBottom,
17
+ left: marginLeft
18
+ });
91
19
  }
92
20
  marginStyle.__lookupStyles = [
93
21
  "margin",
@@ -98,7 +26,7 @@ marginStyle.__lookupStyles = [
98
26
  "marginBlock",
99
27
  "marginInline"
100
28
  ];
101
-
102
29
  //#endregion
103
30
  export { marginStyle };
31
+
104
32
  //# sourceMappingURL=margin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"margin.js","names":[],"sources":["../../src/styles/margin.ts"],"sourcesContent":["import type { StyleDetails } from '../parser/types';\nimport { DIRECTIONS, filterMods, parseStyle } from '../utils/styles';\n\ntype Direction = (typeof DIRECTIONS)[number];\n\n/**\n * Parse a margin value and return the first processed value\n */\nfunction parseMarginValue(value: string | number | boolean): string | null {\n if (typeof value === 'number') return `${value}px`;\n if (!value) return null;\n if (value === true) value = '1x';\n\n const { values } = parseStyle(value).groups[0] ?? { values: [] };\n\n return values[0] || 'var(--gap)';\n}\n\n/**\n * Extract values and directions from a single parsed group.\n */\nfunction extractGroupData(group: StyleDetails): {\n values: string[];\n directions: Direction[];\n} {\n const { values = [], mods = [] } = group;\n return {\n values: values.length ? values : ['var(--gap)'],\n directions: filterMods(mods, DIRECTIONS) as Direction[],\n };\n}\n\n/**\n * Apply a single group's values and directions onto a direction map.\n */\nfunction applyGroup(\n dirs: Record<Direction, string>,\n values: string[],\n directions: Direction[],\n): void {\n if (!values.length) return;\n\n if (directions.length === 0) {\n dirs.top = values[0];\n dirs.right = values[1] || values[0];\n dirs.bottom = values[2] || values[0];\n dirs.left = values[3] || values[1] || values[0];\n } else {\n directions.forEach((dir, i) => {\n dirs[dir] = values[i] ?? values[0];\n });\n }\n}\n\n/**\n * Optimize margin output shorthand.\n */\nfunction optimizeMargin(dirs: Record<Direction, string>): {\n margin: string;\n} {\n const { top, right, bottom, left } = dirs;\n if (top === right && right === bottom && bottom === left) {\n return { margin: top };\n }\n if (top === bottom && left === right) {\n return { margin: `${top} ${left}` };\n }\n return { margin: `${top} ${right} ${bottom} ${left}` };\n}\n\nexport function marginStyle({\n margin,\n marginBlock,\n marginInline,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n}: {\n margin?: string | number | boolean;\n marginBlock?: string | number | boolean;\n marginInline?: string | number | boolean;\n marginTop?: string | number | boolean;\n marginRight?: string | number | boolean;\n marginBottom?: string | number | boolean;\n marginLeft?: string | number | boolean;\n}) {\n if (\n margin == null &&\n marginBlock == null &&\n marginInline == null &&\n marginTop == null &&\n marginRight == null &&\n marginBottom == null &&\n marginLeft == null\n ) {\n return {};\n }\n\n const dirs: Record<Direction, string> = {\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n };\n\n // Priority 1 (lowest): margin\n if (margin != null) {\n if (typeof margin === 'number') {\n const v = `${margin}px`;\n dirs.top = dirs.right = dirs.bottom = dirs.left = v;\n } else if (margin === true) {\n margin = '1x';\n }\n\n if (typeof margin === 'string' && margin) {\n const processed = parseStyle(margin);\n const groups = processed.groups ?? [];\n\n for (const group of groups) {\n const { values, directions } = extractGroupData(group);\n applyGroup(dirs, values, directions);\n }\n }\n }\n\n // Priority 2 (medium): marginBlock/marginInline\n if (marginBlock != null) {\n const val = parseMarginValue(marginBlock);\n if (val) dirs.top = dirs.bottom = val;\n }\n if (marginInline != null) {\n const val = parseMarginValue(marginInline);\n if (val) dirs.left = dirs.right = val;\n }\n\n // Priority 3 (highest): individual directions\n if (marginTop != null) {\n const val = parseMarginValue(marginTop);\n if (val) dirs.top = val;\n }\n if (marginRight != null) {\n const val = parseMarginValue(marginRight);\n if (val) dirs.right = val;\n }\n if (marginBottom != null) {\n const val = parseMarginValue(marginBottom);\n if (val) dirs.bottom = val;\n }\n if (marginLeft != null) {\n const val = parseMarginValue(marginLeft);\n if (val) dirs.left = val;\n }\n\n return optimizeMargin(dirs);\n}\n\nmarginStyle.__lookupStyles = [\n 'margin',\n 'marginTop',\n 'marginRight',\n 'marginBottom',\n 'marginLeft',\n 'marginBlock',\n 'marginInline',\n];\n"],"mappings":";;;;;;AAQA,SAAS,iBAAiB,OAAiD;AACzE,KAAI,OAAO,UAAU,SAAU,QAAO,GAAG,MAAM;AAC/C,KAAI,CAAC,MAAO,QAAO;AACnB,KAAI,UAAU,KAAM,SAAQ;CAE5B,MAAM,EAAE,WAAW,WAAW,MAAM,CAAC,OAAO,MAAM,EAAE,QAAQ,EAAE,EAAE;AAEhE,QAAO,OAAO,MAAM;;;;;AAMtB,SAAS,iBAAiB,OAGxB;CACA,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK;AACnC,QAAO;EACL,QAAQ,OAAO,SAAS,SAAS,CAAC,aAAa;EAC/C,YAAY,WAAW,MAAM,WAAW;EACzC;;;;;AAMH,SAAS,WACP,MACA,QACA,YACM;AACN,KAAI,CAAC,OAAO,OAAQ;AAEpB,KAAI,WAAW,WAAW,GAAG;AAC3B,OAAK,MAAM,OAAO;AAClB,OAAK,QAAQ,OAAO,MAAM,OAAO;AACjC,OAAK,SAAS,OAAO,MAAM,OAAO;AAClC,OAAK,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO;OAE7C,YAAW,SAAS,KAAK,MAAM;AAC7B,OAAK,OAAO,OAAO,MAAM,OAAO;GAChC;;;;;AAON,SAAS,eAAe,MAEtB;CACA,MAAM,EAAE,KAAK,OAAO,QAAQ,SAAS;AACrC,KAAI,QAAQ,SAAS,UAAU,UAAU,WAAW,KAClD,QAAO,EAAE,QAAQ,KAAK;AAExB,KAAI,QAAQ,UAAU,SAAS,MAC7B,QAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ;AAErC,QAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ;;AAGxD,SAAgB,YAAY,EAC1B,QACA,aACA,cACA,WACA,aACA,cACA,cASC;AACD,KACE,UAAU,QACV,eAAe,QACf,gBAAgB,QAChB,aAAa,QACb,eAAe,QACf,gBAAgB,QAChB,cAAc,KAEd,QAAO,EAAE;CAGX,MAAM,OAAkC;EACtC,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACP;AAGD,KAAI,UAAU,MAAM;AAClB,MAAI,OAAO,WAAW,SAEpB,MAAK,MAAM,KAAK,QAAQ,KAAK,SAAS,KAAK,OADjC,GAAG,OAAO;WAEX,WAAW,KACpB,UAAS;AAGX,MAAI,OAAO,WAAW,YAAY,QAAQ;GAExC,MAAM,SADY,WAAW,OAAO,CACX,UAAU,EAAE;AAErC,QAAK,MAAM,SAAS,QAAQ;IAC1B,MAAM,EAAE,QAAQ,eAAe,iBAAiB,MAAM;AACtD,eAAW,MAAM,QAAQ,WAAW;;;;AAM1C,KAAI,eAAe,MAAM;EACvB,MAAM,MAAM,iBAAiB,YAAY;AACzC,MAAI,IAAK,MAAK,MAAM,KAAK,SAAS;;AAEpC,KAAI,gBAAgB,MAAM;EACxB,MAAM,MAAM,iBAAiB,aAAa;AAC1C,MAAI,IAAK,MAAK,OAAO,KAAK,QAAQ;;AAIpC,KAAI,aAAa,MAAM;EACrB,MAAM,MAAM,iBAAiB,UAAU;AACvC,MAAI,IAAK,MAAK,MAAM;;AAEtB,KAAI,eAAe,MAAM;EACvB,MAAM,MAAM,iBAAiB,YAAY;AACzC,MAAI,IAAK,MAAK,QAAQ;;AAExB,KAAI,gBAAgB,MAAM;EACxB,MAAM,MAAM,iBAAiB,aAAa;AAC1C,MAAI,IAAK,MAAK,SAAS;;AAEzB,KAAI,cAAc,MAAM;EACtB,MAAM,MAAM,iBAAiB,WAAW;AACxC,MAAI,IAAK,MAAK,OAAO;;AAGvB,QAAO,eAAe,KAAK;;AAG7B,YAAY,iBAAiB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"margin.js","names":[],"sources":["../../src/styles/margin.ts"],"sourcesContent":["import { processDirectionalStyle } from './directional';\n\nconst MARGIN_CONFIG = {\n property: 'margin',\n defaultValue: 'var(--gap)',\n trueValue: '1x',\n defaultInit: '0',\n} as const;\n\nexport function marginStyle({\n margin,\n marginBlock,\n marginInline,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n}: {\n margin?: string | number | boolean;\n marginBlock?: string | number | boolean;\n marginInline?: string | number | boolean;\n marginTop?: string | number | boolean;\n marginRight?: string | number | boolean;\n marginBottom?: string | number | boolean;\n marginLeft?: string | number | boolean;\n}) {\n return processDirectionalStyle(MARGIN_CONFIG, {\n main: margin,\n block: marginBlock,\n inline: marginInline,\n top: marginTop,\n right: marginRight,\n bottom: marginBottom,\n left: marginLeft,\n });\n}\n\nmarginStyle.__lookupStyles = [\n 'margin',\n 'marginTop',\n 'marginRight',\n 'marginBottom',\n 'marginLeft',\n 'marginBlock',\n 'marginInline',\n];\n"],"mappings":";;AAEA,MAAM,gBAAgB;CACpB,UAAU;CACV,cAAc;CACd,WAAW;CACX,aAAa;CACd;AAED,SAAgB,YAAY,EAC1B,QACA,aACA,cACA,WACA,aACA,cACA,cASC;AACD,QAAO,wBAAwB,eAAe;EAC5C,MAAM;EACN,OAAO;EACP,QAAQ;EACR,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACP,CAAC;;AAGJ,YAAY,iBAAiB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -20,7 +20,7 @@ interface OutlineStyleProps {
20
20
  declare function outlineStyle({
21
21
  outline,
22
22
  outlineOffset
23
- }: OutlineStyleProps): Record<string, string> | undefined;
23
+ }: OutlineStyleProps): Record<string, string> | null;
24
24
  declare namespace outlineStyle {
25
25
  var __lookupStyles: string[];
26
26
  }
@@ -1,18 +1,7 @@
1
+ import { CSS_WIDE_KEYWORDS } from "../parser/const.js";
1
2
  import { filterMods, parseStyle } from "../utils/styles.js";
2
-
3
+ import { BORDER_STYLES } from "./const.js";
3
4
  //#region src/styles/outline.ts
4
- const BORDER_STYLES = [
5
- "none",
6
- "hidden",
7
- "dotted",
8
- "dashed",
9
- "solid",
10
- "double",
11
- "groove",
12
- "ridge",
13
- "inset",
14
- "outset"
15
- ];
16
5
  /**
17
6
  * Generates CSS for outline property with optional offset.
18
7
  *
@@ -29,7 +18,8 @@ const BORDER_STYLES = [
29
18
  */
30
19
  function outlineStyle({ outline, outlineOffset }) {
31
20
  const result = {};
32
- if (outline != null && outline !== false) {
21
+ if (outline != null && outline !== false) if (typeof outline === "string" && CSS_WIDE_KEYWORDS.has(outline)) result["outline"] = outline;
22
+ else {
33
23
  let outlineValue = outline;
34
24
  if (outline === true) outlineValue = "1ow";
35
25
  if (outline === 0) outlineValue = "0";
@@ -55,11 +45,11 @@ function outlineStyle({ outline, outlineOffset }) {
55
45
  const offsetValue = typeof outlineOffset === "number" ? `${outlineOffset}px` : outlineOffset;
56
46
  result["outline-offset"] = parseStyle(offsetValue).groups[0]?.values[0] || offsetValue;
57
47
  }
58
- if (Object.keys(result).length === 0) return;
48
+ if (Object.keys(result).length === 0) return null;
59
49
  return result;
60
50
  }
61
51
  outlineStyle.__lookupStyles = ["outline", "outlineOffset"];
62
-
63
52
  //#endregion
64
53
  export { outlineStyle };
54
+
65
55
  //# sourceMappingURL=outline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline.js","names":[],"sources":["../../src/styles/outline.ts"],"sourcesContent":["import { filterMods, parseStyle } from '../utils/styles';\n\nconst BORDER_STYLES = [\n 'none',\n 'hidden',\n 'dotted',\n 'dashed',\n 'solid',\n 'double',\n 'groove',\n 'ridge',\n 'inset',\n 'outset',\n];\n\ninterface OutlineStyleProps {\n outline?: string | boolean | number;\n outlineOffset?: string | number;\n}\n\n/**\n * Generates CSS for outline property with optional offset.\n *\n * Syntax:\n * - `outline=\"2px solid #red\"` - outline only\n * - `outline=\"2px solid #red / 4px\"` - outline with offset (slash separator)\n * - `outline=\"2px / 4px\"` - width with offset (simpler form)\n * - `outline={true}` - default 1ow solid outline\n * - `outlineOffset=\"4px\"` - offset as separate prop (can be combined with outline)\n *\n * Priority: slash syntax in outline takes precedence over outlineOffset prop\n *\n * @return CSS properties for outline and optionally outline-offset\n */\nexport function outlineStyle({ outline, outlineOffset }: OutlineStyleProps) {\n const result: Record<string, string> = {};\n\n // Handle outline (0 is valid - means no outline)\n if (outline != null && outline !== false) {\n let outlineValue: string | boolean | number = outline;\n if (outline === true) outlineValue = '1ow';\n if (outline === 0) outlineValue = '0';\n\n const processed = parseStyle(String(outlineValue));\n const group = processed.groups[0];\n\n if (group) {\n const { parts } = group;\n const outlinePart = parts[0] ?? { values: [], mods: [], colors: [] };\n const offsetPart = parts[1];\n\n const typeMods = filterMods(outlinePart.mods, BORDER_STYLES);\n\n const value = outlinePart.values[0] || 'var(--outline-width)';\n const type = typeMods[0] || 'solid';\n const outlineColor = outlinePart.colors[0] || 'var(--outline-color)';\n\n result['outline'] = [value, type, outlineColor].join(' ');\n\n // Check for offset in second part (after /) - takes precedence\n if (offsetPart?.values[0]) {\n result['outline-offset'] = offsetPart.values[0];\n }\n }\n }\n\n // Handle outlineOffset prop (only if not already set by slash syntax)\n if (outlineOffset != null && !result['outline-offset']) {\n const offsetValue =\n typeof outlineOffset === 'number' ? `${outlineOffset}px` : outlineOffset;\n const processed = parseStyle(offsetValue);\n result['outline-offset'] = processed.groups[0]?.values[0] || offsetValue;\n }\n\n // Return undefined if no styles to apply\n if (Object.keys(result).length === 0) {\n return;\n }\n\n return result;\n}\n\noutlineStyle.__lookupStyles = ['outline', 'outlineOffset'];\n"],"mappings":";;;AAEA,MAAM,gBAAgB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;;;;;;;;;AAqBD,SAAgB,aAAa,EAAE,SAAS,iBAAoC;CAC1E,MAAM,SAAiC,EAAE;AAGzC,KAAI,WAAW,QAAQ,YAAY,OAAO;EACxC,IAAI,eAA0C;AAC9C,MAAI,YAAY,KAAM,gBAAe;AACrC,MAAI,YAAY,EAAG,gBAAe;EAGlC,MAAM,QADY,WAAW,OAAO,aAAa,CAAC,CAC1B,OAAO;AAE/B,MAAI,OAAO;GACT,MAAM,EAAE,UAAU;GAClB,MAAM,cAAc,MAAM,MAAM;IAAE,QAAQ,EAAE;IAAE,MAAM,EAAE;IAAE,QAAQ,EAAE;IAAE;GACpE,MAAM,aAAa,MAAM;GAEzB,MAAM,WAAW,WAAW,YAAY,MAAM,cAAc;AAM5D,UAAO,aAAa;IAJN,YAAY,OAAO,MAAM;IAC1B,SAAS,MAAM;IACP,YAAY,OAAO,MAAM;IAEC,CAAC,KAAK,IAAI;AAGzD,OAAI,YAAY,OAAO,GACrB,QAAO,oBAAoB,WAAW,OAAO;;;AAMnD,KAAI,iBAAiB,QAAQ,CAAC,OAAO,mBAAmB;EACtD,MAAM,cACJ,OAAO,kBAAkB,WAAW,GAAG,cAAc,MAAM;AAE7D,SAAO,oBADW,WAAW,YAAY,CACJ,OAAO,IAAI,OAAO,MAAM;;AAI/D,KAAI,OAAO,KAAK,OAAO,CAAC,WAAW,EACjC;AAGF,QAAO;;AAGT,aAAa,iBAAiB,CAAC,WAAW,gBAAgB"}
1
+ {"version":3,"file":"outline.js","names":[],"sources":["../../src/styles/outline.ts"],"sourcesContent":["import { CSS_WIDE_KEYWORDS } from '../parser/const';\nimport { filterMods, parseStyle } from '../utils/styles';\nimport { BORDER_STYLES } from './const';\n\ninterface OutlineStyleProps {\n outline?: string | boolean | number;\n outlineOffset?: string | number;\n}\n\n/**\n * Generates CSS for outline property with optional offset.\n *\n * Syntax:\n * - `outline=\"2px solid #red\"` - outline only\n * - `outline=\"2px solid #red / 4px\"` - outline with offset (slash separator)\n * - `outline=\"2px / 4px\"` - width with offset (simpler form)\n * - `outline={true}` - default 1ow solid outline\n * - `outlineOffset=\"4px\"` - offset as separate prop (can be combined with outline)\n *\n * Priority: slash syntax in outline takes precedence over outlineOffset prop\n *\n * @return CSS properties for outline and optionally outline-offset\n */\nexport function outlineStyle({ outline, outlineOffset }: OutlineStyleProps) {\n const result: Record<string, string> = {};\n\n // Handle outline (0 is valid - means no outline)\n if (outline != null && outline !== false) {\n if (typeof outline === 'string' && CSS_WIDE_KEYWORDS.has(outline)) {\n result['outline'] = outline;\n } else {\n let outlineValue: string | boolean | number = outline;\n if (outline === true) outlineValue = '1ow';\n if (outline === 0) outlineValue = '0';\n\n const processed = parseStyle(String(outlineValue));\n const group = processed.groups[0];\n\n if (group) {\n const { parts } = group;\n const outlinePart = parts[0] ?? { values: [], mods: [], colors: [] };\n const offsetPart = parts[1];\n\n const typeMods = filterMods(\n outlinePart.mods,\n BORDER_STYLES as unknown as string[],\n );\n\n const value = outlinePart.values[0] || 'var(--outline-width)';\n const type = typeMods[0] || 'solid';\n const outlineColor = outlinePart.colors[0] || 'var(--outline-color)';\n\n result['outline'] = [value, type, outlineColor].join(' ');\n\n if (offsetPart?.values[0]) {\n result['outline-offset'] = offsetPart.values[0];\n }\n }\n }\n }\n\n // Handle outlineOffset prop (only if not already set by slash syntax)\n if (outlineOffset != null && !result['outline-offset']) {\n const offsetValue =\n typeof outlineOffset === 'number' ? `${outlineOffset}px` : outlineOffset;\n const processed = parseStyle(offsetValue);\n result['outline-offset'] = processed.groups[0]?.values[0] || offsetValue;\n }\n\n if (Object.keys(result).length === 0) {\n return null;\n }\n\n return result;\n}\n\noutlineStyle.__lookupStyles = ['outline', 'outlineOffset'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,SAAgB,aAAa,EAAE,SAAS,iBAAoC;CAC1E,MAAM,SAAiC,EAAE;AAGzC,KAAI,WAAW,QAAQ,YAAY,MACjC,KAAI,OAAO,YAAY,YAAY,kBAAkB,IAAI,QAAQ,CAC/D,QAAO,aAAa;MACf;EACL,IAAI,eAA0C;AAC9C,MAAI,YAAY,KAAM,gBAAe;AACrC,MAAI,YAAY,EAAG,gBAAe;EAGlC,MAAM,QADY,WAAW,OAAO,aAAa,CAAC,CAC1B,OAAO;AAE/B,MAAI,OAAO;GACT,MAAM,EAAE,UAAU;GAClB,MAAM,cAAc,MAAM,MAAM;IAAE,QAAQ,EAAE;IAAE,MAAM,EAAE;IAAE,QAAQ,EAAE;IAAE;GACpE,MAAM,aAAa,MAAM;GAEzB,MAAM,WAAW,WACf,YAAY,MACZ,cACD;AAMD,UAAO,aAAa;IAJN,YAAY,OAAO,MAAM;IAC1B,SAAS,MAAM;IACP,YAAY,OAAO,MAAM;IAEC,CAAC,KAAK,IAAI;AAEzD,OAAI,YAAY,OAAO,GACrB,QAAO,oBAAoB,WAAW,OAAO;;;AAOrD,KAAI,iBAAiB,QAAQ,CAAC,OAAO,mBAAmB;EACtD,MAAM,cACJ,OAAO,kBAAkB,WAAW,GAAG,cAAc,MAAM;AAE7D,SAAO,oBADW,WAAW,YAAY,CACJ,OAAO,IAAI,OAAO,MAAM;;AAG/D,KAAI,OAAO,KAAK,OAAO,CAAC,WAAW,EACjC,QAAO;AAGT,QAAO;;AAGT,aAAa,iBAAiB,CAAC,WAAW,gBAAgB"}
@@ -15,7 +15,7 @@ declare function paddingStyle({
15
15
  paddingRight?: string | number | boolean;
16
16
  paddingBottom?: string | number | boolean;
17
17
  paddingLeft?: string | number | boolean;
18
- }): {};
18
+ }): Record<string, string> | null;
19
19
  declare namespace paddingStyle {
20
20
  var __lookupStyles: string[];
21
21
  }
@@ -1,93 +1,21 @@
1
- import { DIRECTIONS, filterMods, parseStyle } from "../utils/styles.js";
2
-
1
+ import { processDirectionalStyle } from "./directional.js";
3
2
  //#region src/styles/padding.ts
4
- /**
5
- * Parse a padding value and return the first processed value
6
- */
7
- function parsePaddingValue(value) {
8
- if (typeof value === "number") return `${value}px`;
9
- if (!value) return null;
10
- if (value === true) value = "1x";
11
- const { values } = parseStyle(value).groups[0] ?? { values: [] };
12
- return values[0] || "var(--gap)";
13
- }
14
- /**
15
- * Extract values and directions from a single parsed group.
16
- */
17
- function extractGroupData(group) {
18
- const { values = [], mods = [] } = group;
19
- return {
20
- values: values.length ? values : ["var(--gap)"],
21
- directions: filterMods(mods, DIRECTIONS)
22
- };
23
- }
24
- /**
25
- * Apply a single group's values and directions onto a direction map.
26
- */
27
- function applyGroup(dirs, values, directions) {
28
- if (!values.length) return;
29
- if (directions.length === 0) {
30
- dirs.top = values[0];
31
- dirs.right = values[1] || values[0];
32
- dirs.bottom = values[2] || values[0];
33
- dirs.left = values[3] || values[1] || values[0];
34
- } else directions.forEach((dir, i) => {
35
- dirs[dir] = values[i] ?? values[0];
36
- });
37
- }
38
- /**
39
- * Optimize padding output shorthand.
40
- */
41
- function optimizePadding(dirs) {
42
- const { top, right, bottom, left } = dirs;
43
- if (top === right && right === bottom && bottom === left) return { padding: top };
44
- if (top === bottom && left === right) return { padding: `${top} ${left}` };
45
- return { padding: `${top} ${right} ${bottom} ${left}` };
46
- }
3
+ const PADDING_CONFIG = {
4
+ property: "padding",
5
+ defaultValue: "var(--gap)",
6
+ trueValue: "1x",
7
+ defaultInit: "0"
8
+ };
47
9
  function paddingStyle({ padding, paddingBlock, paddingInline, paddingTop, paddingRight, paddingBottom, paddingLeft }) {
48
- if (padding == null && paddingBlock == null && paddingInline == null && paddingTop == null && paddingRight == null && paddingBottom == null && paddingLeft == null) return {};
49
- const dirs = {
50
- top: "0",
51
- right: "0",
52
- bottom: "0",
53
- left: "0"
54
- };
55
- if (padding != null) {
56
- if (typeof padding === "number") dirs.top = dirs.right = dirs.bottom = dirs.left = `${padding}px`;
57
- else if (padding === true) padding = "1x";
58
- if (typeof padding === "string" && padding) {
59
- const groups = parseStyle(padding).groups ?? [];
60
- for (const group of groups) {
61
- const { values, directions } = extractGroupData(group);
62
- applyGroup(dirs, values, directions);
63
- }
64
- }
65
- }
66
- if (paddingBlock != null) {
67
- const val = parsePaddingValue(paddingBlock);
68
- if (val) dirs.top = dirs.bottom = val;
69
- }
70
- if (paddingInline != null) {
71
- const val = parsePaddingValue(paddingInline);
72
- if (val) dirs.left = dirs.right = val;
73
- }
74
- if (paddingTop != null) {
75
- const val = parsePaddingValue(paddingTop);
76
- if (val) dirs.top = val;
77
- }
78
- if (paddingRight != null) {
79
- const val = parsePaddingValue(paddingRight);
80
- if (val) dirs.right = val;
81
- }
82
- if (paddingBottom != null) {
83
- const val = parsePaddingValue(paddingBottom);
84
- if (val) dirs.bottom = val;
85
- }
86
- if (paddingLeft != null) {
87
- const val = parsePaddingValue(paddingLeft);
88
- if (val) dirs.left = val;
89
- }
90
- return optimizePadding(dirs);
10
+ return processDirectionalStyle(PADDING_CONFIG, {
11
+ main: padding,
12
+ block: paddingBlock,
13
+ inline: paddingInline,
14
+ top: paddingTop,
15
+ right: paddingRight,
16
+ bottom: paddingBottom,
17
+ left: paddingLeft
18
+ });
91
19
  }
92
20
  paddingStyle.__lookupStyles = [
93
21
  "padding",
@@ -98,7 +26,7 @@ paddingStyle.__lookupStyles = [
98
26
  "paddingBlock",
99
27
  "paddingInline"
100
28
  ];
101
-
102
29
  //#endregion
103
30
  export { paddingStyle };
31
+
104
32
  //# sourceMappingURL=padding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"padding.js","names":[],"sources":["../../src/styles/padding.ts"],"sourcesContent":["import type { StyleDetails } from '../parser/types';\nimport { DIRECTIONS, filterMods, parseStyle } from '../utils/styles';\n\ntype Direction = (typeof DIRECTIONS)[number];\n\n/**\n * Parse a padding value and return the first processed value\n */\nfunction parsePaddingValue(value: string | number | boolean): string | null {\n if (typeof value === 'number') return `${value}px`;\n if (!value) return null;\n if (value === true) value = '1x';\n\n const { values } = parseStyle(value).groups[0] ?? { values: [] };\n\n return values[0] || 'var(--gap)';\n}\n\n/**\n * Extract values and directions from a single parsed group.\n */\nfunction extractGroupData(group: StyleDetails): {\n values: string[];\n directions: Direction[];\n} {\n const { values = [], mods = [] } = group;\n return {\n values: values.length ? values : ['var(--gap)'],\n directions: filterMods(mods, DIRECTIONS) as Direction[],\n };\n}\n\n/**\n * Apply a single group's values and directions onto a direction map.\n */\nfunction applyGroup(\n dirs: Record<Direction, string>,\n values: string[],\n directions: Direction[],\n): void {\n if (!values.length) return;\n\n if (directions.length === 0) {\n dirs.top = values[0];\n dirs.right = values[1] || values[0];\n dirs.bottom = values[2] || values[0];\n dirs.left = values[3] || values[1] || values[0];\n } else {\n directions.forEach((dir, i) => {\n dirs[dir] = values[i] ?? values[0];\n });\n }\n}\n\n/**\n * Optimize padding output shorthand.\n */\nfunction optimizePadding(dirs: Record<Direction, string>): {\n padding: string;\n} {\n const { top, right, bottom, left } = dirs;\n if (top === right && right === bottom && bottom === left) {\n return { padding: top };\n }\n if (top === bottom && left === right) {\n return { padding: `${top} ${left}` };\n }\n return { padding: `${top} ${right} ${bottom} ${left}` };\n}\n\nexport function paddingStyle({\n padding,\n paddingBlock,\n paddingInline,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n}: {\n padding?: string | number | boolean;\n paddingBlock?: string | number | boolean;\n paddingInline?: string | number | boolean;\n paddingTop?: string | number | boolean;\n paddingRight?: string | number | boolean;\n paddingBottom?: string | number | boolean;\n paddingLeft?: string | number | boolean;\n}) {\n if (\n padding == null &&\n paddingBlock == null &&\n paddingInline == null &&\n paddingTop == null &&\n paddingRight == null &&\n paddingBottom == null &&\n paddingLeft == null\n ) {\n return {};\n }\n\n const dirs: Record<Direction, string> = {\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n };\n\n // Priority 1 (lowest): padding\n if (padding != null) {\n if (typeof padding === 'number') {\n const v = `${padding}px`;\n dirs.top = dirs.right = dirs.bottom = dirs.left = v;\n } else if (padding === true) {\n padding = '1x';\n }\n\n if (typeof padding === 'string' && padding) {\n const processed = parseStyle(padding);\n const groups = processed.groups ?? [];\n\n for (const group of groups) {\n const { values, directions } = extractGroupData(group);\n applyGroup(dirs, values, directions);\n }\n }\n }\n\n // Priority 2 (medium): paddingBlock/paddingInline\n if (paddingBlock != null) {\n const val = parsePaddingValue(paddingBlock);\n if (val) dirs.top = dirs.bottom = val;\n }\n if (paddingInline != null) {\n const val = parsePaddingValue(paddingInline);\n if (val) dirs.left = dirs.right = val;\n }\n\n // Priority 3 (highest): individual directions\n if (paddingTop != null) {\n const val = parsePaddingValue(paddingTop);\n if (val) dirs.top = val;\n }\n if (paddingRight != null) {\n const val = parsePaddingValue(paddingRight);\n if (val) dirs.right = val;\n }\n if (paddingBottom != null) {\n const val = parsePaddingValue(paddingBottom);\n if (val) dirs.bottom = val;\n }\n if (paddingLeft != null) {\n const val = parsePaddingValue(paddingLeft);\n if (val) dirs.left = val;\n }\n\n return optimizePadding(dirs);\n}\n\npaddingStyle.__lookupStyles = [\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingBlock',\n 'paddingInline',\n];\n"],"mappings":";;;;;;AAQA,SAAS,kBAAkB,OAAiD;AAC1E,KAAI,OAAO,UAAU,SAAU,QAAO,GAAG,MAAM;AAC/C,KAAI,CAAC,MAAO,QAAO;AACnB,KAAI,UAAU,KAAM,SAAQ;CAE5B,MAAM,EAAE,WAAW,WAAW,MAAM,CAAC,OAAO,MAAM,EAAE,QAAQ,EAAE,EAAE;AAEhE,QAAO,OAAO,MAAM;;;;;AAMtB,SAAS,iBAAiB,OAGxB;CACA,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK;AACnC,QAAO;EACL,QAAQ,OAAO,SAAS,SAAS,CAAC,aAAa;EAC/C,YAAY,WAAW,MAAM,WAAW;EACzC;;;;;AAMH,SAAS,WACP,MACA,QACA,YACM;AACN,KAAI,CAAC,OAAO,OAAQ;AAEpB,KAAI,WAAW,WAAW,GAAG;AAC3B,OAAK,MAAM,OAAO;AAClB,OAAK,QAAQ,OAAO,MAAM,OAAO;AACjC,OAAK,SAAS,OAAO,MAAM,OAAO;AAClC,OAAK,OAAO,OAAO,MAAM,OAAO,MAAM,OAAO;OAE7C,YAAW,SAAS,KAAK,MAAM;AAC7B,OAAK,OAAO,OAAO,MAAM,OAAO;GAChC;;;;;AAON,SAAS,gBAAgB,MAEvB;CACA,MAAM,EAAE,KAAK,OAAO,QAAQ,SAAS;AACrC,KAAI,QAAQ,SAAS,UAAU,UAAU,WAAW,KAClD,QAAO,EAAE,SAAS,KAAK;AAEzB,KAAI,QAAQ,UAAU,SAAS,MAC7B,QAAO,EAAE,SAAS,GAAG,IAAI,GAAG,QAAQ;AAEtC,QAAO,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ;;AAGzD,SAAgB,aAAa,EAC3B,SACA,cACA,eACA,YACA,cACA,eACA,eASC;AACD,KACE,WAAW,QACX,gBAAgB,QAChB,iBAAiB,QACjB,cAAc,QACd,gBAAgB,QAChB,iBAAiB,QACjB,eAAe,KAEf,QAAO,EAAE;CAGX,MAAM,OAAkC;EACtC,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACP;AAGD,KAAI,WAAW,MAAM;AACnB,MAAI,OAAO,YAAY,SAErB,MAAK,MAAM,KAAK,QAAQ,KAAK,SAAS,KAAK,OADjC,GAAG,QAAQ;WAEZ,YAAY,KACrB,WAAU;AAGZ,MAAI,OAAO,YAAY,YAAY,SAAS;GAE1C,MAAM,SADY,WAAW,QAAQ,CACZ,UAAU,EAAE;AAErC,QAAK,MAAM,SAAS,QAAQ;IAC1B,MAAM,EAAE,QAAQ,eAAe,iBAAiB,MAAM;AACtD,eAAW,MAAM,QAAQ,WAAW;;;;AAM1C,KAAI,gBAAgB,MAAM;EACxB,MAAM,MAAM,kBAAkB,aAAa;AAC3C,MAAI,IAAK,MAAK,MAAM,KAAK,SAAS;;AAEpC,KAAI,iBAAiB,MAAM;EACzB,MAAM,MAAM,kBAAkB,cAAc;AAC5C,MAAI,IAAK,MAAK,OAAO,KAAK,QAAQ;;AAIpC,KAAI,cAAc,MAAM;EACtB,MAAM,MAAM,kBAAkB,WAAW;AACzC,MAAI,IAAK,MAAK,MAAM;;AAEtB,KAAI,gBAAgB,MAAM;EACxB,MAAM,MAAM,kBAAkB,aAAa;AAC3C,MAAI,IAAK,MAAK,QAAQ;;AAExB,KAAI,iBAAiB,MAAM;EACzB,MAAM,MAAM,kBAAkB,cAAc;AAC5C,MAAI,IAAK,MAAK,SAAS;;AAEzB,KAAI,eAAe,MAAM;EACvB,MAAM,MAAM,kBAAkB,YAAY;AAC1C,MAAI,IAAK,MAAK,OAAO;;AAGvB,QAAO,gBAAgB,KAAK;;AAG9B,aAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"padding.js","names":[],"sources":["../../src/styles/padding.ts"],"sourcesContent":["import { processDirectionalStyle } from './directional';\n\nconst PADDING_CONFIG = {\n property: 'padding',\n defaultValue: 'var(--gap)',\n trueValue: '1x',\n defaultInit: '0',\n} as const;\n\nexport function paddingStyle({\n padding,\n paddingBlock,\n paddingInline,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n}: {\n padding?: string | number | boolean;\n paddingBlock?: string | number | boolean;\n paddingInline?: string | number | boolean;\n paddingTop?: string | number | boolean;\n paddingRight?: string | number | boolean;\n paddingBottom?: string | number | boolean;\n paddingLeft?: string | number | boolean;\n}) {\n return processDirectionalStyle(PADDING_CONFIG, {\n main: padding,\n block: paddingBlock,\n inline: paddingInline,\n top: paddingTop,\n right: paddingRight,\n bottom: paddingBottom,\n left: paddingLeft,\n });\n}\n\npaddingStyle.__lookupStyles = [\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingBlock',\n 'paddingInline',\n];\n"],"mappings":";;AAEA,MAAM,iBAAiB;CACrB,UAAU;CACV,cAAc;CACd,WAAW;CACX,aAAa;CACd;AAED,SAAgB,aAAa,EAC3B,SACA,cACA,eACA,YACA,cACA,eACA,eASC;AACD,QAAO,wBAAwB,gBAAgB;EAC7C,MAAM;EACN,OAAO;EACP,QAAQ;EACR,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACP,CAAC;;AAGJ,aAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,37 @@
1
+ //#region src/styles/placement.d.ts
2
+ interface PlacementStyleProps {
3
+ place?: string | boolean;
4
+ placeItems?: string | boolean;
5
+ placeContent?: string | boolean;
6
+ align?: string | boolean;
7
+ justify?: string | boolean;
8
+ alignItems?: string | boolean;
9
+ alignContent?: string | boolean;
10
+ justifyItems?: string | boolean;
11
+ justifyContent?: string | boolean;
12
+ }
13
+ /**
14
+ * Unified placement handler replacing align, justify, and place.
15
+ *
16
+ * Priority (later overrides earlier):
17
+ * 1. place (lowest) — sets all 4 longhands
18
+ * 2. placeItems, placeContent, align, justify (medium) — each sets 2 longhands
19
+ * 3. alignItems, alignContent, justifyItems, justifyContent (highest) — each sets 1 longhand
20
+ */
21
+ declare function placementStyle({
22
+ place,
23
+ placeItems,
24
+ placeContent,
25
+ align,
26
+ justify,
27
+ alignItems,
28
+ alignContent,
29
+ justifyItems,
30
+ justifyContent
31
+ }: PlacementStyleProps): Record<string, string> | null;
32
+ declare namespace placementStyle {
33
+ var __lookupStyles: string[];
34
+ }
35
+ //#endregion
36
+ export { placementStyle };
37
+ //# sourceMappingURL=placement.d.ts.map
@@ -0,0 +1,74 @@
1
+ //#region src/styles/placement.ts
2
+ function str(val) {
3
+ if (val == null || val === false || val === "") return null;
4
+ if (val === true) return "center";
5
+ return String(val);
6
+ }
7
+ /**
8
+ * Unified placement handler replacing align, justify, and place.
9
+ *
10
+ * Priority (later overrides earlier):
11
+ * 1. place (lowest) — sets all 4 longhands
12
+ * 2. placeItems, placeContent, align, justify (medium) — each sets 2 longhands
13
+ * 3. alignItems, alignContent, justifyItems, justifyContent (highest) — each sets 1 longhand
14
+ */
15
+ function placementStyle({ place, placeItems, placeContent, align, justify, alignItems, alignContent, justifyItems, justifyContent }) {
16
+ const result = {};
17
+ const placeVal = str(place);
18
+ if (placeVal) {
19
+ const parts = placeVal.split(/\s+/);
20
+ const first = parts[0];
21
+ const second = parts[1] || first;
22
+ result["align-items"] = first;
23
+ result["justify-items"] = second;
24
+ result["align-content"] = first;
25
+ result["justify-content"] = second;
26
+ }
27
+ const placeItemsVal = str(placeItems);
28
+ if (placeItemsVal) {
29
+ const parts = placeItemsVal.split(/\s+/);
30
+ result["align-items"] = parts[0];
31
+ result["justify-items"] = parts[1] || parts[0];
32
+ }
33
+ const placeContentVal = str(placeContent);
34
+ if (placeContentVal) {
35
+ const parts = placeContentVal.split(/\s+/);
36
+ result["align-content"] = parts[0];
37
+ result["justify-content"] = parts[1] || parts[0];
38
+ }
39
+ const alignVal = str(align);
40
+ if (alignVal) {
41
+ result["align-items"] = alignVal;
42
+ result["align-content"] = alignVal;
43
+ }
44
+ const justifyVal = str(justify);
45
+ if (justifyVal) {
46
+ result["justify-items"] = justifyVal;
47
+ result["justify-content"] = justifyVal;
48
+ }
49
+ const alignItemsVal = str(alignItems);
50
+ if (alignItemsVal) result["align-items"] = alignItemsVal;
51
+ const alignContentVal = str(alignContent);
52
+ if (alignContentVal) result["align-content"] = alignContentVal;
53
+ const justifyItemsVal = str(justifyItems);
54
+ if (justifyItemsVal) result["justify-items"] = justifyItemsVal;
55
+ const justifyContentVal = str(justifyContent);
56
+ if (justifyContentVal) result["justify-content"] = justifyContentVal;
57
+ if (Object.keys(result).length === 0) return null;
58
+ return result;
59
+ }
60
+ placementStyle.__lookupStyles = [
61
+ "place",
62
+ "placeItems",
63
+ "placeContent",
64
+ "align",
65
+ "justify",
66
+ "alignItems",
67
+ "alignContent",
68
+ "justifyItems",
69
+ "justifyContent"
70
+ ];
71
+ //#endregion
72
+ export { placementStyle };
73
+
74
+ //# sourceMappingURL=placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.js","names":[],"sources":["../../src/styles/placement.ts"],"sourcesContent":["interface PlacementStyleProps {\n place?: string | boolean;\n placeItems?: string | boolean;\n placeContent?: string | boolean;\n align?: string | boolean;\n justify?: string | boolean;\n alignItems?: string | boolean;\n alignContent?: string | boolean;\n justifyItems?: string | boolean;\n justifyContent?: string | boolean;\n}\n\nfunction str(val: string | boolean | undefined): string | null {\n if (val == null || val === false || val === '') return null;\n if (val === true) return 'center';\n\n return String(val);\n}\n\n/**\n * Unified placement handler replacing align, justify, and place.\n *\n * Priority (later overrides earlier):\n * 1. place (lowest) — sets all 4 longhands\n * 2. placeItems, placeContent, align, justify (medium) — each sets 2 longhands\n * 3. alignItems, alignContent, justifyItems, justifyContent (highest) — each sets 1 longhand\n */\nexport function placementStyle({\n place,\n placeItems,\n placeContent,\n align,\n justify,\n alignItems,\n alignContent,\n justifyItems,\n justifyContent,\n}: PlacementStyleProps) {\n const result: Record<string, string> = {};\n\n const placeVal = str(place);\n\n if (placeVal) {\n const parts = placeVal.split(/\\s+/);\n const first = parts[0];\n const second = parts[1] || first;\n\n result['align-items'] = first;\n result['justify-items'] = second;\n result['align-content'] = first;\n result['justify-content'] = second;\n }\n\n const placeItemsVal = str(placeItems);\n\n if (placeItemsVal) {\n const parts = placeItemsVal.split(/\\s+/);\n\n result['align-items'] = parts[0];\n result['justify-items'] = parts[1] || parts[0];\n }\n\n const placeContentVal = str(placeContent);\n\n if (placeContentVal) {\n const parts = placeContentVal.split(/\\s+/);\n\n result['align-content'] = parts[0];\n result['justify-content'] = parts[1] || parts[0];\n }\n\n const alignVal = str(align);\n\n if (alignVal) {\n result['align-items'] = alignVal;\n result['align-content'] = alignVal;\n }\n\n const justifyVal = str(justify);\n\n if (justifyVal) {\n result['justify-items'] = justifyVal;\n result['justify-content'] = justifyVal;\n }\n\n const alignItemsVal = str(alignItems);\n\n if (alignItemsVal) result['align-items'] = alignItemsVal;\n\n const alignContentVal = str(alignContent);\n\n if (alignContentVal) result['align-content'] = alignContentVal;\n\n const justifyItemsVal = str(justifyItems);\n\n if (justifyItemsVal) result['justify-items'] = justifyItemsVal;\n\n const justifyContentVal = str(justifyContent);\n\n if (justifyContentVal) result['justify-content'] = justifyContentVal;\n\n if (Object.keys(result).length === 0) return null;\n\n return result;\n}\n\nplacementStyle.__lookupStyles = [\n 'place',\n 'placeItems',\n 'placeContent',\n 'align',\n 'justify',\n 'alignItems',\n 'alignContent',\n 'justifyItems',\n 'justifyContent',\n];\n"],"mappings":";AAYA,SAAS,IAAI,KAAkD;AAC7D,KAAI,OAAO,QAAQ,QAAQ,SAAS,QAAQ,GAAI,QAAO;AACvD,KAAI,QAAQ,KAAM,QAAO;AAEzB,QAAO,OAAO,IAAI;;;;;;;;;;AAWpB,SAAgB,eAAe,EAC7B,OACA,YACA,cACA,OACA,SACA,YACA,cACA,cACA,kBACsB;CACtB,MAAM,SAAiC,EAAE;CAEzC,MAAM,WAAW,IAAI,MAAM;AAE3B,KAAI,UAAU;EACZ,MAAM,QAAQ,SAAS,MAAM,MAAM;EACnC,MAAM,QAAQ,MAAM;EACpB,MAAM,SAAS,MAAM,MAAM;AAE3B,SAAO,iBAAiB;AACxB,SAAO,mBAAmB;AAC1B,SAAO,mBAAmB;AAC1B,SAAO,qBAAqB;;CAG9B,MAAM,gBAAgB,IAAI,WAAW;AAErC,KAAI,eAAe;EACjB,MAAM,QAAQ,cAAc,MAAM,MAAM;AAExC,SAAO,iBAAiB,MAAM;AAC9B,SAAO,mBAAmB,MAAM,MAAM,MAAM;;CAG9C,MAAM,kBAAkB,IAAI,aAAa;AAEzC,KAAI,iBAAiB;EACnB,MAAM,QAAQ,gBAAgB,MAAM,MAAM;AAE1C,SAAO,mBAAmB,MAAM;AAChC,SAAO,qBAAqB,MAAM,MAAM,MAAM;;CAGhD,MAAM,WAAW,IAAI,MAAM;AAE3B,KAAI,UAAU;AACZ,SAAO,iBAAiB;AACxB,SAAO,mBAAmB;;CAG5B,MAAM,aAAa,IAAI,QAAQ;AAE/B,KAAI,YAAY;AACd,SAAO,mBAAmB;AAC1B,SAAO,qBAAqB;;CAG9B,MAAM,gBAAgB,IAAI,WAAW;AAErC,KAAI,cAAe,QAAO,iBAAiB;CAE3C,MAAM,kBAAkB,IAAI,aAAa;AAEzC,KAAI,gBAAiB,QAAO,mBAAmB;CAE/C,MAAM,kBAAkB,IAAI,aAAa;AAEzC,KAAI,gBAAiB,QAAO,mBAAmB;CAE/C,MAAM,oBAAoB,IAAI,eAAe;AAE7C,KAAI,kBAAmB,QAAO,qBAAqB;AAEnD,KAAI,OAAO,KAAK,OAAO,CAAC,WAAW,EAAG,QAAO;AAE7C,QAAO;;AAGT,eAAe,iBAAiB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -1,4 +1,3 @@
1
- import { alignStyle } from "./align.js";
2
1
  import { borderStyle } from "./border.js";
3
2
  import { colorStyle } from "./color.js";
4
3
  import { displayStyle } from "./display.js";
@@ -8,12 +7,13 @@ import { flowStyle } from "./flow.js";
8
7
  import { gapStyle } from "./gap.js";
9
8
  import { heightStyle } from "./height.js";
10
9
  import { insetStyle } from "./inset.js";
11
- import { justifyStyle } from "./justify.js";
12
10
  import { marginStyle } from "./margin.js";
13
11
  import { outlineStyle } from "./outline.js";
14
12
  import { paddingStyle } from "./padding.js";
13
+ import { placementStyle } from "./placement.js";
15
14
  import { presetStyle } from "./preset.js";
16
15
  import { radiusStyle } from "./radius.js";
16
+ import { scrollMarginStyle } from "./scrollMargin.js";
17
17
  import { scrollbarStyle } from "./scrollbar.js";
18
18
  import { shadowStyle } from "./shadow.js";
19
19
  import { transitionStyle } from "./transition.js";
@@ -44,7 +44,6 @@ import { widthStyle } from "./width.js";
44
44
  * ```
45
45
  */
46
46
  declare const styleHandlers: {
47
- readonly align: typeof alignStyle;
48
47
  readonly border: typeof borderStyle;
49
48
  readonly color: typeof colorStyle;
50
49
  readonly display: typeof displayStyle;
@@ -55,12 +54,13 @@ declare const styleHandlers: {
55
54
  readonly gap: typeof gapStyle;
56
55
  readonly height: typeof heightStyle;
57
56
  readonly inset: typeof insetStyle;
58
- readonly justify: typeof justifyStyle;
59
57
  readonly margin: typeof marginStyle;
60
58
  readonly outline: typeof outlineStyle;
61
59
  readonly padding: typeof paddingStyle;
60
+ readonly placement: typeof placementStyle;
62
61
  readonly preset: typeof presetStyle;
63
62
  readonly radius: typeof radiusStyle;
63
+ readonly scrollMargin: typeof scrollMarginStyle;
64
64
  readonly scrollbar: typeof scrollbarStyle;
65
65
  readonly shadow: typeof shadowStyle;
66
66
  readonly transition: typeof transitionStyle;