@cratis/scene.blueprint.default 4.40.0 → 4.42.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 (251) hide show
  1. package/ComponentName.ts +9 -0
  2. package/defaultBlueprint.ts +1 -0
  3. package/defaultBlueprintComponents.ts +4 -1
  4. package/dist/cjs/ComponentName.js +3 -0
  5. package/dist/cjs/ComponentName.js.map +1 -1
  6. package/dist/cjs/defaultBlueprint.js +20 -1
  7. package/dist/cjs/defaultBlueprint.js.map +1 -1
  8. package/dist/cjs/defaultBlueprintComponentMetadata.js +11 -0
  9. package/dist/cjs/defaultBlueprintComponentMetadata.js.map +1 -1
  10. package/dist/cjs/defaultBlueprintComponents.js +17 -0
  11. package/dist/cjs/defaultBlueprintComponents.js.map +1 -1
  12. package/dist/cjs/foundation/ActionButton.js.map +1 -1
  13. package/dist/cjs/foundation/ActionButtonControl.js +46 -0
  14. package/dist/cjs/foundation/ActionButtonControl.js.map +1 -0
  15. package/dist/cjs/foundation/DialogFrame.js +196 -0
  16. package/dist/cjs/foundation/DialogFrame.js.map +1 -0
  17. package/dist/cjs/foundation/FormScreenBody.js +13 -3
  18. package/dist/cjs/foundation/FormScreenBody.js.map +1 -1
  19. package/dist/cjs/foundation/Notice.js +51 -0
  20. package/dist/cjs/foundation/Notice.js.map +1 -0
  21. package/dist/cjs/foundation/formModel.js +1 -0
  22. package/dist/cjs/foundation/formModel.js.map +1 -1
  23. package/dist/cjs/foundation/foundationComponentMetadata.js +22 -0
  24. package/dist/cjs/foundation/foundationComponentMetadata.js.map +1 -1
  25. package/dist/cjs/foundation/foundationDescriptors.js +89 -0
  26. package/dist/cjs/foundation/foundationDescriptors.js.map +1 -1
  27. package/dist/cjs/foundation/foundationSamples.js +29 -0
  28. package/dist/cjs/foundation/foundationSamples.js.map +1 -1
  29. package/dist/cjs/foundation/foundationStrings.js +3 -1
  30. package/dist/cjs/foundation/foundationStrings.js.map +1 -1
  31. package/dist/cjs/foundation/templates/boardScreenTemplate.js +76 -0
  32. package/dist/cjs/foundation/templates/boardScreenTemplate.js.map +1 -0
  33. package/dist/cjs/foundation/templates/dashboardScreenTemplate.js +128 -0
  34. package/dist/cjs/foundation/templates/dashboardScreenTemplate.js.map +1 -0
  35. package/dist/cjs/foundation/templates/dialogTemplates.js +254 -0
  36. package/dist/cjs/foundation/templates/dialogTemplates.js.map +1 -0
  37. package/dist/cjs/foundation/templates/formScreenTemplate.js +71 -0
  38. package/dist/cjs/foundation/templates/formScreenTemplate.js.map +1 -0
  39. package/dist/cjs/foundation/templates/index.js +57 -0
  40. package/dist/cjs/foundation/templates/index.js.map +1 -0
  41. package/dist/cjs/foundation/templates/listScreenTemplate.js +124 -0
  42. package/dist/cjs/foundation/templates/listScreenTemplate.js.map +1 -0
  43. package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js +79 -0
  44. package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
  45. package/dist/cjs/foundation/templates/recordPageTemplate.js +137 -0
  46. package/dist/cjs/foundation/templates/recordPageTemplate.js.map +1 -0
  47. package/dist/cjs/foundation/templates/stateScreenTemplates.js +252 -0
  48. package/dist/cjs/foundation/templates/stateScreenTemplates.js.map +1 -0
  49. package/dist/cjs/foundation/templates/templateParts.js +38 -0
  50. package/dist/cjs/foundation/templates/templateParts.js.map +1 -0
  51. package/dist/cjs/foundation/templates/wizardScreenTemplate.js +95 -0
  52. package/dist/cjs/foundation/templates/wizardScreenTemplate.js.map +1 -0
  53. package/dist/cjs/foundation/templates/workspaceScreenTemplate.js +62 -0
  54. package/dist/cjs/foundation/templates/workspaceScreenTemplate.js.map +1 -0
  55. package/dist/cjs/gallery/GalleryDialogPreview.js +62 -0
  56. package/dist/cjs/gallery/GalleryDialogPreview.js.map +1 -0
  57. package/dist/cjs/gallery/GalleryScreenPreview.js +78 -4
  58. package/dist/cjs/gallery/GalleryScreenPreview.js.map +1 -1
  59. package/dist/cjs/gallery/applicationChrome.js +18 -1
  60. package/dist/cjs/gallery/applicationChrome.js.map +1 -1
  61. package/dist/cjs/gallery/composeScreen.js +5 -3
  62. package/dist/cjs/gallery/composeScreen.js.map +1 -1
  63. package/dist/cjs/gallery/dialogTemplates.js +41 -36
  64. package/dist/cjs/gallery/dialogTemplates.js.map +1 -1
  65. package/dist/cjs/gallery/screens.js +87 -3
  66. package/dist/cjs/gallery/screens.js.map +1 -1
  67. package/dist/cjs/index.js +61 -5
  68. package/dist/cjs/index.js.map +1 -1
  69. package/dist/esm/ComponentName.d.ts +3 -0
  70. package/dist/esm/ComponentName.d.ts.map +1 -1
  71. package/dist/esm/ComponentName.js +3 -0
  72. package/dist/esm/ComponentName.js.map +1 -1
  73. package/dist/esm/defaultBlueprint.d.ts.map +1 -1
  74. package/dist/esm/defaultBlueprint.js +20 -1
  75. package/dist/esm/defaultBlueprint.js.map +1 -1
  76. package/dist/esm/defaultBlueprintComponentMetadata.js +11 -0
  77. package/dist/esm/defaultBlueprintComponentMetadata.js.map +1 -1
  78. package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -1
  79. package/dist/esm/defaultBlueprintComponents.js +17 -0
  80. package/dist/esm/defaultBlueprintComponents.js.map +1 -1
  81. package/dist/esm/foundation/ActionButton.d.ts +1 -1
  82. package/dist/esm/foundation/ActionButton.d.ts.map +1 -1
  83. package/dist/esm/foundation/ActionButton.js.map +1 -1
  84. package/dist/esm/foundation/ActionButtonControl.d.ts +3 -0
  85. package/dist/esm/foundation/ActionButtonControl.d.ts.map +1 -0
  86. package/dist/esm/foundation/ActionButtonControl.js +44 -0
  87. package/dist/esm/foundation/ActionButtonControl.js.map +1 -0
  88. package/dist/esm/foundation/DialogFrame.d.ts +14 -0
  89. package/dist/esm/foundation/DialogFrame.d.ts.map +1 -0
  90. package/dist/esm/foundation/DialogFrame.js +190 -0
  91. package/dist/esm/foundation/DialogFrame.js.map +1 -0
  92. package/dist/esm/foundation/FormScreenBody.d.ts.map +1 -1
  93. package/dist/esm/foundation/FormScreenBody.js +13 -3
  94. package/dist/esm/foundation/FormScreenBody.js.map +1 -1
  95. package/dist/esm/foundation/Notice.d.ts +3 -0
  96. package/dist/esm/foundation/Notice.d.ts.map +1 -0
  97. package/dist/esm/foundation/Notice.js +49 -0
  98. package/dist/esm/foundation/Notice.js.map +1 -0
  99. package/dist/esm/foundation/formModel.d.ts +2 -1
  100. package/dist/esm/foundation/formModel.d.ts.map +1 -1
  101. package/dist/esm/foundation/formModel.js +1 -0
  102. package/dist/esm/foundation/formModel.js.map +1 -1
  103. package/dist/esm/foundation/foundationComponentMetadata.d.ts.map +1 -1
  104. package/dist/esm/foundation/foundationComponentMetadata.js +22 -0
  105. package/dist/esm/foundation/foundationComponentMetadata.js.map +1 -1
  106. package/dist/esm/foundation/foundationDescriptors.d.ts.map +1 -1
  107. package/dist/esm/foundation/foundationDescriptors.js +89 -0
  108. package/dist/esm/foundation/foundationDescriptors.js.map +1 -1
  109. package/dist/esm/foundation/foundationSamples.d.ts.map +1 -1
  110. package/dist/esm/foundation/foundationSamples.js +29 -0
  111. package/dist/esm/foundation/foundationSamples.js.map +1 -1
  112. package/dist/esm/foundation/foundationStrings.d.ts +2 -0
  113. package/dist/esm/foundation/foundationStrings.d.ts.map +1 -1
  114. package/dist/esm/foundation/foundationStrings.js +3 -1
  115. package/dist/esm/foundation/foundationStrings.js.map +1 -1
  116. package/dist/esm/foundation/index.d.ts +4 -0
  117. package/dist/esm/foundation/index.d.ts.map +1 -1
  118. package/dist/esm/foundation/index.js +4 -0
  119. package/dist/esm/foundation/index.js.map +1 -1
  120. package/dist/esm/foundation/templates/boardScreenTemplate.d.ts +3 -0
  121. package/dist/esm/foundation/templates/boardScreenTemplate.d.ts.map +1 -0
  122. package/dist/esm/foundation/templates/boardScreenTemplate.js +74 -0
  123. package/dist/esm/foundation/templates/boardScreenTemplate.js.map +1 -0
  124. package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts +3 -0
  125. package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts.map +1 -0
  126. package/dist/esm/foundation/templates/dashboardScreenTemplate.js +126 -0
  127. package/dist/esm/foundation/templates/dashboardScreenTemplate.js.map +1 -0
  128. package/dist/esm/foundation/templates/dialogTemplates.d.ts +20 -0
  129. package/dist/esm/foundation/templates/dialogTemplates.d.ts.map +1 -0
  130. package/dist/esm/foundation/templates/dialogTemplates.js +243 -0
  131. package/dist/esm/foundation/templates/dialogTemplates.js.map +1 -0
  132. package/dist/esm/foundation/templates/formScreenTemplate.d.ts +3 -0
  133. package/dist/esm/foundation/templates/formScreenTemplate.d.ts.map +1 -0
  134. package/dist/esm/foundation/templates/formScreenTemplate.js +69 -0
  135. package/dist/esm/foundation/templates/formScreenTemplate.js.map +1 -0
  136. package/dist/esm/foundation/templates/index.d.ts +13 -0
  137. package/dist/esm/foundation/templates/index.d.ts.map +1 -0
  138. package/dist/esm/foundation/templates/index.js +27 -0
  139. package/dist/esm/foundation/templates/index.js.map +1 -0
  140. package/dist/esm/foundation/templates/listScreenTemplate.d.ts +3 -0
  141. package/dist/esm/foundation/templates/listScreenTemplate.d.ts.map +1 -0
  142. package/dist/esm/foundation/templates/listScreenTemplate.js +122 -0
  143. package/dist/esm/foundation/templates/listScreenTemplate.js.map +1 -0
  144. package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts +3 -0
  145. package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts.map +1 -0
  146. package/dist/esm/foundation/templates/masterDetailScreenTemplate.js +77 -0
  147. package/dist/esm/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
  148. package/dist/esm/foundation/templates/recordPageTemplate.d.ts +3 -0
  149. package/dist/esm/foundation/templates/recordPageTemplate.d.ts.map +1 -0
  150. package/dist/esm/foundation/templates/recordPageTemplate.js +135 -0
  151. package/dist/esm/foundation/templates/recordPageTemplate.js.map +1 -0
  152. package/dist/esm/foundation/templates/stateScreenTemplates.d.ts +8 -0
  153. package/dist/esm/foundation/templates/stateScreenTemplates.d.ts.map +1 -0
  154. package/dist/esm/foundation/templates/stateScreenTemplates.js +245 -0
  155. package/dist/esm/foundation/templates/stateScreenTemplates.js.map +1 -0
  156. package/dist/esm/foundation/templates/templateParts.d.ts +6 -0
  157. package/dist/esm/foundation/templates/templateParts.d.ts.map +1 -0
  158. package/dist/esm/foundation/templates/templateParts.js +33 -0
  159. package/dist/esm/foundation/templates/templateParts.js.map +1 -0
  160. package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts +3 -0
  161. package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts.map +1 -0
  162. package/dist/esm/foundation/templates/wizardScreenTemplate.js +93 -0
  163. package/dist/esm/foundation/templates/wizardScreenTemplate.js.map +1 -0
  164. package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts +3 -0
  165. package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts.map +1 -0
  166. package/dist/esm/foundation/templates/workspaceScreenTemplate.js +60 -0
  167. package/dist/esm/foundation/templates/workspaceScreenTemplate.js.map +1 -0
  168. package/dist/esm/gallery/FoundationDialogs.stories.d.ts +35 -0
  169. package/dist/esm/gallery/FoundationDialogs.stories.d.ts.map +1 -0
  170. package/dist/esm/gallery/FoundationDialogs.stories.js +38 -0
  171. package/dist/esm/gallery/FoundationDialogs.stories.js.map +1 -0
  172. package/dist/esm/gallery/GalleryDialogPreview.d.ts +17 -0
  173. package/dist/esm/gallery/GalleryDialogPreview.d.ts.map +1 -0
  174. package/dist/esm/gallery/GalleryDialogPreview.js +59 -0
  175. package/dist/esm/gallery/GalleryDialogPreview.js.map +1 -0
  176. package/dist/esm/gallery/GalleryScreenPreview.d.ts +13 -2
  177. package/dist/esm/gallery/GalleryScreenPreview.d.ts.map +1 -1
  178. package/dist/esm/gallery/GalleryScreenPreview.js +77 -5
  179. package/dist/esm/gallery/GalleryScreenPreview.js.map +1 -1
  180. package/dist/esm/gallery/applicationChrome.d.ts.map +1 -1
  181. package/dist/esm/gallery/applicationChrome.js +18 -1
  182. package/dist/esm/gallery/applicationChrome.js.map +1 -1
  183. package/dist/esm/gallery/composeScreen.d.ts.map +1 -1
  184. package/dist/esm/gallery/composeScreen.js +5 -3
  185. package/dist/esm/gallery/composeScreen.js.map +1 -1
  186. package/dist/esm/gallery/dialogTemplates.d.ts.map +1 -1
  187. package/dist/esm/gallery/dialogTemplates.js +42 -37
  188. package/dist/esm/gallery/dialogTemplates.js.map +1 -1
  189. package/dist/esm/gallery/index.d.ts +1 -0
  190. package/dist/esm/gallery/index.d.ts.map +1 -1
  191. package/dist/esm/gallery/index.js +1 -0
  192. package/dist/esm/gallery/index.js.map +1 -1
  193. package/dist/esm/gallery/screens.d.ts.map +1 -1
  194. package/dist/esm/gallery/screens.js +87 -3
  195. package/dist/esm/gallery/screens.js.map +1 -1
  196. package/dist/esm/index.js +17 -1
  197. package/dist/esm/index.js.map +1 -1
  198. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  199. package/foundation/ActionButton.tsx +1 -1
  200. package/foundation/ActionButtonControl.tsx +37 -0
  201. package/foundation/DialogFrame.tsx +138 -0
  202. package/foundation/FormScreenBody.tsx +6 -3
  203. package/foundation/Notice.tsx +33 -0
  204. package/foundation/formModel.ts +1 -0
  205. package/foundation/foundationComponentMetadata.ts +3 -0
  206. package/foundation/foundationDescriptors.ts +41 -0
  207. package/foundation/foundationSamples.ts +3 -0
  208. package/foundation/foundationStrings.ts +2 -0
  209. package/foundation/index.ts +4 -0
  210. package/foundation/templates/boardScreenTemplate.ts +28 -0
  211. package/foundation/templates/dashboardScreenTemplate.ts +37 -0
  212. package/foundation/templates/dialogTemplates.ts +114 -0
  213. package/foundation/templates/formScreenTemplate.ts +28 -0
  214. package/foundation/templates/index.ts +28 -0
  215. package/foundation/templates/listScreenTemplate.ts +37 -0
  216. package/foundation/templates/masterDetailScreenTemplate.ts +28 -0
  217. package/foundation/templates/recordPageTemplate.ts +36 -0
  218. package/foundation/templates/stateScreenTemplates.ts +107 -0
  219. package/foundation/templates/templateParts.ts +30 -0
  220. package/foundation/templates/wizardScreenTemplate.ts +33 -0
  221. package/foundation/templates/workspaceScreenTemplate.ts +27 -0
  222. package/gallery/FoundationDialogs.stories.tsx +74 -0
  223. package/gallery/GalleryDialogPreview.tsx +68 -0
  224. package/gallery/GalleryScreenPreview.tsx +64 -5
  225. package/gallery/applicationChrome.ts +6 -1
  226. package/gallery/composeScreen.ts +4 -2
  227. package/gallery/dialogTemplates.ts +22 -17
  228. package/gallery/index.ts +1 -0
  229. package/gallery/screens.ts +18 -2
  230. package/package.json +10 -8
  231. package/sampleData/foundation-en.json +661 -0
  232. package/shell/layout.css +219 -0
  233. package/thumbnails/BoardScreen.svg +15 -0
  234. package/thumbnails/ConfirmDialog.svg +12 -0
  235. package/thumbnails/DashboardScreen.svg +18 -0
  236. package/thumbnails/DetailDialog.svg +11 -0
  237. package/thumbnails/ErrorScreen.svg +11 -0
  238. package/thumbnails/FilterDialog.svg +16 -0
  239. package/thumbnails/ForbiddenScreen.svg +10 -0
  240. package/thumbnails/FormDialog.svg +12 -0
  241. package/thumbnails/FormScreen.svg +14 -0
  242. package/thumbnails/ListScreen.svg +16 -0
  243. package/thumbnails/LoginScreen.svg +12 -0
  244. package/thumbnails/LookupDialog.svg +13 -0
  245. package/thumbnails/MasterDetailScreen.svg +22 -0
  246. package/thumbnails/NotFoundScreen.svg +9 -0
  247. package/thumbnails/QuickCreateDialog.svg +12 -0
  248. package/thumbnails/RecordPage.svg +17 -0
  249. package/thumbnails/SideSheet.svg +13 -0
  250. package/thumbnails/WizardScreen.svg +16 -0
  251. package/thumbnails/WorkspaceScreen.svg +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dialogTemplates.d.ts","sourceRoot":"","sources":["../../../gallery/dialogTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAiBrD,eAAO,MAAM,qBAAqB,EAAE,cAgBnC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,cAiBhC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,cAoBlC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAAsE,CAAC"}
