@cratis/scene.blueprint.default 4.24.0 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/cjs/gallery/authTemplates.js +12 -6
  2. package/dist/cjs/gallery/authTemplates.js.map +1 -1
  3. package/dist/cjs/gallery/dialogTemplates.js +6 -3
  4. package/dist/cjs/gallery/dialogTemplates.js.map +1 -1
  5. package/dist/cjs/gallery/nesting.js +6 -3
  6. package/dist/cjs/gallery/nesting.js.map +1 -1
  7. package/dist/cjs/gallery/statusTemplates.js +8 -4
  8. package/dist/cjs/gallery/statusTemplates.js.map +1 -1
  9. package/dist/cjs/gallery/supportTemplates.js +10 -5
  10. package/dist/cjs/gallery/supportTemplates.js.map +1 -1
  11. package/dist/cjs/gallery/workspaceTemplates.js +12 -6
  12. package/dist/cjs/gallery/workspaceTemplates.js.map +1 -1
  13. package/dist/cjs/layouts/appShell.js +2 -1
  14. package/dist/cjs/layouts/appShell.js.map +1 -1
  15. package/dist/cjs/layouts/fullPage.js +2 -1
  16. package/dist/cjs/layouts/fullPage.js.map +1 -1
  17. package/dist/esm/gallery/authTemplates.js +12 -6
  18. package/dist/esm/gallery/authTemplates.js.map +1 -1
  19. package/dist/esm/gallery/dialogTemplates.js +6 -3
  20. package/dist/esm/gallery/dialogTemplates.js.map +1 -1
  21. package/dist/esm/gallery/nesting.js +6 -3
  22. package/dist/esm/gallery/nesting.js.map +1 -1
  23. package/dist/esm/gallery/statusTemplates.js +8 -4
  24. package/dist/esm/gallery/statusTemplates.js.map +1 -1
  25. package/dist/esm/gallery/supportTemplates.js +10 -5
  26. package/dist/esm/gallery/supportTemplates.js.map +1 -1
  27. package/dist/esm/gallery/workspaceTemplates.js +12 -6
  28. package/dist/esm/gallery/workspaceTemplates.js.map +1 -1
  29. package/dist/esm/layouts/appShell.js +2 -1
  30. package/dist/esm/layouts/appShell.js.map +1 -1
  31. package/dist/esm/layouts/fullPage.js +2 -1
  32. package/dist/esm/layouts/fullPage.js.map +1 -1
  33. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  34. package/gallery/authTemplates.ts +6 -6
  35. package/gallery/dialogTemplates.ts +3 -3
  36. package/gallery/nesting.ts +3 -3
  37. package/gallery/statusTemplates.ts +4 -4
  38. package/gallery/supportTemplates.ts +5 -5
  39. package/gallery/workspaceTemplates.ts +6 -6
  40. package/layouts/appShell.ts +1 -1
  41. package/layouts/fullPage.ts +1 -1
  42. package/package.json +8 -8
@@ -65,7 +65,8 @@ var templateProvenance = require('../templateProvenance.js');
65
65
  displayName: 'Sign in',
66
66
  description: 'Email and password beside the branding panel.',
67
67
  metadata: {
68
- ...templateProvenance.defaultBlueprintTemplateProvenance
68
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
69
+ category: 'Foundation / Auth'
69
70
  }
70
71
  };
71
72
  /** Register. */ const registerTemplate = {
@@ -99,7 +100,8 @@ var templateProvenance = require('../templateProvenance.js');
99
100
  displayName: 'Register',
100
101
  description: 'Account creation with a password strength meter and the terms checkbox.',
101
102
  metadata: {
102
- ...templateProvenance.defaultBlueprintTemplateProvenance
103
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
104
+ category: 'Foundation / Auth'
103
105
  }
104
106
  };
105
107
  /** Forgotten password: ask for the address. */ const forgotPasswordTemplate = {
@@ -128,7 +130,8 @@ var templateProvenance = require('../templateProvenance.js');
128
130
  displayName: 'Forgotten password',
129
131
  description: 'One field and one button - the whole point is that it asks for nothing else.',
130
132
  metadata: {
131
- ...templateProvenance.defaultBlueprintTemplateProvenance
133
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
134
+ category: 'Foundation / Auth'
132
135
  }
133
136
  };
134
137
  /** New password: the other end of the link. */ const newPasswordTemplate = {
@@ -160,7 +163,8 @@ var templateProvenance = require('../templateProvenance.js');
160
163
  displayName: 'New password',
161
164
  description: 'Where a reset link lands: choose it, confirm it, done.',
162
165
  metadata: {
163
- ...templateProvenance.defaultBlueprintTemplateProvenance
166
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
167
+ category: 'Foundation / Auth'
164
168
  }
165
169
  };
166
170
  /** Verification: the code from the email. */ const verificationTemplate = {
@@ -197,7 +201,8 @@ var templateProvenance = require('../templateProvenance.js');
197
201
  displayName: 'Verification',
198
202
  description: 'The code step, with the progress indicator that tells you how much is left.',
199
203
  metadata: {
200
- ...templateProvenance.defaultBlueprintTemplateProvenance
204
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
205
+ category: 'Foundation / Auth'
201
206
  }
202
207
  };
203
208
  /** Lock screen: the session is still there, the person has to prove they are. */ const lockScreenTemplate = {
@@ -231,7 +236,8 @@ var templateProvenance = require('../templateProvenance.js');
231
236
  displayName: 'Lock screen',
232
237
  description: 'One person, one password, and no way to lose what was open.',
233
238
  metadata: {
234
- ...templateProvenance.defaultBlueprintTemplateProvenance
239
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
240
+ category: 'Foundation / Auth'
235
241
  }
236
242
  };
