@kubit-ui-web/react-components 2.0.0-beta.10 → 2.0.0-beta.12

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 (134) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/.storybook/bundle-sizes.json +13 -0
  3. package/dist/cjs/assets/banner_kubit_readme.png +0 -0
  4. package/dist/cjs/components/avatar/fragments/drawContent.js +1 -1
  5. package/dist/cjs/components/badge/badgeStandAlone.js +1 -1
  6. package/dist/cjs/components/button/button.js +1 -1
  7. package/dist/cjs/components/button/buttonStandAlone.js +1 -1
  8. package/dist/cjs/components/cardImage/cardImageStandAlone.js +1 -1
  9. package/dist/cjs/components/carousel/hooks/useCarousel.js +1 -1
  10. package/dist/cjs/components/carousel/hooks/useCarouselKeyNavigation.js +1 -1
  11. package/dist/cjs/components/checkboxBase/checkboxBaseStandAlone.js +1 -1
  12. package/dist/cjs/components/chip/chipStandAlone.js +1 -1
  13. package/dist/cjs/components/container/containerStandAlone.js +1 -1
  14. package/dist/cjs/components/dataTable/hooks/useDataTableHasScroll.js +1 -1
  15. package/dist/cjs/components/dataTable/hooks/useDataTableShadow.js +1 -1
  16. package/dist/cjs/components/dataTable/hooks/useDataTableStickyDividers.js +1 -1
  17. package/dist/cjs/components/dataTable/hooks/useDataTableStickyLeftColumns.js +1 -1
  18. package/dist/cjs/components/dataTable/hooks/useDataTableStickyRightColumns.js +1 -1
  19. package/dist/cjs/components/dropdownSelected/dropdownSelectedControlled.js +1 -1
  20. package/dist/cjs/components/dropdownSelected/dropdownSelectedStandAlone.js +1 -1
  21. package/dist/cjs/components/input/input.js +1 -1
  22. package/dist/cjs/components/inputSignature/inputSignatureStandAlone.js +1 -1
  23. package/dist/cjs/components/listOptions/listOptionsStandAlone.js +1 -1
  24. package/dist/cjs/components/message/messageStandAlone.js +1 -1
  25. package/dist/cjs/components/modal/fragments/modalHeader.js +1 -1
  26. package/dist/cjs/components/modal/modalControlled.js +1 -1
  27. package/dist/cjs/components/modal/modalStandAlone.js +1 -1
  28. package/dist/cjs/components/modal/modalUnControlled.js +1 -1
  29. package/dist/cjs/components/option/optionStandAlone.js +1 -1
  30. package/dist/cjs/components/popover/hooks/usePopoverInteractions.js +1 -1
  31. package/dist/cjs/components/popover/hooks/usePopoverLifecycle.js +1 -1
  32. package/dist/cjs/components/radioButton/radioButtonStandAlone.js +1 -1
  33. package/dist/cjs/components/selectorBoxFile/components/selectorBoxFileContainerBox.js +1 -1
  34. package/dist/cjs/components/selectorBoxFile/components/selectorBoxFileErrorMessage.js +1 -1
  35. package/dist/cjs/components/selectorBoxFile/components/selectorBoxFileHeader.js +1 -1
  36. package/dist/cjs/components/slider/sliderStandAlone.js +1 -1
  37. package/dist/cjs/components/table/hooks/useTableHasScroll.js +1 -1
  38. package/dist/cjs/components/table/hooks/useTableShadow.js +1 -1
  39. package/dist/cjs/components/table/hooks/useTableStickyLeftColumns.js +1 -1
  40. package/dist/cjs/components/table/hooks/useTableStickyRightColumns.js +1 -1
  41. package/dist/cjs/components/tabs/tabsStandAlone.js +1 -1
  42. package/dist/cjs/components/tag/tagStandAlone.js +1 -1
  43. package/dist/cjs/components/textArea/components/errorStandAlone.js +1 -1
  44. package/dist/cjs/components/textArea/components/helpMessageStandAlone.js +1 -1
  45. package/dist/cjs/components/textArea/components/titleStandAlone.js +1 -1
  46. package/dist/cjs/components/textArea/textAreaStandAlone.js +1 -1
  47. package/dist/cjs/components/toggle/toggleStandAlone.js +1 -1
  48. package/dist/cjs/components/tooltip/tooltipControlled.js +1 -1
  49. package/dist/cjs/components/tooltip/tooltipStandAlone.js +1 -1
  50. package/dist/cjs/components/tooltip/tooltipUnControlled.js +1 -1
  51. package/dist/cjs/lib/components/errorMessage/errorMessageStandAlone.js +1 -1
  52. package/dist/cjs/lib/hooks/useClickOutside/useClickOutside.js +1 -1
  53. package/dist/cjs/lib/hooks/useContentVisibility/useContentVisibility.js +1 -1
  54. package/dist/cjs/lib/hooks/useManageState/useManageState.js +1 -1
  55. package/dist/cjs/lib/hooks/useScrollDetection/useScrollDetection.js +1 -0
  56. package/dist/cjs/lib/hooks/useScrollEffect/useScrollEffect.js +1 -1
  57. package/dist/cjs/lib/hooks/useSwipeDown/useSwipeDown.js +1 -1
  58. package/dist/cjs/lib/utils/keyboard/keyboard.js +1 -1
  59. package/dist/cjs/lib/utils/process/processCommonProp.js +1 -0
  60. package/dist/cjs/scripts/generate-bundle-sizes.mjs +236 -0
  61. package/dist/cjs/scripts/new-component-web-ui.js +2092 -0
  62. package/dist/esm/.storybook/bundle-sizes.json +13 -0
  63. package/dist/esm/assets/banner_kubit_readme.png +0 -0
  64. package/dist/esm/components/avatar/fragments/drawContent.js +1 -1
  65. package/dist/esm/components/badge/badgeStandAlone.js +6 -6
  66. package/dist/esm/components/button/button.js +1 -1
  67. package/dist/esm/components/button/buttonStandAlone.js +3 -3
  68. package/dist/esm/components/cardImage/cardImageStandAlone.js +7 -7
  69. package/dist/esm/components/carousel/hooks/useCarousel.js +1 -1
  70. package/dist/esm/components/carousel/hooks/useCarouselKeyNavigation.js +1 -1
  71. package/dist/esm/components/checkboxBase/checkboxBaseStandAlone.js +4 -4
  72. package/dist/esm/components/chip/chipStandAlone.js +7 -7
  73. package/dist/esm/components/container/containerStandAlone.js +4 -4
  74. package/dist/esm/components/dataTable/hooks/useDataTableHasScroll.js +1 -1
  75. package/dist/esm/components/dataTable/hooks/useDataTableShadow.js +1 -1
  76. package/dist/esm/components/dataTable/hooks/useDataTableStickyDividers.js +1 -1
  77. package/dist/esm/components/dataTable/hooks/useDataTableStickyLeftColumns.js +1 -1
  78. package/dist/esm/components/dataTable/hooks/useDataTableStickyRightColumns.js +1 -1
  79. package/dist/esm/components/dropdownSelected/dropdownSelectedControlled.js +1 -1
  80. package/dist/esm/components/dropdownSelected/dropdownSelectedStandAlone.js +5 -5
  81. package/dist/esm/components/input/input.js +2 -2
  82. package/dist/esm/components/inputSignature/inputSignatureStandAlone.js +3 -3
  83. package/dist/esm/components/listOptions/listOptionsStandAlone.js +2 -2
  84. package/dist/esm/components/message/messageStandAlone.js +5 -5
  85. package/dist/esm/components/modal/fragments/modalHeader.js +1 -1
  86. package/dist/esm/components/modal/modalControlled.js +1 -1
  87. package/dist/esm/components/modal/modalStandAlone.js +3 -3
  88. package/dist/esm/components/modal/modalUnControlled.js +2 -2
  89. package/dist/esm/components/option/optionStandAlone.js +9 -9
  90. package/dist/esm/components/popover/hooks/usePopoverInteractions.js +1 -1
  91. package/dist/esm/components/popover/hooks/usePopoverLifecycle.js +1 -1
  92. package/dist/esm/components/radioButton/radioButtonStandAlone.js +4 -4
  93. package/dist/esm/components/selectorBoxFile/components/selectorBoxFileContainerBox.js +4 -4
  94. package/dist/esm/components/selectorBoxFile/components/selectorBoxFileErrorMessage.js +2 -2
  95. package/dist/esm/components/selectorBoxFile/components/selectorBoxFileHeader.js +5 -5
  96. package/dist/esm/components/slider/sliderStandAlone.js +14 -14
  97. package/dist/esm/components/table/hooks/useTableHasScroll.js +1 -1
  98. package/dist/esm/components/table/hooks/useTableShadow.js +1 -1
  99. package/dist/esm/components/table/hooks/useTableStickyLeftColumns.js +1 -1
  100. package/dist/esm/components/table/hooks/useTableStickyRightColumns.js +1 -1
  101. package/dist/esm/components/tabs/tabsStandAlone.js +4 -4
  102. package/dist/esm/components/tag/tagStandAlone.js +4 -4
  103. package/dist/esm/components/textArea/components/errorStandAlone.js +3 -3
  104. package/dist/esm/components/textArea/components/helpMessageStandAlone.js +1 -1
  105. package/dist/esm/components/textArea/components/titleStandAlone.js +1 -1
  106. package/dist/esm/components/textArea/textAreaStandAlone.js +11 -11
  107. package/dist/esm/components/toggle/toggleStandAlone.js +4 -4
  108. package/dist/esm/components/tooltip/tooltipControlled.js +1 -1
  109. package/dist/esm/components/tooltip/tooltipStandAlone.js +7 -7
  110. package/dist/esm/components/tooltip/tooltipUnControlled.js +1 -1
  111. package/dist/esm/lib/components/errorMessage/errorMessageStandAlone.js +4 -4
  112. package/dist/esm/lib/hooks/useClickOutside/useClickOutside.js +1 -1
  113. package/dist/esm/lib/hooks/useContentVisibility/useContentVisibility.js +1 -1
  114. package/dist/esm/lib/hooks/useManageState/useManageState.js +1 -1
  115. package/dist/esm/lib/hooks/useScrollDetection/useScrollDetection.js +1 -0
  116. package/dist/esm/lib/hooks/useScrollEffect/useScrollEffect.js +1 -1
  117. package/dist/esm/lib/hooks/useSwipeDown/useSwipeDown.js +1 -1
  118. package/dist/esm/lib/utils/keyboard/keyboard.js +1 -1
  119. package/dist/esm/lib/utils/process/processCommonProp.js +1 -0
  120. package/dist/esm/scripts/generate-bundle-sizes.mjs +236 -0
  121. package/dist/esm/scripts/new-component-web-ui.js +2092 -0
  122. package/package.json +11 -11
  123. package/dist/cjs/lib/hooks/useInputFocus/useInputFocus.js +0 -1
  124. package/dist/cjs/lib/hooks/useScrollDetectionWithAutoFocus/useScrollDetectionWithAutoFocus.js +0 -1
  125. package/dist/cjs/lib/utils/process/processIcon/processIcon.js +0 -1
  126. package/dist/cjs/lib/utils/process/processText/processText.js +0 -1
  127. package/dist/cjs/lib/utils/resizeObserver/resizeObserver.js +0 -1
  128. package/dist/esm/lib/hooks/useInputFocus/useInputFocus.js +0 -1
  129. package/dist/esm/lib/hooks/useScrollDetectionWithAutoFocus/useScrollDetectionWithAutoFocus.js +0 -1
  130. package/dist/esm/lib/utils/process/processIcon/processIcon.js +0 -1
  131. package/dist/esm/lib/utils/process/processText/processText.js +0 -1
  132. package/dist/esm/lib/utils/resizeObserver/resizeObserver.js +0 -1
  133. /package/dist/cjs/lib/{hooks/syncRefs → utils/refs}/syncRefs.js +0 -0
  134. /package/dist/esm/lib/{hooks/syncRefs → utils/refs}/syncRefs.js +0 -0
