ember-container-query 5.1.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -360,7 +360,7 @@ For more examples, I encourage you to check out the code for my demo app. It is
360
360
  ## Compatibility
361
361
 
362
362
  - Ember.js v4.12 or above
363
- - Node.js v18 or above
363
+ - Node.js v20 or above
364
364
 
365
365
 
366
366
  ## Contributing
@@ -19,13 +19,12 @@ interface ContainerQuerySignature<T extends IndexSignatureParameter> {
19
19
  Element: Element;
20
20
  }
21
21
  export default class ContainerQueryComponent<T extends IndexSignatureParameter> extends Component<ContainerQuerySignature<T>> {
22
- dimensions?: Dimensions;
23
- queryResults?: QueryResults<T>;
24
22
  tagName: string;
25
23
  updateState: ({ dimensions, queryResults, }: {
26
24
  dimensions: Dimensions;
27
25
  queryResults: QueryResults<T>;
28
26
  }) => void;
27
+ dimensions?: Dimensions;
28
+ queryResults?: QueryResults<T>;
29
29
  }
30
30
  export {};
31
- //# sourceMappingURL=container-query.d.ts.map
@@ -11,4 +11,3 @@ interface AspectRatioHelperSignature {
11
11
  }
12
12
  declare const AspectRatioHelper: import("@ember/component/helper").FunctionBasedHelper<AspectRatioHelperSignature>;
13
13
  export default AspectRatioHelper;
14
- //# sourceMappingURL=aspect-ratio.d.ts.map
@@ -11,4 +11,3 @@ interface HeightHelperSignature {
11
11
  }
12
12
  declare const HeightHelper: import("@ember/component/helper").FunctionBasedHelper<HeightHelperSignature>;
13
13
  export default HeightHelper;
14
- //# sourceMappingURL=height.d.ts.map
@@ -11,4 +11,3 @@ interface WidthHelperSignature {
11
11
  }
12
12
  declare const WidthHelper: import("@ember/component/helper").FunctionBasedHelper<WidthHelperSignature>;
13
13
  export default WidthHelper;
14
- //# sourceMappingURL=width.d.ts.map
@@ -4,4 +4,3 @@ export { default as height } from './helpers/height.ts';
4
4
  export { default as width } from './helpers/width.ts';
5
5
  export type { Dimensions, Features, IndexSignatureParameter, Metadata, QueryResults, } from './modifiers/container-query.ts';
6
6
  export { default as containerQuery } from './modifiers/container-query.ts';
7
- //# sourceMappingURL=index.d.ts.map
@@ -31,23 +31,22 @@ interface ContainerQueryModifierSignature<T extends IndexSignatureParameter> {
31
31
  }
32
32
  export default class ContainerQueryModifier<T extends IndexSignatureParameter> extends Modifier<ContainerQueryModifierSignature<T>> {
33
33
  private readonly resizeObserver;
34
- dimensions: Dimensions;
35
- queryResults: QueryResults<T>;
36
34
  private _dataAttributes;
37
35
  private _element?;
38
36
  private _named;
37
+ dimensions: Dimensions;
38
+ queryResults: QueryResults<T>;
39
39
  get dataAttributePrefix(): string;
40
40
  get debounce(): number;
41
41
  get features(): Features<T>;
42
42
  constructor(owner: Owner, args: ArgsFor<ContainerQueryModifierSignature<T>>);
43
+ private evaluateQueries;
44
+ private measureDimensions;
43
45
  modify(element: Element, _positional: PositionalArgs<ContainerQueryModifierSignature<T>>, named: NamedArgs<ContainerQueryModifierSignature<T>>): void;
44
- private onResize;
45
- private registerResizeObserver;
46
46
  private queryContainer;
47
- private measureDimensions;
48
- private evaluateQueries;
47
+ private registerResizeObserver;
49
48
  private resetDataAttributes;
50
49
  private setDataAttributes;
50
+ private onResize;
51
51
  }
