@lemoncat7/dsh-knowledge 2.3.1 → 2.3.3

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 (56) hide show
  1. package/README.md +4 -3
  2. package/docs/architecture.md +1 -1
  3. package/lib/activity-control.d.ts +6 -0
  4. package/lib/activity-control.d.ts.map +1 -0
  5. package/lib/activity-control.js +118 -0
  6. package/lib/activity-control.js.map +1 -0
  7. package/lib/api.d.ts +2 -0
  8. package/lib/api.d.ts.map +1 -1
  9. package/lib/api.js +2 -2
  10. package/lib/api.js.map +1 -1
  11. package/lib/client.d.ts +17 -0
  12. package/lib/client.d.ts.map +1 -1
  13. package/lib/client.js +3825 -142
  14. package/lib/client.js.map +4 -4
  15. package/lib/config.d.ts +2 -0
  16. package/lib/config.d.ts.map +1 -1
  17. package/lib/config.js +26 -0
  18. package/lib/config.js.map +1 -1
  19. package/lib/index.d.ts.map +1 -1
  20. package/lib/index.js +18 -1
  21. package/lib/index.js.map +1 -1
  22. package/lib/knowledge-activity-api.d.ts +35 -0
  23. package/lib/knowledge-activity-api.d.ts.map +1 -0
  24. package/lib/knowledge-activity-api.js +115 -0
  25. package/lib/knowledge-activity-api.js.map +1 -0
  26. package/lib/knowledge-activity-controller.d.ts +25 -0
  27. package/lib/knowledge-activity-controller.d.ts.map +1 -0
  28. package/lib/knowledge-activity-controller.js +126 -0
  29. package/lib/knowledge-activity-controller.js.map +1 -0
  30. package/lib/knowledge-activity-notes.d.ts +9 -0
  31. package/lib/knowledge-activity-notes.d.ts.map +1 -0
  32. package/lib/knowledge-activity-notes.js +141 -0
  33. package/lib/knowledge-activity-notes.js.map +1 -0
  34. package/lib/knowledge-activity-panel.d.ts +8 -0
  35. package/lib/knowledge-activity-panel.d.ts.map +1 -0
  36. package/lib/knowledge-activity-panel.js +233 -0
  37. package/lib/knowledge-activity-panel.js.map +1 -0
  38. package/lib/notes/share-import.d.ts +16 -2
  39. package/lib/notes/share-import.d.ts.map +1 -1
  40. package/lib/notes/share-import.js +32 -13
  41. package/lib/notes/share-import.js.map +1 -1
  42. package/lib/notes/share-markdown.d.ts +12 -0
  43. package/lib/notes/share-markdown.d.ts.map +1 -0
  44. package/lib/notes/share-markdown.js +79 -0
  45. package/lib/notes/share-markdown.js.map +1 -0
  46. package/lib/notes/share-page.d.ts.map +1 -1
  47. package/lib/notes/share-page.js +116 -21
  48. package/lib/notes/share-page.js.map +1 -1
  49. package/lib/web-note-editor-outline.js +2 -2
  50. package/lib/web-note-editor-outline.js.map +1 -1
  51. package/lib/web-note-editor-selection.js +1 -1
  52. package/lib/web-note-editor-selection.js.map +1 -1
  53. package/package.json +5 -2
  54. package/web/app.js +33 -15
  55. package/web/note-editor.js +1 -1
  56. package/web/styles.css +69 -18
package/web/styles.css CHANGED
@@ -983,6 +983,7 @@ html,
983
983
  overflow: hidden;
984
984
  background: transparent;
985
985
  }
