@vobs/ui 0.2.0 → 1.0.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 (208) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +60 -0
  3. package/package.json +52 -102
  4. package/src/activity-rail.ts +125 -0
  5. package/src/alert.ts +65 -0
  6. package/src/assets/icons/alert-circle.svg +1 -0
  7. package/src/assets/icons/alert-triangle.svg +1 -0
  8. package/src/assets/icons/alert.d27e24.svg +1 -0
  9. package/src/assets/icons/alert.svg +1 -0
  10. package/src/assets/icons/apple.svg +1 -0
  11. package/src/assets/icons/arrow-down.svg +1 -0
  12. package/src/assets/icons/arrow-expand.svg +1 -0
  13. package/src/assets/icons/arrow-left.svg +1 -0
  14. package/src/assets/icons/arrow-minimize.svg +1 -0
  15. package/src/assets/icons/arrow-right-to-line.svg +1 -0
  16. package/src/assets/icons/arrow-right.svg +1 -0
  17. package/src/assets/icons/arrow-up-right.svg +1 -0
  18. package/src/assets/icons/arrow-up.0c0c0d.svg +1 -0
  19. package/src/assets/icons/arrow-up.svg +1 -0
  20. package/src/assets/icons/at.svg +1 -0
  21. package/src/assets/icons/atom.0c0c0d.svg +1 -0
  22. package/src/assets/icons/atom.svg +1 -0
  23. package/src/assets/icons/bar.svg +1 -0
  24. package/src/assets/icons/bell.svg +1 -0
  25. package/src/assets/icons/box.svg +1 -0
  26. package/src/assets/icons/bug.svg +1 -0
  27. package/src/assets/icons/calendar.svg +1 -0
  28. package/src/assets/icons/check-circle.33c192.svg +1 -0
  29. package/src/assets/icons/check-circle.svg +1 -0
  30. package/src/assets/icons/check.d1d3db.svg +1 -0
  31. package/src/assets/icons/check.svg +1 -0
  32. package/src/assets/icons/chevron-down.svg +1 -0
  33. package/src/assets/icons/chevron-right.svg +1 -0
  34. package/src/assets/icons/chevron-up.svg +1 -0
  35. package/src/assets/icons/circle.svg +1 -0
  36. package/src/assets/icons/clock.svg +1 -0
  37. package/src/assets/icons/cmd.svg +1 -0
  38. package/src/assets/icons/code.svg +1 -0
  39. package/src/assets/icons/columns.svg +1 -0
  40. package/src/assets/icons/copy.svg +1 -0
  41. package/src/assets/icons/cpu.svg +1 -0
  42. package/src/assets/icons/dashboard.0c0c0d.svg +1 -0
  43. package/src/assets/icons/dashboard.svg +1 -0
  44. package/src/assets/icons/dollar.svg +1 -0
  45. package/src/assets/icons/download.svg +1 -0
  46. package/src/assets/icons/edit.svg +1 -0
  47. package/src/assets/icons/extensions.svg +1 -0
  48. package/src/assets/icons/external.svg +1 -0
  49. package/src/assets/icons/eye.svg +1 -0
  50. package/src/assets/icons/file-text.svg +1 -0
  51. package/src/assets/icons/file.svg +1 -0
  52. package/src/assets/icons/files.svg +1 -0
  53. package/src/assets/icons/filter.svg +1 -0
  54. package/src/assets/icons/folder.svg +1 -0
  55. package/src/assets/icons/gear.svg +1 -0
  56. package/src/assets/icons/git.svg +1 -0
  57. package/src/assets/icons/github.svg +1 -0
  58. package/src/assets/icons/globe.svg +1 -0
  59. package/src/assets/icons/grid-2x2.svg +1 -0
  60. package/src/assets/icons/hash.svg +1 -0
  61. package/src/assets/icons/heart.svg +1 -0
  62. package/src/assets/icons/help.svg +1 -0
  63. package/src/assets/icons/home.svg +1 -0
  64. package/src/assets/icons/image.svg +1 -0
  65. package/src/assets/icons/info-circle.svg +1 -0
  66. package/src/assets/icons/info-square.svg +1 -0
  67. package/src/assets/icons/info.387bff.svg +1 -0
  68. package/src/assets/icons/info.svg +1 -0
  69. package/src/assets/icons/key.svg +1 -0
  70. package/src/assets/icons/layers.svg +1 -0
  71. package/src/assets/icons/layout.svg +1 -0
  72. package/src/assets/icons/link.svg +1 -0
  73. package/src/assets/icons/list.svg +1 -0
  74. package/src/assets/icons/lock.svg +1 -0
  75. package/src/assets/icons/log-out.svg +1 -0
  76. package/src/assets/icons/logo.svg +1 -0
  77. package/src/assets/icons/mail.svg +1 -0
  78. package/src/assets/icons/menu.svg +1 -0
  79. package/src/assets/icons/message-circle.svg +1 -0
  80. package/src/assets/icons/message-plus.svg +1 -0
  81. package/src/assets/icons/message-square.svg +1 -0
  82. package/src/assets/icons/mic.svg +1 -0
  83. package/src/assets/icons/minus.svg +1 -0
  84. package/src/assets/icons/moon.svg +1 -0
  85. package/src/assets/icons/more-h.svg +1 -0
  86. package/src/assets/icons/mouse.svg +1 -0
  87. package/src/assets/icons/palette.svg +1 -0
  88. package/src/assets/icons/panel-bottom.svg +1 -0
  89. package/src/assets/icons/pause.svg +1 -0
  90. package/src/assets/icons/play.svg +1 -0
  91. package/src/assets/icons/plug.svg +1 -0
  92. package/src/assets/icons/plus.0c0c0d.svg +1 -0
  93. package/src/assets/icons/plus.svg +1 -0
  94. package/src/assets/icons/refresh.svg +1 -0
  95. package/src/assets/icons/ruler.svg +1 -0
  96. package/src/assets/icons/scroll-text.svg +1 -0
  97. package/src/assets/icons/search-menu.svg +1 -0
  98. package/src/assets/icons/search.svg +1 -0
  99. package/src/assets/icons/send.0c0c0d.svg +1 -0
  100. package/src/assets/icons/send.svg +1 -0
  101. package/src/assets/icons/settings.0c0c0d.svg +1 -0
  102. package/src/assets/icons/settings.svg +1 -0
  103. package/src/assets/icons/shield.svg +1 -0
  104. package/src/assets/icons/sidebar-left.svg +1 -0
  105. package/src/assets/icons/sidebar-right.svg +1 -0
  106. package/src/assets/icons/sliders.svg +1 -0
  107. package/src/assets/icons/sparkles.32f08c.svg +1 -0
  108. package/src/assets/icons/sparkles.svg +1 -0
  109. package/src/assets/icons/square.svg +1 -0
  110. package/src/assets/icons/star.svg +1 -0
  111. package/src/assets/icons/sun.svg +1 -0
  112. package/src/assets/icons/terminal.svg +1 -0
  113. package/src/assets/icons/trash.svg +1 -0
  114. package/src/assets/icons/trending-down.svg +1 -0
  115. package/src/assets/icons/trending-up.svg +1 -0
  116. package/src/assets/icons/type.svg +1 -0
  117. package/src/assets/icons/upload.svg +1 -0
  118. package/src/assets/icons/user-circle.svg +1 -0
  119. package/src/assets/icons/user.svg +1 -0
  120. package/src/assets/icons/users.svg +1 -0
  121. package/src/assets/icons/wrench.svg +1 -0
  122. package/src/assets/icons/x-circle.svg +1 -0
  123. package/src/assets/icons/x.svg +1 -0
  124. package/src/assets/icons/zap.0c0c0d.svg +1 -0
  125. package/src/assets/icons/zap.svg +1 -0
  126. package/src/avatar.ts +64 -0
  127. package/src/button.ts +88 -0
  128. package/src/card.ts +59 -0
  129. package/src/chat-composer.ts +156 -0
  130. package/src/dialog.ts +127 -0
  131. package/src/drawer.ts +131 -0
  132. package/src/editor-tabs.ts +184 -0
  133. package/src/file-tree.ts +214 -0
  134. package/src/forms.ts +270 -0
  135. package/src/icon.ts +117 -0
  136. package/src/icons.js +165 -0
  137. package/src/index.test.ts +213 -0
  138. package/src/index.ts +94 -0
  139. package/src/kbd.ts +72 -0
  140. package/src/menu.ts +119 -0
  141. package/src/nav-list.ts +157 -0
  142. package/src/overlay.test.ts +66 -0
  143. package/src/overlay.ts +205 -0
  144. package/src/page-header.ts +97 -0
  145. package/src/pagination.ts +163 -0
  146. package/src/second-batch.test.ts +205 -0
  147. package/src/stat-card.ts +92 -0
  148. package/src/status-bar.ts +108 -0
  149. package/src/styles/base.css +240 -0
  150. package/src/styles/components.css +1234 -0
  151. package/{dist → src/styles}/styles.css +2 -0
  152. package/src/styles/toast.css +57 -0
  153. package/src/styles/tokens.css +438 -0
  154. package/src/styles/vui.css +47 -0
  155. package/src/table.ts +191 -0
  156. package/src/tabs.ts +100 -0
  157. package/src/tag.ts +33 -0
  158. package/src/third-batch.test.ts +137 -0
  159. package/src/toast.test.ts +55 -0
  160. package/src/toast.ts +79 -0
  161. package/src/types.ts +25 -0
  162. package/src/utils.ts +221 -0
  163. package/src/workbench-titlebar.ts +137 -0
  164. package/dist/app-shell-dom.d.ts +0 -24
  165. package/dist/app-shell-dom.js +0 -573
  166. package/dist/app-shell.d.ts +0 -199
  167. package/dist/app-shell.js +0 -370
  168. package/dist/base.css +0 -52
  169. package/dist/calendar-picker.d.ts +0 -45
  170. package/dist/calendar-picker.js +0 -217
  171. package/dist/calendar.d.ts +0 -95
  172. package/dist/calendar.js +0 -194
  173. package/dist/complex-inputs.d.ts +0 -300
  174. package/dist/complex-inputs.js +0 -862
  175. package/dist/components.css +0 -4568
  176. package/dist/data-display.d.ts +0 -1063
  177. package/dist/data-display.js +0 -2298
  178. package/dist/feedback.d.ts +0 -88
  179. package/dist/feedback.js +0 -281
  180. package/dist/forms.d.ts +0 -378
  181. package/dist/forms.js +0 -1015
  182. package/dist/icons-config.d.ts +0 -25
  183. package/dist/icons-config.js +0 -14
  184. package/dist/icons.d.ts +0 -41
  185. package/dist/icons.js +0 -185
  186. package/dist/index.d.ts +0 -27
  187. package/dist/index.js +0 -34
  188. package/dist/locale/en-US.d.ts +0 -31
  189. package/dist/locale/en-US.js +0 -20
  190. package/dist/locale/zh-CN.d.ts +0 -31
  191. package/dist/locale/zh-CN.js +0 -20
  192. package/dist/navigation.d.ts +0 -609
  193. package/dist/navigation.js +0 -1707
  194. package/dist/overlay.d.ts +0 -304
  195. package/dist/overlay.js +0 -969
  196. package/dist/primitives.d.ts +0 -268
  197. package/dist/primitives.js +0 -764
  198. package/dist/theme-data.d.ts +0 -363
  199. package/dist/theme-data.js +0 -374
  200. package/dist/theme.d.ts +0 -79
  201. package/dist/theme.js +0 -262
  202. package/dist/tokens.css +0 -449
  203. package/dist/tree.d.ts +0 -144
  204. package/dist/tree.js +0 -469
  205. package/dist/virtual-list.d.ts +0 -190
  206. package/dist/virtual-list.js +0 -521
  207. package/dist/workbench.d.ts +0 -136
  208. package/dist/workbench.js +0 -156
