@lobehub/ui 6.0.0-beta.7 → 6.0.0-beta.9

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 (675) hide show
  1. package/es/Accordion/Accordion.mjs +3 -3
  2. package/es/Accordion/Accordion.mjs.map +1 -1
  3. package/es/Accordion/atoms.mjs +2 -2
  4. package/es/Accordion/atoms.mjs.map +1 -1
  5. package/es/Accordion/style.d.mts +1 -1
  6. package/es/ActionIcon/ActionIcon.mjs +2 -2
  7. package/es/ActionIcon/ActionIcon.mjs.map +1 -1
  8. package/es/Alert/Alert.mjs +5 -5
  9. package/es/Alert/Alert.mjs.map +1 -1
  10. package/es/AutoComplete/AutoComplete.mjs +5 -5
  11. package/es/AutoComplete/AutoComplete.mjs.map +1 -1
  12. package/es/AutoComplete/style.mjs +2 -2
  13. package/es/AutoComplete/style.mjs.map +1 -1
  14. package/es/Avatar/Avatar.mjs +2 -2
  15. package/es/Avatar/Avatar.mjs.map +1 -1
  16. package/es/Avatar/AvatarGroup/index.mjs +2 -2
  17. package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
  18. package/es/Breadcrumb/Breadcrumb.mjs +2 -2
  19. package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
  20. package/es/Button/Button.mjs +1 -1
  21. package/es/Button/Button.mjs.map +1 -1
  22. package/es/Button/style.d.mts +8 -1
  23. package/es/Button/style.mjs +41 -18
  24. package/es/Button/style.mjs.map +1 -1
  25. package/es/Checkbox/Checkbox.mjs +3 -3
  26. package/es/Checkbox/Checkbox.mjs.map +1 -1
  27. package/es/CodeDiff/DiffPanel.mjs +4 -4
  28. package/es/CodeDiff/DiffPanel.mjs.map +1 -1
  29. package/es/CodeEditor/CodeEditor.mjs +4 -4
  30. package/es/CodeEditor/CodeEditor.mjs.map +1 -1
  31. package/es/ColorPicker/ColorInputs.mjs +136 -0
  32. package/es/ColorPicker/ColorInputs.mjs.map +1 -0
  33. package/es/ColorPicker/ColorPanel.mjs +145 -0
  34. package/es/ColorPicker/ColorPanel.mjs.map +1 -0
  35. package/es/ColorPicker/ColorPicker.mjs +62 -199
  36. package/es/ColorPicker/ColorPicker.mjs.map +1 -1
  37. package/es/ColorPicker/SaturationArea.mjs +2 -1
  38. package/es/ColorPicker/SaturationArea.mjs.map +1 -1
  39. package/es/ColorPicker/Swatch.mjs +24 -0
  40. package/es/ColorPicker/Swatch.mjs.map +1 -0
  41. package/es/ColorPicker/Swatches.mjs +66 -0
  42. package/es/ColorPicker/Swatches.mjs.map +1 -0
  43. package/es/ColorPicker/Trigger.mjs +112 -0
  44. package/es/ColorPicker/Trigger.mjs.map +1 -0
  45. package/es/ColorPicker/color.mjs +25 -1
  46. package/es/ColorPicker/color.mjs.map +1 -1
  47. package/es/ColorPicker/recent.mjs +25 -0
  48. package/es/ColorPicker/recent.mjs.map +1 -0
  49. package/es/ColorPicker/style.mjs +269 -70
  50. package/es/ColorPicker/style.mjs.map +1 -1
  51. package/es/ColorPicker/type.d.mts +15 -0
  52. package/es/ContextMenu/ContextMenuHost.mjs +2 -2
  53. package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
  54. package/es/ContextMenu/ContextMenuTrigger.mjs +2 -2
  55. package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  56. package/es/ContextMenu/renderItems.mjs +3 -3
  57. package/es/ContextMenu/renderItems.mjs.map +1 -1
  58. package/es/DatePicker/DatePicker.d.mts +9 -2
  59. package/es/DatePicker/DatePicker.mjs +15 -85
  60. package/es/DatePicker/DatePicker.mjs.map +1 -1
  61. package/es/DatePicker/DateRangePicker.d.mts +3 -2
  62. package/es/DatePicker/DateRangePicker.mjs +3 -125
  63. package/es/DatePicker/DateRangePicker.mjs.map +1 -1
  64. package/es/DatePicker/DayjsDatePicker.d.mts +12 -0
  65. package/es/DatePicker/DayjsDatePicker.mjs +19 -0
  66. package/es/DatePicker/DayjsDatePicker.mjs.map +1 -0
  67. package/es/DatePicker/DayjsDateRangePicker.d.mts +7 -0
  68. package/es/DatePicker/DayjsDateRangePicker.mjs +8 -0
  69. package/es/DatePicker/DayjsDateRangePicker.mjs.map +1 -0
  70. package/es/DatePicker/PurePanel.mjs +65 -0
  71. package/es/DatePicker/PurePanel.mjs.map +1 -0
  72. package/es/DatePicker/RangePicker.mjs +121 -0
  73. package/es/DatePicker/RangePicker.mjs.map +1 -0
  74. package/es/DatePicker/SinglePicker.mjs +134 -0
  75. package/es/DatePicker/SinglePicker.mjs.map +1 -0
  76. package/es/DatePicker/core/PickerInput/Popup/Footer.mjs +57 -0
  77. package/es/DatePicker/core/PickerInput/Popup/Footer.mjs.map +1 -0
  78. package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs +57 -0
  79. package/es/DatePicker/core/PickerInput/Popup/PopupPanel.mjs.map +1 -0
  80. package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs +29 -0
  81. package/es/DatePicker/core/PickerInput/Popup/PresetPanel.mjs.map +1 -0
  82. package/es/DatePicker/core/PickerInput/Popup/index.mjs +133 -0
  83. package/es/DatePicker/core/PickerInput/Popup/index.mjs.map +1 -0
  84. package/es/DatePicker/core/PickerInput/RangePicker.d.mts +51 -0
  85. package/es/DatePicker/core/PickerInput/RangePicker.mjs +343 -0
  86. package/es/DatePicker/core/PickerInput/RangePicker.mjs.map +1 -0
  87. package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs +27 -0
  88. package/es/DatePicker/core/PickerInput/Selector/ClearIcon.mjs.map +1 -0
  89. package/es/DatePicker/core/PickerInput/Selector/Icon.mjs +19 -0
  90. package/es/DatePicker/core/PickerInput/Selector/Icon.mjs.map +1 -0
  91. package/es/DatePicker/core/PickerInput/Selector/Input.mjs +237 -0
  92. package/es/DatePicker/core/PickerInput/Selector/Input.mjs.map +1 -0
  93. package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs +70 -0
  94. package/es/DatePicker/core/PickerInput/Selector/MaskFormat.mjs.map +1 -0
  95. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.d.mts +8 -0
  96. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs +136 -0
  97. package/es/DatePicker/core/PickerInput/Selector/RangeSelector.mjs.map +1 -0
  98. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs +28 -0
  99. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/HoverSelector.mjs.map +1 -0
  100. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs +69 -0
  101. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/MultipleDates.mjs.map +1 -0
  102. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs +111 -0
  103. package/es/DatePicker/core/PickerInput/Selector/SingleSelector/index.mjs.map +1 -0
  104. package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs +18 -0
  105. package/es/DatePicker/core/PickerInput/Selector/hooks/useClearIcon.mjs.map +1 -0
  106. package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs +108 -0
  107. package/es/DatePicker/core/PickerInput/Selector/hooks/useInputProps.mjs.map +1 -0
  108. package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs +11 -0
  109. package/es/DatePicker/core/PickerInput/Selector/hooks/useRootProps.mjs.map +1 -0
  110. package/es/DatePicker/core/PickerInput/Selector/util.mjs +20 -0
  111. package/es/DatePicker/core/PickerInput/Selector/util.mjs.map +1 -0
  112. package/es/DatePicker/core/PickerInput/SinglePicker.d.mts +55 -0
  113. package/es/DatePicker/core/PickerInput/SinglePicker.mjs +318 -0
  114. package/es/DatePicker/core/PickerInput/SinglePicker.mjs.map +1 -0
  115. package/es/DatePicker/core/PickerInput/context.mjs +7 -0
  116. package/es/DatePicker/core/PickerInput/context.mjs.map +1 -0
  117. package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs +30 -0
  118. package/es/DatePicker/core/PickerInput/hooks/useCellRender.mjs.map +1 -0
  119. package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs +37 -0
  120. package/es/DatePicker/core/PickerInput/hooks/useDelayState.mjs.map +1 -0
  121. package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs +18 -0
  122. package/es/DatePicker/core/PickerInput/hooks/useDisabledBoundary.mjs.map +1 -0
  123. package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs +20 -0
  124. package/es/DatePicker/core/PickerInput/hooks/useFieldFormat.mjs.map +1 -0
  125. package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs +31 -0
  126. package/es/DatePicker/core/PickerInput/hooks/useFieldsInvalidate.mjs.map +1 -0
  127. package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs +98 -0
  128. package/es/DatePicker/core/PickerInput/hooks/useFilledProps.mjs.map +1 -0
  129. package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs +41 -0
  130. package/es/DatePicker/core/PickerInput/hooks/useFocusEvents.mjs.map +1 -0
  131. package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs +34 -0
  132. package/es/DatePicker/core/PickerInput/hooks/useFocusLock.mjs.map +1 -0
  133. package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs +35 -0
  134. package/es/DatePicker/core/PickerInput/hooks/useHoverStore.mjs.map +1 -0
  135. package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs +9 -0
  136. package/es/DatePicker/core/PickerInput/hooks/useInputReadOnly.mjs.map +1 -0
  137. package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs +36 -0
  138. package/es/DatePicker/core/PickerInput/hooks/useInvalidate.mjs.map +1 -0
  139. package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs +27 -0
  140. package/es/DatePicker/core/PickerInput/hooks/useLockEffect.mjs.map +1 -0
  141. package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs +18 -0
  142. package/es/DatePicker/core/PickerInput/hooks/useOpen.mjs.map +1 -0
  143. package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs +19 -0
  144. package/es/DatePicker/core/PickerInput/hooks/usePickerRef.mjs.map +1 -0
  145. package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs +20 -0
  146. package/es/DatePicker/core/PickerInput/hooks/usePresets.mjs.map +1 -0
  147. package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs +24 -0
  148. package/es/DatePicker/core/PickerInput/hooks/useRangeDisabledDate.mjs.map +1 -0
  149. package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs +107 -0
  150. package/es/DatePicker/core/PickerInput/hooks/useRangePickerValue.mjs.map +1 -0
  151. package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs +144 -0
  152. package/es/DatePicker/core/PickerInput/hooks/useRangeValue.mjs.map +1 -0
  153. package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs +219 -0
  154. package/es/DatePicker/core/PickerInput/hooks/useRangeValueChange.mjs.map +1 -0
  155. package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs +11 -0
  156. package/es/DatePicker/core/PickerInput/hooks/useShowNow.mjs.map +1 -0
  157. package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs +131 -0
  158. package/es/DatePicker/core/PickerPanel/DatePanel/index.mjs.map +1 -0
  159. package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs +35 -0
  160. package/es/DatePicker/core/PickerPanel/DateTimePanel/index.mjs.map +1 -0
  161. package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs +84 -0
  162. package/es/DatePicker/core/PickerPanel/DecadePanel/index.mjs.map +1 -0
  163. package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs +73 -0
  164. package/es/DatePicker/core/PickerPanel/MonthPanel/index.mjs.map +1 -0
  165. package/es/DatePicker/core/PickerPanel/PanelBody.mjs +95 -0
  166. package/es/DatePicker/core/PickerPanel/PanelBody.mjs.map +1 -0
  167. package/es/DatePicker/core/PickerPanel/PanelHeader.mjs +130 -0
  168. package/es/DatePicker/core/PickerPanel/PanelHeader.mjs.map +1 -0
  169. package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs +64 -0
  170. package/es/DatePicker/core/PickerPanel/QuarterPanel/index.mjs.map +1 -0
  171. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs +108 -0
  172. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/ClockDial.mjs.map +1 -0
  173. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs +44 -0
  174. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/geometry.mjs.map +1 -0
  175. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs +157 -0
  176. package/es/DatePicker/core/PickerPanel/TimePanel/TimeClock/index.mjs.map +1 -0
  177. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs +100 -0
  178. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/TimeColumn.mjs.map +1 -0
  179. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs +71 -0
  180. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/index.mjs.map +1 -0
  181. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs +62 -0
  182. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useScrollTo.mjs.map +1 -0
  183. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs +200 -0
  184. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/useTimeState.mjs.map +1 -0
  185. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs +25 -0
  186. package/es/DatePicker/core/PickerPanel/TimePanel/TimePanelBody/util.mjs.map +1 -0
  187. package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs +31 -0
  188. package/es/DatePicker/core/PickerPanel/TimePanel/index.mjs.map +1 -0
  189. package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs +34 -0
  190. package/es/DatePicker/core/PickerPanel/WeekPanel/index.mjs.map +1 -0
  191. package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs +92 -0
  192. package/es/DatePicker/core/PickerPanel/YearPanel/index.mjs.map +1 -0
  193. package/es/DatePicker/core/PickerPanel/context.mjs +48 -0
  194. package/es/DatePicker/core/PickerPanel/context.mjs.map +1 -0
  195. package/es/DatePicker/core/PickerPanel/index.d.mts +1 -0
  196. package/es/DatePicker/core/PickerPanel/index.mjs +175 -0
  197. package/es/DatePicker/core/PickerPanel/index.mjs.map +1 -0
  198. package/es/DatePicker/core/PickerPopup.mjs +118 -0
  199. package/es/DatePicker/core/PickerPopup.mjs.map +1 -0
  200. package/es/DatePicker/core/generate/dayjs.mjs +109 -0
  201. package/es/DatePicker/core/generate/dayjs.mjs.map +1 -0
  202. package/es/DatePicker/core/generate/index.d.mts +40 -0
  203. package/es/DatePicker/core/hooks/react.mjs +58 -0
  204. package/es/DatePicker/core/hooks/react.mjs.map +1 -0
  205. package/es/DatePicker/core/hooks/useLocale.mjs +51 -0
  206. package/es/DatePicker/core/hooks/useLocale.mjs.map +1 -0
  207. package/es/DatePicker/core/hooks/useSemantic.mjs +20 -0
  208. package/es/DatePicker/core/hooks/useSemantic.mjs.map +1 -0
  209. package/es/DatePicker/core/hooks/useSyncState.mjs +25 -0
  210. package/es/DatePicker/core/hooks/useSyncState.mjs.map +1 -0
  211. package/es/DatePicker/core/hooks/useTimeConfig.mjs +173 -0
  212. package/es/DatePicker/core/hooks/useTimeConfig.mjs.map +1 -0
  213. package/es/DatePicker/core/hooks/useTimeInfo.mjs +110 -0
  214. package/es/DatePicker/core/hooks/useTimeInfo.mjs.map +1 -0
  215. package/es/DatePicker/core/hooks/useToggleDates.mjs +21 -0
  216. package/es/DatePicker/core/hooks/useToggleDates.mjs.map +1 -0
  217. package/es/DatePicker/core/index.d.mts +5 -0
  218. package/es/DatePicker/core/index.mjs +9 -0
  219. package/es/DatePicker/core/index.mjs.map +1 -0
  220. package/es/DatePicker/core/interface.d.mts +325 -0
  221. package/es/DatePicker/core/locale/common.mjs +11 -0
  222. package/es/DatePicker/core/locale/common.mjs.map +1 -0
  223. package/es/DatePicker/core/locale/en_US.mjs +39 -0
  224. package/es/DatePicker/core/locale/en_US.mjs.map +1 -0
  225. package/es/DatePicker/core/utils/common.mjs +73 -0
  226. package/es/DatePicker/core/utils/common.mjs.map +1 -0
  227. package/es/DatePicker/core/utils/dateUtil.mjs +106 -0
  228. package/es/DatePicker/core/utils/dateUtil.mjs.map +1 -0
  229. package/es/DatePicker/core/utils/miscUtil.mjs +46 -0
  230. package/es/DatePicker/core/utils/miscUtil.mjs.map +1 -0
  231. package/es/DatePicker/core/utils/uiUtil.mjs +9 -0
  232. package/es/DatePicker/core/utils/uiUtil.mjs.map +1 -0
  233. package/es/DatePicker/dateGenerateConfig.mjs +52 -0
  234. package/es/DatePicker/dateGenerateConfig.mjs.map +1 -0
  235. package/es/DatePicker/generateConfig.mjs +12 -0
  236. package/es/DatePicker/generateConfig.mjs.map +1 -0
  237. package/es/DatePicker/generatePicker.d.mts +12 -0
  238. package/es/DatePicker/generatePicker.mjs +22 -0
  239. package/es/DatePicker/generatePicker.mjs.map +1 -0
  240. package/es/DatePicker/index.d.mts +8 -3
  241. package/es/DatePicker/index.mjs +5 -1
  242. package/es/DatePicker/legacyDate.mjs +58 -0
  243. package/es/DatePicker/legacyDate.mjs.map +1 -0
  244. package/es/DatePicker/locale.d.mts +15 -0
  245. package/es/DatePicker/locale.mjs +143 -0
  246. package/es/DatePicker/locale.mjs.map +1 -0
  247. package/es/DatePicker/semantic.mjs +29 -0
  248. package/es/DatePicker/semantic.mjs.map +1 -0
  249. package/es/DatePicker/style.mjs +3 -155
  250. package/es/DatePicker/style.mjs.map +1 -1
  251. package/es/DatePicker/type.d.mts +294 -27
  252. package/es/DatePicker/usePanelKeyboard.mjs +230 -0
  253. package/es/DatePicker/usePanelKeyboard.mjs.map +1 -0
  254. package/es/DatePicker/usePickerShared.mjs +106 -0
  255. package/es/DatePicker/usePickerShared.mjs.map +1 -0
  256. package/es/DatePicker/usePresetActive.mjs +49 -0
  257. package/es/DatePicker/usePresetActive.mjs.map +1 -0
  258. package/es/DraggablePanel/atoms.mjs +5 -5
  259. package/es/DraggablePanel/atoms.mjs.map +1 -1
  260. package/es/DraggableSideNav/DraggableSideNav.mjs +3 -3
  261. package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
  262. package/es/Drawer/Drawer.mjs +2 -2
  263. package/es/Drawer/Drawer.mjs.map +1 -1
  264. package/es/Drawer/atoms.mjs +6 -6
  265. package/es/Drawer/atoms.mjs.map +1 -1
  266. package/es/DropdownMenu/atoms.mjs +22 -22
  267. package/es/DropdownMenu/atoms.mjs.map +1 -1
  268. package/es/DropdownMenu/sharedStyle.mjs +2 -2
  269. package/es/DropdownMenu/sharedStyle.mjs.map +1 -1
  270. package/es/EditorSlashMenu/atoms.mjs +12 -12
  271. package/es/EditorSlashMenu/atoms.mjs.map +1 -1
  272. package/es/EmojiPicker/EmojiPicker.mjs +7 -7
  273. package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
  274. package/es/EmojiPicker/loadEmojiData.mjs +6 -0
  275. package/es/EmojiPicker/loadEmojiData.mjs.map +1 -0
  276. package/es/FloatingPanel/FloatingPanel.mjs +2 -2
  277. package/es/FloatingPanel/FloatingPanel.mjs.map +1 -1
  278. package/es/FormKit/List.mjs +2 -2
  279. package/es/FormKit/List.mjs.map +1 -1
  280. package/es/Highlighter/FullFeatured.mjs +2 -2
  281. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  282. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs +2 -2
  283. package/es/Highlighter/SyntaxHighlighter/StreamRenderer.mjs.map +1 -1
  284. package/es/Highlighter/SyntaxHighlighter/index.mjs +4 -4
  285. package/es/Highlighter/SyntaxHighlighter/index.mjs.map +1 -1
  286. package/es/Highlighter/style.mjs +2 -2
  287. package/es/Highlighter/style.mjs.map +1 -1
  288. package/es/HtmlPreview/HtmlPreview.mjs +2 -2
  289. package/es/HtmlPreview/HtmlPreview.mjs.map +1 -1
  290. package/es/Icon/Icon.mjs +2 -2
  291. package/es/Icon/Icon.mjs.map +1 -1
  292. package/es/List/ListRow.mjs +3 -3
  293. package/es/List/ListRow.mjs.map +1 -1
  294. package/es/Markdown/Markdown.mjs +2 -2
  295. package/es/Markdown/Markdown.mjs.map +1 -1
  296. package/es/Markdown/Typography.mjs +2 -2
  297. package/es/Markdown/Typography.mjs.map +1 -1
  298. package/es/Mermaid/FullFeatured.mjs +2 -2
  299. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  300. package/es/Mermaid/SyntaxMermaid/index.mjs +4 -4
  301. package/es/Mermaid/SyntaxMermaid/index.mjs.map +1 -1
  302. package/es/Modal/atoms.mjs +6 -6
  303. package/es/Modal/atoms.mjs.map +1 -1
  304. package/es/Pagination/Pagination.mjs +181 -41
  305. package/es/Pagination/Pagination.mjs.map +1 -1
  306. package/es/Pagination/helpers.mjs +3 -3
  307. package/es/Pagination/helpers.mjs.map +1 -1
  308. package/es/Pagination/index.d.mts +2 -2
  309. package/es/Pagination/marker.stylex.mjs +9 -0
  310. package/es/Pagination/marker.stylex.mjs.map +1 -0
  311. package/es/Pagination/style.mjs +74 -4
  312. package/es/Pagination/style.mjs.map +1 -1
  313. package/es/Pagination/type.d.mts +41 -3
  314. package/es/Popover/PopoverInGroup.mjs +2 -2
  315. package/es/Popover/PopoverInGroup.mjs.map +1 -1
  316. package/es/Popover/atoms.mjs +6 -6
  317. package/es/Popover/atoms.mjs.map +1 -1
  318. package/es/ProTable/ProTable.d.mts +11 -0
  319. package/es/ProTable/ProTable.mjs +208 -0
  320. package/es/ProTable/ProTable.mjs.map +1 -0
  321. package/es/ProTable/hooks/useColumnRequest.mjs +55 -0
  322. package/es/ProTable/hooks/useColumnRequest.mjs.map +1 -0
  323. package/es/ProTable/hooks/useColumnsState.mjs +37 -0
  324. package/es/ProTable/hooks/useColumnsState.mjs.map +1 -0
  325. package/es/ProTable/hooks/useDelayedFlag.mjs +18 -0
  326. package/es/ProTable/hooks/useDelayedFlag.mjs.map +1 -0
  327. package/es/ProTable/hooks/useDensity.mjs +15 -0
  328. package/es/ProTable/hooks/useDensity.mjs.map +1 -0
  329. package/es/ProTable/hooks/useFetchData.mjs +97 -0
  330. package/es/ProTable/hooks/useFetchData.mjs.map +1 -0
  331. package/es/ProTable/hooks/useFullscreen.mjs +22 -0
  332. package/es/ProTable/hooks/useFullscreen.mjs.map +1 -0
  333. package/es/ProTable/hooks/usePageInfo.mjs +35 -0
  334. package/es/ProTable/hooks/usePageInfo.mjs.map +1 -0
  335. package/es/ProTable/hooks/useProColumns.mjs +123 -0
  336. package/es/ProTable/hooks/useProColumns.mjs.map +1 -0
  337. package/es/ProTable/hooks/useProLoading.mjs +19 -0
  338. package/es/ProTable/hooks/useProLoading.mjs.map +1 -0
  339. package/es/ProTable/hooks/useProLocale.mjs +22 -0
  340. package/es/ProTable/hooks/useProLocale.mjs.map +1 -0
  341. package/es/ProTable/hooks/useProRequest.mjs +137 -0
  342. package/es/ProTable/hooks/useProRequest.mjs.map +1 -0
  343. package/es/ProTable/hooks/useRowCache.mjs +11 -0
  344. package/es/ProTable/hooks/useRowCache.mjs.map +1 -0
  345. package/es/ProTable/hooks/useSearchForm.mjs +141 -0
  346. package/es/ProTable/hooks/useSearchForm.mjs.map +1 -0
  347. package/es/ProTable/hooks/useTableBindings.mjs +39 -0
  348. package/es/ProTable/hooks/useTableBindings.mjs.map +1 -0
  349. package/es/ProTable/hooks/useTableSelection.mjs +14 -0
  350. package/es/ProTable/hooks/useTableSelection.mjs.map +1 -0
  351. package/es/ProTable/index.d.mts +4 -0
  352. package/es/ProTable/index.d.ts +1 -0
  353. package/es/ProTable/index.js +1 -0
  354. package/es/ProTable/index.mjs +3 -0
  355. package/es/ProTable/locale.d.mts +15 -0
  356. package/es/ProTable/locale.mjs +66 -0
  357. package/es/ProTable/locale.mjs.map +1 -0
  358. package/es/ProTable/parts/ColumnSetting.mjs +155 -0
  359. package/es/ProTable/parts/ColumnSetting.mjs.map +1 -0
  360. package/es/ProTable/parts/FieldControl.mjs +117 -0
  361. package/es/ProTable/parts/FieldControl.mjs.map +1 -0
  362. package/es/ProTable/parts/KeywordInput.mjs +19 -0
  363. package/es/ProTable/parts/KeywordInput.mjs.map +1 -0
  364. package/es/ProTable/parts/LightFilter.mjs +70 -0
  365. package/es/ProTable/parts/LightFilter.mjs.map +1 -0
  366. package/es/ProTable/parts/OptionPopover.mjs +17 -0
  367. package/es/ProTable/parts/OptionPopover.mjs.map +1 -0
  368. package/es/ProTable/parts/SearchForm.mjs +180 -0
  369. package/es/ProTable/parts/SearchForm.mjs.map +1 -0
  370. package/es/ProTable/parts/SearchSection.mjs +33 -0
  371. package/es/ProTable/parts/SearchSection.mjs.map +1 -0
  372. package/es/ProTable/parts/TableAlert.mjs +38 -0
  373. package/es/ProTable/parts/TableAlert.mjs.map +1 -0
  374. package/es/ProTable/parts/Toolbar.mjs +50 -0
  375. package/es/ProTable/parts/Toolbar.mjs.map +1 -0
  376. package/es/ProTable/parts/ToolbarOptions.mjs +103 -0
  377. package/es/ProTable/parts/ToolbarOptions.mjs.map +1 -0
  378. package/es/ProTable/parts/renderValue.mjs +118 -0
  379. package/es/ProTable/parts/renderValue.mjs.map +1 -0
  380. package/es/ProTable/style.mjs +278 -0
  381. package/es/ProTable/style.mjs.map +1 -0
  382. package/es/ProTable/type.d.mts +397 -0
  383. package/es/ProTable/utils.mjs +152 -0
  384. package/es/ProTable/utils.mjs.map +1 -0
  385. package/es/Radio/Radio.mjs +3 -3
  386. package/es/Radio/Radio.mjs.map +1 -1
  387. package/es/ScrollArea/atoms.mjs +4 -4
  388. package/es/ScrollArea/atoms.mjs.map +1 -1
  389. package/es/Segmented/Segmented.mjs +3 -3
  390. package/es/Segmented/Segmented.mjs.map +1 -1
  391. package/es/Segmented/atoms.mjs +2 -2
  392. package/es/Segmented/atoms.mjs.map +1 -1
  393. package/es/Select/Select.mjs +22 -13
  394. package/es/Select/Select.mjs.map +1 -1
  395. package/es/Select/atoms.mjs +4 -4
  396. package/es/Select/atoms.mjs.map +1 -1
  397. package/es/Select/helpers.mjs +8 -1
  398. package/es/Select/helpers.mjs.map +1 -1
  399. package/es/Select/hooks.mjs +8 -4
  400. package/es/Select/hooks.mjs.map +1 -1
  401. package/es/Select/renderOptions.mjs +2 -2
  402. package/es/Select/renderOptions.mjs.map +1 -1
  403. package/es/Select/type.d.mts +7 -0
  404. package/es/Switch/Switch.mjs +2 -2
  405. package/es/Switch/Switch.mjs.map +1 -1
  406. package/es/Switch/atoms.mjs +2 -2
  407. package/es/Switch/atoms.mjs.map +1 -1
  408. package/es/Table/Column.d.mts +8 -0
  409. package/es/Table/Column.mjs +6 -0
  410. package/es/Table/Column.mjs.map +1 -0
  411. package/es/Table/ColumnGroup.d.mts +11 -0
  412. package/es/Table/ColumnGroup.mjs +6 -0
  413. package/es/Table/ColumnGroup.mjs.map +1 -0
  414. package/es/Table/Table.d.mts +16 -2
  415. package/es/Table/Table.mjs +149 -118
  416. package/es/Table/Table.mjs.map +1 -1
  417. package/es/Table/atoms/cells.d.mts +42 -0
  418. package/es/Table/atoms/cells.mjs +72 -0
  419. package/es/Table/atoms/cells.mjs.map +1 -0
  420. package/es/Table/atoms/index.d.mts +3 -0
  421. package/es/Table/atoms/layout.d.mts +44 -0
  422. package/es/Table/atoms/layout.mjs +62 -0
  423. package/es/Table/atoms/layout.mjs.map +1 -0
  424. package/es/Table/constants.mjs +16 -0
  425. package/es/Table/constants.mjs.map +1 -0
  426. package/es/Table/engine/fixed.d.mts +1 -0
  427. package/es/Table/engine/fixed.mjs +53 -0
  428. package/es/Table/engine/fixed.mjs.map +1 -0
  429. package/es/Table/engine/types.d.mts +1 -0
  430. package/es/Table/engine/useTableEngine.mjs +180 -0
  431. package/es/Table/engine/useTableEngine.mjs.map +1 -0
  432. package/es/Table/index.d.mts +7 -2
  433. package/es/Table/index.mjs +4 -1
  434. package/es/Table/internal.d.mts +3 -0
  435. package/es/Table/pipeline/columnUtils.d.mts +5 -0
  436. package/es/Table/pipeline/columnUtils.mjs +58 -0
  437. package/es/Table/pipeline/columnUtils.mjs.map +1 -0
  438. package/es/Table/pipeline/convertChildrenToColumns.mjs +24 -0
  439. package/es/Table/pipeline/convertChildrenToColumns.mjs.map +1 -0
  440. package/es/Table/pipeline/normalizeColumns.mjs +140 -0
  441. package/es/Table/pipeline/normalizeColumns.mjs.map +1 -0
  442. package/es/Table/pipeline/selectionUtils.d.mts +9 -0
  443. package/es/Table/pipeline/selectionUtils.mjs +115 -0
  444. package/es/Table/pipeline/selectionUtils.mjs.map +1 -0
  445. package/es/Table/pipeline/useBreakpoint.mjs +36 -0
  446. package/es/Table/pipeline/useBreakpoint.mjs.map +1 -0
  447. package/es/Table/pipeline/useExpandable.mjs +45 -0
  448. package/es/Table/pipeline/useExpandable.mjs.map +1 -0
  449. package/es/Table/pipeline/useFilter.mjs +52 -0
  450. package/es/Table/pipeline/useFilter.mjs.map +1 -0
  451. package/es/Table/pipeline/useSelection.mjs +302 -0
  452. package/es/Table/pipeline/useSelection.mjs.map +1 -0
  453. package/es/Table/pipeline/useSorter.mjs +146 -0
  454. package/es/Table/pipeline/useSorter.mjs.map +1 -0
  455. package/es/Table/pipeline/useTableLocale.mjs +30 -0
  456. package/es/Table/pipeline/useTableLocale.mjs.map +1 -0
  457. package/es/Table/pipeline/useTableState.mjs +118 -0
  458. package/es/Table/pipeline/useTableState.mjs.map +1 -0
  459. package/es/Table/pipeline/useVirtualLayout.mjs +80 -0
  460. package/es/Table/pipeline/useVirtualLayout.mjs.map +1 -0
  461. package/es/Table/render/Body.mjs +150 -0
  462. package/es/Table/render/Body.mjs.map +1 -0
  463. package/es/Table/render/BodyCell.mjs +87 -0
  464. package/es/Table/render/BodyCell.mjs.map +1 -0
  465. package/es/Table/render/CellShell.mjs +84 -0
  466. package/es/Table/render/CellShell.mjs.map +1 -0
  467. package/es/Table/render/ExpandIcon.mjs +28 -0
  468. package/es/Table/render/ExpandIcon.mjs.map +1 -0
  469. package/es/Table/render/FilterDropdown.mjs +139 -0
  470. package/es/Table/render/FilterDropdown.mjs.map +1 -0
  471. package/es/Table/render/FilterPanel.mjs +152 -0
  472. package/es/Table/render/FilterPanel.mjs.map +1 -0
  473. package/es/Table/render/FixedFrost.mjs +113 -0
  474. package/es/Table/render/FixedFrost.mjs.map +1 -0
  475. package/es/Table/render/FixedHolder.mjs +51 -0
  476. package/es/Table/render/FixedHolder.mjs.map +1 -0
  477. package/es/Table/render/Header.mjs +184 -0
  478. package/es/Table/render/Header.mjs.map +1 -0
  479. package/es/Table/render/LoadingSkeleton.mjs +78 -0
  480. package/es/Table/render/LoadingSkeleton.mjs.map +1 -0
  481. package/es/Table/render/PaginationBar.mjs +71 -0
  482. package/es/Table/render/PaginationBar.mjs.map +1 -0
  483. package/es/Table/render/SelectionCells.mjs +111 -0
  484. package/es/Table/render/SelectionCells.mjs.map +1 -0
  485. package/es/Table/render/StickyScrollBar.mjs +99 -0
  486. package/es/Table/render/StickyScrollBar.mjs.map +1 -0
  487. package/es/Table/render/Summary.d.mts +16 -0
  488. package/es/Table/render/Summary.mjs +58 -0
  489. package/es/Table/render/Summary.mjs.map +1 -0
  490. package/es/Table/render/TableView.mjs +215 -0
  491. package/es/Table/render/TableView.mjs.map +1 -0
  492. package/es/Table/render/VirtualBody.mjs +101 -0
  493. package/es/Table/render/VirtualBody.mjs.map +1 -0
  494. package/es/Table/render/context.mjs +15 -0
  495. package/es/Table/render/context.mjs.map +1 -0
  496. package/es/Table/render/filterUtils.mjs +22 -0
  497. package/es/Table/render/filterUtils.mjs.map +1 -0
  498. package/es/Table/render/tableHelpers.mjs +27 -0
  499. package/es/Table/render/tableHelpers.mjs.map +1 -0
  500. package/es/Table/render/useColGroups.mjs +23 -0
  501. package/es/Table/render/useColGroups.mjs.map +1 -0
  502. package/es/Table/render/useScrollSync.mjs +104 -0
  503. package/es/Table/render/useScrollSync.mjs.map +1 -0
  504. package/es/Table/render/useViewContexts.mjs +134 -0
  505. package/es/Table/render/useViewContexts.mjs.map +1 -0
  506. package/es/Table/semantic.mjs +45 -0
  507. package/es/Table/semantic.mjs.map +1 -0
  508. package/es/Table/store/createTableStore.d.mts +1 -0
  509. package/es/Table/store/createTableStore.mjs +40 -0
  510. package/es/Table/store/createTableStore.mjs.map +1 -0
  511. package/es/Table/store/hooks.mjs +24 -0
  512. package/es/Table/store/hooks.mjs.map +1 -0
  513. package/es/Table/style.mjs +175 -90
  514. package/es/Table/style.mjs.map +1 -1
  515. package/es/Table/type.d.mts +467 -37
  516. package/es/Table/useTableController.mjs +293 -0
  517. package/es/Table/useTableController.mjs.map +1 -0
  518. package/es/Tabs/Tabs.mjs +2 -2
  519. package/es/Tabs/Tabs.mjs.map +1 -1
  520. package/es/Tabs/atoms.mjs +2 -2
  521. package/es/Tabs/atoms.mjs.map +1 -1
  522. package/es/Tag/Tag.mjs +2 -2
  523. package/es/Tag/Tag.mjs.map +1 -1
  524. package/es/Text/Text.mjs +2 -2
  525. package/es/Text/Text.mjs.map +1 -1
  526. package/es/Text/style.d.mts +3 -3
  527. package/es/Text/style.mjs +3 -3
  528. package/es/Text/style.mjs.map +1 -1
  529. package/es/ToggleGroup/ToggleGroup.mjs +3 -3
  530. package/es/ToggleGroup/ToggleGroup.mjs.map +1 -1
  531. package/es/ToggleGroup/atoms.mjs +2 -2
  532. package/es/ToggleGroup/atoms.mjs.map +1 -1
  533. package/es/Tooltip/TooltipGroup.mjs +3 -3
  534. package/es/Tooltip/TooltipGroup.mjs.map +1 -1
  535. package/es/Tooltip/TooltipStandalone.mjs +3 -3
  536. package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
  537. package/es/Tree/Tree.mjs +2 -2
  538. package/es/Tree/Tree.mjs.map +1 -1
  539. package/es/Tree/TreeNode.mjs +2 -2
  540. package/es/Tree/TreeNode.mjs.map +1 -1
  541. package/es/Video/Video.mjs +2 -2
  542. package/es/Video/Video.mjs.map +1 -1
  543. package/es/awesome/Features/FeatureItem.mjs +2 -2
  544. package/es/awesome/Features/FeatureItem.mjs.map +1 -1
  545. package/es/awesome/Hero/Hero.mjs +3 -3
  546. package/es/awesome/Hero/Hero.mjs.map +1 -1
  547. package/es/awesome/InstallBanner/InstallBanner.mjs +2 -2
  548. package/es/awesome/InstallBanner/InstallBanner.mjs.map +1 -1
  549. package/es/awesome/LandingHero/LandingHero.mjs +3 -3
  550. package/es/awesome/LandingHero/LandingHero.mjs.map +1 -1
  551. package/es/awesome/LogoMarquee/LogoMarquee.mjs +2 -2
  552. package/es/awesome/LogoMarquee/LogoMarquee.mjs.map +1 -1
  553. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs +4 -4
  554. package/es/awesome/TypewriterEffect/TypewriterEffect.mjs.map +1 -1
  555. package/es/awesome/landingActions.mjs +2 -2
  556. package/es/awesome/landingActions.mjs.map +1 -1
  557. package/es/chat/ChatItem/ChatItem.mjs +2 -2
  558. package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
  559. package/es/chat/EditableMessage/EditableMessage.mjs +3 -3
  560. package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
  561. package/es/chat/EditableMessageList/EditableMessageList.mjs +1 -1
  562. package/es/chat/MessageInput/MessageInput.mjs +3 -3
  563. package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
  564. package/es/dashboard/AuthLayout/AuthLayout.mjs +8 -4
  565. package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -1
  566. package/es/dashboard/AuthLayout/style.mjs +14 -3
  567. package/es/dashboard/AuthLayout/style.mjs.map +1 -1
  568. package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs +2 -2
  569. package/es/dashboard/AuthTools/AuthLocaleSwitch.mjs.map +1 -1
  570. package/es/dashboard/AuthTools/AuthThemeSwitch.mjs +2 -2
  571. package/es/dashboard/AuthTools/AuthThemeSwitch.mjs.map +1 -1
  572. package/es/dashboard/ConsoleNav/ConsoleNav.mjs +3 -3
  573. package/es/dashboard/ConsoleNav/ConsoleNav.mjs.map +1 -1
  574. package/es/dashboard/ConsoleNav/style.mjs +2 -2
  575. package/es/dashboard/ConsoleNav/style.mjs.map +1 -1
  576. package/es/dashboard/ConsoleShell/style.mjs +1 -1
  577. package/es/dashboard/ConsoleShell/style.mjs.map +1 -1
  578. package/es/dashboard/FilterSidebar/FilterSidebar.mjs +1 -1
  579. package/es/dashboard/FilterSidebar/style.mjs +2 -2
  580. package/es/dashboard/FilterSidebar/style.mjs.map +1 -1
  581. package/es/dashboard/FilterStrip/style.mjs +1 -1
  582. package/es/dashboard/FilterStrip/style.mjs.map +1 -1
  583. package/es/dashboard/MetricStrip/MetricCell.mjs +25 -14
  584. package/es/dashboard/MetricStrip/MetricCell.mjs.map +1 -1
  585. package/es/dashboard/MetricStrip/style.mjs +14 -1
  586. package/es/dashboard/MetricStrip/style.mjs.map +1 -1
  587. package/es/dashboard/MetricStrip/type.d.mts +2 -0
  588. package/es/dashboard/PageSkeleton/style.mjs +2 -1
  589. package/es/dashboard/PageSkeleton/style.mjs.map +1 -1
  590. package/es/dashboard/StatCard/StatCard.d.mts +1 -1
  591. package/es/dashboard/StatCard/StatCard.mjs +2 -1
  592. package/es/dashboard/StatCard/StatCard.mjs.map +1 -1
  593. package/es/dashboard/StatCard/type.d.mts +2 -0
  594. package/es/dashboard/Surface/Surface.mjs +3 -4
  595. package/es/dashboard/Surface/Surface.mjs.map +1 -1
  596. package/es/dashboard/Surface/link.mjs +1 -1
  597. package/es/dashboard/Surface/link.mjs.map +1 -1
  598. package/es/dashboard/Surface/style.mjs +15 -14
  599. package/es/dashboard/Surface/style.mjs.map +1 -1
  600. package/es/dashboard/index.mjs +2 -2
  601. package/es/eslint/noBaseUiSubpath.mjs +2 -1
  602. package/es/eslint/noBaseUiSubpath.mjs.map +1 -1
  603. package/es/i18n/resources/en/colorPicker.d.mts +5 -0
  604. package/es/i18n/resources/en/colorPicker.mjs +5 -0
  605. package/es/i18n/resources/en/colorPicker.mjs.map +1 -1
  606. package/es/i18n/resources/en/datePicker.d.mts +54 -0
  607. package/es/i18n/resources/en/datePicker.mjs +55 -1
  608. package/es/i18n/resources/en/datePicker.mjs.map +1 -1
  609. package/es/i18n/resources/en/index.d.mts +4 -3
  610. package/es/i18n/resources/en/index.mjs +3 -1
  611. package/es/i18n/resources/en/index.mjs.map +1 -1
  612. package/es/i18n/resources/en/table.d.mts +23 -0
  613. package/es/i18n/resources/en/table.mjs +24 -0
  614. package/es/i18n/resources/en/table.mjs.map +1 -0
  615. package/es/i18n/resources/zhCn/colorPicker.d.mts +5 -0
  616. package/es/i18n/resources/zhCn/colorPicker.mjs +5 -0
  617. package/es/i18n/resources/zhCn/colorPicker.mjs.map +1 -1
  618. package/es/i18n/resources/zhCn/datePicker.d.mts +54 -0
  619. package/es/i18n/resources/zhCn/datePicker.mjs +55 -1
  620. package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -1
  621. package/es/i18n/resources/zhCn/index.d.mts +4 -3
  622. package/es/i18n/resources/zhCn/index.mjs +4 -2
  623. package/es/i18n/resources/zhCn/index.mjs.map +1 -1
  624. package/es/i18n/resources/zhCn/table.d.mts +23 -0
  625. package/es/i18n/resources/zhCn/table.mjs +24 -0
  626. package/es/i18n/resources/zhCn/table.mjs.map +1 -0
  627. package/es/i18n/types.d.mts +3 -2
  628. package/es/index.d.mts +15 -6
  629. package/es/index.mjs +12 -6
  630. package/es/internal/overflow/OverflowList.mjs +71 -0
  631. package/es/internal/overflow/OverflowList.mjs.map +1 -0
  632. package/es/mdx/Callout/index.mjs +2 -2
  633. package/es/mdx/Callout/index.mjs.map +1 -1
  634. package/es/mdx/Cards/Card.mjs +2 -2
  635. package/es/mdx/Cards/Card.mjs.map +1 -1
  636. package/es/mdx/Cards/index.mjs +2 -2
  637. package/es/mdx/Cards/index.mjs.map +1 -1
  638. package/es/mdx/Mdx/index.mjs +2 -2
  639. package/es/mdx/Mdx/index.mjs.map +1 -1
  640. package/es/mdx/Steps/index.mjs +2 -2
  641. package/es/mdx/Steps/index.mjs.map +1 -1
  642. package/es/mdx/mdxComponents/Pre.mjs +5 -5
  643. package/es/mdx/mdxComponents/Pre.mjs.map +1 -1
  644. package/es/storybook/StoryBook/style.mjs +2 -0
  645. package/es/storybook/StoryBook/style.mjs.map +1 -1
  646. package/es/style.css +2966 -957
  647. package/es/styles/stylex/props.mjs +2 -2
  648. package/es/styles/stylex/props.mjs.map +1 -1
  649. package/es/styles/theme/themeCss.mjs +15 -0
  650. package/es/styles/theme/themeCss.mjs.map +1 -1
  651. package/es/theme.css +8 -0
  652. package/package.json +6 -1
  653. package/es/DatePicker/CalendarPanel.mjs +0 -189
  654. package/es/DatePicker/CalendarPanel.mjs.map +0 -1
  655. package/es/DatePicker/PickerShell.mjs +0 -43
  656. package/es/DatePicker/PickerShell.mjs.map +0 -1
  657. package/es/DatePicker/calendar.d.mts +0 -4
  658. package/es/DatePicker/calendar.mjs +0 -46
  659. package/es/DatePicker/calendar.mjs.map +0 -1
  660. package/es/Table/FilterMenu.mjs +0 -45
  661. package/es/Table/FilterMenu.mjs.map +0 -1
  662. package/es/Table/TableBody.mjs +0 -67
  663. package/es/Table/TableBody.mjs.map +0 -1
  664. package/es/Table/TableHead.mjs +0 -58
  665. package/es/Table/TableHead.mjs.map +0 -1
  666. package/es/Table/features.mjs +0 -12
  667. package/es/Table/features.mjs.map +0 -1
  668. package/es/Table/fixedOffsets.mjs +0 -29
  669. package/es/Table/fixedOffsets.mjs.map +0 -1
  670. package/es/Table/marker.stylex.mjs +0 -9
  671. package/es/Table/marker.stylex.mjs.map +0 -1
  672. package/es/Table/toColumnDefs.mjs +0 -26
  673. package/es/Table/toColumnDefs.mjs.map +0 -1
  674. package/es/Table/useTableState.mjs +0 -99
  675. package/es/Table/useTableState.mjs.map +0 -1
