@xyhp915/slack-base-ui 0.0.4 → 0.0.5
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/README.md +58 -0
- package/libs/Toast.d.ts +16 -0
- package/libs/Toast.d.ts.map +1 -1
- package/libs/index.d.ts +1 -1
- package/libs/index.d.ts.map +1 -1
- package/libs/index.js +2943 -2868
- package/package.json +1 -1
- package/src/components/Toast.tsx +136 -26
- package/src/components/index.ts +1 -1
- package/src/index.css +22 -0
- package/src/pages/ComponentShowcase.tsx +111 -51
package/README.md
CHANGED
|
@@ -178,6 +178,15 @@ npm run preview
|
|
|
178
178
|
- 适用于上下文操作场景
|
|
179
179
|
- [详细文档](./docs/POPOVER_MENU_CONTEXTMENU.md#context-menu-组件)
|
|
180
180
|
|
|
181
|
+
### Toast - 通知条
|
|
182
|
+
- 基于 Base UI 的 `Toast` 组件
|
|
183
|
+
- 五种语义类型:`default`、`info`、`success`、`warning`、`error`
|
|
184
|
+
- **六个显示位置**:`top-left`、`top-center`、`top-right`、`bottom-left`、`bottom-center`、`bottom-right`
|
|
185
|
+
- 支持可选操作按钮(action)和自定义超时时长
|
|
186
|
+
- 通过 `<ToastProvider position="…">` 设置默认位置
|
|
187
|
+
- 运行时通过 `useToast()` 返回的 `setPosition()` 动态切换位置
|
|
188
|
+
- 使用 `useToast()` 命令式调用,无需管理状态
|
|
189
|
+
|
|
181
190
|
## 🎨 主题系统
|
|
182
191
|
|
|
183
192
|
项目使用 CSS 变量实现主题切换,所有颜色都定义在 `src/index.css` 中:
|
|
@@ -293,6 +302,55 @@ function ConfirmDialog() {
|
|
|
293
302
|
}
|
|
294
303
|
```
|
|
295
304
|
|
|
305
|
+
### Toast 通知
|
|
306
|
+
|
|
307
|
+
```tsx
|
|
308
|
+
import { useToast } from './components/Toast';
|
|
309
|
+
|
|
310
|
+
function NotifyButton() {
|
|
311
|
+
const { toast } = useToast();
|
|
312
|
+
|
|
313
|
+
return (
|
|
314
|
+
<Button onClick={() =>
|
|
315
|
+
toast({
|
|
316
|
+
type: 'success',
|
|
317
|
+
title: 'Message sent!',
|
|
318
|
+
description: 'Your message was delivered to #general.',
|
|
319
|
+
})
|
|
320
|
+
}>
|
|
321
|
+
Send Message
|
|
322
|
+
</Button>
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Toast 自定义位置
|
|
328
|
+
|
|
329
|
+
```tsx
|
|
330
|
+
// 1. 在 Provider 上设置默认位置(main.tsx)
|
|
331
|
+
<ToastProvider position="top-right">
|
|
332
|
+
<App />
|
|
333
|
+
</ToastProvider>
|
|
334
|
+
|
|
335
|
+
// 2. 在任意组件中运行时切换位置
|
|
336
|
+
function ToastPositionDemo() {
|
|
337
|
+
const { toast, setPosition } = useToast();
|
|
338
|
+
|
|
339
|
+
return (
|
|
340
|
+
<button onClick={() => {
|
|
341
|
+
setPosition('top-center');
|
|
342
|
+
toast({ type: 'info', title: '已切换到顶部居中' });
|
|
343
|
+
}}>
|
|
344
|
+
切换到 top-center
|
|
345
|
+
</button>
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
> **支持的 6 个位置:**
|
|
351
|
+
> `top-left` · `top-center` · `top-right`
|
|
352
|
+
> `bottom-left` · `bottom-center` · `bottom-right`(默认)
|
|
353
|
+
|
|
296
354
|
## 🚀 命令式 API
|
|
297
355
|
|
|
298
356
|
Dialog 和 Popover 均支持不依赖声明式 JSX、直接用代码调用的**命令式 API**,使用方式与 `useToast()` 完全一致。
|
package/libs/Toast.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export type ToastType = 'default' | 'info' | 'success' | 'warning' | 'error';
|
|
3
|
+
export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
3
4
|
export interface ToastProviderProps {
|
|
4
5
|
children: React.ReactNode;
|
|
5
6
|
timeout?: number;
|
|
6
7
|
limit?: number;
|
|
8
|
+
/** Where toasts appear on screen. Defaults to `'bottom-right'`. */
|
|
9
|
+
position?: ToastPosition;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
9
12
|
* Wrap your app (or part of it) with `ToastProvider` to enable toasts.
|
|
10
13
|
* Then use the `useToast()` hook inside to add toasts.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Positon can be set at provider level:
|
|
17
|
+
* <ToastProvider position="top-center">...</ToastProvider>
|
|
18
|
+
*
|
|
19
|
+
* // Or changed at runtime via the hook:
|
|
20
|
+
* const { setPosition } = useToast()
|
|
21
|
+
* setPosition('top-right')
|
|
11
22
|
*/
|
|
12
23
|
export declare const ToastProvider: React.FC<ToastProviderProps>;
|
|
13
24
|
export interface ToastOptions {
|
|
@@ -23,11 +34,16 @@ export interface ToastOptions {
|
|
|
23
34
|
}
|
|
24
35
|
/**
|
|
25
36
|
* Hook to imperatively add, close and update toasts.
|
|
37
|
+
* Also exposes `position` / `setPosition` for runtime position changes.
|
|
26
38
|
*
|
|
27
39
|
* Must be used inside `<ToastProvider>`.
|
|
28
40
|
*/
|
|
29
41
|
export declare function useToast(): {
|
|
30
42
|
toast: (options: ToastOptions) => string;
|
|
31
43
|
dismiss: (toastId: string) => void;
|
|
44
|
+
/** Current toast position */
|
|
45
|
+
position: ToastPosition;
|
|
46
|
+
/** Dynamically change where toasts appear */
|
|
47
|
+
setPosition: (p: ToastPosition) => void;
|
|
32
48
|
};
|
|
33
49
|
//# sourceMappingURL=Toast.d.ts.map
|
package/libs/Toast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../src/components/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../src/components/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAA;AAOlE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAE5E,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAA;AAyBlB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgBtD,CAAA;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,IAAI,CAAA;KACpB,CAAA;CACF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ;qBAKH,YAAY;;IAW7B,6BAA6B;;IAE7B,6CAA6C;qBA/F9B,aAAa,KAAK,IAAI;EAkGxC"}
|
package/libs/index.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export type { TabsProps, TabListProps, TabProps, TabPanelProps } from './Tabs';
|
|
|
35
35
|
export { Progress } from './Progress';
|
|
36
36
|
export type { ProgressProps } from './Progress';
|
|
37
37
|
export { ToastProvider, useToast } from './Toast';
|
|
38
|
-
export type { ToastProviderProps, ToastOptions, ToastType } from './Toast';
|
|
38
|
+
export type { ToastProviderProps, ToastOptions, ToastType, ToastPosition } from './Toast';
|
|
39
39
|
export { Loading } from './Loading';
|
|
40
40
|
export type { LoadingProps, LoadingVariant, LoadingSize } from './Loading';
|
|
41
41
|
export { AutoComplete } from './AutoComplete';
|
package/libs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/components/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/components/index.ts"],"names":[],"mappings":"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"}
|