@cratis/scene.blueprint.components 4.23.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.
- package/componentsBlueprint.ts +3 -1
- package/componentsBlueprintComponentMetadata.ts +10 -0
- package/dist/cjs/componentsBlueprint.js +4 -2
- package/dist/cjs/componentsBlueprint.js.map +1 -1
- package/dist/cjs/componentsBlueprintComponentMetadata.js +18 -0
- package/dist/cjs/componentsBlueprintComponentMetadata.js.map +1 -0
- package/dist/cjs/templates/commandTemplates.js +3 -0
- package/dist/cjs/templates/commandTemplates.js.map +1 -1
- package/dist/cjs/templates/dialogTemplates.js +6 -3
- package/dist/cjs/templates/dialogTemplates.js.map +1 -1
- package/dist/cjs/templates/editorTemplates.js +4 -2
- package/dist/cjs/templates/editorTemplates.js.map +1 -1
- package/dist/cjs/templates/listTemplates.js +9 -0
- package/dist/cjs/templates/listTemplates.js.map +1 -1
- package/dist/cjs/templates/nesting.js +6 -3
- package/dist/cjs/templates/nesting.js.map +1 -1
- package/dist/cjs/templates/workspaceTemplates.js +4 -2
- package/dist/cjs/templates/workspaceTemplates.js.map +1 -1
- package/dist/esm/componentsBlueprint.d.ts.map +1 -1
- package/dist/esm/componentsBlueprint.js +4 -2
- package/dist/esm/componentsBlueprint.js.map +1 -1
- package/dist/esm/componentsBlueprintComponentMetadata.d.ts +3 -0
- package/dist/esm/componentsBlueprintComponentMetadata.d.ts.map +1 -0
- package/dist/esm/componentsBlueprintComponentMetadata.js +16 -0
- package/dist/esm/componentsBlueprintComponentMetadata.js.map +1 -0
- package/dist/esm/templates/commandTemplates.d.ts.map +1 -1
- package/dist/esm/templates/commandTemplates.js +4 -1
- package/dist/esm/templates/commandTemplates.js.map +1 -1
- package/dist/esm/templates/dialogTemplates.js +6 -3
- package/dist/esm/templates/dialogTemplates.js.map +1 -1
- package/dist/esm/templates/editorTemplates.js +4 -2
- package/dist/esm/templates/editorTemplates.js.map +1 -1
- package/dist/esm/templates/listTemplates.d.ts.map +1 -1
- package/dist/esm/templates/listTemplates.js +10 -1
- package/dist/esm/templates/listTemplates.js.map +1 -1
- package/dist/esm/templates/nesting.js +6 -3
- package/dist/esm/templates/nesting.js.map +1 -1
- package/dist/esm/templates/workspaceTemplates.js +4 -2
- package/dist/esm/templates/workspaceTemplates.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/templates/commandTemplates.ts +2 -2
- package/templates/dialogTemplates.ts +3 -3
- package/templates/editorTemplates.ts +2 -2
- package/templates/listTemplates.ts +4 -4
- package/templates/nesting.ts +3 -3
- package/templates/workspaceTemplates.ts +2 -2
|
@@ -117,7 +117,8 @@ import { componentsBlueprintTemplateProvenance } from '../templateProvenance.js'
|
|
|
117
117
|
displayName: 'Master-detail page',
|
|
118
118
|
description: 'A queried list in the larger column with the selected record and its history in the narrower one.',
|
|
119
119
|
metadata: {
|
|
120
|
-
...componentsBlueprintTemplateProvenance
|
|
120
|
+
...componentsBlueprintTemplateProvenance,
|
|
121
|
+
category: 'Business / Master detail'
|
|
121
122
|
}
|
|
122
123
|
};
|
|
123
124
|
/**
|
|
@@ -203,7 +204,8 @@ import { componentsBlueprintTemplateProvenance } from '../templateProvenance.js'
|
|
|
203
204
|
displayName: 'Dashboard page',
|
|
204
205
|
description: 'A row of query-backed widgets over a wide and a narrow column, each bound to its own query.',
|
|
205
206
|
metadata: {
|
|
206
|
-
...componentsBlueprintTemplateProvenance
|
|
207
|
+
...componentsBlueprintTemplateProvenance,
|
|
208
|
+
category: 'Business / Dashboard'
|
|
207
209
|
}
|
|
208
210
|
};
|
|
209
211
|
/** The two workspace-shaped templates. */ const workspaceTemplates = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceTemplates.js","sources":["../../../templates/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, TemplateSlotName, column, grid, slotLeaf } from '@cratis/scene.blueprint.default';\nimport { ColumnDefinition } from './ColumnDefinition';\nimport { adjustmentColumns, dataTable, invoiceColumns, invoiceTableOptions, observableDataTable } from './dataElements';\nimport { objectContentEditor, timeMachine } from './editorElements';\nimport { arcPageHeader, page } from './elements';\nimport { SampleBindingName } from './SampleBindingName';\nimport { TableOptions } from './TableOptions';\nimport { componentsBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The two whole-workspace shapes: a master-detail arrangement, and a dashboard of data widgets.\n *\n * Both are arrangements of *several* bindings rather than one, which is what separates them from the list\n * templates. That is also what makes them the templates most worth shipping: an application can wire one\n * query without help, and gets a page that looks like every other page in the product only if something\n * has already decided how four of them sit together.\n */\n\n/** The columns of the revenue widget's query. */\nconst revenueColumns: ColumnDefinition[] = [\n { field: 'month', header: 'Month' },\n { field: 'invoiced', header: 'Invoiced' },\n { field: 'collected', header: 'Collected' },\n];\n\n/** The columns of the open-tickets widget's query. */\nconst ticketColumns: ColumnDefinition[] = [\n { field: 'reference', header: 'Reference' },\n { field: 'subject', header: 'Subject' },\n { field: 'age', header: 'Age' },\n];\n\n/** Table options for a widget-sized table, where there is no search box to filter across. */\nconst widgetTableOptions: TableOptions = { emptyMessage: 'Nothing to show yet', dataKey: 'id' };\n\n/**\n * Master and detail: the list in the larger column, the selected record in the narrower one.\n *\n * The difference from `DataListWithDetailPage` is real and worth having both. That template is a whole\n * `dataPage` - its own title bar, menubar and filtering - with a detail region added beside it. This one is\n * a plain `dataTable` next to a detail region, which is the right shape when the page's chrome comes from\n * the *feature* around it rather than from the list itself. Reaching for the wrong one shows up as a page\n * with two toolbars.\n *\n * The grid collapses to a single column at a compact width, because a master and a detail side by side on a\n * phone is the arrangement that made \"master-detail does not work on mobile\" a truism.\n */\nexport const masterDetailPageTemplate: ScreenTemplate = {\n name: 'MasterDetailPage',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.Secondary }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Header), grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16)]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Header), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.Secondary)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [\n arcPageHeader('master-detail-header', {\n title: 'Invoices',\n subtitle: 'Pick an invoice on the left to inspect it on the right',\n section: 'Billing',\n query: SampleBindingName.AllInvoices,\n }),\n ],\n [TemplateSlotName.Primary]: [\n page('master-detail-master', 'Invoices', [dataTable('master-detail-table', SampleBindingName.AllInvoices, invoiceTableOptions, invoiceColumns)]),\n ],\n [TemplateSlotName.Secondary]: [\n page('master-detail-detail', 'Selected invoice', [\n objectContentEditor('master-detail-document', false),\n timeMachine('master-detail-history'),\n ]),\n ],\n },\n displayName: 'Master-detail page',\n description: 'A queried list in the larger column with the selected record and its history in the narrower one.',\n metadata: { ...componentsBlueprintTemplateProvenance },\n};\n\n/**\n * A dashboard of data widgets - four queries arranged so the page reads in the order people already read it.\n *\n * The composition is the one every template line settles on: a row of figures across the top, then a wide\n * column and a narrow one. Copying it is the point rather than a shortcut - it is the arrangement the eye\n * already knows how to scan, and a dashboard that invents its own costs the reader a moment on every visit.\n *\n * What this blueprint adds is that every widget is a *query*, not a picture. Each one names a proxy a host\n * registers, so the dashboard is live the moment the application wires it, with nothing to replace.\n */\nexport const dashboardPageTemplate: ScreenTemplate = {\n name: 'DashboardPage',\n fitsSlot: SlotName.Content,\n slots: [\n { name: TemplateSlotName.Header },\n { name: TemplateSlotName.Stats },\n { name: TemplateSlotName.Primary },\n { name: TemplateSlotName.Secondary },\n ],\n arrangement: {\n root: column([\n slotLeaf(TemplateSlotName.Header),\n slotLeaf(TemplateSlotName.Stats),\n grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16),\n ]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column(\n [\n slotLeaf(TemplateSlotName.Header),\n slotLeaf(TemplateSlotName.Stats),\n slotLeaf(TemplateSlotName.Primary),\n slotLeaf(TemplateSlotName.Secondary),\n ],\n 16,\n ),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [\n arcPageHeader('dashboard-header', {\n title: 'Billing',\n subtitle: 'Four queries, arranged the way people already read a dashboard',\n section: 'Operations',\n query: SampleBindingName.RevenueByMonth,\n }),\n ],\n [TemplateSlotName.Stats]: [\n page('dashboard-stat-revenue', 'Revenue by month', [\n dataTable('dashboard-stat-revenue-table', SampleBindingName.RevenueByMonth, widgetTableOptions, revenueColumns),\n ]),\n page('dashboard-stat-flight', 'In flight', [\n observableDataTable('dashboard-stat-flight-table', SampleBindingName.InvoicesInFlight, widgetTableOptions, invoiceColumns),\n ]),\n page('dashboard-stat-tickets', 'Open tickets', [\n dataTable('dashboard-stat-tickets-table', SampleBindingName.OpenTickets, widgetTableOptions, ticketColumns),\n ]),\n ],\n [TemplateSlotName.Primary]: [\n page('dashboard-invoices', 'Recent invoices', [\n dataTable('dashboard-invoices-table', SampleBindingName.AllInvoices, invoiceTableOptions, invoiceColumns),\n ]),\n ],\n [TemplateSlotName.Secondary]: [\n page('dashboard-adjustments', 'Adjustments', [\n dataTable('dashboard-adjustments-table', SampleBindingName.AllAdjustments, widgetTableOptions, adjustmentColumns),\n ]),\n ],\n },\n displayName: 'Dashboard page',\n description: 'A row of query-backed widgets over a wide and a narrow column, each bound to its own query.',\n metadata: { ...componentsBlueprintTemplateProvenance },\n};\n\n/** The two workspace-shaped templates. */\nexport const workspaceTemplates: ScreenTemplate[] = [masterDetailPageTemplate, dashboardPageTemplate];\n"],"names":["revenueColumns","field","header","ticketColumns","widgetTableOptions","emptyMessage","dataKey","masterDetailPageTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Header","Primary","Secondary","arrangement","root","column","slotLeaf","grid","span","overrides","width","WidthSizeClass","Compact","content","arcPageHeader","title","subtitle","section","query","SampleBindingName","AllInvoices","page","dataTable","invoiceTableOptions","invoiceColumns","objectContentEditor","timeMachine","displayName","description","metadata","componentsBlueprintTemplateProvenance","dashboardPageTemplate","Stats","RevenueByMonth","observableDataTable","InvoicesInFlight","OpenTickets","AllAdjustments","adjustmentColumns","workspaceTemplates"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceTemplates.js","sources":["../../../templates/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, TemplateSlotName, column, grid, slotLeaf } from '@cratis/scene.blueprint.default';\nimport { ColumnDefinition } from './ColumnDefinition';\nimport { adjustmentColumns, dataTable, invoiceColumns, invoiceTableOptions, observableDataTable } from './dataElements';\nimport { objectContentEditor, timeMachine } from './editorElements';\nimport { arcPageHeader, page } from './elements';\nimport { SampleBindingName } from './SampleBindingName';\nimport { TableOptions } from './TableOptions';\nimport { componentsBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The two whole-workspace shapes: a master-detail arrangement, and a dashboard of data widgets.\n *\n * Both are arrangements of *several* bindings rather than one, which is what separates them from the list\n * templates. That is also what makes them the templates most worth shipping: an application can wire one\n * query without help, and gets a page that looks like every other page in the product only if something\n * has already decided how four of them sit together.\n */\n\n/** The columns of the revenue widget's query. */\nconst revenueColumns: ColumnDefinition[] = [\n { field: 'month', header: 'Month' },\n { field: 'invoiced', header: 'Invoiced' },\n { field: 'collected', header: 'Collected' },\n];\n\n/** The columns of the open-tickets widget's query. */\nconst ticketColumns: ColumnDefinition[] = [\n { field: 'reference', header: 'Reference' },\n { field: 'subject', header: 'Subject' },\n { field: 'age', header: 'Age' },\n];\n\n/** Table options for a widget-sized table, where there is no search box to filter across. */\nconst widgetTableOptions: TableOptions = { emptyMessage: 'Nothing to show yet', dataKey: 'id' };\n\n/**\n * Master and detail: the list in the larger column, the selected record in the narrower one.\n *\n * The difference from `DataListWithDetailPage` is real and worth having both. That template is a whole\n * `dataPage` - its own title bar, menubar and filtering - with a detail region added beside it. This one is\n * a plain `dataTable` next to a detail region, which is the right shape when the page's chrome comes from\n * the *feature* around it rather than from the list itself. Reaching for the wrong one shows up as a page\n * with two toolbars.\n *\n * The grid collapses to a single column at a compact width, because a master and a detail side by side on a\n * phone is the arrangement that made \"master-detail does not work on mobile\" a truism.\n */\nexport const masterDetailPageTemplate: ScreenTemplate = {\n name: 'MasterDetailPage',\n fitsSlot: SlotName.Content,\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Primary }, { name: TemplateSlotName.Secondary }],\n arrangement: {\n root: column([slotLeaf(TemplateSlotName.Header), grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16)]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column([slotLeaf(TemplateSlotName.Header), slotLeaf(TemplateSlotName.Primary), slotLeaf(TemplateSlotName.Secondary)], 16),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [\n arcPageHeader('master-detail-header', {\n title: 'Invoices',\n subtitle: 'Pick an invoice on the left to inspect it on the right',\n section: 'Billing',\n query: SampleBindingName.AllInvoices,\n }),\n ],\n [TemplateSlotName.Primary]: [\n page('master-detail-master', 'Invoices', [dataTable('master-detail-table', SampleBindingName.AllInvoices, invoiceTableOptions, invoiceColumns)]),\n ],\n [TemplateSlotName.Secondary]: [\n page('master-detail-detail', 'Selected invoice', [\n objectContentEditor('master-detail-document', false),\n timeMachine('master-detail-history'),\n ]),\n ],\n },\n displayName: 'Master-detail page',\n description: 'A queried list in the larger column with the selected record and its history in the narrower one.',\n metadata: { ...componentsBlueprintTemplateProvenance, category: 'Business / Master detail' },\n};\n\n/**\n * A dashboard of data widgets - four queries arranged so the page reads in the order people already read it.\n *\n * The composition is the one every template line settles on: a row of figures across the top, then a wide\n * column and a narrow one. Copying it is the point rather than a shortcut - it is the arrangement the eye\n * already knows how to scan, and a dashboard that invents its own costs the reader a moment on every visit.\n *\n * What this blueprint adds is that every widget is a *query*, not a picture. Each one names a proxy a host\n * registers, so the dashboard is live the moment the application wires it, with nothing to replace.\n */\nexport const dashboardPageTemplate: ScreenTemplate = {\n name: 'DashboardPage',\n fitsSlot: SlotName.Content,\n slots: [\n { name: TemplateSlotName.Header },\n { name: TemplateSlotName.Stats },\n { name: TemplateSlotName.Primary },\n { name: TemplateSlotName.Secondary },\n ],\n arrangement: {\n root: column([\n slotLeaf(TemplateSlotName.Header),\n slotLeaf(TemplateSlotName.Stats),\n grid([slotLeaf(TemplateSlotName.Primary, { span: 2 }), slotLeaf(TemplateSlotName.Secondary)], 3, 16),\n ]),\n overrides: [\n {\n width: WidthSizeClass.Compact,\n root: column(\n [\n slotLeaf(TemplateSlotName.Header),\n slotLeaf(TemplateSlotName.Stats),\n slotLeaf(TemplateSlotName.Primary),\n slotLeaf(TemplateSlotName.Secondary),\n ],\n 16,\n ),\n },\n ],\n },\n content: {\n [TemplateSlotName.Header]: [\n arcPageHeader('dashboard-header', {\n title: 'Billing',\n subtitle: 'Four queries, arranged the way people already read a dashboard',\n section: 'Operations',\n query: SampleBindingName.RevenueByMonth,\n }),\n ],\n [TemplateSlotName.Stats]: [\n page('dashboard-stat-revenue', 'Revenue by month', [\n dataTable('dashboard-stat-revenue-table', SampleBindingName.RevenueByMonth, widgetTableOptions, revenueColumns),\n ]),\n page('dashboard-stat-flight', 'In flight', [\n observableDataTable('dashboard-stat-flight-table', SampleBindingName.InvoicesInFlight, widgetTableOptions, invoiceColumns),\n ]),\n page('dashboard-stat-tickets', 'Open tickets', [\n dataTable('dashboard-stat-tickets-table', SampleBindingName.OpenTickets, widgetTableOptions, ticketColumns),\n ]),\n ],\n [TemplateSlotName.Primary]: [\n page('dashboard-invoices', 'Recent invoices', [\n dataTable('dashboard-invoices-table', SampleBindingName.AllInvoices, invoiceTableOptions, invoiceColumns),\n ]),\n ],\n [TemplateSlotName.Secondary]: [\n page('dashboard-adjustments', 'Adjustments', [\n dataTable('dashboard-adjustments-table', SampleBindingName.AllAdjustments, widgetTableOptions, adjustmentColumns),\n ]),\n ],\n },\n displayName: 'Dashboard page',\n description: 'A row of query-backed widgets over a wide and a narrow column, each bound to its own query.',\n metadata: { ...componentsBlueprintTemplateProvenance, category: 'Business / Dashboard' },\n};\n\n/** The two workspace-shaped templates. */\nexport const workspaceTemplates: ScreenTemplate[] = [masterDetailPageTemplate, dashboardPageTemplate];\n"],"names":["revenueColumns","field","header","ticketColumns","widgetTableOptions","emptyMessage","dataKey","masterDetailPageTemplate","name","fitsSlot","SlotName","Content","slots","TemplateSlotName","Header","Primary","Secondary","arrangement","root","column","slotLeaf","grid","span","overrides","width","WidthSizeClass","Compact","content","arcPageHeader","title","subtitle","section","query","SampleBindingName","AllInvoices","page","dataTable","invoiceTableOptions","invoiceColumns","objectContentEditor","timeMachine","displayName","description","metadata","componentsBlueprintTemplateProvenance","category","dashboardPageTemplate","Stats","RevenueByMonth","observableDataTable","InvoicesInFlight","OpenTickets","AllAdjustments","adjustmentColumns","workspaceTemplates"],"mappings":"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"}
|