@hanzogui/react-native-media-driver 8.3.1 → 8.3.3

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 (83) hide show
  1. package/dist/cjs/createMedia.js +16 -0
  2. package/dist/cjs/createMedia.js.map +1 -0
  3. package/dist/cjs/index.js +6 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/matchMedia.js +6 -0
  6. package/dist/cjs/matchMedia.js.map +1 -0
  7. package/dist/cjs/matchQuery.js +148 -0
  8. package/dist/cjs/matchQuery.js.map +1 -0
  9. package/dist/cjs/mediaQueryList.js +53 -0
  10. package/dist/cjs/mediaQueryList.js.map +1 -0
  11. package/dist/cjs/package.json +1 -0
  12. package/dist/esm/createMedia.js +13 -0
  13. package/dist/esm/createMedia.js.map +1 -0
  14. package/dist/esm/index.js +3 -3
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/matchMedia.js +3 -0
  17. package/dist/esm/matchMedia.js.map +1 -0
  18. package/dist/esm/matchQuery.js +144 -0
  19. package/dist/esm/matchQuery.js.map +1 -0
  20. package/dist/esm/mediaQueryList.js +49 -0
  21. package/dist/esm/mediaQueryList.js.map +1 -0
  22. package/dist/native/createMedia.js +13 -0
  23. package/dist/native/createMedia.js.map +1 -0
  24. package/dist/native/index.js +3 -0
  25. package/dist/native/index.js.map +1 -0
  26. package/dist/native/matchMedia.js +5 -0
  27. package/dist/native/matchMedia.js.map +1 -0
  28. package/dist/native/matchQuery.js +144 -0
  29. package/dist/native/matchQuery.js.map +1 -0
  30. package/dist/native/mediaQueryList.js +49 -0
  31. package/dist/native/mediaQueryList.js.map +1 -0
  32. package/package.json +17 -12
  33. package/src/createMedia.ts +1 -1
  34. package/src/index.ts +2 -2
  35. package/src/matchMedia.native.ts +1 -1
  36. package/src/mediaQueryList.ts +1 -1
  37. package/types/createMedia.d.ts +5 -6
  38. package/types/createMedia.d.ts.map +1 -11
  39. package/types/index.d.ts +2 -3
  40. package/types/index.d.ts.map +1 -11
  41. package/types/matchMedia.d.ts +1 -2
  42. package/types/matchMedia.d.ts.map +1 -11
  43. package/types/matchMedia.native.d.ts +1 -2
  44. package/types/matchMedia.native.d.ts.map +1 -11
  45. package/types/matchQuery.d.ts +7 -8
  46. package/types/matchQuery.d.ts.map +1 -11
  47. package/types/mediaQueryList.d.ts +14 -15
  48. package/types/mediaQueryList.d.ts.map +1 -11
  49. package/dist/cjs/createMedia.cjs +0 -33
  50. package/dist/cjs/createMedia.native.js +0 -36
  51. package/dist/cjs/createMedia.native.js.map +0 -1
  52. package/dist/cjs/index.cjs +0 -21
  53. package/dist/cjs/index.native.js +0 -24
  54. package/dist/cjs/index.native.js.map +0 -1
  55. package/dist/cjs/matchMedia.cjs +0 -28
  56. package/dist/cjs/matchMedia.native.js +0 -34
  57. package/dist/cjs/matchMedia.native.js.map +0 -1
  58. package/dist/cjs/matchQuery.cjs +0 -158
  59. package/dist/cjs/matchQuery.native.js +0 -163
  60. package/dist/cjs/matchQuery.native.js.map +0 -1
  61. package/dist/cjs/mediaQueryList.cjs +0 -78
  62. package/dist/cjs/mediaQueryList.native.js +0 -134
  63. package/dist/cjs/mediaQueryList.native.js.map +0 -1
  64. package/dist/esm/createMedia.mjs +0 -8
  65. package/dist/esm/createMedia.mjs.map +0 -1
  66. package/dist/esm/createMedia.native.js +0 -8
  67. package/dist/esm/createMedia.native.js.map +0 -1
  68. package/dist/esm/index.mjs +0 -3
  69. package/dist/esm/index.mjs.map +0 -1
  70. package/dist/esm/index.native.js +0 -3
  71. package/dist/esm/index.native.js.map +0 -1
  72. package/dist/esm/matchMedia.mjs +0 -3
  73. package/dist/esm/matchMedia.mjs.map +0 -1
  74. package/dist/esm/matchMedia.native.js +0 -6
  75. package/dist/esm/matchMedia.native.js.map +0 -1
  76. package/dist/esm/matchQuery.mjs +0 -132
  77. package/dist/esm/matchQuery.mjs.map +0 -1
  78. package/dist/esm/matchQuery.native.js +0 -134
  79. package/dist/esm/matchQuery.native.js.map +0 -1
  80. package/dist/esm/mediaQueryList.mjs +0 -53
  81. package/dist/esm/mediaQueryList.mjs.map +0 -1
  82. package/dist/esm/mediaQueryList.native.js +0 -106
  83. package/dist/esm/mediaQueryList.native.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMedia = createMedia;