@@ -5,7 +5,7 @@ import { logoMarqueeMarker } from "./marker.stylex.mjs";
5
5
  import { styles } from "./style.mjs";
6
6
  import { memo } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
- import clsx from "clsx";
8
+ import clsx$1 from "clsx";
9
9
  import * as stylex from "@stylexjs/stylex";
10
10
  //#region src/awesome/LogoMarquee/LogoMarquee.tsx
11
11
  const Track = ({ hidden, iconOnly, iconSize, items }) => /* @__PURE__ */ jsx("div", {
@@ -42,7 +42,7 @@ const LogoMarquee = memo(({ caption, className, duration = 28, gap = 36, iconOnl
42
42
  items
43
43
  })]
44
44
  }), caption && /* @__PURE__ */ jsx("p", {
45
- className: clsx("lobe-logo-marquee-caption", stylex.props(styles.caption).className),
45
+ className: clsx$1("lobe-logo-marquee-caption", stylex.props(styles.caption).className),
46
46
  children: caption
47
47
  })]
48
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"LogoMarquee.mjs","names":[],"sources":["../../../src/awesome/LogoMarquee/LogoMarquee.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { type CSSProperties, memo } from 'react';\n\nimport { renderLandingIcon } from '@/awesome/landingIcon';\nimport { styleProps } from '@/styles/stylex/props';\n\nimport { logoMarqueeMarker } from './marker.stylex';\nimport { styles } from './style';\nimport type { LogoMarqueeProps } from './type';\n\nconst Track = ({\n hidden,\n iconOnly,\n iconSize,\n items,\n}: Pick<LogoMarqueeProps, 'iconOnly' | 'items'> & { hidden?: boolean; iconSize: number }) => (\n <div aria-hidden={hidden || undefined} {...stylex.props(styles.track)}>\n {items.map(({ icon, label }) => (\n <span key={label} title={iconOnly ? label : undefined} {...stylex.props(styles.item)}>\n {renderLandingIcon(icon, iconSize)}\n {!iconOnly && label}\n </span>\n ))}\n </div>\n);\n\nconst LogoMarquee = memo<LogoMarqueeProps>(\n ({\n caption,\n className,\n duration = 28,\n gap = 36,\n iconOnly = false,\n iconSize = 18,\n items,\n maxWidth = 640,\n style,\n ...rest\n }) => {\n const variables = {\n '--logo-marquee-duration': `${duration}s`,\n '--logo-marquee-gap': `${gap}px`,\n '--logo-marquee-max-width': typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth,\n } as CSSProperties;\n\n return (\n <div {...styleProps(styles.root, className, { ...variables, ...style })} {...rest}>\n <div {...stylex.props(logoMarqueeMarker, styles.viewport)}>\n <Track iconOnly={iconOnly} iconSize={iconSize} items={items} />\n <Track hidden iconOnly={iconOnly} iconSize={iconSize} items={items} />\n </div>\n {caption && (\n <p className={clsx('lobe-logo-marquee-caption', stylex.props(styles.caption).className)}>\n {caption}\n </p>\n )}\n </div>\n );\n },\n);\n\nLogoMarquee.displayName = 'LogoMarquee';\n\nexport default LogoMarquee;\n"],"mappings":";;;;;;;;;;AAWA,MAAM,SAAS,EACb,QACA,UACA,UACA,YAII,oBAAC,OAAD;CAAK,eAAa,UAAU,KAAA;CAAW,GAAI,OAAO,MAAM,OAAO,KAAK;CACrE,UAAA,MAAM,KAAK,EACZ,MACA,YACI,qBAAC,QAAD;EAAkB,OAAO,WAAW,QAAQ,KAAA;EAAW,GAAI,OAAO,MAAM,OAAO,IAAI;EAAnF,UAAA,CACC,kBAAkB,MAAM,QAAQ,GAChC,CAAC,YAAY,KACV;CAHO,GAAA,KAGP,CAAC;AACN,CAAA;AACP,MAAM,cAAc,MAAwB,EAC1C,SACA,WACA,WAAW,IACX,MAAM,IACN,WAAW,OACX,WAAW,IACX,OACA,WAAW,KACX,OACA,GAAG,WACC;CACJ,MAAM,YAAY;EAChB,2BAA2B,GAAG,SAAS;EACvC,sBAAsB,GAAG,IAAI;EAC7B,4BAA4B,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;CAC/E;CACA,OAAO,qBAAC,OAAD;EAAK,GAAI,WAAW,OAAO,MAAM,WAAW;GACjD,GAAG;GACH,GAAG;EACL,CAAC;EAAG,GAAI;EAHD,UAAA,CAID,qBAAC,OAAD;GAAK,GAAI,OAAO,MAAM,mBAAmB,OAAO,QAAQ;GAAxD,UAAA,CACE,oBAAC,OAAD;IAAiB;IAAoB;IAAiB;GAAQ,CAAA,GAC9D,oBAAC,OAAD;IAAO,QAAA;IAAiB;IAAoB;IAAiB;GAAQ,CAAA,CAClE;EACJ,CAAA,GAAA,WAAW,oBAAC,KAAD;GAAG,WAAW,KAAK,6BAA6B,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC,SAAS;GAC7F,UAAA;EACA,CAAA,CACF;;AACX,CAAC;AACD,YAAY,cAAc"}
1
+ {"version":3,"file":"LogoMarquee.mjs","names":["clsx"],"sources":["../../../src/awesome/LogoMarquee/LogoMarquee.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { type CSSProperties, memo } from 'react';\n\nimport { renderLandingIcon } from '@/awesome/landingIcon';\nimport { styleProps } from '@/styles/stylex/props';\n\nimport { logoMarqueeMarker } from './marker.stylex';\nimport { styles } from './style';\nimport type { LogoMarqueeProps } from './type';\n\nconst Track = ({\n hidden,\n iconOnly,\n iconSize,\n items,\n}: Pick<LogoMarqueeProps, 'iconOnly' | 'items'> & { hidden?: boolean; iconSize: number }) => (\n <div aria-hidden={hidden || undefined} {...stylex.props(styles.track)}>\n {items.map(({ icon, label }) => (\n <span key={label} title={iconOnly ? label : undefined} {...stylex.props(styles.item)}>\n {renderLandingIcon(icon, iconSize)}\n {!iconOnly && label}\n </span>\n ))}\n </div>\n);\n\nconst LogoMarquee = memo<LogoMarqueeProps>(\n ({\n caption,\n className,\n duration = 28,\n gap = 36,\n iconOnly = false,\n iconSize = 18,\n items,\n maxWidth = 640,\n style,\n ...rest\n }) => {\n const variables = {\n '--logo-marquee-duration': `${duration}s`,\n '--logo-marquee-gap': `${gap}px`,\n '--logo-marquee-max-width': typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth,\n } as CSSProperties;\n\n return (\n <div {...styleProps(styles.root, className, { ...variables, ...style })} {...rest}>\n <div {...stylex.props(logoMarqueeMarker, styles.viewport)}>\n <Track iconOnly={iconOnly} iconSize={iconSize} items={items} />\n <Track hidden iconOnly={iconOnly} iconSize={iconSize} items={items} />\n </div>\n {caption && (\n <p className={clsx('lobe-logo-marquee-caption', stylex.props(styles.caption).className)}>\n {caption}\n </p>\n )}\n </div>\n );\n },\n);\n\nLogoMarquee.displayName = 'LogoMarquee';\n\nexport default LogoMarquee;\n"],"mappings":";;;;;;;;;;AAWA,MAAM,SAAS,EACb,QACA,UACA,UACA,YAII,oBAAC,OAAD;CAAK,eAAa,UAAU,KAAA;CAAW,GAAI,OAAO,MAAM,OAAO,KAAK;CACrE,UAAA,MAAM,KAAK,EACZ,MACA,YACI,qBAAC,QAAD;EAAkB,OAAO,WAAW,QAAQ,KAAA;EAAW,GAAI,OAAO,MAAM,OAAO,IAAI;EAAnF,UAAA,CACC,kBAAkB,MAAM,QAAQ,GAChC,CAAC,YAAY,KACV;CAHO,GAAA,KAGP,CAAC;AACN,CAAA;AACP,MAAM,cAAc,MAAwB,EAC1C,SACA,WACA,WAAW,IACX,MAAM,IACN,WAAW,OACX,WAAW,IACX,OACA,WAAW,KACX,OACA,GAAG,WACC;CACJ,MAAM,YAAY;EAChB,2BAA2B,GAAG,SAAS;EACvC,sBAAsB,GAAG,IAAI;EAC7B,4BAA4B,OAAO,aAAa,WAAW,GAAG,SAAS,MAAM;CAC/E;CACA,OAAO,qBAAC,OAAD;EAAK,GAAI,WAAW,OAAO,MAAM,WAAW;GACjD,GAAG;GACH,GAAG;EACL,CAAC;EAAG,GAAI;EAHD,UAAA,CAID,qBAAC,OAAD;GAAK,GAAI,OAAO,MAAM,mBAAmB,OAAO,QAAQ;GAAxD,UAAA,CACE,oBAAC,OAAD;IAAiB;IAAoB;IAAiB;GAAQ,CAAA,GAC9D,oBAAC,OAAD;IAAO,QAAA;IAAiB;IAAoB;IAAiB;GAAQ,CAAA,CAClE;EACJ,CAAA,GAAA,WAAW,oBAAC,KAAD;GAAG,WAAWA,OAAK,6BAA6B,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC,SAAS;GAC7F,UAAA;EACA,CAAA,CACF;;AACX,CAAC;AACD,YAAY,cAAc"}
@@ -3,7 +3,7 @@ import { useMotionComponent } from "../../MotionProvider/index.mjs";
3
3
  import { styles } from "./style.mjs";
