css-calipers 0.14.0 → 1.0.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 (291) hide show
  1. package/README.md +15 -29
  2. package/dist/cjs/factory.js +0 -3
  3. package/dist/esm/factory.d.ts +0 -2
  4. package/dist/esm/factory.d.ts.map +1 -1
  5. package/dist/esm/factory.js +0 -3
  6. package/package.json +4 -17
  7. package/RELEASING.md +0 -62
  8. package/dist/cjs/comparisons/index.js +0 -25
  9. package/dist/cjs/containerQueries/containerQueries.js +0 -115
  10. package/dist/cjs/containerQueries/factory.js +0 -123
  11. package/dist/cjs/containerQueries/helpers.js +0 -95
  12. package/dist/cjs/containerQueries/index.js +0 -16
  13. package/dist/cjs/containerQueries/linting/aspectRatio.js +0 -24
  14. package/dist/cjs/containerQueries/linting/block.js +0 -23
  15. package/dist/cjs/containerQueries/linting/core.js +0 -25
  16. package/dist/cjs/containerQueries/linting/custom.js +0 -11
  17. package/dist/cjs/containerQueries/linting/inline.js +0 -23
  18. package/dist/cjs/containerQueries/linting/resolution.js +0 -12
  19. package/dist/cjs/containerQueries/linting/style.js +0 -28
  20. package/dist/cjs/containerQueries/linting.js +0 -24
  21. package/dist/cjs/containerQueries/moduleRegistry.js +0 -5
  22. package/dist/cjs/containerQueries/modules/aspectRatio.js +0 -51
  23. package/dist/cjs/containerQueries/modules/block.js +0 -53
  24. package/dist/cjs/containerQueries/modules/custom.js +0 -43
  25. package/dist/cjs/containerQueries/modules/index.js +0 -21
  26. package/dist/cjs/containerQueries/modules/inline.js +0 -53
  27. package/dist/cjs/containerQueries/modules/size.js +0 -2
  28. package/dist/cjs/containerQueries/modules/style.js +0 -36
  29. package/dist/cjs/containerQueries/types.js +0 -2
  30. package/dist/cjs/containerQueries/validation.js +0 -191
  31. package/dist/cjs/fraction.js +0 -139
  32. package/dist/cjs/internal/createComponentQueriesApi.js +0 -56
  33. package/dist/cjs/internal/createMediaQueriesApi.js +0 -73
  34. package/dist/cjs/internal/normalizeToArray.js +0 -9
  35. package/dist/cjs/libraryHelpers/vanilla-extract.js +0 -11
  36. package/dist/cjs/logicalOperators/index.js +0 -18
  37. package/dist/cjs/mediaQueries/factory.js +0 -187
  38. package/dist/cjs/mediaQueries/helpers.js +0 -97
  39. package/dist/cjs/mediaQueries/index.js +0 -23
  40. package/dist/cjs/mediaQueries/libraryHelpers/vanilla-extract.js +0 -77
  41. package/dist/cjs/mediaQueries/linting/core.js +0 -19
  42. package/dist/cjs/mediaQueries/linting/resolution.js +0 -11
  43. package/dist/cjs/mediaQueries/linting.js +0 -24
  44. package/dist/cjs/mediaQueries/mediaQueries.js +0 -53
  45. package/dist/cjs/mediaQueries/mediaQueryFactory.js +0 -120
  46. package/dist/cjs/mediaQueries/moduleRegistry.js +0 -5
  47. package/dist/cjs/mediaQueries/modules/custom.js +0 -26
  48. package/dist/cjs/mediaQueries/modules/dimensions.js +0 -61
  49. package/dist/cjs/mediaQueries/modules/display.js +0 -20
  50. package/dist/cjs/mediaQueries/modules/environment.js +0 -20
  51. package/dist/cjs/mediaQueries/modules/index.js +0 -23
  52. package/dist/cjs/mediaQueries/modules/interaction.js +0 -26
  53. package/dist/cjs/mediaQueries/modules/preferences.js +0 -26
  54. package/dist/cjs/mediaQueries/modules/resolution.js +0 -31
  55. package/dist/cjs/mediaQueries/types.js +0 -2
  56. package/dist/cjs/mediaQueries/validation.js +0 -134
  57. package/dist/cjs/sciNotation.js +0 -74
  58. package/dist/cjs/types.js +0 -2
  59. package/dist/cjs/validation.js +0 -20
  60. package/dist/esm/comparisons/index.d.ts +0 -23
  61. package/dist/esm/comparisons/index.d.ts.map +0 -1
  62. package/dist/esm/comparisons/index.js +0 -22
  63. package/dist/esm/containerQueries/containerQueries.d.ts +0 -36
  64. package/dist/esm/containerQueries/containerQueries.d.ts.map +0 -1
  65. package/dist/esm/containerQueries/containerQueries.js +0 -109
  66. package/dist/esm/containerQueries/factory.d.ts +0 -20
  67. package/dist/esm/containerQueries/factory.d.ts.map +0 -1
  68. package/dist/esm/containerQueries/factory.js +0 -119
  69. package/dist/esm/containerQueries/helpers.d.ts +0 -53
  70. package/dist/esm/containerQueries/helpers.d.ts.map +0 -1
  71. package/dist/esm/containerQueries/helpers.js +0 -82
  72. package/dist/esm/containerQueries/index.d.ts +0 -10
  73. package/dist/esm/containerQueries/index.d.ts.map +0 -1
  74. package/dist/esm/containerQueries/index.js +0 -4
  75. package/dist/esm/containerQueries/linting/aspectRatio.d.ts +0 -4
  76. package/dist/esm/containerQueries/linting/aspectRatio.d.ts.map +0 -1
  77. package/dist/esm/containerQueries/linting/aspectRatio.js +0 -19
  78. package/dist/esm/containerQueries/linting/block.d.ts +0 -4
  79. package/dist/esm/containerQueries/linting/block.d.ts.map +0 -1
  80. package/dist/esm/containerQueries/linting/block.js +0 -18
  81. package/dist/esm/containerQueries/linting/core.d.ts +0 -4
  82. package/dist/esm/containerQueries/linting/core.d.ts.map +0 -1
  83. package/dist/esm/containerQueries/linting/core.js +0 -20
  84. package/dist/esm/containerQueries/linting/custom.d.ts +0 -3
  85. package/dist/esm/containerQueries/linting/custom.d.ts.map +0 -1
  86. package/dist/esm/containerQueries/linting/custom.js +0 -7
  87. package/dist/esm/containerQueries/linting/inline.d.ts +0 -4
  88. package/dist/esm/containerQueries/linting/inline.d.ts.map +0 -1
  89. package/dist/esm/containerQueries/linting/inline.js +0 -18
  90. package/dist/esm/containerQueries/linting/resolution.d.ts +0 -1
  91. package/dist/esm/containerQueries/linting/resolution.d.ts.map +0 -1
  92. package/dist/esm/containerQueries/linting/resolution.js +0 -12
  93. package/dist/esm/containerQueries/linting/style.d.ts +0 -3
  94. package/dist/esm/containerQueries/linting/style.d.ts.map +0 -1
  95. package/dist/esm/containerQueries/linting/style.js +0 -24
  96. package/dist/esm/containerQueries/linting.d.ts +0 -4
  97. package/dist/esm/containerQueries/linting.d.ts.map +0 -1
  98. package/dist/esm/containerQueries/linting.js +0 -20
  99. package/dist/esm/containerQueries/moduleRegistry.d.ts +0 -25
  100. package/dist/esm/containerQueries/moduleRegistry.d.ts.map +0 -1
  101. package/dist/esm/containerQueries/moduleRegistry.js +0 -1
  102. package/dist/esm/containerQueries/modules/aspectRatio.d.ts +0 -17
  103. package/dist/esm/containerQueries/modules/aspectRatio.d.ts.map +0 -1
  104. package/dist/esm/containerQueries/modules/aspectRatio.js +0 -47
  105. package/dist/esm/containerQueries/modules/block.d.ts +0 -20
  106. package/dist/esm/containerQueries/modules/block.d.ts.map +0 -1
  107. package/dist/esm/containerQueries/modules/block.js +0 -49
  108. package/dist/esm/containerQueries/modules/custom.d.ts +0 -13
  109. package/dist/esm/containerQueries/modules/custom.d.ts.map +0 -1
  110. package/dist/esm/containerQueries/modules/custom.js +0 -39
  111. package/dist/esm/containerQueries/modules/index.d.ts +0 -6
  112. package/dist/esm/containerQueries/modules/index.d.ts.map +0 -1
  113. package/dist/esm/containerQueries/modules/index.js +0 -5
  114. package/dist/esm/containerQueries/modules/inline.d.ts +0 -20
  115. package/dist/esm/containerQueries/modules/inline.d.ts.map +0 -1
  116. package/dist/esm/containerQueries/modules/inline.js +0 -49
  117. package/dist/esm/containerQueries/modules/size.d.ts +0 -41
  118. package/dist/esm/containerQueries/modules/size.d.ts.map +0 -1
  119. package/dist/esm/containerQueries/modules/size.js +0 -1
  120. package/dist/esm/containerQueries/modules/style.d.ts +0 -11
  121. package/dist/esm/containerQueries/modules/style.d.ts.map +0 -1
  122. package/dist/esm/containerQueries/modules/style.js +0 -32
  123. package/dist/esm/containerQueries/types.d.ts +0 -81
  124. package/dist/esm/containerQueries/types.d.ts.map +0 -1
  125. package/dist/esm/containerQueries/types.js +0 -1
  126. package/dist/esm/containerQueries/validation.d.ts +0 -41
  127. package/dist/esm/containerQueries/validation.d.ts.map +0 -1
  128. package/dist/esm/containerQueries/validation.js +0 -187
  129. package/dist/esm/fraction.d.ts +0 -23
  130. package/dist/esm/fraction.d.ts.map +0 -1
  131. package/dist/esm/fraction.js +0 -129
  132. package/dist/esm/internal/createComponentQueriesApi.d.ts +0 -34
  133. package/dist/esm/internal/createComponentQueriesApi.d.ts.map +0 -1
  134. package/dist/esm/internal/createComponentQueriesApi.js +0 -52
  135. package/dist/esm/internal/createMediaQueriesApi.d.ts +0 -35
  136. package/dist/esm/internal/createMediaQueriesApi.d.ts.map +0 -1
  137. package/dist/esm/internal/createMediaQueriesApi.js +0 -69
  138. package/dist/esm/internal/normalizeToArray.d.ts +0 -2
  139. package/dist/esm/internal/normalizeToArray.d.ts.map +0 -1
  140. package/dist/esm/internal/normalizeToArray.js +0 -5
  141. package/dist/esm/libraryHelpers/vanilla-extract.d.ts +0 -4
  142. package/dist/esm/libraryHelpers/vanilla-extract.d.ts.map +0 -1
  143. package/dist/esm/libraryHelpers/vanilla-extract.js +0 -6
  144. package/dist/esm/logicalOperators/index.d.ts +0 -2
  145. package/dist/esm/logicalOperators/index.d.ts.map +0 -1
  146. package/dist/esm/logicalOperators/index.js +0 -17
  147. package/dist/esm/mediaQueries/factory.d.ts +0 -45
  148. package/dist/esm/mediaQueries/factory.d.ts.map +0 -1
  149. package/dist/esm/mediaQueries/factory.js +0 -183
  150. package/dist/esm/mediaQueries/helpers.d.ts +0 -40
  151. package/dist/esm/mediaQueries/helpers.d.ts.map +0 -1
  152. package/dist/esm/mediaQueries/helpers.js +0 -87
  153. package/dist/esm/mediaQueries/index.d.ts +0 -8
  154. package/dist/esm/mediaQueries/index.d.ts.map +0 -1
  155. package/dist/esm/mediaQueries/index.js +0 -7
  156. package/dist/esm/mediaQueries/libraryHelpers/vanilla-extract.d.ts +0 -5
  157. package/dist/esm/mediaQueries/libraryHelpers/vanilla-extract.d.ts.map +0 -1
  158. package/dist/esm/mediaQueries/libraryHelpers/vanilla-extract.js +0 -71
  159. package/dist/esm/mediaQueries/linting/core.d.ts +0 -5
  160. package/dist/esm/mediaQueries/linting/core.d.ts.map +0 -1
  161. package/dist/esm/mediaQueries/linting/core.js +0 -14
  162. package/dist/esm/mediaQueries/linting/resolution.d.ts +0 -3
  163. package/dist/esm/mediaQueries/linting/resolution.d.ts.map +0 -1
  164. package/dist/esm/mediaQueries/linting/resolution.js +0 -7
  165. package/dist/esm/mediaQueries/linting.d.ts +0 -4
  166. package/dist/esm/mediaQueries/linting.d.ts.map +0 -1
  167. package/dist/esm/mediaQueries/linting.js +0 -20
  168. package/dist/esm/mediaQueries/mediaQueries.d.ts +0 -23
  169. package/dist/esm/mediaQueries/mediaQueries.d.ts.map +0 -1
  170. package/dist/esm/mediaQueries/mediaQueries.js +0 -48
  171. package/dist/esm/mediaQueries/moduleRegistry.d.ts +0 -27
  172. package/dist/esm/mediaQueries/moduleRegistry.d.ts.map +0 -1
  173. package/dist/esm/mediaQueries/moduleRegistry.js +0 -1
  174. package/dist/esm/mediaQueries/modules/custom.d.ts +0 -10
  175. package/dist/esm/mediaQueries/modules/custom.d.ts.map +0 -1
  176. package/dist/esm/mediaQueries/modules/custom.js +0 -22
  177. package/dist/esm/mediaQueries/modules/dimensions.d.ts +0 -19
  178. package/dist/esm/mediaQueries/modules/dimensions.d.ts.map +0 -1
  179. package/dist/esm/mediaQueries/modules/dimensions.js +0 -57
  180. package/dist/esm/mediaQueries/modules/display.d.ts +0 -9
  181. package/dist/esm/mediaQueries/modules/display.d.ts.map +0 -1
  182. package/dist/esm/mediaQueries/modules/display.js +0 -16
  183. package/dist/esm/mediaQueries/modules/environment.d.ts +0 -9
  184. package/dist/esm/mediaQueries/modules/environment.d.ts.map +0 -1
  185. package/dist/esm/mediaQueries/modules/environment.js +0 -16
  186. package/dist/esm/mediaQueries/modules/index.d.ts +0 -8
  187. package/dist/esm/mediaQueries/modules/index.d.ts.map +0 -1
  188. package/dist/esm/mediaQueries/modules/index.js +0 -7
  189. package/dist/esm/mediaQueries/modules/interaction.d.ts +0 -11
  190. package/dist/esm/mediaQueries/modules/interaction.d.ts.map +0 -1
  191. package/dist/esm/mediaQueries/modules/interaction.js +0 -22
  192. package/dist/esm/mediaQueries/modules/preferences.d.ts +0 -11
  193. package/dist/esm/mediaQueries/modules/preferences.d.ts.map +0 -1
  194. package/dist/esm/mediaQueries/modules/preferences.js +0 -22
  195. package/dist/esm/mediaQueries/modules/resolution.d.ts +0 -12
  196. package/dist/esm/mediaQueries/modules/resolution.d.ts.map +0 -1
  197. package/dist/esm/mediaQueries/modules/resolution.js +0 -27
  198. package/dist/esm/mediaQueries/types.d.ts +0 -117
  199. package/dist/esm/mediaQueries/types.d.ts.map +0 -1
  200. package/dist/esm/mediaQueries/types.js +0 -1
  201. package/dist/esm/mediaQueries/validation.d.ts +0 -33
  202. package/dist/esm/mediaQueries/validation.d.ts.map +0 -1
  203. package/dist/esm/mediaQueries/validation.js +0 -130
  204. package/dist/esm/sciNotation.d.ts +0 -14
  205. package/dist/esm/sciNotation.d.ts.map +0 -1
  206. package/dist/esm/sciNotation.js +0 -69
  207. package/dist/esm/types.d.ts +0 -35
  208. package/dist/esm/types.d.ts.map +0 -1
  209. package/dist/esm/types.js +0 -1
  210. package/dist/esm/validation.d.ts +0 -10
  211. package/dist/esm/validation.d.ts.map +0 -1
  212. package/dist/esm/validation.js +0 -15
  213. package/dist/examples/containerQueries.example.js +0 -54
  214. package/dist/examples/examples/containerQueries.example.js +0 -54
  215. package/dist/examples/examples/factory-wrapper.example.js +0 -33
  216. package/dist/examples/examples/lineHeight-normalizer.example.js +0 -81
  217. package/dist/examples/examples/mediaQueries-multipleInstances.example.js +0 -127
  218. package/dist/examples/examples/mixedQueries.example.js +0 -55
  219. package/dist/examples/examples/validation-and-runtime-checks.example.js +0 -85
  220. package/dist/examples/examples/validation-unit-tests.example.js +0 -35
  221. package/dist/examples/factory-wrapper.example.js +0 -33
  222. package/dist/examples/lineHeight-normalizer.example.js +0 -81
  223. package/dist/examples/mediaQueries-multipleInstances.example.js +0 -127
  224. package/dist/examples/mixedQueries.example.js +0 -60
  225. package/dist/examples/src/comparisons/index.js +0 -25
  226. package/dist/examples/src/containerQueries/containerQueries.js +0 -96
  227. package/dist/examples/src/containerQueries/factory.js +0 -123
  228. package/dist/examples/src/containerQueries/helpers.js +0 -94
  229. package/dist/examples/src/containerQueries/index.js +0 -16
  230. package/dist/examples/src/containerQueries/linting/aspectRatio.js +0 -20
  231. package/dist/examples/src/containerQueries/linting/block.js +0 -20
  232. package/dist/examples/src/containerQueries/linting/core.js +0 -19
  233. package/dist/examples/src/containerQueries/linting/custom.js +0 -11
  234. package/dist/examples/src/containerQueries/linting/inline.js +0 -20
  235. package/dist/examples/src/containerQueries/linting/style.js +0 -28
  236. package/dist/examples/src/containerQueries/linting.js +0 -24
  237. package/dist/examples/src/containerQueries/moduleRegistry.js +0 -5
  238. package/dist/examples/src/containerQueries/modules/aspectRatio.js +0 -33
  239. package/dist/examples/src/containerQueries/modules/block.js +0 -44
  240. package/dist/examples/src/containerQueries/modules/custom.js +0 -31
  241. package/dist/examples/src/containerQueries/modules/index.js +0 -21
  242. package/dist/examples/src/containerQueries/modules/inline.js +0 -44
  243. package/dist/examples/src/containerQueries/modules/style.js +0 -36
  244. package/dist/examples/src/containerQueries/types.js +0 -2
  245. package/dist/examples/src/containerQueries/validation.js +0 -177
  246. package/dist/examples/src/core.js +0 -16
  247. package/dist/examples/src/factory.js +0 -21
  248. package/dist/examples/src/index.js +0 -30
  249. package/dist/examples/src/internal/buildMeasurementCreationError.js +0 -16
  250. package/dist/examples/src/internal/createCoreApi.js +0 -336
  251. package/dist/examples/src/internal/createMediaQueriesApi.js +0 -74
  252. package/dist/examples/src/internal/createUnitsApi.js +0 -18
  253. package/dist/examples/src/internal/errors.js +0 -130
  254. package/dist/examples/src/libraryHelpers/vanilla-extract.js +0 -11
  255. package/dist/examples/src/mediaQueries/factory.js +0 -163
  256. package/dist/examples/src/mediaQueries/helpers.js +0 -88
  257. package/dist/examples/src/mediaQueries/index.js +0 -23
  258. package/dist/examples/src/mediaQueries/linting/core.js +0 -19
  259. package/dist/examples/src/mediaQueries/linting/resolution.js +0 -11
  260. package/dist/examples/src/mediaQueries/linting.js +0 -24
  261. package/dist/examples/src/mediaQueries/mediaQueries.js +0 -53
  262. package/dist/examples/src/mediaQueries/moduleRegistry.js +0 -5
  263. package/dist/examples/src/mediaQueries/modules/custom.js +0 -26
  264. package/dist/examples/src/mediaQueries/modules/dimensions.js +0 -61
  265. package/dist/examples/src/mediaQueries/modules/display.js +0 -20
  266. package/dist/examples/src/mediaQueries/modules/environment.js +0 -20
  267. package/dist/examples/src/mediaQueries/modules/index.js +0 -23
  268. package/dist/examples/src/mediaQueries/modules/interaction.js +0 -26
  269. package/dist/examples/src/mediaQueries/modules/preferences.js +0 -26
  270. package/dist/examples/src/mediaQueries/modules/resolution.js +0 -31
  271. package/dist/examples/src/mediaQueries/types.js +0 -2
  272. package/dist/examples/src/mediaQueries/validation.js +0 -128
  273. package/dist/examples/src/ratio.js +0 -141
  274. package/dist/examples/src/types.js +0 -2
  275. package/dist/examples/src/unitDefinitions.js +0 -67
  276. package/dist/examples/src/units/absolute.js +0 -11
  277. package/dist/examples/src/units/angle.js +0 -8
  278. package/dist/examples/src/units/container.js +0 -10
  279. package/dist/examples/src/units/font-relative.js +0 -16
  280. package/dist/examples/src/units/frequency.js +0 -6
  281. package/dist/examples/src/units/grid.js +0 -5
  282. package/dist/examples/src/units/percent.js +0 -7
  283. package/dist/examples/src/units/resolution.js +0 -7
  284. package/dist/examples/src/units/time.js +0 -6
  285. package/dist/examples/src/units/viewport-dynamic.js +0 -10
  286. package/dist/examples/src/units/viewport-large.js +0 -10
  287. package/dist/examples/src/units/viewport-small.js +0 -10
  288. package/dist/examples/src/units/viewport.js +0 -10
  289. package/dist/examples/src/validation.js +0 -20
  290. package/dist/examples/validation-and-runtime-checks.example.js +0 -85
  291. package/dist/examples/validation-unit-tests.example.js +0 -35
