@cratis/scene.blueprint.default 4.35.0 → 4.36.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 (133) hide show
  1. package/ComponentName.ts +12 -0
  2. package/defaultBlueprintComponents.ts +5 -1
  3. package/dist/cjs/ComponentName.js +4 -0
  4. package/dist/cjs/ComponentName.js.map +1 -1
  5. package/dist/cjs/defaultBlueprint.js +1 -0
  6. package/dist/cjs/defaultBlueprint.js.map +1 -1
  7. package/dist/cjs/defaultBlueprintComponentMetadata.js +1 -0
  8. package/dist/cjs/defaultBlueprintComponentMetadata.js.map +1 -1
  9. package/dist/cjs/defaultBlueprintComponents.js +9 -1
  10. package/dist/cjs/defaultBlueprintComponents.js.map +1 -1
  11. package/dist/cjs/foundation/ActivityFeed.js +122 -0
  12. package/dist/cjs/foundation/ActivityFeed.js.map +1 -0
  13. package/dist/cjs/foundation/AvatarStack.js +73 -0
  14. package/dist/cjs/foundation/AvatarStack.js.map +1 -0
  15. package/dist/cjs/foundation/ChecklistSection.js +174 -0
  16. package/dist/cjs/foundation/ChecklistSection.js.map +1 -0
  17. package/dist/cjs/foundation/FileUploader.js +218 -0
  18. package/dist/cjs/foundation/FileUploader.js.map +1 -0
  19. package/dist/cjs/foundation/FileUploaderHandler.js +17 -0
  20. package/dist/cjs/foundation/FileUploaderHandler.js.map +1 -0
  21. package/dist/cjs/foundation/activityModel.js +63 -0
  22. package/dist/cjs/foundation/activityModel.js.map +1 -0
  23. package/dist/cjs/foundation/avatarModel.js +42 -0
  24. package/dist/cjs/foundation/avatarModel.js.map +1 -0
  25. package/dist/cjs/foundation/checklistModel.js +59 -0
  26. package/dist/cjs/foundation/checklistModel.js.map +1 -0
  27. package/dist/cjs/foundation/formatting.js +11 -0
  28. package/dist/cjs/foundation/formatting.js.map +1 -1
  29. package/dist/cjs/foundation/foundationComponentMetadata.js +26 -0
  30. package/dist/cjs/foundation/foundationComponentMetadata.js.map +1 -1
  31. package/dist/cjs/foundation/foundationDescriptors.js +128 -0
  32. package/dist/cjs/foundation/foundationDescriptors.js.map +1 -1
  33. package/dist/cjs/foundation/foundationSamples.js +114 -0
  34. package/dist/cjs/foundation/foundationSamples.js.map +1 -1
  35. package/dist/cjs/foundation/foundationStrings.js +15 -0
  36. package/dist/cjs/foundation/foundationStrings.js.map +1 -1
  37. package/dist/cjs/foundation/uploadModel.js +71 -0
  38. package/dist/cjs/foundation/uploadModel.js.map +1 -0
  39. package/dist/cjs/index.js +33 -0
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/esm/ComponentName.d.ts +5 -1
  42. package/dist/esm/ComponentName.d.ts.map +1 -1
  43. package/dist/esm/ComponentName.js +4 -0
  44. package/dist/esm/ComponentName.js.map +1 -1
  45. package/dist/esm/defaultBlueprint.js +1 -0
  46. package/dist/esm/defaultBlueprint.js.map +1 -1
  47. package/dist/esm/defaultBlueprintComponentMetadata.js +1 -0
  48. package/dist/esm/defaultBlueprintComponentMetadata.js.map +1 -1
  49. package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -1
  50. package/dist/esm/defaultBlueprintComponents.js +9 -1
  51. package/dist/esm/defaultBlueprintComponents.js.map +1 -1
  52. package/dist/esm/foundation/ActivityFeed.d.ts +3 -0
  53. package/dist/esm/foundation/ActivityFeed.d.ts.map +1 -0
  54. package/dist/esm/foundation/ActivityFeed.js +120 -0
  55. package/dist/esm/foundation/ActivityFeed.js.map +1 -0
  56. package/dist/esm/foundation/AvatarStack.d.ts +3 -0
  57. package/dist/esm/foundation/AvatarStack.d.ts.map +1 -0
  58. package/dist/esm/foundation/AvatarStack.js +71 -0
  59. package/dist/esm/foundation/AvatarStack.js.map +1 -0
  60. package/dist/esm/foundation/ChecklistSection.d.ts +3 -0
  61. package/dist/esm/foundation/ChecklistSection.d.ts.map +1 -0
  62. package/dist/esm/foundation/ChecklistSection.js +172 -0
  63. package/dist/esm/foundation/ChecklistSection.js.map +1 -0
  64. package/dist/esm/foundation/FileUploader.d.ts +3 -0
  65. package/dist/esm/foundation/FileUploader.d.ts.map +1 -0
  66. package/dist/esm/foundation/FileUploader.js +216 -0
  67. package/dist/esm/foundation/FileUploader.js.map +1 -0
  68. package/dist/esm/foundation/FileUploaderHandler.d.ts +8 -0
  69. package/dist/esm/foundation/FileUploaderHandler.d.ts.map +1 -0
  70. package/dist/esm/foundation/FileUploaderHandler.js +14 -0
  71. package/dist/esm/foundation/FileUploaderHandler.js.map +1 -0
  72. package/dist/esm/foundation/Foundation.stories.d.ts +8 -0
  73. package/dist/esm/foundation/Foundation.stories.d.ts.map +1 -1
  74. package/dist/esm/foundation/Foundation.stories.js +8 -0
  75. package/dist/esm/foundation/Foundation.stories.js.map +1 -1
  76. package/dist/esm/foundation/activityModel.d.ts +22 -0
  77. package/dist/esm/foundation/activityModel.d.ts.map +1 -0
  78. package/dist/esm/foundation/activityModel.js +58 -0
  79. package/dist/esm/foundation/activityModel.js.map +1 -0
  80. package/dist/esm/foundation/avatarModel.d.ts +11 -0
  81. package/dist/esm/foundation/avatarModel.d.ts.map +1 -0
  82. package/dist/esm/foundation/avatarModel.js +38 -0
  83. package/dist/esm/foundation/avatarModel.js.map +1 -0
  84. package/dist/esm/foundation/checklistModel.d.ts +17 -0
  85. package/dist/esm/foundation/checklistModel.d.ts.map +1 -0
  86. package/dist/esm/foundation/checklistModel.js +53 -0
  87. package/dist/esm/foundation/checklistModel.js.map +1 -0
  88. package/dist/esm/foundation/formatting.d.ts +1 -0
  89. package/dist/esm/foundation/formatting.d.ts.map +1 -1
  90. package/dist/esm/foundation/formatting.js +11 -1
  91. package/dist/esm/foundation/formatting.js.map +1 -1
  92. package/dist/esm/foundation/foundationComponentMetadata.d.ts.map +1 -1
  93. package/dist/esm/foundation/foundationComponentMetadata.js +26 -0
  94. package/dist/esm/foundation/foundationComponentMetadata.js.map +1 -1
  95. package/dist/esm/foundation/foundationDescriptors.d.ts.map +1 -1
  96. package/dist/esm/foundation/foundationDescriptors.js +128 -0
  97. package/dist/esm/foundation/foundationDescriptors.js.map +1 -1
  98. package/dist/esm/foundation/foundationSamples.d.ts.map +1 -1
  99. package/dist/esm/foundation/foundationSamples.js +114 -0
  100. package/dist/esm/foundation/foundationSamples.js.map +1 -1
  101. package/dist/esm/foundation/foundationStrings.d.ts +15 -0
  102. package/dist/esm/foundation/foundationStrings.d.ts.map +1 -1
  103. package/dist/esm/foundation/foundationStrings.js +15 -0
  104. package/dist/esm/foundation/foundationStrings.js.map +1 -1
  105. package/dist/esm/foundation/index.d.ts +9 -0
  106. package/dist/esm/foundation/index.d.ts.map +1 -1
  107. package/dist/esm/foundation/index.js +9 -0
  108. package/dist/esm/foundation/index.js.map +1 -1
  109. package/dist/esm/foundation/uploadModel.d.ts +31 -0
  110. package/dist/esm/foundation/uploadModel.d.ts.map +1 -0
  111. package/dist/esm/foundation/uploadModel.js +65 -0
  112. package/dist/esm/foundation/uploadModel.js.map +1 -0
  113. package/dist/esm/index.js +10 -1
  114. package/dist/esm/index.js.map +1 -1
  115. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  116. package/foundation/ActivityFeed.tsx +61 -0
  117. package/foundation/AvatarStack.tsx +43 -0
  118. package/foundation/ChecklistSection.tsx +80 -0
  119. package/foundation/FileUploader.tsx +122 -0
  120. package/foundation/FileUploaderHandler.tsx +22 -0
  121. package/foundation/Foundation.stories.tsx +8 -0
  122. package/foundation/activityModel.ts +65 -0
  123. package/foundation/avatarModel.ts +36 -0
  124. package/foundation/checklistModel.ts +62 -0
  125. package/foundation/formatting.ts +9 -0
  126. package/foundation/foundationComponentMetadata.ts +4 -0
  127. package/foundation/foundationDescriptors.ts +79 -0
  128. package/foundation/foundationSamples.ts +29 -0
  129. package/foundation/foundationStrings.ts +15 -0
  130. package/foundation/index.ts +9 -0
  131. package/foundation/uploadModel.ts +66 -0
  132. package/package.json +8 -8
  133. package/shell/layout.css +234 -0
