dishui 0.0.83 → 0.0.89

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 (100) hide show
  1. package/dist/components/Demo/index.js +2 -2
  2. package/dist/components/Demo/index.js.map +1 -1
  3. package/dist/components/Input/index.js +52 -62
  4. package/dist/components/Input/index.js.map +1 -1
  5. package/dist/components/LayoutSuite/index.d.ts +10 -0
  6. package/dist/components/LayoutSuite/index.js +27 -18
  7. package/dist/components/LayoutSuite/index.js.map +1 -1
  8. package/dist/components/Markdown/markdownComponents.js +1 -0
  9. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  10. package/dist/components/Markdown/useMarkdownSource.js +46 -31
  11. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  12. package/dist/components/Markdown/useMarkmapRenderer.js +44 -31
  13. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  14. package/dist/components/Markdown/useMermaidRenderer.js +49 -31
  15. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  16. package/dist/components/Page/index.d.ts +18 -4
  17. package/dist/components/Page/index.js +47 -35
  18. package/dist/components/Page/index.js.map +1 -1
  19. package/dist/components/ProtectedRoute/index.d.ts +2 -1
  20. package/dist/components/ProtectedRoute/index.js +16 -6
  21. package/dist/components/ProtectedRoute/index.js.map +1 -1
  22. package/dist/components/Select/index.d.ts +6 -0
  23. package/dist/components/Select/index.js +166 -136
  24. package/dist/components/Select/index.js.map +1 -1
  25. package/dist/components/Tabs/index.d.ts +12 -1
  26. package/dist/components/Tabs/index.js +42 -17
  27. package/dist/components/Tabs/index.js.map +1 -1
  28. package/dist/components/Text/index.d.ts +1 -1
  29. package/dist/components/Text/index.js +2 -2
  30. package/dist/components/Text/index.js.map +1 -1
  31. package/dist/components/pro/ArticleContextMenu/index.js +7 -7
  32. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +200 -189
  33. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  34. package/dist/components/pro/CodeEditor/types.d.ts +3 -0
  35. package/dist/components/pro/DataTable/DataTable.d.ts +1 -1
  36. package/dist/components/pro/DataTable/DataTable.js +98 -240
  37. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  38. package/dist/components/pro/DataTable/components/TableBody.js +14 -16
  39. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  40. package/dist/components/pro/DataTable/components/TablePagination.d.ts +3 -9
  41. package/dist/components/pro/DataTable/components/TablePagination.js +29 -25
  42. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  43. package/dist/components/pro/DataTable/tanstack-table.d.ts +2 -2
  44. package/dist/components/pro/DataTable/tanstack-table.js +29 -21
  45. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  46. package/dist/components/pro/DataTable/treeDataUtils.d.ts +2 -0
  47. package/dist/components/pro/DataTable/treeDataUtils.js +18 -19
  48. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  49. package/dist/components/pro/DataTable/types.d.ts +24 -0
  50. package/dist/components/pro/DataTable/useDataTableModel.d.ts +16 -0
  51. package/dist/components/pro/DataTable/useDataTableModel.js +148 -0
  52. package/dist/components/pro/DataTable/useDataTableModel.js.map +1 -0
  53. package/dist/components/pro/FileExplorer/Breadcrumb.js +12 -12
  54. package/dist/components/pro/Flow/nodes/DataNodeView.js +87 -82
  55. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  56. package/dist/components/pro/Flow/nodes/MediaContent.js +1 -1
  57. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  58. package/dist/components/pro/Flow/nodes/MediaOverlay.js +1 -1
  59. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  60. package/dist/components/pro/Flow/nodes/Model3DView.js +69 -63
  61. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  62. package/dist/components/pro/Flow/nodes/chartGeometryBudget.d.ts +14 -0
  63. package/dist/components/pro/Flow/nodes/chartGeometryBudget.js +76 -0
  64. package/dist/components/pro/Flow/nodes/chartGeometryBudget.js.map +1 -0
  65. package/dist/components/pro/Flow/nodes/demandRender.d.ts +11 -0
  66. package/dist/components/pro/Flow/nodes/demandRender.js +26 -0
  67. package/dist/components/pro/Flow/nodes/demandRender.js.map +1 -0
  68. package/dist/components/pro/RichTextEditor/SlashMenu.js +68 -58
  69. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  70. package/dist/contexts/AppContext.d.ts +1 -0
  71. package/dist/contexts/AppContext.js +144 -145
  72. package/dist/contexts/AppContext.js.map +1 -1
  73. package/dist/contexts/authentication.d.ts +7 -0
  74. package/dist/contexts/authentication.js +22 -0
  75. package/dist/contexts/authentication.js.map +1 -0
  76. package/dist/dishui.css +1 -1
  77. package/dist/hooks/useControllableState.d.ts +6 -14
  78. package/dist/hooks/useControllableState.js +21 -15
  79. package/dist/hooks/useControllableState.js.map +1 -1
  80. package/dist/hooks/useTableColumns.d.ts +3 -3
  81. package/dist/hooks/useTableColumns.js +2 -2
  82. package/dist/hooks/useTableColumns.js.map +1 -1
  83. package/dist/hooks/useTableData.d.ts +11 -4
  84. package/dist/hooks/useTableData.js +44 -26
  85. package/dist/hooks/useTableData.js.map +1 -1
  86. package/dist/index-nostyled.d.ts +2 -2
  87. package/dist/index.d.ts +2 -2
  88. package/dist/index.js +97 -97
  89. package/dist/layouts/Sidebar.d.ts +3 -1
  90. package/dist/layouts/Sidebar.js +131 -122
  91. package/dist/layouts/Sidebar.js.map +1 -1
  92. package/dist/utils/i18n.js +1 -1
  93. package/dist/utils/i18n.js.map +1 -1
  94. package/dist/utils/routerBuilder.d.ts +7 -5
  95. package/dist/utils/routerBuilder.js +11 -15
  96. package/dist/utils/routerBuilder.js.map +1 -1
  97. package/dist/utils/safeStorage.d.ts +8 -0
  98. package/dist/utils/safeStorage.js +45 -0
  99. package/dist/utils/safeStorage.js.map +1 -0
  100. package/package.json +22 -5
