react-os-shell 4.11.1 → 4.14.0

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 +28 -0
  2. package/dist/{Browser-OO5A5MCO.js → Browser-SFNEZ6KW.js} +6 -6
  3. package/dist/{Browser-OO5A5MCO.js.map → Browser-SFNEZ6KW.js.map} +1 -1
  4. package/dist/{Calculator-U7JLNROS.js → Calculator-SJBZNZWR.js} +5 -5
  5. package/dist/{Calculator-U7JLNROS.js.map → Calculator-SJBZNZWR.js.map} +1 -1
  6. package/dist/ConfirmDialog-LZ2JQBHA.js +4 -0
  7. package/dist/{ConfirmDialog-Y4BYT77R.js.map → ConfirmDialog-LZ2JQBHA.js.map} +1 -1
  8. package/dist/{CurrencyConverter-2UFQ75WE.js → CurrencyConverter-5OUQSITK.js} +5 -5
  9. package/dist/{CurrencyConverter-2UFQ75WE.js.map → CurrencyConverter-5OUQSITK.js.map} +1 -1
  10. package/dist/{Documents-V6UUFZDR.js → Documents-IUV2A2R6.js} +6 -6
  11. package/dist/{Documents-V6UUFZDR.js.map → Documents-IUV2A2R6.js.map} +1 -1
  12. package/dist/{Files-XNVUBQ2S.js → Files-RZSUSCOS.js} +8 -8
  13. package/dist/{Files-XNVUBQ2S.js.map → Files-RZSUSCOS.js.map} +1 -1
  14. package/dist/{Notepad-2J7U6U23.js → Notepad-DFPJKEBG.js} +6 -6
  15. package/dist/{Notepad-2J7U6U23.js.map → Notepad-DFPJKEBG.js.map} +1 -1
  16. package/dist/{PomodoroTimer-Q53KOASQ.js → PomodoroTimer-5H3Q5SNS.js} +6 -6
  17. package/dist/{PomodoroTimer-Q53KOASQ.js.map → PomodoroTimer-5H3Q5SNS.js.map} +1 -1
  18. package/dist/{Preview-YWVKSSAM.js → Preview-JTMOV35N.js} +6 -6
  19. package/dist/{Preview-YWVKSSAM.js.map → Preview-JTMOV35N.js.map} +1 -1
  20. package/dist/{Sidebar-ITLRERXE.js → Sidebar-IMACKSHS.js} +10 -21
  21. package/dist/Sidebar-IMACKSHS.js.map +1 -0
  22. package/dist/{Spreadsheet-LQN4GG2D.js → Spreadsheet-2R43CIYR.js} +6 -6
  23. package/dist/{Spreadsheet-LQN4GG2D.js.map → Spreadsheet-2R43CIYR.js.map} +1 -1
  24. package/dist/{Stock-SRUFZGQC.js → Stock-FLWCMQZR.js} +5 -5
  25. package/dist/{Stock-SRUFZGQC.js.map → Stock-FLWCMQZR.js.map} +1 -1
  26. package/dist/{Weather-47E3IRKF.js → Weather-DKWGAHWC.js} +5 -5
  27. package/dist/{Weather-47E3IRKF.js.map → Weather-DKWGAHWC.js.map} +1 -1
  28. package/dist/{WorldClock-7L2YHNC3.js → WorldClock-5UXXPCBB.js} +5 -5
  29. package/dist/{WorldClock-7L2YHNC3.js.map → WorldClock-5UXXPCBB.js.map} +1 -1
  30. package/dist/apps/index.js +18 -18
  31. package/dist/{chunk-TUXLGFXJ.js → chunk-AFOTTLRS.js} +5 -5
  32. package/dist/{chunk-TUXLGFXJ.js.map → chunk-AFOTTLRS.js.map} +1 -1
  33. package/dist/{chunk-E2EGGV2Z.js → chunk-CVVS2OJO.js} +4 -4
  34. package/dist/{chunk-E2EGGV2Z.js.map → chunk-CVVS2OJO.js.map} +1 -1
  35. package/dist/{chunk-KILLK5UH.js → chunk-H4IEH6FK.js} +3 -3
  36. package/dist/{chunk-KILLK5UH.js.map → chunk-H4IEH6FK.js.map} +1 -1
  37. package/dist/{chunk-RVT2A2MO.js → chunk-IVLDAUYM.js} +11 -5
  38. package/dist/chunk-IVLDAUYM.js.map +1 -0
  39. package/dist/{chunk-HC6N2OXO.js → chunk-N2UW3CAS.js} +3 -3
  40. package/dist/{chunk-HC6N2OXO.js.map → chunk-N2UW3CAS.js.map} +1 -1
  41. package/dist/{chunk-JROEOUJD.js → chunk-UI43AZAK.js} +3 -3
  42. package/dist/{chunk-JROEOUJD.js.map → chunk-UI43AZAK.js.map} +1 -1
  43. package/dist/chunk-WDXP2Y4T.js +7 -0
  44. package/dist/{chunk-V2JNA3GW.js.map → chunk-WDXP2Y4T.js.map} +1 -1
  45. package/dist/{chunk-XVHRGMS3.js → chunk-XJCAUC2Y.js} +3 -3
  46. package/dist/{chunk-XVHRGMS3.js.map → chunk-XJCAUC2Y.js.map} +1 -1
  47. package/dist/{chunk-H5NDQZ4A.js → chunk-ZPCGIR62.js} +3 -3
  48. package/dist/{chunk-H5NDQZ4A.js.map → chunk-ZPCGIR62.js.map} +1 -1
  49. package/dist/index.d.ts +26 -4
  50. package/dist/index.js +196 -205
  51. package/dist/index.js.map +1 -1
  52. package/package.json +1 -1
  53. package/dist/ConfirmDialog-Y4BYT77R.js +0 -4
  54. package/dist/Sidebar-ITLRERXE.js.map +0 -1
  55. package/dist/chunk-RVT2A2MO.js.map +0 -1
  56. package/dist/chunk-V2JNA3GW.js +0 -7
