@gcsa/console-core 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 (85) hide show
  1. package/dist/gcsaChat.d.ts +6 -0
  2. package/dist/gcsaChat.d.ts.map +1 -0
  3. package/dist/gcsaChat.js +31 -0
  4. package/dist/gcsaClipboard.d.ts +2 -0
  5. package/dist/gcsaClipboard.d.ts.map +1 -0
  6. package/dist/gcsaClipboard.js +30 -0
  7. package/dist/gcsaCssLength.d.ts +3 -0
  8. package/dist/gcsaCssLength.d.ts.map +1 -0
  9. package/dist/gcsaCssLength.js +6 -0
  10. package/dist/gcsaDate.d.ts +15 -0
  11. package/dist/gcsaDate.d.ts.map +1 -0
  12. package/dist/gcsaDate.js +12 -0
  13. package/dist/gcsaDateTimeValue.d.ts +8 -0
  14. package/dist/gcsaDateTimeValue.d.ts.map +1 -0
  15. package/dist/gcsaDateTimeValue.js +16 -0
  16. package/dist/gcsaLocale.d.ts +109 -0
  17. package/dist/gcsaLocale.d.ts.map +1 -0
  18. package/dist/gcsaLocale.js +320 -0
  19. package/dist/gcsaMarkdown.d.ts +2 -0
  20. package/dist/gcsaMarkdown.d.ts.map +1 -0
  21. package/dist/gcsaMarkdown.js +19 -0
  22. package/dist/gcsaMenu.d.ts +21 -0
  23. package/dist/gcsaMenu.d.ts.map +1 -0
  24. package/dist/gcsaMenu.js +20 -0
  25. package/dist/gcsaMessage.d.ts +3 -0
  26. package/dist/gcsaMessage.d.ts.map +1 -0
  27. package/dist/gcsaMessage.js +1 -0
  28. package/dist/gcsaPagination.d.ts +13 -0
  29. package/dist/gcsaPagination.d.ts.map +1 -0
  30. package/dist/gcsaPagination.js +52 -0
  31. package/dist/gcsaPopupCollision.d.ts +22 -0
  32. package/dist/gcsaPopupCollision.d.ts.map +1 -0
  33. package/dist/gcsaPopupCollision.js +66 -0
  34. package/dist/gcsaPopupPositioning.d.ts +30 -0
  35. package/dist/gcsaPopupPositioning.d.ts.map +1 -0
  36. package/dist/gcsaPopupPositioning.js +18 -0
  37. package/dist/gcsaPopupStyles.d.ts +51 -0
  38. package/dist/gcsaPopupStyles.d.ts.map +1 -0
  39. package/dist/gcsaPopupStyles.js +115 -0
  40. package/dist/gcsaSize.d.ts +9 -0
  41. package/dist/gcsaSize.d.ts.map +1 -0
  42. package/dist/gcsaSize.js +13 -0
  43. package/dist/gcsaTableEvents.d.ts +27 -0
  44. package/dist/gcsaTableEvents.d.ts.map +1 -0
  45. package/dist/gcsaTableEvents.js +13 -0
  46. package/dist/gcsaTableLayout.d.ts +23 -0
  47. package/dist/gcsaTableLayout.d.ts.map +1 -0
  48. package/dist/gcsaTableLayout.js +36 -0
  49. package/dist/gcsaTableMigration.d.ts +34 -0
  50. package/dist/gcsaTableMigration.d.ts.map +1 -0
  51. package/dist/gcsaTableMigration.js +65 -0
  52. package/dist/gcsaTablePreferences.d.ts +16 -0
  53. package/dist/gcsaTablePreferences.d.ts.map +1 -0
  54. package/dist/gcsaTablePreferences.js +53 -0
  55. package/dist/gcsaTableRows.d.ts +8 -0
  56. package/dist/gcsaTableRows.d.ts.map +1 -0
  57. package/dist/gcsaTableRows.js +29 -0
  58. package/dist/gcsaTime.d.ts +23 -0
  59. package/dist/gcsaTime.d.ts.map +1 -0
  60. package/dist/gcsaTime.js +63 -0
  61. package/dist/index.d.ts +163 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +30 -0
  64. package/package.json +37 -0
  65. package/src/gcsaChat.ts +35 -0
  66. package/src/gcsaClipboard.ts +28 -0
  67. package/src/gcsaCssLength.ts +5 -0
  68. package/src/gcsaDate.ts +30 -0
  69. package/src/gcsaDateTimeValue.ts +18 -0
  70. package/src/gcsaLocale.ts +431 -0
  71. package/src/gcsaMarkdown.ts +19 -0
  72. package/src/gcsaMenu.ts +43 -0
  73. package/src/gcsaMessage.ts +3 -0
  74. package/src/gcsaPagination.ts +68 -0
  75. package/src/gcsaPopupCollision.ts +111 -0
  76. package/src/gcsaPopupPositioning.ts +57 -0
  77. package/src/gcsaPopupStyles.ts +137 -0
  78. package/src/gcsaSize.ts +29 -0
  79. package/src/gcsaTableEvents.ts +36 -0
  80. package/src/gcsaTableLayout.ts +69 -0
  81. package/src/gcsaTableMigration.ts +104 -0
  82. package/src/gcsaTablePreferences.ts +61 -0
  83. package/src/gcsaTableRows.ts +36 -0
  84. package/src/gcsaTime.ts +83 -0
  85. package/src/index.ts +237 -0
