@warkypublic/svelix 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 (212) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +3 -0
  3. package/dist/actions/index.d.ts +1 -0
  4. package/dist/actions/index.js +2 -0
  5. package/dist/components/BetterMenu/BetterMenu.stories.js +68 -0
  6. package/dist/components/BetterMenu/BetterMenu.svelte +38 -0
  7. package/dist/components/BetterMenu/BetterMenu.svelte.d.ts +14 -0
  8. package/dist/components/BetterMenu/BetterMenuAsyncButton.svelte +34 -0
  9. package/dist/components/BetterMenu/BetterMenuAsyncButton.svelte.d.ts +8 -0
  10. package/dist/components/BetterMenu/BetterMenuPreview.svelte +43 -0
  11. package/dist/components/BetterMenu/BetterMenuPreview.svelte.d.ts +7 -0
  12. package/dist/components/BetterMenu/MenuRenderer.svelte +75 -0
  13. package/dist/components/BetterMenu/MenuRenderer.svelte.d.ts +6 -0
  14. package/dist/components/BetterMenu/Plan.mdx +155 -0
  15. package/dist/components/BetterMenu/index.d.ts +4 -0
  16. package/dist/components/BetterMenu/index.js +4 -0
  17. package/dist/components/BetterMenu/store.d.ts +10 -0
  18. package/dist/components/BetterMenu/store.js +48 -0
  19. package/dist/components/BetterMenu/types.d.ts +24 -0
  20. package/dist/components/BetterMenu/types.js +1 -0
  21. package/dist/components/Boxer/Boxer.stories.d.ts +19 -0
  22. package/dist/components/Boxer/Boxer.stories.js +102 -0
  23. package/dist/components/Boxer/Boxer.svelte +411 -0
  24. package/dist/components/Boxer/Boxer.svelte.d.ts +11 -0
  25. package/dist/components/Boxer/BoxerTarget.svelte +88 -0
  26. package/dist/components/Boxer/BoxerTarget.svelte.d.ts +20 -0
  27. package/dist/components/Boxer/Plan.mdx +140 -0
  28. package/dist/components/Boxer/features.mdx +81 -0
  29. package/dist/components/Boxer/index.d.ts +4 -0
  30. package/dist/components/Boxer/index.js +4 -0
  31. package/dist/components/Boxer/store.d.ts +26 -0
  32. package/dist/components/Boxer/store.js +103 -0
  33. package/dist/components/Boxer/types.d.ts +46 -0
  34. package/dist/components/Boxer/types.js +1 -0
  35. package/dist/components/Button.stories.d.ts +11 -0
  36. package/dist/components/Button.stories.js +109 -0
  37. package/dist/components/Button.svelte +50 -0
  38. package/dist/components/Button.svelte.d.ts +12 -0
  39. package/dist/components/ButtonPreview.svelte +14 -0
  40. package/dist/components/ButtonPreview.svelte.d.ts +4 -0
  41. package/dist/components/ErrorBoundary/ErrorBoundary.stories.js +17 -0
  42. package/dist/components/ErrorBoundary/ErrorBoundary.svelte +127 -0
  43. package/dist/components/ErrorBoundary/ErrorBoundary.svelte.d.ts +13 -0
  44. package/dist/components/ErrorBoundary/ErrorBoundaryPreview.svelte +28 -0
  45. package/dist/components/ErrorBoundary/ErrorBoundaryPreview.svelte.d.ts +6 -0
  46. package/dist/components/ErrorBoundary/ErrorManager.d.ts +15 -0
  47. package/dist/components/ErrorBoundary/ErrorManager.js +158 -0
  48. package/dist/components/ErrorBoundary/Plan.mdx +182 -0
  49. package/dist/components/ErrorBoundary/index.d.ts +3 -0
  50. package/dist/components/ErrorBoundary/index.js +3 -0
  51. package/dist/components/ErrorBoundary/types.d.ts +43 -0
  52. package/dist/components/ErrorBoundary/types.js +1 -0
  53. package/dist/components/Former/Former.stories.js +228 -0
  54. package/dist/components/Former/Former.svelte +405 -0
  55. package/dist/components/Former/Former.svelte.d.ts +33 -0
  56. package/dist/components/Former/FormerButtonArea.svelte +93 -0
  57. package/dist/components/Former/FormerButtonArea.svelte.d.ts +15 -0
  58. package/dist/components/Former/FormerDrawer.svelte +115 -0
  59. package/dist/components/Former/FormerDrawer.svelte.d.ts +19 -0
  60. package/dist/components/Former/FormerDrawerPreview.svelte +226 -0
  61. package/dist/components/Former/FormerDrawerPreview.svelte.d.ts +7 -0
  62. package/dist/components/Former/FormerModal.svelte +108 -0
  63. package/dist/components/Former/FormerModal.svelte.d.ts +14 -0
  64. package/dist/components/Former/FormerModalPreview.svelte +226 -0
  65. package/dist/components/Former/FormerModalPreview.svelte.d.ts +7 -0
  66. package/dist/components/Former/FormerPreview.svelte +238 -0
  67. package/dist/components/Former/FormerPreview.svelte.d.ts +8 -0
  68. package/dist/components/Former/FormerResolveSpecAPI.d.ts +26 -0
  69. package/dist/components/Former/FormerResolveSpecAPI.js +44 -0
  70. package/dist/components/Former/FormerRestApiPreview.svelte +198 -0
  71. package/dist/components/Former/FormerRestApiPreview.svelte.d.ts +3 -0
  72. package/dist/components/Former/FormerRestHeadSpecAPI.d.ts +8 -0
  73. package/dist/components/Former/FormerRestHeadSpecAPI.js +38 -0
  74. package/dist/components/Former/Plan.mdx +115 -0
  75. package/dist/components/Former/formerState.svelte.d.ts +21 -0
  76. package/dist/components/Former/formerState.svelte.js +57 -0
  77. package/dist/components/Former/index.d.ts +8 -0
  78. package/dist/components/Former/index.js +8 -0
  79. package/dist/components/Former/types.d.ts +61 -0
  80. package/dist/components/Former/types.js +1 -0
  81. package/dist/components/FormerControllers/ButtonCtrl.stories.js +102 -0
  82. package/dist/components/FormerControllers/ButtonCtrl.svelte +65 -0
  83. package/dist/components/FormerControllers/ButtonCtrl.svelte.d.ts +14 -0
  84. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.stories.js +73 -0
  85. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.svelte +630 -0
  86. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.svelte.d.ts +54 -0
  87. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.utils.d.ts +40 -0
  88. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.utils.js +688 -0
  89. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlCalendar.svelte +193 -0
  90. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlCalendar.svelte.d.ts +13 -0
  91. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlPickerPanel.svelte +119 -0
  92. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlPickerPanel.svelte.d.ts +39 -0
  93. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlTimeFields.svelte +343 -0
  94. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlTimeFields.svelte.d.ts +27 -0
  95. package/dist/components/FormerControllers/DateTimeCtrl/index.d.ts +2 -0
  96. package/dist/components/FormerControllers/DateTimeCtrl/index.js +1 -0
  97. package/dist/components/FormerControllers/FormerControllers.stories.js +76 -0
  98. package/dist/components/FormerControllers/IconButtonCtrl.stories.js +77 -0
  99. package/dist/components/FormerControllers/IconButtonCtrl.svelte +64 -0
  100. package/dist/components/FormerControllers/IconButtonCtrl.svelte.d.ts +13 -0
  101. package/dist/components/FormerControllers/InlineWrapper.stories.js +133 -0
  102. package/dist/components/FormerControllers/InlineWrapper.svelte +85 -0
  103. package/dist/components/FormerControllers/InlineWrapper.svelte.d.ts +16 -0
  104. package/dist/components/FormerControllers/InlineWrapperPreview.svelte +41 -0
  105. package/dist/components/FormerControllers/InlineWrapperPreview.svelte.d.ts +13 -0
  106. package/dist/components/FormerControllers/NativeSelectCtrl.stories.js +79 -0
  107. package/dist/components/FormerControllers/NativeSelectCtrl.svelte +61 -0
  108. package/dist/components/FormerControllers/NativeSelectCtrl.svelte.d.ts +13 -0
  109. package/dist/components/FormerControllers/NumberInputCtrl.stories.js +77 -0
  110. package/dist/components/FormerControllers/NumberInputCtrl.svelte +61 -0
  111. package/dist/components/FormerControllers/NumberInputCtrl.svelte.d.ts +11 -0
  112. package/dist/components/FormerControllers/PasswordInputCtrl.stories.js +79 -0
  113. package/dist/components/FormerControllers/PasswordInputCtrl.svelte +57 -0
  114. package/dist/components/FormerControllers/PasswordInputCtrl.svelte.d.ts +8 -0
  115. package/dist/components/FormerControllers/Plan.mdx +129 -0
  116. package/dist/components/FormerControllers/SwitchCtrl.stories.js +73 -0
  117. package/dist/components/FormerControllers/SwitchCtrl.svelte +38 -0
  118. package/dist/components/FormerControllers/SwitchCtrl.svelte.d.ts +8 -0
  119. package/dist/components/FormerControllers/TextAreaCtrl.stories.js +71 -0
  120. package/dist/components/FormerControllers/TextAreaCtrl.svelte +47 -0
  121. package/dist/components/FormerControllers/TextAreaCtrl.svelte.d.ts +9 -0
  122. package/dist/components/FormerControllers/TextInputCtrl.svelte +47 -0
  123. package/dist/components/FormerControllers/TextInputCtrl.svelte.d.ts +9 -0
  124. package/dist/components/FormerControllers/index.d.ts +12 -0
  125. package/dist/components/FormerControllers/index.js +11 -0
  126. package/dist/components/FormerControllers/types.d.ts +10 -0
  127. package/dist/components/FormerControllers/types.js +1 -0
  128. package/dist/components/GlobalStateStore/GlobalStateStore.d.ts +19 -0
  129. package/dist/components/GlobalStateStore/GlobalStateStore.js +349 -0
  130. package/dist/components/GlobalStateStore/GlobalStateStore.types.d.ts +127 -0
  131. package/dist/components/GlobalStateStore/GlobalStateStore.types.js +2 -0
  132. package/dist/components/GlobalStateStore/GlobalStateStore.utils.d.ts +4 -0
  133. package/dist/components/GlobalStateStore/GlobalStateStore.utils.js +92 -0
  134. package/dist/components/GlobalStateStore/GlobalStateStoreContext.d.ts +10 -0
  135. package/dist/components/GlobalStateStore/GlobalStateStoreContext.js +10 -0
  136. package/dist/components/GlobalStateStore/GlobalStateStoreProvider.svelte +113 -0
  137. package/dist/components/GlobalStateStore/GlobalStateStoreProvider.svelte.d.ts +16 -0
  138. package/dist/components/GlobalStateStore/index.d.ts +5 -0
  139. package/dist/components/GlobalStateStore/index.js +3 -0
  140. package/dist/components/Gridler/CellEditor.svelte +126 -0
  141. package/dist/components/Gridler/CellEditor.svelte.d.ts +15 -0
  142. package/dist/components/Gridler/Gridler.stories.d.ts +56 -0
  143. package/dist/components/Gridler/Gridler.stories.js +262 -0
  144. package/dist/components/Gridler/Gridler.svelte +778 -0
  145. package/dist/components/Gridler/Gridler.svelte.d.ts +11 -0
  146. package/dist/components/Gridler/GridlerHeader.svelte +179 -0
  147. package/dist/components/Gridler/GridlerHeader.svelte.d.ts +13 -0
  148. package/dist/components/Gridler/Plan.mdx +692 -0
  149. package/dist/components/Gridler/index.d.ts +6 -0
  150. package/dist/components/Gridler/index.js +6 -0
  151. package/dist/components/Gridler/types.d.ts +84 -0
  152. package/dist/components/Gridler/types.js +16 -0
  153. package/dist/components/Gridler/utils/rendering.d.ts +16 -0
  154. package/dist/components/Gridler/utils/rendering.js +202 -0
  155. package/dist/components/Gridler/utils/scrolling.d.ts +12 -0
  156. package/dist/components/Gridler/utils/scrolling.js +97 -0
  157. package/dist/components/Portal/Portal.mdx +125 -0
  158. package/dist/components/Portal/Portal.svelte +47 -0
  159. package/dist/components/Portal/Portal.svelte.d.ts +18 -0
  160. package/dist/components/Screenshot/Screenshot.stories.d.ts +16 -0
  161. package/dist/components/Screenshot/Screenshot.stories.js +15 -0
  162. package/dist/components/Screenshot/Screenshot.svelte +54 -0
  163. package/dist/components/Screenshot/Screenshot.svelte.d.ts +3 -0
  164. package/dist/components/Screenshot/Screenshot.util.d.ts +1 -0
  165. package/dist/components/Screenshot/Screenshot.util.js +49 -0
  166. package/dist/components/Screenshot/index.d.ts +2 -0
  167. package/dist/components/Screenshot/index.js +2 -0
  168. package/dist/components/Svark/Svark.stories.js +659 -0
  169. package/dist/components/Svark/Svark.svelte +691 -0
  170. package/dist/components/Svark/Svark.svelte.d.ts +26 -0
  171. package/dist/components/Svark/SvarkResolveSpecAdapter.d.ts +16 -0
  172. package/dist/components/Svark/SvarkResolveSpecAdapter.js +68 -0
  173. package/dist/components/Svark/SvarkSelectionDemo.svelte +59 -0
  174. package/dist/components/Svark/SvarkSelectionDemo.svelte.d.ts +4 -0
  175. package/dist/components/Svark/index.d.ts +3 -0
  176. package/dist/components/Svark/index.js +3 -0
  177. package/dist/components/Svark/types.d.ts +63 -0
  178. package/dist/components/Svark/types.js +1 -0
  179. package/dist/components/VTree/VTree.models.d.ts +12 -0
  180. package/dist/components/VTree/VTree.models.js +1 -0
  181. package/dist/components/VTree/VTree.stories.d.ts +40 -0
  182. package/dist/components/VTree/VTree.stories.js +112 -0
  183. package/dist/components/VTree/VTree.svelte +471 -0
  184. package/dist/components/VTree/VTree.svelte.d.ts +5 -0
  185. package/dist/components/VTree/VTreeContextMenu.svelte +40 -0
  186. package/dist/components/VTree/VTreeContextMenu.svelte.d.ts +11 -0
  187. package/dist/components/VTree/VTreeEventsDemo.svelte +88 -0
  188. package/dist/components/VTree/VTreeEventsDemo.svelte.d.ts +3 -0
  189. package/dist/components/VTree/VTreeResolveSpecAdapter.d.ts +14 -0
  190. package/dist/components/VTree/VTreeResolveSpecAdapter.js +103 -0
  191. package/dist/components/VTree/VTreeRow.svelte +136 -0
  192. package/dist/components/VTree/VTreeRow.svelte.d.ts +37 -0
  193. package/dist/components/VTree/VTreeSearch.svelte +25 -0
  194. package/dist/components/VTree/VTreeSearch.svelte.d.ts +8 -0
  195. package/dist/components/VTree/VTreeVirtualViewport.svelte +154 -0
  196. package/dist/components/VTree/VTreeVirtualViewport.svelte.d.ts +45 -0
  197. package/dist/components/VTree/index.d.ts +3 -0
  198. package/dist/components/VTree/index.js +3 -0
  199. package/dist/components/VTree/types.d.ts +83 -0
  200. package/dist/components/VTree/types.js +1 -0
  201. package/dist/components/index.d.ts +11 -0
  202. package/dist/components/index.js +11 -0
  203. package/dist/index.d.ts +16 -0
  204. package/dist/index.js +20 -0
  205. package/dist/stores/index.d.ts +1 -0
  206. package/dist/stores/index.js +1 -0
  207. package/dist/themes/svelix_orange.css +205 -0
  208. package/dist/utils/PropsWithChildren.d.ts +5 -0
  209. package/dist/utils/PropsWithChildren.js +1 -0
  210. package/dist/utils/index.d.ts +1 -0
  211. package/dist/utils/index.js +2 -0
  212. package/package.json +85 -0
