@cratis/scene.blueprint.default 4.31.0 → 4.33.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 (226) hide show
  1. package/ComponentName.ts +24 -0
  2. package/defaultBlueprint.ts +2 -1
  3. package/defaultBlueprintComponentMetadata.ts +2 -0
  4. package/defaultBlueprintComponents.ts +9 -0
  5. package/dist/cjs/ComponentName.js +8 -0
  6. package/dist/cjs/ComponentName.js.map +1 -1
  7. package/dist/cjs/defaultBlueprint.js +9 -5
  8. package/dist/cjs/defaultBlueprint.js.map +1 -1
  9. package/dist/cjs/defaultBlueprintComponentMetadata.js +8 -0
  10. package/dist/cjs/defaultBlueprintComponentMetadata.js.map +1 -1
  11. package/dist/cjs/defaultBlueprintComponents.js +21 -1
  12. package/dist/cjs/defaultBlueprintComponents.js.map +1 -1
  13. package/dist/cjs/foundation/ActionButton.js +33 -0
  14. package/dist/cjs/foundation/ActionButton.js.map +1 -0
  15. package/dist/cjs/foundation/ChartWrapper.js +520 -0
  16. package/dist/cjs/foundation/ChartWrapper.js.map +1 -0
  17. package/dist/cjs/foundation/ColumnChooser.js +156 -0
  18. package/dist/cjs/foundation/ColumnChooser.js.map +1 -0
  19. package/dist/cjs/foundation/ComponentState.js +42 -0
  20. package/dist/cjs/foundation/ComponentState.js.map +1 -0
  21. package/dist/cjs/foundation/EmptyState.js +31 -0
  22. package/dist/cjs/foundation/EmptyState.js.map +1 -0
  23. package/dist/cjs/foundation/FilterBuilder.js +307 -0
  24. package/dist/cjs/foundation/FilterBuilder.js.map +1 -0
  25. package/dist/cjs/foundation/FoundationIcon.js +58 -0
  26. package/dist/cjs/foundation/FoundationIcon.js.map +1 -0
  27. package/dist/cjs/foundation/FoundationStates.js +62 -0
  28. package/dist/cjs/foundation/FoundationStates.js.map +1 -0
  29. package/dist/cjs/foundation/PermissionRule.js +22 -0
  30. package/dist/cjs/foundation/PermissionRule.js.map +1 -0
  31. package/dist/cjs/foundation/SavedViewsMenu.js +199 -0
  32. package/dist/cjs/foundation/SavedViewsMenu.js.map +1 -0
  33. package/dist/cjs/foundation/StatCard.js +61 -0
  34. package/dist/cjs/foundation/StatCard.js.map +1 -0
  35. package/dist/cjs/foundation/StateFrame.js +200 -0
  36. package/dist/cjs/foundation/StateFrame.js.map +1 -0
  37. package/dist/cjs/foundation/StatusChip.js +64 -0
  38. package/dist/cjs/foundation/StatusChip.js.map +1 -0
  39. package/dist/cjs/foundation/TrendChip.js +93 -0
  40. package/dist/cjs/foundation/TrendChip.js.map +1 -0
  41. package/dist/cjs/foundation/chartGeometry.js +101 -0
  42. package/dist/cjs/foundation/chartGeometry.js.map +1 -0
  43. package/dist/cjs/foundation/columnModel.js +43 -0
  44. package/dist/cjs/foundation/columnModel.js.map +1 -0
  45. package/dist/cjs/foundation/filterModel.js +123 -0
  46. package/dist/cjs/foundation/filterModel.js.map +1 -0
  47. package/dist/cjs/foundation/formatting.js +85 -0
  48. package/dist/cjs/foundation/formatting.js.map +1 -0
  49. package/dist/cjs/foundation/foundationComponentMetadata.js +69 -0
  50. package/dist/cjs/foundation/foundationComponentMetadata.js.map +1 -0
  51. package/dist/cjs/foundation/foundationDescriptors.js +385 -0
  52. package/dist/cjs/foundation/foundationDescriptors.js.map +1 -0
  53. package/dist/cjs/foundation/foundationSamples.js +201 -0
  54. package/dist/cjs/foundation/foundationSamples.js.map +1 -0
  55. package/dist/cjs/foundation/foundationStrings.js +130 -0
  56. package/dist/cjs/foundation/foundationStrings.js.map +1 -0
  57. package/dist/cjs/foundation/useElementWidth.js +31 -0
  58. package/dist/cjs/foundation/useElementWidth.js.map +1 -0
  59. package/dist/cjs/foundation/viewModel.js +24 -0
  60. package/dist/cjs/foundation/viewModel.js.map +1 -0
  61. package/dist/cjs/index.js +90 -0
  62. package/dist/cjs/index.js.map +1 -1
  63. package/dist/cjs/themes/dark.js +9 -1
  64. package/dist/cjs/themes/dark.js.map +1 -1
  65. package/dist/cjs/themes/light.js +10 -2
  66. package/dist/cjs/themes/light.js.map +1 -1
  67. package/dist/esm/ComponentName.d.ts +9 -1
  68. package/dist/esm/ComponentName.d.ts.map +1 -1
  69. package/dist/esm/ComponentName.js +8 -0
  70. package/dist/esm/ComponentName.js.map +1 -1
  71. package/dist/esm/defaultBlueprint.d.ts.map +1 -1
  72. package/dist/esm/defaultBlueprint.js +9 -5
  73. package/dist/esm/defaultBlueprint.js.map +1 -1
  74. package/dist/esm/defaultBlueprintComponentMetadata.d.ts.map +1 -1
  75. package/dist/esm/defaultBlueprintComponentMetadata.js +8 -0
  76. package/dist/esm/defaultBlueprintComponentMetadata.js.map +1 -1
  77. package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -1
  78. package/dist/esm/defaultBlueprintComponents.js +21 -1
  79. package/dist/esm/defaultBlueprintComponents.js.map +1 -1
  80. package/dist/esm/foundation/ActionButton.d.ts +13 -0
  81. package/dist/esm/foundation/ActionButton.d.ts.map +1 -0
  82. package/dist/esm/foundation/ActionButton.js +31 -0
  83. package/dist/esm/foundation/ActionButton.js.map +1 -0
  84. package/dist/esm/foundation/ChartWrapper.d.ts +5 -0
  85. package/dist/esm/foundation/ChartWrapper.d.ts.map +1 -0
  86. package/dist/esm/foundation/ChartWrapper.js +517 -0
  87. package/dist/esm/foundation/ChartWrapper.js.map +1 -0
  88. package/dist/esm/foundation/ColumnChooser.d.ts +3 -0
  89. package/dist/esm/foundation/ColumnChooser.d.ts.map +1 -0
  90. package/dist/esm/foundation/ColumnChooser.js +154 -0
  91. package/dist/esm/foundation/ColumnChooser.js.map +1 -0
  92. package/dist/esm/foundation/ComponentState.d.ts +12 -0
  93. package/dist/esm/foundation/ComponentState.d.ts.map +1 -0
  94. package/dist/esm/foundation/ComponentState.js +38 -0
  95. package/dist/esm/foundation/ComponentState.js.map +1 -0
  96. package/dist/esm/foundation/EmptyState.d.ts +3 -0
  97. package/dist/esm/foundation/EmptyState.d.ts.map +1 -0
  98. package/dist/esm/foundation/EmptyState.js +29 -0
  99. package/dist/esm/foundation/EmptyState.js.map +1 -0
  100. package/dist/esm/foundation/FilterBuilder.d.ts +3 -0
  101. package/dist/esm/foundation/FilterBuilder.d.ts.map +1 -0
  102. package/dist/esm/foundation/FilterBuilder.js +305 -0
  103. package/dist/esm/foundation/FilterBuilder.js.map +1 -0
  104. package/dist/esm/foundation/Foundation.stories.d.ts +37 -0
  105. package/dist/esm/foundation/Foundation.stories.d.ts.map +1 -0
  106. package/dist/esm/foundation/Foundation.stories.js +34 -0
  107. package/dist/esm/foundation/Foundation.stories.js.map +1 -0
  108. package/dist/esm/foundation/FoundationIcon.d.ts +7 -0
  109. package/dist/esm/foundation/FoundationIcon.d.ts.map +1 -0
  110. package/dist/esm/foundation/FoundationIcon.js +55 -0
  111. package/dist/esm/foundation/FoundationIcon.js.map +1 -0
  112. package/dist/esm/foundation/FoundationStates.d.ts +8 -0
  113. package/dist/esm/foundation/FoundationStates.d.ts.map +1 -0
  114. package/dist/esm/foundation/FoundationStates.js +60 -0
  115. package/dist/esm/foundation/FoundationStates.js.map +1 -0
  116. package/dist/esm/foundation/PermissionRule.d.ts +8 -0
  117. package/dist/esm/foundation/PermissionRule.d.ts.map +1 -0
  118. package/dist/esm/foundation/PermissionRule.js +19 -0
  119. package/dist/esm/foundation/PermissionRule.js.map +1 -0
  120. package/dist/esm/foundation/SavedViewsMenu.d.ts +4 -0
  121. package/dist/esm/foundation/SavedViewsMenu.d.ts.map +1 -0
  122. package/dist/esm/foundation/SavedViewsMenu.js +196 -0
  123. package/dist/esm/foundation/SavedViewsMenu.js.map +1 -0
  124. package/dist/esm/foundation/StatCard.d.ts +3 -0
  125. package/dist/esm/foundation/StatCard.d.ts.map +1 -0
  126. package/dist/esm/foundation/StatCard.js +59 -0
  127. package/dist/esm/foundation/StatCard.js.map +1 -0
  128. package/dist/esm/foundation/StateFrame.d.ts +15 -0
  129. package/dist/esm/foundation/StateFrame.d.ts.map +1 -0
  130. package/dist/esm/foundation/StateFrame.js +197 -0
  131. package/dist/esm/foundation/StateFrame.js.map +1 -0
  132. package/dist/esm/foundation/StatusChip.d.ts +13 -0
  133. package/dist/esm/foundation/StatusChip.d.ts.map +1 -0
  134. package/dist/esm/foundation/StatusChip.js +59 -0
  135. package/dist/esm/foundation/StatusChip.js.map +1 -0
  136. package/dist/esm/foundation/TrendChip.d.ts +18 -0
  137. package/dist/esm/foundation/TrendChip.d.ts.map +1 -0
  138. package/dist/esm/foundation/TrendChip.js +88 -0
  139. package/dist/esm/foundation/TrendChip.js.map +1 -0
  140. package/dist/esm/foundation/chartGeometry.d.ts +34 -0
  141. package/dist/esm/foundation/chartGeometry.d.ts.map +1 -0
  142. package/dist/esm/foundation/chartGeometry.js +93 -0
  143. package/dist/esm/foundation/chartGeometry.js.map +1 -0
  144. package/dist/esm/foundation/columnModel.d.ts +11 -0
  145. package/dist/esm/foundation/columnModel.d.ts.map +1 -0
  146. package/dist/esm/foundation/columnModel.js +38 -0
  147. package/dist/esm/foundation/columnModel.js.map +1 -0
  148. package/dist/esm/foundation/filterModel.d.ts +33 -0
  149. package/dist/esm/foundation/filterModel.d.ts.map +1 -0
  150. package/dist/esm/foundation/filterModel.js +112 -0
  151. package/dist/esm/foundation/filterModel.js.map +1 -0
  152. package/dist/esm/foundation/formatting.d.ts +13 -0
  153. package/dist/esm/foundation/formatting.d.ts.map +1 -0
  154. package/dist/esm/foundation/formatting.js +78 -0
  155. package/dist/esm/foundation/formatting.js.map +1 -0
  156. package/dist/esm/foundation/foundationComponentMetadata.d.ts +3 -0
  157. package/dist/esm/foundation/foundationComponentMetadata.d.ts.map +1 -0
  158. package/dist/esm/foundation/foundationComponentMetadata.js +67 -0
  159. package/dist/esm/foundation/foundationComponentMetadata.js.map +1 -0
  160. package/dist/esm/foundation/foundationDescriptors.d.ts +6 -0
  161. package/dist/esm/foundation/foundationDescriptors.d.ts.map +1 -0
  162. package/dist/esm/foundation/foundationDescriptors.js +380 -0
  163. package/dist/esm/foundation/foundationDescriptors.js.map +1 -0
  164. package/dist/esm/foundation/foundationSamples.d.ts +10 -0
  165. package/dist/esm/foundation/foundationSamples.d.ts.map +1 -0
  166. package/dist/esm/foundation/foundationSamples.js +198 -0
  167. package/dist/esm/foundation/foundationSamples.js.map +1 -0
  168. package/dist/esm/foundation/foundationStrings.d.ts +103 -0
  169. package/dist/esm/foundation/foundationStrings.d.ts.map +1 -0
  170. package/dist/esm/foundation/foundationStrings.js +126 -0
  171. package/dist/esm/foundation/foundationStrings.js.map +1 -0
  172. package/dist/esm/foundation/index.d.ts +25 -0
  173. package/dist/esm/foundation/index.d.ts.map +1 -0
  174. package/dist/esm/foundation/index.js +25 -0
  175. package/dist/esm/foundation/index.js.map +1 -0
  176. package/dist/esm/foundation/useElementWidth.d.ts +3 -0
  177. package/dist/esm/foundation/useElementWidth.d.ts.map +1 -0
  178. package/dist/esm/foundation/useElementWidth.js +29 -0
  179. package/dist/esm/foundation/useElementWidth.js.map +1 -0
  180. package/dist/esm/foundation/viewModel.d.ts +7 -0
  181. package/dist/esm/foundation/viewModel.d.ts.map +1 -0
  182. package/dist/esm/foundation/viewModel.js +22 -0
  183. package/dist/esm/foundation/viewModel.js.map +1 -0
  184. package/dist/esm/gallery/widgets.js +1 -1
  185. package/dist/esm/index.d.ts +1 -0
  186. package/dist/esm/index.d.ts.map +1 -1
  187. package/dist/esm/index.js +24 -0
  188. package/dist/esm/index.js.map +1 -1
  189. package/dist/esm/themes/dark.d.ts.map +1 -1
  190. package/dist/esm/themes/dark.js +9 -1
  191. package/dist/esm/themes/dark.js.map +1 -1
  192. package/dist/esm/themes/light.d.ts.map +1 -1
  193. package/dist/esm/themes/light.js +10 -2
  194. package/dist/esm/themes/light.js.map +1 -1
  195. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  196. package/foundation/ActionButton.tsx +39 -0
  197. package/foundation/ChartWrapper.tsx +252 -0
  198. package/foundation/ColumnChooser.tsx +73 -0
  199. package/foundation/ComponentState.ts +53 -0
  200. package/foundation/EmptyState.tsx +22 -0
  201. package/foundation/FilterBuilder.tsx +144 -0
  202. package/foundation/Foundation.stories.tsx +46 -0
  203. package/foundation/FoundationIcon.tsx +49 -0
  204. package/foundation/FoundationStates.tsx +46 -0
  205. package/foundation/PermissionRule.ts +26 -0
  206. package/foundation/SavedViewsMenu.tsx +94 -0
  207. package/foundation/StatCard.tsx +44 -0
  208. package/foundation/StateFrame.tsx +126 -0
  209. package/foundation/StatusChip.tsx +51 -0
  210. package/foundation/TrendChip.tsx +78 -0
  211. package/foundation/chartGeometry.ts +108 -0
  212. package/foundation/columnModel.ts +39 -0
  213. package/foundation/filterModel.ts +111 -0
  214. package/foundation/formatting.ts +69 -0
  215. package/foundation/foundationComponentMetadata.ts +21 -0
  216. package/foundation/foundationDescriptors.ts +204 -0
  217. package/foundation/foundationSamples.ts +63 -0
  218. package/foundation/foundationStrings.ts +137 -0
  219. package/foundation/index.ts +27 -0
  220. package/foundation/useElementWidth.ts +31 -0
  221. package/foundation/viewModel.ts +21 -0
  222. package/index.ts +1 -0
  223. package/package.json +9 -8
  224. package/shell/layout.css +526 -0
  225. package/themes/dark.ts +8 -0
  226. package/themes/light.ts +9 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundationSamples.js","sources":["../../../foundation/foundationSamples.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 { ExternalComponent } from '@cratis/scene.model';\nimport { componentRegistryKey } from '@cratis/scene.react';\nimport { ComponentName } from '../ComponentName';\nimport { defaultBlueprintName } from '../packageName';\nimport { ComponentState } from './ComponentState';\n\n/**\n * What a story or a specification feeds each foundation component to see it populated.\n *\n * These are design-time and test-time values, never part of what a component is: a component declares the shape of its data\n * and a screen binds it to a query (spec SD1). The domain blueprints supply real preview data as sample-data packs; this is\n * only enough to draw each component in each state.\n */\nexport interface FoundationSample {\n /** The properties that make the component populated. */\n properties: Record<string, unknown>;\n\n /** Text that only appears when the component shows its data, so a specification can prove the no-permission state shows none of it. */\n data: string[];\n\n /** Whether the component shows data and so owns the five standard states; chips and the empty state themselves do not. */\n stateful: boolean;\n}\n\nexport const foundationSamples: Record<string, FoundationSample> = {\n [ComponentName.EmptyState]: { properties: { headline: 'No invoices yet', hint: 'Invoices you create appear here.', icon: 'file', actionLabel: 'New invoice' }, data: [], stateful: false },\n [ComponentName.StatCard]: { properties: { label: 'Open pipeline', value: 1234567, format: 'currency', currency: 'USD', change: 12.5, comparison: 'last month', locale: 'en-US' }, data: ['$1,234,567'], stateful: true },\n [ComponentName.TrendChip]: { properties: { change: -3.2, goodDirection: 'down', comparison: 'last week', locale: 'en-US' }, data: [], stateful: false },\n [ComponentName.StatusChip]: { properties: { status: 'Awaiting approval', tone: 'warning' }, data: [], stateful: false },\n [ComponentName.ChartWrapper]: {\n properties: { title: 'Revenue by quarter', kind: 'line', categories: ['Q1', 'Q2', 'Q3', 'Q4'], series: [{ name: 'Revenue', values: [120, 180, 150, 240] }, { name: 'Target', values: [100, 150, 200, 220] }], locale: 'en-US' },\n data: ['Revenue by quarter'], stateful: true,\n },\n [ComponentName.FilterBuilder]: {\n properties: {\n fields: [{ name: 'owner', label: 'Owner', type: 'text' }, { name: 'status', label: 'Status', type: 'select', options: ['Open', 'Won', 'Lost'] }, { name: 'value', label: 'Value', type: 'number' }],\n filter: { operator: 'and', conditions: [{ field: 'status', operator: 'is', value: 'Open' }, { field: 'owner', operator: 'contains', value: 'Ada' }], groups: [] },\n },\n data: ['2 active filters'], stateful: true,\n },\n [ComponentName.ColumnChooser]: {\n properties: { columns: [{ id: 'name', label: 'Name', locked: true }, { id: 'owner', label: 'Owner' }, { id: 'status', label: 'Status', visible: false }] },\n data: ['3 shown'], stateful: true,\n },\n [ComponentName.SavedViewsMenu]: {\n properties: { views: [{ id: 'all', label: 'All leads' }, { id: 'mine', label: 'Mine' }, { id: 'overdue', label: 'Overdue' }], activeView: 'mine' },\n data: ['Mine'], stateful: true,\n },\n};\n\n/** A scene element for a foundation component, populated with its sample unless properties are given, with the state forced when asked. */\nexport function foundationElement(name: string, properties?: Record<string, unknown>, state?: ComponentState): ExternalComponent {\n const sample = foundationSamples[name];\n return {\n id: `${name}-sample`,\n componentName: componentRegistryKey(defaultBlueprintName, name),\n properties: { ...(properties ?? sample?.properties ?? {}), ...(state === undefined ? {} : { state }) },\n slots: {},\n } as unknown as ExternalComponent;\n}\n"],"names":["foundationSamples","ComponentName","EmptyState","properties","headline","hint","icon","actionLabel","data","stateful","StatCard","label","value","format","currency","change","comparison","locale","TrendChip","goodDirection","StatusChip","status","tone","ChartWrapper","title","kind","categories","series","name","values","FilterBuilder","fields","type","options","filter","operator","conditions","field","groups","ColumnChooser","columns","id","locked","visible","SavedViewsMenu","views","activeView","foundationElement","state","sample","componentName","componentRegistryKey","defaultBlueprintName","undefined","slots"],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /**