package/src/index.ts ADDED
@@ -0,0 +1,237 @@
1
+ import { z } from 'zod';
2
+
3
+ export type GcsaNavItem = {
4
+ key: string;
5
+ label: string;
6
+ href?: string;
7
+ /** @deprecated use iconKey */
8
+ icon?: string;
9
+ iconKey?: 'dashboard' | 'alert' | 'assets' | 'settings' | 'users' | 'chat';
10
+ };
11
+
12
+ export type GcsaTableColumnAlign = 'left' | 'center' | 'right';
13
+ /** 固定列方向;`true` 兼容 Element Plus,等价于左固定。 */
14
+ export type GcsaTableColumnFixed = 'left' | 'right' | true;
15
+
16
+ export type GcsaTableColumnFilter = {
17
+ type: 'text' | 'select';
18
+ placeholder?: string;
19
+ options?: GcsaSelectOption[];
20
+ };
21
+
22
+ export type GcsaTableColumn<T> = {
23
+ /** 列唯一键,对应插槽 `cell-{id}` / `header-{id}` */
24
+ id: string;
25
+ header: string;
26
+ accessorKey?: keyof T & string;
27
+ /** 是否可排序 */
28
+ sortable?: boolean;
29
+ /** 自定义客户端排序比较函数,返回值语义与 Array.sort 一致 */
30
+ sortCompare?: (a: T, b: T) => number;
31
+ width?: string;
32
+ /** 列最小宽度,避免窄容器下文字被挤成竖排 */
33
+ minWidth?: string;
34
+ /** 是否允许用户拖拽调整列宽 */
35
+ resizable?: boolean;
36
+ /** 内容过长时显示省略号,并通过 title 保留完整内容 */
37
+ showOverflowTooltip?: boolean;
38
+ align?: GcsaTableColumnAlign;
39
+ fixed?: GcsaTableColumnFixed;
40
+ hidden?: boolean;
41
+ filter?: GcsaTableColumnFilter;
42
+ /** 插槽后缀,默认与 id 相同 */
43
+ slot?: string;
44
+ /** 无插槽时的简易单元格渲染 */
45
+ cell?: (row: T) => unknown;
46
+ /** 默认单元格格式化;不改变排序和原始值,只改变展示内容 */
47
+ formatter?: (value: unknown, row: T, index: number) => unknown;
48
+ /** Grouped child columns; compatible with nested el-table-column definitions. */
49
+ columns?: GcsaTableColumn<T>[];
50
+ };
51
+
52
+ export { normalizeGcsaTableColumns } from './gcsaTableMigration';
53
+ export type { GcsaLegacyTableColumn, GcsaTableMigration, GcsaTableMigrationOptions } from './gcsaTableMigration';
54
+
55
+ export type GcsaChatMessageRole = 'user' | 'assistant' | 'system';
56
+
57
+ export type GcsaChatMessage = {
58
+ id: string;
59
+ role: GcsaChatMessageRole;
60
+ content: string;
61
+ status?: 'streaming' | 'done' | 'error';
62
+ /** 消息时间,用于底部 meta 展示 */
63
+ createdAt?: string | number | Date;
64
+ /** 强制纯文本,不渲染 Markdown */
65
+ plainText?: boolean;
66
+ /** 系统就绪 / 提示类消息样式 */
67
+ systemReady?: boolean;
68
+ /** 错误消息样式 */
69
+ error?: boolean;
70
+ };
71
+
72
+ export {
73
+ formatGcsaChatTime,
74
+ gcsaChatAvatarLabel,
75
+ shouldRenderGcsaChatMarkdown
76
+ } from './gcsaChat';
77
+ export type { GcsaChatMarkdownMode } from './gcsaChat';
78
+ export { renderGcsaMarkdown } from './gcsaMarkdown';
79
+ export type { GcsaMessageType } from './gcsaMessage';
80
+ export { GCSA_MESSAGE_DURATION_MS } from './gcsaMessage';
81
+ export { copyGcsaText } from './gcsaClipboard';
82
+ export { collectGcsaMenuBranchKeys, navItemsToMenuItems } from './gcsaMenu';
83
+ export type { GcsaMenuIconKey, GcsaMenuItem, GcsaMenuMode } from './gcsaMenu';
84
+
85
+ export const gcsaLoginSchema = z.object({
86
+ email: z.string().email('请输入有效邮箱'),
87
+ password: z.string().min(6, '至少 6 位密码')
88
+ });
89
+
90
+ export { formatGcsaDateParts, formatGcsaMonthParts, isGcsaDateString, isGcsaMonthString } from './gcsaDate';
91
+ export {
92
+ GCSA_TIME_PICKER_CELL_HEIGHT,
93
+ GCSA_TIME_STRING_PATTERN,
94
+ gcsaBuildTimeOptions,
95
+ gcsaCurrentTimeOption,
96
+ gcsaMinutesToTime,
97
+ gcsaNearestTimeOption,
98
+ gcsaNormalizeTimeStep,
99
+ gcsaResolveTimeDraft,
100
+ gcsaTimePickerHours,
101
+ gcsaTimePickerMinutes,
102
+ gcsaTimePickerScrollIndex,
103
+ gcsaTimePickerScrollTop,
104
+ gcsaTimeToMinutes,
105
+ isGcsaTimeString
106
+ } from './gcsaTime';
107
+ export type { GcsaTimePickerOptions, GcsaTimeString } from './gcsaTime';
108
+ export type {
109
+ GcsaDatePickerMode,
110
+ GcsaDateRangeValue,
111
+ GcsaDateString,
112
+ GcsaMonthRangeValue,
113
+ GcsaMonthString
114
+ } from './gcsaDate';
115
+ export {
116
+ GCSA_DEFAULT_LOCALE,
117
+ formatGcsaLocaleMessage,
118
+ getGcsaDatePickerMessages,
119
+ getGcsaLocaleMessages,
120
+ getGcsaStartOfWeek,
121
+ normalizeGcsaLocale
122
+ } from './gcsaLocale';
123
+ export type { GcsaConsoleLocale, GcsaConsoleLocaleMessages, GcsaDatePickerLocaleStrings } from './gcsaLocale';
124
+ export {
125
+ clearGcsaTablePreferences,
126
+ normalizeGcsaTablePreferences,
127
+ readGcsaTablePreferences,
128
+ writeGcsaTablePreferences
129
+ } from './gcsaTablePreferences';
130
+ export type { GcsaTablePreferenceStorage, GcsaTablePreferences, GcsaTableSortingPreference } from './gcsaTablePreferences';
131
+ export {
132
+ GCSA_TABLE_DEFAULT_COLUMN_MIN_WIDTH,
133
+ GCSA_TABLE_EXPAND_COLUMN_WIDTH,
134
+ GCSA_TABLE_MIN_WIDTH_FLOOR,
135
+ GCSA_TABLE_SELECTION_COLUMN_WIDTH,
136
+ getGcsaTableFixedOffset,
137
+ getGcsaTableMinWidth
138
+ } from './gcsaTableLayout';
139
+ export type { GcsaTableFixedOffsetOptions, GcsaTableLayoutColumn } from './gcsaTableLayout';
140
+ export { getGcsaTableSortChange, getGcsaTableSorting } from './gcsaTableEvents';
141
+ export type { GcsaTableColumnInfo, GcsaTableHeaderEvent, GcsaTableSortChange, GcsaTableSortOrder, GcsaTableSortingEntry } from './gcsaTableEvents';
142
+ export { getGcsaTableDefaultExpandedKeys, getGcsaTableRowId } from './gcsaTableRows';
143
+ export {
144
+ getGcsaPaginationItems,
145
+ parseGcsaPaginationLayout,
146
+ resolveGcsaPaginationLayout,
147
+ getGcsaPaginationAlignClass,
148
+ GCSA_PAGINATION_LAYOUT_PARTS
149
+ } from './gcsaPagination';
150
+ export type {
151
+ GcsaPaginationItem,
152
+ GcsaPaginationAlign,
153
+ GcsaPaginationLayoutPart
154
+ } from './gcsaPagination';
155
+
156
+ export const gcsaNotifySchema = z.object({
157
+ title: z.string().min(1, '标题不能为空'),
158
+ channel: z.enum(['email', 'webhook', 'sms']),
159
+ enabled: z.boolean()
160
+ });
161
+
162
+ export type GcsaNotifyValues = z.infer<typeof gcsaNotifySchema>;
163
+
164
+ export type GcsaButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'link';
165
+ export type GcsaButtonSize = 'sm' | 'md' | 'lg';
166
+ export type { GcsaComponentSize } from './gcsaSize';
167
+ import type { GcsaComponentSize } from './gcsaSize';
168
+ export type GcsaSelectSize = GcsaComponentSize;
169
+ export type GcsaInputNumberControls = 'both' | 'right' | 'none';
170
+ export type GcsaConsoleTheme = 'dark' | 'light';
171
+ export type GcsaDrawerPlacement = 'left' | 'right' | 'top' | 'bottom';
172
+
173
+ export type GcsaSelectOption = {
174
+ label: string;
175
+ value: string;
176
+ /** 分组标题;同组选项使用相同 group */
177
+ group?: string;
178
+ disabled?: boolean;
179
+ };
180
+
181
+ export type GcsaCascaderOption = {
182
+ label: string;
183
+ value: string;
184
+ disabled?: boolean;
185
+ children?: GcsaCascaderOption[];
186
+ };
187
+
188
+ export type GcsaTransferOption = {
189
+ label: string;
190
+ value: string;
191
+ disabled?: boolean;
192
+ };
193
+
194
+ export type GcsaStepStatus = 'wait' | 'process' | 'finish' | 'error';
195
+ export type GcsaStepItem = { key: string; title: string; description?: string; status?: GcsaStepStatus; disabled?: boolean };
196
+ export type GcsaTimelineItem = { key: string; label?: string; content: string; time?: string; tone?: 'primary' | 'success' | 'warning' | 'danger' };
197
+
198
+ export type GcsaRadioOption = {
199
+ label: string;
200
+ value: string;
201
+ disabled?: boolean;
202
+ };
203
+
204
+ export {
205
+ GCSA_DEFAULT_COMPONENT_SIZE,
206
+ gcsaControlSizeClass,
207
+ resolveGcsaButtonSize,
208
+ resolveGcsaComponentSize
209
+ } from './gcsaSize';
210
+ export {
211
+ createGcsaPopupPositioning,
212
+ type GcsaPopupPlacement,
213
+ type GcsaPopupPositioningOptions
214
+ } from './gcsaPopupPositioning';
215
+ export {
216
+ assertFloatingWithinViewport,
217
+ buildGcsaPopupMiddleware,
218
+ computeGcsaPopupPosition,
219
+ getFloatingBox,
220
+ type GcsaPopupRect,
221
+ type GcsaViewportRect
222
+ } from './gcsaPopupCollision';
223
+ export {
224
+ GCSA_POPUP_OVERFLOW_PADDING,
225
+ GCSA_POPUP_STYLE_CONTRACT,
226
+ GCSA_POPUP_VIEWPORT_CSS_INSET,
227
+ cssBlockIncludes,
228
+ extractCssRuleBlock,
229
+ validatePopupStyleContract,
230
+ type GcsaPopupStyleRule
231
+ } from './gcsaPopupStyles';
232
+ export { toCssLength } from './gcsaCssLength';
233
+ export {
234
+ gcsaJoinDateTime,
235
+ gcsaSplitDateTime,
236
+ type GcsaDateTimeString
237
+ } from './gcsaDateTimeValue';