@@ -0,0 +1,262 @@
1
+ import Gridler from './Gridler.svelte';
2
+ const meta = {
3
+ title: 'Components/Gridler',
4
+ component: Gridler,
5
+ tags: ['autodocs'],
6
+ argTypes: {
7
+ rows: {
8
+ control: { type: 'number' },
9
+ description: 'Total number of rows'
10
+ },
11
+ rowHeight: {
12
+ control: { type: 'number' },
13
+ description: 'Height of each row in pixels'
14
+ },
15
+ headerHeight: {
16
+ control: { type: 'number' },
17
+ description: 'Height of the header row'
18
+ },
19
+ readonly: {
20
+ control: { type: 'boolean' },
21
+ description: 'Whether the grid is read-only'
22
+ },
23
+ rowMarkers: {
24
+ control: { type: 'select' },
25
+ options: ['none', 'number', 'checkbox'],
26
+ description: 'Type of row markers to display'
27
+ }
28
+ }
29
+ };
30
+ export default meta;
31
+ const defaultColumns = [
32
+ { id: 'name', title: 'Name', width: 180 },
33
+ { id: 'email', title: 'Email', width: 220 },
34
+ { id: 'age', title: 'Age', width: 80 },
35
+ { id: 'status', title: 'Status', width: 120 },
36
+ { id: 'department', title: 'Department', width: 150 }
37
+ ];
38
+ const firstNames = ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve', 'Frank', 'Grace', 'Henry', 'Ivy', 'Jack'];
39
+ const lastNames = ['Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis', 'Wilson', 'Moore'];
40
+ const statuses = ['Active', 'Pending', 'Inactive', 'Suspended'];
41
+ const departments = ['Engineering', 'Marketing', 'Sales', 'HR', 'Finance', 'Operations'];
42
+ function generateCellContent([col, row]) {
43
+ const firstName = firstNames[row % firstNames.length];
44
+ const lastName = lastNames[Math.floor(row / 10) % lastNames.length];
45
+ const email = `${firstName.toLowerCase()}.${lastName.toLowerCase()}@example.com`;
46
+ const age = 25 + (row % 40);
47
+ const status = statuses[row % statuses.length];
48
+ const department = departments[row % departments.length];
49
+ switch (col) {
50
+ case 0:
51
+ return { kind: 'text', displayData: `${firstName} ${lastName}`, data: `${firstName} ${lastName}`, allowOverlay: true };
52
+ case 1:
53
+ return { kind: 'uri', displayData: email, data: email, allowOverlay: true };
54
+ case 2:
55
+ return { kind: 'number', displayData: String(age), data: age, allowOverlay: true };
56
+ case 3:
57
+ return { kind: 'bubble', displayData: status, data: status, allowOverlay: true };
58
+ case 4:
59
+ return { kind: 'text', displayData: department, data: department, allowOverlay: true };
60
+ default:
61
+ return { kind: 'text', displayData: '', data: null, allowOverlay: true };
62
+ }
63
+ }
64
+ export const Basic = {
65
+ args: {
66
+ columns: defaultColumns,
67
+ rows: 100,
68
+ getCellContent: generateCellContent,
69
+ height: 400
70
+ }
71
+ };
72
+ export const LargeDataset = {
73
+ args: {
74
+ columns: defaultColumns,
75
+ rows: 10000,
76
+ getCellContent: generateCellContent,
77
+ height: 500
78
+ }
79
+ };
80
+ export const WithRowNumbers = {
81
+ args: {
82
+ columns: defaultColumns,
83
+ rows: 50,
84
+ getCellContent: generateCellContent,
85
+ rowMarkers: 'number',
86
+ height: 400
87
+ }
88
+ };
89
+ export const WithCheckboxes = {
90
+ args: {
91
+ columns: defaultColumns,
92
+ rows: 50,
93
+ getCellContent: generateCellContent,
94
+ rowMarkers: 'checkbox',
95
+ height: 400
96
+ }
97
+ };
98
+ export const Readonly = {
99
+ args: {
100
+ columns: defaultColumns,
101
+ rows: 50,
102
+ getCellContent: generateCellContent,
103
+ readonly: true,
104
+ height: 400
105
+ }
106
+ };
107
+ export const CustomTheme = {
108
+ args: {
109
+ columns: defaultColumns,
110
+ rows: 50,
111
+ getCellContent: generateCellContent,
112
+ theme: {
113
+ accentColor: '#10b981',
114
+ accentFg: '#ffffff',
115
+ bgCell: '#1e293b',
116
+ bgHeader: '#334155',
117
+ bgHeaderHasFocus: '#475569',
118
+ borderColor: '#475569',
119
+ foreground: '#f1f5f9',
120
+ fontFamily: 'ui-monospace, monospace'
121
+ },
122
+ height: 400
123
+ }
124
+ };
125
+ export const SmallRows = {
126
+ args: {
127
+ columns: defaultColumns,
128
+ rows: 10,
129
+ getCellContent: generateCellContent,
130
+ height: 300
131
+ }
132
+ };
133
+ const wideColumns = [
134
+ { id: 'id', title: 'ID', width: 60 },
135
+ { id: 'product', title: 'Product Name', width: 200 },
136
+ { id: 'sku', title: 'SKU', width: 100 },
137
+ { id: 'price', title: 'Price', width: 80 },
138
+ { id: 'stock', title: 'Stock', width: 80 },
139
+ { id: 'category', title: 'Category', width: 120 },
140
+ { id: 'supplier', title: 'Supplier', width: 150 },
141
+ { id: 'created', title: 'Created', width: 120 },
142
+ { id: 'updated', title: 'Updated', width: 120 }
143
+ ];
144
+ function generateProductCell([col, row]) {
145
+ const products = ['Laptop Pro', 'Wireless Mouse', 'USB-C Hub', 'Monitor 4K', 'Mechanical Keyboard'];
146
+ const categories = ['Electronics', 'Accessories', 'Peripherals', 'Display', 'Input'];
147
+ switch (col) {
148
+ case 0:
149
+ return { kind: 'number', displayData: String(row + 1000), data: row + 1000, allowOverlay: true };
150
+ case 1:
151
+ return { kind: 'text', displayData: products[row % products.length], data: products[row % products.length], allowOverlay: true };
152
+ case 2:
153
+ return { kind: 'text', displayData: `SKU-${row.toString(16).toUpperCase()}`, data: `SKU-${row.toString(16).toUpperCase()}`, allowOverlay: true };
154
+ case 3:
155
+ return { kind: 'number', displayData: `$${(99.99 + row * 10).toFixed(2)}`, data: 99.99 + row * 10, allowOverlay: true };
156
+ case 4:
157
+ return { kind: 'number', displayData: String(Math.floor(Math.random() * 100)), data: Math.floor(Math.random() * 100), allowOverlay: true };
158
+ case 5:
159
+ return { kind: 'bubble', displayData: categories[row % categories.length], data: categories[row % categories.length], allowOverlay: true };
160
+ case 6:
161
+ return { kind: 'text', displayData: 'Acme Corp', data: 'Acme Corp', allowOverlay: true };
162
+ case 7:
163
+ return { kind: 'text', displayData: `2024-${String((row % 12) + 1).padStart(2, '0')}-15`, data: null, allowOverlay: true };
164
+ case 8:
165
+ return { kind: 'text', displayData: `2024-${String((row % 12) + 1).padStart(2, '0')}-20`, data: null, allowOverlay: true };
166
+ default:
167
+ return { kind: 'text', displayData: '', data: null, allowOverlay: true };
168
+ }
169
+ }
170
+ export const WideGrid = {
171
+ args: {
172
+ columns: wideColumns,
173
+ rows: 100,
174
+ getCellContent: generateProductCell,
175
+ height: 400
176
+ }
177
+ };
178
+ export const WithSearchHighlight = {
179
+ args: {
180
+ columns: defaultColumns,
181
+ rows: 100,
182
+ getCellContent: generateCellContent,
183
+ showSearch: true,
184
+ searchValue: 'Alice',
185
+ height: 400
186
+ }
187
+ };
188
+ export const WithFixedColumns = {
189
+ args: {
190
+ columns: wideColumns,
191
+ rows: 100,
192
+ getCellContent: generateProductCell,
193
+ fixedColumns: 2,
194
+ height: 400
195
+ }
196
+ };
197
+ export const WithFixedColumnsAndRowNumbers = {
198
+ args: {
199
+ columns: wideColumns,
200
+ rows: 100,
201
+ getCellContent: generateProductCell,
202
+ fixedColumns: 2,
203
+ rowMarkers: 'number',
204
+ height: 400
205
+ }
206
+ };
207
+ export const WithColumnReorder = {
208
+ args: {
209
+ columns: [...defaultColumns],
210
+ rows: 50,
211
+ getCellContent: generateCellContent,
212
+ onColumnMoved: (startIndex, endIndex) => {
213
+ console.log(`Column moved from ${startIndex} to ${endIndex}`);
214
+ },
215
+ height: 400
216
+ }
217
+ };
218
+ export const EditableWithCopyPaste = {
219
+ args: {
220
+ columns: defaultColumns,
221
+ rows: 50,
222
+ getCellContent: generateCellContent,
223
+ rowMarkers: 'checkbox',
224
+ onCellEdited: (item, value) => {
225
+ console.log('Cell edited:', item, value);
226
+ },
227
+ height: 400
228
+ }
229
+ };
230
+ export const AllFeatures = {
231
+ args: {
232
+ columns: [...wideColumns],
233
+ rows: 1000,
234
+ getCellContent: generateProductCell,
235
+ fixedColumns: 2,
236
+ rowMarkers: 'number',
237
+ showSearch: true,
238
+ searchValue: 'Laptop',
239
+ onColumnMoved: (startIndex, endIndex) => {
240
+ console.log(`Column moved: ${startIndex} → ${endIndex}`);
241
+ },
242
+ onCellEdited: (item, value) => {
243
+ console.log('Cell edited:', item, value);
244
+ },
245
+ theme: {
246
+ accentColor: '#6366f1',
247
+ bgHeaderHasFocus: '#e0e7ff',
248
+ bgSearchResult: '#fef9c3'
249
+ },
250
+ height: 500
251
+ }
252
+ };
253
+ export const MillionRows = {
254
+ args: {
255
+ columns: defaultColumns,
256
+ rows: 1_000_000,
257
+ getCellContent: generateCellContent,
258
+ fixedColumns: 1,
259
+ rowMarkers: 'number',
260
+ height: 500
261
+ }
262
+ };