css-calipers 0.9.2 → 0.9.4

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 (260) hide show
  1. package/README.md +100 -0
  2. package/dist/cjs/comparisons/index.js +25 -0
  3. package/dist/cjs/containerQueries/containerQueries.js +115 -0
  4. package/dist/cjs/containerQueries/factory.js +123 -0
  5. package/dist/cjs/containerQueries/helpers.js +95 -0
  6. package/dist/cjs/containerQueries/index.js +16 -0
  7. package/dist/cjs/containerQueries/linting/aspectRatio.js +24 -0
  8. package/dist/cjs/containerQueries/linting/block.js +23 -0
  9. package/dist/cjs/containerQueries/linting/core.js +25 -0
  10. package/dist/cjs/containerQueries/linting/custom.js +11 -0
  11. package/dist/cjs/containerQueries/linting/inline.js +23 -0
  12. package/dist/cjs/containerQueries/linting/resolution.js +12 -0
  13. package/dist/cjs/containerQueries/linting/style.js +28 -0
  14. package/dist/cjs/containerQueries/linting.js +24 -0
  15. package/dist/cjs/containerQueries/moduleRegistry.js +5 -0
  16. package/dist/cjs/containerQueries/modules/aspectRatio.js +51 -0
  17. package/dist/cjs/containerQueries/modules/block.js +53 -0
  18. package/dist/cjs/containerQueries/modules/custom.js +43 -0
  19. package/dist/cjs/containerQueries/modules/index.js +21 -0
  20. package/dist/cjs/containerQueries/modules/inline.js +53 -0
  21. package/dist/cjs/containerQueries/modules/size.js +2 -0
  22. package/dist/cjs/containerQueries/modules/style.js +36 -0
  23. package/dist/cjs/containerQueries/types.js +2 -0
  24. package/dist/cjs/containerQueries/validation.js +191 -0
  25. package/dist/cjs/core.js +5 -278
  26. package/dist/cjs/factory.js +21 -0
  27. package/dist/cjs/fraction.js +139 -0
  28. package/dist/cjs/internal/buildMeasurementCreationError.js +16 -0
  29. package/dist/cjs/internal/buildMeasurementCreationError.tests.js +5 -0
  30. package/dist/cjs/internal/createComponentQueriesApi.js +56 -0
  31. package/dist/cjs/internal/createCoreApi.js +336 -0
  32. package/dist/cjs/internal/createMediaQueriesApi.js +74 -0
  33. package/dist/cjs/internal/createUnitsApi.js +18 -0
  34. package/dist/cjs/internal/errors.js +118 -5
  35. package/dist/cjs/internal/normalizeToArray.js +9 -0
  36. package/dist/cjs/libraryHelpers/vanilla-extract.js +6 -2
  37. package/dist/cjs/logicalOperators/index.js +18 -0
  38. package/dist/cjs/mediaQueries/factory.js +5 -4
  39. package/dist/cjs/mediaQueries/mediaQueries.js +7 -5
  40. package/dist/cjs/mediaQueries/modules/dimensions.js +10 -8
  41. package/dist/cjs/mediaQueries/modules/resolution.js +6 -4
  42. package/dist/cjs/mediaQueries/validation.js +128 -116
  43. package/dist/cjs/ratio.js +141 -0
  44. package/dist/cjs/types.js +2 -0
  45. package/dist/cjs/validation.js +20 -0
  46. package/dist/esm/comparisons/index.d.ts +23 -0
  47. package/dist/esm/comparisons/index.d.ts.map +1 -0
  48. package/dist/esm/comparisons/index.js +22 -0
  49. package/dist/esm/containerQueries/containerQueries.d.ts +36 -0
  50. package/dist/esm/containerQueries/containerQueries.d.ts.map +1 -0
  51. package/dist/esm/containerQueries/containerQueries.js +109 -0
  52. package/dist/esm/containerQueries/factory.d.ts +20 -0
  53. package/dist/esm/containerQueries/factory.d.ts.map +1 -0
  54. package/dist/esm/containerQueries/factory.js +119 -0
  55. package/dist/esm/containerQueries/helpers.d.ts +53 -0
  56. package/dist/esm/containerQueries/helpers.d.ts.map +1 -0
  57. package/dist/esm/containerQueries/helpers.js +82 -0
  58. package/dist/esm/containerQueries/index.d.ts +10 -0
  59. package/dist/esm/containerQueries/index.d.ts.map +1 -0
  60. package/dist/esm/containerQueries/index.js +4 -0
  61. package/dist/esm/containerQueries/linting/aspectRatio.d.ts +4 -0
  62. package/dist/esm/containerQueries/linting/aspectRatio.d.ts.map +1 -0
  63. package/dist/esm/containerQueries/linting/aspectRatio.js +19 -0
  64. package/dist/esm/containerQueries/linting/block.d.ts +4 -0
  65. package/dist/esm/containerQueries/linting/block.d.ts.map +1 -0
  66. package/dist/esm/containerQueries/linting/block.js +18 -0
  67. package/dist/esm/containerQueries/linting/core.d.ts +4 -0
  68. package/dist/esm/containerQueries/linting/core.d.ts.map +1 -0
  69. package/dist/esm/containerQueries/linting/core.js +20 -0
  70. package/dist/esm/containerQueries/linting/custom.d.ts +3 -0
  71. package/dist/esm/containerQueries/linting/custom.d.ts.map +1 -0
  72. package/dist/esm/containerQueries/linting/custom.js +7 -0
  73. package/dist/esm/containerQueries/linting/inline.d.ts +4 -0
  74. package/dist/esm/containerQueries/linting/inline.d.ts.map +1 -0
  75. package/dist/esm/containerQueries/linting/inline.js +18 -0
  76. package/dist/esm/containerQueries/linting/resolution.d.ts +1 -0
  77. package/dist/esm/containerQueries/linting/resolution.d.ts.map +1 -0
  78. package/dist/esm/containerQueries/linting/resolution.js +12 -0
  79. package/dist/esm/containerQueries/linting/style.d.ts +3 -0
  80. package/dist/esm/containerQueries/linting/style.d.ts.map +1 -0
  81. package/dist/esm/containerQueries/linting/style.js +24 -0
  82. package/dist/esm/containerQueries/linting.d.ts +4 -0
  83. package/dist/esm/containerQueries/linting.d.ts.map +1 -0
  84. package/dist/esm/containerQueries/linting.js +20 -0
  85. package/dist/esm/containerQueries/moduleRegistry.d.ts +25 -0
  86. package/dist/esm/containerQueries/moduleRegistry.d.ts.map +1 -0
  87. package/dist/esm/containerQueries/moduleRegistry.js +1 -0
  88. package/dist/esm/containerQueries/modules/aspectRatio.d.ts +17 -0
  89. package/dist/esm/containerQueries/modules/aspectRatio.d.ts.map +1 -0
  90. package/dist/esm/containerQueries/modules/aspectRatio.js +47 -0
  91. package/dist/esm/containerQueries/modules/block.d.ts +20 -0
  92. package/dist/esm/containerQueries/modules/block.d.ts.map +1 -0
  93. package/dist/esm/containerQueries/modules/block.js +49 -0
  94. package/dist/esm/containerQueries/modules/custom.d.ts +13 -0
  95. package/dist/esm/containerQueries/modules/custom.d.ts.map +1 -0
  96. package/dist/esm/containerQueries/modules/custom.js +39 -0
  97. package/dist/esm/containerQueries/modules/index.d.ts +6 -0
  98. package/dist/esm/containerQueries/modules/index.d.ts.map +1 -0
  99. package/dist/esm/containerQueries/modules/index.js +5 -0
  100. package/dist/esm/containerQueries/modules/inline.d.ts +20 -0
  101. package/dist/esm/containerQueries/modules/inline.d.ts.map +1 -0
  102. package/dist/esm/containerQueries/modules/inline.js +49 -0
  103. package/dist/esm/containerQueries/modules/size.d.ts +41 -0
  104. package/dist/esm/containerQueries/modules/size.d.ts.map +1 -0
  105. package/dist/esm/containerQueries/modules/size.js +1 -0
  106. package/dist/esm/containerQueries/modules/style.d.ts +11 -0
  107. package/dist/esm/containerQueries/modules/style.d.ts.map +1 -0
  108. package/dist/esm/containerQueries/modules/style.js +32 -0
  109. package/dist/esm/containerQueries/types.d.ts +81 -0
  110. package/dist/esm/containerQueries/types.d.ts.map +1 -0
  111. package/dist/esm/containerQueries/types.js +1 -0
  112. package/dist/esm/containerQueries/validation.d.ts +41 -0
  113. package/dist/esm/containerQueries/validation.d.ts.map +1 -0
  114. package/dist/esm/containerQueries/validation.js +187 -0
  115. package/dist/esm/core.d.ts +27 -26
  116. package/dist/esm/core.d.ts.map +1 -1
  117. package/dist/esm/core.js +5 -266
  118. package/dist/esm/factory.d.ts +13 -0
  119. package/dist/esm/factory.d.ts.map +1 -0
  120. package/dist/esm/factory.js +17 -0
  121. package/dist/esm/fraction.d.ts +23 -0
  122. package/dist/esm/fraction.d.ts.map +1 -0
  123. package/dist/esm/fraction.js +129 -0
  124. package/dist/esm/internal/buildMeasurementCreationError.d.ts +12 -0
  125. package/dist/esm/internal/buildMeasurementCreationError.d.ts.map +1 -0
  126. package/dist/esm/internal/buildMeasurementCreationError.js +12 -0
  127. package/dist/esm/internal/buildMeasurementCreationError.tests.d.ts +3 -0
  128. package/dist/esm/internal/buildMeasurementCreationError.tests.d.ts.map +1 -0
  129. package/dist/esm/internal/buildMeasurementCreationError.tests.js +1 -0
  130. package/dist/esm/internal/createComponentQueriesApi.d.ts +34 -0
  131. package/dist/esm/internal/createComponentQueriesApi.d.ts.map +1 -0
  132. package/dist/esm/internal/createComponentQueriesApi.js +52 -0
  133. package/dist/esm/internal/createCoreApi.d.ts +289 -0
  134. package/dist/esm/internal/createCoreApi.d.ts.map +1 -0
  135. package/dist/esm/internal/createCoreApi.js +332 -0
  136. package/dist/esm/internal/createMediaQueriesApi.d.ts +35 -0
  137. package/dist/esm/internal/createMediaQueriesApi.d.ts.map +1 -0
  138. package/dist/esm/internal/createMediaQueriesApi.js +70 -0
  139. package/dist/esm/internal/createUnitsApi.d.ts +13 -0
  140. package/dist/esm/internal/createUnitsApi.d.ts.map +1 -0
  141. package/dist/esm/internal/createUnitsApi.js +14 -0
  142. package/dist/esm/internal/errors.d.ts +30 -0
  143. package/dist/esm/internal/errors.d.ts.map +1 -1
  144. package/dist/esm/internal/errors.js +113 -4
  145. package/dist/esm/internal/normalizeToArray.d.ts +2 -0
  146. package/dist/esm/internal/normalizeToArray.d.ts.map +1 -0
  147. package/dist/esm/internal/normalizeToArray.js +5 -0
  148. package/dist/esm/libraryHelpers/vanilla-extract.d.ts +2 -1
  149. package/dist/esm/libraryHelpers/vanilla-extract.d.ts.map +1 -1
  150. package/dist/esm/libraryHelpers/vanilla-extract.js +4 -1
  151. package/dist/esm/logicalOperators/index.d.ts +2 -0
  152. package/dist/esm/logicalOperators/index.d.ts.map +1 -0
  153. package/dist/esm/logicalOperators/index.js +17 -0
  154. package/dist/esm/mediaQueries/factory.d.ts +16 -1
  155. package/dist/esm/mediaQueries/factory.d.ts.map +1 -1
  156. package/dist/esm/mediaQueries/factory.js +3 -2
  157. package/dist/esm/mediaQueries/libraryHelpers/vanilla-extract.d.ts +2 -2
  158. package/dist/esm/mediaQueries/libraryHelpers/vanilla-extract.d.ts.map +1 -1
  159. package/dist/esm/mediaQueries/mediaQueries.d.ts +2 -0
  160. package/dist/esm/mediaQueries/mediaQueries.d.ts.map +1 -1
  161. package/dist/esm/mediaQueries/mediaQueries.js +4 -2
  162. package/dist/esm/mediaQueries/modules/dimensions.d.ts +2 -0
  163. package/dist/esm/mediaQueries/modules/dimensions.d.ts.map +1 -1
  164. package/dist/esm/mediaQueries/modules/dimensions.js +4 -2
  165. package/dist/esm/mediaQueries/modules/resolution.d.ts +2 -0
  166. package/dist/esm/mediaQueries/modules/resolution.d.ts.map +1 -1
  167. package/dist/esm/mediaQueries/modules/resolution.js +4 -2
  168. package/dist/esm/mediaQueries/validation.d.ts +28 -8
  169. package/dist/esm/mediaQueries/validation.d.ts.map +1 -1
  170. package/dist/esm/mediaQueries/validation.js +126 -107
  171. package/dist/esm/package.json +3 -0
  172. package/dist/esm/ratio.d.ts +22 -0
  173. package/dist/esm/ratio.d.ts.map +1 -0
  174. package/dist/esm/ratio.js +131 -0
  175. package/dist/esm/types.d.ts +35 -0
  176. package/dist/esm/types.d.ts.map +1 -0
  177. package/dist/esm/types.js +1 -0
  178. package/dist/esm/validation.d.ts +10 -0
  179. package/dist/esm/validation.d.ts.map +1 -0
  180. package/dist/esm/validation.js +15 -0
  181. package/dist/examples/containerQueries.example.js +54 -0
  182. package/dist/examples/examples/containerQueries.example.js +54 -0
  183. package/dist/examples/examples/factory-wrapper.example.js +33 -0
  184. package/dist/examples/examples/lineHeight-normalizer.example.js +81 -0
  185. package/dist/examples/examples/mediaQueries-multipleInstances.example.js +127 -0
  186. package/dist/examples/examples/mixedQueries.example.js +55 -0
  187. package/dist/examples/examples/validation-and-runtime-checks.example.js +85 -0
  188. package/dist/examples/examples/validation-unit-tests.example.js +35 -0
  189. package/dist/examples/factory-wrapper.example.js +33 -0
  190. package/dist/examples/lineHeight-normalizer.example.js +81 -0
  191. package/dist/examples/mediaQueries-multipleInstances.example.js +127 -0
  192. package/dist/examples/mixedQueries.example.js +60 -0
  193. package/dist/examples/src/comparisons/index.js +25 -0
  194. package/dist/examples/src/containerQueries/containerQueries.js +96 -0
  195. package/dist/examples/src/containerQueries/factory.js +123 -0
  196. package/dist/examples/src/containerQueries/helpers.js +94 -0
  197. package/dist/examples/src/containerQueries/index.js +16 -0
  198. package/dist/examples/src/containerQueries/linting/aspectRatio.js +20 -0
  199. package/dist/examples/src/containerQueries/linting/block.js +20 -0
  200. package/dist/examples/src/containerQueries/linting/core.js +19 -0
  201. package/dist/examples/src/containerQueries/linting/custom.js +11 -0
  202. package/dist/examples/src/containerQueries/linting/inline.js +20 -0
  203. package/dist/examples/src/containerQueries/linting/style.js +28 -0
  204. package/dist/examples/src/containerQueries/linting.js +24 -0
  205. package/dist/examples/src/containerQueries/moduleRegistry.js +5 -0
  206. package/dist/examples/src/containerQueries/modules/aspectRatio.js +33 -0
  207. package/dist/examples/src/containerQueries/modules/block.js +44 -0
  208. package/dist/examples/src/containerQueries/modules/custom.js +31 -0
  209. package/dist/examples/src/containerQueries/modules/index.js +21 -0
  210. package/dist/examples/src/containerQueries/modules/inline.js +44 -0
  211. package/dist/examples/src/containerQueries/modules/style.js +36 -0
  212. package/dist/examples/src/containerQueries/types.js +2 -0
  213. package/dist/examples/src/containerQueries/validation.js +177 -0
  214. package/dist/examples/src/core.js +16 -0
  215. package/dist/examples/src/factory.js +21 -0
  216. package/dist/examples/src/index.js +30 -0
  217. package/dist/examples/src/internal/buildMeasurementCreationError.js +16 -0
  218. package/dist/examples/src/internal/createCoreApi.js +336 -0
  219. package/dist/examples/src/internal/createMediaQueriesApi.js +74 -0
  220. package/dist/examples/src/internal/createUnitsApi.js +18 -0
  221. package/dist/examples/src/internal/errors.js +130 -0
  222. package/dist/examples/src/libraryHelpers/vanilla-extract.js +11 -0
  223. package/dist/examples/src/mediaQueries/factory.js +163 -0
  224. package/dist/examples/src/mediaQueries/helpers.js +88 -0
  225. package/dist/examples/src/mediaQueries/index.js +23 -0
  226. package/dist/examples/src/mediaQueries/linting/core.js +19 -0
  227. package/dist/examples/src/mediaQueries/linting/resolution.js +11 -0
  228. package/dist/examples/src/mediaQueries/linting.js +24 -0
  229. package/dist/examples/src/mediaQueries/mediaQueries.js +53 -0
  230. package/dist/examples/src/mediaQueries/moduleRegistry.js +5 -0
  231. package/dist/examples/src/mediaQueries/modules/custom.js +26 -0
  232. package/dist/examples/src/mediaQueries/modules/dimensions.js +61 -0
  233. package/dist/examples/src/mediaQueries/modules/display.js +20 -0
  234. package/dist/examples/src/mediaQueries/modules/environment.js +20 -0
  235. package/dist/examples/src/mediaQueries/modules/index.js +23 -0
  236. package/dist/examples/src/mediaQueries/modules/interaction.js +26 -0
  237. package/dist/examples/src/mediaQueries/modules/preferences.js +26 -0
  238. package/dist/examples/src/mediaQueries/modules/resolution.js +31 -0
  239. package/dist/examples/src/mediaQueries/types.js +2 -0
  240. package/dist/examples/src/mediaQueries/validation.js +128 -0
  241. package/dist/examples/src/ratio.js +141 -0
  242. package/dist/examples/src/types.js +2 -0
  243. package/dist/examples/src/unitDefinitions.js +67 -0
  244. package/dist/examples/src/units/absolute.js +11 -0
  245. package/dist/examples/src/units/angle.js +8 -0
  246. package/dist/examples/src/units/container.js +10 -0
  247. package/dist/examples/src/units/font-relative.js +16 -0
  248. package/dist/examples/src/units/frequency.js +6 -0
  249. package/dist/examples/src/units/grid.js +5 -0
  250. package/dist/examples/src/units/percent.js +7 -0
  251. package/dist/examples/src/units/resolution.js +7 -0
  252. package/dist/examples/src/units/time.js +6 -0
  253. package/dist/examples/src/units/viewport-dynamic.js +10 -0
  254. package/dist/examples/src/units/viewport-large.js +10 -0
  255. package/dist/examples/src/units/viewport-small.js +10 -0
  256. package/dist/examples/src/units/viewport.js +10 -0
  257. package/dist/examples/src/validation.js +20 -0
  258. package/dist/examples/validation-and-runtime-checks.example.js +85 -0
  259. package/dist/examples/validation-unit-tests.example.js +35 -0
  260. package/package.json +17 -6
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emitDimensionsFeatures = void 0;
3
+ exports.emitDimensionsFeatures = exports.createEmitDimensionsFeatures = void 0;
4
4
  const helpers_1 = require("../helpers");