6
+ * Every piece of text the foundation components say themselves, as opposed to text a screen author or a bound query
7
+ * supplies. Nothing is hard-coded in a component (spec Part B 1.5): a component reads its text from here, merged with
8
+ * the `strings` property of the element, so an application localizes by supplying a table - and a bound string
9
+ * (a `{name}` placeholder is replaced by the values the component passes) arrives the same way any other property does.
10
+ */ const foundationStrings = {
11
+ loading: 'Loading',
12
+ emptyHeadline: 'Nothing here yet',
13
+ emptyHint: 'There is nothing to show for now.',
14
+ errorHeadline: 'This could not be loaded',
15
+ errorHint: 'Something went wrong while loading. Try again in a moment.',
16
+ retry: 'Try again',
17
+ noPermissionHeadline: 'You do not have access',
18
+ noPermissionHint: 'Ask an administrator to grant you access to {subject}.',
19
+ noPermissionSubject: 'this content',
20
+ partialHeadline: 'Some parts could not be loaded',
21
+ partialHint: 'The unavailable parts are: {regions}.',
22
+ disabledNoPermission: 'You do not have permission to do this',
23
+ trendUp: 'up {value}',
24
+ trendDown: 'down {value}',
25
+ trendFlat: 'unchanged',
26
+ trendComparison: 'compared to {period}',
27
+ statusSuccess: 'Success',
28
+ statusWarning: 'Warning',
29
+ statusDanger: 'Problem',
30
+ statusInfo: 'Information',
31
+ statusNeutral: 'Status',
32
+ chartNoData: 'No data to chart',
33
+ chartDataTable: 'Chart data',
34
+ chartSeries: 'Series',
35
+ chartCategory: 'Category',
36
+ filterAdd: 'Add condition',
37
+ filterAddGroup: 'Add group',
38
+ filterRemove: 'Remove condition',
39
+ filterRemoveGroup: 'Remove group',
40
+ filterMatchAll: 'Match all (AND)',
41
+ filterMatchAny: 'Match any (OR)',
42
+ filterField: 'Field',
43
+ filterOperator: 'Operator',
44
+ filterValue: 'Value',
45
+ filterClear: 'Clear filters',
46
+ filterCondition: 'Condition {n}',
47
+ filterGroup: 'Group {n}',
48
+ filterNoFields: 'There are no fields to filter on',
49
+ opContains: 'contains',
50
+ opEquals: 'equals',
51
+ opNotEquals: 'does not equal',
52
+ opStartsWith: 'starts with',
53
+ opIsEmpty: 'is empty',
54
+ opGreater: 'is greater than',
55
+ opGreaterOrEqual: 'is at least',
56
+ opLess: 'is less than',
57
+ opLessOrEqual: 'is at most',
58
+ opBefore: 'is before',
59
+ opAfter: 'is after',
60
+ opOn: 'is on',
61
+ opIs: 'is',
62
+ opIsNot: 'is not',
63
+ opTrue: 'is yes',
64
+ opFalse: 'is no',
65
+ filterSummary: '{count} active filters',
66
+ filterSummaryOne: '1 active filter',
67
+ columnsChoose: 'Columns',
68
+ columnsLocked: 'always shown',
69
+ columnsReset: 'Show all columns',
70
+ columnsMoveUp: 'Move {name} up',
71
+ columnsMoveDown: 'Move {name} down',
72
+ columnsShown: '{shown} of {total} shown',
73
+ columnsNone: 'There are no columns to choose from',
74
+ viewsLabel: 'Saved views',
75
+ viewsDefault: 'All items',
76
+ viewsSave: 'Save current view',
77
+ viewsManage: 'Manage views',
78
+ viewsNone: 'There are no saved views',
79
+ checklistProgress: '{done} of {total} complete',
80
+ checklistOwner: 'Owner',
81
+ checklistDue: 'Due',
82
+ activityEmpty: 'No activity yet',
83
+ avatarOverflow: '{count} more',
84
+ avatarPeople: '{count} people',
85
+ uploadDrop: 'Drop files here or',
86
+ uploadBrowse: 'Browse files',
87
+ uploadRemove: 'Remove {name}',
88
+ uploadTooLarge: '{name} is larger than {limit}',
89
+ uploadWrongType: '{name} is not an accepted file type',
90
+ uploadUploading: 'Uploading',
91
+ uploadDone: 'Uploaded',
92
+ uploadFailed: 'Upload failed',
93
+ approvalPending: 'Pending',
94
+ approvalCurrent: 'Awaiting decision',
95
+ approvalApproved: 'Approved',
96
+ approvalRejected: 'Rejected',
97
+ approvalSkipped: 'Skipped',
98
+ approvalChain: 'Approval chain',
99
+ orgExpand: 'Expand {name}',
100
+ orgCollapse: 'Collapse {name}',
101
+ orgReports: '{count} reports',
102
+ matrixAllowed: 'Allowed',
103
+ matrixDenied: 'Not allowed',
104
+ matrixGrant: 'Grant {permission} to {role}',
105
+ matrixReadOnly: 'Read-only'
106
+ };
107
+ /**
108
+ * The foundation strings with the element's own `strings` property laid over them.
109
+ *
110
+ * Only string values of known names are taken, so a typo in an application's table falls back to the default text
111
+ * rather than rendering nothing.
112
+ */ function readFoundationStrings(element) {
113
+ const supplied = element.properties.strings;
114
+ const result = {
115
+ ...foundationStrings
116
+ };
117
+ if (typeof supplied !== 'object' || supplied === null || Array.isArray(supplied)) return result;
118
+ for (const [name, value] of Object.entries(supplied)){
119
+ if (name in foundationStrings && typeof value === 'string') result[name] = value;
120
+ }
121
+ return result;
122
+ }
123
+ /** Replaces each `{name}` in a string with the value of the same name, leaving an unknown placeholder visible rather than blank. */ function formatText(text, values = {}) {
124
+ return text.replace(/\{(\w+)\}/g, (placeholder, name)=>name in values ? String(values[name]) : placeholder);
125
+ }
126
+
127
+ exports.formatText = formatText;
128
+ exports.foundationStrings = foundationStrings;
129
+ exports.readFoundationStrings = readFoundationStrings;
130
+ //# sourceMappingURL=foundationStrings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundationStrings.js","sources":["../../../foundation/foundationStrings.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 { ExternalComponent } from '@cratis/scene.model';\n\n/**\n * Every piece of text the foundation components say themselves, as opposed to text a screen author or a bound query\n * supplies. Nothing is hard-coded in a component (spec Part B 1.5): a component reads its text from here, merged with\n * the `strings` property of the element, so an application localizes by supplying a table - and a bound string\n * (a `{name}` placeholder is replaced by the values the component passes) arrives the same way any other property does.\n */\nexport const foundationStrings = {\n loading: 'Loading',\n emptyHeadline: 'Nothing here yet',\n emptyHint: 'There is nothing to show for now.',\n errorHeadline: 'This could not be loaded',\n errorHint: 'Something went wrong while loading. Try again in a moment.',\n retry: 'Try again',\n noPermissionHeadline: 'You do not have access',\n noPermissionHint: 'Ask an administrator to grant you access to {subject}.',\n noPermissionSubject: 'this content',\n partialHeadline: 'Some parts could not be loaded',\n partialHint: 'The unavailable parts are: {regions}.',\n disabledNoPermission: 'You do not have permission to do this',\n trendUp: 'up {value}',\n trendDown: 'down {value}',\n trendFlat: 'unchanged',\n trendComparison: 'compared to {period}',\n statusSuccess: 'Success',\n statusWarning: 'Warning',\n statusDanger: 'Problem',\n statusInfo: 'Information',\n statusNeutral: 'Status',\n chartNoData: 'No data to chart',\n chartDataTable: 'Chart data',\n chartSeries: 'Series',\n chartCategory: 'Category',\n filterAdd: 'Add condition',\n filterAddGroup: 'Add group',\n filterRemove: 'Remove condition',\n filterRemoveGroup: 'Remove group',\n filterMatchAll: 'Match all (AND)',\n filterMatchAny: 'Match any (OR)',\n filterField: 'Field',\n filterOperator: 'Operator',\n filterValue: 'Value',\n filterClear: 'Clear filters',\n filterCondition: 'Condition {n}',\n filterGroup: 'Group {n}',\n filterNoFields: 'There are no fields to filter on',\n opContains: 'contains',\n opEquals: 'equals',\n opNotEquals: 'does not equal',\n opStartsWith: 'starts with',\n opIsEmpty: 'is empty',\n opGreater: 'is greater than',\n opGreaterOrEqual: 'is at least',\n opLess: 'is less than',\n opLessOrEqual: 'is at most',\n opBefore: 'is before',\n opAfter: 'is after',\n opOn: 'is on',\n opIs: 'is',\n opIsNot: 'is not',\n opTrue: 'is yes',\n opFalse: 'is no',\n filterSummary: '{count} active filters',\n filterSummaryOne: '1 active filter',\n columnsChoose: 'Columns',\n columnsLocked: 'always shown',\n columnsReset: 'Show all columns',\n columnsMoveUp: 'Move {name} up',\n columnsMoveDown: 'Move {name} down',\n columnsShown: '{shown} of {total} shown',\n columnsNone: 'There are no columns to choose from',\n viewsLabel: 'Saved views',\n viewsDefault: 'All items',\n viewsSave: 'Save current view',\n viewsManage: 'Manage views',\n viewsNone: 'There are no saved views',\n checklistProgress: '{done} of {total} complete',\n checklistOwner: 'Owner',\n checklistDue: 'Due',\n activityEmpty: 'No activity yet',\n avatarOverflow: '{count} more',\n avatarPeople: '{count} people',\n uploadDrop: 'Drop files here or',\n uploadBrowse: 'Browse files',\n uploadRemove: 'Remove {name}',\n uploadTooLarge: '{name} is larger than {limit}',\n uploadWrongType: '{name} is not an accepted file type',\n uploadUploading: 'Uploading',\n uploadDone: 'Uploaded',\n uploadFailed: 'Upload failed',\n approvalPending: 'Pending',\n approvalCurrent: 'Awaiting decision',\n approvalApproved: 'Approved',\n approvalRejected: 'Rejected',\n approvalSkipped: 'Skipped',\n approvalChain: 'Approval chain',\n orgExpand: 'Expand {name}',\n orgCollapse: 'Collapse {name}',\n orgReports: '{count} reports',\n matrixAllowed: 'Allowed',\n matrixDenied: 'Not allowed',\n matrixGrant: 'Grant {permission} to {role}',\n matrixReadOnly: 'Read-only',\n} as const;\n\n/** The name of one of the foundation strings. */\nexport type FoundationStringName = keyof typeof foundationStrings;\n\n/** The text table a foundation component works with. */\nexport type FoundationStrings = Record<FoundationStringName, string>;\n\n/**\n * The foundation strings with the element's own `strings` property laid over them.\n *\n * Only string values of known names are taken, so a typo in an application's table falls back to the default text\n * rather than rendering nothing.\n */\nexport function readFoundationStrings(element: ExternalComponent): FoundationStrings {\n const supplied = element.properties.strings;\n const result: FoundationStrings = { ...foundationStrings };\n if (typeof supplied !== 'object' || supplied === null || Array.isArray(supplied)) return result;\n\n for (const [name, value] of Object.entries(supplied as Record<string, unknown>)) {\n if (name in foundationStrings && typeof value === 'string') result[name as FoundationStringName] = value;\n }\n\n return result;\n}\n\n/** Replaces each `{name}` in a string with the value of the same name, leaving an unknown placeholder visible rather than blank. */\nexport function formatText(text: string, values: Record<string, string | number> = {}): string {\n return text.replace(/\\{(\\w+)\\}/g, (placeholder, name: string) => (name in values ? String(values[name]) : placeholder));\n}\n"],"names":["foundationStrings","loading","emptyHeadline","emptyHint","errorHeadline","errorHint","retry","noPermissionHeadline","noPermissionHint","noPermissionSubject","partialHeadline","partialHint","disabledNoPermission","trendUp","trendDown","trendFlat","trendComparison","statusSuccess","statusWarning","statusDanger","statusInfo","statusNeutral","chartNoData","chartDataTable","chartSeries","chartCategory","filterAdd","filterAddGroup","filterRemove","filterRemoveGroup","filterMatchAll","filterMatchAny","filterField","filterOperator","filterValue","filterClear","filterCondition","filterGroup","filterNoFields","opContains","opEquals","opNotEquals","opStartsWith","opIsEmpty","opGreater","opGreaterOrEqual","opLess","opLessOrEqual","opBefore","opAfter","opOn","opIs","opIsNot","opTrue","opFalse","filterSummary","filterSummaryOne","columnsChoose","columnsLocked","columnsReset","columnsMoveUp","columnsMoveDown","columnsShown","columnsNone","viewsLabel","viewsDefault","viewsSave","viewsManage","viewsNone","checklistProgress","checklistOwner","checklistDue","activityEmpty","avatarOverflow","avatarPeople","uploadDrop","uploadBrowse","uploadRemove","uploadTooLarge","uploadWrongType","uploadUploading","uploadDone","uploadFailed","approvalPending","approvalCurrent","approvalApproved","approvalRejected","approvalSkipped","approvalChain","orgExpand","orgCollapse","orgReports","matrixAllowed","matrixDenied","matrixGrant","matrixReadOnly","readFoundationStrings","element","supplied","properties","strings","result","Array","isArray","name","value","Object","entries","formatText","text","values","replace","placeholder","String"],"mappings":";;AAAA;AACA;AAIA;;;;;UAMaA,iBAAAA,GAAoB;IAC7BC,OAAAA,EAAS,SAAA;IACTC,aAAAA,EAAe,kBAAA;IACfC,SAAAA,EAAW,mCAAA;IACXC,aAAAA,EAAe,0BAAA;IACfC,SAAAA,EAAW,4DAAA;IACXC,KAAAA,EAAO,WAAA;IACPC,oBAAAA,EAAsB,wBAAA;IACtBC,gBAAAA,EAAkB,wDAAA;IAClBC,mBAAAA,EAAqB,cAAA;IACrBC,eAAAA,EAAiB,gCAAA;IACjBC,WAAAA,EAAa,uCAAA;IACbC,oBAAAA,EAAsB,uCAAA;IACtBC,OAAAA,EAAS,YAAA;IACTC,SAAAA,EAAW,cAAA;IACXC,SAAAA,EAAW,WAAA;IACXC,eAAAA,EAAiB,sBAAA;IACjBC,aAAAA,EAAe,SAAA;IACfC,aAAAA,EAAe,SAAA;IACfC,YAAAA,EAAc,SAAA;IACdC,UAAAA,EAAY,aAAA;IACZC,aAAAA,EAAe,QAAA;IACfC,WAAAA,EAAa,kBAAA;IACbC,cAAAA,EAAgB,YAAA;IAChBC,WAAAA,EAAa,QAAA;IACbC,aAAAA,EAAe,UAAA;IACfC,SAAAA,EAAW,eAAA;IACXC,cAAAA,EAAgB,WAAA;IAChBC,YAAAA,EAAc,kBAAA;IACdC,iBAAAA,EAAmB,cAAA;IACnBC,cAAAA,EAAgB,iBAAA;IAChBC,cAAAA,EAAgB,gBAAA;IAChBC,WAAAA,EAAa,OAAA;IACbC,cAAAA,EAAgB,UAAA;IAChBC,WAAAA,EAAa,OAAA;IACbC,WAAAA,EAAa,eAAA;IACbC,eAAAA,EAAiB,eAAA;IACjBC,WAAAA,EAAa,WAAA;IACbC,cAAAA,EAAgB,kCAAA;IAChBC,UAAAA,EAAY,UAAA;IACZC,QAAAA,EAAU,QAAA;IACVC,WAAAA,EAAa,gBAAA;IACbC,YAAAA,EAAc,aAAA;IACdC,SAAAA,EAAW,UAAA;IACXC,SAAAA,EAAW,iBAAA;IACXC,gBAAAA,EAAkB,aAAA;IAClBC,MAAAA,EAAQ,cAAA;IACRC,aAAAA,EAAe,YAAA;IACfC,QAAAA,EAAU,WAAA;IACVC,OAAAA,EAAS,UAAA;IACTC,IAAAA,EAAM,OAAA;IACNC,IAAAA,EAAM,IAAA;IACNC,OAAAA,EAAS,QAAA;IACTC,MAAAA,EAAQ,QAAA;IACRC,OAAAA,EAAS,OAAA;IACTC,aAAAA,EAAe,wBAAA;IACfC,gBAAAA,EAAkB,iBAAA;IAClBC,aAAAA,EAAe,SAAA;IACfC,aAAAA,EAAe,cAAA;IACfC,YAAAA,EAAc,kBAAA;IACdC,aAAAA,EAAe,gBAAA;IACfC,eAAAA,EAAiB,kBAAA;IACjBC,YAAAA,EAAc,0BAAA;IACdC,WAAAA,EAAa,qCAAA;IACbC,UAAAA,EAAY,aAAA;IACZC,YAAAA,EAAc,WAAA;IACdC,SAAAA,EAAW,mBAAA;IACXC,WAAAA,EAAa,cAAA;IACbC,SAAAA,EAAW,0BAAA;IACXC,iBAAAA,EAAmB,4BAAA;IACnBC,cAAAA,EAAgB,OAAA;IAChBC,YAAAA,EAAc,KAAA;IACdC,aAAAA,EAAe,iBAAA;IACfC,cAAAA,EAAgB,cAAA;IAChBC,YAAAA,EAAc,gBAAA;IACdC,UAAAA,EAAY,oBAAA;IACZC,YAAAA,EAAc,cAAA;IACdC,YAAAA,EAAc,eAAA;IACdC,cAAAA,EAAgB,+BAAA;IAChBC,eAAAA,EAAiB,qCAAA;IACjBC,eAAAA,EAAiB,WAAA;IACjBC,UAAAA,EAAY,UAAA;IACZC,YAAAA,EAAc,eAAA;IACdC,eAAAA,EAAiB,SAAA;IACjBC,eAAAA,EAAiB,mBAAA;IACjBC,gBAAAA,EAAkB,UAAA;IAClBC,gBAAAA,EAAkB,UAAA;IAClBC,eAAAA,EAAiB,SAAA;IACjBC,aAAAA,EAAe,gBAAA;IACfC,SAAAA,EAAW,eAAA;IACXC,WAAAA,EAAa,iBAAA;IACbC,UAAAA,EAAY,iBAAA;IACZC,aAAAA,EAAe,SAAA;IACfC,YAAAA,EAAc,aAAA;IACdC,WAAAA,EAAa,8BAAA;IACbC,cAAAA,EAAgB;AACpB;AAQA;;;;;IAMO,SAASC,qBAAAA,CAAsBC,OAA0B,EAAA;AAC5D,IAAA,MAAMC,QAAAA,GAAWD,OAAAA,CAAQE,UAAU,CAACC,OAAO;AAC3C,IAAA,MAAMC,MAAAA,GAA4B;AAAE,QAAA,GAAGrG;AAAkB,KAAA;IACzD,IAAI,OAAOkG,aAAa,QAAA,IAAYA,QAAAA,KAAa,QAAQI,KAAAA,CAAMC,OAAO,CAACL,QAAAA,CAAAA,EAAW,OAAOG,MAAAA;IAEzF,KAAK,MAAM,CAACG,IAAAA,EAAMC,KAAAA,CAAM,IAAIC,MAAAA,CAAOC,OAAO,CAACT,QAAAA,CAAAA,CAAsC;QAC7E,IAAIM,IAAAA,IAAQxG,qBAAqB,OAAOyG,KAAAA,KAAU,UAAUJ,MAAM,CAACG,KAA6B,GAAGC,KAAAA;AACvG,IAAA;IAEA,OAAOJ,MAAAA;AACX;AAEA,qIACO,SAASO,UAAAA,CAAWC,IAAY,EAAEC,MAAAA,GAA0C,EAAE,EAAA;AACjF,IAAA,OAAOD,IAAAA,CAAKE,OAAO,CAAC,YAAA,EAAc,CAACC,WAAAA,EAAaR,IAAAA,GAAkBA,IAAAA,IAAQM,MAAAA,GAASG,MAAAA,CAAOH,MAAM,CAACN,KAAK,CAAA,GAAIQ,WAAAA,CAAAA;AAC9G;;;;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ // Copyright (c) Cratis. All rights reserved.
6
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
7
+ /**
8
+ * The width of an element, kept up to date, so a chart can draw at the size it is shown at instead of scaling a fixed drawing -
9
+ * which would shrink its labels with it on a phone. Where there is no `ResizeObserver` (a test environment) the fallback is used.
10
+ */ function useElementWidth(reference, fallback) {
11
+ const [width, setWidth] = react.useState(fallback);
12
+ react.useLayoutEffect(()=>{
13
+ const element = reference.current;
14
+ if (!element) return;
15
+ const measure = ()=>{
16
+ const measured = Math.round(element.getBoundingClientRect().width);
17
+ if (measured > 0) setWidth(measured);
18
+ };
19
+ measure();
20
+ if (typeof ResizeObserver === 'undefined') return;
21
+ const observer = new ResizeObserver(measure);
22
+ observer.observe(element);
23
+ return ()=>observer.disconnect();
24
+ }, [
25
+ reference
26
+ ]);
27
+ return width;
28
+ }
29
+
30
+ exports.useElementWidth = useElementWidth;
31
+ //# sourceMappingURL=useElementWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useElementWidth.js","sources":["../../../foundation/useElementWidth.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 { RefObject, useLayoutEffect, useState } from 'react';\n\n/**\n * The width of an element, kept up to date, so a chart can draw at the size it is shown at instead of scaling a fixed drawing -\n * which would shrink its labels with it on a phone. Where there is no `ResizeObserver` (a test environment) the fallback is used.\n */\nexport function useElementWidth(reference: RefObject<HTMLElement | null>, fallback: number): number {\n const [width, setWidth] = useState(fallback);\n\n useLayoutEffect(() => {\n const element = reference.current;\n if (!element) return;\n\n const measure = () => {\n const measured = Math.round(element.getBoundingClientRect().width);\n if (measured > 0) setWidth(measured);\n };\n\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(measure);\n observer.observe(element);\n return () => observer.disconnect();\n }, [reference]);\n\n return width;\n}\n"],"names":["useElementWidth","reference","fallback","width","setWidth","useState","useLayoutEffect","element","current","measure","measured","Math","round","getBoundingClientRect","ResizeObserver","observer","observe","disconnect"],"mappings":";;;;AAAA;AACA;AAIA;;;AAGC,IACM,SAASA,eAAAA,CAAgBC,SAAwC,EAAEC,QAAgB,EAAA;AACtF,IAAA,MAAM,CAACC,KAAAA,EAAOC,QAAAA,CAAS,GAAGC,cAAAA,CAASH,QAAAA,CAAAA;IAEnCI,qBAAAA,CAAgB,IAAA;QACZ,MAAMC,OAAAA,GAAUN,UAAUO,OAAO;AACjC,QAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,QAAA,MAAME,OAAAA,GAAU,IAAA;AACZ,YAAA,MAAMC,WAAWC,IAAAA,CAAKC,KAAK,CAACL,OAAAA,CAAQM,qBAAqB,GAAGV,KAAK,CAAA;YACjE,IAAIO,QAAAA,GAAW,GAAGN,QAAAA,CAASM,QAAAA,CAAAA;AAC/B,QAAA,CAAA;AAEAD,QAAAA,OAAAA,EAAAA;QACA,IAAI,OAAOK,mBAAmB,WAAA,EAAa;QAE3C,MAAMC,QAAAA,GAAW,IAAID,cAAAA,CAAeL,OAAAA,CAAAA;AACpCM,QAAAA,QAAAA,CAASC,OAAO,CAACT,OAAAA,CAAAA;QACjB,OAAO,IAAMQ,SAASE,UAAU,EAAA;IACpC,CAAA,EAAG;AAAChB,QAAAA;AAAU,KAAA,CAAA;IAEd,OAAOE,KAAAA;AACX;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /** One saved view of a list: a named combination of filters, sort and columns. The definition lives with the application. */ /** Reads saved views out of a property value, dropping entries without an id. */ function readViews(value) {
6
+ if (!Array.isArray(value)) return [];
7
+ return value.flatMap((entry)=>{
8
+ if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) return [];
9
+ const { id, label, description } = entry;
10
+ if (typeof id !== 'string' || id.length === 0) return [];
11
+ return [
12
+ {
13
+ id,
14
+ label: typeof label === 'string' && label.length > 0 ? label : id,
15
+ ...typeof description === 'string' ? {
16
+ description
17
+ } : {}
18
+ }
19
+ ];
20
+ });
21
+ }
22
+
23
+ exports.readViews = readViews;
24
+ //# sourceMappingURL=viewModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewModel.js","sources":["../../../foundation/viewModel.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\n/** One saved view of a list: a named combination of filters, sort and columns. The definition lives with the application. */\nexport interface SavedView {\n id: string;\n label: string;\n description?: string;\n}\n\n/** Reads saved views out of a property value, dropping entries without an id. */\nexport function readViews(value: unknown): SavedView[] {\n if (!Array.isArray(value)) return [];\n\n return value.flatMap((entry): SavedView[] => {\n if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) return [];\n const { id, label, description } = entry as Record<string, unknown>;\n if (typeof id !== 'string' || id.length === 0) return [];\n return [{ id, label: typeof label === 'string' && label.length > 0 ? label : id, ...(typeof description === 'string' ? { description } : {}) }];\n });\n}\n"],"names":["readViews","value","Array","isArray","flatMap","entry","id","label","description","length"],"mappings":";;AAAA;AACA;AAEA,gNAQO,SAASA,UAAUC,KAAc,EAAA;AACpC,IAAA,IAAI,CAACC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,EAAQ,OAAO,EAAE;IAEpC,OAAOA,KAAAA,CAAMG,OAAO,CAAC,CAACC,KAAAA,GAAAA;QAClB,IAAI,OAAOA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQH,MAAMC,OAAO,CAACE,KAAAA,CAAAA,EAAQ,OAAO,EAAE;AAClF,QAAA,MAAM,EAAEC,EAAE,EAAEC,KAAK,EAAEC,WAAW,EAAE,GAAGH,KAAAA;QACnC,IAAI,OAAOC,OAAO,QAAA,IAAYA,EAAAA,CAAGG,MAAM,KAAK,CAAA,EAAG,OAAO,EAAE;QACxD,OAAO;AAAC,YAAA;AAAEH,gBAAAA,EAAAA;AAAIC,gBAAAA,KAAAA,EAAO,OAAOA,KAAAA,KAAU,QAAA,IAAYA,MAAME,MAAM,GAAG,IAAIF,KAAAA,GAAQD,EAAAA;gBAAI,GAAI,OAAOE,gBAAgB,QAAA,GAAW;AAAEA,oBAAAA;AAAY,iBAAA,GAAI;AAAI;AAAE,SAAA;AACnJ,IAAA,CAAA,CAAA;AACJ;;"}
package/dist/cjs/index.js CHANGED
@@ -54,6 +54,30 @@ var Logo = require('./shell/Logo.js');
54
54
  var UserMenu = require('./shell/UserMenu.js');