@@ -1,190 +0,0 @@
1
- /** @license MIT
2
- * Copyright (c) 2026 vobsjs
3
- * @vobs/ui
4
- */
5
- import { type UiAttributes, type UiDomPlan } from './primitives.js';
6
- export type VirtualListKey = number | string;
7
- export type VirtualListLayout = 'grid' | 'horizontal';
8
- export type VirtualListAnchorMode = 'append' | 'prepend' | 'preserve';
9
- export interface FixedVirtualListOptions<T> {
10
- readonly items: readonly T[];
11
- readonly itemHeight: number;
12
- readonly viewportHeight: number;
13
- readonly overscan?: number;
14
- readonly scrollOffset?: number;
15
- readonly ssrFallbackCount?: number;
16
- readonly getKey?: (item: T, index: number) => VirtualListKey;
17
- }
18
- export interface FixedVirtualListDomOptions<T> extends FixedVirtualListOptions<T> {
19
- readonly id?: string;
20
- readonly ariaLabel?: string;
21
- readonly className?: string;
22
- readonly attrs?: UiAttributes;
23
- }
24
- export interface FixedVirtualListControllerOptions<T> extends Omit<FixedVirtualListDomOptions<T>, 'scrollOffset' | 'viewportHeight'> {
25
- readonly getScrollElement: () => HTMLElement | null;
26
- readonly initialOffset?: number;
27
- readonly viewportHeight?: number;
28
- readonly onChange?: (state: FixedVirtualListState<T>, sync: boolean) => void;
29
- }
30
- export interface DynamicVirtualListOptions<T> {
31
- readonly items: readonly T[];
32
- readonly estimatedItemHeight: number;
33
- readonly viewportHeight: number;
34
- readonly overscan?: number;
35
- readonly scrollOffset?: number;
36
- readonly ssrFallbackCount?: number;
37
- readonly getKey?: (item: T, index: number) => VirtualListKey;
38
- readonly getItemHeight?: (item: T, index: number) => number | undefined;
39
- }
40
- export interface DynamicVirtualListDomOptions<T> extends DynamicVirtualListOptions<T> {
41
- readonly id?: string;
42
- readonly ariaLabel?: string;
43
- readonly className?: string;
44
- readonly attrs?: UiAttributes;
45
- }
46
- export interface VirtualListLayoutOptions<T> {
47
- readonly items: readonly T[];
48
- readonly layout: VirtualListLayout;
49
- readonly itemWidth: number;
50
- readonly itemHeight: number;
51
- readonly viewportWidth: number;
52
- readonly viewportHeight: number;
53
- readonly columnCount?: number;
54
- readonly overscan?: number;
55
- readonly scrollLeft?: number;
56
- readonly scrollTop?: number;
57
- readonly ssrFallbackCount?: number;
58
- readonly getKey?: (item: T, index: number) => VirtualListKey;
59
- }
60
- export interface VirtualListLayoutDomOptions<T> extends VirtualListLayoutOptions<T> {
61
- readonly id?: string;
62
- readonly ariaLabel?: string;
63
- readonly className?: string;
64
- readonly attrs?: UiAttributes;
65
- }
66
- export interface VirtualListResizeMeasurementContractOptions<T> extends Omit<DynamicVirtualListDomOptions<T>, 'getItemHeight'> {
67
- readonly getMeasuredItemHeight?: (item: T, index: number) => number | undefined;
68
- readonly measuringIds?: readonly VirtualListKey[];
69
- }
70
- export interface VirtualListAnchorStateContractOptions<T> {
71
- readonly previousItems: readonly T[];
72
- readonly nextItems: readonly T[];
73
- readonly anchorKey: VirtualListKey;
74
- readonly itemHeight: number;
75
- readonly anchorOffset?: number;
76
- readonly viewportHeight?: number;
77
- readonly mode?: VirtualListAnchorMode;
78
- readonly stickToEnd?: boolean;
79
- readonly getKey?: (item: T, index: number) => VirtualListKey;
80
- }
81
- export interface FixedVirtualListItem<T> {
82
- readonly key: VirtualListKey;
83
- readonly index: number;
84
- readonly item: T;
85
- readonly start: number;
86
- readonly size: number;
87
- readonly end: number;
88
- readonly plan: UiDomPlan<'div'>;
89
- }
90
- export interface DynamicVirtualListItem<T> {
91
- readonly key: VirtualListKey;
92
- readonly index: number;
93
- readonly item: T;
94
- readonly start: number;
95
- readonly size: number;
96
- readonly measured: boolean;
97
- readonly end: number;
98
- readonly plan: UiDomPlan<'div'>;
99
- }
100
- export interface VirtualListLayoutItem<T> {
101
- readonly key: VirtualListKey;
102
- readonly index: number;
103
- readonly item: T;
104
- readonly rowIndex: number;
105
- readonly columnIndex: number;
106
- readonly x: number;
107
- readonly y: number;
108
- readonly width: number;
109
- readonly height: number;
110
- readonly plan: UiDomPlan<'div'>;
111
- }
112
- export interface FixedVirtualListState<T> {
113
- readonly totalSize: number;
114
- readonly scrollOffset: number;
115
- readonly visibleStartIndex: number;
116
- readonly visibleEndIndex: number;
117
- readonly items: readonly FixedVirtualListItem<T>[];
118
- }
119
- export interface DynamicVirtualListState<T> {
120
- readonly totalSize: number;
121
- readonly scrollOffset: number;
122
- readonly visibleStartIndex: number;
123
- readonly visibleEndIndex: number;
124
- readonly measuredCount: number;
125
- readonly items: readonly DynamicVirtualListItem<T>[];
126
- }
127
- export interface VirtualListLayoutState<T> {
128
- readonly layout: VirtualListLayout;
129
- readonly rowCount: number;
130
- readonly columnCount: number;
131
- readonly totalWidth: number;
132
- readonly totalHeight: number;
133
- readonly scrollLeft: number;
134
- readonly scrollTop: number;
135
- readonly visibleRowStart: number;
136
- readonly visibleRowEnd: number;
137
- readonly visibleColumnStart: number;
138
- readonly visibleColumnEnd: number;
139
- readonly visibleStartIndex: number;
140
- readonly visibleEndIndex: number;
141
- readonly items: readonly VirtualListLayoutItem<T>[];
142
- }
143
- export interface FixedVirtualListPlans<T> extends FixedVirtualListState<T> {
144
- readonly root: UiDomPlan<'div'>;
145
- readonly spacer: UiDomPlan<'div'>;
146
- }
147
- export interface DynamicVirtualListPlans<T> extends DynamicVirtualListState<T> {
148
- readonly root: UiDomPlan<'div'>;
149
- readonly spacer: UiDomPlan<'div'>;
150
- }
151
- export interface VirtualListLayoutPlans<T> extends VirtualListLayoutState<T> {
152
- readonly root: UiDomPlan<'div'>;
153
- readonly spacer: UiDomPlan<'div'>;
154
- }
155
- export interface VirtualListResizeMeasurementContract<T> {
156
- readonly plans: DynamicVirtualListPlans<T>;
157
- readonly attrs: UiAttributes;
158
- readonly measuredKeys: readonly VirtualListKey[];
159
- readonly measuringKeys: readonly VirtualListKey[];
160
- readonly estimatedKeys: readonly VirtualListKey[];
161
- }
162
- export interface VirtualListAnchorStateContract {
163
- readonly scrollOffset: number;
164
- readonly previousAnchorIndex: number;
165
- readonly nextAnchorIndex: number;
166
- readonly insertedBeforeCount: number;
167
- readonly attrs: UiAttributes;
168
- }
169
- export interface FixedVirtualListScrollState {
170
- readonly scrollOffset: number;
171
- readonly visibleStartIndex: number;
172
- readonly visibleEndIndex: number;
173
- }
174
- export interface FixedVirtualListController<T> {
175
- read(): FixedVirtualListPlans<T>;
176
- update(options: Partial<Omit<FixedVirtualListControllerOptions<T>, 'getScrollElement'>>): void;
177
- scrollToOffset(offset: number): void;
178
- scrollToIndex(index: number): void;
179
- takeScrollState(): FixedVirtualListScrollState;
180
- destroy(): void;
181
- }
182
- export declare function createFixedVirtualListPlans<T>(options: FixedVirtualListDomOptions<T>): FixedVirtualListPlans<T>;
183
- export declare function createDynamicVirtualListPlans<T>(options: DynamicVirtualListDomOptions<T>): DynamicVirtualListPlans<T>;
184
- export declare function createVirtualListLayoutPlans<T>(options: VirtualListLayoutDomOptions<T>): VirtualListLayoutPlans<T>;
185
- export declare function calculateVirtualListLayoutState<T>(options: VirtualListLayoutOptions<T>): VirtualListLayoutState<T>;
186
- export declare function createVirtualListResizeMeasurementContract<T>(options: VirtualListResizeMeasurementContractOptions<T>): VirtualListResizeMeasurementContract<T>;
187
- export declare function createVirtualListAnchorStateContract<T>(options: VirtualListAnchorStateContractOptions<T>): VirtualListAnchorStateContract;
188
- export declare function calculateFixedVirtualListState<T>(options: FixedVirtualListOptions<T>): FixedVirtualListState<T>;
189
- export declare function calculateDynamicVirtualListState<T>(options: DynamicVirtualListOptions<T>): DynamicVirtualListState<T>;
190
- export declare function createFixedVirtualListController<T>(options: FixedVirtualListControllerOptions<T>): FixedVirtualListController<T>;