ngx-mq 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -135,6 +135,7 @@ Utils exposing common CSS media features.
135
135
  | `hover` | `options?: CreateMediaQueryOptions` | `Signal<boolean>` | `true` when the user's primary input device supports hover capability. |
136
136
  | `anyHover` | `options?: CreateMediaQueryOptions` | `Signal<boolean>` | `true` when any available input device supports hover capability. |
137
137
  | `pointer` | `value: 'fine' \| 'coarse' \| 'none', options?: CreateMediaQueryOptions` | `Signal<boolean>` | `true` when the user's primary input device matches the specified pointer type. |
138
+ | `anyPointer` | `value: 'fine' \| 'coarse' \| 'none', options?: CreateMediaQueryOptions` | `Signal<boolean>` | `true` when any available input device matches the specified pointer type. |
138
139
 
139
140
  ---
140
141
 
@@ -165,7 +166,7 @@ These functions return standard Angular `Provider` instances that can be injecte
165
166
  | `provideBreakpoints()` | `bps: MqBreakpoints` | Registers a custom set of breakpoints. |
166
167
  | `provideTailwindBreakpoints()` | none | Registers the default Tailwind CSS breakpoints. |
167
168
  | `provideBootstrapBreakpoints()` | none | Registers the default Bootstrap breakpoints. |
168
- | `provideMaterialBreakpoints()` | none | Registers the default Material 2 breakpoints. |
169
+ | `provideMaterialBreakpoints()` | none | Registers the default Material 2 breakpoints. |
169
170
  | `provideBreakpointEpsilon()` | `epsilon: number` | Sets the epsilon threshold used when comparing breakpoint values. |
170
171
  | `provideSsrValue()` | `value: boolean` | Defines the static signal value used during SSR, since media queries are not available on the server. Defaults to `false`. |
171
172
 
@@ -192,6 +193,26 @@ export type DisplayModeOption =
192
193
  | 'picture-in-picture';
