dishui 0.0.72 → 0.0.73

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 (93) hide show
  1. package/dist/components/Button/index.d.ts +4 -4
  2. package/dist/components/Button/index.js +18 -17
  3. package/dist/components/Button/index.js.map +1 -1
  4. package/dist/components/Card/Metric.d.ts +17 -0
  5. package/dist/components/Card/Metric2.js +50 -0
  6. package/dist/components/Card/Metric2.js.map +1 -0
  7. package/dist/components/Card/index.d.ts +3 -0
  8. package/dist/components/Card/index.js +118 -117
  9. package/dist/components/Card/index.js.map +1 -1
  10. package/dist/components/Group/index.d.ts +2 -0
  11. package/dist/components/GroupButton/index.d.ts +16 -0
  12. package/dist/components/GroupButton/index.js +41 -0
  13. package/dist/components/GroupButton/index.js.map +1 -0
  14. package/dist/components/GroupedTable/index.d.ts +38 -0
  15. package/dist/components/GroupedTable/index.js +92 -0
  16. package/dist/components/GroupedTable/index.js.map +1 -0
  17. package/dist/components/Layout/index.d.ts +4 -2
  18. package/dist/components/Layout/index.js +1 -1
  19. package/dist/components/Layout/index.js.map +1 -1
  20. package/dist/components/NavigationList/index.d.ts +17 -0
  21. package/dist/components/NavigationList/index.js +48 -0
  22. package/dist/components/NavigationList/index.js.map +1 -0
  23. package/dist/components/Section/index.d.ts +28 -0
  24. package/dist/components/Section/index.js +58 -0
  25. package/dist/components/Section/index.js.map +1 -0
  26. package/dist/components/Select/index.d.ts +2 -0
  27. package/dist/components/Select/index.js +83 -82
  28. package/dist/components/Select/index.js.map +1 -1
  29. package/dist/components/SidebarToggleButton/index.d.ts +16 -1
  30. package/dist/components/SidebarToggleButton/index.js +90 -30
  31. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  32. package/dist/components/Skeleton/index.d.ts +7 -0
  33. package/dist/components/Skeleton/index.js +21 -0
  34. package/dist/components/Skeleton/index.js.map +1 -0
  35. package/dist/components/Tree/Tree.js +5 -2
  36. package/dist/components/Tree/Tree.js.map +1 -1
  37. package/dist/components/pro/RichTextEditor/AIRewrite.js +114 -72
  38. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  39. package/dist/components/pro/RichTextEditor/BlockHandle.js +315 -196
  40. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  41. package/dist/components/pro/RichTextEditor/BubbleToolbar.d.ts +1 -1
  42. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +69 -33
  43. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  44. package/dist/components/pro/RichTextEditor/CommentPanel.d.ts +2 -1
  45. package/dist/components/pro/RichTextEditor/CommentPanel.js +100 -81
  46. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  47. package/dist/components/pro/RichTextEditor/CommentPopover.d.ts +2 -1
  48. package/dist/components/pro/RichTextEditor/CommentPopover.js +92 -68
  49. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  50. package/dist/components/pro/RichTextEditor/RichTextEditor.js +24 -22
  51. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  52. package/dist/components/pro/RichTextEditor/SearchReplace.d.ts +7 -0
  53. package/dist/components/pro/RichTextEditor/SlashMenu.js +136 -73
  54. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  55. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.d.ts +1 -1
  56. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +346 -313
  57. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  58. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +114 -146
  59. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  60. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +2 -2
  61. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  62. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +178 -163
  63. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  64. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +8 -5
  65. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  66. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.d.ts +6 -0
  67. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +85 -74
  68. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  69. package/dist/components/pro/RichTextEditor/searchUtils.d.ts +23 -0
  70. package/dist/contexts/AppContext.js +47 -45
  71. package/dist/contexts/AppContext.js.map +1 -1
  72. package/dist/dishui.css +1 -1
  73. package/dist/index-nostyled.d.ts +11 -1
  74. package/dist/index.d.ts +11 -1
  75. package/dist/index.js +119 -114
  76. package/dist/layouts/MainLayout.js +9 -10
  77. package/dist/layouts/MainLayout.js.map +1 -1
  78. package/dist/layouts/Sidebar.d.ts +9 -0
  79. package/dist/layouts/Sidebar.js +99 -80
  80. package/dist/layouts/Sidebar.js.map +1 -1
  81. package/dist/layouts/headbar/Headbar.d.ts +1 -1
  82. package/dist/layouts/headbar/Headbar.js +2 -2
  83. package/dist/layouts/headbar/Headbar.js.map +1 -1
  84. package/dist/lite.d.ts +19 -1
  85. package/dist/lite.js +17 -8
  86. package/dist/styles/themeStyles.js +6 -6
  87. package/dist/styles/themeStyles.js.map +1 -1
  88. package/dist/utils/i18n.d.ts +3 -0
  89. package/dist/utils/i18n.js +78 -0
  90. package/dist/utils/i18n.js.map +1 -1
  91. package/dist/utils/menu.js +23 -6
  92. package/dist/utils/menu.js.map +1 -1
  93. package/package.json +8 -2
@@ -17,7 +17,17 @@ export type { DividerProps } from './components/Divider';
17
17
  export { default as Select } from './components/Select';
18
18
  export type { SelectProps, Option } from './components/Select';
19
19
  export { default as Card } from './components/Card';
20
- export type { CardProps } from './components/Card';
20
+ export type { CardProps, CardMetricProps, CardMetricItem } from './components/Card';
21
+ export { default as GroupButton } from './components/GroupButton';
22
+ export type { GroupButtonProps, GroupButtonOption } from './components/GroupButton';
23
+ export { default as GroupedTable } from './components/GroupedTable';
24
+ export type { GroupedTableProps, GroupedTableColumn, GroupedTableGroup } from './components/GroupedTable';
25
+ export { default as NavigationList } from './components/NavigationList';
26
+ export type { NavigationListProps, NavigationListItem } from './components/NavigationList';
27
+ export { default as Skeleton } from './components/Skeleton';
28
+ export type { SkeletonProps } from './components/Skeleton';
29
+ export { default as Section } from './components/Section';
30
+ export type { SectionProps, SectionSlotProps } from './components/Section';
21
31
  export { default as Layout, Container, Grid, GridItem, Flex, Group, Space } from './components/Layout';
22
32
  export type { LayoutCompound, LayoutContainerProps, LayoutGridProps, LayoutGridItemProps, LayoutFlexProps, LayoutGroupProps, LayoutSpaceProps, LayoutGap, LayoutMaxWidth, LayoutAlign, LayoutJustify, GridColumns, GridPlacement, } from './components/Layout';
23
33
  export { default as List } from './components/List';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,13 @@
1
+ export { default as GroupButton } from './components/GroupButton';
2
+ export type { GroupButtonProps, GroupButtonOption } from './components/GroupButton';
3
+ export { default as GroupedTable } from './components/GroupedTable';
4
+ export type { GroupedTableProps, GroupedTableColumn, GroupedTableGroup } from './components/GroupedTable';
5
+ export { default as NavigationList } from './components/NavigationList';
6
+ export type { NavigationListProps, NavigationListItem } from './components/NavigationList';
7
+ export { default as Skeleton } from './components/Skeleton';
8
+ export type { SkeletonProps } from './components/Skeleton';
9
+ export { default as Section } from './components/Section';
10
+ export type { SectionProps, SectionSlotProps } from './components/Section';
1
11
  export { default as Button } from './components/Button';
