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