@sectile/vue 0.18.1 → 0.18.2

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 (386) hide show
  1. package/dist/accordion.d.ts +1 -1
  2. package/dist/accordion.js +1 -1
  3. package/dist/carousel.d.ts +1 -1
  4. package/dist/carousel.js +1 -1
  5. package/dist/cascade-list.js +1 -1
  6. package/dist/cascade-list.js.map +1 -1
  7. package/dist/cascade-select.js +1 -1
  8. package/dist/cascade-select.js.map +1 -1
  9. package/dist/checkbox-group.js +1 -1
  10. package/dist/checkbox-group.js.map +1 -1
  11. package/dist/checkbox.d.ts +1 -1
  12. package/dist/checkbox.js +1 -1
  13. package/dist/checkbox.js.map +1 -1
  14. package/dist/color-picker.js +1 -1
  15. package/dist/color-picker.js.map +1 -1
  16. package/dist/combobox.d.ts +1 -1
  17. package/dist/combobox.js +1 -1
  18. package/dist/combobox.js.map +1 -1
  19. package/dist/disclosure.d.ts +1 -1
  20. package/dist/disclosure.js +1 -1
  21. package/dist/editable.js +1 -1
  22. package/dist/editable.js.map +1 -1
  23. package/dist/{internal/form-context.d.ts → form/context.d.ts} +3 -2
  24. package/dist/{internal/form-context.js → form/context.js} +2 -2
  25. package/dist/form/context.js.map +1 -0
  26. package/dist/form/contracts.d.ts +219 -0
  27. package/dist/form/contracts.js +2 -0
  28. package/dist/form/contracts.js.map +1 -0
  29. package/dist/{internal/form-control-inventory.js → form/control-inventory.js} +1 -1
  30. package/dist/form/control-inventory.js.map +1 -0
  31. package/dist/{internal/form-control.js → form/control.js} +1 -1
  32. package/dist/form/control.js.map +1 -0
  33. package/dist/form/field.d.ts +81 -0
  34. package/dist/form/field.js +2 -0
  35. package/dist/form/field.js.map +1 -0
  36. package/dist/form/native.d.ts +15 -0
  37. package/dist/form/native.js +2 -0
  38. package/dist/form/native.js.map +1 -0
  39. package/dist/form/part.d.ts +16 -0
  40. package/dist/form/part.js +2 -0
  41. package/dist/form/part.js.map +1 -0
  42. package/dist/form/parts.d.ts +93 -0
  43. package/dist/form/parts.js +2 -0
  44. package/dist/form/parts.js.map +1 -0
  45. package/dist/{internal/form-presence-parts.d.ts → form/presence-parts.d.ts} +1 -1
  46. package/dist/form/presence-parts.js +2 -0
  47. package/dist/form/presence-parts.js.map +1 -0
  48. package/dist/form/root.d.ts +2 -0
  49. package/dist/form/root.js +2 -0
  50. package/dist/form/root.js.map +1 -0
  51. package/dist/form/selectors.d.ts +7 -0
  52. package/dist/form/selectors.js +2 -0
  53. package/dist/form/selectors.js.map +1 -0
  54. package/dist/form.d.ts +8 -398
  55. package/dist/form.js +1 -1
  56. package/dist/form.js.map +1 -1
  57. package/dist/index.d.ts +10 -10
  58. package/dist/index.js +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/input/decimal-input.js.map +1 -0
  61. package/dist/input/native-field.js +2 -0
  62. package/dist/input/native-field.js.map +1 -0
  63. package/dist/input/native-input.js.map +1 -0
  64. package/dist/input/native-text-state.d.ts +2 -0
  65. package/dist/input/native-text-state.js +2 -0
  66. package/dist/input/native-text-state.js.map +1 -0
  67. package/dist/internal/cascade-choice.d.ts +1 -1
  68. package/dist/internal/cascade-choice.js +1 -1
  69. package/dist/internal/cascade-choice.js.map +1 -1
  70. package/dist/listbox.d.ts +1 -1
  71. package/dist/listbox.js +1 -1
  72. package/dist/listbox.js.map +1 -1
  73. package/dist/menu.js +1 -1
  74. package/dist/meter-group.js +1 -1
  75. package/dist/meter-group.js.map +1 -1
  76. package/dist/meter.js +1 -1
  77. package/dist/meter.js.map +1 -1
  78. package/dist/multi-thumb-slider.js +1 -1
  79. package/dist/multi-thumb-slider.js.map +1 -1
  80. package/dist/navigation-menu.d.ts +1 -1
  81. package/dist/navigation-menu.js +1 -1
  82. package/dist/number-field.d.ts +1 -1
  83. package/dist/number-field.js +1 -1
  84. package/dist/number-field.js.map +1 -1
  85. package/dist/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +1 -1
  86. package/dist/overlay/alert-dialog.js +2 -0
  87. package/dist/overlay/alert-dialog.js.map +1 -0
  88. package/dist/{dialog.d.ts → overlay/dialog.d.ts} +1 -1
  89. package/dist/overlay/dialog.js +2 -0
  90. package/dist/overlay/dialog.js.map +1 -0
  91. package/dist/{drawer.d.ts → overlay/drawer.d.ts} +1 -1
  92. package/dist/overlay/drawer.js +2 -0
  93. package/dist/overlay/drawer.js.map +1 -0
  94. package/dist/{popover.d.ts → overlay/popover.d.ts} +1 -1
  95. package/dist/overlay/popover.js +2 -0
  96. package/dist/overlay/popover.js.map +1 -0
  97. package/dist/overlay/popup.js +2 -0
  98. package/dist/overlay/popup.js.map +1 -0
  99. package/dist/{tooltip.d.ts → overlay/tooltip.d.ts} +1 -1
  100. package/dist/overlay/tooltip.js +2 -0
  101. package/dist/overlay/tooltip.js.map +1 -0
  102. package/dist/pin-input.js +1 -1
  103. package/dist/pin-input.js.map +1 -1
  104. package/dist/{internal → presence}/conditional-presence.js.map +1 -1
  105. package/dist/{internal → presence}/presence.js.map +1 -1
  106. package/dist/progress.js +1 -1
  107. package/dist/progress.js.map +1 -1
  108. package/dist/quantity-field.js +1 -1
  109. package/dist/quantity-field.js.map +1 -1
  110. package/dist/radio-group.d.ts +1 -1
  111. package/dist/radio-group.js +1 -1
  112. package/dist/radio-group.js.map +1 -1
  113. package/dist/select.d.ts +1 -1
  114. package/dist/select.js +1 -1
  115. package/dist/select.js.map +1 -1
  116. package/dist/slider.js +1 -1
  117. package/dist/slider.js.map +1 -1
  118. package/dist/spin-button.js +1 -1
  119. package/dist/spin-button.js.map +1 -1
  120. package/dist/switch.js +1 -1
  121. package/dist/switch.js.map +1 -1
  122. package/dist/tabs.d.ts +1 -1
  123. package/dist/tabs.js +1 -1
  124. package/dist/{internal/tabular-components.d.ts → tabular/components.d.ts} +1 -1
  125. package/dist/{internal/tabular-components.js → tabular/components.js} +1 -1
  126. package/dist/tabular/components.js.map +1 -0
  127. package/dist/tabular/context.d.ts +16 -0
  128. package/dist/tabular/context.js +2 -0
  129. package/dist/tabular/context.js.map +1 -0
  130. package/dist/{internal/tabular-profile.d.ts → tabular/controller.d.ts} +2 -32
  131. package/dist/tabular/controller.js +2 -0
  132. package/dist/tabular/controller.js.map +1 -0
  133. package/dist/{data-grid.d.ts → tabular/data-grid.d.ts} +7 -5
  134. package/dist/tabular/data-grid.js +2 -0
  135. package/dist/tabular/data-grid.js.map +1 -0
  136. package/dist/{data-table.d.ts → tabular/data-table.d.ts} +9 -36
  137. package/dist/tabular/data-table.js +2 -0
  138. package/dist/tabular/data-table.js.map +1 -0
  139. package/dist/{data-tree-grid.d.ts → tabular/data-tree-grid.d.ts} +7 -5
  140. package/dist/tabular/data-tree-grid.js +2 -0
  141. package/dist/tabular/data-tree-grid.js.map +1 -0
  142. package/dist/{internal/tabular-parts.d.ts → tabular/parts.d.ts} +2 -1
  143. package/dist/tabular/parts.js +2 -0
  144. package/dist/tabular/parts.js.map +1 -0
  145. package/dist/tabular/schema.d.ts +35 -0
  146. package/dist/tabular/schema.js +2 -0
  147. package/dist/tabular/schema.js.map +1 -0
  148. package/dist/tabular/source.d.ts +20 -0
  149. package/dist/tabular/source.js +2 -0
  150. package/dist/tabular/source.js.map +1 -0
  151. package/dist/tags-input.js +1 -1
  152. package/dist/tags-input.js.map +1 -1
  153. package/dist/{calendar.d.ts → temporal/calendar.d.ts} +21 -21
  154. package/dist/temporal/calendar.js +2 -0
  155. package/dist/temporal/calendar.js.map +1 -0
  156. package/dist/temporal/capabilities/calendar.d.ts +1 -0
  157. package/dist/temporal/capabilities/calendar.js +2 -0
  158. package/dist/temporal/capabilities/calendar.js.map +1 -0
  159. package/dist/temporal/capabilities/date-picker.d.ts +1 -0
  160. package/dist/temporal/capabilities/date-picker.js +2 -0
  161. package/dist/temporal/capabilities/date-picker.js.map +1 -0
  162. package/dist/temporal/capabilities/date-range-picker.d.ts +1 -0
  163. package/dist/temporal/capabilities/date-range-picker.js +2 -0
  164. package/dist/temporal/capabilities/date-range-picker.js.map +1 -0
  165. package/dist/temporal/capabilities/date-time-picker.d.ts +1 -0
  166. package/dist/temporal/capabilities/date-time-picker.js +2 -0
  167. package/dist/temporal/capabilities/date-time-picker.js.map +1 -0
  168. package/dist/temporal/capabilities/date-time-range-picker.d.ts +1 -0
  169. package/dist/temporal/capabilities/date-time-range-picker.js +2 -0
  170. package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -0
  171. package/dist/temporal/capabilities/month-picker.d.ts +1 -0
  172. package/dist/temporal/capabilities/month-picker.js +2 -0
  173. package/dist/temporal/capabilities/month-picker.js.map +1 -0
  174. package/dist/temporal/capabilities/month-range-picker.d.ts +1 -0
  175. package/dist/temporal/capabilities/month-range-picker.js +2 -0
  176. package/dist/temporal/capabilities/month-range-picker.js.map +1 -0
  177. package/dist/temporal/capabilities/range-calendar.d.ts +1 -0
  178. package/dist/temporal/capabilities/range-calendar.js +2 -0
  179. package/dist/temporal/capabilities/range-calendar.js.map +1 -0
  180. package/dist/temporal/capabilities/year-picker.d.ts +1 -0
  181. package/dist/temporal/capabilities/year-picker.js +2 -0
  182. package/dist/temporal/capabilities/year-picker.js.map +1 -0
  183. package/dist/temporal/capabilities/year-range-picker.d.ts +1 -0
  184. package/dist/temporal/capabilities/year-range-picker.js +2 -0
  185. package/dist/temporal/capabilities/year-range-picker.js.map +1 -0
  186. package/dist/{internal/picker-capability.js → temporal/capability.js} +1 -1
  187. package/dist/temporal/capability.js.map +1 -0
  188. package/dist/{date-field.d.ts → temporal/date-field.d.ts} +1 -1
  189. package/dist/temporal/date-field.js +2 -0
  190. package/dist/temporal/date-field.js.map +1 -0
  191. package/dist/{date-picker.d.ts → temporal/date-picker.d.ts} +24 -24
  192. package/dist/temporal/date-picker.js +2 -0
  193. package/dist/temporal/date-picker.js.map +1 -0
  194. package/dist/{date-range-field.d.ts → temporal/date-range-field.d.ts} +1 -1
  195. package/dist/temporal/date-range-field.js +2 -0
  196. package/dist/temporal/date-range-field.js.map +1 -0
  197. package/dist/{date-range-picker.d.ts → temporal/date-range-picker.d.ts} +27 -27
  198. package/dist/temporal/date-range-picker.js +2 -0
  199. package/dist/temporal/date-range-picker.js.map +1 -0
  200. package/dist/{date-time-field.d.ts → temporal/date-time-field.d.ts} +1 -1
  201. package/dist/temporal/date-time-field.js +2 -0
  202. package/dist/temporal/date-time-field.js.map +1 -0
  203. package/dist/{date-time-picker.d.ts → temporal/date-time-picker.d.ts} +30 -30
  204. package/dist/temporal/date-time-picker.js +2 -0
  205. package/dist/temporal/date-time-picker.js.map +1 -0
  206. package/dist/{date-time-range-picker.d.ts → temporal/date-time-range-picker.d.ts} +39 -39
  207. package/dist/temporal/date-time-range-picker.js +2 -0
  208. package/dist/temporal/date-time-range-picker.js.map +1 -0
  209. package/dist/{month-picker.d.ts → temporal/month-picker.d.ts} +14 -14
  210. package/dist/temporal/month-picker.js +2 -0
  211. package/dist/temporal/month-picker.js.map +1 -0
  212. package/dist/{month-range-picker.d.ts → temporal/month-range-picker.d.ts} +17 -17
  213. package/dist/temporal/month-range-picker.js +2 -0
  214. package/dist/temporal/month-range-picker.js.map +1 -0
  215. package/dist/{internal/date-picker.d.ts → temporal/picker.d.ts} +1 -1
  216. package/dist/temporal/picker.js +2 -0
  217. package/dist/temporal/picker.js.map +1 -0
  218. package/dist/{range-calendar.d.ts → temporal/range-calendar.d.ts} +11 -11
  219. package/dist/temporal/range-calendar.js +2 -0
  220. package/dist/temporal/range-calendar.js.map +1 -0
  221. package/dist/temporal/temporal-provider.js.map +1 -0
  222. package/dist/{time-field.d.ts → temporal/time-field.d.ts} +1 -1
  223. package/dist/temporal/time-field.js +2 -0
  224. package/dist/temporal/time-field.js.map +1 -0
  225. package/dist/{time-range-field.d.ts → temporal/time-range-field.d.ts} +1 -1
  226. package/dist/temporal/time-range-field.js +2 -0
  227. package/dist/temporal/time-range-field.js.map +1 -0
  228. package/dist/{year-picker.d.ts → temporal/year-picker.d.ts} +16 -16
  229. package/dist/temporal/year-picker.js +2 -0
  230. package/dist/temporal/year-picker.js.map +1 -0
  231. package/dist/{year-range-picker.d.ts → temporal/year-range-picker.d.ts} +19 -19
  232. package/dist/temporal/year-range-picker.js +2 -0
  233. package/dist/temporal/year-range-picker.js.map +1 -0
  234. package/dist/text.js +1 -1
  235. package/dist/text.js.map +1 -1
  236. package/dist/toast.js +1 -1
  237. package/dist/toggle-group.js +1 -1
  238. package/dist/toggle-group.js.map +1 -1
  239. package/dist/tree-grid.d.ts +1 -1
  240. package/dist/tree-grid.js +1 -1
  241. package/dist/tree-grid.js.map +1 -1
  242. package/dist/tree-view.d.ts +1 -1
  243. package/dist/tree-view.js +1 -1
  244. package/dist/virtual/virtual-collection.js.map +1 -0
  245. package/dist/virtual/virtual-core.js.map +1 -0
  246. package/dist/{virtual-grid.d.ts → virtual/virtual-grid.d.ts} +1 -1
  247. package/dist/virtual/virtual-grid.js +2 -0
  248. package/dist/virtual/virtual-grid.js.map +1 -0
  249. package/dist/virtual/virtual-list.js.map +1 -0
  250. package/dist/{virtual-masonry.d.ts → virtual/virtual-masonry.d.ts} +1 -1
  251. package/dist/virtual/virtual-masonry.js +2 -0
  252. package/dist/virtual/virtual-masonry.js.map +1 -0
  253. package/dist/{virtual-spatial.d.ts → virtual/virtual-spatial.d.ts} +1 -1
  254. package/dist/virtual/virtual-spatial.js +2 -0
  255. package/dist/virtual/virtual-spatial.js.map +1 -0
  256. package/dist/virtual-core.d.ts +1 -1
  257. package/dist/virtual-core.js +1 -1
  258. package/dist/virtual-list.d.ts +2 -2
  259. package/dist/virtual-list.js +1 -1
  260. package/package.json +93 -93
  261. package/dist/alert-dialog.js +0 -2
  262. package/dist/alert-dialog.js.map +0 -1
  263. package/dist/calendar.js +0 -2
  264. package/dist/calendar.js.map +0 -1
  265. package/dist/data-grid.js +0 -2
  266. package/dist/data-grid.js.map +0 -1
  267. package/dist/data-table.js +0 -2
  268. package/dist/data-table.js.map +0 -1
  269. package/dist/data-tree-grid.js +0 -2
  270. package/dist/data-tree-grid.js.map +0 -1
  271. package/dist/date-field.js +0 -2
  272. package/dist/date-field.js.map +0 -1
  273. package/dist/date-picker.js +0 -2
  274. package/dist/date-picker.js.map +0 -1
  275. package/dist/date-range-field.js +0 -2
  276. package/dist/date-range-field.js.map +0 -1
  277. package/dist/date-range-picker.js +0 -2
  278. package/dist/date-range-picker.js.map +0 -1
  279. package/dist/date-time-field.js +0 -2
  280. package/dist/date-time-field.js.map +0 -1
  281. package/dist/date-time-picker.js +0 -2
  282. package/dist/date-time-picker.js.map +0 -1
  283. package/dist/date-time-range-picker.js +0 -2
  284. package/dist/date-time-range-picker.js.map +0 -1
  285. package/dist/dialog.js +0 -2
  286. package/dist/dialog.js.map +0 -1
  287. package/dist/drawer.js +0 -2
  288. package/dist/drawer.js.map +0 -1
  289. package/dist/internal/calendar-capability.d.ts +0 -1
  290. package/dist/internal/calendar-capability.js +0 -2
  291. package/dist/internal/calendar-capability.js.map +0 -1
  292. package/dist/internal/date-picker-capability.d.ts +0 -1
  293. package/dist/internal/date-picker-capability.js +0 -2
  294. package/dist/internal/date-picker-capability.js.map +0 -1
  295. package/dist/internal/date-picker.js +0 -2
  296. package/dist/internal/date-picker.js.map +0 -1
  297. package/dist/internal/date-range-picker-capability.d.ts +0 -1
  298. package/dist/internal/date-range-picker-capability.js +0 -2
  299. package/dist/internal/date-range-picker-capability.js.map +0 -1
  300. package/dist/internal/date-time-picker-capability.d.ts +0 -1
  301. package/dist/internal/date-time-picker-capability.js +0 -2
  302. package/dist/internal/date-time-picker-capability.js.map +0 -1
  303. package/dist/internal/date-time-range-picker-capability.d.ts +0 -1
  304. package/dist/internal/date-time-range-picker-capability.js +0 -2
  305. package/dist/internal/date-time-range-picker-capability.js.map +0 -1
  306. package/dist/internal/decimal-input.js.map +0 -1
  307. package/dist/internal/form-context.js.map +0 -1
  308. package/dist/internal/form-control-inventory.js.map +0 -1
  309. package/dist/internal/form-control.js.map +0 -1
  310. package/dist/internal/form-presence-parts.js +0 -2
  311. package/dist/internal/form-presence-parts.js.map +0 -1
  312. package/dist/internal/month-picker-capability.d.ts +0 -1
  313. package/dist/internal/month-picker-capability.js +0 -2
  314. package/dist/internal/month-picker-capability.js.map +0 -1
  315. package/dist/internal/month-range-picker-capability.d.ts +0 -1
  316. package/dist/internal/month-range-picker-capability.js +0 -2
  317. package/dist/internal/month-range-picker-capability.js.map +0 -1
  318. package/dist/internal/native-field.js +0 -2
  319. package/dist/internal/native-field.js.map +0 -1
  320. package/dist/internal/native-input.js.map +0 -1
  321. package/dist/internal/picker-capability.js.map +0 -1
  322. package/dist/internal/popup.js +0 -2
  323. package/dist/internal/popup.js.map +0 -1
  324. package/dist/internal/range-calendar-capability.d.ts +0 -1
  325. package/dist/internal/range-calendar-capability.js +0 -2
  326. package/dist/internal/range-calendar-capability.js.map +0 -1
  327. package/dist/internal/tabular-components.js.map +0 -1
  328. package/dist/internal/tabular-parts.js +0 -2
  329. package/dist/internal/tabular-parts.js.map +0 -1
  330. package/dist/internal/tabular-profile.js +0 -2
  331. package/dist/internal/tabular-profile.js.map +0 -1
  332. package/dist/internal/virtual-collection.js.map +0 -1
  333. package/dist/internal/virtual-core.js.map +0 -1
  334. package/dist/internal/virtual-list.js.map +0 -1
  335. package/dist/internal/year-picker-capability.d.ts +0 -1
  336. package/dist/internal/year-picker-capability.js +0 -2
  337. package/dist/internal/year-picker-capability.js.map +0 -1
  338. package/dist/internal/year-range-picker-capability.d.ts +0 -1
  339. package/dist/internal/year-range-picker-capability.js +0 -2
  340. package/dist/internal/year-range-picker-capability.js.map +0 -1
  341. package/dist/month-picker.js +0 -2
  342. package/dist/month-picker.js.map +0 -1
  343. package/dist/month-range-picker.js +0 -2
  344. package/dist/month-range-picker.js.map +0 -1
  345. package/dist/popover.js +0 -2
  346. package/dist/popover.js.map +0 -1
  347. package/dist/range-calendar.js +0 -2
  348. package/dist/range-calendar.js.map +0 -1
  349. package/dist/temporal-provider.js.map +0 -1
  350. package/dist/time-field.js +0 -2
  351. package/dist/time-field.js.map +0 -1
  352. package/dist/time-range-field.js +0 -2
  353. package/dist/time-range-field.js.map +0 -1
  354. package/dist/tooltip.js +0 -2
  355. package/dist/tooltip.js.map +0 -1
  356. package/dist/virtual-grid.js +0 -2
  357. package/dist/virtual-grid.js.map +0 -1
  358. package/dist/virtual-masonry.js +0 -2
  359. package/dist/virtual-masonry.js.map +0 -1
  360. package/dist/virtual-spatial.js +0 -2
  361. package/dist/virtual-spatial.js.map +0 -1
  362. package/dist/year-picker.js +0 -2
  363. package/dist/year-picker.js.map +0 -1
  364. package/dist/year-range-picker.js +0 -2
  365. package/dist/year-range-picker.js.map +0 -1
  366. /package/dist/{internal/form-control-inventory.d.ts → form/control-inventory.d.ts} +0 -0
  367. /package/dist/{internal/form-control.d.ts → form/control.d.ts} +0 -0
  368. /package/dist/{internal → input}/decimal-input.d.ts +0 -0
  369. /package/dist/{internal → input}/decimal-input.js +0 -0
  370. /package/dist/{internal → input}/native-field.d.ts +0 -0
  371. /package/dist/{internal → input}/native-input.d.ts +0 -0
  372. /package/dist/{internal → input}/native-input.js +0 -0
  373. /package/dist/{internal → overlay}/popup.d.ts +0 -0
  374. /package/dist/{internal → presence}/conditional-presence.d.ts +0 -0
  375. /package/dist/{internal → presence}/conditional-presence.js +0 -0
  376. /package/dist/{internal → presence}/presence.d.ts +0 -0
  377. /package/dist/{internal → presence}/presence.js +0 -0
  378. /package/dist/{internal/picker-capability.d.ts → temporal/capability.d.ts} +0 -0
  379. /package/dist/{temporal-provider.d.ts → temporal/temporal-provider.d.ts} +0 -0
  380. /package/dist/{temporal-provider.js → temporal/temporal-provider.js} +0 -0
  381. /package/dist/{internal → virtual}/virtual-collection.d.ts +0 -0
  382. /package/dist/{internal → virtual}/virtual-collection.js +0 -0
  383. /package/dist/{internal → virtual}/virtual-core.d.ts +0 -0
  384. /package/dist/{internal → virtual}/virtual-core.js +0 -0
  385. /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
  386. /package/dist/{internal → virtual}/virtual-list.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { DateRangePickerOptions } from '@sectile/dom/temporal/date-range-picker';
