@xcelsior/ui-spreadsheets 1.2.1 → 1.3.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 (99) hide show
  1. package/.omc/state/agent-replay-0cead415-b3bd-40fd-b199-47371946c4db.jsonl +25 -0
  2. package/.omc/state/idle-notif-cooldown.json +3 -0
  3. package/.omc/state/last-tool-error.json +7 -0
  4. package/.omc/state/mission-state.json +179 -0
  5. package/.omc/state/subagent-tracking.json +116 -0
  6. package/.turbo/turbo-build.log +28 -28
  7. package/.turbo/turbo-lint.log +140 -0
  8. package/dist/index.d.mts +94 -4
  9. package/dist/index.d.ts +94 -4
  10. package/dist/index.js +2133 -1155
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +2023 -1047
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/styles/globals.css +159 -16
  15. package/dist/styles/globals.css.map +1 -1
  16. package/package.json +1 -1
  17. package/plans/20260330-1230-spreadsheet-features/phase-01-types-and-duplicates-hook.md +73 -0
  18. package/plans/20260330-1230-spreadsheet-features/phase-02-filter-dropdown-portal.md +90 -0
  19. package/plans/20260330-1230-spreadsheet-features/phase-03-header-overflow-menu.md +101 -0
  20. package/plans/20260330-1230-spreadsheet-features/phase-04-integration.md +193 -0
  21. package/plans/20260330-1230-spreadsheet-features/plan.md +59 -0
  22. package/src/components/ColorPickerPopover.tsx +77 -32
  23. package/src/components/ColumnHeaderActions.tsx +241 -1
  24. package/src/components/RowIndexColumnHeader.tsx +13 -16
  25. package/src/components/SelectionSummaryBar.tsx +103 -0
  26. package/src/components/Spreadsheet.stories.tsx +396 -0
  27. package/src/components/Spreadsheet.tsx +233 -187
  28. package/src/components/SpreadsheetCell.tsx +280 -42
  29. package/src/components/SpreadsheetFilterDropdown.tsx +178 -13
  30. package/src/components/SpreadsheetHeader.tsx +79 -24
  31. package/src/components/SpreadsheetSettingsModal.tsx +4 -0
  32. package/src/hooks/useSpreadsheetColumnResize.ts +143 -0
  33. package/src/hooks/useSpreadsheetDuplicates.ts +149 -0
  34. package/src/hooks/useSpreadsheetFiltering.ts +18 -1
  35. package/src/hooks/useSpreadsheetHighlighting.ts +23 -3
  36. package/src/hooks/useSpreadsheetKeyboardShortcuts.ts +16 -0
  37. package/src/hooks/useSpreadsheetPinning.ts +148 -134
  38. package/src/hooks/useSpreadsheetSelection.ts +10 -22
  39. package/src/hooks/useSpreadsheetSummary.ts +68 -0
  40. package/src/index.ts +4 -1
  41. package/src/styles/globals.css +51 -0
  42. package/src/types.ts +50 -2
  43. package/storybook-static/assets/Color-YHDXOIA2-CtQurLnT.js +1 -0
  44. package/storybook-static/assets/DocsRenderer-CFRXHY34-oxrW8Hvo.js +575 -0
  45. package/storybook-static/assets/Spreadsheet.stories-DvhhzuK4.js +1357 -0
  46. package/storybook-static/assets/chunk-XP5HYGXS-BpfKkqn7.js +1 -0
  47. package/storybook-static/assets/entry-preview-CkBGHCAN.js +2 -0
  48. package/storybook-static/assets/entry-preview-docs-ugJb6pa8.js +46 -0
  49. package/storybook-static/assets/iframe-CPp2u3vg.js +211 -0
  50. package/storybook-static/assets/index-BB9bPxRC.js +24 -0
  51. package/storybook-static/assets/index-BQFlzFLk.js +9 -0
  52. package/storybook-static/assets/index-CtvPRVHf.js +9 -0
  53. package/storybook-static/assets/index-DgH-xKnr.js +11 -0
  54. package/storybook-static/assets/index-DrFu-skq.js +6 -0
  55. package/storybook-static/assets/index-DrdPSA1J.js +240 -0
  56. package/storybook-static/assets/index-DzFBShOR.js +20 -0
  57. package/storybook-static/assets/index-v-1boR4t.js +1 -0
  58. package/storybook-static/assets/preview-B8lJiyuQ.js +34 -0
  59. package/storybook-static/assets/preview-BBWR9nbA.js +1 -0
  60. package/storybook-static/assets/preview-BWzBA1C2.js +396 -0
  61. package/storybook-static/assets/preview-Bm0S-uxO.css +1 -0
  62. package/storybook-static/assets/preview-CvbIS5ZJ.js +1 -0
  63. package/storybook-static/assets/preview-DD_OYowb.js +1 -0
  64. package/storybook-static/assets/preview-DGUiP6tS.js +7 -0
  65. package/storybook-static/assets/preview-DHQbi4pV.js +1 -0
  66. package/storybook-static/assets/preview-DwI0w3cI.js +1 -0
  67. package/storybook-static/assets/preview-DyR7iiFG.js +1 -0
  68. package/storybook-static/assets/preview-zxZ6Be2V.js +2 -0
  69. package/storybook-static/assets/react-18-Pj8skaX9.js +1 -0
  70. package/storybook-static/assets/test-utils-quxJ1Z79.js +9 -0
  71. package/storybook-static/favicon.svg +1 -0
  72. package/storybook-static/iframe.html +666 -0
  73. package/storybook-static/index.html +177 -0
  74. package/storybook-static/index.json +1 -0
  75. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  76. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  77. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  78. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  79. package/storybook-static/project.json +1 -0
  80. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  81. package/storybook-static/sb-addons/essentials-backgrounds-5/manager-bundle.js +12 -0
  82. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +405 -0
  83. package/storybook-static/sb-addons/essentials-docs-4/manager-bundle.js +245 -0
  84. package/storybook-static/sb-addons/essentials-measure-8/manager-bundle.js +3 -0
  85. package/storybook-static/sb-addons/essentials-outline-9/manager-bundle.js +3 -0
  86. package/storybook-static/sb-addons/essentials-toolbars-7/manager-bundle.js +3 -0
  87. package/storybook-static/sb-addons/essentials-viewport-6/manager-bundle.js +3 -0
  88. package/storybook-static/sb-addons/interactions-10/manager-bundle.js +222 -0
  89. package/storybook-static/sb-addons/links-1/manager-bundle.js +3 -0
  90. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  91. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  92. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  93. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  94. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  95. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  96. package/storybook-static/sb-manager/globals-module-info.js +1052 -0
  97. package/storybook-static/sb-manager/globals-runtime.js +42127 -0
  98. package/storybook-static/sb-manager/globals.js +48 -0
  99. package/storybook-static/sb-manager/runtime.js +12048 -0