55
55
  var ThemeSwitcher = require('./shell/ThemeSwitcher.js');
56
56
  var LayoutModeSwitcher = require('./shell/LayoutModeSwitcher.js');
57
+ var foundationStrings = require('./foundation/foundationStrings.js');
58
+ var ComponentState = require('./foundation/ComponentState.js');
59
+ var PermissionRule = require('./foundation/PermissionRule.js');
60
+ var formatting = require('./foundation/formatting.js');
61
+ var FoundationIcon = require('./foundation/FoundationIcon.js');
62
+ var ActionButton = require('./foundation/ActionButton.js');
63
+ var StateFrame = require('./foundation/StateFrame.js');
64
+ var EmptyState = require('./foundation/EmptyState.js');
65
+ var TrendChip = require('./foundation/TrendChip.js');
66
+ var StatusChip = require('./foundation/StatusChip.js');
67
+ var StatCard = require('./foundation/StatCard.js');
68
+ var chartGeometry = require('./foundation/chartGeometry.js');
69
+ var useElementWidth = require('./foundation/useElementWidth.js');
70
+ var ChartWrapper = require('./foundation/ChartWrapper.js');
71
+ var filterModel = require('./foundation/filterModel.js');
72
+ var FilterBuilder = require('./foundation/FilterBuilder.js');
73
+ var columnModel = require('./foundation/columnModel.js');
74
+ var ColumnChooser = require('./foundation/ColumnChooser.js');
75
+ var viewModel = require('./foundation/viewModel.js');
76
+ var SavedViewsMenu = require('./foundation/SavedViewsMenu.js');
77
+ var foundationDescriptors = require('./foundation/foundationDescriptors.js');
78
+ var foundationComponentMetadata = require('./foundation/foundationComponentMetadata.js');
79
+ var foundationSamples = require('./foundation/foundationSamples.js');
80
+ var FoundationStates = require('./foundation/FoundationStates.js');
57
81
  var blueprintThemeCompatibility = require('./themes/blueprintThemeCompatibility.js');