2
2
  import type { DateRange, DateValue } from '@sectile/dom/temporal/date-field';
3
- import { type PickerPartProps, type PickerPortalProps, type PickerPositionProps, type PickerRootSlotProps, type PickerYearCellSlotProps } from './internal/date-picker.js';
3
+ import { type PickerPartProps, type PickerPortalProps, type PickerPositionProps, type PickerRootSlotProps, type PickerYearCellSlotProps } from './picker.js';
4
4
  export interface YearRangePickerRootProps extends PickerPartProps, PickerPositionProps {
5
5
  readonly modelValue?: DateRange | null;
6
6
  readonly defaultValue?: DateRange | null;
@@ -16,13 +16,13 @@ export interface YearRangePickerRootProps extends PickerPartProps, PickerPositio
16
16
  readonly label?: string;
17
17
  readonly policies?: DateRangePickerOptions['policies'];
18
18
  }
19
- export declare const YearRangePickerRoot: import("./internal/date-picker.js").PickerRootComponent<"date-range">;
19
+ export declare const YearRangePickerRoot: import("./picker.js").PickerRootComponent<"date-range">;
20
20
  export type YearRangePickerRootSlotProps = PickerRootSlotProps<DateRange | null>;
21
21
  export type YearRangePickerValueChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:modelValue']>;
