@bagaar/velvet-thunder 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/declarations/components/velvet-select/option.d.ts +2 -1
  3. package/dist/components/velvet-alert.js.map +1 -1
  4. package/dist/components/velvet-avatar.js.map +1 -1
  5. package/dist/components/velvet-button.js.map +1 -1
  6. package/dist/components/velvet-checkbox-group.js.map +1 -1
  7. package/dist/components/velvet-checkbox.js.map +1 -1
  8. package/dist/components/velvet-disclosure.js.map +1 -1
  9. package/dist/components/velvet-dropdown/content.js.map +1 -1
  10. package/dist/components/velvet-dropdown.js.map +1 -1
  11. package/dist/components/velvet-icon/chevron-down.js.map +1 -1
  12. package/dist/components/velvet-icon/circle-check-solid.js.map +1 -1
  13. package/dist/components/velvet-icon/circle-exclamation-solid.js.map +1 -1
  14. package/dist/components/velvet-icon/circle-info-solid.js.map +1 -1
  15. package/dist/components/velvet-icon/user.js.map +1 -1
  16. package/dist/components/velvet-icon/x-mark.js.map +1 -1
  17. package/dist/components/velvet-icon-button.js.map +1 -1
  18. package/dist/components/velvet-icon-link.js.map +1 -1
  19. package/dist/components/velvet-input.js.map +1 -1
  20. package/dist/components/velvet-link.js.map +1 -1
  21. package/dist/components/velvet-progress.js.map +1 -1
  22. package/dist/components/velvet-radio-group.js.map +1 -1
  23. package/dist/components/velvet-radio.js.map +1 -1
  24. package/dist/components/velvet-select/option.js.map +1 -1
  25. package/dist/components/velvet-select.js.map +1 -1
  26. package/dist/components/velvet-spinner.js.map +1 -1
  27. package/dist/components/velvet-switch.js.map +1 -1
  28. package/dist/components/velvet-tag.js.map +1 -1
  29. package/dist/components/velvet-textarea.js.map +1 -1
  30. package/dist/components/velvet-tooltip/content.js.map +1 -1
  31. package/dist/components/velvet-tooltip.js.map +1 -1
  32. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"velvet-tooltip.js","sources":["../../src/components/velvet-tooltip.gts"],"sourcesContent":["import { template as template_082ae802d4fc458d8cb912fa288154f6 } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { waitForPromise } from '@ember/test-waiters';\nimport { autoUpdate, computePosition, flip, offset, type Placement, type Strategy } from '@floating-ui/dom';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type { ModifierLike, WithBoundArgs } from '@glint/template';\nimport { modifier } from 'ember-modifier';\nimport VelvetTooltipContent from './velvet-tooltip/content.gts';\nexport interface VelvetTooltipSignature {\n Args: {\n /// Offset of the content in pixels relative to the trigger.\n /// @default [4]\n offset?: number;\n /// Placement of the content relative to the trigger.\n /// @default [\"top\"]\n placement?: Placement;\n /// Delay in milliseconds before showing the tooltip.\n /// @default [400]\n showDelay?: number;\n /// CSS position of the content.\n /// @default [\"absolute\"]\n strategy?: Strategy;\n };\n Blocks: {\n /// The content of the tooltip.\n default: [{\n Content: WithBoundArgs<typeof VelvetTooltipContent, 'isShown' | 'modifier'>;\n isShown: boolean;\n hide: () => void;\n show: () => void;\n toggle: () => void;\n content: ModifierLike<ContentSignature>;\n trigger: ModifierLike<TriggerSignature>;\n }];\n };\n Element: HTMLDivElement;\n}\nexport interface ContentSignature {\n Element: HTMLElement;\n}\nexport interface TriggerSignature {\n Element: HTMLElement;\n}\nexport default class VelvetTooltip extends Component<VelvetTooltipSignature> {\n @tracked\n isShown = false;\n showTimeout: number | undefined = undefined;\n triggerElement: HTMLElement | null = null;\n get offset(): number {\n const { offset } = this.args;\n return typeof offset === 'number' ? offset : 4;\n }\n get placement(): Placement {\n return this.args.placement || 'top';\n }\n get showDelay(): number {\n const { showDelay } = this.args;\n return typeof showDelay === 'number' ? showDelay : 400;\n }\n get strategy(): Strategy {\n return this.args.strategy || 'absolute';\n }\n content = modifier<ContentSignature>((contentElement)=>{\n const { placement, strategy, triggerElement } = this;\n assert('[VelvetTooltip] Trigger element must be present.', triggerElement);\n // https://floating-ui.com/docs/computeposition#initial-layout:\n Object.assign(contentElement.style, {\n left: 0,\n position: strategy,\n top: 0\n });\n const updateFloating = async ()=>{\n const { x, y } = await computePosition(triggerElement, contentElement, {\n middleware: [\n flip(),\n offset(this.offset)\n ],\n placement,\n strategy\n });\n Object.assign(contentElement.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n };\n const cleanupFloating = autoUpdate(triggerElement, contentElement, updateFloating);\n return cleanupFloating;\n });\n trigger = modifier<TriggerSignature>((triggerElement)=>{\n this.triggerElement = triggerElement;\n triggerElement.addEventListener('mouseenter', this.show);\n triggerElement.addEventListener('mouseleave', this.hide);\n return ()=>{\n triggerElement.removeEventListener('mouseenter', this.show);\n triggerElement.removeEventListener('mouseleave', this.hide);\n };\n });\n hide = ()=>{\n clearTimeout(this.showTimeout);\n this.isShown = false;\n };\n show = ()=>{\n clearTimeout(this.showTimeout);\n return waitForPromise(new Promise<void>((resolve)=>{\n this.showTimeout = setTimeout(()=>{\n this.isShown = true;\n resolve();\n }, this.showDelay);\n }));\n };\n toggle = ()=>{\n if (this.isShown) {\n this.hide();\n } else {\n this.show();\n }\n };\n static{\n template_082ae802d4fc458d8cb912fa288154f6(`\n <div class=\"velvet-tooltip\" ...attributes>\n {{yield\n (hash\n Content=(component\n VelvetTooltipContent\n isShown=this.isShown\n modifier=this.content\n )\n isShown=this.isShown\n hide=this.hide\n show=this.show\n toggle=this.toggle\n content=this.content\n trigger=this.trigger\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3ZlbHZldC10aHVuZGVyL3ZlbHZldC10aHVuZGVyL3ZlbHZldC10aHVuZGVyL3NyYy9jb21wb25lbnRzL3ZlbHZldC10b29sdGlwLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgd2FpdEZvclByb21pc2UgfSBmcm9tICdAZW1iZXIvdGVzdC13YWl0ZXJzJztcbmltcG9ydCB7XG4gIGF1dG9VcGRhdGUsXG4gIGNvbXB1dGVQb3NpdGlvbixcbiAgZmxpcCxcbiAgb2Zmc2V0LFxuICB0eXBlIFBsYWNlbWVudCxcbiAgdHlwZSBTdHJhdGVneSxcbn0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UsIFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgVmVsdmV0VG9vbHRpcENvbnRlbnQgZnJvbSAnLi92ZWx2ZXQtdG9vbHRpcC9jb250ZW50Lmd0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVsdmV0VG9vbHRpcFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICAvLy8gT2Zmc2V0IG9mIHRoZSBjb250ZW50IGluIHBpeGVscyByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICAvLy8gQGRlZmF1bHQgWzRdXG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuXG4gICAgLy8vIFBsYWNlbWVudCBvZiB0aGUgY29udGVudCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICAvLy8gQGRlZmF1bHQgW1widG9wXCJdXG4gICAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xuXG4gICAgLy8vIERlbGF5IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgc2hvd2luZyB0aGUgdG9vbHRpcC5cbiAgICAvLy8gQGRlZmF1bHQgWzQwMF1cbiAgICBzaG93RGVsYXk_OiBudW1iZXI7XG5cbiAgICAvLy8gQ1NTIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50LlxuICAgIC8vLyBAZGVmYXVsdCBbXCJhYnNvbHV0ZVwiXVxuICAgIHN0cmF0ZWd5PzogU3RyYXRlZ3k7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIC8vLyBUaGUgY29udGVudCBvZiB0aGUgdG9vbHRpcC5cbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIENvbnRlbnQ6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICAgICAgdHlwZW9mIFZlbHZldFRvb2x0aXBDb250ZW50LFxuICAgICAgICAgICdpc1Nob3duJyB8ICdtb2RpZmllcidcbiAgICAgICAgPjtcbiAgICAgICAgaXNTaG93bjogYm9vbGVhbjtcbiAgICAgICAgaGlkZTogKCkgPT4gdm9pZDtcbiAgICAgICAgc2hvdzogKCkgPT4gdm9pZDtcbiAgICAgICAgdG9nZ2xlOiAoKSA9PiB2b2lkO1xuICAgICAgICBjb250ZW50OiBNb2RpZmllckxpa2U8Q29udGVudFNpZ25hdHVyZT47XG4gICAgICAgIHRyaWdnZXI6IE1vZGlmaWVyTGlrZTxUcmlnZ2VyU2lnbmF0dXJlPjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsdmV0VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudDxWZWx2ZXRUb29sdGlwU2lnbmF0dXJlPiB7XG4gIEB0cmFja2VkIGlzU2hvd24gPSBmYWxzZTtcblxuICBzaG93VGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICB0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IHRoaXMuYXJncztcblxuICAgIHJldHVybiB0eXBlb2Ygb2Zmc2V0ID09PSAnbnVtYmVyJyA_IG9mZnNldCA6IDQ7XG4gIH1cblxuICBnZXQgcGxhY2VtZW50KCk6IFBsYWNlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5wbGFjZW1lbnQgfHwgJ3RvcCc7XG4gIH1cblxuICBnZXQgc2hvd0RlbGF5KCk6IG51bWJlciB7XG4gICAgY29uc3QgeyBzaG93RGVsYXkgfSA9IHRoaXMuYXJncztcblxuICAgIHJldHVybiB0eXBlb2Ygc2hvd0RlbGF5ID09PSAnbnVtYmVyJyA_IHNob3dEZWxheSA6IDQwMDtcbiAgfVxuXG4gIGdldCBzdHJhdGVneSgpOiBTdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5zdHJhdGVneSB8fCAnYWJzb2x1dGUnO1xuICB9XG5cbiAgY29udGVudCA9IG1vZGlmaWVyPENvbnRlbnRTaWduYXR1cmU-KChjb250ZW50RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgcGxhY2VtZW50LCBzdHJhdGVneSwgdHJpZ2dlckVsZW1lbnQgfSA9IHRoaXM7XG5cbiAgICBhc3NlcnQoJ1tWZWx2ZXRUb29sdGlwXSBUcmlnZ2VyIGVsZW1lbnQgbXVzdCBiZSBwcmVzZW50LicsIHRyaWdnZXJFbGVtZW50KTtcblxuICAgIC8vIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvY29tcHV0ZXBvc2l0aW9uI2luaXRpYWwtbGF5b3V0OlxuICAgIE9iamVjdC5hc3NpZ24oY29udGVudEVsZW1lbnQuc3R5bGUsIHtcbiAgICAgIGxlZnQ6IDAsXG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICB0b3A6IDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB1cGRhdGVGbG9hdGluZyA9IGFzeW5jICgpID0-IHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHRyaWdnZXJFbGVtZW50LCBjb250ZW50RWxlbWVudCwge1xuICAgICAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQodGhpcy5vZmZzZXQpXSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBzdHJhdGVneSxcbiAgICAgIH0pO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRlbnRFbGVtZW50LnN0eWxlLCB7IGxlZnQ6IGAke3h9cHhgLCB0b3A6IGAke3l9cHhgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjbGVhbnVwRmxvYXRpbmcgPSBhdXRvVXBkYXRlKFxuICAgICAgdHJpZ2dlckVsZW1lbnQsXG4gICAgICBjb250ZW50RWxlbWVudCxcbiAgICAgIHVwZGF0ZUZsb2F0aW5nLFxuICAgICk7XG5cbiAgICByZXR1cm4gY2xlYW51cEZsb2F0aW5nO1xuICB9KTtcblxuICB0cmlnZ2VyID0gbW9kaWZpZXI8VHJpZ2dlclNpZ25hdHVyZT4oKHRyaWdnZXJFbGVtZW50KSA9PiB7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuc2hvdyk7XG4gICAgdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuaGlkZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdHJpZ2dlckVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuc2hvdyk7XG4gICAgICB0cmlnZ2VyRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5oaWRlKTtcbiAgICB9O1xuICB9KTtcblxuICBoaWRlID0gKCkgPT4ge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcblxuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICB9O1xuXG4gIHNob3cgPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuXG4gICAgcmV0dXJuIHdhaXRGb3JQcm9taXNlKFxuICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0-IHtcbiAgICAgICAgdGhpcy5zaG93VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG5cbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sIHRoaXMuc2hvd0RlbGF5KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgdG9nZ2xlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZWx2ZXQtdG9vbHRpcFwiIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgQ29udGVudD0oY29tcG9uZW50XG4gICAgICAgICAgICBWZWx2ZXRUb29sdGlwQ29udGVudFxuICAgICAgICAgICAgaXNTaG93bj10aGlzLmlzU2hvd25cbiAgICAgICAgICAgIG1vZGlmaWVyPXRoaXMuY29udGVudFxuICAgICAgICAgIClcbiAgICAgICAgICBpc1Nob3duPXRoaXMuaXNTaG93blxuICAgICAgICAgIGhpZGU9dGhpcy5oaWRlXG4gICAgICAgICAgc2hvdz10aGlzLnNob3dcbiAgICAgICAgICB0b2dnbGU9dGhpcy50b2dnbGVcbiAgICAgICAgICBjb250ZW50PXRoaXMuY29udGVudFxuICAgICAgICAgIHRyaWdnZXI9dGhpcy50cmlnZ2VyXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["VelvetTooltip","Component","g","this","prototype","tracked","i","void 0","showTimeout","undefined","triggerElement","offset","args","placement","showDelay","strategy","content","modifier","contentElement","assert","Object","assign","style","left","position","top","updateFloating","x","y","computePosition","middleware","flip","cleanupFloating","autoUpdate","trigger","addEventListener","show","hide","removeEventListener","clearTimeout","isShown","waitForPromise","Promise","resolve","setTimeout","toggle","setComponentTemplate","precompileTemplate","strictMode","scope","hash","VelvetTooltipContent"],"mappings":"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"}
1
+ {"version":3,"file":"velvet-tooltip.js","sources":["../../src/components/velvet-tooltip.gts"],"sourcesContent":["import { template as template_323f854a39c24c599c805ed4e9d2b77b } from \"@ember/template-compiler\";\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { waitForPromise } from '@ember/test-waiters';\nimport { autoUpdate, computePosition, flip, offset, type Placement, type Strategy } from '@floating-ui/dom';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type { ModifierLike, WithBoundArgs } from '@glint/template';\nimport { modifier } from 'ember-modifier';\nimport VelvetTooltipContent from './velvet-tooltip/content.gts';\nexport interface VelvetTooltipSignature {\n Args: {\n /// Offset of the content in pixels relative to the trigger.\n /// @default [4]\n offset?: number;\n /// Placement of the content relative to the trigger.\n /// @default [\"top\"]\n placement?: Placement;\n /// Delay in milliseconds before showing the tooltip.\n /// @default [400]\n showDelay?: number;\n /// CSS position of the content.\n /// @default [\"absolute\"]\n strategy?: Strategy;\n };\n Blocks: {\n /// The content of the tooltip.\n default: [{\n Content: WithBoundArgs<typeof VelvetTooltipContent, 'isShown' | 'modifier'>;\n isShown: boolean;\n hide: () => void;\n show: () => void;\n toggle: () => void;\n content: ModifierLike<ContentSignature>;\n trigger: ModifierLike<TriggerSignature>;\n }];\n };\n Element: HTMLDivElement;\n}\nexport interface ContentSignature {\n Element: HTMLElement;\n}\nexport interface TriggerSignature {\n Element: HTMLElement;\n}\nexport default class VelvetTooltip extends Component<VelvetTooltipSignature> {\n @tracked\n isShown = false;\n showTimeout: number | undefined = undefined;\n triggerElement: HTMLElement | null = null;\n get offset(): number {\n const { offset } = this.args;\n return typeof offset === 'number' ? offset : 4;\n }\n get placement(): Placement {\n return this.args.placement || 'top';\n }\n get showDelay(): number {\n const { showDelay } = this.args;\n return typeof showDelay === 'number' ? showDelay : 400;\n }\n get strategy(): Strategy {\n return this.args.strategy || 'absolute';\n }\n content = modifier<ContentSignature>((contentElement)=>{\n const { placement, strategy, triggerElement } = this;\n assert('[VelvetTooltip] Trigger element must be present.', triggerElement);\n // https://floating-ui.com/docs/computeposition#initial-layout:\n Object.assign(contentElement.style, {\n left: 0,\n position: strategy,\n top: 0\n });\n const updateFloating = async ()=>{\n const { x, y } = await computePosition(triggerElement, contentElement, {\n middleware: [\n flip(),\n offset(this.offset)\n ],\n placement,\n strategy\n });\n Object.assign(contentElement.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n };\n const cleanupFloating = autoUpdate(triggerElement, contentElement, updateFloating);\n return cleanupFloating;\n });\n trigger = modifier<TriggerSignature>((triggerElement)=>{\n this.triggerElement = triggerElement;\n triggerElement.addEventListener('mouseenter', this.show);\n triggerElement.addEventListener('mouseleave', this.hide);\n return ()=>{\n triggerElement.removeEventListener('mouseenter', this.show);\n triggerElement.removeEventListener('mouseleave', this.hide);\n };\n });\n hide = ()=>{\n clearTimeout(this.showTimeout);\n this.isShown = false;\n };\n show = ()=>{\n clearTimeout(this.showTimeout);\n return waitForPromise(new Promise<void>((resolve)=>{\n this.showTimeout = setTimeout(()=>{\n this.isShown = true;\n resolve();\n }, this.showDelay);\n }));\n };\n toggle = ()=>{\n if (this.isShown) {\n this.hide();\n } else {\n this.show();\n }\n };\n static{\n template_323f854a39c24c599c805ed4e9d2b77b(`\n <div class=\"velvet-tooltip\" ...attributes>\n {{yield\n (hash\n Content=(component\n VelvetTooltipContent\n isShown=this.isShown\n modifier=this.content\n )\n isShown=this.isShown\n hide=this.hide\n show=this.show\n toggle=this.toggle\n content=this.content\n trigger=this.trigger\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3ZlbHZldC10aHVuZGVyL3ZlbHZldC10aHVuZGVyL3ZlbHZldC10aHVuZGVyL3NyYy9jb21wb25lbnRzL3ZlbHZldC10b29sdGlwLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgd2FpdEZvclByb21pc2UgfSBmcm9tICdAZW1iZXIvdGVzdC13YWl0ZXJzJztcbmltcG9ydCB7XG4gIGF1dG9VcGRhdGUsXG4gIGNvbXB1dGVQb3NpdGlvbixcbiAgZmxpcCxcbiAgb2Zmc2V0LFxuICB0eXBlIFBsYWNlbWVudCxcbiAgdHlwZSBTdHJhdGVneSxcbn0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHR5cGUgeyBNb2RpZmllckxpa2UsIFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgVmVsdmV0VG9vbHRpcENvbnRlbnQgZnJvbSAnLi92ZWx2ZXQtdG9vbHRpcC9jb250ZW50Lmd0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVsdmV0VG9vbHRpcFNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICAvLy8gT2Zmc2V0IG9mIHRoZSBjb250ZW50IGluIHBpeGVscyByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICAvLy8gQGRlZmF1bHQgWzRdXG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuXG4gICAgLy8vIFBsYWNlbWVudCBvZiB0aGUgY29udGVudCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICAvLy8gQGRlZmF1bHQgW1widG9wXCJdXG4gICAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xuXG4gICAgLy8vIERlbGF5IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgc2hvd2luZyB0aGUgdG9vbHRpcC5cbiAgICAvLy8gQGRlZmF1bHQgWzQwMF1cbiAgICBzaG93RGVsYXk_OiBudW1iZXI7XG5cbiAgICAvLy8gQ1NTIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50LlxuICAgIC8vLyBAZGVmYXVsdCBbXCJhYnNvbHV0ZVwiXVxuICAgIHN0cmF0ZWd5PzogU3RyYXRlZ3k7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIC8vLyBUaGUgY29udGVudCBvZiB0aGUgdG9vbHRpcC5cbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIENvbnRlbnQ6IFdpdGhCb3VuZEFyZ3M8XG4gICAgICAgICAgdHlwZW9mIFZlbHZldFRvb2x0aXBDb250ZW50LFxuICAgICAgICAgICdpc1Nob3duJyB8ICdtb2RpZmllcidcbiAgICAgICAgPjtcbiAgICAgICAgaXNTaG93bjogYm9vbGVhbjtcbiAgICAgICAgaGlkZTogKCkgPT4gdm9pZDtcbiAgICAgICAgc2hvdzogKCkgPT4gdm9pZDtcbiAgICAgICAgdG9nZ2xlOiAoKSA9PiB2b2lkO1xuICAgICAgICBjb250ZW50OiBNb2RpZmllckxpa2U8Q29udGVudFNpZ25hdHVyZT47XG4gICAgICAgIHRyaWdnZXI6IE1vZGlmaWVyTGlrZTxUcmlnZ2VyU2lnbmF0dXJlPjtcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsdmV0VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudDxWZWx2ZXRUb29sdGlwU2lnbmF0dXJlPiB7XG4gIEB0cmFja2VkIGlzU2hvd24gPSBmYWxzZTtcblxuICBzaG93VGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICB0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IHRoaXMuYXJncztcblxuICAgIHJldHVybiB0eXBlb2Ygb2Zmc2V0ID09PSAnbnVtYmVyJyA_IG9mZnNldCA6IDQ7XG4gIH1cblxuICBnZXQgcGxhY2VtZW50KCk6IFBsYWNlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5wbGFjZW1lbnQgfHwgJ3RvcCc7XG4gIH1cblxuICBnZXQgc2hvd0RlbGF5KCk6IG51bWJlciB7XG4gICAgY29uc3QgeyBzaG93RGVsYXkgfSA9IHRoaXMuYXJncztcblxuICAgIHJldHVybiB0eXBlb2Ygc2hvd0RlbGF5ID09PSAnbnVtYmVyJyA_IHNob3dEZWxheSA6IDQwMDtcbiAgfVxuXG4gIGdldCBzdHJhdGVneSgpOiBTdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5zdHJhdGVneSB8fCAnYWJzb2x1dGUnO1xuICB9XG5cbiAgY29udGVudCA9IG1vZGlmaWVyPENvbnRlbnRTaWduYXR1cmU-KChjb250ZW50RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgcGxhY2VtZW50LCBzdHJhdGVneSwgdHJpZ2dlckVsZW1lbnQgfSA9IHRoaXM7XG5cbiAgICBhc3NlcnQoJ1tWZWx2ZXRUb29sdGlwXSBUcmlnZ2VyIGVsZW1lbnQgbXVzdCBiZSBwcmVzZW50LicsIHRyaWdnZXJFbGVtZW50KTtcblxuICAgIC8vIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvY29tcHV0ZXBvc2l0aW9uI2luaXRpYWwtbGF5b3V0OlxuICAgIE9iamVjdC5hc3NpZ24oY29udGVudEVsZW1lbnQuc3R5bGUsIHtcbiAgICAgIGxlZnQ6IDAsXG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICB0b3A6IDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB1cGRhdGVGbG9hdGluZyA9IGFzeW5jICgpID0-IHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHRyaWdnZXJFbGVtZW50LCBjb250ZW50RWxlbWVudCwge1xuICAgICAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQodGhpcy5vZmZzZXQpXSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBzdHJhdGVneSxcbiAgICAgIH0pO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRlbnRFbGVtZW50LnN0eWxlLCB7IGxlZnQ6IGAke3h9cHhgLCB0b3A6IGAke3l9cHhgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjbGVhbnVwRmxvYXRpbmcgPSBhdXRvVXBkYXRlKFxuICAgICAgdHJpZ2dlckVsZW1lbnQsXG4gICAgICBjb250ZW50RWxlbWVudCxcbiAgICAgIHVwZGF0ZUZsb2F0aW5nLFxuICAgICk7XG5cbiAgICByZXR1cm4gY2xlYW51cEZsb2F0aW5nO1xuICB9KTtcblxuICB0cmlnZ2VyID0gbW9kaWZpZXI8VHJpZ2dlclNpZ25hdHVyZT4oKHRyaWdnZXJFbGVtZW50KSA9PiB7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuc2hvdyk7XG4gICAgdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuaGlkZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdHJpZ2dlckVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuc2hvdyk7XG4gICAgICB0cmlnZ2VyRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5oaWRlKTtcbiAgICB9O1xuICB9KTtcblxuICBoaWRlID0gKCkgPT4ge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0KTtcblxuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICB9O1xuXG4gIHNob3cgPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuXG4gICAgcmV0dXJuIHdhaXRGb3JQcm9taXNlKFxuICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0-IHtcbiAgICAgICAgdGhpcy5zaG93VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG5cbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sIHRoaXMuc2hvd0RlbGF5KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgdG9nZ2xlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZWx2ZXQtdG9vbHRpcFwiIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgQ29udGVudD0oY29tcG9uZW50XG4gICAgICAgICAgICBWZWx2ZXRUb29sdGlwQ29udGVudFxuICAgICAgICAgICAgaXNTaG93bj10aGlzLmlzU2hvd25cbiAgICAgICAgICAgIG1vZGlmaWVyPXRoaXMuY29udGVudFxuICAgICAgICAgIClcbiAgICAgICAgICBpc1Nob3duPXRoaXMuaXNTaG93blxuICAgICAgICAgIGhpZGU9dGhpcy5oaWRlXG4gICAgICAgICAgc2hvdz10aGlzLnNob3dcbiAgICAgICAgICB0b2dnbGU9dGhpcy50b2dnbGVcbiAgICAgICAgICBjb250ZW50PXRoaXMuY29udGVudFxuICAgICAgICAgIHRyaWdnZXI9dGhpcy50cmlnZ2VyXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsTUFBTSxRQUFRLGVBQWU7QUFDdEMsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQVMsY0FBYyxRQUFRLHNCQUFzQjtBQUNyRCxTQUNFLFVBQVUsRUFDVixlQUFlLEVBQ2YsSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLFNBQVMsRUFDZCxLQUFLLFFBQVEsUUFDUixtQkFBbUI7QUFDMUIsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFDNUMsY0FBYyxZQUFZLEVBQUUsYUFBYSxRQUFRLGtCQUFrQjtBQUNuRSxTQUFTLFFBQVEsUUFBUSxpQkFBaUI7QUFDMUMsT0FBTywwQkFBMEIsK0JBQStCO0FBRWhFLGlCQUFpQjtJQUNmO1FBQ0UsNERBQTREO1FBQzVELGdCQUFnQjtRQUNoQixTQUFTLE1BQU07UUFFZixxREFBcUQ7UUFDckQsb0JBQW9CO1FBQ3BCLFlBQVk7UUFFWixxREFBcUQ7UUFDckQsa0JBQWtCO1FBQ2xCLFlBQVksTUFBTTtRQUVsQixnQ0FBZ0M7UUFDaEMseUJBQXlCO1FBQ3pCLFdBQVc7O0lBRWI7UUFDRSwrQkFBK0I7UUFDL0I7Z0JBRUksU0FBUyxxQkFDQSxzQkFDUCxZQUFZO2dCQUVkLFNBQVMsT0FBTztnQkFDaEIsWUFBWSxJQUFJO2dCQUNoQixZQUFZLElBQUk7Z0JBQ2hCLGNBQWMsSUFBSTtnQkFDbEIsU0FBUyxhQUFhO2dCQUN0QixTQUFTLGFBQWE7OztJQUk1QixTQUFTOztBQUdYLGlCQUFpQjtJQUNmLFNBQVM7O0FBR1gsaUJBQWlCO0lBQ2YsU0FBUzs7QUFHWCxlQUFlLE1BQU0sc0JBQXNCLFVBQVU7SUFDbkQsQ0FBQztJQUFRLFVBQVUsTUFBTTtJQUV6QixhQUFhLE1BQU0sR0FBRyxTQUFTLEdBQUcsVUFBVTtJQUM1QyxnQkFBZ0IsY0FBYyxJQUFJLEdBQUcsS0FBSztJQUUxQyxJQUFJLFVBQVUsTUFBTSxDQUFDO1FBQ25CLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSTtRQUU1QixPQUFPLE9BQU8sV0FBVyxXQUFXLFNBQVM7SUFDL0M7SUFFQSxJQUFJLGFBQWEsVUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJO0lBQ2hDO0lBRUEsSUFBSSxhQUFhLE1BQU0sQ0FBQztRQUN0QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUk7UUFFL0IsT0FBTyxPQUFPLGNBQWMsV0FBVyxZQUFZO0lBQ3JEO0lBRUEsSUFBSSxZQUFZLFNBQVM7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSTtJQUMvQjtJQUVBLFVBQVUsU0FBUyxrQkFBa0IsQ0FBQztRQUNwQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJO1FBRXBELE9BQU8sb0RBQW9EO1FBRTNELCtEQUErRDtRQUMvRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssRUFBRTtZQUNsQyxNQUFNO1lBQ04sVUFBVTtZQUNWLEtBQUs7UUFDUDtRQUVBLE1BQU0saUJBQWlCO1lBQ3JCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxnQkFBZ0IsZ0JBQWdCLGdCQUFnQjtnQkFDckUsWUFBWTtvQkFBQztvQkFBUSxPQUFPLElBQUksQ0FBQyxNQUFNO2lCQUFFO2dCQUN6QztnQkFDQTtZQUNGO1lBRUEsT0FBTyxNQUFNLENBQUMsZUFBZSxLQUFLLEVBQUU7Z0JBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFBQztRQUN0RTtRQUVBLE1BQU0sa0JBQWtCLFdBQ3RCLGdCQUNBLGdCQUNBO1FBR0YsT0FBTztJQUNULEdBQUc7SUFFSCxVQUFVLFNBQVMsa0JBQWtCLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRztRQUV0QixlQUFlLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUk7UUFDdkQsZUFBZSxnQkFBZ0IsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJO1FBRXZELE9BQU87WUFDTCxlQUFlLG1CQUFtQixDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUk7WUFDMUQsZUFBZSxtQkFBbUIsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJO1FBQzVEO0lBQ0YsR0FBRztJQUVILE9BQU87UUFDTCxhQUFhLElBQUksQ0FBQyxXQUFXO1FBRTdCLElBQUksQ0FBQyxPQUFPLEdBQUc7SUFDakIsRUFBRTtJQUVGLE9BQU87UUFDTCxhQUFhLElBQUksQ0FBQyxXQUFXO1FBRTdCLE9BQU8sZUFDTCxJQUFJLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXO2dCQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUVmO1lBQ0YsR0FBRyxJQUFJLENBQUMsU0FBUztRQUNuQjtJQUVKLEVBQUU7SUFFRixTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxJQUFJO1FBQ1gsT0FBTztZQUNMLElBQUksQ0FBQyxJQUFJO1FBQ1g7SUFDRixFQUFFO0lBRUYsTUFBQTtRQUFBLDBDQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FsQkE7QUFtQloifQ"],"names":["VelvetTooltip","Component","g","this","prototype","tracked","i","void 0","showTimeout","undefined","triggerElement","offset","args","placement","showDelay","strategy","content","modifier","contentElement","assert","Object","assign","style","left","position","top","updateFloating","x","y","computePosition","middleware","flip","cleanupFloating","autoUpdate","trigger","addEventListener","show","hide","removeEventListener","clearTimeout","isShown","waitForPromise","Promise","resolve","setTimeout","toggle","setComponentTemplate","precompileTemplate","strictMode","scope","hash","VelvetTooltipContent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bagaar/velvet-thunder",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Velvet Thunder is a semi-headless UI library built for Ember.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -67,8 +67,8 @@
67
67
  "@embroider/util": "^1.12.1",
68
68
  "@floating-ui/dom": "^1.5.3",
69
69
  "@formkit/auto-animate": "^0.8.1",
70
- "@glimmer/component": "^1.1.2",
71
- "@glimmer/tracking": "^1.1.2",
70
+ "@glimmer/component": "^1.1.2 || ^2.0.0",
71
+ "@glimmer/tracking": ">=1.1.2",
72
72
  "decorator-transforms": "^1.0.1",
73
73
  "ember-modifier": "^4.1.0",
74
74
  "ember-truth-helpers": "^5.0.0"