package/ComponentName.ts CHANGED
@@ -81,4 +81,16 @@ export enum ComponentName {
81
81
 
82
82
  /** A list's saved views as a menu button. */
83
83
  SavedViewsMenu = 'savedViewsMenu',
84
+
85
+ /** Sections of tasks with owner, due date and progress. */
86
+ ChecklistSection = 'checklistSection',
87
+
88
+ /** What happened to a record, grouped by day. */
89
+ ActivityFeed = 'activityFeed',
90
+
91
+ /** Overlapping avatars for the people on a record. */
92
+ AvatarStack = 'avatarStack',
93
+
94
+ /** A drop zone and file picker with type and size checks. */
95
+ FileUploader = 'fileUploader',
84
96
  }
@@ -4,7 +4,7 @@
4
4
  import { ComponentRegistry, componentRegistryKey } from '@cratis/scene.react';
5
5
  import { ComponentName } from './ComponentName';
6
6
  import { defaultBlueprintName } from './packageName';
7
- import { ChartWrapper, ColumnChooser, EmptyState, FilterBuilder, SavedViewsMenu, StatCard, StatusChip, TrendChip } from './foundation';
7
+ import { ActivityFeed, AvatarStack, ChartWrapper, ChecklistSection, ColumnChooser, FileUploader, EmptyState, FilterBuilder, SavedViewsMenu, StatCard, StatusChip, TrendChip } from './foundation';
8
8
  import {
9
9
  AppShell,
10
10
  Breadcrumb,
@@ -57,4 +57,8 @@ export const defaultBlueprintComponents: ComponentRegistry = {
57
57
  [componentRegistryKey(defaultBlueprintName, ComponentName.FilterBuilder)]: FilterBuilder,
58
58
  [componentRegistryKey(defaultBlueprintName, ComponentName.ColumnChooser)]: ColumnChooser,
59
59
  [componentRegistryKey(defaultBlueprintName, ComponentName.SavedViewsMenu)]: SavedViewsMenu,
60
+ [componentRegistryKey(defaultBlueprintName, ComponentName.ChecklistSection)]: ChecklistSection,
61
+ [componentRegistryKey(defaultBlueprintName, ComponentName.ActivityFeed)]: ActivityFeed,
62
+ [componentRegistryKey(defaultBlueprintName, ComponentName.AvatarStack)]: AvatarStack,
63
+ [componentRegistryKey(defaultBlueprintName, ComponentName.FileUploader)]: FileUploader,
60
64
  };
@@ -34,6 +34,10 @@
34
34
  /** Conditions on fields, joined by AND or OR in nested groups. */ ComponentName["FilterBuilder"] = "filterBuilder";
35
35
  /** Which columns a table shows, and in what order. */ ComponentName["ColumnChooser"] = "columnChooser";
36
36
  /** A list's saved views as a menu button. */ ComponentName["SavedViewsMenu"] = "savedViewsMenu";
37
+ /** Sections of tasks with owner, due date and progress. */ ComponentName["ChecklistSection"] = "checklistSection";
38
+ /** What happened to a record, grouped by day. */ ComponentName["ActivityFeed"] = "activityFeed";
39
+ /** Overlapping avatars for the people on a record. */ ComponentName["AvatarStack"] = "avatarStack";
40
+ /** A drop zone and file picker with type and size checks. */ ComponentName["FileUploader"] = "fileUploader";
37
41
  return ComponentName;
38
42
  }({});
39
43
 
