@tendaui/react 1.1.1

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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/es/_chunks/dep-0QH2Ee4R.js +34 -0
  4. package/es/_chunks/dep-0QH2Ee4R.js.map +1 -0
  5. package/es/_chunks/dep-B7HmDtze.js +199 -0
  6. package/es/_chunks/dep-B7HmDtze.js.map +1 -0
  7. package/es/_chunks/dep-BH5n5r1M.js +55 -0
  8. package/es/_chunks/dep-BH5n5r1M.js.map +1 -0
  9. package/es/_chunks/dep-BP0-apUT.js +9 -0
  10. package/es/_chunks/dep-BP0-apUT.js.map +1 -0
  11. package/es/_chunks/dep-C1XcmShP.js +18 -0
  12. package/es/_chunks/dep-C1XcmShP.js.map +1 -0
  13. package/es/_chunks/dep-C36au4Ip.js +104 -0
  14. package/es/_chunks/dep-C36au4Ip.js.map +1 -0
  15. package/es/_chunks/dep-CgyDw_YI.js +20 -0
  16. package/es/_chunks/dep-CgyDw_YI.js.map +1 -0
  17. package/es/_chunks/dep-CoIiHOgo.js +162 -0
  18. package/es/_chunks/dep-CoIiHOgo.js.map +1 -0
  19. package/es/_chunks/dep-Cwish4GD.js +29 -0
  20. package/es/_chunks/dep-Cwish4GD.js.map +1 -0
  21. package/es/_chunks/dep-CzLhKWCf.js +56 -0
  22. package/es/_chunks/dep-CzLhKWCf.js.map +1 -0
  23. package/es/_chunks/dep-D-UKOauR.js +12 -0
  24. package/es/_chunks/dep-D-UKOauR.js.map +1 -0
  25. package/es/_chunks/dep-D6YxJv-F.js +31 -0
  26. package/es/_chunks/dep-D6YxJv-F.js.map +1 -0
  27. package/es/_chunks/dep-D7LanWes.js +171 -0
  28. package/es/_chunks/dep-D7LanWes.js.map +1 -0
  29. package/es/_chunks/dep-D8jki30S.js +31 -0
  30. package/es/_chunks/dep-D8jki30S.js.map +1 -0
  31. package/es/_chunks/dep-DB5wmwh1.js +48 -0
  32. package/es/_chunks/dep-DB5wmwh1.js.map +1 -0
  33. package/es/_chunks/dep-DGvfel3I.js +16 -0
  34. package/es/_chunks/dep-DGvfel3I.js.map +1 -0
  35. package/es/_chunks/dep-DHWwZ2Nj.js +139 -0
  36. package/es/_chunks/dep-DHWwZ2Nj.js.map +1 -0
  37. package/es/_chunks/dep-DN7d1SzH.js +24 -0
  38. package/es/_chunks/dep-DN7d1SzH.js.map +1 -0
  39. package/es/_chunks/dep-DZ_0EvBk.js +440 -0
  40. package/es/_chunks/dep-DZ_0EvBk.js.map +1 -0
  41. package/es/_chunks/dep-Dk2xX8lh.js +691 -0
  42. package/es/_chunks/dep-Dk2xX8lh.js.map +1 -0
  43. package/es/_chunks/dep-DwWrhxkd.js +26 -0
  44. package/es/_chunks/dep-DwWrhxkd.js.map +1 -0
  45. package/es/_chunks/dep-EcrDKDlu.js +1677 -0
  46. package/es/_chunks/dep-EcrDKDlu.js.map +1 -0
  47. package/es/_chunks/dep-PPA-yoAy.js +16 -0
  48. package/es/_chunks/dep-PPA-yoAy.js.map +1 -0
  49. package/es/_chunks/dep-U1T8CQY9.js +4 -0
  50. package/es/_chunks/dep-U1T8CQY9.js.map +1 -0
  51. package/es/_chunks/dep-bWaVq_y3.js +14 -0
  52. package/es/_chunks/dep-bWaVq_y3.js.map +1 -0
  53. package/es/_chunks/dep-u1x3x6MJ.js +9 -0
  54. package/es/_chunks/dep-u1x3x6MJ.js.map +1 -0
  55. package/es/alert/Alert.js +153 -0
  56. package/es/alert/Alert.js.map +1 -0
  57. package/es/alert/index.js +23 -0
  58. package/es/alert/index.js.map +1 -0
  59. package/es/alert/style/css.js +1 -0
  60. package/es/alert/style/index.css +172 -0
  61. package/es/alert/style/index.js +2 -0
  62. package/es/alert/style/index.js.map +1 -0
  63. package/es/badge/Badge.js +81 -0
  64. package/es/badge/Badge.js.map +1 -0
  65. package/es/badge/index.js +15 -0
  66. package/es/badge/index.js.map +1 -0
  67. package/es/badge/style/css.js +1 -0
  68. package/es/badge/style/index.css +60 -0
  69. package/es/badge/style/index.js +2 -0
  70. package/es/badge/style/index.js.map +1 -0
  71. package/es/button/Button.js +94 -0
  72. package/es/button/Button.js.map +1 -0
  73. package/es/button/index.js +28 -0
  74. package/es/button/index.js.map +1 -0
  75. package/es/button/style/css.js +1 -0
  76. package/es/button/style/index.css +1206 -0
  77. package/es/button/style/index.js +2 -0
  78. package/es/button/style/index.js.map +1 -0
  79. package/es/checkbox/Checkbox.js +17 -0
  80. package/es/checkbox/Checkbox.js.map +1 -0
  81. package/es/checkbox/CheckboxGroup.js +17 -0
  82. package/es/checkbox/CheckboxGroup.js.map +1 -0
  83. package/es/checkbox/index.js +22 -0
  84. package/es/checkbox/index.js.map +1 -0
  85. package/es/checkbox/style/css.js +1 -0
  86. package/es/checkbox/style/index.css +151 -0
  87. package/es/checkbox/style/index.js +2 -0
  88. package/es/checkbox/style/index.js.map +1 -0
  89. package/es/common/Check.js +101 -0
  90. package/es/common/Check.js.map +1 -0
  91. package/es/common/FakeArrow.js +28 -0
  92. package/es/common/FakeArrow.js.map +1 -0
  93. package/es/common/PluginContainer.js +19 -0
  94. package/es/common/PluginContainer.js.map +1 -0
  95. package/es/common/Portal.js +53 -0
  96. package/es/common/Portal.js.map +1 -0
  97. package/es/config-provider/ConfigContext.js +17 -0
  98. package/es/config-provider/ConfigContext.js.map +1 -0
  99. package/es/config-provider/ConfigProvider.js +45 -0
  100. package/es/config-provider/ConfigProvider.js.map +1 -0
  101. package/es/config-provider/index.js +12 -0
  102. package/es/config-provider/index.js.map +1 -0
  103. package/es/dialog/Dialog.js +575 -0
  104. package/es/dialog/Dialog.js.map +1 -0
  105. package/es/dialog/DialogCard.js +28 -0
  106. package/es/dialog/DialogCard.js.map +1 -0
  107. package/es/dialog/index.js +44 -0
  108. package/es/dialog/index.js.map +1 -0
  109. package/es/dialog/plugin.js +199 -0
  110. package/es/dialog/plugin.js.map +1 -0
  111. package/es/dialog/style/css.js +1 -0
  112. package/es/dialog/style/index.css +510 -0
  113. package/es/dialog/style/index.js +2 -0
  114. package/es/dialog/style/index.js.map +1 -0
  115. package/es/form/Form.js +190 -0
  116. package/es/form/Form.js.map +1 -0
  117. package/es/form/FormContext.js +38 -0
  118. package/es/form/FormContext.js.map +1 -0
  119. package/es/form/FormItem.js +39 -0
  120. package/es/form/FormItem.js.map +1 -0
  121. package/es/form/FormList.js +306 -0
  122. package/es/form/FormList.js.map +1 -0
  123. package/es/form/hooks/useFormItemStyle.js +10 -0
  124. package/es/form/hooks/useFormItemStyle.js.map +1 -0
  125. package/es/form/hooks/useInstance.js +326 -0
  126. package/es/form/hooks/useInstance.js.map +1 -0
  127. package/es/form/index.js +47 -0
  128. package/es/form/index.js.map +1 -0
  129. package/es/form/style/css.js +1 -0
  130. package/es/form/style/index.css +296 -0
  131. package/es/form/style/index.js +2 -0
  132. package/es/form/style/index.js.map +1 -0
  133. package/es/form/utils/index.js +75 -0
  134. package/es/form/utils/index.js.map +1 -0
  135. package/es/hooks/useDragSorter.js +137 -0
  136. package/es/hooks/useDragSorter.js.map +1 -0
  137. package/es/index.js +103 -0
  138. package/es/index.js.map +1 -0
  139. package/es/input/Input.js +375 -0
  140. package/es/input/Input.js.map +1 -0
  141. package/es/input/InputGroup.js +23 -0
  142. package/es/input/InputGroup.js.map +1 -0
  143. package/es/input/index.js +23 -0
  144. package/es/input/index.js.map +1 -0
  145. package/es/input/style/css.js +1 -0
  146. package/es/input/style/index.css +450 -0
  147. package/es/input/style/index.js +2 -0
  148. package/es/input/style/index.js.map +1 -0
  149. package/es/loading/Gradient.js +86 -0
  150. package/es/loading/Gradient.js.map +1 -0
  151. package/es/loading/Loading.js +147 -0
  152. package/es/loading/Loading.js.map +1 -0
  153. package/es/loading/index.js +24 -0
  154. package/es/loading/index.js.map +1 -0
  155. package/es/loading/style/css.js +1 -0
  156. package/es/loading/style/index.css +191 -0
  157. package/es/loading/style/index.js +2 -0
  158. package/es/loading/style/index.js.map +1 -0
  159. package/es/myform/index.js +2 -0
  160. package/es/myform/index.js.map +1 -0
  161. package/es/notification/NotifyContainer.js +78 -0
  162. package/es/notification/NotifyContainer.js.map +1 -0
  163. package/es/notification/NotifyContext.js +149 -0
  164. package/es/notification/NotifyContext.js.map +1 -0
  165. package/es/notification/NotifyItem.js +150 -0
  166. package/es/notification/NotifyItem.js.map +1 -0
  167. package/es/notification/index.js +32 -0
  168. package/es/notification/index.js.map +1 -0
  169. package/es/notification/style/css.js +1 -0
  170. package/es/notification/style/index.css +142 -0
  171. package/es/notification/style/index.js +2 -0
  172. package/es/notification/style/index.js.map +1 -0
  173. package/es/popup/Popup.js +790 -0
  174. package/es/popup/Popup.js.map +1 -0
  175. package/es/popup/index.js +28 -0
  176. package/es/popup/index.js.map +1 -0
  177. package/es/popup/style/css.js +1 -0
  178. package/es/popup/style/index.css +186 -0
  179. package/es/popup/style/index.js +2 -0
  180. package/es/popup/style/index.js.map +1 -0
  181. package/es/portal/Portal.js +48 -0
  182. package/es/portal/Portal.js.map +1 -0
  183. package/es/portal/index.js +7 -0
  184. package/es/portal/index.js.map +1 -0
  185. package/es/select/Option.js +118 -0
  186. package/es/select/Option.js.map +1 -0
  187. package/es/select/OptionGroup.js +9 -0
  188. package/es/select/OptionGroup.js.map +1 -0
  189. package/es/select/PopupContent.js +16 -0
  190. package/es/select/PopupContent.js.map +1 -0
  191. package/es/select/Select.js +709 -0
  192. package/es/select/Select.js.map +1 -0
  193. package/es/select/index.js +66 -0
  194. package/es/select/index.js.map +1 -0
  195. package/es/select/style/css.js +1 -0
  196. package/es/select/style/index.css +437 -0
  197. package/es/select/style/index.js +2 -0
  198. package/es/select/style/index.js.map +1 -0
  199. package/es/select-input/SelectInput.js +202 -0
  200. package/es/select-input/SelectInput.js.map +1 -0
  201. package/es/select-input/hook/useMultiple.js +118 -0
  202. package/es/select-input/hook/useMultiple.js.map +1 -0
  203. package/es/select-input/hook/useSingle.js +105 -0
  204. package/es/select-input/hook/useSingle.js.map +1 -0
  205. package/es/select-input/index.js +51 -0
  206. package/es/select-input/index.js.map +1 -0
  207. package/es/select-input/style/css.js +1 -0
  208. package/es/select-input/style/index.css +0 -0
  209. package/es/select-input/style/index.js +2 -0
  210. package/es/select-input/style/index.js.map +1 -0
  211. package/es/space/index.js +2 -0
  212. package/es/space/index.js.map +1 -0
  213. package/es/style/index.css +490 -0
  214. package/es/style/index.js +2 -0
  215. package/es/style/index.js.map +1 -0
  216. package/es/switch/Switch.js +174 -0
  217. package/es/switch/Switch.js.map +1 -0
  218. package/es/switch/index.js +28 -0
  219. package/es/switch/index.js.map +1 -0
  220. package/es/switch/style/css.js +1 -0
  221. package/es/switch/style/index.css +239 -0
  222. package/es/switch/style/index.js +2 -0
  223. package/es/switch/style/index.js.map +1 -0
  224. package/es/tag/Tag.js +1312 -0
  225. package/es/tag/Tag.js.map +1 -0
  226. package/es/tag/index.js +21 -0
  227. package/es/tag/index.js.map +1 -0
  228. package/es/tag/style/css.js +1 -0
  229. package/es/tag/style/index.css +236 -0
  230. package/es/tag/style/index.js +2 -0
  231. package/es/tag/style/index.js.map +1 -0
  232. package/es/tag-input/TagInput.js +360 -0
  233. package/es/tag-input/TagInput.js.map +1 -0
  234. package/es/tag-input/hooks/useTagList.js +167 -0
  235. package/es/tag-input/hooks/useTagList.js.map +1 -0
  236. package/es/tag-input/index.js +35 -0
  237. package/es/tag-input/index.js.map +1 -0
  238. package/es/tag-input/style/css.js +1 -0
  239. package/es/tag-input/style/index.css +223 -0
  240. package/es/tag-input/style/index.js +2 -0
  241. package/es/tag-input/style/index.js.map +1 -0
  242. package/es/tag-input/useTagList.js +167 -0
  243. package/es/tag-input/useTagList.js.map +1 -0
  244. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotifyContext.js","sources":["../../../components/notification/NotifyContext.tsx"],"sourcesContent":["import React, { createContext, useState, useRef, useCallback, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport NotifyContainer from \"./NotifyContainer\";\n\n// 1. 定义类型\ntype NotificationType = \"success\" | \"error\" | \"warning\" | \"info\";\n\ninterface Notification {\n id: string;\n type: NotificationType;\n message: string;\n createdAt: number;\n isRemoved: boolean;\n title: string;\n}\n\n// 2. 定义 Context 类型\ninterface NotificationContextType {\n notify: (type: NotificationType, message: Message) => void;\n success: (message: Message) => void;\n error: (message: Message) => void;\n warning: (message: Message) => void;\n info: (message: Message) => void;\n removeNotification: (id: string) => void;\n}\n\n// 3. 创建 Context\nconst NotificationContext = createContext<NotificationContextType | null>(null);\n\n// 4. 生成唯一 ID 的辅助函数\nconst generateId = () => Math.random().toString(36).substr(2, 9);\n\n// 5. Provider 组件\ninterface NotificationProviderProps {\n children: React.ReactNode;\n maxStack?: number;\n displayDuration?: number;\n position?: string;\n}\n\ntype Message = {\n title: string;\n message: string;\n};\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({\n children,\n maxStack = 5,\n displayDuration = 3000,\n position = \"top-right\"\n}) => {\n const [notifications, setNotifications] = useState<Notification[]>([]);\n const timersRef = useRef<Map<string, NodeJS.Timeout>>(new Map());\n const pausedAtRef = useRef<Map<string, number>>(new Map());\n\n // 定时器相关函数\n const clearNotificationTimer = useCallback((id: string) => {\n const timer = timersRef.current.get(id);\n if (timer) {\n clearTimeout(timer);\n timersRef.current.delete(id);\n }\n }, []);\n\n const startTimer = useCallback(\n (notification: Notification, remainingTime?: number) => {\n const duration = remainingTime ?? displayDuration;\n const timer = setTimeout(() => {\n setNotifications((prev) => prev.map((n) => (n.id === notification.id ? { ...n, isRemoved: true } : n)));\n setTimeout(() => {\n setNotifications((prev) => prev.filter((t) => t.id !== notification.id));\n clearNotificationTimer(notification.id);\n pausedAtRef.current.delete(notification.id);\n }, 400);\n }, duration);\n timersRef.current.set(notification.id, timer);\n },\n [displayDuration, clearNotificationTimer]\n );\n\n // 6. 核心通知函数\n const addNotification = useCallback(\n (type: NotificationType, message: Message) => {\n const newNotification: Notification = {\n id: generateId(),\n type,\n title: message.title,\n message: message.message,\n createdAt: Date.now(),\n isRemoved: false\n };\n\n setNotifications((prev) => {\n const newNotifications = [newNotification, ...prev];\n const removedNotifications = newNotifications.slice(maxStack);\n\n removedNotifications.forEach((notification) => {\n clearNotificationTimer(notification.id);\n pausedAtRef.current.delete(notification.id);\n });\n\n return newNotifications.slice(0, maxStack);\n });\n\n startTimer(newNotification);\n },\n [maxStack, startTimer, clearNotificationTimer]\n );\n\n // 7. 提供的 Context 值\n const contextValue = React.useMemo(\n () => ({\n notify: addNotification,\n success: (message: Message) => addNotification(\"success\", message),\n error: (message: Message) => addNotification(\"error\", message),\n warning: (message: Message) => addNotification(\"warning\", message),\n info: (message: Message) => addNotification(\"info\", message),\n removeNotification: (id: string) => {\n setNotifications((prev) => prev.filter((t) => t.id !== id));\n clearNotificationTimer(id);\n pausedAtRef.current.delete(id);\n }\n }),\n [addNotification, clearNotificationTimer]\n );\n\n // 悬停处理\n const clearAllTimers = useCallback(() => {\n const now = Date.now();\n notifications.forEach((notification) => {\n pausedAtRef.current.set(notification.id, now);\n clearNotificationTimer(notification.id);\n });\n }, [notifications, clearNotificationTimer]);\n\n const restartAllTimers = useCallback(() => {\n notifications.forEach((notification) => {\n const pausedAt = pausedAtRef.current.get(notification.id);\n if (pausedAt) {\n const elapsedTime = pausedAt - notification.createdAt;\n const remainingTime = Math.max(0, displayDuration - elapsedTime);\n startTimer(notification, remainingTime);\n pausedAtRef.current.delete(notification.id);\n }\n });\n }, [notifications, displayDuration, startTimer]);\n\n return (\n <NotificationContext.Provider value={contextValue}>\n {children}\n {createPortal(\n <NotifyContainer\n notifications={notifications as unknown as TdNotificationProps[]}\n onRemove={(id) => contextValue.removeNotification(id)}\n onHoverStart={clearAllTimers}\n onHoverEnd={restartAllTimers}\n data-testid=\"notification-container\"\n maxStack={maxStack}\n position={position}\n />,\n document.body\n )}\n </NotificationContext.Provider>\n );\n};\n\n// 8. 创建自定义 Hook\nexport const useNotification = () => {\n const context = useContext(NotificationContext);\n if (!context) {\n throw new Error(\"useNotification must be used within a NotificationProvider\");\n }\n return context;\n};\n"],"names":["NotificationContext","createContext","generateId","Math","random","toString","substr","NotificationProvider","children","_ref","_ref$maxStack","maxStack","_ref$displayDuration","displayDuration","_ref$position","position","_useState","useState","_useState2","_slicedToArray","notifications","setNotifications","timersRef","useRef","Map","pausedAtRef","clearNotificationTimer","useCallback","id","timer","current","get","clearTimeout","startTimer","notification","remainingTime","duration","setTimeout","prev","map","n","_objectSpread","isRemoved","filter","t","set","addNotification","type","message","newNotification","title","createdAt","Date","now","newNotifications","concat","_toConsumableArray","removedNotifications","slice","forEach","contextValue","React","useMemo","notify","success","error","warning","info","removeNotification","clearAllTimers","restartAllTimers","pausedAt","elapsedTime","max","Provider","value","createPortal","createElement","NotifyContainer","onRemove","onHoverStart","onHoverEnd","document","body","useNotification","context","useContext","Error"],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { _ as _defineProperty } from '../_chunks/dep-Cwish4GD.js';