193
194
  ```
194
195
 
196
+ ## Sponsors
197
+
198
+ <table>
199
+ <tr>
200
+ <td width="240" align="center">
201
+ <p>
202
+ <img
203
+ src="https://raw.githubusercontent.com/getsentry/sentry/7b65f0f23d7eb5ccc035b12776bf5d8f3d9f8965/static/images/logo-sentry.svg"
204
+ width="120"
205
+ alt="Sentry Logo" />
206
+ </p>
207
+ <p>
208
+ <a href="https://sentry.io" target="_blank"><strong>Sentry</strong></a>
209
+ <br />
210
+ Error tracking and performance monitoring.
211
+ </p>
212
+ </td>
213
+ </tr>
214
+ </table>
215
+
195
216
  ## Contributing
196
217
 
197
218
  [CONTRIBUTING.md](https://github.com/martsinlabs/ngx-mq/blob/main/CONTRIBUTING.md)
@@ -74,6 +74,13 @@ export function pointer(value, options) {
74
74
  consumer.toString = () => createConsumerLabel(`pointer(${value})`);
75
75
  return consumer;
76
76
  }
77
+ export function anyPointer(value, options) {
78
+ isDevMode() && assertInInjectionContext(anyPointer);
79
+ const query = normalizeQuery(`(any-pointer: ${value})`);
80
+ const consumer = createConsumer(query, options);
81
+ consumer.toString = () => createConsumerLabel(`anyPointer(${value})`);
82
+ return consumer;
83
+ }
77
84
  export function matchMediaSignal(query, options) {
78
85
  isDevMode() && assertInInjectionContext(matchMediaSignal);
79
86
  const media = normalizeQuery(query);
@@ -81,4 +88,4 @@ export function matchMediaSignal(query, options) {
81
88
  consumer.toString = () => createConsumerLabel(`matchMediaSignal(${query})`);
82
89
  return consumer;
83
90
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxFQUFVLEVBQUUsT0FBaUM7SUFDOUQsU0FBUyxFQUFFLElBQUksd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFNUMsTUFBTSxLQUFLLEdBQVcsY0FBYyxDQUFDLGVBQWUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sUUFBUSxHQUFvQixjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUFDLEVBQVUsRUFBRSxPQUFpQztJQUNoRSxTQUFTLEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5QyxNQUFNLEtBQUssR0FBVyxjQUFjLENBQUMsZUFBZSxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakcsTUFBTSxRQUFRLEdBQW9CLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxH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UyxFQUFFLElBQUksd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUUxRCxNQUFNLEtBQUssR0FBVyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQW9CLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUU1RSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpc0Rldk1vZGUsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlNYXhFcHNpbG9uLCByZXNvbHZlQnJlYWtwb2ludCB9IGZyb20gJy4vdXRpbHMvYnJlYWtwb2ludHMudXRpbHMnO1xuaW1wb3J0IHsgRGlzcGxheU1vZGVPcHRpb24sIENyZWF0ZU1lZGlhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29uc3VtZXIsIGNyZWF0ZUNvbnN1bWVyTGFiZWwgfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHsgbm9ybWFsaXplUXVlcnkgfSBmcm9tICcuL3V0aWxzL2NvbW1vbi51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cChicDogc3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQodXApO1xuXG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeShgKG1pbi13aWR0aDogJHtyZXNvbHZlQnJlYWtwb2ludChicCl9cHgpYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGB1cCgke2JwfSlgKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb3duKGJwOiBzdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChkb3duKTtcblxuICBjb25zdCBxdWVyeTogc3RyaW5nID0gbm9ybWFsaXplUXVlcnkoYChtYXgtd2lkdGg6ICR7YXBwbHlNYXhFcHNpbG9uKHJlc29sdmVCcmVha3BvaW50KGJwKSl9cHgpYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGBkb3duKCR7YnB9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJldHdlZW4obWluQnA6IHN0cmluZywgbWF4QnA6IHN0cmluZywgb3B0aW9ucz86IENyZWF0ZU1lZGlhUXVlcnlPcHRpb25zKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgaXNEZXZNb2RlKCkgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGJldHdlZW4pO1xuXG4gIGNvbnN0IG1pblB4OiBudW1iZXIgPSByZXNvbHZlQnJlYWtwb2ludChtaW5CcCk7XG4gIGNvbnN0IG1heFB4OiBudW1iZXIgPSByZXNvbHZlQnJlYWtwb2ludChtYXhCcCk7XG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeShgKG1pbi13aWR0aDogJHttaW5QeH1weCkgYW5kIChtYXgtd2lkdGg6ICR7YXBwbHlNYXhFcHNpbG9uKG1heFB4KX1weClgKTtcbiAgY29uc3QgY29uc3VtZXI6IFNpZ25hbDxib29sZWFuPiA9IGNyZWF0ZUNvbnN1bWVyKHF1ZXJ5LCBvcHRpb25zKTtcblxuICBjb25zdW1lci50b1N0cmluZyA9ICgpID0+IGNyZWF0ZUNvbnN1bWVyTGFiZWwoYGJldHdlZW4oJHttaW5CcH0sICR7bWF4QnB9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9yaWVudGF0aW9uKHZhbHVlOiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZScsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChvcmllbnRhdGlvbik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAob3JpZW50YXRpb246ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgb3JpZW50YXRpb24oJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sb3JTY2hlbWUodmFsdWU6ICdsaWdodCcgfCAnZGFyaycsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChjb2xvclNjaGVtZSk7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAocHJlZmVycy1jb2xvci1zY2hlbWU6ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgY29sb3JTY2hlbWUoJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheU1vZGUodmFsdWU6IERpc3BsYXlNb2RlT3B0aW9uLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoZGlzcGxheU1vZGUpO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gbm9ybWFsaXplUXVlcnkoYChkaXNwbGF5LW1vZGU6ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgZGlzcGxheU1vZGUoJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlZE1vdGlvbihvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQocmVkdWNlZE1vdGlvbik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbCgncmVkdWNlZE1vdGlvbicpO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyKG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChob3Zlcik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KCcoaG92ZXI6IGhvdmVyKScpO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbCgnaG92ZXInKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbnlIb3ZlcihvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoYW55SG92ZXIpO1xuXG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeSgnKGFueS1ob3ZlcjogaG92ZXIpJyk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKCdhbnlIb3ZlcicpO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50ZXIodmFsdWU6ICdmaW5lJyB8ICdjb2Fyc2UnIHwgJ25vbmUnLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQocG9pbnRlcik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAocG9pbnRlcjogJHt2YWx1ZX0pYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGBwb2ludGVyKCR7dmFsdWV9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTWVkaWFTaWduYWwocXVlcnk6IHN0cmluZywgb3B0aW9ucz86IENyZWF0ZU1lZGlhUXVlcnlPcHRpb25zKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgaXNEZXZNb2RlKCkgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KG1hdGNoTWVkaWFTaWduYWwpO1xuXG4gIGNvbnN0IG1lZGlhOiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeShxdWVyeSk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihtZWRpYSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGBtYXRjaE1lZGlhU2lnbmFsKCR7cXVlcnl9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxFQUFVLEVBQUUsT0FBaUM7SUFDOUQsU0FBUyxFQUFFLElBQUksd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFNUMsTUFBTSxLQUFLLEdBQVcsY0FBYyxDQUFDLGVBQWUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sUUFBUSxHQUFvQixjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUFDLEVBQVUsRUFBRSxPQUFpQztJQUNoRSxTQUFTLEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5QyxNQUFNLEtBQUssR0FBVyxjQUFjLENBQUMsZUFBZSxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakcsTUFBTSxRQUFRLEdBQW9CLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxH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LEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVwRCxNQUFNLEtBQUssR0FBVyxjQUFjLENBQUMsaUJBQWlCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDaEUsTUFBTSxRQUFRLEdBQW9CLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFdEUsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsT0FBaUM7SUFDL0UsU0FBUyxFQUFFLElBQUksd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUUxRCxNQUFNLEtBQUssR0FBVyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQW9CLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsUUFBUSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUU1RSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpc0Rldk1vZGUsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlNYXhFcHNpbG9uLCByZXNvbHZlQnJlYWtwb2ludCB9IGZyb20gJy4vdXRpbHMvYnJlYWtwb2ludHMudXRpbHMnO1xuaW1wb3J0IHsgRGlzcGxheU1vZGVPcHRpb24sIENyZWF0ZU1lZGlhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29uc3VtZXIsIGNyZWF0ZUNvbnN1bWVyTGFiZWwgfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHsgbm9ybWFsaXplUXVlcnkgfSBmcm9tICcuL3V0aWxzL2NvbW1vbi51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cChicDogc3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQodXApO1xuXG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeShgKG1pbi13aWR0aDogJHtyZXNvbHZlQnJlYWtwb2ludChicCl9cHgpYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGB1cCgke2JwfSlgKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb3duKGJwOiBzdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChkb3duKTtcblxuICBjb25zdCBxdWVyeTogc3RyaW5nID0gbm9ybWFsaXplUXVlcnkoYChtYXgtd2lkdGg6ICR7YXBwbHlNYXhFcHNpbG9uKHJlc29sdmVCcmVha3BvaW50KGJwKSl9cHgpYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGBkb3duKCR7YnB9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJldHdlZW4obWluQnA6IHN0cmluZywgbWF4QnA6IHN0cmluZywgb3B0aW9ucz86IENyZWF0ZU1lZGlhUXVlcnlPcHRpb25zKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgaXNEZXZNb2RlKCkgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGJldHdlZW4pO1xuXG4gIGNvbnN0IG1pblB4OiBudW1iZXIgPSByZXNvbHZlQnJlYWtwb2ludChtaW5CcCk7XG4gIGNvbnN0IG1heFB4OiBudW1iZXIgPSByZXNvbHZlQnJlYWtwb2ludChtYXhCcCk7XG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeShgKG1pbi13aWR0aDogJHttaW5QeH1weCkgYW5kIChtYXgtd2lkdGg6ICR7YXBwbHlNYXhFcHNpbG9uKG1heFB4KX1weClgKTtcbiAgY29uc3QgY29uc3VtZXI6IFNpZ25hbDxib29sZWFuPiA9IGNyZWF0ZUNvbnN1bWVyKHF1ZXJ5LCBvcHRpb25zKTtcblxuICBjb25zdW1lci50b1N0cmluZyA9ICgpID0+IGNyZWF0ZUNvbnN1bWVyTGFiZWwoYGJldHdlZW4oJHttaW5CcH0sICR7bWF4QnB9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9yaWVudGF0aW9uKHZhbHVlOiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZScsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChvcmllbnRhdGlvbik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAob3JpZW50YXRpb246ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgb3JpZW50YXRpb24oJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sb3JTY2hlbWUodmFsdWU6ICdsaWdodCcgfCAnZGFyaycsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChjb2xvclNjaGVtZSk7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAocHJlZmVycy1jb2xvci1zY2hlbWU6ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgY29sb3JTY2hlbWUoJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheU1vZGUodmFsdWU6IERpc3BsYXlNb2RlT3B0aW9uLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoZGlzcGxheU1vZGUpO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gbm9ybWFsaXplUXVlcnkoYChkaXNwbGF5LW1vZGU6ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgZGlzcGxheU1vZGUoJHt2YWx1ZX0pYCk7XG5cbiAgcmV0dXJuIGNvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlZE1vdGlvbihvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQocmVkdWNlZE1vdGlvbik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbCgncmVkdWNlZE1vdGlvbicpO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyKG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChob3Zlcik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KCcoaG92ZXI6IGhvdmVyKScpO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbCgnaG92ZXInKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbnlIb3ZlcihvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoYW55SG92ZXIpO1xuXG4gIGNvbnN0IHF1ZXJ5OiBzdHJpbmcgPSBub3JtYWxpemVRdWVyeSgnKGFueS1ob3ZlcjogaG92ZXIpJyk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKCdhbnlIb3ZlcicpO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50ZXIodmFsdWU6ICdmaW5lJyB8ICdjb2Fyc2UnIHwgJ25vbmUnLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQocG9pbnRlcik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAocG9pbnRlcjogJHt2YWx1ZX0pYCk7XG4gIGNvbnN0IGNvbnN1bWVyOiBTaWduYWw8Ym9vbGVhbj4gPSBjcmVhdGVDb25zdW1lcihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgY29uc3VtZXIudG9TdHJpbmcgPSAoKSA9PiBjcmVhdGVDb25zdW1lckxhYmVsKGBwb2ludGVyKCR7dmFsdWV9KWApO1xuXG4gIHJldHVybiBjb25zdW1lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFueVBvaW50ZXIodmFsdWU6ICdmaW5lJyB8ICdjb2Fyc2UnIHwgJ25vbmUnLCBvcHRpb25zPzogQ3JlYXRlTWVkaWFRdWVyeU9wdGlvbnMpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoYW55UG9pbnRlcik7XG5cbiAgY29uc3QgcXVlcnk6IHN0cmluZyA9IG5vcm1hbGl6ZVF1ZXJ5KGAoYW55LXBvaW50ZXI6ICR7dmFsdWV9KWApO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIocXVlcnksIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgYW55UG9pbnRlcigke3ZhbHVlfSlgKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaE1lZGlhU2lnbmFsKHF1ZXJ5OiBzdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVNZWRpYVF1ZXJ5T3B0aW9ucyk6IFNpZ25hbDxib29sZWFuPiB7XG4gIGlzRGV2TW9kZSgpICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChtYXRjaE1lZGlhU2lnbmFsKTtcblxuICBjb25zdCBtZWRpYTogc3RyaW5nID0gbm9ybWFsaXplUXVlcnkocXVlcnkpO1xuICBjb25zdCBjb25zdW1lcjogU2lnbmFsPGJvb2xlYW4+ID0gY3JlYXRlQ29uc3VtZXIobWVkaWEsIG9wdGlvbnMpO1xuXG4gIGNvbnN1bWVyLnRvU3RyaW5nID0gKCkgPT4gY3JlYXRlQ29uc3VtZXJMYWJlbChgbWF0Y2hNZWRpYVNpZ25hbCgke3F1ZXJ5fSlgKTtcblxuICByZXR1cm4gY29uc3VtZXI7XG59XG4iXX0=
@@ -248,6 +248,13 @@ function pointer(value, options) {
248
248
  consumer.toString = () => createConsumerLabel(`pointer(${value})`);
249
249
  return consumer;
250
250
  }
251
+ function anyPointer(value, options) {
252
+ isDevMode() && assertInInjectionContext(anyPointer);
253
+ const query = normalizeQuery(`(any-pointer: ${value})`);
254
+ const consumer = createConsumer(query, options);
255
+ consumer.toString = () => createConsumerLabel(`anyPointer(${value})`);
256
+ return consumer;
257
+ }
251
258
  function matchMediaSignal(query, options) {
252
259
  isDevMode() && assertInInjectionContext(matchMediaSignal);
253
260
  const media = normalizeQuery(query);
@@ -281,5 +288,5 @@ function provideSsrValue(value) {
281
288
  * Generated bundle index. Do not edit.
282
289
  */
283
290
 
284
- export { MQ_BREAKPOINTS, MQ_BREAKPOINT_EPSILON, NGX_MQ_SSR_VALUE, anyHover, between, colorScheme, displayMode, down, hover, matchMediaSignal, orientation, pointer, provideBootstrapBreakpoints, provideBreakpointEpsilon, provideBreakpoints, provideMaterialBreakpoints, provideSsrValue, provideTailwindBreakpoints, reducedMotion, up };
291
+ export { MQ_BREAKPOINTS, MQ_BREAKPOINT_EPSILON, NGX_MQ_SSR_VALUE, anyHover, anyPointer, between, colorScheme, displayMode, down, hover, matchMediaSignal, orientation, pointer, provideBootstrapBreakpoints, provideBreakpointEpsilon, provideBreakpoints, provideMaterialBreakpoints, provideSsrValue, provideTailwindBreakpoints, reducedMotion, up };
285
292
  //# sourceMappingURL=ngx-mq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-mq.mjs","sources":["../../src/lib/constants.ts","../../src/lib/tokens.ts","../../src/lib/utils/breakpoints.utils.ts","../../src/lib/mql-registry/mql-registry.listeners.ts","../../src/lib/mql-registry/mql-registry.ts","../../src/lib/mql-registry/mql-registry.extensions.ts","../../src/lib/core.ts","../../src/lib/utils/common.utils.ts","../../src/lib/api.ts","../../src/lib/providers.ts","../../src/ngx-mq.ts"],"sourcesContent":["import { MqBreakpoints } from './models';\n\nexport const TAILWIND_BREAKPOINTS: MqBreakpoints = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n};\n\nexport const BOOTSTRAP_BREAKPOINTS: MqBreakpoints = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n};\n\nexport const MATERIAL_BREAKPOINTS: MqBreakpoints = {\n sm: 600,\n md: 905,\n lg: 1240,\n xl: 1440,\n};\n\nexport const DEFAULT_BREAKPOINT_EPSILON: number = 0.02;\n","import { InjectionToken } from '@angular/core';\nimport { DEFAULT_BREAKPOINT_EPSILON } from './constants';\nimport { MqBreakpoints } from './models';\n\nexport const MQ_BREAKPOINTS: InjectionToken<MqBreakpoints> = new InjectionToken('MQ_BREAKPOINTS');\n\nexport const MQ_BREAKPOINT_EPSILON: InjectionToken<number> = new InjectionToken('MQ_BREAKPOINT_EPSILON', {\n providedIn: 'root',\n factory: () => DEFAULT_BREAKPOINT_EPSILON,\n});\n\nexport const NGX_MQ_SSR_VALUE: InjectionToken<boolean> = new InjectionToken('NGX_MQ_SSR_VALUE', {\n providedIn: 'root',\n factory: () => false,\n});\n","import { inject, isDevMode } from '@angular/core';\nimport { MQ_BREAKPOINT_EPSILON, MQ_BREAKPOINTS } from '../tokens';\nimport { MqBreakpoints } from '../models';\n\nfunction assertBreakpointsProvided(): MqBreakpoints {\n const breakpoints: MqBreakpoints | null = inject(MQ_BREAKPOINTS, { optional: true });\n\n if (isDevMode() && !breakpoints) {\n throw new Error(\n '[ngx-mq]: No breakpoints provided.\\n' +\n 'Please configure your app with provideBreakpoints(), ' +\n 'or use one of the built-in presets: ' +\n 'provideTailwindBreakpoints(), provideBootstrapBreakpoints(), provideMaterialBreakpoints().'\n );\n }\n\n return breakpoints!;\n}\n\nfunction assertBreakpointExists(bp: string, breakpoints: MqBreakpoints): number {\n if (isDevMode() && !(bp in breakpoints)) {\n throw new Error(\n `[ngx-mq]: Breakpoint \"${bp}\" not found in provided configuration.\\n` +\n `Available breakpoints: ${Object.keys(breakpoints).join(', ')}.`\n );\n }\n\n return breakpoints[bp];\n}\n\nexport function resolveBreakpoint(bp: string): number {\n const breakpoints: MqBreakpoints = assertBreakpointsProvided();\n\n return assertBreakpointExists(bp, breakpoints);\n}\n\nexport function normalizeBreakpoints(bps: MqBreakpoints): Readonly<MqBreakpoints> {\n const out: Record<string, number> = {};\n\n for (const [rawKey, value] of Object.entries(bps)) {\n const key = rawKey.trim();\n\n if (isDevMode()) {\n if (!Number.isFinite(value)) {\n throw new Error(`[ngx-mq] Breakpoint \"${key}\" must be a finite number, got ${value}.`);\n }\n\n if (value <= 0) {\n throw new Error(`[ngx-mq] Breakpoint \"${key}\" must be > 0, got ${value}.`);\n }\n }\n\n out[key] = value;\n }\n\n return Object.freeze(out);\n}\n\nexport function validateEpsilon(epsilon: number): void {\n if (!Number.isFinite(epsilon) || epsilon <= 0 || epsilon > 1) {\n throw new Error(`[ngx-mq] Epsilon must be in (0, 1]. Got: ${epsilon}`);\n }\n}\n\nexport function applyMaxEpsilon(value: number): number {\n const epsilon: number = inject(MQ_BREAKPOINT_EPSILON, { optional: true }) ?? 0.02;\n\n return value - epsilon;\n}\n","export function addChangeListenerToMql(mql: MediaQueryList, onChange: (event?: MediaQueryListEvent) => void): void {\n if (typeof mql.addEventListener === 'function') {\n // Modern browsers\n mql.addEventListener('change', onChange);\n } else {\n // Legacy fallback (Safari < 14)\n (mql as any).addListener(onChange);\n }\n}\n\nexport function removeChangeListenerFromMql(\n mql: MediaQueryList,\n onChange: (event?: MediaQueryListEvent) => void\n): void {\n if (typeof mql.removeEventListener === 'function') {\n // Modern browsers\n mql.removeEventListener('change', onChange);\n } else {\n // Legacy fallback (Safari < 14)\n (mql as any).removeListener(onChange);\n }\n}\n","import { signal as createSignal, Signal, WritableSignal } from '@angular/core';\nimport { addChangeListenerToMql, removeChangeListenerFromMql } from './mql-registry.listeners';\nimport { MqlRegistry, MqRetainToken, MqHandle } from './mql-registry.models';\n\nconst REGISTRY_KEY: symbol = Symbol.for('ngx-mq:mql-registry');\n\nconst getRegistry = (): MqlRegistry => {\n const realmGlobal: Record<PropertyKey, unknown> = globalThis;\n\n return (realmGlobal[REGISTRY_KEY] ??= new Map()) as MqlRegistry;\n};\n\nconst createMqHandle = (query: string): MqHandle => {\n const mql: MediaQueryList = matchMedia(query);\n const signal: WritableSignal<boolean> = createSignal(mql.matches);\n\n const onChange = (event?: MediaQueryListEvent) => signal.set(event?.matches ?? mql.matches);\n\n addChangeListenerToMql(mql, onChange);\n\n return { mql, signal, onChange, retainers: new Set() };\n};\n\nexport function retain(query: string, token: MqRetainToken, ssrValue: boolean): Signal<boolean> {\n // SSR mode\n if (typeof globalThis.matchMedia !== 'function') {\n return createSignal(ssrValue).asReadonly();\n }\n\n const registry: MqlRegistry = getRegistry();\n\n let handle: MqHandle | undefined = registry.get(query);\n\n if (!handle) {\n handle = createMqHandle(query);\n registry.set(query, handle);\n }\n\n handle.retainers.add(token);\n\n return handle.signal.asReadonly();\n}\n\nexport function release(query: string, token: MqRetainToken): boolean {\n const registry: MqlRegistry = getRegistry();\n\n let handle: MqHandle | undefined = registry.get(query);\n\n if (!handle) return false;\n\n const removed: boolean = handle.retainers.delete(token);\n\n if (handle.retainers.size === 0) {\n removeChangeListenerFromMql(handle.mql, handle.onChange);\n registry.delete(query);\n }\n\n return removed;\n}\n\n/* @internal\n * Returns the current registry (used only in tests).\n */\nexport function _getRegistry(): MqlRegistry {\n return getRegistry();\n}\n\n/* @internal\n * Clears all registry entries and removes media-query listeners.\n */\nexport function _resetRegistry(): void {\n const registry: MqlRegistry = getRegistry();\n\n registry.forEach((handle: MqHandle) => {\n removeChangeListenerFromMql(handle.mql, handle.onChange);\n });\n\n registry.clear();\n}\n","import { DestroyRef, inject, Signal } from '@angular/core';\nimport { retain, release } from './mql-registry';\n\nexport function retainUntilDestroy(query: string, ssrValue: boolean): Signal<boolean> {\n const destroyRef: DestroyRef = inject(DestroyRef);\n\n const querySignal: Signal<boolean> = retain(query, destroyRef, ssrValue);\n\n destroyRef.onDestroy(() => release(query, destroyRef));\n\n return querySignal;\n}\n","import { computed, inject, Signal } from '@angular/core';\nimport { retainUntilDestroy } from './mql-registry';\nimport { CreateMediaQueryOptions } from './models';\nimport { NGX_MQ_SSR_VALUE } from './tokens';\n\nexport function createConsumer(query: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n const defaultSsrValue: boolean = inject(NGX_MQ_SSR_VALUE);\n const effectiveSsrValue: boolean = options?.ssrValue ?? defaultSsrValue;\n\n const querySignal: Signal<boolean> = retainUntilDestroy(query, effectiveSsrValue);\n\n return computed(() => querySignal());\n}\n\nexport function createConsumerLabel(descriptor: string): string {\n return `[NgxMq Signal: ${descriptor}]`;\n}\n","export function normalizeQuery(value: string): string {\n return value.trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n","import { assertInInjectionContext, isDevMode, Signal } from '@angular/core';\nimport { applyMaxEpsilon, resolveBreakpoint } from './utils/breakpoints.utils';\nimport { DisplayModeOption, CreateMediaQueryOptions } from './models';\nimport { createConsumer, createConsumerLabel } from './core';\nimport { normalizeQuery } from './utils/common.utils';\n\nexport function up(bp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(up);\n\n const query: string = normalizeQuery(`(min-width: ${resolveBreakpoint(bp)}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`up(${bp})`);\n\n return consumer;\n}\n\nexport function down(bp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(down);\n\n const query: string = normalizeQuery(`(max-width: ${applyMaxEpsilon(resolveBreakpoint(bp))}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`down(${bp})`);\n\n return consumer;\n}\n\nexport function between(minBp: string, maxBp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(between);\n\n const minPx: number = resolveBreakpoint(minBp);\n const maxPx: number = resolveBreakpoint(maxBp);\n const query: string = normalizeQuery(`(min-width: ${minPx}px) and (max-width: ${applyMaxEpsilon(maxPx)}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`between(${minBp}, ${maxBp})`);\n\n return consumer;\n}\n\nexport function orientation(value: 'portrait' | 'landscape', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(orientation);\n\n const query: string = normalizeQuery(`(orientation: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`orientation(${value})`);\n\n return consumer;\n}\n\nexport function colorScheme(value: 'light' | 'dark', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(colorScheme);\n\n const query: string = normalizeQuery(`(prefers-color-scheme: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`colorScheme(${value})`);\n\n return consumer;\n}\n\nexport function displayMode(value: DisplayModeOption, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(displayMode);\n\n const query = normalizeQuery(`(display-mode: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`displayMode(${value})`);\n\n return consumer;\n}\n\nexport function reducedMotion(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(reducedMotion);\n\n const query: string = normalizeQuery('(prefers-reduced-motion: reduce)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('reducedMotion');\n\n return consumer;\n}\n\nexport function hover(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(hover);\n\n const query: string = normalizeQuery('(hover: hover)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('hover');\n\n return consumer;\n}\n\nexport function anyHover(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(anyHover);\n\n const query: string = normalizeQuery('(any-hover: hover)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('anyHover');\n\n return consumer;\n}\n\nexport function pointer(value: 'fine' | 'coarse' | 'none', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(pointer);\n\n const query: string = normalizeQuery(`(pointer: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`pointer(${value})`);\n\n return consumer;\n}\n\nexport function matchMediaSignal(query: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(matchMediaSignal);\n\n const media: string = normalizeQuery(query);\n const consumer: Signal<boolean> = createConsumer(media, options);\n\n consumer.toString = () => createConsumerLabel(`matchMediaSignal(${query})`);\n\n return consumer;\n}\n","import { isDevMode, Provider } from '@angular/core';\nimport { MQ_BREAKPOINT_EPSILON, MQ_BREAKPOINTS, NGX_MQ_SSR_VALUE } from './tokens';\nimport { normalizeBreakpoints, validateEpsilon } from './utils/breakpoints.utils';\nimport { MqBreakpoints } from './models';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n DEFAULT_BREAKPOINT_EPSILON,\n MATERIAL_BREAKPOINTS,\n TAILWIND_BREAKPOINTS,\n} from './constants';\n\nexport function provideBreakpoints(bps: MqBreakpoints): Provider {\n return { provide: MQ_BREAKPOINTS, useValue: normalizeBreakpoints(bps) };\n}\n\nexport function provideTailwindBreakpoints(): Provider {\n return provideBreakpoints(TAILWIND_BREAKPOINTS);\n}\n\nexport function provideBootstrapBreakpoints(): Provider {\n return provideBreakpoints(BOOTSTRAP_BREAKPOINTS);\n}\n\nexport function provideMaterialBreakpoints(): Provider {\n return provideBreakpoints(MATERIAL_BREAKPOINTS);\n}\n\nexport function provideBreakpointEpsilon(epsilon: number = DEFAULT_BREAKPOINT_EPSILON): Provider {\n if (isDevMode()) validateEpsilon(epsilon);\n\n return { provide: MQ_BREAKPOINT_EPSILON, useValue: epsilon };\n}\n\nexport function provideSsrValue(value: boolean): Provider {\n return { provide: NGX_MQ_SSR_VALUE, useValue: value };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["signal","createSignal"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-mq.mjs","sources":["../../src/lib/constants.ts","../../src/lib/tokens.ts","../../src/lib/utils/breakpoints.utils.ts","../../src/lib/mql-registry/mql-registry.listeners.ts","../../src/lib/mql-registry/mql-registry.ts","../../src/lib/mql-registry/mql-registry.extensions.ts","../../src/lib/core.ts","../../src/lib/utils/common.utils.ts","../../src/lib/api.ts","../../src/lib/providers.ts","../../src/ngx-mq.ts"],"sourcesContent":["import { MqBreakpoints } from './models';\n\nexport const TAILWIND_BREAKPOINTS: MqBreakpoints = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n};\n\nexport const BOOTSTRAP_BREAKPOINTS: MqBreakpoints = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n};\n\nexport const MATERIAL_BREAKPOINTS: MqBreakpoints = {\n sm: 600,\n md: 905,\n lg: 1240,\n xl: 1440,\n};\n\nexport const DEFAULT_BREAKPOINT_EPSILON: number = 0.02;\n","import { InjectionToken } from '@angular/core';\nimport { DEFAULT_BREAKPOINT_EPSILON } from './constants';\nimport { MqBreakpoints } from './models';\n\nexport const MQ_BREAKPOINTS: InjectionToken<MqBreakpoints> = new InjectionToken('MQ_BREAKPOINTS');\n\nexport const MQ_BREAKPOINT_EPSILON: InjectionToken<number> = new InjectionToken('MQ_BREAKPOINT_EPSILON', {\n providedIn: 'root',\n factory: () => DEFAULT_BREAKPOINT_EPSILON,\n});\n\nexport const NGX_MQ_SSR_VALUE: InjectionToken<boolean> = new InjectionToken('NGX_MQ_SSR_VALUE', {\n providedIn: 'root',\n factory: () => false,\n});\n","import { inject, isDevMode } from '@angular/core';\nimport { MQ_BREAKPOINT_EPSILON, MQ_BREAKPOINTS } from '../tokens';\nimport { MqBreakpoints } from '../models';\n\nfunction assertBreakpointsProvided(): MqBreakpoints {\n const breakpoints: MqBreakpoints | null = inject(MQ_BREAKPOINTS, { optional: true });\n\n if (isDevMode() && !breakpoints) {\n throw new Error(\n '[ngx-mq]: No breakpoints provided.\\n' +\n 'Please configure your app with provideBreakpoints(), ' +\n 'or use one of the built-in presets: ' +\n 'provideTailwindBreakpoints(), provideBootstrapBreakpoints(), provideMaterialBreakpoints().'\n );\n }\n\n return breakpoints!;\n}\n\nfunction assertBreakpointExists(bp: string, breakpoints: MqBreakpoints): number {\n if (isDevMode() && !(bp in breakpoints)) {\n throw new Error(\n `[ngx-mq]: Breakpoint \"${bp}\" not found in provided configuration.\\n` +\n `Available breakpoints: ${Object.keys(breakpoints).join(', ')}.`\n );\n }\n\n return breakpoints[bp];\n}\n\nexport function resolveBreakpoint(bp: string): number {\n const breakpoints: MqBreakpoints = assertBreakpointsProvided();\n\n return assertBreakpointExists(bp, breakpoints);\n}\n\nexport function normalizeBreakpoints(bps: MqBreakpoints): Readonly<MqBreakpoints> {\n const out: Record<string, number> = {};\n\n for (const [rawKey, value] of Object.entries(bps)) {\n const key = rawKey.trim();\n\n if (isDevMode()) {\n if (!Number.isFinite(value)) {\n throw new Error(`[ngx-mq] Breakpoint \"${key}\" must be a finite number, got ${value}.`);\n }\n\n if (value <= 0) {\n throw new Error(`[ngx-mq] Breakpoint \"${key}\" must be > 0, got ${value}.`);\n }\n }\n\n out[key] = value;\n }\n\n return Object.freeze(out);\n}\n\nexport function validateEpsilon(epsilon: number): void {\n if (!Number.isFinite(epsilon) || epsilon <= 0 || epsilon > 1) {\n throw new Error(`[ngx-mq] Epsilon must be in (0, 1]. Got: ${epsilon}`);\n }\n}\n\nexport function applyMaxEpsilon(value: number): number {\n const epsilon: number = inject(MQ_BREAKPOINT_EPSILON, { optional: true }) ?? 0.02;\n\n return value - epsilon;\n}\n","export function addChangeListenerToMql(mql: MediaQueryList, onChange: (event?: MediaQueryListEvent) => void): void {\n if (typeof mql.addEventListener === 'function') {\n // Modern browsers\n mql.addEventListener('change', onChange);\n } else {\n // Legacy fallback (Safari < 14)\n (mql as any).addListener(onChange);\n }\n}\n\nexport function removeChangeListenerFromMql(\n mql: MediaQueryList,\n onChange: (event?: MediaQueryListEvent) => void\n): void {\n if (typeof mql.removeEventListener === 'function') {\n // Modern browsers\n mql.removeEventListener('change', onChange);\n } else {\n // Legacy fallback (Safari < 14)\n (mql as any).removeListener(onChange);\n }\n}\n","import { signal as createSignal, Signal, WritableSignal } from '@angular/core';\nimport { addChangeListenerToMql, removeChangeListenerFromMql } from './mql-registry.listeners';\nimport { MqlRegistry, MqRetainToken, MqHandle } from './mql-registry.models';\n\nconst REGISTRY_KEY: symbol = Symbol.for('ngx-mq:mql-registry');\n\nconst getRegistry = (): MqlRegistry => {\n const realmGlobal: Record<PropertyKey, unknown> = globalThis;\n\n return (realmGlobal[REGISTRY_KEY] ??= new Map()) as MqlRegistry;\n};\n\nconst createMqHandle = (query: string): MqHandle => {\n const mql: MediaQueryList = matchMedia(query);\n const signal: WritableSignal<boolean> = createSignal(mql.matches);\n\n const onChange = (event?: MediaQueryListEvent) => signal.set(event?.matches ?? mql.matches);\n\n addChangeListenerToMql(mql, onChange);\n\n return { mql, signal, onChange, retainers: new Set() };\n};\n\nexport function retain(query: string, token: MqRetainToken, ssrValue: boolean): Signal<boolean> {\n // SSR mode\n if (typeof globalThis.matchMedia !== 'function') {\n return createSignal(ssrValue).asReadonly();\n }\n\n const registry: MqlRegistry = getRegistry();\n\n let handle: MqHandle | undefined = registry.get(query);\n\n if (!handle) {\n handle = createMqHandle(query);\n registry.set(query, handle);\n }\n\n handle.retainers.add(token);\n\n return handle.signal.asReadonly();\n}\n\nexport function release(query: string, token: MqRetainToken): boolean {\n const registry: MqlRegistry = getRegistry();\n\n let handle: MqHandle | undefined = registry.get(query);\n\n if (!handle) return false;\n\n const removed: boolean = handle.retainers.delete(token);\n\n if (handle.retainers.size === 0) {\n removeChangeListenerFromMql(handle.mql, handle.onChange);\n registry.delete(query);\n }\n\n return removed;\n}\n\n/* @internal\n * Returns the current registry (used only in tests).\n */\nexport function _getRegistry(): MqlRegistry {\n return getRegistry();\n}\n\n/* @internal\n * Clears all registry entries and removes media-query listeners.\n */\nexport function _resetRegistry(): void {\n const registry: MqlRegistry = getRegistry();\n\n registry.forEach((handle: MqHandle) => {\n removeChangeListenerFromMql(handle.mql, handle.onChange);\n });\n\n registry.clear();\n}\n","import { DestroyRef, inject, Signal } from '@angular/core';\nimport { retain, release } from './mql-registry';\n\nexport function retainUntilDestroy(query: string, ssrValue: boolean): Signal<boolean> {\n const destroyRef: DestroyRef = inject(DestroyRef);\n\n const querySignal: Signal<boolean> = retain(query, destroyRef, ssrValue);\n\n destroyRef.onDestroy(() => release(query, destroyRef));\n\n return querySignal;\n}\n","import { computed, inject, Signal } from '@angular/core';\nimport { retainUntilDestroy } from './mql-registry';\nimport { CreateMediaQueryOptions } from './models';\nimport { NGX_MQ_SSR_VALUE } from './tokens';\n\nexport function createConsumer(query: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n const defaultSsrValue: boolean = inject(NGX_MQ_SSR_VALUE);\n const effectiveSsrValue: boolean = options?.ssrValue ?? defaultSsrValue;\n\n const querySignal: Signal<boolean> = retainUntilDestroy(query, effectiveSsrValue);\n\n return computed(() => querySignal());\n}\n\nexport function createConsumerLabel(descriptor: string): string {\n return `[NgxMq Signal: ${descriptor}]`;\n}\n","export function normalizeQuery(value: string): string {\n return value.trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n","import { assertInInjectionContext, isDevMode, Signal } from '@angular/core';\nimport { applyMaxEpsilon, resolveBreakpoint } from './utils/breakpoints.utils';\nimport { DisplayModeOption, CreateMediaQueryOptions } from './models';\nimport { createConsumer, createConsumerLabel } from './core';\nimport { normalizeQuery } from './utils/common.utils';\n\nexport function up(bp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(up);\n\n const query: string = normalizeQuery(`(min-width: ${resolveBreakpoint(bp)}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`up(${bp})`);\n\n return consumer;\n}\n\nexport function down(bp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(down);\n\n const query: string = normalizeQuery(`(max-width: ${applyMaxEpsilon(resolveBreakpoint(bp))}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`down(${bp})`);\n\n return consumer;\n}\n\nexport function between(minBp: string, maxBp: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(between);\n\n const minPx: number = resolveBreakpoint(minBp);\n const maxPx: number = resolveBreakpoint(maxBp);\n const query: string = normalizeQuery(`(min-width: ${minPx}px) and (max-width: ${applyMaxEpsilon(maxPx)}px)`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`between(${minBp}, ${maxBp})`);\n\n return consumer;\n}\n\nexport function orientation(value: 'portrait' | 'landscape', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(orientation);\n\n const query: string = normalizeQuery(`(orientation: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`orientation(${value})`);\n\n return consumer;\n}\n\nexport function colorScheme(value: 'light' | 'dark', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(colorScheme);\n\n const query: string = normalizeQuery(`(prefers-color-scheme: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`colorScheme(${value})`);\n\n return consumer;\n}\n\nexport function displayMode(value: DisplayModeOption, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(displayMode);\n\n const query = normalizeQuery(`(display-mode: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`displayMode(${value})`);\n\n return consumer;\n}\n\nexport function reducedMotion(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(reducedMotion);\n\n const query: string = normalizeQuery('(prefers-reduced-motion: reduce)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('reducedMotion');\n\n return consumer;\n}\n\nexport function hover(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(hover);\n\n const query: string = normalizeQuery('(hover: hover)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('hover');\n\n return consumer;\n}\n\nexport function anyHover(options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(anyHover);\n\n const query: string = normalizeQuery('(any-hover: hover)');\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel('anyHover');\n\n return consumer;\n}\n\nexport function pointer(value: 'fine' | 'coarse' | 'none', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(pointer);\n\n const query: string = normalizeQuery(`(pointer: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`pointer(${value})`);\n\n return consumer;\n}\n\nexport function anyPointer(value: 'fine' | 'coarse' | 'none', options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(anyPointer);\n\n const query: string = normalizeQuery(`(any-pointer: ${value})`);\n const consumer: Signal<boolean> = createConsumer(query, options);\n\n consumer.toString = () => createConsumerLabel(`anyPointer(${value})`);\n\n return consumer;\n}\n\nexport function matchMediaSignal(query: string, options?: CreateMediaQueryOptions): Signal<boolean> {\n isDevMode() && assertInInjectionContext(matchMediaSignal);\n\n const media: string = normalizeQuery(query);\n const consumer: Signal<boolean> = createConsumer(media, options);\n\n consumer.toString = () => createConsumerLabel(`matchMediaSignal(${query})`);\n\n return consumer;\n}\n","import { isDevMode, Provider } from '@angular/core';\nimport { MQ_BREAKPOINT_EPSILON, MQ_BREAKPOINTS, NGX_MQ_SSR_VALUE } from './tokens';\nimport { normalizeBreakpoints, validateEpsilon } from './utils/breakpoints.utils';\nimport { MqBreakpoints } from './models';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n DEFAULT_BREAKPOINT_EPSILON,\n MATERIAL_BREAKPOINTS,\n TAILWIND_BREAKPOINTS,\n} from './constants';\n\nexport function provideBreakpoints(bps: MqBreakpoints): Provider {\n return { provide: MQ_BREAKPOINTS, useValue: normalizeBreakpoints(bps) };\n}\n\nexport function provideTailwindBreakpoints(): Provider {\n return provideBreakpoints(TAILWIND_BREAKPOINTS);\n}\n\nexport function provideBootstrapBreakpoints(): Provider {\n return provideBreakpoints(BOOTSTRAP_BREAKPOINTS);\n}\n\nexport function provideMaterialBreakpoints(): Provider {\n return provideBreakpoints(MATERIAL_BREAKPOINTS);\n}\n\nexport function provideBreakpointEpsilon(epsilon: number = DEFAULT_BREAKPOINT_EPSILON): Provider {\n if (isDevMode()) validateEpsilon(epsilon);\n\n return { provide: MQ_BREAKPOINT_EPSILON, useValue: epsilon };\n}\n\nexport function provideSsrValue(value: boolean): Provider {\n return { provide: NGX_MQ_SSR_VALUE, useValue: value };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["signal","createSignal"],"mappings":"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"}
package/lib/api.d.ts CHANGED
@@ -10,4 +10,5 @@ export declare function reducedMotion(options?: CreateMediaQueryOptions): Signal
10
10
  export declare function hover(options?: CreateMediaQueryOptions): Signal<boolean>;
11
11
  export declare function anyHover(options?: CreateMediaQueryOptions): Signal<boolean>;
12
12
  export declare function pointer(value: 'fine' | 'coarse' | 'none', options?: CreateMediaQueryOptions): Signal<boolean>;
13
+ export declare function anyPointer(value: 'fine' | 'coarse' | 'none', options?: CreateMediaQueryOptions): Signal<boolean>;
13
14
  export declare function matchMediaSignal(query: string, options?: CreateMediaQueryOptions): Signal<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-mq",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Signal-powered breakpoints and media queries for Angular.",
5
5
  "repository": {
6
6
  "type": "git",