22
22
  export type YearRangePickerOpenChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:open']>;
23
23
  export type YearRangePickerHighlightedValueChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:highlightedValue']>;
24
- export declare const YearRangePickerTrigger: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
25
- export declare const YearRangePickerAnchor: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
24
+ export declare const YearRangePickerTrigger: import("./picker.js").PickerRootPartComponent<"date-range">;
25
+ export declare const YearRangePickerAnchor: import("./picker.js").PickerRootPartComponent<"date-range">;
26
26
  export declare const YearRangePickerPortal: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
27
27
  to: {
28
28
  type: import("vue").PropType<string | HTMLElement>;
@@ -54,15 +54,15 @@ export declare const YearRangePickerPortal: import("vue").DefineComponent<import
54
54
  disabled: boolean;
55
55
  defer: boolean;
56
56
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
57
- export declare const YearRangePickerContent: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
58
- export declare const YearRangePickerGrid: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
57
+ export declare const YearRangePickerContent: import("./picker.js").PickerRootPartComponent<"date-range">;
58
+ export declare const YearRangePickerGrid: import("./picker.js").PickerRootPartComponent<"date-range">;
59
59
  export declare const YearRangePickerCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
60
60
  value: {
61
- type: import("vue").PropType<import("./internal/date-picker.js").PickerYearValue>;
61
+ type: import("vue").PropType<import("./picker.js").PickerYearValue>;
62
62
  required: true;
63
63
  };
64
64
  as: {
65
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
65
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
66
66
  default: string;
67
67
  };
68
68
  asChild: {
@@ -71,11 +71,11 @@ export declare const YearRangePickerCell: import("vue").DefineComponent<import("
71
71
  };
72
72
  }>, () => import("vue").VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
73
73
  value: {
74
- type: import("vue").PropType<import("./internal/date-picker.js").PickerYearValue>;
74
+ type: import("vue").PropType<import("./picker.js").PickerYearValue>;
75
75
  required: true;
76
76
  };
77
77
  as: {
78
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
78
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
79
79
  default: string;
80
80
  };
81
81
  asChild: {
@@ -83,7 +83,7 @@ export declare const YearRangePickerCell: import("vue").DefineComponent<import("
83
83
  default: boolean;
84
84
  };
85
85
  }>> & Readonly<{}>, {
86
- as: import("./primitive.js").PrimitiveAs;
86
+ as: import("../primitive.js").PrimitiveAs;
87
87
  asChild: boolean;
88
88
  }, import("vue").SlotsType<{
89
89
  default: (props: PickerYearCellSlotProps) => import("vue").VNodeChild;
@@ -98,7 +98,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
98
98
  default: undefined;
99
99
  };
100
100
  as: {
101
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
101
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
102
102
  default: string;
103
103
  };
104
104
  asChild: {
@@ -115,7 +115,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
115
115
  default: undefined;
116
116
  };
117
117
  as: {
118
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
118
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
119
119
  default: string;
120
120
  };
121
121
  asChild: {
@@ -125,7 +125,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
125
125
  }>> & Readonly<{}>, {
126
126
  name: string;
127
127
  form: string;
128
- as: import("./primitive.js").PrimitiveAs;
128
+ as: import("../primitive.js").PrimitiveAs;
129
129
  asChild: boolean;
130
130
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
131
131
  export declare const YearRangePickerEndInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -138,7 +138,7 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
138
138
  default: undefined;
139
139
  };
140
140
  as: {
141
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
141
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
142
142
  default: string;
143
143
  };
144
144
  asChild: {
@@ -155,7 +155,7 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
155
155
  default: undefined;
156
156
  };
157
157
  as: {
158
- type: import("vue").PropType<import("./primitive.js").PrimitiveAs>;
158
+ type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
159
159
  default: string;
160
160
  };
161
161
  asChild: {
@@ -165,11 +165,11 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
165
165
  }>> & Readonly<{}>, {
166
166
  name: string;
167
167
  form: string;
168
- as: import("./primitive.js").PrimitiveAs;
168
+ as: import("../primitive.js").PrimitiveAs;
169
169
  asChild: boolean;
170
170
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
171
- export declare const YearRangePickerPreviousPage: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
172
- export declare const YearRangePickerNextPage: import("./internal/date-picker.js").PickerRootPartComponent<"date-range">;
171
+ export declare const YearRangePickerPreviousPage: import("./picker.js").PickerRootPartComponent<"date-range">;
172
+ export declare const YearRangePickerNextPage: import("./picker.js").PickerRootPartComponent<"date-range">;
173
173
  export type { YearRangePickerValue } from '@sectile/temporal/year-range-picker';
174
174
  export type { YearPickerValue } from '@sectile/temporal/year-picker';
175
175
  export type { PickerPartProps as YearRangePickerPartProps, PickerPortalProps as YearRangePickerPortalProps, PickerYearCellSlotProps as YearRangePickerCellSlotProps, };
@@ -0,0 +1,2 @@
1
+ import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,specializePickerRootPart,createPickerRoot}from'./picker.js';import{yearRangePickerCapability}from'./capabilities/year-range-picker.js';export const YearRangePickerRoot=createPickerRoot(yearRangePickerCapability,'SectileYearRangePickerRoot',{scope:'year-range-picker',granularity:'year',defaultView:'year'});export const YearRangePickerTrigger=specializePickerRootPart('date-range',PickerTrigger);export const YearRangePickerAnchor=specializePickerRootPart('date-range',PickerAnchor);export const YearRangePickerPortal=PickerPortal;export const YearRangePickerContent=/* @__PURE__ */specializePickerRootPart('date-range',PickerContent);export const YearRangePickerGrid=specializePickerRootPart('date-range',PickerGrid);export const YearRangePickerCell=createPickerYearCell('cell','SectileYearRangePickerCell');export const YearRangePickerStartInput=createPickerInput('start-input','SectileYearRangePickerStartInput');export const YearRangePickerEndInput=createPickerInput('end-input','SectileYearRangePickerEndInput');export const YearRangePickerPreviousPage=specializePickerRootPart('date-range',createPickerMove('year',-1,'SectileYearRangePickerPreviousPage','previous-page'));export const YearRangePickerNextPage=specializePickerRootPart('date-range',createPickerMove('year',1,'SectileYearRangePickerNextPage','next-page'));
2
+ //# sourceMappingURL=year-range-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"year-range-picker.js","names":["PickerAnchor","PickerContent","PickerGrid","PickerPortal","PickerTrigger","createPickerInput","createPickerMove","createPickerYearCell","specializePickerRootPart","createPickerRoot","yearRangePickerCapability","YearRangePickerRoot","scope","granularity","defaultView","YearRangePickerTrigger","YearRangePickerAnchor","YearRangePickerPortal","YearRangePickerContent","YearRangePickerGrid","YearRangePickerCell","YearRangePickerStartInput","YearRangePickerEndInput","YearRangePickerPreviousPage","YearRangePickerNextPage"],"sources":["../../src/temporal/year-range-picker.ts"],"mappings":"OAGEA,aAAcC,cAAeC,WAAYC,aAAcC,cAAeC,kBAAmBC,iBAAkBC,qBAAsBC,yBACjIC,qBACK,qBACEC,8BAAiC,6CAiBnC,MAAMC,oBAAsBF,iBAAiBC,0BAA2B,6BAA8B,CAAEE,MAAO,oBAAqBC,YAAa,OAAQC,YAAa,gBAKtK,MAAMC,uBAAyBP,yBAAyB,aAAcJ,sBACtE,MAAMY,sBAAwBR,yBAAyB,aAAcR,qBACrE,MAAMiB,sBAAwBd,oBAC9B,MAAMe,sCAAyCV,yBAAyB,aAAcP,sBACtF,MAAMkB,oBAAsBX,yBAAyB,aAAcN,mBACnE,MAAMkB,oBAAsBb,qBAAqB,OAAQ,qCACzD,MAAMc,0BAA4BhB,kBAAkB,cAAe,2CACnE,MAAMiB,wBAA0BjB,kBAAkB,YAAa,yCAC/D,MAAMkB,4BAA8Bf,yBAAyB,aAAcF,iBAAiB,QAAS,EAAG,qCAAsC,yBAC9I,MAAMkB,wBAA0BhB,yBAAyB,aAAcF,iBAAiB,OAAQ,EAAG,iCAAkC","ignoreList":[]}
package/dist/text.js CHANGED
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{const wasComposing=proposedState!==null&&proposedState.composition!==null;proposedState=change.value;if(change.value.composition!==null)return;if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value)}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render()};function settleControlledProposal(proposal){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:createTextState(text);if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],()=>{const state=controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)});const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
1
+ import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{const wasComposing=proposedState!==null&&proposedState.composition!==null;proposedState=change.value;if(change.value.composition!==null)return;if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value)}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}const state=proposedState??controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;requestReconnect()},0)};function settleControlledProposal(proposal){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:createTextState(text);if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],requestReconnect);const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
2
2
  //# sourceMappingURL=text.js.map
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
1
+ {"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
package/dist/toast.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createToast,createToastState}from"@sectile/dom/toast";import{Primitive}from"./primitive.js";import{useHostPortalTarget}from"./host-provider.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileToastProvider");const ToastProvider=defineComponent({name:"SectileToastProvider",inheritAttrs:false,props:{toasts:{type:Array,default:void 0},initialToasts:{type:Array,default:()=>[]},defaultDurationMs:{type:Number,default:5e3},maxVisible:{type:Number,default:3},closeLabel:{type:String,default:"Dismiss notification"},hotkey:{type:[Array,Boolean],default:()=>["F8"]},pauseOnWindowBlur:{type:Boolean,default:true},dismissOnEscape:{type:Boolean,default:true},swipeDirection:{type:String,default:"right"},swipeThreshold:{type:Number,default:50}},emits:{"update:toasts":_items=>true},slots:Object,setup(props,{emit,slots}){const connection=shallowRef();const pending=[];const controlled=useControlledStateInvariant("ToastProvider","toasts",()=>props.toasts);const initialState=createToastState(props.toasts??props.initialToasts,false,{defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible});const state=shallowRef(initialState);const activeIDs=shallowRef(new Set(initialState.items.map(item=>item.id)));const closeLabel=computed(()=>props.closeLabel);const swipeDirection=computed(()=>props.swipeDirection);let activeItems=[...initialState.items];let viewport;const exiting=new Map;const finishExit=id=>{if(activeIDs.value.has(id)||!exiting.delete(id))return;state.value={...state.value,items:Object.freeze(state.value.items.filter(item=>item.id!==id))}};const refresh=()=>{const next=connection.value?.getSnapshot().state;if(next===void 0)return;const nextIDs=new Set(next.items.map(item=>item.id));for(const item of activeItems)if(!nextIDs.has(item.id))exiting.set(item.id,item);for(const item of next.items)exiting.delete(item.id);activeItems=[...next.items];activeIDs.value=nextIDs;const ordered=[];let activeIndex=0;for(const previous of state.value.items){const exitingItem=exiting.get(previous.id);if(exitingItem!==void 0){ordered.push(exitingItem);continue}if(!nextIDs.has(previous.id))continue;const active=next.items[activeIndex];if(active!==void 0){ordered.push(active);activeIndex+=1}}for(;activeIndex<next.items.length;activeIndex+=1)ordered.push(next.items[activeIndex]);state.value={items:Object.freeze(ordered),paused:next.paused}};const connect=(root,label)=>{viewport={root,label};connection.value?.disconnect();connection.value=createToast({root,...controlled?{items:props.toasts}:{initialToasts:activeItems.map(toInput)},label,closeLabel:props.closeLabel,defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible,hotkey:props.hotkey,pauseOnWindowBlur:props.pauseOnWindowBlur,dismissOnEscape:props.dismissOnEscape,swipeDirection:props.swipeDirection,swipeThreshold:props.swipeThreshold,manageVisibility:false,onItemsChange:items=>{emit("update:toasts",items.map(toInput))},onUpdate:refresh});for(const send2 of pending.splice(0))send2(connection.value);root.querySelectorAll("[data-sectile-toast-item]").forEach(node=>{const id=node.dataset["sectileToastItem"];if(id!==void 0)connection.value?.setToastAttributes(node,id)});root.querySelectorAll("[data-sectile-toast-close]").forEach(node=>{const id=node.dataset["sectileToastClose"];if(id!==void 0)connection.value?.setCloseButtonAttributes(node,id)});refresh()};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0;viewport=void 0;exiting.clear();state.value={...state.value,items:Object.freeze([...activeItems])}};const send=event=>{const target=connection.value;if(target===void 0)pending.push(event);else event(target);refresh()};const context={state,activeIDs,connection,closeLabel,swipeDirection,connect,disconnect,push:input=>send(target=>{target.push(input)}),update:(id,toast)=>send(target=>{target.updateToast(id,toast)}),dismiss:id=>send(target=>{target.dismiss(id)}),dismissAll:()=>send(target=>{target.dismissAll()}),finishExit,registerItem:(element,id)=>connection.value?.setToastAttributes(element,id),registerClose:(element,id)=>connection.value?.setCloseButtonAttributes(element,id)};provide(key,context);watch(()=>props.toasts,items=>{if(!controlled||items===void 0||connection.value===void 0)return;const result=connection.value.syncItems(items);if(!result.ok)throw new TypeError(result.error.message);refresh()});watch([()=>props.closeLabel,()=>props.hotkey,()=>props.pauseOnWindowBlur,()=>props.dismissOnEscape,()=>props.swipeDirection,()=>props.swipeThreshold,()=>props.defaultDurationMs,()=>props.maxVisible],()=>{if(viewport!==void 0)connect(viewport.root,viewport.label)});onBeforeUnmount(()=>{disconnect();pending.length=0;exiting.clear()});return()=>h(Fragment,null,slots["default"]?.({toasts:state.value.items,paused:state.value.paused,toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})??[])}});function useToast(){const context=useProvider("useToast");return Object.freeze({toasts:computed(()=>context.state.value.items),paused:computed(()=>context.state.value.paused),toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})}const ToastPortal=defineComponent({name:"SectileToastPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useProvider("ToastPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});const ToastViewport=defineComponent({name:"SectileToastViewport",inheritAttrs:false,props:{label:{type:String,default:"Notifications"},as:{type:[String,Object,Function],default:"ol"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useProvider("ToastViewport");const element=shallowRef();let mounted=false;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next)return;element.value=next;if(!mounted)return;if(next===void 0)root.disconnect();else root.connect(next,props.label)};onMounted(()=>{mounted=true;if(element.value!==void 0)root.connect(element.value,props.label)});onBeforeUnmount(()=>{mounted=false;root.disconnect();element.value=void 0});watch(()=>props.label,label=>{if(element.value!==void 0)root.connect(element.value,label)});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,tabindex:-1,role:"region","aria-label":props.label,"aria-live":"polite","data-scope":"toast","data-part":"viewport","data-paused":String(root.state.value.paused)}),slots)}});const toastRootKey=Symbol("SectileToastRoot");const ToastRoot=defineComponent({name:"SectileToastRoot",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"li"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const provider=useProvider("ToastRoot");const id=computed(()=>props.value);const item=computed(()=>provider.state.value.items.find(candidate=>candidate.id===id.value)??null);const open=computed(()=>provider.activeIDs.value.has(id.value));const element=shallowRef();const present=usePresence(open,element);let registeredID;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next&&registeredID===(next===void 0?void 0:id.value))return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:id.value;if(next!==void 0)provider.registerItem(next,id.value)};watch(id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=next;provider.registerItem(element.value,next)});watch([open,present],([active,rendered])=>{if(!active&&!rendered)provider.finishExit(id.value)},{flush:"post"});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=void 0;element.value=void 0});provide(toastRootKey,{id,item});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,hidden:!present.value,...exiting?{inert:true,"aria-hidden":"true"}:{},role:item.value?.kind==="error"?"alert":"status","data-sectile-toast-item":id.value,"data-scope":"toast","data-part":"root","data-state":open.value?"open":"closed","data-swipe-direction":provider.swipeDirection.value,"data-kind":item.value?.kind}),{default:()=>slots["default"]?.({toast:item.value,open:open.value})})}}});const ToastTitle=toastTextPart("SectileToastTitle","title");const ToastDescription=toastTextPart("SectileToastDescription","description");const ToastClose=defineComponent({name:"SectileToastClose",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const provider=useProvider("ToastClose");const root=useToastRoot("ToastClose");const element=shallowRef();let registeredID;const register=candidate=>{const next=candidate instanceof HTMLButtonElement?candidate:void 0;if(element.value===next&&registeredID===(next===void 0?void 0:root.id.value))return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:root.id.value;if(next!==void 0)provider.registerClose(next,root.id.value)};watch(root.id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=next;provider.registerClose(element.value,next)});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=void 0;element.value=void 0});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,type:props.as==="button"?"button":void 0,"aria-label":provider.closeLabel.value,"data-sectile-toast-close":root.id.value,"data-scope":"toast","data-part":"close"}),slots)}});function toastTextPart(name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:part==="title"?"h2":"p"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useToastRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"toast","data-part":part}),{default:()=>slots["default"]?.()??(part==="title"?root.item.value?.title:root.item.value?.description)})}})}function useProvider(part){const context=inject(key);if(context===void 0)throw new TypeError(`${part} must be used inside ToastProvider.`);return context}function useToastRoot(part){const context=inject(toastRootKey);if(context===void 0)throw new TypeError(`${part} must be used inside ToastRoot.`);return context}function toInput(item){return Object.freeze({id:item.id,title:item.title,...item.description===null?{}:{description:item.description},kind:item.kind,durationMs:item.durationMs})}export{ToastClose,ToastDescription,ToastPortal,ToastProvider,ToastRoot,ToastTitle,ToastViewport,useToast};
1
+ import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createToast,createToastState}from"@sectile/dom/toast";import{Primitive}from"./primitive.js";import{useHostPortalTarget}from"./host-provider.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./presence/presence.js";const key=Symbol("SectileToastProvider");const ToastProvider=defineComponent({name:"SectileToastProvider",inheritAttrs:false,props:{toasts:{type:Array,default:void 0},initialToasts:{type:Array,default:()=>[]},defaultDurationMs:{type:Number,default:5e3},maxVisible:{type:Number,default:3},closeLabel:{type:String,default:"Dismiss notification"},hotkey:{type:[Array,Boolean],default:()=>["F8"]},pauseOnWindowBlur:{type:Boolean,default:true},dismissOnEscape:{type:Boolean,default:true},swipeDirection:{type:String,default:"right"},swipeThreshold:{type:Number,default:50}},emits:{"update:toasts":_items=>true},slots:Object,setup(props,{emit,slots}){const connection=shallowRef();const pending=[];const controlled=useControlledStateInvariant("ToastProvider","toasts",()=>props.toasts);const initialState=createToastState(props.toasts??props.initialToasts,false,{defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible});const state=shallowRef(initialState);const activeIDs=shallowRef(new Set(initialState.items.map(item=>item.id)));const closeLabel=computed(()=>props.closeLabel);const swipeDirection=computed(()=>props.swipeDirection);let activeItems=[...initialState.items];let viewport;const exiting=new Map;const finishExit=id=>{if(activeIDs.value.has(id)||!exiting.delete(id))return;state.value={...state.value,items:Object.freeze(state.value.items.filter(item=>item.id!==id))}};const refresh=()=>{const next=connection.value?.getSnapshot().state;if(next===void 0)return;const nextIDs=new Set(next.items.map(item=>item.id));for(const item of activeItems)if(!nextIDs.has(item.id))exiting.set(item.id,item);for(const item of next.items)exiting.delete(item.id);activeItems=[...next.items];activeIDs.value=nextIDs;const ordered=[];let activeIndex=0;for(const previous of state.value.items){const exitingItem=exiting.get(previous.id);if(exitingItem!==void 0){ordered.push(exitingItem);continue}if(!nextIDs.has(previous.id))continue;const active=next.items[activeIndex];if(active!==void 0){ordered.push(active);activeIndex+=1}}for(;activeIndex<next.items.length;activeIndex+=1)ordered.push(next.items[activeIndex]);state.value={items:Object.freeze(ordered),paused:next.paused}};const connect=(root,label)=>{viewport={root,label};connection.value?.disconnect();connection.value=createToast({root,...controlled?{items:props.toasts}:{initialToasts:activeItems.map(toInput)},label,closeLabel:props.closeLabel,defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible,hotkey:props.hotkey,pauseOnWindowBlur:props.pauseOnWindowBlur,dismissOnEscape:props.dismissOnEscape,swipeDirection:props.swipeDirection,swipeThreshold:props.swipeThreshold,manageVisibility:false,onItemsChange:items=>{emit("update:toasts",items.map(toInput))},onUpdate:refresh});for(const send2 of pending.splice(0))send2(connection.value);root.querySelectorAll("[data-sectile-toast-item]").forEach(node=>{const id=node.dataset["sectileToastItem"];if(id!==void 0)connection.value?.setToastAttributes(node,id)});root.querySelectorAll("[data-sectile-toast-close]").forEach(node=>{const id=node.dataset["sectileToastClose"];if(id!==void 0)connection.value?.setCloseButtonAttributes(node,id)});refresh()};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0;viewport=void 0;exiting.clear();state.value={...state.value,items:Object.freeze([...activeItems])}};const send=event=>{const target=connection.value;if(target===void 0)pending.push(event);else event(target);refresh()};const context={state,activeIDs,connection,closeLabel,swipeDirection,connect,disconnect,push:input=>send(target=>{target.push(input)}),update:(id,toast)=>send(target=>{target.updateToast(id,toast)}),dismiss:id=>send(target=>{target.dismiss(id)}),dismissAll:()=>send(target=>{target.dismissAll()}),finishExit,registerItem:(element,id)=>connection.value?.setToastAttributes(element,id),registerClose:(element,id)=>connection.value?.setCloseButtonAttributes(element,id)};provide(key,context);watch(()=>props.toasts,items=>{if(!controlled||items===void 0||connection.value===void 0)return;const result=connection.value.syncItems(items);if(!result.ok)throw new TypeError(result.error.message);refresh()});watch([()=>props.closeLabel,()=>props.hotkey,()=>props.pauseOnWindowBlur,()=>props.dismissOnEscape,()=>props.swipeDirection,()=>props.swipeThreshold,()=>props.defaultDurationMs,()=>props.maxVisible],()=>{if(viewport!==void 0)connect(viewport.root,viewport.label)});onBeforeUnmount(()=>{disconnect();pending.length=0;exiting.clear()});return()=>h(Fragment,null,slots["default"]?.({toasts:state.value.items,paused:state.value.paused,toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})??[])}});function useToast(){const context=useProvider("useToast");return Object.freeze({toasts:computed(()=>context.state.value.items),paused:computed(()=>context.state.value.paused),toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})}const ToastPortal=defineComponent({name:"SectileToastPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useProvider("ToastPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});const ToastViewport=defineComponent({name:"SectileToastViewport",inheritAttrs:false,props:{label:{type:String,default:"Notifications"},as:{type:[String,Object,Function],default:"ol"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useProvider("ToastViewport");const element=shallowRef();let mounted=false;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next)return;element.value=next;if(!mounted)return;if(next===void 0)root.disconnect();else root.connect(next,props.label)};onMounted(()=>{mounted=true;if(element.value!==void 0)root.connect(element.value,props.label)});onBeforeUnmount(()=>{mounted=false;root.disconnect();element.value=void 0});watch(()=>props.label,label=>{if(element.value!==void 0)root.connect(element.value,label)});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,tabindex:-1,role:"region","aria-label":props.label,"aria-live":"polite","data-scope":"toast","data-part":"viewport","data-paused":String(root.state.value.paused)}),slots)}});const toastRootKey=Symbol("SectileToastRoot");const ToastRoot=defineComponent({name:"SectileToastRoot",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"li"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const provider=useProvider("ToastRoot");const id=computed(()=>props.value);const item=computed(()=>provider.state.value.items.find(candidate=>candidate.id===id.value)??null);const open=computed(()=>provider.activeIDs.value.has(id.value));const element=shallowRef();const present=usePresence(open,element);let registeredID;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next&&registeredID===(next===void 0?void 0:id.value))return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:id.value;if(next!==void 0)provider.registerItem(next,id.value)};watch(id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=next;provider.registerItem(element.value,next)});watch([open,present],([active,rendered])=>{if(!active&&!rendered)provider.finishExit(id.value)},{flush:"post"});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=void 0;element.value=void 0});provide(toastRootKey,{id,item});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,hidden:!present.value,...exiting?{inert:true,"aria-hidden":"true"}:{},role:item.value?.kind==="error"?"alert":"status","data-sectile-toast-item":id.value,"data-scope":"toast","data-part":"root","data-state":open.value?"open":"closed","data-swipe-direction":provider.swipeDirection.value,"data-kind":item.value?.kind}),{default:()=>slots["default"]?.({toast:item.value,open:open.value})})}}});const ToastTitle=toastTextPart("SectileToastTitle","title");const ToastDescription=toastTextPart("SectileToastDescription","description");const ToastClose=defineComponent({name:"SectileToastClose",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const provider=useProvider("ToastClose");const root=useToastRoot("ToastClose");const element=shallowRef();let registeredID;const register=candidate=>{const next=candidate instanceof HTMLButtonElement?candidate:void 0;if(element.value===next&&registeredID===(next===void 0?void 0:root.id.value))return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:root.id.value;if(next!==void 0)provider.registerClose(next,root.id.value)};watch(root.id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=next;provider.registerClose(element.value,next)});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=void 0;element.value=void 0});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,type:props.as==="button"?"button":void 0,"aria-label":provider.closeLabel.value,"data-sectile-toast-close":root.id.value,"data-scope":"toast","data-part":"close"}),slots)}});function toastTextPart(name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:part==="title"?"h2":"p"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useToastRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"toast","data-part":part}),{default:()=>slots["default"]?.()??(part==="title"?root.item.value?.title:root.item.value?.description)})}})}function useProvider(part){const context=inject(key);if(context===void 0)throw new TypeError(`${part} must be used inside ToastProvider.`);return context}function useToastRoot(part){const context=inject(toastRootKey);if(context===void 0)throw new TypeError(`${part} must be used inside ToastRoot.`);return context}function toInput(item){return Object.freeze({id:item.id,title:item.title,...item.description===null?{}:{description:item.description},kind:item.kind,durationMs:item.durationMs})}export{ToastClose,ToastDescription,ToastPortal,ToastProvider,ToastRoot,ToastTitle,ToastViewport,useToast};
2
2
  //# sourceMappingURL=toast.js.map
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getToggleGroupItemAttributes,getToggleGroupRootAttributes}from"@sectile/dom/toggle-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileToggleGroupRoot");const ToggleGroupRoot=defineComponent({name:"SectileToggleGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},multiple:{type:Boolean,default:false},deselectable:{type:Boolean,default:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const submissionElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("ToggleGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2[0]??null)=>{const result=createListboxControllerFromItems({items:props.items,selectionMode:props.multiple?"multiple":"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,activationMode:"toggle",clearOnEscape:false,policies:{deselectable:props.deselectable,boundary:"wrap"},...controlled?{value:value2}:{defaultValue:value2},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(props.modelValue??props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.multiple?"multiple":"single");controller.value=makeController(reconciled.selected,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected))emit("update:modelValue",reconciled.selected)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.multiple,()=>props.deselectable,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected);const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};provide(rootKey,{value,highlighted,disabled,readonly,disabledItems,press:(id,target)=>apply(controller.value.handleEvent({type:"toggle",id}),target.closest('[data-scope="toggle-group"][data-part="root"]'))});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,getToggleGroupRootAttributes({orientation:props.orientation,direction:direction.value,...props.label===void 0?{}:{label:props.label},disabled:props.disabled,readOnly:props.readonly}),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},onKeydown:event=>{if(apply(controller.value.handleKeyboardInput(event),event.currentTarget))event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return root;return[root,...value.value.map((selected,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value:selected,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const ToggleGroupItem=defineComponent({name:"SectileToggleGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot();const state=computed(()=>({value:props.value,pressed:root.value.value.includes(props.value),highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value),readonly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,getToggleGroupItemAttributes({id:props.value,pressed:state.value.pressed,highlighted:state.value.highlighted,disabled:state.value.disabled}),{as:props.as,asChild:props.asChild,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled&&!state.value.readonly)root.press(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(){const root=inject(rootKey);if(root===void 0)throw new TypeError("ToggleGroupItem must be used inside ToggleGroupRoot.");return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-toggle-group-id]"))if(item.dataset["toggleGroupId"]===id)item.focus()}export{ToggleGroupItem,ToggleGroupRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getToggleGroupItemAttributes,getToggleGroupRootAttributes}from"@sectile/dom/toggle-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileToggleGroupRoot");const ToggleGroupRoot=defineComponent({name:"SectileToggleGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},multiple:{type:Boolean,default:false},deselectable:{type:Boolean,default:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const submissionElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("ToggleGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2[0]??null)=>{const result=createListboxControllerFromItems({items:props.items,selectionMode:props.multiple?"multiple":"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,activationMode:"toggle",clearOnEscape:false,policies:{deselectable:props.deselectable,boundary:"wrap"},...controlled?{value:value2}:{defaultValue:value2},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(props.modelValue??props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.multiple?"multiple":"single");controller.value=makeController(reconciled.selected,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected))emit("update:modelValue",reconciled.selected)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.multiple,()=>props.deselectable,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected);const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};provide(rootKey,{value,highlighted,disabled,readonly,disabledItems,press:(id,target)=>apply(controller.value.handleEvent({type:"toggle",id}),target.closest('[data-scope="toggle-group"][data-part="root"]'))});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,getToggleGroupRootAttributes({orientation:props.orientation,direction:direction.value,...props.label===void 0?{}:{label:props.label},disabled:props.disabled,readOnly:props.readonly}),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},onKeydown:event=>{if(apply(controller.value.handleKeyboardInput(event),event.currentTarget))event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return root;return[root,...value.value.map((selected,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value:selected,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const ToggleGroupItem=defineComponent({name:"SectileToggleGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot();const state=computed(()=>({value:props.value,pressed:root.value.value.includes(props.value),highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value),readonly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,getToggleGroupItemAttributes({id:props.value,pressed:state.value.pressed,highlighted:state.value.highlighted,disabled:state.value.disabled}),{as:props.as,asChild:props.asChild,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled&&!state.value.readonly)root.press(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(){const root=inject(rootKey);if(root===void 0)throw new TypeError("ToggleGroupItem must be used inside ToggleGroupRoot.");return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-toggle-group-id]"))if(item.dataset["toggleGroupId"]===id)item.focus()}export{ToggleGroupItem,ToggleGroupRoot};
2
2
  //# sourceMappingURL=toggle-group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle-group.ts"],"mappings":"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","names":["value"],"file":"toggle-group.js"}
1
+ {"version":3,"sources":["../src/toggle-group.ts"],"mappings":"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","names":["value"],"file":"toggle-group.js"}
@@ -1,7 +1,7 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type TreeGridEditMode, type TreeGridPolicies, type TreeGridRowInput } from '@sectile/dom/tree-grid';
3
3
  import { type PrimitiveAs } from './primitive.js';
4
- import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
4
+ import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
5
5
  export interface TreeGridRootProps {
6
6
  readonly rows: readonly TreeGridRowInput<string, string>[];
7
7
  readonly getCellValue: (id: string) => string;
package/dist/tree-grid.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length,maxTreeGridColumnCount(props.rows));element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1),level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:nextOwner.getCellValue,setCellValue:nextOwner.setCellValue,...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};provide(key,{state,expandedRows,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:node=>{const element=presence.register(node);if(element?.tagName==="INPUT")root.registerEditor(element,props.for,props.label)},hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),getCellValue:props.getCellValue,setCellValue:props.setCellValue,disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.getCellValue!==right.getCellValue||left.setCellValue!==right.setCellValue||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length,maxTreeGridColumnCount(props.rows));element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1),level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:id=>props.getCellValue(id),setCellValue:(id,value2)=>props.setCellValue(id,value2),...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};let mounted=false;let editorFocused=false;let editorComposing=false;let reconnectPending=false;let reconnectTimer=null;const editorActive=()=>editorFocused||editorComposing;const requestConnect=()=>{if(editorActive()){reconnectPending=true;return}connect()};const schedulePendingConnect=()=>{if(editorActive()||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||editorActive())return;reconnectPending=false;connect()},0)};const setEditorFocused=focused=>{editorFocused=focused;schedulePendingConnect()};const setEditorComposing=composing=>{editorComposing=composing;schedulePendingConnect()};provide(key,{state,expandedRows,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),setEditorFocused,setEditorComposing,handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;editorFocused=false;editorComposing=false;connection.value?.disconnect()});watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],requestConnect);watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:node=>{const element=presence.register(node);if(element?.tagName==="INPUT")root.registerEditor(element,props.for,props.label)},hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,onFocus:()=>root.setEditorFocused(true),onBlur:()=>root.setEditorFocused(false),onCompositionstart:()=>root.setEditorComposing(true),onCompositionend:()=>root.setEditorComposing(false),...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow};
2
2
  //# sourceMappingURL=tree-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