58
82
  var light = require('./themes/light.js');
59
83
  var dark = require('./themes/dark.js');
@@ -217,6 +241,72 @@ exports.Logo = Logo.Logo;
217
241
  exports.UserMenu = UserMenu.UserMenu;
218
242
  exports.ThemeSwitcher = ThemeSwitcher.ThemeSwitcher;
219
243
  exports.LayoutModeSwitcher = LayoutModeSwitcher.LayoutModeSwitcher;
244
+ exports.formatText = foundationStrings.formatText;
245
+ exports.foundationStrings = foundationStrings.foundationStrings;
246
+ exports.readFoundationStrings = foundationStrings.readFoundationStrings;
247
+ exports.ComponentState = ComponentState.ComponentState;
248
+ exports.componentStates = ComponentState.componentStates;
249
+ exports.readComponentState = ComponentState.readComponentState;
250
+ exports.PermissionRule = PermissionRule.PermissionRule;
251
+ exports.readPermissionRule = PermissionRule.readPermissionRule;
252
+ exports.NumberFormat = formatting.NumberFormat;
253
+ exports.formatDate = formatting.formatDate;
254
+ exports.formatNumber = formatting.formatNumber;
255
+ exports.isRightToLeft = formatting.isRightToLeft;
256
+ exports.readLocale = formatting.readLocale;
257
+ exports.readNumberFormat = formatting.readNumberFormat;
258
+ exports.FoundationIcon = FoundationIcon.FoundationIcon;
259
+ exports.isFoundationIcon = FoundationIcon.isFoundationIcon;
260
+ exports.ActionButton = ActionButton.ActionButton;
261
+ exports.EmptyStateView = StateFrame.EmptyStateView;
262
+ exports.FoundationFrame = StateFrame.FoundationFrame;
263
+ exports.EmptyState = EmptyState.EmptyState;
264
+ exports.TrendChip = TrendChip.TrendChip;
265
+ exports.TrendChipView = TrendChip.TrendChipView;
266
+ exports.trendDirection = TrendChip.trendDirection;
267
+ exports.trendOutcome = TrendChip.trendOutcome;
268
+ exports.StatusChip = StatusChip.StatusChip;
269
+ exports.StatusTone = StatusChip.StatusTone;
270
+ exports.readStatusTone = StatusChip.readStatusTone;
271
+ exports.statusToneIcons = StatusChip.statusToneIcons;
272
+ exports.StatCard = StatCard.StatCard;
273
+ exports.ChartKind = chartGeometry.ChartKind;
274
+ exports.dataMaximum = chartGeometry.dataMaximum;
275
+ exports.donutSlices = chartGeometry.donutSlices;
276
+ exports.funnelStages = chartGeometry.funnelStages;
277
+ exports.niceScale = chartGeometry.niceScale;
278
+ exports.readSeries = chartGeometry.readSeries;
279
+ exports.ringPath = chartGeometry.ringPath;
280
+ exports.useElementWidth = useElementWidth.useElementWidth;
281
+ exports.ChartWrapper = ChartWrapper.ChartWrapper;
282
+ exports.readChartKind = ChartWrapper.readChartKind;
283
+ exports.FilterFieldType = filterModel.FilterFieldType;
284
+ exports.countActiveConditions = filterModel.countActiveConditions;
285
+ exports.emptyFilter = filterModel.emptyFilter;
286
+ exports.filterOperators = filterModel.filterOperators;
287
+ exports.maximumFilterDepth = filterModel.maximumFilterDepth;
288
+ exports.newCondition = filterModel.newCondition;
289
+ exports.normalizeFilter = filterModel.normalizeFilter;
290
+ exports.readFilterFields = filterModel.readFilterFields;
291
+ exports.updateGroupAt = filterModel.updateGroupAt;
292
+ exports.valuelessOperators = filterModel.valuelessOperators;
293
+ exports.FilterBuilder = FilterBuilder.FilterBuilder;
294
+ exports.moveColumn = columnModel.moveColumn;
295
+ exports.readColumns = columnModel.readColumns;
296
+ exports.toggleColumn = columnModel.toggleColumn;
297
+ exports.visibleColumnIds = columnModel.visibleColumnIds;
298
+ exports.ColumnChooser = ColumnChooser.ColumnChooser;
299
+ exports.readViews = viewModel.readViews;
300
+ exports.SavedViewsMenu = SavedViewsMenu.SavedViewsMenu;
301
+ exports.savedViewActionOutput = SavedViewsMenu.savedViewActionOutput;
302
+ exports.bindable = foundationDescriptors.bindable;
303
+ exports.foundationDescriptors = foundationDescriptors.foundationDescriptors;
304
+ exports.list = foundationDescriptors.list;
305
+ exports.standardStateProperties = foundationDescriptors.standardStateProperties;
306
+ exports.foundationComponentMetadata = foundationComponentMetadata.foundationComponentMetadata;
307
+ exports.foundationElement = foundationSamples.foundationElement;
308
+ exports.foundationSamples = foundationSamples.foundationSamples;
309
+ exports.FoundationStates = FoundationStates.FoundationStates;
220
310
  exports.blueprintThemeCompatibility = blueprintThemeCompatibility.blueprintThemeCompatibility;
