@sprawlify/svelte 0.0.45 → 0.0.47

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 (555) hide show
  1. package/dist/components/carousel/carousel-anatomy.d.ts +1 -1
  2. package/dist/components/color-picker/color-picker-anatomy.d.ts +1 -1
  3. package/dist/components/combobox/combobox-anatomy.d.ts +1 -1
  4. package/dist/components/combobox/combobox-root-provider.svelte +2 -2
  5. package/dist/components/combobox/combobox-root-provider.svelte.d.ts +2 -2
  6. package/dist/components/date-picker/date-picker-anatomy.d.ts +1 -1
  7. package/dist/components/date-picker/date-picker-root.svelte +1 -0
  8. package/dist/components/editable/editable-root-provider.svelte +0 -1
  9. package/dist/components/file-upload/file-upload-anatomy.d.ts +1 -0
  10. package/dist/components/file-upload/file-upload-anatomy.js +1 -0
  11. package/dist/components/file-upload/file-upload-clear-trigger.svelte +18 -0
  12. package/dist/components/file-upload/file-upload-clear-trigger.svelte.d.ts +8 -0
  13. package/dist/components/file-upload/file-upload-context.svelte +18 -0
  14. package/dist/components/file-upload/file-upload-context.svelte.d.ts +8 -0
  15. package/dist/components/file-upload/file-upload-dropzone.svelte +23 -0
  16. package/dist/components/file-upload/file-upload-dropzone.svelte.d.ts +9 -0
  17. package/dist/components/file-upload/file-upload-hidden-input.svelte +18 -0
  18. package/dist/components/file-upload/file-upload-hidden-input.svelte.d.ts +8 -0
  19. package/dist/components/file-upload/file-upload-item-delete-trigger.svelte +21 -0
  20. package/dist/components/file-upload/file-upload-item-delete-trigger.svelte.d.ts +8 -0
  21. package/dist/components/file-upload/file-upload-item-group.svelte +25 -0
  22. package/dist/components/file-upload/file-upload-item-group.svelte.d.ts +9 -0
  23. package/dist/components/file-upload/file-upload-item-name.svelte +26 -0
  24. package/dist/components/file-upload/file-upload-item-name.svelte.d.ts +8 -0
  25. package/dist/components/file-upload/file-upload-item-preview-image.svelte +32 -0
  26. package/dist/components/file-upload/file-upload-item-preview-image.svelte.d.ts +8 -0
  27. package/dist/components/file-upload/file-upload-item-preview.svelte +26 -0
  28. package/dist/components/file-upload/file-upload-item-preview.svelte.d.ts +9 -0
  29. package/dist/components/file-upload/file-upload-item-size-text.svelte +26 -0
  30. package/dist/components/file-upload/file-upload-item-size-text.svelte.d.ts +8 -0
  31. package/dist/components/file-upload/file-upload-item.svelte +32 -0
  32. package/dist/components/file-upload/file-upload-item.svelte.d.ts +10 -0
  33. package/dist/components/file-upload/file-upload-label.svelte +18 -0
  34. package/dist/components/file-upload/file-upload-label.svelte.d.ts +8 -0
  35. package/dist/components/file-upload/file-upload-root-provider.svelte +24 -0
  36. package/dist/components/file-upload/file-upload-root-provider.svelte.d.ts +12 -0
  37. package/dist/components/file-upload/file-upload-root.svelte +64 -0
  38. package/dist/components/file-upload/file-upload-root.svelte.d.ts +9 -0
  39. package/dist/components/file-upload/file-upload-trigger.svelte +18 -0
  40. package/dist/components/file-upload/file-upload-trigger.svelte.d.ts +8 -0
  41. package/dist/components/file-upload/file-upload.d.ts +16 -0
  42. package/dist/components/file-upload/file-upload.js +15 -0
  43. package/dist/components/file-upload/index.d.ts +21 -0
  44. package/dist/components/file-upload/index.js +20 -0
  45. package/dist/components/file-upload/use-file-upload-context.d.ts +4 -0
  46. package/dist/components/file-upload/use-file-upload-context.js +4 -0
  47. package/dist/components/file-upload/use-file-upload-item-group-props-context.d.ts +5 -0
  48. package/dist/components/file-upload/use-file-upload-item-group-props-context.js +6 -0
  49. package/dist/components/file-upload/use-file-upload-item-props-context.d.ts +5 -0
  50. package/dist/components/file-upload/use-file-upload-item-props-context.js +4 -0
  51. package/dist/components/file-upload/use-file-upload.svelte.d.ts +9 -0
  52. package/dist/components/file-upload/use-file-upload.svelte.js +21 -0
  53. package/dist/components/floating-panel/floating-panel-anatomy.d.ts +1 -0
  54. package/dist/components/floating-panel/floating-panel-anatomy.js +1 -0
  55. package/dist/components/floating-panel/floating-panel-body.svelte +19 -0
  56. package/dist/components/floating-panel/floating-panel-body.svelte.d.ts +8 -0
  57. package/dist/components/floating-panel/floating-panel-close-trigger.svelte +20 -0
  58. package/dist/components/floating-panel/floating-panel-close-trigger.svelte.d.ts +8 -0
  59. package/dist/components/floating-panel/floating-panel-content.svelte +28 -0
  60. package/dist/components/floating-panel/floating-panel-content.svelte.d.ts +8 -0
  61. package/dist/components/floating-panel/floating-panel-context.svelte +18 -0
  62. package/dist/components/floating-panel/floating-panel-context.svelte.d.ts +8 -0
  63. package/dist/components/floating-panel/floating-panel-control.svelte +19 -0
  64. package/dist/components/floating-panel/floating-panel-control.svelte.d.ts +8 -0
  65. package/dist/components/floating-panel/floating-panel-drag-trigger.svelte +19 -0
  66. package/dist/components/floating-panel/floating-panel-drag-trigger.svelte.d.ts +8 -0
  67. package/dist/components/floating-panel/floating-panel-header.svelte +19 -0
  68. package/dist/components/floating-panel/floating-panel-header.svelte.d.ts +8 -0
  69. package/dist/components/floating-panel/floating-panel-positioner.svelte +24 -0
  70. package/dist/components/floating-panel/floating-panel-positioner.svelte.d.ts +8 -0
  71. package/dist/components/floating-panel/floating-panel-resize-trigger.svelte +26 -0
  72. package/dist/components/floating-panel/floating-panel-resize-trigger.svelte.d.ts +9 -0
  73. package/dist/components/floating-panel/floating-panel-root-provider.svelte +28 -0
  74. package/dist/components/floating-panel/floating-panel-root-provider.svelte.d.ts +14 -0
  75. package/dist/components/floating-panel/floating-panel-root.svelte +90 -0
  76. package/dist/components/floating-panel/floating-panel-root.svelte.d.ts +12 -0
  77. package/dist/components/floating-panel/floating-panel-stage-trigger.svelte +24 -0
  78. package/dist/components/floating-panel/floating-panel-stage-trigger.svelte.d.ts +9 -0
  79. package/dist/components/floating-panel/floating-panel-title.svelte +19 -0
  80. package/dist/components/floating-panel/floating-panel-title.svelte.d.ts +8 -0
  81. package/dist/components/floating-panel/floating-panel-trigger.svelte +31 -0
  82. package/dist/components/floating-panel/floating-panel-trigger.svelte.d.ts +8 -0
  83. package/dist/components/floating-panel/floating-panel.d.ts +15 -0
  84. package/dist/components/floating-panel/floating-panel.js +14 -0
  85. package/dist/components/floating-panel/index.d.ts +19 -0
  86. package/dist/components/floating-panel/index.js +18 -0
  87. package/dist/components/floating-panel/use-floating-panel-context.d.ts +6 -0
  88. package/dist/components/floating-panel/use-floating-panel-context.js +6 -0
  89. package/dist/components/floating-panel/use-floating-panel.svelte.d.ts +9 -0
  90. package/dist/components/floating-panel/use-floating-panel.svelte.js +19 -0
  91. package/dist/components/focus-trap/focus-trap.svelte +44 -0
  92. package/dist/components/focus-trap/focus-trap.svelte.d.ts +12 -0
  93. package/dist/components/focus-trap/index.d.ts +2 -0
  94. package/dist/components/focus-trap/index.js +1 -0
  95. package/dist/components/format/format-byte.svelte +24 -0
  96. package/dist/components/format/format-byte.svelte.d.ts +9 -0
  97. package/dist/components/format/format-number.svelte +16 -0
  98. package/dist/components/format/format-number.svelte.d.ts +6 -0
  99. package/dist/components/format/format-relative-time.svelte +17 -0
  100. package/dist/components/format/format-relative-time.svelte.d.ts +6 -0
  101. package/dist/components/format/format.d.ts +3 -0
  102. package/dist/components/format/format.js +3 -0
  103. package/dist/components/format/index.d.ts +4 -0
  104. package/dist/components/format/index.js +4 -0
  105. package/dist/components/frame/frame-content.svelte +19 -0
  106. package/dist/components/frame/frame-content.svelte.d.ts +9 -0
  107. package/dist/components/frame/frame.svelte +103 -0
  108. package/dist/components/frame/frame.svelte.d.ts +15 -0
  109. package/dist/components/frame/index.d.ts +2 -0
  110. package/dist/components/frame/index.js +1 -0
  111. package/dist/components/hover-card/hover-card-anatomy.d.ts +1 -0
  112. package/dist/components/hover-card/hover-card-anatomy.js +1 -0
  113. package/dist/components/hover-card/hover-card-arrow-tip.svelte +19 -0
  114. package/dist/components/hover-card/hover-card-arrow-tip.svelte.d.ts +8 -0
  115. package/dist/components/hover-card/hover-card-arrow.svelte +19 -0
  116. package/dist/components/hover-card/hover-card-arrow.svelte.d.ts +8 -0
  117. package/dist/components/hover-card/hover-card-content.svelte +27 -0
  118. package/dist/components/hover-card/hover-card-content.svelte.d.ts +8 -0
  119. package/dist/components/hover-card/hover-card-context.svelte +17 -0
  120. package/dist/components/hover-card/hover-card-context.svelte.d.ts +8 -0
  121. package/dist/components/hover-card/hover-card-positioner.svelte +23 -0
  122. package/dist/components/hover-card/hover-card-positioner.svelte.d.ts +8 -0
  123. package/dist/components/hover-card/hover-card-root-provider.svelte +29 -0
  124. package/dist/components/hover-card/hover-card-root-provider.svelte.d.ts +14 -0
  125. package/dist/components/hover-card/hover-card-root.svelte +39 -0
  126. package/dist/components/hover-card/hover-card-root.svelte.d.ts +11 -0
  127. package/dist/components/hover-card/hover-card-trigger.svelte +19 -0
  128. package/dist/components/hover-card/hover-card-trigger.svelte.d.ts +8 -0
  129. package/dist/components/hover-card/hover-card.d.ts +9 -0
  130. package/dist/components/hover-card/hover-card.js +8 -0
  131. package/dist/components/hover-card/index.d.ts +13 -0
  132. package/dist/components/hover-card/index.js +12 -0
  133. package/dist/components/hover-card/use-hover-card-context.d.ts +4 -0
  134. package/dist/components/hover-card/use-hover-card-context.js +6 -0
  135. package/dist/components/hover-card/use-hover-card.svelte.d.ts +9 -0
  136. package/dist/components/hover-card/use-hover-card.svelte.js +20 -0
  137. package/dist/components/image-cropper/image-cropper-anatomy.d.ts +1 -0
  138. package/dist/components/image-cropper/image-cropper-anatomy.js +1 -0
  139. package/dist/components/image-cropper/image-cropper-context.svelte +18 -0
  140. package/dist/components/image-cropper/image-cropper-context.svelte.d.ts +8 -0
  141. package/dist/components/image-cropper/image-cropper-grid.svelte +23 -0
  142. package/dist/components/image-cropper/image-cropper-grid.svelte.d.ts +9 -0
  143. package/dist/components/image-cropper/image-cropper-handle.svelte +23 -0
  144. package/dist/components/image-cropper/image-cropper-handle.svelte.d.ts +9 -0
  145. package/dist/components/image-cropper/image-cropper-image.svelte +18 -0
  146. package/dist/components/image-cropper/image-cropper-image.svelte.d.ts +8 -0
  147. package/dist/components/image-cropper/image-cropper-root-provider.svelte +27 -0
  148. package/dist/components/image-cropper/image-cropper-root-provider.svelte.d.ts +14 -0
  149. package/dist/components/image-cropper/image-cropper-root.svelte +87 -0
  150. package/dist/components/image-cropper/image-cropper-root.svelte.d.ts +11 -0
  151. package/dist/components/image-cropper/image-cropper-selection.svelte +18 -0
  152. package/dist/components/image-cropper/image-cropper-selection.svelte.d.ts +8 -0
  153. package/dist/components/image-cropper/image-cropper-viewport.svelte +18 -0
  154. package/dist/components/image-cropper/image-cropper-viewport.svelte.d.ts +8 -0
  155. package/dist/components/image-cropper/image-cropper.d.ts +10 -0
  156. package/dist/components/image-cropper/image-cropper.js +9 -0
  157. package/dist/components/image-cropper/index.d.ts +13 -0
  158. package/dist/components/image-cropper/index.js +12 -0
  159. package/dist/components/image-cropper/use-image-cropper-context.d.ts +4 -0
  160. package/dist/components/image-cropper/use-image-cropper-context.js +4 -0
  161. package/dist/components/image-cropper/use-image-cropper.svelte.d.ts +9 -0
  162. package/dist/components/image-cropper/use-image-cropper.svelte.js +20 -0
  163. package/dist/components/json-tree-view/get-branch-value.d.ts +3 -0
  164. package/dist/components/json-tree-view/get-branch-value.js +13 -0
  165. package/dist/components/json-tree-view/index.d.ts +5 -0
  166. package/dist/components/json-tree-view/index.js +5 -0
  167. package/dist/components/json-tree-view/json-tree-view-key-node.svelte +17 -0
  168. package/dist/components/json-tree-view/json-tree-view-key-node.svelte.d.ts +8 -0
  169. package/dist/components/json-tree-view/json-tree-view-node.svelte +93 -0
  170. package/dist/components/json-tree-view/json-tree-view-node.svelte.d.ts +15 -0
  171. package/dist/components/json-tree-view/json-tree-view-props-context.d.ts +5 -0
  172. package/dist/components/json-tree-view/json-tree-view-props-context.js +6 -0
  173. package/dist/components/json-tree-view/json-tree-view-root-provider.svelte +12 -0
  174. package/dist/components/json-tree-view/json-tree-view-root-provider.svelte.d.ts +7 -0
  175. package/dist/components/json-tree-view/json-tree-view-root.svelte +48 -0
  176. package/dist/components/json-tree-view/json-tree-view-root.svelte.d.ts +12 -0
  177. package/dist/components/json-tree-view/json-tree-view-tree.svelte +23 -0
  178. package/dist/components/json-tree-view/json-tree-view-tree.svelte.d.ts +9 -0
  179. package/dist/components/json-tree-view/json-tree-view-value-node.svelte +31 -0
  180. package/dist/components/json-tree-view/json-tree-view-value-node.svelte.d.ts +10 -0
  181. package/dist/components/json-tree-view/json-tree-view.d.ts +3 -0
  182. package/dist/components/json-tree-view/json-tree-view.js +3 -0
  183. package/dist/components/json-tree-view/use-json-tree-view.svelte.d.ts +10 -0
  184. package/dist/components/json-tree-view/use-json-tree-view.svelte.js +23 -0
  185. package/dist/components/listbox/index.d.ts +21 -0
  186. package/dist/components/listbox/index.js +20 -0
  187. package/dist/components/listbox/listbox-anatomy.d.ts +1 -0
  188. package/dist/components/listbox/listbox-anatomy.js +2 -0
  189. package/dist/components/listbox/listbox-content.svelte +19 -0
  190. package/dist/components/listbox/listbox-content.svelte.d.ts +8 -0
  191. package/dist/components/listbox/listbox-context.svelte +19 -0
  192. package/dist/components/listbox/listbox-context.svelte.d.ts +30 -0
  193. package/dist/components/listbox/listbox-empty.svelte +23 -0
  194. package/dist/components/listbox/listbox-empty.svelte.d.ts +8 -0
  195. package/dist/components/listbox/listbox-input.svelte +22 -0
  196. package/dist/components/listbox/listbox-input.svelte.d.ts +9 -0
  197. package/dist/components/listbox/listbox-item-context.svelte +18 -0
  198. package/dist/components/listbox/listbox-item-context.svelte.d.ts +8 -0
  199. package/dist/components/listbox/listbox-item-group-label.svelte +21 -0
  200. package/dist/components/listbox/listbox-item-group-label.svelte.d.ts +8 -0
  201. package/dist/components/listbox/listbox-item-group.svelte +25 -0
  202. package/dist/components/listbox/listbox-item-group.svelte.d.ts +8 -0
  203. package/dist/components/listbox/listbox-item-indicator.svelte +21 -0
  204. package/dist/components/listbox/listbox-item-indicator.svelte.d.ts +8 -0
  205. package/dist/components/listbox/listbox-item-text.svelte +21 -0
  206. package/dist/components/listbox/listbox-item-text.svelte.d.ts +8 -0
  207. package/dist/components/listbox/listbox-item.svelte +28 -0
  208. package/dist/components/listbox/listbox-item.svelte.d.ts +9 -0
  209. package/dist/components/listbox/listbox-label.svelte +19 -0
  210. package/dist/components/listbox/listbox-label.svelte.d.ts +8 -0
  211. package/dist/components/listbox/listbox-root-provider.svelte +34 -0
  212. package/dist/components/listbox/listbox-root-provider.svelte.d.ts +36 -0
  213. package/dist/components/listbox/listbox-root.svelte +77 -0
  214. package/dist/components/listbox/listbox-root.svelte.d.ts +34 -0
  215. package/dist/components/listbox/listbox-value-text.svelte +27 -0
  216. package/dist/components/listbox/listbox-value-text.svelte.d.ts +9 -0
  217. package/dist/components/listbox/listbox.d.ts +14 -0
  218. package/dist/components/listbox/listbox.js +14 -0
  219. package/dist/components/listbox/use-listbox-context.d.ts +7 -0
  220. package/dist/components/listbox/use-listbox-context.js +6 -0
  221. package/dist/components/listbox/use-listbox-item-context.d.ts +5 -0
  222. package/dist/components/listbox/use-listbox-item-context.js +6 -0
  223. package/dist/components/listbox/use-listbox-item-group-props.d.ts +5 -0
  224. package/dist/components/listbox/use-listbox-item-group-props.js +6 -0
  225. package/dist/components/listbox/use-listbox-item-props-context.d.ts +5 -0
  226. package/dist/components/listbox/use-listbox-item-props-context.js +6 -0
  227. package/dist/components/listbox/use-listbox.svelte.d.ts +11 -0
  228. package/dist/components/listbox/use-listbox.svelte.js +19 -0
  229. package/dist/components/marquee/index.d.ts +12 -0
  230. package/dist/components/marquee/index.js +11 -0
  231. package/dist/components/marquee/marquee-anatomy.d.ts +1 -0
  232. package/dist/components/marquee/marquee-anatomy.js +1 -0
  233. package/dist/components/marquee/marquee-content.svelte +36 -0
  234. package/dist/components/marquee/marquee-content.svelte.d.ts +10 -0
  235. package/dist/components/marquee/marquee-context.svelte +18 -0
  236. package/dist/components/marquee/marquee-context.svelte.d.ts +8 -0
  237. package/dist/components/marquee/marquee-edge.svelte +22 -0
  238. package/dist/components/marquee/marquee-edge.svelte.d.ts +9 -0
  239. package/dist/components/marquee/marquee-item.svelte +19 -0
  240. package/dist/components/marquee/marquee-item.svelte.d.ts +8 -0
  241. package/dist/components/marquee/marquee-root-provider.svelte +25 -0
  242. package/dist/components/marquee/marquee-root-provider.svelte.d.ts +12 -0
  243. package/dist/components/marquee/marquee-root.svelte +54 -0
  244. package/dist/components/marquee/marquee-root.svelte.d.ts +9 -0
  245. package/dist/components/marquee/marquee-viewport.svelte +19 -0
  246. package/dist/components/marquee/marquee-viewport.svelte.d.ts +8 -0
  247. package/dist/components/marquee/marquee.d.ts +8 -0
  248. package/dist/components/marquee/marquee.js +7 -0
  249. package/dist/components/marquee/use-marquee-context.d.ts +4 -0
  250. package/dist/components/marquee/use-marquee-context.js +5 -0
  251. package/dist/components/marquee/use-marquee.svelte.d.ts +9 -0
  252. package/dist/components/marquee/use-marquee.svelte.js +20 -0
  253. package/dist/components/menu/index.d.ts +28 -0
  254. package/dist/components/menu/index.js +26 -0
  255. package/dist/components/menu/menu-anatomy.d.ts +1 -0
  256. package/dist/components/menu/menu-anatomy.js +1 -0
  257. package/dist/components/menu/menu-arrow-tip.svelte +19 -0
  258. package/dist/components/menu/menu-arrow-tip.svelte.d.ts +8 -0
  259. package/dist/components/menu/menu-arrow.svelte +19 -0
  260. package/dist/components/menu/menu-arrow.svelte.d.ts +8 -0
  261. package/dist/components/menu/menu-checkbox-item.svelte +50 -0
  262. package/dist/components/menu/menu-checkbox-item.svelte.d.ts +10 -0
  263. package/dist/components/menu/menu-content.svelte +27 -0
  264. package/dist/components/menu/menu-content.svelte.d.ts +8 -0
  265. package/dist/components/menu/menu-context-trigger.svelte +19 -0
  266. package/dist/components/menu/menu-context-trigger.svelte.d.ts +8 -0
  267. package/dist/components/menu/menu-context.svelte +17 -0
  268. package/dist/components/menu/menu-context.svelte.d.ts +8 -0
  269. package/dist/components/menu/menu-indicator.svelte +19 -0
  270. package/dist/components/menu/menu-indicator.svelte.d.ts +8 -0
  271. package/dist/components/menu/menu-item-context.svelte +14 -0
  272. package/dist/components/menu/menu-item-context.svelte.d.ts +8 -0
  273. package/dist/components/menu/menu-item-group-label.svelte +21 -0
  274. package/dist/components/menu/menu-item-group-label.svelte.d.ts +8 -0
  275. package/dist/components/menu/menu-item-group.svelte +27 -0
  276. package/dist/components/menu/menu-item-group.svelte.d.ts +10 -0
  277. package/dist/components/menu/menu-item-indicator.svelte +21 -0
  278. package/dist/components/menu/menu-item-indicator.svelte.d.ts +8 -0
  279. package/dist/components/menu/menu-item-text.svelte +21 -0
  280. package/dist/components/menu/menu-item-text.svelte.d.ts +8 -0
  281. package/dist/components/menu/menu-item.svelte +42 -0
  282. package/dist/components/menu/menu-item.svelte.d.ts +12 -0
  283. package/dist/components/menu/menu-positioner.svelte +23 -0
  284. package/dist/components/menu/menu-positioner.svelte.d.ts +8 -0
  285. package/dist/components/menu/menu-radio-item-group.svelte +44 -0
  286. package/dist/components/menu/menu-radio-item-group.svelte.d.ts +10 -0
  287. package/dist/components/menu/menu-radio-item.svelte +43 -0
  288. package/dist/components/menu/menu-radio-item.svelte.d.ts +10 -0
  289. package/dist/components/menu/menu-root-provider.svelte +56 -0
  290. package/dist/components/menu/menu-root-provider.svelte.d.ts +14 -0
  291. package/dist/components/menu/menu-root.svelte +92 -0
  292. package/dist/components/menu/menu-root.svelte.d.ts +11 -0
  293. package/dist/components/menu/menu-separator.svelte +19 -0
  294. package/dist/components/menu/menu-separator.svelte.d.ts +8 -0
  295. package/dist/components/menu/menu-trigger-item.svelte +22 -0
  296. package/dist/components/menu/menu-trigger-item.svelte.d.ts +8 -0
  297. package/dist/components/menu/menu-trigger.svelte +22 -0
  298. package/dist/components/menu/menu-trigger.svelte.d.ts +8 -0
  299. package/dist/components/menu/menu.d.ts +22 -0
  300. package/dist/components/menu/menu.js +21 -0
  301. package/dist/components/menu/use-menu-context.d.ts +4 -0
  302. package/dist/components/menu/use-menu-context.js +7 -0
  303. package/dist/components/menu/use-menu-item-context.d.ts +5 -0
  304. package/dist/components/menu/use-menu-item-context.js +6 -0
  305. package/dist/components/menu/use-menu-item-group-context.d.ts +11 -0
  306. package/dist/components/menu/use-menu-item-group-context.js +6 -0
  307. package/dist/components/menu/use-menu-machine-context.d.ts +4 -0
  308. package/dist/components/menu/use-menu-machine-context.js +7 -0
  309. package/dist/components/menu/use-menu-option-item-props-context.d.ts +3 -0
  310. package/dist/components/menu/use-menu-option-item-props-context.js +6 -0
  311. package/dist/components/menu/use-menu-trigger-item-context.d.ts +4 -0
  312. package/dist/components/menu/use-menu-trigger-item-context.js +7 -0
  313. package/dist/components/menu/use-menu.svelte.d.ts +12 -0
  314. package/dist/components/menu/use-menu.svelte.js +20 -0
  315. package/dist/components/navigation-menu/index.d.ts +18 -0
  316. package/dist/components/navigation-menu/index.js +17 -0
  317. package/dist/components/navigation-menu/navigation-menu-anatomy.d.ts +1 -0
  318. package/dist/components/navigation-menu/navigation-menu-anatomy.js +1 -0
  319. package/dist/components/navigation-menu/navigation-menu-arrow.svelte +19 -0
  320. package/dist/components/navigation-menu/navigation-menu-arrow.svelte.d.ts +8 -0
  321. package/dist/components/navigation-menu/navigation-menu-content.svelte +63 -0
  322. package/dist/components/navigation-menu/navigation-menu-content.svelte.d.ts +9 -0
  323. package/dist/components/navigation-menu/navigation-menu-context.svelte +18 -0
  324. package/dist/components/navigation-menu/navigation-menu-context.svelte.d.ts +8 -0
  325. package/dist/components/navigation-menu/navigation-menu-indicator.svelte +29 -0
  326. package/dist/components/navigation-menu/navigation-menu-indicator.svelte.d.ts +8 -0
  327. package/dist/components/navigation-menu/navigation-menu-item-indicator.svelte +22 -0
  328. package/dist/components/navigation-menu/navigation-menu-item-indicator.svelte.d.ts +8 -0
  329. package/dist/components/navigation-menu/navigation-menu-item.svelte +26 -0
  330. package/dist/components/navigation-menu/navigation-menu-item.svelte.d.ts +9 -0
  331. package/dist/components/navigation-menu/navigation-menu-link.svelte +32 -0
  332. package/dist/components/navigation-menu/navigation-menu-link.svelte.d.ts +9 -0
  333. package/dist/components/navigation-menu/navigation-menu-list.svelte +19 -0
  334. package/dist/components/navigation-menu/navigation-menu-list.svelte.d.ts +8 -0
  335. package/dist/components/navigation-menu/navigation-menu-root-provider.svelte +36 -0
  336. package/dist/components/navigation-menu/navigation-menu-root-provider.svelte.d.ts +13 -0
  337. package/dist/components/navigation-menu/navigation-menu-root.svelte +61 -0
  338. package/dist/components/navigation-menu/navigation-menu-root.svelte.d.ts +10 -0
  339. package/dist/components/navigation-menu/navigation-menu-trigger.svelte +36 -0
  340. package/dist/components/navigation-menu/navigation-menu-trigger.svelte.d.ts +9 -0
  341. package/dist/components/navigation-menu/navigation-menu-viewport-positioner.svelte +29 -0
  342. package/dist/components/navigation-menu/navigation-menu-viewport-positioner.svelte.d.ts +9 -0
  343. package/dist/components/navigation-menu/navigation-menu-viewport.svelte +36 -0
  344. package/dist/components/navigation-menu/navigation-menu-viewport.svelte.d.ts +9 -0
  345. package/dist/components/navigation-menu/navigation-menu.d.ts +14 -0
  346. package/dist/components/navigation-menu/navigation-menu.js +13 -0
  347. package/dist/components/navigation-menu/use-navigation-menu-context.d.ts +4 -0
  348. package/dist/components/navigation-menu/use-navigation-menu-context.js +4 -0
  349. package/dist/components/navigation-menu/use-navigation-menu-item-props-context.d.ts +3 -0
  350. package/dist/components/navigation-menu/use-navigation-menu-item-props-context.js +5 -0
  351. package/dist/components/navigation-menu/use-navigation-menu.svelte.d.ts +9 -0
  352. package/dist/components/navigation-menu/use-navigation-menu.svelte.js +20 -0
  353. package/dist/components/number-input/index.d.ts +17 -0
  354. package/dist/components/number-input/index.js +14 -0
  355. package/dist/components/number-input/number-input-anatomy.d.ts +1 -0
  356. package/dist/components/number-input/number-input-anatomy.js +1 -0
  357. package/dist/components/number-input/number-input-context.svelte +18 -0
  358. package/dist/components/number-input/number-input-context.svelte.d.ts +8 -0
  359. package/dist/components/number-input/number-input-control.svelte +19 -0
  360. package/dist/components/number-input/number-input-control.svelte.d.ts +8 -0
  361. package/dist/components/number-input/number-input-decrement-trigger.svelte +20 -0
  362. package/dist/components/number-input/number-input-decrement-trigger.svelte.d.ts +8 -0
  363. package/dist/components/number-input/number-input-increment-trigger.svelte +20 -0
  364. package/dist/components/number-input/number-input-increment-trigger.svelte.d.ts +8 -0
  365. package/dist/components/number-input/number-input-input.svelte +21 -0
  366. package/dist/components/number-input/number-input-input.svelte.d.ts +8 -0
  367. package/dist/components/number-input/number-input-label.svelte +19 -0
  368. package/dist/components/number-input/number-input-label.svelte.d.ts +8 -0
  369. package/dist/components/number-input/number-input-root-provider.svelte +23 -0
  370. package/dist/components/number-input/number-input-root-provider.svelte.d.ts +10 -0
  371. package/dist/components/number-input/number-input-root.svelte +37 -0
  372. package/dist/components/number-input/number-input-root.svelte.d.ts +9 -0
  373. package/dist/components/number-input/number-input-scrubber.svelte +19 -0
  374. package/dist/components/number-input/number-input-scrubber.svelte.d.ts +8 -0
  375. package/dist/components/number-input/number-input-value-text.svelte +25 -0
  376. package/dist/components/number-input/number-input-value-text.svelte.d.ts +8 -0
  377. package/dist/components/number-input/number-input.d.ts +11 -0
  378. package/dist/components/number-input/number-input.js +10 -0
  379. package/dist/components/number-input/split-number-input-props.svelte.d.ts +2 -0
  380. package/dist/components/number-input/split-number-input-props.svelte.js +31 -0
  381. package/dist/components/number-input/use-number-input-context.d.ts +4 -0
  382. package/dist/components/number-input/use-number-input-context.js +6 -0
  383. package/dist/components/number-input/use-number-input.svelte.d.ts +9 -0
  384. package/dist/components/number-input/use-number-input.svelte.js +31 -0
  385. package/dist/components/pagination/index.d.ts +14 -0
  386. package/dist/components/pagination/index.js +13 -0
  387. package/dist/components/pagination/pagination-anatomy.d.ts +1 -0
  388. package/dist/components/pagination/pagination-anatomy.js +1 -0
  389. package/dist/components/pagination/pagination-context.svelte +17 -0
  390. package/dist/components/pagination/pagination-context.svelte.d.ts +8 -0
  391. package/dist/components/pagination/pagination-ellipsis.svelte +19 -0
  392. package/dist/components/pagination/pagination-ellipsis.svelte.d.ts +9 -0
  393. package/dist/components/pagination/pagination-first-trigger.svelte +18 -0
  394. package/dist/components/pagination/pagination-first-trigger.svelte.d.ts +8 -0
  395. package/dist/components/pagination/pagination-item.svelte +19 -0
  396. package/dist/components/pagination/pagination-item.svelte.d.ts +9 -0
  397. package/dist/components/pagination/pagination-last-trigger.svelte +18 -0
  398. package/dist/components/pagination/pagination-last-trigger.svelte.d.ts +8 -0
  399. package/dist/components/pagination/pagination-next-trigger.svelte +18 -0
  400. package/dist/components/pagination/pagination-next-trigger.svelte.d.ts +8 -0
  401. package/dist/components/pagination/pagination-prev-trigger.svelte +18 -0
  402. package/dist/components/pagination/pagination-prev-trigger.svelte.d.ts +8 -0
  403. package/dist/components/pagination/pagination-root-provider.svelte +27 -0
  404. package/dist/components/pagination/pagination-root-provider.svelte.d.ts +14 -0
  405. package/dist/components/pagination/pagination-root.svelte +59 -0
  406. package/dist/components/pagination/pagination-root.svelte.d.ts +9 -0
  407. package/dist/components/pagination/pagination.d.ts +10 -0
  408. package/dist/components/pagination/pagination.js +9 -0
  409. package/dist/components/pagination/use-pagination-context.d.ts +4 -0
  410. package/dist/components/pagination/use-pagination-context.js +6 -0
  411. package/dist/components/pagination/use-pagination.svelte.d.ts +9 -0
  412. package/dist/components/pagination/use-pagination.svelte.js +19 -0
  413. package/dist/components/password-input/index.d.ts +13 -0
  414. package/dist/components/password-input/index.js +12 -0
  415. package/dist/components/password-input/password-input-anatomy.d.ts +1 -0
  416. package/dist/components/password-input/password-input-anatomy.js +1 -0
  417. package/dist/components/password-input/password-input-context.svelte +18 -0
  418. package/dist/components/password-input/password-input-context.svelte.d.ts +8 -0
  419. package/dist/components/password-input/password-input-control.svelte +18 -0
  420. package/dist/components/password-input/password-input-control.svelte.d.ts +8 -0
  421. package/dist/components/password-input/password-input-indicator.svelte +29 -0
  422. package/dist/components/password-input/password-input-indicator.svelte.d.ts +11 -0
  423. package/dist/components/password-input/password-input-input.svelte +27 -0
  424. package/dist/components/password-input/password-input-input.svelte.d.ts +8 -0
  425. package/dist/components/password-input/password-input-label.svelte +18 -0
  426. package/dist/components/password-input/password-input-label.svelte.d.ts +8 -0
  427. package/dist/components/password-input/password-input-root-provider.svelte +30 -0
  428. package/dist/components/password-input/password-input-root-provider.svelte.d.ts +14 -0
  429. package/dist/components/password-input/password-input-root.svelte +58 -0
  430. package/dist/components/password-input/password-input-root.svelte.d.ts +11 -0
  431. package/dist/components/password-input/password-input-visibility-trigger.svelte +19 -0
  432. package/dist/components/password-input/password-input-visibility-trigger.svelte.d.ts +8 -0
  433. package/dist/components/password-input/password-input.d.ts +9 -0
  434. package/dist/components/password-input/password-input.js +8 -0
  435. package/dist/components/password-input/use-password-input-context.d.ts +4 -0
  436. package/dist/components/password-input/use-password-input-context.js +4 -0
  437. package/dist/components/password-input/use-password-input.svelte.d.ts +9 -0
  438. package/dist/components/password-input/use-password-input.svelte.js +20 -0
  439. package/dist/components/pin-input/index.d.ts +12 -0
  440. package/dist/components/pin-input/index.js +11 -0
  441. package/dist/components/pin-input/pin-input-anatomy.d.ts +1 -0
  442. package/dist/components/pin-input/pin-input-anatomy.js +1 -0
  443. package/dist/components/pin-input/pin-input-context.svelte +18 -0
  444. package/dist/components/pin-input/pin-input-context.svelte.d.ts +8 -0
  445. package/dist/components/pin-input/pin-input-control.svelte +18 -0
  446. package/dist/components/pin-input/pin-input-control.svelte.d.ts +8 -0
  447. package/dist/components/pin-input/pin-input-hidden-input.svelte +18 -0
  448. package/dist/components/pin-input/pin-input-hidden-input.svelte.d.ts +8 -0
  449. package/dist/components/pin-input/pin-input-input.svelte +23 -0
  450. package/dist/components/pin-input/pin-input-input.svelte.d.ts +9 -0
  451. package/dist/components/pin-input/pin-input-label.svelte +18 -0
  452. package/dist/components/pin-input/pin-input-label.svelte.d.ts +8 -0
  453. package/dist/components/pin-input/pin-input-root-provider.svelte +27 -0
  454. package/dist/components/pin-input/pin-input-root-provider.svelte.d.ts +14 -0
  455. package/dist/components/pin-input/pin-input-root.svelte +66 -0
  456. package/dist/components/pin-input/pin-input-root.svelte.d.ts +11 -0
  457. package/dist/components/pin-input/pin-input.d.ts +8 -0
  458. package/dist/components/pin-input/pin-input.js +7 -0
  459. package/dist/components/pin-input/use-pin-input-context.d.ts +4 -0
  460. package/dist/components/pin-input/use-pin-input-context.js +4 -0
  461. package/dist/components/pin-input/use-pin-input.svelte.d.ts +9 -0
  462. package/dist/components/pin-input/use-pin-input.svelte.js +20 -0
  463. package/dist/components/popover/index.d.ts +20 -0
  464. package/dist/components/popover/index.js +17 -0
  465. package/dist/components/popover/popover-anatomy.d.ts +1 -0
  466. package/dist/components/popover/popover-anatomy.js +1 -0
  467. package/dist/components/popover/popover-anchor.svelte +19 -0
  468. package/dist/components/popover/popover-anchor.svelte.d.ts +8 -0
  469. package/dist/components/popover/popover-arrow-tip.svelte +19 -0
  470. package/dist/components/popover/popover-arrow-tip.svelte.d.ts +8 -0
  471. package/dist/components/popover/popover-arrow.svelte +19 -0
  472. package/dist/components/popover/popover-arrow.svelte.d.ts +8 -0
  473. package/dist/components/popover/popover-close-trigger.svelte +19 -0
  474. package/dist/components/popover/popover-close-trigger.svelte.d.ts +8 -0
  475. package/dist/components/popover/popover-content.svelte +27 -0
  476. package/dist/components/popover/popover-content.svelte.d.ts +8 -0
  477. package/dist/components/popover/popover-context.svelte +18 -0
  478. package/dist/components/popover/popover-context.svelte.d.ts +8 -0
  479. package/dist/components/popover/popover-description.svelte +19 -0
  480. package/dist/components/popover/popover-description.svelte.d.ts +8 -0
  481. package/dist/components/popover/popover-indicator.svelte +19 -0
  482. package/dist/components/popover/popover-indicator.svelte.d.ts +8 -0
  483. package/dist/components/popover/popover-positioner.svelte +23 -0
  484. package/dist/components/popover/popover-positioner.svelte.d.ts +8 -0
  485. package/dist/components/popover/popover-root-provider.svelte +29 -0
  486. package/dist/components/popover/popover-root-provider.svelte.d.ts +14 -0
  487. package/dist/components/popover/popover-root.svelte +49 -0
  488. package/dist/components/popover/popover-root.svelte.d.ts +11 -0
  489. package/dist/components/popover/popover-title.svelte +19 -0
  490. package/dist/components/popover/popover-title.svelte.d.ts +8 -0
  491. package/dist/components/popover/popover-trigger.svelte +29 -0
  492. package/dist/components/popover/popover-trigger.svelte.d.ts +8 -0
  493. package/dist/components/popover/popover.d.ts +14 -0
  494. package/dist/components/popover/popover.js +13 -0
  495. package/dist/components/popover/use-popover-context.d.ts +4 -0
  496. package/dist/components/popover/use-popover-context.js +4 -0
  497. package/dist/components/popover/use-popover.svelte.d.ts +9 -0
  498. package/dist/components/popover/use-popover.svelte.js +20 -0
  499. package/dist/components/tree-view/index.d.ts +32 -0
  500. package/dist/components/tree-view/index.js +27 -0
  501. package/dist/components/tree-view/tree-view-anatomy.d.ts +1 -0
  502. package/dist/components/tree-view/tree-view-anatomy.js +1 -0
  503. package/dist/components/tree-view/tree-view-branch-content.svelte +35 -0
  504. package/dist/components/tree-view/tree-view-branch-content.svelte.d.ts +9 -0
  505. package/dist/components/tree-view/tree-view-branch-control.svelte +21 -0
  506. package/dist/components/tree-view/tree-view-branch-control.svelte.d.ts +8 -0
  507. package/dist/components/tree-view/tree-view-branch-indent-guide.svelte +23 -0
  508. package/dist/components/tree-view/tree-view-branch-indent-guide.svelte.d.ts +8 -0
  509. package/dist/components/tree-view/tree-view-branch-indicator.svelte +21 -0
  510. package/dist/components/tree-view/tree-view-branch-indicator.svelte.d.ts +8 -0
  511. package/dist/components/tree-view/tree-view-branch-text.svelte +21 -0
  512. package/dist/components/tree-view/tree-view-branch-text.svelte.d.ts +8 -0
  513. package/dist/components/tree-view/tree-view-branch-trigger.svelte +22 -0
  514. package/dist/components/tree-view/tree-view-branch-trigger.svelte.d.ts +8 -0
  515. package/dist/components/tree-view/tree-view-branch.svelte +33 -0
  516. package/dist/components/tree-view/tree-view-branch.svelte.d.ts +8 -0
  517. package/dist/components/tree-view/tree-view-context.svelte +19 -0
  518. package/dist/components/tree-view/tree-view-context.svelte.d.ts +9 -0
  519. package/dist/components/tree-view/tree-view-item-indicator.svelte +22 -0
  520. package/dist/components/tree-view/tree-view-item-indicator.svelte.d.ts +8 -0
  521. package/dist/components/tree-view/tree-view-item-text.svelte +22 -0
  522. package/dist/components/tree-view/tree-view-item-text.svelte.d.ts +8 -0
  523. package/dist/components/tree-view/tree-view-item.svelte +21 -0
  524. package/dist/components/tree-view/tree-view-item.svelte.d.ts +8 -0
  525. package/dist/components/tree-view/tree-view-label.svelte +19 -0
  526. package/dist/components/tree-view/tree-view-label.svelte.d.ts +8 -0
  527. package/dist/components/tree-view/tree-view-node-checkbox-indicator.svelte +27 -0
  528. package/dist/components/tree-view/tree-view-node-checkbox-indicator.svelte.d.ts +11 -0
  529. package/dist/components/tree-view/tree-view-node-checkbox.svelte +22 -0
  530. package/dist/components/tree-view/tree-view-node-checkbox.svelte.d.ts +8 -0
  531. package/dist/components/tree-view/tree-view-node-context.svelte +19 -0
  532. package/dist/components/tree-view/tree-view-node-context.svelte.d.ts +30 -0
  533. package/dist/components/tree-view/tree-view-node-provider.svelte +29 -0
  534. package/dist/components/tree-view/tree-view-node-provider.svelte.d.ts +34 -0
  535. package/dist/components/tree-view/tree-view-node-rename-input.svelte +21 -0
  536. package/dist/components/tree-view/tree-view-node-rename-input.svelte.d.ts +8 -0
  537. package/dist/components/tree-view/tree-view-root-provider.svelte +40 -0
  538. package/dist/components/tree-view/tree-view-root-provider.svelte.d.ts +35 -0
  539. package/dist/components/tree-view/tree-view-root.svelte +78 -0
  540. package/dist/components/tree-view/tree-view-root.svelte.d.ts +35 -0
  541. package/dist/components/tree-view/tree-view-split-props.d.ts +3 -0
  542. package/dist/components/tree-view/tree-view-split-props.js +32 -0
  543. package/dist/components/tree-view/tree-view-tree.svelte +19 -0
  544. package/dist/components/tree-view/tree-view-tree.svelte.d.ts +8 -0
  545. package/dist/components/tree-view/tree-view.d.ts +21 -0
  546. package/dist/components/tree-view/tree-view.js +20 -0
  547. package/dist/components/tree-view/use-tree-view-context.d.ts +5 -0
  548. package/dist/components/tree-view/use-tree-view-context.js +6 -0
  549. package/dist/components/tree-view/use-tree-view-node-context.d.ts +5 -0
  550. package/dist/components/tree-view/use-tree-view-node-context.js +6 -0
  551. package/dist/components/tree-view/use-tree-view-node-props-context.d.ts +5 -0
  552. package/dist/components/tree-view/use-tree-view-node-props-context.js +6 -0
  553. package/dist/components/tree-view/use-tree-view.svelte.d.ts +10 -0
  554. package/dist/components/tree-view/use-tree-view.svelte.js +21 -0
  555. package/package.json +92 -2