@@ -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 /** 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
+ {"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 /** Sections of tasks with owner, due date and progress. */\n ChecklistSection = 'checklistSection',\n\n /** What happened to a record, grouped by day. */\n ActivityFeed = 'activityFeed',\n\n /** Overlapping avatars for the people on a record. */\n AvatarStack = 'avatarStack',\n\n /** A drop zone and file picker with type and size checks. */\n FileUploader = 'fileUploader',\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;gEAGc,aAAA,CAAA,kBAAA,CAAA,GAAA,kBAAA;sDAGV,aAAA,CAAA,cAAA,CAAA,GAAA,cAAA;2DAGK,aAAA,CAAA,aAAA,CAAA,GAAA,aAAA;kEAGO,aAAA,CAAA,cAAA,CAAA,GAAA,cAAA;AAlFnDA,IAAAA,OAAAA,aAAAA;AAoFX,CAAA,CAAA,EAAA;;"}
@@ -7,6 +7,7 @@ var defaultBlueprintComponentMetadata = require('./defaultBlueprintComponentMeta
7
7
  require('./foundation/ComponentState.js');
8
8
  require('react/jsx-runtime');
9
9
  require('react');
10
+ require('./foundation/ActivityFeed.js');
10
11
  var foundationDescriptors = require('./foundation/foundationDescriptors.js');
11
12
  require('./foundation/foundationComponentMetadata.js');
12
13
  require('./foundation/foundationSamples.js');
@@ -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 { 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,gCAAAA;IACNC,OAAAA,EAAS,OAAA;AACTC,IAAAA,IAAAA,EAAMC,wBAAYC,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,2BAAAA,CAAAA;IAC1BC,OAAAA,EAASH,MAAAA,CAAOC,MAAM,CAACG,qBAAAA,CAAAA;AACvBC,IAAAA,eAAAA,EAAiBC,+BAAuBC,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEiB,IAAAA,eAAAA,EAAiBC,uCAAuBH,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEmB,IAAAA,MAAAA,EAAQC,8CAAuBL,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,qDAAAA;IACZlB,OAAAA,EAASmB,6BAAAA;IACTjB,eAAAA,EAAiBC,8BAAAA;IACjBG,eAAAA,EAAiBC,sCAAAA;IACjBa,OAAAA,EAASC,sBAAAA;IACTb,MAAAA,EAAQC,6CAAAA;AACRa,IAAAA,WAAAA,EAAaC,8BAAAA,CAAmBnC,wBAAAA,CAAyBC,IAAI,EAAEmC,2CAAAA,EAAuBC,mEAAAA;AAC1F;;;"}
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,gCAAAA;IACNC,OAAAA,EAAS,OAAA;AACTC,IAAAA,IAAAA,EAAMC,wBAAYC,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,2BAAAA,CAAAA;IAC1BC,OAAAA,EAASH,MAAAA,CAAOC,MAAM,CAACG,qBAAAA,CAAAA;AACvBC,IAAAA,eAAAA,EAAiBC,+BAAuBC,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEiB,IAAAA,eAAAA,EAAiBC,uCAAuBH,GAAG,CAACC,CAAAA,QAAAA,GAAYA,SAAShB,IAAI,CAAA;AACrEmB,IAAAA,MAAAA,EAAQC,8CAAuBL,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,qDAAAA;IACZlB,OAAAA,EAASmB,6BAAAA;IACTjB,eAAAA,EAAiBC,8BAAAA;IACjBG,eAAAA,EAAiBC,sCAAAA;IACjBa,OAAAA,EAASC,sBAAAA;IACTb,MAAAA,EAAQC,6CAAAA;AACRa,IAAAA,WAAAA,EAAaC,8BAAAA,CAAmBnC,wBAAAA,CAAyBC,IAAI,EAAEmC,2CAAAA,EAAuBC,mEAAAA;AAC1F;;;"}
@@ -5,6 +5,7 @@ require('./foundation/ComponentState.js');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
7
7
  var scene_react = require('@cratis/scene.react');
8
+ require('./foundation/ActivityFeed.js');
8
9
  require('./foundation/foundationDescriptors.js');
9
10
  var foundationComponentMetadata = require('./foundation/foundationComponentMetadata.js');
10
11
  require('./foundation/foundationSamples.js');
@@ -1 +1 @@
1
- {"version":3,"file":"defaultBlueprintComponentMetadata.js","sources":["../../defaultBlueprintComponentMetadata.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 { ComponentCategory } from '@cratis/scene.model';\nimport { foundationComponentMetadata } from './foundation';\nimport { ComponentMetadata, componentMetadata as m, navigationDesignMode } from '@cratis/scene.react';\n\n/** The category, icon, keywords and picker badge of every component of the package (CMP1), keyed by bare component name. */\nexport const defaultBlueprintComponentMetadata: Record<string, ComponentMetadata> = {\n ...foundationComponentMetadata,\n appShell: m('Application shell', ComponentCategory.Layout, 'app-window', ['layout', 'frame', 'chrome']),\n fullPageShell: m('Full page shell', ComponentCategory.Layout, 'maximize', ['layout', 'fullscreen', 'frame']),\n topbar: m('Topbar', ComponentCategory.Navigation, 'panel-top', ['header', 'top bar', 'navigation'], 'Tp', navigationDesignMode()),\n sidebar: m('Side bar', ComponentCategory.Navigation, 'panel-left', ['navigation', 'menu', 'side panel'], 'Sb', navigationDesignMode({ sidebar: true })),\n menu: m('Menu', ComponentCategory.Navigation, 'menu', ['navigation', 'list', 'links']),\n menuItem: m('Menu item', ComponentCategory.Navigation, 'minus', ['link', 'entry', 'navigation']),\n breadcrumb: m('Breadcrumbs', ComponentCategory.Navigation, 'chevron-right', ['trail', 'path', 'navigation']),\n footer: m('Footer', ComponentCategory.Layout, 'panel-bottom', ['bottom', 'page footer']),\n rightPanel: m('Right panel', ComponentCategory.Layout, 'panel-right', ['side panel', 'drawer', 'aside']),\n configPanel: m('Config panel', ComponentCategory.Layout, 'settings', ['settings', 'layout options', 'preferences']),\n pageHeader: m('Page header', ComponentCategory.Layout, 'heading', ['title', 'header', 'page title']),\n mask: m('Mask', ComponentCategory.Feedback, 'layers', ['overlay', 'scrim', 'backdrop']),\n logo: m('Logo', ComponentCategory.DataDisplay, 'badge', ['brand', 'identity', 'image']),\n userMenu: m('User menu', ComponentCategory.Actions, 'circle-user', ['account', 'profile', 'sign out']),\n themeSwitcher: m('Theme switcher', ComponentCategory.Actions, 'palette', ['theme', 'dark mode', 'colors']),\n layoutModeSwitcher: m('Layout mode switcher', ComponentCategory.Actions, 'layout-dashboard', ['layout', 'mode', 'navigation style']),\n};\n"],"names":["defaultBlueprintComponentMetadata","foundationComponentMetadata","appShell","m","ComponentCategory","Layout","fullPageShell","topbar","Navigation","navigationDesignMode","sidebar","menu","menuItem","breadcrumb","footer","rightPanel","configPanel","pageHeader","mask","Feedback","logo","DataDisplay","userMenu","Actions","themeSwitcher","layoutModeSwitcher"],"mappings":"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"}
1
+ {"version":3,"file":"defaultBlueprintComponentMetadata.js","sources":["../../defaultBlueprintComponentMetadata.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 { ComponentCategory } from '@cratis/scene.model';\nimport { foundationComponentMetadata } from './foundation';\nimport { ComponentMetadata, componentMetadata as m, navigationDesignMode } from '@cratis/scene.react';\n\n/** The category, icon, keywords and picker badge of every component of the package (CMP1), keyed by bare component name. */\nexport const defaultBlueprintComponentMetadata: Record<string, ComponentMetadata> = {\n ...foundationComponentMetadata,\n appShell: m('Application shell', ComponentCategory.Layout, 'app-window', ['layout', 'frame', 'chrome']),\n fullPageShell: m('Full page shell', ComponentCategory.Layout, 'maximize', ['layout', 'fullscreen', 'frame']),\n topbar: m('Topbar', ComponentCategory.Navigation, 'panel-top', ['header', 'top bar', 'navigation'], 'Tp', navigationDesignMode()),\n sidebar: m('Side bar', ComponentCategory.Navigation, 'panel-left', ['navigation', 'menu', 'side panel'], 'Sb', navigationDesignMode({ sidebar: true })),\n menu: m('Menu', ComponentCategory.Navigation, 'menu', ['navigation', 'list', 'links']),\n menuItem: m('Menu item', ComponentCategory.Navigation, 'minus', ['link', 'entry', 'navigation']),\n breadcrumb: m('Breadcrumbs', ComponentCategory.Navigation, 'chevron-right', ['trail', 'path', 'navigation']),\n footer: m('Footer', ComponentCategory.Layout, 'panel-bottom', ['bottom', 'page footer']),\n rightPanel: m('Right panel', ComponentCategory.Layout, 'panel-right', ['side panel', 'drawer', 'aside']),\n configPanel: m('Config panel', ComponentCategory.Layout, 'settings', ['settings', 'layout options', 'preferences']),\n pageHeader: m('Page header', ComponentCategory.Layout, 'heading', ['title', 'header', 'page title']),\n mask: m('Mask', ComponentCategory.Feedback, 'layers', ['overlay', 'scrim', 'backdrop']),\n logo: m('Logo', ComponentCategory.DataDisplay, 'badge', ['brand', 'identity', 'image']),\n userMenu: m('User menu', ComponentCategory.Actions, 'circle-user', ['account', 'profile', 'sign out']),\n themeSwitcher: m('Theme switcher', ComponentCategory.Actions, 'palette', ['theme', 'dark mode', 'colors']),\n layoutModeSwitcher: m('Layout mode switcher', ComponentCategory.Actions, 'layout-dashboard', ['layout', 'mode', 'navigation style']),\n};\n"],"names":["defaultBlueprintComponentMetadata","foundationComponentMetadata","appShell","m","ComponentCategory","Layout","fullPageShell","topbar","Navigation","navigationDesignMode","sidebar","menu","menuItem","breadcrumb","footer","rightPanel","configPanel","pageHeader","mask","Feedback","logo","DataDisplay","userMenu","Actions","themeSwitcher","layoutModeSwitcher"],"mappings":"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"}
@@ -14,6 +14,10 @@ var ChartWrapper = require('./foundation/ChartWrapper.js');
14
14
  var FilterBuilder = require('./foundation/FilterBuilder.js');
15
15
  var ColumnChooser = require('./foundation/ColumnChooser.js');
16
16
  var SavedViewsMenu = require('./foundation/SavedViewsMenu.js');
17
+ var ChecklistSection = require('./foundation/ChecklistSection.js');
18
+ var ActivityFeed = require('./foundation/ActivityFeed.js');
19
+ var AvatarStack = require('./foundation/AvatarStack.js');
20
+ var FileUploader = require('./foundation/FileUploader.js');
17
21
  require('./foundation/foundationDescriptors.js');
18
22
  require('./foundation/foundationComponentMetadata.js');
19
23
  require('./foundation/foundationSamples.js');
@@ -67,7 +71,11 @@ var LayoutModeSwitcher = require('./shell/LayoutModeSwitcher.js');
67
71
  [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.ChartWrapper)]: ChartWrapper.ChartWrapper,
68
72
  [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.FilterBuilder)]: FilterBuilder.FilterBuilder,
