@windrun-huaiin/base-ui 3.2.4 → 3.4.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 (81) hide show
  1. package/dist/components/client/index.d.mts +46 -0
  2. package/dist/components/client/index.d.ts +46 -0
  3. package/dist/components/client/index.js +1822 -0
  4. package/dist/components/client/index.js.map +1 -0
  5. package/dist/components/client/index.mjs +1866 -0
  6. package/dist/components/client/index.mjs.map +1 -0
  7. package/dist/components/index.d.mts +1 -44
  8. package/dist/components/index.d.ts +1 -44
  9. package/dist/components/index.js +4 -571
  10. package/dist/components/index.js.map +1 -1
  11. package/dist/components/index.mjs +3 -564
  12. package/dist/components/index.mjs.map +1 -1
  13. package/dist/index.d.mts +3 -39
  14. package/dist/index.d.ts +3 -39
  15. package/dist/index.js +189 -4581
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +191 -4354
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/lib/index.js +0 -1
  20. package/dist/lib/index.js.map +1 -1
  21. package/dist/lib/index.mjs +0 -1
  22. package/dist/lib/index.mjs.map +1 -1
  23. package/dist/ui/index.d.mts +37 -711
  24. package/dist/ui/index.d.ts +37 -711
  25. package/dist/ui/index.js +172 -4249
  26. package/dist/ui/index.js.map +1 -1
  27. package/dist/ui/index.mjs +171 -4025
  28. package/dist/ui/index.mjs.map +1 -1
  29. package/package.json +11 -37
  30. package/src/components/404-page.tsx +1 -1
  31. package/src/components/client/index.ts +15 -0
  32. package/src/components/global-icon.tsx +1 -1
  33. package/src/components/index.ts +15 -8
  34. package/src/index.ts +4 -1
  35. package/src/ui/index.ts +2 -48
  36. package/src/ui/accordion.tsx +0 -58
  37. package/src/ui/alert.tsx +0 -59
  38. package/src/ui/aspect-ratio.tsx +0 -7
  39. package/src/ui/avatar.tsx +0 -50
  40. package/src/ui/badge.tsx +0 -36
  41. package/src/ui/breadcrumb.tsx +0 -115
  42. package/src/ui/calendar.tsx +0 -66
  43. package/src/ui/card.tsx +0 -79
  44. package/src/ui/carousel.tsx +0 -262
  45. package/src/ui/chart.tsx +0 -365
  46. package/src/ui/checkbox.tsx +0 -30
  47. package/src/ui/collapsible.tsx +0 -11
  48. package/src/ui/command.tsx +0 -153
  49. package/src/ui/context-menu.tsx +0 -200
  50. package/src/ui/dialog.tsx +0 -122
  51. package/src/ui/drawer.tsx +0 -118
  52. package/src/ui/form.tsx +0 -178
  53. package/src/ui/hover-card.tsx +0 -29
  54. package/src/ui/input-otp.tsx +0 -71
  55. package/src/ui/input.tsx +0 -22
  56. package/src/ui/menubar.tsx +0 -236
  57. package/src/ui/navigation-menu.tsx +0 -128
  58. package/src/ui/pagination.tsx +0 -117
  59. package/src/ui/popover.tsx +0 -31
  60. package/src/ui/progress.tsx +0 -28
  61. package/src/ui/radio-group.tsx +0 -44
  62. package/src/ui/resizable.tsx +0 -45
  63. package/src/ui/scroll-area.tsx +0 -48
  64. package/src/ui/select.tsx +0 -160
  65. package/src/ui/separator.tsx +0 -31
  66. package/src/ui/sheet.tsx +0 -140
  67. package/src/ui/sidebar.tsx +0 -763
  68. package/src/ui/skeleton.tsx +0 -15
  69. package/src/ui/slider.tsx +0 -28
  70. package/src/ui/sonner.tsx +0 -31
  71. package/src/ui/switch.tsx +0 -29
  72. package/src/ui/table.tsx +0 -117
  73. package/src/ui/tabs.tsx +0 -55
  74. package/src/ui/textarea.tsx +0 -22
  75. package/src/ui/toast.tsx +0 -129
  76. package/src/ui/toaster.tsx +0 -35
  77. package/src/ui/toggle-group.tsx +0 -61
  78. package/src/ui/toggle.tsx +0 -45
  79. package/src/ui/tooltip.tsx +0 -30
  80. package/src/ui/use-mobile.tsx +0 -19
  81. package/src/ui/use-toast.ts +0 -194