237
243
  /** The six authentication templates. */ const authTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"authTemplates.js","sources":["../../../gallery/authTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { field, formActions } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The six screens that stand between someone and the application: sign in, register, forgotten password,\n * new password, verification and the lock screen.\n *\n * All six fit the full-page layout's `content` slot and fill its `aside` with the branding half. That\n * split - a colored panel of brand next to a narrow column of form - is the shape the premium PrimeTek\n * templates use for every one of them, and the reason it works is that it gives the form somewhere to be\n * *small*, which is what a sign-in form should be.\n */\n\n/** The branding half every authentication screen shares. */\nfunction brandingAside(id: string, headline: string, supporting: string) {\n return [\n externalComponent(`${id}-logo`, ComponentName.Logo, { label: 'Contoso', initials: 'C' }),\n text(`${id}-headline`, headline),\n text(`${id}-supporting`, supporting),\n ];\n}\n\n/** Sign in. */\nexport const loginTemplate: ScreenTemplate = {\n name: 'Login',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('login', 'Welcome back', 'Everything your team shipped since you were last here is waiting.'),\n [TemplateSlotName.Body]: [\n card('login-card', [\n text('login-title', 'Sign in'),\n field('login-email', 'Email', 'inputText', { placeholder: 'you@contoso.com' }),\n field('login-password', 'Password', 'password', { feedback: false }),\n field('login-remember', 'Keep me signed in', 'checkbox', {}),\n formActions('login-actions', 'Sign in', 'Use a different account'),\n button('login-forgot', 'I forgot my password', { link: true, targetScreen: 'ForgotPassword' }),\n ]),\n ],\n },\n displayName: 'Sign in',\n description: 'Email and password beside the branding panel.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Register. */\nexport const registerTemplate: ScreenTemplate = {\n name: 'Register',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('register', 'Start in two minutes', 'No card, no call, no sales engineer. Just an account.'),\n [TemplateSlotName.Body]: [\n card('register-card', [\n text('register-title', 'Create your account'),\n field('register-name', 'Full name', 'inputText', {}),\n field('register-email', 'Work email', 'inputText', { placeholder: 'you@contoso.com' }),\n field('register-password', 'Password', 'password', { feedback: true }),\n field('register-terms', 'I accept the terms of service', 'checkbox', {}),\n formActions('register-actions', 'Create account', 'I already have one'),\n ]),\n ],\n },\n displayName: 'Register',\n description: 'Account creation with a password strength meter and the terms checkbox.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Forgotten password: ask for the address. */\nexport const forgotPasswordTemplate: ScreenTemplate = {\n name: 'ForgotPassword',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('forgot', 'It happens', 'Tell us the address you signed up with and we will send a link.'),\n [TemplateSlotName.Body]: [\n card('forgot-card', [\n text('forgot-title', 'Reset your password'),\n field('forgot-email', 'Email', 'inputText', { placeholder: 'you@contoso.com' }),\n formActions('forgot-actions', 'Send the link', 'Back to sign in'),\n ]),\n ],\n },\n displayName: 'Forgotten password',\n description: 'One field and one button - the whole point is that it asks for nothing else.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** New password: the other end of the link. */\nexport const newPasswordTemplate: ScreenTemplate = {\n name: 'NewPassword',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('new-password', 'Almost there', 'Choose something you have not used anywhere else.'),\n [TemplateSlotName.Body]: [\n card('new-password-card', [\n text('new-password-title', 'Choose a new password'),\n field('new-password-value', 'New password', 'password', { feedback: true }),\n field('new-password-confirm', 'Confirm it', 'password', { feedback: false }),\n formActions('new-password-actions', 'Set the password', 'Cancel'),\n ]),\n ],\n },\n displayName: 'New password',\n description: 'Where a reset link lands: choose it, confirm it, done.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Verification: the code from the email. */\nexport const verificationTemplate: ScreenTemplate = {\n name: 'Verification',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('verification', 'Check your email', 'We sent a six-digit code. It expires in ten minutes.'),\n [TemplateSlotName.Body]: [\n card('verification-card', [\n text('verification-title', 'Enter the code'),\n externalComponent('verification-steps', 'steps', { model: ['Account', 'Verify', 'Done'], activeIndex: 1 }),\n field('verification-code', 'Six-digit code', 'inputText', { maxLength: 6 }),\n formActions('verification-actions', 'Verify', 'Send it again'),\n ]),\n ],\n },\n displayName: 'Verification',\n description: 'The code step, with the progress indicator that tells you how much is left.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Lock screen: the session is still there, the person has to prove they are. */\nexport const lockScreenTemplate: ScreenTemplate = {\n name: 'LockScreen',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('lock', 'Locked', 'Your work is exactly where you left it.'),\n [TemplateSlotName.Body]: [\n card('lock-card', [\n externalComponent('lock-avatar', 'avatar', { label: 'AN', size: 'xlarge', shape: 'circle' }),\n text('lock-name', 'Amelia Nyquist'),\n field('lock-password', 'Password', 'password', { feedback: false }),\n formActions('lock-actions', 'Unlock', 'Sign in as someone else'),\n ]),\n ],\n },\n displayName: 'Lock screen',\n description: 'One person, one password, and no way to lose what was open.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The six authentication templates. */\nexport const authTemplates: ScreenTemplate[] = [\n loginTemplate,\n registerTemplate,\n forgotPasswordTemplate,\n newPasswordTemplate,\n verificationTemplate,\n lockScreenTemplate,\n];\n"],"names":["brandingAside","id","headline","supporting","externalComponent","ComponentName","Logo","label","initials","text","loginTemplate","name","fitsSlot","SlotName","Content","slots","Aside","TemplateSlotName","Body","content","card","field","placeholder","feedback","formActions","button","link","targetScreen","displayName","description","metadata","defaultBlueprintTemplateProvenance","registerTemplate","forgotPasswordTemplate","newPasswordTemplate","verificationTemplate","model","activeIndex","maxLength","lockScreenTemplate","size","shape","authTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"authTemplates.js","sources":["../../../gallery/authTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { field, formActions } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The six screens that stand between someone and the application: sign in, register, forgotten password,\n * new password, verification and the lock screen.\n *\n * All six fit the full-page layout's `content` slot and fill its `aside` with the branding half. That\n * split - a colored panel of brand next to a narrow column of form - is the shape the premium PrimeTek\n * templates use for every one of them, and the reason it works is that it gives the form somewhere to be\n * *small*, which is what a sign-in form should be.\n */\n\n/** The branding half every authentication screen shares. */\nfunction brandingAside(id: string, headline: string, supporting: string) {\n return [\n externalComponent(`${id}-logo`, ComponentName.Logo, { label: 'Contoso', initials: 'C' }),\n text(`${id}-headline`, headline),\n text(`${id}-supporting`, supporting),\n ];\n}\n\n/** Sign in. */\nexport const loginTemplate: ScreenTemplate = {\n name: 'Login',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('login', 'Welcome back', 'Everything your team shipped since you were last here is waiting.'),\n [TemplateSlotName.Body]: [\n card('login-card', [\n text('login-title', 'Sign in'),\n field('login-email', 'Email', 'inputText', { placeholder: 'you@contoso.com' }),\n field('login-password', 'Password', 'password', { feedback: false }),\n field('login-remember', 'Keep me signed in', 'checkbox', {}),\n formActions('login-actions', 'Sign in', 'Use a different account'),\n button('login-forgot', 'I forgot my password', { link: true, targetScreen: 'ForgotPassword' }),\n ]),\n ],\n },\n displayName: 'Sign in',\n description: 'Email and password beside the branding panel.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** Register. */\nexport const registerTemplate: ScreenTemplate = {\n name: 'Register',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('register', 'Start in two minutes', 'No card, no call, no sales engineer. Just an account.'),\n [TemplateSlotName.Body]: [\n card('register-card', [\n text('register-title', 'Create your account'),\n field('register-name', 'Full name', 'inputText', {}),\n field('register-email', 'Work email', 'inputText', { placeholder: 'you@contoso.com' }),\n field('register-password', 'Password', 'password', { feedback: true }),\n field('register-terms', 'I accept the terms of service', 'checkbox', {}),\n formActions('register-actions', 'Create account', 'I already have one'),\n ]),\n ],\n },\n displayName: 'Register',\n description: 'Account creation with a password strength meter and the terms checkbox.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** Forgotten password: ask for the address. */\nexport const forgotPasswordTemplate: ScreenTemplate = {\n name: 'ForgotPassword',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('forgot', 'It happens', 'Tell us the address you signed up with and we will send a link.'),\n [TemplateSlotName.Body]: [\n card('forgot-card', [\n text('forgot-title', 'Reset your password'),\n field('forgot-email', 'Email', 'inputText', { placeholder: 'you@contoso.com' }),\n formActions('forgot-actions', 'Send the link', 'Back to sign in'),\n ]),\n ],\n },\n displayName: 'Forgotten password',\n description: 'One field and one button - the whole point is that it asks for nothing else.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** New password: the other end of the link. */\nexport const newPasswordTemplate: ScreenTemplate = {\n name: 'NewPassword',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('new-password', 'Almost there', 'Choose something you have not used anywhere else.'),\n [TemplateSlotName.Body]: [\n card('new-password-card', [\n text('new-password-title', 'Choose a new password'),\n field('new-password-value', 'New password', 'password', { feedback: true }),\n field('new-password-confirm', 'Confirm it', 'password', { feedback: false }),\n formActions('new-password-actions', 'Set the password', 'Cancel'),\n ]),\n ],\n },\n displayName: 'New password',\n description: 'Where a reset link lands: choose it, confirm it, done.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** Verification: the code from the email. */\nexport const verificationTemplate: ScreenTemplate = {\n name: 'Verification',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('verification', 'Check your email', 'We sent a six-digit code. It expires in ten minutes.'),\n [TemplateSlotName.Body]: [\n card('verification-card', [\n text('verification-title', 'Enter the code'),\n externalComponent('verification-steps', 'steps', { model: ['Account', 'Verify', 'Done'], activeIndex: 1 }),\n field('verification-code', 'Six-digit code', 'inputText', { maxLength: 6 }),\n formActions('verification-actions', 'Verify', 'Send it again'),\n ]),\n ],\n },\n displayName: 'Verification',\n description: 'The code step, with the progress indicator that tells you how much is left.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** Lock screen: the session is still there, the person has to prove they are. */\nexport const lockScreenTemplate: ScreenTemplate = {\n name: 'LockScreen',\n fitsSlot: SlotName.Content,\n slots: [{ name: SlotName.Aside }, { name: TemplateSlotName.Body }],\n content: {\n [SlotName.Aside]: brandingAside('lock', 'Locked', 'Your work is exactly where you left it.'),\n [TemplateSlotName.Body]: [\n card('lock-card', [\n externalComponent('lock-avatar', 'avatar', { label: 'AN', size: 'xlarge', shape: 'circle' }),\n text('lock-name', 'Amelia Nyquist'),\n field('lock-password', 'Password', 'password', { feedback: false }),\n formActions('lock-actions', 'Unlock', 'Sign in as someone else'),\n ]),\n ],\n },\n displayName: 'Lock screen',\n description: 'One person, one password, and no way to lose what was open.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Auth' },\n};\n\n/** The six authentication templates. */\nexport const authTemplates: ScreenTemplate[] = [\n loginTemplate,\n registerTemplate,\n forgotPasswordTemplate,\n newPasswordTemplate,\n verificationTemplate,\n lockScreenTemplate,\n];\n"],"names":["brandingAside","id","headline","supporting","externalComponent","ComponentName","Logo","label","initials","text","loginTemplate","name","fitsSlot","SlotName","Content","slots","Aside","TemplateSlotName","Body","content","card","field","placeholder","feedback","formActions","button","link","targetScreen","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","registerTemplate","forgotPasswordTemplate","newPasswordTemplate","verificationTemplate","model","activeIndex","maxLength","lockScreenTemplate","size","shape","authTemplates"],"mappings":"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"}
@@ -53,7 +53,8 @@ var templateProvenance = require('../templateProvenance.js');
53
53
  displayName: 'Confirmation dialog',
54
54
  description: 'One question with the consequence spelled out, and a way back.',
