remix 3.0.0-beta.2 → 3.0.0-beta.4

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 (81) hide show
  1. package/dist/headers/accept-encoding.d.ts +2 -0
  2. package/dist/headers/accept-encoding.d.ts.map +1 -0
  3. package/dist/headers/accept-encoding.js +2 -0
  4. package/dist/headers/accept-language.d.ts +2 -0
  5. package/dist/headers/accept-language.d.ts.map +1 -0
  6. package/dist/headers/accept-language.js +2 -0
  7. package/dist/headers/accept.d.ts +2 -0
  8. package/dist/headers/accept.d.ts.map +1 -0
  9. package/dist/headers/accept.js +2 -0
  10. package/dist/headers/cache-control.d.ts +2 -0
  11. package/dist/headers/cache-control.d.ts.map +1 -0
  12. package/dist/headers/cache-control.js +2 -0
  13. package/dist/headers/content-disposition.d.ts +2 -0
  14. package/dist/headers/content-disposition.d.ts.map +1 -0
  15. package/dist/headers/content-disposition.js +2 -0
  16. package/dist/headers/content-range.d.ts +2 -0
  17. package/dist/headers/content-range.d.ts.map +1 -0
  18. package/dist/headers/content-range.js +2 -0
  19. package/dist/headers/content-type.d.ts +2 -0
  20. package/dist/headers/content-type.d.ts.map +1 -0
  21. package/dist/headers/content-type.js +2 -0
  22. package/dist/headers/cookie.d.ts +2 -0
  23. package/dist/headers/cookie.d.ts.map +1 -0
  24. package/dist/headers/cookie.js +2 -0
  25. package/dist/headers/if-match.d.ts +2 -0
  26. package/dist/headers/if-match.d.ts.map +1 -0
  27. package/dist/headers/if-match.js +2 -0
  28. package/dist/headers/if-none-match.d.ts +2 -0
  29. package/dist/headers/if-none-match.d.ts.map +1 -0
  30. package/dist/headers/if-none-match.js +2 -0
  31. package/dist/headers/if-range.d.ts +2 -0
  32. package/dist/headers/if-range.d.ts.map +1 -0
  33. package/dist/headers/if-range.js +2 -0
  34. package/dist/headers/range.d.ts +2 -0
  35. package/dist/headers/range.d.ts.map +1 -0
  36. package/dist/headers/range.js +2 -0
  37. package/dist/headers/raw-headers.d.ts +2 -0
  38. package/dist/headers/raw-headers.d.ts.map +1 -0
  39. package/dist/headers/raw-headers.js +2 -0
  40. package/dist/headers/set-cookie.d.ts +2 -0
  41. package/dist/headers/set-cookie.d.ts.map +1 -0
  42. package/dist/headers/set-cookie.js +2 -0
  43. package/dist/headers/vary.d.ts +2 -0
  44. package/dist/headers/vary.d.ts.map +1 -0
  45. package/dist/headers/vary.js +2 -0
  46. package/package.json +96 -35
  47. package/src/assert/README.md +11 -4
  48. package/src/csrf-middleware/README.md +5 -12
  49. package/src/data-schema/README.md +3 -9
  50. package/src/data-table/README.md +6 -14
  51. package/src/data-table-mysql/README.md +5 -11
  52. package/src/data-table-postgres/README.md +2 -4
  53. package/src/data-table-sqlite/README.md +2 -4
  54. package/src/fetch-proxy/README.md +1 -2
  55. package/src/fetch-router/README.md +115 -35
  56. package/src/file-storage-s3/README.md +1 -2
  57. package/src/form-data-middleware/README.md +1 -2
  58. package/src/form-data-parser/README.md +2 -4
  59. package/src/headers/README.md +10 -0
  60. package/src/headers/accept-encoding.ts +2 -0
  61. package/src/headers/accept-language.ts +2 -0
  62. package/src/headers/accept.ts +2 -0
  63. package/src/headers/cache-control.ts +2 -0
  64. package/src/headers/content-disposition.ts +2 -0
  65. package/src/headers/content-range.ts +2 -0
  66. package/src/headers/content-type.ts +2 -0
  67. package/src/headers/cookie.ts +2 -0
  68. package/src/headers/if-match.ts +2 -0
  69. package/src/headers/if-none-match.ts +2 -0
  70. package/src/headers/if-range.ts +2 -0
  71. package/src/headers/range.ts +2 -0
  72. package/src/headers/raw-headers.ts +2 -0
  73. package/src/headers/set-cookie.ts +2 -0
  74. package/src/headers/vary.ts +2 -0
  75. package/src/node-fetch-server/README.md +1 -2
  76. package/src/node-tsx/README.md +3 -8
  77. package/src/route-pattern/README.md +18 -13
  78. package/src/session-storage-redis/README.md +1 -2
  79. package/src/test/README.md +29 -5
  80. package/src/ui/anchor/README.md +11 -3
  81. package/src/ui/menu/README.md +26 -2