69
73
  [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.ColumnChooser)]: ColumnChooser.ColumnChooser,
70
- [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.SavedViewsMenu)]: SavedViewsMenu.SavedViewsMenu
74
+ [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.SavedViewsMenu)]: SavedViewsMenu.SavedViewsMenu,
75
+ [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.ChecklistSection)]: ChecklistSection.ChecklistSection,
76
+ [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.ActivityFeed)]: ActivityFeed.ActivityFeed,
77
+ [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.AvatarStack)]: AvatarStack.AvatarStack,
78
+ [scene_react.componentRegistryKey(packageName.defaultBlueprintName, ComponentName.ComponentName.FileUploader)]: FileUploader.FileUploader
71
79
  };
72
80
 
73
81
  exports.defaultBlueprintComponents = defaultBlueprintComponents;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultBlueprintComponents.js","sources":["../../defaultBlueprintComponents.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 { ComponentRegistry, componentRegistryKey } from '@cratis/scene.react';\nimport { ComponentName } from './ComponentName';\nimport { defaultBlueprintName } from './packageName';\nimport { ChartWrapper, ColumnChooser, EmptyState, FilterBuilder, SavedViewsMenu, StatCard, StatusChip, TrendChip } from './foundation';\nimport {\n AppShell,\n Breadcrumb,\n ConfigPanel,\n Footer,\n FullPageShell,\n LayoutModeSwitcher,\n Logo,\n Mask,\n Menu,\n MenuItem,\n PageHeader,\n RightPanel,\n Sidebar,\n ThemeSwitcher,\n Topbar,\n UserMenu,\n} from './shell';\n\n/**\n * The components this package registers, keyed the way the renderer looks them up.\n *\n * Every key is built with `componentRegistryKey` rather than written out, because the separator between\n * package and component name is the registry's own business - it is deliberately not the `.` a screen uses\n * to qualify a name, so that a package name containing dots stays unambiguous. Building a key by hand is\n * how a component ends up registered under something no lookup will ever produce.\n */\nexport const defaultBlueprintComponents: ComponentRegistry = {\n [componentRegistryKey(defaultBlueprintName, ComponentName.AppShell)]: AppShell,\n [componentRegistryKey(defaultBlueprintName, ComponentName.FullPageShell)]: FullPageShell,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Topbar)]: Topbar,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Sidebar)]: Sidebar,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Menu)]: Menu,\n [componentRegistryKey(defaultBlueprintName, ComponentName.MenuItem)]: MenuItem,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Breadcrumb)]: Breadcrumb,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Footer)]: Footer,\n [componentRegistryKey(defaultBlueprintName, ComponentName.RightPanel)]: RightPanel,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ConfigPanel)]: ConfigPanel,\n [componentRegistryKey(defaultBlueprintName, ComponentName.PageHeader)]: PageHeader,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Mask)]: Mask,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Logo)]: Logo,\n [componentRegistryKey(defaultBlueprintName, ComponentName.UserMenu)]: UserMenu,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ThemeSwitcher)]: ThemeSwitcher,\n [componentRegistryKey(defaultBlueprintName, ComponentName.LayoutModeSwitcher)]: LayoutModeSwitcher,\n [componentRegistryKey(defaultBlueprintName, ComponentName.EmptyState)]: EmptyState,\n [componentRegistryKey(defaultBlueprintName, ComponentName.StatCard)]: StatCard,\n [componentRegistryKey(defaultBlueprintName, ComponentName.TrendChip)]: TrendChip,\n [componentRegistryKey(defaultBlueprintName, ComponentName.StatusChip)]: StatusChip,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ChartWrapper)]: ChartWrapper,\n [componentRegistryKey(defaultBlueprintName, ComponentName.FilterBuilder)]: FilterBuilder,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ColumnChooser)]: ColumnChooser,\n [componentRegistryKey(defaultBlueprintName, ComponentName.SavedViewsMenu)]: SavedViewsMenu,\n};\n"],"names":["defaultBlueprintComponents","componentRegistryKey","defaultBlueprintName","ComponentName","AppShell","FullPageShell","Topbar","Sidebar","Menu","MenuItem","Breadcrumb","Footer","RightPanel","ConfigPanel","PageHeader","Mask","Logo","UserMenu","ThemeSwitcher","LayoutModeSwitcher","EmptyState","StatCard","TrendChip","StatusChip","ChartWrapper","FilterBuilder","ColumnChooser","SavedViewsMenu"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAyBA;;;;;;;UAQaA,0BAAAA,GAAgD;AACzD,IAAA,CAACC,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcC,QAAQ,IAAIA,iBAAAA;AACtE,IAAA,CAACH,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcE,aAAa,IAAIA,2BAAAA;AAC3E,IAAA,CAACJ,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcG,MAAM,IAAIA,aAAAA;AACpE,IAAA,CAACL,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcI,OAAO,IAAIA,eAAAA;AACrE,IAAA,CAACN,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcK,IAAI,IAAIA,SAAAA;AAClE,IAAA,CAACP,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcM,QAAQ,IAAIA,iBAAAA;AACtE,IAAA,CAACR,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcO,UAAU,IAAIA,qBAAAA;AACxE,IAAA,CAACT,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcQ,MAAM,IAAIA,aAAAA;AACpE,IAAA,CAACV,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcS,UAAU,IAAIA,qBAAAA;AACxE,IAAA,CAACX,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcU,WAAW,IAAIA,uBAAAA;AACzE,IAAA,CAACZ,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcW,UAAU,IAAIA,qBAAAA;AACxE,IAAA,CAACb,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcY,IAAI,IAAIA,SAAAA;AAClE,IAAA,CAACd,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAca,IAAI,IAAIA,SAAAA;AAClE,IAAA,CAACf,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcc,QAAQ,IAAIA,iBAAAA;AACtE,IAAA,CAAChB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAce,aAAa,IAAIA,2BAAAA;AAC3E,IAAA,CAACjB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcgB,kBAAkB,IAAIA,qCAAAA;AAChF,IAAA,CAAClB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAciB,UAAU,IAAIA,qBAAAA;AACxE,IAAA,CAACnB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAckB,QAAQ,IAAIA,iBAAAA;AACtE,IAAA,CAACpB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcmB,SAAS,IAAIA,mBAAAA;AACvE,IAAA,CAACrB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcoB,UAAU,IAAIA,qBAAAA;AACxE,IAAA,CAACtB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcqB,YAAY,IAAIA,yBAAAA;AAC1E,IAAA,CAACvB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcsB,aAAa,IAAIA,2BAAAA;AAC3E,IAAA,CAACxB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcuB,aAAa,IAAIA,2BAAAA;AAC3E,IAAA,CAACzB,gCAAAA,CAAqBC,gCAAAA,EAAsBC,2BAAAA,CAAcwB,cAAc,IAAIA;AAChF;;"}