221
311
  exports.lightTheme = light.lightTheme;
222
312
  exports.darkTheme = dark.darkTheme;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -32,7 +32,15 @@ var blueprintThemeCompatibility = require('./blueprintThemeCompatibility.js');
32
32
  'highlight.background': '#232a45',
33
33
  'highlight.color': '#c7ccff',
34
34
  'content.borderRadius': '0.5rem',
35
- 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)'
35
+ 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)',
36
+ 'status.successColor': '#86efac',
37
+ 'status.successBackground': '#14301f',
38
+ 'status.warningColor': '#fcd34d',
39
+ 'status.warningBackground': '#33290f',
40
+ 'status.dangerColor': '#fca5a5',
41
+ 'status.dangerBackground': '#3a1616',
42
+ 'status.infoColor': '#93c5fd',
43
+ 'status.infoBackground': '#162a4a'
36
44
  }
37
45
  };
38
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"dark.js","sources":["../../../themes/dark.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The dark theme the shell ships with.\n *\n * Deliberately the same ten token names as the light theme and nothing more. A dark theme that introduced\n * extra tokens would work only for the parts of the shell written after it existed - the token set is the\n * contract, and both themes filling it identically is what makes switching between them a swap rather than\n * a re-render with holes in it.\n */\nexport const darkTheme: Theme = {\n name: 'Scene Default Dark',\n compatibleWith: blueprintThemeCompatibility,\n isDark: true,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default dark palette: a deep slate ramp with a lifted indigo accent.',\n tokens: {\n 'primary.color': '#818cf8',\n 'primary.contrastColor': '#10131f',\n 'surface.background': '#0f1117',\n 'surface.card': '#171a23',\n 'surface.border': '#262a36',\n 'surface.hover': '#1f2431',\n 'surface.overlay': '#1c2030',\n 'text.color': '#e6e8ef',\n 'text.mutedColor': '#9aa1b1',\n 'highlight.background': '#232a45',\n 'highlight.color': '#c7ccff',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)',\n },\n};\n"],"names":["darkTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;;;AAAA;AACA;AAKA;;;;;;;UAQaA,SAAAA,GAAmB;IAC5BC,IAAAA,EAAM,oBAAA;IACNC,cAAAA,EAAgBC,uDAAAA;IAChBC,MAAAA,EAAQ,IAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,0EAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc;AAClB;AACJ;;"}
1
+ {"version":3,"file":"dark.js","sources":["../../../themes/dark.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The dark theme the shell ships with.\n *\n * Deliberately the same ten token names as the light theme and nothing more. A dark theme that introduced\n * extra tokens would work only for the parts of the shell written after it existed - the token set is the\n * contract, and both themes filling it identically is what makes switching between them a swap rather than\n * a re-render with holes in it.\n */\nexport const darkTheme: Theme = {\n name: 'Scene Default Dark',\n compatibleWith: blueprintThemeCompatibility,\n isDark: true,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default dark palette: a deep slate ramp with a lifted indigo accent.',\n tokens: {\n 'primary.color': '#818cf8',\n 'primary.contrastColor': '#10131f',\n 'surface.background': '#0f1117',\n 'surface.card': '#171a23',\n 'surface.border': '#262a36',\n 'surface.hover': '#1f2431',\n 'surface.overlay': '#1c2030',\n 'text.color': '#e6e8ef',\n 'text.mutedColor': '#9aa1b1',\n 'highlight.background': '#232a45',\n 'highlight.color': '#c7ccff',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)',\n 'status.successColor': '#86efac',\n 'status.successBackground': '#14301f',\n 'status.warningColor': '#fcd34d',\n 'status.warningBackground': '#33290f',\n 'status.dangerColor': '#fca5a5',\n 'status.dangerBackground': '#3a1616',\n 'status.infoColor': '#93c5fd',\n 'status.infoBackground': '#162a4a',\n },\n};\n"],"names":["darkTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;;;AAAA;AACA;AAKA;;;;;;;UAQaA,SAAAA,GAAmB;IAC5BC,IAAAA,EAAM,oBAAA;IACNC,cAAAA,EAAgBC,uDAAAA;IAChBC,MAAAA,EAAQ,IAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,0EAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc,mCAAA;QACd,qBAAA,EAAuB,SAAA;QACvB,0BAAA,EAA4B,SAAA;QAC5B,qBAAA,EAAuB,SAAA;QACvB,0BAAA,EAA4B,SAAA;QAC5B,oBAAA,EAAsB,SAAA;QACtB,yBAAA,EAA2B,SAAA;QAC3B,kBAAA,EAAoB,SAAA;QACpB,uBAAA,EAAyB;AAC7B;AACJ;;"}
@@ -31,11 +31,19 @@ var blueprintThemeCompatibility = require('./blueprintThemeCompatibility.js');
31
31
  'surface.hover': '#eceef1',
32
32
  'surface.overlay': '#ffffff',
33
33
  'text.color': '#1f2430',
34
- 'text.mutedColor': '#6b7280',
34
+ 'text.mutedColor': '#5b6472',
35
35
  'highlight.background': '#eef2ff',
36
36
  'highlight.color': '#3730a3',
37
37
  'content.borderRadius': '0.5rem',
38
- 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)'
38
+ 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)',
39
+ 'status.successColor': '#166534',
40
+ 'status.successBackground': '#dcfce7',
41
+ 'status.warningColor': '#854d0e',
42
+ 'status.warningBackground': '#fef3c7',
43
+ 'status.dangerColor': '#991b1b',
44
+ 'status.dangerBackground': '#fee2e2',
45
+ 'status.infoColor': '#1e40af',
46
+ 'status.infoBackground': '#dbeafe'
39
47
  }
