@pure-ds/storybook 0.1.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 (129) hide show
  1. package/.storybook/addons/description/preview.js +15 -0
  2. package/.storybook/addons/description/register.js +60 -0
  3. package/.storybook/addons/html-preview/Panel.jsx +327 -0
  4. package/.storybook/addons/html-preview/constants.js +6 -0
  5. package/.storybook/addons/html-preview/preview.js +178 -0
  6. package/.storybook/addons/html-preview/register.js +16 -0
  7. package/.storybook/addons/pds-configurator/SearchTool.js +44 -0
  8. package/.storybook/addons/pds-configurator/Tool.js +30 -0
  9. package/.storybook/addons/pds-configurator/constants.js +9 -0
  10. package/.storybook/addons/pds-configurator/preview.js +159 -0
  11. package/.storybook/addons/pds-configurator/register.js +24 -0
  12. package/.storybook/docs.css +35 -0
  13. package/.storybook/htmlPreview.css +103 -0
  14. package/.storybook/htmlPreview.js +271 -0
  15. package/.storybook/main.js +160 -0
  16. package/.storybook/preview-body.html +48 -0
  17. package/.storybook/preview-head.html +11 -0
  18. package/.storybook/preview.js +1563 -0
  19. package/README.md +266 -0
  20. package/bin/index.js +40 -0
  21. package/dist/pds-reference.json +2101 -0
  22. package/package.json +45 -0
  23. package/pds.config.js +6 -0
  24. package/public/assets/css/app.css +1216 -0
  25. package/public/assets/data/auto-design-advanced.json +704 -0
  26. package/public/assets/data/auto-design-simple.json +123 -0
  27. package/public/assets/img/icon-512x512.png +0 -0
  28. package/public/assets/img/logo-trans.png +0 -0
  29. package/public/assets/img/logo.png +0 -0
  30. package/public/assets/js/app.js +15088 -0
  31. package/public/assets/js/app.js.map +7 -0
  32. package/public/assets/js/lit.js +1176 -0
  33. package/public/assets/js/lit.js.map +7 -0
  34. package/public/assets/js/pds.js +9801 -0
  35. package/public/assets/js/pds.js.map +7 -0
  36. package/public/assets/pds/components/pds-calendar.js +837 -0
  37. package/public/assets/pds/components/pds-drawer.js +857 -0
  38. package/public/assets/pds/components/pds-icon.js +338 -0
  39. package/public/assets/pds/components/pds-jsonform.js +1775 -0
  40. package/public/assets/pds/components/pds-richtext.js +1035 -0
  41. package/public/assets/pds/components/pds-scrollrow.js +331 -0
  42. package/public/assets/pds/components/pds-splitpanel.js +401 -0
  43. package/public/assets/pds/components/pds-tabstrip.js +251 -0
  44. package/public/assets/pds/components/pds-toaster.js +446 -0
  45. package/public/assets/pds/components/pds-upload.js +657 -0
  46. package/public/assets/pds/custom-elements.json +2003 -0
  47. package/public/assets/pds/icons/pds-icons.svg +498 -0
  48. package/public/assets/pds/pds-css-complete.json +1861 -0
  49. package/public/assets/pds/pds-runtime-config.json +11 -0
  50. package/public/assets/pds/pds.css-data.json +2152 -0
  51. package/public/assets/pds/styles/pds-components.css +1944 -0
  52. package/public/assets/pds/styles/pds-components.css.js +3895 -0
  53. package/public/assets/pds/styles/pds-primitives.css +352 -0
  54. package/public/assets/pds/styles/pds-primitives.css.js +711 -0
  55. package/public/assets/pds/styles/pds-styles.css +3761 -0
  56. package/public/assets/pds/styles/pds-styles.css.js +7529 -0
  57. package/public/assets/pds/styles/pds-tokens.css +699 -0
  58. package/public/assets/pds/styles/pds-tokens.css.js +1405 -0
  59. package/public/assets/pds/styles/pds-utilities.css +763 -0
  60. package/public/assets/pds/styles/pds-utilities.css.js +1533 -0
  61. package/public/assets/pds/vscode-custom-data.json +824 -0
  62. package/scripts/build-pds-reference.mjs +807 -0
  63. package/scripts/generate-stories.js +542 -0
  64. package/scripts/package-build.js +86 -0
  65. package/src/js/app.js +17 -0
  66. package/src/js/common/ask.js +208 -0
  67. package/src/js/common/common.js +20 -0
  68. package/src/js/common/font-loader.js +200 -0
  69. package/src/js/common/msg.js +90 -0
  70. package/src/js/lit.js +40 -0
  71. package/src/js/pds-core/pds-config.js +1162 -0
  72. package/src/js/pds-core/pds-enhancer-metadata.js +75 -0
  73. package/src/js/pds-core/pds-enhancers.js +357 -0
  74. package/src/js/pds-core/pds-enums.js +86 -0
  75. package/src/js/pds-core/pds-generator.js +5317 -0
  76. package/src/js/pds-core/pds-ontology.js +256 -0
  77. package/src/js/pds-core/pds-paths.js +109 -0
  78. package/src/js/pds-core/pds-query.js +571 -0
  79. package/src/js/pds-core/pds-registry.js +129 -0
  80. package/src/js/pds-core/pds.d.ts +129 -0
  81. package/src/js/pds.d.ts +408 -0
  82. package/src/js/pds.js +1579 -0
  83. package/src/pds-core/pds-api.js +105 -0
  84. package/stories/GettingStarted.md +96 -0
  85. package/stories/GettingStarted.stories.js +144 -0
  86. package/stories/WhatIsPDS.md +194 -0
  87. package/stories/WhatIsPDS.stories.js +144 -0
  88. package/stories/components/PdsCalendar.stories.js +263 -0
  89. package/stories/components/PdsDrawer.stories.js +623 -0
  90. package/stories/components/PdsIcon.stories.js +78 -0
  91. package/stories/components/PdsJsonform.stories.js +1444 -0
  92. package/stories/components/PdsRichtext.stories.js +367 -0
  93. package/stories/components/PdsScrollrow.stories.js +140 -0
  94. package/stories/components/PdsSplitpanel.stories.js +502 -0
  95. package/stories/components/PdsTabstrip.stories.js +442 -0
  96. package/stories/components/PdsToaster.stories.js +186 -0
  97. package/stories/components/PdsUpload.stories.js +66 -0
  98. package/stories/enhancements/Dropdowns.stories.js +185 -0
  99. package/stories/enhancements/InteractiveStates.stories.js +625 -0
  100. package/stories/enhancements/MeshGradients.stories.js +320 -0
  101. package/stories/enhancements/OpenGroups.stories.js +227 -0
  102. package/stories/enhancements/RangeSliders.stories.js +232 -0
  103. package/stories/enhancements/RequiredFields.stories.js +189 -0
  104. package/stories/enhancements/Toggles.stories.js +167 -0
  105. package/stories/foundations/Colors.stories.js +283 -0
  106. package/stories/foundations/Icons.stories.js +305 -0
  107. package/stories/foundations/SmartSurfaces.stories.js +367 -0
  108. package/stories/foundations/Spacing.stories.js +175 -0
  109. package/stories/foundations/Typography.stories.js +960 -0
  110. package/stories/foundations/ZIndex.stories.js +325 -0
  111. package/stories/patterns/BorderEffects.stories.js +72 -0
  112. package/stories/patterns/Layout.stories.js +99 -0
  113. package/stories/patterns/Utilities.stories.js +107 -0
  114. package/stories/primitives/Accordion.stories.js +359 -0
  115. package/stories/primitives/Alerts.stories.js +64 -0
  116. package/stories/primitives/Badges.stories.js +183 -0
  117. package/stories/primitives/Buttons.stories.js +229 -0
  118. package/stories/primitives/Cards.stories.js +353 -0
  119. package/stories/primitives/FormGroups.stories.js +569 -0
  120. package/stories/primitives/Forms.stories.js +131 -0
  121. package/stories/primitives/Media.stories.js +203 -0
  122. package/stories/primitives/Tables.stories.js +232 -0
  123. package/stories/reference/ReferenceCatalog.stories.js +28 -0
  124. package/stories/reference/reference-catalog.js +413 -0
  125. package/stories/reference/reference-docs.js +302 -0
  126. package/stories/reference/reference-helpers.js +310 -0
  127. package/stories/utilities/GridSystem.stories.js +208 -0
  128. package/stories/utils/PdsAsk.stories.js +420 -0
  129. package/stories/utils/toast-utils.js +148 -0
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Toast utility for displaying form data in stories
3
+ * Handles objects, FormData, and truncates large binary data
4
+ */
5
+
6
+ const MAX_STRING_LENGTH = 1000;
7
+ const MAX_BINARY_PREVIEW = 50;
8
+
9
+ /**
10
+ * Converts various data types to a displayable JSON string
11
+ * @param {*} data - Can be an object, FormData, or any serializable data
12
+ * @returns {Promise<void>}
13
+ */
14
+ export async function toastFormData(data) {
15
+ let obj = data;
16
+
17
+ // Convert FormData to plain object
18
+ if (data instanceof FormData) {
19
+ obj = {};
20
+ for (const [key, value] of data.entries()) {
21
+ // Handle File objects
22
+ if (value instanceof File) {
23
+ const fileInfo = {
24
+ name: value.name,
25
+ size: value.size,
26
+ type: value.type,
27
+ lastModified: new Date(value.lastModified).toISOString(),
28
+ __truncated: true,
29
+ __note: 'Binary data not shown'
30
+ };
31
+ // Handle multiple files with same name
32
+ if (obj[key]) {
33
+ obj[key] = Array.isArray(obj[key]) ? [...obj[key], fileInfo] : [obj[key], fileInfo];
34
+ } else {
35
+ obj[key] = fileInfo;
36
+ }
37
+ } else {
38
+ // Handle multiple values with same key (checkboxes, multi-select)
39
+ if (obj[key]) {
40
+ obj[key] = Array.isArray(obj[key]) ? [...obj[key], value] : [obj[key], value];
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ }
45
+ }
46
+
47
+ // Convert arrays to comma-separated strings for display
48
+ for (const key in obj) {
49
+ if (Array.isArray(obj[key])) {
50
+ // Check if it's an array of file objects
51
+ if (obj[key][0]?.__truncated) {
52
+ // Keep file arrays as arrays
53
+ continue;
54
+ }
55
+ // Convert value arrays to comma-separated string
56
+ obj[key] = obj[key].join(', ');
57
+ }
58
+ }
59
+ }
60
+
61
+ // Recursively truncate large strings and binary data
62
+ const truncateData = (item) => {
63
+ if (item === null || item === undefined) return item;
64
+
65
+ if (typeof item === 'string') {
66
+ if (item.length > MAX_STRING_LENGTH) {
67
+ return item.substring(0, MAX_STRING_LENGTH) + `... (truncated, ${item.length} chars total)`;
68
+ }
69
+ return item;
70
+ }
71
+
72
+ if (Array.isArray(item)) {
73
+ return item.map(truncateData);
74
+ }
75
+
76
+ if (typeof item === 'object') {
77
+ // Handle File objects that might be nested in regular objects
78
+ if (item instanceof File) {
79
+ return {
80
+ name: item.name,
81
+ size: item.size,
82
+ type: item.type,
83
+ lastModified: new Date(item.lastModified).toISOString(),
84
+ __truncated: true,
85
+ __note: 'Binary data not shown'
86
+ };
87
+ }
88
+
89
+ // Handle Blob objects
90
+ if (item instanceof Blob) {
91
+ return {
92
+ size: item.size,
93
+ type: item.type,
94
+ __truncated: true,
95
+ __note: 'Binary data not shown'
96
+ };
97
+ }
98
+
99
+ // Handle ArrayBuffer and typed arrays
100
+ if (item instanceof ArrayBuffer || ArrayBuffer.isView(item)) {
101
+ const size = item.byteLength || item.length;
102
+ return {
103
+ type: item.constructor.name,
104
+ size: size,
105
+ preview: size > 0 ? `[${Array.from(new Uint8Array(item.buffer || item).slice(0, MAX_BINARY_PREVIEW)).join(', ')}${size > MAX_BINARY_PREVIEW ? '...' : ''}]` : '[]',
106
+ __truncated: true,
107
+ __note: `Binary data preview (${size} bytes total)`
108
+ };
109
+ }
110
+
111
+ const result = {};
112
+ for (const key in item) {
113
+ if (item.hasOwnProperty(key)) {
114
+ result[key] = truncateData(item[key]);
115
+ }
116
+ }
117
+ return result;
118
+ }
119
+
120
+ return item;
121
+ };
122
+
123
+ const truncated = truncateData(obj);
124
+ const formatted = JSON.stringify(truncated, null, 2);
125
+
126
+ // Ensure pds-toaster exists and show the toast
127
+ let toaster = document.querySelector('pds-toaster');
128
+ if (!toaster) {
129
+ toaster = document.createElement('pds-toaster');
130
+ document.body.appendChild(toaster);
131
+ }
132
+
133
+ // Wait for the custom element to be defined before calling methods
134
+ await customElements.whenDefined('pds-toaster');
135
+
136
+ toaster.toast(formatted, {
137
+ type: 'success',
138
+ duration: 5000
139
+ });
140
+
141
+ // Also log to console for debugging
142
+ console.log('Form data:', truncated);
143
+ }
144
+
145
+ // Make toastFormData available globally for inline event handlers
146
+ if (typeof window !== 'undefined') {
147
+ window.toastFormData = toastFormData;
148
+ }