package/dist/index.js CHANGED
@@ -31,100 +31,100 @@ import { DesktopSidebarToggleButton as L, MobileSidebarToggleButton as R, Sideba
31
31
  import B from "./layouts/Sidebar.js";
32
32
  import V, { Container as H, Flex as U, Grid as W, GridItem as G, Group as K, Space as q } from "./components/Layout/index.js";
33
33
  import { DashboardSuite as J } from "./components/LayoutSuite/DashboardSuite.js";
34
- import { AdminSuite as Y, BlankSuite as X, BlogSuite as Z, LayoutSuite as Q, WikiSuite as $ } from "./components/LayoutSuite/index.js";
35
- import ee from "./components/EmptyState/index.js";
36
- import te from "./components/Avatar/index.js";
37
- import ne from "./components/Accordion/index.js";
38
- import re from "./components/Modal/index.js";
39
- import ie from "./components/Tabs/index.js";
40
- import ae from "./components/List/index.js";
41
- import oe from "./components/Row/index.js";
42
- import se from "./components/Column/index.js";
43
- import ce from "./components/Image/index.js";
44
- import le from "./components/Icon/index.js";
45
- import ue from "./components/Slider/index.js";
46
- import de from "./components/DateTimeInput/index.js";
47
- import fe from "./components/MultipleChoice/index.js";
48
- import pe from "./components/ChoicePicker/index.js";
49
- import me from "./layouts/headbar/Headbar.js";
50
- import he from "./layouts/headbar/HeadbarTitle.js";
51
- import ge from "./layouts/headbar/HeadbarSearch.js";
52
- import _e from "./layouts/headbar/HeadbarLangSwitcher.js";
53
- import { getThemes as ve } from "./utils/themes.js";
54
- import ye from "./layouts/headbar/HeadbarThemeSwitcher.js";
55
- import { AppLayoutWrapper as be, AppProvider as xe, AppShell as Se, useAppContext as Ce, useAuth as we } from "./contexts/AppContext.js";
56
- import Te from "./hooks/useTableColumns.js";
57
- import Ee from "./hooks/useTableData.js";
58
- import { defineExtension as De } from "./components/pro/DataTable/extension.js";
59
- import { computePivot as Oe } from "./components/pro/DataTable/pivotEngine.js";
60
- import { PivotView as ke } from "./components/pro/DataTable/PivotView.js";
61
- import { PivotPanel as Ae } from "./components/pro/DataTable/PivotPanel.js";
62
- import { usePivotExtension as je } from "./components/pro/DataTable/pivotExtension.js";
63
- import { useRowDetailExtension as Me } from "./components/pro/DataTable/rowDetailExtension.js";
64
- import Ne, { createActionColumn as Pe, createColumn as Fe, createComputedColumn as Ie, createSelectOptions as Le, createSelectionColumn as Re, dateSort as ze, defaultFilterFunctions as Be, extractUniqueOptions as Ve, numericSort as He, stringSort as Ue, treeSort as We } from "./data-table.js";
65
- import Ge from "./components/Chart/Chart.js";
66
- import Ke from "./components/Demo/index.js";
67
- import qe from "./components/pro/ArticleControl/ArticleControl2.js";
68
- import Je from "./components/pro/ArticleContextMenu/index.js";
69
- import Ye from "./components/Markdown/Markdown.js";
70
- import { getDefaultSnippets as Xe, javascriptSnippets as Ze, pythonSnippets as Qe } from "./components/pro/CodeEditor/langs/snippets.js";
71
- import { jsJumpableKeywords as $e, jsKeywords as et } from "./components/pro/CodeEditor/langs/javascript.js";
72
- import { pyJumpableKeywords as tt, pyKeywords as nt } from "./components/pro/CodeEditor/langs/python.js";
73
- import { getJumpableKeywords as rt, getLanguageKeywords as it } from "./components/pro/CodeEditor/langs/index.js";
74
- import { bracketMatchingStyle as at, jumpTargetHighlight as ot, jumpToDefinition as st, lineHighlightStyle as ct, smartAutocompletion as lt } from "./components/pro/CodeEditor/extensions/index.js";
75
- import { createThemeExtension as ut } from "./components/pro/CodeEditor/themes.js";
76
- import { collectVariables as dt, generateOutline as ft } from "./components/pro/CodeEditor/utils.js";
77
- import { defaultContextMenu as pt } from "./components/pro/CodeEditor/extensions/contextMenu.js";
78
- import mt from "./components/pro/CodeEditor/editors/CodeEditor.js";
79
- import ht from "./components/pro/CodeEditor/panels/TableOfContentsPanel.js";
80
- import gt from "./components/pro/CodeEditor/panels/FootnotePanel.js";
81
- import _t from "./components/pro/CodeEditor/editors/MarkdownEditor.js";
82
- import vt from "./components/pro/CodeEditor/panels/OutlinePanel.js";
83
- import yt from "./components/pro/CodeEditor/panels/VariablePanel.js";
84
- import bt from "./layouts/MainLayout.js";
85
- import xt from "./layouts/Navbar.js";
86
- import { ProtectedRoute as St } from "./components/ProtectedRoute/index.js";
87
- import { buildRouter as Ct, createRouterFromConfig as wt } from "./utils/routerBuilder.js";
88
- import { DropZone as Tt, formatFileSize as Et } from "./components/FileUploader/DropZone.js";
89
- import { FileItem as Dt } from "./components/FileUploader/FileItem.js";
90
- import { UploadQueue as Ot } from "./components/FileUploader/UploadQueue.js";
91
- import { FileUploader as kt } from "./components/FileUploader/FileUploader.js";
92
- import { FileIcon as At } from "./components/pro/FileExplorer/FileIcon.js";
93
- import { Breadcrumb as jt } from "./components/pro/FileExplorer/Breadcrumb.js";
94
- import { Toolbar as Mt } from "./components/pro/FileExplorer/Toolbar.js";
95
- import { ListView as Nt } from "./components/pro/FileExplorer/ListView.js";
96
- import { GridView as Pt } from "./components/pro/FileExplorer/GridView.js";
97
- import { CreateDialog as Ft } from "./components/pro/FileExplorer/CreateDialog.js";
98
- import { FileExplorer as It } from "./components/pro/FileExplorer/FileExplorer.js";
99
- import { defaultLabels as Lt } from "./components/pro/RichTextEditor/types.js";
100
- import { MarkdownBlockExtension as Rt } from "./components/pro/RichTextEditor/extensions/MarkdownBlock.js";
101
- import zt from "./components/pro/RichTextEditor/Toolbar/Toolbar.js";
102
- import Bt from "./components/pro/RichTextEditor/AIRewrite.js";
103
- import { CodeBlockExtension as Vt } from "./components/pro/RichTextEditor/extensions/CodeBlockView.js";
104
- import Ht from "./components/pro/RichTextEditor/RichTextEditor.js";
105
- import { BORDER_STYLE_OPTIONS as Ut, DASH_DENSITY_OPTIONS as Wt, DEFAULT_EDGE_DATA as Gt, DEFAULT_NODE_DATA as Kt, EDGE_LINE_STYLE_OPTIONS as qt, EDGE_MARKER_OPTIONS as Jt, EDGE_TYPE_OPTIONS as Yt, GRADIENT_DIRECTION_OPTIONS as Xt, PALETTE_ITEMS as Zt, ROOT_CANVAS_ID as Qt, createEmptyDocument as $t } from "./components/pro/Flow/constants.js";
106
- import { FlowProvider as en, useFlowContext as tn } from "./components/pro/Flow/context/FlowContext.js";
107
- import { FlowUIProvider as nn, useFlowUI as rn } from "./components/pro/Flow/context/FlowUIContext.js";
108
- import { downloadDataURL as an, exportCanvasToPNG as on, useFlowImportExport as sn } from "./components/pro/Flow/hooks/useFlowImportExport.js";
109
- import { useLayoutActions as cn } from "./components/pro/Flow/hooks/useLayoutActions.js";
110
- import ln from "./components/pro/Flow/panels/FlowToolbar.js";
111
- import un from "./components/pro/Flow/panels/ShapePalette.js";
112
- import { FLOW_NODE_TYPES as dn } from "./components/pro/Flow/types.js";
113
- import fn from "./components/pro/Flow/panels/InspectorPanel.js";
114
- import pn from "./components/pro/Flow/panels/OutlinePanel.js";
115
- import mn from "./components/pro/Flow/panels/ContextMenu.js";
116
- import { useClipboard as hn } from "./components/pro/Flow/hooks/useClipboard.js";
117
- import gn from "./components/pro/Flow/Flow.js";
118
- import { useNodeMutations as _n } from "./components/pro/Flow/hooks/useNodeMutations.js";
119
- import { useEdgeMutations as vn } from "./components/pro/Flow/hooks/useEdgeMutations.js";
120
- import { useLineMutations as yn } from "./components/pro/Flow/hooks/useLineMutations.js";
121
- import { useSelection as bn } from "./components/pro/Flow/hooks/useSelection.js";
122
- import { DEFAULT_CATEGORY_CONFIG as xn, DEFAULT_SCALE_CONFIGS as Sn, DEFAULT_TIME_WINDOW as Cn, addDays as wn, addWorkingDays as Tn, calculateWorkingDays as En, computeDateRange as Dn, dateToX as On, daysBetween as kn, flattenTree as An, formatDate as jn, generateDateRange as Mn, generateHeaderGroups as Nn, getISOWeekNumber as Pn, getISOWeekYear as Fn, isNonWorkingDay as In, isWeekend as Ln, parseDate as Rn, startOfDay as zn, xToDate as Bn } from "./components/pro/Gantt/utils.js";
123
- import { useGanttState as Vn } from "./components/pro/Gantt/hooks/useGanttState.js";
124
- import { useGanttDrag as Hn } from "./components/pro/Gantt/hooks/useGanttDrag.js";
125
- import Un from "./components/pro/Gantt/Gantt.js";
126
- import { DEFAULT_COLOR_OPTIONS as Wn, LABELS_EN as Gn, LABELS_ZH as Kn, SLOT_HEIGHT as qn, TIME_GRID_HEIGHT as Jn, TIME_SLOTS as Yn, addDays as Xn, clamp as Zn, formatDate as Qn, formatTime as $n, generateId as er, generateTimeSlots as tr, getDaysInMonth as nr, getFirstDayOfMonth as rr, getHolidayEntry as ir, getMonthDates as ar, getWeekDates as or, isHoliday as sr, isNonWorkingDay as cr, isSameDay as lr, isToday as ur, isWeekend as dr, minutesToTime as fr, parseDate as pr, parseTime as mr, timeToMinutes as hr, todayStr as gr } from "./components/pro/Calendar/utils.js";
127
- import { useCalendarState as _r } from "./components/pro/Calendar/hooks/useCalendarState.js";
128
- import { useCalendarDrag as vr } from "./components/pro/Calendar/hooks/useCalendarDrag.js";
129
- import yr from "./components/pro/Calendar/Calendar.js";
130
- export { Bt as AIRewrite, ne as Accordion, Y as AdminSuite, be as AppLayoutWrapper, xe as AppProvider, Se as AppShell, Je as ArticleContextMenu, qe as ArticleControl, te as Avatar, Ut as BORDER_STYLE_OPTIONS, m as Badge, X as BlankSuite, Z as BlogSuite, jt as Breadcrumb, a as Button, p as ButtonMenu, Wn as CALENDAR_DEFAULT_COLOR_OPTIONS, Gn as CALENDAR_LABELS_EN, Kn as CALENDAR_LABELS_ZH, qn as CALENDAR_SLOT_HEIGHT, Jn as CALENDAR_TIME_GRID_HEIGHT, Yn as CALENDAR_TIME_SLOTS, yr as Calendar, w as Card, Ge as Chart, y as Checkbox, pe as ChoicePicker, Vt as CodeBlockExtension, mt as CodeEditor, se as Column, H as Container, Ft as CreateDialog, Wt as DASH_DENSITY_OPTIONS, xn as DEFAULT_CATEGORY_CONFIG, Gt as DEFAULT_EDGE_DATA, Kt as DEFAULT_NODE_DATA, Sn as DEFAULT_SCALE_CONFIGS, Cn as DEFAULT_TIME_WINDOW, J as DashboardSuite, Ne as DataTable, de as DateTimeInput, Ke as Demo, L as DesktopSidebarToggleButton, S as Divider, Tt as DropZone, qt as EDGE_LINE_STYLE_OPTIONS, Jt as EDGE_MARKER_OPTIONS, Yt as EDGE_TYPE_OPTIONS, ee as EmptyState, dn as FLOW_NODE_TYPES, g as Field, It as FileExplorer, Mt as FileExplorerToolbar, At as FileIcon, kt as FileUploader, U as Flex, gn as Flow, mn as FlowContextMenu, fn as FlowInspectorPanel, pn as FlowOutlinePanel, en as FlowProvider, un as FlowShapePalette, ln as FlowToolbar, nn as FlowUIProvider, gt as FootnotePanel, Xt as GRADIENT_DIRECTION_OPTIONS, Un as Gantt, W as Grid, G as GridItem, Pt as GridView, K as Group, o as GroupButton, l as GroupedTable, me as Headbar, _e as HeadbarLangSwitcher, ge as HeadbarSearch, ye as HeadbarThemeSwitcher, he as HeadbarTitle, le as Icon, ce as Image, h as Input, v as Label, V as Layout, Q as LayoutSuite, ae as List, Nt as ListView, bt as MainLayout, Ye as Markdown, Rt as MarkdownBlockExtension, _t as MarkdownEditor, R as MobileSidebarToggleButton, re as Modal, fe as MultipleChoice, xt as Navbar, u as NavigationList, vt as OutlinePanel, Zt as PALETTE_ITEMS, D as Page, O as PageBody, E as PageFloat, k as PageFooter, T as PageHeader, A as PageLeft, j as PageMain, M as PageRight, Ae as PivotPanel, ke as PivotView, St as ProtectedRoute, Qt as ROOT_CANVAS_ID, t as Resizable, n as ResizableHandle, r as ResizablePanel, Ht as RichTextEditor, zt as RichTextToolbar, oe as Row, d as Section, C as Select, B as Sidebar, z as SidebarToggleButtons, c as Skeleton, ue as Slider, q as Space, b as Switch, s as Table, ht as TableOfContentsPanel, ie as Tabs, f as Text, _ as Textarea, x as Tooltip, I as Tree, Dt as UploadFileItem, Ot as UploadQueue, yt as VariablePanel, $ as WikiSuite, Xn as addCalendarDays, wn as addGanttDays, Tn as addWorkingDays, at as bracketMatchingStyle, Ct as buildRouter, En as calculateWorkingDays, Zn as calendarClamp, fr as calendarMinutesToTime, hr as calendarTimeToMinutes, gr as calendarTodayStr, i as cn, dt as collectVariables, Dn as computeDateRange, Oe as computePivot, Pe as createActionColumn, Fe as createColumn, Ie as createComputedColumn, $t as createEmptyDocument, wt as createRouterFromConfig, Le as createSelectOptions, Re as createSelectionColumn, ut as createThemeExtension, ze as dateSort, kn as daysBetween, pt as defaultContextMenu, Be as defaultFilterFunctions, De as defineExtension, an as downloadDataURL, on as exportCanvasToPNG, Ve as extractUniqueOptions, An as flattenGanttTree, Qn as formatCalendarDate, $n as formatCalendarTime, Et as formatFileSize, jn as formatGanttDate, On as ganttDateToX, Bn as ganttXToDate, er as generateCalendarId, tr as generateCalendarTimeSlots, Mn as generateDateRange, Nn as generateHeaderGroups, ft as generateOutline, N as generateSidebarActiveStyles, P as generateTreeActiveStyles, nr as getCalendarDaysInMonth, rr as getCalendarFirstDayOfMonth, ir as getCalendarHolidayEntry, ar as getCalendarMonthDates, or as getCalendarWeekDates, Xe as getDefaultSnippets, Pn as getISOWeekNumber, Fn as getISOWeekYear, rt as getJumpableKeywords, it as getLanguageKeywords, ve as getThemes, sr as isCalendarHoliday, cr as isCalendarNonWorkingDay, lr as isCalendarSameDay, ur as isCalendarToday, dr as isCalendarWeekend, In as isGanttNonWorkingDay, Ln as isGanttWeekend, Ze as javascriptSnippets, $e as jsJumpableKeywords, et as jsKeywords, ot as jumpTargetHighlight, st as jumpToDefinition, ct as lineHighlightStyle, He as numericSort, pr as parseCalendarDate, mr as parseCalendarTime, Rn as parseGanttDate, tt as pyJumpableKeywords, nt as pyKeywords, Qe as pythonSnippets, Lt as richTextDefaultLabels, lt as smartAutocompletion, zn as startOfGanttDay, Ue as stringSort, F as themeActiveStyles, We as treeSort, Ce as useAppContext, we as useAuth, vr as useCalendarDrag, _r as useCalendarState, vn as useEdgeMutations, hn as useFlowClipboard, tn as useFlowContext, sn as useFlowImportExport, bn as useFlowSelection, rn as useFlowUI, Hn as useGanttDrag, Vn as useGanttState, cn as useLayoutActions, yn as useLineMutations, _n as useNodeMutations, je as usePivotExtension, e as useResize, Me as useRowDetailExtension, Te as useTableColumns, Ee as useTableData };
34
+ import { AdminSuite as Y, BlankSuite as X, BlogSuite as Z, LayoutSuite as Q, MailSuite as $, WikiSuite as ee } from "./components/LayoutSuite/index.js";
35
+ import te from "./components/EmptyState/index.js";
36
+ import ne from "./components/Avatar/index.js";
37
+ import re from "./components/Accordion/index.js";
38
+ import ie from "./components/Modal/index.js";
39
+ import ae from "./components/Tabs/index.js";
40
+ import oe from "./components/List/index.js";
41
+ import se from "./components/Row/index.js";
42
+ import ce from "./components/Column/index.js";
43
+ import le from "./components/Image/index.js";
44
+ import ue from "./components/Icon/index.js";
45
+ import de from "./components/Slider/index.js";
46
+ import fe from "./components/DateTimeInput/index.js";
47
+ import pe from "./components/MultipleChoice/index.js";
48
+ import me from "./components/ChoicePicker/index.js";
49
+ import he from "./layouts/headbar/Headbar.js";
50
+ import ge from "./layouts/headbar/HeadbarTitle.js";
51
+ import _e from "./layouts/headbar/HeadbarSearch.js";
52
+ import ve from "./layouts/headbar/HeadbarLangSwitcher.js";
53
+ import { getThemes as ye } from "./utils/themes.js";
54
+ import be from "./layouts/headbar/HeadbarThemeSwitcher.js";
55
+ import { AppLayoutWrapper as xe, AppProvider as Se, AppShell as Ce, useAppContext as we, useAuth as Te } from "./contexts/AppContext.js";
56
+ import Ee from "./hooks/useTableColumns.js";
57
+ import De from "./hooks/useTableData.js";
58
+ import { defineExtension as Oe } from "./components/pro/DataTable/extension.js";
59
+ import { computePivot as ke } from "./components/pro/DataTable/pivotEngine.js";
60
+ import { PivotView as Ae } from "./components/pro/DataTable/PivotView.js";
61
+ import { PivotPanel as je } from "./components/pro/DataTable/PivotPanel.js";
62
+ import { usePivotExtension as Me } from "./components/pro/DataTable/pivotExtension.js";
63
+ import { useRowDetailExtension as Ne } from "./components/pro/DataTable/rowDetailExtension.js";
64
+ import Pe, { createActionColumn as Fe, createColumn as Ie, createComputedColumn as Le, createSelectOptions as Re, createSelectionColumn as ze, dateSort as Be, defaultFilterFunctions as Ve, extractUniqueOptions as He, numericSort as Ue, stringSort as We, treeSort as Ge } from "./data-table.js";
65
+ import Ke from "./components/Chart/Chart.js";
66
+ import qe from "./components/Demo/index.js";
67
+ import Je from "./components/pro/ArticleControl/ArticleControl2.js";
68
+ import Ye from "./components/pro/ArticleContextMenu/index.js";
69
+ import Xe from "./components/Markdown/Markdown.js";
70
+ import { getDefaultSnippets as Ze, javascriptSnippets as Qe, pythonSnippets as $e } from "./components/pro/CodeEditor/langs/snippets.js";
71
+ import { jsJumpableKeywords as et, jsKeywords as tt } from "./components/pro/CodeEditor/langs/javascript.js";
72
+ import { pyJumpableKeywords as nt, pyKeywords as rt } from "./components/pro/CodeEditor/langs/python.js";
73
+ import { getJumpableKeywords as it, getLanguageKeywords as at } from "./components/pro/CodeEditor/langs/index.js";
74
+ import { bracketMatchingStyle as ot, jumpTargetHighlight as st, jumpToDefinition as ct, lineHighlightStyle as lt, smartAutocompletion as ut } from "./components/pro/CodeEditor/extensions/index.js";
75
+ import { createThemeExtension as dt } from "./components/pro/CodeEditor/themes.js";
76
+ import { collectVariables as ft, generateOutline as pt } from "./components/pro/CodeEditor/utils.js";
77
+ import { defaultContextMenu as mt } from "./components/pro/CodeEditor/extensions/contextMenu.js";
78
+ import ht from "./components/pro/CodeEditor/editors/CodeEditor.js";
79
+ import gt from "./components/pro/CodeEditor/panels/TableOfContentsPanel.js";
80
+ import _t from "./components/pro/CodeEditor/panels/FootnotePanel.js";
81
+ import vt from "./components/pro/CodeEditor/editors/MarkdownEditor.js";
82
+ import yt from "./components/pro/CodeEditor/panels/OutlinePanel.js";
83
+ import bt from "./components/pro/CodeEditor/panels/VariablePanel.js";
84
+ import xt from "./layouts/MainLayout.js";
85
+ import St from "./layouts/Navbar.js";
86
+ import { ProtectedRoute as Ct } from "./components/ProtectedRoute/index.js";
87
+ import { buildRouter as wt, createRouterFromConfig as Tt } from "./utils/routerBuilder.js";
88
+ import { DropZone as Et, formatFileSize as Dt } from "./components/FileUploader/DropZone.js";
89
+ import { FileItem as Ot } from "./components/FileUploader/FileItem.js";
90
+ import { UploadQueue as kt } from "./components/FileUploader/UploadQueue.js";
91
+ import { FileUploader as At } from "./components/FileUploader/FileUploader.js";
92
+ import { FileIcon as jt } from "./components/pro/FileExplorer/FileIcon.js";
93
+ import { Breadcrumb as Mt } from "./components/pro/FileExplorer/Breadcrumb.js";
94
+ import { Toolbar as Nt } from "./components/pro/FileExplorer/Toolbar.js";
95
+ import { ListView as Pt } from "./components/pro/FileExplorer/ListView.js";
96
+ import { GridView as Ft } from "./components/pro/FileExplorer/GridView.js";
97
+ import { CreateDialog as It } from "./components/pro/FileExplorer/CreateDialog.js";
98
+ import { FileExplorer as Lt } from "./components/pro/FileExplorer/FileExplorer.js";
99
+ import { defaultLabels as Rt } from "./components/pro/RichTextEditor/types.js";
100
+ import { MarkdownBlockExtension as zt } from "./components/pro/RichTextEditor/extensions/MarkdownBlock.js";
101
+ import Bt from "./components/pro/RichTextEditor/Toolbar/Toolbar.js";
102
+ import Vt from "./components/pro/RichTextEditor/AIRewrite.js";
103
+ import { CodeBlockExtension as Ht } from "./components/pro/RichTextEditor/extensions/CodeBlockView.js";
104
+ import Ut from "./components/pro/RichTextEditor/RichTextEditor.js";
105
+ import { BORDER_STYLE_OPTIONS as Wt, DASH_DENSITY_OPTIONS as Gt, DEFAULT_EDGE_DATA as Kt, DEFAULT_NODE_DATA as qt, EDGE_LINE_STYLE_OPTIONS as Jt, EDGE_MARKER_OPTIONS as Yt, EDGE_TYPE_OPTIONS as Xt, GRADIENT_DIRECTION_OPTIONS as Zt, PALETTE_ITEMS as Qt, ROOT_CANVAS_ID as $t, createEmptyDocument as en } from "./components/pro/Flow/constants.js";
106
+ import { FlowProvider as tn, useFlowContext as nn } from "./components/pro/Flow/context/FlowContext.js";
107
+ import { FlowUIProvider as rn, useFlowUI as an } from "./components/pro/Flow/context/FlowUIContext.js";
108
+ import { downloadDataURL as on, exportCanvasToPNG as sn, useFlowImportExport as cn } from "./components/pro/Flow/hooks/useFlowImportExport.js";
109
+ import { useLayoutActions as ln } from "./components/pro/Flow/hooks/useLayoutActions.js";
110
+ import un from "./components/pro/Flow/panels/FlowToolbar.js";
111
+ import dn from "./components/pro/Flow/panels/ShapePalette.js";
112
+ import { FLOW_NODE_TYPES as fn } from "./components/pro/Flow/types.js";
113
+ import pn from "./components/pro/Flow/panels/InspectorPanel.js";
114
+ import mn from "./components/pro/Flow/panels/OutlinePanel.js";
115
+ import hn from "./components/pro/Flow/panels/ContextMenu.js";
116
+ import { useClipboard as gn } from "./components/pro/Flow/hooks/useClipboard.js";
117
+ import _n from "./components/pro/Flow/Flow.js";
118
+ import { useNodeMutations as vn } from "./components/pro/Flow/hooks/useNodeMutations.js";
119
+ import { useEdgeMutations as yn } from "./components/pro/Flow/hooks/useEdgeMutations.js";
120
+ import { useLineMutations as bn } from "./components/pro/Flow/hooks/useLineMutations.js";
121
+ import { useSelection as xn } from "./components/pro/Flow/hooks/useSelection.js";
122
+ import { DEFAULT_CATEGORY_CONFIG as Sn, DEFAULT_SCALE_CONFIGS as Cn, DEFAULT_TIME_WINDOW as wn, addDays as Tn, addWorkingDays as En, calculateWorkingDays as Dn, computeDateRange as On, dateToX as kn, daysBetween as An, flattenTree as jn, formatDate as Mn, generateDateRange as Nn, generateHeaderGroups as Pn, getISOWeekNumber as Fn, getISOWeekYear as In, isNonWorkingDay as Ln, isWeekend as Rn, parseDate as zn, startOfDay as Bn, xToDate as Vn } from "./components/pro/Gantt/utils.js";
123
+ import { useGanttState as Hn } from "./components/pro/Gantt/hooks/useGanttState.js";
124
+ import { useGanttDrag as Un } from "./components/pro/Gantt/hooks/useGanttDrag.js";
125
+ import Wn from "./components/pro/Gantt/Gantt.js";
126
+ import { DEFAULT_COLOR_OPTIONS as Gn, LABELS_EN as Kn, LABELS_ZH as qn, SLOT_HEIGHT as Jn, TIME_GRID_HEIGHT as Yn, TIME_SLOTS as Xn, addDays as Zn, clamp as Qn, formatDate as $n, formatTime as er, generateId as tr, generateTimeSlots as nr, getDaysInMonth as rr, getFirstDayOfMonth as ir, getHolidayEntry as ar, getMonthDates as or, getWeekDates as sr, isHoliday as cr, isNonWorkingDay as lr, isSameDay as ur, isToday as dr, isWeekend as fr, minutesToTime as pr, parseDate as mr, parseTime as hr, timeToMinutes as gr, todayStr as _r } from "./components/pro/Calendar/utils.js";
127
+ import { useCalendarState as vr } from "./components/pro/Calendar/hooks/useCalendarState.js";
128
+ import { useCalendarDrag as yr } from "./components/pro/Calendar/hooks/useCalendarDrag.js";
129
+ import br from "./components/pro/Calendar/Calendar.js";
130
+ export { Vt as AIRewrite, re as Accordion, Y as AdminSuite, xe as AppLayoutWrapper, Se as AppProvider, Ce as AppShell, Ye as ArticleContextMenu, Je as ArticleControl, ne as Avatar, Wt as BORDER_STYLE_OPTIONS, m as Badge, X as BlankSuite, Z as BlogSuite, Mt as Breadcrumb, a as Button, p as ButtonMenu, Gn as CALENDAR_DEFAULT_COLOR_OPTIONS, Kn as CALENDAR_LABELS_EN, qn as CALENDAR_LABELS_ZH, Jn as CALENDAR_SLOT_HEIGHT, Yn as CALENDAR_TIME_GRID_HEIGHT, Xn as CALENDAR_TIME_SLOTS, br as Calendar, w as Card, Ke as Chart, y as Checkbox, me as ChoicePicker, Ht as CodeBlockExtension, ht as CodeEditor, ce as Column, H as Container, It as CreateDialog, Gt as DASH_DENSITY_OPTIONS, Sn as DEFAULT_CATEGORY_CONFIG, Kt as DEFAULT_EDGE_DATA, qt as DEFAULT_NODE_DATA, Cn as DEFAULT_SCALE_CONFIGS, wn as DEFAULT_TIME_WINDOW, J as DashboardSuite, Pe as DataTable, fe as DateTimeInput, qe as Demo, L as DesktopSidebarToggleButton, S as Divider, Et as DropZone, Jt as EDGE_LINE_STYLE_OPTIONS, Yt as EDGE_MARKER_OPTIONS, Xt as EDGE_TYPE_OPTIONS, te as EmptyState, fn as FLOW_NODE_TYPES, g as Field, Lt as FileExplorer, Nt as FileExplorerToolbar, jt as FileIcon, At as FileUploader, U as Flex, _n as Flow, hn as FlowContextMenu, pn as FlowInspectorPanel, mn as FlowOutlinePanel, tn as FlowProvider, dn as FlowShapePalette, un as FlowToolbar, rn as FlowUIProvider, _t as FootnotePanel, Zt as GRADIENT_DIRECTION_OPTIONS, Wn as Gantt, W as Grid, G as GridItem, Ft as GridView, K as Group, o as GroupButton, l as GroupedTable, he as Headbar, ve as HeadbarLangSwitcher, _e as HeadbarSearch, be as HeadbarThemeSwitcher, ge as HeadbarTitle, ue as Icon, le as Image, h as Input, v as Label, V as Layout, Q as LayoutSuite, oe as List, Pt as ListView, $ as MailSuite, xt as MainLayout, Xe as Markdown, zt as MarkdownBlockExtension, vt as MarkdownEditor, R as MobileSidebarToggleButton, ie as Modal, pe as MultipleChoice, St as Navbar, u as NavigationList, yt as OutlinePanel, Qt as PALETTE_ITEMS, D as Page, O as PageBody, E as PageFloat, k as PageFooter, T as PageHeader, A as PageLeft, j as PageMain, M as PageRight, je as PivotPanel, Ae as PivotView, Ct as ProtectedRoute, $t as ROOT_CANVAS_ID, t as Resizable, n as ResizableHandle, r as ResizablePanel, Ut as RichTextEditor, Bt as RichTextToolbar, se as Row, d as Section, C as Select, B as Sidebar, z as SidebarToggleButtons, c as Skeleton, de as Slider, q as Space, b as Switch, s as Table, gt as TableOfContentsPanel, ae as Tabs, f as Text, _ as Textarea, x as Tooltip, I as Tree, Ot as UploadFileItem, kt as UploadQueue, bt as VariablePanel, ee as WikiSuite, Zn as addCalendarDays, Tn as addGanttDays, En as addWorkingDays, ot as bracketMatchingStyle, wt as buildRouter, Dn as calculateWorkingDays, Qn as calendarClamp, pr as calendarMinutesToTime, gr as calendarTimeToMinutes, _r as calendarTodayStr, i as cn, ft as collectVariables, On as computeDateRange, ke as computePivot, Fe as createActionColumn, Ie as createColumn, Le as createComputedColumn, en as createEmptyDocument, Tt as createRouterFromConfig, Re as createSelectOptions, ze as createSelectionColumn, dt as createThemeExtension, Be as dateSort, An as daysBetween, mt as defaultContextMenu, Ve as defaultFilterFunctions, Oe as defineExtension, on as downloadDataURL, sn as exportCanvasToPNG, He as extractUniqueOptions, jn as flattenGanttTree, $n as formatCalendarDate, er as formatCalendarTime, Dt as formatFileSize, Mn as formatGanttDate, kn as ganttDateToX, Vn as ganttXToDate, tr as generateCalendarId, nr as generateCalendarTimeSlots, Nn as generateDateRange, Pn as generateHeaderGroups, pt as generateOutline, N as generateSidebarActiveStyles, P as generateTreeActiveStyles, rr as getCalendarDaysInMonth, ir as getCalendarFirstDayOfMonth, ar as getCalendarHolidayEntry, or as getCalendarMonthDates, sr as getCalendarWeekDates, Ze as getDefaultSnippets, Fn as getISOWeekNumber, In as getISOWeekYear, it as getJumpableKeywords, at as getLanguageKeywords, ye as getThemes, cr as isCalendarHoliday, lr as isCalendarNonWorkingDay, ur as isCalendarSameDay, dr as isCalendarToday, fr as isCalendarWeekend, Ln as isGanttNonWorkingDay, Rn as isGanttWeekend, Qe as javascriptSnippets, et as jsJumpableKeywords, tt as jsKeywords, st as jumpTargetHighlight, ct as jumpToDefinition, lt as lineHighlightStyle, Ue as numericSort, mr as parseCalendarDate, hr as parseCalendarTime, zn as parseGanttDate, nt as pyJumpableKeywords, rt as pyKeywords, $e as pythonSnippets, Rt as richTextDefaultLabels, ut as smartAutocompletion, Bn as startOfGanttDay, We as stringSort, F as themeActiveStyles, Ge as treeSort, we as useAppContext, Te as useAuth, yr as useCalendarDrag, vr as useCalendarState, yn as useEdgeMutations, gn as useFlowClipboard, nn as useFlowContext, cn as useFlowImportExport, xn as useFlowSelection, an as useFlowUI, Un as useGanttDrag, Hn as useGanttState, ln as useLayoutActions, bn as useLineMutations, vn as useNodeMutations, Me as usePivotExtension, e as useResize, Ne as useRowDetailExtension, Ee as useTableColumns, De as useTableData };
@@ -11,7 +11,9 @@ export type SidebarProps = {
11
11
  /**
12
12
  * Opt-in typography for levels 1–3; deeper nodes reuse level 3.
13
13
  * Omitted: preserve legacy Sidebar/LayoutSuite typography. When supplied,
14
- * missing values default to base/sm/sm, semibold/medium/normal and inherited color.
14
+ * missing values default to base/sm/sm and semibold/medium/normal.
15
+ * Levels 3+ default to theme-adaptive neutral gray, even without levelText.
16
+ * Explicit colors retain Text semantics (secondary may be a theme accent).
15
17
  * Selected labels always inherit the active row color.
16
18
  */
17
19
  levelText?: readonly [SidebarLevelText?, SidebarLevelText?, SidebarLevelText?];
@@ -5,9 +5,9 @@ import r from "../components/Tree/Tree.js";
5
5
  import { DesktopSidebarToggleButton as i } from "../components/SidebarToggleButton/index.js";
6
6
  import { useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
7
7
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
- import { useNavigate as d, useRouterState as f } from "@tanstack/react-router";
8
+ import { Link as d, useNavigate as f, useRouterState as p } from "@tanstack/react-router";
9
9
  //#region src/layouts/Sidebar.tsx
10
- var p = [
10
+ var m = [
11
11
  {
12
12
  size: "base",
13
13
  weight: "semibold"
@@ -20,36 +20,36 @@ var p = [
20
20
  size: "sm",
21
21
  weight: "normal"
22
22
  }
23
- ], m = ({ isCollapsed: m, side: h = "left", language: g, items: _, levelText: v, getMenuItems: y, onWidthChange: b, initialWidth: x = 280, collapsedWidth: S = 64, onToggle: C, minWidth: w = 160, maxWidth: T = 400 }) => {
24
- let [E, D] = c([]), [O, k] = c(""), [A, j] = c(() => Math.max(w, Math.min(x, T))), M = s(null), N = s(null), P = f({ select: (e) => e.location }), F = d();
23
+ ], h = ({ isCollapsed: h, side: g = "left", language: _, items: v, levelText: y, getMenuItems: b, onWidthChange: x, initialWidth: S = 280, collapsedWidth: C = 64, onToggle: w, minWidth: T = 160, maxWidth: E = 400 }) => {
24
+ let [D, O] = c([]), [k, A] = c(""), [j, M] = c(() => Math.max(T, Math.min(S, E))), N = s(null), P = s(null), F = p({ select: (e) => e.location }), I = f();
25
25
  a(() => {
26
- j(Math.max(w, Math.min(x, T)));
26
+ M(Math.max(T, Math.min(S, E)));
27
27
  }, [
28
- x,
29
- w,
30
- T
28
+ S,
29
+ T,
30
+ E
31
31
  ]);
32
- let I = (e) => {
33
- let t = Math.max(w, Math.min(e, T));
34
- j(t), b?.(t);
32
+ let L = (e) => {
33
+ let t = Math.max(T, Math.min(e, E));
34
+ M(t), x?.(t);
35
35
  };
36
36
  a(() => {
37
- D(_ === void 0 ? y ? y(g) : t(g) : _);
37
+ O(v === void 0 ? b ? b(_) : t(_) : v);
38
38
  }, [
39
- g,
40
39
  _,
41
- y
40
+ v,
41
+ b
42
42
  ]), a(() => {
43
- if (!O) return;
43
+ if (!k) return;
44
44
  let e = setTimeout(() => {
45
- N.current?.querySelector(".tree-node-content-active")?.scrollIntoView({
45
+ P.current?.querySelector(h ? "[aria-current=\"page\"]" : ".tree-node-content-active")?.scrollIntoView({
46
46
  block: "nearest",
47
- behavior: "smooth"
47
+ behavior: window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "instant" : "smooth"
48
48
  });
49
49
  }, 350);
50
50
  return () => clearTimeout(e);
51
- }, [O]), a(() => {
52
- let e = N.current;
51
+ }, [k, h]), a(() => {
52
+ let e = P.current;
53
53
  if (!e) return;
54
54
  let t = (t) => {
55
55
  if (e.scrollHeight <= e.clientHeight) return;
@@ -59,8 +59,8 @@ var p = [
59
59
  e.scrollTop = r + n, e.scrollTop !== r && t.preventDefault();
60
60
  };
61
61
  return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
62
- }, []);
63
- let L = (e, t = !0) => e.map((e) => ({
62
+ }, [h]);
63
+ let R = (e, t = !0) => e.map((e) => ({
64
64
  id: e.id,
65
65
  label: e.label,
66
66
  icon: e.icon || (t ? void 0 : /* @__PURE__ */ l("svg", {
@@ -76,19 +76,19 @@ var p = [
76
76
  d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
77
77
  })
78
78
  })),
79
- children: e.children ? L(e.children, !1) : void 0,
79
+ children: e.children ? R(e.children, !1) : void 0,
80
80
  meta: { path: e.path }
81
- })), R = o(() => L(E, !0), [E]), z = o(() => {
82
- if (E.length === 0) return [];
81
+ })), z = o(() => R(D, !0), [D]), B = o(() => {
82
+ if (D.length === 0) return [];
83
83
  let e = (t) => {
84
84
  let n = [];
85
85
  for (let r of t) r.children?.length && (n.push(r.id), n = [...n, ...e(r.children)]);
86
86
  return n;
87
87
  };
88
- return e(E);
89
- }, [E]);
90
- return a(() => {
91
- let e = P.pathname, t = (n) => {
88
+ return e(D);
89
+ }, [D]);
90
+ a(() => {
91
+ let e = F.pathname, t = (n) => {
92
92
  for (let r of n) {
93
93
  if (r.path === e) return r.id;
94
94
  if (r.children) {
@@ -97,79 +97,87 @@ var p = [
97
97
  }
98
98
  }
99
99
  return null;
100
- }, n = t(E);
101
- n && k(n);
102
- }, [E, P.pathname]), m ? /* @__PURE__ */ u("div", {
103
- ref: M,
104
- className: "blade-sidebar h-full bg-base-200 overflow-visible transition-all duration-200 ease-in-out relative",
105
- style: { width: `${S}px` },
106
- children: [C && /* @__PURE__ */ l(i, {
107
- isCollapsed: m,
108
- side: h,
109
- onToggle: C,
110
- sidebarWidth: A,
111
- collapsedWidth: S,
112
- onWidthChange: b ? I : void 0,
113
- minWidth: w,
114
- maxWidth: T,
115
- anchorRef: M
116
- }), /* @__PURE__ */ l("ul", {
117
- className: "flex flex-col p-2 gap-1 h-full overflow-y-auto overflow-x-hidden",
118
- children: E.map((e) => /* @__PURE__ */ l("li", { children: e.path ? /* @__PURE__ */ l("button", {
119
- onClick: () => F({ to: e.path }),
100
+ }, n = t(D);
101
+ A(n ?? "");
102
+ }, [D, F.pathname]);
103
+ let V = (e) => {
104
+ if (e.meta?.path) {
105
+ A(e.id), I({ to: e.meta.path });
106
+ return;
107
+ }
108
+ if (e.children && e.children.length > 0) {
109
+ let t = (e) => {
110
+ for (let n of e) {
111
+ if (n.meta?.path) return n;
112
+ if (n.children && n.children.length > 0) {
113
+ let e = t(n.children);
114
+ if (e) return e;
115
+ }
116
+ }
117
+ return null;
118
+ }, n = t(e.children);
119
+ n ? (A(n.id), I({ to: n.meta.path })) : A(e.id);
120
+ } else A(e.id);
121
+ }, H = (e, t = []) => e.flatMap((e) => {
122
+ let n = [...t, e.label];
123
+ return [...e.path ? [{
124
+ item: e,
125
+ trail: n.join(" / ")
126
+ }] : [], ...H(e.children ?? [], n)];
127
+ }), U = h ? /* @__PURE__ */ l("nav", {
128
+ ref: P,
129
+ className: "sidebar-rail",
130
+ "aria-label": _ === "zh" ? "侧边导航" : "Sidebar navigation",
131
+ children: D.map((e) => {
132
+ let t = H([e]);
133
+ return t.length > 0 ? /* @__PURE__ */ l("div", {
134
+ role: "group",
120
135
  "aria-label": e.label,
121
- className: "flex justify-center items-center rounded-lg hover:bg-base-300 transition-colors w-full",
122
- style: {
123
- WebkitTapHighlightColor: "transparent",
124
- height: `${Math.min(S - 16, 40)}px`,
125
- width: `${Math.min(S - 16, 40)}px`,
126
- margin: "0 auto"
127
- },
128
- children: e.icon || /* @__PURE__ */ l("span", {
129
- className: "text-sm",
130
- children: e.label.charAt(0)
131
- })
132
- }) : /* @__PURE__ */ l("div", {
133
- className: "flex justify-center items-center",
134
- style: {
135
- WebkitTapHighlightColor: "transparent",
136
- height: `${Math.min(S - 16, 40)}px`,
137
- width: `${Math.min(S - 16, 40)}px`,
138
- margin: "0 auto"
139
- },
140
- children: e.icon || /* @__PURE__ */ l("span", {
141
- className: "text-sm",
142
- children: e.label.charAt(0)
143
- })
144
- }) }, e.id))
145
- })]
146
- }) : /* @__PURE__ */ u("div", {
147
- ref: M,
148
- className: "blade-sidebar h-full bg-base-200 overflow-visible flex flex-col transition-colors duration-200 ease-in-out relative",
149
- style: {
150
- width: `${A}px`,
151
- maxWidth: T,
152
- minWidth: w
136
+ className: "sidebar-rail-group",
137
+ children: t.map(({ item: e, trail: t }) => /* @__PURE__ */ l(d, {
138
+ to: e.path,
139
+ className: "sidebar-rail-link",
140
+ "aria-label": t,
141
+ title: t,
142
+ "aria-current": F.pathname === e.path ? "page" : void 0,
143
+ children: /* @__PURE__ */ l("span", {
144
+ "aria-hidden": "true",
145
+ children: e.icon || /* @__PURE__ */ l("span", { children: e.label.charAt(0) })
146
+ })
147
+ }, e.id))
148
+ }, e.id) : null;
149
+ })
150
+ }) : null;
151
+ return /* @__PURE__ */ u("div", {
152
+ ref: N,
153
+ className: "blade-sidebar sidebar-container h-full bg-base-200 overflow-visible flex flex-col transition-colors duration-200 ease-in-out relative",
154
+ style: h ? { width: C } : {
155
+ width: j,
156
+ maxWidth: E,
157
+ minWidth: T
153
158
  },
154
159
  children: [
155
- C && /* @__PURE__ */ l(i, {
156
- isCollapsed: m,
157
- side: h,
158
- onToggle: C,
159
- sidebarWidth: A,
160
- collapsedWidth: S,
161
- onWidthChange: b ? I : void 0,
162
- minWidth: w,
163
- maxWidth: T,
164
- anchorRef: M
160
+ w && /* @__PURE__ */ l(i, {
161
+ isCollapsed: h,
162
+ side: g,
163
+ onToggle: w,
164
+ sidebarWidth: j,
165
+ collapsedWidth: C,
166
+ onWidthChange: x ? L : void 0,
167
+ minWidth: T,
168
+ maxWidth: E,
169
+ anchorRef: N
165
170
  }),
171
+ U,
166
172
  /* @__PURE__ */ l("div", {
167
- ref: N,
173
+ hidden: h,
174
+ style: h ? { display: "none" } : void 0,
175
+ ref: h ? void 0 : P,
168
176
  className: "sidebar-scroll min-h-0 flex-grow overflow-y-auto scrollbar-thin scrollbar-thumb-base-300 scrollbar-track-transparent",
169
177
  children: /* @__PURE__ */ l(r, {
170
- data: R,
171
- activeNodeId: O,
172
- defaultExpandedIds: z,
178
+ data: z,
179
+ activeNodeId: k,
180
+ defaultExpandedIds: B,
173
181
  showSearch: !1,
174
182
  showExpandAll: !1,
175
183
  showIcon: !0,
@@ -178,43 +186,44 @@ var p = [
178
186
  indent: 1,
179
187
  togglePosition: "right",
180
188
  maxHeight: "100%",
181
- className: `sidebar-tree${v === void 0 ? "" : " sidebar-tree-level-text"}`,
189
+ className: `sidebar-tree${y === void 0 ? "" : " sidebar-tree-level-text"}`,
182
190
  renderLabel: (t, n) => {
183
- let r = Math.min(n, 2), i = v?.[r], a = p[r];
191
+ let r = Math.min(n, 2), i = y?.[r], a = m[r];
184
192
  return /* @__PURE__ */ l(e, {
185
193
  size: i?.size ?? a.size,
186
194
  weight: i?.weight ?? a.weight,
187
- color: O === t.id ? "inherit" : i?.color ?? "inherit",
188
- style: v === void 0 ? {
189
- fontSize: "inherit",
190
- lineHeight: "inherit",
191
- fontWeight: "inherit"
192
- } : void 0,
195
+ color: k === t.id ? "inherit" : i?.color ?? "inherit",
196
+ style: {
197
+ ...y === void 0 ? {
198
+ fontSize: "inherit",
199
+ lineHeight: "inherit",
200
+ fontWeight: "inherit"
201
+ } : {},
202
+ ...r === 2 && i?.color === void 0 && k !== t.id ? { color: "var(--sidebar-level-muted)" } : {}
203
+ },
193
204
  children: t.label
194
205
  });
195
206
  },
196
- onNodeClick: (e) => {
197
- if (e.meta?.path) {
198
- k(e.id), F({ to: e.meta.path });
199
- return;
200
- }
201
- if (e.children && e.children.length > 0) {
202
- let t = (e) => {
203
- for (let n of e) {
204
- if (n.meta?.path) return n;
205
- if (n.children && n.children.length > 0) {
206
- let e = t(n.children);
207
- if (e) return e;
208
- }
209
- }
210
- return null;
211
- }, n = t(e.children);
212
- n ? (k(n.id), F({ to: n.meta.path })) : k(e.id);
213
- } else k(e.id);
214
- }
207
+ onNodeClick: V
215
208
  })
216
209
  }),
217
210
  /* @__PURE__ */ l("style", { children: `
211
+ .sidebar-container {
212
+ --sidebar-level-muted: oklch(from color-mix(in oklab, var(--color-base-content) 76%, var(--color-base-200)) l 0 0);
213
+ }
214
+ /* LayoutSuite uses semantic surfaces even in colorful themes. Match its text luminance. */
215
+ .dishui-layout-suite-sidebar > .sidebar-container {
216
+ --sidebar-level-muted: oklch(from var(--dishui-text-tertiary) l 0 0);
217
+ }
218
+ .sidebar-rail { min-height: 0; height: 100%; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 6px; }
219
+ .sidebar-rail-group { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 4px 2px; margin-bottom: 8px; border: 1px solid var(--dishui-border-hairline, var(--color-base-300)); border-radius: 10px; }
220
+ .sidebar-rail-link { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 36px; min-height: 36px; flex-shrink: 0; border-radius: 6px; color: var(--sidebar-level-muted); text-decoration: none; transition: background-color 150ms, color 150ms; }
221
+ .sidebar-rail-link > span { display: flex; align-items: center; justify-content: center; }
222
+ .sidebar-rail-link svg { width: 18px; height: 18px; }
223
+ .sidebar-rail-link:hover { background: var(--color-base-300); }
224
+ .sidebar-rail-link[aria-current="page"] { color: var(--color-primary); background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-200)); box-shadow: inset 2px 0 var(--color-primary); }
225
+ .sidebar-rail-link:focus-visible { outline: 2px solid var(--dishui-ring, var(--color-primary)); outline-offset: -2px; }
226
+ @media (prefers-reduced-motion: reduce) { .sidebar-rail-link { transition: none; } }
218
227
  /* Sidebar Tree 自定义样式 */
219
228
  .sidebar-tree {
220
229
  background: transparent;
@@ -349,6 +358,6 @@ var p = [
349
358
  });
350
359
  };
351
360
  //#endregion
352
- export { m as default };
361
+ export { h as default };
353
362
 
354
363
  //# sourceMappingURL=Sidebar.js.map