@@ -0,0 +1,50 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { OptionItemProps } from '@sprawlify/primitives/machines/menu'
4
+
5
+ type PartialOptionItemProps = Omit<OptionItemProps, 'type'>
6
+
7
+ export interface MenuCheckboxItemBaseProps extends PartialOptionItemProps, PolymorphicProps<'div'>, RefAttribute {}
8
+ export interface MenuCheckboxItemProps extends Assign<HTMLProps<'div'>, MenuCheckboxItemBaseProps> {}
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { createSplitProps } from '../../utils/create-split-props'
13
+ import { mergeProps } from '../../core'
14
+ import { Sprawlify } from '../factory'
15
+ import { useMenuContext } from './use-menu-context'
16
+ import { MenuItemProvider } from './use-menu-item-context'
17
+ import { MenuItemPropsProvider } from './use-menu-option-item-props-context'
18
+
19
+ let { ref = $bindable(null), checked = $bindable<boolean>(), ...props }: MenuCheckboxItemProps = $props()
20
+
21
+ const [partialOptionItemProps, localProps] = $derived(
22
+ createSplitProps<PartialOptionItemProps>()({ checked, ...props }, [
23
+ 'checked',
24
+ 'closeOnSelect',
25
+ 'disabled',
26
+ 'onCheckedChange',
27
+ 'value',
28
+ 'valueText',
29
+ ]),
30
+ )
31
+
32
+ const optionItemProps = $derived<OptionItemProps>({
33
+ ...partialOptionItemProps,
34
+ type: 'checkbox',
35
+ checked,
36
+ onCheckedChange(nextChecked) {
37
+ if (checked !== undefined) checked = nextChecked
38
+ partialOptionItemProps.onCheckedChange?.(nextChecked)
39
+ },
40
+ })
41
+
42
+ const menu = useMenuContext()
43
+ const mergedProps = $derived(mergeProps(menu().getOptionItemProps(optionItemProps), localProps))
44
+ const optionItemState = $derived(menu().getOptionItemState(optionItemProps))
45
+
46
+ MenuItemPropsProvider(() => optionItemProps)
47
+ MenuItemProvider(() => optionItemState)
48
+ </script>
49
+
50
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,10 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { OptionItemProps } from '@sprawlify/primitives/machines/menu';
3
+ type PartialOptionItemProps = Omit<OptionItemProps, 'type'>;
4
+ export interface MenuCheckboxItemBaseProps extends PartialOptionItemProps, PolymorphicProps<'div'>, RefAttribute {
5
+ }
6
+ export interface MenuCheckboxItemProps extends Assign<HTMLProps<'div'>, MenuCheckboxItemBaseProps> {
7
+ }
8
+ declare const MenuCheckboxItem: import("svelte").Component<MenuCheckboxItemProps, {}, "checked" | "ref">;
9
+ type MenuCheckboxItem = ReturnType<typeof MenuCheckboxItem>;
10
+ export default MenuCheckboxItem;
@@ -0,0 +1,27 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuContentBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuContentProps extends Assign<HTMLProps<'div'>, MenuContentBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { usePresenceContext } from '../presence'
12
+ import { useMenuContext } from './use-menu-context'
13
+
14
+ let { ref = $bindable(null), ...props }: MenuContentProps = $props()
15
+
16
+ const menu = useMenuContext()
17
+ const presence = usePresenceContext()
18
+ const mergedProps = $derived(mergeProps(menu().getContentProps(), presence().getPresenceProps(), props))
19
+
20
+ function setNode(node: HTMLElement | null) {
21
+ presence().setNode(node)
22
+ }
23
+ </script>
24
+
25
+ {#if !presence().unmounted}
26
+ <Sprawlify as="div" bind:ref {@attach setNode} {...mergedProps} />
27
+ {/if}
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuContentBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuContentProps extends Assign<HTMLProps<'div'>, MenuContentBaseProps> {
5
+ }
6
+ declare const MenuContent: import("svelte").Component<MenuContentProps, {}, "ref">;
7
+ type MenuContent = ReturnType<typeof MenuContent>;
8
+ export default MenuContent;
@@ -0,0 +1,19 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuContextTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {}
5
+ export interface MenuContextTriggerProps extends Assign<HTMLProps<'button'>, MenuContextTriggerBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useMenuContext } from './use-menu-context'
12
+
13
+ let { ref = $bindable(null), ...props }: MenuContextTriggerProps = $props()
14
+
15
+ const menu = useMenuContext()
16
+ const mergedProps = $derived(mergeProps(menu().getContextTriggerProps(), props))
17
+ </script>
18
+
19
+ <Sprawlify as="button" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuContextTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {
3
+ }
4
+ export interface MenuContextTriggerProps extends Assign<HTMLProps<'button'>, MenuContextTriggerBaseProps> {
5
+ }
6
+ declare const MenuContextTrigger: import("svelte").Component<MenuContextTriggerProps, {}, "ref">;
7
+ type MenuContextTrigger = ReturnType<typeof MenuContextTrigger>;
8
+ export default MenuContextTrigger;
@@ -0,0 +1,17 @@
1
+ <script module lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+ import type { UseMenuContext } from './use-menu-context'
4
+
5
+ export interface MenuContextProps {
6
+ render: Snippet<[UseMenuContext]>
7
+ }
8
+ </script>
9
+
10
+ <script lang="ts">
11
+ import { useMenuContext } from './use-menu-context'
12
+
13
+ const { render }: MenuContextProps = $props()
14
+ const context = useMenuContext()
15
+ </script>
16
+
17
+ {@render render(context)}
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { UseMenuContext } from './use-menu-context';
3
+ export interface MenuContextProps {
4
+ render: Snippet<[UseMenuContext]>;
5
+ }
6
+ declare const MenuContext: import("svelte").Component<MenuContextProps, {}, "">;
7
+ type MenuContext = ReturnType<typeof MenuContext>;
8
+ export default MenuContext;
@@ -0,0 +1,19 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuIndicatorBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuIndicatorProps extends Assign<HTMLProps<'div'>, MenuIndicatorBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useMenuContext } from './use-menu-context'
12
+
13
+ let { ref = $bindable(null), ...props }: MenuIndicatorProps = $props()
14
+
15
+ const menu = useMenuContext()
16
+ const mergedProps = $derived(mergeProps(menu().getIndicatorProps(), props))
17
+ </script>
18
+
19
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuIndicatorBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuIndicatorProps extends Assign<HTMLProps<'div'>, MenuIndicatorBaseProps> {
5
+ }
6
+ declare const MenuIndicator: import("svelte").Component<MenuIndicatorProps, {}, "ref">;
7
+ type MenuIndicator = ReturnType<typeof MenuIndicator>;
8
+ export default MenuIndicator;
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+ import { useMenuItemContext, type UseMenuItemContext } from './use-menu-item-context'
4
+
5
+ export interface MenuItemContextProps {
6
+ render: Snippet<[UseMenuItemContext]>
7
+ }
8
+
9
+ const props: MenuItemContextProps = $props()
10
+
11
+ const context = useMenuItemContext()
12
+ </script>
13
+
14
+ {@render props.render(context)}
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type UseMenuItemContext } from './use-menu-item-context';
3
+ export interface MenuItemContextProps {
4
+ render: Snippet<[UseMenuItemContext]>;
5
+ }
6
+ declare const MenuItemContext: import("svelte").Component<MenuItemContextProps, {}, "">;
7
+ type MenuItemContext = ReturnType<typeof MenuItemContext>;
8
+ export default MenuItemContext;
@@ -0,0 +1,21 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuItemGroupLabelBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuItemGroupLabelProps extends Assign<HTMLProps<'div'>, MenuItemGroupLabelBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useMenuContext } from './use-menu-context'
12
+ import { useMenuItemGroupContext } from './use-menu-item-group-context'
13
+
14
+ let { ref = $bindable(null), ...props }: MenuItemGroupLabelProps = $props()
15
+
16
+ const menu = useMenuContext()
17
+ const itemGroup = useMenuItemGroupContext()
18
+ const mergedProps = $derived(mergeProps(menu().getItemGroupLabelProps({ htmlFor: itemGroup().id }), props))
19
+ </script>
20
+
21
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuItemGroupLabelBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuItemGroupLabelProps extends Assign<HTMLProps<'div'>, MenuItemGroupLabelBaseProps> {
5
+ }
6
+ declare const MenuItemGroupLabel: import("svelte").Component<MenuItemGroupLabelProps, {}, "ref">;
7
+ type MenuItemGroupLabel = ReturnType<typeof MenuItemGroupLabel>;
8
+ export default MenuItemGroupLabel;
@@ -0,0 +1,27 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, Optional, PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { ItemGroupProps } from '@sprawlify/primitives/machines/menu'
4
+
5
+ type OptionalItemGroupProps = Optional<ItemGroupProps, 'id'>
6
+
7
+ export interface MenuItemGroupBaseProps extends OptionalItemGroupProps, PolymorphicProps<'div'>, RefAttribute {}
8
+ export interface MenuItemGroupProps extends Assign<HTMLProps<'div'>, MenuItemGroupBaseProps> {}
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { mergeProps } from '../../core'
13
+ import { Sprawlify } from '../factory'
14
+ import { useMenuContext } from './use-menu-context'
15
+ import { MenuItemGroupProvider } from './use-menu-item-group-context'
16
+
17
+ let { ref = $bindable(null), ...props }: MenuItemGroupProps = $props()
18
+
19
+ const menu = useMenuContext()
20
+ const id = $props.id()
21
+ const itemGroupProps = $derived({ id, ...props })
22
+ const mergedProps = $derived(mergeProps(menu().getItemGroupProps(itemGroupProps), props))
23
+
24
+ MenuItemGroupProvider(() => itemGroupProps)
25
+ </script>
26
+
27
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,10 @@
1
+ import type { Assign, HTMLProps, Optional, PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { ItemGroupProps } from '@sprawlify/primitives/machines/menu';
3
+ type OptionalItemGroupProps = Optional<ItemGroupProps, 'id'>;
4
+ export interface MenuItemGroupBaseProps extends OptionalItemGroupProps, PolymorphicProps<'div'>, RefAttribute {
5
+ }
6
+ export interface MenuItemGroupProps extends Assign<HTMLProps<'div'>, MenuItemGroupBaseProps> {
7
+ }
8
+ declare const MenuItemGroup: import("svelte").Component<MenuItemGroupProps, {}, "ref">;
9
+ type MenuItemGroup = ReturnType<typeof MenuItemGroup>;
10
+ export default MenuItemGroup;
@@ -0,0 +1,21 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuItemIndicatorBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuItemIndicatorProps extends Assign<HTMLProps<'div'>, MenuItemIndicatorBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useMenuContext } from './use-menu-context'
12
+ import { useMenuItemPropsContext } from './use-menu-option-item-props-context'
13
+
14
+ let { ref = $bindable(null), ...props }: MenuItemIndicatorProps = $props()
15
+
16
+ const menu = useMenuContext()
17
+ const itemProps = useMenuItemPropsContext()
18
+ const mergedProps = $derived(mergeProps(menu().getItemIndicatorProps(itemProps()), props))
19
+ </script>
20
+
21
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuItemIndicatorBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuItemIndicatorProps extends Assign<HTMLProps<'div'>, MenuItemIndicatorBaseProps> {
5
+ }
6
+ declare const MenuItemIndicator: import("svelte").Component<MenuItemIndicatorProps, {}, "ref">;
7
+ type MenuItemIndicator = ReturnType<typeof MenuItemIndicator>;
8
+ export default MenuItemIndicator;
@@ -0,0 +1,21 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuItemTextBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuItemTextProps extends Assign<HTMLProps<'div'>, MenuItemTextBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useMenuContext } from './use-menu-context'
12
+ import { useMenuItemPropsContext } from './use-menu-option-item-props-context'
13
+
14
+ let { ref = $bindable(null), ...props }: MenuItemTextProps = $props()
15
+
16
+ const menu = useMenuContext()
17
+ const itemProps = useMenuItemPropsContext()
18
+ const mergedProps = $derived(mergeProps(menu().getItemTextProps(itemProps()), props))
19
+ </script>
20
+
21
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuItemTextBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuItemTextProps extends Assign<HTMLProps<'div'>, MenuItemTextBaseProps> {
5
+ }
6
+ declare const MenuItemText: import("svelte").Component<MenuItemTextProps, {}, "ref">;
7
+ type MenuItemText = ReturnType<typeof MenuItemText>;
8
+ export default MenuItemText;
@@ -0,0 +1,42 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ interface ItemBaseProps extends ItemProps {
5
+ onSelect?: VoidFunction
6
+ }
7
+
8
+ export interface MenuItemBaseProps extends ItemBaseProps, PolymorphicProps<'div'>, RefAttribute {}
9
+ export interface MenuItemProps extends Assign<HTMLProps<'div'>, MenuItemBaseProps> {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type { ItemProps } from '@sprawlify/primitives/machines/menu'
14
+ import { mergeProps } from '../../core'
15
+ import { Sprawlify } from '../factory'
16
+ import { useMenuContext } from './use-menu-context'
17
+ import { MenuItemProvider } from './use-menu-item-context'
18
+ import { MenuItemPropsProvider } from './use-menu-option-item-props-context'
19
+ import { createSplitProps } from '../../utils/create-split-props'
20
+
21
+ let { ref = $bindable(null), ...props }: MenuItemProps = $props()
22
+
23
+ const [itemProps, localProps] = $derived(
24
+ createSplitProps<ItemBaseProps>()(props, ['closeOnSelect', 'disabled', 'value', 'valueText', 'onSelect']),
25
+ )
26
+
27
+ const menu = useMenuContext()
28
+ const mergedProps = $derived(mergeProps(menu().getItemProps(itemProps), localProps))
29
+ const itemState = $derived(menu().getItemState(itemProps))
30
+
31
+ $effect(() => {
32
+ return menu().addItemListener({
33
+ id: itemState.id,
34
+ onSelect: itemProps.onSelect,
35
+ })
36
+ })
37
+
38
+ MenuItemPropsProvider(() => itemProps)
39
+ MenuItemProvider(() => itemState)
40
+ </script>
41
+
42
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,12 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ interface ItemBaseProps extends ItemProps {
3
+ onSelect?: VoidFunction;
4
+ }
5
+ export interface MenuItemBaseProps extends ItemBaseProps, PolymorphicProps<'div'>, RefAttribute {
6
+ }
7
+ export interface MenuItemProps extends Assign<HTMLProps<'div'>, MenuItemBaseProps> {
8
+ }
9
+ import type { ItemProps } from '@sprawlify/primitives/machines/menu';
10
+ declare const MenuItem: import("svelte").Component<MenuItemProps, {}, "ref">;
11
+ type MenuItem = ReturnType<typeof MenuItem>;
12
+ export default MenuItem;
@@ -0,0 +1,23 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface MenuPositionerBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
+ export interface MenuPositionerProps extends Assign<HTMLProps<'div'>, MenuPositionerBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { usePresenceContext } from '../presence'
12
+ import { useMenuContext } from './use-menu-context'
13
+
14
+ let { ref = $bindable(null), ...props }: MenuPositionerProps = $props()
15
+
16
+ const menu = useMenuContext()
17
+ const presence = usePresenceContext()
18
+ const mergedProps = $derived(mergeProps(menu().getPositionerProps(), props))
19
+ </script>
20
+
21
+ {#if !presence().unmounted}
22
+ <Sprawlify as="div" bind:ref {...mergedProps} />
23
+ {/if}
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface MenuPositionerBaseProps extends PolymorphicProps<'div'>, RefAttribute {
3
+ }
4
+ export interface MenuPositionerProps extends Assign<HTMLProps<'div'>, MenuPositionerBaseProps> {
5
+ }
6
+ declare const MenuPositioner: import("svelte").Component<MenuPositionerProps, {}, "ref">;
7
+ type MenuPositioner = ReturnType<typeof MenuPositioner>;
8
+ export default MenuPositioner;
@@ -0,0 +1,44 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, Optional, PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { UseMenuItemGroupContext } from './use-menu-item-group-context'
4
+
5
+ type OptionalUseMenuItemGroupContext = Optional<ReturnType<UseMenuItemGroupContext>, 'id'>
6
+
7
+ export interface MenuRadioItemGroupBaseProps
8
+ extends OptionalUseMenuItemGroupContext,
9
+ PolymorphicProps<'div'>,
10
+ RefAttribute {}
11
+ export interface MenuRadioItemGroupProps extends Assign<HTMLProps<'div'>, MenuRadioItemGroupBaseProps> {}
12
+ </script>
13
+
14
+ <script lang="ts">
15
+ import { mergeProps } from '../../core'
16
+ import { Sprawlify } from '../factory'
17
+ import { createSplitProps } from '../../utils/create-split-props'
18
+ import { useMenuContext } from './use-menu-context'
19
+ import { MenuItemGroupProvider } from './use-menu-item-group-context'
20
+
21
+ let { ref = $bindable(null), value = $bindable(), ...props }: MenuRadioItemGroupProps = $props()
22
+ const id = $props.id()
23
+
24
+ const [optionalItemGroupProps, localProps] = $derived(
25
+ createSplitProps<OptionalUseMenuItemGroupContext>()(props, ['id', 'onValueChange', 'value']),
26
+ )
27
+
28
+ const menu = useMenuContext()
29
+
30
+ const itemGroupProps = $derived<ReturnType<UseMenuItemGroupContext>>({
31
+ id: optionalItemGroupProps.id ?? id,
32
+ value,
33
+ onValueChange(e) {
34
+ value = e.value
35
+ optionalItemGroupProps?.onValueChange?.(e)
36
+ },
37
+ })
38
+
39
+ const mergedProps = $derived(mergeProps(menu().getItemGroupProps({ id: itemGroupProps.id }), localProps))
40
+
41
+ MenuItemGroupProvider(() => itemGroupProps)
42
+ </script>
43
+
44
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,10 @@
1
+ import type { Assign, HTMLProps, Optional, PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { UseMenuItemGroupContext } from './use-menu-item-group-context';
3
+ type OptionalUseMenuItemGroupContext = Optional<ReturnType<UseMenuItemGroupContext>, 'id'>;
4
+ export interface MenuRadioItemGroupBaseProps extends OptionalUseMenuItemGroupContext, PolymorphicProps<'div'>, RefAttribute {
5
+ }
6
+ export interface MenuRadioItemGroupProps extends Assign<HTMLProps<'div'>, MenuRadioItemGroupBaseProps> {
7
+ }
8
+ declare const MenuRadioItemGroup: import("svelte").Component<MenuRadioItemGroupProps, {}, "value" | "ref">;
9
+ type MenuRadioItemGroup = ReturnType<typeof MenuRadioItemGroup>;
10
+ export default MenuRadioItemGroup;
@@ -0,0 +1,43 @@
1
+ <script module lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { OptionItemProps } from '@sprawlify/primitives/machines/menu'
4
+
5
+ type PartialOptionItemProps = Omit<OptionItemProps, 'type' | 'checked' | 'onCheckedChange'>
6
+
7
+ export interface MenuRadioItemBaseProps extends PartialOptionItemProps, PolymorphicProps<'div'>, RefAttribute {}
8
+ export interface MenuRadioItemProps extends Assign<HTMLProps<'div'>, MenuRadioItemBaseProps> {}
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { mergeProps } from '../../core'
13
+ import { Sprawlify } from '../factory'
14
+ import { createSplitProps } from '../../utils/create-split-props'
15
+ import { useMenuContext } from './use-menu-context'
16
+ import { MenuItemProvider } from './use-menu-item-context'
17
+ import { useMenuItemGroupContext } from './use-menu-item-group-context'
18
+ import { MenuItemPropsProvider } from './use-menu-option-item-props-context'
19
+
20
+ let { ref = $bindable(null), ...props }: MenuRadioItemProps = $props()
21
+
22
+ const [partialItemProps, localProps] = $derived(
23
+ createSplitProps<PartialOptionItemProps>()(props, ['closeOnSelect', 'disabled', 'value', 'valueText']),
24
+ )
25
+
26
+ const menu = useMenuContext()
27
+ const itemGroup = useMenuItemGroupContext()
28
+
29
+ const optionItemProps: OptionItemProps = $derived({
30
+ ...partialItemProps,
31
+ checked: itemGroup().value === partialItemProps.value,
32
+ type: 'radio',
33
+ onCheckedChange: () => itemGroup().onValueChange?.({ value: partialItemProps.value }),
34
+ })
35
+
36
+ const mergedProps = $derived(mergeProps(menu().getOptionItemProps(optionItemProps), localProps))
37
+ const optionItemState = $derived(menu().getOptionItemState(optionItemProps))
38
+
39
+ MenuItemPropsProvider(() => optionItemProps)
40
+ MenuItemProvider(() => optionItemState)
41
+ </script>
42
+
43
+ <Sprawlify as="div" bind:ref {...mergedProps} />
@@ -0,0 +1,10 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { OptionItemProps } from '@sprawlify/primitives/machines/menu';
3
+ type PartialOptionItemProps = Omit<OptionItemProps, 'type' | 'checked' | 'onCheckedChange'>;
4
+ export interface MenuRadioItemBaseProps extends PartialOptionItemProps, PolymorphicProps<'div'>, RefAttribute {
5
+ }
6
+ export interface MenuRadioItemProps extends Assign<HTMLProps<'div'>, MenuRadioItemBaseProps> {
7
+ }
8
+ declare const MenuRadioItem: import("svelte").Component<MenuRadioItemProps, {}, "ref">;
9
+ type MenuRadioItem = ReturnType<typeof MenuRadioItem>;
10
+ export default MenuRadioItem;
@@ -0,0 +1,56 @@
1
+ <script module lang="ts">
2
+ import { onMount, type Snippet } from 'svelte'
3
+ import type { UsePresenceProps } from '../presence'
4
+ import type { UseMenuReturn } from './use-menu.svelte'
5
+
6
+ interface RootProviderProps {
7
+ value: UseMenuReturn
8
+ }
9
+
10
+ export interface MenuRootProviderBaseProps extends RootProviderProps, UsePresenceProps {
11
+ children?: Snippet
12
+ }
13
+ export interface MenuRootProviderProps extends MenuRootProviderBaseProps {}
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import { PresenceProvider, splitPresenceProps, usePresence } from '../presence'
18
+ import { MenuProvider, useMenuContext } from './use-menu-context'
19
+ import { MenuMachineProvider, useMenuMachineContext } from './use-menu-machine-context'
20
+ import { MenuTriggerItemProvider } from './use-menu-trigger-item-context'
21
+
22
+ const { value, ...props }: MenuRootProviderProps = $props()
23
+
24
+ const parentApi = useMenuContext()
25
+ const parentMachine = useMenuMachineContext()
26
+
27
+ const [presenceProps, restProps] = $derived(splitPresenceProps(props))
28
+
29
+ const api = $derived(value().api)
30
+ const service = $derived(value().service)
31
+
32
+ const presence = usePresence(() => ({
33
+ present: api.open,
34
+ ...presenceProps,
35
+ }))
36
+
37
+ // Connect parent-child relationship for nested menus
38
+ onMount(() => {
39
+ const _parentService = parentMachine?.()
40
+ const _parentApi = parentApi?.()
41
+
42
+ if (!_parentService || !_parentApi) return
43
+
44
+ _parentApi.setChild(service)
45
+ api.setParent(_parentService)
46
+ })
47
+
48
+ const triggerItemContext = $derived(parentApi?.().getTriggerItemProps(api))
49
+
50
+ MenuTriggerItemProvider(() => triggerItemContext)
51
+ MenuMachineProvider(() => service)
52
+ MenuProvider(() => api)
53
+ PresenceProvider(presence)
54
+ </script>
55
+
56
+ {@render restProps.children?.()}
@@ -0,0 +1,14 @@
1
+ import { type Snippet } from 'svelte';
2
+ import type { UsePresenceProps } from '../presence';
3
+ import type { UseMenuReturn } from './use-menu.svelte';
4
+ interface RootProviderProps {
5
+ value: UseMenuReturn;
6
+ }
7
+ export interface MenuRootProviderBaseProps extends RootProviderProps, UsePresenceProps {
8
+ children?: Snippet;
9
+ }
10
+ export interface MenuRootProviderProps extends MenuRootProviderBaseProps {
11
+ }
12
+ declare const MenuRootProvider: import("svelte").Component<MenuRootProviderProps, {}, "">;
13
+ type MenuRootProvider = ReturnType<typeof MenuRootProvider>;
14
+ export default MenuRootProvider;