4
+ const web_1 = require("@hanzogui/web");
5
+ const matchMedia_ts_1 = require("./matchMedia.js");
6
+ /**
7
+ * @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
8
+ * Gui now automatically handles setting this up, you can just pass a plain object to createGui.
9
+ */
10
+ function createMedia(media) {
11
+ // this should ideally return a diff object that is then passed to createGui
12
+ // but works for now we dont really support swapping out media drivers
13
+ (0, web_1.setupMatchMedia)(matchMedia_ts_1.matchMedia);
14
+ return media;
15
+ }
16
+ //# sourceMappingURL=createMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMedia.js","sourceRoot":"","sources":["../../src/createMedia.ts"],"names":[],"mappings":";;;AACA,uCAA+C;AAE/C,mDAA4C;AAE5C;;;GAGG;AACH,qBAIE,KAAQ;IACR,4EAA4E;IAC5E,sEAAsE;IACtE,IAAA,qBAAe,EAAC,0BAAU,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./createMedia.js"), exports);
5
+ tslib_1.__exportStar(require("./matchMedia.js"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,0DAA+B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // web-only use platform:
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.matchMedia = void 0;
5
+ exports.matchMedia = globalThis['matchMedia'];
6
+ //# sourceMappingURL=matchMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchMedia.js","sourceRoot":"","sources":["../../src/matchMedia.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;AAIZ,QAAA,UAAU,GAAe,UAAU,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2014, Yahoo! Inc. All rights reserved.
4
+ Copyrights licensed under the New BSD License.
5
+ See the accompanying LICENSE file for terms.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.matchQuery = matchQuery;
9
+ exports.parseQuery = parseQuery;
10
+ // -----------------------------------------------------------------------------
11
+ const RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i;
12
+ const RE_MQ_EXPRESSION = /\(\s*([^\s:)]+)\s*(?::\s*([^\s)]+))?\s*\)/;
13
+ const RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
14
+ const RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
15
+ const RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
16
+ function matchQuery(mediaQuery, values) {
17
+ return parseQuery(mediaQuery).some((query) => {
18
+ if (!query)
19
+ return;
20
+ const inverse = query.inverse;
21
+ // Either the parsed or specified `type` is "all", or the types must be
22
+ // equal for a match.
23
+ const typeMatch = query.type === 'all' || values.type === query.type;
24
+ // Quit early when `type` doesn't match, but take "not" into account.
25
+ if ((typeMatch && inverse) || !(typeMatch || inverse)) {
26
+ return false;
27
+ }
28
+ const expressionsMatch = query.expressions.every((expression) => {
29
+ const feature = expression.feature;
30
+ const modifier = expression.modifier;
31
+ let expValue = expression.value;
32
+ let value = values[feature];
33
+ // Missing or falsy values don't match.
34
+ if (!value) {
35
+ return false;
36
+ }
37
+ switch (feature) {
38
+ case 'orientation':
39
+ case 'scan':
40
+ return value.toLowerCase() === expValue.toLowerCase();
41
+ case 'width':
42
+ case 'height':
43
+ case 'device-width':
44
+ case 'device-height':
45
+ expValue = toPx(expValue);
46
+ value = toPx(value);
47
+ break;
48
+ case 'resolution':
49
+ expValue = toDpi(expValue);
50
+ value = toDpi(value);
51
+ break;
52
+ case 'aspect-ratio':
53
+ case 'device-aspect-ratio':
54
+ case /* Deprecated */ 'device-pixel-ratio':
55
+ expValue = toDecimal(expValue);
56
+ value = toDecimal(value);
57
+ break;
58
+ case 'grid':
59
+ case 'color':
60
+ case 'color-index':
61
+ case 'monochrome':
62
+ expValue = Number.parseInt(expValue, 10) || 1;
63
+ value = Number.parseInt(value, 10) || 0;
64
+ break;
65
+ }
66
+ switch (modifier) {
67
+ case 'min':
68
+ return value >= expValue;
69
+ case 'max':
70
+ return value <= expValue;
71
+ default:
72
+ return value === expValue;
73
+ }
74
+ });
75
+ return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);
76
+ });
77
+ }
78
+ function parseQuery(mediaQuery) {
79
+ return mediaQuery.split(',').map((query) => {
80
+ query = query.trim();
81
+ const captures = query.match(RE_MEDIA_QUERY);
82
+ if (!captures)
83
+ return null;
84
+ const modifier = captures[1];
85
+ const type = captures[2];
86
+ const expressionsCapture = captures[3] || '';
87
+ // Split expressions into a list.
88
+ const expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
89
+ return {
90
+ inverse: !!modifier && modifier.toLowerCase() === 'not',
91
+ type: type ? type.toLowerCase() : 'all',
92
+ expressions: expressions.map((expression) => {
93
+ const captures = expression.match(RE_MQ_EXPRESSION);
94
+ const feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);
95
+ return {
96
+ modifier: feature[1],
97
+ feature: feature[2],
98
+ value: captures[2],
99
+ };
100
+ }),
101
+ };
102
+ });
103
+ }
104
+ // -- Utilities ----------------------------------------------------------------
105
+ function toDecimal(ratio) {
106
+ let decimal = Number(ratio);
107
+ let numbers;
108
+ if (!decimal) {
109
+ numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
110
+ decimal = numbers[1] / numbers[2];
111
+ }
112
+ return decimal;
113
+ }
114
+ function toDpi(resolution) {
115
+ const value = Number.parseFloat(resolution);
116
+ const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];
117
+ switch (units) {
118
+ case 'dpcm':
119
+ return value / 2.54;
120
+ case 'dppx':
121
+ return value * 96;
122
+ default:
123
+ return value;
124
+ }
125
+ }
126
+ function toPx(length) {
127
+ const value = Number.parseFloat(length);
128
+ const units = String(length).match(RE_LENGTH_UNIT)?.[1];
129
+ switch (units) {
130
+ case 'em':
131
+ return value * 16;
132
+ case 'rem':
133
+ return value * 16;
134
+ case 'cm':
135
+ return (value * 96) / 2.54;
136
+ case 'mm':
137
+ return (value * 96) / 2.54 / 10;
138
+ case 'in':
139
+ return value * 96;
140
+ case 'pt':
141
+ return value * 72;
142
+ case 'pc':
143
+ return (value * 72) / 12;
144
+ default:
145
+ return value;
146
+ }
147
+ }
148
+ //# sourceMappingURL=matchQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchQuery.js","sourceRoot":"","sources":["../../src/matchQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeMediaQueryList = void 0;
4
+ const react_native_1 = require("react-native");
5
+ const matchQuery_ts_1 = require("./matchQuery.js");
6
+ class NativeMediaQueryList {
7
+ get orientation() {
8
+ const windowDimensions = react_native_1.Dimensions.get('window');
9
+ return windowDimensions.height > windowDimensions.width ? 'portrait' : 'landscape';
10
+ }
11
+ constructor(query) {
12
+ this.query = query;
13
+ this.listeners = [];
14
+ this.notify();
15
+ react_native_1.Dimensions.addEventListener('change', () => {
16
+ this.notify();
17
+ });
18
+ }
19
+ notify() {
20
+ this.listeners.forEach((listener) => {
21
+ listener(this.orientation);
22
+ });
23
+ }
24
+ addListener(listener) {
25
+ this.listeners.push(listener);
26
+ }
27
+ removeListener(listener) {
28
+ const index = this.listeners.indexOf(listener);
29
+ if (index !== -1)
30
+ this.listeners.splice(index, 1);
31
+ }
32
+ match(query, { width, height }) {
33
+ return (0, matchQuery_ts_1.matchQuery)(query, {
34
+ type: 'screen',
35
+ orientation: height > width ? 'portrait' : 'landscape',
36
+ 'device-width': width,
37
+ 'device-height': height,
38
+ });
39
+ }
40
+ get matches() {
41
+ const windowDimensions = react_native_1.Dimensions.get('window');
42
+ const matches = (0, matchQuery_ts_1.matchQuery)(this.query, {
43
+ type: 'screen',
44
+ orientation: this.orientation,
45
+ ...windowDimensions,
46
+ 'device-width': windowDimensions.width,
47
+ 'device-height': windowDimensions.height,
48
+ });
49
+ return matches;
50
+ }
51
+ }
52
+ exports.NativeMediaQueryList = NativeMediaQueryList;
53
+ //# sourceMappingURL=mediaQueryList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaQueryList.js","sourceRoot":"","sources":["../../src/mediaQueryList.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAEzC,mDAA4C;AAM5C;IAGE,IAAY,WAAW;QACrB,MAAM,gBAAgB,GAAG,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,OAAO,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;IACpF,CAAC;IAED,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAPzB,cAAS,GAAe,EAAE,CAAA;QAQhC,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,yBAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAqC;QACvE,OAAO,IAAA,0BAAU,EAAC,KAAK,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACtD,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,MAAM,gBAAgB,GAAG,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,IAAA,0BAAU,EAAC,IAAI,CAAC,KAAK,EAAE;YACrC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,gBAAgB;YACnB,cAAc,EAAE,gBAAgB,CAAC,KAAK;YACtC,eAAe,EAAE,gBAAgB,CAAC,MAAM;SACzC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,13 @@
1
+ import { setupMatchMedia } from '@hanzogui/web';
2
+ import { matchMedia } from './matchMedia.js';
3
+ /**
4
+ * @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
5
+ * Gui now automatically handles setting this up, you can just pass a plain object to createGui.
6
+ */
7
+ export function createMedia(media) {
8
+ // this should ideally return a diff object that is then passed to createGui
9
+ // but works for now we dont really support swapping out media drivers
10
+ setupMatchMedia(matchMedia);
11
+ return media;
12
+ }
13
+ //# sourceMappingURL=createMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMedia.js","sourceRoot":"","sources":["../../src/createMedia.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAIzB,KAAQ;IACR,4EAA4E;IAC5E,sEAAsE;IACtE,eAAe,CAAC,UAAU,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAA;AACd,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./createMedia.mjs";
2
- export * from "./matchMedia.mjs";
3
- //# sourceMappingURL=index.js.map
1
+ export * from './createMedia.js';
2
+ export * from './matchMedia.js';
3
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ // web-only use platform:
2
+ export const matchMedia = globalThis['matchMedia'];
3
+ //# sourceMappingURL=matchMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchMedia.js","sourceRoot":"","sources":["../../src/matchMedia.ts"],"names":[],"mappings":"AAAA,yBAAyB;AAIzB,MAAM,CAAC,MAAM,UAAU,GAAe,UAAU,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,144 @@
1
+ /*
2
+ Copyright (c) 2014, Yahoo! Inc. All rights reserved.
3
+ Copyrights licensed under the New BSD License.
4
+ See the accompanying LICENSE file for terms.
5
+ */
6
+ // -----------------------------------------------------------------------------
7
+ const RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i;
8
+ const RE_MQ_EXPRESSION = /\(\s*([^\s:)]+)\s*(?::\s*([^\s)]+))?\s*\)/;
9
+ const RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
10
+ const RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
11
+ const RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
12
+ export function matchQuery(mediaQuery, values) {
13
+ return parseQuery(mediaQuery).some((query) => {
14
+ if (!query)
15
+ return;
16
+ const inverse = query.inverse;
17
+ // Either the parsed or specified `type` is "all", or the types must be
18
+ // equal for a match.
19
+ const typeMatch = query.type === 'all' || values.type === query.type;
20
+ // Quit early when `type` doesn't match, but take "not" into account.
21
+ if ((typeMatch && inverse) || !(typeMatch || inverse)) {
22
+ return false;
23
+ }
24
+ const expressionsMatch = query.expressions.every((expression) => {
25
+ const feature = expression.feature;
26
+ const modifier = expression.modifier;
27
+ let expValue = expression.value;
28
+ let value = values[feature];
29
+ // Missing or falsy values don't match.
30
+ if (!value) {
31
+ return false;
32
+ }
33
+ switch (feature) {
34
+ case 'orientation':
35
+ case 'scan':
36
+ return value.toLowerCase() === expValue.toLowerCase();
37
+ case 'width':
38
+ case 'height':
39
+ case 'device-width':
40
+ case 'device-height':
41
+ expValue = toPx(expValue);
42
+ value = toPx(value);
43
+ break;
44
+ case 'resolution':
45
+ expValue = toDpi(expValue);
46
+ value = toDpi(value);
47
+ break;
48
+ case 'aspect-ratio':
49
+ case 'device-aspect-ratio':
50
+ case /* Deprecated */ 'device-pixel-ratio':
51
+ expValue = toDecimal(expValue);
52
+ value = toDecimal(value);
53
+ break;
54
+ case 'grid':
55
+ case 'color':
56
+ case 'color-index':
57
+ case 'monochrome':
58
+ expValue = Number.parseInt(expValue, 10) || 1;
59
+ value = Number.parseInt(value, 10) || 0;
60
+ break;
61
+ }
62
+ switch (modifier) {
63
+ case 'min':
64
+ return value >= expValue;
65
+ case 'max':
66
+ return value <= expValue;
67
+ default:
68
+ return value === expValue;
69
+ }
70
+ });
71
+ return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);
72
+ });
73
+ }
74
+ export function parseQuery(mediaQuery) {
75
+ return mediaQuery.split(',').map((query) => {
76
+ query = query.trim();
77
+ const captures = query.match(RE_MEDIA_QUERY);
78
+ if (!captures)
79
+ return null;
80
+ const modifier = captures[1];
81
+ const type = captures[2];
82
+ const expressionsCapture = captures[3] || '';
83
+ // Split expressions into a list.
84
+ const expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
85
+ return {
86
+ inverse: !!modifier && modifier.toLowerCase() === 'not',
87
+ type: type ? type.toLowerCase() : 'all',
88
+ expressions: expressions.map((expression) => {
89
+ const captures = expression.match(RE_MQ_EXPRESSION);
90
+ const feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);
91
+ return {
92
+ modifier: feature[1],
93
+ feature: feature[2],
94
+ value: captures[2],
95
+ };
96
+ }),
97
+ };
98
+ });
99
+ }
100
+ // -- Utilities ----------------------------------------------------------------
101
+ function toDecimal(ratio) {
102
+ let decimal = Number(ratio);
103
+ let numbers;
104
+ if (!decimal) {
105
+ numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
106
+ decimal = numbers[1] / numbers[2];
107
+ }
108
+ return decimal;
109
+ }
110
+ function toDpi(resolution) {
111
+ const value = Number.parseFloat(resolution);
112
+ const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];
113
+ switch (units) {
114
+ case 'dpcm':
115
+ return value / 2.54;
116
+ case 'dppx':
117
+ return value * 96;
118
+ default:
119
+ return value;
120
+ }
121
+ }
122
+ function toPx(length) {
123
+ const value = Number.parseFloat(length);
124
+ const units = String(length).match(RE_LENGTH_UNIT)?.[1];
125
+ switch (units) {
126
+ case 'em':
127
+ return value * 16;
128
+ case 'rem':
129
+ return value * 16;
130
+ case 'cm':
131
+ return (value * 96) / 2.54;
132
+ case 'mm':
133
+ return (value * 96) / 2.54 / 10;
134
+ case 'in':
135
+ return value * 96;
136
+ case 'pt':
137
+ return value * 72;
138
+ case 'pc':
139
+ return (value * 72) / 12;
140
+ default:
141
+ return value;
142
+ }
143
+ }
144
+ //# sourceMappingURL=matchQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchQuery.js","sourceRoot":"","sources":["../../src/matchQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Dimensions } from 'react-native';
2
+ import { matchQuery } from './matchQuery.js';
3
+ export class NativeMediaQueryList {
4
+ get orientation() {
5
+ const windowDimensions = Dimensions.get('window');
6
+ return windowDimensions.height > windowDimensions.width ? 'portrait' : 'landscape';
7
+ }
8
+ constructor(query) {
9
+ this.query = query;
10
+ this.listeners = [];
11
+ this.notify();
12
+ Dimensions.addEventListener('change', () => {
13
+ this.notify();
14
+ });
15
+ }
16
+ notify() {
17
+ this.listeners.forEach((listener) => {
18
+ listener(this.orientation);
19
+ });
20
+ }
21
+ addListener(listener) {
22
+ this.listeners.push(listener);
23
+ }
24
+ removeListener(listener) {
25
+ const index = this.listeners.indexOf(listener);
26
+ if (index !== -1)
27
+ this.listeners.splice(index, 1);
28
+ }
29
+ match(query, { width, height }) {
30
+ return matchQuery(query, {
31
+ type: 'screen',
32
+ orientation: height > width ? 'portrait' : 'landscape',
33
+ 'device-width': width,
34
+ 'device-height': height,
35
+ });
36
+ }
37
+ get matches() {
38
+ const windowDimensions = Dimensions.get('window');
39
+ const matches = matchQuery(this.query, {
40
+ type: 'screen',
41
+ orientation: this.orientation,
42
+ ...windowDimensions,
43
+ 'device-width': windowDimensions.width,
44
+ 'device-height': windowDimensions.height,
45
+ });
46
+ return matches;
47
+ }
48
+ }
49
+ //# sourceMappingURL=mediaQueryList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaQueryList.js","sourceRoot":"","sources":["../../src/mediaQueryList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,MAAM,OAAO,oBAAoB;IAG/B,IAAY,WAAW;QACrB,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,OAAO,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;IACpF,CAAC;IAED,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAPzB,cAAS,GAAe,EAAE,CAAA;QAQhC,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAqC;QACvE,OAAO,UAAU,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACtD,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,gBAAgB;YACnB,cAAc,EAAE,gBAAgB,CAAC,KAAK;YACtC,eAAe,EAAE,gBAAgB,CAAC,MAAM;SACzC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { setupMatchMedia } from '@hanzogui/web';
2
+ import { matchMedia } from './matchMedia.js';
3
+ /**
4
+ * @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
5
+ * Gui now automatically handles setting this up, you can just pass a plain object to createGui.
6
+ */
7
+ export function createMedia(media) {
8
+ // this should ideally return a diff object that is then passed to createGui
9
+ // but works for now we dont really support swapping out media drivers
10
+ setupMatchMedia(matchMedia);
11
+ return media;
12
+ }
13
+ //# sourceMappingURL=createMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMedia.js","sourceRoot":"","sources":["../../src/createMedia.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAIzB,KAAQ;IACR,4EAA4E;IAC5E,sEAAsE;IACtE,eAAe,CAAC,UAAU,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './createMedia.js';
2
+ export * from './matchMedia.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { NativeMediaQueryList } from './mediaQueryList.js';
2
+ export const matchMedia = (query) => {
3
+ return new NativeMediaQueryList(query);
4
+ };
5
+ //# sourceMappingURL=matchMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchMedia.native.js","sourceRoot":"","sources":["../../src/matchMedia.native.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,KAAK,EAAE,EAAE;IAC9C,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC,CAAA"}