40
48
  };
41
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sources":["../../../themes/light.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The light theme the shell ships with.\n *\n * The palette is original to Cratis - a neutral grey ramp with an indigo accent - rather than adopted from\n * any existing preset, which is why `author` says so rather than being left blank. A theme with empty\n * attribution reads as \"nobody has checked\", and once a palette is lifted from somewhere else without its\n * credit, nobody can tell afterwards which of the two it was.\n *\n * The token set is the shell's whole styling contract: every rule in `layout.css` resolves back to one of\n * these ten names. A theme that defines them defines the entire shell.\n */\nexport const lightTheme: Theme = {\n name: 'Scene Default Light',\n compatibleWith: blueprintThemeCompatibility,\n isDark: false,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default light palette: a neutral grey ramp with an indigo accent.',\n tokens: {\n 'primary.color': '#4f46e5',\n 'primary.contrastColor': '#ffffff',\n 'surface.background': '#f4f5f7',\n 'surface.card': '#ffffff',\n 'surface.border': '#e2e5e9',\n 'surface.hover': '#eceef1',\n 'surface.overlay': '#ffffff',\n 'text.color': '#1f2430',\n 'text.mutedColor': '#6b7280',\n 'highlight.background': '#eef2ff',\n 'highlight.color': '#3730a3',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)',\n },\n};\n"],"names":["lightTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;;;AAAA;AACA;AAKA;;;;;;;;;;UAWaA,UAAAA,GAAoB;IAC7BC,IAAAA,EAAM,qBAAA;IACNC,cAAAA,EAAgBC,uDAAAA;IAChBC,MAAAA,EAAQ,KAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,uEAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc;AAClB;AACJ;;"}
1
+ {"version":3,"file":"light.js","sources":["../../../themes/light.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The light theme the shell ships with.\n *\n * The palette is original to Cratis - a neutral grey ramp with an indigo accent - rather than adopted from\n * any existing preset, which is why `author` says so rather than being left blank. A theme with empty\n * attribution reads as \"nobody has checked\", and once a palette is lifted from somewhere else without its\n * credit, nobody can tell afterwards which of the two it was.\n *\n * The token set is the shell's whole styling contract: every rule in `layout.css` resolves back to one of\n * these ten names. A theme that defines them defines the entire shell.\n */\nexport const lightTheme: Theme = {\n name: 'Scene Default Light',\n compatibleWith: blueprintThemeCompatibility,\n isDark: false,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default light palette: a neutral grey ramp with an indigo accent.',\n tokens: {\n 'primary.color': '#4f46e5',\n 'primary.contrastColor': '#ffffff',\n 'surface.background': '#f4f5f7',\n 'surface.card': '#ffffff',\n 'surface.border': '#e2e5e9',\n 'surface.hover': '#eceef1',\n 'surface.overlay': '#ffffff',\n 'text.color': '#1f2430',\n 'text.mutedColor': '#5b6472',\n 'highlight.background': '#eef2ff',\n 'highlight.color': '#3730a3',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)',\n 'status.successColor': '#166534',\n 'status.successBackground': '#dcfce7',\n 'status.warningColor': '#854d0e',\n 'status.warningBackground': '#fef3c7',\n 'status.dangerColor': '#991b1b',\n 'status.dangerBackground': '#fee2e2',\n 'status.infoColor': '#1e40af',\n 'status.infoBackground': '#dbeafe',\n },\n};\n"],"names":["lightTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;;;AAAA;AACA;AAKA;;;;;;;;;;UAWaA,UAAAA,GAAoB;IAC7BC,IAAAA,EAAM,qBAAA;IACNC,cAAAA,EAAgBC,uDAAAA;IAChBC,MAAAA,EAAQ,KAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,uEAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc,gCAAA;QACd,qBAAA,EAAuB,SAAA;QACvB,0BAAA,EAA4B,SAAA;QAC5B,qBAAA,EAAuB,SAAA;QACvB,0BAAA,EAA4B,SAAA;QAC5B,oBAAA,EAAsB,SAAA;QACtB,yBAAA,EAA2B,SAAA;QAC3B,kBAAA,EAAoB,SAAA;QACpB,uBAAA,EAAyB;AAC7B;AACJ;;"}
@@ -14,6 +14,14 @@ export declare enum ComponentName {
14
14
  Logo = "logo",
15
15
  UserMenu = "userMenu",
16
16
  ThemeSwitcher = "themeSwitcher",
17
- LayoutModeSwitcher = "layoutModeSwitcher"
17
+ LayoutModeSwitcher = "layoutModeSwitcher",
18
+ EmptyState = "emptyState",
19
+ StatCard = "statCard",
20
+ TrendChip = "trendChip",
21
+ StatusChip = "statusChip",
22
+ ChartWrapper = "chartWrapper",
23
+ FilterBuilder = "filterBuilder",
24
+ ColumnChooser = "columnChooser",
25
+ SavedViewsMenu = "savedViewsMenu"
18
26
  }
19
27
  //# sourceMappingURL=ComponentName.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentName.d.ts","sourceRoot":"","sources":["../../ComponentName.ts"],"names":[],"mappings":"AAWA,oBAAY,aAAa;IAErB,QAAQ,aAAa;IAGrB,aAAa,kBAAkB;IAG/B,MAAM,WAAW;IAGjB,OAAO,YAAY;IAGnB,IAAI,SAAS;IAGb,QAAQ,aAAa;IAGrB,UAAU,eAAe;IAGzB,MAAM,WAAW;IAGjB,UAAU,eAAe;IAGzB,WAAW,gBAAgB;IAG3B,UAAU,eAAe;IAGzB,IAAI,SAAS;IAGb,IAAI,SAAS;IAGb,QAAQ,aAAa;IAGrB,aAAa,kBAAkB;IAG/B,kBAAkB,uBAAuB;CAC5C"}
1
+ {"version":3,"file":"ComponentName.d.ts","sourceRoot":"","sources":["../../ComponentName.ts"],"names":[],"mappings":"AAWA,oBAAY,aAAa;IAErB,QAAQ,aAAa;IAGrB,aAAa,kBAAkB;IAG/B,MAAM,WAAW;IAGjB,OAAO,YAAY;IAGnB,IAAI,SAAS;IAGb,QAAQ,aAAa;IAGrB,UAAU,eAAe;IAGzB,MAAM,WAAW;IAGjB,UAAU,eAAe;IAGzB,WAAW,gBAAgB;IAG3B,UAAU,eAAe;IAGzB,IAAI,SAAS;IAGb,IAAI,SAAS;IAGb,QAAQ,aAAa;IAGrB,aAAa,kBAAkB;IAG/B,kBAAkB,uBAAuB;IAGzC,UAAU,eAAe;IAGzB,QAAQ,aAAa;IAGrB,SAAS,cAAc;IAGvB,UAAU,eAAe;IAGzB,YAAY,iBAAiB;IAG7B,aAAa,kBAAkB;IAG/B,aAAa,kBAAkB;IAG/B,cAAc,mBAAmB;CACpC"}
@@ -24,6 +24,14 @@
24
24
  /** The signed-in user's avatar and menu. */ ComponentName["UserMenu"] = "userMenu";
25
25
  /** Switches between the themes a host offers. */ ComponentName["ThemeSwitcher"] = "themeSwitcher";
26
26
  /** Switches between the layout modes. */ ComponentName["LayoutModeSwitcher"] = "layoutModeSwitcher";
27
+ /** An icon, a headline, a hint and one primary action: what a region says when it has nothing to show. */ ComponentName["EmptyState"] = "emptyState";
28
+ /** One key figure with its label, trend and comparison period. */ ComponentName["StatCard"] = "statCard";
29
+ /** A change drawn as a direction, a magnitude and whether it is good. */ ComponentName["TrendChip"] = "trendChip";
30
+ /** A status as a semantic color, an icon and its text. */ ComponentName["StatusChip"] = "statusChip";
31
+ /** One chart - line, bar, stacked, donut or funnel - with its legend and a table of the same data. */ ComponentName["ChartWrapper"] = "chartWrapper";
32
+ /** Conditions on fields, joined by AND or OR in nested groups. */ ComponentName["FilterBuilder"] = "filterBuilder";
33
+ /** Which columns a table shows, and in what order. */ ComponentName["ColumnChooser"] = "columnChooser";
34
+ /** A list's saved views as a menu button. */ ComponentName["SavedViewsMenu"] = "savedViewsMenu";
27
35
  return ComponentName;
28
36
  }({});