1
+ {"version":3,"file":"dialogTemplates.d.ts","sourceRoot":"","sources":["../../../gallery/dialogTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsBrD,eAAO,MAAM,qBAAqB,EAAE,cAgBnC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,cAiBhC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,cAoBlC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAAoG,CAAC"}
@@ -1,7 +1,7 @@
1
+ import { closingDialog, actionButton, foundationDialogTemplates, dialogMetadata } from '../foundation/templates/dialogTemplates.js';
1
2
  import { TemplateSlotName } from './TemplateSlotName.js';
2
- import { panel, button, text, externalComponent, card } from './elements.js';
3
+ import { panel, externalComponent, button, card, text } from './elements.js';
3
4
  import { field } from './widgets.js';
4
- import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
5
5
 
6
6
  // Copyright (c) Cratis. All rights reserved.
7
7
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
@@ -13,7 +13,12 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
13
13
  * *placed* - it fills a slot on whatever contains it, and the containment chain is what decides where it
14
14
  * appears. A dialog is *summoned*: it opens over the application from wherever the code that opened it
15
15
  * happens to be, so there is no parent slot for it to name.
16
- */ /** Confirm: one question, two answers, and enough context to answer it. */ const confirmDialogTemplate = {
16
+ */ /**
17
+ * Confirm: one question, two answers, and enough context to answer it - the consequences listed, and the confirming button naming what it does
18
+ * (`Archive product`, never `OK`). A destructive confirmation takes the danger tone: the heading and border are drawn in the danger colors and the
19
+ * confirming button is the danger button. The components blueprint has a `ConfirmDialog` of its own for a command; a reference names the blueprint
20
+ * (`resolveTemplateReference`), so the two never collide.
21
+ */ const confirmDialogTemplate = {
17
22
  name: 'ConfirmDialog',
18
23
  slots: [
19
24
  {
@@ -28,32 +33,33 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
28
33
  ],
29
34
  content: {
30
35
  [TemplateSlotName.Header]: [
31
- text('confirm-title', 'Archive this product?')
32
- ],
33
- [TemplateSlotName.Body]: [
34
- text('confirm-message', 'Bamboo Watch will stop appearing in the catalog. Existing orders keep it.'),
35
- externalComponent('confirm-note', 'message', {
36
- severity: 'warn',
37
- text: 'This can be undone from the archive.'
36
+ externalComponent('confirm-frame', 'dialogFrame', {
37
+ title: 'Archive this product?',
38
+ message: 'Bamboo Watch will stop appearing in the catalog.',
39
+ tone: 'danger',
40
+ consequences: [
41
+ 'Existing orders keep it',
42
+ 'It can be restored from the archive'
43
+ ]
38
44
  })
39
45
  ],
46
+ [TemplateSlotName.Body]: [],
40
47
  [TemplateSlotName.Actions]: [
41
48
  panel('confirm-actions', [
42
- button('confirm-yes', 'Archive', {
43
- severity: 'danger'
44
- }),
45
- button('confirm-no', 'Keep it', {
46
- severity: 'secondary'
49
+ closingDialog(actionButton('confirm-no', {
50
+ label: 'Keep it',
51
+ emphasis: 'secondary'
52
+ })),
53
+ actionButton('confirm-yes', {
54
+ label: 'Archive product',
55
+ emphasis: 'danger'
47
56
  })
48
57
  ])
49
58
  ]
50
59
  },
51
60
  displayName: 'Confirmation dialog',
52
61
  description: 'One question with the consequence spelled out, and a way back.',
53
- metadata: {
54
- ...defaultBlueprintTemplateProvenance,
55
- category: 'Foundation / Dialog'
56
- }
62
+ metadata: dialogMetadata('ConfirmDialog')
57
63
  };
58
64
  /** Form: a short capture that does not deserve a page of its own. */ const formDialogTemplate = {
59
65
  name: 'FormDialog',
@@ -70,7 +76,9 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
70
76
  ],
71
77
  content: {
72
78
  [TemplateSlotName.Header]: [
73
- text('form-dialog-title', 'Invite someone')
79
+ externalComponent('form-dialog-frame', 'dialogFrame', {
80
+ title: 'Invite someone'
81
+ })
74
82
  ],
75
83
  [TemplateSlotName.Body]: [
76
84
  field('form-dialog-email', 'Email', 'inputText', {
@@ -89,21 +97,18 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
89
97
  ],
90
98
  [TemplateSlotName.Actions]: [
91
99
  panel('form-dialog-actions', [
100
+ closingDialog(button('form-dialog-cancel', 'Cancel', {
101
+ severity: 'secondary'
102
+ })),
92
103
  button('form-dialog-send', 'Send invitation', {
93
104
  severity: 'primary'
94
- }),
95
- button('form-dialog-cancel', 'Cancel', {
96
- severity: 'secondary'
97
105
  })
98
106
  ])
99
107
  ]
100
108
  },
101
109
  displayName: 'Form dialog',
102
110
  description: 'A handful of fields captured without leaving the page underneath.',
103
- metadata: {
104
- ...defaultBlueprintTemplateProvenance,
105
- category: 'Foundation / Dialog'
106
- }
111
+ metadata: dialogMetadata('FormDialog', true)
107
112
  };
108
113
  /** Detail: a record shown over the list it came from. */ const detailDialogTemplate = {
109
114
  name: 'DetailDialog',
@@ -123,7 +128,9 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
123
128
  ],
124
129
  content: {
125
130
  [TemplateSlotName.Header]: [
126
- text('detail-dialog-title', 'ORD-4192')
131
+ externalComponent('detail-dialog-frame', 'dialogFrame', {
132
+ title: 'ORD-4192'
133
+ })
127
134
  ],
128
135
  [TemplateSlotName.Body]: [
129
136
  card('detail-dialog-summary', [
@@ -142,27 +149,25 @@ import { defaultBlueprintTemplateProvenance } from '../templateProvenance.js';
142
149
  ],
143
150
  [TemplateSlotName.Actions]: [
144
151
  panel('detail-dialog-actions', [
152
+ closingDialog(button('detail-dialog-close', 'Close', {
153
+ severity: 'secondary'
154
+ })),
145
155
  button('detail-dialog-open', 'Open full record', {
146
156
  severity: 'primary',
147
157
  targetScreen: 'DetailView'
148
- }),
149
- button('detail-dialog-close', 'Close', {
150
- severity: 'secondary'
151
158
  })
152
159
  ])
153
160
  ]
154
161
  },
155
162
  displayName: 'Detail dialog',
156
163
  description: 'A record over the list it came from, with a route to the full page.',
157
- metadata: {
158
- ...defaultBlueprintTemplateProvenance,
159
- category: 'Foundation / Dialog'
160
- }
164
+ metadata: dialogMetadata('DetailDialog', true)
161
165
  };
162
- /** The dialog templates this blueprint provides. */ const galleryDialogTemplates = [
166
+ /** The dialog templates this blueprint provides: the three the gallery began with, and the foundation's quick create, lookup, side sheet and filter dialogs. */ const galleryDialogTemplates = [
163
167
  confirmDialogTemplate,
164
168
  formDialogTemplate,
165
- detailDialogTemplate
169
+ detailDialogTemplate,
170
+ ...foundationDialogTemplates
166
171
  ];
167
172
 
168
173
  export { confirmDialogTemplate, detailDialogTemplate, formDialogTemplate, galleryDialogTemplates };
@@ -1 +1 @@
1
- {"version":3,"file":"dialogTemplates.js","sources":["../../../gallery/dialogTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogTemplate } from '@cratis/scene.model';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { field } from './widgets';\nimport { defaultBlueprintTemplateProvenance } from '../templateProvenance';\n\n/**\n * The three dialog shapes an application repeats: confirm something destructive, capture a short form, and\n * show a record without leaving the list behind it.\n *\n * A dialog template has no `fitsSlot`, and that absence is the whole distinction. A screen template is\n * *placed* - it fills a slot on whatever contains it, and the containment chain is what decides where it\n * appears. A dialog is *summoned*: it opens over the application from wherever the code that opened it\n * happens to be, so there is no parent slot for it to name.\n */\n\n/** Confirm: one question, two answers, and enough context to answer it. */\nexport const confirmDialogTemplate: DialogTemplate = {\n name: 'ConfirmDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('confirm-title', 'Archive this product?')],\n [TemplateSlotName.Body]: [\n text('confirm-message', 'Bamboo Watch will stop appearing in the catalog. Existing orders keep it.'),\n externalComponent('confirm-note', 'message', { severity: 'warn', text: 'This can be undone from the archive.' }),\n ],\n [TemplateSlotName.Actions]: [\n panel('confirm-actions', [button('confirm-yes', 'Archive', { severity: 'danger' }), button('confirm-no', 'Keep it', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Confirmation dialog',\n description: 'One question with the consequence spelled out, and a way back.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** Form: a short capture that does not deserve a page of its own. */\nexport const formDialogTemplate: DialogTemplate = {\n name: 'FormDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('form-dialog-title', 'Invite someone')],\n [TemplateSlotName.Body]: [\n field('form-dialog-email', 'Email', 'inputText', { placeholder: 'them@contoso.com' }),\n field('form-dialog-role', 'Role', 'dropdown', { options: ['Viewer', 'Editor', 'Administrator'] }),\n field('form-dialog-message', 'Message', 'inputTextarea', { rows: 3 }),\n ],\n [TemplateSlotName.Actions]: [\n panel('form-dialog-actions', [button('form-dialog-send', 'Send invitation', { severity: 'primary' }), button('form-dialog-cancel', 'Cancel', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Form dialog',\n description: 'A handful of fields captured without leaving the page underneath.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** Detail: a record shown over the list it came from. */\nexport const detailDialogTemplate: DialogTemplate = {\n name: 'DetailDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [text('detail-dialog-title', 'ORD-4192')],\n [TemplateSlotName.Body]: [\n card('detail-dialog-summary', [\n text('detail-dialog-customer', 'Northwind Traders'),\n text('detail-dialog-total', '$1,240.00'),\n externalComponent('detail-dialog-status', 'tag', { value: 'Shipped', severity: 'success' }),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [externalComponent('detail-dialog-timeline', 'timeline', { align: 'left' })],\n [TemplateSlotName.Actions]: [\n panel('detail-dialog-actions', [button('detail-dialog-open', 'Open full record', { severity: 'primary', targetScreen: 'DetailView' }), button('detail-dialog-close', 'Close', { severity: 'secondary' })]),\n ],\n },\n displayName: 'Detail dialog',\n description: 'A record over the list it came from, with a route to the full page.',\n metadata: { ...defaultBlueprintTemplateProvenance, category: 'Foundation / Dialog' },\n};\n\n/** The dialog templates this blueprint provides. */\nexport const galleryDialogTemplates: DialogTemplate[] = [confirmDialogTemplate, formDialogTemplate, detailDialogTemplate];\n"],"names":["confirmDialogTemplate","name","slots","TemplateSlotName","Header","Body","Actions","content","text","externalComponent","severity","panel","button","displayName","description","metadata","defaultBlueprintTemplateProvenance","category","formDialogTemplate","field","placeholder","options","rows","detailDialogTemplate","SidePanel","card","value","align","targetScreen","galleryDialogTemplates"],"mappings":"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"}
1
+ {"version":3,"file":"dialogTemplates.js","sources":["../../../gallery/dialogTemplates.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogTemplate } from '@cratis/scene.model';\nimport { actionButton, closingDialog, dialogMetadata, foundationDialogTemplates } from '../foundation/templates/dialogTemplates';\nimport { TemplateSlotName } from './TemplateSlotName';\nimport { button, card, externalComponent, panel, text } from './elements';\nimport { field } from './widgets';\n\n/**\n * The three dialog shapes an application repeats: confirm something destructive, capture a short form, and\n * show a record without leaving the list behind it.\n *\n * A dialog template has no `fitsSlot`, and that absence is the whole distinction. A screen template is\n * *placed* - it fills a slot on whatever contains it, and the containment chain is what decides where it\n * appears. A dialog is *summoned*: it opens over the application from wherever the code that opened it\n * happens to be, so there is no parent slot for it to name.\n */\n\n/**\n * Confirm: one question, two answers, and enough context to answer it - the consequences listed, and the confirming button naming what it does\n * (`Archive product`, never `OK`). A destructive confirmation takes the danger tone: the heading and border are drawn in the danger colors and the\n * confirming button is the danger button. The components blueprint has a `ConfirmDialog` of its own for a command; a reference names the blueprint\n * (`resolveTemplateReference`), so the two never collide.\n */\nexport const confirmDialogTemplate: DialogTemplate = {\n name: 'ConfirmDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [externalComponent('confirm-frame', 'dialogFrame', {\n title: 'Archive this product?', message: 'Bamboo Watch will stop appearing in the catalog.', tone: 'danger',\n consequences: ['Existing orders keep it', 'It can be restored from the archive'],\n })],\n [TemplateSlotName.Body]: [],\n [TemplateSlotName.Actions]: [\n panel('confirm-actions', [closingDialog(actionButton('confirm-no', { label: 'Keep it', emphasis: 'secondary' })), actionButton('confirm-yes', { label: 'Archive product', emphasis: 'danger' })]),\n ],\n },\n displayName: 'Confirmation dialog',\n description: 'One question with the consequence spelled out, and a way back.',\n metadata: dialogMetadata('ConfirmDialog'),\n};\n\n/** Form: a short capture that does not deserve a page of its own. */\nexport const formDialogTemplate: DialogTemplate = {\n name: 'FormDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [externalComponent('form-dialog-frame', 'dialogFrame', { title: 'Invite someone' })],\n [TemplateSlotName.Body]: [\n field('form-dialog-email', 'Email', 'inputText', { placeholder: 'them@contoso.com' }),\n field('form-dialog-role', 'Role', 'dropdown', { options: ['Viewer', 'Editor', 'Administrator'] }),\n field('form-dialog-message', 'Message', 'inputTextarea', { rows: 3 }),\n ],\n [TemplateSlotName.Actions]: [\n panel('form-dialog-actions', [closingDialog(button('form-dialog-cancel', 'Cancel', { severity: 'secondary' })), button('form-dialog-send', 'Send invitation', { severity: 'primary' })]),\n ],\n },\n displayName: 'Form dialog',\n description: 'A handful of fields captured without leaving the page underneath.',\n metadata: dialogMetadata('FormDialog', true),\n};\n\n/** Detail: a record shown over the list it came from. */\nexport const detailDialogTemplate: DialogTemplate = {\n name: 'DetailDialog',\n slots: [{ name: TemplateSlotName.Header }, { name: TemplateSlotName.Body }, { name: TemplateSlotName.SidePanel }, { name: TemplateSlotName.Actions }],\n content: {\n [TemplateSlotName.Header]: [externalComponent('detail-dialog-frame', 'dialogFrame', { title: 'ORD-4192' })],\n [TemplateSlotName.Body]: [\n card('detail-dialog-summary', [\n text('detail-dialog-customer', 'Northwind Traders'),\n text('detail-dialog-total', '$1,240.00'),\n externalComponent('detail-dialog-status', 'tag', { value: 'Shipped', severity: 'success' }),\n ]),\n ],\n [TemplateSlotName.SidePanel]: [externalComponent('detail-dialog-timeline', 'timeline', { align: 'left' })],\n [TemplateSlotName.Actions]: [\n panel('detail-dialog-actions', [closingDialog(button('detail-dialog-close', 'Close', { severity: 'secondary' })), button('detail-dialog-open', 'Open full record', { severity: 'primary', targetScreen: 'DetailView' })]),\n ],\n },\n displayName: 'Detail dialog',\n description: 'A record over the list it came from, with a route to the full page.',\n metadata: dialogMetadata('DetailDialog', true),\n};\n\n/** The dialog templates this blueprint provides: the three the gallery began with, and the foundation's quick create, lookup, side sheet and filter dialogs. */\nexport const galleryDialogTemplates: DialogTemplate[] = [confirmDialogTemplate, formDialogTemplate, detailDialogTemplate, ...foundationDialogTemplates];\n"],"names":["confirmDialogTemplate","name","slots","TemplateSlotName","Header","Body","Actions","content","externalComponent","title","message","tone","consequences","panel","closingDialog","actionButton","label","emphasis","displayName","description","metadata","dialogMetadata","formDialogTemplate","field","placeholder","options","rows","button","severity","detailDialogTemplate","SidePanel","card","text","value","align","targetScreen","galleryDialogTemplates","foundationDialogTemplates"],"mappings":";;;;;AAAA;AACA;AAQA;;;;;;;;;;;;;UAgBaA,qBAAAA,GAAwC;IACjDC,IAAAA,EAAM,eAAA;IACNC,KAAAA,EAAO;AAAC,QAAA;AAAED,YAAAA,IAAAA,EAAME,iBAAiBC;AAAO,SAAA;AAAG,QAAA;AAAEH,YAAAA,IAAAA,EAAME,iBAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEJ,YAAAA,IAAAA,EAAME,iBAAiBG;AAAQ;AAAE,KAAA;IAC/GC,OAAAA,EAAS;QACL,CAACJ,gBAAAA,CAAiBC,MAAM,GAAG;AAACI,YAAAA,iBAAAA,CAAkB,iBAAiB,aAAA,EAAe;gBAC1EC,KAAAA,EAAO,uBAAA;gBAAyBC,OAAAA,EAAS,kDAAA;gBAAoDC,IAAAA,EAAM,QAAA;gBACnGC,YAAAA,EAAc;AAAC,oBAAA,yBAAA;AAA2B,oBAAA;AAAsC;AACpF,aAAA;AAAG,SAAA;AACH,QAAA,CAACT,gBAAAA,CAAiBE,IAAI,GAAG,EAAE;QAC3B,CAACF,gBAAAA,CAAiBG,OAAO,GAAG;AACxBO,YAAAA,KAAAA,CAAM,iBAAA,EAAmB;AAACC,gBAAAA,aAAAA,CAAcC,aAAa,YAAA,EAAc;oBAAEC,KAAAA,EAAO,SAAA;oBAAWC,QAAAA,EAAU;AAAY,iBAAA,CAAA,CAAA;AAAKF,gBAAAA,YAAAA,CAAa,aAAA,EAAe;oBAAEC,KAAAA,EAAO,iBAAA;oBAAmBC,QAAAA,EAAU;AAAS,iBAAA;AAAG,aAAA;AACnM;AACL,KAAA;IACAC,WAAAA,EAAa,qBAAA;IACbC,WAAAA,EAAa,gEAAA;AACbC,IAAAA,QAAAA,EAAUC,cAAAA,CAAe,eAAA;AAC7B;AAEA,sEACO,MAAMC,kBAAAA,GAAqC;IAC9CrB,IAAAA,EAAM,YAAA;IACNC,KAAAA,EAAO;AAAC,QAAA;AAAED,YAAAA,IAAAA,EAAME,iBAAiBC;AAAO,SAAA;AAAG,QAAA;AAAEH,YAAAA,IAAAA,EAAME,iBAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEJ,YAAAA,IAAAA,EAAME,iBAAiBG;AAAQ;AAAE,KAAA;IAC/GC,OAAAA,EAAS;QACL,CAACJ,gBAAAA,CAAiBC,MAAM,GAAG;AAACI,YAAAA,iBAAAA,CAAkB,qBAAqB,aAAA,EAAe;gBAAEC,KAAAA,EAAO;AAAiB,aAAA;AAAG,SAAA;QAC/G,CAACN,gBAAAA,CAAiBE,IAAI,GAAG;YACrBkB,KAAAA,CAAM,mBAAA,EAAqB,SAAS,WAAA,EAAa;gBAAEC,WAAAA,EAAa;AAAmB,aAAA,CAAA;YACnFD,KAAAA,CAAM,kBAAA,EAAoB,QAAQ,UAAA,EAAY;gBAAEE,OAAAA,EAAS;AAAC,oBAAA,QAAA;AAAU,oBAAA,QAAA;AAAU,oBAAA;AAAgB;AAAC,aAAA,CAAA;YAC/FF,KAAAA,CAAM,qBAAA,EAAuB,WAAW,eAAA,EAAiB;gBAAEG,IAAAA,EAAM;AAAE,aAAA;AACtE,SAAA;QACD,CAACvB,gBAAAA,CAAiBG,OAAO,GAAG;AACxBO,YAAAA,KAAAA,CAAM,qBAAA,EAAuB;gBAACC,aAAAA,CAAca,MAAAA,CAAO,sBAAsB,QAAA,EAAU;oBAAEC,QAAAA,EAAU;AAAY,iBAAA,CAAA,CAAA;AAAKD,gBAAAA,MAAAA,CAAO,oBAAoB,iBAAA,EAAmB;oBAAEC,QAAAA,EAAU;AAAU,iBAAA;AAAG,aAAA;AAC1L;AACL,KAAA;IACAV,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,mEAAA;AACbC,IAAAA,QAAAA,EAAUC,eAAe,YAAA,EAAc,IAAA;AAC3C;AAEA,0DACO,MAAMQ,oBAAAA,GAAuC;IAChD5B,IAAAA,EAAM,cAAA;IACNC,KAAAA,EAAO;AAAC,QAAA;AAAED,YAAAA,IAAAA,EAAME,iBAAiBC;AAAO,SAAA;AAAG,QAAA;AAAEH,YAAAA,IAAAA,EAAME,iBAAiBE;AAAK,SAAA;AAAG,QAAA;AAAEJ,YAAAA,IAAAA,EAAME,iBAAiB2B;AAAU,SAAA;AAAG,QAAA;AAAE7B,YAAAA,IAAAA,EAAME,iBAAiBG;AAAQ;AAAE,KAAA;IACrJC,OAAAA,EAAS;QACL,CAACJ,gBAAAA,CAAiBC,MAAM,GAAG;AAACI,YAAAA,iBAAAA,CAAkB,uBAAuB,aAAA,EAAe;gBAAEC,KAAAA,EAAO;AAAW,aAAA;AAAG,SAAA;QAC3G,CAACN,gBAAAA,CAAiBE,IAAI,GAAG;AACrB0B,YAAAA,IAAAA,CAAK,uBAAA,EAAyB;AAC1BC,gBAAAA,IAAAA,CAAK,wBAAA,EAA0B,mBAAA,CAAA;AAC/BA,gBAAAA,IAAAA,CAAK,qBAAA,EAAuB,WAAA,CAAA;AAC5BxB,gBAAAA,iBAAAA,CAAkB,wBAAwB,KAAA,EAAO;oBAAEyB,KAAAA,EAAO,SAAA;oBAAWL,QAAAA,EAAU;AAAU,iBAAA;AAC5F,aAAA;AACJ,SAAA;QACD,CAACzB,gBAAAA,CAAiB2B,SAAS,GAAG;AAACtB,YAAAA,iBAAAA,CAAkB,0BAA0B,UAAA,EAAY;gBAAE0B,KAAAA,EAAO;AAAO,aAAA;AAAG,SAAA;QAC1G,CAAC/B,gBAAAA,CAAiBG,OAAO,GAAG;AACxBO,YAAAA,KAAAA,CAAM,uBAAA,EAAyB;gBAACC,aAAAA,CAAca,MAAAA,CAAO,uBAAuB,OAAA,EAAS;oBAAEC,QAAAA,EAAU;AAAY,iBAAA,CAAA,CAAA;AAAKD,gBAAAA,MAAAA,CAAO,sBAAsB,kBAAA,EAAoB;oBAAEC,QAAAA,EAAU,SAAA;oBAAWO,YAAAA,EAAc;AAAa,iBAAA;AAAG,aAAA;AAC3N;AACL,KAAA;IACAjB,WAAAA,EAAa,eAAA;IACbC,WAAAA,EAAa,qEAAA;AACbC,IAAAA,QAAAA,EAAUC,eAAe,cAAA,EAAgB,IAAA;AAC7C;AAEA,iKACO,MAAMe,sBAAAA,GAA2C;AAACpC,IAAAA,qBAAAA;AAAuBsB,IAAAA,kBAAAA;AAAoBO,IAAAA,oBAAAA;AAAyBQ,IAAAA,GAAAA;;;"}
@@ -17,6 +17,7 @@ export * from './componentNames';
17
17
  export * from './previewProfile';
18
18
  export * from './resolveElementNames';
19
19
  export * from './GalleryScreenPreview';
20
+ export * from './GalleryDialogPreview';
20
21
  export * from './TemplatePreviewState';
21
22
  export * from './applyTemplatePreviewState';
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
@@ -17,6 +17,7 @@ export * from './componentNames';
17
17
  export * from './previewProfile';
18
18
  export * from './resolveElementNames';
19
19
  export * from './GalleryScreenPreview';
20
+ export * from './GalleryDialogPreview';
20
21
  export * from './TemplatePreviewState';
21
22
  export * from './applyTemplatePreviewState';
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../gallery/screens.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBrE,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAMlD,CAAC;AA+EF,eAAO,MAAM,cAAc,EAAE,MAAM,EAA0C,CAAC;AAG9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../gallery/screens.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmBrE,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAQlD,CAAC;AA4FF,eAAO,MAAM,cAAc,EAAE,MAAM,EAA0C,CAAC;AAG9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
@@ -1,3 +1,4 @@
1
+ import { foundationScreenTemplates } from '../foundation/templates/index.js';
1
2
  import { LayoutName } from '../layouts/LayoutName.js';
2
3
  import '@cratis/scene.model';
3
4
  import '../layouts/shellComponents.js';
@@ -11,6 +12,7 @@ import { nestingChainTemplates } from './nesting.js';
11
12
  import { statusTemplates } from './statusTemplates.js';
12
13
  import { supportTemplates } from './supportTemplates.js';
13
14
  import { workspaceTemplates } from './workspaceTemplates.js';
15
+ import { stateScreenTemplates } from '../foundation/templates/stateScreenTemplates.js';
14
16
 
15
17
  // Copyright (c) Cratis. All rights reserved.
16
18
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
@@ -21,6 +23,8 @@ import { workspaceTemplates } from './workspaceTemplates.js';
21
23
  * chain that demonstrates how `fitsSlot` composes. The list is what the manifest's `screenTemplates` names
22
24
  * and what the bundle provides; `validatePackageBundle` proves the two agree.
23
25
  */ const galleryScreenTemplates = [
26
+ ...foundationScreenTemplates,
27
+ ...stateScreenTemplates,
24
28
  ...workspaceTemplates,
25
29
  ...supportTemplates,
26
30
  ...authTemplates,
@@ -29,7 +33,8 @@ import { workspaceTemplates } from './workspaceTemplates.js';
29
33
  ];
30
34
  /** Which layout each template renders inside - the application shell unless it is one of the chrome-less screens. */ const fullPageTemplateNames = new Set([
31
35
  ...authTemplates,
32
- ...statusTemplates
36
+ ...statusTemplates,
37
+ ...stateScreenTemplates
33
38
  ].map((template)=>template.name));
34
39
  /** The trail shown above each application-shell screen. */ const breadcrumbs = {
35
40
  Dashboard: [
@@ -135,6 +140,78 @@ import { workspaceTemplates } from './workspaceTemplates.js';
135
140
  label: 'Help'
136
141
  }
137
142
  ],
143
+ DashboardScreen: [
144
+ {
145
+ label: 'Dashboard'
146
+ }
147
+ ],
148
+ ListScreen: [
149
+ {
150
+ label: 'Sales',
151
+ targetScreen: 'DashboardScreen'
152
+ },
153
+ {
154
+ label: 'Deals'
155
+ }
156
+ ],
157
+ BoardScreen: [
158
+ {
159
+ label: 'Sales',
160
+ targetScreen: 'DashboardScreen'
161
+ },
162
+ {
163
+ label: 'Pipeline'
164
+ }
165
+ ],
166
+ WorkspaceScreen: [
167
+ {
168
+ label: 'Sales'
169
+ }
170
+ ],
171
+ MasterDetailScreen: [
172
+ {
173
+ label: 'Sales',
174
+ targetScreen: 'WorkspaceScreen'
175
+ },
176
+ {
177
+ label: 'Accounts'
178
+ }
179
+ ],
180
+ RecordPage: [
181
+ {
182
+ label: 'Sales',
183
+ targetScreen: 'DashboardScreen'
184
+ },
185
+ {
186
+ label: 'Accounts',
187
+ targetScreen: 'ListScreen'
188
+ },
189
+ {
190
+ label: 'Account'
191
+ }
192
+ ],
193
+ FormScreen: [
194
+ {
195
+ label: 'Sales',
196
+ targetScreen: 'DashboardScreen'
197
+ },
198
+ {
199
+ label: 'Accounts',
200
+ targetScreen: 'ListScreen'
201
+ },
202
+ {
203
+ label: 'New account'
204
+ }
205
+ ],
206
+ WizardScreen: [
207
+ {
208
+ label: 'Sales',
209
+ targetScreen: 'DashboardScreen'
210
+ },
211
+ {
212
+ label: 'New account'
213
+ }
214
+ ],
138
215
  ModuleWorkspace: [
139
216
  {
140
217
  label: 'Operations'
@@ -196,9 +273,16 @@ import { workspaceTemplates } from './workspaceTemplates.js';
196
273
  * that do not.
197
274
  */ function containmentChainFor(template) {
198
275
  const depth = nestingChainTemplates.findIndex((candidate)=>candidate.name === template.name);
199
- return depth < 0 ? [
276
+ if (depth >= 0) return nestingChainTemplates.slice(0, depth + 1);
277
+ // A template that fits a container-qualified slot (`WorkspaceScreen.moduleContent`) renders inside that container, which is what the qualifier is for.
278
+ const [container] = (template.fitsSlot ?? '').split('.');
279
+ const outer = container ? foundationScreenTemplates.find((candidate)=>candidate.name === container) : undefined;
280
+ return outer ? [
281
+ outer,
282
+ template
283
+ ] : [
200
284
  template
201
- ] : nestingChainTemplates.slice(0, depth + 1);
285
+ ];
202
286
  }
203
287
  function mergeSlotContent(chrome, content) {
204
288
  const merged = {
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sources":["../../../gallery/screens.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 { Layout, Screen, ScreenTemplate } from '@cratis/scene.model';\nimport { LayoutName, appShellLayout, fullPageLayout } from '../layouts';\nimport { BreadcrumbEntry, applicationChrome, fullPageChrome } from './applicationChrome';\nimport { nestScreenTemplates, templateContentInLayout } from './composeScreen';\nimport { authTemplates } from './authTemplates';\nimport { navigationContributions } from './navigation';\nimport { nestingChainTemplates } from './nesting';\nimport { statusTemplates } from './statusTemplates';\nimport { supportTemplates } from './supportTemplates';\nimport { workspaceTemplates } from './workspaceTemplates';\n\n/**\n * The screen templates this blueprint provides.\n *\n * Eleven shapes for inside the application shell, ten for the full-page shell, and the three-level nesting\n * chain that demonstrates how `fitsSlot` composes. The list is what the manifest's `screenTemplates` names\n * and what the bundle provides; `validatePackageBundle` proves the two agree.\n */\nexport const galleryScreenTemplates: ScreenTemplate[] = [\n ...workspaceTemplates,\n ...supportTemplates,\n ...authTemplates,\n ...statusTemplates,\n ...nestingChainTemplates,\n];\n\n/** Which layout each template renders inside - the application shell unless it is one of the chrome-less screens. */\nconst fullPageTemplateNames = new Set([...authTemplates, ...statusTemplates].map(template => template.name));\n\n/** The trail shown above each application-shell screen. */\nconst breadcrumbs: Record<string, BreadcrumbEntry[]> = {\n Dashboard: [{ label: 'Dashboard' }],\n CrudList: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products' }],\n MasterDetail: [{ label: 'Sales', targetScreen: 'Dashboard' }, { label: 'Customers' }],\n DetailView: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products', targetScreen: 'CrudList' }, { label: 'Bamboo Watch' }],\n FormPage: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products', targetScreen: 'CrudList' }, { label: 'New product' }],\n Empty: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products' }],\n Documentation: [{ label: 'Support', targetScreen: 'Dashboard' }, { label: 'Documentation' }],\n ProfileSettings: [{ label: 'Administration', targetScreen: 'Dashboard' }, { label: 'Your profile' }],\n UserManagement: [{ label: 'Administration', targetScreen: 'Dashboard' }, { label: 'Users' }],\n Invoice: [{ label: 'Billing', targetScreen: 'Dashboard' }, { label: 'INV-2043' }],\n Help: [{ label: 'Support', targetScreen: 'Dashboard' }, { label: 'Help' }],\n ModuleWorkspace: [{ label: 'Operations' }],\n FeatureSection: [{ label: 'Operations', targetScreen: 'ModuleWorkspace' }, { label: 'Adjustments' }],\n SliceSection: [\n { label: 'Operations', targetScreen: 'ModuleWorkspace' },\n { label: 'Adjustments', targetScreen: 'FeatureSection' },\n { label: 'Record an adjustment' },\n ],\n};\n\n/**\n * Builds the {@link Screen} that instantiates one template.\n *\n * A screen is an instance, not a shape: it names the layout it renders in, the template it fills, the\n * content that fills it, and what it contributes elsewhere. Everything structural comes from the template,\n * which is why adding a screen is a handful of lines rather than another copy of the chrome.\n */\nfunction screenFor(template: ScreenTemplate): Screen {\n const isFullPage = fullPageTemplateNames.has(template.name);\n const layout: Layout = isFullPage ? fullPageLayout : appShellLayout;\n const chrome = isFullPage ? fullPageChrome() : applicationChrome(template.name, breadcrumbs[template.name] ?? [{ label: template.displayName ?? template.name }]);\n const placeable = nestScreenTemplates(containmentChainFor(template));\n\n return {\n name: template.name,\n layout: isFullPage ? LayoutName.FullPage : LayoutName.AppShell,\n screenTemplate: template.name,\n slotContent: mergeSlotContent(chrome, templateContentInLayout(placeable, layout)),\n forms: [],\n contributions: isFullPage ? [] : navigationContributions,\n };\n}\n\n/**\n * The chain of templates a screen renders through, outermost first.\n *\n * Almost every template fits the layout's own `content` slot, so its chain is just itself. The three\n * nesting-chain templates are the exception, and the only ones that need the walk - which is the honest\n * version of the story: nesting exists for the applications that need it, and costs nothing for the ones\n * that do not.\n */\nfunction containmentChainFor(template: ScreenTemplate): ScreenTemplate[] {\n const depth = nestingChainTemplates.findIndex(candidate => candidate.name === template.name);\n return depth < 0 ? [template] : nestingChainTemplates.slice(0, depth + 1);\n}\n\nfunction mergeSlotContent(chrome: Record<string, Screen['slotContent'][string]>, content: Record<string, Screen['slotContent'][string]>): Screen['slotContent'] {\n const merged: Screen['slotContent'] = { ...chrome };\n for (const [slotName, elements] of Object.entries(content)) {\n merged[slotName] = [...(merged[slotName] ?? []), ...elements];\n }\n\n return merged;\n}\n\n/**\n * The gallery: one screen per template, ready to boot through the real engine.\n *\n * These exist so a preview is a working miniature application rather than a set of pictures - the same\n * `Screen` shape Stage produces, put through the same `Scene.Engine` and `Scene.React`, with no separate\n * preview pipeline and nothing mocked.\n */\nexport const galleryScreens: Screen[] = galleryScreenTemplates.map(screenFor);\n\n/** One gallery screen by name, for a story or a host that boots a specific one. */\nexport function galleryScreen(name: string): Screen | undefined {\n return galleryScreens.find(screen => screen.name === name);\n}\n"],"names":["galleryScreenTemplates","workspaceTemplates","supportTemplates","authTemplates","statusTemplates","nestingChainTemplates","fullPageTemplateNames","Set","map","template","name","breadcrumbs","Dashboard","label","CrudList","targetScreen","MasterDetail","DetailView","FormPage","Empty","Documentation","ProfileSettings","UserManagement","Invoice","Help","ModuleWorkspace","FeatureSection","SliceSection","screenFor","isFullPage","has","layout","fullPageLayout","appShellLayout","chrome","fullPageChrome","applicationChrome","displayName","placeable","nestScreenTemplates","containmentChainFor","LayoutName","FullPage","AppShell","screenTemplate","slotContent","mergeSlotContent","templateContentInLayout","forms","contributions","navigationContributions","depth","findIndex","candidate","slice","content","merged","slotName","elements","Object","entries","galleryScreens","galleryScreen","find","screen"],"mappings":"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"}
1
+ {"version":3,"file":"screens.js","sources":["../../../gallery/screens.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 { Layout, Screen, ScreenTemplate } from '@cratis/scene.model';\nimport { foundationScreenTemplates, stateScreenTemplates } from '../foundation/templates';\nimport { LayoutName, appShellLayout, fullPageLayout } from '../layouts';\nimport { BreadcrumbEntry, applicationChrome, fullPageChrome } from './applicationChrome';\nimport { nestScreenTemplates, templateContentInLayout } from './composeScreen';\nimport { authTemplates } from './authTemplates';\nimport { navigationContributions } from './navigation';\nimport { nestingChainTemplates } from './nesting';\nimport { statusTemplates } from './statusTemplates';\nimport { supportTemplates } from './supportTemplates';\nimport { workspaceTemplates } from './workspaceTemplates';\n\n/**\n * The screen templates this blueprint provides.\n *\n * Eleven shapes for inside the application shell, ten for the full-page shell, and the three-level nesting\n * chain that demonstrates how `fitsSlot` composes. The list is what the manifest's `screenTemplates` names\n * and what the bundle provides; `validatePackageBundle` proves the two agree.\n */\nexport const galleryScreenTemplates: ScreenTemplate[] = [\n ...foundationScreenTemplates,\n ...stateScreenTemplates,\n ...workspaceTemplates,\n ...supportTemplates,\n ...authTemplates,\n ...statusTemplates,\n ...nestingChainTemplates,\n];\n\n/** Which layout each template renders inside - the application shell unless it is one of the chrome-less screens. */\nconst fullPageTemplateNames = new Set([...authTemplates, ...statusTemplates, ...stateScreenTemplates].map(template => template.name));\n\n/** The trail shown above each application-shell screen. */\nconst breadcrumbs: Record<string, BreadcrumbEntry[]> = {\n Dashboard: [{ label: 'Dashboard' }],\n CrudList: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products' }],\n MasterDetail: [{ label: 'Sales', targetScreen: 'Dashboard' }, { label: 'Customers' }],\n DetailView: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products', targetScreen: 'CrudList' }, { label: 'Bamboo Watch' }],\n FormPage: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products', targetScreen: 'CrudList' }, { label: 'New product' }],\n Empty: [{ label: 'Catalog', targetScreen: 'Dashboard' }, { label: 'Products' }],\n Documentation: [{ label: 'Support', targetScreen: 'Dashboard' }, { label: 'Documentation' }],\n ProfileSettings: [{ label: 'Administration', targetScreen: 'Dashboard' }, { label: 'Your profile' }],\n UserManagement: [{ label: 'Administration', targetScreen: 'Dashboard' }, { label: 'Users' }],\n Invoice: [{ label: 'Billing', targetScreen: 'Dashboard' }, { label: 'INV-2043' }],\n Help: [{ label: 'Support', targetScreen: 'Dashboard' }, { label: 'Help' }],\n DashboardScreen: [{ label: 'Dashboard' }],\n ListScreen: [{ label: 'Sales', targetScreen: 'DashboardScreen' }, { label: 'Deals' }],\n BoardScreen: [{ label: 'Sales', targetScreen: 'DashboardScreen' }, { label: 'Pipeline' }],\n WorkspaceScreen: [{ label: 'Sales' }],\n MasterDetailScreen: [{ label: 'Sales', targetScreen: 'WorkspaceScreen' }, { label: 'Accounts' }],\n RecordPage: [{ label: 'Sales', targetScreen: 'DashboardScreen' }, { label: 'Accounts', targetScreen: 'ListScreen' }, { label: 'Account' }],\n FormScreen: [{ label: 'Sales', targetScreen: 'DashboardScreen' }, { label: 'Accounts', targetScreen: 'ListScreen' }, { label: 'New account' }],\n WizardScreen: [{ label: 'Sales', targetScreen: 'DashboardScreen' }, { label: 'New account' }],\n ModuleWorkspace: [{ label: 'Operations' }],\n FeatureSection: [{ label: 'Operations', targetScreen: 'ModuleWorkspace' }, { label: 'Adjustments' }],\n SliceSection: [\n { label: 'Operations', targetScreen: 'ModuleWorkspace' },\n { label: 'Adjustments', targetScreen: 'FeatureSection' },\n { label: 'Record an adjustment' },\n ],\n};\n\n/**\n * Builds the {@link Screen} that instantiates one template.\n *\n * A screen is an instance, not a shape: it names the layout it renders in, the template it fills, the\n * content that fills it, and what it contributes elsewhere. Everything structural comes from the template,\n * which is why adding a screen is a handful of lines rather than another copy of the chrome.\n */\nfunction screenFor(template: ScreenTemplate): Screen {\n const isFullPage = fullPageTemplateNames.has(template.name);\n const layout: Layout = isFullPage ? fullPageLayout : appShellLayout;\n const chrome = isFullPage ? fullPageChrome() : applicationChrome(template.name, breadcrumbs[template.name] ?? [{ label: template.displayName ?? template.name }]);\n const placeable = nestScreenTemplates(containmentChainFor(template));\n\n return {\n name: template.name,\n layout: isFullPage ? LayoutName.FullPage : LayoutName.AppShell,\n screenTemplate: template.name,\n slotContent: mergeSlotContent(chrome, templateContentInLayout(placeable, layout)),\n forms: [],\n contributions: isFullPage ? [] : navigationContributions,\n };\n}\n\n/**\n * The chain of templates a screen renders through, outermost first.\n *\n * Almost every template fits the layout's own `content` slot, so its chain is just itself. The three\n * nesting-chain templates are the exception, and the only ones that need the walk - which is the honest\n * version of the story: nesting exists for the applications that need it, and costs nothing for the ones\n * that do not.\n */\nfunction containmentChainFor(template: ScreenTemplate): ScreenTemplate[] {\n const depth = nestingChainTemplates.findIndex(candidate => candidate.name === template.name);\n if (depth >= 0) return nestingChainTemplates.slice(0, depth + 1);\n\n // A template that fits a container-qualified slot (`WorkspaceScreen.moduleContent`) renders inside that container, which is what the qualifier is for.\n const [container] = (template.fitsSlot ?? '').split('.');\n const outer = container ? foundationScreenTemplates.find(candidate => candidate.name === container) : undefined;\n return outer ? [outer, template] : [template];\n}\n\nfunction mergeSlotContent(chrome: Record<string, Screen['slotContent'][string]>, content: Record<string, Screen['slotContent'][string]>): Screen['slotContent'] {\n const merged: Screen['slotContent'] = { ...chrome };\n for (const [slotName, elements] of Object.entries(content)) {\n merged[slotName] = [...(merged[slotName] ?? []), ...elements];\n }\n\n return merged;\n}\n\n/**\n * The gallery: one screen per template, ready to boot through the real engine.\n *\n * These exist so a preview is a working miniature application rather than a set of pictures - the same\n * `Screen` shape Stage produces, put through the same `Scene.Engine` and `Scene.React`, with no separate\n * preview pipeline and nothing mocked.\n */\nexport const galleryScreens: Screen[] = galleryScreenTemplates.map(screenFor);\n\n/** One gallery screen by name, for a story or a host that boots a specific one. */\nexport function galleryScreen(name: string): Screen | undefined {\n return galleryScreens.find(screen => screen.name === name);\n}\n"],"names":["galleryScreenTemplates","foundationScreenTemplates","stateScreenTemplates","workspaceTemplates","supportTemplates","authTemplates","statusTemplates","nestingChainTemplates","fullPageTemplateNames","Set","map","template","name","breadcrumbs","Dashboard","label","CrudList","targetScreen","MasterDetail","DetailView","FormPage","Empty","Documentation","ProfileSettings","UserManagement","Invoice","Help","DashboardScreen","ListScreen","BoardScreen","WorkspaceScreen","MasterDetailScreen","RecordPage","FormScreen","WizardScreen","ModuleWorkspace","FeatureSection","SliceSection","screenFor","isFullPage","has","layout","fullPageLayout","appShellLayout","chrome","fullPageChrome","applicationChrome","displayName","placeable","nestScreenTemplates","containmentChainFor","LayoutName","FullPage","AppShell","screenTemplate","slotContent","mergeSlotContent","templateContentInLayout","forms","contributions","navigationContributions","depth","findIndex","candidate","slice","container","fitsSlot","split","outer","find","undefined","content","merged","slotName","elements","Object","entries","galleryScreens","galleryScreen","screen"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -31,7 +31,8 @@ export { coreComponentNames, cratisComponentsNames, primeReactComponentNames } f
31
31
  export { componentNamesIn, distinctComponentNames } from './gallery/componentNames.js';
32
32
  export { galleryComponentCatalog, galleryPreviewProfile, galleryProfile } from './gallery/previewProfile.js';
33
33
  export { resolveElementComponentNames } from './gallery/resolveElementNames.js';
34
- export { GalleryScreenPreview, galleryPreviewRegistry } from './gallery/GalleryScreenPreview.js';
34
+ export { GalleryScreenPreview, forceComponentState, galleryPreviewRegistry, queryResultsOf } from './gallery/GalleryScreenPreview.js';
35
+ export { GalleryDialogPreview, galleryDialogTemplate } from './gallery/GalleryDialogPreview.js';
35
36
  export { TemplatePreviewState } from './gallery/TemplatePreviewState.js';
36
37
  export { applyTemplatePreviewState, hasPreviewData, previewErrorMessage } from './gallery/applyTemplatePreviewState.js';
37
38
  export { readBoolean, readNumber, readOptionalString, readRecords, readString, readStrings, recordString } from './shell/elementProperties.js';
@@ -94,6 +95,9 @@ export { DataList } from './foundation/DataList.js';
94
95
  export { activeTab, readTabs, stepTab } from './foundation/tabModel.js';
95
96
  export { TabSet } from './foundation/TabSet.js';
96
97
  export { SubNavigation } from './foundation/SubNavigation.js';
98
+ export { DialogFrame, DialogPlacement, DialogTone, placementFor, readDialogPlacement } from './foundation/DialogFrame.js';
99
+ export { Notice } from './foundation/Notice.js';
100
+ export { ActionButtonControl } from './foundation/ActionButtonControl.js';
97
101
  export { BulkBar, selectionCount } from './foundation/BulkBar.js';
98
102
  export { GlobalSearch } from './foundation/GlobalSearch.js';
99
103
  export { NotificationsButton } from './foundation/NotificationsButton.js';
@@ -107,6 +111,7 @@ export { bindable, foundationDescriptors, list, standardStateProperties } from '
107
111
  export { foundationComponentMetadata } from './foundation/foundationComponentMetadata.js';
108
112
  export { foundationElement, foundationSamples } from './foundation/foundationSamples.js';
109
113
  export { FoundationStates } from './foundation/FoundationStates.js';
114
+ export { foundationScreenTemplates } from './foundation/templates/index.js';
110
115
  export { blueprintThemeCompatibility } from './themes/blueprintThemeCompatibility.js';
111
116
  export { lightTheme } from './themes/light.js';
112
117
  export { darkTheme } from './themes/dark.js';
@@ -132,4 +137,15 @@ export { PreviewToast } from './preview-host/PreviewToast.js';
132
137
  export { PreviewProblemsView } from './preview-host/PreviewProblemsView.js';
133
138
  export { ApplicationHost } from './preview-host/ApplicationHost.js';
134
139
  export { ScenePreviewHost } from './preview-host/ScenePreviewHost.js';
140
+ export { actionButton, closeDialogBehaviors, closingDialog, dialogActions, dialogMetadata, filterDialogTemplate, foundationDialogTemplates, lookupDialogTemplate, quickCreateDialogTemplate, sideSheetTemplate } from './foundation/templates/dialogTemplates.js';
141
+ export { boardScreenTemplate } from './foundation/templates/boardScreenTemplate.js';
142
+ export { component, foundationTemplateProvenance, fromQuery, thumbnailOf } from './foundation/templates/templateParts.js';
143
+ export { dashboardScreenTemplate } from './foundation/templates/dashboardScreenTemplate.js';
144
+ export { errorScreenTemplate, forbiddenScreenTemplate, foundationTemplateAliases, loginScreenTemplate, notFoundScreenTemplate, stateScreenTemplates } from './foundation/templates/stateScreenTemplates.js';
145
+ export { formScreenTemplate } from './foundation/templates/formScreenTemplate.js';
146
+ export { listScreenTemplate } from './foundation/templates/listScreenTemplate.js';
147
+ export { masterDetailScreenTemplate } from './foundation/templates/masterDetailScreenTemplate.js';
148
+ export { recordPageTemplate } from './foundation/templates/recordPageTemplate.js';
149
+ export { wizardScreenTemplate } from './foundation/templates/wizardScreenTemplate.js';
150
+ export { workspaceScreenTemplate } from './foundation/templates/workspaceScreenTemplate.js';
135
151
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}