@@ -1,194 +0,0 @@
1
- "use client"
2
-
3
- // Inspired by react-hot-toast library
4
- import * as React from "react"
5
-
6
- import type {
7
- ToastActionElement,
8
- ToastProps,
9
- } from "@base-ui/ui/toast"
10
-
11
- const TOAST_LIMIT = 1
12
- const TOAST_REMOVE_DELAY = 1000000
13
-
14
- type ToasterToast = ToastProps & {
15
- id: string
16
- title?: React.ReactNode
17
- description?: React.ReactNode
18
- action?: ToastActionElement
19
- }
20
-
21
- const ACTIONS = {
22
- ADD_TOAST: "ADD_TOAST",
23
- UPDATE_TOAST: "UPDATE_TOAST",
24
- DISMISS_TOAST: "DISMISS_TOAST",
25
- REMOVE_TOAST: "REMOVE_TOAST",
26
- } as const
27
-
28
- // 删除未使用的 ActionType 类型定义
29
- type Action =
30
- | {
31
- type: typeof ACTIONS.ADD_TOAST
32
- toast: ToasterToast
33
- }
34
- | {
35
- type: typeof ACTIONS.UPDATE_TOAST
36
- toast: Partial<ToasterToast>
37
- }
38
- | {
39
- type: typeof ACTIONS.DISMISS_TOAST
40
- toastId?: ToasterToast["id"]
41
- }
42
- | {
43
- type: typeof ACTIONS.REMOVE_TOAST
44
- toastId?: ToasterToast["id"]
45
- }
46
-
47
- let count = 0
48
-
49
- function genId() {
50
- count = (count + 1) % Number.MAX_SAFE_INTEGER
51
- return count.toString()
52
- }
53
-
54
-
55
- interface State {
56
- toasts: ToasterToast[]
57
- }
58
-
59
- const toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()
60
-
61
- const addToRemoveQueue = (toastId: string) => {
62
- if (toastTimeouts.has(toastId)) {
63
- return
64
- }
65
-
66
- const timeout = setTimeout(() => {
67
- toastTimeouts.delete(toastId)
68
- dispatch({
69
- type: ACTIONS.REMOVE_TOAST,
70
- toastId: toastId,
71
- })
72
- }, TOAST_REMOVE_DELAY)
73
-
74
- toastTimeouts.set(toastId, timeout)
75
- }
76
-
77
- export const reducer = (state: State, action: Action): State => {
78
- switch (action.type) {
79
- case "ADD_TOAST":
80
- return {
81
- ...state,
82
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
83
- }
84
-
85
- case "UPDATE_TOAST":
86
- return {
87
- ...state,
88
- toasts: state.toasts.map((t) =>
89
- t.id === action.toast.id ? { ...t, ...action.toast } : t
90
- ),
91
- }
92
-
93
- case "DISMISS_TOAST": {
94
- const { toastId } = action
95
-
96
- // ! Side effects ! - This could be extracted into a dismissToast() action,
97
- // but I'll keep it here for simplicity
98
- if (toastId) {
99
- addToRemoveQueue(toastId)
100
- } else {
101
- state.toasts.forEach((toast) => {
102
- addToRemoveQueue(toast.id)
103
- })
104
- }
105
-
106
- return {
107
- ...state,
108
- toasts: state.toasts.map((t) =>
109
- t.id === toastId || toastId === undefined
110
- ? {
111
- ...t,
112
- open: false,
113
- }
114
- : t
115
- ),
116
- }
117
- }
118
- case "REMOVE_TOAST":
119
- if (action.toastId === undefined) {
120
- return {
121
- ...state,
122
- toasts: [],
123
- }
124
- }
125
- return {
126
- ...state,
127
- toasts: state.toasts.filter((t) => t.id !== action.toastId),
128
- }
129
- }
130
- }
131
-
132
- const listeners: Array<(state: State) => void> = []
133
-
134
- let memoryState: State = { toasts: [] }
135
-
136
- function dispatch(action: Action) {
137
- memoryState = reducer(memoryState, action)
138
- listeners.forEach((listener) => {
139
- listener(memoryState)
140
- })
141
- }
142
-
143
- type Toast = Omit<ToasterToast, "id">
144
-
145
- function toast({ ...props }: Toast) {
146
- const id = genId()
147
-
148
- const update = (props: ToasterToast) =>
149
- dispatch({
150
- type: "UPDATE_TOAST",
151
- toast: { ...props, id },
152
- })
153
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id })
154
-
155
- dispatch({
156
- type: "ADD_TOAST",
157
- toast: {
158
- ...props,
159
- id,
160
- open: true,
161
- onOpenChange: (open) => {
162
- if (!open) dismiss()
163
- },
164
- },
165
- })
166
-
167
- return {
168
- id: id,
169
- dismiss,
170
- update,
171
- }
172
- }
173
-
174
- function useToast() {
175
- const [state, setState] = React.useState<State>(memoryState)
176
-
177
- React.useEffect(() => {
178
- listeners.push(setState)
179
- return () => {
180
- const index = listeners.indexOf(setState)
181
- if (index > -1) {
182
- listeners.splice(index, 1)
183
- }
184
- }
185
- }, [state])
186
-
187
- return {
188
- ...state,
189
- toast,
190
- dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }),
191
- }
192
- }
193
-
194
- export { useToast, toast }