@@ -0,0 +1,25 @@
1
+ {"t":0,"agent":"a59fa3d","agent_type":"architect","event":"agent_start","parent_mode":"none"}
2
+ {"t":0,"agent":"a59fa3d","agent_type":"architect","event":"agent_stop","success":true,"duration_ms":145627}
3
+ {"t":0,"agent":"system","event":"skill_invoked","skill_name":"plan:parallel"}
4
+ {"t":0,"agent":"a7d6996","agent_type":"explore","event":"agent_start","parent_mode":"none"}
5
+ {"t":0,"agent":"a307b64","agent_type":"explore","event":"agent_start","parent_mode":"none"}
6
+ {"t":0,"agent":"a7d6996","agent_type":"explore","event":"agent_stop","success":true,"duration_ms":59053}
7
+ {"t":0,"agent":"a307b64","agent_type":"explore","event":"agent_stop","success":true,"duration_ms":74911}
8
+ {"t":0,"agent":"a27f3b1","agent_type":"planner","event":"agent_start","parent_mode":"none"}
9
+ {"t":0,"agent":"a27f3b1","agent_type":"planner","event":"agent_stop","success":true,"duration_ms":162805}
10
+ {"t":0,"agent":"a6180ba","agent_type":"executor","event":"agent_start","parent_mode":"none"}
11
+ {"t":0,"agent":"adc1f92","agent_type":"executor","event":"agent_start","parent_mode":"none"}
12
+ {"t":0,"agent":"a262a9b","agent_type":"executor","event":"agent_start","parent_mode":"none"}
13
+ {"t":0,"agent":"a6180ba","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":64350}
14
+ {"t":0,"agent":"a262a9b","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":72453}
15
+ {"t":0,"agent":"adc1f92","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":117264}
16
+ {"t":0,"agent":"a340ace","agent_type":"executor","event":"agent_start","parent_mode":"none"}
17
+ {"t":0,"agent":"a340ace","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":272483}
18
+ {"t":0,"agent":"ae4376d","agent_type":"executor","event":"agent_start","parent_mode":"none"}
19
+ {"t":0,"agent":"ae4376d","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":241903}
20
+ {"t":0,"agent":"a1f71c0","agent_type":"debugger","event":"agent_start","parent_mode":"none"}
21
+ {"t":0,"agent":"a1f71c0","agent_type":"debugger","event":"agent_stop","success":true,"duration_ms":43520}
22
+ {"t":0,"agent":"aa330fa","agent_type":"executor","event":"agent_start","parent_mode":"none"}
23
+ {"t":0,"agent":"aa330fa","agent_type":"executor","event":"agent_stop","success":true,"duration_ms":247728}
24
+ {"t":0,"agent":"ae7807c","agent_type":"git-manager","event":"agent_start","parent_mode":"none"}
25
+ {"t":0,"agent":"ae7807c","agent_type":"git-manager","event":"agent_stop","success":true,"duration_ms":20621}
@@ -0,0 +1,3 @@
1
+ {
2
+ "lastSentAt": "2026-03-30T08:36:59.719Z"
3
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "tool_name": "Read",
3
+ "tool_input_preview": "{\"file_path\":\"/Users/huyhoang/Projects/load-go/apps/backend/src/api/spreadsheet-highlight/services/spreadsheet-highlight.js\"}",
4
+ "error": "File does not exist. Note: your current working directory is /Users/huyhoang/Projects/Excelsior/excelsior-packages/packages/ui/ui-spreadsheets. Did you mean spreadsheet-highlight.ts?",
5
+ "timestamp": "2026-03-30T04:51:08.926Z",
6
+ "retry_count": 3
7
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "updatedAt": "2026-03-30T05:02:01.720Z",
3
+ "missions": [
4
+ {
5
+ "id": "session:0cead415-b3bd-40fd-b199-47371946c4db:none",
6
+ "source": "session",
7
+ "name": "none",
8
+ "objective": "Session mission",
9
+ "createdAt": "2026-03-30T03:04:00.047Z",
10
+ "updatedAt": "2026-03-30T05:02:01.720Z",
11
+ "status": "done",
12
+ "workerCount": 12,
13
+ "taskCounts": {
14
+ "total": 12,
15
+ "pending": 0,
16
+ "blocked": 0,
17
+ "inProgress": 0,
18
+ "completed": 12,
19
+ "failed": 0
20
+ },
21
+ "agents": [
22
+ {
23
+ "name": "architect:a59fa3d",
24
+ "role": "architect",
25
+ "ownership": "a59fa3d18768f2361",
26
+ "status": "done",
27
+ "currentStep": null,
28
+ "latestUpdate": "completed",
29
+ "completedSummary": null,
30
+ "updatedAt": "2026-03-30T03:06:25.674Z"
31
+ },
32
+ {
33
+ "name": "explore:a7d6996",
34
+ "role": "explore",
35
+ "ownership": "a7d6996de7000847d",
36
+ "status": "done",
37
+ "currentStep": null,
38
+ "latestUpdate": "completed",
39
+ "completedSummary": null,
40
+ "updatedAt": "2026-03-30T04:01:38.424Z"
41
+ },
42
+ {
43
+ "name": "explore:a307b64",
44
+ "role": "explore",
45
+ "ownership": "a307b64353817de81",
46
+ "status": "done",
47
+ "currentStep": null,
48
+ "latestUpdate": "completed",
49
+ "completedSummary": null,
50
+ "updatedAt": "2026-03-30T04:02:00.351Z"
51
+ },
52
+ {
53
+ "name": "planner:a27f3b1",
54
+ "role": "planner",
55
+ "ownership": "a27f3b10aa8058b3c",
56
+ "status": "done",
57
+ "currentStep": null,
58
+ "latestUpdate": "completed",
59
+ "completedSummary": null,
60
+ "updatedAt": "2026-03-30T04:05:14.094Z"
61
+ },
62
+ {
63
+ "name": "executor:a6180ba",
64
+ "role": "executor",
65
+ "ownership": "a6180ba852eb92ede",
66
+ "status": "done",
67
+ "currentStep": null,
68
+ "latestUpdate": "completed",
69
+ "completedSummary": null,
70
+ "updatedAt": "2026-03-30T04:09:39.184Z"
71
+ },
72
+ {
73
+ "name": "executor:adc1f92",
74
+ "role": "executor",
75
+ "ownership": "adc1f923d6bb2c561",
76
+ "status": "done",
77
+ "currentStep": null,
78
+ "latestUpdate": "completed",
79
+ "completedSummary": null,
80
+ "updatedAt": "2026-03-30T04:10:39.831Z"
81
+ },
82
+ {
83
+ "name": "executor:a262a9b",
84
+ "role": "executor",
85
+ "ownership": "a262a9ba99cb42a12",
86
+ "status": "done",
87
+ "currentStep": null,
88
+ "latestUpdate": "completed",
89
+ "completedSummary": null,
90
+ "updatedAt": "2026-03-30T04:10:02.061Z"
91
+ },
92
+ {
93
+ "name": "executor:a340ace",
94
+ "role": "executor",
95
+ "ownership": "a340ace0e96f7ed32",
96
+ "status": "done",
97
+ "currentStep": null,
98
+ "latestUpdate": "completed",
99
+ "completedSummary": null,
100
+ "updatedAt": "2026-03-30T04:15:48.095Z"
101
+ },
102
+ {
103
+ "name": "executor:ae4376d",
104
+ "role": "executor",
105
+ "ownership": "ae4376d19dd840dc4",
106
+ "status": "done",
107
+ "currentStep": null,
108
+ "latestUpdate": "completed",
109
+ "completedSummary": null,
110
+ "updatedAt": "2026-03-30T04:32:54.973Z"
111
+ },
112
+ {
113
+ "name": "debugger:a1f71c0",
114
+ "role": "debugger",
115
+ "ownership": "a1f71c022f2255fd0",
116
+ "status": "done",
117
+ "currentStep": null,
118
+ "latestUpdate": "completed",
119
+ "completedSummary": null,
120
+ "updatedAt": "2026-03-30T04:40:52.232Z"
121
+ },
122
+ {
123
+ "name": "executor:aa330fa",
124
+ "role": "executor",
125
+ "ownership": "aa330fa6ae424cc92",
126
+ "status": "done",
127
+ "currentStep": null,
128
+ "latestUpdate": "completed",
129
+ "completedSummary": null,
130
+ "updatedAt": "2026-03-30T04:54:36.031Z"
131
+ },
132
+ {
133
+ "name": "git-manager:ae7807c",
134
+ "role": "git-manager",
135
+ "ownership": "ae7807ca7e84fc31c",
136
+ "status": "done",
137
+ "currentStep": null,
138
+ "latestUpdate": "completed",
139
+ "completedSummary": null,
140
+ "updatedAt": "2026-03-30T05:02:01.720Z"
141
+ }
142
+ ],
143
+ "timeline": [
144
+ {
145
+ "id": "session-start:aa330fa6ae424cc92:2026-03-30T04:50:28.303Z",
146
+ "at": "2026-03-30T04:50:28.303Z",
147
+ "kind": "update",
148
+ "agent": "executor:aa330fa",
149
+ "detail": "started executor:aa330fa",
150
+ "sourceKey": "session-start:aa330fa6ae424cc92"
151
+ },
152
+ {
153
+ "id": "session-stop:aa330fa6ae424cc92:2026-03-30T04:54:36.031Z",
154
+ "at": "2026-03-30T04:54:36.031Z",
155
+ "kind": "completion",
156
+ "agent": "executor:aa330fa",
157
+ "detail": "completed",
158
+ "sourceKey": "session-stop:aa330fa6ae424cc92"
159
+ },
160
+ {
161
+ "id": "session-start:ae7807ca7e84fc31c:2026-03-30T05:01:41.099Z",
162
+ "at": "2026-03-30T05:01:41.099Z",
163
+ "kind": "update",
164
+ "agent": "git-manager:ae7807c",
165
+ "detail": "started git-manager:ae7807c",
166
+ "sourceKey": "session-start:ae7807ca7e84fc31c"
167
+ },
168
+ {
169
+ "id": "session-stop:ae7807ca7e84fc31c:2026-03-30T05:02:01.720Z",
170
+ "at": "2026-03-30T05:02:01.720Z",
171
+ "kind": "completion",
172
+ "agent": "git-manager:ae7807c",
173
+ "detail": "completed",
174
+ "sourceKey": "session-stop:ae7807ca7e84fc31c"
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "agents": [
3
+ {
4
+ "agent_id": "a59fa3d18768f2361",
5
+ "agent_type": "oh-my-claudecode:architect",
6
+ "started_at": "2026-03-30T03:04:00.047Z",
7
+ "parent_mode": "none",
8
+ "status": "completed",
9
+ "completed_at": "2026-03-30T03:06:25.674Z",
10
+ "duration_ms": 145627
11
+ },
12
+ {
13
+ "agent_id": "a7d6996de7000847d",
14
+ "agent_type": "oh-my-claudecode:explore",
15
+ "started_at": "2026-03-30T04:00:39.371Z",
16
+ "parent_mode": "none",
17
+ "status": "completed",
18
+ "completed_at": "2026-03-30T04:01:38.424Z",
19
+ "duration_ms": 59053
20
+ },
21
+ {
22
+ "agent_id": "a307b64353817de81",
23
+ "agent_type": "oh-my-claudecode:explore",
24
+ "started_at": "2026-03-30T04:00:45.440Z",
25
+ "parent_mode": "none",
26
+ "status": "completed",
27
+ "completed_at": "2026-03-30T04:02:00.351Z",
28
+ "duration_ms": 74911
29
+ },
30
+ {
31
+ "agent_id": "a27f3b10aa8058b3c",
32
+ "agent_type": "oh-my-claudecode:planner",
33
+ "started_at": "2026-03-30T04:02:31.289Z",
34
+ "parent_mode": "none",
35
+ "status": "completed",
36
+ "completed_at": "2026-03-30T04:05:14.094Z",
37
+ "duration_ms": 162805
38
+ },
39
+ {
40
+ "agent_id": "a6180ba852eb92ede",
41
+ "agent_type": "oh-my-claudecode:executor",
42
+ "started_at": "2026-03-30T04:08:34.834Z",
43
+ "parent_mode": "none",
44
+ "status": "completed",
45
+ "completed_at": "2026-03-30T04:09:39.184Z",
46
+ "duration_ms": 64350
47
+ },
48
+ {
49
+ "agent_id": "adc1f923d6bb2c561",
50
+ "agent_type": "oh-my-claudecode:executor",
51
+ "started_at": "2026-03-30T04:08:42.567Z",
52
+ "parent_mode": "none",
53
+ "status": "completed",
54
+ "completed_at": "2026-03-30T04:10:39.831Z",
55
+ "duration_ms": 117264
56
+ },
57
+ {
58
+ "agent_id": "a262a9ba99cb42a12",
59
+ "agent_type": "oh-my-claudecode:executor",
60
+ "started_at": "2026-03-30T04:08:49.608Z",
61
+ "parent_mode": "none",
62
+ "status": "completed",
63
+ "completed_at": "2026-03-30T04:10:02.061Z",
64
+ "duration_ms": 72453
65
+ },
66
+ {
67
+ "agent_id": "a340ace0e96f7ed32",
68
+ "agent_type": "oh-my-claudecode:executor",
69
+ "started_at": "2026-03-30T04:11:15.612Z",
70
+ "parent_mode": "none",
71
+ "status": "completed",
72
+ "completed_at": "2026-03-30T04:15:48.095Z",
73
+ "duration_ms": 272483
74
+ },
75
+ {
76
+ "agent_id": "ae4376d19dd840dc4",
77
+ "agent_type": "oh-my-claudecode:executor",
78
+ "started_at": "2026-03-30T04:28:53.070Z",
79
+ "parent_mode": "none",
80
+ "status": "completed",
81
+ "completed_at": "2026-03-30T04:32:54.973Z",
82
+ "duration_ms": 241903
83
+ },
84
+ {
85
+ "agent_id": "a1f71c022f2255fd0",
86
+ "agent_type": "oh-my-claudecode:debugger",
87
+ "started_at": "2026-03-30T04:40:08.712Z",
88
+ "parent_mode": "none",
89
+ "status": "completed",
90
+ "completed_at": "2026-03-30T04:40:52.232Z",
91
+ "duration_ms": 43520
92
+ },
93
+ {
94
+ "agent_id": "aa330fa6ae424cc92",
95
+ "agent_type": "oh-my-claudecode:executor",
96
+ "started_at": "2026-03-30T04:50:28.303Z",
97
+ "parent_mode": "none",
98
+ "status": "completed",
99
+ "completed_at": "2026-03-30T04:54:36.031Z",
100
+ "duration_ms": 247728
101
+ },
102
+ {
103
+ "agent_id": "ae7807ca7e84fc31c",
104
+ "agent_type": "git-manager",
105
+ "started_at": "2026-03-30T05:01:41.099Z",
106
+ "parent_mode": "none",
107
+ "status": "completed",
108
+ "completed_at": "2026-03-30T05:02:01.720Z",
109
+ "duration_ms": 20621
110
+ }
111
+ ],
112
+ "total_spawned": 12,
113
+ "total_completed": 12,
114
+ "total_failed": 0,
115
+ "last_updated": "2026-03-30T05:02:01.822Z"
116
+ }
@@ -1,28 +1,28 @@
1
-
2
- > @xcelsior/ui-spreadsheets@1.1.18 build /Users/tuannguyen/Work/xcelsior-packages/packages/ui/ui-spreadsheets
3
- > tsup && tsc --noEmit
4
-
5
- CLI Building entry: src/index.ts, src/styles/globals.css
6
- CLI Using tsconfig: tsconfig.json
7
- CLI tsup v8.5.1
8
- CLI Using tsup config: /Users/tuannguyen/Work/xcelsior-packages/packages/ui/ui-spreadsheets/tsup.config.ts
9
- CLI Target: es2020
10
- CLI Cleaning output folder
11
- CJS Build start
12
- ESM Build start
13
- DTS Build start
14
- ESM dist/styles/globals.css 34.51 KB
15
- ESM dist/index.mjs 180.51 KB
16
- ESM dist/styles/globals.css.map 57.51 KB
17
- ESM dist/index.mjs.map 4.69 MB
18
- ESM ⚡️ Build success in 344ms
19
- CJS dist/styles/globals.css 34.51 KB
20
- CJS dist/index.js 192.38 KB
21
- CJS dist/styles/globals.css.map 57.51 KB
22
- CJS dist/index.js.map 4.69 MB
23
- CJS ⚡️ Build success in 345ms
24
- DTS ⚡️ Build success in 2201ms
25
- DTS dist/styles/globals.d.ts 13.00 B
26
- DTS dist/index.d.ts 27.85 KB
27
- DTS dist/styles/globals.d.mts 13.00 B
28
- DTS dist/index.d.mts 27.85 KB
1
+
2
+ > @xcelsior/ui-spreadsheets@1.2.2 build /Users/huyhoang/Projects/Excelsior/excelsior-packages/packages/ui/ui-spreadsheets
3
+ > tsup && tsc --noEmit
4
+
5
+ CLI Building entry: src/index.ts, src/styles/globals.css
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v8.5.1
8
+ CLI Using tsup config: /Users/huyhoang/Projects/Excelsior/excelsior-packages/packages/ui/ui-spreadsheets/tsup.config.ts
9
+ CLI Target: es2020
10
+ CLI Cleaning output folder
11
+ CJS Build start
12
+ ESM Build start
13
+ DTS Build start
14
+ CJS dist/index.js 202.36 KB
15
+ CJS dist/styles/globals.css 35.89 KB
16
+ CJS dist/styles/globals.css.map 59.78 KB
17
+ CJS dist/index.js.map 4.71 MB
18
+ CJS ⚡️ Build success in 270ms
19
+ ESM dist/styles/globals.css 35.89 KB
20
+ ESM dist/index.mjs 189.49 KB
21
+ ESM dist/styles/globals.css.map 59.78 KB
22
+ ESM dist/index.mjs.map 4.71 MB
23
+ ESM ⚡️ Build success in 270ms
24
+ DTS ⚡️ Build success in 1579ms
25
+ DTS dist/styles/globals.d.ts 13.00 B
26
+ DTS dist/index.d.ts 28.71 KB
27
+ DTS dist/styles/globals.d.mts 13.00 B
28
+ DTS dist/index.d.mts 28.71 KB
@@ -1 +1,141 @@
1
+  WARN  Issue while reading "/Users/huyhoang/Projects/Excelsior/excelsior-packages/.npmrc". Failed to replace env in config: ${NPM_TOKEN}
1
2
 
3
+ > @xcelsior/ui-spreadsheets@1.2.2 lint /Users/huyhoang/Projects/Excelsior/excelsior-packages/packages/ui/ui-spreadsheets
4
+ > biome check . && tsc --noEmit
5
+
6
+ src/components/CommentModals.tsx:57:21 lint/a11y/noAutofocus FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7
+
8
+ ! Avoid the autoFocus attribute.
9
+
10
+ 55 │ placeholder="Enter your comment..."
11
+ 56 │ className="w-full h-24 p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 resize-none"
12
+ > 57 │ autoFocus
13
+ │ ^^^^^^^^^
14
+ 58 │ />
15
+ 59 │ <div className="flex justify-end gap-2 mt-4">
16
+
17
+ i Unsafe fix: Remove the autoFocus attribute.
18
+
19
+ 55 55 │ placeholder="Enter your comment..."
20
+ 56 56 │ className="w-full h-24 p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 resize-none"
21
+ 57 │ - ····················autoFocus
22
+ 58 57 │ />
23
+ 59 58 │ <div className="flex justify-end gap-2 mt-4">
24
+
25
+
26
+ src/components/Spreadsheet.tsx:1100:45 lint/a11y/useKeyWithClickEvents ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+
28
+ ! Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.
29
+
30
+ 1098 │ >
31
+ 1099 │ {/* Row Index Column */}
32
+ > 1100 │ <td
33
+ │ ^^^
34
+ > 1101 │ onClick={(e) => handleRowSelect(rowId, e)}
35
+ ...
36
+ > 1129 │ }}
37
+ > 1130 │ >
38
+ │ ^
39
+ 1131 │ <div className="relative flex items-center justify-center w-full h-full">
40
+ 1132 │ {/* Row number - centered */}
41
+
42
+ i Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
43
+
44
+
45
+ src/components/Spreadsheet.tsx:31:5 lint/correctness/noUnusedImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━
46
+
47
+ ! Several of these imports are unused.
48
+
49
+ 29 │ import { useSpreadsheetSelection } from '../hooks/useSpreadsheetSelection';
50
+ 30 │ import type {
51
+ > 31 │ CellEdit,
52
+ │ ^^^^^^^^
53
+ 32 │ SpreadsheetColumn,
54
+ 33 │ SpreadsheetColumnGroup,
55
+
56
+ i Unused imports might be the result of an incomplete refactoring.
57
+
58
+ i Unsafe fix: Remove the unused imports.
59
+
60
+ 29 29 │ import { useSpreadsheetSelection } from '../hooks/useSpreadsheetSelection';
61
+ 30 30 │ import type {
62
+ 31 │ - ····CellEdit,
63
+ 32 31 │ SpreadsheetColumn,
64
+ 33 32 │ SpreadsheetColumnGroup,
65
+
66
+
67
+ src/components/SpreadsheetCell.tsx:55:5 lint/correctness/noUnusedFunctionParameters ━━━━━━━━━━━━━━━━
68
+
69
+ ! This parameter is unused.
70
+
71
+ 53 │ onMouseDown,
72
+ 54 │ onMouseEnter,
73
+ > 55 │ onChange,
74
+ │ ^^^^^^^^
75
+ 56 │ onConfirm,
76
+ 57 │ onCancel,
77
+
78
+ i Unused parameters might be the result of an incomplete refactoring.
79
+
80
+
81
+ src/components/SpreadsheetFilterDropdown.tsx:188:9 lint/a11y/noStaticElementInteractions ━━━━━━━━━━━
82
+
83
+ ! Static Elements should not be interactive.
84
+
85
+ 187 │ return (
86
+ > 188 │ <div
87
+ │ ^^^^
88
+ > 189 │ ref={dropdownRef}
89
+ ...
90
+ > 194 │ onClick={(e) => e.stopPropagation()}
91
+ > 195 │ >
92
+ │ ^
93
+ 196 │ <div className="px-3 py-2 border-b border-gray-200 bg-gray-50">
94
+ 197 │ <span className="text-xs font-medium text-gray-700">Filter: {column.label}</span>
95
+
96
+ i To add interactivity such as a mouse or key event listener to a static element, give the element an appropriate role value.
97
+
98
+
99
+ src/components/SpreadsheetFilterDropdown.tsx:188:9 lint/a11y/useKeyWithClickEvents ━━━━━━━━━━━━━━━━━
100
+
101
+ ! Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.
102
+
103
+ 187 │ return (
104
+ > 188 │ <div
105
+ │ ^^^^
106
+ > 189 │ ref={dropdownRef}
107
+ ...
108
+ > 194 │ onClick={(e) => e.stopPropagation()}
109
+ > 195 │ >
110
+ │ ^
111
+ 196 │ <div className="px-3 py-2 border-b border-gray-200 bg-gray-50">
112
+ 197 │ <span className="text-xs font-medium text-gray-700">Filter: {column.label}</span>
113
+
114
+ i Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
115
+
116
+
117
+ src/hooks/useSpreadsheetSelection.ts:602:37 lint/suspicious/noGlobalIsNan FIXABLE ━━━━━━━━━━━━━━━━
118
+
119
+ ! isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.
120
+
121
+ 600 │ if (column.type === 'number' && typeof cellValue === 'string') {
122
+ 601 │ const parsed = parseFloat(cellValue);
123
+ > 602 │ cellValue = isNaN(parsed) ? cellValue : parsed;
124
+ │ ^^^^^
125
+ 603 │ }
126
+ 604 │
127
+
128
+ i See the MDN documentation for more details.
129
+
130
+ i Unsafe fix: Use Number.isNaN instead.
131
+
132
+ 600 600 │ if (column.type === 'number' && typeof cellValue === 'string') {
133
+ 601 601 │ const parsed = parseFloat(cellValue);
134
+ 602 │ - ························cellValue·=·isNaN(parsed)·?·cellValue·:·parsed;
135
+ 602 │ + ························cellValue·=·Number.isNaN(parsed)·?·cellValue·:·parsed;
136
+ 603 603 │ }
137
+ 604 604 │
138
+
139
+
140
+ Checked 33 files in 75ms. No fixes applied.
141
+ Found 7 warnings.