2
12
  export type { ButtonProps, ButtonGroupProps, ButtonGroupSectionProps, ButtonState } from './components/Button';
3
13
  export { default as Badge } from './components/Badge';
@@ -17,7 +27,7 @@ export type { DividerProps } from './components/Divider';
17
27
  export { default as Select } from './components/Select';
18
28
  export type { SelectProps, Option } from './components/Select';
19
29
  export { default as Card } from './components/Card';
20
- export type { CardProps, CardFeatureProps, CardQuoteProps, CardMetaProps, CardInfoProps, CardInfoTone, CardStatProps, } from './components/Card';
30
+ export type { CardProps, CardFeatureProps, CardQuoteProps, CardMetaProps, CardInfoProps, CardInfoTone, CardStatProps, CardMetricProps, CardMetricItem, } from './components/Card';
21
31
  export { default as PageHeader } from './components/PageHeader';
22
32
  export type { PageHeaderProps } from './components/PageHeader';
23
33
  export { default as Page, PageBody, PageLeft, PageRight, PageMain } from './components/Page';
package/dist/index.js CHANGED
@@ -1,117 +1,122 @@
1
1
  /* empty css */
2
2
  import { cn as e } from "./utils/cn.js";
3
3
  import t from "./components/Button/index.js";
4
- import n from "./components/Badge/index.js";
5
- import r from "./components/Input/index.js";
6
- import i from "./components/Label/index.js";
7
- import a from "./components/Checkbox/index.js";
8
- import o from "./components/Switch/index.js";
9
- import s from "./components/Tooltip/index.js";
10
- import c from "./components/Divider/index.js";
11
- import l from "./components/Select/index.js";
12
- import u from "./components/Card/index.js";
13
- import d from "./components/PageHeader/index.js";
14
- import f, { PageBody as p, PageLeft as m, PageMain as h, PageRight as g } from "./components/Page/index.js";
15
- import _ from "./components/EmptyState/index.js";
16
- import v from "./components/Avatar/index.js";
17
- import y from "./components/Accordion/index.js";
18
- import b from "./components/Modal/index.js";
19
- import x from "./components/Tabs/index.js";
20
- import S, { Container as C, Flex as w, Grid as T, GridItem as E, Group as D, Space as O } from "./components/Layout/index.js";
21
- import k from "./components/List/index.js";
22
- import A from "./components/Row/index.js";
23
- import j from "./components/Column/index.js";
24
- import M from "./components/Text/index.js";
25
- import N from "./components/Image/index.js";
26
- import P from "./components/Icon/index.js";
27
- import F from "./components/Slider/index.js";
28
- import I from "./components/DateTimeInput/index.js";
29
- import L from "./components/MultipleChoice/index.js";
30
- import R from "./components/ChoicePicker/index.js";
31
- import z from "./components/Table/index.js";
32
- import { generateSidebarActiveStyles as B, generateTreeActiveStyles as V, themeActiveStyles as H } from "./styles/themeStyles.js";
33
- import U from "./components/Tree/Tree.js";
34
- import W from "./layouts/Sidebar.js";
35
- import G from "./layouts/headbar/Headbar.js";
36
- import K from "./layouts/headbar/HeadbarTitle.js";
37
- import q from "./layouts/headbar/HeadbarSearch.js";
38
- import J from "./layouts/headbar/HeadbarLangSwitcher.js";
39
- import { getThemes as Y } from "./utils/themes.js";
40
- import X from "./layouts/headbar/HeadbarThemeSwitcher.js";
41
- import { DesktopSidebarToggleButton as Z, MobileSidebarToggleButton as Q, SidebarToggleButtons as $ } from "./components/SidebarToggleButton/index.js";
42
- import { AppLayoutWrapper as ee, AppProvider as te, AppShell as ne, useAppContext as re, useAuth as ie } from "./contexts/AppContext.js";
43
- import ae from "./hooks/useTableColumns.js";
44
- import oe from "./hooks/useTableData.js";
45
- import { defineExtension as se } from "./components/pro/DataTable/extension.js";
46
- import { computePivot as ce } from "./components/pro/DataTable/pivotEngine.js";
47
- import { PivotView as le } from "./components/pro/DataTable/PivotView.js";
48
- import { PivotPanel as ue } from "./components/pro/DataTable/PivotPanel.js";
49
- import { usePivotExtension as de } from "./components/pro/DataTable/pivotExtension.js";
50
- import { useRowDetailExtension as fe } from "./components/pro/DataTable/rowDetailExtension.js";
51
- import pe, { createActionColumn as me, createColumn as he, createComputedColumn as ge, createSelectOptions as _e, createSelectionColumn as ve, dateSort as ye, defaultFilterFunctions as be, extractUniqueOptions as xe, numericSort as Se, stringSort as Ce, treeSort as we } from "./data-table.js";
52
- import Te from "./components/Chart/Chart.js";
53
- import Ee from "./components/Demo/index.js";
54
- import De from "./components/pro/ArticleControl/ArticleControl2.js";
55
- import Oe from "./components/pro/ArticleContextMenu/index.js";
56
- import ke from "./components/Markdown/Markdown.js";
57
- import { getDefaultSnippets as Ae, javascriptSnippets as je, pythonSnippets as Me } from "./components/pro/CodeEditor/langs/snippets.js";
58
- import { jsJumpableKeywords as Ne, jsKeywords as Pe } from "./components/pro/CodeEditor/langs/javascript.js";
59
- import { pyJumpableKeywords as Fe, pyKeywords as Ie } from "./components/pro/CodeEditor/langs/python.js";
60
- import { getJumpableKeywords as Le, getLanguageKeywords as Re } from "./components/pro/CodeEditor/langs/index.js";
61
- import { bracketMatchingStyle as ze, jumpTargetHighlight as Be, jumpToDefinition as Ve, lineHighlightStyle as He, smartAutocompletion as Ue } from "./components/pro/CodeEditor/extensions/index.js";
62
- import { createThemeExtension as We } from "./components/pro/CodeEditor/themes.js";
63
- import { collectVariables as Ge, generateOutline as Ke } from "./components/pro/CodeEditor/utils.js";
64
- import { defaultContextMenu as qe } from "./components/pro/CodeEditor/extensions/contextMenu.js";
65
- import Je from "./components/pro/CodeEditor/editors/CodeEditor.js";
66
- import Ye from "./components/pro/CodeEditor/panels/TableOfContentsPanel.js";
67
- import Xe from "./components/pro/CodeEditor/panels/FootnotePanel.js";
68
- import Ze from "./components/pro/CodeEditor/editors/MarkdownEditor.js";
69
- import Qe from "./components/pro/CodeEditor/panels/OutlinePanel.js";
70
- import $e from "./components/pro/CodeEditor/panels/VariablePanel.js";
71
- import et from "./layouts/MainLayout.js";
72
- import tt from "./layouts/Navbar.js";
73
- import { ProtectedRoute as nt } from "./components/ProtectedRoute/index.js";
74
- import { buildRouter as rt, createRouterFromConfig as it } from "./utils/routerBuilder.js";
75
- import { DropZone as at, formatFileSize as ot } from "./components/FileUploader/DropZone.js";
76
- import { FileItem as st } from "./components/FileUploader/FileItem.js";
77
- import { UploadQueue as ct } from "./components/FileUploader/UploadQueue.js";
78
- import { FileUploader as lt } from "./components/FileUploader/FileUploader.js";
79
- import { FileIcon as ut } from "./components/pro/FileExplorer/FileIcon.js";
80
- import { Breadcrumb as dt } from "./components/pro/FileExplorer/Breadcrumb.js";
81
- import { Toolbar as ft } from "./components/pro/FileExplorer/Toolbar.js";
82
- import { ListView as pt } from "./components/pro/FileExplorer/ListView.js";
83
- import { GridView as mt } from "./components/pro/FileExplorer/GridView.js";
84
- import { CreateDialog as ht } from "./components/pro/FileExplorer/CreateDialog.js";
85
- import { FileExplorer as gt } from "./components/pro/FileExplorer/FileExplorer.js";
86
- import { defaultLabels as _t } from "./components/pro/RichTextEditor/types.js";
87
- import vt from "./components/pro/RichTextEditor/Toolbar/Toolbar.js";
88
- import yt from "./components/pro/RichTextEditor/AIRewrite.js";
89
- import { MarkdownBlockExtension as bt } from "./components/pro/RichTextEditor/extensions/MarkdownBlock.js";
90
- import { CodeBlockExtension as xt } from "./components/pro/RichTextEditor/extensions/CodeBlockView.js";
91
- import St from "./components/pro/RichTextEditor/RichTextEditor.js";
92
- import { BORDER_STYLE_OPTIONS as Ct, DASH_DENSITY_OPTIONS as wt, DEFAULT_EDGE_DATA as Tt, DEFAULT_NODE_DATA as Et, EDGE_LINE_STYLE_OPTIONS as Dt, EDGE_MARKER_OPTIONS as Ot, EDGE_TYPE_OPTIONS as kt, GRADIENT_DIRECTION_OPTIONS as At, PALETTE_ITEMS as jt, ROOT_CANVAS_ID as Mt, createEmptyDocument as Nt } from "./components/pro/Flow/constants.js";
93
- import { FlowProvider as Pt, useFlowContext as Ft } from "./components/pro/Flow/context/FlowContext.js";
94
- import { FlowUIProvider as It, useFlowUI as Lt } from "./components/pro/Flow/context/FlowUIContext.js";
95
- import { downloadDataURL as Rt, exportCanvasToPNG as zt, useFlowImportExport as Bt } from "./components/pro/Flow/hooks/useFlowImportExport.js";
96
- import { useLayoutActions as Vt } from "./components/pro/Flow/hooks/useLayoutActions.js";
97
- import Ht from "./components/pro/Flow/panels/FlowToolbar.js";
98
- import Ut from "./components/pro/Flow/panels/ShapePalette.js";
99
- import { FLOW_NODE_TYPES as Wt } from "./components/pro/Flow/types.js";
100
- import Gt from "./components/pro/Flow/panels/InspectorPanel.js";
101
- import Kt from "./components/pro/Flow/panels/OutlinePanel.js";
102
- import qt from "./components/pro/Flow/panels/ContextMenu.js";
103
- import { useClipboard as Jt } from "./components/pro/Flow/hooks/useClipboard.js";
104
- import Yt from "./components/pro/Flow/Flow.js";
105
- import { useNodeMutations as Xt } from "./components/pro/Flow/hooks/useNodeMutations.js";
106
- import { useEdgeMutations as Zt } from "./components/pro/Flow/hooks/useEdgeMutations.js";
107
- import { useLineMutations as Qt } from "./components/pro/Flow/hooks/useLineMutations.js";
108
- import { useSelection as $t } from "./components/pro/Flow/hooks/useSelection.js";
109
- import { DEFAULT_CATEGORY_CONFIG as en, DEFAULT_SCALE_CONFIGS as tn, DEFAULT_TIME_WINDOW as nn, addDays as rn, addWorkingDays as an, calculateWorkingDays as on, computeDateRange as sn, dateToX as cn, daysBetween as ln, flattenTree as un, formatDate as dn, generateDateRange as fn, generateHeaderGroups as pn, getISOWeekNumber as mn, getISOWeekYear as hn, isNonWorkingDay as gn, isWeekend as _n, parseDate as vn, startOfDay as yn, xToDate as bn } from "./components/pro/Gantt/utils.js";
110
- import { useGanttState as xn } from "./components/pro/Gantt/hooks/useGanttState.js";
111
- import { useGanttDrag as Sn } from "./components/pro/Gantt/hooks/useGanttDrag.js";
112
- import Cn from "./components/pro/Gantt/Gantt.js";
113
- import { DEFAULT_COLOR_OPTIONS as wn, LABELS_EN as Tn, LABELS_ZH as En, SLOT_HEIGHT as Dn, TIME_GRID_HEIGHT as On, TIME_SLOTS as kn, addDays as An, clamp as jn, formatDate as Mn, formatTime as Nn, generateId as Pn, generateTimeSlots as Fn, getDaysInMonth as In, getFirstDayOfMonth as Ln, getHolidayEntry as Rn, getMonthDates as zn, getWeekDates as Bn, isHoliday as Vn, isNonWorkingDay as Hn, isSameDay as Un, isToday as Wn, isWeekend as Gn, minutesToTime as Kn, parseDate as qn, parseTime as Jn, timeToMinutes as Yn, todayStr as Xn } from "./components/pro/Calendar/utils.js";
114
- import { useCalendarState as Zn } from "./components/pro/Calendar/hooks/useCalendarState.js";
115
- import { useCalendarDrag as Qn } from "./components/pro/Calendar/hooks/useCalendarDrag.js";
116
- import $n from "./components/pro/Calendar/Calendar.js";
117
- export { yt as AIRewrite, y as Accordion, ee as AppLayoutWrapper, te as AppProvider, ne as AppShell, Oe as ArticleContextMenu, De as ArticleControl, v as Avatar, Ct as BORDER_STYLE_OPTIONS, n as Badge, dt as Breadcrumb, t as Button, wn as CALENDAR_DEFAULT_COLOR_OPTIONS, Tn as CALENDAR_LABELS_EN, En as CALENDAR_LABELS_ZH, Dn as CALENDAR_SLOT_HEIGHT, On as CALENDAR_TIME_GRID_HEIGHT, kn as CALENDAR_TIME_SLOTS, $n as Calendar, u as Card, Te as Chart, a as Checkbox, R as ChoicePicker, xt as CodeBlockExtension, Je as CodeEditor, j as Column, C as Container, ht as CreateDialog, wt as DASH_DENSITY_OPTIONS, en as DEFAULT_CATEGORY_CONFIG, Tt as DEFAULT_EDGE_DATA, Et as DEFAULT_NODE_DATA, tn as DEFAULT_SCALE_CONFIGS, nn as DEFAULT_TIME_WINDOW, pe as DataTable, I as DateTimeInput, Ee as Demo, Z as DesktopSidebarToggleButton, c as Divider, at as DropZone, Dt as EDGE_LINE_STYLE_OPTIONS, Ot as EDGE_MARKER_OPTIONS, kt as EDGE_TYPE_OPTIONS, _ as EmptyState, Wt as FLOW_NODE_TYPES, gt as FileExplorer, ft as FileExplorerToolbar, ut as FileIcon, lt as FileUploader, w as Flex, Yt as Flow, qt as FlowContextMenu, Gt as FlowInspectorPanel, Kt as FlowOutlinePanel, Pt as FlowProvider, Ut as FlowShapePalette, Ht as FlowToolbar, It as FlowUIProvider, Xe as FootnotePanel, At as GRADIENT_DIRECTION_OPTIONS, Cn as Gantt, T as Grid, E as GridItem, mt as GridView, D as Group, G as Headbar, J as HeadbarLangSwitcher, q as HeadbarSearch, X as HeadbarThemeSwitcher, K as HeadbarTitle, P as Icon, N as Image, r as Input, i as Label, S as Layout, k as List, pt as ListView, et as MainLayout, ke as Markdown, bt as MarkdownBlockExtension, Ze as MarkdownEditor, Q as MobileSidebarToggleButton, b as Modal, L as MultipleChoice, tt as Navbar, Qe as OutlinePanel, jt as PALETTE_ITEMS, f as Page, p as PageBody, d as PageHeader, m as PageLeft, h as PageMain, g as PageRight, ue as PivotPanel, le as PivotView, nt as ProtectedRoute, Mt as ROOT_CANVAS_ID, St as RichTextEditor, vt as RichTextToolbar, A as Row, l as Select, W as Sidebar, $ as SidebarToggleButtons, F as Slider, O as Space, o as Switch, z as Table, Ye as TableOfContentsPanel, x as Tabs, M as Text, s as Tooltip, U as Tree, st as UploadFileItem, ct as UploadQueue, $e as VariablePanel, An as addCalendarDays, rn as addGanttDays, an as addWorkingDays, ze as bracketMatchingStyle, rt as buildRouter, on as calculateWorkingDays, jn as calendarClamp, Kn as calendarMinutesToTime, Yn as calendarTimeToMinutes, Xn as calendarTodayStr, e as cn, Ge as collectVariables, sn as computeDateRange, ce as computePivot, me as createActionColumn, he as createColumn, ge as createComputedColumn, Nt as createEmptyDocument, it as createRouterFromConfig, _e as createSelectOptions, ve as createSelectionColumn, We as createThemeExtension, ye as dateSort, ln as daysBetween, qe as defaultContextMenu, be as defaultFilterFunctions, se as defineExtension, Rt as downloadDataURL, zt as exportCanvasToPNG, xe as extractUniqueOptions, un as flattenGanttTree, Mn as formatCalendarDate, Nn as formatCalendarTime, ot as formatFileSize, dn as formatGanttDate, cn as ganttDateToX, bn as ganttXToDate, Pn as generateCalendarId, Fn as generateCalendarTimeSlots, fn as generateDateRange, pn as generateHeaderGroups, Ke as generateOutline, B as generateSidebarActiveStyles, V as generateTreeActiveStyles, In as getCalendarDaysInMonth, Ln as getCalendarFirstDayOfMonth, Rn as getCalendarHolidayEntry, zn as getCalendarMonthDates, Bn as getCalendarWeekDates, Ae as getDefaultSnippets, mn as getISOWeekNumber, hn as getISOWeekYear, Le as getJumpableKeywords, Re as getLanguageKeywords, Y as getThemes, Vn as isCalendarHoliday, Hn as isCalendarNonWorkingDay, Un as isCalendarSameDay, Wn as isCalendarToday, Gn as isCalendarWeekend, gn as isGanttNonWorkingDay, _n as isGanttWeekend, je as javascriptSnippets, Ne as jsJumpableKeywords, Pe as jsKeywords, Be as jumpTargetHighlight, Ve as jumpToDefinition, He as lineHighlightStyle, Se as numericSort, qn as parseCalendarDate, Jn as parseCalendarTime, vn as parseGanttDate, Fe as pyJumpableKeywords, Ie as pyKeywords, Me as pythonSnippets, _t as richTextDefaultLabels, Ue as smartAutocompletion, yn as startOfGanttDay, Ce as stringSort, H as themeActiveStyles, we as treeSort, re as useAppContext, ie as useAuth, Qn as useCalendarDrag, Zn as useCalendarState, Zt as useEdgeMutations, Jt as useFlowClipboard, Ft as useFlowContext, Bt as useFlowImportExport, $t as useFlowSelection, Lt as useFlowUI, Sn as useGanttDrag, xn as useGanttState, Vt as useLayoutActions, Qt as useLineMutations, Xt as useNodeMutations, de as usePivotExtension, fe as useRowDetailExtension, ae as useTableColumns, oe as useTableData };
4
+ import n from "./components/GroupButton/index.js";
5
+ import r from "./components/Table/index.js";
6
+ import i from "./components/Skeleton/index.js";
7
+ import a from "./components/GroupedTable/index.js";
8
+ import o from "./components/NavigationList/index.js";
9
+ import s from "./components/Section/index.js";
10
+ import c from "./components/Badge/index.js";
11
+ import l from "./components/Input/index.js";
12
+ import u from "./components/Label/index.js";
13
+ import d from "./components/Checkbox/index.js";
14
+ import f from "./components/Switch/index.js";
15
+ import p from "./components/Tooltip/index.js";
16
+ import m from "./components/Divider/index.js";
17
+ import h from "./components/Select/index.js";
18
+ import g from "./components/Card/index.js";
19
+ import _ from "./components/PageHeader/index.js";
20
+ import v, { PageBody as y, PageLeft as b, PageMain as x, PageRight as S } from "./components/Page/index.js";
21
+ import C from "./components/EmptyState/index.js";
22
+ import w from "./components/Avatar/index.js";
23
+ import T from "./components/Accordion/index.js";
24
+ import E from "./components/Modal/index.js";
25
+ import D from "./components/Tabs/index.js";
26
+ import O, { Container as k, Flex as A, Grid as j, GridItem as M, Group as N, Space as P } from "./components/Layout/index.js";
27
+ import F from "./components/List/index.js";
28
+ import I from "./components/Row/index.js";
29
+ import L from "./components/Column/index.js";
30
+ import R from "./components/Text/index.js";
31
+ import z from "./components/Image/index.js";
32
+ import B from "./components/Icon/index.js";
33
+ import V from "./components/Slider/index.js";
34
+ import H from "./components/DateTimeInput/index.js";
35
+ import U from "./components/MultipleChoice/index.js";
36
+ import W from "./components/ChoicePicker/index.js";
37
+ import { generateSidebarActiveStyles as G, generateTreeActiveStyles as K, themeActiveStyles as q } from "./styles/themeStyles.js";
38
+ import J from "./components/Tree/Tree.js";
39
+ import { DesktopSidebarToggleButton as Y, MobileSidebarToggleButton as X, SidebarToggleButtons as Z } from "./components/SidebarToggleButton/index.js";
40
+ import Q from "./layouts/Sidebar.js";
41
+ import $ from "./layouts/headbar/Headbar.js";
42
+ import ee from "./layouts/headbar/HeadbarTitle.js";
43
+ import te from "./layouts/headbar/HeadbarSearch.js";
44
+ import ne from "./layouts/headbar/HeadbarLangSwitcher.js";
45
+ import { getThemes as re } from "./utils/themes.js";
46
+ import ie from "./layouts/headbar/HeadbarThemeSwitcher.js";
47
+ import { AppLayoutWrapper as ae, AppProvider as oe, AppShell as se, useAppContext as ce, useAuth as le } from "./contexts/AppContext.js";
48
+ import ue from "./hooks/useTableColumns.js";
49
+ import de from "./hooks/useTableData.js";
50
+ import { defineExtension as fe } from "./components/pro/DataTable/extension.js";
51
+ import { computePivot as pe } from "./components/pro/DataTable/pivotEngine.js";
52
+ import { PivotView as me } from "./components/pro/DataTable/PivotView.js";
53
+ import { PivotPanel as he } from "./components/pro/DataTable/PivotPanel.js";
54
+ import { usePivotExtension as ge } from "./components/pro/DataTable/pivotExtension.js";
55
+ import { useRowDetailExtension as _e } from "./components/pro/DataTable/rowDetailExtension.js";
56
+ import ve, { createActionColumn as ye, createColumn as be, createComputedColumn as xe, createSelectOptions as Se, createSelectionColumn as Ce, dateSort as we, defaultFilterFunctions as Te, extractUniqueOptions as Ee, numericSort as De, stringSort as Oe, treeSort as ke } from "./data-table.js";
57
+ import Ae from "./components/Chart/Chart.js";
58
+ import je from "./components/Demo/index.js";
59
+ import Me from "./components/pro/ArticleControl/ArticleControl2.js";
60
+ import Ne from "./components/pro/ArticleContextMenu/index.js";
61
+ import Pe from "./components/Markdown/Markdown.js";
62
+ import { getDefaultSnippets as Fe, javascriptSnippets as Ie, pythonSnippets as Le } from "./components/pro/CodeEditor/langs/snippets.js";
63
+ import { jsJumpableKeywords as Re, jsKeywords as ze } from "./components/pro/CodeEditor/langs/javascript.js";
64
+ import { pyJumpableKeywords as Be, pyKeywords as Ve } from "./components/pro/CodeEditor/langs/python.js";
65
+ import { getJumpableKeywords as He, getLanguageKeywords as Ue } from "./components/pro/CodeEditor/langs/index.js";
66
+ import { bracketMatchingStyle as We, jumpTargetHighlight as Ge, jumpToDefinition as Ke, lineHighlightStyle as qe, smartAutocompletion as Je } from "./components/pro/CodeEditor/extensions/index.js";
67
+ import { createThemeExtension as Ye } from "./components/pro/CodeEditor/themes.js";
68
+ import { collectVariables as Xe, generateOutline as Ze } from "./components/pro/CodeEditor/utils.js";
69
+ import { defaultContextMenu as Qe } from "./components/pro/CodeEditor/extensions/contextMenu.js";
70
+ import $e from "./components/pro/CodeEditor/editors/CodeEditor.js";
71
+ import et from "./components/pro/CodeEditor/panels/TableOfContentsPanel.js";
72
+ import tt from "./components/pro/CodeEditor/panels/FootnotePanel.js";
73
+ import nt from "./components/pro/CodeEditor/editors/MarkdownEditor.js";
74
+ import rt from "./components/pro/CodeEditor/panels/OutlinePanel.js";
75
+ import it from "./components/pro/CodeEditor/panels/VariablePanel.js";
76
+ import at from "./layouts/MainLayout.js";
77
+ import ot from "./layouts/Navbar.js";
78
+ import { ProtectedRoute as st } from "./components/ProtectedRoute/index.js";
79
+ import { buildRouter as ct, createRouterFromConfig as lt } from "./utils/routerBuilder.js";
80
+ import { DropZone as ut, formatFileSize as dt } from "./components/FileUploader/DropZone.js";
81
+ import { FileItem as ft } from "./components/FileUploader/FileItem.js";
82
+ import { UploadQueue as pt } from "./components/FileUploader/UploadQueue.js";
83
+ import { FileUploader as mt } from "./components/FileUploader/FileUploader.js";
84
+ import { FileIcon as ht } from "./components/pro/FileExplorer/FileIcon.js";
85
+ import { Breadcrumb as gt } from "./components/pro/FileExplorer/Breadcrumb.js";
86
+ import { Toolbar as _t } from "./components/pro/FileExplorer/Toolbar.js";
87
+ import { ListView as vt } from "./components/pro/FileExplorer/ListView.js";
88
+ import { GridView as yt } from "./components/pro/FileExplorer/GridView.js";
89
+ import { CreateDialog as bt } from "./components/pro/FileExplorer/CreateDialog.js";
90
+ import { FileExplorer as xt } from "./components/pro/FileExplorer/FileExplorer.js";
91
+ import { defaultLabels as St } from "./components/pro/RichTextEditor/types.js";
92
+ import { MarkdownBlockExtension as Ct } from "./components/pro/RichTextEditor/extensions/MarkdownBlock.js";
93
+ import wt from "./components/pro/RichTextEditor/Toolbar/Toolbar.js";
94
+ import Tt from "./components/pro/RichTextEditor/AIRewrite.js";
95
+ import { CodeBlockExtension as Et } from "./components/pro/RichTextEditor/extensions/CodeBlockView.js";
96
+ import Dt from "./components/pro/RichTextEditor/RichTextEditor.js";
97
+ import { BORDER_STYLE_OPTIONS as Ot, DASH_DENSITY_OPTIONS as kt, DEFAULT_EDGE_DATA as At, DEFAULT_NODE_DATA as jt, EDGE_LINE_STYLE_OPTIONS as Mt, EDGE_MARKER_OPTIONS as Nt, EDGE_TYPE_OPTIONS as Pt, GRADIENT_DIRECTION_OPTIONS as Ft, PALETTE_ITEMS as It, ROOT_CANVAS_ID as Lt, createEmptyDocument as Rt } from "./components/pro/Flow/constants.js";
98
+ import { FlowProvider as zt, useFlowContext as Bt } from "./components/pro/Flow/context/FlowContext.js";
99
+ import { FlowUIProvider as Vt, useFlowUI as Ht } from "./components/pro/Flow/context/FlowUIContext.js";
100
+ import { downloadDataURL as Ut, exportCanvasToPNG as Wt, useFlowImportExport as Gt } from "./components/pro/Flow/hooks/useFlowImportExport.js";
101
+ import { useLayoutActions as Kt } from "./components/pro/Flow/hooks/useLayoutActions.js";
102
+ import qt from "./components/pro/Flow/panels/FlowToolbar.js";
103
+ import Jt from "./components/pro/Flow/panels/ShapePalette.js";
104
+ import { FLOW_NODE_TYPES as Yt } from "./components/pro/Flow/types.js";
105
+ import Xt from "./components/pro/Flow/panels/InspectorPanel.js";
106
+ import Zt from "./components/pro/Flow/panels/OutlinePanel.js";
107
+ import Qt from "./components/pro/Flow/panels/ContextMenu.js";
108
+ import { useClipboard as $t } from "./components/pro/Flow/hooks/useClipboard.js";
109
+ import en from "./components/pro/Flow/Flow.js";
110
+ import { useNodeMutations as tn } from "./components/pro/Flow/hooks/useNodeMutations.js";
111
+ import { useEdgeMutations as nn } from "./components/pro/Flow/hooks/useEdgeMutations.js";
112
+ import { useLineMutations as rn } from "./components/pro/Flow/hooks/useLineMutations.js";
113
+ import { useSelection as an } from "./components/pro/Flow/hooks/useSelection.js";
114
+ import { DEFAULT_CATEGORY_CONFIG as on, DEFAULT_SCALE_CONFIGS as sn, DEFAULT_TIME_WINDOW as cn, addDays as ln, addWorkingDays as un, calculateWorkingDays as dn, computeDateRange as fn, dateToX as pn, daysBetween as mn, flattenTree as hn, formatDate as gn, generateDateRange as _n, generateHeaderGroups as vn, getISOWeekNumber as yn, getISOWeekYear as bn, isNonWorkingDay as xn, isWeekend as Sn, parseDate as Cn, startOfDay as wn, xToDate as Tn } from "./components/pro/Gantt/utils.js";
115
+ import { useGanttState as En } from "./components/pro/Gantt/hooks/useGanttState.js";
116
+ import { useGanttDrag as Dn } from "./components/pro/Gantt/hooks/useGanttDrag.js";
117
+ import On from "./components/pro/Gantt/Gantt.js";
118
+ import { DEFAULT_COLOR_OPTIONS as kn, LABELS_EN as An, LABELS_ZH as jn, SLOT_HEIGHT as Mn, TIME_GRID_HEIGHT as Nn, TIME_SLOTS as Pn, addDays as Fn, clamp as In, formatDate as Ln, formatTime as Rn, generateId as zn, generateTimeSlots as Bn, getDaysInMonth as Vn, getFirstDayOfMonth as Hn, getHolidayEntry as Un, getMonthDates as Wn, getWeekDates as Gn, isHoliday as Kn, isNonWorkingDay as qn, isSameDay as Jn, isToday as Yn, isWeekend as Xn, minutesToTime as Zn, parseDate as Qn, parseTime as $n, timeToMinutes as er, todayStr as tr } from "./components/pro/Calendar/utils.js";
119
+ import { useCalendarState as nr } from "./components/pro/Calendar/hooks/useCalendarState.js";
120
+ import { useCalendarDrag as rr } from "./components/pro/Calendar/hooks/useCalendarDrag.js";
121
+ import ir from "./components/pro/Calendar/Calendar.js";
122
+ export { Tt as AIRewrite, T as Accordion, ae as AppLayoutWrapper, oe as AppProvider, se as AppShell, Ne as ArticleContextMenu, Me as ArticleControl, w as Avatar, Ot as BORDER_STYLE_OPTIONS, c as Badge, gt as Breadcrumb, t as Button, kn as CALENDAR_DEFAULT_COLOR_OPTIONS, An as CALENDAR_LABELS_EN, jn as CALENDAR_LABELS_ZH, Mn as CALENDAR_SLOT_HEIGHT, Nn as CALENDAR_TIME_GRID_HEIGHT, Pn as CALENDAR_TIME_SLOTS, ir as Calendar, g as Card, Ae as Chart, d as Checkbox, W as ChoicePicker, Et as CodeBlockExtension, $e as CodeEditor, L as Column, k as Container, bt as CreateDialog, kt as DASH_DENSITY_OPTIONS, on as DEFAULT_CATEGORY_CONFIG, At as DEFAULT_EDGE_DATA, jt as DEFAULT_NODE_DATA, sn as DEFAULT_SCALE_CONFIGS, cn as DEFAULT_TIME_WINDOW, ve as DataTable, H as DateTimeInput, je as Demo, Y as DesktopSidebarToggleButton, m as Divider, ut as DropZone, Mt as EDGE_LINE_STYLE_OPTIONS, Nt as EDGE_MARKER_OPTIONS, Pt as EDGE_TYPE_OPTIONS, C as EmptyState, Yt as FLOW_NODE_TYPES, xt as FileExplorer, _t as FileExplorerToolbar, ht as FileIcon, mt as FileUploader, A as Flex, en as Flow, Qt as FlowContextMenu, Xt as FlowInspectorPanel, Zt as FlowOutlinePanel, zt as FlowProvider, Jt as FlowShapePalette, qt as FlowToolbar, Vt as FlowUIProvider, tt as FootnotePanel, Ft as GRADIENT_DIRECTION_OPTIONS, On as Gantt, j as Grid, M as GridItem, yt as GridView, N as Group, n as GroupButton, a as GroupedTable, $ as Headbar, ne as HeadbarLangSwitcher, te as HeadbarSearch, ie as HeadbarThemeSwitcher, ee as HeadbarTitle, B as Icon, z as Image, l as Input, u as Label, O as Layout, F as List, vt as ListView, at as MainLayout, Pe as Markdown, Ct as MarkdownBlockExtension, nt as MarkdownEditor, X as MobileSidebarToggleButton, E as Modal, U as MultipleChoice, ot as Navbar, o as NavigationList, rt as OutlinePanel, It as PALETTE_ITEMS, v as Page, y as PageBody, _ as PageHeader, b as PageLeft, x as PageMain, S as PageRight, he as PivotPanel, me as PivotView, st as ProtectedRoute, Lt as ROOT_CANVAS_ID, Dt as RichTextEditor, wt as RichTextToolbar, I as Row, s as Section, h as Select, Q as Sidebar, Z as SidebarToggleButtons, i as Skeleton, V as Slider, P as Space, f as Switch, r as Table, et as TableOfContentsPanel, D as Tabs, R as Text, p as Tooltip, J as Tree, ft as UploadFileItem, pt as UploadQueue, it as VariablePanel, Fn as addCalendarDays, ln as addGanttDays, un as addWorkingDays, We as bracketMatchingStyle, ct as buildRouter, dn as calculateWorkingDays, In as calendarClamp, Zn as calendarMinutesToTime, er as calendarTimeToMinutes, tr as calendarTodayStr, e as cn, Xe as collectVariables, fn as computeDateRange, pe as computePivot, ye as createActionColumn, be as createColumn, xe as createComputedColumn, Rt as createEmptyDocument, lt as createRouterFromConfig, Se as createSelectOptions, Ce as createSelectionColumn, Ye as createThemeExtension, we as dateSort, mn as daysBetween, Qe as defaultContextMenu, Te as defaultFilterFunctions, fe as defineExtension, Ut as downloadDataURL, Wt as exportCanvasToPNG, Ee as extractUniqueOptions, hn as flattenGanttTree, Ln as formatCalendarDate, Rn as formatCalendarTime, dt as formatFileSize, gn as formatGanttDate, pn as ganttDateToX, Tn as ganttXToDate, zn as generateCalendarId, Bn as generateCalendarTimeSlots, _n as generateDateRange, vn as generateHeaderGroups, Ze as generateOutline, G as generateSidebarActiveStyles, K as generateTreeActiveStyles, Vn as getCalendarDaysInMonth, Hn as getCalendarFirstDayOfMonth, Un as getCalendarHolidayEntry, Wn as getCalendarMonthDates, Gn as getCalendarWeekDates, Fe as getDefaultSnippets, yn as getISOWeekNumber, bn as getISOWeekYear, He as getJumpableKeywords, Ue as getLanguageKeywords, re as getThemes, Kn as isCalendarHoliday, qn as isCalendarNonWorkingDay, Jn as isCalendarSameDay, Yn as isCalendarToday, Xn as isCalendarWeekend, xn as isGanttNonWorkingDay, Sn as isGanttWeekend, Ie as javascriptSnippets, Re as jsJumpableKeywords, ze as jsKeywords, Ge as jumpTargetHighlight, Ke as jumpToDefinition, qe as lineHighlightStyle, De as numericSort, Qn as parseCalendarDate, $n as parseCalendarTime, Cn as parseGanttDate, Be as pyJumpableKeywords, Ve as pyKeywords, Le as pythonSnippets, St as richTextDefaultLabels, Je as smartAutocompletion, wn as startOfGanttDay, Oe as stringSort, q as themeActiveStyles, ke as treeSort, ce as useAppContext, le as useAuth, rr as useCalendarDrag, nr as useCalendarState, nn as useEdgeMutations, $t as useFlowClipboard, Bt as useFlowContext, Gt as useFlowImportExport, an as useFlowSelection, Ht as useFlowUI, Dn as useGanttDrag, En as useGanttState, Kt as useLayoutActions, rn as useLineMutations, tn as useNodeMutations, ge as usePivotExtension, _e as useRowDetailExtension, ue as useTableColumns, de as useTableData };
@@ -1,6 +1,6 @@
1
- import e from "./Sidebar.js";
2
- import t from "./headbar/Headbar.js";
3
- import { SidebarToggleButtons as n } from "../components/SidebarToggleButton/index.js";
1
+ import { MobileSidebarToggleButton as e } from "../components/SidebarToggleButton/index.js";
2
+ import t from "./Sidebar.js";
3
+ import n from "./headbar/Headbar.js";
4
4
  import { useAppContext as r } from "../contexts/AppContext.js";