@@ -68,6 +68,29 @@ Use `menuLabel` when the menu surface needs a different accessible label from th
68
68
  </Menu>
69
69
  ```
70
70
 
71
+ Use `menu.contextTrigger()` with `menu.Context` and `MenuList` when a menu should open at the right-click location of an element.
72
+
73
+ ```tsx
74
+ import * as menu from 'remix/ui/menu'
75
+ import { MenuItem, MenuList } from 'remix/ui/menu'
76
+
77
+ export function FileContextMenu(handle: Handle) {
78
+ return () => (
79
+ <menu.Context label="File actions">
80
+ <div mix={menu.contextTrigger()} tabIndex={0}>
81
+ File.txt
82
+ </div>
83
+ <MenuList>
84
+ <MenuItem name="rename">Rename</MenuItem>
85
+ <MenuItem name="delete">Delete</MenuItem>
86
+ </MenuList>
87
+ </menu.Context>
88
+ )
89
+ }
90
+ ```
91
+
92
+ Attach `onMenuSelect(...)` to `MenuList` or a shared ancestor when using lower-level context menu composition.
93
+
71
94
  ## `menu.*`
72
95
 
73
96
  - `Menu`: composed trigger, popover, and list component for the common menu case.
@@ -77,13 +100,14 @@ Use `menuLabel` when the menu surface needs a different accessible label from th
77
100
  - `onMenuSelect(...)`: event mixin for the bubbling `MenuSelectEvent`.
78
101
  - `MenuSelectEvent`: bubbling event class whose `item` describes the selected item.
79
102
  - `MenuSelectItem`: selected item shape with `checked`, `id`, `label`, `name`, `type`, and `value`.
80
- - `menu.Context`, `menu.trigger()`, `menu.popover()`, `menu.list()`, `menu.item(...)`, and `menu.submenuTrigger(...)`: lower-level composition primitives.
103
+ - `menu.Context`, `menu.trigger()`, `menu.contextTrigger()`, `menu.popover()`, `menu.list()`, `menu.item(...)`, and `menu.submenuTrigger(...)`: lower-level composition primitives.
81
104
  - `buttonStyle`, `popoverStyle`, `listStyle`, `itemStyle`, `itemSlotStyle`, `itemLabelStyle`, `itemGlyphStyle`, and `triggerGlyphStyle`: flat style mixins used by the wrappers.
82
- - `MenuProps`, `MenuItemProps`, `MenuListProps`, `MenuProviderProps`, `MenuTriggerOptions`, `MenuItemOptions`, and `SubmenuProps`: public TypeScript props and option types.
105
+ - `MenuProps`, `MenuItemProps`, `MenuListProps`, `MenuProviderProps`, `MenuTriggerOptions`, `MenuContextTriggerOptions`, `MenuItemOptions`, and `SubmenuProps`: public TypeScript props and option types.
83
106
 
84
107
  ## Behavior Notes
85
108
 
86
109
  - Click opens the root menu and focuses the list; clicking the trigger again closes it and restores focus.
110
+ - `menu.contextTrigger()` opens the root menu from a `contextmenu` event at the pointer coordinates and supports keyboard opening with the Context Menu key or Shift+F10.
87
111
  - `ArrowDown` opens from the trigger at the first enabled item. `ArrowUp` opens at the last enabled item. Enter and Space open the menu with focus on the list.
88
112
  - Keyboard navigation skips disabled items and does not wrap past the first or last enabled item.
89
113
  - `Home` and `End` move to the first and last enabled item. Enter and Space activate the highlighted item.