@@ -0,0 +1,236 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Generate bundle size information for each component
5
+ * This script analyzes the dist folder and generates a JSON file with size information
6
+ */
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ import { gzipSync } from 'zlib';
11
+
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = path.dirname(__filename);
14
+ const rootDir = path.resolve(__dirname, '..');
15
+
16
+ // Paths
17
+ const distEsmDir = path.join(rootDir, 'dist/esm/components');
18
+ const outputFile = path.join(rootDir, '.storybook/bundle-sizes.json');
19
+
20
+ /**
21
+ * Get file size in bytes
22
+ */
23
+ function getFileSize(filePath) {
24
+ try {
25
+ const stats = fs.statSync(filePath);
26
+ return stats.size;
27
+ } catch (error) {
28
+ return 0;
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Get gzipped size of file
34
+ */
35
+ function getGzipSize(filePath) {
36
+ try {
37
+ const content = fs.readFileSync(filePath);
38
+ const gzipped = gzipSync(content);
39
+ return gzipped.length;
40
+ } catch (error) {
41
+ return 0;
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Format bytes to human readable
47
+ */
48
+ function formatBytes(bytes) {
49
+ if (bytes === 0) return '0 B';
50
+ const k = 1024;
51
+ const sizes = ['B', 'KB', 'MB'];
52
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
53
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
54
+ }
55
+
56
+ /**
57
+ * Get component files
58
+ */
59
+ function getComponentFiles(componentPath) {
60
+ const files = {
61
+ css: [],
62
+ js: [],
63
+ };
64
+
65
+ try {
66
+ const entries = fs.readdirSync(componentPath, { withFileTypes: true });
67
+
68
+ for (const entry of entries) {
69
+ const fullPath = path.join(componentPath, entry.name);
70
+
71
+ if (entry.isDirectory()) {
72
+ // Recursively search subdirectories
73
+ const subFiles = getComponentFiles(fullPath);
74
+ files.css.push(...subFiles.css);
75
+ files.js.push(...subFiles.js);
76
+ } else if (entry.isFile()) {
77
+ if (entry.name.endsWith('.css')) {
78
+ files.css.push(fullPath);
79
+ } else if (entry.name.endsWith('.js')) {
80
+ files.js.push(fullPath);
81
+ }
82
+ }
83
+ }
84
+ } catch (error) {
85
+ // Directory doesn't exist
86
+ }
87
+
88
+ return files;
89
+ }
90
+
91
+ /**
92
+ * Calculate sizes for a component
93
+ */
94
+ function calculateComponentSizes(componentName, componentPath) {
95
+ const files = getComponentFiles(componentPath);
96
+
97
+ let jsSize = 0;
98
+ let jsGzipSize = 0;
99
+ let cssSize = 0;
100
+ let cssGzipSize = 0;
101
+
102
+ // Sum JS files
103
+ for (const file of files.js) {
104
+ jsSize += getFileSize(file);
105
+ jsGzipSize += getGzipSize(file);
106
+ }
107
+
108
+ // Sum CSS files
109
+ for (const file of files.css) {
110
+ cssSize += getFileSize(file);
111
+ cssGzipSize += getGzipSize(file);
112
+ }
113
+
114
+ const totalSize = jsSize + cssSize;
115
+ const totalGzipSize = jsGzipSize + cssGzipSize;
116
+
117
+ return {
118
+ component: componentName,
119
+ sizes: {
120
+ js: {
121
+ raw: jsSize,
122
+ gzip: jsGzipSize,
123
+ formatted: formatBytes(jsSize),
124
+ gzipFormatted: formatBytes(jsGzipSize),
125
+ },
126
+ css: {
127
+ raw: cssSize,
128
+ gzip: cssGzipSize,
129
+ formatted: formatBytes(cssSize),
130
+ gzipFormatted: formatBytes(cssGzipSize),
131
+ },
132
+ total: {
133
+ raw: totalSize,
134
+ gzip: totalGzipSize,
135
+ formatted: formatBytes(totalSize),
136
+ gzipFormatted: formatBytes(totalGzipSize),
137
+ },
138
+ },
139
+ treeshakeable: true, // All ESM exports are treeshakeable
140
+ timestamp: new Date().toISOString(),
141
+ };
142
+ }
143
+
144
+ /**
145
+ * Main function
146
+ */
147
+ function main() {
148
+ console.log('šŸ“¦ Generating bundle size information...\n');
149
+
150
+ if (!fs.existsSync(distEsmDir)) {
151
+ console.warn('āš ļø Warning: dist/esm/components directory not found.');
152
+ console.warn(
153
+ ' Creating empty bundle-sizes.json. Run `yarn dist` to populate.\n',
154
+ );
155
+
156
+ // Create empty bundle sizes file
157
+ const emptyOutput = {
158
+ metadata: {
159
+ generated: new Date().toISOString(),
160
+ totalComponents: 0,
161
+ totalSize: {
162
+ raw: 0,
163
+ gzip: 0,
164
+ formatted: '0 B',
165
+ gzipFormatted: '0 B',
166
+ },
167
+ },
168
+ components: {},
169
+ };
170
+
171
+ const storybookDir = path.dirname(outputFile);
172
+ if (!fs.existsSync(storybookDir)) {
173
+ fs.mkdirSync(storybookDir, { recursive: true });
174
+ }
175
+
176
+ fs.writeFileSync(outputFile, JSON.stringify(emptyOutput, null, 2));
177
+ console.log('šŸ“„ Created empty bundle-sizes.json\n');
178
+ return;
179
+ }
180
+
181
+ const components = fs
182
+ .readdirSync(distEsmDir, { withFileTypes: true })
183
+ .filter((dirent) => dirent.isDirectory())
184
+ .map((dirent) => dirent.name);
185
+
186
+ const bundleSizes = {};
187
+ let totalComponents = 0;
188
+ let totalSize = 0;
189
+ let totalGzipSize = 0;
190
+
191
+ for (const component of components) {
192
+ const componentPath = path.join(distEsmDir, component);
193
+ const sizeInfo = calculateComponentSizes(component, componentPath);
194
+
195
+ bundleSizes[component] = sizeInfo;
196
+ totalComponents++;
197
+ totalSize += sizeInfo.sizes.total.raw;
198
+ totalGzipSize += sizeInfo.sizes.total.gzip;
199
+
200
+ console.log(
201
+ `āœ“ ${component.padEnd(20)} ${sizeInfo.sizes.total.gzipFormatted} (gzip)`,
202
+ );
203
+ }
204
+
205
+ // Add metadata
206
+ const output = {
207
+ metadata: {
208
+ generated: new Date().toISOString(),
209
+ totalComponents,
210
+ totalSize: {
211
+ raw: totalSize,
212
+ gzip: totalGzipSize,
213
+ formatted: formatBytes(totalSize),
214
+ gzipFormatted: formatBytes(totalGzipSize),
215
+ },
216
+ },
217
+ components: bundleSizes,
218
+ };
219
+
220
+ // Write to file
221
+ const storybookDir = path.dirname(outputFile);
222
+ if (!fs.existsSync(storybookDir)) {
223
+ fs.mkdirSync(storybookDir, { recursive: true });
224
+ }
225
+
226
+ fs.writeFileSync(outputFile, JSON.stringify(output, null, 2));
227
+
228
+ console.log(`\n✨ Bundle sizes generated successfully!`);
229
+ console.log(`šŸ“Š Total components: ${totalComponents}`);
230
+ console.log(
231
+ `šŸ“¦ Total size: ${formatBytes(totalSize)} (raw) / ${formatBytes(totalGzipSize)} (gzip)`,
232
+ );
233
+ console.log(`šŸ“„ Output: ${path.relative(rootDir, outputFile)}\n`);
234
+ }
235
+
236
+ main();