@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
@@ -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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"}
@@ -51,7 +51,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
51
51
  displayName: 'Documentation',
52
52
  description: 'Prose with a table of contents beside it.',
53
53
  metadata: {
54
- ...defaultBlueprintTemplateProvenance
54
+ ...defaultBlueprintTemplateProvenance,
55
+ category: 'Foundation / Detail'
55
56
  }
56
57
  };
57
58
  /** Profile settings: the signed-in user editing their own account. */ const profileSettingsTemplate = {
@@ -109,7 +110,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
109
110
  displayName: 'Profile settings',
110
111
  description: 'The signed-in user editing their own name, photo, password and notifications.',
111
112
  metadata: {
112
- ...defaultBlueprintTemplateProvenance
113
+ ...defaultBlueprintTemplateProvenance,
114
+ category: 'Foundation / Form'
113
115
  }
114
116
  };
115
117
  /** User management: administering everybody else. */ const userManagementTemplate = {
@@ -189,7 +191,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
189
191
  displayName: 'User management',
190
192
  description: 'The people table, with roles, status and an invitation action.',
191
193
  metadata: {
192
- ...defaultBlueprintTemplateProvenance
194
+ ...defaultBlueprintTemplateProvenance,
195
+ category: 'Foundation / List'
193
196
  }
194
197
  };
195
198
  /** Invoice: a printable document, which is a different shape from a screen. */ const invoiceTemplate = {
@@ -270,7 +273,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
270
273
  displayName: 'Invoice',
271
274
  description: 'A printable document: parties, line items and totals.',
272
275
  metadata: {
273
- ...defaultBlueprintTemplateProvenance
276
+ ...defaultBlueprintTemplateProvenance,
277
+ category: 'Foundation / Detail'
274
278
  }
275
279
  };
276
280
  /** Help: the answers, and a way to ask when they are not there. */ const helpTemplate = {
@@ -314,7 +318,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
314
318
  displayName: 'Help',
315
319
  description: 'Searchable answers with a route to a human.',
316
320
  metadata: {
317
- ...defaultBlueprintTemplateProvenance
321
+ ...defaultBlueprintTemplateProvenance,
322
+ category: 'Foundation / Detail'
318
323
  }
319
324
  };
320
325
  /** 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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"}
@@ -170,7 +170,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
170
170
  displayName: 'Dashboard',
171
171
  description: 'Four stat cards over two columns of widgets - the composition every template line opens with.',
172
172
  metadata: {
173
- ...sakaiCompositionProvenance
173
+ ...sakaiCompositionProvenance,
174
+ category: 'Foundation / Dashboard'
174
175
  }
175
176
  };
176
177
  /** The list: a filter toolbar, a real table, and the row actions a list needs. */ const crudListTemplate = {
@@ -265,7 +266,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
265
266
  displayName: 'List',
266
267
  description: 'A searchable table with a header, primary action and row data.',
267
268
  metadata: {
268
- ...defaultBlueprintTemplateProvenance
269
+ ...defaultBlueprintTemplateProvenance,
270
+ category: 'Foundation / List'
269
271
  }
270
272
  };
271
273
  /** The detail: a summary panel beside the record's own sections. */ const detailViewTemplate = {
@@ -319,7 +321,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
319
321
  displayName: 'Detail',
320
322
  description: 'One record: a header with actions, its sections, and a summary panel.',
321
323
  metadata: {
322
- ...defaultBlueprintTemplateProvenance
324
+ ...defaultBlueprintTemplateProvenance,
325
+ category: 'Foundation / Detail'
323
326
  }
324
327
  };
325
328
  /**
@@ -429,7 +432,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
429
432
  description: 'A list beside the selected record, stacking on narrow screens.',
430
433
  metadata: {
431
434
  ...defaultBlueprintTemplateProvenance,
432
- type: 'Workspace'
435
+ type: 'Workspace',
436
+ category: 'Foundation / Workspace'
433
437
  }
434
438
  };
435
439
  /** The form: fields, grouped, with the actions that close them. */ const formPageTemplate = {
@@ -482,7 +486,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
482
486
  displayName: 'Form',
483
487
  description: 'A grouped form with the field types an application actually uses.',
484
488
  metadata: {
485
- ...defaultBlueprintTemplateProvenance
489
+ ...defaultBlueprintTemplateProvenance,
490
+ category: 'Foundation / Form'
486
491
  }
487
492
  };
488
493
  /** The empty state: what a list looks like before anything exists, designed rather than apologized for. */ const emptyTemplate = {
@@ -501,7 +506,8 @@ import { sakaiCompositionProvenance, defaultBlueprintTemplateProvenance } from '
501
506
  displayName: 'Empty state',
502
507
  description: 'The designed empty state for a list that has nothing in it yet.',
503
508
  metadata: {
504
- ...defaultBlueprintTemplateProvenance
509
+ ...defaultBlueprintTemplateProvenance,
510
+ category: 'Foundation / State'
505
511
  }
506
512
  };
