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
@@ -0,0 +1,129 @@
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();
@@ -0,0 +1,12 @@
1
+ import type { ErrorCode } from './errors';
2
+ export type MeasurementCreationErrorPayload = {
3
+ message: string;
4
+ context?: string;
5
+ details: {
6
+ code: ErrorCode;
7
+ helper: string;
8
+ inputSummary: string;
9
+ };
10
+ };
11
+ export declare const buildMeasurementCreationError: (value: number, unit: string, helper: string, context?: string) => MeasurementCreationErrorPayload;
12
+ //# sourceMappingURL=buildMeasurementCreationError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMeasurementCreationError.d.ts","sourceRoot":"","sources":["../../../src/internal/buildMeasurementCreationError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,+BAWF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const buildMeasurementCreationError = (value, unit, helper, context) => {
2
+ const code = 'CALIPERS_E_NONFINITE';
3
+ return {
4
+ message: `Non-finite measurement value: ${value}`,
5
+ context,
6
+ details: {
7
+ code,
8
+ helper,
9
+ inputSummary: `value=${value}, unit=${unit}`,
10
+ },
11
+ };
12
+ };
@@ -0,0 +1,3 @@
1
+ export { buildMeasurementCreationError } from './buildMeasurementCreationError';
2
+ export type { MeasurementCreationErrorPayload } from './buildMeasurementCreationError';
3
+ //# sourceMappingURL=buildMeasurementCreationError.tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMeasurementCreationError.tests.d.ts","sourceRoot":"","sources":["../../../src/internal/buildMeasurementCreationError.tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,YAAY,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1 @@
1
+ export { buildMeasurementCreationError } from './buildMeasurementCreationError';
@@ -0,0 +1,34 @@
1
+ import type { CoreApi } from "./createCoreApi";
2
+ import type { ContainerQueryBuilderHelpers } from "../containerQueries/helpers";
3
+ import type { StyleRule } from "../mediaQueries/types";
4
+ import { type IContainerQueries, type IContainerQueryProps, type IContainerQueryStyles } from "../containerQueries/containerQueries";
5
+ import { type IContainerQueryAspectRatio, type IContainerQueryBlock, type IContainerQueryCustomFeatures, type IContainerQueryInline, type IContainerQueryStyle } from "../containerQueries/modules";
6
+ import { type ContainerQueryFactoryConfig } from "../containerQueries/factory";
7
+ import type { ContainerQueryModulesList } from "../containerQueries/moduleRegistry";
8
+ type ContainerQueriesCore = Pick<CoreApi, "assertCondition" | "assertMatchingUnits">;
9
+ export declare const createContainerQueriesApi: (core: ContainerQueriesCore) => {
10
+ readonly buildContainerQueryString: (config: IContainerQueryProps) => string;
11
+ readonly makeContainerQueryStyle: <T extends IContainerQueries>(queries: T) => (stylesByQuery: IContainerQueryStyles<T>) => StyleRule;
12
+ readonly containerQueryFactory: <TModules extends ContainerQueryModulesList | undefined, TQueries extends import("../containerQueries").CSSContainerQueries, TOutput = import("../mediaQueries/types").ComplexStyleRule>(options: {
13
+ queries: TQueries;
14
+ config: ContainerQueryFactoryConfig<TModules, TOutput>;
15
+ }) => (stylesByQuery: Partial<Record<keyof TQueries, StyleRule>>) => TOutput;
16
+ readonly emitCoreFeatures: (props: import("../containerQueries/containerQueries").IContainerQueryCore, helpers: ContainerQueryBuilderHelpers) => void;
17
+ readonly emitAspectRatioFeatures: (props: IContainerQueryAspectRatio, helpers: ContainerQueryBuilderHelpers, validate?: import("../containerQueries/modules").ContainerQueryAspectRatioValidator) => void;
18
+ readonly emitBlockSizeFeatures: (props: IContainerQueryBlock, helpers: ContainerQueryBuilderHelpers, validate?: import("../containerQueries/modules").ContainerQueryBlockValidator) => void;
19
+ readonly emitInlineSizeFeatures: (props: IContainerQueryInline, helpers: ContainerQueryBuilderHelpers, validate?: import("../containerQueries/modules").ContainerQueryInlineValidator) => void;
20
+ readonly emitStyleFeatures: (props: IContainerQueryStyle, helpers: ContainerQueryBuilderHelpers, validate?: import("../containerQueries/modules").ContainerQueryStyleValidator) => void;
21
+ readonly emitCustomFeatures: (props: IContainerQueryCustomFeatures, helpers: ContainerQueryBuilderHelpers, options?: {
22
+ allowQueryArrays?: boolean;
23
+ }, validate?: import("../containerQueries/modules").ContainerQueryCustomFeaturesValidator) => void;
24
+ readonly containerQueryOutputVanillaExtract: (container: import("../mediaQueries/types").ComplexStyleRule) => Record<string, unknown>;
25
+ readonly createContainerQueryBuilder: <TConfig>(options: {
26
+ emitBase: import("../containerQueries/helpers").ContainerQueryExtensionHandler<TConfig>;
27
+ emitExtensions?: import("../containerQueries/helpers").ContainerQueryExtensionHandler<TConfig> | undefined;
28
+ resolveType?: ((config: TConfig) => "all" | "print" | "screen" | undefined) | undefined;
29
+ config?: import("../containerQueries/helpers").ContainerQueryBuilderConfig;
30
+ }) => (config: TConfig) => string;
31
+ };
32
+ export type ContainerQueriesApi = ReturnType<typeof createContainerQueriesApi>;
33
+ export type { IContainerQueries, IContainerQueryProps, IContainerQueryStyles, IContainerQueryCustomFeatures, IContainerQueryAspectRatio, IContainerQueryBlock, IContainerQueryInline, IContainerQueryStyle, ContainerQueryFactoryConfig, ContainerQueryModulesList, };
34
+ //# sourceMappingURL=createComponentQueriesApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createComponentQueriesApi.d.ts","sourceRoot":"","sources":["../../../src/internal/createComponentQueriesApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAML,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEpF,KAAK,oBAAoB,GAAG,IAAI,CAC9B,OAAO,EACP,iBAAiB,GAAG,qBAAqB,CAC1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,MAAM,oBAAoB;;uCAyB/D,CAAC,SAAS,iBAAiB,WAAW,CAAC,MACvC,eAAe,qBAAqB,CAAC,CAAC,CAAC,KAAG,SAAS;;;;WA8CyiC,yDAA+C;;;;;;;wBAhFjnC,CAAC;;;;;;;;WAgFm5B,eAAe;CAfj8B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC/E,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,GAC1B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { createContainerQueryBuilder } from "../containerQueries/helpers";
2
+ import { createContainerQueryValidation } from "../containerQueries/validation";
3
+ import { createEmitCoreFeatures, } from "../containerQueries/containerQueries";
4
+ import { emitAspectRatioFeatures, emitBlockSizeFeatures, emitCustomFeatures, emitInlineSizeFeatures, emitStyleFeatures, } from "../containerQueries/modules";
5
+ import { createContainerQueryFactory, } from "../containerQueries/factory";
6
+ import { containerQueryOutputVanillaExtract } from "../libraryHelpers/vanilla-extract";
7
+ export const createContainerQueriesApi = (core) => {
8
+ const validation = createContainerQueryValidation({
9
+ assertCondition: core.assertCondition,
10
+ assertMatchingUnits: core.assertMatchingUnits,
11
+ });
12
+ const emitCoreFeatures = createEmitCoreFeatures(validation);
13
+ const emitBaseFeatures = (props, helpers) => {
14
+ emitCoreFeatures(props, helpers);
15
+ emitAspectRatioFeatures(props, helpers);
16
+ emitBlockSizeFeatures(props, helpers);
17
+ emitInlineSizeFeatures(props, helpers);
18
+ emitStyleFeatures(props, helpers);
19
+ emitCustomFeatures(props, helpers);
20
+ };
21
+ const buildContainerQueryString = createContainerQueryBuilder({
22
+ emitBase: emitBaseFeatures,
23
+ });
24
+ const makeContainerQueryStyle = (queries) => (stylesByQuery) => {
25
+ const result = {};
26
+ Object.keys(stylesByQuery).forEach((key) => {
27
+ const styles = stylesByQuery[key];
28
+ const props = queries[key];
29
+ if (!styles || !props)
30
+ return;
31
+ result[buildContainerQueryString(props)] = styles;
32
+ });
33
+ const containerQuery = {
34
+ "@container": result,
35
+ };
36
+ return containerQuery;
37
+ };
38
+ const containerQueryFactory = createContainerQueryFactory();
39
+ return {
40
+ buildContainerQueryString,
41
+ makeContainerQueryStyle,
42
+ containerQueryFactory,
43
+ emitCoreFeatures,
44
+ emitAspectRatioFeatures,
45
+ emitBlockSizeFeatures,
46
+ emitInlineSizeFeatures,
47
+ emitStyleFeatures,
48
+ emitCustomFeatures,
49
+ containerQueryOutputVanillaExtract,
50
+ createContainerQueryBuilder,
51
+ };
52
+ };
@@ -0,0 +1,289 @@
1
+ import { type UnitDefinitionRecord, type UnitHelperName } from '../unitDefinitions';
2
+ import { type ErrorConfigStore } from './errors';
3
+ import type { BrandedMeasurement, IMeasurement, UnitAssertion, UnitGuard, UnitHelper } from '../core';
4
+ type MeasurementCreateOptions<Unit extends string> = {
5
+ unit?: Unit;
6
+ context?: string;
7
+ };
8
+ export declare const createCoreApi: (errorStore: ErrorConfigStore) => {
9
+ readonly m: {
10
+ (value: number): BrandedMeasurement<"px">;
11
+ (value: number, options: {
12
+ context?: string;
13
+ }): BrandedMeasurement<"px">;
14
+ <Unit extends string>(value: number, unit: Unit, context?: string): IMeasurement<Lowercase<Unit>> & {
15
+ readonly __unitBrand: Lowercase<Unit>;
16
+ };
17
+ <Unit extends string>(value: number, options: MeasurementCreateOptions<Unit>): IMeasurement<Lowercase<Unit>> & {
18
+ readonly __unitBrand: Lowercase<Unit>;
19
+ };
20
+ };
21
+ readonly isMeasurement: (x: unknown) => x is IMeasurement<string>;
22
+ readonly assertMatchingUnits: <Unit extends string>(left: IMeasurement<Unit>, right: IMeasurement<Unit>, context: string) => void;
23
+ readonly measurementMin: <Unit extends string>(a: IMeasurement<Unit>, b: IMeasurement<Unit>) => IMeasurement<Unit>;
24
+ readonly measurementMax: <Unit extends string>(a: IMeasurement<Unit>, b: IMeasurement<Unit>) => IMeasurement<Unit>;
25
+ readonly measurementUnitMetadata: {
26
+ readonly mPercent: {
27
+ readonly unit: "%";
28
+ readonly category: "percent";
29
+ };
30
+ readonly mPx: {
31
+ readonly unit: "px";
32
+ readonly category: "length-absolute";
33
+ };
34
+ readonly mCm: {
35
+ readonly unit: "cm";
36
+ readonly category: "length-absolute";
37
+ };
38
+ readonly mMm: {
39
+ readonly unit: "mm";
40
+ readonly category: "length-absolute";
41
+ };
42
+ readonly mQ: {
43
+ readonly unit: "q";
44
+ readonly category: "length-absolute";
45
+ };
46
+ readonly mIn: {
47
+ readonly unit: "in";
48
+ readonly category: "length-absolute";
49
+ };
50
+ readonly mPc: {
51
+ readonly unit: "pc";
52
+ readonly category: "length-absolute";
53
+ };
54
+ readonly mPt: {
55
+ readonly unit: "pt";
56
+ readonly category: "length-absolute";
57
+ };
58
+ readonly mEm: {
59
+ readonly unit: "em";
60
+ readonly category: "length-font-relative";
61
+ };
62
+ readonly mRem: {
63
+ readonly unit: "rem";
64
+ readonly category: "length-font-relative";
65
+ };
66
+ readonly mEx: {
67
+ readonly unit: "ex";
68
+ readonly category: "length-font-relative";
69
+ };
70
+ readonly mRex: {
71
+ readonly unit: "rex";
72
+ readonly category: "length-font-relative";
73
+ };
74
+ readonly mCh: {
75
+ readonly unit: "ch";
76
+ readonly category: "length-font-relative";
77
+ };
78
+ readonly mRch: {
79
+ readonly unit: "rch";
80
+ readonly category: "length-font-relative";
81
+ };
82
+ readonly mCap: {
83
+ readonly unit: "cap";
84
+ readonly category: "length-font-relative";
85
+ };
86
+ readonly mRcap: {
87
+ readonly unit: "rcap";
88
+ readonly category: "length-font-relative";
89
+ };
90
+ readonly mIc: {
91
+ readonly unit: "ic";
92
+ readonly category: "length-font-relative";
93
+ };
94
+ readonly mRic: {
95
+ readonly unit: "ric";
96
+ readonly category: "length-font-relative";
97
+ };
98
+ readonly mLh: {
99
+ readonly unit: "lh";
100
+ readonly category: "length-font-relative";
101
+ };
102
+ readonly mRlh: {
103
+ readonly unit: "rlh";
104
+ readonly category: "length-font-relative";
105
+ };
106
+ readonly mVw: {
107
+ readonly unit: "vw";
108
+ readonly category: "length-viewport";
109
+ };
110
+ readonly mVh: {
111
+ readonly unit: "vh";
112
+ readonly category: "length-viewport";
113
+ };
114
+ readonly mVi: {
115
+ readonly unit: "vi";
116
+ readonly category: "length-viewport";
117
+ };
118
+ readonly mVb: {
119
+ readonly unit: "vb";
120
+ readonly category: "length-viewport";
121
+ };
122
+ readonly mVmin: {
123
+ readonly unit: "vmin";
124
+ readonly category: "length-viewport";
125
+ };
126
+ readonly mVmax: {
127
+ readonly unit: "vmax";
128
+ readonly category: "length-viewport";
129
+ };
130
+ readonly mSvw: {
131
+ readonly unit: "svw";
132
+ readonly category: "length-viewport-small";
133
+ };
134
+ readonly mSvh: {
135
+ readonly unit: "svh";
136
+ readonly category: "length-viewport-small";
137
+ };
138
+ readonly mSvi: {
139
+ readonly unit: "svi";
140
+ readonly category: "length-viewport-small";
141
+ };
142
+ readonly mSvb: {
143
+ readonly unit: "svb";
144
+ readonly category: "length-viewport-small";
145
+ };
146
+ readonly mSvmin: {
147
+ readonly unit: "svmin";
148
+ readonly category: "length-viewport-small";
149
+ };
150
+ readonly mSvmax: {
151
+ readonly unit: "svmax";
152
+ readonly category: "length-viewport-small";
153
+ };
154
+ readonly mLvw: {
155
+ readonly unit: "lvw";
156
+ readonly category: "length-viewport-large";
157
+ };
158
+ readonly mLvh: {
159
+ readonly unit: "lvh";
160
+ readonly category: "length-viewport-large";
161
+ };
162
+ readonly mLvi: {
163
+ readonly unit: "lvi";
164
+ readonly category: "length-viewport-large";
165
+ };
166
+ readonly mLvb: {
167
+ readonly unit: "lvb";
168
+ readonly category: "length-viewport-large";
169
+ };
170
+ readonly mLvmin: {
171
+ readonly unit: "lvmin";
172
+ readonly category: "length-viewport-large";
173
+ };
174
+ readonly mLvmax: {
175
+ readonly unit: "lvmax";
176
+ readonly category: "length-viewport-large";
177
+ };
178
+ readonly mDvw: {
179
+ readonly unit: "dvw";
180
+ readonly category: "length-viewport-dynamic";
181
+ };
182
+ readonly mDvh: {
183
+ readonly unit: "dvh";
184
+ readonly category: "length-viewport-dynamic";
185
+ };
186
+ readonly mDvi: {
187
+ readonly unit: "dvi";
188
+ readonly category: "length-viewport-dynamic";
189
+ };
190
+ readonly mDvb: {
191
+ readonly unit: "dvb";
192
+ readonly category: "length-viewport-dynamic";
193
+ };
194
+ readonly mDvmin: {
195
+ readonly unit: "dvmin";
196
+ readonly category: "length-viewport-dynamic";
197
+ };
198
+ readonly mDvmax: {
199
+ readonly unit: "dvmax";
200
+ readonly category: "length-viewport-dynamic";
201
+ };
202
+ readonly mCqw: {
203
+ readonly unit: "cqw";
204
+ readonly category: "length-container";
205
+ };
206
+ readonly mCqh: {
207
+ readonly unit: "cqh";
208
+ readonly category: "length-container";
209
+ };
210
+ readonly mCqi: {
211
+ readonly unit: "cqi";
212
+ readonly category: "length-container";
213
+ };
214
+ readonly mCqb: {
215
+ readonly unit: "cqb";
216
+ readonly category: "length-container";
217
+ };
218
+ readonly mCqmin: {
219
+ readonly unit: "cqmin";
220
+ readonly category: "length-container";
221
+ };
222
+ readonly mCqmax: {
223
+ readonly unit: "cqmax";
224
+ readonly category: "length-container";
225
+ };
226
+ readonly mDeg: {
227
+ readonly unit: "deg";
228
+ readonly category: "angle";
229
+ };
230
+ readonly mRad: {
231
+ readonly unit: "rad";
232
+ readonly category: "angle";
233
+ };
234
+ readonly mGrad: {
235
+ readonly unit: "grad";
236
+ readonly category: "angle";
237
+ };
238
+ readonly mTurn: {
239
+ readonly unit: "turn";
240
+ readonly category: "angle";
241
+ };
242
+ readonly mS: {
243
+ readonly unit: "s";
244
+ readonly category: "time";
245
+ };
246
+ readonly mMs: {
247
+ readonly unit: "ms";
248
+ readonly category: "time";
249
+ };
250
+ readonly mHz: {
251
+ readonly unit: "hz";
252
+ readonly category: "frequency";
253
+ };
254
+ readonly mKhz: {
255
+ readonly unit: "khz";
256
+ readonly category: "frequency";
257
+ };
258
+ readonly mDpi: {
259
+ readonly unit: "dpi";
260
+ readonly category: "resolution";
261
+ };
262
+ readonly mDpcm: {
263
+ readonly unit: "dpcm";
264
+ readonly category: "resolution";
265
+ };
266
+ readonly mDppx: {
267
+ readonly unit: "dppx";
268
+ readonly category: "resolution";
269
+ };
270
+ readonly mFr: {
271
+ readonly unit: "fr";
272
+ readonly category: "flex";
273
+ };
274
+ };
275
+ readonly makeUnitHelper: <Unit extends string>(unit: Unit) => UnitHelper<Unit>;
276
+ readonly makeUnitHelperFromDefinition: <Name extends UnitHelperName>(name: Name) => UnitHelper<UnitDefinitionRecord[Name]["unit"]>;
277
+ readonly makeUnitGuard: <T extends UnitHelper>(helper: T) => UnitGuard<T>;
278
+ readonly makeUnitAssert: <T extends UnitHelper>(helper: T) => UnitAssertion<T>;
279
+ readonly hasCssMethod: (x: unknown) => x is {
280
+ css: () => string;
281
+ };
282
+ readonly assertUnit: <Unit extends string>(measurement: IMeasurement<Unit>, expectedUnit: string, context?: string) => void;
283
+ readonly assertCondition: (condition: boolean | (() => boolean), message: string) => void;
284
+ readonly getErrorConfig: () => Required<import("./errors").ErrorConfig>;
285
+ readonly setErrorConfig: (next: import("./errors").ErrorConfig) => void;
286
+ };
287
+ export type CoreApi = ReturnType<typeof createCoreApi>;
288
+ export {};
289
+ //# sourceMappingURL=createCoreApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCoreApi.d.ts","sourceRoot":"","sources":["../../../src/internal/createCoreApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACX,MAAM,SAAS,CAAC;AAGjB,KAAK,wBAAwB,CAAC,IAAI,SAAS,MAAM,IAAI;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY,gBAAgB;;gBAqRtC,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC;gBAE1C,MAAM,WACJ;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAC5B,kBAAkB,CAAC,IAAI,CAAC;SAChB,IAAI,SAAS,MAAM,SACrB,MAAM,QACP,IAAI,YACA,MAAM,GACf,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG;YACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;SACvC;SACU,IAAI,SAAS,MAAM,SACrB,MAAM,WACJ,wBAAwB,CAAC,IAAI,CAAC,GACtC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG;YACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;SACvC;;gCApBI,OAAO,KACT,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC;mCA/QC,IAAI,SAAS,MAAM,QACxC,YAAY,CAAC,IAAI,CAAC,SACjB,YAAY,CAAC,IAAI,CAAC,WAChB,MAAM,KACd,IAAI;8BA6ZiB,IAAI,SAAS,MAAM,KACtC,YAAY,CAAC,IAAI,CAAC,KAClB,YAAY,CAAC,IAAI,CAAC,KACpB,YAAY,CAAC,IAAI,CAAC;8BAKG,IAAI,SAAS,MAAM,KACtC,YAAY,CAAC,IAAI,CAAC,KAClB,YAAY,CAAC,IAAI,CAAC,KACpB,YAAY,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAlEG,IAAI,SAAS,MAAM,QACnC,IAAI,KACT,UAAU,CAAC,IAAI,CAAC;4CAImB,IAAI,SAAS,cAAc,QACzD,IAAI,KACT,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;6BAS1B,CAAC,SAAS,UAAU,UACjC,CAAC,KACR,SAAS,CAAC,CAAC,CAAC;8BAKS,CAAC,SAAS,UAAU,UAClC,CAAC,KACR,aAAa,CAAC,CAAC,CAAC;+BAmBd,OAAO,KACT,CAAC,IAAI;QAAE,GAAG,EAAE,MAAM,MAAM,CAAA;KAAE;0BAyBT,IAAI,SAAS,MAAM,eACxB,YAAY,CAAC,IAAI,CAAC,gBACjB,MAAM,YACV,MAAM;0CAIL,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,WAC3B,MAAM,KACd,IAAI;;;CA8BR,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC"}