From 22b0bbeb6ecc32cae095c1a7da6262169a209120 Mon Sep 17 00:00:00 2001 From: Boxel Submission Bot Date: Wed, 25 Mar 2026 15:58:47 +0800 Subject: [PATCH] add Invitation Card changes [boxel-content-hash:9bb12ee0d6b3] --- .../a2581dab-0b97-4181-8f36-6f1baf3446dd.json | 69 +++++++++++++++++++ .../221bb824-0915-4d2e-aab3-4cdcddae6328.json | 19 +++++ .../f663ae62-f4c8-4189-8da7-d6bc55442793.json | 40 +++++++++++ invitation.gts | 31 +++++++++ 4 files changed, 159 insertions(+) create mode 100644 AppListing/a2581dab-0b97-4181-8f36-6f1baf3446dd.json create mode 100644 Invitation/221bb824-0915-4d2e-aab3-4cdcddae6328.json create mode 100644 Spec/f663ae62-f4c8-4189-8da7-d6bc55442793.json create mode 100644 invitation.gts diff --git a/AppListing/a2581dab-0b97-4181-8f36-6f1baf3446dd.json b/AppListing/a2581dab-0b97-4181-8f36-6f1baf3446dd.json new file mode 100644 index 0000000..781422f --- /dev/null +++ b/AppListing/a2581dab-0b97-4181-8f36-6f1baf3446dd.json @@ -0,0 +1,69 @@ +{ + "data": { + "meta": { + "adoptsFrom": { + "name": "AppListing", + "module": "https://realms-staging.stack.cards/catalog/catalog-app/listing/listing" + } + }, + "type": "card", + "attributes": { + "name": "Invitation Card", + "images": [], + "summary": "The Invitation card defines a structured data model for event invitations, capturing key details such as event name, date, location, host, guest, message, and RSVP deadline. Its primary purpose is to facilitate the creation, display, and management of invitation information within a card-based application, supporting both data handling and presentation through a dedicated component.", + "cardInfo": { + "name": null, + "notes": null, + "summary": null, + "cardThumbnailURL": null + } + }, + "relationships": { + "skills": { + "links": { + "self": null + } + }, + "tags.0": { + "links": { + "self": "https://realms-staging.stack.cards/catalog/Tag/140feda8-625b-4a24-9ddb-6f4da891aef2" + } + }, + "tags.1": { + "links": { + "self": "https://realms-staging.stack.cards/catalog/Tag/4d0f9ae2-048e-4ce0-b263-7006602ce6a4" + } + }, + "license": { + "links": { + "self": "https://realms-staging.stack.cards/catalog/License/4c5a023b-a72c-4f90-930b-da60a1de5b2d" + } + }, + "specs.0": { + "links": { + "self": "../Spec/f663ae62-f4c8-4189-8da7-d6bc55442793" + } + }, + "publisher": { + "links": { + "self": null + } + }, + "categories": { + "links": { + "self": null + } + }, + "examples.0": { + "links": { + "self": "../Invitation/221bb824-0915-4d2e-aab3-4cdcddae6328" + } + }, + "cardInfo.theme": { + "links": { + "self": null + } + } + } + } +} \ No newline at end of file diff --git a/Invitation/221bb824-0915-4d2e-aab3-4cdcddae6328.json b/Invitation/221bb824-0915-4d2e-aab3-4cdcddae6328.json new file mode 100644 index 0000000..1ee347d --- /dev/null +++ b/Invitation/221bb824-0915-4d2e-aab3-4cdcddae6328.json @@ -0,0 +1,19 @@ +{ + "data": { + "type": "card", + "attributes": { + "cardInfo": { + "name": null, + "summary": null, + "cardThumbnailURL": null, + "notes": null + } + }, + "meta": { + "adoptsFrom": { + "module": "../invitation", + "name": "Invitation" + } + } + } +} \ No newline at end of file diff --git a/Spec/f663ae62-f4c8-4189-8da7-d6bc55442793.json b/Spec/f663ae62-f4c8-4189-8da7-d6bc55442793.json new file mode 100644 index 0000000..d37adab --- /dev/null +++ b/Spec/f663ae62-f4c8-4189-8da7-d6bc55442793.json @@ -0,0 +1,40 @@ +{ + "data": { + "type": "card", + "attributes": { + "readMe": null, + "ref": { + "module": "../invitation", + "name": "Invitation" + }, + "specType": "card", + "containedExamples": [], + "cardTitle": "Invitation", + "cardDescription": null, + "cardInfo": { + "name": null, + "summary": null, + "cardThumbnailURL": null, + "notes": null + } + }, + "relationships": { + "linkedExamples": { + "links": { + "self": null + } + }, + "cardInfo.theme": { + "links": { + "self": null + } + } + }, + "meta": { + "adoptsFrom": { + "module": "https://cardstack.com/base/spec", + "name": "Spec" + } + } + } +} \ No newline at end of file diff --git a/invitation.gts b/invitation.gts new file mode 100644 index 0000000..52b77ed --- /dev/null +++ b/invitation.gts @@ -0,0 +1,31 @@ +import { CardDef, field, contains, containsMany } from 'https://cardstack.com/base/card-api'; +import StringField from 'https://cardstack.com/base/string'; +import DateField from 'https://cardstack.com/base/date'; +import TextAreaField from 'https://cardstack.com/base/text-area'; +import { Component } from 'https://cardstack.com/base/card-api'; + +export class Invitation extends CardDef { + static displayName = "Invitation"; + + @field eventName = contains(StringField); + @field eventDate = contains(DateField); + @field location = contains(StringField); + @field hostName = contains(StringField); + @field guestName = contains(StringField); + @field message = contains(TextAreaField); + @field rsvpDeadline = contains(DateField); + + static isolated = class Isolated extends Component { + + }; +} \ No newline at end of file