@@ -1,49 +0,0 @@
1
- import { applyContainerQueryValidation, formatContainerQueryComparison, formatContainerQueryValue, } from "../helpers";
2
- import { defaultContainerQueryValidation } from "../validation";
3
- import { runContainerQueryLint } from "../linting";
4
- import { lintInlineRangeCollapse, lintInlineRedundancy, } from "../linting/inline";
5
- import { normalizeToArray } from "../../internal/normalizeToArray";
6
- const emitInlineComparison = (name, comparison, addCondition) => {
7
- addCondition(formatContainerQueryComparison(name, comparison.operator, comparison.value));
8
- };
9
- const emitInlineRange = (name, range, addCondition) => {
10
- const min = formatContainerQueryValue(range.min);
11
- const max = formatContainerQueryValue(range.max);
12
- if ("minOperator" in range) {
13
- addCondition(`(${min} ${range.minOperator} ${name})`);
14
- addCondition(`(${name} <= ${max})`);
15
- return;
16
- }
17
- addCondition(`(${min} <= ${name})`);
18
- addCondition(`(${name} ${range.maxOperator} ${max})`);
19
- };
20
- export const emitInlineSizeFeatures = (props, helpers, validate) => {
21
- const allowQueryArrays = helpers.config.allowQueryArrays !== false;
22
- const assertNoArray = (value, label) => {
23
- if (Array.isArray(value) && !allowQueryArrays) {
24
- throw new Error(`${label} does not allow arrays.`);
25
- }
26
- };
27
- const { runContainerQueryValidation, validateInlineSizeValues, } = defaultContainerQueryValidation;
28
- if (!runContainerQueryValidation(props, helpers, validateInlineSizeValues, "inline", "inline size values must be valid measurements greater than 0")) {
29
- return;
30
- }
31
- if (!runContainerQueryLint(props, helpers, lintInlineRedundancy, "inlineSize should not be combined with inlineSizeRange")) {
32
- return;
33
- }
34
- if (!runContainerQueryLint(props, helpers, lintInlineRangeCollapse, "inlineSizeRange min and max are equal; use inlineSize instead")) {
35
- return;
36
- }
37
- if (!applyContainerQueryValidation(props, helpers, validate, "inline")) {
38
- return;
39
- }
40
- const { addCondition } = helpers;
41
- assertNoArray(props.inlineSize, "inlineSize");
42
- normalizeToArray(props.inlineSize).forEach((value) => {
43
- emitInlineComparison("inline-size", value, addCondition);
44
- });
45
- assertNoArray(props.inlineSizeRange, "inlineSizeRange");
46
- normalizeToArray(props.inlineSizeRange).forEach((value) => {
47
- emitInlineRange("inline-size", value, addCondition);
48
- });
49
- };
@@ -1,41 +0,0 @@
1
- import type { IMeasurement } from '../../core';
2
- export type CSSComparisonOperator = '<' | '<=' | '>' | '>=' | '=';
3
- export type CSSComparison<T> = {
4
- operator: CSSComparisonOperator;
5
- value: T;
6
- };
7
- export type CSSRangeBoundaryOperator = '<' | '<=';
8
- export type CSSRange<T> = {
9
- min: T;
10
- max: T;
11
- minOperator?: CSSRangeBoundaryOperator;
12
- maxOperator?: CSSRangeBoundaryOperator;
13
- };
14
- export type CSSContainerSizeFeature = {
15
- minWidth: IMeasurement;
16
- } | {
17
- maxWidth: IMeasurement;
18
- } | {
19
- minHeight: IMeasurement;
20
- } | {
21
- maxHeight: IMeasurement;
22
- } | {
23
- width: CSSComparison<IMeasurement>;
24
- } | {
25
- height: CSSComparison<IMeasurement>;
26
- } | {
27
- inlineSize: CSSComparison<IMeasurement>;
28
- } | {
29
- blockSize: CSSComparison<IMeasurement>;
30
- } | {
31
- widthRange: CSSRange<IMeasurement>;
32
- } | {
33
- heightRange: CSSRange<IMeasurement>;
34
- } | {
35
- inlineSizeRange: CSSRange<IMeasurement>;
36
- } | {
37
- blockSizeRange: CSSRange<IMeasurement>;
38
- } | {
39
- orientation: 'portrait' | 'landscape';
40
- };
41
- //# sourceMappingURL=size.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../../../src/containerQueries/modules/size.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAElE,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAC;AAElD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,GAAG,EAAE,CAAC,CAAC;IACP,GAAG,EAAE,CAAC,CAAC;IACP,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC1B;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC1B;IAAE,SAAS,EAAE,YAAY,CAAA;CAAE,GAC3B;IAAE,SAAS,EAAE,YAAY,CAAA;CAAE,GAC3B;IAAE,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GACvC;IAAE,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAC3C;IAAE,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAC1C;IAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,GACtC;IAAE,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,GACvC;IAAE,eAAe,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,GAC3C;IAAE,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,GAC1C;IAAE,WAAW,EAAE,UAAU,GAAG,WAAW,CAAA;CAAE,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,11 +0,0 @@
1
- import type { CSSContainerStyleCondition } from "../types";
2
- import type { ContainerQueryBuilderHelpers, ContainerQueryValidator } from "../helpers";
3
- export interface IContainerQueryStyle {
4
- style?: CSSContainerStyleCondition;
5
- }
6
- export type IContainerQueryStyleVariables = IContainerQueryStyle["style"];
7
- export type ContainerQueryStyleValidator = ContainerQueryValidator<IContainerQueryStyle>;
8
- export type CSSContainerStyleFeature = IContainerQueryStyle;
9
- export type ComparisonStyle = false;
10
- export declare const emitStyleFeatures: (props: IContainerQueryStyle, helpers: ContainerQueryBuilderHelpers, validate?: ContainerQueryStyleValidator) => void;
11
- //# sourceMappingURL=style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../src/containerQueries/modules/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,YAAY,CAAC;AASpB,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACpC;AAED,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE1E,MAAM,MAAM,4BAA4B,GACtC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC;AAEpC,eAAO,MAAM,iBAAiB,GAC5B,OAAO,oBAAoB,EAC3B,SAAS,4BAA4B,EACrC,WAAW,4BAA4B,KACtC,IAqDF,CAAC"}
@@ -1,32 +0,0 @@
1
- import { applyContainerQueryValidation, formatContainerQueryValue, } from "../helpers";
2
- import { defaultContainerQueryValidation } from "../validation";
3
- import { runContainerQueryLint } from "../linting";
4
- import { lintStyleCondition } from "../linting/style";
5
- export const emitStyleFeatures = (props, helpers, validate) => {
6
- const { runContainerQueryValidation, validateStyleValues, } = defaultContainerQueryValidation;
7
- if (!runContainerQueryValidation(props, helpers, validateStyleValues, "style", "style conditions must be valid and non-empty")) {
8
- return;
9
- }
10
- if (!runContainerQueryLint(props, helpers, lintStyleCondition, "style conditions must be valid and non-empty")) {
11
- return;
12
- }
13
- if (!applyContainerQueryValidation(props, helpers, validate, "style")) {
14
- return;
15
- }
16
- if (!props.style)
17
- return;
18
- const { addCondition } = helpers;
19
- Object.entries(props.style).forEach(([name, value]) => {
20
- if (value === undefined || value === null)
21
- return;
22
- if (Array.isArray(value)) {
23
- value.forEach((entry) => {
24
- if (entry === undefined || entry === null)
25
- return;
26
- addCondition(`(style(${name}: ${formatContainerQueryValue(entry)}))`);
27
- });
28
- return;
29
- }
30
- addCondition(`(style(${name}: ${formatContainerQueryValue(value)}))`);
31
- });
32
- };
@@ -1,81 +0,0 @@
1
- import type { Properties } from "csstype";
2
- import type { IRatio } from "../ratio";
3
- import type { ComparisonValue } from "../comparisons";
4
- import type { IMeasurement } from "../core";
5
- export type CSSContainerType = "inline-size" | "size" | "normal";
6
- export type CSSContainerName = string;
7
- type CSSTypeProperties = Properties<number | (string & {})>;
8
- export type CSSContainerProperties = {
9
- [Property in keyof CSSTypeProperties]: CSSTypeProperties[Property] | IMeasurement | Array<CSSTypeProperties[Property] | IMeasurement>;
10
- };
11
- type CSSRangeOperator = "<" | "<=";
12
- export type CSSComparison<TValue> = ComparisonValue<TValue>;
13
- export type CSSRange<TValue> = ({
14
- min: TValue;
15
- max: TValue;
16
- minOperator: CSSRangeOperator;
17
- } & {
18
- readonly __rangeBrand: unique symbol;
19
- }) | ({
20
- min: TValue;
21
- max: TValue;
22
- maxOperator: CSSRangeOperator;
23
- } & {
24
- readonly __rangeBrand: unique symbol;
25
- });
26
- export type CSSContainerCoreCondition = {
27
- minWidth?: IMeasurement | IMeasurement[];
28
- maxWidth?: IMeasurement | IMeasurement[];
29
- minHeight?: IMeasurement | IMeasurement[];
30
- maxHeight?: IMeasurement | IMeasurement[];
31
- };
32
- export type CSSContainerInlineCondition = {
33
- inlineSize?: CSSComparison<IMeasurement> | CSSComparison<IMeasurement>[];
34
- inlineSizeRange?: CSSRange<IMeasurement> | CSSRange<IMeasurement>[];
35
- };
36
- export type CSSContainerBlockCondition = {
37
- blockSize?: CSSComparison<IMeasurement> | CSSComparison<IMeasurement>[];
38
- blockSizeRange?: CSSRange<IMeasurement> | CSSRange<IMeasurement>[];
39
- };
40
- export type CSSContainerAspectRatioCondition = {
41
- aspectRatio?: IRatio | IRatio[];
42
- minAspectRatio?: IRatio | IRatio[];
43
- maxAspectRatio?: IRatio | IRatio[];
44
- };
45
- export type CSSContainerStyleCondition = CSSContainerProperties;
46
- export type CSSContainerCustomFeatures = Record<string, string | number | IMeasurement | Array<string | number | IMeasurement>>;
47
- export type CSSContainerCustomCondition = {
48
- customFeatures?: CSSContainerCustomFeatures;
49
- };
50
- export type CSSContainerConditionBase = CSSContainerCoreCondition & CSSContainerInlineCondition & CSSContainerBlockCondition & CSSContainerAspectRatioCondition & CSSContainerCustomCondition & {
51
- style?: CSSContainerStyleCondition;
52
- };
53
- export type CSSContainerCondition = CSSContainerConditionBase | {
54
- and: CSSContainerCondition[];
55
- } | {
56
- or: CSSContainerCondition[];
57
- } | {
58
- not: CSSContainerCondition;
59
- };
60
- export interface CSSContainerQuery {
61
- name?: CSSContainerName;
62
- condition: CSSContainerCondition;
63
- }
64
- export interface CSSContainerQueryContainer {
65
- type?: CSSContainerType;
66
- name?: CSSContainerName;
67
- }
68
- export interface CSSContainerQueryRuleInput {
69
- container?: CSSContainerQueryContainer;
70
- query?: CSSContainerQuery;
71
- }
72
- export interface CSSContainerQueryRuleOutput extends CSSContainerQueryRuleInput {
73
- styles: CSSContainerProperties;
74
- }
75
- export type CSSContainerQueryRule = CSSContainerQueryRuleOutput;
76
- export type CSSContainerQueryProps = CSSContainerQueryRuleInput["query"];
77
- export type CSSContainerQueries = Record<string, CSSContainerQueryRuleInput>;
78
- export type ContainerQueryComparison = CSSComparison<IMeasurement>;
79
- export type ContainerQueryRange = CSSRange<IMeasurement>;
80
- export {};
81
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/containerQueries/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,41 +0,0 @@
1
- import type { ContainerQueryBuilderHelpers } from "./helpers";
2
- import { assertCondition, assertMatchingUnits } from "../core";
3
- import type { IContainerQueryCore } from "./containerQueries";
4
- import type { IContainerQueryBlock } from "./modules/block";
5
- import type { IContainerQueryCustomFeatures } from "./modules/custom";
6
- import type { IContainerQueryInline } from "./modules/inline";
7
- import type { IContainerQueryAspectRatio } from "./modules/aspectRatio";
8
- import type { IContainerQueryStyle } from "./modules/style";
9
- export type ContainerQueryValidationCheck<TConfig> = (config: TConfig) => void;
10
- export type ContainerQueryCoreHelpers = {
11
- assertCondition: typeof assertCondition;
12
- assertMatchingUnits: typeof assertMatchingUnits;
13
- };
14
- export type ContainerQueryValidation = ReturnType<typeof createContainerQueryValidation>;
15
- export declare const createContainerQueryValidation: (core: ContainerQueryCoreHelpers) => {
16
- runContainerQueryValidation: <TConfig>(config: TConfig, helpers: ContainerQueryBuilderHelpers, check?: ContainerQueryValidationCheck<TConfig>, context?: string, fallbackMessage?: string) => boolean;
17
- validateMinMaxWidth: (props: IContainerQueryCore) => void;
18
- validateWidthValuesPositive: (props: IContainerQueryCore) => void;
19
- validateMinMaxHeight: (props: IContainerQueryCore) => void;
20
- validateHeightValuesPositive: (props: IContainerQueryCore) => void;
21
- validateInlineSizeValues: (props: IContainerQueryInline) => void;
22
- validateBlockSizeValues: (props: IContainerQueryBlock) => void;
23
- validateAspectRatioValues: (props: IContainerQueryAspectRatio) => void;
24
- validateStyleValues: (props: IContainerQueryStyle) => void;
25
- validateCustomFeatures: (props: IContainerQueryCustomFeatures) => void;
26
- };
27
- declare const defaultContainerQueryValidation: {
28
- runContainerQueryValidation: <TConfig>(config: TConfig, helpers: ContainerQueryBuilderHelpers, check?: ContainerQueryValidationCheck<TConfig>, context?: string, fallbackMessage?: string) => boolean;
29
- validateMinMaxWidth: (props: IContainerQueryCore) => void;
30
- validateWidthValuesPositive: (props: IContainerQueryCore) => void;
31
- validateMinMaxHeight: (props: IContainerQueryCore) => void;
32
- validateHeightValuesPositive: (props: IContainerQueryCore) => void;
33
- validateInlineSizeValues: (props: IContainerQueryInline) => void;
34
- validateBlockSizeValues: (props: IContainerQueryBlock) => void;
35
- validateAspectRatioValues: (props: IContainerQueryAspectRatio) => void;
36
- validateStyleValues: (props: IContainerQueryStyle) => void;
37
- validateCustomFeatures: (props: IContainerQueryCustomFeatures) => void;
38
- };
39
- export declare const runContainerQueryValidation: <TConfig>(config: TConfig, helpers: ContainerQueryBuilderHelpers, check?: ContainerQueryValidationCheck<TConfig>, context?: string, fallbackMessage?: string) => boolean, validateMinMaxWidth: (props: IContainerQueryCore) => void, validateWidthValuesPositive: (props: IContainerQueryCore) => void, validateMinMaxHeight: (props: IContainerQueryCore) => void, validateHeightValuesPositive: (props: IContainerQueryCore) => void, validateInlineSizeValues: (props: IContainerQueryInline) => void, validateBlockSizeValues: (props: IContainerQueryBlock) => void, validateAspectRatioValues: (props: IContainerQueryAspectRatio) => void, validateStyleValues: (props: IContainerQueryStyle) => void, validateCustomFeatures: (props: IContainerQueryCustomFeatures) => void;
40
- export { defaultContainerQueryValidation };
41
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/containerQueries/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,mBAAmB,EAMpB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,MAAM,6BAA6B,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/E,MAAM,MAAM,yBAAyB,GAAG;IACtC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAC/C,OAAO,8BAA8B,CACtC,CAAC;AA+CF,eAAO,MAAM,8BAA8B,GACzC,MAAM,yBAAyB;kCAOM,OAAO,UAClC,OAAO,WACN,4BAA4B,UAC7B,6BAA6B,CAAC,OAAO,CAAC,YACpC,MAAM,+BAEf,OAAO;iCAgB0B,mBAAmB,KAAG,IAAI;yCAgBlB,mBAAmB,KAAG,IAAI;kCAWjC,mBAAmB,KAAG,IAAI;0CAgBlB,mBAAmB,KAAG,IAAI;sCAW9B,qBAAqB,KAAG,IAAI;qCAsB7B,oBAAoB,KAAG,IAAI;uCAuB1D,0BAA0B,KAChC,IAAI;iCA4B6B,oBAAoB,KAAG,IAAI;oCAyBtD,6BAA6B,KACnC,IAAI;CAwCR,CAAC;AAEF,QAAA,MAAM,+BAA+B;kCA1NE,OAAO,UAClC,OAAO,WACN,4BAA4B,UAC7B,6BAA6B,CAAC,OAAO,CAAC,YACpC,MAAM,+BAEf,OAAO;iCAgB0B,mBAAmB,KAAG,IAAI;yCAgBlB,mBAAmB,KAAG,IAAI;kCAWjC,mBAAmB,KAAG,IAAI;0CAgBlB,mBAAmB,KAAG,IAAI;sCAW9B,qBAAqB,KAAG,IAAI;qCAsB7B,oBAAoB,KAAG,IAAI;uCAuB1D,0BAA0B,KAChC,IAAI;iCA4B6B,oBAAoB,KAAG,IAAI;oCAyBtD,6BAA6B,KACnC,IAAI;CA6CP,CAAC;AAEH,eAAO,MACL,2BAA2B,GAhOU,OAAO,UAClC,OAAO,WACN,4BAA4B,UAC7B,6BAA6B,CAAC,OAAO,CAAC,YACpC,MAAM,+BAEf,OAAO,EA2NV,mBAAmB,UA3MiB,mBAAmB,KAAG,IAAI,EA4M9D,2BAA2B,UA5LiB,mBAAmB,KAAG,IAAI,EA6LtE,oBAAoB,UAlLiB,mBAAmB,KAAG,IAAI,EAmL/D,4BAA4B,UAnKiB,mBAAmB,KAAG,IAAI,EAoKvE,wBAAwB,UAzJiB,qBAAqB,KAAG,IAAI,EA0JrE,uBAAuB,UApIiB,oBAAoB,KAAG,IAAI,EAqInE,yBAAyB,UA9GhB,0BAA0B,KAChC,IAAI,EA8GP,mBAAmB,UAlFiB,oBAAoB,KAAG,IAAI,EAmF/D,sBAAsB,UA1Db,6BAA6B,KACnC,IA0D8B,CAAC;AAEpC,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
@@ -1,187 +0,0 @@
1
- import { applyContainerQueryValidation } from "./helpers";
2
- import { assertCondition, assertMatchingUnits, hasCssMethod, isMeasurement, isRatio, } from "../core";
3
- import { toValidationResult } from "../validation";
4
- import { normalizeToArray } from "../internal/normalizeToArray";
5
- import { ratioToFloat } from "../ratio";
6
- const isFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value);
7
- const assertMeasurement = (value, label) => {
8
- assertCondition(isMeasurement(value), `${label} must be a measurement`);
9
- };
10
- const assertMeasurementPositive = (value, label) => {
11
- assertCondition(value.getValue() > 0, `${label} must be greater than 0`);
12
- };
13
- const assertRatio = (value, label) => {
14
- assertCondition(isRatio(value), `${label} must be a ratio created with r()`);
15
- };
16
- const assertRatioPositive = (value, label) => {
17
- assertCondition(value.numerator() > 0, `${label} numerator must be greater than 0`);
18
- assertCondition(value.denominator() > 0, `${label} denominator must be greater than 0`);
19
- };
20
- const isStyleValue = (value) => {
21
- if (typeof value === "string")
22
- return true;
23
- if (isFiniteNumber(value))
24
- return true;
25
- if (hasCssMethod(value))
26
- return true;
27
- return false;
28
- };
29
- export const createContainerQueryValidation = (core) => {
30
- const assertCondition = core.assertCondition;
31
- const assertMatchingUnits = core.assertMatchingUnits;
32
- const runContainerQueryValidation = (config, helpers, check, context, fallbackMessage = "Invalid container query configuration") => {
33
- if (!check)
34
- return true;
35
- try {
36
- check(config);
37
- return true;
38
- }
39
- catch (error) {
40
- const result = toValidationResult(error, fallbackMessage);
41
- return applyContainerQueryValidation(config, helpers, () => result, context);
42
- }
43
- };
44
- const validateMinMaxWidth = (props) => {
45
- if (!props.minWidth || !props.maxWidth)
46
- return;
47
- if (Array.isArray(props.minWidth) || Array.isArray(props.maxWidth)) {
48
- return;
49
- }
50
- assertMatchingUnits(props.minWidth, props.maxWidth, "containerQueries.minMaxWidth");
51
- assertCondition(props.minWidth.getValue() <= props.maxWidth.getValue(), "minWidth must be less than or equal to maxWidth");
52
- };
53
- const validateWidthValuesPositive = (props) => {
54
- normalizeToArray(props.minWidth).forEach((value) => {
55
- assertMeasurement(value, "minWidth");
56
- assertMeasurementPositive(value, "minWidth");
57
- });
58
- normalizeToArray(props.maxWidth).forEach((value) => {
59
- assertMeasurement(value, "maxWidth");
60
- assertMeasurementPositive(value, "maxWidth");
61
- });
62
- };
63
- const validateMinMaxHeight = (props) => {
64
- if (!props.minHeight || !props.maxHeight)
65
- return;
66
- if (Array.isArray(props.minHeight) || Array.isArray(props.maxHeight)) {
67
- return;
68
- }
69
- assertMatchingUnits(props.minHeight, props.maxHeight, "containerQueries.minMaxHeight");
70
- assertCondition(props.minHeight.getValue() <= props.maxHeight.getValue(), "minHeight must be less than or equal to maxHeight");
71
- };
72
- const validateHeightValuesPositive = (props) => {
73
- normalizeToArray(props.minHeight).forEach((value) => {
74
- assertMeasurement(value, "minHeight");
75
- assertMeasurementPositive(value, "minHeight");
76
- });
77
- normalizeToArray(props.maxHeight).forEach((value) => {
78
- assertMeasurement(value, "maxHeight");
79
- assertMeasurementPositive(value, "maxHeight");
80
- });
81
- };
82
- const validateInlineSizeValues = (props) => {
83
- normalizeToArray(props.inlineSize).forEach((value) => {
84
- assertMeasurement(value.value, "inlineSize");
85
- assertMeasurementPositive(value.value, "inlineSize");
86
- });
87
- normalizeToArray(props.inlineSizeRange).forEach((value) => {
88
- assertMeasurement(value.min, "inlineSizeRange.min");
89
- assertMeasurement(value.max, "inlineSizeRange.max");
90
- assertMeasurementPositive(value.min, "inlineSizeRange.min");
91
- assertMeasurementPositive(value.max, "inlineSizeRange.max");
92
- assertMatchingUnits(value.min, value.max, "containerQueries.inlineSizeRangeUnits");
93
- assertCondition(value.min.getValue() <= value.max.getValue(), "inlineSizeRange min must be less than or equal to max");
94
- });
95
- };
96
- const validateBlockSizeValues = (props) => {
97
- normalizeToArray(props.blockSize).forEach((value) => {
98
- assertMeasurement(value.value, "blockSize");
99
- assertMeasurementPositive(value.value, "blockSize");
100
- });
101
- normalizeToArray(props.blockSizeRange).forEach((value) => {
102
- assertMeasurement(value.min, "blockSizeRange.min");
103
- assertMeasurement(value.max, "blockSizeRange.max");
104
- assertMeasurementPositive(value.min, "blockSizeRange.min");
105
- assertMeasurementPositive(value.max, "blockSizeRange.max");
106
- assertMatchingUnits(value.min, value.max, "containerQueries.blockSizeRangeUnits");
107
- assertCondition(value.min.getValue() <= value.max.getValue(), "blockSizeRange min must be less than or equal to max");
108
- });
109
- };
110
- const validateAspectRatioValues = (props) => {
111
- normalizeToArray(props.aspectRatio).forEach((value) => {
112
- assertRatio(value, "aspectRatio");
113
- assertRatioPositive(value, "aspectRatio");
114
- });
115
- normalizeToArray(props.minAspectRatio).forEach((value) => {
116
- assertRatio(value, "minAspectRatio");
117
- assertRatioPositive(value, "minAspectRatio");
118
- });
119
- normalizeToArray(props.maxAspectRatio).forEach((value) => {
120
- assertRatio(value, "maxAspectRatio");
121
- assertRatioPositive(value, "maxAspectRatio");
122
- });
123
- if (props.minAspectRatio &&
124
- props.maxAspectRatio &&
125
- !Array.isArray(props.minAspectRatio) &&
126
- !Array.isArray(props.maxAspectRatio)) {
127
- const minValue = ratioToFloat(props.minAspectRatio);
128
- const maxValue = ratioToFloat(props.maxAspectRatio);
129
- assertCondition(minValue <= maxValue, "minAspectRatio must be less than or equal to maxAspectRatio");
130
- }
131
- };
132
- const validateStyleValues = (props) => {
133
- if (!props.style)
134
- return;
135
- const entries = Object.entries(props.style);
136
- assertCondition(entries.length > 0, "style conditions must not be empty.");
137
- entries.forEach(([name, value]) => {
138
- if (value === undefined || value === null)
139
- return;
140
- if (Array.isArray(value)) {
141
- assertCondition(value.length > 0, `style.${name} must not be empty`);
142
- value.forEach((entry, index) => {
143
- assertCondition(isStyleValue(entry), `style.${name}[${index}] must be a primitive or measurement`);
144
- });
145
- return;
146
- }
147
- assertCondition(isStyleValue(value), `style.${name} must be a primitive or measurement`);
148
- });
149
- };
150
- const validateCustomFeatures = (props) => {
151
- if (!props.customFeatures)
152
- return;
153
- const entries = Object.entries(props.customFeatures);
154
- assertCondition(entries.length > 0, "customFeatures should not be empty.");
155
- entries.forEach(([name, value]) => {
156
- const trimmedName = name.trim();
157
- assertCondition(trimmedName.length > 0, "Custom feature name must be non-empty.");
158
- if (value === undefined || value === null)
159
- return;
160
- if (Array.isArray(value)) {
161
- value.forEach((entry, index) => {
162
- assertCondition(isStyleValue(entry), `Custom feature "${trimmedName}[${index}]" must be a primitive or a measurement.`);
163
- });
164
- return;
165
- }
166
- assertCondition(isStyleValue(value), `Custom feature "${trimmedName}" must be a primitive or a measurement.`);
167
- });
168
- };
169
- return {
170
- runContainerQueryValidation,
171
- validateMinMaxWidth,
172
- validateWidthValuesPositive,
173
- validateMinMaxHeight,
174
- validateHeightValuesPositive,
175
- validateInlineSizeValues,
176
- validateBlockSizeValues,
177
- validateAspectRatioValues,
178
- validateStyleValues,
179
- validateCustomFeatures,
180
- };
181
- };
182
- const defaultContainerQueryValidation = createContainerQueryValidation({
183
- assertCondition,
184
- assertMatchingUnits,
185
- });
186
- export const { runContainerQueryValidation, validateMinMaxWidth, validateWidthValuesPositive, validateMinMaxHeight, validateHeightValuesPositive, validateInlineSizeValues, validateBlockSizeValues, validateAspectRatioValues, validateStyleValues, validateCustomFeatures, } = defaultContainerQueryValidation;
187
- export { defaultContainerQueryValidation };
@@ -1,23 +0,0 @@
1
- export interface IFraction {
2
- css: () => string;
3
- toString: () => string;
4
- valueOf: () => number;
5
- numerator: () => number;
6
- denominator: () => number;
7
- withNumerator: (numerator: number) => IFraction;
8
- withDenominator: (denominator: number) => IFraction;
9
- }
10
- export type Fraction = IFraction;
11
- export type RatioParts = {
12
- numerator: number;
13
- denominator: number;
14
- };
15
- export declare function r(denominator: number): Fraction;
16
- export declare function r(numerator: number, denominator: number): Fraction;
17
- export declare const isFraction: (value: unknown) => value is IFraction;
18
- export declare const parseRatio: (value: number | string | IFraction) => RatioParts | null;
19
- export declare const normalizeFraction: (fraction: IFraction) => IFraction;
20
- export declare const reduceFraction: (fraction: IFraction) => IFraction;
21
- export declare const simplifyFraction: (fraction: IFraction) => IFraction;
22
- export declare const fractionToFloat: (fraction: IFraction) => number;
23
- //# sourceMappingURL=fraction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fraction.d.ts","sourceRoot":"","sources":["../../src/fraction.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;IAChD,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC;CACrD;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAwDF,wBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;AACjD,wBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;AAUpE,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAWpD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,SAAS,KAAG,UAAU,GAAG,IAoB5E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,SAAS,KAAG,SAiCvD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,KAAG,SACxB,CAAC;AAE9B,eAAO,MAAM,gBAAgB,GAAI,UAAU,SAAS,KAAG,SAOtD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,KAAG,MACP,CAAC"}
@@ -1,129 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _FractionImpl_numerator, _FractionImpl_denominator, _FractionImpl_omitDenominatorWhenOne;
13
- class FractionImpl {
14
- constructor(numerator, denominator, options = {}) {
15
- var _a;
16
- _FractionImpl_numerator.set(this, void 0);
17
- _FractionImpl_denominator.set(this, void 0);
18
- _FractionImpl_omitDenominatorWhenOne.set(this, void 0);
19
- if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
20
- throw new Error('Fraction values must be finite numbers.');
21
- }
22
- if (denominator === 0) {
23
- throw new Error('Fraction denominator cannot be zero.');
24
- }
25
- __classPrivateFieldSet(this, _FractionImpl_numerator, numerator, "f");
26
- __classPrivateFieldSet(this, _FractionImpl_denominator, denominator, "f");
27
- __classPrivateFieldSet(this, _FractionImpl_omitDenominatorWhenOne, (_a = options.omitDenominatorWhenOne) !== null && _a !== void 0 ? _a : false, "f");
28
- }
29
- numerator() {
30
- return __classPrivateFieldGet(this, _FractionImpl_numerator, "f");
31
- }
32
- denominator() {
33
- return __classPrivateFieldGet(this, _FractionImpl_denominator, "f");
34
- }
35
- withNumerator(numerator) {
36
- return new FractionImpl(numerator, __classPrivateFieldGet(this, _FractionImpl_denominator, "f"));
37
- }
38
- withDenominator(denominator) {
39
- return new FractionImpl(__classPrivateFieldGet(this, _FractionImpl_numerator, "f"), denominator);
40
- }
41
- valueOf() {
42
- return __classPrivateFieldGet(this, _FractionImpl_numerator, "f") / __classPrivateFieldGet(this, _FractionImpl_denominator, "f");
43
- }
44
- css() {
45
- if (__classPrivateFieldGet(this, _FractionImpl_omitDenominatorWhenOne, "f") && __classPrivateFieldGet(this, _FractionImpl_denominator, "f") === 1) {
46
- return String(__classPrivateFieldGet(this, _FractionImpl_numerator, "f"));
47
- }
48
- return `${__classPrivateFieldGet(this, _FractionImpl_numerator, "f")}/${__classPrivateFieldGet(this, _FractionImpl_denominator, "f")}`;
49
- }
50
- toString() {
51
- return this.css();
52
- }
53
- }
54
- _FractionImpl_numerator = new WeakMap(), _FractionImpl_denominator = new WeakMap(), _FractionImpl_omitDenominatorWhenOne = new WeakMap();
55
- export function r(numeratorOrDenominator, denominator) {
56
- const numerator = denominator === undefined ? numeratorOrDenominator : numeratorOrDenominator;
57
- const resolvedDenominator = denominator === undefined ? 1 : denominator;
58
- return new FractionImpl(numerator, resolvedDenominator);
59
- }
60
- export const isFraction = (value) => {
61
- return (typeof value === "object" &&
62
- value !== null &&
63
- "css" in value &&
64
- "numerator" in value &&
65
- "denominator" in value &&
66
- typeof value.css === "function" &&
67
- typeof value.numerator === "function" &&
68
- typeof value.denominator === "function");
69
- };
70
- export const parseRatio = (value) => {
71
- if (typeof value === "number") {
72
- return Number.isFinite(value) ? { numerator: value, denominator: 1 } : null;
73
- }
74
- if (isFraction(value)) {
75
- return { numerator: value.numerator(), denominator: value.denominator() };
76
- }
77
- const trimmed = value.trim();
78
- if (!trimmed)
79
- return null;
80
- if (trimmed.includes("/")) {
81
- const [left, right] = trimmed.split("/");
82
- if (left === undefined || right === undefined)
83
- return null;
84
- const numerator = Number(left.trim());
85
- const denominator = Number(right.trim());
86
- if (!Number.isFinite(numerator) || !Number.isFinite(denominator))
87
- return null;
88
- if (denominator === 0)
89
- return null;
90
- return { numerator, denominator };
91
- }
92
- const parsed = Number(trimmed);
93
- return Number.isFinite(parsed) ? { numerator: parsed, denominator: 1 } : null;
94
- };
95
- export const normalizeFraction = (fraction) => {
96
- let numerator = fraction.numerator();
97
- let denominator = fraction.denominator();
98
- if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
99
- throw new Error("Fraction values must be finite numbers.");
100
- }
101
- if (denominator === 0) {
102
- throw new Error("Fraction denominator cannot be zero.");
103
- }
104
- if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {
105
- return new FractionImpl(numerator, denominator);
106
- }
107
- if (denominator < 0) {
108
- numerator = -numerator;
109
- denominator = Math.abs(denominator);
110
- }
111
- const gcd = (a, b) => {
112
- let x = Math.abs(a);
113
- let y = Math.abs(b);
114
- while (y !== 0) {
115
- const next = x % y;
116
- x = y;
117
- y = next;
118
- }
119
- return x === 0 ? 1 : x;
120
- };
121
- const divisor = gcd(numerator, denominator);
122
- return new FractionImpl(numerator / divisor, denominator / divisor);
123
- };
124
- export const reduceFraction = (fraction) => normalizeFraction(fraction);
125
- export const simplifyFraction = (fraction) => {
126
- const reduced = normalizeFraction(fraction);
127
- return new FractionImpl(reduced.numerator(), reduced.denominator(), { omitDenominatorWhenOne: true });
128
- };
129
- export const fractionToFloat = (fraction) => fraction.numerator() / fraction.denominator();