2
+ import { _ as _toConsumableArray } from '../_chunks/dep-CgyDw_YI.js';
3
+ import { _ as _slicedToArray } from '../_chunks/dep-CzLhKWCf.js';
4
+ import React, { useState, useRef, useLayoutEffect } from 'react';
5
+ import { IconCheckCircleStroked, IconClose, IconInfoCircle, IconAlertTriangle } from '@tendaui/icons';
6
+ import { u as useConfig } from '../_chunks/dep-u1x3x6MJ.js';
7
+ import '../_chunks/dep-D-UKOauR.js';
8
+ import '../config-provider/ConfigContext.js';
9
+
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ var NotificationItem = function NotificationItem(_ref) {
13
+ var message = _ref.message,
14
+ type = _ref.type,
15
+ heights = _ref.heights,
16
+ setHeights = _ref.setHeights,
17
+ id = _ref.id,
18
+ gap = _ref.gap,
19
+ isExpanded = _ref.isExpanded,
20
+ isRemoved = _ref.isRemoved,
21
+ title = _ref.title;
22
+ var _useState = useState(0),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ initialHeight = _useState2[0],
25
+ setInitialHeight = _useState2[1];
26
+ var _useState3 = useState(false),
27
+ _useState4 = _slicedToArray(_useState3, 2),
28
+ isMounted = _useState4[0],
29
+ setIsMounted = _useState4[1];
30
+ var nofityItem = useRef(null);
31
+ var _useConfig = useConfig(),
32
+ prefix = _useConfig.classPrefix;
33
+ React.useEffect(function () {
34
+ setIsMounted(true);
35
+ }, []);
36
+ React.useEffect(function () {
37
+ var notifyNode = nofityItem.current;
38
+ if (notifyNode) {
39
+ var height = notifyNode.getBoundingClientRect().height;
40
+ setInitialHeight(height);
41
+ setHeights(function (h) {
42
+ return [{
43
+ toastId: id,
44
+ height: height,
45
+ message: message,
46
+ type: type
47
+ }].concat(_toConsumableArray(h));
48
+ });
49
+ return function () {
50
+ setHeights(function (h) {
51
+ return h.filter(function (h2) {
52
+ return h2.toastId !== id;
53
+ });
54
+ });
55
+ };
56
+ }
57
+ }, [setHeights, id, message, type]);
58
+ useLayoutEffect(function () {
59
+ if (!isMounted) return;
60
+ var notifyNode = nofityItem.current;
61
+ if (notifyNode) {
62
+ var originalHeight = notifyNode.style.height;
63
+ notifyNode.style.height = "auto";
64
+ var newHeight = notifyNode.getBoundingClientRect().height;
65
+ notifyNode.style.height = originalHeight;
66
+ setInitialHeight(newHeight);
67
+ setHeights(function (heights2) {
68
+ var isExist = heights2.some(function (h) {
69
+ return h.toastId === id;
70
+ });
71
+ if (isExist) {
72
+ return heights2.map(function (h) {
73
+ return h.toastId === id ? _objectSpread(_objectSpread({}, h), {}, {
74
+ height: newHeight,
75
+ message: message,
76
+ type: type
77
+ }) : h;
78
+ });
79
+ }
80
+ return [{
81
+ toastId: id,
82
+ height: newHeight,
83
+ message: message,
84
+ type: type
85
+ }].concat(_toConsumableArray(heights2));
86
+ });
87
+ }
88
+ }, [isMounted, initialHeight, setHeights, id, message, type]);
89
+ var heightIndex = React.useMemo(function () {
90
+ return heights.findIndex(function (h) {
91
+ return h.toastId === id;
92
+ });
93
+ }, [heights, id]);
94
+ var toastHeightBefore = React.useMemo(function () {
95
+ return heights.reduce(function (acc, h, reduceIndex) {
96
+ if (reduceIndex < heightIndex) {
97
+ return acc + h.height;
98
+ }
99
+ return acc;
100
+ }, 0);
101
+ }, [heightIndex, heights]);
102
+ var offset = React.useMemo(function () {
103
+ return heightIndex * gap + toastHeightBefore;
104
+ }, [toastHeightBefore, heightIndex, gap]);
105
+ return /* @__PURE__ */React.createElement("div", {
106
+ className: "".concat(prefix, "-notify__item"),
107
+ ref: nofityItem,
108
+ style: {
109
+ position: "absolute",
110
+ height: isExpanded ? "auto" : "var(--front-toast-height)",
111
+ width: "var(--toast-width)",
112
+ "--offset": offset + "px",
113
+ "--index": heightIndex,
114
+ "--gap": gap + "px",
115
+ "--z-index": heights.length - heightIndex
116
+ },
117
+ "data-toast": true,
118
+ "data-mounted": isMounted,
119
+ "data-expanded": isExpanded,
120
+ "data-removed": isRemoved,
121
+ "data-front": heightIndex === 0
122
+ }, /* @__PURE__ */React.createElement("div", {
123
+ className: "".concat(prefix, "-notify__content")
124
+ }, /* @__PURE__ */React.createElement("div", {
125
+ className: "".concat(prefix, "-notify__header")
126
+ }, /* @__PURE__ */React.createElement("div", {
127
+ className: "".concat(prefix, "-notify__icon")
128
+ }, type === "success" && /* @__PURE__ */React.createElement(IconCheckCircleStroked, {
129
+ className: "t-icon t-is-success"
130
+ }), type === "error" && /* @__PURE__ */React.createElement(IconClose, {
131
+ className: "t-icon t-is-error"
132
+ }), type === "info" && /* @__PURE__ */React.createElement(IconInfoCircle, {
133
+ className: "t-icon t-is-info"
134
+ }), type === "warning" && /* @__PURE__ */React.createElement(IconAlertTriangle, {
135
+ className: "t-icon t-is-warning"
136
+ }), type === "default" && /* @__PURE__ */React.createElement(IconInfoCircle, {
137
+ className: "t-icon t-is-info"
138
+ })), /* @__PURE__ */React.createElement("div", {
139
+ className: "".concat(prefix, "-notify__title")
140
+ }, title))), /* @__PURE__ */React.createElement("p", {
141
+ className: "".concat(prefix, "-notify__detail"),
142
+ style: {
143
+ opacity: heightIndex === 0 || isExpanded ? 1 : 0,
144
+ transition: "opacity 400ms"
145
+ }
146
+ }, message));
147
+ };
148
+
149
+ export { NotificationItem as default };
150
+ //# sourceMappingURL=NotifyItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotifyItem.js","sources":["../../../components/notification/NotifyItem.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { TdNotificationProps, HeightItem } from \"./type\";\nimport { IconClose, IconInfoCircle, IconCheckCircleStroked, IconAlertTriangle } from \"@tendaui/icons\";\nimport useConfig from \"../hooks/useConfig\";\n\nconst NotificationItem: React.FC<TdNotificationProps> = ({\n message,\n type,\n heights,\n setHeights,\n id,\n gap,\n isExpanded,\n isRemoved,\n title\n}) => {\n const [initialHeight, setInitialHeight] = useState(0);\n const [isMounted, setIsMounted] = useState(false);\n const nofityItem = useRef<HTMLDivElement>(null);\n const { classPrefix: prefix } = useConfig();\n React.useEffect(() => {\n setIsMounted(true);\n }, []);\n\n React.useEffect(() => {\n const notifyNode = nofityItem.current;\n if (notifyNode) {\n const height = notifyNode.getBoundingClientRect().height;\n setInitialHeight(height);\n setHeights((h: HeightItem[]) => {\n // 如果不存在,则添加\n return [{ toastId: id, height, message, type }, ...h];\n });\n return () => {\n setHeights((h: HeightItem[]) => h.filter((h) => h.toastId !== id));\n };\n }\n }, [setHeights, id, message, type]);\n\n useLayoutEffect(() => {\n if (!isMounted) return;\n const notifyNode = nofityItem.current;\n if (notifyNode) {\n const originalHeight = notifyNode.style.height;\n notifyNode.style.height = \"auto\";\n const newHeight = notifyNode.getBoundingClientRect().height;\n notifyNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights) => {\n const isExist = heights.some((h) => h.toastId === id);\n if (isExist) {\n // 如果存在,则更新高度\n return heights.map((h) => (h.toastId === id ? { ...h, height: newHeight, message, type } : h));\n }\n // 如果不存在,则添加\n return [{ toastId: id, height: newHeight, message, type }, ...heights];\n });\n }\n }, [isMounted, initialHeight, setHeights, id, message, type]);\n const heightIndex = React.useMemo(() => {\n return heights.findIndex((h) => h.toastId === id);\n }, [heights, id]);\n const toastHeightBefore = React.useMemo(() => {\n return heights.reduce((acc, h, reduceIndex) => {\n if (reduceIndex < heightIndex) {\n return acc + h.height;\n }\n return acc;\n }, 0);\n }, [heightIndex, heights]);\n\n const offset = React.useMemo(() => heightIndex * gap + toastHeightBefore, [toastHeightBefore, heightIndex, gap]);\n\n return (\n <div\n className={`${prefix}-notify__item`}\n ref={nofityItem}\n style={\n {\n position: \"absolute\",\n height: isExpanded ? `auto` : `var(--front-toast-height)`,\n width: `var(--toast-width)`,\n \"--offset\": offset + \"px\",\n \"--index\": heightIndex,\n \"--gap\": gap + \"px\",\n \"--z-index\": heights.length - heightIndex\n } as React.CSSProperties\n }\n data-toast\n data-mounted={isMounted}\n data-expanded={isExpanded}\n data-removed={isRemoved}\n data-front={heightIndex === 0}\n >\n <div className={`${prefix}-notify__content`}>\n <div className={`${prefix}-notify__header`}>\n <div className={`${prefix}-notify__icon`}>\n {type === \"success\" && <IconCheckCircleStroked className=\"t-icon t-is-success\" />}\n {type === \"error\" && <IconClose className=\"t-icon t-is-error\" />}\n {type === \"info\" && <IconInfoCircle className=\"t-icon t-is-info\" />}\n {type === \"warning\" && <IconAlertTriangle className=\"t-icon t-is-warning\" />}\n {type === \"default\" && <IconInfoCircle className=\"t-icon t-is-info\" />}\n </div>\n\n <div className={`${prefix}-notify__title`}>{title}</div>\n </div>\n </div>\n <p\n className={`${prefix}-notify__detail`}\n style={{\n opacity: heightIndex === 0 || isExpanded ? 1 : 0,\n transition: `opacity 400ms`\n }}\n >\n {message}\n </p>\n </div>\n );\n};\n\nexport default NotificationItem;\n"],"names":["NotificationItem","message","_ref","type","heights","setHeights","id","gap","isExpanded","isRemoved","title","_useState","useState","_useState2","_slicedToArray","initialHeight","setInitialHeight","_useState3","_useState4","isMounted","setIsMounted","nofityItem","useRef","_useConfig","useConfig","prefix","classPrefix","React","useEffect","notifyNode","current","height","getBoundingClientRect","h","toastId","concat","_toConsumableArray","filter","useLayoutEffect","originalHeight","style","newHeight","isExist","some","map","_objectSpread","heightIndex","useMemo","findIndex","toastHeightBefore","reduce","acc","reduceIndex","offset","createElement","className","ref","position","width","length","IconCheckCircleStroked","IconClose","IconInfoCircle","IconAlertTriangle","opacity","transition"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export { NotificationProvider, useNotification } from './NotifyContext.js';
2
+ import './style/css.js';
3
+ import '../_chunks/dep-CgyDw_YI.js';
4
+ import '../_chunks/dep-CzLhKWCf.js';
5
+ import '../_chunks/dep-Cwish4GD.js';
6
+ import '../_chunks/dep-D-UKOauR.js';
7
+ import 'react';
8
+ import 'react-dom';
9
+ import './NotifyContainer.js';
10
+ import './NotifyItem.js';
11
+ import '@tendaui/icons';
12
+ import '../_chunks/dep-u1x3x6MJ.js';
13
+ import '../config-provider/ConfigContext.js';
14
+
15
+ var addNotification = function addNotification() {};
16
+ function notification(message) {
17
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default";
18
+ var title = arguments.length > 2 ? arguments[2] : undefined;
19
+ var id = (/* @__PURE__ */new Date()).getTime().toString();
20
+ addNotification({
21
+ id: id,
22
+ message: message,
23
+ type: type,
24
+ title: title
25
+ });
26
+ }
27
+ function registerNotificationHandler(cb) {
28
+ addNotification = cb;
29
+ }
30
+
31
+ export { notification };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../components/notification/Notify.ts"],"sourcesContent":["// notification.ts\ntype NotificationType = \"default\" | \"success\" | \"error\" | \"info\" | \"warning\";\ntype NotificationMessage = {\n id: string;\n type: NotificationType;\n message: string;\n title: string;\n};\n\nlet addNotification: (notification: NotificationMessage) => void = () => {};\n\nexport function notification(message: string, type: NotificationType = \"default\", title: string) {\n const id = new Date().getTime().toString();\n addNotification({\n id,\n message,\n type,\n title\n });\n}\n\nexport function registerNotificationHandler(cb: typeof addNotification) {\n addNotification = cb;\n}\n"],"names":["addNotification","notification","message","type","arguments","length","undefined","title","id","Date","getTime","toString","registerNotificationHandler","cb"],"mappings":";;;;;;;;;;;;;;AASA,IAAIA,kBAA+D,SAA/DA,kBAAqE,CAAC,CAAA;AAEnE,SAASC,YAAAA,CAAaC,OAAA,EAAoE;AAAA,EAAA,IAAnDC,IAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAyB,SAAA;EAAA,IAAWG,KAAA,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,GAAAD,SAAA,MAAAE,SAAA;AAChF,EAAA,IAAME,qBAAK,IAAIC,IAAA,EAAK,EAAEC,OAAA,GAAUC,QAAA,EAAS;AACzCX,EAAAA,eAAA,CAAgB;AACdQ,IAAAA,EAAA,EAAAA,EAAA;AACAN,IAAAA,OAAA,EAAAA,OAAA;AACAC,IAAAA,IAAA,EAAAA,IAAA;AACAI,IAAAA,KAAA,EAAAA;AACF,GAAC,CAAA;AACH;AAEO,SAASK,4BAA4BC,EAAA,EAA4B;AACtEb,EAAAA,eAAA,GAAkBa,EAAA;AACpB;;;;"}
@@ -0,0 +1 @@
1
+ import "./index.css";
@@ -0,0 +1,142 @@
1
+ .t-notify[data-x-position=right] {
2
+ right: 8px;
3
+ }
4
+ .t-notify[data-x-position=left] {
5
+ left: 8px;
6
+ }
7
+ .t-notify[data-x-position=center] {
8
+ left: 50%;
9
+ -webkit-transform: translateX(-50%);
10
+ transform: translateX(-50%);
11
+ }
12
+ .t-notify[data-y-position=top] {
13
+ top: 10px;
14
+ }
15
+ .t-notify {
16
+ font: var(--td-font-body-medium);
17
+ color: var(--td-text-color-primary);
18
+ -webkit-box-sizing: border-box;
19
+ box-sizing: border-box;
20
+ margin: 0;
21
+ padding: 0;
22
+ list-style: none;
23
+ position: fixed;
24
+ z-index: 6000;
25
+ width: 360px;
26
+ }
27
+ .t-notify__container {
28
+ position: relative;
29
+ width: 100%;
30
+ height: 100%;
31
+ }
32
+ .t-notify__item {
33
+ border-radius: var(--td-radius-medium);
34
+ padding: var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);
35
+ background-color: var(--td-bg-color-container);
36
+ color: var(--td-text-color-secondary);
37
+ -webkit-box-shadow: var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);
38
+ box-shadow: var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);
39
+ overflow: hidden;
40
+ }
41
+ .t-notify__item:hover {
42
+ background-color: var(--td-bg-color-container-hover);
43
+ color: inherit;
44
+ }
45
+ .t-notify__item:active {
46
+ background-color: var(--td-bg-color-container-active);
47
+ color: inherit;
48
+ }
49
+ .t-notify__item {
50
+ --y: translateY(-100%);
51
+ -webkit-transform: var(--y);
52
+ transform: var(--y);
53
+ -webkit-transition: opacity 400ms, height 400ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
54
+ transition: opacity 400ms, height 400ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
55
+ transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms;
56
+ transition: transform 400ms, opacity 400ms, height 400ms, box-shadow 200ms, -webkit-transform 400ms, -webkit-box-shadow 200ms;
57
+ z-index: var(--z-index);
58
+ }
59
+ .t-notify__item[data-mounted=true][data-expanded=false] {
60
+ --y: translateY(calc(var(--gap) * var(--index)))
61
+ scale(calc(1 - var(--index) * 0.05));
62
+ }
63
+ .t-notify__item[data-mounted=true][data-expanded=true] {
64
+ --y: translateY(var(--offset)) scale(1);
65
+ }
66
+ .t-notify__item[data-mounted=true][data-removed=true][data-front=true] {
67
+ --y: translateY(-100%);
68
+ opacity: 0;
69
+ }
70
+ .t-notify__item[data-mounted=true][data-removed=true][data-front=false] {
71
+ --y: translateY(-40%);
72
+ opacity: 0;
73
+ -webkit-transition: opacity 200ms, -webkit-transform 400ms;
74
+ transition: opacity 200ms, -webkit-transform 400ms;
75
+ transition: transform 400ms, opacity 200ms;
76
+ transition: transform 400ms, opacity 200ms, -webkit-transform 400ms;
77
+ }
78
+ .t-notify__icon {
79
+ width: calc(var(--td-font-size-body-large) + 8px);
80
+ text-align: center;
81
+ margin-right: var(--td-comp-margin-s);
82
+ }
83
+ .t-notify__icon .t-icon {
84
+ font-size: calc(var(--td-font-size-body-large) + 8px);
85
+ }
86
+ .t-notify .t-icon.t-is-info {
87
+ color: var(--td-brand-color);
88
+ }
89
+ .t-notify .t-icon.t-is-success {
90
+ color: var(--td-success-color);
91
+ }
92
+ .t-notify .t-icon.t-is-warning {
93
+ color: var(--td-warning-color);
94
+ }
95
+ .t-notify .t-icon.t-is-error {
96
+ color: var(--td-error-color-6);
97
+ }
98
+ .t-notify__main {
99
+ -webkit-box-flex: 1;
100
+ -ms-flex: 1;
101
+ flex: 1;
102
+ }
103
+ .t-notify__title__wrap {
104
+ display: -webkit-box;
105
+ display: -ms-flexbox;
106
+ display: flex;
107
+ -webkit-box-pack: justify;
108
+ -ms-flex-pack: justify;
109
+ justify-content: space-between;
110
+ }
111
+ .t-notify__title {
112
+ font: var(--td-font-title-medium);
113
+ color: var(--td-text-color-primary);
114
+ }
115
+ .t-notify .t-icon-close {
116
+ cursor: pointer;
117
+ font-size: var(--td-font-size-body-large);
118
+ border-radius: var(--td-radius-default);
119
+ color: var(--td-text-color-secondary);
120
+ }
121
+ .t-notify .t-icon-close:hover {
122
+ background: var(--td-bg-color-container-hover);
123
+ }
124
+ .t-notify .t-icon-close:active {
125
+ background: var(--td-bg-color-container-active);
126
+ }
127
+ .t-notify__content {
128
+ font: var(--td-font-body-medium);
129
+ color: var(--td-text-color-secondary);
130
+ margin-top: var(--td-comp-margin-s);
131
+ }
132
+ .t-notify__header {
133
+ display: -webkit-box;
134
+ display: -ms-flexbox;
135
+ display: flex;
136
+ }
137
+ .t-notify__detail {
138
+ font: var(--td-font-body-medium);
139
+ color: var(--td-text-color-secondary);
140
+ margin-top: var(--td-comp-margin-s);
141
+ word-break: break-all;
142
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}