termcast 1.3.45 → 1.3.47
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.
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +12 -3
- package/dist/build.js.map +1 -1
- package/dist/components/actions.d.ts +18 -0
- package/dist/components/actions.d.ts.map +1 -1
- package/dist/components/actions.js +70 -5
- package/dist/components/actions.js.map +1 -1
- package/dist/components/detail.d.ts.map +1 -1
- package/dist/components/detail.js +16 -12
- package/dist/components/detail.js.map +1 -1
- package/dist/components/dropdown.d.ts.map +1 -1
- package/dist/components/dropdown.js +40 -11
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/form/dropdown.d.ts.map +1 -1
- package/dist/components/form/dropdown.js +26 -10
- package/dist/components/form/dropdown.js.map +1 -1
- package/dist/components/list.d.ts +11 -1
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +103 -25
- package/dist/components/list.js.map +1 -1
- package/dist/components/metadata.d.ts +15 -4
- package/dist/components/metadata.d.ts.map +1 -1
- package/dist/components/metadata.js +60 -20
- package/dist/components/metadata.js.map +1 -1
- package/dist/components/spinner.d.ts +6 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +12 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/examples/action-shortcut.d.ts +2 -0
- package/dist/examples/action-shortcut.d.ts.map +1 -0
- package/dist/examples/action-shortcut.js +20 -0
- package/dist/examples/action-shortcut.js.map +1 -0
- package/dist/examples/detail-metadata-showcase.d.ts +11 -0
- package/dist/examples/detail-metadata-showcase.d.ts.map +1 -0
- package/dist/examples/detail-metadata-showcase.js +40 -0
- package/dist/examples/detail-metadata-showcase.js.map +1 -0
- package/dist/examples/internal/scrollbox-with-descendants.js +19 -8
- package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
- package/dist/examples/list-detail-metadata.js +4 -2
- package/dist/examples/list-detail-metadata.js.map +1 -1
- package/dist/examples/list-spacing-default.d.ts +5 -0
- package/dist/examples/list-spacing-default.d.ts.map +1 -0
- package/dist/examples/list-spacing-default.js +10 -0
- package/dist/examples/list-spacing-default.js.map +1 -0
- package/dist/examples/list-spacing-mode.d.ts +10 -0
- package/dist/examples/list-spacing-mode.d.ts.map +1 -0
- package/dist/examples/list-spacing-mode.js +26 -0
- package/dist/examples/list-spacing-mode.js.map +1 -0
- package/dist/examples/list-spacing-relaxed.d.ts +5 -0
- package/dist/examples/list-spacing-relaxed.d.ts.map +1 -0
- package/dist/examples/list-spacing-relaxed.js +10 -0
- package/dist/examples/list-spacing-relaxed.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +9 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +2 -0
- package/dist/state.js.map +1 -1
- package/package.json +8 -8
- package/src/build.tsx +12 -3
- package/src/components/actions.tsx +77 -5
- package/src/components/detail.tsx +17 -12
- package/src/components/dropdown.tsx +49 -11
- package/src/components/form/dropdown.tsx +32 -10
- package/src/components/list.tsx +190 -30
- package/src/components/metadata.tsx +96 -44
- package/src/components/spinner.tsx +25 -0
- package/src/examples/action-shortcut.tsx +53 -0
- package/src/examples/action-shortcut.vitest.tsx +178 -0
- package/src/examples/actions-context.vitest.tsx +4 -4
- package/src/examples/detail-metadata-showcase.tsx +149 -0
- package/src/examples/detail-metadata-showcase.vitest.tsx +563 -0
- package/src/examples/form-dropdown.vitest.tsx +11 -11
- package/src/examples/form-tagpicker.vitest.tsx +4 -4
- package/src/examples/github.vitest.tsx +16 -9
- package/src/examples/internal/scrollbox-with-descendants.tsx +27 -8
- package/src/examples/list-detail-metadata.tsx +29 -1
- package/src/examples/list-detail-metadata.vitest.tsx +131 -16
- package/src/examples/list-loading-empty-view.vitest.tsx +5 -5
- package/src/examples/list-scrollbox.vitest.tsx +5 -5
- package/src/examples/list-spacing-default.tsx +38 -0
- package/src/examples/list-spacing-mode.tsx +137 -0
- package/src/examples/list-spacing-mode.vitest.tsx +158 -0
- package/src/examples/list-spacing-relaxed.tsx +38 -0
- package/src/examples/list-with-detail.vitest.tsx +52 -17
- package/src/examples/list-with-sections.vitest.tsx +72 -28
- package/src/examples/simple-file-picker.vitest.tsx +1 -1
- package/src/examples/simple-grid.vitest.tsx +42 -35
- package/src/examples/simple-navigation.vitest.tsx +15 -15
- package/src/extensions/dev.vitest.tsx +9 -3
- package/src/index.tsx +2 -0
- package/src/state.tsx +13 -0
|
@@ -84,18 +84,29 @@ const DropdownContent = ({ field, fieldState, ...props }) => {
|
|
|
84
84
|
elementRef: elementRef.current,
|
|
85
85
|
});
|
|
86
86
|
const [selectedTitles, setSelectedTitles] = useState([]);
|
|
87
|
-
const
|
|
87
|
+
const scrollToItemIfNeeded = ({ item, direction, }) => {
|
|
88
88
|
const scrollBox = scrollBoxRef.current;
|
|
89
89
|
const itemElementRef = item.props?.elementRef;
|
|
90
90
|
if (!scrollBox || !itemElementRef)
|
|
91
91
|
return;
|
|
92
92
|
const contentY = scrollBox.content?.y || 0;
|
|
93
|
+
const scrollTop = scrollBox.scrollTop || 0;
|
|
93
94
|
const viewportHeight = scrollBox.viewport?.height || 5;
|
|
94
|
-
// Calculate item position relative to content
|
|
95
95
|
const itemTop = itemElementRef.y - contentY;
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
96
|
+
const itemHeight = itemElementRef.height || 1;
|
|
97
|
+
const itemBottom = itemTop + itemHeight;
|
|
98
|
+
const viewportTop = scrollTop;
|
|
99
|
+
const viewportBottom = scrollTop + viewportHeight;
|
|
100
|
+
if (direction === 1) {
|
|
101
|
+
if (itemBottom > viewportBottom) {
|
|
102
|
+
scrollBox.scrollTo(Math.max(0, itemTop));
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (itemTop < viewportTop) {
|
|
107
|
+
const targetScrollTop = itemBottom - viewportHeight;
|
|
108
|
+
scrollBox.scrollTo(Math.max(0, targetScrollTop));
|
|
109
|
+
}
|
|
99
110
|
};
|
|
100
111
|
// Helper to get value for a descendantId - use committedMap for stability
|
|
101
112
|
const getValueForDescendantId = (descendantId) => {
|
|
@@ -144,23 +155,27 @@ const DropdownContent = ({ field, fieldState, ...props }) => {
|
|
|
144
155
|
const itemCount = items.length;
|
|
145
156
|
if (itemCount > 0) {
|
|
146
157
|
if (evt.name === 'down') {
|
|
147
|
-
|
|
158
|
+
if (focusedIndex >= itemCount - 1)
|
|
159
|
+
return;
|
|
160
|
+
const nextIndex = focusedIndex + 1;
|
|
148
161
|
const nextItem = items[nextIndex];
|
|
149
162
|
if (nextItem) {
|
|
150
163
|
flushSync(() => {
|
|
151
164
|
setFocusedIndex(nextIndex);
|
|
152
165
|
});
|
|
153
|
-
|
|
166
|
+
scrollToItemIfNeeded({ item: nextItem, direction: 1 });
|
|
154
167
|
}
|
|
155
168
|
}
|
|
156
169
|
else if (evt.name === 'up') {
|
|
157
|
-
|
|
170
|
+
if (focusedIndex <= 0)
|
|
171
|
+
return;
|
|
172
|
+
const nextIndex = focusedIndex - 1;
|
|
158
173
|
const nextItem = items[nextIndex];
|
|
159
174
|
if (nextItem) {
|
|
160
175
|
flushSync(() => {
|
|
161
176
|
setFocusedIndex(nextIndex);
|
|
162
177
|
});
|
|
163
|
-
|
|
178
|
+
scrollToItemIfNeeded({ item: nextItem, direction: -1 });
|
|
164
179
|
}
|
|
165
180
|
}
|
|
166
181
|
else if ((evt.name === 'return' || evt.name === 'space') &&
|
|
@@ -195,10 +210,11 @@ const DropdownContent = ({ field, fieldState, ...props }) => {
|
|
|
195
210
|
return item.props?.title?.toLowerCase().includes(searchText);
|
|
196
211
|
});
|
|
197
212
|
if (matchingItem) {
|
|
213
|
+
const direction = matchingItem.index >= focusedIndex ? 1 : -1;
|
|
198
214
|
flushSync(() => {
|
|
199
215
|
setFocusedIndex(matchingItem.index);
|
|
200
216
|
});
|
|
201
|
-
|
|
217
|
+
scrollToItemIfNeeded({ item: matchingItem, direction });
|
|
202
218
|
}
|
|
203
219
|
typeAheadTimeoutRef.current = setTimeout(() => {
|
|
204
220
|
typeAheadTextRef.current = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/form/dropdown.tsx"],"names":[],"mappings":";AAAA,OAAc,EACZ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAM,EACN,eAAe,GAChB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EACL,cAAc,EACd,UAAU,GAGX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAyClE,MAAM,EACJ,mBAAmB,EAAE,+BAA+B,EACpD,cAAc,EAAE,0BAA0B,EAC1C,aAAa,EAAE,yBAAyB,GACzC,GAAG,iBAAiB,EAA8B,CAAA;AAkBnD,MAAM,cAAc,GAAG,aAAa,CAAsB;IACxD,cAAc,EAAE,SAAS;CAC1B,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,aAAa,CAA2B;IAClE,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,kBAAkB,EAAE,EAAS;IAC7B,KAAK,EAAE,EAAuB;IAC9B,KAAK,EAAE,EAAmB;IAC1B,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAChC,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAC/C,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAA;IAErD,yBAAyB;IACzB,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,cAAc,CAAC,cAAc;QACtC,UAAU,EAAE,UAAU,CAAC,OAAO;KAC/B,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,YAAY,CAAA;IAE3D,sDAAsD;IACtD,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAEtC,IACE,OAAO,CAAC,KAAK,CAAC,oBAAoB;YAClC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAClC,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClD,CAAC;aAAM,IACL,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB;YACnC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EACvC,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAA;QAC5C,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,CACL,cAAK,GAAG,EAAE,UAAU,YAClB,gBACE,EAAE,EACA,OAAO,CAAC,SAAS,IAAI,SAAS;gBAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,OAAO,CAAC,SAAS;oBACjB,CAAC,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,CAAC,KAAK,CAAC,SAAS,EAEvB,WAAW,EAAE,GAAG,EAAE;gBAChB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAC/C,CAAC,aAEA,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC5C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAG,KAAK,CAAC,KAAK,IAChC,IAfkB,KAAK,CAAC,KAAK,CAgBhC,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,aAAa,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAErD,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC;QACL,cAAc,EAAE,KAAK,CAAC,KAAK;KAC5B,CAAC,EACF,CAAC,KAAK,CAAC,KAAK,CAAC,CACd,CAAA;IAED,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,mBAAmB,YACjD,eAAK,aAAa,EAAC,QAAQ,aACxB,KAAK,CAAC,KAAK,IAAI,CACd,gBAAM,EAAE,EAAE,KAAK,CAAC,SAAS,mBAAK,KAAK,CAAC,KAAK,IAAQ,CAClD,EACA,KAAK,CAAC,QAAQ,IACX,GACkB,CAC3B,CAAA;AACH,CAAC,CAAA;AAQD,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,EACL,UAAU,EACV,GAAG,KAAK,EACa,EAAE,EAAE;IACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,kBAAkB,GAAG,0BAA0B,EAAE,CAAA;IACvD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,YAAY,CAAA;IACtD,MAAM,SAAS,GAAG,YAAY,KAAK,KAAK,CAAC,EAAE,CAAA;IAC3C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,UAAU,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IACnC,MAAM,mBAAmB,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAA;IAE9E,uDAAuD;IACvD,sBAAsB,CAAC;QACrB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC,OAAO;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAA;IAElE,MAAM,YAAY,GAAG,CAAC,IAA4C,EAAE,EAAE;QACpE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAA;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAA;QAC7C,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc;YAAE,OAAM;QAEzC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAA;QAEtD,8CAA8C;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAA;QAE3C,4DAA4D;QAC5D,MAAM,eAAe,GAAG,OAAO,GAAG,cAAc,GAAG,CAAC,CAAA;QACpD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;IAClD,CAAC,CAAA;IAED,0EAA0E;IAC1E,MAAM,uBAAuB,GAAG,CAC9B,YAAoB,EACA,EAAE;QACtB,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;QAC1D,OAAO,IAAI,EAAE,KAAK,EAAE,KAAK,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAA;QACnD,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAA;QAEzC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACxE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAE1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9B,8BAA8B;gBAC9B,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;YAC9D,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzB,yBAAyB;gBACzB,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YAC/C,CAAC;YAED,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACrB,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,0CAA0C;IAC1C,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;YAAE,OAAM;QAEpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC;aACzD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;QAE9B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;gBACjC,IAAI,QAAQ,EAAE,CAAC;oBACb,SAAS,CAAC,GAAG,EAAE;wBACb,eAAe,CAAC,SAAS,CAAC,CAAA;oBAC5B,CAAC,CAAC,CAAA;oBACF,YAAY,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;gBAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;gBACjC,IAAI,QAAQ,EAAE,CAAC;oBACb,SAAS,CAAC,GAAG,EAAE;wBACb,eAAe,CAAC,SAAS,CAAC,CAAA;oBAC5B,CAAC,CAAC,CAAA;oBACF,YAAY,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;iBAAM,IACL,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;gBAC/C,CAAC,GAAG,CAAC,IAAI;gBACT,CAAC,GAAG,CAAC,IAAI,EACT,CAAC;gBACD,gGAAgG;gBAChG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;gBAC/D,MAAM,aAAa,GAAG,OAAO;qBAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;qBACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAE1C,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClD,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IACE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,CAAC,GAAG,CAAC,IAAI;YACT,CAAC,GAAG,CAAC,IAAI;YACT,CAAC,GAAG,CAAC,MAAM,EACX,CAAC;YACD,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAC3C,CAAC;YAED,gBAAgB,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAA;YAE3C,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAChE,CAAC,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;gBAC9D,CAAC,CAAC,CAAA;YAEJ,IAAI,YAAY,EAAE,CAAC;gBACjB,SAAS,CAAC,GAAG,EAAE;oBACb,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;gBACF,YAAY,CAAC,YAAY,CAAC,CAAA;YAC5B,CAAC;YAED,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5C,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAA;YAC/B,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,oFAAoF;IACpF,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;YAE/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7D,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBAC/B,CAAC;oBACH,CAAC;yBAAM,IACL,CAAC,KAAK,CAAC,oBAAoB;wBAC3B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAC/B,CAAC;wBACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;4BACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,yBAAyB;IAEhC,uBAAuB;IACvB,MAAM,YAAY,GAA6B;QAC7C,YAAY;QACZ,kBAAkB;QAClB,SAAS;QACT,YAAY;QACZ,KAAK;QACL,KAAK;QACL,YAAY;KACb,CAAA;IAED,OAAO,CACL,KAAC,+BAA+B,IAAC,KAAK,EAAE,kBAAkB,YACxD,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC/C,cAAK,GAAG,EAAE,UAAU,EAAE,aAAa,EAAC,QAAQ,YAC1C,MAAC,cAAc,IAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,aACpD,KAAC,cAAc,IAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,YACrE,cACE,WAAW,EAAE,GAAG,EAAE;oCAChB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gCAC3B,CAAC,YAED,KAAC,WAAW,IACV,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,SAAS,EAC9C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAE5C,KAAK,CAAC,KAAK,IAAI,EAAE,GACN,GACV,GACS,EACjB,eACE,EAAE,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAC5D,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,GAAG,EAAE;gCAChB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;4BAC3B,CAAC,YAEA,cAAc,CAAC,MAAM,GAAG,CAAC;gCACxB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gCAC3B,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,GAC/B,EACN,KAAK,CAAC,QAAQ,IAAI,CACjB,8BACE,cAAK,MAAM,EAAE,CAAC,GAAI,EAClB,cAAK,UAAU,EAAE,CAAC,CAAC,YACjB,oBACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,KAAK,EAAE;4CACL,WAAW,EAAE;gDACX,UAAU,EAAE,CAAC;6CACd;4CACD,eAAe,EAAE;gDACf,UAAU,EAAE,CAAC;6CACd;4CACD,cAAc,EAAE;gDACd,UAAU,EAAE,CAAC;gDACb,SAAS,EAAE,CAAC;6CACb;4CACD,gBAAgB,EAAE;gDAChB,OAAO,EAAE,KAAK;6CACf;yCACF,YAEA,KAAK,CAAC,QAAQ,GACL,GACR,EACN,cAAK,MAAM,EAAE,CAAC,GAAI,IACjB,CACJ,EACA,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CACpC,eAAM,EAAE,EAAE,KAAK,CAAC,KAAK,YAClB,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,KAAK,GACpC,CACR,EACA,KAAK,CAAC,IAAI,IAAI,CACb,eAAM,EAAE,EAAE,KAAK,CAAC,SAAS,YAAG,KAAK,CAAC,IAAI,GAAQ,CAC/C,IACc,GACb,GACuB,GACC,CACnC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAoB,EAAO,EAAE;IACtD,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,YAAY,KAAK,KAAK,CAAC,EAAE,CAAA;IAE3C,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,KAAK,CAAC,EAAE,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EACV,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,KAAK;YACX,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAExC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;YAChC,OAAO,CACL,KAAC,eAAe,IACd,KAAK,EAAE,KAAY,EACnB,UAAU,EAAE,UAAU,KAClB,KAAK,GACT,CACmB,CAAA;QACzB,CAAC,GACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;IACvD,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,eAAe;CACzB,CAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/form/dropdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -111,6 +111,7 @@ export interface SectionProps extends CommonProps {
|
|
|
111
111
|
title?: string;
|
|
112
112
|
subtitle?: string;
|
|
113
113
|
}
|
|
114
|
+
export type ListSpacingMode = 'default' | 'relaxed';
|
|
114
115
|
export interface ListProps extends ActionsInterface, NavigationChildInterface, SearchBarInterface, PaginationInterface, CommonProps {
|
|
115
116
|
actions?: ReactNode;
|
|
116
117
|
children?: ReactNode;
|
|
@@ -121,6 +122,12 @@ export interface ListProps extends ActionsInterface, NavigationChildInterface, S
|
|
|
121
122
|
searchBarPlaceholder?: string;
|
|
122
123
|
selectedItemId?: string;
|
|
123
124
|
isShowingDetail?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Controls the vertical spacing of list items.
|
|
127
|
+
* - 'default': Single-line items with title and subtitle on same row
|
|
128
|
+
* - 'relaxed': Two-line items with title on first row, subtitle below, and padding between items
|
|
129
|
+
*/
|
|
130
|
+
spacingMode?: ListSpacingMode;
|
|
124
131
|
}
|
|
125
132
|
interface ListType {
|
|
126
133
|
(props: ListProps): any;
|
|
@@ -141,7 +148,10 @@ interface ListItemDetailMetadataType {
|
|
|
141
148
|
(props: MetadataProps): any;
|
|
142
149
|
Label: (props: {
|
|
143
150
|
title: string;
|
|
144
|
-
text?: string
|
|
151
|
+
text?: string | {
|
|
152
|
+
value: string;
|
|
153
|
+
color?: Color.ColorLike | null;
|
|
154
|
+
};
|
|
145
155
|
icon?: Image.ImageLike;
|
|
146
156
|
}) => any;
|
|
147
157
|
Separator: () => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"AAOA,OAAc,EACV,YAAY,EACZ,SAAS,EASZ,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/list.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useKeyboard, flushSync, useRenderer } from '@opentui/react';
|
|
|
4
4
|
import React, { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { LoadingBar } from 'termcast/src/components/loading-bar';
|
|
6
6
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
7
|
-
import {
|
|
7
|
+
import { Spinner } from 'termcast/src/components/spinner';
|
|
8
8
|
import { Footer } from 'termcast/src/components/footer';
|
|
9
9
|
import { createDescendants } from 'termcast/src/descendants';
|
|
10
10
|
import { useStore } from 'termcast/src/state';
|
|
@@ -15,6 +15,7 @@ import { Offscreen } from 'termcast/src/internal/offscreen';
|
|
|
15
15
|
import { ScrollBox } from 'termcast/src/internal/scrollbox';
|
|
16
16
|
import { Color, resolveColor } from 'termcast/src/colors';
|
|
17
17
|
import { getIconEmoji, getIconValue } from 'termcast/src/components/icon';
|
|
18
|
+
import { matchesShortcut } from 'termcast/src/components/actions';
|
|
18
19
|
import { useTheme, markdownSyntaxStyle } from 'termcast/src/theme';
|
|
19
20
|
import { createMarkdownRenderNode } from 'termcast/src/markdown-utils';
|
|
20
21
|
export { Color };
|
|
@@ -207,6 +208,9 @@ function DropdownFooter() {
|
|
|
207
208
|
// Render a single list item row
|
|
208
209
|
function ListItemRow(props) {
|
|
209
210
|
const theme = useTheme();
|
|
211
|
+
const listCtx = useContext(ListContext);
|
|
212
|
+
const spacingMode = listCtx?.spacingMode ?? 'default';
|
|
213
|
+
const isRelaxed = spacingMode === 'relaxed';
|
|
210
214
|
const { title, subtitle, icon, iconColor, accessories, active, ref } = props;
|
|
211
215
|
const [isHovered, setIsHovered] = useState(false);
|
|
212
216
|
const accessoryElements = [];
|
|
@@ -244,6 +248,30 @@ function ListItemRow(props) {
|
|
|
244
248
|
}
|
|
245
249
|
});
|
|
246
250
|
}
|
|
251
|
+
// Calculate subtitle indentation to align with title start
|
|
252
|
+
// Selection marker = 1 cell
|
|
253
|
+
// Icon emoji (1 cell) + space after icon (1 cell) = 2 cells if icon present
|
|
254
|
+
// So total indent: marker (1) + icon+space (2) = 3 if icon, else just marker (1)
|
|
255
|
+
const subtitleIndent = icon ? 3 : 1;
|
|
256
|
+
// Relaxed mode: two-line layout with title on first line, subtitle below
|
|
257
|
+
if (isRelaxed) {
|
|
258
|
+
return (_jsxs("box", { ref: ref, style: {
|
|
259
|
+
flexDirection: 'column',
|
|
260
|
+
backgroundColor: active
|
|
261
|
+
? theme.primary
|
|
262
|
+
: isHovered
|
|
263
|
+
? theme.backgroundPanel
|
|
264
|
+
: undefined,
|
|
265
|
+
paddingLeft: 0,
|
|
266
|
+
paddingRight: 1,
|
|
267
|
+
marginBottom: 1,
|
|
268
|
+
}, border: false, onMouseMove: () => {
|
|
269
|
+
setIsHovered(true);
|
|
270
|
+
}, onMouseOut: () => {
|
|
271
|
+
setIsHovered(false);
|
|
272
|
+
}, onMouseDown: props.onMouseDown, children: [_jsxs("box", { style: { flexDirection: 'row', justifyContent: 'space-between', gap: 1 }, children: [_jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1, overflow: 'hidden' }, children: [_jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: active ? '›' : ' ' }), icon && _jsxs("text", { flexShrink: 0, fg: active ? theme.background : iconColor || theme.text, selectable: false, wrapMode: "none", children: [getIconEmoji(icon), " "] }), _jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, attributes: TextAttributes.BOLD, selectable: false, wrapMode: "none", children: title })] }), accessoryElements.length > 0 && (_jsx("box", { style: { flexDirection: 'row', flexShrink: 0 }, children: accessoryElements.map((elem, i) => (_jsxs("box", { style: { flexDirection: 'row' }, children: [i > 0 && _jsx("text", { flexShrink: 0, children: " " }), elem] }, i))) }))] }), subtitle && (_jsx("box", { style: { paddingLeft: subtitleIndent }, children: _jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, selectable: false, wrapMode: "none", children: subtitle }) }))] }));
|
|
273
|
+
}
|
|
274
|
+
// Default mode: single-line layout
|
|
247
275
|
return (_jsxs("box", { ref: ref, style: {
|
|
248
276
|
flexDirection: 'row',
|
|
249
277
|
justifyContent: 'space-between',
|
|
@@ -262,7 +290,7 @@ function ListItemRow(props) {
|
|
|
262
290
|
}, onMouseDown: props.onMouseDown, children: [_jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1, overflow: 'hidden', gap: 1 }, children: [_jsxs("box", { style: { flexDirection: 'row', flexShrink: 0 }, children: [_jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: active ? '›' : ' ' }), icon && _jsxs("text", { flexShrink: 0, fg: active ? theme.background : iconColor || theme.text, selectable: false, wrapMode: "none", children: [getIconEmoji(icon), " "] }), _jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: title })] }), subtitle && (_jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.textMuted, selectable: false, wrapMode: "none", children: subtitle }))] }), accessoryElements.length > 0 && (_jsx("box", { style: { flexDirection: 'row', flexShrink: 0 }, children: accessoryElements.map((elem, i) => (_jsxs("box", { style: { flexDirection: 'row' }, children: [i > 0 && _jsx("text", { flexShrink: 0, children: " " }), elem] }, i))) }))] }));
|
|
263
291
|
}
|
|
264
292
|
export const List = (props) => {
|
|
265
|
-
const { children, onSelectionChange, filtering, searchText: controlledSearchText, onSearchTextChange, searchBarPlaceholder = 'Search...', isLoading, navigationTitle, isShowingDetail, selectedItemId, searchBarAccessory, ...otherProps } = props;
|
|
293
|
+
const { children, onSelectionChange, filtering, searchText: controlledSearchText, onSearchTextChange, searchBarPlaceholder = 'Search...', isLoading, navigationTitle, isShowingDetail, selectedItemId, searchBarAccessory, spacingMode = 'default', ...otherProps } = props;
|
|
266
294
|
const theme = useTheme();
|
|
267
295
|
const currentStackSelectedListIndex = useStore((state) => {
|
|
268
296
|
const stack = state.navigationStack;
|
|
@@ -379,6 +407,22 @@ export const List = (props) => {
|
|
|
379
407
|
setSelectedIndexWithPersistence(items[0].index);
|
|
380
408
|
}
|
|
381
409
|
});
|
|
410
|
+
// Ensure selection points to a visible item.
|
|
411
|
+
// If current selectedIndex is not among visible items, reset to first.
|
|
412
|
+
// This handles: item removal, visibility changes, async data updates.
|
|
413
|
+
// Runs after search-text reset so they don't conflict.
|
|
414
|
+
useLayoutEffect(() => {
|
|
415
|
+
const items = Object.values(descendantsContext.map.current)
|
|
416
|
+
.filter((item) => item.index !== -1 && item.props?.visible !== false)
|
|
417
|
+
.sort((a, b) => a.index - b.index);
|
|
418
|
+
if (items.length === 0)
|
|
419
|
+
return;
|
|
420
|
+
// Check if current selection exists in visible items
|
|
421
|
+
const selectionIsValid = items.some((item) => item.index === selectedIndex);
|
|
422
|
+
if (!selectionIsValid && items[0]) {
|
|
423
|
+
setSelectedIndexWithPersistence(items[0].index);
|
|
424
|
+
}
|
|
425
|
+
});
|
|
382
426
|
const listContextValue = useMemo(() => ({
|
|
383
427
|
isDropdownOpen,
|
|
384
428
|
setIsDropdownOpen,
|
|
@@ -392,7 +436,8 @@ export const List = (props) => {
|
|
|
392
436
|
customEmptyViewRef,
|
|
393
437
|
isLoading,
|
|
394
438
|
hasDropdown: !!searchBarAccessory,
|
|
395
|
-
|
|
439
|
+
spacingMode,
|
|
440
|
+
}), [isDropdownOpen, selectedIndex, searchText, isFilteringEnabled, isShowingDetail, isLoading, searchBarAccessory, spacingMode]);
|
|
396
441
|
// Clear detail when detail view is hidden (before paint to avoid flash)
|
|
397
442
|
useLayoutEffect(() => {
|
|
398
443
|
if (!isShowingDetail) {
|
|
@@ -423,18 +468,34 @@ export const List = (props) => {
|
|
|
423
468
|
onSelectionChange(selectedId);
|
|
424
469
|
}
|
|
425
470
|
}, [selectedIndex]);
|
|
426
|
-
const
|
|
471
|
+
const scrollToItemIfNeeded = ({ item, direction, }) => {
|
|
427
472
|
const scrollBox = scrollBoxRef.current;
|
|
428
473
|
const elementRef = item.props?.elementRef;
|
|
429
474
|
if (!scrollBox || !elementRef)
|
|
430
475
|
return;
|
|
431
476
|
const contentY = scrollBox.content?.y || 0;
|
|
477
|
+
const scrollTop = scrollBox.scrollTop || 0;
|
|
432
478
|
const viewportHeight = scrollBox.viewport?.height || 10;
|
|
433
|
-
//
|
|
479
|
+
// Position of the item within the scroll content.
|
|
480
|
+
// Using `content.y` makes this stable even as the content moves while scrolling.
|
|
434
481
|
const itemTop = elementRef.y - contentY;
|
|
435
|
-
|
|
436
|
-
const
|
|
437
|
-
|
|
482
|
+
const itemHeight = elementRef.height || 1;
|
|
483
|
+
const itemBottom = itemTop + itemHeight;
|
|
484
|
+
const viewportTop = scrollTop;
|
|
485
|
+
const viewportBottom = scrollTop + viewportHeight;
|
|
486
|
+
// Traditional pagination behavior:
|
|
487
|
+
// - Going down: only scroll when the next item would go off-screen, and align it to the top.
|
|
488
|
+
// - Going up: only scroll when the next item would go off-screen, and align it to the bottom.
|
|
489
|
+
if (direction === 1) {
|
|
490
|
+
if (itemBottom > viewportBottom) {
|
|
491
|
+
scrollBox.scrollTo(Math.max(0, itemTop));
|
|
492
|
+
}
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
if (itemTop < viewportTop) {
|
|
496
|
+
const targetScrollTop = itemBottom - viewportHeight;
|
|
497
|
+
scrollBox.scrollTo(Math.max(0, targetScrollTop));
|
|
498
|
+
}
|
|
438
499
|
};
|
|
439
500
|
// Track whether onLoadMore has been called and we're waiting for new items.
|
|
440
501
|
// Reset when item count changes (new items arrived) so we can trigger again.
|
|
@@ -479,17 +540,18 @@ export const List = (props) => {
|
|
|
479
540
|
// Stay on the last item instead of wrapping
|
|
480
541
|
return;
|
|
481
542
|
}
|
|
543
|
+
// Don't wrap around - stop at boundaries
|
|
482
544
|
if (nextVisibleIndex < 0)
|
|
483
|
-
|
|
545
|
+
return;
|
|
484
546
|
if (nextVisibleIndex >= items.length)
|
|
485
|
-
|
|
547
|
+
return;
|
|
486
548
|
const nextItem = items[nextVisibleIndex];
|
|
487
549
|
if (nextItem) {
|
|
488
550
|
flushSync(() => {
|
|
489
551
|
setSelectedIndex(nextItem.index);
|
|
490
552
|
});
|
|
491
553
|
persistSelectedIndexInCurrentNavigationItem(nextItem.index);
|
|
492
|
-
|
|
554
|
+
scrollToItemIfNeeded({ item: nextItem, direction });
|
|
493
555
|
// Check if we're approaching the end and should trigger pagination
|
|
494
556
|
triggerPaginationIfNeeded(nextVisibleIndex, items.length);
|
|
495
557
|
}
|
|
@@ -504,6 +566,15 @@ export const List = (props) => {
|
|
|
504
566
|
openDropdown();
|
|
505
567
|
return;
|
|
506
568
|
}
|
|
569
|
+
// Check if key matches any registered action shortcut
|
|
570
|
+
// This enables direct execution of actions via their shortcuts (e.g., ctrl+r for Refresh)
|
|
571
|
+
const registeredShortcuts = useStore.getState().registeredActionShortcuts;
|
|
572
|
+
for (const { shortcut, execute } of registeredShortcuts) {
|
|
573
|
+
if (matchesShortcut(evt, shortcut)) {
|
|
574
|
+
execute();
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
507
578
|
// Get current item by selectedIndex (which is a descendant index)
|
|
508
579
|
const items = Object.values(descendantsContext.map.current)
|
|
509
580
|
.filter((item) => item.index !== -1)
|
|
@@ -559,13 +630,13 @@ export const List = (props) => {
|
|
|
559
630
|
flexGrow: 1,
|
|
560
631
|
flexDirection: 'row',
|
|
561
632
|
flexShrink: 1,
|
|
562
|
-
}, children: [_jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "> " }), _jsx("textarea", { ref: setInputRef, height: 1, flexGrow: 1, wrapMode: 'none', keyBindings: [
|
|
633
|
+
}, children: [isLoading ? _jsx(Spinner, { color: theme.textMuted }) : _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: ">" }), _jsx("text", { flexShrink: 0, children: " " }), _jsx("textarea", { ref: setInputRef, height: 1, flexGrow: 1, wrapMode: 'none', keyBindings: [
|
|
563
634
|
{ name: 'return', action: 'submit' },
|
|
564
635
|
{ name: 'linefeed', action: 'submit' },
|
|
565
636
|
], placeholder: searchBarPlaceholder, focused: inFocus && !isDropdownOpen, initialValue: searchText, onContentChange: () => {
|
|
566
637
|
const value = inputRef.current?.plainText || '';
|
|
567
638
|
handleSearchChange(value);
|
|
568
|
-
}, focusedBackgroundColor: theme.backgroundPanel, cursorColor: theme.primary, focusedTextColor: theme.text })] }), searchBarAccessory] }) }), _jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1 }, children: [_jsxs("box", { style: { width: isShowingDetail ? '50%' : '100%', flexGrow: 1, flexShrink: 1, flexDirection: 'column' }, children: [_jsx(ScrollBox, { ref: scrollBoxRef, focused: false, flexGrow: 1, flexShrink: 1, minHeight: 6, style: {
|
|
639
|
+
}, focusedBackgroundColor: theme.backgroundPanel, cursorColor: theme.primary, focusedTextColor: isLoading ? theme.textMuted : theme.text })] }), searchBarAccessory] }) }), _jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1 }, children: [_jsxs("box", { style: { width: isShowingDetail ? '50%' : '100%', flexGrow: 1, flexShrink: 1, flexDirection: 'column' }, children: [_jsx(ScrollBox, { ref: scrollBoxRef, focused: false, flexGrow: 1, flexShrink: 1, minHeight: 6, style: {
|
|
569
640
|
rootOptions: {
|
|
570
641
|
backgroundColor: undefined,
|
|
571
642
|
},
|
|
@@ -611,9 +682,6 @@ function DefaultEmptyView() {
|
|
|
611
682
|
const theme = useTheme();
|
|
612
683
|
const listContext = useContext(ListContext);
|
|
613
684
|
const isLoading = listContext?.isLoading ?? false;
|
|
614
|
-
const tick = useAnimationTick(isLoading ? TICK_DIVISORS.SPINNER : 0);
|
|
615
|
-
const spinnerFrames = ['◰', '◳', '◲', '◱'];
|
|
616
|
-
const spinner = spinnerFrames[tick % spinnerFrames.length] || '◰';
|
|
617
685
|
return (_jsx(ShowOnNoItems, { children: _jsx("box", { style: {
|
|
618
686
|
flexDirection: 'column',
|
|
619
687
|
alignItems: 'center',
|
|
@@ -622,7 +690,7 @@ function DefaultEmptyView() {
|
|
|
622
690
|
paddingBottom: 2,
|
|
623
691
|
paddingLeft: 2,
|
|
624
692
|
paddingRight: 2,
|
|
625
|
-
}, children: isLoading ? (_jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx(
|
|
693
|
+
}, children: isLoading ? (_jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx(Spinner, { color: theme.textMuted }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, wrapMode: 'none', children: "loading..." })] })) : (_jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "No items found" })) }) }));
|
|
626
694
|
}
|
|
627
695
|
// Component to render list items and sections
|
|
628
696
|
function ListItemsRenderer(props) {
|
|
@@ -744,15 +812,25 @@ const ListItemDetail = (props) => {
|
|
|
744
812
|
},
|
|
745
813
|
}, children: _jsxs("box", { gap: 1, style: { flexDirection: 'column' }, children: [markdown && (_jsx(ListMarkdownContent, { markdown: markdown })), metadata && (_jsx("box", { style: { paddingTop: 1 }, children: metadata }))] }) })] }));
|
|
746
814
|
};
|
|
747
|
-
import { Metadata, MetadataContext } from 'termcast/src/components/metadata';
|
|
748
|
-
// List.Item.Detail.Metadata config: smaller padding for compact list detail panel
|
|
749
|
-
const listDetailMetadataConfig = {
|
|
750
|
-
maxValueLen: 20,
|
|
751
|
-
titleMinWidth: 12,
|
|
752
|
-
paddingBottom: 0.5,
|
|
753
|
-
separatorWidth: 17,
|
|
754
|
-
};
|
|
815
|
+
import { Metadata, MetadataContext, extractTitleLengths, defaultConfig } from 'termcast/src/components/metadata';
|
|
755
816
|
const ListItemDetailMetadata = (props) => {
|
|
817
|
+
// Compute title column width from longest title among children
|
|
818
|
+
const computedTitleWidth = React.useMemo(() => {
|
|
819
|
+
const lengths = extractTitleLengths(props.children);
|
|
820
|
+
if (lengths.length === 0) {
|
|
821
|
+
return defaultConfig.titleMinWidth;
|
|
822
|
+
}
|
|
823
|
+
// +2 for ": " (colon + space)
|
|
824
|
+
const maxTitleLen = Math.max(...lengths);
|
|
825
|
+
return maxTitleLen + 2;
|
|
826
|
+
}, [props.children]);
|
|
827
|
+
// List.Item.Detail.Metadata config for compact list detail panel
|
|
828
|
+
const listDetailMetadataConfig = {
|
|
829
|
+
maxValueLen: 20,
|
|
830
|
+
titleMinWidth: computedTitleWidth,
|
|
831
|
+
paddingBottom: 1, // Use integer to avoid inconsistent rounding
|
|
832
|
+
separatorWidth: 200, // Will be clipped by overflow: hidden
|
|
833
|
+
};
|
|
756
834
|
return (_jsx(MetadataContext.Provider, { value: listDetailMetadataConfig, children: _jsx("box", { style: { flexDirection: 'column' }, children: props.children }) }));
|
|
757
835
|
};
|
|
758
836
|
ListItemDetail.Metadata = ListItemDetailMetadata;
|