4
4
  import { createElement, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- import clsx from "clsx";
6
+ import clsx$1 from "clsx";
7
7
  import * as stylex from "@stylexjs/stylex";
8
8
  //#region src/awesome/TypewriterEffect/TypewriterEffect.tsx
9
9
  const TypewriterEffect = memo(({ sentences, as: Component = "div", typingSpeed = 100, initialDelay = 0, pauseDuration = 2e3, deletingSpeed = 50, deletePauseDuration = 0, loop = true, className = "", color, showCursor = true, hideCursorWhileTyping = false, cursorCharacter, cursorClassName = "", cursorColor, cursorBlinkDuration = .8, cursorFade = true, cursorStyle = "pipe", textColors = [], variableSpeed, onSentenceComplete, startOnVisible = false, reverseMode = false, segmentMode = "grapheme", ...props }) => {
@@ -134,7 +134,7 @@ const TypewriterEffect = memo(({ sentences, as: Component = "div", typingSpeed =
134
134
  const finalCursorColor = getCurrentCursorColor();
135
135
  const characters = splitText(displayedText);
136
136
  return createElement(Component, {
137
- className: clsx(stylex.props(styles.container).className, className),
137
+ className: clsx$1(stylex.props(styles.container).className, className),
138
138
  ref: containerRef,
139
139
  ...props
140
140
  }, /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
@@ -152,7 +152,7 @@ const TypewriterEffect = memo(({ sentences, as: Component = "div", typingSpeed =
152
152
  }, `${currentTextIndex}-${index}`))
153
153
  }), showCursor && (cursorFade ? /* @__PURE__ */ jsx(Motion.span, {
154
154
  animate: { opacity: shouldHideCursor ? 0 : 1 },
155
- className: clsx(stylex.props(getCursorStyle()).className, cursorClassName),
155
+ className: clsx$1(stylex.props(getCursorStyle()).className, cursorClassName),
156
156
  initial: { opacity: 0 },
157
157
  style: finalCursorColor ? { backgroundColor: finalCursorColor } : void 0,
158
158
  transition: {
@@ -163,7 +163,7 @@ const TypewriterEffect = memo(({ sentences, as: Component = "div", typingSpeed =
163
163
  },
164
164
  children: cursorCharacter
165
165
  }) : /* @__PURE__ */ jsx("span", {
166
- className: clsx(stylex.props(getCursorStyle()).className, cursorClassName),
166
+ className: clsx$1(stylex.props(getCursorStyle()).className, cursorClassName),
167
167
  style: {
168
168
  backgroundColor: finalCursorColor,
169
169
  opacity: shouldHideCursor ? 0 : 1
@@ -1 +1 @@
1
- {"version":3,"file":"TypewriterEffect.mjs","names":[],"sources":["../../../src/awesome/TypewriterEffect/TypewriterEffect.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { createElement, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useMotionComponent } from '@/MotionProvider';\n\nimport { styles } from './style';\nimport type { TypewriterEffectProps } from './type';\n\nconst TypewriterEffect = memo<TypewriterEffectProps>(\n ({\n sentences,\n as: Component = 'div',\n typingSpeed = 100,\n initialDelay = 0,\n pauseDuration = 2000,\n deletingSpeed = 50,\n deletePauseDuration = 0,\n loop = true,\n className = '',\n color,\n showCursor = true,\n hideCursorWhileTyping = false,\n cursorCharacter,\n cursorClassName = '',\n cursorColor,\n cursorBlinkDuration = 0.8,\n cursorFade = true,\n cursorStyle = 'pipe',\n textColors = [],\n variableSpeed,\n onSentenceComplete,\n startOnVisible = false,\n reverseMode = false,\n segmentMode = 'grapheme',\n ...props\n }: TypewriterEffectProps) => {\n const Motion = useMotionComponent();\n const [displayedText, setDisplayedText] = useState('');\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\n const [isDeleting, setIsDeleting] = useState(false);\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(!startOnVisible);\n const [isDeletePausing, setIsDeletePausing] = useState(false);\n const containerRef = useRef<HTMLElement>(null);\n\n const textArray = useMemo(\n () => (Array.isArray(sentences) ? sentences : [sentences]),\n [sentences],\n );\n\n // Helper function to split text based on segment mode\n const splitText = useCallback(\n (text: string): string[] => {\n // Use Intl.Segmenter if available\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\n const segmenter = new Intl.Segmenter(undefined, { granularity: segmentMode });\n return Array.from(segmenter.segment(text), (segment) => segment.segment);\n }\n\n // Fallback when Intl.Segmenter is not available\n if (segmentMode === 'word') {\n // Simple word splitting fallback\n return text.split(/(\\s+)/).filter(Boolean);\n }\n\n // Grapheme fallback\n return Array.from(text);\n },\n [segmentMode],\n );\n\n const getRandomSpeed = useCallback(() => {\n if (!variableSpeed) return typingSpeed;\n const { min, max } = variableSpeed;\n return Math.random() * (max - min) + min;\n }, [variableSpeed, typingSpeed]);\n\n const getCurrentTextColor = () => {\n if (textColors.length > 0) {\n return textColors[currentTextIndex % textColors.length];\n }\n return color;\n };\n\n const getCurrentCursorColor = () => {\n return cursorColor || color;\n };\n\n useEffect(() => {\n if (!startOnVisible || !containerRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n }\n });\n },\n { threshold: 0.1 },\n );\n\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [startOnVisible]);\n\n useEffect(() => {\n if (!isVisible) return;\n\n let timeout: ReturnType<typeof setTimeout>;\n\n const currentText = textArray[currentTextIndex];\n // Split text based on segment mode\n const textSegments = splitText(currentText);\n const processedText = reverseMode ? textSegments.reverse().join('') : currentText;\n\n // Handle delete pause state\n if (isDeletePausing) {\n timeout = setTimeout(() => {\n setIsDeletePausing(false);\n }, deletePauseDuration);\n return () => clearTimeout(timeout);\n }\n\n const executeTypingAnimation = () => {\n if (isDeleting) {\n if (displayedText === '') {\n setIsDeleting(false);\n if (currentTextIndex === textArray.length - 1 && !loop) {\n return;\n }\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n setCurrentTextIndex((prev) => (prev + 1) % textArray.length);\n setCurrentCharIndex(0);\n\n if (deletePauseDuration > 0) {\n setIsDeletePausing(true);\n return;\n }\n } else {\n timeout = setTimeout(() => {\n setDisplayedText((prev) => {\n const segments = splitText(prev);\n return segments.slice(0, -1).join('');\n });\n }, deletingSpeed);\n }\n } else {\n const processedSegments = splitText(processedText);\n if (currentCharIndex < processedSegments.length) {\n timeout = setTimeout(\n () => {\n setDisplayedText((prev) => prev + processedSegments[currentCharIndex]);\n setCurrentCharIndex((prev) => prev + 1);\n },\n variableSpeed ? getRandomSpeed() : typingSpeed,\n );\n } else if (textArray.length >= 1) {\n if (!loop && currentTextIndex === textArray.length - 1) return;\n\n timeout = setTimeout(() => {\n setIsDeleting(true);\n }, pauseDuration);\n }\n }\n };\n\n if (currentCharIndex === 0 && !isDeleting && displayedText === '') {\n timeout = setTimeout(executeTypingAnimation, initialDelay);\n } else {\n executeTypingAnimation();\n }\n\n return () => clearTimeout(timeout);\n }, [\n currentCharIndex,\n displayedText,\n isDeleting,\n isDeletePausing,\n typingSpeed,\n deletingSpeed,\n deletePauseDuration,\n pauseDuration,\n textArray,\n currentTextIndex,\n loop,\n initialDelay,\n isVisible,\n reverseMode,\n variableSpeed,\n onSentenceComplete,\n getRandomSpeed,\n splitText,\n ]);\n\n const getCursorStyle = () => {\n if (cursorCharacter) return styles.cursorCustom;\n\n switch (cursorStyle) {\n case 'block': {\n return styles.cursorBlock;\n }\n case 'dot': {\n return styles.cursorDot;\n }\n case 'underscore': {\n return styles.cursorUnderscore;\n }\n case 'pipe': {\n return styles.cursor;\n }\n }\n };\n\n const currentTextLength = splitText(textArray[currentTextIndex]).length;\n const isTyping = currentCharIndex < currentTextLength && !isDeleting;\n const isAfterTyping = currentCharIndex === currentTextLength && !isDeleting;\n\n const shouldHideCursor = (() => {\n if (hideCursorWhileTyping === true) return true; // 完全隐藏\n if (hideCursorWhileTyping === 'typing') return isTyping || isDeleting; // 打字和删除时隐藏\n if (hideCursorWhileTyping === 'afterTyping') return isAfterTyping; // 打字完成后隐藏\n return false;\n })();\n\n const textColor = getCurrentTextColor();\n const finalCursorColor = getCurrentCursorColor();\n\n // Split displayed text for animation\n const characters = splitText(displayedText);\n\n return createElement(\n Component,\n {\n className: clsx(stylex.props(styles.container).className, className),\n ref: containerRef,\n ...props,\n },\n <>\n <span {...stylex.props(styles.text)} style={textColor ? { color: textColor } : undefined}>\n {characters.map((char, index) => (\n <Motion.span\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n key={`${currentTextIndex}-${index}`}\n style={{ display: 'inline-block' }}\n transition={{\n duration: typingSpeed / 500,\n ease: 'easeInOut',\n }}\n >\n {char === ' ' ? '\\u00A0' : char}\n </Motion.span>\n ))}\n </span>\n {showCursor &&\n (cursorFade ? (\n <Motion.span\n animate={{ opacity: shouldHideCursor ? 0 : 1 }}\n className={clsx(stylex.props(getCursorStyle()).className, cursorClassName)}\n initial={{ opacity: 0 }}\n style={finalCursorColor ? { backgroundColor: finalCursorColor } : undefined}\n transition={{\n duration: shouldHideCursor ? 0.2 : cursorBlinkDuration,\n ease: 'easeInOut',\n repeat: shouldHideCursor ? 0 : Number.POSITIVE_INFINITY,\n repeatType: 'reverse',\n }}\n >\n {cursorCharacter}\n </Motion.span>\n ) : (\n <span\n className={clsx(stylex.props(getCursorStyle()).className, cursorClassName)}\n style={{\n backgroundColor: finalCursorColor,\n opacity: shouldHideCursor ? 0 : 1,\n }}\n >\n {cursorCharacter}\n </span>\n ))}\n </>,\n );\n },\n);\n\nTypewriterEffect.displayName = 'TypewriterEffect';\n\nexport default TypewriterEffect;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TypewriterEffect.mjs","names":["clsx"],"sources":["../../../src/awesome/TypewriterEffect/TypewriterEffect.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { createElement, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useMotionComponent } from '@/MotionProvider';\n\nimport { styles } from './style';\nimport type { TypewriterEffectProps } from './type';\n\nconst TypewriterEffect = memo<TypewriterEffectProps>(\n ({\n sentences,\n as: Component = 'div',\n typingSpeed = 100,\n initialDelay = 0,\n pauseDuration = 2000,\n deletingSpeed = 50,\n deletePauseDuration = 0,\n loop = true,\n className = '',\n color,\n showCursor = true,\n hideCursorWhileTyping = false,\n cursorCharacter,\n cursorClassName = '',\n cursorColor,\n cursorBlinkDuration = 0.8,\n cursorFade = true,\n cursorStyle = 'pipe',\n textColors = [],\n variableSpeed,\n onSentenceComplete,\n startOnVisible = false,\n reverseMode = false,\n segmentMode = 'grapheme',\n ...props\n }: TypewriterEffectProps) => {\n const Motion = useMotionComponent();\n const [displayedText, setDisplayedText] = useState('');\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\n const [isDeleting, setIsDeleting] = useState(false);\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(!startOnVisible);\n const [isDeletePausing, setIsDeletePausing] = useState(false);\n const containerRef = useRef<HTMLElement>(null);\n\n const textArray = useMemo(\n () => (Array.isArray(sentences) ? sentences : [sentences]),\n [sentences],\n );\n\n // Helper function to split text based on segment mode\n const splitText = useCallback(\n (text: string): string[] => {\n // Use Intl.Segmenter if available\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\n const segmenter = new Intl.Segmenter(undefined, { granularity: segmentMode });\n return Array.from(segmenter.segment(text), (segment) => segment.segment);\n }\n\n // Fallback when Intl.Segmenter is not available\n if (segmentMode === 'word') {\n // Simple word splitting fallback\n return text.split(/(\\s+)/).filter(Boolean);\n }\n\n // Grapheme fallback\n return Array.from(text);\n },\n [segmentMode],\n );\n\n const getRandomSpeed = useCallback(() => {\n if (!variableSpeed) return typingSpeed;\n const { min, max } = variableSpeed;\n return Math.random() * (max - min) + min;\n }, [variableSpeed, typingSpeed]);\n\n const getCurrentTextColor = () => {\n if (textColors.length > 0) {\n return textColors[currentTextIndex % textColors.length];\n }\n return color;\n };\n\n const getCurrentCursorColor = () => {\n return cursorColor || color;\n };\n\n useEffect(() => {\n if (!startOnVisible || !containerRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n }\n });\n },\n { threshold: 0.1 },\n );\n\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [startOnVisible]);\n\n useEffect(() => {\n if (!isVisible) return;\n\n let timeout: ReturnType<typeof setTimeout>;\n\n const currentText = textArray[currentTextIndex];\n // Split text based on segment mode\n const textSegments = splitText(currentText);\n const processedText = reverseMode ? textSegments.reverse().join('') : currentText;\n\n // Handle delete pause state\n if (isDeletePausing) {\n timeout = setTimeout(() => {\n setIsDeletePausing(false);\n }, deletePauseDuration);\n return () => clearTimeout(timeout);\n }\n\n const executeTypingAnimation = () => {\n if (isDeleting) {\n if (displayedText === '') {\n setIsDeleting(false);\n if (currentTextIndex === textArray.length - 1 && !loop) {\n return;\n }\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n setCurrentTextIndex((prev) => (prev + 1) % textArray.length);\n setCurrentCharIndex(0);\n\n if (deletePauseDuration > 0) {\n setIsDeletePausing(true);\n return;\n }\n } else {\n timeout = setTimeout(() => {\n setDisplayedText((prev) => {\n const segments = splitText(prev);\n return segments.slice(0, -1).join('');\n });\n }, deletingSpeed);\n }\n } else {\n const processedSegments = splitText(processedText);\n if (currentCharIndex < processedSegments.length) {\n timeout = setTimeout(\n () => {\n setDisplayedText((prev) => prev + processedSegments[currentCharIndex]);\n setCurrentCharIndex((prev) => prev + 1);\n },\n variableSpeed ? getRandomSpeed() : typingSpeed,\n );\n } else if (textArray.length >= 1) {\n if (!loop && currentTextIndex === textArray.length - 1) return;\n\n timeout = setTimeout(() => {\n setIsDeleting(true);\n }, pauseDuration);\n }\n }\n };\n\n if (currentCharIndex === 0 && !isDeleting && displayedText === '') {\n timeout = setTimeout(executeTypingAnimation, initialDelay);\n } else {\n executeTypingAnimation();\n }\n\n return () => clearTimeout(timeout);\n }, [\n currentCharIndex,\n displayedText,\n isDeleting,\n isDeletePausing,\n typingSpeed,\n deletingSpeed,\n deletePauseDuration,\n pauseDuration,\n textArray,\n currentTextIndex,\n loop,\n initialDelay,\n isVisible,\n reverseMode,\n variableSpeed,\n onSentenceComplete,\n getRandomSpeed,\n splitText,\n ]);\n\n const getCursorStyle = () => {\n if (cursorCharacter) return styles.cursorCustom;\n\n switch (cursorStyle) {\n case 'block': {\n return styles.cursorBlock;\n }\n case 'dot': {\n return styles.cursorDot;\n }\n case 'underscore': {\n return styles.cursorUnderscore;\n }\n case 'pipe': {\n return styles.cursor;\n }\n }\n };\n\n const currentTextLength = splitText(textArray[currentTextIndex]).length;\n const isTyping = currentCharIndex < currentTextLength && !isDeleting;\n const isAfterTyping = currentCharIndex === currentTextLength && !isDeleting;\n\n const shouldHideCursor = (() => {\n if (hideCursorWhileTyping === true) return true; // 完全隐藏\n if (hideCursorWhileTyping === 'typing') return isTyping || isDeleting; // 打字和删除时隐藏\n if (hideCursorWhileTyping === 'afterTyping') return isAfterTyping; // 打字完成后隐藏\n return false;\n })();\n\n const textColor = getCurrentTextColor();\n const finalCursorColor = getCurrentCursorColor();\n\n // Split displayed text for animation\n const characters = splitText(displayedText);\n\n return createElement(\n Component,\n {\n className: clsx(stylex.props(styles.container).className, className),\n ref: containerRef,\n ...props,\n },\n <>\n <span {...stylex.props(styles.text)} style={textColor ? { color: textColor } : undefined}>\n {characters.map((char, index) => (\n <Motion.span\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n key={`${currentTextIndex}-${index}`}\n style={{ display: 'inline-block' }}\n transition={{\n duration: typingSpeed / 500,\n ease: 'easeInOut',\n }}\n >\n {char === ' ' ? '\\u00A0' : char}\n </Motion.span>\n ))}\n </span>\n {showCursor &&\n (cursorFade ? (\n <Motion.span\n animate={{ opacity: shouldHideCursor ? 0 : 1 }}\n className={clsx(stylex.props(getCursorStyle()).className, cursorClassName)}\n initial={{ opacity: 0 }}\n style={finalCursorColor ? { backgroundColor: finalCursorColor } : undefined}\n transition={{\n duration: shouldHideCursor ? 0.2 : cursorBlinkDuration,\n ease: 'easeInOut',\n repeat: shouldHideCursor ? 0 : Number.POSITIVE_INFINITY,\n repeatType: 'reverse',\n }}\n >\n {cursorCharacter}\n </Motion.span>\n ) : (\n <span\n className={clsx(stylex.props(getCursorStyle()).className, cursorClassName)}\n style={{\n backgroundColor: finalCursorColor,\n opacity: shouldHideCursor ? 0 : 1,\n }}\n >\n {cursorCharacter}\n </span>\n ))}\n </>,\n );\n },\n);\n\nTypewriterEffect.displayName = 'TypewriterEffect';\n\nexport default TypewriterEffect;\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { isExternalHref, renderLandingLink } from "./landingLink.mjs";
4
4
  import BottomGradientButton from "./BottomGradientButton/BottomGradientButton.mjs";
5
5
  import { Fragment } from "react";
6
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
- import clsx from "clsx";
7
+ import clsx$1 from "clsx";
8
8
  //#region src/awesome/landingActions.tsx
9
9
  const styles = {
10
10
  group: {
@@ -27,7 +27,7 @@ const LandingActions = ({ actions, className, onNavigate, renderLink, size = "la
27
27
  styles.group,
28
28
  size === "small" ? styles.groupSmall : styles.groupLarge,
29
29
  xstyle
30
- ], clsx("lobe-landing-actions", className)),
30
+ ], clsx$1("lobe-landing-actions", className)),
31
31
  "data-size": size,
32
32
  children: actions.map(({ external, href, icon, iconPlacement = "start", label, primary }) => {
33
33
  const iconNode = icon && /* @__PURE__ */ jsx(Icon, {
@@ -1 +1 @@
1
- {"version":3,"file":"landingActions.mjs","names":[],"sources":["../../src/awesome/landingActions.tsx"],"sourcesContent":["import './landingActions.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { Fragment, type ReactNode } from 'react';\n\nimport BottomGradientButton from '@/awesome/BottomGradientButton';\nimport { isExternalHref, type LandingLinkRender, renderLandingLink } from '@/awesome/landingLink';\nimport Icon, { type IconProps } from '@/Icon';\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { media } from '@/styles/stylex/media.stylex';\nimport { styleProps } from '@/styles/stylex/props';\n\nexport interface LandingAction {\n /** Opens in a new tab. Inferred from absolute URLs when omitted. */\n external?: boolean;\n href: string;\n icon?: IconProps['icon'];\n /** Places the icon after the label, e.g. for an arrow. */\n iconPlacement?: 'start' | 'end';\n label: ReactNode;\n /** The primary action is a filled pill; others render as BottomGradientButton. */\n primary?: boolean;\n}\n\nconst styles = stylex.create({\n action: {\n gap: 8,\n borderColor: 'transparent',\n borderRadius: 999,\n borderStyle: 'solid',\n borderWidth: 1,\n paddingBlock: 0,\n paddingInline: 22,\n transition: 'filter 140ms ease, transform 90ms ease',\n alignItems: 'center',\n backgroundColor: cssVar.colorText,\n color: cssVar.colorBgContainer,\n display: 'inline-flex',\n filter: { 'default': null, ':hover': 'brightness(1.06)' },\n fontSize: cssVar.fontSize,\n fontWeight: 600,\n justifyContent: 'center',\n minBlockSize: 44,\n textDecoration: 'none',\n transform: { 'default': null, ':active': 'scale(0.97)' },\n whiteSpace: 'nowrap',\n },\n actionSmall: {\n gap: 6,\n paddingInline: 14,\n fontSize: cssVar.fontSizeSM,\n minBlockSize: 34,\n },\n group: {\n gap: 12,\n display: 'flex',\n flexWrap: 'wrap',\n },\n groupLarge: {\n alignSelf: { default: null, [media.mobile]: 'stretch' },\n },\n groupSmall: {\n gap: 8,\n },\n});\n\nexport type LandingNavigate = (href: string) => void;\n\nexport interface LandingActionsProps {\n actions: LandingAction[];\n className?: string;\n /** Client-side navigation for internal non-primary actions, which render as buttons with an href. */\n onNavigate?: LandingNavigate;\n renderLink?: LandingLinkRender;\n size?: 'large' | 'small';\n xstyle?: Parameters<typeof styleProps>[0];\n}\n\nexport const LandingActions = ({\n actions,\n className,\n onNavigate,\n renderLink,\n size = 'large',\n xstyle,\n}: LandingActionsProps) => (\n <div\n {...styleProps(\n [styles.group, size === 'small' ? styles.groupSmall : styles.groupLarge, xstyle],\n clsx('lobe-landing-actions', className),\n )}\n data-size={size}\n >\n {actions.map(({ external, href, icon, iconPlacement = 'start', label, primary }) => {\n const iconNode = icon && <Icon icon={icon} size={size === 'small' ? 14 : 16} />;\n if (!primary) {\n const isExternal = external ?? isExternalHref(href);\n return (\n <BottomGradientButton\n href={href}\n icon={iconNode}\n iconPosition={iconPlacement}\n key={href}\n rel={isExternal ? 'noreferrer' : undefined}\n size={size === 'small' ? 'middle' : 'large'}\n target={isExternal ? '_blank' : undefined}\n onClick={\n !isExternal && onNavigate\n ? (event) => {\n event.preventDefault();\n onNavigate(href);\n }\n : undefined\n }\n >\n {label}\n </BottomGradientButton>\n );\n }\n return (\n <Fragment key={href}>\n {renderLandingLink(renderLink, {\n children: (\n <>\n {iconPlacement === 'start' && iconNode}\n {label}\n {iconPlacement === 'end' && iconNode}\n </>\n ),\n className: stylex.props(styles.action, size === 'small' && styles.actionSmall)\n .className,\n external,\n href,\n })}\n </Fragment>\n );\n })}\n </div>\n);\n"],"mappings":";;;;;;;;AAuBA,MAAM,SAAS;CACb,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,OAAO;CACT;AACF;AAWA,MAAa,kBAAkB,EAC7B,SACA,WACA,YACA,YACA,OAAO,SACP,aACyB,oBAAC,OAAD;CAAK,GAAI,WAAW;EAAC,OAAO;EAAO,SAAS,UAAU,OAAO,aAAa,OAAO;EAAY;CAAM,GAAG,KAAK,wBAAwB,SAAS,CAAC;CAAG,aAAW;CACjL,UAAA,QAAQ,KAAK,EACd,UACA,MACA,MACA,gBAAgB,SAChB,OACA,cACI;EACJ,MAAM,WAAW,QAAQ,oBAAC,MAAD;GAAY;GAAM,MAAM,SAAS,UAAU,KAAK;EAAK,CAAA;EAC9E,IAAI,CAAC,SAAS;GACZ,MAAM,aAAa,YAAY,eAAe,IAAI;GAClD,OAAO,oBAAC,sBAAD;IAA4B;IAAM,MAAM;IAAU,cAAc;IAA0B,KAAK,aAAa,eAAe,KAAA;IAAW,MAAM,SAAS,UAAU,WAAW;IAAS,QAAQ,aAAa,WAAW,KAAA;IAAW,SAAS,CAAC,cAAc,cAAa,UAAS;KACjR,MAAM,eAAe;KACrB,WAAW,IAAI;IACjB,IAAI,KAAA;IACG,UAAA;GACmB,GALiE,IAKjE;EAC5B;EACA,OAAO,oBAAC,UAAD,EAAA,UACA,kBAAkB,YAAY;GACjC,UAAU,qBAAA,YAAA,EAAA,UAAA;IACD,kBAAkB,WAAW;IAC7B;IACA,kBAAkB,SAAS;GAC5B,EAAA,CAAA;GACR,WAAW;IACT,GAAG,EACD,WAAW,8LACb;IACA,GAAG,EACD,WAAW,6LACb;GACF,EAAE,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;GAC7B;GACA;EACF,CAAC,EACW,GAlBQ,IAkBR;CAChB,CAAC;AACI,CAAA"}
1
+ {"version":3,"file":"landingActions.mjs","names":["clsx"],"sources":["../../src/awesome/landingActions.tsx"],"sourcesContent":["import './landingActions.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { Fragment, type ReactNode } from 'react';\n\nimport BottomGradientButton from '@/awesome/BottomGradientButton';\nimport { isExternalHref, type LandingLinkRender, renderLandingLink } from '@/awesome/landingLink';\nimport Icon, { type IconProps } from '@/Icon';\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { media } from '@/styles/stylex/media.stylex';\nimport { styleProps } from '@/styles/stylex/props';\n\nexport interface LandingAction {\n /** Opens in a new tab. Inferred from absolute URLs when omitted. */\n external?: boolean;\n href: string;\n icon?: IconProps['icon'];\n /** Places the icon after the label, e.g. for an arrow. */\n iconPlacement?: 'start' | 'end';\n label: ReactNode;\n /** The primary action is a filled pill; others render as BottomGradientButton. */\n primary?: boolean;\n}\n\nconst styles = stylex.create({\n action: {\n gap: 8,\n borderColor: 'transparent',\n borderRadius: 999,\n borderStyle: 'solid',\n borderWidth: 1,\n paddingBlock: 0,\n paddingInline: 22,\n transition: 'filter 140ms ease, transform 90ms ease',\n alignItems: 'center',\n backgroundColor: cssVar.colorText,\n color: cssVar.colorBgContainer,\n display: 'inline-flex',\n filter: { 'default': null, ':hover': 'brightness(1.06)' },\n fontSize: cssVar.fontSize,\n fontWeight: 600,\n justifyContent: 'center',\n minBlockSize: 44,\n textDecoration: 'none',\n transform: { 'default': null, ':active': 'scale(0.97)' },\n whiteSpace: 'nowrap',\n },\n actionSmall: {\n gap: 6,\n paddingInline: 14,\n fontSize: cssVar.fontSizeSM,\n minBlockSize: 34,\n },\n group: {\n gap: 12,\n display: 'flex',\n flexWrap: 'wrap',\n },\n groupLarge: {\n alignSelf: { default: null, [media.mobile]: 'stretch' },\n },\n groupSmall: {\n gap: 8,\n },\n});\n\nexport type LandingNavigate = (href: string) => void;\n\nexport interface LandingActionsProps {\n actions: LandingAction[];\n className?: string;\n /** Client-side navigation for internal non-primary actions, which render as buttons with an href. */\n onNavigate?: LandingNavigate;\n renderLink?: LandingLinkRender;\n size?: 'large' | 'small';\n xstyle?: Parameters<typeof styleProps>[0];\n}\n\nexport const LandingActions = ({\n actions,\n className,\n onNavigate,\n renderLink,\n size = 'large',\n xstyle,\n}: LandingActionsProps) => (\n <div\n {...styleProps(\n [styles.group, size === 'small' ? styles.groupSmall : styles.groupLarge, xstyle],\n clsx('lobe-landing-actions', className),\n )}\n data-size={size}\n >\n {actions.map(({ external, href, icon, iconPlacement = 'start', label, primary }) => {\n const iconNode = icon && <Icon icon={icon} size={size === 'small' ? 14 : 16} />;\n if (!primary) {\n const isExternal = external ?? isExternalHref(href);\n return (\n <BottomGradientButton\n href={href}\n icon={iconNode}\n iconPosition={iconPlacement}\n key={href}\n rel={isExternal ? 'noreferrer' : undefined}\n size={size === 'small' ? 'middle' : 'large'}\n target={isExternal ? '_blank' : undefined}\n onClick={\n !isExternal && onNavigate\n ? (event) => {\n event.preventDefault();\n onNavigate(href);\n }\n : undefined\n }\n >\n {label}\n </BottomGradientButton>\n );\n }\n return (\n <Fragment key={href}>\n {renderLandingLink(renderLink, {\n children: (\n <>\n {iconPlacement === 'start' && iconNode}\n {label}\n {iconPlacement === 'end' && iconNode}\n </>\n ),\n className: stylex.props(styles.action, size === 'small' && styles.actionSmall)\n .className,\n external,\n href,\n })}\n </Fragment>\n );\n })}\n </div>\n);\n"],"mappings":";;;;;;;;AAuBA,MAAM,SAAS;CACb,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,OAAO;CACT;AACF;AAWA,MAAa,kBAAkB,EAC7B,SACA,WACA,YACA,YACA,OAAO,SACP,aACyB,oBAAC,OAAD;CAAK,GAAI,WAAW;EAAC,OAAO;EAAO,SAAS,UAAU,OAAO,aAAa,OAAO;EAAY;CAAM,GAAGA,OAAK,wBAAwB,SAAS,CAAC;CAAG,aAAW;CACjL,UAAA,QAAQ,KAAK,EACd,UACA,MACA,MACA,gBAAgB,SAChB,OACA,cACI;EACJ,MAAM,WAAW,QAAQ,oBAAC,MAAD;GAAY;GAAM,MAAM,SAAS,UAAU,KAAK;EAAK,CAAA;EAC9E,IAAI,CAAC,SAAS;GACZ,MAAM,aAAa,YAAY,eAAe,IAAI;GAClD,OAAO,oBAAC,sBAAD;IAA4B;IAAM,MAAM;IAAU,cAAc;IAA0B,KAAK,aAAa,eAAe,KAAA;IAAW,MAAM,SAAS,UAAU,WAAW;IAAS,QAAQ,aAAa,WAAW,KAAA;IAAW,SAAS,CAAC,cAAc,cAAa,UAAS;KACjR,MAAM,eAAe;KACrB,WAAW,IAAI;IACjB,IAAI,KAAA;IACG,UAAA;GACmB,GALiE,IAKjE;EAC5B;EACA,OAAO,oBAAC,UAAD,EAAA,UACA,kBAAkB,YAAY;GACjC,UAAU,qBAAA,YAAA,EAAA,UAAA;IACD,kBAAkB,WAAW;IAC7B;IACA,kBAAkB,SAAS;GAC5B,EAAA,CAAA;GACR,WAAW;IACT,GAAG,EACD,WAAW,8LACb;IACA,GAAG,EACD,WAAW,6LACb;GACF,EAAE,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;GAC7B;GACA;EACF,CAAC,EACW,GAlBQ,IAkBR;CAChB,CAAC;AACI,CAAA"}
@@ -13,7 +13,7 @@ import MessageContent from "./components/MessageContent.mjs";
13
13
  import Title from "./components/Title.mjs";
14
14
  import { memo, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
16
- import clsx from "clsx";
16
+ import clsx$1 from "clsx";
17
17
  import * as stylex from "@stylexjs/stylex";
18
18
  //#region src/chat/ChatItem/ChatItem.tsx
19
19
  const MOBILE_AVATAR_SIZE = 32;
@@ -45,7 +45,7 @@ const ChatItem = memo(({ avatarAddon, onAvatarClick, avatarProps, actions, class
45
45
  return () => observer.disconnect();
46
46
  }, [variant, actionsWrapWidth]);
47
47
  const isDocs = variant === "docs";
48
- const containerClassName = styleProps([styles.container, isDocs && styles.containerDocs], clsx("lobe-chat-item", isDocs ? "lobe-chat-item-docs" : "lobe-chat-item-bubble", className)).className;
48
+ const containerClassName = styleProps([styles.container, isDocs && styles.containerDocs], clsx$1("lobe-chat-item", isDocs ? "lobe-chat-item-docs" : "lobe-chat-item-bubble", className)).className;
49
49
  return /* @__PURE__ */ jsxs(FlexBasic_default, {
50
50
  className: containerClassName,
51
51
  direction: placement === "left" ? "horizontal" : "horizontal-reverse",
@@ -1 +1 @@
1
- {"version":3,"file":"ChatItem.mjs","names":["chatMessages","Flexbox"],"sources":["../../../src/chat/ChatItem/ChatItem.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport chatMessages from '@/i18n/resources/en/chat';\nimport { useTranslation } from '@/i18n/useTranslation';\nimport { styleProps } from '@/styles/stylex/props';\nimport { useResponsive } from '@/styles/theme/scope';\n\nimport Actions from './components/Actions';\nimport Avatar from './components/Avatar';\nimport BorderSpacing from './components/BorderSpacing';\nimport ErrorContent from './components/ErrorContent';\nimport MessageContent from './components/MessageContent';\nimport Title from './components/Title';\nimport { styles } from './style';\nimport type { ChatItemProps } from './type';\n\nconst MOBILE_AVATAR_SIZE = 32;\n\nconst ChatItem = memo<ChatItemProps>(\n ({\n avatarAddon,\n onAvatarClick,\n avatarProps,\n actions,\n className,\n primary,\n loading,\n message,\n placeholderMessage,\n placement = 'left',\n variant = 'bubble',\n avatar,\n error,\n showTitle,\n time,\n editing,\n onChange,\n onEditingChange,\n messageExtra,\n renderMessage,\n text,\n errorMessage,\n onDoubleClick,\n fontSize,\n aboveMessage,\n belowMessage,\n markdownProps,\n actionsWrapWidth = 54,\n showAvatar = true,\n titleAddon,\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const { t } = useTranslation(chatMessages);\n\n const avatarSize = mobile ? MOBILE_AVATAR_SIZE : avatarProps?.size || 40;\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${avatarSize}px`,\n }),\n [avatarSize],\n );\n\n const hasTime = Boolean(time);\n const placeholderText = placeholderMessage ?? t('chat.placeholder');\n const avatarAlt = avatarProps?.alt || avatar.title || t('chat.avatar');\n\n // 在 ChatItem 组件中添加\n const contentRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [layoutMode, setLayoutMode] = useState<'horizontal' | 'vertical'>(\n variant === 'bubble' ? 'horizontal' : 'vertical',\n );\n\n // 使用 ResizeObserver 监控内容和容器尺寸\n useEffect(() => {\n if (variant === 'docs') {\n setLayoutMode('vertical');\n return;\n }\n\n if (!contentRef.current || !containerRef.current) return;\n\n const observer = new ResizeObserver(() => {\n if (!contentRef.current || !containerRef.current) return;\n\n const containerWidth = containerRef.current.clientWidth;\n const contentWidth = contentRef.current.scrollWidth; // 使用scrollWidth获取实际内容宽度\n\n // 预留给Actions的最小空间 (根据实际Actions大小调整)\n\n // 只有当内容宽度 + Actions最小宽度 > 容器宽度时才切换布局\n setLayoutMode(contentWidth + actionsWrapWidth > containerWidth ? 'vertical' : 'horizontal');\n });\n\n observer.observe(contentRef.current);\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [variant, actionsWrapWidth]);\n\n const isDocs = variant === 'docs';\n const containerClassName = styleProps(\n [styles.container, isDocs && styles.containerDocs],\n clsx('lobe-chat-item', isDocs ? 'lobe-chat-item-docs' : 'lobe-chat-item-bubble', className),\n ).className;\n\n return (\n <Flexbox\n className={containerClassName}\n direction={placement === 'left' ? 'horizontal' : 'horizontal-reverse'}\n gap={mobile ? 6 : 12}\n style={cssVariables}\n width={'100%'}\n {...rest}\n >\n {showAvatar && (\n <Avatar\n {...avatarProps}\n addon={avatarAddon}\n alt={avatarAlt}\n avatar={avatar}\n loading={loading}\n placement={placement}\n size={avatarSize}\n style={{\n marginTop: showTitle ? -12 : 6,\n ...avatarProps?.style,\n }}\n onClick={onAvatarClick}\n />\n )}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n ref={containerRef}\n width={editing ? '100%' : undefined}\n {...stylex.props(styles.messageBox, styles.messageContainer, hasTime && styles.withTime)}\n >\n <Title\n avatar={avatar}\n placement={placement}\n showTitle={showTitle}\n time={time}\n titleAddon={titleAddon}\n />\n {aboveMessage}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n data-layout={layoutMode}\n gap={8}\n width={editing ? '100%' : undefined}\n {...stylex.props(styles.messageBox, styles.messageContent)}\n direction={\n layoutMode === 'horizontal'\n ? placement === 'left'\n ? 'horizontal'\n : 'horizontal-reverse'\n : 'vertical'\n }\n >\n <Flexbox ref={contentRef} width={'100%'}>\n {error && (message === placeholderText || !message) ? (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n ) : (\n <MessageContent\n editing={editing}\n fontSize={fontSize}\n markdownProps={markdownProps}\n message={message}\n placement={placement}\n primary={primary}\n renderMessage={renderMessage}\n text={text}\n variant={variant}\n messageExtra={\n <>\n {error && (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n )}\n {messageExtra}\n </>\n }\n onChange={onChange}\n onDoubleClick={onDoubleClick}\n onEditingChange={onEditingChange}\n />\n )}\n </Flexbox>\n {actions && (\n <Actions\n actions={actions}\n editing={editing}\n placement={placement}\n variant={variant}\n />\n )}\n </Flexbox>\n {belowMessage}\n </Flexbox>\n {mobile && variant === 'bubble' && showAvatar && (\n <BorderSpacing borderSpacing={MOBILE_AVATAR_SIZE} />\n )}\n </Flexbox>\n );\n },\n);\n\nexport default ChatItem;\n\nexport type { ChatItemProps } from './type';\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChatItem.mjs","names":["chatMessages","clsx","Flexbox"],"sources":["../../../src/chat/ChatItem/ChatItem.tsx"],"sourcesContent":["'use client';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport chatMessages from '@/i18n/resources/en/chat';\nimport { useTranslation } from '@/i18n/useTranslation';\nimport { styleProps } from '@/styles/stylex/props';\nimport { useResponsive } from '@/styles/theme/scope';\n\nimport Actions from './components/Actions';\nimport Avatar from './components/Avatar';\nimport BorderSpacing from './components/BorderSpacing';\nimport ErrorContent from './components/ErrorContent';\nimport MessageContent from './components/MessageContent';\nimport Title from './components/Title';\nimport { styles } from './style';\nimport type { ChatItemProps } from './type';\n\nconst MOBILE_AVATAR_SIZE = 32;\n\nconst ChatItem = memo<ChatItemProps>(\n ({\n avatarAddon,\n onAvatarClick,\n avatarProps,\n actions,\n className,\n primary,\n loading,\n message,\n placeholderMessage,\n placement = 'left',\n variant = 'bubble',\n avatar,\n error,\n showTitle,\n time,\n editing,\n onChange,\n onEditingChange,\n messageExtra,\n renderMessage,\n text,\n errorMessage,\n onDoubleClick,\n fontSize,\n aboveMessage,\n belowMessage,\n markdownProps,\n actionsWrapWidth = 54,\n showAvatar = true,\n titleAddon,\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const { t } = useTranslation(chatMessages);\n\n const avatarSize = mobile ? MOBILE_AVATAR_SIZE : avatarProps?.size || 40;\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${avatarSize}px`,\n }),\n [avatarSize],\n );\n\n const hasTime = Boolean(time);\n const placeholderText = placeholderMessage ?? t('chat.placeholder');\n const avatarAlt = avatarProps?.alt || avatar.title || t('chat.avatar');\n\n // 在 ChatItem 组件中添加\n const contentRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [layoutMode, setLayoutMode] = useState<'horizontal' | 'vertical'>(\n variant === 'bubble' ? 'horizontal' : 'vertical',\n );\n\n // 使用 ResizeObserver 监控内容和容器尺寸\n useEffect(() => {\n if (variant === 'docs') {\n setLayoutMode('vertical');\n return;\n }\n\n if (!contentRef.current || !containerRef.current) return;\n\n const observer = new ResizeObserver(() => {\n if (!contentRef.current || !containerRef.current) return;\n\n const containerWidth = containerRef.current.clientWidth;\n const contentWidth = contentRef.current.scrollWidth; // 使用scrollWidth获取实际内容宽度\n\n // 预留给Actions的最小空间 (根据实际Actions大小调整)\n\n // 只有当内容宽度 + Actions最小宽度 > 容器宽度时才切换布局\n setLayoutMode(contentWidth + actionsWrapWidth > containerWidth ? 'vertical' : 'horizontal');\n });\n\n observer.observe(contentRef.current);\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [variant, actionsWrapWidth]);\n\n const isDocs = variant === 'docs';\n const containerClassName = styleProps(\n [styles.container, isDocs && styles.containerDocs],\n clsx('lobe-chat-item', isDocs ? 'lobe-chat-item-docs' : 'lobe-chat-item-bubble', className),\n ).className;\n\n return (\n <Flexbox\n className={containerClassName}\n direction={placement === 'left' ? 'horizontal' : 'horizontal-reverse'}\n gap={mobile ? 6 : 12}\n style={cssVariables}\n width={'100%'}\n {...rest}\n >\n {showAvatar && (\n <Avatar\n {...avatarProps}\n addon={avatarAddon}\n alt={avatarAlt}\n avatar={avatar}\n loading={loading}\n placement={placement}\n size={avatarSize}\n style={{\n marginTop: showTitle ? -12 : 6,\n ...avatarProps?.style,\n }}\n onClick={onAvatarClick}\n />\n )}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n ref={containerRef}\n width={editing ? '100%' : undefined}\n {...stylex.props(styles.messageBox, styles.messageContainer, hasTime && styles.withTime)}\n >\n <Title\n avatar={avatar}\n placement={placement}\n showTitle={showTitle}\n time={time}\n titleAddon={titleAddon}\n />\n {aboveMessage}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n data-layout={layoutMode}\n gap={8}\n width={editing ? '100%' : undefined}\n {...stylex.props(styles.messageBox, styles.messageContent)}\n direction={\n layoutMode === 'horizontal'\n ? placement === 'left'\n ? 'horizontal'\n : 'horizontal-reverse'\n : 'vertical'\n }\n >\n <Flexbox ref={contentRef} width={'100%'}>\n {error && (message === placeholderText || !message) ? (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n ) : (\n <MessageContent\n editing={editing}\n fontSize={fontSize}\n markdownProps={markdownProps}\n message={message}\n placement={placement}\n primary={primary}\n renderMessage={renderMessage}\n text={text}\n variant={variant}\n messageExtra={\n <>\n {error && (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n )}\n {messageExtra}\n </>\n }\n onChange={onChange}\n onDoubleClick={onDoubleClick}\n onEditingChange={onEditingChange}\n />\n )}\n </Flexbox>\n {actions && (\n <Actions\n actions={actions}\n editing={editing}\n placement={placement}\n variant={variant}\n />\n )}\n </Flexbox>\n {belowMessage}\n </Flexbox>\n {mobile && variant === 'bubble' && showAvatar && (\n <BorderSpacing borderSpacing={MOBILE_AVATAR_SIZE} />\n )}\n </Flexbox>\n );\n },\n);\n\nexport default ChatItem;\n\nexport type { ChatItemProps } from './type';\n"],"mappings":"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"}
@@ -5,7 +5,7 @@ import MessageInput from "../MessageInput/MessageInput.mjs";
5
5
  import MessageModal from "../MessageModal/MessageModal.mjs";
6
6
  import { memo } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
- import clsx from "clsx";
8
+ import clsx$1 from "clsx";
9
9
  //#region src/chat/EditableMessage/EditableMessage.tsx
10
10
  const EditableMessage = memo(({ value, onChange, classNames = {}, onEditingChange, editing, openModal, onOpenChange, placeholder, showEditWhenEmpty = false, styles: customStyles, className, style, height, variant, editButtonSize, text, fullFeaturedCodeBlock, model, fontSize, language = "markdown", markdownProps }) => {
11
11
  const [isEdit, setTyping] = useControlledState(false, {
@@ -19,7 +19,7 @@ const EditableMessage = memo(({ value, onChange, classNames = {}, onEditingChang
19
19
  const isAutoSize = height === "auto";
20
20
  const input = /* @__PURE__ */ jsx(MessageInput, {
21
21
  shortcut: true,
22
- className: clsx(className, classNames?.input),
22
+ className: clsx$1(className, classNames?.input),
23
23
  classNames,
24
24
  defaultValue: value,
25
25
  editButtonSize,
@@ -41,7 +41,7 @@ const EditableMessage = memo(({ value, onChange, classNames = {}, onEditingChang
41
41
  });
42
42
  if (!value && showEditWhenEmpty) return input;
43
43
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [!expand && isEdit ? input : /* @__PURE__ */ jsx(Markdown, {
44
- className: clsx(className, classNames?.markdown),
44
+ className: clsx$1(className, classNames?.markdown),
45
45
  fontSize,
46
46
  fullFeaturedCodeBlock,
47
47
  variant: "chat",
@@ -1 +1 @@
1
- {"version":3,"file":"EditableMessage.mjs","names":[],"sources":["../../../src/chat/EditableMessage/EditableMessage.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { memo } from 'react';\n\nimport MessageInput from '@/chat/MessageInput';\nimport MessageModal from '@/chat/MessageModal';\nimport { useControlledState } from '@/hooks/useControlledState';\nimport Markdown from '@/Markdown';\n\nimport { type EditableMessageProps } from './type';\n\nconst EditableMessage = memo<EditableMessageProps>(\n ({\n value,\n onChange,\n classNames = {},\n onEditingChange,\n editing,\n openModal,\n onOpenChange,\n placeholder,\n showEditWhenEmpty = false,\n styles: customStyles,\n className,\n style,\n height,\n variant,\n editButtonSize,\n text,\n fullFeaturedCodeBlock,\n model,\n fontSize,\n language = 'markdown',\n markdownProps,\n }) => {\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [expand, setExpand] = useControlledState<boolean>(false, {\n onChange: onOpenChange,\n value: openModal,\n });\n\n const isAutoSize = height === 'auto';\n\n const input = (\n <MessageInput\n shortcut\n className={clsx(className, classNames?.input)}\n classNames={classNames}\n defaultValue={value}\n editButtonSize={editButtonSize}\n height={height}\n language={language}\n placeholder={placeholder}\n styles={customStyles}\n text={text}\n variant={variant}\n style={{\n ...style,\n ...customStyles?.input,\n }}\n onCancel={() => setTyping(false)}\n onConfirm={(text) => {\n onChange?.(text);\n setTyping(false);\n }}\n />\n );\n\n if (!value && showEditWhenEmpty) return input;\n\n return (\n <>\n {!expand && isEdit ? (\n input\n ) : (\n <Markdown\n className={clsx(className, classNames?.markdown)}\n fontSize={fontSize}\n fullFeaturedCodeBlock={fullFeaturedCodeBlock}\n variant={'chat'}\n style={{\n height: isAutoSize ? 'unset' : height,\n ...style,\n ...customStyles?.markdown,\n }}\n {...markdownProps}\n >\n {value || placeholder || ''}\n </Markdown>\n )}\n {expand && (\n <MessageModal\n editing={isEdit}\n extra={model?.extra}\n footer={model?.footer}\n height={height}\n language={language}\n open={expand}\n placeholder={placeholder}\n text={text}\n value={value}\n onChange={onChange}\n onEditingChange={setTyping}\n onOpenChange={(e) => {\n setExpand(e);\n setTyping(false);\n }}\n />\n )}\n </>\n );\n },\n);\n\nEditableMessage.displayName = 'EditableMessage';\n\nexport default EditableMessage;\n"],"mappings":";;;;;;;;;AAYA,MAAM,kBAAkB,MACrB,EACC,OACA,UACA,aAAa,CAAC,GACd,iBACA,SACA,WACA,cACA,aACA,oBAAoB,OACpB,QAAQ,cACR,WACA,OACA,QACA,SACA,gBACA,MACA,uBACA,OACA,UACA,WAAW,YACX,oBACI;CACJ,MAAM,CAAC,QAAQ,aAAa,mBAAmB,OAAO;EACpD,UAAU;EACV,OAAO;CACT,CAAC;CAED,MAAM,CAAC,QAAQ,aAAa,mBAA4B,OAAO;EAC7D,UAAU;EACV,OAAO;CACT,CAAC;CAED,MAAM,aAAa,WAAW;CAE9B,MAAM,QACJ,oBAAC,cAAD;EACE,UAAA;EACA,WAAW,KAAK,WAAW,YAAY,KAAK;EAChC;EACZ,cAAc;EACE;EACR;EACE;EACG;EACb,QAAQ;EACF;EACG;EACT,OAAO;GACL,GAAG;GACH,GAAG,cAAc;EACnB;EACA,gBAAgB,UAAU,KAAK;EAC/B,YAAY,SAAS;GACnB,WAAW,IAAI;GACf,UAAU,KAAK;EACjB;CACD,CAAA;CAGH,IAAI,CAAC,SAAS,mBAAmB,OAAO;CAExC,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,CAAC,UAAU,SACV,QAEA,oBAAC,UAAD;EACE,WAAW,KAAK,WAAW,YAAY,QAAQ;EACrC;EACa;EACvB,SAAS;EACT,OAAO;GACL,QAAQ,aAAa,UAAU;GAC/B,GAAG;GACH,GAAG,cAAc;EACnB;EACA,GAAI;EAEH,UAAA,SAAS,eAAe;CACjB,CAAA,GAEX,UACC,oBAAC,cAAD;EACE,SAAS;EACT,OAAO,OAAO;EACd,QAAQ,OAAO;EACP;EACE;EACV,MAAM;EACO;EACP;EACC;EACG;EACV,iBAAiB;EACjB,eAAe,MAAM;GACnB,UAAU,CAAC;GACX,UAAU,KAAK;EACjB;CACD,CAAA,CAEH,EAAA,CAAA;AAEN,CACF;AAEA,gBAAgB,cAAc"}
1
+ {"version":3,"file":"EditableMessage.mjs","names":["clsx"],"sources":["../../../src/chat/EditableMessage/EditableMessage.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { memo } from 'react';\n\nimport MessageInput from '@/chat/MessageInput';\nimport MessageModal from '@/chat/MessageModal';\nimport { useControlledState } from '@/hooks/useControlledState';\nimport Markdown from '@/Markdown';\n\nimport { type EditableMessageProps } from './type';\n\nconst EditableMessage = memo<EditableMessageProps>(\n ({\n value,\n onChange,\n classNames = {},\n onEditingChange,\n editing,\n openModal,\n onOpenChange,\n placeholder,\n showEditWhenEmpty = false,\n styles: customStyles,\n className,\n style,\n height,\n variant,\n editButtonSize,\n text,\n fullFeaturedCodeBlock,\n model,\n fontSize,\n language = 'markdown',\n markdownProps,\n }) => {\n const [isEdit, setTyping] = useControlledState(false, {\n onChange: onEditingChange,\n value: editing,\n });\n\n const [expand, setExpand] = useControlledState<boolean>(false, {\n onChange: onOpenChange,\n value: openModal,\n });\n\n const isAutoSize = height === 'auto';\n\n const input = (\n <MessageInput\n shortcut\n className={clsx(className, classNames?.input)}\n classNames={classNames}\n defaultValue={value}\n editButtonSize={editButtonSize}\n height={height}\n language={language}\n placeholder={placeholder}\n styles={customStyles}\n text={text}\n variant={variant}\n style={{\n ...style,\n ...customStyles?.input,\n }}\n onCancel={() => setTyping(false)}\n onConfirm={(text) => {\n onChange?.(text);\n setTyping(false);\n }}\n />\n );\n\n if (!value && showEditWhenEmpty) return input;\n\n return (\n <>\n {!expand && isEdit ? (\n input\n ) : (\n <Markdown\n className={clsx(className, classNames?.markdown)}\n fontSize={fontSize}\n fullFeaturedCodeBlock={fullFeaturedCodeBlock}\n variant={'chat'}\n style={{\n height: isAutoSize ? 'unset' : height,\n ...style,\n ...customStyles?.markdown,\n }}\n {...markdownProps}\n >\n {value || placeholder || ''}\n </Markdown>\n )}\n {expand && (\n <MessageModal\n editing={isEdit}\n extra={model?.extra}\n footer={model?.footer}\n height={height}\n language={language}\n open={expand}\n placeholder={placeholder}\n text={text}\n value={value}\n onChange={onChange}\n onEditingChange={setTyping}\n onOpenChange={(e) => {\n setExpand(e);\n setTyping(false);\n }}\n />\n )}\n </>\n );\n },\n);\n\nEditableMessage.displayName = 'EditableMessage';\n\nexport default EditableMessage;\n"],"mappings":";;;;;;;;;AAYA,MAAM,kBAAkB,MACrB,EACC,OACA,UACA,aAAa,CAAC,GACd,iBACA,SACA,WACA,cACA,aACA,oBAAoB,OACpB,QAAQ,cACR,WACA,OACA,QACA,SACA,gBACA,MACA,uBACA,OACA,UACA,WAAW,YACX,oBACI;CACJ,MAAM,CAAC,QAAQ,aAAa,mBAAmB,OAAO;EACpD,UAAU;EACV,OAAO;CACT,CAAC;CAED,MAAM,CAAC,QAAQ,aAAa,mBAA4B,OAAO;EAC7D,UAAU;EACV,OAAO;CACT,CAAC;CAED,MAAM,aAAa,WAAW;CAE9B,MAAM,QACJ,oBAAC,cAAD;EACE,UAAA;EACA,WAAWA,OAAK,WAAW,YAAY,KAAK;EAChC;EACZ,cAAc;EACE;EACR;EACE;EACG;EACb,QAAQ;EACF;EACG;EACT,OAAO;GACL,GAAG;GACH,GAAG,cAAc;EACnB;EACA,gBAAgB,UAAU,KAAK;EAC/B,YAAY,SAAS;GACnB,WAAW,IAAI;GACf,UAAU,KAAK;EACjB;CACD,CAAA;CAGH,IAAI,CAAC,SAAS,mBAAmB,OAAO;CAExC,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,CAAC,UAAU,SACV,QAEA,oBAAC,UAAD;EACE,WAAWA,OAAK,WAAW,YAAY,QAAQ;EACrC;EACa;EACvB,SAAS;EACT,OAAO;GACL,QAAQ,aAAa,UAAU;GAC/B,GAAG;GACH,GAAG,cAAc;EACnB;EACA,GAAI;EAEH,UAAA,SAAS,eAAe;CACjB,CAAA,GAEX,UACC,oBAAC,cAAD;EACE,SAAS;EACT,OAAO,OAAO;EACd,QAAQ,OAAO;EACP;EACE;EACV,MAAM;EACO;EACP;EACC;EACG;EACV,iBAAiB;EACjB,eAAe,MAAM;GACnB,UAAU,CAAC;GACX,UAAU,KAAK;EACjB;CACD,CAAA,CAEH,EAAA,CAAA;AAEN,CACF;AAEA,gBAAgB,cAAc"}
@@ -3,8 +3,8 @@ import Button from "../../Button/Button.mjs";
3
3
  import FlexBasic_default from "../../Flex/FlexBasic.mjs";
4
4
  import ActionIcon from "../../ActionIcon/ActionIcon.mjs";
5
5
  import { useTranslation } from "../../i18n/useTranslation.mjs";
6
- import ControlInput from "../../EditableText/ControlInput.mjs";
7
6
  import Select from "../../Select/Select.mjs";
7
+ import ControlInput from "../../EditableText/ControlInput.mjs";
8
8
  import editableMessage_default from "../../i18n/resources/en/editableMessage.mjs";
9
9
  import { messagesReducer } from "./messageReducer.mjs";
10
10
  import { memo, useEffect, useReducer } from "react";
@@ -10,7 +10,7 @@ import CodeEditor from "../../CodeEditor/CodeEditor.mjs";
10
10
  import { styles, textAreaStyle } from "./style.mjs";
11
11
  import { memo, useState } from "react";
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
- import clsx from "clsx";
13
+ import clsx$1 from "clsx";
14
14
  import { useHotkeys } from "react-hotkeys-hook";
15
15
  //#region src/chat/MessageInput/MessageInput.tsx
16
16
  const MessageInput = memo(({ text, variant = "borderless", onCancel, defaultValue, onConfirm, renderButtons, placeholder, styles: customStyles, style, editButtonSize = "middle", classNames, shortcut, language = "markdown", ...rest }) => {
@@ -49,7 +49,7 @@ const MessageInput = memo(({ text, variant = "borderless", onCancel, defaultValu
49
49
  ...rest,
50
50
  children: [mobile ? /* @__PURE__ */ jsx(TextArea_default, {
51
51
  autoSize: true,
52
- className: clsx(styles, classNames?.editor),
52
+ className: clsx$1(styles, classNames?.editor),
53
53
  placeholder,
54
54
  style: {
55
55
  ...textAreaStyle,
@@ -60,7 +60,7 @@ const MessageInput = memo(({ text, variant = "borderless", onCancel, defaultValu
60
60
  onBlur: (e) => setValue(e.target.value),
61
61
  onChange: (e) => setValue(e.target.value)
62
62
  }) : /* @__PURE__ */ jsx(CodeEditor, {
63
- className: clsx(styles, classNames?.editor),
63
+ className: clsx$1(styles, classNames?.editor),
64
64
  classNames,
65
65
  language,
66
66
  placeholder,
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.mjs","names":["Flexbox","TextArea"],"sources":["../../../src/chat/MessageInput/MessageInput.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { memo, useState } from 'react';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport Button from '@/Button';\nimport CodeEditor from '@/CodeEditor';\nimport { Flexbox } from '@/Flex';\nimport { KeyMapEnum } from '@/Hotkey/const';\nimport { combineKeys } from '@/Hotkey/utils';\nimport { TextArea } from '@/Input';\nimport { useResponsive } from '@/styles/theme/scope';\nimport Tooltip from '@/Tooltip';\n\nimport { styles, textAreaStyle } from './style';\nimport type { MessageInputProps } from './type';\n\nconst MessageInput = memo<MessageInputProps>(\n ({\n text,\n variant = 'borderless',\n onCancel,\n defaultValue,\n onConfirm,\n renderButtons,\n placeholder,\n styles: customStyles,\n style,\n editButtonSize = 'middle',\n classNames,\n shortcut,\n language = 'markdown',\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const [temporaryValue, setValue] = useState<string>(defaultValue || '');\n const confirmHotkey = combineKeys([KeyMapEnum.Mod, KeyMapEnum.Enter]);\n const confirmText = text?.confirm || 'Confirm';\n const cancelHotkey = combineKeys([KeyMapEnum.Esc]);\n const cancelText = text?.cancel || 'Cancel';\n\n const handleConfirm = () => onConfirm?.(temporaryValue);\n const handleCancel = () => onCancel?.();\n\n useHotkeys(confirmHotkey, handleConfirm, {\n enableOnFormTags: true,\n enabled: shortcut,\n preventDefault: true,\n });\n\n const confirmButton = (\n <Button size={editButtonSize} type=\"primary\" onClick={handleConfirm}>\n {confirmText}\n </Button>\n );\n\n const cancllButton = (\n <Button size={editButtonSize} type={'fill'} onClick={handleCancel}>\n {text?.cancel || 'Cancel'}\n </Button>\n );\n\n return (\n <Flexbox gap={16} style={{ flex: 1, width: '100%', ...style }} {...rest}>\n {mobile ? (\n <TextArea\n autoSize\n className={clsx(styles, classNames?.editor)}\n placeholder={placeholder}\n style={{ ...textAreaStyle, ...customStyles?.editor }}\n value={temporaryValue}\n variant={variant}\n onBlur={(e) => setValue(e.target.value)}\n onChange={(e) => setValue(e.target.value)}\n />\n ) : (\n <CodeEditor\n className={clsx(styles, classNames?.editor)}\n classNames={classNames}\n language={language}\n placeholder={placeholder}\n style={customStyles?.editor}\n styles={customStyles}\n value={temporaryValue}\n variant={variant}\n onBlur={(e) => setValue(e.target.value)}\n onValueChange={(e) => setValue(e)}\n />\n )}\n <Flexbox direction={'horizontal-reverse'} gap={8}>\n {renderButtons ? (\n renderButtons(temporaryValue).map((buttonProps, index) => (\n <Button key={index} size={editButtonSize} {...buttonProps} />\n ))\n ) : (\n <>\n {shortcut ? (\n <Tooltip hotkey={confirmHotkey} title={confirmText}>\n {confirmButton}\n </Tooltip>\n ) : (\n confirmButton\n )}\n {shortcut ? (\n <Tooltip hotkey={cancelHotkey} title={cancelText}>\n {cancllButton}\n </Tooltip>\n ) : (\n cancllButton\n )}\n </>\n )}\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nexport default MessageInput;\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,eAAe,MAClB,EACC,MACA,UAAU,cACV,UACA,cACA,WACA,eACA,aACA,QAAQ,cACR,OACA,iBAAiB,UACjB,YACA,UACA,WAAW,YACX,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,cAAc;CACjC,MAAM,CAAC,gBAAgB,YAAY,SAAiB,gBAAgB,EAAE;CACtE,MAAM,gBAAgB,YAAY,CAAC,WAAW,KAAK,WAAW,KAAK,CAAC;CACpE,MAAM,cAAc,MAAM,WAAW;CACrC,MAAM,eAAe,YAAY,CAAC,WAAW,GAAG,CAAC;CACjD,MAAM,aAAa,MAAM,UAAU;CAEnC,MAAM,sBAAsB,YAAY,cAAc;CACtD,MAAM,qBAAqB,WAAW;CAEtC,WAAW,eAAe,eAAe;EACvC,kBAAkB;EAClB,SAAS;EACT,gBAAgB;CAClB,CAAC;CAED,MAAM,gBACJ,oBAAC,QAAD;EAAQ,MAAM;EAAgB,MAAK;EAAU,SAAS;EACnD,UAAA;CACK,CAAA;CAGV,MAAM,eACJ,oBAAC,QAAD;EAAQ,MAAM;EAAgB,MAAM;EAAQ,SAAS;EAClD,UAAA,MAAM,UAAU;CACX,CAAA;CAGV,OACE,qBAACA,mBAAD;EAAS,KAAK;EAAI,OAAO;GAAE,MAAM;GAAG,OAAO;GAAQ,GAAG;EAAM;EAAG,GAAI;EAAnE,UAAA,CACG,SACC,oBAACC,kBAAD;GACE,UAAA;GACA,WAAW,KAAK,QAAQ,YAAY,MAAM;GAC7B;GACb,OAAO;IAAE,GAAG;IAAe,GAAG,cAAc;GAAO;GACnD,OAAO;GACE;GACT,SAAS,MAAM,SAAS,EAAE,OAAO,KAAK;GACtC,WAAW,MAAM,SAAS,EAAE,OAAO,KAAK;EACzC,CAAA,IAED,oBAAC,YAAD;GACE,WAAW,KAAK,QAAQ,YAAY,MAAM;GAC9B;GACF;GACG;GACb,OAAO,cAAc;GACrB,QAAQ;GACR,OAAO;GACE;GACT,SAAS,MAAM,SAAS,EAAE,OAAO,KAAK;GACtC,gBAAgB,MAAM,SAAS,CAAC;EACjC,CAAA,GAEH,oBAACD,mBAAD;GAAS,WAAW;GAAsB,KAAK;GAC5C,UAAA,gBACC,cAAc,cAAc,CAAC,CAAC,KAAK,aAAa,UAC9C,oBAAC,QAAD;IAAoB,MAAM;IAAgB,GAAI;GAAc,GAA/C,KAA+C,CAC7D,IAED,qBAAA,YAAA,EAAA,UAAA,CACG,WACC,oBAAC,SAAD;IAAS,QAAQ;IAAe,OAAO;IACpC,UAAA;GACM,CAAA,IAET,eAED,WACC,oBAAC,SAAD;IAAS,QAAQ;IAAc,OAAO;IACnC,UAAA;GACM,CAAA,IAET,YAEF,EAAA,CAAA;EAEG,CAAA,CACF;;AAEb,CACF"}
1
+ {"version":3,"file":"MessageInput.mjs","names":["Flexbox","TextArea","clsx"],"sources":["../../../src/chat/MessageInput/MessageInput.tsx"],"sourcesContent":["'use client';\n\nimport clsx from 'clsx';\nimport { memo, useState } from 'react';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport Button from '@/Button';\nimport CodeEditor from '@/CodeEditor';\nimport { Flexbox } from '@/Flex';\nimport { KeyMapEnum } from '@/Hotkey/const';\nimport { combineKeys } from '@/Hotkey/utils';\nimport { TextArea } from '@/Input';\nimport { useResponsive } from '@/styles/theme/scope';\nimport Tooltip from '@/Tooltip';\n\nimport { styles, textAreaStyle } from './style';\nimport type { MessageInputProps } from './type';\n\nconst MessageInput = memo<MessageInputProps>(\n ({\n text,\n variant = 'borderless',\n onCancel,\n defaultValue,\n onConfirm,\n renderButtons,\n placeholder,\n styles: customStyles,\n style,\n editButtonSize = 'middle',\n classNames,\n shortcut,\n language = 'markdown',\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const [temporaryValue, setValue] = useState<string>(defaultValue || '');\n const confirmHotkey = combineKeys([KeyMapEnum.Mod, KeyMapEnum.Enter]);\n const confirmText = text?.confirm || 'Confirm';\n const cancelHotkey = combineKeys([KeyMapEnum.Esc]);\n const cancelText = text?.cancel || 'Cancel';\n\n const handleConfirm = () => onConfirm?.(temporaryValue);\n const handleCancel = () => onCancel?.();\n\n useHotkeys(confirmHotkey, handleConfirm, {\n enableOnFormTags: true,\n enabled: shortcut,\n preventDefault: true,\n });\n\n const confirmButton = (\n <Button size={editButtonSize} type=\"primary\" onClick={handleConfirm}>\n {confirmText}\n </Button>\n );\n\n const cancllButton = (\n <Button size={editButtonSize} type={'fill'} onClick={handleCancel}>\n {text?.cancel || 'Cancel'}\n </Button>\n );\n\n return (\n <Flexbox gap={16} style={{ flex: 1, width: '100%', ...style }} {...rest}>\n {mobile ? (\n <TextArea\n autoSize\n className={clsx(styles, classNames?.editor)}\n placeholder={placeholder}\n style={{ ...textAreaStyle, ...customStyles?.editor }}\n value={temporaryValue}\n variant={variant}\n onBlur={(e) => setValue(e.target.value)}\n onChange={(e) => setValue(e.target.value)}\n />\n ) : (\n <CodeEditor\n className={clsx(styles, classNames?.editor)}\n classNames={classNames}\n language={language}\n placeholder={placeholder}\n style={customStyles?.editor}\n styles={customStyles}\n value={temporaryValue}\n variant={variant}\n onBlur={(e) => setValue(e.target.value)}\n onValueChange={(e) => setValue(e)}\n />\n )}\n <Flexbox direction={'horizontal-reverse'} gap={8}>\n {renderButtons ? (\n renderButtons(temporaryValue).map((buttonProps, index) => (\n <Button key={index} size={editButtonSize} {...buttonProps} />\n ))\n ) : (\n <>\n {shortcut ? (\n <Tooltip hotkey={confirmHotkey} title={confirmText}>\n {confirmButton}\n </Tooltip>\n ) : (\n confirmButton\n )}\n {shortcut ? (\n <Tooltip hotkey={cancelHotkey} title={cancelText}>\n {cancllButton}\n </Tooltip>\n ) : (\n cancllButton\n )}\n </>\n )}\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nexport default MessageInput;\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,eAAe,MAClB,EACC,MACA,UAAU,cACV,UACA,cACA,WACA,eACA,aACA,QAAQ,cACR,OACA,iBAAiB,UACjB,YACA,UACA,WAAW,YACX,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,cAAc;CACjC,MAAM,CAAC,gBAAgB,YAAY,SAAiB,gBAAgB,EAAE;CACtE,MAAM,gBAAgB,YAAY,CAAC,WAAW,KAAK,WAAW,KAAK,CAAC;CACpE,MAAM,cAAc,MAAM,WAAW;CACrC,MAAM,eAAe,YAAY,CAAC,WAAW,GAAG,CAAC;CACjD,MAAM,aAAa,MAAM,UAAU;CAEnC,MAAM,sBAAsB,YAAY,cAAc;CACtD,MAAM,qBAAqB,WAAW;CAEtC,WAAW,eAAe,eAAe;EACvC,kBAAkB;EAClB,SAAS;EACT,gBAAgB;CAClB,CAAC;CAED,MAAM,gBACJ,oBAAC,QAAD;EAAQ,MAAM;EAAgB,MAAK;EAAU,SAAS;EACnD,UAAA;CACK,CAAA;CAGV,MAAM,eACJ,oBAAC,QAAD;EAAQ,MAAM;EAAgB,MAAM;EAAQ,SAAS;EAClD,UAAA,MAAM,UAAU;CACX,CAAA;CAGV,OACE,qBAACA,mBAAD;EAAS,KAAK;EAAI,OAAO;GAAE,MAAM;GAAG,OAAO;GAAQ,GAAG;EAAM;EAAG,GAAI;EAAnE,UAAA,CACG,SACC,oBAACC,kBAAD;GACE,UAAA;GACA,WAAWC,OAAK,QAAQ,YAAY,MAAM;GAC7B;GACb,OAAO;IAAE,GAAG;IAAe,GAAG,cAAc;GAAO;GACnD,OAAO;GACE;GACT,SAAS,MAAM,SAAS,EAAE,OAAO,KAAK;GACtC,WAAW,MAAM,SAAS,EAAE,OAAO,KAAK;EACzC,CAAA,IAED,oBAAC,YAAD;GACE,WAAWA,OAAK,QAAQ,YAAY,MAAM;GAC9B;GACF;GACG;GACb,OAAO,cAAc;GACrB,QAAQ;GACR,OAAO;GACE;GACT,SAAS,MAAM,SAAS,EAAE,OAAO,KAAK;GACtC,gBAAgB,MAAM,SAAS,CAAC;EACjC,CAAA,GAEH,oBAACF,mBAAD;GAAS,WAAW;GAAsB,KAAK;GAC5C,UAAA,gBACC,cAAc,cAAc,CAAC,CAAC,KAAK,aAAa,UAC9C,oBAAC,QAAD;IAAoB,MAAM;IAAgB,GAAI;GAAc,GAA/C,KAA+C,CAC7D,IAED,qBAAA,YAAA,EAAA,UAAA,CACG,WACC,oBAAC,SAAD;IAAS,QAAQ;IAAe,OAAO;IACpC,UAAA;GACM,CAAA,IAET,eAED,WACC,oBAAC,SAAD;IAAS,QAAQ;IAAc,OAAO;IACnC,UAAA;GACM,CAAA,IAET,YAEF,EAAA,CAAA;EAEG,CAAA,CACF;;AAEb,CACF"}
@@ -2,11 +2,11 @@
2
2
  import { styleProps } from "../../styles/stylex/props.mjs";
3
3
  import { cssVar } from "../../styles/stylex/cssVar.stylex.mjs";
4
4
  import FlexBasic_default from "../../Flex/FlexBasic.mjs";
5
+ import { useThemeMode } from "../../styles/theme/scope.mjs";
5
6
  import Text from "../../Text/Text.mjs";
6
7
  import Skeleton from "../../Skeleton/index.mjs";
7
8
  import { styles } from "./style.mjs";
8
9
  import AuthLayoutAside from "./Aside.mjs";
9
- import { useSurfaceCardStyles } from "../Surface/link.mjs";
10
10
  import { isValidElement } from "react";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import * as stylex from "@stylexjs/stylex";
@@ -42,7 +42,7 @@ const FormSkeleton = () => /* @__PURE__ */ jsxs(FlexBasic_default, {
42
42
  ]
43
43
  });
44
44
  function AuthLayout({ alert, aside, background = "plain", brand, card = true, children, className, description, footer, loading, logo, style, title, tools, variant = "default", ...rest }) {
45
- const cardStyles = useSurfaceCardStyles();
45
+ const { isDarkMode } = useThemeMode();
46
46
  const split = Boolean(aside);
47
47
  const art = isValidElement(background) ? background : null;
48
48
  const heading = title === void 0 || title === null ? null : typeof title === "string" ? /* @__PURE__ */ jsx(Text, {
@@ -72,7 +72,11 @@ function AuthLayout({ alert, aside, background = "plain", brand, card = true, ch
72
72
  return /* @__PURE__ */ jsxs("div", {
73
73
  "data-auth-layout": "",
74
74
  ...rest,
75
- ...styleProps([styles.page, background === "grid" && styles.grid], className, style),
75
+ ...styleProps([
76
+ styles.page,
77
+ background === "grid" && styles.grid,
78
+ background === "grid" && isDarkMode && styles.gridDark
79
+ ], className, style),
76
80
  children: [
77
81
  art ? /* @__PURE__ */ jsx("div", {
78
82
  ...stylex.props(styles.backdrop),
@@ -89,7 +93,7 @@ function AuthLayout({ alert, aside, background = "plain", brand, card = true, ch
89
93
  ...stylex.props(styles.main),
90
94
  children: card ? /* @__PURE__ */ jsx("div", {
91
95
  "data-auth-card": "",
92
- ...stylex.props(styles.lift, split && styles.liftSplit, cardStyles, variant === "elevated" && styles.elevated),
96
+ ...stylex.props(styles.lift, split && styles.liftSplit, variant === "elevated" && styles.elevated),
93
97
  children: /* @__PURE__ */ jsxs("div", {
94
98
  ...stylex.props(styles.frame, split && styles.split),
95
99
  children: [/* @__PURE__ */ jsxs("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.mjs","names":["Flexbox","Aside"],"sources":["../../../src/dashboard/AuthLayout/AuthLayout.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport { isValidElement } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Skeleton from '@/Skeleton';\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { styleProps } from '@/styles/stylex/props';\nimport Text from '@/Text';\n\nimport { useSurfaceCardStyles } from '../Surface/link';\nimport Aside from './Aside';\nimport { styles } from './style';\nimport type { AuthLayoutProps } from './type';\n\nconst titleStyle = {\n fontSize: cssVar.fontSizeHeading3,\n lineHeight: cssVar.lineHeightHeading3,\n margin: 0,\n};\nconst descriptionStyle = { color: cssVar.colorTextSecondary, lineHeight: 1.6 };\n\nconst FormSkeleton = () => (\n <Flexbox aria-hidden gap={12}>\n <Skeleton height={36} radius={8} width=\"100%\" />\n <Skeleton height={36} radius={8} width=\"100%\" />\n <Skeleton height={36} radius={8} width=\"100%\" />\n </Flexbox>\n);\n\nfunction AuthLayout({\n alert,\n aside,\n background = 'plain',\n brand,\n card = true,\n children,\n className,\n description,\n footer,\n loading,\n logo,\n style,\n title,\n tools,\n variant = 'default',\n ...rest\n}: AuthLayoutProps) {\n const cardStyles = useSurfaceCardStyles();\n const split = Boolean(aside);\n const art = isValidElement(background) ? background : null;\n const heading =\n title === undefined || title === null ? null : typeof title === 'string' ? (\n <Text as=\"h1\" style={titleStyle} weight=\"bold\">\n {title}\n </Text>\n ) : (\n <div {...stylex.props(styles.titleNode)}>{title}</div>\n );\n const intro =\n logo || heading || description ? (\n <Flexbox gap={8}>\n {logo ? <div {...stylex.props(styles.logo)}>{logo}</div> : null}\n {heading}\n {description ? (\n <Text style={descriptionStyle} type=\"secondary\">\n {description}\n </Text>\n ) : null}\n </Flexbox>\n ) : null;\n\n return (\n <div\n data-auth-layout=\"\"\n {...rest}\n {...styleProps([styles.page, background === 'grid' && styles.grid], className, style)}\n >\n {art ? <div {...stylex.props(styles.backdrop)}>{art}</div> : null}\n <header {...stylex.props(styles.header)}>\n {brand}\n {tools ? <div {...stylex.props(styles.tools)}>{tools}</div> : null}\n </header>\n <main {...stylex.props(styles.main)}>\n {card ? (\n <div\n data-auth-card=\"\"\n {...stylex.props(\n styles.lift,\n split && styles.liftSplit,\n cardStyles,\n variant === 'elevated' && styles.elevated,\n )}\n >\n <div {...stylex.props(styles.frame, split && styles.split)}>\n <div {...stylex.props(styles.form, split && styles.formSplit)}>\n {intro}\n {alert}\n {loading ? <FormSkeleton /> : children}\n {footer ? (\n <div {...styleProps(styles.footer, 'lobe-auth-layout-footer')}>{footer}</div>\n ) : null}\n </div>\n {aside ? <div {...stylex.props(styles.aside)}>{aside}</div> : null}\n </div>\n </div>\n ) : (\n children\n )}\n </main>\n </div>\n );\n}\n\nAuthLayout.displayName = 'AuthLayout';\nAuthLayout.Aside = Aside;\n\nexport default AuthLayout;\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,aAAa;CACjB,UAAU,OAAO;CACjB,YAAY,OAAO;CACnB,QAAQ;AACV;AACA,MAAM,mBAAmB;CACvB,OAAO,OAAO;CACd,YAAY;AACd;AACA,MAAM,qBAAqB,qBAACA,mBAAD;CAAS,eAAA;CAAY,KAAK;CAA1B,UAAA;EACvB,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;EAC/C,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;EAC/C,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;CACxC;;AACX,SAAS,WAAW,EAClB,OACA,OACA,aAAa,SACb,OACA,OAAO,MACP,UACA,WACA,aACA,QACA,SACA,MACA,OACA,OACA,OACA,UAAU,WACV,GAAG,QACe;CAClB,MAAM,aAAa,qBAAqB;CACxC,MAAM,QAAQ,QAAQ,KAAK;CAC3B,MAAM,MAAM,eAAe,UAAU,IAAI,aAAa;CACtD,MAAM,UAAU,UAAU,KAAA,KAAa,UAAU,OAAO,OAAO,OAAO,UAAU,WAAW,oBAAC,MAAD;EAAM,IAAG;EAAK,OAAO;EAAY,QAAO;EAC5H,UAAA;CACG,CAAA,IAAI,oBAAC,OAAD;EAAK,GAAI,OAAO,MAAM,OAAO,SAAS;EAAI,UAAA;CAAW,CAAA;CACnE,MAAM,QAAQ,QAAQ,WAAW,cAAc,qBAACA,mBAAD;EAAS,KAAK;EAAd,UAAA;GACxC,OAAO,oBAAC,OAAD;IAAK,GAAI,OAAO,MAAM,OAAO,IAAI;IAAI,UAAA;GAAU,CAAA,IAAI;GAC1D;GACA,cAAc,oBAAC,MAAD;IAAM,OAAO;IAAkB,MAAK;IAC9C,UAAA;GACG,CAAA,IAAI;EACL;CAAI,CAAA,IAAA;CACjB,OAAO,qBAAC,OAAD;EAAK,oBAAiB;EAAG,GAAI;EAAM,GAAI,WAAW,CAAC,OAAO,MAAM,eAAe,UAAU,OAAO,IAAI,GAAG,WAAW,KAAK;EAAvH,UAAA;GACF,MAAM,oBAAC,OAAD;IAAK,GAAI,OAAO,MAAM,OAAO,QAAQ;IAAI,UAAA;GAAS,CAAA,IAAI;GAC7D,qBAAC,UAAD;IAAQ,GAAI,OAAO,MAAM,OAAO,MAAM;IAAtC,UAAA,CACG,OACA,QAAQ,oBAAC,OAAD;KAAK,GAAI,OAAO,MAAM,OAAO,KAAK;KAAI,UAAA;IAAW,CAAA,IAAI,IACxD;;GACR,oBAAC,QAAD;IAAM,GAAI,OAAO,MAAM,OAAO,IAAI;IAC/B,UAAA,OAAO,oBAAC,OAAD;KAAK,kBAAe;KAAG,GAAI,OAAO,MAAM,OAAO,MAAM,SAAS,OAAO,WAAW,YAAY,YAAY,cAAc,OAAO,QAAQ;KACzI,UAAA,qBAAC,OAAD;MAAK,GAAI,OAAO,MAAM,OAAO,OAAO,SAAS,OAAO,KAAK;MAAzD,UAAA,CACE,qBAAC,OAAD;OAAK,GAAI,OAAO,MAAM,OAAO,MAAM,SAAS,OAAO,SAAS;OAA5D,UAAA;QACG;QACA;QACA,UAAU,oBAAC,cAAD,CAAe,CAAA,IAAI;QAC7B,SAAS,oBAAC,OAAD;SAAK,GAAI,WAAW,OAAO,QAAQ,yBAAyB;SAAI,UAAA;QAAY,CAAA,IAAI;OACvF;MACJ,CAAA,GAAA,QAAQ,oBAAC,OAAD;OAAK,GAAI,OAAO,MAAM,OAAO,KAAK;OAAI,UAAA;MAAW,CAAA,IAAI,IAC3D;;IACF,CAAA,IAAI;GACP,CAAA;EACH;;AACT;AACA,WAAW,cAAc;AACzB,WAAW,QAAQC"}
1
+ {"version":3,"file":"AuthLayout.mjs","names":["Flexbox","Aside"],"sources":["../../../src/dashboard/AuthLayout/AuthLayout.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport { isValidElement } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Skeleton from '@/Skeleton';\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { styleProps } from '@/styles/stylex/props';\nimport { useThemeMode } from '@/styles/theme/scope';\nimport Text from '@/Text';\n\nimport Aside from './Aside';\nimport { styles } from './style';\nimport type { AuthLayoutProps } from './type';\n\nconst titleStyle = {\n fontSize: cssVar.fontSizeHeading3,\n lineHeight: cssVar.lineHeightHeading3,\n margin: 0,\n};\nconst descriptionStyle = { color: cssVar.colorTextSecondary, lineHeight: 1.6 };\n\nconst FormSkeleton = () => (\n <Flexbox aria-hidden gap={12}>\n <Skeleton height={36} radius={8} width=\"100%\" />\n <Skeleton height={36} radius={8} width=\"100%\" />\n <Skeleton height={36} radius={8} width=\"100%\" />\n </Flexbox>\n);\n\nfunction AuthLayout({\n alert,\n aside,\n background = 'plain',\n brand,\n card = true,\n children,\n className,\n description,\n footer,\n loading,\n logo,\n style,\n title,\n tools,\n variant = 'default',\n ...rest\n}: AuthLayoutProps) {\n const { isDarkMode } = useThemeMode();\n const split = Boolean(aside);\n const art = isValidElement(background) ? background : null;\n const heading =\n title === undefined || title === null ? null : typeof title === 'string' ? (\n <Text as=\"h1\" style={titleStyle} weight=\"bold\">\n {title}\n </Text>\n ) : (\n <div {...stylex.props(styles.titleNode)}>{title}</div>\n );\n const intro =\n logo || heading || description ? (\n <Flexbox gap={8}>\n {logo ? <div {...stylex.props(styles.logo)}>{logo}</div> : null}\n {heading}\n {description ? (\n <Text style={descriptionStyle} type=\"secondary\">\n {description}\n </Text>\n ) : null}\n </Flexbox>\n ) : null;\n\n return (\n <div\n data-auth-layout=\"\"\n {...rest}\n {...styleProps(\n [\n styles.page,\n background === 'grid' && styles.grid,\n background === 'grid' && isDarkMode && styles.gridDark,\n ],\n className,\n style,\n )}\n >\n {art ? <div {...stylex.props(styles.backdrop)}>{art}</div> : null}\n <header {...stylex.props(styles.header)}>\n {brand}\n {tools ? <div {...stylex.props(styles.tools)}>{tools}</div> : null}\n </header>\n <main {...stylex.props(styles.main)}>\n {card ? (\n <div\n data-auth-card=\"\"\n {...stylex.props(\n styles.lift,\n split && styles.liftSplit,\n variant === 'elevated' && styles.elevated,\n )}\n >\n <div {...stylex.props(styles.frame, split && styles.split)}>\n <div {...stylex.props(styles.form, split && styles.formSplit)}>\n {intro}\n {alert}\n {loading ? <FormSkeleton /> : children}\n {footer ? (\n <div {...styleProps(styles.footer, 'lobe-auth-layout-footer')}>{footer}</div>\n ) : null}\n </div>\n {aside ? <div {...stylex.props(styles.aside)}>{aside}</div> : null}\n </div>\n </div>\n ) : (\n children\n )}\n </main>\n </div>\n );\n}\n\nAuthLayout.displayName = 'AuthLayout';\nAuthLayout.Aside = Aside;\n\nexport default AuthLayout;\n"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,aAAa;CACjB,UAAU,OAAO;CACjB,YAAY,OAAO;CACnB,QAAQ;AACV;AACA,MAAM,mBAAmB;CACvB,OAAO,OAAO;CACd,YAAY;AACd;AACA,MAAM,qBAAqB,qBAACA,mBAAD;CAAS,eAAA;CAAY,KAAK;CAA1B,UAAA;EACvB,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;EAC/C,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;EAC/C,oBAAC,UAAD;GAAU,QAAQ;GAAI,QAAQ;GAAG,OAAM;EAAQ,CAAA;CACxC;;AACX,SAAS,WAAW,EAClB,OACA,OACA,aAAa,SACb,OACA,OAAO,MACP,UACA,WACA,aACA,QACA,SACA,MACA,OACA,OACA,OACA,UAAU,WACV,GAAG,QACe;CAClB,MAAM,EACJ,eACE,aAAa;CACjB,MAAM,QAAQ,QAAQ,KAAK;CAC3B,MAAM,MAAM,eAAe,UAAU,IAAI,aAAa;CACtD,MAAM,UAAU,UAAU,KAAA,KAAa,UAAU,OAAO,OAAO,OAAO,UAAU,WAAW,oBAAC,MAAD;EAAM,IAAG;EAAK,OAAO;EAAY,QAAO;EAC5H,UAAA;CACG,CAAA,IAAI,oBAAC,OAAD;EAAK,GAAI,OAAO,MAAM,OAAO,SAAS;EAAI,UAAA;CAAW,CAAA;CACnE,MAAM,QAAQ,QAAQ,WAAW,cAAc,qBAACA,mBAAD;EAAS,KAAK;EAAd,UAAA;GACxC,OAAO,oBAAC,OAAD;IAAK,GAAI,OAAO,MAAM,OAAO,IAAI;IAAI,UAAA;GAAU,CAAA,IAAI;GAC1D;GACA,cAAc,oBAAC,MAAD;IAAM,OAAO;IAAkB,MAAK;IAC9C,UAAA;GACG,CAAA,IAAI;EACL;CAAI,CAAA,IAAA;CACjB,OAAO,qBAAC,OAAD;EAAK,oBAAiB;EAAG,GAAI;EAAM,GAAI,WAAW;GAAC,OAAO;GAAM,eAAe,UAAU,OAAO;GAAM,eAAe,UAAU,cAAc,OAAO;EAAQ,GAAG,WAAW,KAAK;EAA/K,UAAA;GACF,MAAM,oBAAC,OAAD;IAAK,GAAI,OAAO,MAAM,OAAO,QAAQ;IAAI,UAAA;GAAS,CAAA,IAAI;GAC7D,qBAAC,UAAD;IAAQ,GAAI,OAAO,MAAM,OAAO,MAAM;IAAtC,UAAA,CACG,OACA,QAAQ,oBAAC,OAAD;KAAK,GAAI,OAAO,MAAM,OAAO,KAAK;KAAI,UAAA;IAAW,CAAA,IAAI,IACxD;;GACR,oBAAC,QAAD;IAAM,GAAI,OAAO,MAAM,OAAO,IAAI;IAC/B,UAAA,OAAO,oBAAC,OAAD;KAAK,kBAAe;KAAG,GAAI,OAAO,MAAM,OAAO,MAAM,SAAS,OAAO,WAAW,YAAY,cAAc,OAAO,QAAQ;KAC7H,UAAA,qBAAC,OAAD;MAAK,GAAI,OAAO,MAAM,OAAO,OAAO,SAAS,OAAO,KAAK;MAAzD,UAAA,CACE,qBAAC,OAAD;OAAK,GAAI,OAAO,MAAM,OAAO,MAAM,SAAS,OAAO,SAAS;OAA5D,UAAA;QACG;QACA;QACA,UAAU,oBAAC,cAAD,CAAe,CAAA,IAAI;QAC7B,SAAS,oBAAC,OAAD;SAAK,GAAI,WAAW,OAAO,QAAQ,yBAAyB;SAAI,UAAA;QAAY,CAAA,IAAI;OACvF;MACJ,CAAA,GAAA,QAAQ,oBAAC,OAAD;OAAK,GAAI,OAAO,MAAM,OAAO,KAAK;OAAI,UAAA;MAAW,CAAA,IAAI,IAC3D;;IACF,CAAA,IAAI;GACP,CAAA;EACH;;AACT;AACA,WAAW,cAAc;AACzB,WAAW,QAAQC"}
@@ -49,7 +49,7 @@ const styles = {
49
49
  },
50
50
  asidePlate: {
51
51
  kpwlN0: "lb10a8y8t",
52
- kWkggS: "lbxy8123",
52
+ kWkggS: "lb6yijhg",
53
53
  kVAEAm: "lb10l6tqk",
54
54
  $$css: true
55
55
  },
@@ -109,12 +109,17 @@ const styles = {
109
109
  $$css: true
110
110
  },
111
111
  grid: {
112
+ "--lobe-auth-grid-line": "lb13b9b4k",
112
113
  k1YJky: "lbkuq44j",
113
- kWkggS: "lbzyoshe",
114
- kKwaWg: "lbo5mpd0",
114
+ kWkggS: "lb41ilrr",
115
+ kKwaWg: "lb3x8p3i",
115
116
  kgSjnq: "lblpqoug",
116
117
  $$css: true
117
118
  },
119
+ gridDark: {
120
+ "--lobe-auth-grid-line": "lbp4pl1z",
121
+ $$css: true
122
+ },
118
123
  header: {
119
124
  kUk6DE: "lb1okw0bk",
120
125
  kOIVth: "lb1v2ro7d",
@@ -128,6 +133,12 @@ const styles = {
128
133
  $$css: true
129
134
  },
130
135
  lift: {
136
+ kVAM5u: "lbqnr5ac",
137
+ kaIpWk: "lb1ndkxwp",
138
+ ksu8eU: "lb1y0btm7",
139
+ kMzoRj: "lbmkeg23",
140
+ kWkggS: "lb6yijhg",
141
+ kGVxlE: "lb3b5rli",
131
142
  k1xSpc: "lb78zum5",
132
143
  kzqmXN: "lb1nyppsm",
133
144
  kVAEAm: "lb1n2onr6",
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/AuthLayout/style.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\n\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { media } from '@/styles/stylex/media.stylex';\n\nexport const styles = stylex.create({\n aside: {\n flex: 'none',\n backgroundColor: cssVar.colorFillSecondary,\n boxSizing: 'border-box',\n display: { default: null, [media.laptop]: 'none' },\n inlineSize: '50%',\n maxInlineSize: '50%',\n minInlineSize: 0,\n position: 'relative',\n },\n asideCopy: {\n gap: 8,\n insetInline: 40,\n display: 'flex',\n flexDirection: 'column',\n insetBlockEnd: 64,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 2,\n },\n asideKicker: {\n margin: 0,\n color: '#fff',\n fontSize: cssVar.fontSize,\n lineHeight: 1.4,\n opacity: 0.82,\n },\n asideLine: {\n margin: 0,\n color: '#fff',\n fontSize: cssVar.fontSizeHeading2,\n fontWeight: 600,\n letterSpacing: '-0.02em',\n lineHeight: 1.25,\n },\n asidePanel: {\n inset: 8,\n borderRadius: 20,\n overflow: 'hidden',\n backgroundImage: 'linear-gradient(165deg, #ff9ffc 0%, #5227ff 46%, #b497cf 100%)',\n position: 'absolute',\n },\n asidePlate: {\n inset: 0,\n backgroundColor: `var(--lobe-surface-bg-solid, ${cssVar.colorBgContainer})`,\n position: 'absolute',\n },\n asideScrim: {\n insetInline: 0,\n backgroundImage: 'linear-gradient(to top, rgb(24 10 48 / 42%), transparent)',\n blockSize: '58%',\n insetBlockEnd: 0,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 1,\n },\n backdrop: {\n inset: 0,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n },\n elevated: {\n borderRadius: 28,\n },\n footer: {\n margin: 0,\n color: cssVar.colorTextSecondary,\n fontSize: cssVar.fontSizeSM,\n lineHeight: 1.6,\n },\n form: {\n flex: 'none',\n gap: 24,\n paddingBlock: { default: 40, [media.laptop]: 28 },\n paddingInline: { default: 36, [media.laptop]: 24 },\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n inlineSize: '100%',\n justifyContent: 'center',\n minInlineSize: 0,\n },\n formSplit: {\n inlineSize: { default: '50%', [media.laptop]: '100%' },\n maxInlineSize: { default: '50%', [media.laptop]: '100%' },\n },\n frame: {\n borderRadius: 'inherit',\n flex: 'none',\n overflow: 'hidden',\n display: 'flex',\n inlineSize: '100%',\n minInlineSize: 0,\n },\n grid: {\n backgroundPosition: '-1px -1px',\n backgroundColor: `color-mix(in srgb, ${cssVar.colorBgLayout}, ${cssVar.colorBgElevated} 70%)`,\n backgroundImage: `linear-gradient(color-mix(in srgb, ${cssVar.colorText} 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, ${cssVar.colorText} 5%, transparent) 1px, transparent 1px)`,\n backgroundSize: '32px 32px',\n },\n header: {\n flex: 'none',\n gap: 12,\n paddingInline: 16,\n alignItems: 'center',\n blockSize: 56,\n display: 'flex',\n justifyContent: 'space-between',\n position: 'relative',\n zIndex: 1,\n },\n lift: {\n display: 'flex',\n inlineSize: 'min(440px, 100%)',\n position: 'relative',\n },\n liftSplit: {\n inlineSize: { default: 'min(880px, 100%)', [media.laptop]: 'min(440px, 100%)' },\n },\n logo: {\n display: 'flex',\n marginBlockEnd: 8,\n },\n main: {\n flex: '1',\n paddingInline: 16,\n placeItems: 'center',\n display: 'grid',\n paddingBlockEnd: '48px',\n paddingBlockStart: '24px',\n position: 'relative',\n zIndex: 1,\n },\n page: {\n flex: '1',\n overflow: 'auto',\n backgroundColor: cssVar.colorBgLayout,\n blockSize: '100%',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n inlineSize: '100%',\n minBlockSize: '100dvh',\n position: 'relative',\n },\n split: {\n minBlockSize: { default: 520, [media.laptop]: 0 },\n },\n titleNode: {\n display: 'flex',\n minInlineSize: 0,\n },\n tools: {\n gap: 6,\n alignItems: 'center',\n display: 'flex',\n marginInlineStart: 'auto',\n },\n});\n"],"mappings":";AAKA,MAAa,SAAS;CACpB,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,aAAa;EACX,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"style.mjs","names":[],"sources":["../../../src/dashboard/AuthLayout/style.ts"],"sourcesContent":["import * as stylex from '@stylexjs/stylex';\n\nimport { cssVar } from '@/styles/stylex/cssVar.stylex';\nimport { media } from '@/styles/stylex/media.stylex';\n\nexport const styles = stylex.create({\n aside: {\n flex: 'none',\n backgroundColor: cssVar.colorFillSecondary,\n boxSizing: 'border-box',\n display: { default: null, [media.laptop]: 'none' },\n inlineSize: '50%',\n maxInlineSize: '50%',\n minInlineSize: 0,\n position: 'relative',\n },\n asideCopy: {\n gap: 8,\n insetInline: 40,\n display: 'flex',\n flexDirection: 'column',\n insetBlockEnd: 64,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 2,\n },\n asideKicker: {\n margin: 0,\n color: '#fff',\n fontSize: cssVar.fontSize,\n lineHeight: 1.4,\n opacity: 0.82,\n },\n asideLine: {\n margin: 0,\n color: '#fff',\n fontSize: cssVar.fontSizeHeading2,\n fontWeight: 600,\n letterSpacing: '-0.02em',\n lineHeight: 1.25,\n },\n asidePanel: {\n inset: 8,\n borderRadius: 20,\n overflow: 'hidden',\n backgroundImage: 'linear-gradient(165deg, #ff9ffc 0%, #5227ff 46%, #b497cf 100%)',\n position: 'absolute',\n },\n asidePlate: {\n inset: 0,\n backgroundColor: cssVar.colorBgContainer,\n position: 'absolute',\n },\n asideScrim: {\n insetInline: 0,\n backgroundImage: 'linear-gradient(to top, rgb(24 10 48 / 42%), transparent)',\n blockSize: '58%',\n insetBlockEnd: 0,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 1,\n },\n backdrop: {\n inset: 0,\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n },\n elevated: {\n borderRadius: 28,\n },\n footer: {\n margin: 0,\n color: cssVar.colorTextSecondary,\n fontSize: cssVar.fontSizeSM,\n lineHeight: 1.6,\n },\n form: {\n flex: 'none',\n gap: 24,\n paddingBlock: { default: 40, [media.laptop]: 28 },\n paddingInline: { default: 36, [media.laptop]: 24 },\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n inlineSize: '100%',\n justifyContent: 'center',\n minInlineSize: 0,\n },\n formSplit: {\n inlineSize: { default: '50%', [media.laptop]: '100%' },\n maxInlineSize: { default: '50%', [media.laptop]: '100%' },\n },\n frame: {\n borderRadius: 'inherit',\n flex: 'none',\n overflow: 'hidden',\n display: 'flex',\n inlineSize: '100%',\n minInlineSize: 0,\n },\n grid: {\n '--lobe-auth-grid-line': `color-mix(in srgb, ${cssVar.colorText} 5%, transparent)`,\n 'backgroundPosition': '-1px -1px',\n 'backgroundColor': cssVar.colorBgLayout,\n 'backgroundImage':\n 'linear-gradient(var(--lobe-auth-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--lobe-auth-grid-line) 1px, transparent 1px)',\n 'backgroundSize': '32px 32px',\n },\n gridDark: {\n '--lobe-auth-grid-line': cssVar.colorBorderSecondary,\n },\n header: {\n flex: 'none',\n gap: 12,\n paddingInline: 16,\n alignItems: 'center',\n blockSize: 56,\n display: 'flex',\n justifyContent: 'space-between',\n position: 'relative',\n zIndex: 1,\n },\n lift: {\n borderColor: cssVar.colorBorder,\n borderRadius: cssVar.borderRadiusLG,\n borderStyle: 'solid',\n borderWidth: 1,\n backgroundColor: cssVar.colorBgContainer,\n boxShadow: 'rgb(0 0 0 / 4%) 0 1px 2px 0',\n display: 'flex',\n inlineSize: 'min(440px, 100%)',\n position: 'relative',\n },\n liftSplit: {\n inlineSize: { default: 'min(880px, 100%)', [media.laptop]: 'min(440px, 100%)' },\n },\n logo: {\n display: 'flex',\n marginBlockEnd: 8,\n },\n main: {\n flex: '1',\n paddingInline: 16,\n placeItems: 'center',\n display: 'grid',\n paddingBlockEnd: '48px',\n paddingBlockStart: '24px',\n position: 'relative',\n zIndex: 1,\n },\n page: {\n flex: '1',\n overflow: 'auto',\n backgroundColor: cssVar.colorBgLayout,\n blockSize: '100%',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n inlineSize: '100%',\n minBlockSize: '100dvh',\n position: 'relative',\n },\n split: {\n minBlockSize: { default: 520, [media.laptop]: 0 },\n },\n titleNode: {\n display: 'flex',\n minInlineSize: 0,\n },\n tools: {\n gap: 6,\n alignItems: 'center',\n display: 'flex',\n marginInlineStart: 'auto',\n },\n});\n"],"mappings":";AAKA,MAAa,SAAS;CACpB,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,aAAa;EACX,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,QAAQ;EACR,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,yBAAyB;EACzB,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,UAAU;EACR,yBAAyB;EACzB,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,MAAM;EACJ,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,OAAO;CACT;CACA,WAAW;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,OAAO;CACT;AACF"}
@@ -3,7 +3,7 @@ import Icon from "../../Icon/Icon.mjs";
3
3
  import Select from "../../Select/Select.mjs";
4
4
  import { styles } from "./style.mjs";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import clsx from "clsx";
6
+ import clsx$1 from "clsx";
7
7
  import * as stylex from "@stylexjs/stylex";
8
8
  import { GlobeIcon } from "lucide-react";
9
9
  //#region src/dashboard/AuthTools/AuthLocaleSwitch.tsx
@@ -11,7 +11,7 @@ import { GlobeIcon } from "lucide-react";
11
11
  function AuthLocaleSwitch({ "aria-label": ariaLabel = "Language", className, onChange, options, style, value }) {
12
12
  return /* @__PURE__ */ jsx(Select, {
13
13
  "aria-label": ariaLabel,
14
- className: clsx("lobe-auth-locale-switch", className),
14
+ className: clsx$1("lobe-auth-locale-switch", className),
15
15
  options,
16
16
  prefix: /* @__PURE__ */ jsx(Icon, {
17
17
  icon: GlobeIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLocaleSwitch.mjs","names":[],"sources":["../../../src/dashboard/AuthTools/AuthLocaleSwitch.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { GlobeIcon } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport Select from '@/Select';\n\nimport { styles } from './style';\nimport type { AuthLocaleSwitchProps } from './type';\n\n/** Pill language select for auth corner tools. Controlled; pass your locale list. */\nfunction AuthLocaleSwitch({\n 'aria-label': ariaLabel = 'Language',\n className,\n onChange,\n options,\n style,\n value,\n}: AuthLocaleSwitchProps) {\n return (\n <Select\n aria-label={ariaLabel}\n className={clsx('lobe-auth-locale-switch', className)}\n options={options}\n prefix={<Icon icon={GlobeIcon} {...stylex.props(styles.localeIcon)} />}\n size=\"small\"\n style={style}\n value={value}\n variant=\"outlined\"\n onChange={(next: unknown) => {\n if (typeof next === 'string') onChange?.(next);\n }}\n />\n );\n}\n\nAuthLocaleSwitch.displayName = 'AuthLocaleSwitch';\n\nexport default AuthLocaleSwitch;\n"],"mappings":";;;;;;;;;;AAYA,SAAS,iBAAiB,EACxB,cAAc,YAAY,YAC1B,WACA,UACA,SACA,OACA,SACwB;CACxB,OAAO,oBAAC,QAAD;EAAQ,cAAY;EAAW,WAAW,KAAK,2BAA2B,SAAS;EAAY;EAAS,QAAQ,oBAAC,MAAD;GAAM,MAAM;GAAW,GAAI,OAAO,MAAM,OAAO,UAAU;EAAI,CAAA;EAAG,MAAK;EAAe;EAAc;EAAO,SAAQ;EAAW,WAAW,SAAkB;GAC9Q,IAAI,OAAO,SAAS,UAAU,WAAW,IAAI;EAC/C;CAAI,CAAA;AACN;AACA,iBAAiB,cAAc"}
1
+ {"version":3,"file":"AuthLocaleSwitch.mjs","names":["clsx"],"sources":["../../../src/dashboard/AuthTools/AuthLocaleSwitch.tsx"],"sourcesContent":["'use client';\n\nimport './style.css';\n\nimport * as stylex from '@stylexjs/stylex';\nimport clsx from 'clsx';\nimport { GlobeIcon } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport Select from '@/Select';\n\nimport { styles } from './style';\nimport type { AuthLocaleSwitchProps } from './type';\n\n/** Pill language select for auth corner tools. Controlled; pass your locale list. */\nfunction AuthLocaleSwitch({\n 'aria-label': ariaLabel = 'Language',\n className,\n onChange,\n options,\n style,\n value,\n}: AuthLocaleSwitchProps) {\n return (\n <Select\n aria-label={ariaLabel}\n className={clsx('lobe-auth-locale-switch', className)}\n options={options}\n prefix={<Icon icon={GlobeIcon} {...stylex.props(styles.localeIcon)} />}\n size=\"small\"\n style={style}\n value={value}\n variant=\"outlined\"\n onChange={(next: unknown) => {\n if (typeof next === 'string') onChange?.(next);\n }}\n />\n );\n}\n\nAuthLocaleSwitch.displayName = 'AuthLocaleSwitch';\n\nexport default AuthLocaleSwitch;\n"],"mappings":";;;;;;;;;;AAYA,SAAS,iBAAiB,EACxB,cAAc,YAAY,YAC1B,WACA,UACA,SACA,OACA,SACwB;CACxB,OAAO,oBAAC,QAAD;EAAQ,cAAY;EAAW,WAAWA,OAAK,2BAA2B,SAAS;EAAY;EAAS,QAAQ,oBAAC,MAAD;GAAM,MAAM;GAAW,GAAI,OAAO,MAAM,OAAO,UAAU;EAAI,CAAA;EAAG,MAAK;EAAe;EAAc;EAAO,SAAQ;EAAW,WAAW,SAAkB;GAC9Q,IAAI,OAAO,SAAS,UAAU,WAAW,IAAI;EAC/C;CAAI,CAAA;AACN;AACA,iBAAiB,cAAc"}
@@ -3,7 +3,7 @@ import Icon from "../../Icon/Icon.mjs";
3
3
  import Segmented from "../../Segmented/Segmented.mjs";
4
4
  import { styles } from "./style.mjs";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import clsx from "clsx";
6
+ import clsx$1 from "clsx";
7
7
  import * as stylex from "@stylexjs/stylex";
8
8
  import { Monitor, Moon, Sun } from "lucide-react";
9
9
  //#region src/dashboard/AuthTools/AuthThemeSwitch.tsx
@@ -33,7 +33,7 @@ function AuthThemeSwitch({ className, labels, onChange, style, value = "auto" })
33
33
  ...labels
34
34
  };
35
35
  return /* @__PURE__ */ jsx(Segmented, {
36
- className: clsx("lobe-auth-theme-switch", className),
36
+ className: clsx$1("lobe-auth-theme-switch", className),
37
37
  size: "small",
38
38
  style,
39
39
  value,