55
55
  metadata: {
56
- ...templateProvenance.defaultBlueprintTemplateProvenance
56
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
57
+ category: 'Foundation / Dialog'
57
58
  }
58
59
  };
59
60
  /** Form: a short capture that does not deserve a page of its own. */ const formDialogTemplate = {
@@ -102,7 +103,8 @@ var templateProvenance = require('../templateProvenance.js');
102
103
  displayName: 'Form dialog',
103
104
  description: 'A handful of fields captured without leaving the page underneath.',
104
105
  metadata: {
105
- ...templateProvenance.defaultBlueprintTemplateProvenance
106
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
107
+ category: 'Foundation / Dialog'
106
108
  }
107
109
  };
108
110
  /** Detail: a record shown over the list it came from. */ const detailDialogTemplate = {
@@ -155,7 +157,8 @@ var templateProvenance = require('../templateProvenance.js');
155
157
  displayName: 'Detail dialog',
156
158
  description: 'A record over the list it came from, with a route to the full page.',
157
159
  metadata: {
158
- ...templateProvenance.defaultBlueprintTemplateProvenance
160
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
161
+ category: 'Foundation / Dialog'
159
162
  }
160
163
  };
161
164
  /** The dialog templates this blueprint provides. */ const galleryDialogTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"dialogTemplates.js","sources":["../../../gallery/dialogTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogTemplate } from '@cratis/scene.model';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { field } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The three dialog shapes an application repeats: confirm something destructive, capture a short form, and\n * show a record without leaving the list behind it.\n *\n * A dialog template has no `fitsSlot`, and that absence is the whole distinction. A screen template is\n * *placed* - it fills a slot on whatever contains it, and the containment chain is what decides where it\n * appears. A dialog is *summoned*: it opens over the application from wherever the code that opened it\n * happens to be, so there is no parent slot for it to name.\n */\n\n/** Confirm: one question, two answers, and enough context to answer it. */\nexport const confirmDialogTemplate: DialogTemplate = {\n name: 'ConfirmDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('confirm-title', 'Archive this product?')],\n [TemplateSlotName.Body]: [\n text('confirm-message', 'Bamboo Watch will stop appearing in the catalog. Existing orders keep it.'),\n externalComponent('confirm-note', 'message', { severity: 'warn', text: 'This can be undone from the archive.' }),\n ],\n [TemplateSlotName.Actions]: [\n panel('confirm-actions', [button('confirm-yes', 'Archive', { severity: 'danger' }), button('confirm-no', 'Keep it', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Confirmation dialog',\n description: 'One question with the consequence spelled out, and a way back.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Form: a short capture that does not deserve a page of its own. */\nexport const formDialogTemplate: DialogTemplate = {\n name: 'FormDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('form-dialog-title', 'Invite someone')],\n [TemplateSlotName.Body]: [\n field('form-dialog-email', 'Email', 'inputText', { placeholder: 'them@contoso.com' }),\n field('form-dialog-role', 'Role', 'dropdown', { options: ['Viewer', 'Editor', 'Administrator'] }),\n field('form-dialog-message', 'Message', 'inputTextarea', { rows: 3 }),\n ],\n [TemplateSlotName.Actions]: [\n panel('form-dialog-actions', [button('form-dialog-send', 'Send invitation', { severity: 'primary' }), button('form-dialog-cancel', 'Cancel', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Form dialog',\n description: 'A handful of fields captured without leaving the page underneath.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Detail: a record shown over the list it came from. */\nexport const detailDialogTemplate: DialogTemplate = {\n name: 'DetailDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('detail-dialog-title', 'ORD-4192')],\n [TemplateSlotName.Body]: [\n card('detail-dialog-summary', [\n text('detail-dialog-customer', 'Northwind Traders'),\n text('detail-dialog-total', '$1,240.00'),\n externalComponent('detail-dialog-status', 'tag', { value: 'Shipped', severity: 'success' }),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [externalComponent('detail-dialog-timeline', 'timeline', { align: 'left' })],\n [TemplateSlotName.Actions]: [\n panel('detail-dialog-actions', [button('detail-dialog-open', 'Open full record', { severity: 'primary', targetScreen: 'DetailView' }), button('detail-dialog-close', 'Close', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Detail dialog',\n description: 'A record over the list it came from, with a route to the full page.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The dialog templates this blueprint provides. */\nexport const galleryDialogTemplates: DialogTemplate[] = [confirmDialogTemplate, formDialogTemplate, detailDialogTemplate];\n"],"names":["confirmDialogTemplate","name","slots","TemplateSlotName","Header","Body","Actions","content","text","externalComponent","severity","panel","button","displayName","description","metadata","defaultBlueprintTemplateProvenance","formDialogTemplate","field","placeholder","options","rows","detailDialogTemplate","SidePanel","card","value","align","targetScreen","galleryDialogTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"dialogTemplates.js","sources":["../../../gallery/dialogTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogTemplate } from '@cratis/scene.model';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { field } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The three dialog shapes an application repeats: confirm something destructive, capture a short form, and\n * show a record without leaving the list behind it.\n *\n * A dialog template has no `fitsSlot`, and that absence is the whole distinction. A screen template is\n * *placed* - it fills a slot on whatever contains it, and the containment chain is what decides where it\n * appears. A dialog is *summoned*: it opens over the application from wherever the code that opened it\n * happens to be, so there is no parent slot for it to name.\n */\n\n/** Confirm: one question, two answers, and enough context to answer it. */\nexport const confirmDialogTemplate: DialogTemplate = {\n name: 'ConfirmDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('confirm-title', 'Archive this product?')],\n [TemplateSlotName.Body]: [\n text('confirm-message', 'Bamboo Watch will stop appearing in the catalog. Existing orders keep it.'),\n externalComponent('confirm-note', 'message', { severity: 'warn', text: 'This can be undone from the archive.' }),\n ],\n [TemplateSlotName.Actions]: [\n panel('confirm-actions', [button('confirm-yes', 'Archive', { severity: 'danger' }), button('confirm-no', 'Keep it', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Confirmation dialog',\n description: 'One question with the consequence spelled out, and a way back.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** Form: a short capture that does not deserve a page of its own. */\nexport const formDialogTemplate: DialogTemplate = {\n name: 'FormDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('form-dialog-title', 'Invite someone')],\n [TemplateSlotName.Body]: [\n field('form-dialog-email', 'Email', 'inputText', { placeholder: 'them@contoso.com' }),\n field('form-dialog-role', 'Role', 'dropdown', { options: ['Viewer', 'Editor', 'Administrator'] }),\n field('form-dialog-message', 'Message', 'inputTextarea', { rows: 3 }),\n ],\n [TemplateSlotName.Actions]: [\n panel('form-dialog-actions', [button('form-dialog-send', 'Send invitation', { severity: 'primary' }), button('form-dialog-cancel', 'Cancel', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Form dialog',\n description: 'A handful of fields captured without leaving the page underneath.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** Detail: a record shown over the list it came from. */\nexport const detailDialogTemplate: DialogTemplate = {\n name: 'DetailDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('detail-dialog-title', 'ORD-4192')],\n [TemplateSlotName.Body]: [\n card('detail-dialog-summary', [\n text('detail-dialog-customer', 'Northwind Traders'),\n text('detail-dialog-total', '$1,240.00'),\n externalComponent('detail-dialog-status', 'tag', { value: 'Shipped', severity: 'success' }),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [externalComponent('detail-dialog-timeline', 'timeline', { align: 'left' })],\n [TemplateSlotName.Actions]: [\n panel('detail-dialog-actions', [button('detail-dialog-open', 'Open full record', { severity: 'primary', targetScreen: 'DetailView' }), button('detail-dialog-close', 'Close', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Detail dialog',\n description: 'A record over the list it came from, with a route to the full page.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** The dialog templates this blueprint provides. */\nexport const galleryDialogTemplates: DialogTemplate[] = [confirmDialogTemplate, formDialogTemplate, detailDialogTemplate];\n"],"names":["confirmDialogTemplate","name","slots","TemplateSlotName","Header","Body","Actions","content","text","externalComponent","severity","panel","button","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","formDialogTemplate","field","placeholder","options","rows","detailDialogTemplate","SidePanel","card","value","align","targetScreen","galleryDialogTemplates"],"mappings":"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"}
@@ -51,7 +51,8 @@ var templateProvenance = require('../templateProvenance.js');
51
51
  displayName: 'Module workspace',
52
52
  description: 'Module level: fits the application layout content slot and offers a body for one feature.',
53
53
  metadata: {
54
- ...templateProvenance.defaultBlueprintTemplateProvenance
54
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
55
+ category: 'Foundation / Workspace'
55
56
  }
56
57
  };
57
58
  /**
@@ -85,7 +86,8 @@ var templateProvenance = require('../templateProvenance.js');
85
86
  displayName: 'Feature section',
86
87
  description: 'Feature level: fits a module workspace body slot and brings the action toolbar.',
87
88
  metadata: {
88
- ...templateProvenance.defaultBlueprintTemplateProvenance
89
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
90
+ category: 'Foundation / Section'
89
91
  }
90
92
  };
91
93
  /**
@@ -123,7 +125,8 @@ var templateProvenance = require('../templateProvenance.js');
123
125
  displayName: 'Slice section',
124
126
  description: 'Slice level: fits a feature section body slot and hosts one behavior.',
125
127
  metadata: {
126
- ...templateProvenance.defaultBlueprintTemplateProvenance
128
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
129
+ category: 'Foundation / Section'
127
130
  }
128
131
  };
129
132
  /** The chain, outermost first - what a spec walks to prove `fitsSlot` resolves at every level. */ const nestingChainTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"nesting.js","sources":["../../../gallery/nesting.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName, column, slotLeaf } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, externalComponent } from './elements';\nimport { pageHeader } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * A worked three-level chain, from the application layout down to a slice.\n *\n * The nesting rule is one rule applied at every depth: a template names, in `fitsSlot`, a slot declared by\n * whatever contains it. A module's template fits the application layout's `content`; a feature's template\n * fits a slot the module's template declares; a slice's fits one the feature's declares. Nothing here is a\n * special case for a particular level - which is exactly why the hierarchy can be arbitrarily deep without\n * a second mechanism.\n *\n * These three exist to make that concrete and to be asserted by a spec, because \"it composes recursively\"\n * is the kind of claim that is true in a design document and wrong in the code.\n */\n\n/**\n * Module level: fits the application shell's `content` slot.\n *\n * It brings its own header - a module always has a name and a description - and offers a body for the\n * feature inside it plus an optional side panel.\n */\nexport const moduleWorkspaceTemplate: ScreenTemplate = {\n name: 'ModuleWorkspace',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('module-header', 'Operations', 'Everything the operations module owns')],\n },\n displayName: 'Module workspace',\n description: 'Module level: fits the application layout content slot and offers a body for one feature.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/**\n * Feature level: fits the module workspace's `body` slot.\n *\n * It brings a toolbar, because a feature is where actions belong - a module is a grouping, a slice is one\n * behavior, and the feature in between is what a user thinks of as a screen with buttons on it.\n */\nexport const featureSectionTemplate: ScreenTemplate = {\n name: 'FeatureSection',\n fitsSlot: TemplateSlotName.Body,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n button('feature-new', 'New', { severity: 'primary', icon: 'pi pi-plus' }),\n button('feature-export', 'Export', { severity: 'secondary', icon: 'pi pi-download' }),\n ],\n },\n displayName: 'Feature section',\n description: 'Feature level: fits a module workspace body slot and brings the action toolbar.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/**\n * Slice level: fits the feature section's `body` slot.\n *\n * The end of the chain, and deliberately the thinnest thing in it - one behavior's surface, with somewhere\n * to put it and somewhere to put its actions.\n */\nexport const sliceSectionTemplate: ScreenTemplate = {\n name: 'SliceSection',\n fitsSlot: TemplateSlotName.Body,\n slots: [{ name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Body, { grow: 1 }), slotLeaf(TemplateSlotName.Actions)]),\n },\n content: {\n [TemplateSlotName.Body]: [externalComponent('slice-body', ComponentName.PageHeader, { title: 'Adjustment', subtitle: 'One behavior, one surface' })],\n },\n displayName: 'Slice section',\n description: 'Slice level: fits a feature section body slot and hosts one behavior.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The chain, outermost first - what a spec walks to prove `fitsSlot` resolves at every level. */\nexport const nestingChainTemplates: ScreenTemplate[] = [moduleWorkspaceTemplate, featureSectionTemplate, sliceSectionTemplate];\n"],"names":["moduleWorkspaceTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Header","Body","SidePanel","content","pageHeader","displayName","description","metadata","defaultBlueprintTemplateProvenance","featureSectionTemplate","Toolbar","button","severity","icon","sliceSectionTemplate","Actions","arrangement","root","column","slotLeaf","grow","externalComponent","ComponentName","PageHeader","title","subtitle","nestingChainTemplates"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAUA;;;;;;;;;;;;;;;;UAmBaA,uBAAAA,GAA0C;IACnDC,IAAAA,EAAM,iBAAA;AACNC,IAAAA,QAAAA,EAAUC,kBAASC,OAAO;IAC1BC,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBC;AAAO,SAAA;AAAG,QAAA;AAAEN,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEP,YAAAA,IAAAA,EAAMK,kCAAiBG;AAAU;AAAE,KAAA;IACjHC,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBC,MAAM,GAAG;AAACI,YAAAA,kBAAAA,CAAW,iBAAiB,YAAA,EAAc,uCAAA;AAAyC;AACnH,KAAA;IACAC,WAAAA,EAAa,kBAAA;IACbC,WAAAA,EAAa,2FAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC;AAAmC;AACtD;AAEA;;;;;UAMaC,sBAAAA,GAAyC;IAClDf,IAAAA,EAAM,gBAAA;AACNC,IAAAA,QAAAA,EAAUI,kCAAiBE,IAAI;IAC/BH,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBW;AAAQ,SAAA;AAAG,QAAA;AAAEhB,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK;AAAE,KAAA;IAC5EE,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBW,OAAO,GAAG;AACxBC,YAAAA,eAAAA,CAAO,eAAe,KAAA,EAAO;gBAAEC,QAAAA,EAAU,SAAA;gBAAWC,IAAAA,EAAM;AAAa,aAAA,CAAA;AACvEF,YAAAA,eAAAA,CAAO,kBAAkB,QAAA,EAAU;gBAAEC,QAAAA,EAAU,WAAA;gBAAaC,IAAAA,EAAM;AAAiB,aAAA;AACtF;AACL,KAAA;IACAR,WAAAA,EAAa,iBAAA;IACbC,WAAAA,EAAa,iFAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC;AAAmC;AACtD;AAEA;;;;;UAMaM,oBAAAA,GAAuC;IAChDpB,IAAAA,EAAM,cAAA;AACNC,IAAAA,QAAAA,EAAUI,kCAAiBE,IAAI;IAC/BH,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEP,YAAAA,IAAAA,EAAMK,kCAAiBgB;AAAQ;AAAE,KAAA;IAC5EC,WAAAA,EAAa;AACTC,QAAAA,IAAAA,EAAMC,mBAAAA,CAAO;YAACC,qBAAAA,CAASpB,iCAAAA,CAAiBE,IAAI,EAAE;gBAAEmB,IAAAA,EAAM;AAAE,aAAA,CAAA;AAAID,YAAAA,qBAAAA,CAASpB,kCAAiBgB,OAAO;AAAE,SAAA;AACnG,KAAA;IACAZ,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBE,IAAI,GAAG;YAACoB,0BAAAA,CAAkB,YAAA,EAAcC,2BAAAA,CAAcC,UAAU,EAAE;gBAAEC,KAAAA,EAAO,YAAA;gBAAcC,QAAAA,EAAU;AAA4B,aAAA;AAAG;AACxJ,KAAA;IACApB,WAAAA,EAAa,eAAA;IACbC,WAAAA,EAAa,uEAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC;AAAmC;AACtD;AAEA,mGACO,MAAMkB,qBAAAA,GAA0C;AAACjC,IAAAA,uBAAAA;AAAyBgB,IAAAA,sBAAAA;AAAwBK,IAAAA;;;;;;"}
1
+ {"version":3,"file":"nesting.js","sources":["../../../gallery/nesting.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName, column, slotLeaf } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, externalComponent } from './elements';\nimport { pageHeader } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * A worked three-level chain, from the application layout down to a slice.\n *\n * The nesting rule is one rule applied at every depth: a template names, in `fitsSlot`, a slot declared by\n * whatever contains it. A module's template fits the application layout's `content`; a feature's template\n * fits a slot the module's template declares; a slice's fits one the feature's declares. Nothing here is a\n * special case for a particular level - which is exactly why the hierarchy can be arbitrarily deep without\n * a second mechanism.\n *\n * These three exist to make that concrete and to be asserted by a spec, because \"it composes recursively\"\n * is the kind of claim that is true in a design document and wrong in the code.\n */\n\n/**\n * Module level: fits the application shell's `content` slot.\n *\n * It brings its own header - a module always has a name and a description - and offers a body for the\n * feature inside it plus an optional side panel.\n */\nexport const moduleWorkspaceTemplate: ScreenTemplate = {\n name: 'ModuleWorkspace',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('module-header', 'Operations', 'Everything the operations module owns')],\n },\n displayName: 'Module workspace',\n description: 'Module level: fits the application layout content slot and offers a body for one feature.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Workspace' },\n};\n\n/**\n * Feature level: fits the module workspace's `body` slot.\n *\n * It brings a toolbar, because a feature is where actions belong - a module is a grouping, a slice is one\n * behavior, and the feature in between is what a user thinks of as a screen with buttons on it.\n */\nexport const featureSectionTemplate: ScreenTemplate = {\n name: 'FeatureSection',\n fitsSlot: TemplateSlotName.Body,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n button('feature-new', 'New', { severity: 'primary', icon: 'pi pi-plus' }),\n button('feature-export', 'Export', { severity: 'secondary', icon: 'pi pi-download' }),\n ],\n },\n displayName: 'Feature section',\n description: 'Feature level: fits a module workspace body slot and brings the action toolbar.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Section' },\n};\n\n/**\n * Slice level: fits the feature section's `body` slot.\n *\n * The end of the chain, and deliberately the thinnest thing in it - one behavior's surface, with somewhere\n * to put it and somewhere to put its actions.\n */\nexport const sliceSectionTemplate: ScreenTemplate = {\n name: 'SliceSection',\n fitsSlot: TemplateSlotName.Body,\n slots: [{ name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Body, { grow: 1 }), slotLeaf(TemplateSlotName.Actions)]),\n },\n content: {\n [TemplateSlotName.Body]: [externalComponent('slice-body', ComponentName.PageHeader, { title: 'Adjustment', subtitle: 'One behavior, one surface' })],\n },\n displayName: 'Slice section',\n description: 'Slice level: fits a feature section body slot and hosts one behavior.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Section' },\n};\n\n/** The chain, outermost first - what a spec walks to prove `fitsSlot` resolves at every level. */\nexport const nestingChainTemplates: ScreenTemplate[] = [moduleWorkspaceTemplate, featureSectionTemplate, sliceSectionTemplate];\n"],"names":["moduleWorkspaceTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Header","Body","SidePanel","content","pageHeader","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","featureSectionTemplate","Toolbar","button","severity","icon","sliceSectionTemplate","Actions","arrangement","root","column","slotLeaf","grow","externalComponent","ComponentName","PageHeader","title","subtitle","nestingChainTemplates"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AAUA;;;;;;;;;;;;;;;;UAmBaA,uBAAAA,GAA0C;IACnDC,IAAAA,EAAM,iBAAA;AACNC,IAAAA,QAAAA,EAAUC,kBAASC,OAAO;IAC1BC,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBC;AAAO,SAAA;AAAG,QAAA;AAAEN,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEP,YAAAA,IAAAA,EAAMK,kCAAiBG;AAAU;AAAE,KAAA;IACjHC,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBC,MAAM,GAAG;AAACI,YAAAA,kBAAAA,CAAW,iBAAiB,YAAA,EAAc,uCAAA;AAAyC;AACnH,KAAA;IACAC,WAAAA,EAAa,kBAAA;IACbC,WAAAA,EAAa,2FAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC,qDAAkC;QAAEC,QAAAA,EAAU;AAAyB;AAC1F;AAEA;;;;;UAMaC,sBAAAA,GAAyC;IAClDhB,IAAAA,EAAM,gBAAA;AACNC,IAAAA,QAAAA,EAAUI,kCAAiBE,IAAI;IAC/BH,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBY;AAAQ,SAAA;AAAG,QAAA;AAAEjB,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK;AAAE,KAAA;IAC5EE,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBY,OAAO,GAAG;AACxBC,YAAAA,eAAAA,CAAO,eAAe,KAAA,EAAO;gBAAEC,QAAAA,EAAU,SAAA;gBAAWC,IAAAA,EAAM;AAAa,aAAA,CAAA;AACvEF,YAAAA,eAAAA,CAAO,kBAAkB,QAAA,EAAU;gBAAEC,QAAAA,EAAU,WAAA;gBAAaC,IAAAA,EAAM;AAAiB,aAAA;AACtF;AACL,KAAA;IACAT,WAAAA,EAAa,iBAAA;IACbC,WAAAA,EAAa,iFAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC,qDAAkC;QAAEC,QAAAA,EAAU;AAAuB;AACxF;AAEA;;;;;UAMaM,oBAAAA,GAAuC;IAChDrB,IAAAA,EAAM,cAAA;AACNC,IAAAA,QAAAA,EAAUI,kCAAiBE,IAAI;IAC/BH,KAAAA,EAAO;AAAC,QAAA;AAAEJ,YAAAA,IAAAA,EAAMK,kCAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEP,YAAAA,IAAAA,EAAMK,kCAAiBiB;AAAQ;AAAE,KAAA;IAC5EC,WAAAA,EAAa;AACTC,QAAAA,IAAAA,EAAMC,mBAAAA,CAAO;YAACC,qBAAAA,CAASrB,iCAAAA,CAAiBE,IAAI,EAAE;gBAAEoB,IAAAA,EAAM;AAAE,aAAA,CAAA;AAAID,YAAAA,qBAAAA,CAASrB,kCAAiBiB,OAAO;AAAE,SAAA;AACnG,KAAA;IACAb,OAAAA,EAAS;QACL,CAACJ,iCAAAA,CAAiBE,IAAI,GAAG;YAACqB,0BAAAA,CAAkB,YAAA,EAAcC,2BAAAA,CAAcC,UAAU,EAAE;gBAAEC,KAAAA,EAAO,YAAA;gBAAcC,QAAAA,EAAU;AAA4B,aAAA;AAAG;AACxJ,KAAA;IACArB,WAAAA,EAAa,eAAA;IACbC,WAAAA,EAAa,uEAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC,qDAAkC;QAAEC,QAAAA,EAAU;AAAuB;AACxF;AAEA,mGACO,MAAMkB,qBAAAA,GAA0C;AAAClC,IAAAA,uBAAAA;AAAyBiB,IAAAA,sBAAAA;AAAwBK,IAAAA;;;;;;"}
@@ -52,7 +52,8 @@ var templateProvenance = require('../templateProvenance.js');
52
52
  displayName: 'Error',
53
53
  description: 'A server-side failure, said plainly, with a way onward.',
54
54
  metadata: {
55
- ...templateProvenance.defaultBlueprintTemplateProvenance
55
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
56
+ category: 'Foundation / State'
56
57
  }
57
58
  };
58
59
  /** Signed in, and still not allowed. */ const accessDeniedTemplate = {
@@ -87,7 +88,8 @@ var templateProvenance = require('../templateProvenance.js');
87
88
  displayName: 'Access denied',
88
89
  description: 'A refusal that distinguishes "not signed in" from "not allowed".',
89
90
  metadata: {
90
- ...templateProvenance.defaultBlueprintTemplateProvenance
91
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
92
+ category: 'Foundation / State'
91
93
  }
92
94
  };
93
95
  /** No such address. */ const notFoundTemplate = {
@@ -121,7 +123,8 @@ var templateProvenance = require('../templateProvenance.js');
121
123
  displayName: 'Not found',
122
124
  description: 'A wrong address, with a search box rather than a dead end.',
123
125
  metadata: {
124
- ...templateProvenance.defaultBlueprintTemplateProvenance
126
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
127
+ category: 'Foundation / State'
125
128
  }
126
129
  };
127
130
  /** The page that has to do the selling. */ const landingTemplate = {
@@ -186,7 +189,8 @@ var templateProvenance = require('../templateProvenance.js');
186
189
  displayName: 'Landing',
187
190
  description: 'The marketing front door, with its own navigation because it has no application chrome.',
188
191
  metadata: {
189
- ...templateProvenance.defaultBlueprintTemplateProvenance
192
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
193
+ category: 'Foundation / Landing'
190
194
  }
191
195
  };
192
196
  /** The four status and marketing templates. */ const statusTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"statusTemplates.js","sources":["../../../gallery/statusTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The four screens that are not part of anyone's plan: a server error, a refusal, a wrong address, and the\n * page that has to sell the product before any of the others exist.\n *\n * They use the full-page layout for the same reason the sign-in screens do - none of them has navigation\n * to render - and they matter more than their frequency suggests. An error page is the screen most likely\n * to be someone's first impression of how carefully an application was built.\n */\n\n/** Something broke on our side. */\nexport const errorTemplate: ScreenTemplate = {\n name: 'Error',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('error-card', [\n externalComponent('error-tag', 'tag', { value: '500', severity: 'danger' }),\n text('error-title', 'Something went wrong on our side'),\n text('error-message', 'The team has been told. Try again in a moment - nothing you were working on was lost.'),\n panel('error-actions', [\n button('error-retry', 'Try again', { severity: 'primary' }),\n button('error-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ]),\n ],\n },\n displayName: 'Error',\n description: 'A server-side failure, said plainly, with a way onward.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Signed in, and still not allowed. */\nexport const accessDeniedTemplate: ScreenTemplate = {\n name: 'AccessDenied',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('denied-card', [\n externalComponent('denied-tag', 'tag', { value: '403', severity: 'warning' }),\n text('denied-title', 'You do not have access to this'),\n text('denied-message', 'Your account is signed in, but it is not allowed here. An administrator can change that.'),\n panel('denied-actions', [\n button('denied-request', 'Request access', { severity: 'primary' }),\n button('denied-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ]),\n ],\n },\n displayName: 'Access denied',\n description: 'A refusal that distinguishes \"not signed in\" from \"not allowed\".',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** No such address. */\nexport const notFoundTemplate: ScreenTemplate = {\n name: 'NotFound',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('not-found-card', [\n externalComponent('not-found-tag', 'tag', { value: '404', severity: 'info' }),\n text('not-found-title', 'That page is not here'),\n text('not-found-message', 'The link may be old, or the thing it pointed at may have been removed.'),\n externalComponent('not-found-search', 'inputText', { placeholder: 'Search instead', ariaLabel: 'Search' }),\n button('not-found-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ],\n },\n displayName: 'Not found',\n description: 'A wrong address, with a search box rather than a dead end.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The page that has to do the selling. */\nexport const landingTemplate: ScreenTemplate = {\n name: 'Landing',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [\n panel('landing-nav', [\n externalComponent('landing-logo', ComponentName.Logo, { label: 'Contoso', initials: 'C' }),\n button('landing-signin', 'Sign in', { severity: 'secondary', targetScreen: 'Login' }),\n button('landing-start', 'Start free', { severity: 'primary', targetScreen: 'Register' }),\n ]),\n ],\n [TemplateSlotName.Body]: [\n card('landing-hero', [\n text('landing-headline', 'Ship the shell on day one'),\n text('landing-subhead', 'Eight menu modes, twenty screen templates and two themes, in one blueprint an application picks once.'),\n button('landing-cta', 'Start free', { severity: 'primary', targetScreen: 'Register' }),\n ]),\n widget('landing-feature-modes', 'Every mode people expect', [text('landing-modes-text', 'Static, overlay, slim, slim+, compact, horizontal, reveal and drawer.')]),\n widget('landing-feature-themes', 'Themeable to the token', [text('landing-themes-text', 'Ten semantic tokens define the whole shell. Swap them and everything follows.')]),\n widget('landing-feature-templates', 'The pages you were going to build anyway', [\n text('landing-templates-text', 'Dashboard, list, detail, form, invoice, settings, help - and every screen around signing in.'),\n ]),\n ],\n [TemplateSlotName.Actions]: [\n panel('landing-footer', [text('landing-copyright', '© Contoso'), button('landing-contact', 'Talk to us', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Landing',\n description: 'The marketing front door, with its own navigation because it has no application chrome.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The four status and marketing templates. */\nexport const statusTemplates: ScreenTemplate[] = [errorTemplate, accessDeniedTemplate, notFoundTemplate, landingTemplate];\n"],"names":["errorTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Body","content","card","externalComponent","value","severity","text","panel","button","targetScreen","displayName","description","metadata","defaultBlueprintTemplateProvenance","accessDeniedTemplate","notFoundTemplate","placeholder","ariaLabel","landingTemplate","Header","Actions","ComponentName","Logo","label","initials","widget","statusTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"statusTemplates.js","sources":["../../../gallery/statusTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { ComponentName } from '../ComponentName';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The four screens that are not part of anyone's plan: a server error, a refusal, a wrong address, and the\n * page that has to sell the product before any of the others exist.\n *\n * They use the full-page layout for the same reason the sign-in screens do - none of them has navigation\n * to render - and they matter more than their frequency suggests. An error page is the screen most likely\n * to be someone's first impression of how carefully an application was built.\n */\n\n/** Something broke on our side. */\nexport const errorTemplate: ScreenTemplate = {\n name: 'Error',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('error-card', [\n externalComponent('error-tag', 'tag', { value: '500', severity: 'danger' }),\n text('error-title', 'Something went wrong on our side'),\n text('error-message', 'The team has been told. Try again in a moment - nothing you were working on was lost.'),\n panel('error-actions', [\n button('error-retry', 'Try again', { severity: 'primary' }),\n button('error-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ]),\n ],\n },\n displayName: 'Error',\n description: 'A server-side failure, said plainly, with a way onward.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / State' },\n};\n\n/** Signed in, and still not allowed. */\nexport const accessDeniedTemplate: ScreenTemplate = {\n name: 'AccessDenied',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('denied-card', [\n externalComponent('denied-tag', 'tag', { value: '403', severity: 'warning' }),\n text('denied-title', 'You do not have access to this'),\n text('denied-message', 'Your account is signed in, but it is not allowed here. An administrator can change that.'),\n panel('denied-actions', [\n button('denied-request', 'Request access', { severity: 'primary' }),\n button('denied-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ]),\n ],\n },\n displayName: 'Access denied',\n description: 'A refusal that distinguishes \"not signed in\" from \"not allowed\".',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / State' },\n};\n\n/** No such address. */\nexport const notFoundTemplate: ScreenTemplate = {\n name: 'NotFound',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n card('not-found-card', [\n externalComponent('not-found-tag', 'tag', { value: '404', severity: 'info' }),\n text('not-found-title', 'That page is not here'),\n text('not-found-message', 'The link may be old, or the thing it pointed at may have been removed.'),\n externalComponent('not-found-search', 'inputText', { placeholder: 'Search instead', ariaLabel: 'Search' }),\n button('not-found-home', 'Back to the dashboard', { severity: 'secondary', targetScreen: 'Dashboard' }),\n ]),\n ],\n },\n displayName: 'Not found',\n description: 'A wrong address, with a search box rather than a dead end.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / State' },\n};\n\n/** The page that has to do the selling. */\nexport const landingTemplate: ScreenTemplate = {\n name: 'Landing',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [\n panel('landing-nav', [\n externalComponent('landing-logo', ComponentName.Logo, { label: 'Contoso', initials: 'C' }),\n button('landing-signin', 'Sign in', { severity: 'secondary', targetScreen: 'Login' }),\n button('landing-start', 'Start free', { severity: 'primary', targetScreen: 'Register' }),\n ]),\n ],\n [TemplateSlotName.Body]: [\n card('landing-hero', [\n text('landing-headline', 'Ship the shell on day one'),\n text('landing-subhead', 'Eight menu modes, twenty screen templates and two themes, in one blueprint an application picks once.'),\n button('landing-cta', 'Start free', { severity: 'primary', targetScreen: 'Register' }),\n ]),\n widget('landing-feature-modes', 'Every mode people expect', [text('landing-modes-text', 'Static, overlay, slim, slim+, compact, horizontal, reveal and drawer.')]),\n widget('landing-feature-themes', 'Themeable to the token', [text('landing-themes-text', 'Ten semantic tokens define the whole shell. Swap them and everything follows.')]),\n widget('landing-feature-templates', 'The pages you were going to build anyway', [\n text('landing-templates-text', 'Dashboard, list, detail, form, invoice, settings, help - and every screen around signing in.'),\n ]),\n ],\n [TemplateSlotName.Actions]: [\n panel('landing-footer', [text('landing-copyright', '© Contoso'), button('landing-contact', 'Talk to us', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Landing',\n description: 'The marketing front door, with its own navigation because it has no application chrome.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Landing' },\n};\n\n/** The four status and marketing templates. */\nexport const statusTemplates: ScreenTemplate[] = [errorTemplate, accessDeniedTemplate, notFoundTemplate, landingTemplate];\n"],"names":["errorTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Body","content","card","externalComponent","value","severity","text","panel","button","targetScreen","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","accessDeniedTemplate","notFoundTemplate","placeholder","ariaLabel","landingTemplate","Header","Actions","ComponentName","Logo","label","initials","widget","statusTemplates"],"mappings":"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"}
@@ -53,7 +53,8 @@ var templateProvenance = require('../templateProvenance.js');
53
53
  displayName: 'Documentation',
54
54
  description: 'Prose with a table of contents beside it.',
55
55
  metadata: {
56
- ...templateProvenance.defaultBlueprintTemplateProvenance
56
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
57
+ category: 'Foundation / Detail'
57
58
  }
58
59
  };
59
60
  /** Profile settings: the signed-in user editing their own account. */ const profileSettingsTemplate = {
@@ -111,7 +112,8 @@ var templateProvenance = require('../templateProvenance.js');
111
112
  displayName: 'Profile settings',
112
113
  description: 'The signed-in user editing their own name, photo, password and notifications.',
113
114
  metadata: {
114
- ...templateProvenance.defaultBlueprintTemplateProvenance
115
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
116
+ category: 'Foundation / Form'
115
117
  }
116
118
  };
117
119
  /** User management: administering everybody else. */ const userManagementTemplate = {
@@ -191,7 +193,8 @@ var templateProvenance = require('../templateProvenance.js');
191
193
  displayName: 'User management',
192
194
  description: 'The people table, with roles, status and an invitation action.',
193
195
  metadata: {
194
- ...templateProvenance.defaultBlueprintTemplateProvenance
196
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
197
+ category: 'Foundation / List'
195
198
  }
196
199
  };
197
200
  /** Invoice: a printable document, which is a different shape from a screen. */ const invoiceTemplate = {
@@ -272,7 +275,8 @@ var templateProvenance = require('../templateProvenance.js');
272
275
  displayName: 'Invoice',
273
276
  description: 'A printable document: parties, line items and totals.',
274
277
  metadata: {
275
- ...templateProvenance.defaultBlueprintTemplateProvenance
278
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
279
+ category: 'Foundation / Detail'
276
280
  }
277
281
  };
278
282
  /** Help: the answers, and a way to ask when they are not there. */ const helpTemplate = {
@@ -316,7 +320,8 @@ var templateProvenance = require('../templateProvenance.js');
316
320
  displayName: 'Help',
317
321
  description: 'Searchable answers with a route to a human.',
318
322
  metadata: {
319
- ...templateProvenance.defaultBlueprintTemplateProvenance
323
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
324
+ category: 'Foundation / Detail'
320
325
  }
321
326
  };
322
327
  /** The five support templates. */ const supportTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"supportTemplates.js","sources":["../../../gallery/supportTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { field, formActions, pageHeader, table, widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The five shapes an application needs that are not the CRUD loop: documentation, the signed-in user's own\n * settings, user administration, a printable document, and help.\n *\n * They are in the set because leaving them out is what makes a template line feel thin. Every real\n * application grows all five, and the ones that were never designed are the ones that end up looking like\n * a different product.\n */\n\n/** Documentation: a table of contents beside prose. */\nexport const documentationTemplate: ScreenTemplate = {\n name: 'Documentation',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.SidePanel]: [\n widget('docs-toc', 'On this page', [\n text('docs-toc-1', 'Getting started'),\n text('docs-toc-2', 'Configuring the shell'),\n text('docs-toc-3', 'Themes'),\n text('docs-toc-4', 'Publishing a blueprint'),\n ]),\n ],\n [TemplateSlotName.Body]: [\n pageHeader('docs-header', 'Getting started', 'Everything you need to run the blueprint locally'),\n card('docs-body', [\n text('docs-intro', 'Install the blueprint, add it to a ui profile, and pick a layout. The shell reads its mode from the configurator and remembers it.'),\n externalComponent('docs-note', 'message', { severity: 'info', text: 'The shell needs its stylesheet imported once, at the host.' }),\n ]),\n ],\n },\n displayName: 'Documentation',\n description: 'Prose with a table of contents beside it.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Profile settings: the signed-in user editing their own account. */\nexport const profileSettingsTemplate: ScreenTemplate = {\n name: 'ProfileSettings',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('profile-header', 'Your profile', 'How you appear to everyone else in the workspace')],\n [TemplateSlotName.Body]: [\n card('profile-identity', [\n externalComponent('profile-avatar', 'avatar', { label: 'AN', size: 'large', shape: 'circle' }),\n field('profile-name', 'Display name', 'inputText', { value: 'Amelia Nyquist' }),\n field('profile-email', 'Email', 'inputText', { value: 'amelia@contoso.com' }),\n externalComponent('profile-photo', 'image', { alt: 'Your current photo' }),\n button('profile-photo-change', 'Change photo', { severity: 'secondary' }),\n ]),\n card('profile-security', [\n field('profile-current', 'Current password', 'password', {}),\n field('profile-new', 'New password', 'password', { feedback: true }),\n field('profile-notify', 'Email me about mentions', 'checkbox', { checked: true }),\n ]),\n ],\n [TemplateSlotName.Actions]: [formActions('profile-actions', 'Save changes')],\n },\n displayName: 'Profile settings',\n description: 'The signed-in user editing their own name, photo, password and notifications.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** User management: administering everybody else. */\nexport const userManagementTemplate: ScreenTemplate = {\n name: 'UserManagement',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n pageHeader('users-header', 'Users', '34 people, 3 pending invitations', [button('users-invite', 'Invite people', { severity: 'primary', icon: 'pi pi-user-plus' })]),\n ],\n [TemplateSlotName.Body]: [\n table(\n 'users-table',\n [\n { field: 'name', header: 'Name' },\n { field: 'email', header: 'Email' },\n { field: 'role', header: 'Role' },\n { field: 'status', header: 'Status' },\n { field: 'lastSeen', header: 'Last seen' },\n ],\n [\n { name: 'Amelia Nyquist', email: 'amelia@contoso.com', role: 'Owner', status: 'Active', lastSeen: '2 minutes ago' },\n { name: 'Bjørn Holt', email: 'bjorn@contoso.com', role: 'Administrator', status: 'Active', lastSeen: 'Yesterday' },\n { name: 'Chidi Okafor', email: 'chidi@contoso.com', role: 'Editor', status: 'Active', lastSeen: '3 days ago' },\n { name: 'Dana Whitfield', email: 'dana@contoso.com', role: 'Viewer', status: 'Invited', lastSeen: 'Never' },\n ],\n ),\n ],\n },\n displayName: 'User management',\n description: 'The people table, with roles, status and an invitation action.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Invoice: a printable document, which is a different shape from a screen. */\nexport const invoiceTemplate: ScreenTemplate = {\n name: 'Invoice',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [\n pageHeader('invoice-header', 'Invoice INV-2043', 'Issued 4 March · Due 3 April', [button('invoice-print', 'Print', { severity: 'secondary', icon: 'pi pi-print' })]),\n ],\n [TemplateSlotName.Body]: [\n card('invoice-parties', [\n text('invoice-from', 'From: Contoso Ltd, 4 Chandler Street, Dublin'),\n text('invoice-to', 'To: Northwind Traders, 18 Quay Road, Cork'),\n ]),\n table(\n 'invoice-lines',\n [\n { field: 'description', header: 'Description' },\n { field: 'quantity', header: 'Quantity' },\n { field: 'unitPrice', header: 'Unit price' },\n { field: 'amount', header: 'Amount' },\n ],\n [\n { description: 'Bamboo Watch', quantity: 12, unitPrice: '$65.00', amount: '$780.00' },\n { description: 'Blue Band', quantity: 4, unitPrice: '$79.00', amount: '$316.00' },\n { description: 'Expedited shipping', quantity: 1, unitPrice: '$144.00', amount: '$144.00' },\n ],\n ),\n card('invoice-total', [text('invoice-subtotal', 'Subtotal: $1,240.00'), text('invoice-vat', 'VAT (23%): $285.20'), text('invoice-due', 'Total due: $1,525.20')]),\n ],\n [TemplateSlotName.Actions]: [formActions('invoice-actions', 'Mark as paid', 'Send reminder')],\n },\n displayName: 'Invoice',\n description: 'A printable document: parties, line items and totals.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** Help: the answers, and a way to ask when they are not there. */\nexport const helpTemplate: ScreenTemplate = {\n name: 'Help',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('help-header', 'Help', 'Search the answers, or ask us directly')],\n [TemplateSlotName.Body]: [\n externalComponent('help-search', 'inputText', { placeholder: 'Search help', ariaLabel: 'Search help' }),\n widget('help-popular', 'Popular answers', [\n text('help-1', 'How do I invite someone to the workspace?'),\n text('help-2', 'Why can I not see the sidebar on my phone?'),\n text('help-3', 'How do I change the theme?'),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('help-contact', 'Still stuck?', [text('help-contact-text', 'We answer within one working day.'), button('help-contact-button', 'Contact support', { severity: 'primary' })]),\n ],\n },\n displayName: 'Help',\n description: 'Searchable answers with a route to a human.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The five support templates. */\nexport const supportTemplates: ScreenTemplate[] = [documentationTemplate, profileSettingsTemplate, userManagementTemplate, invoiceTemplate, helpTemplate];\n"],"names":["documentationTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","SidePanel","Body","content","widget","text","pageHeader","card","externalComponent","severity","displayName","description","metadata","defaultBlueprintTemplateProvenance","profileSettingsTemplate","Header","Actions","label","size","shape","field","value","alt","button","feedback","checked","formActions","userManagementTemplate","Toolbar","icon","table","header","email","role","status","lastSeen","invoiceTemplate","quantity","unitPrice","amount","helpTemplate","placeholder","ariaLabel","supportTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"supportTemplates.js","sources":["../../../gallery/supportTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate } from '@cratis/scene.model';\nimport { SlotName } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { field, formActions, pageHeader, table, widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The five shapes an application needs that are not the CRUD loop: documentation, the signed-in user's own\n * settings, user administration, a printable document, and help.\n *\n * They are in the set because leaving them out is what makes a template line feel thin. Every real\n * application grows all five, and the ones that were never designed are the ones that end up looking like\n * a different product.\n */\n\n/** Documentation: a table of contents beside prose. */\nexport const documentationTemplate: ScreenTemplate = {\n name: 'Documentation',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.SidePanel]: [\n widget('docs-toc', 'On this page', [\n text('docs-toc-1', 'Getting started'),\n text('docs-toc-2', 'Configuring the shell'),\n text('docs-toc-3', 'Themes'),\n text('docs-toc-4', 'Publishing a blueprint'),\n ]),\n ],\n [TemplateSlotName.Body]: [\n pageHeader('docs-header', 'Getting started', 'Everything you need to run the blueprint locally'),\n card('docs-body', [\n text('docs-intro', 'Install the blueprint, add it to a ui profile, and pick a layout. The shell reads its mode from the configurator and remembers it.'),\n externalComponent('docs-note', 'message', { severity: 'info', text: 'The shell needs its stylesheet imported once, at the host.' }),\n ]),\n ],\n },\n displayName: 'Documentation',\n description: 'Prose with a table of contents beside it.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Detail' },\n};\n\n/** Profile settings: the signed-in user editing their own account. */\nexport const profileSettingsTemplate: ScreenTemplate = {\n name: 'ProfileSettings',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('profile-header', 'Your profile', 'How you appear to everyone else in the workspace')],\n [TemplateSlotName.Body]: [\n card('profile-identity', [\n externalComponent('profile-avatar', 'avatar', { label: 'AN', size: 'large', shape: 'circle' }),\n field('profile-name', 'Display name', 'inputText', { value: 'Amelia Nyquist' }),\n field('profile-email', 'Email', 'inputText', { value: 'amelia@contoso.com' }),\n externalComponent('profile-photo', 'image', { alt: 'Your current photo' }),\n button('profile-photo-change', 'Change photo', { severity: 'secondary' }),\n ]),\n card('profile-security', [\n field('profile-current', 'Current password', 'password', {}),\n field('profile-new', 'New password', 'password', { feedback: true }),\n field('profile-notify', 'Email me about mentions', 'checkbox', { checked: true }),\n ]),\n ],\n [TemplateSlotName.Actions]: [formActions('profile-actions', 'Save changes')],\n },\n displayName: 'Profile settings',\n description: 'The signed-in user editing their own name, photo, password and notifications.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Form' },\n};\n\n/** User management: administering everybody else. */\nexport const userManagementTemplate: ScreenTemplate = {\n name: 'UserManagement',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n pageHeader('users-header', 'Users', '34 people, 3 pending invitations', [button('users-invite', 'Invite people', { severity: 'primary', icon: 'pi pi-user-plus' })]),\n ],\n [TemplateSlotName.Body]: [\n table(\n 'users-table',\n [\n { field: 'name', header: 'Name' },\n { field: 'email', header: 'Email' },\n { field: 'role', header: 'Role' },\n { field: 'status', header: 'Status' },\n { field: 'lastSeen', header: 'Last seen' },\n ],\n [\n { name: 'Amelia Nyquist', email: 'amelia@contoso.com', role: 'Owner', status: 'Active', lastSeen: '2 minutes ago' },\n { name: 'Bjørn Holt', email: 'bjorn@contoso.com', role: 'Administrator', status: 'Active', lastSeen: 'Yesterday' },\n { name: 'Chidi Okafor', email: 'chidi@contoso.com', role: 'Editor', status: 'Active', lastSeen: '3 days ago' },\n { name: 'Dana Whitfield', email: 'dana@contoso.com', role: 'Viewer', status: 'Invited', lastSeen: 'Never' },\n ],\n ),\n ],\n },\n displayName: 'User management',\n description: 'The people table, with roles, status and an invitation action.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / List' },\n};\n\n/** Invoice: a printable document, which is a different shape from a screen. */\nexport const invoiceTemplate: ScreenTemplate = {\n name: 'Invoice',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [\n pageHeader('invoice-header', 'Invoice INV-2043', 'Issued 4 March · Due 3 April', [button('invoice-print', 'Print', { severity: 'secondary', icon: 'pi pi-print' })]),\n ],\n [TemplateSlotName.Body]: [\n card('invoice-parties', [\n text('invoice-from', 'From: Contoso Ltd, 4 Chandler Street, Dublin'),\n text('invoice-to', 'To: Northwind Traders, 18 Quay Road, Cork'),\n ]),\n table(\n 'invoice-lines',\n [\n { field: 'description', header: 'Description' },\n { field: 'quantity', header: 'Quantity' },\n { field: 'unitPrice', header: 'Unit price' },\n { field: 'amount', header: 'Amount' },\n ],\n [\n { description: 'Bamboo Watch', quantity: 12, unitPrice: '$65.00', amount: '$780.00' },\n { description: 'Blue Band', quantity: 4, unitPrice: '$79.00', amount: '$316.00' },\n { description: 'Expedited shipping', quantity: 1, unitPrice: '$144.00', amount: '$144.00' },\n ],\n ),\n card('invoice-total', [text('invoice-subtotal', 'Subtotal: $1,240.00'), text('invoice-vat', 'VAT (23%): $285.20'), text('invoice-due', 'Total due: $1,525.20')]),\n ],\n [TemplateSlotName.Actions]: [formActions('invoice-actions', 'Mark as paid', 'Send reminder')],\n },\n displayName: 'Invoice',\n description: 'A printable document: parties, line items and totals.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Detail' },\n};\n\n/** Help: the answers, and a way to ask when they are not there. */\nexport const helpTemplate: ScreenTemplate = {\n name: 'Help',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('help-header', 'Help', 'Search the answers, or ask us directly')],\n [TemplateSlotName.Body]: [\n externalComponent('help-search', 'inputText', { placeholder: 'Search help', ariaLabel: 'Search help' }),\n widget('help-popular', 'Popular answers', [\n text('help-1', 'How do I invite someone to the workspace?'),\n text('help-2', 'Why can I not see the sidebar on my phone?'),\n text('help-3', 'How do I change the theme?'),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('help-contact', 'Still stuck?', [text('help-contact-text', 'We answer within one working day.'), button('help-contact-button', 'Contact support', { severity: 'primary' })]),\n ],\n },\n displayName: 'Help',\n description: 'Searchable answers with a route to a human.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Detail' },\n};\n\n/** The five support templates. */\nexport const supportTemplates: ScreenTemplate[] = [documentationTemplate, profileSettingsTemplate, userManagementTemplate, invoiceTemplate, helpTemplate];\n"],"names":["documentationTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","SidePanel","Body","content","widget","text","pageHeader","card","externalComponent","severity","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","profileSettingsTemplate","Header","Actions","label","size","shape","field","value","alt","button","feedback","checked","formActions","userManagementTemplate","Toolbar","icon","table","header","email","role","status","lastSeen","invoiceTemplate","quantity","unitPrice","amount","helpTemplate","placeholder","ariaLabel","supportTemplates"],"mappings":"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"}
@@ -172,7 +172,8 @@ var templateProvenance = require('../templateProvenance.js');
172
172
  displayName: 'Dashboard',
173
173
  description: 'Four stat cards over two columns of widgets - the composition every template line opens with.',
174
174
  metadata: {
175
- ...templateProvenance.sakaiCompositionProvenance
175
+ ...templateProvenance.sakaiCompositionProvenance,
176
+ category: 'Foundation / Dashboard'
176
177
  }
177
178
  };
178
179
  /** The list: a filter toolbar, a real table, and the row actions a list needs. */ const crudListTemplate = {
@@ -267,7 +268,8 @@ var templateProvenance = require('../templateProvenance.js');
267
268
  displayName: 'List',
268
269
  description: 'A searchable table with a header, primary action and row data.',
269
270
  metadata: {
270
- ...templateProvenance.defaultBlueprintTemplateProvenance
271
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
272
+ category: 'Foundation / List'
271
273
  }
272
274
  };
273
275
  /** The detail: a summary panel beside the record's own sections. */ const detailViewTemplate = {
@@ -321,7 +323,8 @@ var templateProvenance = require('../templateProvenance.js');
321
323
  displayName: 'Detail',
322
324
  description: 'One record: a header with actions, its sections, and a summary panel.',
323
325
  metadata: {
324
- ...templateProvenance.defaultBlueprintTemplateProvenance
326
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
327
+ category: 'Foundation / Detail'
325
328
  }
326
329
  };
327
330
  /**
@@ -431,7 +434,8 @@ var templateProvenance = require('../templateProvenance.js');
431
434
  description: 'A list beside the selected record, stacking on narrow screens.',
432
435
  metadata: {
433
436
  ...templateProvenance.defaultBlueprintTemplateProvenance,
434
- type: 'Workspace'
437
+ type: 'Workspace',
438
+ category: 'Foundation / Workspace'
435
439
  }
436
440
  };
437
441
  /** The form: fields, grouped, with the actions that close them. */ const formPageTemplate = {
@@ -484,7 +488,8 @@ var templateProvenance = require('../templateProvenance.js');
484
488
  displayName: 'Form',
485
489
  description: 'A grouped form with the field types an application actually uses.',
486
490
  metadata: {
487
- ...templateProvenance.defaultBlueprintTemplateProvenance
491
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
492
+ category: 'Foundation / Form'
488
493
  }
489
494
  };
490
495
  /** The empty state: what a list looks like before anything exists, designed rather than apologized for. */ const emptyTemplate = {
@@ -503,7 +508,8 @@ var templateProvenance = require('../templateProvenance.js');
503
508
  displayName: 'Empty state',
504
509
  description: 'The designed empty state for a list that has nothing in it yet.',
505
510
  metadata: {
506
- ...templateProvenance.defaultBlueprintTemplateProvenance
511
+ ...templateProvenance.defaultBlueprintTemplateProvenance,
512
+ category: 'Foundation / State'
507
513
  }
508
514
  };
509
515
  /** The five workspace templates. */ const workspaceTemplates = [