diff --git a/.changeset/quick-countries-burn.md b/.changeset/quick-countries-burn.md new file mode 100644 index 000000000..756f6238d --- /dev/null +++ b/.changeset/quick-countries-burn.md @@ -0,0 +1,5 @@ +--- +"@lblod/ember-rdfa-editor": minor +--- + +Update to latest ember-appuniversum v3.4.0 diff --git a/.changeset/tall-tools-wink.md b/.changeset/tall-tools-wink.md new file mode 100644 index 000000000..14d6319a3 --- /dev/null +++ b/.changeset/tall-tools-wink.md @@ -0,0 +1,6 @@ +--- +"@lblod/ember-rdfa-editor": minor +--- + +Update icon usage to inline SVGs instead of using svgiconset. +If using ember-appuniversum version greater than 3.4.1, icon components are now used instead of string icon names, this uses inline SVGs that can be supported in unusual hosting environments. diff --git a/.eslintrc.js b/.eslintrc.js index 9d57d8922..10bff6d71 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -31,6 +31,24 @@ module.exports = { ], }, }, + { + files: ['**/*.gts'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }, + ], + }, + }, // node files { files: [ diff --git a/.prettierrc.js b/.prettierrc.js index e5f7b6d1e..c7dd12b35 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,9 +1,10 @@ 'use strict'; module.exports = { + plugins: ['prettier-plugin-ember-template-tag'], overrides: [ { - files: '*.{js,ts}', + files: '*.{js,ts,gjs,gts}', options: { singleQuote: true, }, diff --git a/addon/components/_private/attribute-editor/index.hbs b/addon/components/_private/attribute-editor/index.hbs index d62ed9d53..12975d655 100644 --- a/addon/components/_private/attribute-editor/index.hbs +++ b/addon/components/_private/attribute-editor/index.hbs @@ -1,40 +1,41 @@ - +{{! @glint-nocheck: not typesafe yet }} +
- Node attributes + Node attributes {{#if this.isEditing}} Cancel Save {{else}} Edit {{/if}} @@ -45,7 +46,7 @@ {{#each-in this.node.value.attrs as |key value|}} -
+
{{#if (and this.isEditing (this.isEditable key))}} {{#let (unique-id) as |id|}} @@ -56,21 +57,21 @@ {{else}} {{/if}} {{/let}} {{/let}} {{else}}

{{key}}

-
{{if value (this.formatValue value) ""}}
+
{{if value (this.formatValue value) ''}}
{{/if}}
diff --git a/addon/components/_private/attribute-editor/index.ts b/addon/components/_private/attribute-editor/index.ts index 66c6d3463..526043851 100644 --- a/addon/components/_private/attribute-editor/index.ts +++ b/addon/components/_private/attribute-editor/index.ts @@ -7,6 +7,36 @@ import TransformUtils from '@lblod/ember-rdfa-editor/utils/_private/transform-ut import type { ResolvedPNode } from '@lblod/ember-rdfa-editor/utils/_private/types'; import { Changeset, EmberChangeset } from 'ember-changeset'; import { trackedReset } from 'tracked-toolbox'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const CheckIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/check') + .CheckIcon + : 'check'; +const PencilIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/pencil') + .PencilIcon + : 'pencil'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; +const ChevronUpIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-up') + .ChevronUpIcon + : 'chevron-up'; type Args = { controller: SayController; @@ -14,6 +44,11 @@ type Args = { }; export default class AttributeEditor extends Component { + CheckIcon = CheckIcon; + PencilIcon = PencilIcon; + ChevronDownIcon = ChevronDownIcon; + ChevronUpIcon = ChevronUpIcon; + @tracked collapsed = false; @trackedReset({ memo: 'node', diff --git a/addon/components/_private/debug-info/index.hbs b/addon/components/_private/debug-info/index.hbs index 67d96fd6a..0fc7182cb 100644 --- a/addon/components/_private/debug-info/index.hbs +++ b/addon/components/_private/debug-info/index.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{!-- @@ -6,7 +7,7 @@ @@ -26,7 +27,7 @@ diff --git a/addon/components/_private/debug-info/index.ts b/addon/components/_private/debug-info/index.ts index 47eac39b7..a6ae0719d 100644 --- a/addon/components/_private/debug-info/index.ts +++ b/addon/components/_private/debug-info/index.ts @@ -1,11 +1,30 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import type { ResolvedPNode } from '@lblod/ember-rdfa-editor/utils/_private/types'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; +const ChevronUpIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-up') + .ChevronUpIcon + : 'chevron-up'; type Args = { node: ResolvedPNode; }; export default class DebugInfo extends Component { + ChevronDownIcon = ChevronDownIcon; + ChevronUpIcon = ChevronUpIcon; + @tracked collapsed = false; get pos() { diff --git a/addon/components/_private/doc-editor/info-pill.hbs b/addon/components/_private/doc-editor/info-pill.hbs index 5be50db6c..bb75a8a3b 100644 --- a/addon/components/_private/doc-editor/info-pill.hbs +++ b/addon/components/_private/doc-editor/info-pill.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#if this.doc}} \ No newline at end of file diff --git a/addon/components/_private/rdfa-editor/index.hbs b/addon/components/_private/rdfa-editor/index.hbs index 52403d1ba..2ac866a40 100644 --- a/addon/components/_private/rdfa-editor/index.hbs +++ b/addon/components/_private/rdfa-editor/index.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }}
@@ -9,7 +10,7 @@ {{this.type}} diff --git a/addon/components/_private/rdfa-editor/index.ts b/addon/components/_private/rdfa-editor/index.ts index 61d7f3e3b..9d0e5269b 100644 --- a/addon/components/_private/rdfa-editor/index.ts +++ b/addon/components/_private/rdfa-editor/index.ts @@ -7,6 +7,22 @@ import RdfaRelationshipEditor from './relationship-editor'; import RdfaWrappingUtils from './wrapping-utils'; import RemoveNode from './remove-node'; import type { ResolvedPNode } from '@lblod/ember-rdfa-editor/utils/_private/types'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; +const ChevronUpIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-up') + .ChevronUpIcon + : 'chevron-up'; type Args = { controller?: SayController; @@ -19,6 +35,8 @@ export default class RdfaEditor extends Component { // Disable the rdfa-type convertor for now // RdfaTypeConvertor = RdfaTypeConvertor; RemoveNode = RemoveNode; + ChevronDownIcon = ChevronDownIcon; + ChevronUpIcon = ChevronUpIcon; @tracked collapsed = false; diff --git a/addon/components/_private/rdfa-editor/outgoing-triple-form.hbs b/addon/components/_private/rdfa-editor/outgoing-triple-form.hbs index 3c0f1c473..3bce17ee3 100644 --- a/addon/components/_private/rdfa-editor/outgoing-triple-form.hbs +++ b/addon/components/_private/rdfa-editor/outgoing-triple-form.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }}
+{{! @glint-nocheck: not typesafe yet }} + - Properties + Properties Add property @@ -18,9 +19,9 @@ {{#each this.properties as |prop index|}} {{#if (this.isPlainTriple prop)}} -
+

predicate: {{prop.predicate}}

{{#if prop.object.datatype}}

datatype: {{prop.object.datatype.value}}

@@ -28,27 +29,27 @@ {{#if prop.object.language}}

language: {{prop.object.language}}

{{/if}} - {{#if (eq prop.object.termType "ContentLiteral")}} + {{#if (eq prop.object.termType 'ContentLiteral')}} content-predicate {{else}}

value: {{prop.object.value}}

{{/if}}
- + Edit property Remove property diff --git a/addon/components/_private/rdfa-editor/property-editor/index.ts b/addon/components/_private/rdfa-editor/property-editor/index.ts index bb228c453..e230020c4 100644 --- a/addon/components/_private/rdfa-editor/property-editor/index.ts +++ b/addon/components/_private/rdfa-editor/property-editor/index.ts @@ -11,6 +11,35 @@ import type { PlainTriple, } from '@lblod/ember-rdfa-editor/core/rdfa-processor'; import { isLinkToNode } from '@lblod/ember-rdfa-editor/utils/rdfa-utils'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const PlusIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/plus') + .PlusIcon + : 'plus'; +const PencilIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/pencil') + .PencilIcon + : 'pencil'; +const BinIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/bin').BinIcon + : 'bin'; +const ThreeDotsIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/three-dots') + .ThreeDotsIcon + : 'three-dots'; type CreationStatus = { mode: 'creation'; @@ -27,6 +56,10 @@ type Args = { }; export default class RdfaPropertyEditor extends Component { Modal = PropertyEditorModal; + PlusIcon = PlusIcon; + PencilIcon = PencilIcon; + BinIcon = BinIcon; + ThreeDotsIcon = ThreeDotsIcon; @tracked status?: Status; isPlainTriple = (triple: OutgoingTriple) => !isLinkToNode(triple); diff --git a/addon/components/_private/rdfa-editor/property-editor/modal.hbs b/addon/components/_private/rdfa-editor/property-editor/modal.hbs index eb34d3b0f..7d9bb1088 100644 --- a/addon/components/_private/rdfa-editor/property-editor/modal.hbs +++ b/addon/components/_private/rdfa-editor/property-editor/modal.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#let (unique-id) as |formId|}} {{#each this.contentPredicates as |entry|}} {{entry.prop.predicate}} - + Remove content predicate diff --git a/addon/components/_private/rdfa-editor/relationship-editor/content-predicate-list.ts b/addon/components/_private/rdfa-editor/relationship-editor/content-predicate-list.ts index ff26d30b7..fddce4c9e 100644 --- a/addon/components/_private/rdfa-editor/relationship-editor/content-predicate-list.ts +++ b/addon/components/_private/rdfa-editor/relationship-editor/content-predicate-list.ts @@ -1,6 +1,21 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import type { OutgoingTriple } from '@lblod/ember-rdfa-editor/core/rdfa-processor'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ThreeDotsIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/three-dots') + .ThreeDotsIcon + : 'three-dots'; +const BinIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/bin').BinIcon + : 'bin'; interface Args { properties: OutgoingTriple[]; @@ -8,6 +23,9 @@ interface Args { removeProperty: (index: number) => void; } export default class ContentPredicateListComponent extends Component { + ThreeDotsIcon = ThreeDotsIcon; + BinIcon = BinIcon; + @tracked newPredicate = ''; get contentPredicates() { diff --git a/addon/components/_private/rdfa-editor/relationship-editor/index.hbs b/addon/components/_private/rdfa-editor/relationship-editor/index.hbs index 2ecfb4d1f..654fe301c 100644 --- a/addon/components/_private/rdfa-editor/relationship-editor/index.hbs +++ b/addon/components/_private/rdfa-editor/relationship-editor/index.hbs @@ -1,14 +1,15 @@ - +{{! @glint-nocheck: not typesafe yet }} + - Relationships + Relationships Add relationship @@ -17,37 +18,37 @@ {{#if this.showOutgoingSection}}
Outgoing {{#if this.hasOutgoing}} {{#each this.properties as |prop index|}} {{#if (this.isNodeLink prop)}} {{prop.predicate}} - + Edit relationship Remove outgoing @@ -63,28 +64,28 @@ {{/if}}
Backlinks {{#if this.backlinks}} {{#each this.backlinks as |backlink index|}} {{backlink.predicate}} - + Remove backlink @@ -98,7 +99,7 @@
{{#if this.isResource}}
- + Content Predicate =3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/plus') + .PlusIcon + : 'plus'; +const ExternalLinkIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync( + '@appuniversum/ember-appuniversum/components/icons/external-link', + ).ExternalLinkIcon + : 'external-link'; +const ThreeDotsIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/three-dots') + .ThreeDotsIcon + : 'three-dots'; +const PencilIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/pencil') + .PencilIcon + : 'pencil'; +const BinIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/bin').BinIcon + : 'bin'; type Args = { controller?: SayController; @@ -44,6 +81,12 @@ type UpdateStatus = { type Status = CreationStatus | UpdateStatus; export default class RdfaRelationshipEditor extends Component { + PlusIcon = PlusIcon; + ExternalLinkIcon = ExternalLinkIcon; + ThreeDotsIcon = ThreeDotsIcon; + PencilIcon = PencilIcon; + BinIcon = BinIcon; + @tracked modalOpen = false; @tracked _statusMessage: StatusMessageForNode | null = null; diff --git a/addon/components/_private/rdfa-editor/relationship-editor/modal.hbs b/addon/components/_private/rdfa-editor/relationship-editor/modal.hbs index 2b5dfd8d7..81952442b 100644 --- a/addon/components/_private/rdfa-editor/relationship-editor/modal.hbs +++ b/addon/components/_private/rdfa-editor/relationship-editor/modal.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#let (unique-id) as |formId|}} <:title>Add Relationship diff --git a/addon/components/_private/rdfa-editor/remove-node/index.hbs b/addon/components/_private/rdfa-editor/remove-node/index.hbs index 0f88e8441..fc098d92b 100644 --- a/addon/components/_private/rdfa-editor/remove-node/index.hbs +++ b/addon/components/_private/rdfa-editor/remove-node/index.hbs @@ -1,22 +1,23 @@ +{{! @glint-nocheck: not typesafe yet }} Remove node Are you sure you want to delete this RDFA node? @@ -24,10 +25,10 @@ - + Yes - + No diff --git a/addon/components/_private/rdfa-editor/remove-node/index.ts b/addon/components/_private/rdfa-editor/remove-node/index.ts index b27b5bfdc..309bd85e3 100644 --- a/addon/components/_private/rdfa-editor/remove-node/index.ts +++ b/addon/components/_private/rdfa-editor/remove-node/index.ts @@ -1,5 +1,15 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const AlertTriangleIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync( + '@appuniversum/ember-appuniversum/components/icons/alert-triangle', + ).AlertTriangleIcon + : 'alert-triangle'; import { type SayController } from '@lblod/ember-rdfa-editor'; import { type ResolvedPNode } from '@lblod/ember-rdfa-editor/utils/_private/types'; @@ -10,6 +20,8 @@ type Args = { }; export default class RemoveNode extends Component { + AlertTriangleIcon = AlertTriangleIcon; + @tracked showDialog = false; get controller() { diff --git a/addon/components/_private/rdfa-editor/wrapping-utils/index.hbs b/addon/components/_private/rdfa-editor/wrapping-utils/index.hbs index 7853e386c..487a9ef1d 100644 --- a/addon/components/_private/rdfa-editor/wrapping-utils/index.hbs +++ b/addon/components/_private/rdfa-editor/wrapping-utils/index.hbs @@ -1,32 +1,33 @@ - +{{! @glint-nocheck: not typesafe yet }} + - + Wrap With Block Resource Wrap With Block Literal - + Wrap With Inline Resource Wrap With Inline Literal diff --git a/addon/components/_private/rdfa-editor/wrapping-utils/index.ts b/addon/components/_private/rdfa-editor/wrapping-utils/index.ts index bf147fbb5..8192b94b3 100644 --- a/addon/components/_private/rdfa-editor/wrapping-utils/index.ts +++ b/addon/components/_private/rdfa-editor/wrapping-utils/index.ts @@ -9,6 +9,15 @@ import { import WrappingModal from './modal'; import type { ResolvedPNode } from '@lblod/ember-rdfa-editor/utils/_private/types'; import { wrapInlineLiteral } from '@lblod/ember-rdfa-editor/commands/_private/rdfa-commands/wrap-inline-literal'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const PlusIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/plus') + .PlusIcon + : 'plus'; type Args = { controller?: SayController; @@ -16,6 +25,8 @@ type Args = { }; export default class WrappingUtils extends Component { + PlusIcon = PlusIcon; + @tracked modalOpen = false; @tracked wrapWithResource; diff --git a/addon/components/_private/rdfa-editor/wrapping-utils/modal.hbs b/addon/components/_private/rdfa-editor/wrapping-utils/modal.hbs index 726e669df..8852f3b5c 100644 --- a/addon/components/_private/rdfa-editor/wrapping-utils/modal.hbs +++ b/addon/components/_private/rdfa-editor/wrapping-utils/modal.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#let (unique-id) as |formId|}}
@@ -16,7 +17,7 @@ {{#if this.expanded}} {{else}}
-
+
\ No newline at end of file diff --git a/addon/components/collapsible.ts b/addon/components/collapsible.ts index de5012a0a..ca96a0993 100644 --- a/addon/components/collapsible.ts +++ b/addon/components/collapsible.ts @@ -1,9 +1,27 @@ import { action } from '@ember/object'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const RemoveIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/remove') + .RemoveIcon + : 'remove'; +const AddIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/add').AddIcon + : 'add'; type Args = { expandedInitially?: boolean }; export default class CollapsibleComponent extends Component { + RemoveIcon = RemoveIcon; + AddIcon = AddIcon; + @tracked _expanded: boolean | null = null; get expanded() { diff --git a/addon/components/debug-tools.hbs b/addon/components/debug-tools.hbs index 94835bb05..8b8a5350d 100644 --- a/addon/components/debug-tools.hbs +++ b/addon/components/debug-tools.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }}
{{#if this.dropdownOpen}}
{{#if (this.verticalAlignActive style.value)}} - + {{/if}} {{this.htmlSafe style.icon}} {{style.label}} diff --git a/addon/components/plugins/table/vertical-align.ts b/addon/components/plugins/table/vertical-align.ts index 2563b2e56..385b152d8 100644 --- a/addon/components/plugins/table/vertical-align.ts +++ b/addon/components/plugins/table/vertical-align.ts @@ -9,6 +9,22 @@ import { Velcro } from 'ember-velcro'; import { selectionCell, setCellAttr } from '@say-editor/prosemirror-tables'; import { inject as service } from '@ember/service'; import IntlService from 'ember-intl/services/intl'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; +const CheckIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/check') + .CheckIcon + : 'check'; type Args = { controller: SayController; @@ -46,6 +62,9 @@ const icons: Record = { }; export default class VerticalAlign extends Component { + ChevronDownIcon = ChevronDownIcon; + CheckIcon = CheckIcon; + @service declare intl: IntlService; dropdownButton?: HTMLElement; diff --git a/addon/components/plugins/text-style/bold.gts b/addon/components/plugins/text-style/bold.gts new file mode 100644 index 000000000..a34a80f89 --- /dev/null +++ b/addon/components/plugins/text-style/bold.gts @@ -0,0 +1,21 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const BoldIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/bold') + .BoldIcon + : 'bold'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/bold.hbs b/addon/components/plugins/text-style/bold.hbs deleted file mode 100644 index 2eaf1ed68..000000000 --- a/addon/components/plugins/text-style/bold.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/plugins/text-style/color.hbs b/addon/components/plugins/text-style/color.hbs index c7819e9e4..9ed676da2 100644 --- a/addon/components/plugins/text-style/color.hbs +++ b/addon/components/plugins/text-style/color.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#if @controller}}
@@ -10,7 +11,7 @@ {{this.setupDropdownButton}} > =3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/word') + .WordIcon + : 'word'; type Args = { controller: SayController; @@ -17,6 +26,7 @@ export default class ColorMenu extends Component { dropdownButton?: HTMLElement; htmlSafe = htmlSafe; Velcro = Velcro; + WordIcon = WordIcon; setupDropdownButton = modifier( (element: HTMLElement) => { diff --git a/addon/components/plugins/text-style/highlight.hbs b/addon/components/plugins/text-style/highlight.hbs index c6e2bfb5f..c2a876370 100644 --- a/addon/components/plugins/text-style/highlight.hbs +++ b/addon/components/plugins/text-style/highlight.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{#if @controller}}
@@ -23,13 +24,13 @@ {{on 'click' this.toggleDropdown}} {{this.setupDropdownButton}} > - + {{#if this.dropdownOpen}} - =3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/pencil') + .PencilIcon + : 'pencil'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; type Args = { controller: SayController; @@ -20,6 +36,8 @@ export default class HighlightMenu extends Component { dropdownButton?: HTMLElement; htmlSafe = htmlSafe; Velcro = Velcro; + PencilIcon = PencilIcon; + ChevronDownIcon = ChevronDownIcon; setupDropdownButton = modifier( (element: HTMLElement) => { @@ -28,6 +46,8 @@ export default class HighlightMenu extends Component { { eager: false }, ); @tracked dropdownOpen = false; + // defaultColor isn't expected to change, so this works fine. + // eslint-disable-next-line ember/no-tracked-properties-from-args @tracked selectedColor = this.args.defaultColor; get controller() { diff --git a/addon/components/plugins/text-style/italic.gts b/addon/components/plugins/text-style/italic.gts new file mode 100644 index 000000000..169336a6f --- /dev/null +++ b/addon/components/plugins/text-style/italic.gts @@ -0,0 +1,21 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ItalicIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/italic') + .ItalicIcon + : 'italic'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/italic.hbs b/addon/components/plugins/text-style/italic.hbs deleted file mode 100644 index fa762bad7..000000000 --- a/addon/components/plugins/text-style/italic.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/plugins/text-style/strikethrough.gts b/addon/components/plugins/text-style/strikethrough.gts new file mode 100644 index 000000000..0728161db --- /dev/null +++ b/addon/components/plugins/text-style/strikethrough.gts @@ -0,0 +1,22 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const StrikethroughIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync( + '@appuniversum/ember-appuniversum/components/icons/strikethrough', + ).StrikethroughIcon + : 'strikethrough'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/strikethrough.hbs b/addon/components/plugins/text-style/strikethrough.hbs deleted file mode 100644 index f9ff8f93c..000000000 --- a/addon/components/plugins/text-style/strikethrough.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/plugins/text-style/subscript.gts b/addon/components/plugins/text-style/subscript.gts new file mode 100644 index 000000000..0939ea5e6 --- /dev/null +++ b/addon/components/plugins/text-style/subscript.gts @@ -0,0 +1,21 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const SubscriptIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/subscript') + .SubscriptIcon + : 'subscript'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/subscript.hbs b/addon/components/plugins/text-style/subscript.hbs deleted file mode 100644 index 6b421ca7f..000000000 --- a/addon/components/plugins/text-style/subscript.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/plugins/text-style/superscript.gts b/addon/components/plugins/text-style/superscript.gts new file mode 100644 index 000000000..bfd3a167b --- /dev/null +++ b/addon/components/plugins/text-style/superscript.gts @@ -0,0 +1,21 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const SuperscriptIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/superscript') + .SuperscriptIcon + : 'superscript'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/superscript.hbs b/addon/components/plugins/text-style/superscript.hbs deleted file mode 100644 index 5adc42e16..000000000 --- a/addon/components/plugins/text-style/superscript.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/plugins/text-style/underline.gts b/addon/components/plugins/text-style/underline.gts new file mode 100644 index 000000000..e8a6287ca --- /dev/null +++ b/addon/components/plugins/text-style/underline.gts @@ -0,0 +1,21 @@ +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const UnderlinedIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/underlined') + .UnderlinedIcon + : 'underlined'; +import Mark from '@lblod/ember-rdfa-editor/components/toolbar/mark'; +import t from 'ember-intl/helpers/t'; + + diff --git a/addon/components/plugins/text-style/underline.hbs b/addon/components/plugins/text-style/underline.hbs deleted file mode 100644 index 75ba91057..000000000 --- a/addon/components/plugins/text-style/underline.hbs +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/addon/components/responsive-toolbar.hbs b/addon/components/responsive-toolbar.hbs index 0dd16d261..7bc4a3e24 100644 --- a/addon/components/responsive-toolbar.hbs +++ b/addon/components/responsive-toolbar.hbs @@ -1,64 +1,65 @@ +{{! @glint-nocheck: not typesafe yet }}
{{#if (has-block 'main')}} -
+
{{yield (hash - Group=(component "toolbar/group") - Divider=(component "toolbar/divider") - ) to="main"}} - + Group=(component 'toolbar/group') + Divider=(component 'toolbar/divider') + ) to='main'}} + {{#if this.main.enableDropdown}} {{/if}}
{{yield (hash - Group=(component "toolbar/group") - Divider=(component "toolbar/divider") - ) to="main"}} + Group=(component 'toolbar/group') + Divider=(component 'toolbar/divider') + ) to='main'}}
{{/if}} {{#if (has-block 'side')}} -
+
{{yield (hash - Group=(component "toolbar/group") - Divider=(component "toolbar/divider") + Group=(component 'toolbar/group') + Divider=(component 'toolbar/divider') ) to='side'}} - + {{#if this.side.enableDropdown}} {{/if}}
{{yield (hash - Group=(component "toolbar/group") - Divider=(component "toolbar/divider") - ) to="side"}} + Group=(component 'toolbar/group') + Divider=(component 'toolbar/divider') + ) to='side'}}
diff --git a/addon/components/responsive-toolbar.ts b/addon/components/responsive-toolbar.ts index 4b660eac0..e9a35ce4c 100644 --- a/addon/components/responsive-toolbar.ts +++ b/addon/components/responsive-toolbar.ts @@ -3,6 +3,22 @@ import Component from '@glimmer/component'; import { modifier } from 'ember-modifier'; import { Velcro } from 'ember-velcro'; import { tracked } from 'tracked-built-ins'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ThreeDotsIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/three-dots') + .ThreeDotsIcon + : 'three-dots'; +const NavDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/nav-down') + .NavDownIcon + : 'nav-down'; type ToolbarSection = { reference?: HTMLElement; @@ -12,6 +28,9 @@ type ToolbarSection = { }; export default class ResponsiveToolbar extends Component { + ThreeDotsIcon = ThreeDotsIcon; + NavDownIcon = NavDownIcon; + toolbar?: HTMLElement; Velcro = Velcro; diff --git a/addon/components/sidebar.hbs b/addon/components/sidebar.hbs index 61aab9252..23cd180f2 100644 --- a/addon/components/sidebar.hbs +++ b/addon/components/sidebar.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }}
    {{yield (hash Collapsible=(component 'collapsible'))}} diff --git a/addon/components/toolbar/button.hbs b/addon/components/toolbar/button.hbs index 37f2c08de..6ad8205e4 100644 --- a/addon/components/toolbar/button.hbs +++ b/addon/components/toolbar/button.hbs @@ -1,7 +1,8 @@ -
    +{{! @glint-nocheck: not typesafe yet }} +
    - {{#if (has-block "options")}} - - {{yield Menu to="options"}} + {{yield Menu to='options'}} {{/if}}
    \ No newline at end of file diff --git a/addon/components/toolbar/button.ts b/addon/components/toolbar/button.ts index 9934b9ba5..0af53f901 100644 --- a/addon/components/toolbar/button.ts +++ b/addon/components/toolbar/button.ts @@ -1,11 +1,22 @@ import Component from '@glimmer/component'; +import { type ComponentLike } from '@glint/template'; +import { dependencySatisfies, macroCondition } from '@embroider/macros'; +import { importSync } from '@embroider/macros'; +const ChevronDownIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/chevron-down') + .ChevronDownIcon + : 'chevron-down'; type Args = { - optionsIcon: string; + icon: ComponentLike; + optionsIcon: ComponentLike; }; export default class ToolbarButton extends Component { get optionsIcon() { - return this.args.optionsIcon ?? 'chevron-down'; + return this.args.optionsIcon ?? ChevronDownIcon; } } diff --git a/addon/components/toolbar/dropdown-item.hbs b/addon/components/toolbar/dropdown-item.hbs index 1e611262c..c0e42e0fa 100644 --- a/addon/components/toolbar/dropdown-item.hbs +++ b/addon/components/toolbar/dropdown-item.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }}
    @@ -22,7 +23,7 @@ type='button' {{on 'click' this.openColorPicker}} > - + {{t 'ember-rdfa-editor.color-selector.additional-colors'}} =3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/add').AddIcon + : 'add'; +const CircleXIcon = macroCondition( + dependencySatisfies('@appuniversum/ember-appuniversum', '>=3.4.1'), +) + ? // @ts-expect-error TS/glint doesn't seem to treat this as an import + importSync('@appuniversum/ember-appuniversum/components/icons/circle-x') + .CircleXIcon + : 'circle-x'; type Args = { onChange: (color?: string) => unknown; @@ -10,6 +25,8 @@ type Args = { }; export default class ColorSelector extends Component { + AddIcon = AddIcon; + CircleXIcon = CircleXIcon; colorPicker?: HTMLElement; setUpColorPicker = modifier( (element: HTMLElement) => { diff --git a/addon/utils/_private/ember-node.ts b/addon/utils/_private/ember-node.ts index 37e863114..13871f0c8 100644 --- a/addon/utils/_private/ember-node.ts +++ b/addon/utils/_private/ember-node.ts @@ -142,6 +142,7 @@ class EmberNodeView implements NodeView { this.config = emberNodeConfig; const { name, component: componentClass, atom, inline } = emberNodeConfig; + // @ts-expect-error not typesafe yet this.template = hbs` {{#unless this.atom}} + {{! @glint-expect-error: not typesafe yet }} {{/unless}} `; diff --git a/package.json b/package.json index 3191f2fbd..0d85f8260 100644 --- a/package.json +++ b/package.json @@ -40,11 +40,11 @@ "lint:js": "eslint . --cache", "lint:errors": "eslint . --quiet", "lint:js:fix": "eslint . --fix", - "lint:types": "tsc --noEmit", - "prepack": "tsc --project tsconfig.declarations.json", + "lint:types": "glint", + "prepack": "./scripts/generate-type-declarations.sh", "postpack": "rimraf declarations", "start": "concurrently -c \"auto\" -P \"npm:serve -- {@}\" \"npm:typecheck\" --", - "typecheck": "tsc --noEmit --watch", + "typecheck": "glint --watch", "serve": "ember serve", "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "ember test", @@ -72,8 +72,9 @@ "@floating-ui/dom": "^1.6.3", "@glimmer/tracking": "^1.1.2", "@graphy/memory.dataset.fast": "4.3.3", - "@say-editor/prosemirror-invisibles": "^0.1.0", "@lblod/marawa": "^0.8.0-beta.2", + "@say-editor/prosemirror-invisibles": "^0.1.0", + "@say-editor/prosemirror-tables": "^0.2.0", "codemirror": "^6.0.1", "common-tags": "^1.8.0", "crypto-browserify": "^3.12.0", @@ -83,6 +84,7 @@ "ember-cli-babel": "^8.2.0", "ember-cli-htmlbars": "^6.2.0", "ember-focus-trap": "~1.0.1", + "ember-template-imports": "^3.4.2", "ember-truth-helpers": "^3.0.0", "ember-velcro": "^2.1.0", "handlebars": "^4.7.7", @@ -101,7 +103,6 @@ "prosemirror-schema-basic": "^1.2.1", "prosemirror-schema-list": "^1.2.2", "prosemirror-state": "^1.4.2", - "@say-editor/prosemirror-tables": "^0.2.0", "prosemirror-transform": "^1.8.0", "prosemirror-view": "^1.32.4", "rdf-data-factory": "^1.1.2", @@ -113,15 +114,17 @@ "yup": "^1.3.3" }, "devDependencies": { - "@appuniversum/ember-appuniversum": "2.15.0", + "@appuniversum/ember-appuniversum": "2.17.0", "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.26.2", "@ember/string": "^3.0.1", "@ember/test-helpers": "^2.9.3", "@embroider/test-setup": "^3.0.1", "@glimmer/component": "^1.1.2", - "@glint/environment-ember-loose": "^1.3.0", - "@glint/template": "1.1.0", + "@glint/core": "^1.4.0", + "@glint/environment-ember-loose": "^1.4.0", + "@glint/environment-ember-template-imports": "^1.4.0", + "@glint/template": "^1.4.0", "@graphy/content.ttl.write": "^4.3.7", "@playwright/test": "^1.41.2", "@rdfjs/types": "^1.1.0", @@ -173,6 +176,7 @@ "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", "ember-cli-typescript-blueprints": "^3.0.0", + "ember-eslint-parser": "^0.3.8", "ember-intl": "5.7.2", "ember-load-initializers": "^2.1.2", "ember-modifier": "3.2.7", @@ -182,19 +186,20 @@ "ember-resolver": "^11.0.1", "ember-source": "4.12.0", "ember-source-channel-url": "^3.0.0", - "ember-template-lint": "^5.7.2", + "ember-template-lint": "^5.8.0", "ember-test-selectors": "^6.0.0", "ember-try": "^3.0.0", "eslint": "^8.37.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-deprecation": "^1.4.1", - "eslint-plugin-ember": "^11.5.0", + "eslint-plugin-ember": "^12.0.2", "eslint-plugin-n": "^15.7.0", "eslint-plugin-playwright": "^0.22.2", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-qunit": "^8.0.0", "loader.js": "^4.7.0", "prettier": "^3.2.0", + "prettier-plugin-ember-template-tag": "^2.0.1", "prosemirror-dev-tools": "^4.0.0", "qunit": "^2.19.4", "qunit-dom": "^2.0.0", @@ -206,7 +211,7 @@ "webpack": "^5.78.0" }, "peerDependencies": { - "@appuniversum/ember-appuniversum": "^2.15.0", + "@appuniversum/ember-appuniversum": "^2.15.0 || ^3.0.0", "@glint/template": "^1.1.0", "ember-changeset": "^4.1.2", "ember-cli-sass": "^11.0.1", diff --git a/playwright.config.ts b/playwright.config.ts index 63a006ea5..dca3bab7f 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,3 +1,4 @@ +/// import { defineConfig, devices } from '@playwright/test'; /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18ed5f549..22dd7a561 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,10 +31,10 @@ dependencies: version: 2.0.0 '@ember/render-modifiers': specifier: ^2.0.5 - version: 2.1.0(@babel/core@7.23.7)(@glint/template@1.1.0)(ember-source@4.12.0) + version: 2.1.0(@babel/core@7.23.7)(@glint/template@1.4.0)(ember-source@4.12.0) '@embroider/macros': specifier: ^1.13.1 - version: 1.13.4(@glint/template@1.1.0) + version: 1.13.4(@glint/template@1.4.0) '@floating-ui/dom': specifier: ^1.6.3 version: 1.6.3 @@ -70,7 +70,7 @@ dependencies: version: 3.0.8 ember-auto-import: specifier: ^2.6.3 - version: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + version: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.23.7) @@ -80,6 +80,9 @@ dependencies: ember-focus-trap: specifier: ~1.0.1 version: 1.0.2 + ember-template-imports: + specifier: ^3.4.2 + version: 3.4.2 ember-truth-helpers: specifier: ^3.0.0 version: 3.1.1 @@ -164,8 +167,8 @@ dependencies: devDependencies: '@appuniversum/ember-appuniversum': - specifier: 2.15.0 - version: 2.15.0(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) + specifier: 2.17.0 + version: 2.17.0(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) '@changesets/changelog-github': specifier: ^0.5.0 version: 0.5.0 @@ -177,19 +180,25 @@ devDependencies: version: 3.1.1 '@ember/test-helpers': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + version: 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) '@embroider/test-setup': specifier: ^3.0.1 version: 3.0.3 '@glimmer/component': specifier: ^1.1.2 version: 1.1.2(@babel/core@7.23.7) + '@glint/core': + specifier: ^1.4.0 + version: 1.4.0(typescript@5.3.3) '@glint/environment-ember-loose': - specifier: ^1.3.0 - version: 1.3.0(@glimmer/component@1.1.2)(@glint/template@1.1.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7) + specifier: ^1.4.0 + version: 1.4.0(@glimmer/component@1.1.2)(@glint/template@1.4.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7) + '@glint/environment-ember-template-imports': + specifier: ^1.4.0 + version: 1.4.0(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(@types/ember__component@4.0.21)(@types/ember__routing@4.0.19) '@glint/template': - specifier: 1.1.0 - version: 1.1.0 + specifier: ^1.4.0 + version: 1.4.0 '@graphy/content.ttl.write': specifier: ^4.3.7 version: 4.3.7 @@ -303,10 +312,10 @@ devDependencies: version: 9.0.7 '@typescript-eslint/eslint-plugin': specifier: ^6.19.1 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^6.19.1 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) broccoli-asset-rev: specifier: ^3.0.0 version: 3.0.0 @@ -318,7 +327,7 @@ devDependencies: version: 8.2.2 ember-changeset: specifier: ^4.1.2 - version: 4.1.2(@glint/template@1.1.0)(webpack@5.89.0) + version: 4.1.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli: specifier: ~5.6.0 version: 5.6.0(debug@4.3.4)(handlebars@4.7.8)(react-dom@18.2.0)(react@18.2.0) @@ -343,6 +352,9 @@ devDependencies: ember-cli-typescript-blueprints: specifier: ^3.0.0 version: 3.0.0 + ember-eslint-parser: + specifier: ^0.3.8 + version: 0.3.8(@babel/core@7.23.7)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) ember-intl: specifier: 5.7.2 version: 5.7.2(typescript@5.3.3) @@ -357,21 +369,21 @@ devDependencies: version: 8.2.0(ember-source@4.12.0) ember-power-select: specifier: ^7.1.2 - version: 7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) + version: 7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) ember-qunit: specifier: ^6.2.0 - version: 6.2.0(@ember/test-helpers@2.9.4)(@glint/template@1.1.0)(ember-source@4.12.0)(qunit@2.20.0)(webpack@5.89.0) + version: 6.2.0(@ember/test-helpers@2.9.4)(@glint/template@1.4.0)(ember-source@4.12.0)(qunit@2.20.0)(webpack@5.89.0) ember-resolver: specifier: ^11.0.1 version: 11.0.1(ember-source@4.12.0) ember-source: specifier: 4.12.0 - version: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + version: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) ember-source-channel-url: specifier: ^3.0.0 version: 3.0.0 ember-template-lint: - specifier: ^5.7.2 + specifier: ^5.8.0 version: 5.13.0 ember-test-selectors: specifier: ^6.0.0 @@ -389,8 +401,8 @@ devDependencies: specifier: ^1.4.1 version: 1.5.0(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-ember: - specifier: ^11.5.0 - version: 11.12.0(eslint@8.56.0) + specifier: ^12.0.2 + version: 12.0.2(@babel/core@7.23.7)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-n: specifier: ^15.7.0 version: 15.7.0(eslint@8.56.0) @@ -409,6 +421,9 @@ devDependencies: prettier: specifier: ^3.2.0 version: 3.2.0 + prettier-plugin-ember-template-tag: + specifier: ^2.0.1 + version: 2.0.1(prettier@3.2.0) prosemirror-dev-tools: specifier: ^4.0.0 version: 4.0.0(@babel/core@7.23.7)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) @@ -451,34 +466,36 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 - /@appuniversum/ember-appuniversum@2.15.0(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0): - resolution: {integrity: sha512-Z77MTwJM7gWVt4rj6pckADETE+UxMtQD0vWSf+1aEedWqnDMWp853APlhJYz1VPq8xtfJL9g809XFQUmyHUN6A==} + /@appuniversum/ember-appuniversum@2.17.0(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0): + resolution: {integrity: sha512-9z/nMK/ohCdCqHUi1hlkikaif4AxgPCMP/+9W6/n4vrCSNlQmYbiXhKXjofRvAm1E9u3opQb5HyERna6TnDqTg==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: ember-source: ^3.28.0 || ^4.0.0 || ^5.0.0 dependencies: '@babel/core': 7.23.7 '@duetds/date-picker': 1.4.0 - '@embroider/macros': 1.13.4(@glint/template@1.1.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) '@floating-ui/dom': 1.6.3 '@glimmer/component': 1.1.2(@babel/core@7.23.7) '@glimmer/tracking': 1.1.2 - '@zestia/ember-auto-focus': 4.5.1(@babel/core@7.23.7)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + '@zestia/ember-auto-focus': 4.5.1(@babel/core@7.23.7)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-concurrency: 3.1.1(@babel/core@7.23.7)(ember-source@4.12.0) ember-data-table: 2.1.0 - ember-file-upload: 7.4.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) + ember-file-upload: 7.4.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) ember-focus-trap: 1.1.0(ember-source@4.12.0) ember-modifier: 3.2.7(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) + ember-template-imports: 3.4.2 ember-test-selectors: 6.0.0 + ember-truth-helpers: 3.1.1 inputmask: 5.0.8 merge-anything: 5.1.7 - tracked-toolbox: 1.3.0(@babel/core@7.23.7) + tracked-toolbox: 2.0.0(@babel/core@7.23.7)(ember-source@4.12.0) optionalDependencies: - ember-power-select: 7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) + ember-power-select: 7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) transitivePeerDependencies: - '@glint/environment-ember-loose' - '@glint/template' @@ -523,6 +540,20 @@ packages: transitivePeerDependencies: - supports-color + /@babel/eslint-parser@7.23.10(@babel/core@7.23.7)(eslint@8.56.0): + resolution: {integrity: sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.23.7 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.56.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + /@babel/generator@7.23.0: resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} @@ -2085,7 +2116,7 @@ packages: - supports-color dev: false - /@ember/render-modifiers@2.1.0(@babel/core@7.23.7)(@glint/template@1.1.0)(ember-source@4.12.0): + /@ember/render-modifiers@2.1.0(@babel/core@7.23.7)(@glint/template@1.4.0)(ember-source@4.12.0): resolution: {integrity: sha512-LruhfoDv2itpk0fA0IC76Sxjcnq/7BC6txpQo40hOko8Dn6OxwQfxkPIbZGV0Cz7df+iX+VJrcYzNIvlc3w2EQ==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -2095,11 +2126,11 @@ packages: '@glint/template': optional: true dependencies: - '@embroider/macros': 1.13.4(@glint/template@1.1.0) - '@glint/template': 1.1.0 + '@embroider/macros': 1.13.4(@glint/template@1.4.0) + '@glint/template': 1.4.0 ember-cli-babel: 7.26.11 ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -2113,21 +2144,21 @@ packages: - supports-color dev: true - /@ember/test-helpers@2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0): + /@ember/test-helpers@2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0): resolution: {integrity: sha512-z+Qs1NYWyIVDmrY6WdmOS5mdG1lJ5CFfzh6dRhLfs9lq45deDaDrVNcaCYhnNeJZTvUBK2XR2SvPcZm0RloXdA==} engines: {node: 10.* || 12.* || 14.* || 15.* || >= 16.*} peerDependencies: ember-source: '>=3.8.0' dependencies: '@ember/test-waiters': 3.1.0 - '@embroider/macros': 1.13.4(@glint/template@1.1.0) - '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) + '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) broccoli-debug: 0.6.5 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - '@glint/environment-ember-loose' @@ -2165,7 +2196,7 @@ packages: transitivePeerDependencies: - supports-color - /@embroider/macros@1.13.4(@glint/template@1.1.0): + /@embroider/macros@1.13.4(@glint/template@1.4.0): resolution: {integrity: sha512-A6tXvfwnscx66QO0R3c2dIJwEltfsTL4ihsYjMtgP9ODCCmQlCaRlZDQYw5Drta0ER9Fj3nXntu4naV5Wt5XLA==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -2175,7 +2206,7 @@ packages: optional: true dependencies: '@embroider/shared-internals': 2.5.1 - '@glint/template': 1.1.0 + '@glint/template': 1.4.0 assert-never: 1.2.1 babel-import-util: 2.0.1 ember-cli-babel: 7.26.11 @@ -2235,7 +2266,7 @@ packages: resolve: 1.22.8 dev: true - /@embroider/util@1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0): + /@embroider/util@1.12.1(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0): resolution: {integrity: sha512-sEjFf2HOcqQdm3auernvvD3oXX/CdGTjo9eB5N8DmQBz9vseYNjn4kQRaAcyHWpCpMHe5Yr0d9xW8+4c9a9fJw==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -2248,12 +2279,12 @@ packages: '@glint/template': optional: true dependencies: - '@embroider/macros': 1.13.4(@glint/template@1.1.0) - '@glint/environment-ember-loose': 1.3.0(@glimmer/component@1.1.2)(@glint/template@1.1.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7) - '@glint/template': 1.1.0 + '@embroider/macros': 1.13.4(@glint/template@1.4.0) + '@glint/environment-ember-loose': 1.4.0(@glimmer/component@1.1.2)(@glint/template@1.4.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7) + '@glint/template': 1.4.0 broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -2388,6 +2419,12 @@ packages: dependencies: '@simple-dom/interface': 1.4.0 + /@glimmer/interfaces@0.88.1: + resolution: {integrity: sha512-BOcN8xFNX/eppGxwS9Rm1+PlQaFX+tK91cuQLHj2sRwB+qVbL/WeutIa3AUQYr0VVEzMm2S6bYCLvG6p0a8v9A==} + dependencies: + '@simple-dom/interface': 1.4.0 + dev: true + /@glimmer/reference@0.84.3: resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} dependencies: @@ -2406,6 +2443,16 @@ packages: '@handlebars/parser': 2.0.0 simple-html-tokenizer: 0.5.11 + /@glimmer/syntax@0.88.1: + resolution: {integrity: sha512-tucexG0j5SSbk3d4ayCOnvjg5FldvWyrZbzxukZOBhDgAYhGWUnGFAqdoXjpr3w6FkD4xIVliVD9GFrH4lI8DA==} + dependencies: + '@glimmer/interfaces': 0.88.1 + '@glimmer/util': 0.88.1 + '@glimmer/wire-format': 0.88.1 + '@handlebars/parser': 2.0.0 + simple-html-tokenizer: 0.5.11 + dev: true + /@glimmer/tracking@1.1.2: resolution: {integrity: sha512-cyV32zsHh+CnftuRX84ALZpd2rpbDrhLhJnTXn9W//QpqdRZ5rdMsxSY9fOsj0CKEc706tmEU299oNnDc0d7tA==} dependencies: @@ -2422,6 +2469,13 @@ packages: '@glimmer/interfaces': 0.84.3 '@simple-dom/interface': 1.4.0 + /@glimmer/util@0.88.1: + resolution: {integrity: sha512-PV/24+vBmsReR78UQXJlEHDblU6QBAeIJa8MwKhQoxSD6WgvQHP4KmX23rvlCz11GxApTwyPm/2qyp/SwVvX2A==} + dependencies: + '@glimmer/env': 0.1.7 + '@glimmer/interfaces': 0.88.1 + dev: true + /@glimmer/validator@0.44.0: resolution: {integrity: sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==} @@ -2439,11 +2493,38 @@ packages: transitivePeerDependencies: - '@babel/core' - /@glint/environment-ember-loose@1.3.0(@glimmer/component@1.1.2)(@glint/template@1.1.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7): - resolution: {integrity: sha512-kURIttax2zG1oYniJ4bd3rhJRuP588Ld4YAG5EFzjg4s01oLQKpfNskxwSwox07PUkygm2D+9v3Foo2TlYJSSg==} + /@glimmer/wire-format@0.88.1: + resolution: {integrity: sha512-DPM2UiYRNzcWdOUrSa8/IFbWKovH+c2JPnbvtk04DpfQapU7+hteBj34coEN/pW3FJiP3WMvx/EuPfWROkeDsg==} + dependencies: + '@glimmer/interfaces': 0.88.1 + '@glimmer/util': 0.88.1 + dev: true + + /@glint/core@1.4.0(typescript@5.3.3): + resolution: {integrity: sha512-nq27a/1R6kc3lsuciz8z9IZO1NQCbNkEBxf5KJI7AUrnps6RzQzmq3pmwO24zQYmFcH4sqpod8fleNIpg8YEqg==} + hasBin: true + peerDependencies: + typescript: '>=4.8.0' + dependencies: + '@glimmer/syntax': 0.84.3 + escape-string-regexp: 4.0.0 + semver: 7.5.4 + silent-error: 1.1.1 + typescript: 5.3.3 + uuid: 8.3.2 + vscode-languageserver: 8.1.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@glint/environment-ember-loose@1.4.0(@glimmer/component@1.1.2)(@glint/template@1.4.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7): + resolution: {integrity: sha512-vFR3qgPTisGzS36e04195wTUrtUc6GuVwm6hsC/XXx6PeRw/6rtMxhK08Aw/VtDc00UqQzM9sIEghPVKHwqVVQ==} peerDependencies: '@glimmer/component': ^1.1.2 - '@glint/template': ^1.3.0 + '@glint/template': ^1.4.0 '@types/ember__array': ^4.0.2 '@types/ember__component': ^4.0.10 '@types/ember__controller': ^4.0.2 @@ -2468,7 +2549,7 @@ packages: optional: true dependencies: '@glimmer/component': 1.1.2(@babel/core@7.23.7) - '@glint/template': 1.1.0 + '@glint/template': 1.4.0 '@types/ember__array': 4.0.9(@babel/core@7.23.7) '@types/ember__component': 4.0.21(@babel/core@7.23.7) '@types/ember__controller': 4.0.11(@babel/core@7.23.7) @@ -2478,8 +2559,34 @@ packages: ember-modifier: 3.2.7(@babel/core@7.23.7) dev: true - /@glint/template@1.1.0: - resolution: {integrity: sha512-gK4tifrw7mIMYECzGeG5jrez2lY0TlwE584cnoYOFhzxXKrsuungdiebd7LDwjvfQpImQd1JUSQr3u/uF/XYJg==} + /@glint/environment-ember-template-imports@1.4.0(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(@types/ember__component@4.0.21)(@types/ember__routing@4.0.19): + resolution: {integrity: sha512-VXcUgea92l7NFShU26rpQn+hYUZ7ex/rNtU9vnw2BAVZaPfxZROokW8ABj8aMaCUDe60CoMVZ1/QSeONSCln3w==} + peerDependencies: + '@glint/environment-ember-loose': ^1.4.0 + '@glint/template': ^1.4.0 + '@types/ember__component': ^4.0.10 + '@types/ember__helper': ^4.0.1 + '@types/ember__modifier': ^4.0.3 + '@types/ember__routing': ^4.0.12 + peerDependenciesMeta: + '@types/ember__component': + optional: true + '@types/ember__helper': + optional: true + '@types/ember__modifier': + optional: true + '@types/ember__routing': + optional: true + dependencies: + '@glint/environment-ember-loose': 1.4.0(@glimmer/component@1.1.2)(@glint/template@1.4.0)(@types/ember__array@4.0.9)(@types/ember__component@4.0.21)(@types/ember__controller@4.0.11)(@types/ember__object@4.0.11)(@types/ember__routing@4.0.19)(ember-cli-htmlbars@6.3.0)(ember-modifier@3.2.7) + '@glint/template': 1.4.0 + '@types/ember__component': 4.0.21(@babel/core@7.23.7) + '@types/ember__routing': 4.0.19(@babel/core@7.23.7) + content-tag: 2.0.1 + dev: true + + /@glint/template@1.4.0: + resolution: {integrity: sha512-yD271NhLei/HSQ6utm6hKgoU+B5D5DY+B1irPvgI4KsDEcZI7v/INf5HAMJfzCg92bP1sIxSOuXu5DU6VsY7Mw==} /@graphy/content.ttl.write@4.3.7: resolution: {integrity: sha512-QpSa3lMmU+DA8udvikrPDji+XvUf5wfU4ShhqXU9mQEdccDTNw/eOOlhtLITAC3Q0dsobAdb71fXtj7zqtDwQA==} @@ -2724,6 +2831,12 @@ packages: glob-to-regexp: 0.3.0 dev: true + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + dependencies: + eslint-scope: 5.1.1 + dev: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3541,8 +3654,8 @@ packages: resolution: {integrity: sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==} dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -3553,11 +3666,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -3570,8 +3683,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3580,10 +3693,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -3599,16 +3712,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3617,8 +3730,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -3632,8 +3745,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -3658,8 +3771,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -3667,8 +3780,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3700,8 +3813,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3709,9 +3822,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -3727,11 +3840,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3972,18 +4085,18 @@ packages: /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - /@zestia/ember-auto-focus@4.5.1(@babel/core@7.23.7)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0): + /@zestia/ember-auto-focus@4.5.1(@babel/core@7.23.7)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0): resolution: {integrity: sha512-VmiWVJdknqVT2JQMlaRx/ZylDswf+Zsqn9+Gps9SL3sklHQ9V5Qc5/KzO2UxnifdCRVdc4doyVyUCJ8tzj674A==} engines: {node: 14.* || 16.* || >= 18} deprecated: Moved to GitHub Packages peerDependencies: ember-source: ^3.28.0 || ^4.0.0 dependencies: - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-modifier: 3.2.7(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - '@glint/template' @@ -4494,7 +4607,6 @@ packages: /babel-import-util@0.2.0: resolution: {integrity: sha512-CtWYYHU/MgK88rxMrLfkD356dApswtR/kWZ/c6JifG1m10e7tBBrs/366dFzWMAoqYmG5/JSh+94tUSpIwh+ag==} engines: {node: '>= 12.*'} - dev: true /babel-import-util@1.4.1: resolution: {integrity: sha512-TNdiTQdPhXlx02pzG//UyVPSKE7SNWjY0n4So/ZnjQpWwaM5LvWBLkWa1JKll5u06HNscHD91XZPuwrMg1kadQ==} @@ -6377,6 +6489,14 @@ packages: safe-buffer: 5.2.1 dev: true + /content-tag@1.2.2: + resolution: {integrity: sha512-9guqKIx2H+78N17otBpl8yLZbQGL5q1vBO/jDb3gF2JjixtcVpC62jDUNxjVMNoaZ09oxRX84ZOD6VX02qkVvg==} + dev: true + + /content-tag@2.0.1: + resolution: {integrity: sha512-jxsETSDs5NbNwyiDuIp672fUMhUyu8Qxc5MOBOJOcgW/fQESI6o5K1LBDrnEE7Bh810a685lWEZHTF4jQYGEEw==} + dev: true + /content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -7041,7 +7161,7 @@ packages: - webpack-command dev: true - /ember-auto-import@2.7.2(@glint/template@1.1.0)(webpack@5.89.0): + /ember-auto-import@2.7.2(@glint/template@1.4.0)(webpack@5.89.0): resolution: {integrity: sha512-pkWIljmJClYL17YBk8FjO7NrZPQoY9v0b+FooJvaHf/xlDQIBYVP7OaDHbNuNbpj7+wAwSDAnnwxjCoLsmm4cw==} engines: {node: 12.* || 14.* || >= 16} dependencies: @@ -7051,7 +7171,7 @@ packages: '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.23.7) '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) '@babel/preset-env': 7.23.8(@babel/core@7.23.7) - '@embroider/macros': 1.13.4(@glint/template@1.1.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) '@embroider/shared-internals': 2.5.1 babel-loader: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0) babel-plugin-ember-modules-api-polyfill: 3.5.0 @@ -7084,26 +7204,26 @@ packages: - supports-color - webpack - /ember-basic-dropdown@7.3.0(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0): + /ember-basic-dropdown@7.3.0(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0): resolution: {integrity: sha512-XzLd1noCrHjG7O35HpZ+ljj7VwPPqon7svbvNJ2U7421e00eXBUVcCioGJFo1NnnPkjc14FTDc5UwktbGSbJdQ==} engines: {node: 16.* || >= 18} peerDependencies: ember-source: ^3.28.0 || ^4.0.0 || >=5.0.0 dependencies: - '@embroider/macros': 1.13.4(@glint/template@1.1.0) - '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) + '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) '@glimmer/component': 1.1.2(@babel/core@7.23.7) '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-cli-typescript: 5.2.1 - ember-element-helper: 0.8.5(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) - ember-get-config: 2.1.1(@glint/template@1.1.0) + ember-element-helper: 0.8.5(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) + ember-get-config: 2.1.1(@glint/template@1.4.0) ember-maybe-in-element: 2.1.0 ember-modifier: 3.2.7(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) - ember-style-modifier: 3.0.1(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) + ember-style-modifier: 3.0.1(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/template@1.4.0)(webpack@5.89.0) ember-truth-helpers: 3.1.1 transitivePeerDependencies: - '@babel/core' @@ -7126,7 +7246,7 @@ packages: - '@babel/core' - supports-color - /ember-changeset@4.1.2(@glint/template@1.1.0)(webpack@5.89.0): + /ember-changeset@4.1.2(@glint/template@1.4.0)(webpack@5.89.0): resolution: {integrity: sha512-tHQTFOHz1BAUG5taVZJadECm9QsZdZkj59XIRdHnwyG8cOKFnFQamhJFY+Zu2yU7/sAksYtgbr71kFm57Unz9w==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: @@ -7135,9 +7255,9 @@ packages: ember-data: optional: true dependencies: - '@embroider/macros': 1.13.4(@glint/template@1.1.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 validated-changeset: 1.3.4 transitivePeerDependencies: @@ -7738,7 +7858,7 @@ packages: ember-cli-babel-plugin-helpers: 1.1.1 ember-cli-htmlbars: 6.3.0 ember-compatibility-helpers: 1.2.7(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -7773,22 +7893,43 @@ packages: - supports-color dev: true - /ember-element-helper@0.8.5(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0): + /ember-element-helper@0.8.5(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0): resolution: {integrity: sha512-yZYzuasn6ZC8Nwv0MpaLYGtm68ZxIBSNSe/CYxNWkDdgcuAb2lAG1gx37XkwBIiwPQET0W2agwq7++/HwdMF8g==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: ember-source: ^3.8 || ^4.0.0 || >= 5.0.0 dependencies: '@embroider/addon-shim': 1.8.3 - '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@glint/environment-ember-loose' - '@glint/template' - supports-color dev: true - /ember-file-upload@7.4.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0): + /ember-eslint-parser@0.3.8(@babel/core@7.23.7)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-P1VEHlbL8RZ/2GcdwaiG/jySWJzY6eBPkzQoA3g4lSDSG6CH0Xwmlem38wIdYy/lN28EBu++vlJvRm2KROpDRw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@babel/core': ^7.23.6 + '@typescript-eslint/parser': ^6.15.0 + typescript: ^5.3.3 + dependencies: + '@babel/core': 7.23.7 + '@babel/eslint-parser': 7.23.10(@babel/core@7.23.7)(eslint@8.56.0) + '@glimmer/syntax': 0.88.1 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + content-tag: 1.2.2 + eslint-scope: 7.2.2 + html-tags: 3.3.1 + typescript: 5.3.3 + transitivePeerDependencies: + - eslint + dev: true + + /ember-file-upload@7.4.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0): resolution: {integrity: sha512-ZWyUpdtEFZoSeJmeiNf0xdoUxWURbUtViFwPDW5qDZx8GX7245q5vb0kNizTTLuOnTVVly0Nnm7lOPvQhcMg9g==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: @@ -7800,13 +7941,13 @@ packages: miragejs: optional: true dependencies: - '@ember/test-helpers': 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + '@ember/test-helpers': 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.8.7 - '@embroider/macros': 1.13.4(@glint/template@1.1.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) '@glimmer/component': 1.1.2(@babel/core@7.23.7) '@glimmer/tracking': 1.1.2 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-modifier: 3.2.7(@babel/core@7.23.7) tracked-built-ins: 3.3.0 transitivePeerDependencies: @@ -7835,7 +7976,7 @@ packages: ember-source: ^4.0.0 || ^5.0.0 dependencies: '@embroider/addon-shim': 1.8.7 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) focus-trap: 6.9.4 transitivePeerDependencies: - supports-color @@ -7850,16 +7991,16 @@ packages: ember-cli-babel: 7.26.11 ember-cli-typescript: 5.2.1 ember-cli-version-checker: 5.1.2 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: false - /ember-get-config@2.1.1(@glint/template@1.1.0): + /ember-get-config@2.1.1(@glint/template@1.4.0): resolution: {integrity: sha512-uNmv1cPG/4qsac8oIf5txJ2FZ8p88LEpG4P3dNcjsJS98Y8hd0GPMFwVqpnzI78Lz7VYRGQWY4jnE4qm5R3j4g==} engines: {node: 12.* || 14.* || >= 16} dependencies: - '@embroider/macros': 1.13.4(@glint/template@1.1.0) + '@embroider/macros': 1.13.4(@glint/template@1.4.0) ember-cli-babel: 7.26.11 transitivePeerDependencies: - '@glint/template' @@ -7971,23 +8112,23 @@ packages: dependencies: '@embroider/addon-shim': 1.8.7 '@simple-dom/document': 1.4.0 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true - /ember-power-select@7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0): + /ember-power-select@7.2.0(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0): resolution: {integrity: sha512-h02M6y4yV5EAYdFXixWQw7qDjb3tuVwB0L/8ZYDezQjqZPdtem86fV7AddsXaejZ3bZsHEhIqzhXD5+TsPxEjg==} engines: {node: 16.* || >= 18} dependencies: - '@ember/render-modifiers': 2.1.0(@babel/core@7.23.7)(@glint/template@1.1.0)(ember-source@4.12.0) + '@ember/render-modifiers': 2.1.0(@babel/core@7.23.7)(@glint/template@1.4.0)(ember-source@4.12.0) '@ember/string': 3.1.1 - '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + '@embroider/util': 1.12.1(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) '@glimmer/component': 1.1.2(@babel/core@7.23.7) '@glimmer/tracking': 1.1.2 ember-assign-helper: 0.4.0 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) - ember-basic-dropdown: 7.3.0(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) + ember-basic-dropdown: 7.3.0(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-htmlbars: 6.3.0 ember-cli-typescript: 5.2.1 @@ -8003,7 +8144,7 @@ packages: - webpack dev: true - /ember-qunit@6.2.0(@ember/test-helpers@2.9.4)(@glint/template@1.1.0)(ember-source@4.12.0)(qunit@2.20.0)(webpack@5.89.0): + /ember-qunit@6.2.0(@ember/test-helpers@2.9.4)(@glint/template@1.4.0)(ember-source@4.12.0)(qunit@2.20.0)(webpack@5.89.0): resolution: {integrity: sha512-mC+0bp8DwWzJLn8SW3GS8KDZIkl4yLsNYwMi5Dw6+aFllq7FM2crd/dfY4MuOIHK7GKdjtmWJTMGnjSpeSayaw==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: @@ -8011,14 +8152,14 @@ packages: ember-source: '>=3.28' qunit: ^2.13.0 dependencies: - '@ember/test-helpers': 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.3.0)(@glint/template@1.1.0)(ember-source@4.12.0) + '@ember/test-helpers': 2.9.4(@babel/core@7.23.7)(@glint/environment-ember-loose@1.4.0)(@glint/template@1.4.0)(ember-source@4.12.0) broccoli-funnel: 3.0.8 broccoli-merge-trees: 3.0.2 common-tags: 1.8.2 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-test-loader: 3.1.0 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) qunit: 2.20.0 resolve-package-path: 4.0.3 silent-error: 1.1.1 @@ -8039,7 +8180,7 @@ packages: optional: true dependencies: ember-cli-babel: 7.26.11 - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: true @@ -8067,7 +8208,7 @@ packages: - encoding dev: true - /ember-source@4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0): + /ember-source@4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0): resolution: {integrity: sha512-h0lV902A4Mny2eiqXPy15uXXoCc7BnUegE4axLAy4IoxEkJ1o5h0aLJFiB4Tzb1htx8vgHjJz//Y5Jig7NSDTw==} engines: {node: '>= 14.*'} peerDependencies: @@ -8086,7 +8227,7 @@ packages: broccoli-funnel: 3.0.8 broccoli-merge-trees: 4.2.0 chalk: 4.1.2 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-cli-get-component-path-option: 1.0.0 ember-cli-is-package-missing: 1.0.0 @@ -8106,14 +8247,14 @@ packages: - supports-color - webpack - /ember-style-modifier@3.0.1(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/template@1.1.0)(webpack@5.89.0): + /ember-style-modifier@3.0.1(@babel/core@7.23.7)(@ember/string@3.1.1)(@glint/template@1.4.0)(webpack@5.89.0): resolution: {integrity: sha512-WHRVIiqY/dpwDtVWlnHW0P4Z+Jha8QEwfaQdIF2ckJL77ZKdjbV2j1XZymS0Nzj61EGx5BM+YEsGL16r3hLv2A==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: '@ember/string': ^3.0.1 dependencies: '@ember/string': 3.1.1 - ember-auto-import: 2.7.2(@glint/template@1.1.0)(webpack@5.89.0) + ember-auto-import: 2.7.2(@glint/template@1.4.0)(webpack@5.89.0) ember-cli-babel: 7.26.11 ember-modifier: 3.2.7(@babel/core@7.23.7) transitivePeerDependencies: @@ -8138,7 +8279,6 @@ packages: validate-peer-dependencies: 1.2.0 transitivePeerDependencies: - supports-color - dev: true /ember-template-lint@5.13.0: resolution: {integrity: sha512-AYxz9S9fVZfHPmTsymc7NwsD7FVmDUZyfC+KYpxDlK0wic7JSQx2FNQNqQSBFRLOuzn7VQ0/+1pX6DGqKDGswg==} @@ -8280,7 +8420,7 @@ packages: '@floating-ui/dom': 1.6.3 ember-functions-as-helper-polyfill: 2.1.2(ember-source@4.12.0) ember-modifier: 3.2.7(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - supports-color dev: false @@ -8546,28 +8686,31 @@ packages: - supports-color dev: true - /eslint-plugin-ember@11.12.0(eslint@8.56.0): - resolution: {integrity: sha512-7Ow1ky5JnRR0k3cxuvgYi4AWTe9DzGjlLgOJbU5VABLgr7Q0iq3ioC+YwAP79nV48cpw2HOgMgkZ1MynuIg59g==} - engines: {node: 14.* || 16.* || >= 18} + /eslint-plugin-ember@12.0.2(@babel/core@7.23.7)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-b+9edDbZoHILMtwlfixy9P0fR3qX3UfcSdhMcoTgvHbK5m0R9E1KSz2C+loArkFLSMFBYsFZR+VVgKSjcOT+Fw==} + engines: {node: 18.* || 20.* || >= 21} peerDependencies: - eslint: '>= 7' + eslint: '>= 8' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@ember-data/rfc395-data': 0.0.4 - '@glimmer/syntax': 0.84.3 css-tree: 2.3.1 + ember-eslint-parser: 0.3.8(@babel/core@7.23.7)(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) ember-rfc176-data: 0.3.18 - ember-template-imports: 3.4.2 - ember-template-recast: 6.1.4 eslint: 8.56.0 eslint-utils: 3.0.0(eslint@8.56.0) estraverse: 5.3.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 - magic-string: 0.30.5 requireindex: 1.2.0 snake-case: 3.0.4 + typescript: 5.3.3 transitivePeerDependencies: - - supports-color + - '@babel/core' + - '@typescript-eslint/parser' dev: true /eslint-plugin-es@4.1.0(eslint@8.56.0): @@ -10167,6 +10310,11 @@ packages: lru-cache: 7.18.3 dev: true + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + /html@1.0.0: resolution: {integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==} hasBin: true @@ -11564,13 +11712,6 @@ packages: dependencies: sourcemap-codec: 1.4.8 - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -13250,6 +13391,19 @@ packages: fast-diff: 1.3.0 dev: true + /prettier-plugin-ember-template-tag@2.0.1(prettier@3.2.0): + resolution: {integrity: sha512-CLoCdQ0cWPMq9dOmqbcBhOURSFd8X2+wXK2TJ4UIMNfG7G3Bxu91MY3VHILQrvRyva+XNF28n6y5oMxfNqyiNw==} + engines: {node: 18.* || >= 20} + peerDependencies: + prettier: '>= 3.0.0' + dependencies: + '@babel/core': 7.23.7 + content-tag: 1.2.2 + prettier: 3.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -15518,17 +15672,6 @@ packages: transitivePeerDependencies: - supports-color - /tracked-toolbox@1.3.0(@babel/core@7.23.7): - resolution: {integrity: sha512-KHfYLvNyRr0qQeXQPnmb6Z4JYZ0/47R7LjVwzUrsKc539eQi3Sz2z3mb7FJN9KgaJXVuM3GQ8zcwUFTf0hrOsQ==} - engines: {node: 8.* || >= 10.*} - dependencies: - ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.7) - ember-cli-babel: 7.26.11 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - /tracked-toolbox@2.0.0(@babel/core@7.23.7)(ember-source@4.12.0): resolution: {integrity: sha512-adZtX+RGN6F+pWs/5JqVuDxLhuia4uhqmQp+UlUaxpykWjDFETtAdQR+LdDJiFPXFAXnS6FBqn/tnSLJQCm3Yw==} engines: {node: 14.* || 16.* || >= 18} @@ -15540,11 +15683,10 @@ packages: dependencies: '@embroider/addon-shim': 1.8.7 ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.7) - ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.1.0)(webpack@5.89.0) + ember-source: 4.12.0(@babel/core@7.23.7)(@glimmer/component@1.1.2)(@glint/template@1.4.0)(webpack@5.89.0) transitivePeerDependencies: - '@babel/core' - supports-color - dev: false /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} @@ -16061,7 +16203,6 @@ packages: dependencies: resolve-package-path: 3.1.0 semver: 7.5.4 - dev: true /validate-peer-dependencies@2.2.0: resolution: {integrity: sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA==} @@ -16120,6 +16261,37 @@ packages: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true + /vscode-jsonrpc@8.1.0: + resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} + engines: {node: '>=14.0.0'} + dev: true + + /vscode-languageserver-protocol@3.17.3: + resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} + dependencies: + vscode-jsonrpc: 8.1.0 + vscode-languageserver-types: 3.17.3 + dev: true + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: true + + /vscode-languageserver-types@3.17.3: + resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} + dev: true + + /vscode-languageserver@8.1.0: + resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.3 + dev: true + + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: true + /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: false diff --git a/scripts/generate-type-declarations.sh b/scripts/generate-type-declarations.sh new file mode 100755 index 000000000..c7c8853bc --- /dev/null +++ b/scripts/generate-type-declarations.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env sh + +# This script exists because glint does not currently respect the --project flag, so we need to +# switch out the tsconfig.json file to generate declarations, without that configuration preventing +# --watch from running correctly + +mv tsconfig.json tsconfig.watch.json +mv tsconfig.declarations.json tsconfig.json + +glint --declaration +RETURN_VAL=$? + +mv tsconfig.json tsconfig.declarations.json +mv tsconfig.watch.json tsconfig.json + +exit $RETURN_VAL diff --git a/tests/dummy/app/components/sample-ember-nodes/card.hbs b/tests/dummy/app/components/sample-ember-nodes/card.hbs index 2dc00ef29..35e78ade0 100644 --- a/tests/dummy/app/components/sample-ember-nodes/card.hbs +++ b/tests/dummy/app/components/sample-ember-nodes/card.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} diff --git a/tests/dummy/app/components/sample-ember-nodes/counter.hbs b/tests/dummy/app/components/sample-ember-nodes/counter.hbs index fe33a7056..a5f2beda0 100644 --- a/tests/dummy/app/components/sample-ember-nodes/counter.hbs +++ b/tests/dummy/app/components/sample-ember-nodes/counter.hbs @@ -1,2 +1,3 @@ +{{! @glint-nocheck: not typesafe yet }} {{this.label}} {{this.count}} \ No newline at end of file diff --git a/tests/dummy/app/components/sample-ember-nodes/dropdown.hbs b/tests/dummy/app/components/sample-ember-nodes/dropdown.hbs index 13580f0cd..d76edd6e4 100644 --- a/tests/dummy/app/components/sample-ember-nodes/dropdown.hbs +++ b/tests/dummy/app/components/sample-ember-nodes/dropdown.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} diff --git a/tests/dummy/app/components/sample-toolbar-responsive.hbs b/tests/dummy/app/components/sample-toolbar-responsive.hbs index 56bd744c2..d62c2d564 100644 --- a/tests/dummy/app/components/sample-toolbar-responsive.hbs +++ b/tests/dummy/app/components/sample-toolbar-responsive.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} <:main as |Tb|> diff --git a/tests/dummy/app/styles/app.scss b/tests/dummy/app/styles/app.scss index 08c6cf9fc..f6fd191ad 100644 --- a/tests/dummy/app/styles/app.scss +++ b/tests/dummy/app/styles/app.scss @@ -1,7 +1,7 @@ /* ================================== #DUMMY APP ================================== */ -@import 'ember-appuniversum'; +@import "@appuniversum/ember-appuniversum/styles"; @import 'ember-rdfa-editor'; @import 'ember-rdfa-editor/c-dummy'; diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs index 41b8434d2..2bf4f798c 100644 --- a/tests/dummy/app/templates/application.hbs +++ b/tests/dummy/app/templates/application.hbs @@ -1,3 +1,4 @@ +{{! @glint-nocheck: not typesafe yet }} {{page-title 'Dummy'}}