5
5
  import i, { useRef as a, useState as o } from "react";
6
6
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -19,7 +19,7 @@ var u = ({ children: u, headbarLeft: d, headbarMiddle: f, headbarRight: p }) =>
19
19
  return /* @__PURE__ */ c("div", {
20
20
  className: "min-h-screen flex flex-col bg-base-100",
21
21
  "data-theme": v,
22
- children: [/* @__PURE__ */ s(t, {
22
+ children: [/* @__PURE__ */ s(n, {
23
23
  left: k,
24
24
  middle: f,
25
25
  right: p
@@ -29,13 +29,14 @@ var u = ({ children: u, headbarLeft: d, headbarMiddle: f, headbarRight: p }) =>
29
29
  /* @__PURE__ */ s("div", {
30
30
  className: "flex-shrink-0",
31
31
  ref: E,
32
- children: /* @__PURE__ */ s(e, {
32
+ children: /* @__PURE__ */ s(t, {
33
33
  isCollapsed: m,
34
34
  language: _,
35
35
  items: y,
36
36
  getMenuItems: b,
37
37
  onWidthChange: O,
38
- initialWidth: S || w,
38
+ onToggle: D,
39
+ initialWidth: w,
39
40
  collapsedWidth: C || 64
40
41
  })
41
42
  }),
@@ -43,11 +44,9 @@ var u = ({ children: u, headbarLeft: d, headbarMiddle: f, headbarRight: p }) =>
43
44
  className: "flex-1 overflow-y-auto px-6 py-4",
44
45
  children: u || /* @__PURE__ */ s(l, {})
45
46
  }),
46
- /* @__PURE__ */ s(n, {
47
+ /* @__PURE__ */ s(e, {
47
48
  isCollapsed: m,
48
- onToggle: D,
49
- sidebarWidth: w,
50
- collapsedWidth: C || 64
49
+ onToggle: D
51
50
  })
52
51
  ]
53
52
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"MainLayout.js","names":[],"sources":["../../src/layouts/MainLayout.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { Headbar, HeadbarTitle, HeadbarLangSwitcher, HeadbarThemeSwitcher } from './headbar';\nimport Sidebar from './Sidebar';\nimport { useAppContext } from '../contexts/AppContext';\nimport { Outlet } from '@tanstack/react-router';\nimport { SidebarToggleButtons } from '../components/SidebarToggleButton';\n\ninterface MainLayoutProps {\n children?: React.ReactNode;\n /** Headbar 左侧插槽 */\n headbarLeft?: React.ReactNode | ((toggleSidebar: () => void) => React.ReactNode);\n /** Headbar 中间插槽 */\n headbarMiddle?: React.ReactNode;\n /** Headbar 右侧插槽 */\n headbarRight?: React.ReactNode;\n}\n\nconst MainLayout: React.FC<MainLayoutProps> = ({ children, headbarLeft, headbarMiddle, headbarRight }) => {\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const { title, language, theme, menuItems, getMenuItems, themes, sidebarWidth: configSidebarWidth, sidebarCollapsedWidth } = useAppContext();\n const [sidebarWidth, setSidebarWidth] = useState(configSidebarWidth || 280); // 默认侧边栏宽度\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n // 当配置的 sidebarWidth 改变时,更新本地 state\n React.useEffect(() => {\n if (configSidebarWidth) {\n setSidebarWidth(configSidebarWidth);\n }\n }, [configSidebarWidth]);\n\n const toggleSidebar = () => {\n setSidebarCollapsed(!sidebarCollapsed);\n };\n\n // 当侧边栏宽度变化时更新状态\n const handleSidebarWidthChange = (width: number) => {\n setSidebarWidth(width);\n };\n\n const resolvedLeft = typeof headbarLeft === 'function'\n ? headbarLeft(toggleSidebar)\n : headbarLeft;\n\n return (\n <div className=\"min-h-screen flex flex-col bg-base-100\" data-theme={theme}>\n <Headbar\n left={resolvedLeft}\n middle={headbarMiddle}\n right={headbarRight}\n />\n\n <div className=\"flex flex-1 overflow-hidden\">\n <div className=\"flex-shrink-0\" ref={sidebarRef}>\n <Sidebar\n isCollapsed={sidebarCollapsed}\n language={language}\n items={menuItems}\n getMenuItems={getMenuItems}\n onWidthChange={handleSidebarWidthChange}\n initialWidth={configSidebarWidth || sidebarWidth}\n collapsedWidth={sidebarCollapsedWidth || 64}\n />\n </div>\n\n <main className=\"flex-1 overflow-y-auto px-6 py-4\">\n {children || <Outlet />}\n </main>\n\n {/* 悬浮侧边栏切换按钮 */}\n <SidebarToggleButtons\n isCollapsed={sidebarCollapsed}\n onToggle={toggleSidebar}\n sidebarWidth={sidebarWidth}\n collapsedWidth={sidebarCollapsedWidth || 64}\n />\n </div>\n </div>\n );\n};\n\nexport default MainLayout; "],"mappings":";;;;;;;;AAiBA,IAAM,KAAyC,EAAE,aAAU,gBAAa,kBAAe,sBAAmB;CACxG,IAAM,CAAC,GAAkB,KAAuB,EAAS,EAAK,GACxD,EAAE,UAAO,aAAU,UAAO,cAAW,iBAAc,WAAQ,cAAc,GAAoB,6BAA0B,EAAc,GACrI,CAAC,GAAc,KAAmB,EAAS,KAAsB,GAAG,GACpE,IAAa,EAAuB,IAAI;CAG9C,EAAM,gBAAgB;EACpB,AAAI,KACF,EAAgB,CAAkB;CAEtC,GAAG,CAAC,CAAkB,CAAC;CAEvB,IAAM,UAAsB;EAC1B,EAAoB,CAAC,CAAgB;CACvC,GAGM,KAA4B,MAAkB;EAClD,EAAgB,CAAK;CACvB,GAEM,IAAe,OAAO,KAAgB,aACxC,EAAY,CAAa,IACzB;CAEJ,OACE,kBAAC,OAAD;EAAK,WAAU;EAAyC,cAAY;EAApE,UAAA,CACE,kBAAC,GAAD;GACE,MAAM;GACN,QAAQ;GACR,OAAO;EACR,CAAA,GAED,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA;IACE,kBAAC,OAAD;KAAK,WAAU;KAAgB,KAAK;KAClC,UAAA,kBAAC,GAAD;MACE,aAAa;MACH;MACV,OAAO;MACO;MACd,eAAe;MACf,cAAc,KAAsB;MACpC,gBAAgB,KAAyB;KAC1C,CAAA;IACE,CAAA;IAEL,kBAAC,QAAD;KAAM,WAAU;KACb,UAAA,KAAY,kBAAC,GAAD,CAAS,CAAA;IAClB,CAAA;IAGN,kBAAC,GAAD;KACE,aAAa;KACb,UAAU;KACI;KACd,gBAAgB,KAAyB;IAC1C,CAAA;GACE;EACF,CAAA,CAAA;;AAET"}
1
+ {"version":3,"file":"MainLayout.js","names":[],"sources":["../../src/layouts/MainLayout.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { Headbar, HeadbarTitle, HeadbarLangSwitcher, HeadbarThemeSwitcher } from './headbar';\nimport Sidebar from './Sidebar';\nimport { useAppContext } from '../contexts/AppContext';\nimport { Outlet } from '@tanstack/react-router';\nimport { MobileSidebarToggleButton } from '../components/SidebarToggleButton';\n\ninterface MainLayoutProps {\n children?: React.ReactNode;\n /** Headbar 左侧插槽 */\n headbarLeft?: React.ReactNode | ((toggleSidebar: () => void) => React.ReactNode);\n /** Headbar 中间插槽 */\n headbarMiddle?: React.ReactNode;\n /** Headbar 右侧插槽 */\n headbarRight?: React.ReactNode;\n}\n\nconst MainLayout: React.FC<MainLayoutProps> = ({ children, headbarLeft, headbarMiddle, headbarRight }) => {\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const { title, language, theme, menuItems, getMenuItems, themes, sidebarWidth: configSidebarWidth, sidebarCollapsedWidth } = useAppContext();\n const [sidebarWidth, setSidebarWidth] = useState(configSidebarWidth || 280); // 默认侧边栏宽度\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n // 当配置的 sidebarWidth 改变时,更新本地 state\n React.useEffect(() => {\n if (configSidebarWidth) {\n setSidebarWidth(configSidebarWidth);\n }\n }, [configSidebarWidth]);\n\n const toggleSidebar = () => {\n setSidebarCollapsed(!sidebarCollapsed);\n };\n\n // 当侧边栏宽度变化时更新状态\n const handleSidebarWidthChange = (width: number) => {\n setSidebarWidth(width);\n };\n\n const resolvedLeft = typeof headbarLeft === 'function'\n ? headbarLeft(toggleSidebar)\n : headbarLeft;\n\n return (\n <div className=\"min-h-screen flex flex-col bg-base-100\" data-theme={theme}>\n <Headbar\n left={resolvedLeft}\n middle={headbarMiddle}\n right={headbarRight}\n />\n\n <div className=\"flex flex-1 overflow-hidden\">\n <div className=\"flex-shrink-0\" ref={sidebarRef}>\n <Sidebar\n isCollapsed={sidebarCollapsed}\n language={language}\n items={menuItems}\n getMenuItems={getMenuItems}\n onWidthChange={handleSidebarWidthChange}\n onToggle={toggleSidebar}\n initialWidth={sidebarWidth}\n collapsedWidth={sidebarCollapsedWidth || 64}\n />\n </div>\n\n <main className=\"flex-1 overflow-y-auto px-6 py-4\">\n {children || <Outlet />}\n </main>\n\n {/* 侧边栏切换控件:桌面端 pill 已由 Sidebar 内部渲染,此处仅保留移动端按钮 */}\n <MobileSidebarToggleButton\n isCollapsed={sidebarCollapsed}\n onToggle={toggleSidebar}\n />\n </div>\n </div>\n );\n};\n\nexport default MainLayout; "],"mappings":";;;;;;;;AAiBA,IAAM,KAAyC,EAAE,aAAU,gBAAa,kBAAe,sBAAmB;CACxG,IAAM,CAAC,GAAkB,KAAuB,EAAS,EAAK,GACxD,EAAE,UAAO,aAAU,UAAO,cAAW,iBAAc,WAAQ,cAAc,GAAoB,6BAA0B,EAAc,GACrI,CAAC,GAAc,KAAmB,EAAS,KAAsB,GAAG,GACpE,IAAa,EAAuB,IAAI;CAG9C,EAAM,gBAAgB;EACpB,AAAI,KACF,EAAgB,CAAkB;CAEtC,GAAG,CAAC,CAAkB,CAAC;CAEvB,IAAM,UAAsB;EAC1B,EAAoB,CAAC,CAAgB;CACvC,GAGM,KAA4B,MAAkB;EAClD,EAAgB,CAAK;CACvB,GAEM,IAAe,OAAO,KAAgB,aACxC,EAAY,CAAa,IACzB;CAEJ,OACE,kBAAC,OAAD;EAAK,WAAU;EAAyC,cAAY;EAApE,UAAA,CACE,kBAAC,GAAD;GACE,MAAM;GACN,QAAQ;GACR,OAAO;EACR,CAAA,GAED,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA;IACE,kBAAC,OAAD;KAAK,WAAU;KAAgB,KAAK;KAClC,UAAA,kBAAC,GAAD;MACE,aAAa;MACH;MACV,OAAO;MACO;MACd,eAAe;MACf,UAAU;MACV,cAAc;MACd,gBAAgB,KAAyB;KAC1C,CAAA;IACE,CAAA;IAEL,kBAAC,QAAD;KAAM,WAAU;KACb,UAAA,KAAY,kBAAC,GAAD,CAAS,CAAA;IAClB,CAAA;IAGN,kBAAC,GAAD;KACE,aAAa;KACb,UAAU;IACX,CAAA;GACE;EACF,CAAA,CAAA;;AAET"}
@@ -8,6 +8,15 @@ type SidebarProps = {
8
8
  onWidthChange?: (width: number) => void;
9
9
  initialWidth?: number;
10
10
  collapsedWidth?: number;
11
+ /**
12
+ * 折叠 / 展开切换回调。传入后,侧边栏会在其边缘渲染统一的悬浮 pill 控制条
13
+ * (点击折叠、拖拽调节宽度),无需再在外层单独渲染 SidebarToggleButtons。
14
+ */
15
+ onToggle?: () => void;
16
+ /** 拖拽调节宽度的最小值(px) */
17
+ minWidth?: number;
18
+ /** 拖拽调节宽度的最大值(px) */
19
+ maxWidth?: number;
11
20
  };
12
21
  declare const Sidebar: React.FC<SidebarProps>;
13
22
  export default Sidebar;