1
+ {"version":3,"file":"defaultBlueprintComponents.js","sources":["../../defaultBlueprintComponents.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 { ComponentRegistry, componentRegistryKey } from '@cratis/scene.react';\nimport { ComponentName } from './ComponentName';\nimport { defaultBlueprintName } from './packageName';\nimport { ActivityFeed, AvatarStack, ChartWrapper, ChecklistSection, ColumnChooser, FileUploader, EmptyState, FilterBuilder, SavedViewsMenu, StatCard, StatusChip, TrendChip } from './foundation';\nimport {\n AppShell,\n Breadcrumb,\n ConfigPanel,\n Footer,\n FullPageShell,\n LayoutModeSwitcher,\n Logo,\n Mask,\n Menu,\n MenuItem,\n PageHeader,\n RightPanel,\n Sidebar,\n ThemeSwitcher,\n Topbar,\n UserMenu,\n} from './shell';\n\n/**\n * The components this package registers, keyed the way the renderer looks them up.\n *\n * Every key is built with `componentRegistryKey` rather than written out, because the separator between\n * package and component name is the registry's own business - it is deliberately not the `.` a screen uses\n * to qualify a name, so that a package name containing dots stays unambiguous. Building a key by hand is\n * how a component ends up registered under something no lookup will ever produce.\n */\nexport const defaultBlueprintComponents: ComponentRegistry = {\n [componentRegistryKey(defaultBlueprintName, ComponentName.AppShell)]: AppShell,\n [componentRegistryKey(defaultBlueprintName, ComponentName.FullPageShell)]: FullPageShell,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Topbar)]: Topbar,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Sidebar)]: Sidebar,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Menu)]: Menu,\n [componentRegistryKey(defaultBlueprintName, ComponentName.MenuItem)]: MenuItem,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Breadcrumb)]: Breadcrumb,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Footer)]: Footer,\n [componentRegistryKey(defaultBlueprintName, ComponentName.RightPanel)]: RightPanel,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ConfigPanel)]: ConfigPanel,\n [componentRegistryKey(defaultBlueprintName, ComponentName.PageHeader)]: PageHeader,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Mask)]: Mask,\n [componentRegistryKey(defaultBlueprintName, ComponentName.Logo)]: Logo,\n [componentRegistryKey(defaultBlueprintName, ComponentName.UserMenu)]: UserMenu,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ThemeSwitcher)]: ThemeSwitcher,\n [componentRegistryKey(defaultBlueprintName, ComponentName.LayoutModeSwitcher)]: LayoutModeSwitcher,\n [componentRegistryKey(defaultBlueprintName, ComponentName.EmptyState)]: EmptyState,\n [componentRegistryKey(defaultBlueprintName, ComponentName.StatCard)]: StatCard,\n [componentRegistryKey(defaultBlueprintName, ComponentName.TrendChip)]: TrendChip,\n [componentRegistryKey(defaultBlueprintName, ComponentName.StatusChip)]: StatusChip,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ChartWrapper)]: ChartWrapper,\n [componentRegistryKey(defaultBlueprintName, ComponentName.FilterBuilder)]: FilterBuilder,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ColumnChooser)]: ColumnChooser,\n [componentRegistryKey(defaultBlueprintName, ComponentName.SavedViewsMenu)]: SavedViewsMenu,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ChecklistSection)]: ChecklistSection,\n [componentRegistryKey(defaultBlueprintName, ComponentName.ActivityFeed)]: ActivityFeed,\n [componentRegistryKey(defaultBlueprintName, ComponentName.AvatarStack)]: AvatarStack,\n [componentRegistryKey(defaultBlueprintName, ComponentName.FileUploader)]: FileUploader,\n};\n"],"names":["defaultBlueprintComponents","componentRegistryKey","defaultBlueprintName","ComponentName","AppShell","FullPageShell","Topbar","Sidebar","Menu","MenuItem","Breadcrumb","Footer","RightPanel","ConfigPanel","PageHeader","Mask","Logo","UserMenu","ThemeSwitcher","LayoutModeSwitcher","EmptyState","StatCard","TrendChip","StatusChip","ChartWrapper","FilterBuilder","ColumnChooser","SavedViewsMenu","ChecklistSection","ActivityFeed","AvatarStack","FileUploader"],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var elementProperties = require('../shell/elementProperties.js');
6
+ var activityModel = require('./activityModel.js');
7
+ var ComponentState = require('./ComponentState.js');
8
+ var FoundationIcon = require('./FoundationIcon.js');
9
+ var formatting = require('./formatting.js');
10
+ var foundationStrings = require('./foundationStrings.js');
11
+ var StateFrame = require('./StateFrame.js');
12
+
13
+ const icons = {
14
+ [activityModel.ActivityKind.Comment]: 'user',
15
+ [activityModel.ActivityKind.Change]: 'refresh',
16
+ [activityModel.ActivityKind.Status]: 'check',
17
+ [activityModel.ActivityKind.System]: 'info'
18
+ };
19
+ /**
20
+ * The `activityFeed` component: what happened to a record, newest first, under a heading for each day.
21
+ *
22
+ * `entries` carry an id, who (`actor`), what (`action`), the instant (`at`, ISO 8601), a `kind` and an optional `body` such as a comment's
23
+ * text. The feed is an ordered list; each entry names its kind in words for assistive technology as well as by icon, and its time is a
24
+ * `time` element formatted for the locale. Content is supplied by the application - this only lays it out - and a feed of any length
25
+ * stays one list. `order="ascending"` reads oldest first, and `timeZone` fixes the zone days are cut in.
26
+ */ function ActivityFeed({ element, interactions }) {
27
+ const entries = react.useMemo(()=>activityModel.readActivity(element.properties.entries), [
28
+ element.properties.entries
29
+ ]);
30
+ const strings = foundationStrings.readFoundationStrings(element);
31
+ const locale = formatting.readLocale(element);
32
+ const timeZone = elementProperties.readOptionalString(element, 'timeZone');
33
+ const days = react.useMemo(()=>activityModel.groupByDay(entries, element.properties.order === 'ascending', timeZone), [
34
+ entries,
35
+ element.properties.order,
36
+ timeZone
37
+ ]);
38
+ const state = ComponentState.readComponentState(element, entries.length > 0);
39
+ const kindText = {
40
+ comment: strings.activityComment,
41
+ change: strings.activityChange,
42
+ status: strings.activityStatus,
43
+ system: strings.activitySystem
44
+ };
45
+ const emptyElement = state === ComponentState.ComponentState.Empty ? {
46
+ ...element,
47
+ properties: {
48
+ emptyHeadline: strings.activityEmpty,
49
+ ...element.properties
50
+ }
51
+ } : element;
52
+ return /*#__PURE__*/ jsxRuntime.jsx(StateFrame.FoundationFrame, {
53
+ element: emptyElement,
54
+ interactions: interactions,
55
+ name: "activity-feed",
56
+ state: state,
57
+ skeleton: [
58
+ 60,
59
+ 90,
60
+ 70,
61
+ 85
62
+ ],
63
+ children: (state === ComponentState.ComponentState.Ready || state === ComponentState.ComponentState.Partial) && days.map((day)=>/*#__PURE__*/ jsxRuntime.jsxs("section", {
64
+ className: "foundation-activity-day",
65
+ children: [
66
+ /*#__PURE__*/ jsxRuntime.jsx("h3", {
67
+ className: "foundation-activity-heading",
68
+ children: /*#__PURE__*/ jsxRuntime.jsx("time", {
69
+ dateTime: day.day,
70
+ children: formatting.formatDay(day.day, locale)
71
+ })
72
+ }),
73
+ /*#__PURE__*/ jsxRuntime.jsx("ol", {
74
+ className: "foundation-activity-list",
75
+ children: day.entries.map((entry)=>/*#__PURE__*/ jsxRuntime.jsxs("li", {
76
+ className: "foundation-activity-entry",
77
+ "data-kind": entry.kind,
78
+ children: [
79
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
80
+ className: "foundation-activity-icon",
81
+ children: /*#__PURE__*/ jsxRuntime.jsx(FoundationIcon.FoundationIcon, {
82
+ name: icons[entry.kind]
83
+ })
84
+ }),
85
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
86
+ className: "foundation-activity-content",
87
+ children: [
88
+ /*#__PURE__*/ jsxRuntime.jsxs("p", {
89
+ className: "foundation-activity-summary",
90
+ children: [
91
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
92
+ className: "foundation-visually-hidden",
93
+ children: `${kindText[entry.kind]}: `
94
+ }),
95
+ /*#__PURE__*/ jsxRuntime.jsx("strong", {
96
+ children: entry.actor
97
+ }),
98
+ " ",
99
+ entry.action
100
+ ]
101
+ }),
102
+ entry.body && /*#__PURE__*/ jsxRuntime.jsx("p", {
103
+ className: "foundation-activity-body",
104
+ children: entry.body
105
+ }),
106
+ /*#__PURE__*/ jsxRuntime.jsx("time", {
107
+ className: "foundation-count",
108
+ dateTime: entry.at,
109
+ children: formatting.formatDate(entry.at, locale, true)
110
+ })
111
+ ]
112
+ })
113
+ ]
114
+ }, entry.id))
115
+ })
116
+ ]
117
+ }, day.day))
118
+ });
119
+ }
120
+
121
+ exports.ActivityFeed = ActivityFeed;
122
+ //# sourceMappingURL=ActivityFeed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityFeed.js","sources":["../../../foundation/ActivityFeed.tsx"],"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 { useMemo } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { readOptionalString } from '../shell/elementProperties';\nimport { ActivityKind, groupByDay, readActivity } from './activityModel';\nimport { ComponentState, readComponentState } from './ComponentState';\nimport { FoundationIcon, FoundationIconName } from './FoundationIcon';\nimport { formatDate, formatDay, readLocale } from './formatting';\nimport { readFoundationStrings } from './foundationStrings';\nimport { FoundationFrame } from './StateFrame';\n\nconst icons: Record<ActivityKind, FoundationIconName> = {\n [ActivityKind.Comment]: 'user', [ActivityKind.Change]: 'refresh', [ActivityKind.Status]: 'check', [ActivityKind.System]: 'info',\n};\n\n/**\n * The `activityFeed` component: what happened to a record, newest first, under a heading for each day.\n *\n * `entries` carry an id, who (`actor`), what (`action`), the instant (`at`, ISO 8601), a `kind` and an optional `body` such as a comment's\n * text. The feed is an ordered list; each entry names its kind in words for assistive technology as well as by icon, and its time is a\n * `time` element formatted for the locale. Content is supplied by the application - this only lays it out - and a feed of any length\n * stays one list. `order=\"ascending\"` reads oldest first, and `timeZone` fixes the zone days are cut in.\n */\nexport function ActivityFeed({ element, interactions }: RegisteredComponentProps) {\n const entries = useMemo(() => readActivity(element.properties.entries), [element.properties.entries]);\n const strings = readFoundationStrings(element);\n const locale = readLocale(element);\n const timeZone = readOptionalString(element, 'timeZone');\n const days = useMemo(() => groupByDay(entries, element.properties.order === 'ascending', timeZone), [entries, element.properties.order, timeZone]);\n const state = readComponentState(element, entries.length > 0);\n const kindText: Record<ActivityKind, string> = { comment: strings.activityComment, change: strings.activityChange, status: strings.activityStatus, system: strings.activitySystem };\n const emptyElement = state === ComponentState.Empty ? { ...element, properties: { emptyHeadline: strings.activityEmpty, ...element.properties } } : element;\n\n return (\n <FoundationFrame element={emptyElement} interactions={interactions} name='activity-feed' state={state} skeleton={[60, 90, 70, 85]}>\n {(state === ComponentState.Ready || state === ComponentState.Partial) && days.map(day => (\n <section key={day.day} className='foundation-activity-day'>\n <h3 className='foundation-activity-heading'><time dateTime={day.day}>{formatDay(day.day, locale)}</time></h3>\n <ol className='foundation-activity-list'>\n {day.entries.map(entry => (\n <li key={entry.id} className='foundation-activity-entry' data-kind={entry.kind}>\n <span className='foundation-activity-icon'><FoundationIcon name={icons[entry.kind]} /></span>\n <div className='foundation-activity-content'>\n <p className='foundation-activity-summary'>\n <span className='foundation-visually-hidden'>{`${kindText[entry.kind]}: `}</span>\n <strong>{entry.actor}</strong> {entry.action}\n </p>\n {entry.body && <p className='foundation-activity-body'>{entry.body}</p>}\n <time className='foundation-count' dateTime={entry.at}>{formatDate(entry.at, locale, true)}</time>\n </div>\n </li>\n ))}\n </ol>\n </section>\n ))}\n </FoundationFrame>\n );\n}\n\n"],"names":["icons","ActivityKind","Comment","Change","Status","System","ActivityFeed","element","interactions","entries","useMemo","readActivity","properties","strings","readFoundationStrings","locale","readLocale","timeZone","readOptionalString","days","groupByDay","order","state","readComponentState","length","kindText","comment","activityComment","change","activityChange","status","activityStatus","system","activitySystem","emptyElement","ComponentState","Empty","emptyHeadline","activityEmpty","_jsx","FoundationFrame","name","skeleton","Ready","Partial","map","day","_jsxs","section","className","h3","time","dateTime","formatDay","ol","entry","li","data-kind","kind","span","FoundationIcon","div","p","strong","actor","action","body","at","formatDate","id"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var avatarModel = require('./avatarModel.js');
6
+ var ComponentState = require('./ComponentState.js');
7
+ var foundationStrings = require('./foundationStrings.js');
8
+ var StateFrame = require('./StateFrame.js');
9
+
10
+ /**
11
+ * The `avatarStack` component: overlapping avatars for the people on a record, with a "+N" chip for the rest.
12
+ *
13
+ * `people` are names with an optional picture; without one the avatar shows the person's initials. The stack is a labelled group ("5 people"),
14
+ * each avatar is an image named after its person, and the overflow chip says how many more in words. `max` is how many are shown (4 by
15
+ * default) and `size` is `small` or `medium`.
16
+ */ function AvatarStack({ element, interactions }) {
17
+ const people = react.useMemo(()=>avatarModel.readPeople(element.properties.people), [
18
+ element.properties.people
19
+ ]);
20
+ const strings = foundationStrings.readFoundationStrings(element);
21
+ const { shown, hidden } = avatarModel.visiblePeople(people, typeof element.properties.max === 'number' ? element.properties.max : 4);
22
+ const state = ComponentState.readComponentState(element, people.length > 0);
23
+ const size = element.properties.size === 'small' ? 'small' : 'medium';
24
+ return /*#__PURE__*/ jsxRuntime.jsx(StateFrame.FoundationFrame, {
25
+ element: element,
26
+ interactions: interactions,
27
+ name: "avatar-stack",
28
+ state: state,
29
+ skeleton: [
30
+ 35
31
+ ],
32
+ children: (state === ComponentState.ComponentState.Ready || state === ComponentState.ComponentState.Partial) && /*#__PURE__*/ jsxRuntime.jsxs("ul", {
33
+ className: "foundation-avatars",
34
+ role: "group",
35
+ "aria-label": foundationStrings.formatText(strings.avatarPeople, {
36
+ count: people.length
37
+ }),
38
+ "data-size": size,
39
+ children: [
40
+ shown.map((person)=>/*#__PURE__*/ jsxRuntime.jsx("li", {
41
+ className: "foundation-avatar",
42
+ role: "img",
43
+ "aria-label": person.name,
44
+ title: person.name,
45
+ children: person.imageUrl ? /*#__PURE__*/ jsxRuntime.jsx("img", {
46
+ src: person.imageUrl,
47
+ alt: ""
48
+ }) : /*#__PURE__*/ jsxRuntime.jsx("span", {
49
+ "aria-hidden": "true",
50
+ children: avatarModel.initialsOf(person.name)
51
+ })
52
+ }, person.name)),
53
+ hidden > 0 && /*#__PURE__*/ jsxRuntime.jsx("li", {
54
+ className: "foundation-avatar foundation-avatar-more",
55
+ role: "img",
56
+ "aria-label": foundationStrings.formatText(strings.avatarOverflow, {
57
+ count: hidden
58
+ }),
59
+ children: /*#__PURE__*/ jsxRuntime.jsxs("span", {
60
+ "aria-hidden": "true",
61
+ children: [
62
+ "+",
63
+ hidden
64
+ ]
65
+ })
66
+ })
67
+ ]
68
+ })
69
+ });
70
+ }
71
+
72
+ exports.AvatarStack = AvatarStack;
73
+ //# sourceMappingURL=AvatarStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarStack.js","sources":["../../../foundation/AvatarStack.tsx"],"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 { useMemo } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { initialsOf, readPeople, visiblePeople } from './avatarModel';\nimport { ComponentState, readComponentState } from './ComponentState';\nimport { formatText, readFoundationStrings } from './foundationStrings';\nimport { FoundationFrame } from './StateFrame';\n\n/**\n * The `avatarStack` component: overlapping avatars for the people on a record, with a \"+N\" chip for the rest.\n *\n * `people` are names with an optional picture; without one the avatar shows the person's initials. The stack is a labelled group (\"5 people\"),\n * each avatar is an image named after its person, and the overflow chip says how many more in words. `max` is how many are shown (4 by\n * default) and `size` is `small` or `medium`.\n */\nexport function AvatarStack({ element, interactions }: RegisteredComponentProps) {\n const people = useMemo(() => readPeople(element.properties.people), [element.properties.people]);\n const strings = readFoundationStrings(element);\n const { shown, hidden } = visiblePeople(people, typeof element.properties.max === 'number' ? element.properties.max : 4);\n const state = readComponentState(element, people.length > 0);\n const size = element.properties.size === 'small' ? 'small' : 'medium';\n\n return (\n <FoundationFrame element={element} interactions={interactions} name='avatar-stack' state={state} skeleton={[35]}>\n {(state === ComponentState.Ready || state === ComponentState.Partial) && (\n <ul className='foundation-avatars' role='group' aria-label={formatText(strings.avatarPeople, { count: people.length })} data-size={size}>\n {shown.map(person => (\n <li key={person.name} className='foundation-avatar' role='img' aria-label={person.name} title={person.name}>\n {person.imageUrl ? <img src={person.imageUrl} alt='' /> : <span aria-hidden='true'>{initialsOf(person.name)}</span>}\n </li>\n ))}\n {hidden > 0 && (\n <li className='foundation-avatar foundation-avatar-more' role='img' aria-label={formatText(strings.avatarOverflow, { count: hidden })}>\n <span aria-hidden='true'>+{hidden}</span>\n </li>\n )}\n </ul>\n )}\n </FoundationFrame>\n );\n}\n"],"names":["AvatarStack","element","interactions","people","useMemo","readPeople","properties","strings","readFoundationStrings","shown","hidden","visiblePeople","max","state","readComponentState","length","size","_jsx","FoundationFrame","name","skeleton","ComponentState","Ready","Partial","_jsxs","ul","className","role","aria-label","formatText","avatarPeople","count","data-size","map","person","li","title","imageUrl","img","src","alt","span","aria-hidden","initialsOf","avatarOverflow"],"mappings":";;;;;;;;;AAUA;;;;;;AAMC,IACM,SAASA,WAAAA,CAAY,EAAEC,OAAO,EAAEC,YAAY,EAA4B,EAAA;IAC3E,MAAMC,MAAAA,GAASC,cAAQ,IAAMC,sBAAAA,CAAWJ,QAAQK,UAAU,CAACH,MAAM,CAAA,EAAG;QAACF,OAAAA,CAAQK,UAAU,CAACH;AAAO,KAAA,CAAA;AAC/F,IAAA,MAAMI,UAAUC,uCAAAA,CAAsBP,OAAAA,CAAAA;AACtC,IAAA,MAAM,EAAEQ,KAAK,EAAEC,MAAM,EAAE,GAAGC,0BAAcR,MAAAA,EAAQ,OAAOF,QAAQK,UAAU,CAACM,GAAG,KAAK,QAAA,GAAWX,QAAQK,UAAU,CAACM,GAAG,GAAG,CAAA,CAAA;AACtH,IAAA,MAAMC,KAAAA,GAAQC,iCAAAA,CAAmBb,OAAAA,EAASE,MAAAA,CAAOY,MAAM,GAAG,CAAA,CAAA;AAC1D,IAAA,MAAMC,OAAOf,OAAAA,CAAQK,UAAU,CAACU,IAAI,KAAK,UAAU,OAAA,GAAU,QAAA;AAE7D,IAAA,qBACIC,cAAA,CAACC,0BAAAA,EAAAA;QAAgBjB,OAAAA,EAASA,OAAAA;QAASC,YAAAA,EAAcA,YAAAA;QAAciB,IAAAA,EAAK,cAAA;QAAeN,KAAAA,EAAOA,KAAAA;QAAOO,QAAAA,EAAU;AAAC,YAAA;AAAG,SAAA;kBAC1G,CAACP,KAAAA,KAAUQ,6BAAAA,CAAeC,KAAK,IAAIT,UAAUQ,6BAAAA,CAAeE,OAAO,mBAChEC,eAAA,CAACC,IAAAA,EAAAA;YAAGC,SAAAA,EAAU,oBAAA;YAAqBC,IAAAA,EAAK,OAAA;YAAQC,YAAAA,EAAYC,4BAAAA,CAAWtB,OAAAA,CAAQuB,YAAY,EAAE;AAAEC,gBAAAA,KAAAA,EAAO5B,OAAOY;AAAO,aAAA,CAAA;YAAIiB,WAAAA,EAAWhB,IAAAA;;AAC9HP,gBAAAA,KAAAA,CAAMwB,GAAG,CAACC,CAAAA,MAAAA,iBACPjB,cAAA,CAACkB,IAAAA,EAAAA;wBAAqBT,SAAAA,EAAU,mBAAA;wBAAoBC,IAAAA,EAAK,KAAA;AAAMC,wBAAAA,YAAAA,EAAYM,OAAOf,IAAI;AAAEiB,wBAAAA,KAAAA,EAAOF,OAAOf,IAAI;kCACrGe,MAAAA,CAAOG,QAAQ,iBAAGpB,cAAA,CAACqB,KAAAA,EAAAA;AAAIC,4BAAAA,GAAAA,EAAKL,OAAOG,QAAQ;4BAAEG,GAAAA,EAAI;2CAAQvB,cAAA,CAACwB,MAAAA,EAAAA;4BAAKC,aAAAA,EAAY,MAAA;AAAQC,4BAAAA,QAAAA,EAAAA,sBAAAA,CAAWT,OAAOf,IAAI;;AADrGe,qBAAAA,EAAAA,MAAAA,CAAOf,IAAI,CAAA,CAAA;AAIvBT,gBAAAA,MAAAA,GAAS,mBACNO,cAAA,CAACkB,IAAAA,EAAAA;oBAAGT,SAAAA,EAAU,0CAAA;oBAA2CC,IAAAA,EAAK,KAAA;oBAAMC,YAAAA,EAAYC,4BAAAA,CAAWtB,OAAAA,CAAQqC,cAAc,EAAE;wBAAEb,KAAAA,EAAOrB;AAAO,qBAAA,CAAA;AAC/H,oBAAA,QAAA,gBAAAc,eAAA,CAACiB,MAAAA,EAAAA;wBAAKC,aAAAA,EAAY,MAAA;;AAAO,4BAAA,GAAA;AAAEhC,4BAAAA;;;;;;;AAOvD;;"}
@@ -0,0 +1,174 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var scene_react = require('@cratis/scene.react');
6
+ var checklistModel = require('./checklistModel.js');
7
+ var ComponentState = require('./ComponentState.js');
8
+ var FoundationIcon = require('./FoundationIcon.js');
9
+ var formatting = require('./formatting.js');
10
+ var foundationStrings = require('./foundationStrings.js');
11
+ var PermissionRule = require('./PermissionRule.js');
12
+ var StateFrame = require('./StateFrame.js');
13
+
14
+ /**
15
+ * The `checklistSection` component: sections of tasks, each with its owner and due date, and a progress bar per section.
16
+ *
17
+ * `sections` give the structure (`title`, and `items` with `id`, `label`, `owner`, `due`, `done`). Ticking a task publishes the ids of all
18
+ * done tasks as the `value` output and runs the behaviors attached to the element. An open task past its due date says "Overdue" in
19
+ * words as well as in color. Progress is a labelled progress bar, so "2 of 5 complete" is read, not just seen. With `editPermission`
20
+ * not enabled the tasks are shown and cannot be changed.
21
+ */ function ChecklistSection({ element, interactions, bindingOutputs }) {
22
+ const supplied = react.useMemo(()=>checklistModel.readChecklist(element.properties.sections), [
23
+ element.properties.sections
24
+ ]);
25
+ const suppliedKey = JSON.stringify(supplied);
26
+ const [groups, setGroups] = react.useState(supplied);
27
+ const strings = foundationStrings.readFoundationStrings(element);
28
+ const locale = formatting.readLocale(element);
29
+ const state = ComponentState.readComponentState(element, supplied.some((group)=>group.items.length > 0));
30
+ const locked = PermissionRule.readPermissionRule(element, 'editPermission') !== 'enabled';
31
+ const now = react.useMemo(()=>typeof element.properties.today === 'string' ? new Date(element.properties.today) : new Date(), [
32
+ element.properties.today
33
+ ]);
34
+ react.useEffect(()=>setGroups(supplied), [
35
+ suppliedKey
36
+ ]);
37
+ scene_react.useValueOutput(bindingOutputs, checklistModel.doneTaskIds(groups));
38
+ return /*#__PURE__*/ jsxRuntime.jsx(StateFrame.FoundationFrame, {
39
+ element: element,
40
+ interactions: interactions,
41
+ name: "checklist",
42
+ state: state,
43
+ skeleton: [
44
+ 40,
45
+ 100,
46
+ 90,
47
+ 95
48
+ ],
49
+ children: (state === ComponentState.ComponentState.Ready || state === ComponentState.ComponentState.Partial) && groups.map((group, groupIndex)=>{
50
+ const done = checklistModel.completed(group);
51
+ const total = group.items.length;
52
+ return /*#__PURE__*/ jsxRuntime.jsxs("section", {
53
+ className: "foundation-checklist-group",
54
+ "aria-labelledby": `${element.id}-group-${groupIndex}`,
55
+ children: [
56
+ /*#__PURE__*/ jsxRuntime.jsxs("header", {
57
+ className: "foundation-checklist-header",
58
+ children: [
59
+ /*#__PURE__*/ jsxRuntime.jsx("h3", {
60
+ id: `${element.id}-group-${groupIndex}`,
61
+ children: group.title
62
+ }),
63
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
64
+ className: "foundation-count",
65
+ children: foundationStrings.formatText(strings.checklistProgress, {
66
+ done,
67
+ total
68
+ })
69
+ })
70
+ ]
71
+ }),
72
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
73
+ className: "foundation-progress",
74
+ role: "progressbar",
75
+ "aria-label": foundationStrings.formatText(strings.checklistItemProgress, {
76
+ title: group.title
77
+ }),
78
+ "aria-valuemin": 0,
79
+ "aria-valuemax": total,
80
+ "aria-valuenow": done,
81
+ "aria-valuetext": foundationStrings.formatText(strings.checklistProgress, {
82
+ done,
83
+ total
84
+ }),
85
+ children: /*#__PURE__*/ jsxRuntime.jsx("span", {
86
+ className: "foundation-progress-bar",
87
+ style: {
88
+ inlineSize: total === 0 ? '0%' : `${done / total * 100}%`
89
+ }
90
+ })
91
+ }),
92
+ total === 0 ? /*#__PURE__*/ jsxRuntime.jsx("p", {
93
+ className: "foundation-count",
94
+ children: strings.checklistNone
95
+ }) : /*#__PURE__*/ jsxRuntime.jsx("ul", {
96
+ className: "foundation-checklist-items",
97
+ children: group.items.map((item)=>{
98
+ const overdue = checklistModel.isOverdue(item, now);
99
+ return /*#__PURE__*/ jsxRuntime.jsxs("li", {
100
+ className: "foundation-checklist-item",
101
+ "data-done": item.done,
102
+ "data-overdue": overdue,
103
+ children: [
104
+ /*#__PURE__*/ jsxRuntime.jsxs("label", {
105
+ className: "foundation-check",
106
+ children: [
107
+ /*#__PURE__*/ jsxRuntime.jsx("input", {
108
+ type: "checkbox",
109
+ checked: item.done,
110
+ disabled: locked,
111
+ onChange: ()=>{
112
+ setGroups(checklistModel.toggleTask(groups, item.id));
113
+ interactions?.onChange?.();
114
+ }
115
+ }),
116
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
117
+ className: "foundation-checklist-label",
118
+ children: item.label
119
+ })
120
+ ]
121
+ }),
122
+ /*#__PURE__*/ jsxRuntime.jsxs("span", {
123
+ className: "foundation-checklist-meta",
124
+ children: [
125
+ item.owner && /*#__PURE__*/ jsxRuntime.jsxs("span", {
126
+ children: [
127
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
128
+ className: "foundation-visually-hidden",
129
+ children: `${strings.checklistOwner}: `
130
+ }),
131
+ /*#__PURE__*/ jsxRuntime.jsx(FoundationIcon.FoundationIcon, {
132
+ name: "user"
133
+ }),
134
+ " ",
135
+ item.owner
136
+ ]
137
+ }),
138
+ item.due && /*#__PURE__*/ jsxRuntime.jsxs("span", {
139
+ children: [
140
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
141
+ className: "foundation-visually-hidden",
142
+ children: `${strings.checklistDue}: `
143
+ }),
144
+ /*#__PURE__*/ jsxRuntime.jsx("time", {
145
+ dateTime: item.due,
146
+ children: formatting.formatDate(item.due, locale)
147
+ }),
148
+ overdue && /*#__PURE__*/ jsxRuntime.jsxs("strong", {
149
+ className: "foundation-overdue",
150
+ children: [
151
+ " · ",
152
+ /*#__PURE__*/ jsxRuntime.jsx(FoundationIcon.FoundationIcon, {
153
+ name: "alert"
154
+ }),
155
+ " ",
156
+ strings.checklistOverdue
157
+ ]
158
+ })
159
+ ]
160
+ })
161
+ ]
162
+ })
163
+ ]
164
+ }, item.id);
165
+ })
166
+ })
167
+ ]
168
+ }, group.title + groupIndex);
169
+ })
170
+ });
171
+ }
172
+
173
+ exports.ChecklistSection = ChecklistSection;
174
+ //# sourceMappingURL=ChecklistSection.js.map