507
513
  /** The five workspace templates. */ const workspaceTemplates = [
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceTemplates.js","sources":["../../../gallery/workspaceTemplates.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, WidthSizeClass } from '@cratis/scene.model';\nimport { SlotName, column, grid, slotLeaf } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { emptyState, field, formActions, pageHeader, statCard, table, widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance, sakaiCompositionProvenance } from '../templateProvenance';\n\n/**\n * The six workhorse shapes inside an application shell: a dashboard, a list, master/detail, a detail, a\n * form and the designed empty state.\n *\n * Every one fits the layout's `content` slot, and every one carries realistic seeded content rather than\n * placeholder text. A gallery whose dashboard shows four boxes labeled \"Card\" proves the renderer runs; a\n * gallery whose dashboard shows revenue, orders, customers and a real table proves the blueprint is worth\n * starting an application from.\n */\n\n/**\n * The dashboard: four figures across the top, then two columns of larger widgets.\n *\n * This is Sakai's composition, and the reason to copy it is that it is the arrangement people already read\n * fluently - the eye takes the row of numbers first and then settles into the detail.\n *\n * Its own arrangement collapses the two columns into one at a compact width, because a two-column widget\n * grid on a phone is two columns of unreadable slivers.\n */\nexport const dashboardTemplate: ScreenTemplate = {\n name: 'Dashboard',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Stats }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.Secondary }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Stats), grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16)]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Stats), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.Secondary)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Stats]: [\n statCard('stat-revenue', 'Revenue', '$284,120', '+12.4% this month', 'pi pi-dollar'),\n statCard('stat-orders', 'Orders', '1,842', '+3.1% this month', 'pi pi-shopping-cart'),\n statCard('stat-customers', 'Customers', '9,410', '+128 new', 'pi pi-users'),\n statCard('stat-open', 'Open tickets', '17', '-4 since Monday', 'pi pi-inbox'),\n ],\n [TemplateSlotName.Primary]: [\n widget('widget-revenue', 'Revenue over time', [\n table(\n 'revenue-table',\n [\n { field: 'month', header: 'Month' },\n { field: 'revenue', header: 'Revenue' },\n { field: 'change', header: 'Change' },\n ],\n [\n { month: 'March', revenue: '$284,120', change: '+12.4%' },\n { month: 'February', revenue: '$252,780', change: '+4.1%' },\n { month: 'January', revenue: '$242,830', change: '-1.8%' },\n { month: 'December', revenue: '$247,290', change: '+9.6%' },\n ],\n ),\n ]),\n widget('widget-orders', 'Recent orders', [\n table(\n 'orders-table',\n [\n { field: 'reference', header: 'Reference' },\n { field: 'customer', header: 'Customer' },\n { field: 'total', header: 'Total' },\n { field: 'status', header: 'Status' },\n ],\n [\n { reference: 'ORD-4192', customer: 'Northwind Traders', total: '$1,240.00', status: 'Shipped' },\n { reference: 'ORD-4191', customer: 'Contoso Ltd', total: '$318.50', status: 'Packing' },\n { reference: 'ORD-4188', customer: 'Fabrikam', total: '$2,980.00', status: 'Awaiting payment' },\n { reference: 'ORD-4184', customer: 'Adventure Works', total: '$76.20', status: 'Shipped' },\n ],\n ),\n ]),\n ],\n [TemplateSlotName.Secondary]: [\n widget('widget-activity', 'Activity', [externalComponent('activity-timeline', 'timeline', { align: 'left' })]),\n widget('widget-capacity', 'Warehouse capacity', [externalComponent('capacity-bar', 'progressBar', { value: 68, label: 'Warehouse capacity' })]),\n ],\n },\n displayName: 'Dashboard',\n description: 'Four stat cards over two columns of widgets - the composition every template line opens with.',\n metadata: { ...sakaiCompositionProvenance },\n};\n\n/** The list: a filter toolbar, a real table, and the row actions a list needs. */\nexport const crudListTemplate: ScreenTemplate = {\n name: 'CrudList',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n pageHeader('crud-header', 'Products', '412 products across 9 categories', [\n button('crud-new', 'New product', { severity: 'primary', icon: 'pi pi-plus' }),\n button('crud-import', 'Import', { severity: 'secondary', icon: 'pi pi-upload' }),\n ]),\n externalComponent('crud-search', 'inputText', { placeholder: 'Search products', ariaLabel: 'Search products' }),\n ],\n [TemplateSlotName.Body]: [\n table(\n 'products-table',\n [\n { field: 'code', header: 'Code' },\n { field: 'name', header: 'Name' },\n { field: 'category', header: 'Category' },\n { field: 'price', header: 'Price' },\n { field: 'stock', header: 'In stock' },\n ],\n [\n { code: 'P-1001', name: 'Bamboo Watch', category: 'Accessories', price: '$65.00', stock: 24 },\n { code: 'P-1002', name: 'Black Watch', category: 'Accessories', price: '$72.00', stock: 61 },\n { code: 'P-1003', name: 'Blue Band', category: 'Fitness', price: '$79.00', stock: 2 },\n { code: 'P-1004', name: 'Blue T-Shirt', category: 'Clothing', price: '$29.00', stock: 25 },\n { code: 'P-1005', name: 'Bracelet', category: 'Accessories', price: '$15.00', stock: 73 },\n ],\n ),\n ],\n },\n displayName: 'List',\n description: 'A searchable table with a header, primary action and row data.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The detail: a summary panel beside the record's own sections. */\nexport const detailViewTemplate: ScreenTemplate = {\n name: 'DetailView',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [\n pageHeader('detail-header', 'Bamboo Watch', 'P-1001 · Accessories', [\n button('detail-edit', 'Edit', { severity: 'primary', icon: 'pi pi-pencil' }),\n button('detail-archive', 'Archive', { severity: 'secondary', icon: 'pi pi-inbox' }),\n ]),\n ],\n [TemplateSlotName.Body]: [\n widget('detail-description', 'Description', [\n text('detail-description-text', 'A bamboo-cased watch with a sapphire face and a recycled steel strap.'),\n ]),\n widget('detail-history', 'Price history', [externalComponent('detail-history-timeline', 'timeline', { align: 'left' })]),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('detail-summary', 'Summary', [\n text('detail-stock', 'In stock: 24'),\n text('detail-reserved', 'Reserved: 3'),\n externalComponent('detail-status', 'tag', { value: 'Active', severity: 'success' }),\n ]),\n ],\n },\n displayName: 'Detail',\n description: 'One record: a header with actions, its sections, and a summary panel.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/**\n * Master/detail: the list and the selected record side by side, so working through records does not mean\n * leaving the list. The detail region is an outlet that accepts detail screens, which is what lets a row's\n * destination open a full detail screen in place.\n *\n * At a compact width the two stack, list first, because side-by-side on a phone is two unreadable halves.\n */\nexport const masterDetailTemplate: ScreenTemplate = {\n name: 'MasterDetail',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.SidePanel }],\n outlets: [{ name: 'master-detail.detail', description: 'The selected record.', accepts: ['Detail'] }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Header), grid([slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.SidePanel)], 2, 16)], 16),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Header), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.SidePanel)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [pageHeader('master-header', 'Customers', '1,204 customers, 38 with overdue invoices')],\n [TemplateSlotName.Primary]: [\n table(\n 'customers-table',\n [\n { field: 'name', header: 'Customer' },\n { field: 'city', header: 'City' },\n { field: 'balance', header: 'Balance' },\n ],\n [\n { name: 'Northwind Traders', city: 'Seattle', balance: '$4,200.00' },\n { name: 'Contoso Ltd', city: 'Oslo', balance: '$0.00' },\n { name: 'Fabrikam', city: 'Lyon', balance: '$12,940.50' },\n { name: 'Adventure Works', city: 'Denver', balance: '$318.20' },\n ],\n 'No customers match the search',\n ),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('customer-detail', 'Northwind Traders', [\n text('customer-contact', 'Contact: Amelia Nyquist'),\n text('customer-terms', 'Payment terms: 30 days'),\n externalComponent('customer-status', 'tag', { value: 'Overdue', severity: 'warning' }),\n button('customer-open', 'Open customer', { severity: 'primary' }),\n ]),\n ],\n },\n displayName: 'Master/detail',\n description: 'A list beside the selected record, stacking on narrow screens.',\n metadata: { ...defaultBlueprintTemplateProvenance, type: 'Workspace' },\n};\n\n/** The form: fields, grouped, with the actions that close them. */\nexport const formPageTemplate: ScreenTemplate = {\n name: 'FormPage',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('form-header', 'New product', 'Everything marked with an asterisk is required')],\n [TemplateSlotName.Body]: [\n card('form-card', [\n field('form-name', 'Name', 'inputText', { placeholder: 'Bamboo Watch' }),\n field('form-code', 'Code', 'inputText', { placeholder: 'P-1001' }),\n field('form-category', 'Category', 'dropdown', { options: ['Accessories', 'Clothing', 'Fitness'] }),\n field('form-price', 'Price', 'inputNumber', { mode: 'currency', currency: 'USD' }),\n field('form-available', 'Available from', 'calendar', {}),\n field('form-notes', 'Notes', 'inputTextarea', { rows: 4 }),\n ]),\n ],\n [TemplateSlotName.Actions]: [formActions('form-actions', 'Create product')],\n },\n displayName: 'Form',\n description: 'A grouped form with the field types an application actually uses.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The empty state: what a list looks like before anything exists, designed rather than apologized for. */\nexport const emptyTemplate: ScreenTemplate = {\n name: 'Empty',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n emptyState('empty-state', 'No products yet', 'Products you create will show up here, with their stock and pricing.', 'Create the first product'),\n ],\n },\n displayName: 'Empty state',\n description: 'The designed empty state for a list that has nothing in it yet.',\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n\n/** The five workspace templates. */\nexport const workspaceTemplates: ScreenTemplate[] = [dashboardTemplate, crudListTemplate, masterDetailTemplate, detailViewTemplate, formPageTemplate, emptyTemplate];\n"],"names":["dashboardTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Stats","Primary","Secondary","arrangement","root","column","slotLeaf","grid","span","overrides","width","WidthSizeClass","Compact","content","statCard","widget","table","field","header","month","revenue","change","reference","customer","total","status","externalComponent","align","value","label","displayName","description","metadata","sakaiCompositionProvenance","crudListTemplate","Toolbar","Body","pageHeader","button","severity","icon","placeholder","ariaLabel","code","category","price","stock","defaultBlueprintTemplateProvenance","detailViewTemplate","Header","SidePanel","text","masterDetailTemplate","outlets","accepts","city","balance","type","formPageTemplate","Actions","card","options","mode","currency","rows","formActions","emptyTemplate","emptyState","workspaceTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"workspaceTemplates.js","sources":["../../../gallery/workspaceTemplates.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, WidthSizeClass } from '@cratis/scene.model';\nimport { SlotName, column, grid, slotLeaf } from '../layouts';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, text } from './elements';\nimport { emptyState, field, formActions, pageHeader, statCard, table, widget } from './widgets';\nimport { defaultBlueprintTemplateProvenance, sakaiCompositionProvenance } from '../templateProvenance';\n\n/**\n * The six workhorse shapes inside an application shell: a dashboard, a list, master/detail, a detail, a\n * form and the designed empty state.\n *\n * Every one fits the layout's `content` slot, and every one carries realistic seeded content rather than\n * placeholder text. A gallery whose dashboard shows four boxes labeled \"Card\" proves the renderer runs; a\n * gallery whose dashboard shows revenue, orders, customers and a real table proves the blueprint is worth\n * starting an application from.\n */\n\n/**\n * The dashboard: four figures across the top, then two columns of larger widgets.\n *\n * This is Sakai's composition, and the reason to copy it is that it is the arrangement people already read\n * fluently - the eye takes the row of numbers first and then settles into the detail.\n *\n * Its own arrangement collapses the two columns into one at a compact width, because a two-column widget\n * grid on a phone is two columns of unreadable slivers.\n */\nexport const dashboardTemplate: ScreenTemplate = {\n name: 'Dashboard',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Stats }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.Secondary }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Stats), grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16)]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Stats), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.Secondary)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Stats]: [\n statCard('stat-revenue', 'Revenue', '$284,120', '+12.4% this month', 'pi pi-dollar'),\n statCard('stat-orders', 'Orders', '1,842', '+3.1% this month', 'pi pi-shopping-cart'),\n statCard('stat-customers', 'Customers', '9,410', '+128 new', 'pi pi-users'),\n statCard('stat-open', 'Open tickets', '17', '-4 since Monday', 'pi pi-inbox'),\n ],\n [TemplateSlotName.Primary]: [\n widget('widget-revenue', 'Revenue over time', [\n table(\n 'revenue-table',\n [\n { field: 'month', header: 'Month' },\n { field: 'revenue', header: 'Revenue' },\n { field: 'change', header: 'Change' },\n ],\n [\n { month: 'March', revenue: '$284,120', change: '+12.4%' },\n { month: 'February', revenue: '$252,780', change: '+4.1%' },\n { month: 'January', revenue: '$242,830', change: '-1.8%' },\n { month: 'December', revenue: '$247,290', change: '+9.6%' },\n ],\n ),\n ]),\n widget('widget-orders', 'Recent orders', [\n table(\n 'orders-table',\n [\n { field: 'reference', header: 'Reference' },\n { field: 'customer', header: 'Customer' },\n { field: 'total', header: 'Total' },\n { field: 'status', header: 'Status' },\n ],\n [\n { reference: 'ORD-4192', customer: 'Northwind Traders', total: '$1,240.00', status: 'Shipped' },\n { reference: 'ORD-4191', customer: 'Contoso Ltd', total: '$318.50', status: 'Packing' },\n { reference: 'ORD-4188', customer: 'Fabrikam', total: '$2,980.00', status: 'Awaiting payment' },\n { reference: 'ORD-4184', customer: 'Adventure Works', total: '$76.20', status: 'Shipped' },\n ],\n ),\n ]),\n ],\n [TemplateSlotName.Secondary]: [\n widget('widget-activity', 'Activity', [externalComponent('activity-timeline', 'timeline', { align: 'left' })]),\n widget('widget-capacity', 'Warehouse capacity', [externalComponent('capacity-bar', 'progressBar', { value: 68, label: 'Warehouse capacity' })]),\n ],\n },\n displayName: 'Dashboard',\n description: 'Four stat cards over two columns of widgets - the composition every template line opens with.',\n metadata: { ...sakaiCompositionProvenance, category: 'Foundation / Dashboard' },\n};\n\n/** The list: a filter toolbar, a real table, and the row actions a list needs. */\nexport const crudListTemplate: ScreenTemplate = {\n name: 'CrudList',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Toolbar }, { name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Toolbar]: [\n pageHeader('crud-header', 'Products', '412 products across 9 categories', [\n button('crud-new', 'New product', { severity: 'primary', icon: 'pi pi-plus' }),\n button('crud-import', 'Import', { severity: 'secondary', icon: 'pi pi-upload' }),\n ]),\n externalComponent('crud-search', 'inputText', { placeholder: 'Search products', ariaLabel: 'Search products' }),\n ],\n [TemplateSlotName.Body]: [\n table(\n 'products-table',\n [\n { field: 'code', header: 'Code' },\n { field: 'name', header: 'Name' },\n { field: 'category', header: 'Category' },\n { field: 'price', header: 'Price' },\n { field: 'stock', header: 'In stock' },\n ],\n [\n { code: 'P-1001', name: 'Bamboo Watch', category: 'Accessories', price: '$65.00', stock: 24 },\n { code: 'P-1002', name: 'Black Watch', category: 'Accessories', price: '$72.00', stock: 61 },\n { code: 'P-1003', name: 'Blue Band', category: 'Fitness', price: '$79.00', stock: 2 },\n { code: 'P-1004', name: 'Blue T-Shirt', category: 'Clothing', price: '$29.00', stock: 25 },\n { code: 'P-1005', name: 'Bracelet', category: 'Accessories', price: '$15.00', stock: 73 },\n ],\n ),\n ],\n },\n displayName: 'List',\n description: 'A searchable table with a header, primary action and row data.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / List' },\n};\n\n/** The detail: a summary panel beside the record's own sections. */\nexport const detailViewTemplate: ScreenTemplate = {\n name: 'DetailView',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }],\n content: {\n [TemplateSlotName.Header]: [\n pageHeader('detail-header', 'Bamboo Watch', 'P-1001 · Accessories', [\n button('detail-edit', 'Edit', { severity: 'primary', icon: 'pi pi-pencil' }),\n button('detail-archive', 'Archive', { severity: 'secondary', icon: 'pi pi-inbox' }),\n ]),\n ],\n [TemplateSlotName.Body]: [\n widget('detail-description', 'Description', [\n text('detail-description-text', 'A bamboo-cased watch with a sapphire face and a recycled steel strap.'),\n ]),\n widget('detail-history', 'Price history', [externalComponent('detail-history-timeline', 'timeline', { align: 'left' })]),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('detail-summary', 'Summary', [\n text('detail-stock', 'In stock: 24'),\n text('detail-reserved', 'Reserved: 3'),\n externalComponent('detail-status', 'tag', { value: 'Active', severity: 'success' }),\n ]),\n ],\n },\n displayName: 'Detail',\n description: 'One record: a header with actions, its sections, and a summary panel.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Detail' },\n};\n\n/**\n * Master/detail: the list and the selected record side by side, so working through records does not mean\n * leaving the list. The detail region is an outlet that accepts detail screens, which is what lets a row's\n * destination open a full detail screen in place.\n *\n * At a compact width the two stack, list first, because side-by-side on a phone is two unreadable halves.\n */\nexport const masterDetailTemplate: ScreenTemplate = {\n name: 'MasterDetail',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.SidePanel }],\n outlets: [{ name: 'master-detail.detail', description: 'The selected record.', accepts: ['Detail'] }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Header), grid([slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.SidePanel)], 2, 16)], 16),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Header), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.SidePanel)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [pageHeader('master-header', 'Customers', '1,204 customers, 38 with overdue invoices')],\n [TemplateSlotName.Primary]: [\n table(\n 'customers-table',\n [\n { field: 'name', header: 'Customer' },\n { field: 'city', header: 'City' },\n { field: 'balance', header: 'Balance' },\n ],\n [\n { name: 'Northwind Traders', city: 'Seattle', balance: '$4,200.00' },\n { name: 'Contoso Ltd', city: 'Oslo', balance: '$0.00' },\n { name: 'Fabrikam', city: 'Lyon', balance: '$12,940.50' },\n { name: 'Adventure Works', city: 'Denver', balance: '$318.20' },\n ],\n 'No customers match the search',\n ),\n ],\n [TemplateSlotName.SidePanel]: [\n widget('customer-detail', 'Northwind Traders', [\n text('customer-contact', 'Contact: Amelia Nyquist'),\n text('customer-terms', 'Payment terms: 30 days'),\n externalComponent('customer-status', 'tag', { value: 'Overdue', severity: 'warning' }),\n button('customer-open', 'Open customer', { severity: 'primary' }),\n ]),\n ],\n },\n displayName: 'Master/detail',\n description: 'A list beside the selected record, stacking on narrow screens.',\n metadata: { ...defaultBlueprintTemplateProvenance, type: 'Workspace', category: 'Foundation / Workspace' },\n};\n\n/** The form: fields, grouped, with the actions that close them. */\nexport const formPageTemplate: ScreenTemplate = {\n name: 'FormPage',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [pageHeader('form-header', 'New product', 'Everything marked with an asterisk is required')],\n [TemplateSlotName.Body]: [\n card('form-card', [\n field('form-name', 'Name', 'inputText', { placeholder: 'Bamboo Watch' }),\n field('form-code', 'Code', 'inputText', { placeholder: 'P-1001' }),\n field('form-category', 'Category', 'dropdown', { options: ['Accessories', 'Clothing', 'Fitness'] }),\n field('form-price', 'Price', 'inputNumber', { mode: 'currency', currency: 'USD' }),\n field('form-available', 'Available from', 'calendar', {}),\n field('form-notes', 'Notes', 'inputTextarea', { rows: 4 }),\n ]),\n ],\n [TemplateSlotName.Actions]: [formActions('form-actions', 'Create product')],\n },\n displayName: 'Form',\n description: 'A grouped form with the field types an application actually uses.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Form' },\n};\n\n/** The empty state: what a list looks like before anything exists, designed rather than apologized for. */\nexport const emptyTemplate: ScreenTemplate = {\n name: 'Empty',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Body }],\n content: {\n [TemplateSlotName.Body]: [\n emptyState('empty-state', 'No products yet', 'Products you create will show up here, with their stock and pricing.', 'Create the first product'),\n ],\n },\n displayName: 'Empty state',\n description: 'The designed empty state for a list that has nothing in it yet.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / State' },\n};\n\n/** The five workspace templates. */\nexport const workspaceTemplates: ScreenTemplate[] = [dashboardTemplate, crudListTemplate, masterDetailTemplate, detailViewTemplate, formPageTemplate, emptyTemplate];\n"],"names":["dashboardTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Stats","Primary","Secondary","arrangement","root","column","slotLeaf","grid","span","overrides","width","WidthSizeClass","Compact","content","statCard","widget","table","field","header","month","revenue","change","reference","customer","total","status","externalComponent","align","value","label","displayName","description","metadata","sakaiCompositionProvenance","category","crudListTemplate","Toolbar","Body","pageHeader","button","severity","icon","placeholder","ariaLabel","code","price","stock","defaultBlueprintTemplateProvenance","detailViewTemplate","Header","SidePanel","text","masterDetailTemplate","outlets","accepts","city","balance","type","formPageTemplate","Actions","card","options","mode","currency","rows","formActions","emptyTemplate","emptyState","workspaceTemplates"],"mappings":"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"}
@@ -149,7 +149,8 @@ import { sakaiCompositionProvenance } from '../templateProvenance.js';
149
149
  ],