5
5
  const validation_1 = require("../validation");
6
6
  const linting_1 = require("../linting");
7
7
  const core_1 = require("../linting/core");
8
- const emitDimensionsFeatures = (props, helpers, validate) => {
9
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateMinMaxHeight, 'dimensions', 'minHeight must be less than or equal to maxHeight')) {
8
+ const createEmitDimensionsFeatures = (validation) => (props, helpers, validate) => {
9
+ const { runMediaQueryValidation, validateMinMaxHeight, validateHeightValuesPositive, validateMinMaxAspectRatio, validateAspectRatioValuesPositive, validateWidthValuesPositive, } = validation;
10
+ if (!runMediaQueryValidation(props, helpers, validateMinMaxHeight, 'dimensions', 'minHeight must be less than or equal to maxHeight')) {
10
11
  return;
11
12
  }
12
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateHeightValuesPositive, 'dimensions', 'height values must be greater than 0')) {
13
+ if (!runMediaQueryValidation(props, helpers, validateHeightValuesPositive, 'dimensions', 'height values must be greater than 0')) {
13
14
  return;
14
15
  }
15
16
  if (!(0, linting_1.runMediaQueryLint)(props, helpers, core_1.lintWidthRedundancy, 'width should not be combined with minWidth or maxWidth')) {
@@ -18,13 +19,13 @@ const emitDimensionsFeatures = (props, helpers, validate) => {
18
19
  if (!(0, linting_1.runMediaQueryLint)(props, helpers, core_1.lintHeightRedundancy, 'height should not be combined with minHeight or maxHeight')) {
19
20
  return;
20
21
  }
21
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateWidthValuesPositive, 'dimensions', 'width values must be greater than 0')) {
22
+ if (!runMediaQueryValidation(props, helpers, validateWidthValuesPositive, 'dimensions', 'width values must be greater than 0')) {
22
23
  return;
23
24
  }
24
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateMinMaxAspectRatio, 'dimensions', 'minAspectRatio must be less than or equal to maxAspectRatio')) {
25
+ if (!runMediaQueryValidation(props, helpers, validateMinMaxAspectRatio, 'dimensions', 'minAspectRatio must be less than or equal to maxAspectRatio')) {
25
26
  return;
26
27
  }
27
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateAspectRatioValuesPositive, 'dimensions', 'aspect ratio values must be greater than 0')) {
28
+ if (!runMediaQueryValidation(props, helpers, validateAspectRatioValuesPositive, 'dimensions', 'aspect ratio values must be greater than 0')) {
28
29
  return;
29
30
  }
30
31
  if (!(0, helpers_1.applyMediaQueryValidation)(props, helpers, validate, 'dimensions')) {
@@ -56,4 +57,5 @@ const emitDimensionsFeatures = (props, helpers, validate) => {
56
57
  addFeature('orientation', props.orientation);
57
58
  }
58
59
  };
59
- exports.emitDimensionsFeatures = emitDimensionsFeatures;
60
+ exports.createEmitDimensionsFeatures = createEmitDimensionsFeatures;
61
+ exports.emitDimensionsFeatures = (0, exports.createEmitDimensionsFeatures)(validation_1.defaultMediaQueryValidation);
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emitResolutionFeatures = void 0;
3
+ exports.emitResolutionFeatures = exports.createEmitResolutionFeatures = void 0;
4
4
  const helpers_1 = require("../helpers");
5
5
  const validation_1 = require("../validation");
6
6
  const linting_1 = require("../linting");
7
7
  const resolution_1 = require("../linting/resolution");
8
- const emitResolutionFeatures = (props, helpers, validate) => {
9
- if (!(0, validation_1.runMediaQueryValidation)(props, helpers, validation_1.validateResolutionValues, 'resolution', 'resolution values must be greater than 0')) {
8
+ const createEmitResolutionFeatures = (validation) => (props, helpers, validate) => {
9
+ const { runMediaQueryValidation, validateResolutionValues } = validation;
10
+ if (!runMediaQueryValidation(props, helpers, validateResolutionValues, 'resolution', 'resolution values must be greater than 0')) {
10
11
  return;
11
12
  }
12
13
  if (!(0, linting_1.runMediaQueryLint)(props, helpers, resolution_1.lintResolutionRedundancy, 'resolution should not be combined with minResolution or maxResolution')) {
@@ -26,4 +27,5 @@ const emitResolutionFeatures = (props, helpers, validate) => {
26
27
  addFeature('max-resolution', props.maxResolution);
27
28
  }
28
29
  };
29
- exports.emitResolutionFeatures = emitResolutionFeatures;
30
+ exports.createEmitResolutionFeatures = createEmitResolutionFeatures;
31
+ exports.emitResolutionFeatures = (0, exports.createEmitResolutionFeatures)(validation_1.defaultMediaQueryValidation);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateResolutionValues = exports.validateAspectRatioValuesPositive = exports.validateMinMaxAspectRatio = exports.validateHeightValuesPositive = exports.validateMinMaxHeight = exports.validateWidthValuesPositive = exports.validateMinMaxWidth = exports.runMediaQueryValidation = void 0;
3
+ exports.defaultMediaQueryValidation = exports.validateResolutionValues = exports.validateAspectRatioValuesPositive = exports.validateMinMaxAspectRatio = exports.validateHeightValuesPositive = exports.validateMinMaxHeight = exports.validateWidthValuesPositive = exports.validateMinMaxWidth = exports.runMediaQueryValidation = exports.createMediaQueryValidation = void 0;
4
4
  const helpers_1 = require("./helpers");
5
5
  const core_1 = require("../core");
6
6
  const toValidationResult = (error, fallback) => {
@@ -8,126 +8,138 @@ const toValidationResult = (error, fallback) => {
8
8
  return error.message;
9
9
  return fallback;
10
10
  };
11
- const runMediaQueryValidation = (config, helpers, check, context, fallbackMessage = 'Invalid media query configuration') => {
12
- if (!check)
13
- return true;
14
- try {
15
- check(config);
16
- return true;
17
- }
18
- catch (error) {
19
- const result = toValidationResult(error, fallbackMessage);
20
- return (0, helpers_1.applyMediaQueryValidation)(config, helpers, () => result, context);
21
- }
22
- };
23
- exports.runMediaQueryValidation = runMediaQueryValidation;
24
- const validateMinMaxWidth = (props) => {
25
- if (!props.minWidth || !props.maxWidth)
26
- return;
27
- (0, core_1.assertMatchingUnits)(props.minWidth, props.maxWidth, 'mediaQueries.minMaxWidth');
28
- (0, core_1.assertCondition)(props.minWidth.getValue() <= props.maxWidth.getValue(), 'minWidth must be less than or equal to maxWidth');
29
- };
30
- exports.validateMinMaxWidth = validateMinMaxWidth;
31
- const validateWidthValuesPositive = (props) => {
32
- const assertPositive = (value, label) => {
33
- (0, core_1.assertCondition)(value.getValue() > 0, `${label} must be greater than 0`);
11
+ const createMediaQueryValidation = (core) => {
12
+ const { assertCondition, assertMatchingUnits } = core;
13
+ const runMediaQueryValidation = (config, helpers, check, context, fallbackMessage = 'Invalid media query configuration') => {
14
+ if (!check)
15
+ return true;
16
+ try {
17
+ check(config);
18
+ return true;
19
+ }
20
+ catch (error) {
21
+ const result = toValidationResult(error, fallbackMessage);
22
+ return (0, helpers_1.applyMediaQueryValidation)(config, helpers, () => result, context);
23
+ }
34
24
  };
35
- if (props.width) {
36
- assertPositive(props.width, 'width');
37
- }
38
- if (props.minWidth) {
39
- assertPositive(props.minWidth, 'minWidth');
40
- }
41
- if (props.maxWidth) {
42
- assertPositive(props.maxWidth, 'maxWidth');
43
- }
44
- };
45
- exports.validateWidthValuesPositive = validateWidthValuesPositive;
46
- const validateMinMaxHeight = (props) => {
47
- if (!props.minHeight || !props.maxHeight)
48
- return;
49
- (0, core_1.assertMatchingUnits)(props.minHeight, props.maxHeight, 'mediaQueries.minMaxHeight');
50
- (0, core_1.assertCondition)(props.minHeight.getValue() <= props.maxHeight.getValue(), 'minHeight must be less than or equal to maxHeight');
51
- };
52
- exports.validateMinMaxHeight = validateMinMaxHeight;
53
- const validateHeightValuesPositive = (props) => {
54
- const assertPositive = (value, label) => {
55
- (0, core_1.assertCondition)(value.getValue() > 0, `${label} must be greater than 0`);
25
+ const validateMinMaxWidth = (props) => {
26
+ if (!props.minWidth || !props.maxWidth)
27
+ return;
28
+ assertMatchingUnits(props.minWidth, props.maxWidth, 'mediaQueries.minMaxWidth');
29
+ assertCondition(props.minWidth.getValue() <= props.maxWidth.getValue(), 'minWidth must be less than or equal to maxWidth');
56
30
  };
57
- if (props.height) {
58
- assertPositive(props.height, 'height');
59
- }
60
- if (props.minHeight) {
61
- assertPositive(props.minHeight, 'minHeight');
62
- }
63
- if (props.maxHeight) {
64
- assertPositive(props.maxHeight, 'maxHeight');
65
- }
66
- };
67
- exports.validateHeightValuesPositive = validateHeightValuesPositive;
68
- const parseAspectRatio = (value) => {
69
- if (value === undefined || value === null)
70
- return null;
71
- if (typeof value === 'number')
72
- return Number.isFinite(value) ? value : null;
73
- const trimmed = value.trim();
74
- if (!trimmed)
75
- return null;
76
- if (trimmed.includes('/')) {
77
- const [left, right] = trimmed.split('/');
78
- if (left === undefined || right === undefined)
31
+ const validateWidthValuesPositive = (props) => {
32
+ const assertPositive = (value, label) => {
33
+ assertCondition(value.getValue() > 0, `${label} must be greater than 0`);
34
+ };
35
+ if (props.width) {
36
+ assertPositive(props.width, 'width');
37
+ }
38
+ if (props.minWidth) {
39
+ assertPositive(props.minWidth, 'minWidth');
40
+ }
41
+ if (props.maxWidth) {
42
+ assertPositive(props.maxWidth, 'maxWidth');
43
+ }
44
+ };
45
+ const validateMinMaxHeight = (props) => {
46
+ if (!props.minHeight || !props.maxHeight)
47
+ return;
48
+ assertMatchingUnits(props.minHeight, props.maxHeight, 'mediaQueries.minMaxHeight');
49
+ assertCondition(props.minHeight.getValue() <= props.maxHeight.getValue(), 'minHeight must be less than or equal to maxHeight');
50
+ };
51
+ const validateHeightValuesPositive = (props) => {
52
+ const assertPositive = (value, label) => {
53
+ assertCondition(value.getValue() > 0, `${label} must be greater than 0`);
54
+ };
55
+ if (props.height) {
56
+ assertPositive(props.height, 'height');
57
+ }
58
+ if (props.minHeight) {
59
+ assertPositive(props.minHeight, 'minHeight');
60
+ }
61
+ if (props.maxHeight) {
62
+ assertPositive(props.maxHeight, 'maxHeight');
63
+ }
64
+ };
65
+ const parseAspectRatio = (value) => {
66
+ if (value === undefined || value === null)
79
67
  return null;
80
- const numerator = Number(left.trim());
81
- const denominator = Number(right.trim());
82
- if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
68
+ if (typeof value === 'number')
69
+ return Number.isFinite(value) ? value : null;
70
+ const trimmed = value.trim();
71
+ if (!trimmed)
83
72
  return null;
73
+ if (trimmed.includes('/')) {
74
+ const [left, right] = trimmed.split('/');
75
+ if (left === undefined || right === undefined)
76
+ return null;
77
+ const numerator = Number(left.trim());
78
+ const denominator = Number(right.trim());
79
+ if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
80
+ return null;
81
+ }
82
+ if (denominator === 0)
83
+ return null;
84
+ return numerator / denominator;
84
85
  }
85
- if (denominator === 0)
86
- return null;
87
- return numerator / denominator;
88
- }
89
- const parsed = Number(trimmed);
90
- return Number.isFinite(parsed) ? parsed : null;
91
- };
92
- const validateMinMaxAspectRatio = (props) => {
93
- if (!props.minAspectRatio || !props.maxAspectRatio)
94
- return;
95
- const minRatio = parseAspectRatio(props.minAspectRatio);
96
- const maxRatio = parseAspectRatio(props.maxAspectRatio);
97
- (0, core_1.assertCondition)(minRatio !== null && maxRatio !== null, 'aspectRatio values must be valid numbers or ratio strings');
98
- (0, core_1.assertCondition)(minRatio <= maxRatio, 'minAspectRatio must be less than or equal to maxAspectRatio');
99
- };
100
- exports.validateMinMaxAspectRatio = validateMinMaxAspectRatio;
101
- const validateAspectRatioValuesPositive = (props) => {
102
- const assertValidPositive = (label, value) => {
103
- (0, core_1.assertCondition)(value !== null && value > 0, `${label} must be a valid ratio greater than 0`);
86
+ const parsed = Number(trimmed);
87
+ return Number.isFinite(parsed) ? parsed : null;
104
88
  };
105
- if (props.aspectRatio !== undefined) {
106
- assertValidPositive('aspectRatio', parseAspectRatio(props.aspectRatio));
107
- }
108
- if (props.minAspectRatio !== undefined) {
109
- assertValidPositive('minAspectRatio', parseAspectRatio(props.minAspectRatio));
110
- }
111
- if (props.maxAspectRatio !== undefined) {
112
- assertValidPositive('maxAspectRatio', parseAspectRatio(props.maxAspectRatio));
113
- }
114
- };
115
- exports.validateAspectRatioValuesPositive = validateAspectRatioValuesPositive;
116
- const validateResolutionValues = (props) => {
117
- const assertPositive = (value, label) => {
118
- (0, core_1.assertCondition)(value.getValue() > 0, `${label} must be greater than 0`);
89
+ const validateMinMaxAspectRatio = (props) => {
90
+ if (!props.minAspectRatio || !props.maxAspectRatio)
91
+ return;
92
+ const minRatio = parseAspectRatio(props.minAspectRatio);
93
+ const maxRatio = parseAspectRatio(props.maxAspectRatio);
94
+ assertCondition(minRatio !== null && maxRatio !== null, 'aspectRatio values must be valid numbers or ratio strings');
95
+ assertCondition(minRatio <= maxRatio, 'minAspectRatio must be less than or equal to maxAspectRatio');
96
+ };
97
+ const validateAspectRatioValuesPositive = (props) => {
98
+ const assertValidPositive = (label, value) => {
99
+ assertCondition(value !== null && value > 0, `${label} must be a valid ratio greater than 0`);
100
+ };
101
+ if (props.aspectRatio !== undefined) {
102
+ assertValidPositive('aspectRatio', parseAspectRatio(props.aspectRatio));
103
+ }
104
+ if (props.minAspectRatio !== undefined) {
105
+ assertValidPositive('minAspectRatio', parseAspectRatio(props.minAspectRatio));
106
+ }
107
+ if (props.maxAspectRatio !== undefined) {
108
+ assertValidPositive('maxAspectRatio', parseAspectRatio(props.maxAspectRatio));
109
+ }
110
+ };
111
+ const validateResolutionValues = (props) => {
112
+ const assertPositive = (value, label) => {
113
+ assertCondition(value.getValue() > 0, `${label} must be greater than 0`);
114
+ };
115
+ if (props.resolutionValue) {
116
+ assertPositive(props.resolutionValue, 'resolution');
117
+ }
118
+ if (props.minResolution) {
119
+ assertPositive(props.minResolution, 'minResolution');
120
+ }
121
+ if (props.maxResolution) {
122
+ assertPositive(props.maxResolution, 'maxResolution');
123
+ }
124
+ if (props.minResolution && props.maxResolution) {
125
+ assertMatchingUnits(props.minResolution, props.maxResolution, 'mediaQueries.resolutionUnits');
126
+ }
127
+ };
128
+ return {
129
+ runMediaQueryValidation,
130
+ validateMinMaxWidth,
131
+ validateWidthValuesPositive,
132
+ validateMinMaxHeight,
133
+ validateHeightValuesPositive,
134
+ validateMinMaxAspectRatio,
135
+ validateAspectRatioValuesPositive,
136
+ validateResolutionValues,
119
137
  };
120
- if (props.resolutionValue) {
121
- assertPositive(props.resolutionValue, 'resolution');
122
- }
123
- if (props.minResolution) {
124
- assertPositive(props.minResolution, 'minResolution');
125
- }
126
- if (props.maxResolution) {
127
- assertPositive(props.maxResolution, 'maxResolution');
128
- }
129
- if (props.minResolution && props.maxResolution) {
130
- (0, core_1.assertMatchingUnits)(props.minResolution, props.maxResolution, 'mediaQueries.resolutionUnits');
131
- }
132
138
  };
133
- exports.validateResolutionValues = validateResolutionValues;
139
+ exports.createMediaQueryValidation = createMediaQueryValidation;
140
+ const defaultMediaQueryValidation = (0, exports.createMediaQueryValidation)({
141
+ assertCondition: core_1.assertCondition,
142
+ assertMatchingUnits: core_1.assertMatchingUnits,
143
+ });
144
+ exports.defaultMediaQueryValidation = defaultMediaQueryValidation;
145
+ exports.runMediaQueryValidation = defaultMediaQueryValidation.runMediaQueryValidation, exports.validateMinMaxWidth = defaultMediaQueryValidation.validateMinMaxWidth, exports.validateWidthValuesPositive = defaultMediaQueryValidation.validateWidthValuesPositive, exports.validateMinMaxHeight = defaultMediaQueryValidation.validateMinMaxHeight, exports.validateHeightValuesPositive = defaultMediaQueryValidation.validateHeightValuesPositive, exports.validateMinMaxAspectRatio = defaultMediaQueryValidation.validateMinMaxAspectRatio, exports.validateAspectRatioValuesPositive = defaultMediaQueryValidation.validateAspectRatioValuesPositive, exports.validateResolutionValues = defaultMediaQueryValidation.validateResolutionValues;
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ 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");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ 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");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _RatioImpl_numerator, _RatioImpl_denominator, _RatioImpl_omitDenominatorWhenOne;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ratioToFloat = exports.simplifyRatio = exports.reduceRatio = exports.normalizeRatio = exports.parseRatio = exports.isRatio = void 0;
16
+ exports.r = r;
17
+ class RatioImpl {
18
+ constructor(numerator, denominator, options = {}) {
19
+ var _a;
20
+ _RatioImpl_numerator.set(this, void 0);
21
+ _RatioImpl_denominator.set(this, void 0);
22
+ _RatioImpl_omitDenominatorWhenOne.set(this, void 0);
23
+ if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
24
+ throw new Error("Ratio values must be finite numbers.");
25
+ }
26
+ if (denominator === 0) {
27
+ throw new Error("Ratio denominator cannot be zero.");
28
+ }
29
+ __classPrivateFieldSet(this, _RatioImpl_numerator, numerator, "f");
30
+ __classPrivateFieldSet(this, _RatioImpl_denominator, denominator, "f");
31
+ __classPrivateFieldSet(this, _RatioImpl_omitDenominatorWhenOne, (_a = options.omitDenominatorWhenOne) !== null && _a !== void 0 ? _a : false, "f");
32
+ }
33
+ numerator() {
34
+ return __classPrivateFieldGet(this, _RatioImpl_numerator, "f");
35
+ }
36
+ denominator() {
37
+ return __classPrivateFieldGet(this, _RatioImpl_denominator, "f");
38
+ }
39
+ withNumerator(numerator) {
40
+ return new RatioImpl(numerator, __classPrivateFieldGet(this, _RatioImpl_denominator, "f"));
41
+ }
42
+ withDenominator(denominator) {
43
+ return new RatioImpl(__classPrivateFieldGet(this, _RatioImpl_numerator, "f"), denominator);
44
+ }
45
+ valueOf() {
46
+ return __classPrivateFieldGet(this, _RatioImpl_numerator, "f") / __classPrivateFieldGet(this, _RatioImpl_denominator, "f");
47
+ }
48
+ css() {
49
+ if (__classPrivateFieldGet(this, _RatioImpl_omitDenominatorWhenOne, "f") && __classPrivateFieldGet(this, _RatioImpl_denominator, "f") === 1) {
50
+ return String(__classPrivateFieldGet(this, _RatioImpl_numerator, "f"));
51
+ }
52
+ return `${__classPrivateFieldGet(this, _RatioImpl_numerator, "f")}/${__classPrivateFieldGet(this, _RatioImpl_denominator, "f")}`;
53
+ }
54
+ toString() {
55
+ return this.css();
56
+ }
57
+ }
58
+ _RatioImpl_numerator = new WeakMap(), _RatioImpl_denominator = new WeakMap(), _RatioImpl_omitDenominatorWhenOne = new WeakMap();
59
+ function r(numeratorOrDenominator, denominator) {
60
+ const numerator = denominator === undefined ? numeratorOrDenominator : numeratorOrDenominator;
61
+ const resolvedDenominator = denominator === undefined ? 1 : denominator;
62
+ return new RatioImpl(numerator, resolvedDenominator);
63
+ }
64
+ const isRatio = (value) => {
65
+ return (typeof value === "object" &&
66
+ value !== null &&
67
+ "css" in value &&
68
+ "numerator" in value &&
69
+ "denominator" in value &&
70
+ typeof value.css === "function" &&
71
+ typeof value.numerator === "function" &&
72
+ typeof value.denominator === "function");
73
+ };
74
+ exports.isRatio = isRatio;
75
+ const parseRatio = (value) => {
76
+ if (typeof value === "number") {
77
+ return Number.isFinite(value) ? { numerator: value, denominator: 1 } : null;
78
+ }
79
+ if ((0, exports.isRatio)(value)) {
80
+ return { numerator: value.numerator(), denominator: value.denominator() };
81
+ }
82
+ const trimmed = value.trim();
83
+ if (!trimmed)
84
+ return null;
85
+ if (trimmed.includes("/")) {
86
+ const [left, right] = trimmed.split("/");
87
+ if (left === undefined || right === undefined)
88
+ return null;
89
+ const numerator = Number(left.trim());
90
+ const denominator = Number(right.trim());
91
+ if (!Number.isFinite(numerator) || !Number.isFinite(denominator))
92
+ return null;
93
+ if (denominator === 0)
94
+ return null;
95
+ return { numerator, denominator };
96
+ }
97
+ const parsed = Number(trimmed);
98
+ return Number.isFinite(parsed) ? { numerator: parsed, denominator: 1 } : null;
99
+ };
100
+ exports.parseRatio = parseRatio;
101
+ const normalizeRatio = (ratio) => {
102
+ let numerator = ratio.numerator();
103
+ let denominator = ratio.denominator();
104
+ if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
105
+ throw new Error("Ratio values must be finite numbers.");
106
+ }
107
+ if (denominator === 0) {
108
+ throw new Error("Ratio denominator cannot be zero.");
109
+ }
110
+ if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {
111
+ return new RatioImpl(numerator, denominator);
112
+ }
113
+ if (denominator < 0) {
114
+ numerator = -numerator;
115
+ denominator = Math.abs(denominator);
116
+ }
117
+ const gcd = (a, b) => {
118
+ let x = Math.abs(a);
119
+ let y = Math.abs(b);
120
+ while (y !== 0) {
121
+ const next = x % y;
122
+ x = y;
123
+ y = next;
124
+ }
125
+ return x === 0 ? 1 : x;
126
+ };
127
+ const divisor = gcd(numerator, denominator);
128
+ return new RatioImpl(numerator / divisor, denominator / divisor);
129
+ };
130
+ exports.normalizeRatio = normalizeRatio;
131
+ const reduceRatio = (ratio) => (0, exports.normalizeRatio)(ratio);
132
+ exports.reduceRatio = reduceRatio;
133
+ const simplifyRatio = (ratio) => {
134
+ const reduced = (0, exports.normalizeRatio)(ratio);
135
+ return new RatioImpl(reduced.numerator(), reduced.denominator(), {
136
+ omitDenominatorWhenOne: true,
137
+ });
138
+ };
139
+ exports.simplifyRatio = simplifyRatio;
140
+ const ratioToFloat = (ratio) => ratio.numerator() / ratio.denominator();
141
+ exports.ratioToFloat = ratioToFloat;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toValidationResult = exports.normalizeValidationResult = void 0;
4
+ const normalizeValidationResult = (result) => {
5
+ if (result === undefined || result === null)
6
+ return { valid: true };
7
+ if (typeof result === "boolean")
8
+ return { valid: result };
9
+ if (typeof result === "string") {
10
+ return result ? { valid: false, message: result } : { valid: true };
11
+ }
12
+ return result;
13
+ };
14
+ exports.normalizeValidationResult = normalizeValidationResult;
15
+ const toValidationResult = (error, fallback) => {
16
+ if (error instanceof Error && error.message)
17
+ return error.message;
18
+ return fallback;
19
+ };
20
+ exports.toValidationResult = toValidationResult;
@@ -0,0 +1,23 @@
1
+ import type { ContainerQueryModuleKeysMap } from "../containerQueries/moduleRegistry";
2
+ import type { IMeasurement } from "../core";
3
+ export type IComparisonOperator = "<" | "<=" | ">" | ">=" | "=";
4
+ export type ContentQueryVariable = ContainerQueryModuleKeysMap[keyof ContainerQueryModuleKeysMap];
5
+ export type ContentQueryComparisonValue = IMeasurement | number | string;
6
+ export type Comparison<Variable = ContentQueryVariable, Value = ContentQueryComparisonValue> = {
7
+ variable: Variable;
8
+ operator: IComparisonOperator;
9
+ value: Value;
10
+ };
11
+ export type ComparisonValue<Value = ContentQueryComparisonValue> = {
12
+ operator: IComparisonOperator;
13
+ value: Value;
14
+ readonly __comparisonBrand: unique symbol;
15
+ };
16
+ export declare const compare: {
17
+ eq: <T extends ContentQueryComparisonValue>(value: T) => ComparisonValue<T>;
18
+ lt: <T extends ContentQueryComparisonValue>(value: T) => ComparisonValue<T>;
19
+ lte: <T extends ContentQueryComparisonValue>(value: T) => ComparisonValue<T>;
20
+ gt: <T extends ContentQueryComparisonValue>(value: T) => ComparisonValue<T>;
21
+ gte: <T extends ContentQueryComparisonValue>(value: T) => ComparisonValue<T>;
22
+ };
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/comparisons/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAC9B,2BAA2B,CAAC,MAAM,2BAA2B,CAAC,CAAC;AAEjE,MAAM,MAAM,2BAA2B,GACnC,YAAY,GACZ,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,CACpB,QAAQ,GAAG,oBAAoB,EAC/B,KAAK,GAAG,2BAA2B,IACjC;IACF,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,2BAA2B,IAAI;IACjE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,iBAAiB,EAAE,OAAO,MAAM,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,OAAO;SACb,CAAC,SAAS,2BAA2B,SACjC,CAAC,KACP,eAAe,CAAC,CAAC,CAAC;SAIhB,CAAC,SAAS,2BAA2B,SACjC,CAAC,KACP,eAAe,CAAC,CAAC,CAAC;UAIf,CAAC,SAAS,2BAA2B,SAClC,CAAC,KACP,eAAe,CAAC,CAAC,CAAC;SAIhB,CAAC,SAAS,2BAA2B,SACjC,CAAC,KACP,eAAe,CAAC,CAAC,CAAC;UAIf,CAAC,SAAS,2BAA2B,SAClC,CAAC,KACP,eAAe,CAAC,CAAC,CAAC;CAItB,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const compare = {
2
+ eq: (value) => ({
3
+ operator: "=",
4
+ value,
5
+ }),
6
+ lt: (value) => ({
7
+ operator: "<",
8
+ value,
9
+ }),
10
+ lte: (value) => ({
11
+ operator: "<=",
12
+ value,
13
+ }),
14
+ gt: (value) => ({
15
+ operator: ">",
16
+ value,
17
+ }),
18
+ gte: (value) => ({
19
+ operator: ">=",
20
+ value,
21
+ }),
22
+ };
@@ -0,0 +1,36 @@
1
+ import { IMeasurement } from "../core";
2
+ import type { Comparison, IComparisonOperator } from "../comparisons";
3
+ import type { IContainerQueryAspectRatio, IContainerQueryBlock, IContainerQueryCustomFeatures, IContainerQueryInline, IContainerQueryStyle } from "./modules";
4
+ import { ContainerQueryValidation } from "./validation";
5
+ import { ContainerQueryBuilderHelpers } from "./helpers";
6
+ import type { StyleRule } from "../mediaQueries/types";
7
+ import type { CSSContainerCondition } from "./types";
8
+ export interface IContainerQueryProps extends IContainerQueryCore, IContainerQueryInline, IContainerQueryBlock, IContainerQueryAspectRatio, IContainerQueryStyle, IContainerQueryCustomFeatures {
9
+ }
10
+ export interface IContainerQueryCore {
11
+ minWidth?: IMeasurement | IMeasurement[];
12
+ maxWidth?: IMeasurement | IMeasurement[];
13
+ minHeight?: IMeasurement | IMeasurement[];
14
+ maxHeight?: IMeasurement | IMeasurement[];
15
+ }
16
+ export type IContainerQueryCoreVariables = IContainerQueryCore["minWidth"] | IContainerQueryCore["maxWidth"] | IContainerQueryCore["minHeight"] | IContainerQueryCore["maxHeight"];
17
+ export type SizeComparisonValue = IMeasurement | string | number;
18
+ export type CoreComparisonVariable = "minWidth" | "maxWidth" | "minHeight" | "maxHeight";
19
+ export type CoreComparison = Comparison<CoreComparisonVariable, IMeasurement>;
20
+ export type CoreComparisonBlock<Variable = CoreComparisonVariable, Value = IMeasurement> = {
21
+ variable: Variable;
22
+ operator: IComparisonOperator;
23
+ value: Value;
24
+ };
25
+ export interface IContainerQuery {
26
+ props: IContainerQueryProps;
27
+ styles: StyleRule;
28
+ }
29
+ export type IContainerQueries = Record<string, IContainerQueryProps>;
30
+ export type IContainerQueryStyles<T extends IContainerQueries> = Partial<Record<keyof T, StyleRule>>;
31
+ export declare const createEmitCoreFeatures: (validation: ContainerQueryValidation) => (props: IContainerQueryCore, helpers: ContainerQueryBuilderHelpers) => void;
32
+ export declare const emitCoreFeatures: (props: IContainerQueryCore, helpers: ContainerQueryBuilderHelpers) => void;
33
+ export declare const buildContainerQueryString: (config: IContainerQueryProps) => string;
34
+ export declare const buildContainerConditionString: (condition: CSSContainerCondition) => string;
35
+ export declare const makeContainerQueryStyle: <T extends IContainerQueries>(queries: T) => (stylesByQuery: IContainerQueryStyles<T>) => StyleRule;
36
+ //# sourceMappingURL=containerQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerQueries.d.ts","sourceRoot":"","sources":["../../../src/containerQueries/containerQueries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,WAAW,CAAC;AAanB,OAAO,EAAE,wBAAwB,EAAmC,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAA+B,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,MAAM,WAAW,oBACf,SAAQ,mBAAmB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,6BAA6B;CAAG;AAEpC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,4BAA4B,GACpC,mBAAmB,CAAC,UAAU,CAAC,GAC/B,mBAAmB,CAAC,UAAU,CAAC,GAC/B,mBAAmB,CAAC,WAAW,CAAC,GAChC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAErC,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;AAE9E,MAAM,MAAM,mBAAmB,CAC7B,QAAQ,GAAG,sBAAsB,EACjC,KAAK,GAAG,YAAY,IAClB;IACF,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAErE,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,IAAI,OAAO,CACtE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAC3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAChC,YAAY,wBAAwB,MACpC,OAAO,mBAAmB,EAAE,SAAS,4BAA4B,KAAG,IA6GpE,CAAC;AAEJ,eAAO,MAAM,gBAAgB,UA/GnB,mBAAmB,WAAW,4BAA4B,KAAG,IAiHtE,CAAC;AAcF,eAAO,MAAM,yBAAyB,0CAEpC,CAAC;AAcH,eAAO,MAAM,6BAA6B,GACxC,WAAW,qBAAqB,KAC/B,MAeF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GACjC,CAAC,SAAS,iBAAiB,EAAE,SAAS,CAAC,MACvC,eAAe,qBAAqB,CAAC,CAAC,CAAC,KAAG,SAc1C,CAAC"}