986
+ .notes-browser-scrim { display: none; }
986
987
  .notes-browser { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; border-right: 1px solid var(--glass-separator); background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
987
988
  .notes-browser-header { min-height: 68px; display: grid; gap: 8px; padding: 10px 10px 7px; }
988
989
  .notes-browser-header > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
@@ -1513,7 +1514,7 @@ html,
1513
1514
  .note-tags-field input { width: min(100%, 360px); }
1514
1515
  .note-format-hint { margin-left: auto; color: var(--text-tertiary); font-size: 10px; white-space: nowrap; }
1515
1516
 
1516
- @container note-editor (max-width: 700px) {
1517
+ @container note-editor (max-width: 920px) {
1517
1518
  .note-editor-toolbar {
1518
1519
  min-height: 0;
1519
1520
  display: grid;
@@ -1796,7 +1797,7 @@ html,
1796
1797
  .notes-workspace { grid-template-columns: minmax(240px, 290px) minmax(0, 1fr); }
1797
1798
  }
1798
1799
 
1799
- @media (min-width: 761px) {
1800
+ @media (min-width: 1121px) and (hover: hover), (min-width: 1401px) {
1800
1801
  .app-shell[data-sidebar-hidden="true"] { grid-template-columns: 0 0 minmax(0, 1fr); }
1801
1802
  .app-shell[data-sidebar-hidden="true"] > .sidebar {
1802
1803
  opacity: 0;
@@ -1810,29 +1811,51 @@ html,
1810
1811
  }
1811
1812
  }
1812
1813
 
1813
- @media (max-width: 760px) {
1814
+ @media (max-width: 1120px), (hover: none) and (pointer: coarse) and (max-width: 1400px) {
1814
1815
  :root { --sidebar-width: 0px; --chrome-inset: 8px; --topbar-inline-inset: 8px; }
1815
1816
  html { min-width: 0; overflow-x: hidden; }
1816
1817
  body { min-width: 0; overflow-x: hidden; font-size: 14px; }
1817
- .app-shell { height: auto; min-height: 100dvh; display: block; overflow: visible; }
1818
- .main { width: 100%; height: auto; min-height: 100dvh; margin: 0; overflow: visible; border: 0; border-radius: 0; }
1818
+ .app-shell { height: auto; min-height: 100svh; min-height: 100dvh; display: block; overflow: visible; }
1819
+ .main { width: 100%; height: auto; min-height: 100svh; min-height: 100dvh; margin: 0; overflow: visible; border: 0; border-radius: 0; }
1819
1820
  .app-sidebar-resizer { display: none; }
1820
1821
  .pane-toggle-button[data-pane="main"] { display: none; }
1821
1822
  .pane-toggle-button[data-pane="library"] { display: inline-grid; }
1822
- .sidebar { position: fixed; top: max(8px, env(safe-area-inset-top)); bottom: max(8px, env(safe-area-inset-bottom)); z-index: 40; width: min(82vw, 270px); height: auto; margin-left: max(8px, env(safe-area-inset-left)); border-radius: 18px; transform: translateX(-110%); box-shadow: var(--shadow); transition: transform .2s ease; }
1823
+ .sidebar {
1824
+ position: fixed;
1825
+ top: max(8px, env(safe-area-inset-top));
1826
+ bottom: max(8px, env(safe-area-inset-bottom));
1827
+ z-index: 40;
1828
+ width: min(82vw, 270px);
1829
+ height: auto;
1830
+ margin-left: max(8px, env(safe-area-inset-left));
1831
+ border-radius: 18px;
1832
+ background: var(--surface);
1833
+ box-shadow: var(--shadow);
1834
+ -webkit-backdrop-filter: none;
1835
+ backdrop-filter: none;
1836
+ transform: translateX(-110%);
1837
+ transition: transform .2s ease;
1838
+ }
1823
1839
  .app-shell[data-menu-open="true"] .sidebar { transform: translateX(0); }
1824
1840
  .app-sidebar-scrim { position: fixed; inset: 0; z-index: 30; display: block; border: 0; padding: 0; background: rgb(0 0 0 / 35%); touch-action: manipulation; }
1825
1841
  .mobile-menu { display: inline-grid; place-items: center; }
1826
- .topbar { min-height: 64px; padding: max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left)); }
1827
- .topbar-title { gap: 10px; }
1842
+ .topbar { min-height: 64px; padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 10px max(12px, env(safe-area-inset-left)); }
1843
+ .topbar-title { width: 100%; min-width: 0; gap: 8px; }
1844
+ .topbar-heading { min-width: 0; flex: 1 1 auto; }
1828
1845
  .topbar h1 { font-size: 17px; }
1829
1846
  .topbar p { display: none; }
1830
1847
  .page { padding: 22px max(16px, env(safe-area-inset-right)) max(42px, calc(24px + env(safe-area-inset-bottom))) max(16px, env(safe-area-inset-left)); }
1831
- .app-shell[data-view="notes"] .main { height: 100dvh; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
1848
+ .app-shell[data-view="notes"] .main,
1849
+ .app-shell[data-view="entries"] .main { height: 100svh; height: 100dvh; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
1832
1850
  .app-shell[data-view="notes"] .topbar { position: relative; }
1833
- .app-shell[data-view="notes"] .page { height: auto; min-height: 0; overflow: hidden; padding: 0; }
1851
+ .app-shell[data-view="notes"] .page,
1852
+ .app-shell[data-view="entries"] .page { height: auto; min-height: 0; overflow: hidden; }
1853
+ .app-shell[data-view="notes"] .page { padding: 0; }
1854
+ .app-shell[data-view="entries"] .page { padding: 10px max(8px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); }
1834
1855
  .app-shell[data-view="notes"] .view-stage,
1835
- .app-shell[data-view="notes"] .notes-page { height: 100%; min-height: 0; overflow: hidden; }
1856
+ .app-shell[data-view="notes"] .notes-page,
1857
+ .app-shell[data-view="entries"] .view-stage { height: 100%; min-height: 0; overflow: hidden; }
1858
+ .app-shell[data-view="entries"] .note-workspace { height: 100%; min-height: 0; }
1836
1859
  .workspace-switcher { align-items: stretch; flex-direction: column; gap: 10px; }
1837
1860
  .workspace-switcher-leading { align-items: flex-start; }
1838
1861
  .workspace-switcher p { text-align: left; }
@@ -1853,7 +1876,10 @@ html,
1853
1876
  z-index: 4;
1854
1877
  width: min(82%, 300px);
1855
1878
  border-right-color: var(--border-strong);
1879
+ background: var(--surface);
1856
1880
  box-shadow: 16px 0 36px color-mix(in srgb, var(--text) 14%, transparent);
1881
+ -webkit-backdrop-filter: none;
1882
+ backdrop-filter: none;
1857
1883
  transform: translateX(-104%);
1858
1884
  transition: transform .18s cubic-bezier(.2, .8, .2, 1);
1859
1885
  }
@@ -1894,9 +1920,28 @@ html,
1894
1920
  .candidate-heading-actions > .button { width: 100%; }
1895
1921
  .candidate-footer { gap: 9px; }
1896
1922
  .candidate-actions { width: 100%; justify-content: flex-start; }
1897
- .notes-workspace { height: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
1898
- .notes-browser { display: none; }
1899
- .notes-content { min-height: 0; }
1923
+ .notes-workspace { height: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); isolation: isolate; }
1924
+ .notes-browser {
1925
+ position: absolute;
1926
+ inset: 0 auto 0 0;
1927
+ z-index: 16;
1928
+ width: min(88vw, 320px);
1929
+ display: grid;
1930
+ border-right-color: var(--glass-border);
1931
+ background: var(--surface);
1932
+ box-shadow: 16px 0 36px color-mix(in srgb, var(--text) 14%, transparent), inset 0 1px 0 var(--surface-highlight);
1933
+ -webkit-backdrop-filter: none;
1934
+ backdrop-filter: none;
1935
+ transform: translateX(-104%);
1936
+ visibility: hidden;
1937
+ transition: transform var(--motion-base) var(--ease-out), visibility 0s linear var(--motion-base);
1938
+ }
1939
+ .notes-workspace[data-browser-open="true"] .notes-browser { transform: translateX(0); visibility: visible; transition-delay: 0s; }
1940
+ .notes-browser-scrim { position: absolute; inset: 0; z-index: 15; display: block; border: 0; padding: 0; background: color-mix(in srgb, var(--text) 18%, transparent); touch-action: manipulation; }
1941
+ .notes-browser-header { padding-top: max(12px, env(safe-area-inset-top)); }
1942
+ .notes-tree { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
1943
+ .notes-content { height: 100%; min-height: 0; }
1944
+ .notes-content.is-folder { overflow-y: auto; overscroll-behavior: contain; }
1900
1945
  .notes-editor-frame, .notes-editor-frame[data-outline-open="true"] { grid-template-columns: minmax(0, 1fr); }
1901
1946
  .notes-editor-outline { position: absolute; inset: 0 0 0 auto; z-index: 12; width: min(86vw, 300px); border-left-color: var(--border-strong); box-shadow: -16px 0 34px color-mix(in srgb, var(--text) 13%, transparent); transform: translateX(103%); transition: opacity var(--motion-base) ease, transform var(--motion-base) var(--ease-out); }
1902
1947
  .notes-editor-frame[data-outline-open="true"] .notes-editor-outline { transform: translateX(0); }
@@ -1942,7 +1987,7 @@ html,
1942
1987
  .note-history-detail-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
1943
1988
  .note-history-mode, .note-history-detail-actions .button { min-width: 0; min-height: 44px; padding-inline: 5px; }
1944
1989
  .note-history-content { padding: 18px max(14px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); }
1945
- .dialog.note-history-dialog { width: 100%; height: 100dvh; max-height: none; }
1990
+ .dialog.note-history-dialog { width: 100%; height: 100svh; height: 100dvh; max-height: none; }
1946
1991
  .notes-file-table { overflow: visible; }
1947
1992
  .notes-file-columns { display: none; }
1948
1993
  .notes-file-list { min-width: 0; display: grid; gap: 8px; padding: 10px 12px max(28px, calc(16px + env(safe-area-inset-bottom))); }
@@ -1983,7 +2028,7 @@ html,
1983
2028
  .input, .select { height: 44px; min-height: 44px; }
1984
2029
  :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) { font-size: 16px; }
1985
2030
  .dialog-backdrop { place-items: stretch; padding: 0; }
1986
- .dialog, .dialog.narrow, .dialog.sheet { width: 100%; height: 100dvh; max-height: none; border-width: 0; border-radius: 0; }
2031
+ .dialog, .dialog.narrow, .dialog.sheet { width: 100%; height: 100svh; height: 100dvh; max-height: none; border-width: 0; border-radius: 0; }
1987
2032
  .dialog-header { padding: max(15px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left)); }
1988
2033
  .dialog-header .button { width: 44px; min-width: 44px; min-height: 44px; }
1989
2034
  .dialog-body { padding: 18px max(16px, env(safe-area-inset-right)) max(24px, calc(16px + env(safe-area-inset-bottom))) max(16px, env(safe-area-inset-left)); }
@@ -1994,7 +2039,7 @@ html,
1994
2039
  .toast { max-width: none; }
1995
2040
  }
1996
2041
 
1997
- @media (min-width: 761px) and (max-width: 1120px) {
2042
+ @media (min-width: 1121px) and (max-width: 1280px) {
1998
2043
  .notes-file-info { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
1999
2044
  }
2000
2045
 
@@ -2052,7 +2097,13 @@ html,
2052
2097
  @media (max-width: 390px) {
2053
2098
  .topbar { gap: 8px; padding-inline: 10px; }
2054
2099
  .topbar-title { gap: 6px; }
2055
- .topbar-heading { max-width: 118px; }
2100
+ .topbar-kicker { display: none; }
2101
+ .topbar-heading { max-width: none; }
2102
+ .topbar h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2103
+ .notes-document-toolbar { padding-inline: 6px; }
2104
+ .notes-toolbar-leading { min-width: 44px; }
2105
+ .notes-breadcrumb { mask-image: linear-gradient(90deg, #000 calc(100% - 22px), transparent); }
2106
+ .notes-save-state { max-width: 44px; overflow: hidden; white-space: nowrap; }
2056
2107
  .notes-file-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2057
2108
  .candidate-actions { display: grid; grid-template-columns: 1fr; }
2058
2109
  .candidate-actions .button { width: 100%; }