diff --git a/.codeclimate.yml b/.codeclimate.yml
index dd9863a3..52f6fb92 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -4,15 +4,15 @@ engines:
enabled: true
config:
languages:
- - javascript
+ - javascript
eslint:
enabled: true
fixme:
enabled: true
ratings:
paths:
- - "**.js"
+ - "**.js"
exclude_paths:
-- config/
-- tests/
-- vendor/
+ - config/
+ - tests/
+ - vendor/
diff --git a/.eslintrc.js b/.eslintrc.js
index ef486c2f..81b7f4b1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -38,30 +38,12 @@ module.exports = {
ecmaVersion: 2018,
sourceType: 'module',
babelOptions: {
- plugins: [
- [
- require.resolve('@babel/plugin-proposal-decorators'),
- { legacy: true },
- ],
- ],
+ plugins: [[require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }]],
},
requireConfigFile: false,
},
- plugins: [
- 'ember',
- 'qunit',
- 'simple-import-sort',
- 'import',
- 'unused-imports',
- 'unicorn',
- 'no-useless-assign',
- ],
- extends: [
- 'eslint:recommended',
- 'plugin:ember/recommended',
- 'plugin:qunit/recommended',
- 'plugin:unicorn/recommended',
- ],
+ plugins: ['ember', 'qunit', 'simple-import-sort', 'import', 'unused-imports', 'unicorn', 'no-useless-assign'],
+ extends: ['eslint:recommended', 'plugin:ember/recommended', 'plugin:qunit/recommended', 'plugin:unicorn/recommended'],
env: {
browser: true,
},
@@ -101,10 +83,7 @@ module.exports = {
],
*/
complexity: ['error', { max: 20 }],
- 'no-magic-numbers': [
- 'error',
- { ignore: [0, 1, -1], ignoreArrayIndexes: true },
- ],
+ 'no-magic-numbers': ['error', { ignore: [0, 1, -1], ignoreArrayIndexes: true }],
'object-shorthand': ['error', 'always'],
'no-restricted-imports': [
diff --git a/.prettier-cache b/.prettier-cache
new file mode 100644
index 00000000..e024ef39
--- /dev/null
+++ b/.prettier-cache
@@ -0,0 +1 @@
+[{"/Users/runspired/github/oss/flexi/.editorconfig":"1","/Users/runspired/github/oss/flexi/.eslintignore":"2","/Users/runspired/github/oss/flexi/.gitignore":"3","/Users/runspired/github/oss/flexi/.prettierignore":"4","/Users/runspired/github/oss/flexi/.prettierrc.js":"5","/Users/runspired/github/oss/flexi/LICENSE.md":"6","/Users/runspired/github/oss/flexi/package.json":"7","/Users/runspired/github/oss/flexi/packages/flexi-config/.ember-cli":"8","/Users/runspired/github/oss/flexi/packages/flexi-config/.npmignore":"9","/Users/runspired/github/oss/flexi/packages/flexi-config/.watchmanconfig":"10","/Users/runspired/github/oss/flexi/packages/flexi-config/blueprints/@html-next/flexi-config/files/config/flexi.js":"11","/Users/runspired/github/oss/flexi/packages/flexi-config/blueprints/@html-next/flexi-config/index.js":"12","/Users/runspired/github/oss/flexi/packages/flexi-config/index.js":"13","/Users/runspired/github/oss/flexi/packages/flexi-config/LICENSE.md":"14","/Users/runspired/github/oss/flexi/packages/flexi-config/package.json":"15","/Users/runspired/github/oss/flexi/packages/flexi-config/README.md":"16","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/.ember-cli":"17","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/.npmignore":"18","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/.watchmanconfig":"19","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/.gitkeep":"20","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_box.scss":"21","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_centered.scss":"22","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_container.scss":"23","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_fill.scss":"24","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_grid.scss":"25","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_hbox.scss":"26","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_page.scss":"27","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_screen.scss":"28","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_vbox.scss":"29","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/helpers/_alignment.scss":"30","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/mixins/_element.scss":"31","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/blueprints/@html-next/flexi-default-styles/index.js":"32","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/config/flexi.js":"33","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/lib/scss-variables-compiler.js":"34","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/LICENSE.md":"35","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/package.json":"36","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/README.md":"37","/Users/runspired/github/oss/flexi/packages/flexi-dsl/.ember-cli":"38","/Users/runspired/github/oss/flexi/packages/flexi-dsl/.npmignore":"39","/Users/runspired/github/oss/flexi/packages/flexi-dsl/.watchmanconfig":"40","/Users/runspired/github/oss/flexi/packages/flexi-dsl/blueprints/@html-next/flexi-dsl/index.js":"41","/Users/runspired/github/oss/flexi/packages/flexi-dsl/config/flexi.js":"42","/Users/runspired/github/oss/flexi/packages/flexi-dsl/LICENSE.md":"43","/Users/runspired/github/oss/flexi/packages/flexi-dsl/package.json":"44","/Users/runspired/github/oss/flexi/packages/flexi-dsl/README.md":"45","/Users/runspired/github/oss/flexi/packages/flexi-layouts/.ember-cli":"46","/Users/runspired/github/oss/flexi/packages/flexi-layouts/.npmignore":"47","/Users/runspired/github/oss/flexi/packages/flexi-layouts/.watchmanconfig":"48","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/.DS_Store":"49","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/.gitkeep":"50","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/components/flexi-container.hbs":"51","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/components/flexi-container.js":"52","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/components/flexi-grid.js":"53","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/helpers/-inject-layout.js":"54","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/.DS_Store":"55","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/.gitkeep":"56","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/components/flexi-container.js":"57","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/components/flexi-grid.js":"58","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/helpers/-inject-layout.js":"59","/Users/runspired/github/oss/flexi/packages/flexi-layouts/app/services/device/layout.js":"60","/Users/runspired/github/oss/flexi/packages/flexi-layouts/blueprints/.DS_Store":"61","/Users/runspired/github/oss/flexi/packages/flexi-layouts/blueprints/@html-next/flexi-layouts/index.js":"62","/Users/runspired/github/oss/flexi/packages/flexi-layouts/blueprints/layout-component/index.js":"63","/Users/runspired/github/oss/flexi/packages/flexi-layouts/blueprints/layout-route/index.js":"64","/Users/runspired/github/oss/flexi/packages/flexi-layouts/config/environment.js":"65","/Users/runspired/github/oss/flexi/packages/flexi-layouts/config/flexi.js":"66","/Users/runspired/github/oss/flexi/packages/flexi-layouts/ember-cli-build.js":"67","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/.DS_Store":"68","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/commands/index.js":"69","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/helpers/make-dir.js":"70","/Users/runspired/github/oss/flexi/packages/flexi-layouts/LICENSE.md":"71","/Users/runspired/github/oss/flexi/packages/flexi-layouts/package.json":"72","/Users/runspired/github/oss/flexi/packages/flexi-layouts/testem.js":"73","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/.DS_Store":"74","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/acceptance/layouts-test.js":"75","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/acceptance/mobile-first-test.js":"76","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/app.js":"77","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/classic-component.js":"78","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/huge.hbs":"79","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/mobile.hbs":"80","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/tablet.hbs":"81","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/helpers/.gitkeep":"82","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/resolver.js":"83","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/router.js":"84","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/.gitkeep":"85","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/application/route.js":"86","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/classic-layout-testroute.js":"87","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/index/route.js":"88","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/component-that-destroys-container/component.js":"89","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/component-that-destroys-container/template.hbs":"90","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/component.js":"91","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/components/missing-layout/template.hbs":"92","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/huge.hbs":"93","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/mobile.hbs":"94","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/tablet.hbs":"95","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/route.js":"96","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/route.js":"97","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/modern-component/template.hbs":"98","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/route.js":"99","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/template.hbs":"100","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_normalize.scss":"101","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/mixins/_element.scss":"102","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/templates/classic-layout-testroute/-layouts/mobile.hbs":"103","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/transitions.js":"104","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/config/environment.js":"105","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/config/flexi.js":"106","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/config/optional-features.json":"107","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/public/crossdomain.xml":"108","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/public/robots.txt":"109","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/helpers/index.js":"110","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/integration/.gitkeep":"111","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/integration/components/flexi-container-test.js":"112","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/test-helper.js":"113","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/unit/.gitkeep":"114","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/unit/helpers/-inject-layout-test.js":"115","/Users/runspired/github/oss/flexi/packages/flexi-sustain/.ember-cli":"116","/Users/runspired/github/oss/flexi/packages/flexi-sustain/.npmignore":"117","/Users/runspired/github/oss/flexi/packages/flexi-sustain/.watchmanconfig":"118","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/.DS_Store":"119","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/.gitkeep":"120","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/components/sustain-support.js":"121","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/helpers/sustain.js":"122","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/services/-sustains.js":"123","/Users/runspired/github/oss/flexi/packages/flexi-sustain/app/.DS_Store":"124","/Users/runspired/github/oss/flexi/packages/flexi-sustain/app/.gitkeep":"125","/Users/runspired/github/oss/flexi/packages/flexi-sustain/app/components/sustain-support.js":"126","/Users/runspired/github/oss/flexi/packages/flexi-sustain/app/helpers/sustain.js":"127","/Users/runspired/github/oss/flexi/packages/flexi-sustain/app/services/-sustains.js":"128","/Users/runspired/github/oss/flexi/packages/flexi-sustain/config/ember-try.js":"129","/Users/runspired/github/oss/flexi/packages/flexi-sustain/config/environment.js":"130","/Users/runspired/github/oss/flexi/packages/flexi-sustain/config/flexi.js":"131","/Users/runspired/github/oss/flexi/packages/flexi-sustain/ember-cli-build.js":"132","/Users/runspired/github/oss/flexi/packages/flexi-sustain/LICENSE.md":"133","/Users/runspired/github/oss/flexi/packages/flexi-sustain/package.json":"134","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/.DS_Store":"135","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/acceptance/sustain-labels-test.js":"136","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/acceptance/sustain-missing-layout-test.js":"137","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/app.js":"138","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/components/classic-component.hbs":"139","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/helpers/.gitkeep":"140","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/resolver.js":"141","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/router.js":"142","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/.gitkeep":"143","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/application/route.js":"144","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/application/template.hbs":"145","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/index/route.js":"146","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/components/missing-layout/template.hbs":"147","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/route.js":"148","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/route.js":"149","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-b/route.js":"150","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-b/template.hbs":"151","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/route.js":"152","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-hooks/controller.js":"153","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-hooks/has-hooks/component.js":"154","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-hooks/has-hooks/template.hbs":"155","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-hooks/route.js":"156","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-hooks/template.hbs":"157","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/route.js":"158","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels/route.js":"159","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels/template.hbs":"160","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-no-layout/route.js":"161","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-no-layout/template.hbs":"162","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/has-model/component.js":"163","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/component.js":"164","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/test-title/component.js":"165","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/test-title/template.hbs":"166","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/route.js":"167","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/template.hbs":"168","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/template.hbs":"169","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_normalize.scss":"170","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/mixins/_element.scss":"171","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/templates/application.hbs":"172","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/transitions.js":"173","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/config/environment.js":"174","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/config/flexi.js":"175","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/config/optional-features.json":"176","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/public/crossdomain.xml":"177","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/public/robots.txt":"178","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/helpers/index.js":"179","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/integration/.gitkeep":"180","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/test-helper.js":"181","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/unit/.gitkeep":"182","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/unit/services/-sustains-test.js":"183","/Users/runspired/github/oss/flexi/packages/flexi/.ember-cli":"184","/Users/runspired/github/oss/flexi/packages/flexi/.npmignore":"185","/Users/runspired/github/oss/flexi/packages/flexi/.watchmanconfig":"186","/Users/runspired/github/oss/flexi/packages/flexi/config/environment.js":"187","/Users/runspired/github/oss/flexi/packages/flexi/config/flexi.js":"188","/Users/runspired/github/oss/flexi/packages/flexi/ember-cli-build.js":"189","/Users/runspired/github/oss/flexi/packages/flexi/LICENSE.md":"190","/Users/runspired/github/oss/flexi/packages/flexi/package.json":"191","/Users/runspired/github/oss/flexi/packages/flexi/sketch/fixed-left-with-top-nav.sketch":"192","/Users/runspired/github/oss/flexi/packages/flexi/sketch/fixed-left.sketch":"193","/Users/runspired/github/oss/flexi/packages/flexi/sketch/grid.sketch":"194","/Users/runspired/github/oss/flexi/packages/flexi/testem.js":"195","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/app.js":"196","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/components/nav-banner.hbs":"197","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/components/nav-menu.hbs":"198","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/helpers/.gitkeep":"199","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/resolver.js":"200","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/router.js":"201","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/.gitkeep":"202","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/blueprints/route.js":"203","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/blueprints/snippets/generate.js":"204","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/container-css/route.js":"205","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/tablet.hbs":"206","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/index/route.js":"207","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/installation/route.js":"208","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/installation/snippets/install.js":"209","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/route.js":"210","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-components/route.js":"211","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-elements/route.js":"212","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-service/route.js":"213","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/route.js":"214","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/media-css/route.js":"215","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/overview/route.js":"216","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/route.js":"217","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/settings/route.js":"218","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/settings/snippets/settings.js":"219","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/sustain/route.js":"220","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/transitions.js":"221","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/config/environment.js":"222","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/config/flexi.js":"223","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/config/optional-features.json":"224","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/public/crossdomain.xml":"225","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/public/fixed-left-with-top-nav.svg":"226","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/public/fixed-left.svg":"227","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/public/grid.svg":"228","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/public/robots.txt":"229","/Users/runspired/github/oss/flexi/packages/flexi/tests/helpers/index.js":"230","/Users/runspired/github/oss/flexi/packages/flexi/tests/test-helper.js":"231","/Users/runspired/github/oss/flexi/.codeclimate.yml":"232","/Users/runspired/github/oss/flexi/.eslintrc.js":"233","/Users/runspired/github/oss/flexi/.prettier-cache":"234","/Users/runspired/github/oss/flexi/jsconfig.json":"235","/Users/runspired/github/oss/flexi/lerna.json":"236","/Users/runspired/github/oss/flexi/packages/flexi-config/lib/get-validated-flexi-config.js":"237","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/addon.scss":"238","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/components/_index.scss":"239","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/grid/_functions.scss":"240","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/grid/_grid.scss":"241","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/grid/_mixins.scss":"242","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/helpers/_index.scss":"243","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/mixins/_flex.scss":"244","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/addon/styles/mixins/_index.scss":"245","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/CHANGELOG.md":"246","/Users/runspired/github/oss/flexi/packages/flexi-default-styles/index.js":"247","/Users/runspired/github/oss/flexi/packages/flexi-dsl/CHANGELOG.md":"248","/Users/runspired/github/oss/flexi/packages/flexi-dsl/dsl/dsl-defaults.js":"249","/Users/runspired/github/oss/flexi/packages/flexi-dsl/dsl/template-precompiler.js":"250","/Users/runspired/github/oss/flexi/packages/flexi-dsl/index.js":"251","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/components/flexi-grid.hbs":"252","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/lib/monitor.js":"253","/Users/runspired/github/oss/flexi/packages/flexi-layouts/addon/services/device/layout.js":"254","/Users/runspired/github/oss/flexi/packages/flexi-layouts/blueprints/layout/index.js":"255","/Users/runspired/github/oss/flexi/packages/flexi-layouts/CHANGELOG.md":"256","/Users/runspired/github/oss/flexi/packages/flexi-layouts/config/ember-try.js":"257","/Users/runspired/github/oss/flexi/packages/flexi-layouts/index.js":"258","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/commands/move.js":"259","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/compile.js":"260","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/layout-compiler.js":"261","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/pod-templates-shim.js":"262","/Users/runspired/github/oss/flexi/packages/flexi-layouts/lib/tasks/rename-template.js":"263","/Users/runspired/github/oss/flexi/packages/flexi-layouts/README.md":"264","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/acceptance/classic-layouts-test.js":"265","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/classic-component.hbs":"266","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/desktop.hbs":"267","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/index.html":"268","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/application/template.hbs":"269","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/index/-layouts/mobile.hbs":"270","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/site-index/template.hbs":"271","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/template.hbs":"272","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/desktop.hbs":"273","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs":"274","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs":"275","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/_variables.scss":"276","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/app.scss":"277","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_buttons.scss":"278","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_colors.scss":"279","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_headers.scss":"280","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_index.scss":"281","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_links.scss":"282","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_lists.scss":"283","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/defaults/_table.scss":"284","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/mixins/_flex.scss":"285","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/app/styles/mixins/_index.scss":"286","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/dummy/config/targets.js":"287","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/index.html":"288","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/integration/components/flexi-grid-test.js":"289","/Users/runspired/github/oss/flexi/packages/flexi-layouts/tests/unit/services/device/layout-test.js":"290","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/classes/sustain.js":"291","/Users/runspired/github/oss/flexi/packages/flexi-sustain/addon/components/sustain-support.hbs":"292","/Users/runspired/github/oss/flexi/packages/flexi-sustain/CHANGELOG.md":"293","/Users/runspired/github/oss/flexi/packages/flexi-sustain/index.js":"294","/Users/runspired/github/oss/flexi/packages/flexi-sustain/README.md":"295","/Users/runspired/github/oss/flexi/packages/flexi-sustain/testem.js":"296","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/acceptance/sustain-classic-component-test.js":"297","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/acceptance/sustain-hooks-test.js":"298","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/acceptance/sustain-test.js":"299","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/index.html":"300","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/index/-layouts/mobile.hbs":"301","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/site-index/template.hbs":"302","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs":"303","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs":"304","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/template.hbs":"305","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/template.hbs":"306","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/has-model/template.hbs":"307","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/template.hbs":"308","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/_variables.scss":"309","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/app.scss":"310","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_buttons.scss":"311","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_colors.scss":"312","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_headers.scss":"313","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_index.scss":"314","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_links.scss":"315","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_lists.scss":"316","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/defaults/_table.scss":"317","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/mixins/_flex.scss":"318","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/app/styles/mixins/_index.scss":"319","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/dummy/config/targets.js":"320","/Users/runspired/github/oss/flexi/packages/flexi-sustain/tests/index.html":"321","/Users/runspired/github/oss/flexi/packages/flexi/blueprints/flexi/index.js":"322","/Users/runspired/github/oss/flexi/packages/flexi/CHANGELOG.md":"323","/Users/runspired/github/oss/flexi/packages/flexi/config/ember-try.js":"324","/Users/runspired/github/oss/flexi/packages/flexi/index.js":"325","/Users/runspired/github/oss/flexi/packages/flexi/README.md":"326","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/index.html":"327","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/-layouts/mobile.hbs":"328","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/-layouts/tablet.hbs":"329","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/blueprints/template.hbs":"330","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/container-css/template.hbs":"331","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/mobile.hbs":"332","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/installation/template.hbs":"333","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/template.hbs":"334","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-components/template.hbs":"335","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-elements/template.hbs":"336","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layout-service/template.hbs":"337","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/template.hbs":"338","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/media-css/template.hbs":"339","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/overview/template.hbs":"340","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/settings/template.hbs":"341","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/routes/docs/sustain/template.hbs":"342","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/styles/_variables.scss":"343","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/styles/app.scss":"344","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/application.hbs":"345","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/components/lorem-ipsum.hbs":"346","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/grid-responsive.hbs":"347","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/grid-rows-responsive.hbs":"348","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/grid-rows.hbs":"349","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/grid.hbs":"350","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/header-footer-with-scroll.hbs":"351","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/index.hbs":"352","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/sidebar.hbs":"353","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/tabs.hbs":"354","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/app/templates/top-nav.hbs":"355","/Users/runspired/github/oss/flexi/packages/flexi/tests/dummy/config/targets.js":"356","/Users/runspired/github/oss/flexi/packages/flexi/tests/index.html":"357","/Users/runspired/github/oss/flexi/pnpm-workspace.yaml":"358","/Users/runspired/github/oss/flexi/README.md":"359"},{"hash":"360"},{"hash":"361"},{"hash":"362"},{"hash":"363"},{"hash":"364","hashOfOptions":"365"},{"hash":"366","hashOfOptions":"367"},{"hash":"368","hashOfOptions":"369"},{"hash":"370"},{"hash":"371"},{"hash":"372","hashOfOptions":"373"},{"hash":"374","hashOfOptions":"375"},{"hash":"376","hashOfOptions":"377"},{"hash":"378","hashOfOptions":"379"},{"hash":"380","hashOfOptions":"381"},{"hash":"382","hashOfOptions":"383"},{"hash":"384","hashOfOptions":"385"},{"hash":"370"},{"hash":"371"},{"hash":"372","hashOfOptions":"386"},{"hash":"387"},{"hash":"388","hashOfOptions":"389"},{"hash":"390","hashOfOptions":"391"},{"hash":"392","hashOfOptions":"393"},{"hash":"394","hashOfOptions":"395"},{"hash":"396","hashOfOptions":"397"},{"hash":"398","hashOfOptions":"399"},{"hash":"400","hashOfOptions":"401"},{"hash":"402","hashOfOptions":"403"},{"hash":"404","hashOfOptions":"405"},{"hash":"406","hashOfOptions":"407"},{"hash":"408","hashOfOptions":"409"},{"hash":"410","hashOfOptions":"411"},{"hash":"412","hashOfOptions":"413"},{"hash":"414","hashOfOptions":"415"},{"hash":"380","hashOfOptions":"416"},{"hash":"417","hashOfOptions":"418"},{"hash":"419","hashOfOptions":"420"},{"hash":"370"},{"hash":"371"},{"hash":"372","hashOfOptions":"421"},{"hash":"422","hashOfOptions":"423"},{"hash":"424","hashOfOptions":"425"},{"hash":"380","hashOfOptions":"426"},{"hash":"427","hashOfOptions":"428"},{"hash":"429","hashOfOptions":"430"},{"hash":"370"},{"hash":"431"},{"hash":"372","hashOfOptions":"432"},{"hash":"433"},{"hash":"387"},{"hash":"434","hashOfOptions":"435"},{"hash":"436","hashOfOptions":"437"},{"hash":"438","hashOfOptions":"439"},{"hash":"440","hashOfOptions":"441"},{"hash":"442"},{"hash":"387"},{"hash":"443","hashOfOptions":"444"},{"hash":"445","hashOfOptions":"446"},{"hash":"447","hashOfOptions":"448"},{"hash":"449","hashOfOptions":"450"},{"hash":"451"},{"hash":"410","hashOfOptions":"452"},{"hash":"453","hashOfOptions":"454"},{"hash":"453","hashOfOptions":"455"},{"hash":"456","hashOfOptions":"457"},{"hash":"424","hashOfOptions":"458"},{"hash":"459","hashOfOptions":"460"},{"hash":"461"},{"hash":"462","hashOfOptions":"463"},{"hash":"464","hashOfOptions":"465"},{"hash":"380","hashOfOptions":"466"},{"hash":"467","hashOfOptions":"468"},{"hash":"469","hashOfOptions":"470"},{"hash":"471"},{"hash":"472","hashOfOptions":"473"},{"hash":"474","hashOfOptions":"475"},{"hash":"476","hashOfOptions":"477"},{"hash":"478","hashOfOptions":"479"},{"hash":"480","hashOfOptions":"481"},{"hash":"482","hashOfOptions":"483"},{"hash":"484","hashOfOptions":"485"},{"hash":"387"},{"hash":"486","hashOfOptions":"487"},{"hash":"488","hashOfOptions":"489"},{"hash":"387"},{"hash":"490","hashOfOptions":"491"},{"hash":"490","hashOfOptions":"492"},{"hash":"490","hashOfOptions":"493"},{"hash":"494","hashOfOptions":"495"},{"hash":"496","hashOfOptions":"497"},{"hash":"498","hashOfOptions":"499"},{"hash":"500","hashOfOptions":"501"},{"hash":"480","hashOfOptions":"502"},{"hash":"482","hashOfOptions":"503"},{"hash":"484","hashOfOptions":"504"},{"hash":"505","hashOfOptions":"506"},{"hash":"490","hashOfOptions":"507"},{"hash":"508","hashOfOptions":"509"},{"hash":"490","hashOfOptions":"510"},{"hash":"511","hashOfOptions":"512"},{"hash":"513","hashOfOptions":"514"},{"hash":"408","hashOfOptions":"515"},{"hash":"516","hashOfOptions":"517"},{"hash":"518","hashOfOptions":"519"},{"hash":"520","hashOfOptions":"521"},{"hash":"522","hashOfOptions":"523"},{"hash":"524","hashOfOptions":"525"},{"hash":"526"},{"hash":"527"},{"hash":"528","hashOfOptions":"529"},{"hash":"387"},{"hash":"530","hashOfOptions":"531"},{"hash":"532","hashOfOptions":"533"},{"hash":"387"},{"hash":"534","hashOfOptions":"535"},{"hash":"536"},{"hash":"537"},{"hash":"372","hashOfOptions":"538"},{"hash":"539"},{"hash":"387"},{"hash":"540","hashOfOptions":"541"},{"hash":"542","hashOfOptions":"543"},{"hash":"544","hashOfOptions":"545"},{"hash":"546"},{"hash":"387"},{"hash":"547","hashOfOptions":"548"},{"hash":"549","hashOfOptions":"550"},{"hash":"551","hashOfOptions":"552"},{"hash":"553","hashOfOptions":"554"},{"hash":"555","hashOfOptions":"556"},{"hash":"424","hashOfOptions":"557"},{"hash":"558","hashOfOptions":"559"},{"hash":"380","hashOfOptions":"560"},{"hash":"561","hashOfOptions":"562"},{"hash":"563"},{"hash":"564","hashOfOptions":"565"},{"hash":"566","hashOfOptions":"567"},{"hash":"476","hashOfOptions":"568"},{"hash":"569","hashOfOptions":"570"},{"hash":"387"},{"hash":"486","hashOfOptions":"571"},{"hash":"572","hashOfOptions":"573"},{"hash":"387"},{"hash":"490","hashOfOptions":"574"},{"hash":"575","hashOfOptions":"576"},{"hash":"490","hashOfOptions":"577"},{"hash":"500","hashOfOptions":"578"},{"hash":"490","hashOfOptions":"579"},{"hash":"490","hashOfOptions":"580"},{"hash":"581","hashOfOptions":"582"},{"hash":"583","hashOfOptions":"584"},{"hash":"490","hashOfOptions":"585"},{"hash":"586","hashOfOptions":"587"},{"hash":"588","hashOfOptions":"589"},{"hash":"500","hashOfOptions":"590"},{"hash":"490","hashOfOptions":"591"},{"hash":"592","hashOfOptions":"593"},{"hash":"490","hashOfOptions":"594"},{"hash":"490","hashOfOptions":"595"},{"hash":"596","hashOfOptions":"597"},{"hash":"490","hashOfOptions":"598"},{"hash":"599","hashOfOptions":"600"},{"hash":"601","hashOfOptions":"602"},{"hash":"603","hashOfOptions":"604"},{"hash":"605","hashOfOptions":"606"},{"hash":"607","hashOfOptions":"608"},{"hash":"609","hashOfOptions":"610"},{"hash":"611","hashOfOptions":"612"},{"hash":"511","hashOfOptions":"613"},{"hash":"513","hashOfOptions":"614"},{"hash":"408","hashOfOptions":"615"},{"hash":"511","hashOfOptions":"616"},{"hash":"518","hashOfOptions":"617"},{"hash":"618","hashOfOptions":"619"},{"hash":"424","hashOfOptions":"620"},{"hash":"524","hashOfOptions":"621"},{"hash":"526"},{"hash":"527"},{"hash":"528","hashOfOptions":"622"},{"hash":"387"},{"hash":"532","hashOfOptions":"623"},{"hash":"387"},{"hash":"624","hashOfOptions":"625"},{"hash":"536"},{"hash":"626"},{"hash":"372","hashOfOptions":"627"},{"hash":"456","hashOfOptions":"628"},{"hash":"629","hashOfOptions":"630"},{"hash":"631","hashOfOptions":"632"},{"hash":"380","hashOfOptions":"633"},{"hash":"634","hashOfOptions":"635"},{"hash":"636"},{"hash":"637"},{"hash":"638"},{"hash":"469","hashOfOptions":"639"},{"hash":"476","hashOfOptions":"640"},{"hash":"641","hashOfOptions":"642"},{"hash":"643","hashOfOptions":"644"},{"hash":"387"},{"hash":"486","hashOfOptions":"645"},{"hash":"646","hashOfOptions":"647"},{"hash":"387"},{"hash":"490","hashOfOptions":"648"},{"hash":"649","hashOfOptions":"650"},{"hash":"490","hashOfOptions":"651"},{"hash":"652","hashOfOptions":"653"},{"hash":"654","hashOfOptions":"655"},{"hash":"490","hashOfOptions":"656"},{"hash":"657","hashOfOptions":"658"},{"hash":"490","hashOfOptions":"659"},{"hash":"490","hashOfOptions":"660"},{"hash":"490","hashOfOptions":"661"},{"hash":"490","hashOfOptions":"662"},{"hash":"490","hashOfOptions":"663"},{"hash":"490","hashOfOptions":"664"},{"hash":"490","hashOfOptions":"665"},{"hash":"490","hashOfOptions":"666"},{"hash":"490","hashOfOptions":"667"},{"hash":"668","hashOfOptions":"669"},{"hash":"490","hashOfOptions":"670"},{"hash":"518","hashOfOptions":"671"},{"hash":"672","hashOfOptions":"673"},{"hash":"674","hashOfOptions":"675"},{"hash":"524","hashOfOptions":"676"},{"hash":"526"},{"hash":"677"},{"hash":"678"},{"hash":"679"},{"hash":"527"},{"hash":"528","hashOfOptions":"680"},{"hash":"532","hashOfOptions":"681"},{"hash":"682","hashOfOptions":"683"},{"hash":"684","hashOfOptions":"685"},{"hash":"686"},{"hash":"687","hashOfOptions":"688"},{"hash":"689","hashOfOptions":"690"},{"hash":"691","hashOfOptions":"692"},{"hash":"693","hashOfOptions":"694"},{"hash":"695","hashOfOptions":"696"},{"hash":"697","hashOfOptions":"698"},{"hash":"699","hashOfOptions":"700"},{"hash":"701","hashOfOptions":"702"},{"hash":"703","hashOfOptions":"704"},{"hash":"705","hashOfOptions":"706"},{"hash":"707","hashOfOptions":"708"},{"hash":"709","hashOfOptions":"710"},{"hash":"711","hashOfOptions":"712"},{"hash":"709","hashOfOptions":"713"},{"hash":"714","hashOfOptions":"715"},{"hash":"716","hashOfOptions":"717"},{"hash":"718","hashOfOptions":"719"},{"hash":"720","hashOfOptions":"721"},{"hash":"722","hashOfOptions":"723"},{"hash":"724","hashOfOptions":"725"},{"hash":"726","hashOfOptions":"727"},{"hash":"709","hashOfOptions":"728"},{"hash":"729","hashOfOptions":"730"},{"hash":"731","hashOfOptions":"732"},{"hash":"733","hashOfOptions":"734"},{"hash":"735","hashOfOptions":"736"},{"hash":"737","hashOfOptions":"738"},{"hash":"739","hashOfOptions":"740"},{"hash":"741","hashOfOptions":"742"},{"hash":"743","hashOfOptions":"744"},{"hash":"745","hashOfOptions":"746"},{"hash":"569","hashOfOptions":"747"},{"hash":"748","hashOfOptions":"749"},{"hash":"750","hashOfOptions":"751"},{"hash":"752","hashOfOptions":"753"},{"hash":"754","hashOfOptions":"755"},{"hash":"756","hashOfOptions":"757"},{"hash":"758","hashOfOptions":"759"},{"hash":"748","hashOfOptions":"760"},{"hash":"748","hashOfOptions":"761"},{"hash":"762","hashOfOptions":"763"},{"hash":"764","hashOfOptions":"765"},{"hash":"766","hashOfOptions":"767"},{"hash":"768","hashOfOptions":"769"},{"hash":"770","hashOfOptions":"771"},{"hash":"772","hashOfOptions":"773"},{"hash":"774","hashOfOptions":"775"},{"hash":"776","hashOfOptions":"777"},{"hash":"778","hashOfOptions":"779"},{"hash":"780","hashOfOptions":"781"},{"hash":"782","hashOfOptions":"783"},{"hash":"707","hashOfOptions":"784"},{"hash":"785","hashOfOptions":"786"},{"hash":"787","hashOfOptions":"788"},{"hash":"789","hashOfOptions":"790"},{"hash":"791","hashOfOptions":"792"},{"hash":"793","hashOfOptions":"794"},{"hash":"795","hashOfOptions":"796"},{"hash":"709","hashOfOptions":"797"},{"hash":"798","hashOfOptions":"799"},{"hash":"800","hashOfOptions":"801"},{"hash":"802","hashOfOptions":"803"},{"hash":"804","hashOfOptions":"805"},{"hash":"806","hashOfOptions":"807"},{"hash":"808","hashOfOptions":"809"},{"hash":"810","hashOfOptions":"811"},{"hash":"812","hashOfOptions":"813"},{"hash":"814","hashOfOptions":"815"},{"hash":"748","hashOfOptions":"816"},{"hash":"762","hashOfOptions":"817"},{"hash":"818","hashOfOptions":"819"},{"hash":"820","hashOfOptions":"821"},{"hash":"822","hashOfOptions":"823"},{"hash":"824","hashOfOptions":"825"},{"hash":"764","hashOfOptions":"826"},{"hash":"766","hashOfOptions":"827"},{"hash":"768","hashOfOptions":"828"},{"hash":"770","hashOfOptions":"829"},{"hash":"772","hashOfOptions":"830"},{"hash":"774","hashOfOptions":"831"},{"hash":"776","hashOfOptions":"832"},{"hash":"778","hashOfOptions":"833"},{"hash":"780","hashOfOptions":"834"},{"hash":"782","hashOfOptions":"835"},{"hash":"707","hashOfOptions":"836"},{"hash":"837","hashOfOptions":"838"},{"hash":"787","hashOfOptions":"839"},{"hash":"840","hashOfOptions":"841"},{"hash":"709","hashOfOptions":"842"},{"hash":"843","hashOfOptions":"844"},{"hash":"845","hashOfOptions":"846"},{"hash":"847","hashOfOptions":"848"},{"hash":"750","hashOfOptions":"849"},{"hash":"850","hashOfOptions":"851"},{"hash":"852","hashOfOptions":"853"},{"hash":"854","hashOfOptions":"855"},{"hash":"856","hashOfOptions":"857"},{"hash":"858","hashOfOptions":"859"},{"hash":"860","hashOfOptions":"861"},{"hash":"862","hashOfOptions":"863"},{"hash":"864","hashOfOptions":"865"},{"hash":"866","hashOfOptions":"867"},{"hash":"868","hashOfOptions":"869"},{"hash":"870","hashOfOptions":"871"},{"hash":"872","hashOfOptions":"873"},{"hash":"874","hashOfOptions":"875"},{"hash":"876","hashOfOptions":"877"},{"hash":"878","hashOfOptions":"879"},{"hash":"880","hashOfOptions":"881"},{"hash":"882","hashOfOptions":"883"},{"hash":"884","hashOfOptions":"885"},{"hash":"886","hashOfOptions":"887"},{"hash":"888","hashOfOptions":"889"},{"hash":"890","hashOfOptions":"891"},{"hash":"892","hashOfOptions":"893"},{"hash":"894","hashOfOptions":"895"},{"hash":"896","hashOfOptions":"897"},{"hash":"898","hashOfOptions":"899"},{"hash":"900","hashOfOptions":"901"},{"hash":"902","hashOfOptions":"903"},{"hash":"904","hashOfOptions":"905"},{"hash":"906","hashOfOptions":"907"},{"hash":"787","hashOfOptions":"908"},{"hash":"909","hashOfOptions":"910"},{"hash":"911","hashOfOptions":"912"},"111ae184a6fcd506831c82f7fb1dadd5","0873e77cd4484f2fc93c701a992afc15","9104070157fa8191f4528d963c0d5d77","9b678fc61ae0850af5ec791d2dbfc730","59f357cf301b4d47e1bfb81dbb988e08","2147888429","873dae6259e9bc3bca54244bf7ef6924","3085896496","e7c8bba0d556bb059c56d80b3cf161d8","3513180804","d598452fc1508e735f782f17da0aa30a","5e89681cca49f06753b7fd2aa321f1f5","e3a1b0e9997f76e3bf11bdce636da1fd","3614527049","80a21e1ed0ab1e8d3d52a8ee24580e32","3443354573","5871ac531572b26660fbbb007daf15dd","4110086914","7035be62396218ebc1ac79faf66021fb","596051099","9e12e92fa52ee406486d31e60cddb7e5","832575426","feebd7c04a3646c6378ee12a9dd799ae","3006711318","6640afa4e0fb2a1527885334aefd5d79","2487184365","4166361501","d41d8cd98f00b204e9800998ecf8427e","41adf6e8b8411997fd7bc4406c2d0383","655834546","e75c14a9cc6e4b3b1d36ac3afa51c9a5","17334503","d65f68874ab0db18c978a083a9584000","1898411068","32bd55f5746bf4960134a88aed8d586e","2552674296","292c3fb32779c5fe749be0c8dcff2e59","2303440181","a88040984ab4d833f09f0c50332b4ab1","393998904","a75f9b6bc3ace1ecd959f7caae930f78","2506717388","a4e607597ff2ca168cc4320cb759f347","1406041295","a2bc031c6efa31a05a6c16a4ec86e4bd","374404166","b58cf21e5504b0a759061289dccd48dc","2268372531","1777bbce9ed08a9dbd2fcba2fba69fa3","465712541","d0ae8aa5a3d5de0f2b2377ac98d7bd69","1797024770","c59e31bdcb9710a08e4800f947fe4c32","1368271896","e540f4c7785d4cefb5e4981dd1425b30","2903711353","2225134446","b48733deebba46399ff54724be2f6815","3770184642","2b119009eb4fccb017ad2e5fa4850b41","3765894465","4015714506","2b172ca62ba6173a6f4d67f58f110480","3374587894","4042c2f86669edfe50fe6ecafd919fbb","2948268715","79782913","2a0cd50f41ae440881bdc135d974dede","2440553173","8fa2061840b731168224bd4f27d47369","2018254830","bf7c6364b05d55852ea139052d336dee","2425378398","41dda7c88ddd6bc72909b5c64adbb7bf","636de987141e02b5d2f9c8402e035517","2874180409","002eaf0497c25e9ed8d0f8bd3a745d68","1014764160","b4031c81493902977bce4b2251fc4f34","4179281397","ccf9b36addc10527baecec2a90cbbe94","3089467016","70331ef661c76b1f918d191e3285bd8b","bfbd31a7b4a75c7757838bb47d0232dd","586688065","28be3770445f88e7967d81d00cf60e26","1999638772","1398febd6fee5f41e942c1d7b21f3cd5","174193481","2278674cd14f345d67b497d9ce08977e","4143676282","0b6d26372012ae48350113d1d4bb93d7","419276062","fc6082e366dde7f646b227ba94a353b5","2680600918","4023891914","55c6234352d5608860abfa3b9a8dd746","1882610548","2673237015","dd93ea85ce1e9822b9ef6ab4412e29b2","421175975","9b8f95bb62a365c7a4007ed5d4b550af","b85c5989465e026af9266b89fcf11092","3771034373","25f20db4f3f136a82e5c19a784a0a408","574056440","3133031789","272e276bfba07547ab8915d0c7cf081b","172150337","8013c6a9c5785157bf46c132acd7aa9a","2534775872","c0b2b33096d1fa96a16b57b526f8993d","de20b64edcd5f8b2a5b919ee5c487b1e","2178606114","34055021db0ee5995d8d8ee53eeaf7d3","2842835594","f49279909ebffa96f152ef1103e3b233","3257451076","cf17e3fe731c83a66ac53f0141ade955","819539342","da54816697922cc4133a1d8f0a4b4d68","198484100","c50ad542f75680656051c1f37d0d33d9","1252241101","485a987da8670a407f83e9b64613828a","4278614601","3aca13d6eb481b93d0842334cd6e4ae4","2931930609","6e53d2152d6f220a29d169f7e40c8ff2","1980288430","a2dfdc56300bc28cf2f44a5b7e19a3ab","404049042","1604917489","608375856","19fd0863d6642d787d9b0760bc804f86","665696252","b6c08dba4d8db1b50532b65da649b6da","2289492514","d3d65b908ba5eede38d84480bfd4a30b","156279056","19a559cb22c45a6f6bdcae6c8cb721bf","3254657356","2475286923","1295703124","27109328","5994dda2106df976c5054f628b9df85c","2769505223","2671490579","ec7b83044e2381834fa8f17447e42c6b","3408581481","2685870305","bee3ea302fc5a00e5babbc800b729545","3300431345","1df9532c6d5e845fbd6e82dabe978555","20496567","2961233704","db6425276d6e9e1120062ee6c72feb01","2663177509","9f3fd672efbb8eb58c8838c3517979b6","1360309095","833f2cb69bf266a0e5e5524a9d2ef3bd","2340176191","6aa7a773d1271257b724d36f0bc08543","317809250","319b8d1796207df35917bd1775a2dd18","1351501589","9dd26dbc8f3f9a8a342d067335315a63","61cfff627b79058277e604686197bbbd","61cc98944c95436b3863d03de59775c0","2216798504","a02e7eb2d22bc1f75a00f336f64a4618","2839272311","2159f81bd389fd97b74fe3624c5601a5","4140395527","4f00a00534934a2588b16fab9f437e98","2956916411","088521aacd0ac621df464a1ae4e2d35f","f235d057ef33bee80d20b76a99055f13","1601344644","d62386bd73ec8b2e1de66239901e781d","7297448873e9de89401d5e0c5d20a048","3006870265","2a2a1b037700738fee55edd4e885aa70","2803452990","90acd10e4e88790a5c5d22541b8e57b9","3150843897","6223aed969f9c692f42357f142919aae","a2b6a597b65f16d5ad2c70ee351fb9ff","3485750202","9c368e2a8534c3c76f03a84457957859","1947531453","7379cb7d2fd8196538a0c3899ff4bd22","1144320698","0bd4f4744905082d171c087fb5917bca","4213951372","15e314cbd195e51078f3a7dff4639253","2707819214","906965617","385fe281da986457c27cdc11bb88f487","440905677","574928839","ffeb325386e9dc7e10753d69e83cb965","1577169819","df5b823c7a078fc1ce75d72928c1c494","b33fb5a4354be6203116a9ea6a9c1723","2874878632","043747dbcc876110d820b74e3f3658d9","3071768794","2352933226","f7c84f1c6ab6c4013ad590635a7f9fa8","957313185","3448946251","6172ed2174f9188c3335c6e9b1002520","2386748168","138931436","7b22358f1c57f830870d20e40f1c8483","3924752294","3770178442","2596811634","3386479417","1552705595","9c86f98c1174e176fe7599095552c301","772084242","d97449712cc24423fc30db8013734628","2232844800","2765887474","93cfb173cfbd3f09c9f938c91557f9b6","767045203","84b75648bc1c942a8f337561db7ff3d9","117173442","2977685212","2634974724","ae9bc95f3e7c99fbac9e9bfb4ec53280","653311118","2324806256","2572234357","45ba77282757a18184b3030ed9d23dc2","647430493","742748190","65839973a0429cc433fa0d772c3f817b","2896179956","fa8f339482a0fcb6cdfd244105eb9deb","139093921","406e8eeece7346fdb0ee3df2569858af","1333209753","27c3717bc4e12473ff86d579a71c71b5","125663852","9d1630d3682ec3e3e3826129654e35f2","1594342322","b1a2428f13ff806972958188ea03d37e","1315171143","e85ea68b57a2ed8abece9140e1a0cbd5","1339493131","2501263127","1370542609","3312091778","168658442","2968454797","fcf29d8ba6ce78d320038c32f0835640","56173209","834824892","446983739","1312280654","2868266541","2df1dca6641e4b49cc2af79fe96e3e0b","2933538750","e916395369c48481a1cbf3254ce13a09","3785865850","3510609496","34a80b23a9e9ecea418a2108c13cc062","2608020731","330db486edb725003ade678429eaa344","1488432323","817069649","80d1a90cbff42375b5793c0698126b0d","3647067429","399a7b6868bde085b264ab55d3365e02","9de519eab71ddbe285efe56e3d3ff608","9973ad4bb947a8b621bb8a753c3d4cac","1149702948","3998625888","ca3a9c66cc59ff64721356d3fad12ab9","3826414699","1f7b233ead95ed9095405245c68b511c","3997974328","427322069","4b1d8df72aa1d7178263b82c57387629","832658","2433299378","40488d802e62b6e96aef7abf2adb5c9d","1687683149","200713951","69dd20712cfbf48ac7ae0b5220129b5a","743154637","2bf3a684f66f0cc944f2ce4592ac73c2","3505561284","4267015224","ec11098ba31935299512b16ad017f01c","504482137","743583900","1943597149","3979274460","2259697088","3512365109","3703675740","2637018905","120543431","3550656815","21b2cb6b330c863e9748be507e4d64ea","1370908444","3376071635","162980227","617479098141fd5680995809a5b72c5d","1931567139","5041e342f61c999da99a0663447463c6","2108168006","2092676401","42d92b5f11d8b31e42eb26456ff931df","ec0f81a9d22ed3924f751faeb8c8ddd7","2df85480562c33df1f43be08730d38e4","2957973316","843786275","878bdda5932fae17bf53ef07bb9bb884","3289718016","bb429112a34e74e0b103b754a6214466","2778354415","5cfe03ab2933fb65bd87f11d263d4515","eb7ac4e9e18fd531926a8b5b4ae081da","3196910667","2434108c3d90c4fc7a294e486ed80c08","493558410","35f877b73f73e128f8d2dd67993bd965","2236044176","a06b1913b85295f8f1ae9cc5888a74b3","2953196663","e6ed3b278768b80ed1dd7a80bceffb9a","935336171","836b9bca4b59a3f8f48afda79b1215d5","816039314","cffb37cb7225386734fab26d20d43f75","872136773","4fc59e70a6d7089f70f410b2dd7b36da","3975195161","785c7d8e18084f98f8b2c02fb14938f4","2104000036","e72ef3694790ebe074b9b7a1abf5c6de","2771340422","998042904205393676dc1f1406cc9145","3387160071","755042cc8bad72dd2998e7618cb38f9d","1645055009","255945ae77c145edc868e4d50b3cf57c","1450957807","315423540","cda0b7b0694ee2a507df238b7bc55053","3982188410","42f30a8455d87574abe33dfa488e5317","1704747021","232c1275d34782c6a0ec706630ed56d4","3546367004","72be91df317fd03ec0338ea3ea912be7","1466092590","5cffb61c31739640defc92b8604f24c8","1885896577","06cd2d6689c55c9216e64e53d93541ee","2763982521","40a2eb8bfcbdadcd3b9fda3cc06152be","3111059334","2341988000","1d084c2354f478883a00caa83f08e9dd","2750385970","b753cbb62ecbf2efc6c80f28c1ee7600","1740139952","b00579e2a251b171e36500d61d6bd53e","4180368436","9fef7376bc9090adaf13c3e1a4f03de5","1882974937","a76f663641a9cad9bda7643fb7a30142","3082265674","20fbcb7e5cd9dada20d2ca841e7a91a3","3006727131","008aea39369adb64306104053831ea4c","2311124836","a7d41f319b7201c5ce700b6a855c1625","2883855234","3084b0d874c79007bfc0d7bcdaf8e51e","4181241095","2478110535","a972be49d495d723ef2015b3c3a40d2d","3479529155","e411efca2c2e768be9da3369d86caa9d","3888491847","db30a7fad113a840a0c053a9328406e6","1396664192","29bf03d5084ac7e7945f153026dad7c6","1508280765","67db666afc777f1a6862615290e117d0","3796151480","e1d833adc43606d9240ded79dee3cb3a","4171382286","2686491388","3030067120","9e51236f5b7aa46afd7b3be1c63b0019","3821920928","0e248855585e907e13cb4697fc84a153","342915134","26fe2f1f64fb01ab97ccdb946e59380b","4247862529","0b3f7194a265a5350859c148b7663d79","3825260771","9014c1393a7170a70cdc5d616c949332","3106166788","b4a39a5a91e599005b99c01bd2fae0cf","663147038","46bbe85578e29c62710d8682256020e6","521643666","91a0b1551a79fa3e25e112d894f1e5b1","2373356171","beec1a9957889620da5c06b3de736007","3243280847","8e066f6ca4717ac0f22e81e8966ad944","4027852694","b561193b6b4a76b12158a05d2c112345","3163185851","2676190482","7ff3497cd22fed67d9a35b837a0c892d","286206000","ccbfebb67cc10bea5b769f4e0a3b9c26","3249842652","6fabd302749565af6fa5d3c4cafd53d0","2553025742","80bf4fe171b414b22249ff51bb308b27","1375998922","53aa095dc504c8680fcf73a07a1ef817","774778429","033d5c8e0c0706873a444cac1de8e916","2433939250","3747007482","5aab0265972847aa9f8b2766d8d0ce90","601160150","feb312b3250e0981030d7374051bcdc2","3638131368","0471f7e80297a9df42ee05101f90844c","1849825690","6e65d728466e8b60ce2d83a5bb94b228","1149822007","2074b76e77c7d90d1d7164f05d4a15f3","2410660773","9eb784664b4b3ef119204af5188118bd","1429083810","3ab1c70b6d665eb6d92e64a7df445d65","3322263457","678d7597cfaa75e5b6b3ffafb7e0d72f","4282450711","f6001c2ec77afdc61b94051f794ccf25","4243632914","1169212938","3030977990","26c7aeb8ba34a96d2f54c41818946f68","2142950432","c5c954236f7e46b05f165502b8f81d4b","2611449634","f2086bbda557b50b03f945fc3b1ec1a5","2125142973","5d0297bde785bb01fd411230620ee0eb","3316061893","1574059108","2727065179","1964406589","2315223850","3097260152","872501740","2724214245","3594138921","83743472","4227888097","1320658284","5858256de436e055aefb3b29f7e8f222","4096631690","3918001462","87b1fe2f7dd6628dc5e627c2ebab3336","787302650","1521937796","641e9a8a3aefb77bd05df46c23ac22db","1437666326","f9109826aadd0883719df036e1f242eb","3725000140","780ea03543785ee07da08cca6fa9bd25","849244574","3125106219","f5edd802f357917cd08a12467ea60a93","3301960020","b1f13abe0d37c95d9a4c4dd1d0a2c4b6","2033366224","b23cca3d4cdd20107b21eb5e82b5b68f","4216875104","c62179011059ebe44ef996873ba3fc29","3727150451","f74f521b7d49f26164d9a518e03ec676","2011748433","70a16f5ed20bd7819d5632fc73cfcf04","3282110298","73e7e683d78b539a8b5fb0ad9746ed1f","1851478006","3215d725989513cd6c84bd0885cd27ae","2723717493","3c95f5553181083cfd898ade7acfce2c","2977753014","86e253e3117d65ed2999a1e8b499936d","2829791186","0921a8b5352e1f28f14c5ac603a30b9a","1070067613","59b93781d1cae9528179e25d5b17b8d1","3929625910","547663ab216f28d8b7decdc7fc248894","1037223353","c39598b4741127b8bd0de8b88e44e201","976264995","73b68f654244945f48647bb783e1dedc","852713855","fd9a9cf2c84ca9db714f5391559b7145","3614685274","5915f1a2766d7c8ae74f06c6a5f550e6","3737701349","bc742a503e7ac386a6e98879b4ccd237","1632845568","e804e43d70d8f9cb49eb4ae00d71e0c2","3356060777","71f56c1250da40ddf33004e99545f49b","2987168853","f790422fa0d20f90da58394d77fd4272","381289309","a2fb55ff0cd5bd3b613f7bcf57d78382","2501179888","a07151bca29c1bebed3b9ba079857447","2177679096","2975a8e4a68bf8cc148f4f4816806817","3920930318","a2d84e0653ec14f12d41c240628bee04","4029910302","8c7d4521d8906ce73cd29a1cec60b005","3047328020","b447fa0429834067e6b84574be886e24","2126213248","b3afa55fc151c5231995767dae0f95af","331671301","f226c8049955ffefd24002b214713893","2482088724","445795520","15e915330bfbfeab7601d69ae0a8a2ac","918790436","669735afb5bca6b6b93475c7dabaed07","2228665599"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 1e347608..ebae2dc7 100644
--- a/README.md
+++ b/README.md
@@ -22,10 +22,10 @@ Join the [Ember community on Discord](https://discord.gg/zT3asNS)
## Contributing
- - Open an Issue for discussion first if you're unsure a feature/fix is wanted.
- - Branch off of `main` (default branch)
- - Use descriptive branch names (e.g. `/`)
- - PR against `main` (default branch).
+- Open an Issue for discussion first if you're unsure a feature/fix is wanted.
+- Branch off of `main` (default branch)
+- Use descriptive branch names (e.g. `/`)
+- PR against `main` (default branch).
## Thanks
diff --git a/jsconfig.json b/jsconfig.json
index 123fe73b..e82074c0 100644
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -10,6 +10,6 @@
"packages/*/dist",
"packages/*/tmp",
"packages/*/vendor",
- ".git",
+ ".git"
]
}
diff --git a/lerna.json b/lerna.json
index 518283f7..aba45823 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,16 +1,11 @@
{
- "npmClient": "pnpm",
- "useWorkspaces": true,
- "packages": [
- "packages/*"
- ],
- "version": "3.0.0-alpha.0",
- "command": {
- "version": {
- "allowBranch": [
- "main",
- "release"
- ]
- }
+ "npmClient": "pnpm",
+ "useWorkspaces": true,
+ "packages": ["packages/*"],
+ "version": "3.0.0-alpha.0",
+ "command": {
+ "version": {
+ "allowBranch": ["main", "release"]
}
+ }
}
diff --git a/package.json b/package.json
index 05c26d3b..4de0cc78 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,8 @@
"scripts": {
"lint": "pnpm run lint:prettier && pnpm run lint:js",
"lint:js": "eslint --cache --ext=js,ts .",
- "lint:prettier": "prettier --check .",
+ "lint:prettier": "prettier --check --cache --cache-location=.prettier-cache --log-level=warn .",
+ "lint:prettier:fix": "prettier --write --cache --cache-location=.prettier-cache --log-level=warn .",
"test:development": "lerna run --stream --parallel --no-private test:development"
},
"packageManager": "pnpm@9.12.3",
diff --git a/packages/flexi-config/lib/get-validated-flexi-config.js b/packages/flexi-config/lib/get-validated-flexi-config.js
index aabb684b..4ad67b56 100644
--- a/packages/flexi-config/lib/get-validated-flexi-config.js
+++ b/packages/flexi-config/lib/get-validated-flexi-config.js
@@ -14,8 +14,7 @@ function assert(statement, test) {
module.exports = function (projectRoot) {
if (
- (['g', 'generate'].includes(process.argv[2]) &&
- process.argv[3] === '@html-next/flexi-config') ||
+ (['g', 'generate'].includes(process.argv[2]) && process.argv[3] === '@html-next/flexi-config') ||
(process.argv[2] === 'install' && process.argv[3].includes('flexi'))
) {
// A flexi-config is currently being generated,
diff --git a/packages/flexi-default-styles/CHANGELOG.md b/packages/flexi-default-styles/CHANGELOG.md
index 326343f9..77a16585 100644
--- a/packages/flexi-default-styles/CHANGELOG.md
+++ b/packages/flexi-default-styles/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
## v1.1.9
@@ -7,11 +6,11 @@ Changelog
### Pull Requests
-- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes *by [Chris Thoburn](https://github.com/runspired)*
+- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines *by [Chris Thoburn](https://github.com/runspired)*
+- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.7
@@ -19,7 +18,7 @@ Changelog
#### Commits
-- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes *by [Chris Thoburn](https://github.com/runspired)*
+- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.4
@@ -27,19 +26,19 @@ Changelog
### Pull Requests
-- [#35](https://github.com/runspired/flexi/pull/35) Release Changes *by [Chris Thoburn](https://github.com/runspired)*
-- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes *by [koriroys/docs](https://github.com/koriroys/docs)*
-- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name *by [koriroys/refactor](https://github.com/koriroys/refactor)*
-- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired *by [Jay Phelps](https://github.com/jayphelps)*
-- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion *by [Chris Thoburn](https://github.com/runspired)*
+- [#35](https://github.com/runspired/flexi/pull/35) Release Changes _by [Chris Thoburn](https://github.com/runspired)_
+- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes _by [koriroys/docs](https://github.com/koriroys/docs)_
+- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name _by [koriroys/refactor](https://github.com/koriroys/refactor)_
+- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired _by [Jay Phelps](https://github.com/jayphelps)_
+- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes *by [Chris Thoburn](https://github.com/runspired)*
-- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake *by [Kori Roys](https://github.com/koriroys)*
-- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes *by [Kori Roys](https://github.com/koriroys)*
-- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming *by [Kori Roys](https://github.com/koriroys)*
-- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name *by [Kori Roys](https://github.com/koriroys)*
+- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes _by [Chris Thoburn](https://github.com/runspired)_
+- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake _by [Kori Roys](https://github.com/koriroys)_
+- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes _by [Kori Roys](https://github.com/koriroys)_
+- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming _by [Kori Roys](https://github.com/koriroys)_
+- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name _by [Kori Roys](https://github.com/koriroys)_
## v1.1.1
@@ -47,24 +46,24 @@ Changelog
### Pull Requests
-- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks *by [Chris Thoburn](https://github.com/runspired/feat)*
+- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks _by [Chris Thoburn](https://github.com/runspired/feat)_
#### Commits
-- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled *by [Chris Thoburn](https://github.com/runspired)*
-- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout *by [Chris Thoburn](https://github.com/runspired)*
-- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue *by [Chris Thoburn](https://github.com/runspired)*
+- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled _by [Chris Thoburn](https://github.com/runspired)_
+- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout _by [Chris Thoburn](https://github.com/runspired)_
+- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue _by [Chris Thoburn](https://github.com/runspired)_
## v1.0.1
### Pull Requests
-- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo *by [Ilya Radchenko](https://github.com/knownasilya)*
-- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements *by [Chris Thoburn](https://github.com/runspired)*
-- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds *by [Chris Thoburn](https://github.com/runspired)*
+- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo _by [Ilya Radchenko](https://github.com/knownasilya)_
+- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements _by [Chris Thoburn](https://github.com/runspired)_
+- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds _by [Chris Thoburn](https://github.com/runspired)_
## 0.0.0
diff --git a/packages/flexi-default-styles/addon/styles/addon.scss b/packages/flexi-default-styles/addon/styles/addon.scss
index c5a3f8d2..8f37eb45 100644
--- a/packages/flexi-default-styles/addon/styles/addon.scss
+++ b/packages/flexi-default-styles/addon/styles/addon.scss
@@ -1,6 +1,6 @@
-@import 'variables';
+@import "variables";
-@import 'mixins/index';
-@import 'grid/grid';
-@import 'helpers/index';
-@import 'components/index';
+@import "mixins/index";
+@import "grid/grid";
+@import "helpers/index";
+@import "components/index";
diff --git a/packages/flexi-default-styles/addon/styles/components/_index.scss b/packages/flexi-default-styles/addon/styles/components/_index.scss
index 1ff68f08..0328b70d 100644
--- a/packages/flexi-default-styles/addon/styles/components/_index.scss
+++ b/packages/flexi-default-styles/addon/styles/components/_index.scss
@@ -1,12 +1,12 @@
-@import 'grid';
-@import 'box';
-@import 'centered';
-@import 'hbox';
-@import 'page';
-@import 'screen';
-@import 'vbox';
-@import 'container';
-@import 'fill';
+@import "grid";
+@import "box";
+@import "centered";
+@import "hbox";
+@import "page";
+@import "screen";
+@import "vbox";
+@import "container";
+@import "fill";
$detected-elements: (
grid: true,
@@ -21,41 +21,39 @@ $detected-elements: (
);
@if ($include-css and $include-element-css) {
-
- @if (map-get($detected-elements, 'grid')) {
+ @if (map-get($detected-elements, "grid")) {
@include gridElement();
}
- @if (map-get($detected-elements, 'box')) {
+ @if (map-get($detected-elements, "box")) {
@include boxElement();
}
- @if (map-get($detected-elements, 'centered')) {
+ @if (map-get($detected-elements, "centered")) {
@include centeredElement();
}
- @if (map-get($detected-elements, 'hbox')) {
+ @if (map-get($detected-elements, "hbox")) {
@include hboxElement();
}
- @if (map-get($detected-elements, 'page')) {
+ @if (map-get($detected-elements, "page")) {
@include pageElement();
}
- @if (map-get($detected-elements, 'screen')) {
+ @if (map-get($detected-elements, "screen")) {
@include screenElement();
}
- @if (map-get($detected-elements, 'vbox')) {
+ @if (map-get($detected-elements, "vbox")) {
@include vboxElement();
}
- @if (map-get($detected-elements, 'container')) {
+ @if (map-get($detected-elements, "container")) {
@include containerElement();
}
- @if (map-get($detected-elements, 'fill')) {
+ @if (map-get($detected-elements, "fill")) {
@include fillElement();
}
-
}
diff --git a/packages/flexi-default-styles/addon/styles/grid/_functions.scss b/packages/flexi-default-styles/addon/styles/grid/_functions.scss
index fbdd7136..1a1781a7 100644
--- a/packages/flexi-default-styles/addon/styles/grid/_functions.scss
+++ b/packages/flexi-default-styles/addon/styles/grid/_functions.scss
@@ -14,7 +14,6 @@
@return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
}
-
@function pixel($num) {
@if unitless($num) {
@return $num * 1px;
diff --git a/packages/flexi-default-styles/addon/styles/grid/_grid.scss b/packages/flexi-default-styles/addon/styles/grid/_grid.scss
index d2fd973f..730ca7ab 100644
--- a/packages/flexi-default-styles/addon/styles/grid/_grid.scss
+++ b/packages/flexi-default-styles/addon/styles/grid/_grid.scss
@@ -1,5 +1,5 @@
-@import 'functions';
-@import 'mixins';
+@import "functions";
+@import "mixins";
@if ($include-css) {
@include make-columns($breakpoints, $column-prefix, $columns);
diff --git a/packages/flexi-default-styles/addon/styles/grid/_mixins.scss b/packages/flexi-default-styles/addon/styles/grid/_mixins.scss
index 535467a0..56dd11b2 100644
--- a/packages/flexi-default-styles/addon/styles/grid/_mixins.scss
+++ b/packages/flexi-default-styles/addon/styles/grid/_mixins.scss
@@ -33,9 +33,9 @@
@mixin make-columns($breakpoints, $column-prefix, $columns) {
$breakpoint-counter: 0;
- $col-prefix: '';
+ $col-prefix: "";
@if ($column-prefix) {
- $col-prefix: '#{$column-prefix}-';
+ $col-prefix: "#{$column-prefix}-";
}
@each $name, $breakpoint-setup in $breakpoints {
@@ -44,7 +44,6 @@
// @media and @container breakpoints
@include breakpoint-up($name, $breakpoints) {
-
// responsive utilities
.hidden-#{$bp-prefix} {
display: none;
@@ -187,13 +186,13 @@
// It is currently recommended that you use a sized to the offset
// you need.
@for $i from 0 through ($columns - 1) {
- @if $breakpoint-counter != 1 or $i != 0 { // Avoid emitting useless .col-xs-offset-0
+ @if $breakpoint-counter != 1 or $i != 0 {
+ // Avoid emitting useless .col-xs-offset-0
.#{$col-prefix}offset-#{$bp-prefix}-#{$i} {
margin-left: percentage(math.div($i, $columns));
}
}
}
-
}
}
}
diff --git a/packages/flexi-default-styles/addon/styles/helpers/_index.scss b/packages/flexi-default-styles/addon/styles/helpers/_index.scss
index d44e6cc6..b0b64ec6 100644
--- a/packages/flexi-default-styles/addon/styles/helpers/_index.scss
+++ b/packages/flexi-default-styles/addon/styles/helpers/_index.scss
@@ -1 +1 @@
-@import 'alignment';
+@import "alignment";
diff --git a/packages/flexi-default-styles/addon/styles/mixins/_flex.scss b/packages/flexi-default-styles/addon/styles/mixins/_flex.scss
index 20b47fe5..b60225ae 100644
--- a/packages/flexi-default-styles/addon/styles/mixins/_flex.scss
+++ b/packages/flexi-default-styles/addon/styles/mixins/_flex.scss
@@ -2,16 +2,16 @@
// https://github.com/philipwalton/flexbugs
@mixin flex($values) {
- @if $values == 'none' {
+ @if $values == "none" {
-webkit-box-flex: 0;
- -moz-box-flex: 0;
+ -moz-box-flex: 0;
} @else {
-webkit-box-flex: nth($values, 1);
- -moz-box-flex: nth($values, 1);
+ -moz-box-flex: nth($values, 1);
}
- -webkit-flex: $values;
- -ms-flex: $values;
- flex: $values;
+ -webkit-flex: $values;
+ -ms-flex: $values;
+ flex: $values;
}
@mixin flexDisplay {
diff --git a/packages/flexi-default-styles/addon/styles/mixins/_index.scss b/packages/flexi-default-styles/addon/styles/mixins/_index.scss
index 375d01d0..aecca698 100644
--- a/packages/flexi-default-styles/addon/styles/mixins/_index.scss
+++ b/packages/flexi-default-styles/addon/styles/mixins/_index.scss
@@ -1,2 +1,2 @@
-@import 'element';
-@import 'flex';
+@import "element";
+@import "flex";
diff --git a/packages/flexi-default-styles/index.js b/packages/flexi-default-styles/index.js
index c3953b0a..c7908e5e 100644
--- a/packages/flexi-default-styles/index.js
+++ b/packages/flexi-default-styles/index.js
@@ -12,10 +12,7 @@ module.exports = {
return mergeTrees(
[
tree,
- new FlexiVariableCompiler(
- path.join(__dirname, 'addon/styles'),
- getValidatedFlexiConfig(this.project.root)
- ),
+ new FlexiVariableCompiler(path.join(__dirname, 'addon/styles'), getValidatedFlexiConfig(this.project.root)),
],
{ overwrite: true }
);
@@ -24,8 +21,7 @@ module.exports = {
isDevelopingAddon(...args) {
if (
typeof this.parent.name === 'string' &&
- (this.parent.name === 'flexi' ||
- this.parent.name.startsWith('@html-next/flexi-'))
+ (this.parent.name === 'flexi' || this.parent.name.startsWith('@html-next/flexi-'))
) {
return this.parent.isDevelopingAddon();
}
diff --git a/packages/flexi-dsl/CHANGELOG.md b/packages/flexi-dsl/CHANGELOG.md
index 326343f9..77a16585 100644
--- a/packages/flexi-dsl/CHANGELOG.md
+++ b/packages/flexi-dsl/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
## v1.1.9
@@ -7,11 +6,11 @@ Changelog
### Pull Requests
-- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes *by [Chris Thoburn](https://github.com/runspired)*
+- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines *by [Chris Thoburn](https://github.com/runspired)*
+- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.7
@@ -19,7 +18,7 @@ Changelog
#### Commits
-- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes *by [Chris Thoburn](https://github.com/runspired)*
+- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.4
@@ -27,19 +26,19 @@ Changelog
### Pull Requests
-- [#35](https://github.com/runspired/flexi/pull/35) Release Changes *by [Chris Thoburn](https://github.com/runspired)*
-- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes *by [koriroys/docs](https://github.com/koriroys/docs)*
-- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name *by [koriroys/refactor](https://github.com/koriroys/refactor)*
-- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired *by [Jay Phelps](https://github.com/jayphelps)*
-- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion *by [Chris Thoburn](https://github.com/runspired)*
+- [#35](https://github.com/runspired/flexi/pull/35) Release Changes _by [Chris Thoburn](https://github.com/runspired)_
+- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes _by [koriroys/docs](https://github.com/koriroys/docs)_
+- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name _by [koriroys/refactor](https://github.com/koriroys/refactor)_
+- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired _by [Jay Phelps](https://github.com/jayphelps)_
+- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes *by [Chris Thoburn](https://github.com/runspired)*
-- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake *by [Kori Roys](https://github.com/koriroys)*
-- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes *by [Kori Roys](https://github.com/koriroys)*
-- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming *by [Kori Roys](https://github.com/koriroys)*
-- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name *by [Kori Roys](https://github.com/koriroys)*
+- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes _by [Chris Thoburn](https://github.com/runspired)_
+- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake _by [Kori Roys](https://github.com/koriroys)_
+- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes _by [Kori Roys](https://github.com/koriroys)_
+- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming _by [Kori Roys](https://github.com/koriroys)_
+- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name _by [Kori Roys](https://github.com/koriroys)_
## v1.1.1
@@ -47,24 +46,24 @@ Changelog
### Pull Requests
-- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks *by [Chris Thoburn](https://github.com/runspired/feat)*
+- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks _by [Chris Thoburn](https://github.com/runspired/feat)_
#### Commits
-- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled *by [Chris Thoburn](https://github.com/runspired)*
-- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout *by [Chris Thoburn](https://github.com/runspired)*
-- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue *by [Chris Thoburn](https://github.com/runspired)*
+- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled _by [Chris Thoburn](https://github.com/runspired)_
+- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout _by [Chris Thoburn](https://github.com/runspired)_
+- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue _by [Chris Thoburn](https://github.com/runspired)_
## v1.0.1
### Pull Requests
-- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo *by [Ilya Radchenko](https://github.com/knownasilya)*
-- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements *by [Chris Thoburn](https://github.com/runspired)*
-- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds *by [Chris Thoburn](https://github.com/runspired)*
+- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo _by [Ilya Radchenko](https://github.com/knownasilya)_
+- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements _by [Chris Thoburn](https://github.com/runspired)_
+- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds _by [Chris Thoburn](https://github.com/runspired)_
## 0.0.0
diff --git a/packages/flexi-dsl/dsl/dsl-defaults.js b/packages/flexi-dsl/dsl/dsl-defaults.js
index d05bae04..4d9ec21b 100644
--- a/packages/flexi-dsl/dsl/dsl-defaults.js
+++ b/packages/flexi-dsl/dsl/dsl-defaults.js
@@ -24,9 +24,7 @@ const LAYOUT_PROPERTIES = [
*/
module.exports = {
generateGridClass(breakpointPrefix, colNumber, columnPrefix) {
- return `${
- columnPrefix ? `${columnPrefix}-` : ''
- }${breakpointPrefix}-${colNumber}`;
+ return `${columnPrefix ? `${columnPrefix}-` : ''}${breakpointPrefix}-${colNumber}`;
},
generateResponderClass(breakpointPrefix, responder, value) {
@@ -46,26 +44,14 @@ module.exports = {
},
generateOffsetClass(breakpointPrefix, colNumber, columnPrefix) {
- return `${
- columnPrefix ? `${columnPrefix}-` : ''
- }offset-${breakpointPrefix}-${colNumber}`;
+ return `${columnPrefix ? `${columnPrefix}-` : ''}offset-${breakpointPrefix}-${colNumber}`;
},
/*
Only elements with a tag matching elements in the DSL have their attributes
and properties converted.
*/
- elements: [
- 'box',
- 'centered',
- 'container',
- 'fill',
- 'grid',
- 'hbox',
- 'page',
- 'screen',
- 'vbox',
- ],
+ elements: ['box', 'centered', 'container', 'fill', 'grid', 'hbox', 'page', 'screen', 'vbox'],
/*
Responders are values which can occur within breakpoint properties
diff --git a/packages/flexi-dsl/dsl/template-precompiler.js b/packages/flexi-dsl/dsl/template-precompiler.js
index 0d62cadf..90b6bec8 100644
--- a/packages/flexi-dsl/dsl/template-precompiler.js
+++ b/packages/flexi-dsl/dsl/template-precompiler.js
@@ -23,32 +23,20 @@ function isResponsiveGrid(elementNode) {
}
function isFlexiLayoutComponent(node) {
- return (
- node.type === 'ElementNode' &&
- (node.tag === 'container' || isResponsiveGrid(node))
- );
+ return node.type === 'ElementNode' && (node.tag === 'container' || isResponsiveGrid(node));
}
function isElementWeConvertAttributesFor({ dsl }, node) {
- return (
- node.type === 'ElementNode' &&
- (dsl.transformAll || dsl.elements.has(node.tag))
- );
+ return node.type === 'ElementNode' && (dsl.transformAll || dsl.elements.has(node.tag));
}
function _convertGridColumns({ dsl }, breakpointPrefix, columns) {
if (columns >= MIN_COLUMN_COUNT && columns <= dsl.columns) {
- return dsl.generateGridClass(
- breakpointPrefix,
- columns,
- dsl.columnPrefix,
- dsl.columns
- );
+ return dsl.generateGridClass(breakpointPrefix, columns, dsl.columnPrefix, dsl.columns);
}
throw new Error(
- `Flexi#attribute-conversion:: '${columns}'` +
- ` is not a valid column value for ${breakpointPrefix}.`
+ `Flexi#attribute-conversion:: '${columns}'` + ` is not a valid column value for ${breakpointPrefix}.`
);
}
@@ -56,17 +44,11 @@ function _convertOffsetColumns({ dsl }, breakpointPrefix, value) {
const offset = Number.parseInt(value.substr(OFFSET_STR.length), 10);
if (!Number.isNaN(offset) && offset >= 0 && offset < dsl.columns) {
- return dsl.generateOffsetClass(
- breakpointPrefix,
- offset,
- dsl.columnPrefix,
- dsl.columns
- );
+ return dsl.generateOffsetClass(breakpointPrefix, offset, dsl.columnPrefix, dsl.columns);
}
throw new Error(
- `Flexi#attribute-conversion:: '${offset}'` +
- ` is not a valid column offset for ${breakpointPrefix}.`
+ `Flexi#attribute-conversion:: '${offset}'` + ` is not a valid column offset for ${breakpointPrefix}.`
);
}
@@ -88,8 +70,7 @@ function _convertComplexAttribute({ dsl, utils }, attributeNode) {
if (!validValues.includes(attributeValue)) {
throw new Error(
- `Flexi#attribute-conversion:: '${attributeValue}'` +
- ` is not a valid value for ${attributeNode.name}.`
+ `Flexi#attribute-conversion:: '${attributeValue}'` + ` is not a valid value for ${attributeNode.name}.`
);
}
@@ -104,9 +85,7 @@ function _convertBreakpointAttribute({ dsl, utils }, breakpointAttribute) {
// Convert column number values
const columns = Number.parseInt(responderAttribute, 10);
if (!Number.isNaN(columns)) {
- classNames.push(
- utils._convertGridColumns({ dsl, utils }, breakpointPrefix, columns)
- );
+ classNames.push(utils._convertGridColumns({ dsl, utils }, breakpointPrefix, columns));
return;
}
@@ -116,13 +95,7 @@ function _convertBreakpointAttribute({ dsl, utils }, breakpointAttribute) {
const responderConverter = utils.responderConverters[splitAttribute[0]];
if (responderConverter) {
classNames.push(
- responderConverter.call(
- this,
- { dsl, utils },
- breakpointPrefix,
- splitAttribute[0],
- splitAttribute[1]
- )
+ responderConverter.call(this, { dsl, utils }, breakpointPrefix, splitAttribute[0], splitAttribute[1])
);
return;
@@ -130,61 +103,35 @@ function _convertBreakpointAttribute({ dsl, utils }, breakpointAttribute) {
// Convert offset values
if (responderAttribute.startsWith(OFFSET_STR)) {
- classNames.push(
- utils._convertOffsetColumns(
- { dsl, utils },
- breakpointPrefix,
- responderAttribute
- )
- );
+ classNames.push(utils._convertOffsetColumns({ dsl, utils }, breakpointPrefix, responderAttribute));
return;
}
- throw new Error(
- `Flexi#attribute-conversion:: '${responderAttribute}' is not a valid breakpoint attribute.`
- );
+ throw new Error(`Flexi#attribute-conversion:: '${responderAttribute}' is not a valid breakpoint attribute.`);
});
return classNames;
}
-function _convertResponder(
- { dsl },
- breakpointPrefix,
- responder,
- responderValue
-) {
+function _convertResponder({ dsl }, breakpointPrefix, responder, responderValue) {
if (responderValue) {
throw new Error(
- 'Flexi#attribute-conversion:: ' +
- `Attribute '${responder}' does not expect a value, given '${responderValue}'.`
+ 'Flexi#attribute-conversion:: ' + `Attribute '${responder}' does not expect a value, given '${responderValue}'.`
);
}
return dsl.generateResponderClass(breakpointPrefix, responder, null);
}
-function _convertComplexResponder(
- { dsl, utils },
- breakpointPrefix,
- responder,
- responderValue
-) {
+function _convertComplexResponder({ dsl, utils }, breakpointPrefix, responder, responderValue) {
const validValues = utils.complexResponderToValidValues[responder];
if (!validValues.includes(responderValue)) {
- throw new Error(
- `Flexi#attribute-conversion:: '${responderValue}'` +
- ` is not a valid value for ${responder}.`
- );
+ throw new Error(`Flexi#attribute-conversion:: '${responderValue}'` + ` is not a valid value for ${responder}.`);
}
- return dsl.generateResponderClass(
- breakpointPrefix,
- responder,
- responderValue
- );
+ return dsl.generateResponderClass(breakpointPrefix, responder, responderValue);
}
function setupConfig(config) {
@@ -247,31 +194,17 @@ function setupConfig(config) {
return { dsl, utils };
}
-function processAttribute(
- { dsl, utils },
- elementNode,
- attributeNode,
- classNames
-) {
+function processAttribute({ dsl, utils }, elementNode, attributeNode, classNames) {
if (attributeNode.name === 'class') {
return attributeNode;
}
// Return early if we don't have an attribute converter for this attribute
- if (
- !Object.prototype.hasOwnProperty.call(
- utils.attributeConverters,
- attributeNode.name
- )
- ) {
+ if (!Object.prototype.hasOwnProperty.call(utils.attributeConverters, attributeNode.name)) {
return;
}
- const generatedClasses = utils.attributeConverters[attributeNode.name].call(
- utils,
- { dsl, utils },
- attributeNode
- );
+ const generatedClasses = utils.attributeConverters[attributeNode.name].call(utils, { dsl, utils }, attributeNode);
if (typeof generatedClasses === 'string') {
classNames.push(generatedClasses);
@@ -280,10 +213,7 @@ function processAttribute(
}
// Remove the custom attribute from the node
- elementNode.attributes.splice(
- elementNode.attributes.indexOf(attributeNode),
- 1
- );
+ elementNode.attributes.splice(elementNode.attributes.indexOf(attributeNode), 1);
}
function updateClassNode(builder, elementNode, classNode, classNames) {
@@ -323,12 +253,7 @@ module.exports = function (env, options) {
// Iterate over the element's attributes backwards so we can remove attributes while iterating
for (let i = node.attributes.length - 1; i >= 0; i--) {
- const maybeClassNode = processAttribute(
- converter,
- node,
- node.attributes[i],
- classNames
- );
+ const maybeClassNode = processAttribute(converter, node, node.attributes[i], classNames);
if (maybeClassNode) {
classNode = maybeClassNode;
}
diff --git a/packages/flexi-dsl/index.js b/packages/flexi-dsl/index.js
index a8bd1fe5..11208e88 100644
--- a/packages/flexi-dsl/index.js
+++ b/packages/flexi-dsl/index.js
@@ -10,8 +10,7 @@ module.exports = {
isDevelopingAddon(...args) {
if (
typeof this.parent.name === 'string' &&
- (this.parent.name === 'flexi' ||
- this.parent.name.startsWith('@html-next/flexi-'))
+ (this.parent.name === 'flexi' || this.parent.name.startsWith('@html-next/flexi-'))
) {
return this.parent.isDevelopingAddon();
}
diff --git a/packages/flexi-layouts/CHANGELOG.md b/packages/flexi-layouts/CHANGELOG.md
index 326343f9..77a16585 100644
--- a/packages/flexi-layouts/CHANGELOG.md
+++ b/packages/flexi-layouts/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
## v1.1.9
@@ -7,11 +6,11 @@ Changelog
### Pull Requests
-- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes *by [Chris Thoburn](https://github.com/runspired)*
+- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines *by [Chris Thoburn](https://github.com/runspired)*
+- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.7
@@ -19,7 +18,7 @@ Changelog
#### Commits
-- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes *by [Chris Thoburn](https://github.com/runspired)*
+- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.4
@@ -27,19 +26,19 @@ Changelog
### Pull Requests
-- [#35](https://github.com/runspired/flexi/pull/35) Release Changes *by [Chris Thoburn](https://github.com/runspired)*
-- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes *by [koriroys/docs](https://github.com/koriroys/docs)*
-- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name *by [koriroys/refactor](https://github.com/koriroys/refactor)*
-- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired *by [Jay Phelps](https://github.com/jayphelps)*
-- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion *by [Chris Thoburn](https://github.com/runspired)*
+- [#35](https://github.com/runspired/flexi/pull/35) Release Changes _by [Chris Thoburn](https://github.com/runspired)_
+- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes _by [koriroys/docs](https://github.com/koriroys/docs)_
+- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name _by [koriroys/refactor](https://github.com/koriroys/refactor)_
+- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired _by [Jay Phelps](https://github.com/jayphelps)_
+- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes *by [Chris Thoburn](https://github.com/runspired)*
-- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake *by [Kori Roys](https://github.com/koriroys)*
-- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes *by [Kori Roys](https://github.com/koriroys)*
-- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming *by [Kori Roys](https://github.com/koriroys)*
-- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name *by [Kori Roys](https://github.com/koriroys)*
+- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes _by [Chris Thoburn](https://github.com/runspired)_
+- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake _by [Kori Roys](https://github.com/koriroys)_
+- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes _by [Kori Roys](https://github.com/koriroys)_
+- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming _by [Kori Roys](https://github.com/koriroys)_
+- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name _by [Kori Roys](https://github.com/koriroys)_
## v1.1.1
@@ -47,24 +46,24 @@ Changelog
### Pull Requests
-- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks *by [Chris Thoburn](https://github.com/runspired/feat)*
+- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks _by [Chris Thoburn](https://github.com/runspired/feat)_
#### Commits
-- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled *by [Chris Thoburn](https://github.com/runspired)*
-- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout *by [Chris Thoburn](https://github.com/runspired)*
-- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue *by [Chris Thoburn](https://github.com/runspired)*
+- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled _by [Chris Thoburn](https://github.com/runspired)_
+- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout _by [Chris Thoburn](https://github.com/runspired)_
+- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue _by [Chris Thoburn](https://github.com/runspired)_
## v1.0.1
### Pull Requests
-- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo *by [Ilya Radchenko](https://github.com/knownasilya)*
-- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements *by [Chris Thoburn](https://github.com/runspired)*
-- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds *by [Chris Thoburn](https://github.com/runspired)*
+- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo _by [Ilya Radchenko](https://github.com/knownasilya)_
+- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements _by [Chris Thoburn](https://github.com/runspired)_
+- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds _by [Chris Thoburn](https://github.com/runspired)_
## 0.0.0
diff --git a/packages/flexi-layouts/README.md b/packages/flexi-layouts/README.md
index 57c12701..f216b9cc 100644
--- a/packages/flexi-layouts/README.md
+++ b/packages/flexi-layouts/README.md
@@ -5,9 +5,10 @@
Flexi-layouts is the layouts portion of flexi.
It includes the following concepts:
-* [Viewport Specific Templates](https://flexi.readme.io/docs/viewport-specific-templates)
-* [Blueprints](https://flexi.readme.io/docs/blueprints) for generating viewport specific templates or moving existing templates into a layouts structure.
-* [Layout Service](https://flexi.readme.io/docs/layout-service) for checking `isMobile`, `isDesktop` and other various things
+
+- [Viewport Specific Templates](https://flexi.readme.io/docs/viewport-specific-templates)
+- [Blueprints](https://flexi.readme.io/docs/blueprints) for generating viewport specific templates or moving existing templates into a layouts structure.
+- [Layout Service](https://flexi.readme.io/docs/layout-service) for checking `isMobile`, `isDesktop` and other various things
### Installation
@@ -26,17 +27,16 @@ Alternatively install just this package:
ember install @html-next/flexi-layouts
```
-That's all that required if you're using the classic component layout. If you are using a _pod_-based structure you will also need to install the shim for `ember-app`. This is done by modifiying your `ember-cli-build.js` file. This shim makes ember-cli's template tree able to find
+That's all that required if you're using the classic component layout. If you are using a _pod_-based structure you will also need to install the shim for `ember-app`. This is done by modifiying your `ember-cli-build.js` file. This shim makes ember-cli's template tree able to find
the templates for layouts.
```js
-var EmberApp = require('ember-cli/lib/broccoli/ember-app');
-var shim = require('@html-next/flexi-layouts/lib/pod-templates-shim');
+var EmberApp = require("ember-cli/lib/broccoli/ember-app");
+var shim = require("@html-next/flexi-layouts/lib/pod-templates-shim");
shim(EmberApp);
```
-
## Support, Questions, Collaboration
Join the [Ember community on Discord](https://discord.gg/zT3asNS)
diff --git a/packages/flexi-layouts/addon/components/flexi-grid.hbs b/packages/flexi-layouts/addon/components/flexi-grid.hbs
index 1597676e..1e7b69a8 100644
--- a/packages/flexi-layouts/addon/components/flexi-grid.hbs
+++ b/packages/flexi-layouts/addon/components/flexi-grid.hbs
@@ -1,7 +1,3 @@
-
+
{{yield}}
\ No newline at end of file
diff --git a/packages/flexi-layouts/addon/lib/monitor.js b/packages/flexi-layouts/addon/lib/monitor.js
index 1129e6e6..60894b17 100644
--- a/packages/flexi-layouts/addon/lib/monitor.js
+++ b/packages/flexi-layouts/addon/lib/monitor.js
@@ -42,8 +42,7 @@ export class ResizeMonitor {
const currentWidth = element.clientWidth;
const currentHeight = element.clientHeight;
const widthChanged = currentWidth !== info.width && info.width !== 0;
- const heightChanged =
- currentHeight !== info.height && info.height !== 0;
+ const heightChanged = currentHeight !== info.height && info.height !== 0;
info.width = currentWidth;
info.height = currentHeight;
diff --git a/packages/flexi-layouts/addon/services/device/layout.js b/packages/flexi-layouts/addon/services/device/layout.js
index 95b577db..c6d9ea34 100644
--- a/packages/flexi-layouts/addon/services/device/layout.js
+++ b/packages/flexi-layouts/addon/services/device/layout.js
@@ -69,10 +69,7 @@ export default class extends Service.extend(Evented) {
}
setupBreakpoints() {
- assert(
- 'You must configure some breakpoints',
- Array.isArray(this.breakpoints) && this.breakpoints.length > 0
- );
+ assert('You must configure some breakpoints', Array.isArray(this.breakpoints) && this.breakpoints.length > 0);
// sort breakpoints largest to smallest
// TODO do this at build time
diff --git a/packages/flexi-layouts/blueprints/layout/index.js b/packages/flexi-layouts/blueprints/layout/index.js
index 261afeb6..f9092ae7 100644
--- a/packages/flexi-layouts/blueprints/layout/index.js
+++ b/packages/flexi-layouts/blueprints/layout/index.js
@@ -52,13 +52,7 @@ module.exports = {
const nameParts = options.dasherizedModuleName.split('/');
const name = nameParts.pop();
if (!LayoutNames.includes(name)) {
- throw new Error(
- "Invalid Layout name '" +
- name +
- "'. Valid names are '" +
- LayoutNames.join(', ') +
- "'"
- );
+ throw new Error("Invalid Layout name '" + name + "'. Valid names are '" + LayoutNames.join(', ') + "'");
}
return name;
},
diff --git a/packages/flexi-layouts/config/ember-try.js b/packages/flexi-layouts/config/ember-try.js
index 1e6272c4..237f8f72 100644
--- a/packages/flexi-layouts/config/ember-try.js
+++ b/packages/flexi-layouts/config/ember-try.js
@@ -3,11 +3,7 @@
const getChannelURL = require('ember-source-channel-url');
module.exports = function () {
- return Promise.all([
- getChannelURL('release'),
- getChannelURL('beta'),
- getChannelURL('canary'),
- ]).then((urls) => {
+ return Promise.all([getChannelURL('release'), getChannelURL('beta'), getChannelURL('canary')]).then((urls) => {
return {
usePnpm: true,
scenarios: [
diff --git a/packages/flexi-layouts/index.js b/packages/flexi-layouts/index.js
index fac20ffe..c70060f5 100644
--- a/packages/flexi-layouts/index.js
+++ b/packages/flexi-layouts/index.js
@@ -13,8 +13,7 @@ module.exports = {
isDevelopingAddon(...args) {
if (
typeof this.parent.name === 'string' &&
- (this.parent.name === 'flexi' ||
- this.parent.name.startsWith('@html-next/flexi-'))
+ (this.parent.name === 'flexi' || this.parent.name.startsWith('@html-next/flexi-'))
) {
return this.parent.isDevelopingAddon();
}
diff --git a/packages/flexi-layouts/lib/commands/move.js b/packages/flexi-layouts/lib/commands/move.js
index 913b2a59..40709c89 100644
--- a/packages/flexi-layouts/lib/commands/move.js
+++ b/packages/flexi-layouts/lib/commands/move.js
@@ -12,9 +12,7 @@ function assert(statement, test) {
}
function getPodPrefix(config) {
- return config.podModulePrefix
- ? config.podModulePrefix.substr(config.modulePrefix.length + 1)
- : '';
+ return config.podModulePrefix ? config.podModulePrefix.substr(config.modulePrefix.length + 1) : '';
}
module.exports = {
@@ -35,18 +33,14 @@ module.exports = {
const flexiConfig = config.flexi || {};
let type = rawArgs.shift();
let name = rawArgs.shift();
- const breakpoint =
- commandOptions.breakpoint || flexiConfig.defaultBreakpoint;
+ const breakpoint = commandOptions.breakpoint || flexiConfig.defaultBreakpoint;
if (!name) {
name = type;
type = 'route';
}
- assert(
- 'You must supply a to transform into a layout.',
- name
- );
+ assert('You must supply a to transform into a layout.', name);
assert(
'You must either configure a defaultBreakpoint in config/flexi.js or use the -b flag to specify a breakpoint name for the layout.',
breakpoint
diff --git a/packages/flexi-layouts/lib/compile.js b/packages/flexi-layouts/lib/compile.js
index efc705be..35314e0a 100644
--- a/packages/flexi-layouts/lib/compile.js
+++ b/packages/flexi-layouts/lib/compile.js
@@ -14,12 +14,7 @@ function build(file, inputs) {
if (debug) {
const modulePathOffset = 5;
- console.log(
- chalk.yellow(
- 'Compiled Layout: ' +
- file.substr(file.indexOf('.tmp') + modulePathOffset)
- )
- );
+ console.log(chalk.yellow('Compiled Layout: ' + file.substr(file.indexOf('.tmp') + modulePathOffset)));
console.log('\n', chalk.cyan(fs.readFileSync(file), '\n\n'));
}
return true;
@@ -59,21 +54,13 @@ module.exports = function compile(file, layouts, breakpoints) {
const ordered = orderedLayouts(layouts, breakpoints);
if (ordered.length === 1) {
- inputs.push(
- '{{#let (-inject-layout) as |FlexiLayout|}}',
- ordered[0].data,
- '{{/let}}'
- );
+ inputs.push('{{#let (-inject-layout) as |FlexiLayout|}}', ordered[0].data, '{{/let}}');
return build(file, inputs);
}
ordered.forEach(function (layout, index) {
if (index === 0) {
- inputs.push(
- '{{#let (-inject-layout) as |FlexiLayout|}}',
- makeFirstTest(layout.name),
- layout.data
- );
+ inputs.push('{{#let (-inject-layout) as |FlexiLayout|}}', makeFirstTest(layout.name), layout.data);
} else if (index === ordered.length - 1) {
inputs.push('{{else}}', layout.data, '{{/if}}', '{{/let}}');
} else {
diff --git a/packages/flexi-layouts/lib/layout-compiler.js b/packages/flexi-layouts/lib/layout-compiler.js
index 4d6e328e..3ec55c94 100644
--- a/packages/flexi-layouts/lib/layout-compiler.js
+++ b/packages/flexi-layouts/lib/layout-compiler.js
@@ -43,9 +43,7 @@ function collectLayout(dirPath, pathInfo, layoutNames) {
let templatePath;
try {
templatePath =
- isClassic || isModern
- ? path.join(dirPath, '../' + moduleName + '.hbs')
- : path.join(dirPath, 'template.hbs');
+ isClassic || isModern ? path.join(dirPath, '../' + moduleName + '.hbs') : path.join(dirPath, 'template.hbs');
const template = fs.statSync(templatePath);
hasTemplate = template && template.isFile();
} catch {
@@ -61,9 +59,7 @@ function collectLayout(dirPath, pathInfo, layoutNames) {
fullPath: dirPath,
pathInfo,
};
- fs.readdirSync(path.join(dirPath, LAYOUT_DIRNAME)).forEach(function (
- layoutName
- ) {
+ fs.readdirSync(path.join(dirPath, LAYOUT_DIRNAME)).forEach(function (layoutName) {
const { name } = path.parse(layoutName);
if (layoutNames.includes(name)) {
@@ -75,9 +71,7 @@ function collectLayout(dirPath, pathInfo, layoutNames) {
} else {
const stats = fs.statSync(path.join(dirPath, LAYOUT_DIRNAME, layoutName));
if (stats && stats.isFile()) {
- console.warn(
- chalk.yellow('Layout ' + name + ' is not a valid layout.')
- );
+ console.warn(chalk.yellow('Layout ' + name + ' is not a valid layout.'));
}
}
});
@@ -121,11 +115,7 @@ class LayoutCompiler extends Plugin {
const destPath = layout.fullPath.substr(layout.pathInfo.base.length + 1);
const dest =
layout.isClassic || layout.isModern
- ? path.join(
- layout.pathInfo.output,
- destPath,
- '../' + layout.name + '.hbs'
- )
+ ? path.join(layout.pathInfo.output, destPath, '../' + layout.name + '.hbs')
: path.join(layout.pathInfo.output, destPath, 'template.hbs');
makeDir(layout.pathInfo.output, destPath);
diff --git a/packages/flexi-layouts/lib/pod-templates-shim.js b/packages/flexi-layouts/lib/pod-templates-shim.js
index 1d38e8c6..cea8c78a 100644
--- a/packages/flexi-layouts/lib/pod-templates-shim.js
+++ b/packages/flexi-layouts/lib/pod-templates-shim.js
@@ -3,10 +3,8 @@
module.exports = function (EmberApp) {
// shims ember-cli so that our layout and sustainables templates will work
EmberApp.prototype._podTemplatePatterns = function () {
- return this.registry
- .extensionsForType('template')
- .map(function (extension) {
- return '**/*/*.' + extension;
- });
+ return this.registry.extensionsForType('template').map(function (extension) {
+ return '**/*/*.' + extension;
+ });
};
};
diff --git a/packages/flexi-layouts/lib/tasks/rename-template.js b/packages/flexi-layouts/lib/tasks/rename-template.js
index 9b26ea99..9e91ac1f 100644
--- a/packages/flexi-layouts/lib/tasks/rename-template.js
+++ b/packages/flexi-layouts/lib/tasks/rename-template.js
@@ -50,12 +50,7 @@ function resolvePodComponent(name, options) {
if (options.type !== 'component') {
return false;
}
- const templatePath = path.join(
- options.root,
- 'components',
- name,
- 'template.hbs'
- );
+ const templatePath = path.join(options.root, 'components', name, 'template.hbs');
if (exists(templatePath, 'pod-component', options.verbose)) {
return {
@@ -85,12 +80,7 @@ function resolvePod(name, options) {
}
function resolvePodPrefix(name, options) {
- const templatePath = path.join(
- options.root,
- options.prefix,
- name,
- 'template.hbs'
- );
+ const templatePath = path.join(options.root, options.prefix, name, 'template.hbs');
if (exists(templatePath, 'prefixed-pod', options.verbose)) {
return {
@@ -113,13 +103,7 @@ function resolvePodPrefixComponent(name, options) {
return false;
}
- const templatePath = path.join(
- options.root,
- options.prefix,
- 'components',
- name,
- 'template.hbs'
- );
+ const templatePath = path.join(options.root, options.prefix, 'components', name, 'template.hbs');
if (exists(templatePath, 'prefixed-pod-component', options.verbose)) {
return {
@@ -136,24 +120,18 @@ function resolvePodPrefixComponent(name, options) {
function resolve(options) {
const { name } = options;
const matches = [];
- [
- resolveClassic,
- resolvePod,
- resolvePodComponent,
- resolvePodPrefix,
- resolvePodPrefixComponent,
- ].forEach(function (resolver) {
- const found = resolver(name, options);
-
- if (found) {
- matches.push(found);
+ [resolveClassic, resolvePod, resolvePodComponent, resolvePodPrefix, resolvePodPrefixComponent].forEach(
+ function (resolver) {
+ const found = resolver(name, options);
+
+ if (found) {
+ matches.push(found);
+ }
}
- });
+ );
if (matches.length === 0) {
- console.log(
- chalk.red('No ' + options.type + ' template was found for ' + name)
- );
+ console.log(chalk.red('No ' + options.type + ' template was found for ' + name));
if (!options.verbose) {
console.log(
chalk.yellow(
@@ -198,8 +176,7 @@ function constructNewPath(info, options) {
const parsed = path.parse(info.path);
pathInfo.base = parsed.dir;
- pathInfo.rest =
- info.mode === 'classic' ? path.join(parsed.name, '-layouts') : '-layouts';
+ pathInfo.rest = info.mode === 'classic' ? path.join(parsed.name, '-layouts') : '-layouts';
pathInfo.dirPath = path.join(parsed.dir, pathInfo.rest);
pathInfo.filePath = path.join(pathInfo.dirPath, options.breakpoint + '.hbs');
diff --git a/packages/flexi-layouts/tests/acceptance/classic-layouts-test.js b/packages/flexi-layouts/tests/acceptance/classic-layouts-test.js
index 26b359ac..75026720 100644
--- a/packages/flexi-layouts/tests/acceptance/classic-layouts-test.js
+++ b/packages/flexi-layouts/tests/acceptance/classic-layouts-test.js
@@ -12,10 +12,6 @@ module('Acceptance | classic layouts', function (hooks) {
await visit('/classic-layout-testroute');
assert.strictEqual(currentURL(), '/classic-layout-testroute');
- assert.strictEqual(
- find('h1.test-header').textContent,
- 'Success!',
- 'The layout renders'
- );
+ assert.strictEqual(find('h1.test-header').textContent, 'Success!', 'The layout renders');
});
});
diff --git a/packages/flexi-layouts/tests/dummy/app/components/classic-component.hbs b/packages/flexi-layouts/tests/dummy/app/components/classic-component.hbs
index 3d936d26..3a8316c7 100644
--- a/packages/flexi-layouts/tests/dummy/app/components/classic-component.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/components/classic-component.hbs
@@ -1 +1 @@
-
Classic Component
+
Classic Component
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/desktop.hbs b/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/desktop.hbs
index ed2a1862..d414ed2f 100644
--- a/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/desktop.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/components/component-with-layouts/-layouts/desktop.hbs
@@ -2,4 +2,4 @@
Desktop!
-
+
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/index.html b/packages/flexi-layouts/tests/dummy/app/index.html
index c8cca27c..9e30e751 100644
--- a/packages/flexi-layouts/tests/dummy/app/index.html
+++ b/packages/flexi-layouts/tests/dummy/app/index.html
@@ -1,16 +1,19 @@
-
+
-
-
+
+
Flexi | Just a layout framework.
-
-
+
+
{{content-for "head"}}
-
-
-
+
+
+
{{content-for "head-footer"}}
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/application/template.hbs b/packages/flexi-layouts/tests/dummy/app/routes/application/template.hbs
index 39580c80..da268802 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/application/template.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/application/template.hbs
@@ -1,4 +1,3 @@
{{outlet}}
-
-
+
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/index/-layouts/mobile.hbs b/packages/flexi-layouts/tests/dummy/app/routes/index/-layouts/mobile.hbs
index f54dad92..57087de2 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/index/-layouts/mobile.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/index/-layouts/mobile.hbs
@@ -11,10 +11,10 @@
-
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/site-index/template.hbs b/packages/flexi-layouts/tests/dummy/app/routes/site-index/template.hbs
index 354b86bd..0c3d76a0 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/site-index/template.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/site-index/template.hbs
@@ -3,8 +3,8 @@
The Routes below are used for both manual and automated testing.
-
Layouts Test
-
Mobile First Test
-
Modern Component With Layouts Test
-
Classic Layouts Test
+
Layouts Test
+
Mobile First Test
+
Modern Component With Layouts Test
+
Classic Layouts Test
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/template.hbs b/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/template.hbs
index 1f92c75d..6cfb55c3 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/template.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/tests/components/destroyed-container/template.hbs
@@ -4,8 +4,6 @@
{{/if}}
-
+
component that destroys the container
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/desktop.hbs b/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/desktop.hbs
index ed2a1862..d414ed2f 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/desktop.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/tests/layouts/-layouts/desktop.hbs
@@ -2,4 +2,4 @@
Desktop!
-
+
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs b/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
index ed2a1862..d414ed2f 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
@@ -2,4 +2,4 @@
Desktop!
-
+
\ No newline at end of file
diff --git a/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs b/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
index 114282a8..be55f9a2 100644
--- a/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
+++ b/packages/flexi-layouts/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
@@ -2,4 +2,4 @@
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/site-index/template.hbs b/packages/flexi-sustain/tests/dummy/app/routes/site-index/template.hbs
index cad0f9ce..e6e12e12 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/site-index/template.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/site-index/template.hbs
@@ -3,10 +3,10 @@
The Routes below are used for both manual and automated testing.
-
Mobile First
-
Sustain
-
Sustain Classic Component
-
Sustain Hooks
-
Sustain Labels
-
Sustain With No Layout
+
Mobile First
+
Sustain
+
Sustain Classic Component
+
Sustain Hooks
+
Sustain Labels
+
Sustain With No Layout
\ No newline at end of file
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs b/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
index ed2a1862..d414ed2f 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/desktop.hbs
@@ -2,4 +2,4 @@
Desktop!
-
+
\ No newline at end of file
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs b/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
index 114282a8..be55f9a2 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/tests/mobile-first/-layouts/mobile.hbs
@@ -2,4 +2,4 @@
Mobile!
-
+
\ No newline at end of file
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/template.hbs b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/template.hbs
index 8f2ea074..b582776d 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/template.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-classic-component/template.hbs
@@ -1 +1 @@
-{{sustain 'classic-component'}}
+{{sustain "classic-component"}}
\ No newline at end of file
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/template.hbs b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/template.hbs
index ae1f7d96..e3e75c2c 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/template.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain-labels-2/template.hbs
@@ -1,4 +1,4 @@
-{{!-- initial location --}}
+{{! initial location }}
{{sustain "tests/components/missing-layout"}}
@@ -6,7 +6,7 @@
{{sustain "tests/components/missing-layout" label="label-test-1"}}
-{{!-- final location --}}
+{{! final location }}
If I was, the component above's ID will be identical between the routes
- sustain and sustain-b.
+
If I was, the component above's ID will be identical between the routes sustain and sustain-b.
My model's foo value should show below:
{{@model.foo}}
\ No newline at end of file
diff --git a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/template.hbs b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/template.hbs
index 8907ef0c..27e50171 100644
--- a/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/template.hbs
+++ b/packages/flexi-sustain/tests/dummy/app/routes/tests/sustain/components/tagless-title/template.hbs
@@ -1,9 +1,7 @@
I ought to be sustained without an extra div
-
If I was, the component above's ID will be identicall between the routes
- sustain and sustain-b.
+
If I was, the component above's ID will be identicall between the routes sustain and sustain-b.
-
More Tagless Stuff just to show multiple top level elements still works
- nicely
+
More Tagless Stuff just to show multiple top level elements still works nicely
@@ -40,7 +37,6 @@
- {{content-for "body-footer"}}
- {{content-for "test-body-footer"}}
+ {{content-for "body-footer"}} {{content-for "test-body-footer"}}
diff --git a/packages/flexi/CHANGELOG.md b/packages/flexi/CHANGELOG.md
index 326343f9..77a16585 100644
--- a/packages/flexi/CHANGELOG.md
+++ b/packages/flexi/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
## v1.1.9
@@ -7,11 +6,11 @@ Changelog
### Pull Requests
-- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes *by [Chris Thoburn](https://github.com/runspired)*
+- [#53](https://github.com/runspired/flexi/pull/53) **feat**: exposes DSL for end users to create their own layout syntaxes _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines *by [Chris Thoburn](https://github.com/runspired)*
+- [302ac7cd](https://github.com/runspired/flexi/commit/302ac7cd59437781f0db8e6e43d0b6c5fbd999fc) **fix(engines)**: enable flexi to better work in nested engines _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.7
@@ -19,7 +18,7 @@ Changelog
#### Commits
-- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes *by [Chris Thoburn](https://github.com/runspired)*
+- [6ffecce3](https://github.com/runspired/flexi/commit/6ffecce3167a3cce793f218da01030779b937fa5) **fix(columnPrefix)**: correctly convert attributes to column classes _by [Chris Thoburn](https://github.com/runspired)_
## v1.1.4
@@ -27,19 +26,19 @@ Changelog
### Pull Requests
-- [#35](https://github.com/runspired/flexi/pull/35) Release Changes *by [Chris Thoburn](https://github.com/runspired)*
-- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes *by [koriroys/docs](https://github.com/koriroys/docs)*
-- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name *by [koriroys/refactor](https://github.com/koriroys/refactor)*
-- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired *by [Jay Phelps](https://github.com/jayphelps)*
-- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion *by [Chris Thoburn](https://github.com/runspired)*
+- [#35](https://github.com/runspired/flexi/pull/35) Release Changes _by [Chris Thoburn](https://github.com/runspired)_
+- [#36](https://github.com/runspired/flexi/pull/36) **docs**: grammar and spelling fixes _by [koriroys/docs](https://github.com/koriroys/docs)_
+- [#34](https://github.com/runspired/flexi/pull/34) **refactor**: more descriptive method name _by [koriroys/refactor](https://github.com/koriroys/refactor)_
+- [#38](https://github.com/runspired/flexi/pull/38) 15 -> 5 secs per @runspired _by [Jay Phelps](https://github.com/jayphelps)_
+- [#41](https://github.com/runspired/flexi/pull/41) Patch to fix Attribute Conversion _by [Chris Thoburn](https://github.com/runspired)_
#### Commits
-- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes *by [Chris Thoburn](https://github.com/runspired)*
-- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake *by [Kori Roys](https://github.com/koriroys)*
-- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes *by [Kori Roys](https://github.com/koriroys)*
-- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming *by [Kori Roys](https://github.com/koriroys)*
-- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name *by [Kori Roys](https://github.com/koriroys)*
+- [9d39e88b](https://github.com/runspired/flexi/commit/9d39e88bcda59cdc19c093cbfb5ca544e8d2d552) **fix(attribute-conversion)**: fixes issue #37 with parsing multiple attributes _by [Chris Thoburn](https://github.com/runspired)_
+- [022884a9](https://github.com/runspired/flexi/commit/022884a9c2faa304cec123f88d023348d740223d) **fix(layout-service)**: spelling mistake _by [Kori Roys](https://github.com/koriroys)_
+- [2f524a6a](https://github.com/runspired/flexi/commit/2f524a6aaf7e96218d2deb9aab916e4ce0140ece) **docs(readme)**: grammar and spelling fixes _by [Kori Roys](https://github.com/koriroys)_
+- [b9acd6bb](https://github.com/runspired/flexi/commit/b9acd6bbb1a938d28b078f59b6888ffb44ad81cd) **fix(layout-service)**: prefer orientationIs to deviceIs/deviseIs - better naming _by [Kori Roys](https://github.com/koriroys)_
+- [a1a70864](https://github.com/runspired/flexi/commit/a1a70864b53fe90d984fe01d8e5f953c819546ad) **refactor(layout-service)**: more descriptive method name _by [Kori Roys](https://github.com/koriroys)_
## v1.1.1
@@ -47,24 +46,24 @@ Changelog
### Pull Requests
-- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them *by [Chris Thoburn](https://github.com/runspired/feat)*
-- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks *by [Chris Thoburn](https://github.com/runspired/feat)*
+- [#22](https://github.com/runspired/flexi/pull/22) Faster initial sustain render _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#27](https://github.com/runspired/flexi/pull/27) **feat**: implements labels and tests, resolves #16 _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#28](https://github.com/runspired/flexi/pull/28) Adds documentation for labels and namespaces them _by [Chris Thoburn](https://github.com/runspired/feat)_
+- [#29](https://github.com/runspired/flexi/pull/29) Feat/sustain hooks _by [Chris Thoburn](https://github.com/runspired/feat)_
#### Commits
-- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled *by [Chris Thoburn](https://github.com/runspired)*
-- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout *by [Chris Thoburn](https://github.com/runspired)*
-- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue *by [Chris Thoburn](https://github.com/runspired)*
+- [941b9be6](https://github.com/runspired/flexi/commit/941b9be629c3792da056232480781fac282f7869) **fix(tagless components)**: tagless components are now correctly handled _by [Chris Thoburn](https://github.com/runspired)_
+- [74109e37](https://github.com/runspired/flexi/commit/74109e37d580496501ac1dfedfabde420116c993) **fix(mobile-first)**: ensure we always fall back to closest layout _by [Chris Thoburn](https://github.com/runspired)_
+- [a4f4f7f1](https://github.com/runspired/flexi/commit/a4f4f7f1c49b441cdc768d3eed966c89ef78fa3a) **fix(layout-compile)**: improves efficiency of compiled templates, and resolves mobile-first issue _by [Chris Thoburn](https://github.com/runspired)_
## v1.0.1
### Pull Requests
-- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo *by [Ilya Radchenko](https://github.com/knownasilya)*
-- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements *by [Chris Thoburn](https://github.com/runspired)*
-- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds *by [Chris Thoburn](https://github.com/runspired)*
+- [#19](https://github.com/runspired/flexi/pull/19) Fix layout path typo _by [Ilya Radchenko](https://github.com/knownasilya)_
+- [#20](https://github.com/runspired/flexi/pull/20) Fixes leaky sustain movements _by [Chris Thoburn](https://github.com/runspired)_
+- [#21](https://github.com/runspired/flexi/pull/21) set build branches to fix missing builds _by [Chris Thoburn](https://github.com/runspired)_
## 0.0.0
diff --git a/packages/flexi/README.md b/packages/flexi/README.md
index 932da015..3848eba3 100644
--- a/packages/flexi/README.md
+++ b/packages/flexi/README.md
@@ -15,18 +15,17 @@ Flexi does most of it's heavy lifting at `build` time, happily adding very littl
- Blog Post: [Modern Responsive Design illustrated with Ember & Flexi](https://runspired.com/2016/03/18/a-tale-of-two-states/)
- Talk: [Responsive and Cross Platform Design](https://www.youtube.com/watch?v=2w77wrinwsY&list=PLaKDKbFmAv-aLYGogQ63zzKeUpy_opDia&index=1)
-
## Installation
```cli
ember install flexi
```
-That's all that required if you're using the classic component layout. If you are using a _pod_-based structure you will also need to install the shim for `ember-app`. This is done by modifiying your `ember-cli-build.js` file. This shim makes ember-cli's template tree able to find the templates for layouts.
+That's all that required if you're using the classic component layout. If you are using a _pod_-based structure you will also need to install the shim for `ember-app`. This is done by modifiying your `ember-cli-build.js` file. This shim makes ember-cli's template tree able to find the templates for layouts.
```js
-const EmberApp = require('ember-cli/lib/broccoli/ember-app');
-const shim = require('@html-next/flexi-layouts/lib/pod-templates-shim');
+const EmberApp = require("ember-cli/lib/broccoli/ember-app");
+const shim = require("@html-next/flexi-layouts/lib/pod-templates-shim");
shim(EmberApp);
```
@@ -41,10 +40,10 @@ Join the [Ember community on Discord](https://discord.gg/zT3asNS)
## Contributing
- - Open an Issue for discussion first if you're unsure a feature/fix is wanted.
- - Branch off of `main` (default branch)
- - Use descriptive branch names (e.g. `/`)
- - PR against `main` (default branch).
+- Open an Issue for discussion first if you're unsure a feature/fix is wanted.
+- Branch off of `main` (default branch)
+- Use descriptive branch names (e.g. `/`)
+- PR against `main` (default branch).
## Thanks
diff --git a/packages/flexi/blueprints/flexi/index.js b/packages/flexi/blueprints/flexi/index.js
index 01a02e85..a83e00bd 100644
--- a/packages/flexi/blueprints/flexi/index.js
+++ b/packages/flexi/blueprints/flexi/index.js
@@ -49,9 +49,7 @@ module.exports = {
name: 'flexi-layouts',
value: { name: '@html-next/flexi-layouts' },
},
- new inquirer.Separator(
- 'flexi-sustain - Recyclable components (Ember <= 2.9)'
- ),
+ new inquirer.Separator('flexi-sustain - Recyclable components (Ember <= 2.9)'),
{
checked: false,
message: '',
diff --git a/packages/flexi/config/ember-try.js b/packages/flexi/config/ember-try.js
index 0d7c8d54..2de6e3af 100644
--- a/packages/flexi/config/ember-try.js
+++ b/packages/flexi/config/ember-try.js
@@ -3,11 +3,7 @@
const getChannelURL = require('ember-source-channel-url');
module.exports = function () {
- return Promise.all([
- getChannelURL('release'),
- getChannelURL('beta'),
- getChannelURL('canary'),
- ]).then((urls) => {
+ return Promise.all([getChannelURL('release'), getChannelURL('beta'), getChannelURL('canary')]).then((urls) => {
return {
usePnpm: true,
scenarios: [
diff --git a/packages/flexi/index.js b/packages/flexi/index.js
index 3492ccc8..034b1db7 100644
--- a/packages/flexi/index.js
+++ b/packages/flexi/index.js
@@ -22,35 +22,21 @@ module.exports = {
}
const flexiConfigVersion = packageVersionByName['@html-next/flexi-config'];
- const flexiDefaultStylesVersion =
- packageVersionByName['@html-next/flexi-default-styles'];
+ const flexiDefaultStylesVersion = packageVersionByName['@html-next/flexi-default-styles'];
const flexiDslVersion = packageVersionByName['@html-next/flexi-dsl'];
- const flexiLayoutsVersion =
- packageVersionByName['@html-next/flexi-layouts'];
+ const flexiLayoutsVersion = packageVersionByName['@html-next/flexi-layouts'];
if (flexiConfigVersion && SEMVER.lt(flexiConfigVersion, '2.0.0-rc.1')) {
- this._warnUser(
- 'flexi-config < v2.0.0-rc.1; consider upgrading to at least v2.0.0-rc.1'
- );
+ this._warnUser('flexi-config < v2.0.0-rc.1; consider upgrading to at least v2.0.0-rc.1');
}
- if (
- flexiDefaultStylesVersion &&
- SEMVER.lt(flexiDefaultStylesVersion, '2.0.0-rc.2')
- ) {
- this._warnUser(
- 'flexi-default-styles < v2.0.0-rc.2;' +
- ' consider upgrading to at least v2.0.0-rc.2'
- );
+ if (flexiDefaultStylesVersion && SEMVER.lt(flexiDefaultStylesVersion, '2.0.0-rc.2')) {
+ this._warnUser('flexi-default-styles < v2.0.0-rc.2;' + ' consider upgrading to at least v2.0.0-rc.2');
}
if (flexiDslVersion && SEMVER.lt(flexiDslVersion, '2.0.0-rc.2')) {
- this._warnUser(
- 'flexi-dsl < v2.0.0-rc.2; consider upgrading to at least v2.0.0-rc.2'
- );
+ this._warnUser('flexi-dsl < v2.0.0-rc.2; consider upgrading to at least v2.0.0-rc.2');
}
if (flexiLayoutsVersion && SEMVER.lt(flexiLayoutsVersion, '2.0.0-rc.2')) {
- this._warnUser(
- 'flexi-layouts < v2.0.0-rc.2; consider upgrading to at least v2.0.0-rc.2'
- );
+ this._warnUser('flexi-layouts < v2.0.0-rc.2; consider upgrading to at least v2.0.0-rc.2');
}
},
diff --git a/packages/flexi/tests/dummy/app/index.html b/packages/flexi/tests/dummy/app/index.html
index d59ebaf7..9e30e751 100644
--- a/packages/flexi/tests/dummy/app/index.html
+++ b/packages/flexi/tests/dummy/app/index.html
@@ -1,16 +1,19 @@
-
+
-
-
+
+
Flexi | Just a layout framework.
-
-
+
+
{{content-for "head"}}
-
-
-
+
+
+
{{content-for "head-footer"}}
diff --git a/packages/flexi/tests/dummy/app/routes/docs/-layouts/mobile.hbs b/packages/flexi/tests/dummy/app/routes/docs/-layouts/mobile.hbs
index 3cd0d186..0603a1b2 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/-layouts/mobile.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/-layouts/mobile.hbs
@@ -1,7 +1,7 @@
- {{sustain 'docs/components/nav-banner'}}
+ {{sustain "docs/components/nav-banner"}}
{{liquid-outlet "main"}}
diff --git a/packages/flexi/tests/dummy/app/routes/docs/-layouts/tablet.hbs b/packages/flexi/tests/dummy/app/routes/docs/-layouts/tablet.hbs
index 90695632..4b2b4452 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/-layouts/tablet.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/-layouts/tablet.hbs
@@ -1,11 +1,11 @@
- {{sustain 'docs/components/nav-banner'}}
+ {{sustain "docs/components/nav-banner"}}
- {{sustain 'docs/components/nav-menu'}}
+ {{sustain "docs/components/nav-menu"}}
{{liquid-outlet "main"}}
diff --git a/packages/flexi/tests/dummy/app/routes/docs/blueprints/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/blueprints/template.hbs
index cfc27956..9acaefdb 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/blueprints/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/blueprints/template.hbs
@@ -1,10 +1,9 @@
-
Blueprints
- Next Configuration
+ Next Configuration
@@ -47,4 +46,4 @@
--}}
-
+
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/container-css/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/container-css/template.hbs
index b6f69be2..6bc88867 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/container-css/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/container-css/template.hbs
@@ -3,14 +3,13 @@
@container CSS
- Next Containers
+ Next Containers
- Each @media CSS query has a matching `.container-[prefix]` class that enables
- you to have grid columns and responsive utilities respond to changes in
- container widths instead of viewport widths.
+ Each @media CSS query has a matching `.container-[prefix]` class that enables you to have grid columns and
+ responsive utilities respond to changes in container widths instead of viewport widths.
@@ -18,13 +17,15 @@
- Flexi comes with a container mixin you can add to components which generates
- the updates appropriate class based on it's width.
+ Flexi comes with a container mixin you can add to components which generates the updates appropriate class based on
+ it's width.
- The <container></container>
- and <grid responsive></grid> elements are actually
- Ember components which implement this mixin.
+ The
+ <container></container>
+ and
+ <grid responsive></grid>
+ elements are actually Ember components which implement this mixin.
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/mobile.hbs b/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/mobile.hbs
index 32fc0ca3..8a44d69a 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/mobile.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/index/-layouts/mobile.hbs
@@ -1 +1 @@
-{{sustain 'docs/components/nav-menu'}}
\ No newline at end of file
+{{sustain "docs/components/nav-menu"}}
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/installation/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/installation/template.hbs
index fc0ddb25..a079c76a 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/installation/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/installation/template.hbs
@@ -2,7 +2,7 @@
Layout Service
- Next Blueprints
+ Next Blueprints
@@ -11,9 +11,8 @@
{{/let}}
- Once you have installed flexi, you will also need to install the shim for ember-app.
- in your ember-cli-build.js file. This shim makes ember-cli's template tree able to find
- the templates for layouts.
+ Once you have installed flexi, you will also need to install the shim for ember-app. in your ember-cli-build.js
+ file. This shim makes ember-cli's template tree able to find the templates for layouts.
{{#let (get-code-snippet "install-2.js") as |snippet|}}
diff --git a/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/template.hbs
index 015db05a..60c6f6e6 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/layout-attributes/template.hbs
@@ -3,19 +3,17 @@
Attribute Syntax
- Next @media CSS
+ Next @media CSS
- Layout attributes are converted to classes at build time, giving you the
- convenience of a nice attribute syntax and the performance of class based
- selectors.
+ Layout attributes are converted to classes at build time, giving you the convenience of a nice attribute syntax and
+ the performance of class based selectors.
- Layout attributes come in two forms, property descriptors, and
- breakpoint attributes.
+ Layout attributes come in two forms, property descriptors, and breakpoint attributes.
Property Descriptors
@@ -25,21 +23,20 @@
Breakpoint Attributes
- For each prefix defined in your breakpoints array in config/flexi.js
- you are capable of adding breakpoint aware layout properties and columns.
+ For each prefix defined in your breakpoints array in config/flexi.js you are capable of adding breakpoint aware
+ layout properties and columns.
- The following specifies that this box use 12 columns for the breakpoint prefixed
- `xs`, 6 for `sm` and so on.
+ The following specifies that this box use 12 columns for the breakpoint prefixed `xs`, 6 for `sm` and so on.
{{#let (get-code-snippet "breakpoint-attrs-1.hbs") as |snippet|}}
{{snippet.source}}
{{/let}}
- Attribute prefixes can take more than one value, separate values
- with a space. Valid values in addition to a column number are:
+ Attribute prefixes can take more than one value, separate values with a space. Valid values in addition to a column
+ number are:
{{#let (get-code-snippet "breakpoint-attrs-2.hbs") as |snippet|}}
{{snippet.source}}
@@ -76,8 +73,7 @@
wrap
- When the box is set to horizontal, it's items wrap to the next line
- if needed.
+ When the box is set to horizontal, it's items wrap to the next line if needed.
- The <container></container>
- and <grid responsive></grid> elements are components
- which generate and update the appropriate class based on their width
+ The
+ <container></container>
+ and
+ <grid responsive></grid>
+ elements are components which generate and update the appropriate class based on their width
- These components subscribe to the width property on the device/layout service,
- and recalculate their width whenever it changes. They then add a class name
- to their element based on comparing their width to your breakpoints.
+ These components subscribe to the width property on the device/layout service, and recalculate their width whenever
+ it changes. They then add a class name to their element based on comparing their width to your breakpoints.
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/layout-elements/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/layout-elements/template.hbs
index c3b89b51..22cf3b12 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/layout-elements/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/layout-elements/template.hbs
@@ -3,82 +3,74 @@
Layout Elements
- Next Layout Service
+ Next Layout Service
-
+
<screen></screen>
- Screen is a relatively positioned block which will take up 100% width
- and a min-height of 100vh. Screen is ideal for creating a wrapper
- around all of the content on a web page.
+ Screen is a relatively positioned block which will take up 100% width and a min-height of 100vh. Screen is ideal
+ for creating a wrapper around all of the content on a web page.
<page></page>
- Page is a relatively positioned flex box whose width is 100vw and min-height
- is 100vh. It defaults to aligning its items vertically. Page is ideal for
- quickly creating a wrapper that sizes precisely to the viewport.
+ Page is a relatively positioned flex box whose width is 100vw and min-height is 100vh. It defaults to aligning its
+ items vertically. Page is ideal for quickly creating a wrapper that sizes precisely to the viewport.
<fill></fill>
<fill block></fill>
- Fill comes in two flavors: flex model and box model (via addition of the `block`
- attribute). In both cases, it attempts to take up all of the available width and
- height to give you a stable size reference point off of which to work.
+ Fill comes in two flavors: flex model and box model (via addition of the `block` attribute). In both cases, it
+ attempts to take up all of the available width and height to give you a stable size reference point off of which
+ to work.
- When in flex mode, it defaults to aligning its items horizontally and allows
- them to wrap. Fill is ideal when you need to reset your mental layout space.
+ When in flex mode, it defaults to aligning its items horizontally and allows them to wrap. Fill is ideal when you
+ need to reset your mental layout space.
<centered></centered>
- Centered will center its content within the available space. This is ideal for
- any form of centering.
+ Centered will center its content within the available space. This is ideal for any form of centering.
<grid></grid>
<grid responsive></grid>
- Grid is a relatively positioned flex box which aligns its items horizontally
- and will wrap them to the next line, making it ideal for wrapping grid-like
- behavior when no rows are needed. It has no default flex value.
+ Grid is a relatively positioned flex box which aligns its items horizontally and will wrap them to the next line,
+ making it ideal for wrapping grid-like behavior when no rows are needed. It has no default flex value.
- When you add the `responsive` attribute to the grid tag, it becomes a component
- functioning as a container and makes its grid @container aware.
+ When you add the `responsive` attribute to the grid tag, it becomes a component functioning as a container and
+ makes its grid @container aware.
<box></box>
- Box is a relatively positioned flex box which by default will grow to match
- other items (flex: 1 0 0px) but will not expand to fill remaining space. This
- makes it ideal as a generic "box item" within other flex elements.
+ Box is a relatively positioned flex box which by default will grow to match other items (flex: 1 0 0px) but will
+ not expand to fill remaining space. This makes it ideal as a generic "box item" within other flex elements.
<hbox></hbox>
- Hbox is a relatively positioned flex box which will expand to fill remaining
- space (flex: 1 0 auto) and will align its items horizontally (hence hbox).
- By default it will wrap its contents to the next line when needed. This makes
+ Hbox is a relatively positioned flex box which will expand to fill remaining space (flex: 1 0 auto) and will align
+ its items horizontally (hence hbox). By default it will wrap its contents to the next line when needed. This makes
it ideal for quickly laying out items horizontally.
<vbox></vbox>
- Vbox is a relatively positioned flex box which will expand to fill remaining
- space (flex: 1 0 auto) and will align its items vertically (hence vbox). This
- makes it ideal for quickly laying out items vertically.
+ Vbox is a relatively positioned flex box which will expand to fill remaining space (flex: 1 0 auto) and will align
+ its items vertically (hence vbox). This makes it ideal for quickly laying out items vertically.
<container></container>
- Container is actually an Ember component which sets its tagName to 'container'.
- As an element, it is a relatively positioned flex box with 100% width, with no
- flex property, which will display its content vertically.
+ Container is actually an Ember component which sets its tagName to 'container'. As an element, it is a relatively
+ positioned flex box with 100% width, with no flex property, which will display its content vertically.
-
+
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/layout-service/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/layout-service/template.hbs
index 1fa1ff9b..90afa07e 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/layout-service/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/layout-service/template.hbs
@@ -2,13 +2,13 @@
Layout Service
- Next Grids
+ Next Grids
- The device/layout service listens to the window resize event and intelligently
- updates the value of it's width and height. It always has the following properties.
+ The device/layout service listens to the window resize event and intelligently updates the value of it's width and
+ height. It always has the following properties.
{{#let (get-code-snippet "layout-service-1.hbs") as |snippet|}}
@@ -16,9 +16,9 @@
{{/let}}
- The layout service exposes a boolean for each breakpoint name defined in your config,
- which will be true when the viewport width is larger or equal to that breakpoint's
- value for begin and less than the begin value for the next breakpoint.
+ The layout service exposes a boolean for each breakpoint name defined in your config, which will be true when the
+ viewport width is larger or equal to that breakpoint's value for begin and less than the begin value for the next
+ breakpoint.
@@ -42,7 +42,7 @@
-{{!-- BEGIN-SNIPPET layout-service-1
+{{! BEGIN-SNIPPET layout-service-1
{
orientation, // 'portrait' or 'landscape'
@@ -54,17 +54,17 @@
breakpoints, // array you supplied in your config, sorted largest to smallest
}
-END-SNIPPET --}}
+END-SNIPPET }}
-{{!-- BEGIN-SNIPPET layout-service-2
+{{! BEGIN-SNIPPET layout-service-2
['mobile', 'tablet', 'desktop', 'huge']
-END-SNIPPET --}}
+END-SNIPPET }}
-{{!-- BEGIN-SNIPPET layout-service-3
+{{! BEGIN-SNIPPET layout-service-3
{
isMobile,
isTablet,
isDesktop,
isHuge
}
-END-SNIPPET --}}
\ No newline at end of file
+END-SNIPPET }}
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/template.hbs
index 693bd909..0f4618a5 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/layouts-overview/template.hbs
@@ -3,43 +3,43 @@
Layouts
- Next Sustain
+ Next Sustain
- With flexi, you can separate your markup into separate layout files for each breakpoint size as needed.
- The existing template file for a route or component will continue to function until at least one layout
- is defined for that route or component.
+ With flexi, you can separate your markup into separate layout files for each breakpoint size as needed. The
+ existing template file for a route or component will continue to function until at least one layout is defined for
+ that route or component.
- Any breakpoint name defined in config/flexi.js is a valid layout name. At build time, your layout files
- will be compiled to a single template for the route or component with efficient breakpoint logic automatically
- inserted. Any invalid layout files will emit warnings in the CLI.
+ Any breakpoint name defined in config/flexi.js is a valid layout name. At build time, your layout files will be
+ compiled to a single template for the route or component with efficient breakpoint logic automatically inserted.
+ Any invalid layout files will emit warnings in the CLI.
Layouts work with either pod or classic project organization, and layouts can be generated (see the
- blueprint documentation).
+ blueprint documentation).
Pods
- To convert an existing template to a layout, rename the file to a breakpoint name, create a sibling
- `-layouts/` directory, and move the file into the new directory.
+ To convert an existing template to a layout, rename the file to a breakpoint name, create a sibling `-layouts/`
+ directory, and move the file into the new directory.
- To convert an existing template to a layout, rename the file to a breakpoint name, create a sibling
- directory with the component or route's name, and move the file into a new `-layouts/` directory
- within that directory.
+ To convert an existing template to a layout, rename the file to a breakpoint name, create a sibling directory with
+ the component or route's name, and move the file into a new `-layouts/` directory within that directory.
- Flexi generates a mobile first responsive grid and responsive utilities
- using @media CSS queries based on the breakpoints defined in your config/flexi.js
- file. Breakpoints look like the following:
+ Flexi generates a mobile first responsive grid and responsive utilities using @media CSS queries based on the
+ breakpoints defined in your config/flexi.js file. Breakpoints look like the following:
{{#let (get-code-snippet "settings-2.js") as |snippet|}}
@@ -17,24 +16,22 @@
{{/let}}
- With just a few tweaks to config/flexi.js your app will have custom tailored columns,
- prefixes, and breakpoints.
+ With just a few tweaks to config/flexi.js your app will have custom tailored columns, prefixes, and breakpoints.
- The grid columns are percentage based, with percentages derived from the total
- number of columns specified in the configuration (default 12).
+ The grid columns are percentage based, with percentages derived from the total number of columns specified in the
+ configuration (default 12).
- Breakpoints are considered valid from their begin up to the begin of the next largest
- breakpoint.
+ Breakpoints are considered valid from their begin up to the begin of the next largest breakpoint.
breakpoint.prefix
- The breakpoint prefix is used when generating grid and resonsive utility class names.
- The following responsive utilities are made available for each prefix:
+ The breakpoint prefix is used when generating grid and resonsive utility class names. The following responsive
+ utilities are made available for each prefix:
{{#let (get-code-snippet "settings-css-1.js") as |snippet|}}
diff --git a/packages/flexi/tests/dummy/app/routes/docs/overview/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/overview/template.hbs
index 0c694db0..4a23b8b1 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/overview/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/overview/template.hbs
@@ -2,28 +2,26 @@
Overview
- Next Installation
+ Next Installation
- Flexi is a layout framework built to solve difficult maintainability and performance concerns
- on projects with responsive designs or that ship layouts for more than one screen size.
+ Flexi is a layout framework built to solve difficult maintainability and performance concerns on projects with
+ responsive designs or that ship layouts for more than one screen size.
- Flexi will help you build faster, smarter, with an eye on long term needs and goals, and it
- integrates well with existing Ember projects of any size.
+ Flexi will help you build faster, smarter, with an eye on long term needs and goals, and it integrates well with
+ existing Ember projects of any size.
- Flexi is small and focused, and won't clog your runtime. It gives you declarative layout
- features that are processed at build time, leaving the most minimal runtime footprint
- possible and without bloating the size of your app.
+ Flexi is small and focused, and won't clog your runtime. It gives you declarative layout features that are processed
+ at build time, leaving the most minimal runtime footprint possible and without bloating the size of your app.
- Flexi is not a ui framework. It is a small set of layout primitives that make it simple
- to design for a range of device sizes and platforms, and will easily integrate with your
- existing ui-framework and/or grid-system of choice.
+ Flexi is not a ui framework. It is a small set of layout primitives that make it simple to design for a range of
+ device sizes and platforms, and will easily integrate with your existing ui-framework and/or grid-system of choice.
-
+
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/routes/docs/settings/template.hbs b/packages/flexi/tests/dummy/app/routes/docs/settings/template.hbs
index f9942aae..4bf417c1 100644
--- a/packages/flexi/tests/dummy/app/routes/docs/settings/template.hbs
+++ b/packages/flexi/tests/dummy/app/routes/docs/settings/template.hbs
@@ -2,13 +2,12 @@
Configuration
- Next Layouts
+ Next Layouts
- Flexi comes ready to go, but if you want to know where and what you can adjust
- read on below.
+ Flexi comes ready to go, but if you want to know where and what you can adjust read on below.
@@ -19,32 +18,29 @@
Settings
- {{#let (get-code-snippet "settings-1.hbs") as |snippet|}}
-
{{snippet.source}}
- {{/let}}
+ {{#let (get-code-snippet "settings-1.hbs") as |snippet|}}
+
{{snippet.source}}
+ {{/let}}
config.columns
- The total number of columns you want Flexi to generate or your CSS framework
- provides. This is used by Flexi when generating the grid, and used when
- validating the values of layout attributes discovered at build time.
+ The total number of columns you want Flexi to generate or your CSS framework provides. This is used by Flexi when
+ generating the grid, and used when validating the values of layout attributes discovered at build time.
config.columnPrefix
- By default, flexi generates a grid identical to bootstrap's to make converting
- or interop seamless. See configuring Flexi
- to work with your CSS framework or grid of choice.
+ By default, flexi generates a grid identical to bootstrap's to make converting or interop seamless. See
+ configuring Flexi to work with your CSS framework or grid of choice.
- This setting allows you to configure the structure of the generated grid class
- names.
+ This setting allows you to configure the structure of the generated grid class names.
config.includeMediaCSS
- If false, @media based responsive utilities and grid classes will not be generated.
- @container based utilities and grid classes will still be generated.
+ If false, @media based responsive utilities and grid classes will not be generated. @container based utilities and
+ grid classes will still be generated.
config.includeElementCSS
@@ -52,22 +48,20 @@
If you have no desire to use layout elements, set this to false.
- If false, default element styles will not be included, this includes the styles
- for <container></container>. Since all layout elements are entirely
- implemented via CSS, this will cause all layout elements to cease functioning
- unless new CSS is provided for them.
+ If false, default element styles will not be included, this includes the styles for
+ <container></container>. Since all layout elements are entirely implemented via CSS,
+ this will cause all layout elements to cease functioning unless new CSS is provided for them.
- You will want to replicate the CSS for <container></container> or
- rely entirely on the `flexi/mixins/container` mixin for implementing @container
- support.
+ You will want to replicate the CSS for
+ <container></container>
+ or rely entirely on the `flexi/mixins/container` mixin for implementing @container support.
config.transformAllElementLayoutAttributes
- By default, only layout attributes present on elements provided by flexi will
- be processed at build time and converted to classes. Set this to `true` to have
- all elements in your templates be processed.
+ By default, only layout attributes present on elements provided by flexi will be processed at build time and
+ converted to classes. Set this to `true` to have all elements in your templates be processed.
config.gutterPadding
@@ -77,17 +71,15 @@
config.includeCSS
- Set to false if you want absolutely no styles to be included in your app from Flexi.
- This trumps other CSS settings, and results in layout elements and responsive layout
- attributes not working unless alternative CSS is provided.
+ Set to false if you want absolutely no styles to be included in your app from Flexi. This trumps other CSS settings,
+ and results in layout elements and responsive layout attributes not working unless alternative CSS is provided.
config.breakpoints
- Your config must have a `breakpoints` array. This array determines what layout names
- are valid for layout handlebars files, when those layouts are activated, what layout
- attribute shorthands are available, what @container breakpoints are available, and what
- booleans are available on the device/layout service.
+ Your config must have a `breakpoints` array. This array determines what layout names are valid for layout handlebars
+ files, when those layouts are activated, what layout attribute shorthands are available, what @container breakpoints
+ are available, and what booleans are available on the device/layout service.
A breakpoint has the structure:
@@ -99,19 +91,18 @@
breakpoint.name
- `name` will be used for blueprint generation of layout names, and is made available as an `is[Name]`
- boolean on the `device/layout` service.
+ `name` will be used for blueprint generation of layout names, and is made available as an `is[Name]` boolean on the
+ `device/layout` service.
breakpoint.begin
- `begin` is the pixel value at which the breakpoint becomes valid if equal to or larger than.
- All breakpoints must define begin, and your smallest breakpoint should begin at 0. Two breakpoints
- should not have the same value for begin.
+ `begin` is the pixel value at which the breakpoint becomes valid if equal to or larger than. All breakpoints must
+ define begin, and your smallest breakpoint should begin at 0. Two breakpoints should not have the same value for
+ begin.
- A breakpoint will be considered valid from it's begin up to the begin of the next largest
- breakpoint.
+ A breakpoint will be considered valid from it's begin up to the begin of the next largest breakpoint.
Your breakpoints will be sorted and ordered automatically based on begin.
@@ -119,17 +110,15 @@
breakpoint.prefix
- The breakpoint prefix is used when generating class names and layout
- attribute decorators. For the breakpoint defined above, the `xs` prefix
- would enable the following shorthand layout syntax (where n is a column number).
+ The breakpoint prefix is used when generating class names and layout attribute decorators. For the breakpoint
+ defined above, the `xs` prefix would enable the following shorthand layout syntax (where n is a column number).
{{#let (get-code-snippet "settings-html-1.hbs") as |snippet|}}
{{snippet.source}}
{{/let}}
- This shorthand gets expanded to the following classes which are automatically
- generated by Flexi.
+ This shorthand gets expanded to the following classes which are automatically generated by Flexi.
{{#let (get-code-snippet "settings-html-2.hbs") as |snippet|}}
- Use the sustain helper to explicitly declare component instances that can be recycled.
- This lets Ember recycle a component instance and it's associated DOM across layout and
- route boundaries.
+ Use the sustain helper to explicitly declare component instances that can be recycled. This lets Ember recycle a
+ component instance and it's associated DOM across layout and route boundaries.
{{#let (get-code-snippet "sustain-1.hbs") as |snippet|}}
@@ -20,12 +19,12 @@
A sustain is essentially a "marker" for where a particular component instance should be inserted.
- Since the component a sustain specifies is moved from marker to marker, only one marker instance
- for a given component name can be used at a time, unless a unique label is provided.
+ Since the component a sustain specifies is moved from marker to marker, only one marker instance for a given
+ component name can be used at a time, unless a unique label is provided.
- This produces a significant performance advantage by allowing you to seamlessly restructure your
- app's DOM when shifting from one layout or route to another without needing to teardown and rebuild DOM.
+ This produces a significant performance advantage by allowing you to seamlessly restructure your app's DOM when
+ shifting from one layout or route to another without needing to teardown and rebuild DOM.
Providing a model for your component
@@ -44,8 +43,8 @@
Dealing with animation and other scenarios in which two instances exist at once.
- Only one instance of the sustainable is alive and rendered at a time, but if you are animating
- from one location to another you can choose to leave behind a copy.
+ Only one instance of the sustainable is alive and rendered at a time, but if you are animating from one location
+ to another you can choose to leave behind a copy.
{{#let (get-code-snippet "sustain-4.hbs") as |snippet|}}
{{snippet.source}}
@@ -53,9 +52,8 @@
Configuring the component's cache expire time.
- By default, a sustain is destroyed when it has gone unused for 5 seconds.
- You can alter this expiration. A value of 0 or -1 will cause the sustain to
- live forever.
+ By default, a sustain is destroyed when it has gone unused for 5 seconds. You can alter this expiration. A value
+ of 0 or -1 will cause the sustain to live forever.
{{#let (get-code-snippet "sustain-5.hbs") as |snippet|}}
{{snippet.source}}
@@ -63,9 +61,9 @@
Labeling a sustain
- If you need more than one instance of a component to be recycleable, you may provide a unique label
- for the sustain. The instance will only be reused in locations where that label appears in conjunction
- with the same Component Name.
+ If you need more than one instance of a component to be recycleable, you may provide a unique label for the
+ sustain. The instance will only be reused in locations where that label appears in conjunction with the same
+ Component Name.
{{#let (get-code-snippet "sustain-6.hbs") as |snippet|}}
{{snippet.source}}
@@ -73,8 +71,8 @@
Lifecycle Hooks
- The component being sustained has access to two new hooks: `willMove` and `didMove`.
- For both, a method by that name on your component will trigger before the event fires.
+ The component being sustained has access to two new hooks: `willMove` and `didMove`. For both, a method by that
+ name on your component will trigger before the event fires.
willMove: fires before a component instance leaves a location
@@ -113,4 +111,4 @@
{{sustain 'foo-component' model label="a-key"}}
{{-- END-SNIPPET
---}}
+--}}
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/styles/_variables.scss b/packages/flexi/tests/dummy/app/styles/_variables.scss
index 33e66bf4..d9dd5546 100644
--- a/packages/flexi/tests/dummy/app/styles/_variables.scss
+++ b/packages/flexi/tests/dummy/app/styles/_variables.scss
@@ -1,4 +1,4 @@
-$lighter: #DBE2EF;
-$light: #CDD7E7;
-$medium: #B2BFD8;
-$dark: #96A9C8;
+$lighter: #dbe2ef;
+$light: #cdd7e7;
+$medium: #b2bfd8;
+$dark: #96a9c8;
diff --git a/packages/flexi/tests/dummy/app/styles/app.scss b/packages/flexi/tests/dummy/app/styles/app.scss
index f5034cdd..d61ac14f 100644
--- a/packages/flexi/tests/dummy/app/styles/app.scss
+++ b/packages/flexi/tests/dummy/app/styles/app.scss
@@ -1,4 +1,4 @@
-@import 'variables';
+@import "variables";
// BEGINNING OF STYLES USED IN EXAMPLES
body {
margin: 0;
@@ -48,4 +48,3 @@ a {
color: $dark;
text-decoration: none;
}
-
diff --git a/packages/flexi/tests/dummy/app/templates/application.hbs b/packages/flexi/tests/dummy/app/templates/application.hbs
index 52e62614..25fc6a23 100644
--- a/packages/flexi/tests/dummy/app/templates/application.hbs
+++ b/packages/flexi/tests/dummy/app/templates/application.hbs
@@ -1 +1 @@
-{{liquid-outlet use="cross-fade"}}
+{{liquid-outlet use="cross-fade"}}
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/templates/components/lorem-ipsum.hbs b/packages/flexi/tests/dummy/app/templates/components/lorem-ipsum.hbs
index 6e120cf8..fad3a964 100644
--- a/packages/flexi/tests/dummy/app/templates/components/lorem-ipsum.hbs
+++ b/packages/flexi/tests/dummy/app/templates/components/lorem-ipsum.hbs
@@ -1,19 +1,69 @@
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi suscipit, ligula at porta ultrices, mi erat gravida tellus, vel consequat nisi justo at odio. Pellentesque non massa eu est pharetra dignissim nec id orci. Morbi ac tincidunt quam, vel varius ipsum. Nunc sit amet hendrerit enim. Fusce eget urna et libero sagittis volutpat. Proin convallis vulputate sapien, eget aliquet purus fringilla at. Vivamus at pellentesque libero. Duis libero nunc, tristique semper consequat at, convallis et quam. Cras sagittis mauris eget sagittis viverra. Quisque id aliquet tortor. Fusce maximus neque dolor, id lobortis arcu suscipit a. Mauris posuere enim id aliquet euismod. Mauris bibendum id lorem eget fermentum. Donec eget nulla sapien. Donec volutpat fermentum diam elementum fermentum.
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi suscipit, ligula at porta ultrices, mi erat gravida
+ tellus, vel consequat nisi justo at odio. Pellentesque non massa eu est pharetra dignissim nec id orci. Morbi ac
+ tincidunt quam, vel varius ipsum. Nunc sit amet hendrerit enim. Fusce eget urna et libero sagittis volutpat. Proin
+ convallis vulputate sapien, eget aliquet purus fringilla at. Vivamus at pellentesque libero. Duis libero nunc,
+ tristique semper consequat at, convallis et quam. Cras sagittis mauris eget sagittis viverra. Quisque id aliquet
+ tortor. Fusce maximus neque dolor, id lobortis arcu suscipit a. Mauris posuere enim id aliquet euismod. Mauris
+ bibendum id lorem eget fermentum. Donec eget nulla sapien. Donec volutpat fermentum diam elementum fermentum.
-Suspendisse cursus erat et neque aliquam blandit. Proin efficitur, neque id cursus finibus, sem nisl euismod lacus, quis ornare massa mauris nec felis. Nunc dapibus varius magna sit amet dignissim. Suspendisse in eros et diam iaculis viverra sed eget augue. Nullam sed egestas lectus, sed hendrerit mauris. Nulla nec imperdiet lorem. Pellentesque augue sem, pharetra sit amet lobortis ac, placerat vel lacus. Pellentesque id metus auctor, tincidunt mauris in, gravida nisi. Mauris egestas commodo arcu, et imperdiet nibh malesuada eget. Suspendisse non tempor quam. Sed sed nibh quam. Vivamus malesuada dui tortor. Sed vulputate odio non mi tincidunt porta. Sed condimentum nunc at odio condimentum, quis elementum leo porttitor. Donec eu maximus nunc. In sed sem eu libero sodales consequat eu scelerisque lectus.
+ Suspendisse cursus erat et neque aliquam blandit. Proin efficitur, neque id cursus finibus, sem nisl euismod lacus,
+ quis ornare massa mauris nec felis. Nunc dapibus varius magna sit amet dignissim. Suspendisse in eros et diam iaculis
+ viverra sed eget augue. Nullam sed egestas lectus, sed hendrerit mauris. Nulla nec imperdiet lorem. Pellentesque augue
+ sem, pharetra sit amet lobortis ac, placerat vel lacus. Pellentesque id metus auctor, tincidunt mauris in, gravida
+ nisi. Mauris egestas commodo arcu, et imperdiet nibh malesuada eget. Suspendisse non tempor quam. Sed sed nibh quam.
+ Vivamus malesuada dui tortor. Sed vulputate odio non mi tincidunt porta. Sed condimentum nunc at odio condimentum,
+ quis elementum leo porttitor. Donec eu maximus nunc. In sed sem eu libero sodales consequat eu scelerisque lectus.
-Nullam id sollicitudin ante. Mauris orci diam, sagittis sit amet urna sed, imperdiet finibus ligula. Donec at sodales magna. Donec congue turpis ut neque pretium elementum. Sed eget finibus enim. Duis maximus efficitur magna a auctor. Cras in luctus nisi, id commodo sapien. Sed vestibulum fringilla turpis dictum finibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus nec tellus lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec sed odio sed nibh tristique convallis. Praesent commodo dui sit amet velit auctor viverra. Curabitur at est nisl. Quisque ut ornare magna.
+ Nullam id sollicitudin ante. Mauris orci diam, sagittis sit amet urna sed, imperdiet finibus ligula. Donec at sodales
+ magna. Donec congue turpis ut neque pretium elementum. Sed eget finibus enim. Duis maximus efficitur magna a auctor.
+ Cras in luctus nisi, id commodo sapien. Sed vestibulum fringilla turpis dictum finibus. Orci varius natoque penatibus
+ et magnis dis parturient montes, nascetur ridiculus mus. Phasellus nec tellus lectus. Pellentesque habitant morbi
+ tristique senectus et netus et malesuada fames ac turpis egestas. Donec sed odio sed nibh tristique convallis.
+ Praesent commodo dui sit amet velit auctor viverra. Curabitur at est nisl. Quisque ut ornare magna.
-Nullam et iaculis eros. Ut velit sem, vehicula non elementum ac, pulvinar in magna. Aenean nec quam eu odio fringilla rhoncus ac eget augue. Proin vel lobortis lacus, vitae dictum enim. Nulla facilisi. Donec feugiat urna eget augue viverra, vel finibus tellus sagittis. Proin eu purus ipsum. Etiam vitae egestas quam, at luctus urna. Phasellus et pretium arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent massa elit, sollicitudin at lacinia a, mattis eget tortor. Nulla massa erat, tincidunt sed nisi eget, consectetur porta tellus. Curabitur maximus malesuada nunc, ut consectetur velit laoreet a. Donec leo risus, efficitur vehicula eros vitae, lobortis luctus dui. Nunc eget lobortis ex. Vestibulum ac neque nec libero ornare ornare.
+ Nullam et iaculis eros. Ut velit sem, vehicula non elementum ac, pulvinar in magna. Aenean nec quam eu odio fringilla
+ rhoncus ac eget augue. Proin vel lobortis lacus, vitae dictum enim. Nulla facilisi. Donec feugiat urna eget augue
+ viverra, vel finibus tellus sagittis. Proin eu purus ipsum. Etiam vitae egestas quam, at luctus urna. Phasellus et
+ pretium arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent massa
+ elit, sollicitudin at lacinia a, mattis eget tortor. Nulla massa erat, tincidunt sed nisi eget, consectetur porta
+ tellus. Curabitur maximus malesuada nunc, ut consectetur velit laoreet a. Donec leo risus, efficitur vehicula eros
+ vitae, lobortis luctus dui. Nunc eget lobortis ex. Vestibulum ac neque nec libero ornare ornare.
-Praesent vehicula risus id sollicitudin tincidunt. Maecenas venenatis leo vel sem lobortis, sollicitudin dignissim odio molestie. Proin volutpat enim ullamcorper, consequat nibh id, accumsan odio. In faucibus tellus orci, id laoreet arcu dictum sagittis. Nam non purus eget turpis scelerisque congue ac ut eros. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi et efficitur ipsum. Aliquam id enim nisi. Vivamus convallis blandit maximus. Praesent sed lorem magna. Suspendisse tristique arcu sapien, a sollicitudin augue volutpat vulputate. Nulla bibendum tristique odio, et malesuada nunc mattis nec. Donec porta ligula tortor, eget ultrices magna tincidunt nec.
+ Praesent vehicula risus id sollicitudin tincidunt. Maecenas venenatis leo vel sem lobortis, sollicitudin dignissim
+ odio molestie. Proin volutpat enim ullamcorper, consequat nibh id, accumsan odio. In faucibus tellus orci, id laoreet
+ arcu dictum sagittis. Nam non purus eget turpis scelerisque congue ac ut eros. Pellentesque habitant morbi tristique
+ senectus et netus et malesuada fames ac turpis egestas. Morbi et efficitur ipsum. Aliquam id enim nisi. Vivamus
+ convallis blandit maximus. Praesent sed lorem magna. Suspendisse tristique arcu sapien, a sollicitudin augue volutpat
+ vulputate. Nulla bibendum tristique odio, et malesuada nunc mattis nec. Donec porta ligula tortor, eget ultrices magna
+ tincidunt nec.
-In semper auctor libero sed gravida. Nunc sollicitudin, quam eget varius mollis, turpis nulla pulvinar quam, vitae maximus nisl leo id magna. Fusce tincidunt et est eu ornare. Fusce faucibus, nulla quis mollis mollis, lacus tellus elementum mauris, nec molestie sem orci ut neque. Morbi facilisis justo in nunc congue, eget tempor sem egestas. Pellentesque ullamcorper finibus enim. Donec sollicitudin fermentum dui. Maecenas sodales dolor ut libero blandit tristique. Praesent malesuada nisi a sem interdum, et sagittis justo ultricies. Sed tempor purus in ultricies eleifend. Pellentesque eleifend viverra nunc, eget feugiat lorem blandit quis.
+ In semper auctor libero sed gravida. Nunc sollicitudin, quam eget varius mollis, turpis nulla pulvinar quam, vitae
+ maximus nisl leo id magna. Fusce tincidunt et est eu ornare. Fusce faucibus, nulla quis mollis mollis, lacus tellus
+ elementum mauris, nec molestie sem orci ut neque. Morbi facilisis justo in nunc congue, eget tempor sem egestas.
+ Pellentesque ullamcorper finibus enim. Donec sollicitudin fermentum dui. Maecenas sodales dolor ut libero blandit
+ tristique. Praesent malesuada nisi a sem interdum, et sagittis justo ultricies. Sed tempor purus in ultricies
+ eleifend. Pellentesque eleifend viverra nunc, eget feugiat lorem blandit quis.
-Aenean velit quam, commodo eget ultricies id, pulvinar nec sapien. Praesent eu libero eu felis faucibus mollis eget ac ex. Curabitur egestas pharetra aliquam. Vivamus posuere est a porttitor consectetur. Nullam vitae feugiat mauris. Vivamus et egestas massa. Suspendisse accumsan efficitur magna, id luctus turpis pharetra id. Aliquam elit turpis, congue id orci et, tincidunt molestie nisi.
+ Aenean velit quam, commodo eget ultricies id, pulvinar nec sapien. Praesent eu libero eu felis faucibus mollis eget ac
+ ex. Curabitur egestas pharetra aliquam. Vivamus posuere est a porttitor consectetur. Nullam vitae feugiat mauris.
+ Vivamus et egestas massa. Suspendisse accumsan efficitur magna, id luctus turpis pharetra id. Aliquam elit turpis,
+ congue id orci et, tincidunt molestie nisi.
-Vestibulum vel mauris vitae quam lacinia maximus sed eu ipsum. Integer eget felis vel quam commodo rutrum. Mauris imperdiet facilisis congue. Phasellus posuere, metus a posuere suscipit, tellus nunc aliquet ipsum, sed scelerisque magna nisl in lectus. Donec quis porttitor libero. In vel pharetra leo. In gravida justo nisi, a feugiat nisi porttitor ut. Curabitur convallis orci enim, et maximus tortor gravida eu. Nulla consectetur euismod dui a faucibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse varius, lectus at facilisis faucibus, odio ante consequat tortor, a laoreet enim tellus eu sapien. Curabitur mattis imperdiet faucibus.
+ Vestibulum vel mauris vitae quam lacinia maximus sed eu ipsum. Integer eget felis vel quam commodo rutrum. Mauris
+ imperdiet facilisis congue. Phasellus posuere, metus a posuere suscipit, tellus nunc aliquet ipsum, sed scelerisque
+ magna nisl in lectus. Donec quis porttitor libero. In vel pharetra leo. In gravida justo nisi, a feugiat nisi
+ porttitor ut. Curabitur convallis orci enim, et maximus tortor gravida eu. Nulla consectetur euismod dui a faucibus.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse varius,
+ lectus at facilisis faucibus, odio ante consequat tortor, a laoreet enim tellus eu sapien. Curabitur mattis imperdiet
+ faucibus.
-Integer blandit accumsan diam, in bibendum odio pulvinar in. Quisque venenatis lorem nibh, et scelerisque lorem commodo eu. Sed a lectus lobortis, viverra sem nec, porta est. Aenean ante velit, varius vel mi sit amet, ornare porta turpis. Nam ac accumsan lorem, eget interdum orci. Sed suscipit sodales mi, sit amet mollis augue dignissim quis. Nunc feugiat ex in eros rutrum, vel ultricies justo feugiat. Nunc non odio magna. Cras dictum orci at enim posuere, id consectetur dui euismod. Nulla porttitor ligula nec nibh ultricies congue. Vivamus vel odio tempus, malesuada dui eu, mattis nunc. Curabitur velit nisl, posuere eget mauris nec, sollicitudin pulvinar ligula. Nulla ac neque sed metus consectetur consequat. Aliquam ut massa et nulla iaculis iaculis. Phasellus nec magna interdum, laoreet dolor in, maximus nisi.
-
+ Integer blandit accumsan diam, in bibendum odio pulvinar in. Quisque venenatis lorem nibh, et scelerisque lorem
+ commodo eu. Sed a lectus lobortis, viverra sem nec, porta est. Aenean ante velit, varius vel mi sit amet, ornare porta
+ turpis. Nam ac accumsan lorem, eget interdum orci. Sed suscipit sodales mi, sit amet mollis augue dignissim quis. Nunc
+ feugiat ex in eros rutrum, vel ultricies justo feugiat. Nunc non odio magna. Cras dictum orci at enim posuere, id
+ consectetur dui euismod. Nulla porttitor ligula nec nibh ultricies congue. Vivamus vel odio tempus, malesuada dui eu,
+ mattis nunc. Curabitur velit nisl, posuere eget mauris nec, sollicitudin pulvinar ligula. Nulla ac neque sed metus
+ consectetur consequat. Aliquam ut massa et nulla iaculis iaculis. Phasellus nec magna interdum, laoreet dolor in,
+ maximus nisi.
+
\ No newline at end of file
diff --git a/packages/flexi/tests/dummy/app/templates/grid-responsive.hbs b/packages/flexi/tests/dummy/app/templates/grid-responsive.hbs
index 3c7cb833..66275f23 100644
--- a/packages/flexi/tests/dummy/app/templates/grid-responsive.hbs
+++ b/packages/flexi/tests/dummy/app/templates/grid-responsive.hbs
@@ -4,7 +4,7 @@
{{/let}}
-{{!- BEGIN-SNIPPET grid-responsive }}
+{{! BEGIN-SNIPPET grid-responsive }}