52
52
  export type { Dimensions, Features, IndexSignatureParameter, Metadata, QueryResults, };
53
- //# sourceMappingURL=container-query.d.ts.map
@@ -10,4 +10,3 @@ export default interface EmberContainerQueryRegistry {
10
10
  height: typeof HeightHelper;
11
11
  width: typeof WidthHelper;
12
12
  }
13
- //# sourceMappingURL=template-registry.d.ts.map
@@ -1,4 +1,4 @@
1
- import './container-query.css';
1
+ import "./container-query.css"
2
2
  import { hash } from '@ember/helper';
3
3
  import Component from '@glimmer/component';
4
4
  import { tracked } from '@glimmer/tracking';
@@ -8,15 +8,9 @@ import { precompileTemplate } from '@ember/template-compilation';
8
8
  import { setComponentTemplate } from '@ember/component';
9
9
  import { g, i } from 'decorator-transforms/runtime';
10
10
 
11
+ ;
12
+
11
13
  class ContainerQueryComponent extends Component {
12
- static {
13
- g(this.prototype, "dimensions", [tracked]);
14
- }
15
- #dimensions = (i(this, "dimensions"), void 0);
16
- static {
17
- g(this.prototype, "queryResults", [tracked]);
18
- }
19
- #queryResults = (i(this, "queryResults"), void 0);
20
14
  // The dynamic tag is restricted to be immutable
21
15
  tagName = this.args.tagName ?? 'div';
22
16
  updateState = ({
@@ -26,6 +20,14 @@ class ContainerQueryComponent extends Component {
26
20
  this.dimensions = dimensions;
27
21
  this.queryResults = queryResults;
28
22
  };
23
+ static {
24
+ g(this.prototype, "dimensions", [tracked]);
25
+ }
26
+ #dimensions = (i(this, "dimensions"), void 0);
27
+ static {
28
+ g(this.prototype, "queryResults", [tracked]);
29
+ }
30
+ #queryResults = (i(this, "queryResults"), void 0);
29
31
  static {
30
32
  setComponentTemplate(precompileTemplate("\n {{#let (element this.tagName) as |Tag|}}\n <Tag class=\"container-query\" {{containerQuery dataAttributePrefix=@dataAttributePrefix debounce=@debounce features=@features onQuery=this.updateState}} ...attributes>\n {{yield (hash dimensions=this.dimensions features=this.queryResults)}}\n </Tag>\n {{/let}}\n ", {
31
33
  strictMode: true,
@@ -1 +1 @@
1
- {"version":3,"file":"container-query.js","sources":["../../src/components/container-query.gts"],"sourcesContent":["import './container-query.css';\n\nimport { hash } from '@ember/helper';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { element } from 'ember-element-helper';\n\nimport type {\n Dimensions,\n Features,\n IndexSignatureParameter,\n QueryResults,\n} from '../modifiers/container-query.ts';\nimport { default as containerQuery } from '../modifiers/container-query.ts';\n\ninterface ContainerQuerySignature<T extends IndexSignatureParameter> {\n Args: {\n dataAttributePrefix?: string;\n debounce?: number;\n features?: Features<T>;\n tagName?: string;\n };\n Blocks: {\n default: [\n {\n dimensions?: Dimensions;\n features?: QueryResults<T>;\n },\n ];\n };\n Element: Element;\n}\n\nexport default class ContainerQueryComponent<\n T extends IndexSignatureParameter,\n> extends Component<ContainerQuerySignature<T>> {\n @tracked dimensions?: Dimensions;\n @tracked queryResults?: QueryResults<T>;\n\n // The dynamic tag is restricted to be immutable\n tagName = this.args.tagName ?? 'div';\n\n updateState = ({\n dimensions,\n queryResults,\n }: {\n dimensions: Dimensions;\n queryResults: QueryResults<T>;\n }): void => {\n this.dimensions = dimensions;\n this.queryResults = queryResults;\n };\n\n <template>\n {{#let (element this.tagName) as |Tag|}}\n <Tag\n class=\"container-query\"\n {{containerQuery\n dataAttributePrefix=@dataAttributePrefix\n debounce=@debounce\n features=@features\n onQuery=this.updateState\n }}\n ...attributes\n >\n {{yield (hash dimensions=this.dimensions features=this.queryResults)}}\n </Tag>\n {{/let}}\n </template>\n}\n"],"names":["ContainerQueryComponent","Component","g","prototype","tracked","i","void 0","tagName","args","updateState","dimensions","queryResults","setComponentTemplate","precompileTemplate","strictMode","scope","element","containerQuery","hash"],"mappings":";;;;;;;;;;AAiCe,MAAMA,uBAAA,SAEXC,UAAkC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACzCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CACAC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAED;AACAC,EAAAA,OAAA,GAAU,IAAI,CAACC,IAAI,CAACD,OAAO,IAAI,KAAM;AAErCE,EAAAA,WAAA,GAAcA,CAAC;IACbC,UAAU;AACVC,IAAAA;AAID,GAAA,KAAO;IACN,IAAI,CAACD,UAAU,GAAGA,UAAA;IAClB,IAAI,CAACC,YAAY,GAAGA,YAAA;GACpB;AAEF,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAeA,gVAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;wBAAAC,sBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"container-query.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+
1
2
  import { helper } from '@ember/component/helper';
2
3
 
3
4
  const AspectRatioHelper = helper((_positional, named) => {
@@ -1 +1 @@
1
- {"version":3,"file":"aspect-ratio.js","sources":["../../src/helpers/aspect-ratio.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nimport type { Metadata } from '../modifiers/container-query.ts';\n\ninterface AspectRatioHelperSignature {\n Args: {\n Named: {\n max?: number;\n min?: number;\n };\n Positional: [];\n };\n Return: Metadata;\n}\n\nconst AspectRatioHelper = helper<AspectRatioHelperSignature>(\n (_positional, named) => {\n const dimension = 'aspectRatio';\n const max = named.max ?? Infinity;\n const min = named.min ?? 0;\n\n return { dimension, max, min };\n },\n);\n\nexport default AspectRatioHelper;\n"],"names":["AspectRatioHelper","helper","_positional","named","dimension","max","Infinity","min"],"mappings":";;AAeMA,MAAAA,iBAAiB,GAAGC,MAAM,CAC9B,CAACC,WAAW,EAAEC,KAAK,KAAK;EACtB,MAAMC,SAAS,GAAG,aAAa;AAC/B,EAAA,MAAMC,GAAG,GAAGF,KAAK,CAACE,GAAG,IAAIC,QAAQ;AACjC,EAAA,MAAMC,GAAG,GAAGJ,KAAK,CAACI,GAAG,IAAI,CAAC;EAE1B,OAAO;IAAEH,SAAS;IAAEC,GAAG;AAAEE,IAAAA;GAAK;AAChC,CACF;;;;"}
1
+ {"version":3,"file":"aspect-ratio.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+
1
2
  import { helper } from '@ember/component/helper';
2
3
 
3
4
  const HeightHelper = helper((_positional, named) => {
@@ -1 +1 @@
1
- {"version":3,"file":"height.js","sources":["../../src/helpers/height.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nimport type { Metadata } from '../modifiers/container-query.ts';\n\ninterface HeightHelperSignature {\n Args: {\n Named: {\n max?: number;\n min?: number;\n };\n Positional: [];\n };\n Return: Metadata;\n}\n\nconst HeightHelper = helper<HeightHelperSignature>((_positional, named) => {\n const dimension = 'height';\n const max = named.max ?? Infinity;\n const min = named.min ?? 0;\n\n return { dimension, max, min };\n});\n\nexport default HeightHelper;\n"],"names":["HeightHelper","helper","_positional","named","dimension","max","Infinity","min"],"mappings":";;AAeMA,MAAAA,YAAY,GAAGC,MAAM,CAAwB,CAACC,WAAW,EAAEC,KAAK,KAAK;EACzE,MAAMC,SAAS,GAAG,QAAQ;AAC1B,EAAA,MAAMC,GAAG,GAAGF,KAAK,CAACE,GAAG,IAAIC,QAAQ;AACjC,EAAA,MAAMC,GAAG,GAAGJ,KAAK,CAACI,GAAG,IAAI,CAAC;EAE1B,OAAO;IAAEH,SAAS;IAAEC,GAAG;AAAEE,IAAAA;GAAK;AAChC,CAAC;;;;"}
1
+ {"version":3,"file":"height.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+
1
2
  import { helper } from '@ember/component/helper';
2
3
 
3
4
  const WidthHelper = helper((_positional, named) => {
@@ -1 +1 @@
1
- {"version":3,"file":"width.js","sources":["../../src/helpers/width.ts"],"sourcesContent":["import { helper } from '@ember/component/helper';\n\nimport type { Metadata } from '../modifiers/container-query.ts';\n\ninterface WidthHelperSignature {\n Args: {\n Named: {\n max?: number;\n min?: number;\n };\n Positional: [];\n };\n Return: Metadata;\n}\n\nconst WidthHelper = helper<WidthHelperSignature>((_positional, named) => {\n const dimension = 'width';\n const max = named.max ?? Infinity;\n const min = named.min ?? 0;\n\n return { dimension, max, min };\n});\n\nexport default WidthHelper;\n"],"names":["WidthHelper","helper","_positional","named","dimension","max","Infinity","min"],"mappings":";;AAeMA,MAAAA,WAAW,GAAGC,MAAM,CAAuB,CAACC,WAAW,EAAEC,KAAK,KAAK;EACvE,MAAMC,SAAS,GAAG,OAAO;AACzB,EAAA,MAAMC,GAAG,GAAGF,KAAK,CAACE,GAAG,IAAIC,QAAQ;AACjC,EAAA,MAAMC,GAAG,GAAGJ,KAAK,CAACI,GAAG,IAAI,CAAC;EAE1B,OAAO;IAAEH,SAAS;IAAEC,GAAG;AAAEE,IAAAA;GAAK;AAChC,CAAC;;;;"}
1
+ {"version":3,"file":"width.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  export { default as ContainerQuery } from './components/container-query.js';
2
3
  export { default as aspectRatio } from './helpers/aspect-ratio.js';
3
4
  export { default as height } from './helpers/height.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+
1
2
  import { registerDestructor } from '@ember/destroyable';
2
3
  import { action } from '@ember/object';
3
4
  import { debounce } from '@ember/runloop';
@@ -10,11 +11,11 @@ class ContainerQueryModifier extends Modifier {
10
11
  g(this.prototype, "resizeObserver", [service]);
11
12
  }
12
13
  #resizeObserver = (i(this, "resizeObserver"), void 0);
13
- dimensions;
14
- queryResults;
15
14
  _dataAttributes = [];
16
15
  _element;
17
16
  _named;
17
+ dimensions;
18
+ queryResults;
18
19
  get dataAttributePrefix() {
19
20
  return this._named.dataAttributePrefix ?? 'container-query';
20
21
  }
@@ -30,28 +31,33 @@ class ContainerQueryModifier extends Modifier {
30
31
  this.resizeObserver.unobserve(this._element, this.onResize);
31
32
  });
32
33
  }
34
+ evaluateQueries() {
35
+ const queryResults = {};
36
+ for (const [featureName, metadata] of Object.entries(this.features)) {
37
+ const {
38
+ dimension,
39
+ min,
40
+ max
41
+ } = metadata;
42
+ const value = this.dimensions[dimension];
43
+ queryResults[featureName] = min <= value && value < max;
44
+ }
45
+ this.queryResults = queryResults;
46
+ }
47
+ measureDimensions(element) {
48
+ const height = element.clientHeight;
49
+ const width = element.clientWidth;
50
+ this.dimensions = {
51
+ aspectRatio: width / height,
52
+ height,
53
+ width
54
+ };
55
+ }
33
56
  modify(element, _positional, named) {
34
57
  this._named = named;
35
58
  this.registerResizeObserver(element);
36
59
  this.queryContainer(element);
37
60
  }
38
- onResize(resizeObserverEntry) {
39
- const element = resizeObserverEntry.target;
40
- if (this.debounce > 0) {
41
- // eslint-disable-next-line ember/no-runloop
42
- debounce(this, this.queryContainer, element, this.debounce);
43
- return;
44
- }
45
- this.queryContainer(element);
46
- }
47
- static {
48
- n(this.prototype, "onResize", [action]);
49
- }
50
- registerResizeObserver(element) {
51
- this.resizeObserver.unobserve(this._element, this.onResize);
52
- this._element = element;
53
- this.resizeObserver.observe(this._element, this.onResize);
54
- }
55
61
  queryContainer(element) {
56
62
  this.measureDimensions(element);
57
63
  this.evaluateQueries();
@@ -62,27 +68,10 @@ class ContainerQueryModifier extends Modifier {
62
68
  queryResults: this.queryResults
63
69
  });
64
70
  }
65
- measureDimensions(element) {
66
- const height = element.clientHeight;
67
- const width = element.clientWidth;
68
- this.dimensions = {
69
- aspectRatio: width / height,
70
- height,
71
- width
72
- };
73
- }
74
- evaluateQueries() {
75
- const queryResults = {};
76
- for (const [featureName, metadata] of Object.entries(this.features)) {
77
- const {
78
- dimension,
79
- min,
80
- max
81
- } = metadata;
82
- const value = this.dimensions[dimension];
83
- queryResults[featureName] = min <= value && value < max;
84
- }
85
- this.queryResults = queryResults;
71
+ registerResizeObserver(element) {
72
+ this.resizeObserver.unobserve(this._element, this.onResize);
73
+ this._element = element;
74
+ this.resizeObserver.observe(this._element, this.onResize);
86
75
  }
87
76
  resetDataAttributes(element) {
88
77
  this._dataAttributes.forEach(dataAttribute => {
@@ -101,6 +90,18 @@ class ContainerQueryModifier extends Modifier {
101
90
  this._dataAttributes.push(dataAttribute);
102
91
  }
103
92
  }
93
+ onResize(resizeObserverEntry) {
94
+ const element = resizeObserverEntry.target;
95
+ if (this.debounce > 0) {
96
+ // eslint-disable-next-line ember/no-runloop
97
+ debounce(this, this.queryContainer, element, this.debounce);
98
+ return;
99
+ }
100
+ this.queryContainer(element);
101
+ }
102
+ static {
103
+ n(this.prototype, "onResize", [action]);
104
+ }
104
105
  }
105
106
 
106
107
  export { ContainerQueryModifier as default };
@@ -1 +1 @@
1
- {"version":3,"file":"container-query.js","sources":["../../src/modifiers/container-query.ts"],"sourcesContent":["import { registerDestructor } from '@ember/destroyable';\nimport { action } from '@ember/object';\nimport type Owner from '@ember/owner';\nimport { debounce as _debounce } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport type { ArgsFor, NamedArgs, PositionalArgs } from 'ember-modifier';\nimport Modifier from 'ember-modifier';\n\ntype IndexSignatureParameter = string | number | symbol;\ntype ObjectEntry<T> = [keyof T, T[keyof T]];\ntype ObjectEntries<T> = ObjectEntry<T>[];\n\ntype Dimensions = {\n aspectRatio: number;\n height: number;\n width: number;\n};\n\ntype Metadata = {\n dimension: keyof Dimensions;\n max: number;\n min: number;\n};\n\ntype Features<T extends IndexSignatureParameter> = Record<T, Metadata>;\n\ntype QueryResults<T extends IndexSignatureParameter> = Record<T, boolean>;\n\ninterface ContainerQueryModifierSignature<T extends IndexSignatureParameter> {\n Args: {\n Named: {\n dataAttributePrefix?: string;\n debounce?: number;\n features?: Features<T>;\n onQuery?: ({\n dimensions,\n queryResults,\n }: {\n dimensions: Dimensions;\n queryResults: QueryResults<T>;\n }) => void;\n };\n Positional: [];\n };\n Element: Element;\n}\n\nexport default class ContainerQueryModifier<\n T extends IndexSignatureParameter,\n> extends Modifier<ContainerQueryModifierSignature<T>> {\n @service declare private readonly resizeObserver;\n\n dimensions!: Dimensions;\n queryResults!: QueryResults<T>;\n\n private _dataAttributes: string[] = [];\n private _element?: Element;\n private _named!: NamedArgs<ContainerQueryModifierSignature<T>>;\n\n get dataAttributePrefix(): string {\n return this._named.dataAttributePrefix ?? 'container-query';\n }\n\n get debounce(): number {\n return this._named.debounce ?? 0;\n }\n\n get features(): Features<T> {\n return this._named.features ?? ({} as Features<T>);\n }\n\n constructor(owner: Owner, args: ArgsFor<ContainerQueryModifierSignature<T>>) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this.resizeObserver.unobserve(this._element, this.onResize);\n });\n }\n\n modify(\n element: Element,\n _positional: PositionalArgs<ContainerQueryModifierSignature<T>>,\n named: NamedArgs<ContainerQueryModifierSignature<T>>,\n ): void {\n this._named = named;\n\n this.registerResizeObserver(element);\n this.queryContainer(element);\n }\n\n @action private onResize(resizeObserverEntry: ResizeObserverEntry): void {\n const element = resizeObserverEntry.target;\n\n if (this.debounce > 0) {\n // eslint-disable-next-line ember/no-runloop\n _debounce(this, this.queryContainer, element, this.debounce);\n return;\n }\n\n this.queryContainer(element);\n }\n\n private registerResizeObserver(element: Element): void {\n this.resizeObserver.unobserve(this._element, this.onResize);\n\n this._element = element;\n this.resizeObserver.observe(this._element, this.onResize);\n }\n\n private queryContainer(element: Element): void {\n this.measureDimensions(element);\n this.evaluateQueries();\n this.resetDataAttributes(element);\n this.setDataAttributes(element);\n\n this._named.onQuery?.({\n dimensions: this.dimensions,\n queryResults: this.queryResults,\n });\n }\n\n private measureDimensions(element: Element): void {\n const height = element.clientHeight;\n const width = element.clientWidth;\n\n this.dimensions = {\n aspectRatio: width / height,\n height,\n width,\n };\n }\n\n private evaluateQueries(): void {\n const queryResults = {} as QueryResults<T>;\n\n for (const [featureName, metadata] of Object.entries(\n this.features,\n ) as ObjectEntries<Features<T>>) {\n const { dimension, min, max } = metadata;\n const value = this.dimensions[dimension];\n\n queryResults[featureName] = min <= value && value < max;\n }\n\n this.queryResults = queryResults;\n }\n\n private resetDataAttributes(element: Element): void {\n this._dataAttributes.forEach((dataAttribute) => {\n element.removeAttribute(dataAttribute);\n });\n\n this._dataAttributes = [];\n }\n\n private setDataAttributes(element: Element): void {\n const prefix = this.dataAttributePrefix;\n\n for (const [featureName, meetsFeature] of Object.entries(\n this.queryResults,\n ) as ObjectEntries<QueryResults<T>>) {\n if (!meetsFeature) {\n continue;\n }\n\n const dataAttribute = prefix\n ? `data-${prefix}-${String(featureName)}`\n : `data-${String(featureName)}`;\n\n element.setAttribute(dataAttribute, '');\n\n this._dataAttributes.push(dataAttribute);\n }\n }\n}\n\nexport type {\n Dimensions,\n Features,\n IndexSignatureParameter,\n Metadata,\n QueryResults,\n};\n"],"names":["ContainerQueryModifier","Modifier","g","prototype","service","i","void 0","dimensions","queryResults","_dataAttributes","_element","_named","dataAttributePrefix","debounce","features","constructor","owner","args","registerDestructor","resizeObserver","unobserve","onResize","modify","element","_positional","named","registerResizeObserver","queryContainer","resizeObserverEntry","target","_debounce","n","action","observe","measureDimensions","evaluateQueries","resetDataAttributes","setDataAttributes","onQuery","height","clientHeight","width","clientWidth","aspectRatio","featureName","metadata","Object","entries","dimension","min","max","value","forEach","dataAttribute","removeAttribute","prefix","meetsFeature","String","setAttribute","push"],"mappings":"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"}
1
+ {"version":3,"file":"container-query.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-container-query",
3
- "version": "5.1.1",
3
+ "version": "6.0.0",
4
4
  "description": "Make container queries that harness the power of Ember",
5
5
  "keywords": [
6
6
  "container-queries",
@@ -48,39 +48,39 @@
48
48
  "dist"
49
49
  ],
50
50
  "dependencies": {
51
- "@embroider/addon-shim": "^1.9.0",
51
+ "@embroider/addon-shim": "^1.10.0",
52
52
  "decorator-transforms": "^2.3.0",
53
- "ember-element-helper": "^0.8.6",
54
- "ember-modifier": "^3.2.7 || ^4.2.0",
53
+ "ember-element-helper": "^0.8.7",
54
+ "ember-modifier": "^4.2.0",
55
55
  "ember-resize-observer-service": "^1.1.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@babel/core": "^7.26.9",
59
- "@babel/plugin-transform-typescript": "^7.26.8",
60
- "@babel/runtime": "^7.26.9",
61
- "@embroider/addon-dev": "^7.1.1",
58
+ "@babel/core": "^7.27.1",
59
+ "@babel/plugin-transform-typescript": "^7.27.1",
60
+ "@babel/runtime": "^7.27.1",
61
+ "@embroider/addon-dev": "^8.0.1",
62
62
  "@glimmer/component": "^2.0.0",
63
63
  "@glimmer/tracking": "^1.1.2",
64
64
  "@glint/core": "^1.5.2",
65
65
  "@glint/environment-ember-loose": "^1.5.2",
66
66
  "@glint/environment-ember-template-imports": "^1.5.2",
67
67
  "@glint/template": "^1.5.2",
68
- "@ijlee2-frontend-configs/ember-template-lint": "^0.5.0",
69
- "@ijlee2-frontend-configs/eslint-config-ember": "^0.3.1",
70
- "@ijlee2-frontend-configs/prettier": "^0.2.1",
71
- "@ijlee2-frontend-configs/typescript": "^0.3.1",
68
+ "@ijlee2-frontend-configs/ember-template-lint": "^1.0.0",
69
+ "@ijlee2-frontend-configs/eslint-config-ember": "^1.0.0",
70
+ "@ijlee2-frontend-configs/prettier": "^1.0.0",
72
71
  "@rollup/plugin-babel": "^6.0.4",
73
- "babel-plugin-ember-template-compilation": "^2.3.0",
72
+ "@tsconfig/ember": "^3.0.10",
73
+ "babel-plugin-ember-template-compilation": "^3.0.0",
74
74
  "concurrently": "^9.1.2",
75
- "ember-source": "^6.2.0",
76
- "ember-template-lint": "^7.0.1",
77
- "eslint": "^9.21.0",
75
+ "ember-source": "^6.4.0",
76
+ "ember-template-lint": "^7.6.0",
77
+ "eslint": "^9.26.0",
78
78
  "prettier": "^3.5.3",
79
- "rollup": "^4.34.9",
80
- "typescript": "^5.8.2"
79
+ "rollup": "^4.40.2",
80
+ "typescript": "^5.8.3"
81
81
  },
82
82
  "engines": {
83
- "node": "18.* || >= 20"
83
+ "node": "20.* || >= 22"
84
84
  },
85
85
  "ember": {
86
86
  "edition": "octane"
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-query.d.ts","sourceRoot":"","sources":["../../src/components/container-query.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAG/B,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,UAAU,uBAAuB,CAAC,CAAC,SAAS,uBAAuB;IACjE,IAAI,EAAE;QACJ,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,UAAU,CAAC,EAAE,UAAU,CAAC;gBACxB,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;aAC5B;SACF,CAAC;KACH,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,uBAAuB,CAC1C,CAAC,SAAS,uBAAuB,CACjC,SAAQ,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAGxC,OAAO,SAA8B;IAErC,WAAW,GAAI,+BAGZ;QACD,UAAU,EAAE,UAAU,CAAC;QACvB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;KAC/B,KAAG,IAAI,CAGN;CA4BH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../src/helpers/aspect-ratio.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,UAAU,0BAA0B;IAClC,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,UAAU,EAAE,EAAE,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,QAAA,MAAM,iBAAiB,mFAQtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"height.d.ts","sourceRoot":"","sources":["../../src/helpers/height.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,UAAU,qBAAqB;IAC7B,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,UAAU,EAAE,EAAE,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,QAAA,MAAM,YAAY,8EAMhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"width.d.ts","sourceRoot":"","sources":["../../src/helpers/width.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,UAAU,EAAE,EAAE,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,QAAA,MAAM,WAAW,6EAMf,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,QAAQ,EACR,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-query.d.ts","sourceRoot":"","sources":["../../src/modifiers/container-query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,KAAK,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAIxD,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,SAAS,uBAAuB,IAAI,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEvE,KAAK,YAAY,CAAC,CAAC,SAAS,uBAAuB,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAE1E,UAAU,+BAA+B,CAAC,CAAC,SAAS,uBAAuB;IACzE,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,CAAC,EACT,UAAU,EACV,YAAY,GACb,EAAE;gBACD,UAAU,EAAE,UAAU,CAAC;gBACvB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;aAC/B,KAAK,IAAI,CAAC;SACZ,CAAC;QACF,UAAU,EAAE,EAAE,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,sBAAsB,CACzC,CAAC,SAAS,uBAAuB,CACjC,SAAQ,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IACpD,iBAAkC,cAAc,CAAC;IAEjD,UAAU,EAAG,UAAU,CAAC;IACxB,YAAY,EAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAiD;IAE/D,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAE1B;gBAEW,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAQ3E,MAAM,CACJ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,cAAc,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAC/D,KAAK,EAAE,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,GACnD,IAAI;IAOC,OAAO,CAAC,QAAQ;IAYxB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;CAmB1B;AAED,YAAY,EACV,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,QAAQ,EACR,YAAY,GACb,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-registry.d.ts","sourceRoot":"","sources":["../src/template-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,uBAAuB,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,sBAAsB,MAAM,gCAAgC,CAAC;AAEzE,MAAM,CAAC,OAAO,WAAW,2BAA2B;IAClD,cAAc,EAAE,OAAO,uBAAuB,CAAC;IAC/C,cAAc,EAAE,OAAO,iBAAiB,CAAC;IACzC,iBAAiB,EAAE,OAAO,sBAAsB,CAAC;IACjD,MAAM,EAAE,OAAO,YAAY,CAAC;IAC5B,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B"}