1
+ {"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
@@ -1,7 +1,7 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type TreeNodeInput, type TreeViewSelectionMode } from '@sectile/dom/tree-view';
3
3
  import { type PrimitiveAs } from './primitive.js';
4
- import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
4
+ import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
5
5
  export interface TreeViewRootProps {
6
6
  readonly nodes: readonly TreeNodeInput<string>[];
7
7
  readonly selectionMode?: TreeViewSelectionMode;
package/dist/tree-view.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeView}from"@sectile/dom/tree-view";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const key=Symbol("SectileTreeViewRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeViewRoot=defineComponent({name:"SectileTreeViewRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},selectionMode:{type:String,default:"single"},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},expandedValues:{type:Array,default:void 0},defaultExpandedValues:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValues":_value=>true,"update:highlightedValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValues!==void 0?props.expandedValues:props.defaultExpandedValues);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const controlled={value:useControlledStateInvariant("TreeViewRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeViewRoot","expandedValues",()=>props.expandedValues),highlighted:useControlledStateInvariant("TreeViewRoot","highlightedValue",()=>props.highlightedValue)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValues:props.expandedValues!==void 0?props.expandedValues:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-tree-view-item]").forEach(node=>{const id=node.dataset["sectileTreeViewItem"];if(id!==void 0)connection.value?.setItemAttributes(node,{id,disabled:node.dataset["disabled"]!==void 0})});element.value.querySelectorAll("[data-sectile-tree-view-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeViewDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeViewConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeViewConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.nodes.map(node=>node.id);const branches=collectionBranchIDs(nextOwner.nodes);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValues:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue,requestedHighlight,nextOwner.disabledItems,nextOwner.selectionMode,{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;localValue.value=reconciled.selected;localExpanded.value=expanded;localHighlight.value=reconciled.current;if(controlled.value&&!sameIDs(requestedValue,reconciled.selected))emit("update:modelValue",reconciled.selected);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValues",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);connection.value=createTreeView({root:element.value,nodes:nextOwner.nodes,selectionMode:nextOwner.selectionMode,...controlled.value?{value:reconciled.selected}:{defaultValue:reconciled.selected},...controlled.expanded?{expandedValues:expanded}:{defaultExpandedValues:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value})=>{localValue.value=value;emit("update:modelValue",value)},onExpandedValuesChange:({value})=>{localExpanded.value=value;emit("update:expandedValues",value)},onHighlightedValueChange:({value})=>{localHighlight.value=value;emit("update:highlightedValue",value)},onUpdate:refresh});connectionOwner=nextOwner;connection.value.setTreeAttributes(nextOwner.label);refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));const selectedItems=computed(()=>new Set(state.value.value));const expandedItems=computed(()=>new Set(state.value.expandedValues));provide(key,{state,selectedItems,expandedItems,disabledItems,registerItem:(node,id,disabled)=>connection.value?.setItemAttributes(node,{id,disabled}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValues,()=>props.highlightedValue],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValues:props.expandedValues}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-view","data-part":"root"}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewGroup=defineComponent({name:"SectileTreeViewGroup",inheritAttrs:false,props:{for:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewGroup");const expanded=computed(()=>root.expandedItems.value.has(props.for));const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(expanded,forcePresent);return()=>{const inactivePresent=!expanded.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,role:"group",hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"tree-view","data-part":"group","data-state":expanded.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const TreeViewItem=defineComponent({name:"SectileTreeViewItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewItem");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.value,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.value),expanded:root.expandedItems.value.has(props.value),highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,props.disabled)},"data-sectile-tree-view-item":props.value,"data-scope":"tree-view","data-part":"item","data-selected":state.value.selected?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewDisclosure=defineComponent({name:"SectileTreeViewDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewDisclosure");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.for,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.for),expanded:root.expandedItems.value.has(props.for),highlighted:root.state.value.highlightedValue===props.for,disabled:root.state.value.disabled||root.disabledItems.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-view-disclosure":props.for,"data-scope":"tree-view","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeViewRoot.`);return root}function snapshotTreeViewConnectionOwner(props){return Object.freeze({nodes:Object.freeze(props.nodes.map(node=>Object.freeze({id:node.id,parentID:node.parentID}))),selectionMode:props.selectionMode,disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible})}function sameTreeViewConnectionOwner(left,right){if(left.nodes.length!==right.nodes.length||!sameIDs(left.disabledItems,right.disabledItems)||left.selectionMode!==right.selectionMode||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible)return false;for(let index=0;index<left.nodes.length;index+=1){const leftNode=left.nodes[index];const rightNode=right.nodes[index];if(leftNode.id!==rightNode.id||leftNode.parentID!==rightNode.parentID){return false}}return true}export{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeView}from"@sectile/dom/tree-view";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeViewRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeViewRoot=defineComponent({name:"SectileTreeViewRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},selectionMode:{type:String,default:"single"},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},expandedValues:{type:Array,default:void 0},defaultExpandedValues:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValues":_value=>true,"update:highlightedValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValues!==void 0?props.expandedValues:props.defaultExpandedValues);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const controlled={value:useControlledStateInvariant("TreeViewRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeViewRoot","expandedValues",()=>props.expandedValues),highlighted:useControlledStateInvariant("TreeViewRoot","highlightedValue",()=>props.highlightedValue)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValues:props.expandedValues!==void 0?props.expandedValues:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-tree-view-item]").forEach(node=>{const id=node.dataset["sectileTreeViewItem"];if(id!==void 0)connection.value?.setItemAttributes(node,{id,disabled:node.dataset["disabled"]!==void 0})});element.value.querySelectorAll("[data-sectile-tree-view-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeViewDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeViewConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeViewConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.nodes.map(node=>node.id);const branches=collectionBranchIDs(nextOwner.nodes);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValues:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue,requestedHighlight,nextOwner.disabledItems,nextOwner.selectionMode,{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;localValue.value=reconciled.selected;localExpanded.value=expanded;localHighlight.value=reconciled.current;if(controlled.value&&!sameIDs(requestedValue,reconciled.selected))emit("update:modelValue",reconciled.selected);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValues",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);connection.value=createTreeView({root:element.value,nodes:nextOwner.nodes,selectionMode:nextOwner.selectionMode,...controlled.value?{value:reconciled.selected}:{defaultValue:reconciled.selected},...controlled.expanded?{expandedValues:expanded}:{defaultExpandedValues:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value})=>{localValue.value=value;emit("update:modelValue",value)},onExpandedValuesChange:({value})=>{localExpanded.value=value;emit("update:expandedValues",value)},onHighlightedValueChange:({value})=>{localHighlight.value=value;emit("update:highlightedValue",value)},onUpdate:refresh});connectionOwner=nextOwner;connection.value.setTreeAttributes(nextOwner.label);refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));const selectedItems=computed(()=>new Set(state.value.value));const expandedItems=computed(()=>new Set(state.value.expandedValues));provide(key,{state,selectedItems,expandedItems,disabledItems,registerItem:(node,id,disabled)=>connection.value?.setItemAttributes(node,{id,disabled}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValues,()=>props.highlightedValue],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValues:props.expandedValues}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-view","data-part":"root"}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewGroup=defineComponent({name:"SectileTreeViewGroup",inheritAttrs:false,props:{for:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewGroup");const expanded=computed(()=>root.expandedItems.value.has(props.for));const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(expanded,forcePresent);return()=>{const inactivePresent=!expanded.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,role:"group",hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"tree-view","data-part":"group","data-state":expanded.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const TreeViewItem=defineComponent({name:"SectileTreeViewItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewItem");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.value,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.value),expanded:root.expandedItems.value.has(props.value),highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,props.disabled)},"data-sectile-tree-view-item":props.value,"data-scope":"tree-view","data-part":"item","data-selected":state.value.selected?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewDisclosure=defineComponent({name:"SectileTreeViewDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewDisclosure");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.for,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.for),expanded:root.expandedItems.value.has(props.for),highlighted:root.state.value.highlightedValue===props.for,disabled:root.state.value.disabled||root.disabledItems.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-view-disclosure":props.for,"data-scope":"tree-view","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeViewRoot.`);return root}function snapshotTreeViewConnectionOwner(props){return Object.freeze({nodes:Object.freeze(props.nodes.map(node=>Object.freeze({id:node.id,parentID:node.parentID}))),selectionMode:props.selectionMode,disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible})}function sameTreeViewConnectionOwner(left,right){if(left.nodes.length!==right.nodes.length||!sameIDs(left.disabledItems,right.disabledItems)||left.selectionMode!==right.selectionMode||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible)return false;for(let index=0;index<left.nodes.length;index+=1){const leftNode=left.nodes[index];const rightNode=right.nodes[index];if(leftNode.id!==rightNode.id||leftNode.parentID!==rightNode.parentID){return false}}return true}export{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot};
2
2
  //# sourceMappingURL=tree-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-collection.js","names":["defineComponent","h","onBeforeUnmount","shallowReactive","shallowRef","constrainVirtualCollectionDomain","createVirtualCollection","replaceVirtualCollection","virtualItemStyle","useVirtualizerSurfaceRegistration","virtualizerNotConnected","prepareVirtualCollection","items","getID","maxItems","maxIDCodeUnits","updatePreparedVirtualCollection","previous","constrainPreparedVirtualCollection","prepared","VirtualCollectionProjectionRuntime","name","inheritAttrs","props","scope","type","String","required","placements","Array","Object","itemAs","itemAttributes","Function","default","undefined","size","slots","setup","surface","registrations","Map","elements","refs","itemRef","id","existing","get","callback","value","element","HTMLElement","delete","set","registerItem","unregister","values","clear","sizing","itemSizing","children","placement","index","length","domain","at","attributes","rendered","push","key","ref","style","visible","normalizeChildren","VirtualCollectionBootstrapProjectionRuntime","count","Number","width","bootstrapRef","Math","min","freeze","rect","x","y","height","renderHighLevelItems","render","empty","child","renderCollectionBootstrapItems","createVirtualCollectionExpose","root","initialState","phase","emptyScrollport","emptySurface","scrollport","state","plan","scrollToID","alignment","scrollTo","refresh","flush","nearlyEqual","left","right","abs","isArray"],"sources":["../../src/virtual/virtual-collection.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","connectedScrollport","connectedSurface","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","current","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","retireObsoleteConnection","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","asHTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/virtual/virtual-core.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@ import type { StableID } from '@sectile/core';
3
3
  import { type VirtualLanePolicy, type VirtualSizePolicy } from '@sectile/virtual/collection';
4
4
  import { type TrackGridLayoutState } from '@sectile/virtual/track-grid-layout';
5
5
  import { type VirtualInsets, type VirtualLayoutPlan, type VirtualRect, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
6
- import { type VirtualCollectionBaseProps, type VirtualCollectionIDResolver, type VirtualCollectionItemAttributes, type VirtualCollectionItemSlotProps } from './internal/virtual-collection.js';
6
+ import { type VirtualCollectionBaseProps, type VirtualCollectionIDResolver, type VirtualCollectionItemAttributes, type VirtualCollectionItemSlotProps } from './virtual-collection.js';
7
7
  export interface VirtualGridProps<Value = unknown, ID extends StableID = StableID> extends VirtualCollectionBaseProps<Value, ID> {
8
8
  readonly sizePolicy: VirtualSizePolicy<Value>;
9
9
  readonly lanePolicy: VirtualLanePolicy;