150
150
  arrangement: appShellArrangement,
151
151
  metadata: {
152
- ...sakaiCompositionProvenance
152
+ ...sakaiCompositionProvenance,
153
+ category: 'Foundation / Shell'
153
154
  }
154
155
  };
155
156
 
@@ -1 +1 @@
1
- {"version":3,"file":"appShell.js","sources":["../../../layouts/appShell.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 { FlowArrangement, HeightSizeClass, Layout, WidthSizeClass } from '@cratis/scene.model';\nimport { LayoutName } from './LayoutName';\nimport { SlotName } from './SlotName';\nimport { column, row, slotLeaf } from './flowBuilders';\nimport { sakaiCompositionProvenance } from '../templateProvenance';\n\n/**\n * The tree at a regular width and height: a topbar across the top, the sidebar column beside the main\n * column, an optional right panel down the edge, and the configurator floating over all of it.\n */\nexport const appShellRegularRoot = column([\n slotLeaf(SlotName.Topbar),\n row(\n [\n column([slotLeaf(SlotName.Sidebar), slotLeaf(SlotName.Menu, { grow: 1 })]),\n column([slotLeaf(SlotName.Breadcrumb), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.Footer)], 0, { grow: 1 }),\n slotLeaf(SlotName.RightPanel),\n ],\n 0,\n { grow: 1 },\n ),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree at a compact width: the sidebar and the right panel leave the flow entirely.\n *\n * They leave rather than shrink because there is no width at which an 18rem panel and a 20rem panel both\n * fit beside content on a phone. The sidebar is still rendered - off-canvas, over the content, behind the\n * mask - but it no longer *occupies* anything, and that is a fact about the arrangement, not about CSS.\n */\nexport const appShellCompactWidthRoot = column([\n slotLeaf(SlotName.Topbar),\n column([slotLeaf(SlotName.Breadcrumb), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.Footer)], 0, { grow: 1 }),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree at a compact height: the breadcrumb and the footer go.\n *\n * A landscape phone has room across but almost none down, and two horizontal strips of chrome eat most of\n * what is left. Dropping them is the height axis earning its place in the size-class matrix - width alone\n * cannot express it.\n */\nexport const appShellCompactHeightRoot = column([\n slotLeaf(SlotName.Topbar),\n row(\n [column([slotLeaf(SlotName.Sidebar), slotLeaf(SlotName.Menu, { grow: 1 })]), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.RightPanel)],\n 0,\n { grow: 1 },\n ),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree when both axes are compact - a phone in landscape: nothing but the topbar, the content and the\n * configurator.\n *\n * This override exists to be *more specific* than the two single-axis ones. `evaluateFlowArrangement`\n * scores an override by how many axes it targets, so without this one a landscape phone would pick\n * whichever single-axis override was declared last and keep a footer it has no room for.\n */\nexport const appShellCompactRoot = column([\n slotLeaf(SlotName.Topbar),\n slotLeaf(SlotName.Content, { grow: 1 }),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/** The arrangement of the {@link appShellLayout}'s own slots, with one override per size-class combination that changes it. */\nexport const appShellArrangement: FlowArrangement = {\n root: appShellRegularRoot,\n overrides: [\n { width: WidthSizeClass.Compact, root: appShellCompactWidthRoot },\n { height: HeightSizeClass.Compact, root: appShellCompactHeightRoot },\n { width: WidthSizeClass.Compact, height: HeightSizeClass.Compact, root: appShellCompactRoot },\n ],\n};\n\n/**\n * The application shell layout.\n *\n * This is the *application-level* structure - the base navigational look an application picks once and\n * every page then lives inside. The regions are the ones PrimeTek's template line settled on: Sakai\n * establishes topbar, sidebar, menu, content and footer, and the premium templates add the breadcrumb and\n * the right panel. Both sets are here, because a layout package covering only the free template's regions\n * forces a fork on anyone who wants the others.\n *\n * The slots carry no arrangement of their own: how a screen's content is arranged *inside* a slot is that\n * page template's business, and a layout that dictated it would stop being a shell.\n */\nexport const appShellLayout: Layout = {\n name: LayoutName.AppShell,\n slots: [\n { name: SlotName.Topbar },\n { name: SlotName.Sidebar },\n { name: SlotName.Menu },\n { name: SlotName.Breadcrumb },\n { name: SlotName.Content },\n { name: SlotName.Footer },\n { name: SlotName.RightPanel },\n { name: SlotName.ConfigPanel },\n ],\n arrangement: appShellArrangement,\n metadata: { ...sakaiCompositionProvenance },\n};\n"],"names":["appShellRegularRoot","column","slotLeaf","SlotName","Topbar","row","Sidebar","Menu","grow","Breadcrumb","Content","Footer","RightPanel","ConfigPanel","appShellCompactWidthRoot","appShellCompactHeightRoot","appShellCompactRoot","appShellArrangement","root","overrides","width","WidthSizeClass","Compact","height","HeightSizeClass","appShellLayout","name","LayoutName","AppShell","slots","arrangement","metadata","sakaiCompositionProvenance"],"mappings":"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"}
1
+ {"version":3,"file":"appShell.js","sources":["../../../layouts/appShell.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 { FlowArrangement, HeightSizeClass, Layout, WidthSizeClass } from '@cratis/scene.model';\nimport { LayoutName } from './LayoutName';\nimport { SlotName } from './SlotName';\nimport { column, row, slotLeaf } from './flowBuilders';\nimport { sakaiCompositionProvenance } from '../templateProvenance';\n\n/**\n * The tree at a regular width and height: a topbar across the top, the sidebar column beside the main\n * column, an optional right panel down the edge, and the configurator floating over all of it.\n */\nexport const appShellRegularRoot = column([\n slotLeaf(SlotName.Topbar),\n row(\n [\n column([slotLeaf(SlotName.Sidebar), slotLeaf(SlotName.Menu, { grow: 1 })]),\n column([slotLeaf(SlotName.Breadcrumb), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.Footer)], 0, { grow: 1 }),\n slotLeaf(SlotName.RightPanel),\n ],\n 0,\n { grow: 1 },\n ),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree at a compact width: the sidebar and the right panel leave the flow entirely.\n *\n * They leave rather than shrink because there is no width at which an 18rem panel and a 20rem panel both\n * fit beside content on a phone. The sidebar is still rendered - off-canvas, over the content, behind the\n * mask - but it no longer *occupies* anything, and that is a fact about the arrangement, not about CSS.\n */\nexport const appShellCompactWidthRoot = column([\n slotLeaf(SlotName.Topbar),\n column([slotLeaf(SlotName.Breadcrumb), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.Footer)], 0, { grow: 1 }),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree at a compact height: the breadcrumb and the footer go.\n *\n * A landscape phone has room across but almost none down, and two horizontal strips of chrome eat most of\n * what is left. Dropping them is the height axis earning its place in the size-class matrix - width alone\n * cannot express it.\n */\nexport const appShellCompactHeightRoot = column([\n slotLeaf(SlotName.Topbar),\n row(\n [column([slotLeaf(SlotName.Sidebar), slotLeaf(SlotName.Menu, { grow: 1 })]), slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.RightPanel)],\n 0,\n { grow: 1 },\n ),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/**\n * The tree when both axes are compact - a phone in landscape: nothing but the topbar, the content and the\n * configurator.\n *\n * This override exists to be *more specific* than the two single-axis ones. `evaluateFlowArrangement`\n * scores an override by how many axes it targets, so without this one a landscape phone would pick\n * whichever single-axis override was declared last and keep a footer it has no room for.\n */\nexport const appShellCompactRoot = column([\n slotLeaf(SlotName.Topbar),\n slotLeaf(SlotName.Content, { grow: 1 }),\n slotLeaf(SlotName.ConfigPanel),\n]);\n\n/** The arrangement of the {@link appShellLayout}'s own slots, with one override per size-class combination that changes it. */\nexport const appShellArrangement: FlowArrangement = {\n root: appShellRegularRoot,\n overrides: [\n { width: WidthSizeClass.Compact, root: appShellCompactWidthRoot },\n { height: HeightSizeClass.Compact, root: appShellCompactHeightRoot },\n { width: WidthSizeClass.Compact, height: HeightSizeClass.Compact, root: appShellCompactRoot },\n ],\n};\n\n/**\n * The application shell layout.\n *\n * This is the *application-level* structure - the base navigational look an application picks once and\n * every page then lives inside. The regions are the ones PrimeTek's template line settled on: Sakai\n * establishes topbar, sidebar, menu, content and footer, and the premium templates add the breadcrumb and\n * the right panel. Both sets are here, because a layout package covering only the free template's regions\n * forces a fork on anyone who wants the others.\n *\n * The slots carry no arrangement of their own: how a screen's content is arranged *inside* a slot is that\n * page template's business, and a layout that dictated it would stop being a shell.\n */\nexport const appShellLayout: Layout = {\n name: LayoutName.AppShell,\n slots: [\n { name: SlotName.Topbar },\n { name: SlotName.Sidebar },\n { name: SlotName.Menu },\n { name: SlotName.Breadcrumb },\n { name: SlotName.Content },\n { name: SlotName.Footer },\n { name: SlotName.RightPanel },\n { name: SlotName.ConfigPanel },\n ],\n arrangement: appShellArrangement,\n metadata: { ...sakaiCompositionProvenance, category: 'Foundation / Shell' },\n};\n"],"names":["appShellRegularRoot","column","slotLeaf","SlotName","Topbar","row","Sidebar","Menu","grow","Breadcrumb","Content","Footer","RightPanel","ConfigPanel","appShellCompactWidthRoot","appShellCompactHeightRoot","appShellCompactRoot","appShellArrangement","root","overrides","width","WidthSizeClass","Compact","height","HeightSizeClass","appShellLayout","name","LayoutName","AppShell","slots","arrangement","metadata","sakaiCompositionProvenance","category"],"mappings":"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"}
@@ -69,7 +69,8 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
69
69
  ],
