Skip to content

Commit 4d82d3a

Browse files
committed
Merge branch 'main' into cs-6431-animated-busy-state-when-awaiting-ai-response
2 parents 907af6a + f76bbd3 commit 4d82d3a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+7503
-14682
lines changed

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@
3232
"@types/eventsource@1.1.11": "patches/@types__eventsource@1.1.11.patch",
3333
"style-loader@2.0.0": "patches/style-loader@2.0.0.patch",
3434
"ember-css-url@1.0.0": "patches/ember-css-url@1.0.0.patch",
35-
"matrix-js-sdk@31.0.0": "patches/matrix-js-sdk@31.0.0.patch"
35+
"matrix-js-sdk@31.0.0": "patches/matrix-js-sdk@31.0.0.patch",
36+
"ember-basic-dropdown@8.0.4": "patches/ember-basic-dropdown@8.0.4.patch"
3637
}
3738
},
3839
"devDependencies": {
3940
"@actions/core": "^1.2.6",
4041
"@actions/github": "^4.0.0",
41-
"@babel/core": "^7.22.11",
42+
"@babel/core": "^7.24.0",
4243
"@glimmer/component": "^1.1.2",
4344
"@glimmer/tracking": "^1.0.4",
4445
"@glint/core": "^1.2.1",

packages/base/card-api.gts

+1
Original file line numberDiff line numberDiff line change
@@ -1859,6 +1859,7 @@ export type BaseDefComponent = ComponentLike<{
18591859
cardOrField: typeof BaseDef;
18601860
fields: any;
18611861
format: Format;
1862+
displayContainer?: boolean;
18621863
model: any;
18631864
set: Setter;
18641865
fieldName: string | undefined;

packages/base/field-component.gts

+73-61
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ import { getField } from '@cardstack/runtime-common';
1616
import type { ComponentLike } from '@glint/template';
1717
import { CardContainer } from '@cardstack/boxel-ui/components';
1818
import Modifier from 'ember-modifier';
19+
import { eq } from '@cardstack/boxel-ui/helpers';
1920

2021
interface BoxComponentSignature {
21-
Args: { Named: { format?: Format } };
22+
Args: { Named: { format?: Format; displayContainer?: boolean } };
2223
Blocks: {};
2324
}
2425

@@ -89,76 +90,87 @@ export function getBoxComponent(
8990
};
9091
}
9192

92-
let component: TemplateOnlyComponent<{ Args: { format?: Format } }> =
93-
<template>
94-
{{#let (lookupFormat @format) as |f|}}
95-
{{#if (isCard model.value)}}
96-
<CardContainer
97-
@displayBoundaries={{true}}
98-
class='field-component-card {{f.format}}-format'
99-
{{cardComponentModifier
100-
card=model.value
101-
format=f.format
102-
fieldType=field.fieldType
103-
fieldName=field.name
104-
}}
105-
data-test-card-format={{f.format}}
106-
data-test-field-component-card
107-
{{! @glint-ignore Argument of type 'unknown' is not assignable to parameter of type 'Element'}}
108-
...attributes
109-
>
110-
<f.Implementation
111-
@cardOrField={{card}}
112-
@model={{model.value}}
113-
@fields={{f.fields}}
114-
@format={{f.format}}
115-
@set={{model.set}}
116-
@fieldName={{model.name}}
117-
@context={{context}}
118-
/>
119-
</CardContainer>
120-
{{else if (isCompoundField model.value)}}
121-
<div
122-
data-test-compound-field-format={{f.format}}
123-
data-test-compound-field-component
124-
{{! @glint-ignore Argument of type 'unknown' is not assignable to parameter of type 'Element'}}
125-
...attributes
126-
>
127-
<f.Implementation
128-
@cardOrField={{card}}
129-
@model={{model.value}}
130-
@fields={{f.fields}}
131-
@format={{f.format}}
132-
@set={{model.set}}
133-
@fieldName={{model.name}}
134-
@context={{context}}
135-
/>
136-
</div>
137-
{{else}}
93+
let component: TemplateOnlyComponent<{
94+
Args: { format?: Format; displayContainer?: boolean };
95+
}> = <template>
96+
{{#let
97+
(lookupFormat @format) (if (eq @displayContainer false) false true)
98+
as |f displayContainer|
99+
}}
100+
{{#if (isCard model.value)}}
101+
<CardContainer
102+
@displayBoundaries={{displayContainer}}
103+
class='field-component-card
104+
{{f.format}}-format display-container-{{displayContainer}}'
105+
{{cardComponentModifier
106+
card=model.value
107+
format=f.format
108+
fieldType=field.fieldType
109+
fieldName=field.name
110+
}}
111+
data-test-card-format={{f.format}}
112+
data-test-field-component-card
113+
{{! @glint-ignore Argument of type 'unknown' is not assignable to parameter of type 'Element'}}
114+
...attributes
115+
>
138116
<f.Implementation
139117
@cardOrField={{card}}
140118
@model={{model.value}}
141119
@fields={{f.fields}}
142120
@format={{f.format}}
121+
@displayContainer={{@displayContainer}}
143122
@set={{model.set}}
144123
@fieldName={{model.name}}
145124
@context={{context}}
146125
/>
147-
{{/if}}
148-
{{/let}}
149-
<style>
150-
.field-component-card.embedded-format {
151-
padding: var(--boxel-sp);
152-
}
126+
</CardContainer>
127+
{{else if (isCompoundField model.value)}}
128+
<div
129+
data-test-compound-field-format={{f.format}}
130+
data-test-compound-field-component
131+
{{! @glint-ignore Argument of type 'unknown' is not assignable to parameter of type 'Element'}}
132+
...attributes
133+
>
134+
<f.Implementation
135+
@cardOrField={{card}}
136+
@model={{model.value}}
137+
@fields={{f.fields}}
138+
@format={{f.format}}
139+
@displayContainer={{@displayContainer}}
140+
@set={{model.set}}
141+
@fieldName={{model.name}}
142+
@context={{context}}
143+
/>
144+
</div>
145+
{{else}}
146+
<f.Implementation
147+
@cardOrField={{card}}
148+
@model={{model.value}}
149+
@fields={{f.fields}}
150+
@format={{f.format}}
151+
@displayContainer={{@displayContainer}}
152+
@set={{model.set}}
153+
@fieldName={{model.name}}
154+
@context={{context}}
155+
/>
156+
{{/if}}
157+
{{/let}}
158+
<style>
159+
.field-component-card.embedded-format {
160+
padding: var(--boxel-sp);
161+
}
153162
154-
.field-component-card.atom-format {
155-
font: 700 var(--boxel-font-sm);
156-
letter-spacing: var(--boxel-lsp-xs);
157-
padding: 4px var(--boxel-sp-sm);
158-
background-color: var(--boxel-light);
159-
}
160-
</style>
161-
</template>;
163+
.field-component-card.atom-format {
164+
font: 700 var(--boxel-font-sm);
165+
letter-spacing: var(--boxel-lsp-xs);
166+
}
167+
168+
.field-component-card.atom-format.display-container-true {
169+
padding: 4px var(--boxel-sp-sm);
170+
background-color: var(--boxel-light);
171+
}
172+
</style>
173+
</template>;
162174

163175
// when viewed from *outside*, our component is both an invokable component
164176
// and a proxy that makes our fields available for nested invocation, like

packages/base/links-to-many-component.gts

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class LinksToManyEditor extends GlimmerComponent<Signature> {
171171
position: relative;
172172
height: fit-content;
173173
}
174-
.boxel-pill .atom-format {
174+
.boxel-pill .atom-format.display-container-true {
175175
display: flex;
176176
justify-content: center;
177177
align-items: center;

packages/base/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"main": "index.js",
55
"license": "MIT",
66
"devDependencies": {
7-
"@babel/core": "^7.22.11",
7+
"@babel/core": "^7.24.0",
88
"@cardstack/boxel-ui": "workspace:*",
99
"@cardstack/runtime-common": "workspace:*",
1010
"@glimmer/component": "^1.1.2",

packages/base/room.gts

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ class EmbeddedMessageField extends Component<typeof MessageField> {
188188
</div>
189189
{{else if cardResource.card}}
190190
{{#let (getCardComponent cardResource.card) as |CardComponent|}}
191-
<div data-test-message-card={{cardResource.card.id}}>
191+
<div data-test-attached-card={{cardResource.card.id}}>
192192
<CardComponent />
193193
</div>
194194
{{/let}}

packages/boxel-motion/addon/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"typescript": "~5.1.6"
5252
},
5353
"devDependencies": {
54-
"@babel/core": "^7.22.11",
54+
"@babel/core": "^7.24.0",
5555
"@babel/plugin-proposal-decorators": "^7.22.10",
5656
"@babel/plugin-transform-class-properties": "^7.22.5",
5757
"@babel/plugin-transform-class-static-block": "^7.22.11",

packages/boxel-motion/test-app/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"test:ember": "ember test"
2525
},
2626
"devDependencies": {
27-
"@babel/core": "^7.22.11",
27+
"@babel/core": "^7.24.0",
2828
"@babel/eslint-parser": "^7.23.10",
2929
"@babel/plugin-proposal-decorators": "^7.21.0",
3030
"@cardstack/boxel-motion": "workspace:*",
@@ -53,7 +53,7 @@
5353
"ember-a11y-testing": "^5.2.1",
5454
"ember-auto-import": "^2.6.3",
5555
"ember-cli": "^4.12.1",
56-
"ember-cli-babel": "^7.26.11",
56+
"ember-cli-babel": "^8.2.0",
5757
"ember-cli-dependency-checker": "^3.3.1",
5858
"ember-cli-htmlbars": "^6.3.0",
5959
"ember-cli-inject-live-reload": "^2.1.0",

packages/boxel-ui/addon/babel.config.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"plugins": [
3+
"ember-concurrency/async-arrow-task-transform",
34
[
45
"@babel/plugin-transform-typescript",
56
{

packages/boxel-ui/addon/package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@
4040
"@glint/template": "^1.2.1",
4141
"classnames": "^2.3.2",
4242
"dayjs": "^1.11.7",
43-
"ember-basic-dropdown": "^7.3.0",
43+
"ember-basic-dropdown": "^8.0.0",
4444
"ember-composable-helpers": "^5.0.0",
4545
"ember-css-url": "^1.0.0",
4646
"ember-focus-trap": "^1.0.1",
4747
"ember-freestyle": "^0.20.0",
4848
"ember-link": "^2.1.0",
4949
"ember-load-initializers": "^2.1.2",
5050
"ember-modifier": "^4.1.0",
51-
"ember-power-select": "^6.0.1",
51+
"ember-power-select": "^8.0.0",
5252
"ember-ref-bucket": "5.0.5",
5353
"ember-resize-modifier": "^0.6.0",
5454
"ember-set-body-class": "^1.0.2",
@@ -60,7 +60,7 @@
6060
"typescript": "~5.1.6"
6161
},
6262
"devDependencies": {
63-
"@babel/core": "^7.22.11",
63+
"@babel/core": "^7.24.0",
6464
"@babel/plugin-proposal-decorators": "^7.22.10",
6565
"@babel/plugin-transform-class-properties": "^7.22.5",
6666
"@babel/plugin-transform-class-static-block": "^7.22.11",
@@ -75,6 +75,7 @@
7575
"@typescript-eslint/parser": "^5.48.1",
7676
"babel-plugin-ember-template-compilation": "^2.2.1",
7777
"concurrently": "^8.0.1",
78+
"ember-concurrency": "^4.0.1",
7879
"ember-template-imports": "^3.1.2",
7980
"ember-template-lint": "^5.11.2",
8081
"ember-template-lint-plugin-prettier": "^5.0.0",

packages/boxel-ui/addon/src/components/input-group/accessories/index.gts

+1-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ interface SelectAccessorySignature<ItemT = any> {
124124
Blocks: {
125125
default: [ItemT, string];
126126
};
127-
Element: HTMLDivElement;
127+
Element: HTMLElement;
128128
}
129129

130130
// eslint-disable-next-line prettier/prettier

packages/boxel-ui/addon/src/components/input-group/index.gts

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export interface Signature {
4848
before: [AccessoriesBlockArg, InputGroupBlockArg];
4949
default: [ControlsBlockArg, AccessoriesBlockArg, InputGroupBlockArg];
5050
};
51-
Element: HTMLDivElement;
51+
Element: HTMLElement;
5252
}
5353

5454
export default class InputGroup extends Component<Signature> {

packages/boxel-ui/addon/src/components/input-group/usage.gts

+1
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ export default class BoxelInputGroupUsage extends Component {
330330
@onChange={{this.selectExampleOnSelectItem}}
331331
@options={{this.selectExampleItems}}
332332
@dropdownClass='boxel-select-usage-dropdown'
333+
aria-label='Select an item'
333334
as |item itemCssClass|
334335
>
335336
<div class={{itemCssClass}}>{{item}}</div>

packages/boxel-ui/addon/src/components/select/index.gts

+4-26
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,12 @@
11
import type { TemplateOnlyComponent } from '@ember/component/template-only';
22
import PowerSelect, {
3-
type PatchedPowerSelectArgs,
4-
BeforeOptions,
3+
type PowerSelectArgs,
54
} from 'ember-power-select/components/power-select';
5+
import BeforeOptions from 'ember-power-select/components/power-select/before-options';
66

77
import cn from '../../helpers/cn.ts';
88

9-
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
10-
11-
type BasePowerSelectArgs = PartialBy<
12-
Pick<
13-
PatchedPowerSelectArgs,
14-
| 'searchField'
15-
| 'searchEnabled'
16-
| 'selected'
17-
| 'disabled'
18-
| 'placeholder'
19-
| 'onChange'
20-
| 'onBlur'
21-
| 'renderInPlace'
22-
| 'verticalPosition'
23-
| 'dropdownClass'
24-
| 'beforeOptionsComponent'
25-
| 'selectedItemComponent'
26-
| 'triggerComponent'
27-
>,
28-
'disabled' | 'renderInPlace'
29-
>;
30-
31-
export interface BoxelSelectArgs<ItemT> extends BasePowerSelectArgs {
9+
export interface BoxelSelectArgs<ItemT> extends PowerSelectArgs {
3210
options: ItemT[];
3311
}
3412

@@ -37,7 +15,7 @@ interface Signature<ItemT = any> {
3715
Blocks: {
3816
default: [ItemT, string];
3917
};
40-
Element: HTMLDivElement;
18+
Element: HTMLElement;
4119
}
4220

4321
const BoxelSelect: TemplateOnlyComponent<Signature> = <template>

packages/boxel-ui/addon/src/components/select/usage.gts

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export default class BoxelSelectUsage extends Component {
6262
@renderInPlace={{this.renderInPlace}}
6363
@disabled={{this.disabled}}
6464
@dropdownClass='boxel-select-usage-dropdown'
65+
aria-label='Select an item'
6566
as |item itemCssClass|
6667
>
6768
<div class={{itemCssClass}}>{{item}}</div>

0 commit comments

Comments
 (0)