Skip to content

Commit

Permalink
Merge pull request #246 from CrowdStrike/template-tag-gts
Browse files Browse the repository at this point in the history
  • Loading branch information
ynotdraw authored Aug 7, 2023
2 parents 3a06366 + 0e817b6 commit 04419d3
Show file tree
Hide file tree
Showing 130 changed files with 4,740 additions and 4,582 deletions.
6 changes: 6 additions & 0 deletions .changeset/good-rivers-train.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@crowdstrike/ember-toucan-core': patch
'@crowdstrike/ember-toucan-form': patch
---

(internal) Updated both packages to use the `<template>` tag and `gts` file extension.
18 changes: 18 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
'use strict';

module.exports = {
plugins: ['prettier-plugin-ember-template-tag'],
singleQuote: true,
templateSingleQuote: false,
// this was required to make the VSCode + Prettier work correctly with <template>, see https://github.com/gitKrystan/prettier-plugin-ember-template-tag/issues/38
// we should roll this back once that issue has been fixed!
overrides: [
{
files: '*.gjs',
options: {
parser: 'ember-template-tag',
},
},
{
files: '*.gts',
options: {
parser: 'ember-template-tag',
},
},
],
};
7 changes: 5 additions & 2 deletions docs-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
"test:ember": "ember test",
"_syncPnpm": "pnpm sync-dependencies-meta-injected"
},
"devDependencyComments": {
"@embroider/core": "Had to pin to v2.0.2 as the other versions of embroider break our builds due to the beta-y nature of releases of embroider. We will upgrade to the latest version as part of https://github.com/CrowdStrike/ember-toucan-core/issues/210"
},
"devDependencies": {
"@babel/core": "^7.19.6",
"@babel/eslint-parser": "^7.19.1",
Expand All @@ -36,7 +39,7 @@
"@ember/string": "^3.0.1",
"@ember/test-helpers": "^3.1.0",
"@embroider/compat": "^2.0.0",
"@embroider/core": "^2.0.0",
"@embroider/core": "2.0.2",
"@embroider/webpack": "^2.0.0",
"@glimmer/component": "^1.1.2",
"@glimmer/tracking": "^1.1.2",
Expand Down Expand Up @@ -108,7 +111,7 @@
"postcss": "^8.4.17",
"postcss-import": "^15.0.0",
"postcss-loader": "^7.0.1",
"prettier": "^2.8.3",
"prettier": "^3.0.1",
"prettier-plugin-ember-template-tag": "^1.0.0",
"prettier-plugin-tailwindcss": "^0.4.0",
"qunit": "^2.19.1",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"@changesets/cli": "^2.26.0",
"concurrently": "^8.0.0",
"pnpm-sync-dependencies-meta-injected": "^0.0.9",
"prettier": "^2.8.3",
"prettier": "^3.0.1",
"turbo": "^1.8.8"
},
"pnpm": {
Expand Down
30 changes: 0 additions & 30 deletions packages/ember-toucan-core/.prettierrc.cjs

This file was deleted.

1 change: 1 addition & 0 deletions packages/ember-toucan-core/babel.config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"presets": [["@babel/preset-typescript"]],
"plugins": [
"ember-template-imports/src/babel-plugin",
"@embroider/addon-dev/template-colocation-plugin",
["@babel/plugin-proposal-decorators", { "legacy": true }],
"@babel/plugin-proposal-class-properties"
Expand Down
7 changes: 6 additions & 1 deletion packages/ember-toucan-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
"@glimmer/tracking": "^1.1.2",
"@glint/core": "^1.0.2",
"@glint/environment-ember-loose": "^1.0.2",
"@glint/environment-ember-template-imports": "^1.0.2",
"@glint/template": "^1.0.2",
"@nullvoxpopuli/eslint-configs": "^3.0.4",
"@tsconfig/ember": "^2.0.0",
Expand All @@ -72,6 +73,8 @@
"@types/ember__debug": "^4.0.0",
"@types/ember__engine": "^4.0.0",
"@types/ember__error": "^4.0.0",
"@types/ember__helper": "^4.0.2",
"@types/ember__modifier": "^4.0.3",
"@types/ember__object": "^4.0.0",
"@types/ember__polyfills": "^4.0.0",
"@types/ember__routing": "^4.0.0",
Expand All @@ -87,6 +90,7 @@
"concurrently": "^8.0.0",
"ember-cli-htmlbars": "^6.1.1",
"ember-source": "~5.1.0",
"ember-template-imports": "^3.4.2",
"ember-template-lint": "^5.8.0",
"eslint": "^8.32.0",
"eslint-config-prettier": "^8.3.0",
Expand All @@ -96,11 +100,12 @@
"eslint-plugin-prettier": "^4.0.0",
"fractal-page-object": "^0.4.1",
"postcss": "^8.2.14",
"prettier": "^2.8.3",
"prettier": "^3.0.1",
"prettier-plugin-ember-template-tag": "^1.0.0",
"prettier-plugin-tailwindcss": "^0.4.0",
"rollup": "^3.12.1",
"rollup-plugin-copy": "^3.4.0",
"rollup-plugin-glimmer-template-tag": "^0.4.1",
"rollup-plugin-ts": "^3.0.2",
"tailwindcss": "^2.2.15",
"typescript": "^5.0.0"
Expand Down
7 changes: 6 additions & 1 deletion packages/ember-toucan-core/rollup.config.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import typescript from 'rollup-plugin-ts';
import copy from 'rollup-plugin-copy';
import { Addon } from '@embroider/addon-dev/rollup';
import { glimmerTemplateTag } from 'rollup-plugin-glimmer-template-tag';

const addon = new Addon({
srcDir: 'src',
Expand All @@ -26,11 +27,15 @@ export default {
// not everything in publicEntrypoints necessarily needs to go here.
addon.appReexports(['components/**/*.js']),

// compile <template> tag into plain JS
glimmerTemplateTag({ preprocessOnly: true }),

// compile TypeScript to latest JavaScript, including Babel transpilation
typescript({
transpiler: 'babel',
browserslist: false,
transpileOnly: false,
// Reasoning for this being set to true: https://github.com/NullVoxPopuli/rollup-plugin-glimmer-template-tag/#configure-rollup-plugin-ts-ts-only
transpileOnly: true,
}),

// Follow the V2 Addon rules about dependencies. Your code can import from
Expand Down
18 changes: 18 additions & 0 deletions packages/ember-toucan-core/src/-private/components/control.gts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import type { TemplateOnlyComponent } from '@ember/component/template-only';

export interface ToucanFormControlComponentSignature {
Element: HTMLDivElement;
Args: {};
Blocks: {
default: [];
};
}

const ToucanCoreControlComponent: TemplateOnlyComponent<ToucanFormControlComponentSignature> =
<template>
<div ...attributes>
{{yield}}
</div>
</template>;

export default ToucanCoreControlComponent;

This file was deleted.

11 changes: 0 additions & 11 deletions packages/ember-toucan-core/src/-private/components/control.ts

This file was deleted.

81 changes: 81 additions & 0 deletions packages/ember-toucan-core/src/-private/components/error.gts
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import Component from '@glimmer/component';
import { assert } from '@ember/debug';
import { get } from '@ember/helper';

import type { ErrorMessage } from '../../-private/types';

export interface ToucanCoreErrorComponentSignature {
Element: HTMLDivElement;
Args: {
/**
* Provide a string or array of strings to this argument to render styled errors.
*/
error?: ErrorMessage;
};
Blocks: {};
}

export default class ToucanCoreErrorComponent extends Component<ToucanCoreErrorComponentSignature> {
/**
* Used to help us determine if we should render a single error
* or render a ul list of errors.
*/
get hasMoreThanOneError() {
return Array.isArray(this.args.error) && this.args.error?.length > 1;
}

get errors(): Array<string> {
let { error } = this.args;

assert(
'"@error" must be either a string or an array of strings',
typeof error === 'string' || Array.isArray(error),
);

if (typeof error === 'string') {
return [error];
}

return error;
}

<template>
<div
class="type-xs-tight text-critical mt-1.5 flex
{{if this.hasMoreThanOneError 'items-start' 'items-center'}}"
...attributes
>
<svg
aria-hidden="true"
class="mr-1"
width="12"
height="12"
viewBox="0 0 12 12"
fill="currentColor"
>
<path
d="M6.02979 9.06006C6.58207 9.06006 7.02979 8.61234 7.02979 8.06006C7.02979 7.50777 6.58207 7.06006 6.02979 7.06006C5.4775 7.06006 5.02979 7.50777 5.02979 8.06006C5.02979 8.61234 5.4775 9.06006 6.02979 9.06006Z"
/>
<path d="M5.52979 3.12H6.52979V6.12H5.52979V3.12Z" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M11.76 9.54L6.82003 0.48C6.47003 -0.16 5.42003 -0.16 5.07003 0.48L0.120026 9.54C-0.0499739 9.85 -0.0399739 10.22 0.140026 10.53C0.320026 10.84 0.640026 11.02 1.00003 11.02H10.89C11.25 11.02 11.57 10.84 11.75 10.53C11.93 10.22 11.94 9.85 11.77 9.54H11.76ZM1.00003 10.02L5.94003 0.96L10.88 10.02H1.00003Z"
/>
</svg>

{{#if this.hasMoreThanOneError}}
<ul class="m-0 list-none space-y-1.5 p-0">
{{#each this.errors as |error index|}}
<li
class="m-0 p-0 leading-3"
data-error-item={{index}}
>{{error}}</li>
{{/each}}
</ul>
{{else}}
<span>{{get this.errors 0}}</span>
{{/if}}
</div>
</template>
}
34 changes: 0 additions & 34 deletions packages/ember-toucan-core/src/-private/components/error.hbs

This file was deleted.

40 changes: 0 additions & 40 deletions packages/ember-toucan-core/src/-private/components/error.ts

This file was deleted.

Loading

0 comments on commit 04419d3

Please sign in to comment.