70
70
  arrangement: fullPageArrangement,
71
71
  metadata: {
72
- ...defaultBlueprintTemplateProvenance
72
+ ...defaultBlueprintTemplateProvenance,
73
+ category: 'Foundation / Shell'
73
74
  }
74
75
  };
75
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"fullPage.js","sources":["../../../layouts/fullPage.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 { FlowArrangement, Layout, WidthSizeClass } from '@cratis/scene.model';\nimport { LayoutName } from './LayoutName';\nimport { SlotName } from './SlotName';\nimport { column, row, slotLeaf } from './flowBuilders';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The tree at a regular width: the branding aside beside the content, with the configurator over both.\n *\n * The split is the shape every premium PrimeTek sign-in page uses - a colored branding half and a form\n * half - and it is the reason `aside` is a slot rather than something a screen paints inside `content`.\n */\nexport const fullPageRegularRoot = column([row([slotLeaf(SlotName.Aside), slotLeaf(SlotName.Content, { grow: 1 })], 0, { grow: 1 }), slotLeaf(SlotName.ConfigPanel)]);\n\n/**\n * The tree at a compact width: the branding aside leaves the flow.\n *\n * On a phone the aside would take 40% of the width from the only thing that matters on a sign-in screen,\n * which is the form. It drops out rather than stacking above it, because a sign-in form pushed below the\n * fold by decoration is the worst possible first screen.\n */\nexport const fullPageCompactWidthRoot = column([slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.ConfigPanel)]);\n\n/** The arrangement of the {@link fullPageLayout}'s own slots. */\nexport const fullPageArrangement: FlowArrangement = {\n root: fullPageRegularRoot,\n overrides: [{ width: WidthSizeClass.Compact, root: fullPageCompactWidthRoot }],\n};\n\n/**\n * The chrome-less layout.\n *\n * Sign-in, register, forgotten password, verification, lock, error, access-denied, not-found and landing\n * screens all use this rather than a stripped-down application shell, and that split is structural in\n * every PrimeTek template for a reason worth repeating: none of those screens has navigation state, a\n * sidebar to remember or a breadcrumb to place, so hanging them off the application shell would mean every\n * one of the eight modes needs an answer for a page with no menu.\n *\n * The configurator stays, because the sign-in page is very often the first page anyone sees and it still\n * has to honor the chosen theme.\n */\nexport const fullPageLayout: Layout = {\n name: LayoutName.FullPage,\n slots: [{ name: SlotName.Aside }, { name: SlotName.Content }, { name: SlotName.ConfigPanel }],\n arrangement: fullPageArrangement,\n metadata: { ...defaultBlueprintTemplateProvenance },\n};\n"],"names":["fullPageRegularRoot","column","row","slotLeaf","SlotName","Aside","Content","grow","ConfigPanel","fullPageCompactWidthRoot","fullPageArrangement","root","overrides","width","WidthSizeClass","Compact","fullPageLayout","name","LayoutName","FullPage","slots","arrangement","metadata","defaultBlueprintTemplateProvenance"],"mappings":";;;;;;AAAA;AACA;AAQA;;;;;IAMO,MAAMA,mBAAAA,GAAsBC,MAAAA,CAAO;IAACC,GAAAA,CAAI;AAACC,QAAAA,QAAAA,CAASC,SAASC,KAAK,CAAA;QAAGF,QAAAA,CAASC,QAAAA,CAASE,OAAO,EAAE;YAAEC,IAAAA,EAAM;AAAE,SAAA;AAAG,KAAA,EAAE,CAAA,EAAG;QAAEA,IAAAA,EAAM;AAAE,KAAA,CAAA;AAAIJ,IAAAA,QAAAA,CAASC,SAASI,WAAW;CAAE;AAEpK;;;;;;IAOO,MAAMC,wBAAAA,GAA2BR,MAAAA,CAAO;IAACE,QAAAA,CAASC,QAAAA,CAASE,OAAO,EAAE;QAAEC,IAAAA,EAAM;AAAE,KAAA,CAAA;AAAIJ,IAAAA,QAAAA,CAASC,SAASI,WAAW;CAAE;AAExH,kEACO,MAAME,mBAAAA,GAAuC;IAChDC,IAAAA,EAAMX,mBAAAA;IACNY,SAAAA,EAAW;AAAC,QAAA;AAAEC,YAAAA,KAAAA,EAAOC,eAAeC,OAAO;YAAEJ,IAAAA,EAAMF;AAAyB;AAAE;AAClF;AAEA;;;;;;;;;;;UAYaO,cAAAA,GAAyB;AAClCC,IAAAA,IAAAA,EAAMC,WAAWC,QAAQ;IACzBC,KAAAA,EAAO;AAAC,QAAA;AAAEH,YAAAA,IAAAA,EAAMb,SAASC;AAAM,SAAA;AAAG,QAAA;AAAEY,YAAAA,IAAAA,EAAMb,SAASE;AAAQ,SAAA;AAAG,QAAA;AAAEW,YAAAA,IAAAA,EAAMb,SAASI;AAAY;AAAE,KAAA;IAC7Fa,WAAAA,EAAaX,mBAAAA;IACbY,QAAAA,EAAU;AAAE,QAAA,GAAGC;AAAmC;AACtD;;"}
1
+ {"version":3,"file":"fullPage.js","sources":["../../../layouts/fullPage.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 { FlowArrangement, Layout, WidthSizeClass } from '@cratis/scene.model';\nimport { LayoutName } from './LayoutName';\nimport { SlotName } from './SlotName';\nimport { column, row, slotLeaf } from './flowBuilders';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The tree at a regular width: the branding aside beside the content, with the configurator over both.\n *\n * The split is the shape every premium PrimeTek sign-in page uses - a colored branding half and a form\n * half - and it is the reason `aside` is a slot rather than something a screen paints inside `content`.\n */\nexport const fullPageRegularRoot = column([row([slotLeaf(SlotName.Aside), slotLeaf(SlotName.Content, { grow: 1 })], 0, { grow: 1 }), slotLeaf(SlotName.ConfigPanel)]);\n\n/**\n * The tree at a compact width: the branding aside leaves the flow.\n *\n * On a phone the aside would take 40% of the width from the only thing that matters on a sign-in screen,\n * which is the form. It drops out rather than stacking above it, because a sign-in form pushed below the\n * fold by decoration is the worst possible first screen.\n */\nexport const fullPageCompactWidthRoot = column([slotLeaf(SlotName.Content, { grow: 1 }), slotLeaf(SlotName.ConfigPanel)]);\n\n/** The arrangement of the {@link fullPageLayout}'s own slots. */\nexport const fullPageArrangement: FlowArrangement = {\n root: fullPageRegularRoot,\n overrides: [{ width: WidthSizeClass.Compact, root: fullPageCompactWidthRoot }],\n};\n\n/**\n * The chrome-less layout.\n *\n * Sign-in, register, forgotten password, verification, lock, error, access-denied, not-found and landing\n * screens all use this rather than a stripped-down application shell, and that split is structural in\n * every PrimeTek template for a reason worth repeating: none of those screens has navigation state, a\n * sidebar to remember or a breadcrumb to place, so hanging them off the application shell would mean every\n * one of the eight modes needs an answer for a page with no menu.\n *\n * The configurator stays, because the sign-in page is very often the first page anyone sees and it still\n * has to honor the chosen theme.\n */\nexport const fullPageLayout: Layout = {\n name: LayoutName.FullPage,\n slots: [{ name: SlotName.Aside }, { name: SlotName.Content }, { name: SlotName.ConfigPanel }],\n arrangement: fullPageArrangement,\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Shell' },\n};\n"],"names":["fullPageRegularRoot","column","row","slotLeaf","SlotName","Aside","Content","grow","ConfigPanel","fullPageCompactWidthRoot","fullPageArrangement","root","overrides","width","WidthSizeClass","Compact","fullPageLayout","name","LayoutName","FullPage","slots","arrangement","metadata","defaultBlueprintTemplateProvenance","category"],"mappings":";;;;;;AAAA;AACA;AAQA;;;;;IAMO,MAAMA,mBAAAA,GAAsBC,MAAAA,CAAO;IAACC,GAAAA,CAAI;AAACC,QAAAA,QAAAA,CAASC,SAASC,KAAK,CAAA;QAAGF,QAAAA,CAASC,QAAAA,CAASE,OAAO,EAAE;YAAEC,IAAAA,EAAM;AAAE,SAAA;AAAG,KAAA,EAAE,CAAA,EAAG;QAAEA,IAAAA,EAAM;AAAE,KAAA,CAAA;AAAIJ,IAAAA,QAAAA,CAASC,SAASI,WAAW;CAAE;AAEpK;;;;;;IAOO,MAAMC,wBAAAA,GAA2BR,MAAAA,CAAO;IAACE,QAAAA,CAASC,QAAAA,CAASE,OAAO,EAAE;QAAEC,IAAAA,EAAM;AAAE,KAAA,CAAA;AAAIJ,IAAAA,QAAAA,CAASC,SAASI,WAAW;CAAE;AAExH,kEACO,MAAME,mBAAAA,GAAuC;IAChDC,IAAAA,EAAMX,mBAAAA;IACNY,SAAAA,EAAW;AAAC,QAAA;AAAEC,YAAAA,KAAAA,EAAOC,eAAeC,OAAO;YAAEJ,IAAAA,EAAMF;AAAyB;AAAE;AAClF;AAEA;;;;;;;;;;;UAYaO,cAAAA,GAAyB;AAClCC,IAAAA,IAAAA,EAAMC,WAAWC,QAAQ;IACzBC,KAAAA,EAAO;AAAC,QAAA;AAAEH,YAAAA,IAAAA,EAAMb,SAASC;AAAM,SAAA;AAAG,QAAA;AAAEY,YAAAA,IAAAA,EAAMb,SAASE;AAAQ,SAAA;AAAG,QAAA;AAAEW,YAAAA,IAAAA,EAAMb,SAASI;AAAY;AAAE,KAAA;IAC7Fa,WAAAA,EAAaX,mBAAAA;IACbY,QAAAA,EAAU;AAAE,QAAA,GAAGC,kCAAkC;QAAEC,QAAAA,EAAU;AAAqB;AACtF;;"}