package/dist/index.d.ts CHANGED
@@ -32,15 +32,23 @@ interface NavItem {
32
32
  to: string;
33
33
  label: string;
34
34
  perms?: string[];
35
+ /** Permissions the user must hold EVERY one of, unlike `perms` which needs
36
+ * only one. For an entry whose page is gated on a narrower permission than
37
+ * the one that puts it in the menu: listing both in `perms` would widen the
38
+ * audience (it's an OR), so the extra one goes here instead. */
39
+ allPerms?: string[];
35
40
  dividerAfter?: boolean;
36
- /** Optional 3rd-level sub-items. Hovering the parent in <StartMenu> opens
37
- * a nested flyout; in <Sidebar> the parent becomes an inline sub-accordion. */
41
+ /** Optional sub-items, to any depth a child may have children of its own.
42
+ * Hovering the parent in <StartMenu> opens a nested flyout; in <Sidebar>
43
+ * the parent becomes an inline sub-accordion. */
38
44
  children?: NavItem[];
39
45
  }
40
46
  interface NavSection {
41
47
  label: string;
42
48
  items: NavItem[];
43
49
  perms?: string[];
50
+ /** Same all-of rule as `NavItem.allPerms`, for a whole section. */
51
+ allPerms?: string[];
44
52
  /** Optional landing route for clicks on the section title itself
45
53
  * (e.g. R&D's `/rd` dashboard). */
46
54
  to?: string;
@@ -1793,6 +1801,12 @@ declare function EntityList<T>(props: EntityListProps<T>): react_jsx_runtime.JSX
1793
1801
  * `dragenter` (once per card crossed) so the line stays stable rather than
1794
1802
  * flickering. Pass `onAddItem` to give each column a "+ Add item" button at its
1795
1803
  * foot, revealed on column hover / keyboard focus.
1804
+ *
1805
+ * With no items the board is replaced by `emptyState` — right when the items
1806
+ * are the whole story, wrong when the columns are (a pipeline the user just
1807
+ * configured has a shape worth showing, and a board with no drop target can't
1808
+ * take its first card). Pass `showColumnsWhenEmpty` for that case and the
1809
+ * normal layout draws with every column on its `columnEmptyText` placeholder.
1796
1810
  */
1797
1811
  interface KanbanColumn {
1798
1812
  /** Stable column key — what `columnOf` returns and `onMove` receives. */
@@ -1822,8 +1836,16 @@ interface KanbanProps<T> {
1822
1836
  sortInColumn?: (a: T, b: T) => number;
1823
1837
  isLoading?: boolean;
1824
1838
  loadingText?: string;
1825
- /** Shown when there are no items at all. */
1839
+ /** Shown INSTEAD of the board when there are no items at all. */
1826
1840
  emptyState?: ReactNode;
1841
+ /**
1842
+ * Draw the board — headers, empty columns, drop targets — even with no items,
1843
+ * instead of replacing it with `emptyState`. Opt in when the columns are
1844
+ * themselves the information (a configurable pipeline the user just defined)
1845
+ * or when an empty board still needs somewhere to drop a card into. Default
1846
+ * `false` keeps the `emptyState` behaviour every existing caller relies on.
1847
+ */
1848
+ showColumnsWhenEmpty?: boolean;
1827
1849
  /** Placeholder text inside an empty column. */
1828
1850
  columnEmptyText?: string;
1829
1851
  /**
@@ -1834,7 +1856,7 @@ interface KanbanProps<T> {
1834
1856
  /** Label for the per-column add button. */
1835
1857
  addItemText?: string;
1836
1858
  }
1837
- declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText, emptyState, columnEmptyText, onAddItem, addItemText, }: KanbanProps<T>): react_jsx_runtime.JSX.Element;
1859
+ declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText, emptyState, showColumnsWhenEmpty, columnEmptyText, onAddItem, addItemText, }: KanbanProps<T>): react_jsx_runtime.JSX.Element;
1838
1860
 
1839
1861
  interface PaginatedResponse<T> {
1840
1862
  count: number;