29
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentName.js","sources":["../../ComponentName.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\n/**\n * The bare names this package declares components under.\n *\n * A page template writes a bare name and `resolveComponentName` decides which active package wins it, so\n * these names are public API: renaming one breaks every template that referenced it, in this package and\n * in anyone else's. Keeping them in one enum means the manifest, the registry and every template\n * reference the same symbol, and the specs can prove all three agree rather than hoping they do.\n */\nexport enum ComponentName {\n /** The application shell - topbar, sidebar, breadcrumb, content, footer and an optional right panel. */\n AppShell = 'appShell',\n\n /** The chrome-less shell - content, an optional branding aside, and the configurator. */\n FullPageShell = 'fullPageShell',\n\n /** The fixed strip across the top of the application shell. */\n Topbar = 'topbar',\n\n /** The sidebar's own chrome, inside the shell-positioned panel. */\n Sidebar = 'sidebar',\n\n /** A navigation list. */\n Menu = 'menu',\n\n /** One entry in a navigation list, optionally with a submenu. */\n MenuItem = 'menuItem',\n\n /** The trail above the content. */\n Breadcrumb = 'breadcrumb',\n\n /** The strip below the content. */\n Footer = 'footer',\n\n /** The inspector panel down the right-hand edge. */\n RightPanel = 'rightPanel',\n\n /** The floating configurator: color scheme, layout mode, menu theme and theme. */\n ConfigPanel = 'configPanel',\n\n /** A screen's title, subtitle and actions. */\n PageHeader = 'pageHeader',\n\n /** The scrim behind a floating sidebar, which also closes it. */\n Mask = 'mask',\n\n /** The brand mark. */\n Logo = 'logo',\n\n /** The signed-in user's avatar and menu. */\n UserMenu = 'userMenu',\n\n /** Switches between the themes a host offers. */\n ThemeSwitcher = 'themeSwitcher',\n\n /** Switches between the layout modes. */\n LayoutModeSwitcher = 'layoutModeSwitcher',\n}\n"],"names":["ComponentName"],"mappings":"AAAA;AACA;AAEA;;;;;;;IAQO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;6GAC8F,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;8FAGf,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;oEAG1B,aAAA,CAAA,QAAA,CAAA,GAAA,QAAA;wEAGI,aAAA,CAAA,SAAA,CAAA,GAAA,SAAA;8BAG1C,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;sEAGwC,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;wCAG9B,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;wCAGA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAA;yDAGiB,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;uFAG8B,aAAA,CAAA,aAAA,CAAA,GAAA,aAAA;mDAGpC,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;sEAGmB,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;2BAG3C,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;iDAGsB,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;sDAGK,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;8CAGR,aAAA,CAAA,oBAAA,CAAA,GAAA,oBAAA;AA9C/BA,IAAAA,OAAAA,aAAAA;AAgDX,CAAA,CAAA,EAAA;;"}
1
+ {"version":3,"file":"ComponentName.js","sources":["../../ComponentName.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\n/**\n * The bare names this package declares components under.\n *\n * A page template writes a bare name and `resolveComponentName` decides which active package wins it, so\n * these names are public API: renaming one breaks every template that referenced it, in this package and\n * in anyone else's. Keeping them in one enum means the manifest, the registry and every template\n * reference the same symbol, and the specs can prove all three agree rather than hoping they do.\n */\nexport enum ComponentName {\n /** The application shell - topbar, sidebar, breadcrumb, content, footer and an optional right panel. */\n AppShell = 'appShell',\n\n /** The chrome-less shell - content, an optional branding aside, and the configurator. */\n FullPageShell = 'fullPageShell',\n\n /** The fixed strip across the top of the application shell. */\n Topbar = 'topbar',\n\n /** The sidebar's own chrome, inside the shell-positioned panel. */\n Sidebar = 'sidebar',\n\n /** A navigation list. */\n Menu = 'menu',\n\n /** One entry in a navigation list, optionally with a submenu. */\n MenuItem = 'menuItem',\n\n /** The trail above the content. */\n Breadcrumb = 'breadcrumb',\n\n /** The strip below the content. */\n Footer = 'footer',\n\n /** The inspector panel down the right-hand edge. */\n RightPanel = 'rightPanel',\n\n /** The floating configurator: color scheme, layout mode, menu theme and theme. */\n ConfigPanel = 'configPanel',\n\n /** A screen's title, subtitle and actions. */\n PageHeader = 'pageHeader',\n\n /** The scrim behind a floating sidebar, which also closes it. */\n Mask = 'mask',\n\n /** The brand mark. */\n Logo = 'logo',\n\n /** The signed-in user's avatar and menu. */\n UserMenu = 'userMenu',\n\n /** Switches between the themes a host offers. */\n ThemeSwitcher = 'themeSwitcher',\n\n /** Switches between the layout modes. */\n LayoutModeSwitcher = 'layoutModeSwitcher',\n\n /** An icon, a headline, a hint and one primary action: what a region says when it has nothing to show. */\n EmptyState = 'emptyState',\n\n /** One key figure with its label, trend and comparison period. */\n StatCard = 'statCard',\n\n /** A change drawn as a direction, a magnitude and whether it is good. */\n TrendChip = 'trendChip',\n\n /** A status as a semantic color, an icon and its text. */\n StatusChip = 'statusChip',\n\n /** One chart - line, bar, stacked, donut or funnel - with its legend and a table of the same data. */\n ChartWrapper = 'chartWrapper',\n\n /** Conditions on fields, joined by AND or OR in nested groups. */\n FilterBuilder = 'filterBuilder',\n\n /** Which columns a table shows, and in what order. */\n ColumnChooser = 'columnChooser',\n\n /** A list's saved views as a menu button. */\n SavedViewsMenu = 'savedViewsMenu',\n}\n"],"names":["ComponentName"],"mappings":"AAAA;AACA;AAEA;;;;;;;IAQO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;6GAC8F,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;8FAGf,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;oEAG1B,aAAA,CAAA,QAAA,CAAA,GAAA,QAAA;wEAGI,aAAA,CAAA,SAAA,CAAA,GAAA,SAAA;8BAG1C,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;sEAGwC,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;wCAG9B,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;wCAGA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAA;yDAGiB,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;uFAG8B,aAAA,CAAA,aAAA,CAAA,GAAA,aAAA;mDAGpC,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;sEAGmB,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;2BAG3C,aAAA,CAAA,MAAA,CAAA,GAAA,MAAA;iDAGsB,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;sDAGK,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;8CAGR,aAAA,CAAA,oBAAA,CAAA,GAAA,oBAAA;+GAGiE,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;uEAGxC,aAAA,CAAA,UAAA,CAAA,GAAA,UAAA;8EAGO,aAAA,CAAA,WAAA,CAAA,GAAA,WAAA;+DAGf,aAAA,CAAA,YAAA,CAAA,GAAA,YAAA;2GAG4C,aAAA,CAAA,cAAA,CAAA,GAAA,cAAA;uEAGpC,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;2DAGZ,aAAA,CAAA,eAAA,CAAA,GAAA,eAAA;kDAGT,aAAA,CAAA,gBAAA,CAAA,GAAA,gBAAA;AAtEnCA,IAAAA,OAAAA,aAAAA;AAwEX,CAAA,CAAA,EAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultBlueprint.d.ts","sourceRoot":"","sources":["../../defaultBlueprint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AA4B7E,eAAO,MAAM,wBAAwB,EAAE,YAetC,CAAC;AAaF,eAAO,MAAM,gBAAgB,EAAE,kBAS9B,CAAC"}
1
+ {"version":3,"file":"defaultBlueprint.d.ts","sourceRoot":"","sources":["../../defaultBlueprint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AA6B7E,eAAO,MAAM,wBAAwB,EAAE,YAetC,CAAC;AAaF,eAAO,MAAM,gBAAgB,EAAE,kBAS9B,CAAC"}
@@ -2,7 +2,15 @@ import { PackageKind } from '@cratis/scene.model';
2
2
  import { describeComponents } from '@cratis/scene.react';
3
3
  import { ComponentName } from './ComponentName.js';
4
4
  import { defaultBlueprintComponentMetadata } from './defaultBlueprintComponentMetadata.js';
5
+ import './foundation/ComponentState.js';
6
+ import 'react/jsx-runtime';
7
+ import 'react';
8
+ import { foundationDescriptors } from './foundation/foundationDescriptors.js';
9
+ import './foundation/foundationComponentMetadata.js';
10
+ import './foundation/foundationSamples.js';
5
11
  import { defaultBlueprintComponents } from './defaultBlueprintComponents.js';
12
+ import { defaultBlueprintName } from './packageName.js';
13
+ import { defaultBlueprintThemes } from './themes/defaultBlueprintThemes.js';
6
14
  import './gallery/elements.js';
7
15
  import './gallery/navigation.js';
8
16
  import { LayoutName } from './layouts/LayoutName.js';
@@ -10,10 +18,6 @@ import './layouts/shellComponents.js';
10
18
  import './layouts/appShell.js';
11
19
  import './layouts/fullPage.js';
12
20
  import { defaultLayouts } from './layouts/defaultLayouts.js';
13
- import { defaultBlueprintName } from './packageName.js';
14
- import { defaultBlueprintThemes } from './themes/defaultBlueprintThemes.js';
15
- import 'react/jsx-runtime';
16
- import 'react';
17
21
  import './gallery/nesting.js';
18
22
  import './gallery/workspaceTemplates.js';
19
23
  import './gallery/supportTemplates.js';
@@ -86,7 +90,7 @@ import './gallery/GalleryScreenPreview.js';
86
90
  dialogTemplates: galleryDialogTemplates,
87
91
  screens: galleryScreens,
88
92
  themes: defaultBlueprintThemes,
89
- descriptors: describeComponents(defaultBlueprintManifest.name, [], defaultBlueprintComponentMetadata)
93
+ descriptors: describeComponents(defaultBlueprintManifest.name, foundationDescriptors, defaultBlueprintComponentMetadata)
90
94
  };
91
95
 
92
96
  export { defaultBlueprint, defaultBlueprintManifest };
@@ -1 +1 @@
1
- {"version":3,"file":"defaultBlueprint.js","sources":["../../defaultBlueprint.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 { PackageKind, ScenePackage } from '@cratis/scene.model';\nimport { ScenePackageBundle, describeComponents } from '@cratis/scene.react';\nimport { ComponentName } from './ComponentName';\nimport { defaultBlueprintComponentMetadata } from './defaultBlueprintComponentMetadata';\nimport { defaultBlueprintComponents } from './defaultBlueprintComponents';\nimport { galleryDialogTemplates, galleryScreenTemplates, galleryScreens } from './gallery';\nimport { LayoutName, defaultLayouts } from './layouts';\nimport { defaultBlueprintName } from './packageName';\nimport { defaultBlueprintThemes } from './themes';\n\n/**\n * The default blueprint's declaration.\n *\n * A blueprint is the package an application picks once to get a coherent shape: the {@link Layout}s that\n * are its base navigational look, the {@link ScreenTemplate}s and {@link DialogTemplate}s that go inside\n * them, the components that fill their slots, and the themes that color all of it. Picking the parts\n * separately is how an application ends up with a sidebar from one design language and a form from\n * another.\n *\n * The dependency list is what makes a blueprint honest about what it is built from. This one declares\n * PrimeReact - the shell's buttons, breadcrumb, overlay menu and drawer are PrimeReact 10 components - and\n * Cratis Components, which its screen templates fill their content with. A profile that activated this\n * blueprint without them would render a shell whose every control was a dashed red placeholder, and\n * `resolvePackageDependencies` exists to catch that when the profile is configured rather than when\n * someone opens the page.\n *\n * `layouts` lists only true application shells. A dashboard, a CRUD list or a sign-in screen is a screen\n * template, not a layout, and is listed as one.\n */\nexport const defaultBlueprintManifest: ScenePackage = {\n name: defaultBlueprintName,\n version: '1.0.0',\n kind: PackageKind.Blueprint,\n dependencies: [{ name: 'PrimeReact' }, { name: 'Cratis.Components' }],\n components: Object.values(ComponentName),\n layouts: Object.values(LayoutName),\n screenTemplates: galleryScreenTemplates.map(template => template.name),\n dialogTemplates: galleryDialogTemplates.map(template => template.name),\n themes: defaultBlueprintThemes.map(theme => theme.name),\n displayName: 'Cratis Default Blueprint',\n description: 'Application shells with eight menu modes, the components that fill their slots, and a full screen and dialog template set.',\n module: '@cratis/scene.blueprint.default',\n license: 'MIT',\n licenseUrl: 'https://github.com/Cratis/Scene/blob/main/LICENSE',\n};\n\n/**\n * The default blueprint as a loadable bundle.\n *\n * The manifest names things; this provides them. `validatePackageBundle` is what proves the two agree, and\n * this package's specs run it - a manifest promising a component the bundle never registered renders as a\n * dashed red placeholder somewhere deep inside a screen, a long way from the declaration that caused it.\n *\n * The screens are the gallery: real {@link Screen} instances naming a layout, a screen template and the\n * content that fills it, so a preview boots them through the real engine as a working miniature\n * application rather than a set of pictures.\n */\nexport const defaultBlueprint: ScenePackageBundle = {\n manifest: defaultBlueprintManifest,\n components: defaultBlueprintComponents,\n layouts: defaultLayouts,\n screenTemplates: galleryScreenTemplates,\n dialogTemplates: galleryDialogTemplates,\n screens: galleryScreens,\n themes: defaultBlueprintThemes,\n descriptors: describeComponents(defaultBlueprintManifest.name, [], defaultBlueprintComponentMetadata),\n};\n"],"names":["defaultBlueprintManifest","name","defaultBlueprintName","version","kind","PackageKind","Blueprint","dependencies","components","Object","values","ComponentName","layouts","LayoutName","screenTemplates","galleryScreenTemplates","map","template","dialogTemplates","galleryDialogTemplates","themes","defaultBlueprintThemes","theme","displayName","description","module","license","licenseUrl","defaultBlueprint","manifest","defaultBlueprintComponents","defaultLayouts","screens","galleryScreens","descriptors","describeComponents","defaultBlueprintComponentMetadata"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAYA;;;;;;;;;;;;;;;;;;UAmBaA,wBAAAA,GAAyC;IAClDC,IAAAA,EAAMC,oBAAAA;IACNC,OAAAA,EAAS,OAAA;AACTC,IAAAA,IAAAA,EAAMC,YAAYC,SAAS;IAC3BC,YAAAA,EAAc;AAAC,QAAA;YAAEN,IAAAA,EAAM;AAAa,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAoB;AAAE,KAAA;IACrEO,UAAAA,EAAYC,MAAAA,CAAOC,MAAM,CAACC,aAAAA,CAAAA;IAC1BC,OAAAA,EAASH,MAAAA,CAAOC,MAAM,CAACG,UAAAA,CAAAA;AACvBC,IAAAA,eAAAA,EAAiBC,uBAAuBC,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEiB,IAAAA,eAAAA,EAAiBC,uBAAuBH,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEmB,IAAAA,MAAAA,EAAQC,uBAAuBL,GAAG,CAACM,CAAAA,KAAAA,GAASA,MAAMrB,IAAI,CAAA;IACtDsB,WAAAA,EAAa,0BAAA;IACbC,WAAAA,EAAa,4HAAA;IACbC,MAAAA,EAAQ,iCAAA;IACRC,OAAAA,EAAS,KAAA;IACTC,UAAAA,EAAY;AAChB;AAEA;;;;;;;;;;UAWaC,gBAAAA,GAAuC;IAChDC,QAAAA,EAAU7B,wBAAAA;IACVQ,UAAAA,EAAYsB,0BAAAA;IACZlB,OAAAA,EAASmB,cAAAA;IACTjB,eAAAA,EAAiBC,sBAAAA;IACjBG,eAAAA,EAAiBC,sBAAAA;IACjBa,OAAAA,EAASC,cAAAA;IACTb,MAAAA,EAAQC,sBAAAA;AACRa,IAAAA,WAAAA,EAAaC,kBAAAA,CAAmBnC,wBAAAA,CAAyBC,IAAI,EAAE,EAAE,EAAEmC,iCAAAA;AACvE;;"}
1
+ {"version":3,"file":"defaultBlueprint.js","sources":["../../defaultBlueprint.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 { PackageKind, ScenePackage } from '@cratis/scene.model';\nimport { ScenePackageBundle, describeComponents } from '@cratis/scene.react';\nimport { ComponentName } from './ComponentName';\nimport { defaultBlueprintComponentMetadata } from './defaultBlueprintComponentMetadata';\nimport { foundationDescriptors } from './foundation';\nimport { defaultBlueprintComponents } from './defaultBlueprintComponents';\nimport { galleryDialogTemplates, galleryScreenTemplates, galleryScreens } from './gallery';\nimport { LayoutName, defaultLayouts } from './layouts';\nimport { defaultBlueprintName } from './packageName';\nimport { defaultBlueprintThemes } from './themes';\n\n/**\n * The default blueprint's declaration.\n *\n * A blueprint is the package an application picks once to get a coherent shape: the {@link Layout}s that\n * are its base navigational look, the {@link ScreenTemplate}s and {@link DialogTemplate}s that go inside\n * them, the components that fill their slots, and the themes that color all of it. Picking the parts\n * separately is how an application ends up with a sidebar from one design language and a form from\n * another.\n *\n * The dependency list is what makes a blueprint honest about what it is built from. This one declares\n * PrimeReact - the shell's buttons, breadcrumb, overlay menu and drawer are PrimeReact 10 components - and\n * Cratis Components, which its screen templates fill their content with. A profile that activated this\n * blueprint without them would render a shell whose every control was a dashed red placeholder, and\n * `resolvePackageDependencies` exists to catch that when the profile is configured rather than when\n * someone opens the page.\n *\n * `layouts` lists only true application shells. A dashboard, a CRUD list or a sign-in screen is a screen\n * template, not a layout, and is listed as one.\n */\nexport const defaultBlueprintManifest: ScenePackage = {\n name: defaultBlueprintName,\n version: '1.0.0',\n kind: PackageKind.Blueprint,\n dependencies: [{ name: 'PrimeReact' }, { name: 'Cratis.Components' }],\n components: Object.values(ComponentName),\n layouts: Object.values(LayoutName),\n screenTemplates: galleryScreenTemplates.map(template => template.name),\n dialogTemplates: galleryDialogTemplates.map(template => template.name),\n themes: defaultBlueprintThemes.map(theme => theme.name),\n displayName: 'Cratis Default Blueprint',\n description: 'Application shells with eight menu modes, the components that fill their slots, and a full screen and dialog template set.',\n module: '@cratis/scene.blueprint.default',\n license: 'MIT',\n licenseUrl: 'https://github.com/Cratis/Scene/blob/main/LICENSE',\n};\n\n/**\n * The default blueprint as a loadable bundle.\n *\n * The manifest names things; this provides them. `validatePackageBundle` is what proves the two agree, and\n * this package's specs run it - a manifest promising a component the bundle never registered renders as a\n * dashed red placeholder somewhere deep inside a screen, a long way from the declaration that caused it.\n *\n * The screens are the gallery: real {@link Screen} instances naming a layout, a screen template and the\n * content that fills it, so a preview boots them through the real engine as a working miniature\n * application rather than a set of pictures.\n */\nexport const defaultBlueprint: ScenePackageBundle = {\n manifest: defaultBlueprintManifest,\n components: defaultBlueprintComponents,\n layouts: defaultLayouts,\n screenTemplates: galleryScreenTemplates,\n dialogTemplates: galleryDialogTemplates,\n screens: galleryScreens,\n themes: defaultBlueprintThemes,\n descriptors: describeComponents(defaultBlueprintManifest.name, foundationDescriptors, defaultBlueprintComponentMetadata),\n};\n"],"names":["defaultBlueprintManifest","name","defaultBlueprintName","version","kind","PackageKind","Blueprint","dependencies","components","Object","values","ComponentName","layouts","LayoutName","screenTemplates","galleryScreenTemplates","map","template","dialogTemplates","galleryDialogTemplates","themes","defaultBlueprintThemes","theme","displayName","description","module","license","licenseUrl","defaultBlueprint","manifest","defaultBlueprintComponents","defaultLayouts","screens","galleryScreens","descriptors","describeComponents","foundationDescriptors","defaultBlueprintComponentMetadata"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAaA;;;;;;;;;;;;;;;;;;UAmBaA,wBAAAA,GAAyC;IAClDC,IAAAA,EAAMC,oBAAAA;IACNC,OAAAA,EAAS,OAAA;AACTC,IAAAA,IAAAA,EAAMC,YAAYC,SAAS;IAC3BC,YAAAA,EAAc;AAAC,QAAA;YAAEN,IAAAA,EAAM;AAAa,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAoB;AAAE,KAAA;IACrEO,UAAAA,EAAYC,MAAAA,CAAOC,MAAM,CAACC,aAAAA,CAAAA;IAC1BC,OAAAA,EAASH,MAAAA,CAAOC,MAAM,CAACG,UAAAA,CAAAA;AACvBC,IAAAA,eAAAA,EAAiBC,uBAAuBC,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEiB,IAAAA,eAAAA,EAAiBC,uBAAuBH,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEmB,IAAAA,MAAAA,EAAQC,uBAAuBL,GAAG,CAACM,CAAAA,KAAAA,GAASA,MAAMrB,IAAI,CAAA;IACtDsB,WAAAA,EAAa,0BAAA;IACbC,WAAAA,EAAa,4HAAA;IACbC,MAAAA,EAAQ,iCAAA;IACRC,OAAAA,EAAS,KAAA;IACTC,UAAAA,EAAY;AAChB;AAEA;;;;;;;;;;UAWaC,gBAAAA,GAAuC;IAChDC,QAAAA,EAAU7B,wBAAAA;IACVQ,UAAAA,EAAYsB,0BAAAA;IACZlB,OAAAA,EAASmB,cAAAA;IACTjB,eAAAA,EAAiBC,sBAAAA;IACjBG,eAAAA,EAAiBC,sBAAAA;IACjBa,OAAAA,EAASC,cAAAA;IACTb,MAAAA,EAAQC,sBAAAA;AACRa,IAAAA,WAAAA,EAAaC,kBAAAA,CAAmBnC,wBAAAA,CAAyBC,IAAI,EAAEmC,qBAAAA,EAAuBC,iCAAAA;AAC1F;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultBlueprintComponentMetadata.d.ts","sourceRoot":"","sources":["../../defaultBlueprintComponentMetadata.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,qBAAqB,CAAC;AAGtG,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAiB/E,CAAC"}
1
+ {"version":3,"file":"defaultBlueprintComponentMetadata.d.ts","sourceRoot":"","sources":["../../defaultBlueprintComponentMetadata.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,qBAAqB,CAAC;AAGtG,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAkB/E,CAAC"}
@@ -1,9 +1,17 @@
1
1
  import { ComponentCategory } from '@cratis/scene.model';
2
+ import './foundation/ComponentState.js';
3
+ import 'react/jsx-runtime';
4
+ import 'react';
2
5
  import { componentMetadata, navigationDesignMode } from '@cratis/scene.react';
6
+ import './foundation/foundationDescriptors.js';
7
+ import { foundationComponentMetadata } from './foundation/foundationComponentMetadata.js';
8
+ import './foundation/foundationSamples.js';
9
+ import './defaultBlueprintComponents.js';
3
10
 
4
11
  // Copyright (c) Cratis. All rights reserved.
5
12
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
6
13
  /** The category, icon, keywords and picker badge of every component of the package (CMP1), keyed by bare component name. */ const defaultBlueprintComponentMetadata = {
14
+ ...foundationComponentMetadata,
7
15
  appShell: componentMetadata('Application shell', ComponentCategory.Layout, 'app-window', [
8
16
  'layout',
9
17
  'frame',