@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 PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type PrimitiveAs } from './primitive.js';
3
- import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
3
+ import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
4
4
  export type AccordionType = 'single' | 'multiple';
5
5
  export type AccordionValue = string | readonly string[];
6
6
  export interface AccordionRootProps {
package/dist/accordion.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createAccordionController,getAccordionPanelAttributes,getAccordionRootAttributes,getAccordionTriggerAttributes,toAccordionEvent}from"@sectile/dom/accordion";import{Primitive}from"./primitive.js";import{useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const accordionRootContextKey=Symbol("SectileAccordionRoot");const accordionItemContextKey=Symbol("SectileAccordionItem");const accordionHeaderProps=accordionPartProps("h3");const accordionTriggerProps=accordionPartProps("button");const accordionContentProps={...accordionPartProps("div"),...conditionalPresenceProps};const AccordionRoot=defineComponent({name:"SectileAccordionRoot",inheritAttrs:false,props:{items:{type:Array,required:true},type:{type:String,default:"single"},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},collapsible:{type:Boolean,default:true},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("AccordionRoot","modelValue",()=>props.modelValue);const controller=shallowRef(createController(controlled,toIDs(controlled?props.modelValue:props.defaultValue,props.type),props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const requested=controlled?toIDs(props.modelValue,props.type):snapshot.value.state.openIDs;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.type);controller.value=createController(controlled,reconciled.selected,props,emit);refresh();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.type))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.type)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.type,()=>props.collapsible,()=>props.disabled,()=>props.readonly,()=>props.disabledItems],rebuild);const openIDs=computed(()=>snapshot.value.state.openIDs);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(openIDs.value,props.type),disabled:disabled.value,readonly:readonly.value}));const toggle=id=>{const result=controller.value.handleEvent({type:"toggle",id});if(result.ok)snapshot.value=result.snapshot};const handleKeydown=event=>{const semantic=toAccordionEvent(event);if(semantic===null||semantic==="toggle")return;event.preventDefault();const result=controller.value.handleEvent(semantic);if(!result.ok)return;snapshot.value=result.snapshot;queueMicrotask(()=>focusAccordionTrigger(event.currentTarget,result.snapshot.state.cursor.current))};provide(accordionRootContextKey,{openIDs,disabled,readonly,disabledItems,toggle,handleKeydown});const attributes=computed(()=>getAccordionRootAttributes({disabled:props.disabled,readOnly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionItem=defineComponent({name:"SectileAccordionItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionItem");const generatedID=useHostId();const triggerID=`sectile-accordion-trigger-${generatedID}`;const panelID=`sectile-accordion-panel-${generatedID}`;const slotProps=computed(()=>Object.freeze({value:props.value,open:root.openIDs.value.includes(props.value),disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(accordionItemContextKey,{value:props.value,triggerID,panelID,slotProps});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"item","data-state":slotProps.value.open?"open":"closed","data-disabled":slotProps.value.disabled?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionHeader=defineComponent({name:"SectileAccordionHeader",inheritAttrs:false,props:accordionHeaderProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionHeader");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"header","data-state":item.slotProps.value.open?"open":"closed"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionTrigger=defineComponent({name:"SectileAccordionTrigger",inheritAttrs:false,props:accordionTriggerProps,slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionTrigger");const item=useAccordionItemContext("AccordionTrigger");const attributes=computed(()=>getAccordionTriggerAttributes({has:id=>root.openIDs.value.includes(id)},{id:item.value,triggerID:item.triggerID,panelID:item.panelID,disabled:item.slotProps.value.disabled},{disabled:root.disabled.value,readOnly:root.readonly.value,native:props.as==="button"&&!props.asChild}));const handleClick=event=>{if(!event.defaultPrevented)root.toggle(item.value)};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionContent=defineComponent({name:"SectileAccordionContent",inheritAttrs:false,props:accordionContentProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionContent");const active=computed(()=>item.slotProps.value.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);const attributes=computed(()=>getAccordionPanelAttributes({has:id=>id===item.value&&item.slotProps.value.open},item.value,{panelID:item.panelID,triggerID:item.triggerID}));return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{}}),{default:()=>slots["default"]?.(item.slotProps.value)})}}});function accordionPartProps(defaultAs){return{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}}}function useAccordionRootContext(part){const context=inject(accordionRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionRoot.`);return context}function useAccordionItemContext(part){const context=inject(accordionItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionItem.`);return context}function createController(controlled,value,props,emit){const result=createAccordionController({items:props.items,expansion:props.type??"single",collapsible:props.collapsible??true,disabledItems:props.disabledItems??[],disabled:props.disabled??false,readOnly:props.readonly??false,...controlled?{value}:{defaultValue:value},onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.type??"single"))});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toIDs(value,type){if(value===void 0||value==="")return[];if(Array.isArray(value))return type==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,type){return type==="single"?value[0]??"":value}function focusAccordionTrigger(root,id){if(id===null)return;for(const trigger of root.querySelectorAll("[data-accordion-id]")){if(trigger.dataset["accordionId"]===id)trigger.focus()}}export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger};
1
+ import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createAccordionController,getAccordionPanelAttributes,getAccordionRootAttributes,getAccordionTriggerAttributes,toAccordionEvent}from"@sectile/dom/accordion";import{Primitive}from"./primitive.js";import{useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const accordionRootContextKey=Symbol("SectileAccordionRoot");const accordionItemContextKey=Symbol("SectileAccordionItem");const accordionHeaderProps=accordionPartProps("h3");const accordionTriggerProps=accordionPartProps("button");const accordionContentProps={...accordionPartProps("div"),...conditionalPresenceProps};const AccordionRoot=defineComponent({name:"SectileAccordionRoot",inheritAttrs:false,props:{items:{type:Array,required:true},type:{type:String,default:"single"},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},collapsible:{type:Boolean,default:true},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("AccordionRoot","modelValue",()=>props.modelValue);const controller=shallowRef(createController(controlled,toIDs(controlled?props.modelValue:props.defaultValue,props.type),props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const requested=controlled?toIDs(props.modelValue,props.type):snapshot.value.state.openIDs;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.type);controller.value=createController(controlled,reconciled.selected,props,emit);refresh();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.type))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.type)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.type,()=>props.collapsible,()=>props.disabled,()=>props.readonly,()=>props.disabledItems],rebuild);const openIDs=computed(()=>snapshot.value.state.openIDs);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(openIDs.value,props.type),disabled:disabled.value,readonly:readonly.value}));const toggle=id=>{const result=controller.value.handleEvent({type:"toggle",id});if(result.ok)snapshot.value=result.snapshot};const handleKeydown=event=>{const semantic=toAccordionEvent(event);if(semantic===null||semantic==="toggle")return;event.preventDefault();const result=controller.value.handleEvent(semantic);if(!result.ok)return;snapshot.value=result.snapshot;queueMicrotask(()=>focusAccordionTrigger(event.currentTarget,result.snapshot.state.cursor.current))};provide(accordionRootContextKey,{openIDs,disabled,readonly,disabledItems,toggle,handleKeydown});const attributes=computed(()=>getAccordionRootAttributes({disabled:props.disabled,readOnly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionItem=defineComponent({name:"SectileAccordionItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionItem");const generatedID=useHostId();const triggerID=`sectile-accordion-trigger-${generatedID}`;const panelID=`sectile-accordion-panel-${generatedID}`;const slotProps=computed(()=>Object.freeze({value:props.value,open:root.openIDs.value.includes(props.value),disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(accordionItemContextKey,{value:props.value,triggerID,panelID,slotProps});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"item","data-state":slotProps.value.open?"open":"closed","data-disabled":slotProps.value.disabled?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionHeader=defineComponent({name:"SectileAccordionHeader",inheritAttrs:false,props:accordionHeaderProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionHeader");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"header","data-state":item.slotProps.value.open?"open":"closed"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionTrigger=defineComponent({name:"SectileAccordionTrigger",inheritAttrs:false,props:accordionTriggerProps,slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionTrigger");const item=useAccordionItemContext("AccordionTrigger");const attributes=computed(()=>getAccordionTriggerAttributes({has:id=>root.openIDs.value.includes(id)},{id:item.value,triggerID:item.triggerID,panelID:item.panelID,disabled:item.slotProps.value.disabled},{disabled:root.disabled.value,readOnly:root.readonly.value,native:props.as==="button"&&!props.asChild}));const handleClick=event=>{if(!event.defaultPrevented)root.toggle(item.value)};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionContent=defineComponent({name:"SectileAccordionContent",inheritAttrs:false,props:accordionContentProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionContent");const active=computed(()=>item.slotProps.value.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);const attributes=computed(()=>getAccordionPanelAttributes({has:id=>id===item.value&&item.slotProps.value.open},item.value,{panelID:item.panelID,triggerID:item.triggerID}));return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{}}),{default:()=>slots["default"]?.(item.slotProps.value)})}}});function accordionPartProps(defaultAs){return{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}}}function useAccordionRootContext(part){const context=inject(accordionRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionRoot.`);return context}function useAccordionItemContext(part){const context=inject(accordionItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionItem.`);return context}function createController(controlled,value,props,emit){const result=createAccordionController({items:props.items,expansion:props.type??"single",collapsible:props.collapsible??true,disabledItems:props.disabledItems??[],disabled:props.disabled??false,readOnly:props.readonly??false,...controlled?{value}:{defaultValue:value},onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.type??"single"))});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toIDs(value,type){if(value===void 0||value==="")return[];if(Array.isArray(value))return type==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,type){return type==="single"?value[0]??"":value}function focusAccordionTrigger(root,id){if(id===null)return;for(const trigger of root.querySelectorAll("[data-accordion-id]")){if(trigger.dataset["accordionId"]===id)trigger.focus()}}export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger};
2
2
  //# sourceMappingURL=accordion.js.map
@@ -1,7 +1,7 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type CarouselAutoplayOptions, type CarouselPolicies } from '@sectile/dom/carousel';
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 CarouselRootProps {
6
6
  readonly slides: readonly string[];
7
7
  readonly modelValue?: string | null;
package/dist/carousel.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCarousel}from"@sectile/dom/carousel";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const key=Symbol("SectileCarouselRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const CarouselRoot=defineComponent({name:"SectileCarouselRoot",inheritAttrs:false,props:{slides:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:void 0},paused:{type:Boolean,default:void 0},defaultPaused:{type:Boolean,default:false},disabled:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},autoplay:{type:[Boolean,Object],default:false},policies:{type:Object,default:void 0},label:{type:String,default:void 0},getSlideLabel:{type:Function,default:void 0},getIndicatorLabel:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"section"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:paused":_value=>true,announce:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const generatedID=`sectile-carousel-${useHostId()}`;const direction=useHostDirection();const elements=new Map;const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue??props.slides[0]??null);const localPaused=shallowRef(props.paused??props.defaultPaused);const controlled={value:useControlledStateInvariant("CarouselRoot","modelValue",()=>props.modelValue),paused:useControlledStateInvariant("CarouselRoot","paused",()=>props.paused)};const state=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;const foundIndex=value===null?-1:props.slides.indexOf(value);return Object.freeze({value,index:foundIndex<0?null:foundIndex,count:props.slides.length,paused:props.paused??localPaused.value,disabled:props.disabled})});const refreshParts=()=>{const root=elements.get("root");if(root===void 0||connection.value===void 0)return;root.querySelectorAll("[data-sectile-carousel-slide]").forEach(element=>{const id=element.dataset["sectileCarouselSlide"];if(id!==void 0)connection.value?.setSlideAttributes(element,id)});root.querySelectorAll("[data-sectile-carousel-indicator]").forEach(element=>{const id=element.dataset["sectileCarouselIndicator"];if(id!==void 0)connection.value?.setIndicatorAttributes(element,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.cursor.current;localPaused.value=snapshot.paused;refreshParts()};const connect=()=>{connection.value?.disconnect();const root=elements.get("root");if(root===void 0)return;const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.slides,requestedValue===null?[]:[requestedValue],requestedValue,[],"single",{preserveNullCurrent:true});const value=reconciled.current;localValue.value=value;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCarousel({root,slides:props.slides,manageVisibility:false,...controlled.value?{value}:{defaultValue:value},...controlled.paused?{paused:props.paused}:{defaultPaused:localPaused.value},disabled:props.disabled,orientation:props.orientation,direction:direction.value,autoplay:props.autoplay,...props.policies===void 0?{}:{policies:props.policies},...props.label===void 0?{}:{label:props.label},...props.getSlideLabel===void 0?{}:{getSlideLabel:props.getSlideLabel},...props.getIndicatorLabel===void 0?{}:{getIndicatorLabel:props.getIndicatorLabel},...elements.get("previous")===void 0?{}:{previousButton:elements.get("previous")},...elements.get("next")===void 0?{}:{nextButton:elements.get("next")},...elements.get("pause")===void 0?{}:{pauseButton:elements.get("pause")},...elements.get("indicators")===void 0?{}:{indicatorGroup:elements.get("indicators")},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onPausedChange:value2=>{localPaused.value=value2;emit("update:paused",value2)},onAnnounce:value2=>emit("announce",value2),onUpdate:refresh});refreshParts();refresh()};provide(key,{state,register:(part2,element)=>{if(element===void 0)elements.delete(part2);else elements.set(part2,element)},registerSlide:(element,id)=>connection.value?.setSlideAttributes(element,id),registerIndicator:(element,id)=>connection.value?.setIndicatorAttributes(element,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.slides,()=>props.disabled,()=>props.orientation,()=>props.autoplay,()=>props.policies,()=>props.label,()=>props.getSlideLabel,()=>props.getIndicatorLabel,direction],connect);watch([()=>props.modelValue,()=>props.paused],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.paused?{paused:props.paused}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)elements.set("root",node)},id:typeof attrs["id"]==="string"?attrs["id"]:generatedID,dir:direction.value,"data-scope":"carousel","data-part":"root","data-orientation":props.orientation}),{default:()=>slots["default"]?.(state.value)})}});const CarouselViewport=part("SectileCarouselViewport","viewport","div");const CarouselTrack=part("SectileCarouselTrack","track","div");const CarouselIndicatorGroup=registeredPart("SectileCarouselIndicatorGroup","indicators","indicator-group","div");const CarouselPrevious=registeredPart("SectileCarouselPrevious","previous","previous","button");const CarouselNext=registeredPart("SectileCarouselNext","next","next","button");const CarouselPause=registeredPart("SectileCarouselPause","pause","pause","button");const CarouselSlide=defineComponent({name:"SectileCarouselSlide",inheritAttrs:false,props:{value:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselSlide");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));const active=computed(()=>state.value.active);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const element=presence.register(node);if(element!==void 0)root.registerSlide(element,props.value)},hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-sectile-carousel-slide":props.value,"data-scope":"carousel","data-part":"slide","data-state":active.value?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}}});const CarouselIndicator=defineComponent({name:"SectileCarouselIndicator",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselIndicator");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerIndicator(node,props.value)},"data-sectile-carousel-indicator":props.value,"data-scope":"carousel","data-part":"indicator","data-state":state.value.active?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}});function part(name,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function registeredPart(name,registration,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);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=>root.register(registration,node instanceof HTMLElement?node:void 0),"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(partName){const root=inject(key);if(root===void 0)throw new TypeError(`${partName} must be used inside CarouselRoot.`);return root}export{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCarousel}from"@sectile/dom/carousel";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileCarouselRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const CarouselRoot=defineComponent({name:"SectileCarouselRoot",inheritAttrs:false,props:{slides:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:void 0},paused:{type:Boolean,default:void 0},defaultPaused:{type:Boolean,default:false},disabled:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},autoplay:{type:[Boolean,Object],default:false},policies:{type:Object,default:void 0},label:{type:String,default:void 0},getSlideLabel:{type:Function,default:void 0},getIndicatorLabel:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"section"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:paused":_value=>true,announce:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const generatedID=`sectile-carousel-${useHostId()}`;const direction=useHostDirection();const elements=new Map;const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue??props.slides[0]??null);const localPaused=shallowRef(props.paused??props.defaultPaused);const controlled={value:useControlledStateInvariant("CarouselRoot","modelValue",()=>props.modelValue),paused:useControlledStateInvariant("CarouselRoot","paused",()=>props.paused)};const state=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;const foundIndex=value===null?-1:props.slides.indexOf(value);return Object.freeze({value,index:foundIndex<0?null:foundIndex,count:props.slides.length,paused:props.paused??localPaused.value,disabled:props.disabled})});const refreshParts=()=>{const root=elements.get("root");if(root===void 0||connection.value===void 0)return;root.querySelectorAll("[data-sectile-carousel-slide]").forEach(element=>{const id=element.dataset["sectileCarouselSlide"];if(id!==void 0)connection.value?.setSlideAttributes(element,id)});root.querySelectorAll("[data-sectile-carousel-indicator]").forEach(element=>{const id=element.dataset["sectileCarouselIndicator"];if(id!==void 0)connection.value?.setIndicatorAttributes(element,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.cursor.current;localPaused.value=snapshot.paused;refreshParts()};const connect=()=>{connection.value?.disconnect();const root=elements.get("root");if(root===void 0)return;const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.slides,requestedValue===null?[]:[requestedValue],requestedValue,[],"single",{preserveNullCurrent:true});const value=reconciled.current;localValue.value=value;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCarousel({root,slides:props.slides,manageVisibility:false,...controlled.value?{value}:{defaultValue:value},...controlled.paused?{paused:props.paused}:{defaultPaused:localPaused.value},disabled:props.disabled,orientation:props.orientation,direction:direction.value,autoplay:props.autoplay,...props.policies===void 0?{}:{policies:props.policies},...props.label===void 0?{}:{label:props.label},...props.getSlideLabel===void 0?{}:{getSlideLabel:props.getSlideLabel},...props.getIndicatorLabel===void 0?{}:{getIndicatorLabel:props.getIndicatorLabel},...elements.get("previous")===void 0?{}:{previousButton:elements.get("previous")},...elements.get("next")===void 0?{}:{nextButton:elements.get("next")},...elements.get("pause")===void 0?{}:{pauseButton:elements.get("pause")},...elements.get("indicators")===void 0?{}:{indicatorGroup:elements.get("indicators")},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onPausedChange:value2=>{localPaused.value=value2;emit("update:paused",value2)},onAnnounce:value2=>emit("announce",value2),onUpdate:refresh});refreshParts();refresh()};provide(key,{state,register:(part2,element)=>{if(element===void 0)elements.delete(part2);else elements.set(part2,element)},registerSlide:(element,id)=>connection.value?.setSlideAttributes(element,id),registerIndicator:(element,id)=>connection.value?.setIndicatorAttributes(element,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.slides,()=>props.disabled,()=>props.orientation,()=>props.autoplay,()=>props.policies,()=>props.label,()=>props.getSlideLabel,()=>props.getIndicatorLabel,direction],connect);watch([()=>props.modelValue,()=>props.paused],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.paused?{paused:props.paused}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)elements.set("root",node)},id:typeof attrs["id"]==="string"?attrs["id"]:generatedID,dir:direction.value,"data-scope":"carousel","data-part":"root","data-orientation":props.orientation}),{default:()=>slots["default"]?.(state.value)})}});const CarouselViewport=part("SectileCarouselViewport","viewport","div");const CarouselTrack=part("SectileCarouselTrack","track","div");const CarouselIndicatorGroup=registeredPart("SectileCarouselIndicatorGroup","indicators","indicator-group","div");const CarouselPrevious=registeredPart("SectileCarouselPrevious","previous","previous","button");const CarouselNext=registeredPart("SectileCarouselNext","next","next","button");const CarouselPause=registeredPart("SectileCarouselPause","pause","pause","button");const CarouselSlide=defineComponent({name:"SectileCarouselSlide",inheritAttrs:false,props:{value:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselSlide");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));const active=computed(()=>state.value.active);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const element=presence.register(node);if(element!==void 0)root.registerSlide(element,props.value)},hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-sectile-carousel-slide":props.value,"data-scope":"carousel","data-part":"slide","data-state":active.value?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}}});const CarouselIndicator=defineComponent({name:"SectileCarouselIndicator",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselIndicator");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerIndicator(node,props.value)},"data-sectile-carousel-indicator":props.value,"data-scope":"carousel","data-part":"indicator","data-state":state.value.active?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}});function part(name,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function registeredPart(name,registration,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);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=>root.register(registration,node instanceof HTMLElement?node:void 0),"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(partName){const root=inject(key);if(root===void 0)throw new TypeError(`${partName} must be used inside CarouselRoot.`);return root}export{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport};
2
2
  //# sourceMappingURL=carousel.js.map
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeList}from"@sectile/dom/cascade-list";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{useConditionalPresenceRegistry}from"./internal/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeListRoot");const itemKey=Symbol("SectileCascadeListItem");const partProps=cascadeChoicePartProps;const CascadeListRoot=defineComponent({name:"SectileCascadeListRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,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,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:root,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const highlighted=shallowRef(localValue.value??firstAvailableRoot(props.nodes,props.disabledItems));const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeListRoot","modelValue",()=>props.modelValue);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refreshItems=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-cascade-list-id]").forEach(element=>{const id=element.dataset["sectileCascadeListId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const connect=()=>{connection.value?.disconnect();if(root.value===null)return;const branches2=cascadeBranchItems(props.nodes);const leaves=new Set(props.nodes.filter(node=>!branches2.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leaves.has(requestedValue)?requestedValue:null;const ids=new Set(props.nodes.map(node=>node.id));const requestedHighlight=highlighted.value;const defaultHighlightedValue=requestedHighlight!==null&&ids.has(requestedHighlight)&&!props.disabledItems.includes(requestedHighlight)?requestedHighlight:value??firstAvailableRoot(props.nodes,props.disabledItems);localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeList({root:root.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue,disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch(()=>props.modelValue,()=>{if(connection.value===void 0||!valueControlled)return;const result=connection.value.syncControlledValues({value:props.modelValue});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group",tabindex:-1,"aria-label":props.label,"aria-disabled":props.disabled?"true":void 0,"aria-readonly":props.readonly?"true":void 0,"data-scope":"cascade-list","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:"",selected:state.value.value===null}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,selected:state.value.value===node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeListValue=defineComponent({name:"SectileCascadeListValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeListValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-list","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const cascadeListParts=createCascadeChoiceParts({scope:"cascade-list",componentName:"CascadeList",itemAttribute:"data-sectile-cascade-list-id",rootKey,itemKey});const CascadeListColumn=cascadeListParts.Column;const CascadeListItem=cascadeListParts.Item;const CascadeListItemIndicator=cascadeListParts.ItemIndicator;const CascadeListItemChevron=cascadeListParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeListRoot.`);return root}function firstAvailableRoot(nodes,disabledItems){const disabled=new Set(disabledItems);return nodes.find(node=>node.parentID===null&&!disabled.has(node.id))?.id??null}export{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeList}from"@sectile/dom/cascade-list";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeListRoot");const itemKey=Symbol("SectileCascadeListItem");const partProps=cascadeChoicePartProps;const CascadeListRoot=defineComponent({name:"SectileCascadeListRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,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,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:root,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const highlighted=shallowRef(localValue.value??firstAvailableRoot(props.nodes,props.disabledItems));const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeListRoot","modelValue",()=>props.modelValue);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refreshItems=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-cascade-list-id]").forEach(element=>{const id=element.dataset["sectileCascadeListId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const connect=()=>{connection.value?.disconnect();if(root.value===null)return;const branches2=cascadeBranchItems(props.nodes);const leaves=new Set(props.nodes.filter(node=>!branches2.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leaves.has(requestedValue)?requestedValue:null;const ids=new Set(props.nodes.map(node=>node.id));const requestedHighlight=highlighted.value;const defaultHighlightedValue=requestedHighlight!==null&&ids.has(requestedHighlight)&&!props.disabledItems.includes(requestedHighlight)?requestedHighlight:value??firstAvailableRoot(props.nodes,props.disabledItems);localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeList({root:root.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue,disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch(()=>props.modelValue,()=>{if(connection.value===void 0||!valueControlled)return;const result=connection.value.syncControlledValues({value:props.modelValue});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group",tabindex:-1,"aria-label":props.label,"aria-disabled":props.disabled?"true":void 0,"aria-readonly":props.readonly?"true":void 0,"data-scope":"cascade-list","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:"",selected:state.value.value===null}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,selected:state.value.value===node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeListValue=defineComponent({name:"SectileCascadeListValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeListValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-list","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const cascadeListParts=createCascadeChoiceParts({scope:"cascade-list",componentName:"CascadeList",itemAttribute:"data-sectile-cascade-list-id",rootKey,itemKey});const CascadeListColumn=cascadeListParts.Column;const CascadeListItem=cascadeListParts.Item;const CascadeListItemIndicator=cascadeListParts.ItemIndicator;const CascadeListItemChevron=cascadeListParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeListRoot.`);return root}function firstAvailableRoot(nodes,disabledItems){const disabled=new Set(disabledItems);return nodes.find(node=>node.parentID===null&&!disabled.has(node.id))?.id??null}export{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue};
2
2
  //# sourceMappingURL=cascade-list.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-list.ts"],"mappings":"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","names":["branches"],"file":"cascade-list.js"}
1
+ {"version":3,"sources":["../src/cascade-list.ts"],"mappings":"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","names":["branches"],"file":"cascade-list.js"}
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";import{useConditionalPresenceRegistry}from"./internal/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,position:props.position,manageVisibility:false,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},refresh:()=>connection.value?.refresh(),registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"group",hidden:!present.value,"aria-label":root.label.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"cascade-select","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./presence/presence.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},textValue:{type:Function,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:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,position:props.position,manageVisibility:false,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},refresh:()=>connection.value?.refresh(),registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"group",hidden:!present.value,"aria-label":root.label.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"cascade-select","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
2
2
  //# sourceMappingURL=cascade-select.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
1
+ {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{applyCheckboxGroupEvent,tryCreateCheckboxGroupState}from"@sectile/core/checkbox-group";import{tryReconcileCollectionIdentities}from"@sectile/core/adapter-runtime";import{createSequence}from"@sectile/core/sequence";import{Primitive}from"./primitive.js";import{CheckboxIndicator,CheckboxRoot}from"./checkbox.js";import{providePartContract}from"./internal/part-contract.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{provideFormControlOwner}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";const key=Symbol("SectileCheckboxGroupRoot");const CheckboxGroupRoot=defineComponent({name:"SectileCheckboxGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},name:{type:String,default:void 0},form:{type:String,default:void 0},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){providePartContract("checkbox-group",{root:"item"});const rootElement=shallowRef(null);const submissionElements=[];const controlled=useControlledStateInvariant("CheckboxGroupRoot","modelValue",()=>props.modelValue);const initialValue=Object.freeze([...controlled?props.modelValue??[]:props.defaultValue]);const domain=shallowRef(createSequence(props.items));const initialState=tryCreateCheckboxGroupState(domain.value,{selected:initialValue});if(!initialState.ok)throw new TypeError(initialState.error.message);const selectedValue=shallowRef(initialState.value.selection.selected);const selected=computed(()=>new Set(selectedValue.value));const participation=useCompositeFormControl({root:rootElement,submissions:()=>state.value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities})),reset:()=>{if(!controlled){const reconciled=tryReconcileCollectionIdentities(props.items,initialValue,null,[],"multiple",{preserveNullCurrent:true});if(!reconciled.ok)throw new TypeError(reconciled.error.message);selectedValue.value=reconciled.value.selected}}});provideFormControlOwner();const state=computed(()=>Object.freeze({value:selectedValue.value,disabled:props.disabled,readonly:props.readonly}));watch(()=>props.items,()=>{const nextDomain=createSequence(props.items);const requested=controlled?props.modelValue??[]:selectedValue.value;const reconciled=tryReconcileCollectionIdentities(props.items,requested,null,[],"multiple",{preserveNullCurrent:true});if(!reconciled.ok)throw new TypeError(reconciled.error.message);domain.value=nextDomain;selectedValue.value=reconciled.value.selected;if(controlled&&reconciled.value.selectionChanged){emit("update:modelValue",reconciled.value.selected)}},{flush:"sync"});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const next=tryCreateCheckboxGroupState(domain.value,{selected:value});if(!next.ok)throw new TypeError(next.error.message);selectedValue.value=next.value.selection.selected},{flush:"sync"});provide(key,{state,selected,name:computed(()=>props.name),form:computed(()=>props.form),required:computed(()=>props.required),toggle:(value,checked)=>{if(props.disabled||props.readonly)return;const current=tryCreateCheckboxGroupState(domain.value,{selected:selectedValue.value});if(!current.ok)throw new TypeError(current.error.message);if(current.value.selection.has(value)===(checked===true))return;const update=applyCheckboxGroupEvent(domain.value,current.value,{type:"toggle",id:value});if(!update.ok)throw new TypeError(update.error.message);const next=update.value.state.selection.selected;if(!controlled)selectedValue.value=next;emit("update:modelValue",next)}});return()=>{const root=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element instanceof HTMLElement?element:null},role:"group","aria-label":props.label,"aria-disabled":props.disabled?"true":void 0,"aria-readonly":props.readonly?"true":void 0,"data-scope":"checkbox-group","data-part":"root"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return root;return[root,...state.value.value.map((value,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const CheckboxGroupItem=defineComponent({name:"SectileCheckboxGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},required:{type:Boolean,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot();const checked=computed(()=>root.selected.value.has(props.value));return()=>h(CheckboxRoot,mergeProps(attrs,{as:props.as,asChild:props.asChild,modelValue:checked.value,disabled:root.state.value.disabled||props.disabled,readonly:root.state.value.readonly,required:props.required??root.required.value,value:props.value,"onUpdate:modelValue":next=>root.toggle(props.value,next)}),{default:()=>slots["default"]?.({checked:checked.value,disabled:root.state.value.disabled||props.disabled,readonly:root.state.value.readonly})})}});const CheckboxGroupIndicator=CheckboxIndicator;function useRoot(){const root=inject(key);if(root===void 0)throw new TypeError("CheckboxGroupItem must be used inside CheckboxGroupRoot.");return root}export{CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{applyCheckboxGroupEvent,tryCreateCheckboxGroupState}from"@sectile/core/checkbox-group";import{tryReconcileCollectionIdentities}from"@sectile/core/adapter-runtime";import{createSequence}from"@sectile/core/sequence";import{Primitive}from"./primitive.js";import{CheckboxIndicator,CheckboxRoot}from"./checkbox.js";import{providePartContract}from"./internal/part-contract.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";const key=Symbol("SectileCheckboxGroupRoot");const CheckboxGroupRoot=defineComponent({name:"SectileCheckboxGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},name:{type:String,default:void 0},form:{type:String,default:void 0},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){providePartContract("checkbox-group",{root:"item"});const rootElement=shallowRef(null);const submissionElements=[];const controlled=useControlledStateInvariant("CheckboxGroupRoot","modelValue",()=>props.modelValue);const initialValue=Object.freeze([...controlled?props.modelValue??[]:props.defaultValue]);const domain=shallowRef(createSequence(props.items));const initialState=tryCreateCheckboxGroupState(domain.value,{selected:initialValue});if(!initialState.ok)throw new TypeError(initialState.error.message);const selectedValue=shallowRef(initialState.value.selection.selected);const selected=computed(()=>new Set(selectedValue.value));const participation=useCompositeFormControl({root:rootElement,submissions:()=>state.value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities})),reset:()=>{if(!controlled){const reconciled=tryReconcileCollectionIdentities(props.items,initialValue,null,[],"multiple",{preserveNullCurrent:true});if(!reconciled.ok)throw new TypeError(reconciled.error.message);selectedValue.value=reconciled.value.selected}}});provideFormControlOwner();const state=computed(()=>Object.freeze({value:selectedValue.value,disabled:props.disabled,readonly:props.readonly}));watch(()=>props.items,()=>{const nextDomain=createSequence(props.items);const requested=controlled?props.modelValue??[]:selectedValue.value;const reconciled=tryReconcileCollectionIdentities(props.items,requested,null,[],"multiple",{preserveNullCurrent:true});if(!reconciled.ok)throw new TypeError(reconciled.error.message);domain.value=nextDomain;selectedValue.value=reconciled.value.selected;if(controlled&&reconciled.value.selectionChanged){emit("update:modelValue",reconciled.value.selected)}},{flush:"sync"});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const next=tryCreateCheckboxGroupState(domain.value,{selected:value});if(!next.ok)throw new TypeError(next.error.message);selectedValue.value=next.value.selection.selected},{flush:"sync"});provide(key,{state,selected,name:computed(()=>props.name),form:computed(()=>props.form),required:computed(()=>props.required),toggle:(value,checked)=>{if(props.disabled||props.readonly)return;const current=tryCreateCheckboxGroupState(domain.value,{selected:selectedValue.value});if(!current.ok)throw new TypeError(current.error.message);if(current.value.selection.has(value)===(checked===true))return;const update=applyCheckboxGroupEvent(domain.value,current.value,{type:"toggle",id:value});if(!update.ok)throw new TypeError(update.error.message);const next=update.value.state.selection.selected;if(!controlled)selectedValue.value=next;emit("update:modelValue",next)}});return()=>{const root=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element instanceof HTMLElement?element:null},role:"group","aria-label":props.label,"aria-disabled":props.disabled?"true":void 0,"aria-readonly":props.readonly?"true":void 0,"data-scope":"checkbox-group","data-part":"root"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return root;return[root,...state.value.value.map((value,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const CheckboxGroupItem=defineComponent({name:"SectileCheckboxGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},required:{type:Boolean,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot();const checked=computed(()=>root.selected.value.has(props.value));return()=>h(CheckboxRoot,mergeProps(attrs,{as:props.as,asChild:props.asChild,modelValue:checked.value,disabled:root.state.value.disabled||props.disabled,readonly:root.state.value.readonly,required:props.required??root.required.value,value:props.value,"onUpdate:modelValue":next=>root.toggle(props.value,next)}),{default:()=>slots["default"]?.({checked:checked.value,disabled:root.state.value.disabled||props.disabled,readonly:root.state.value.readonly})})}});const CheckboxGroupIndicator=CheckboxIndicator;function useRoot(){const root=inject(key);if(root===void 0)throw new TypeError("CheckboxGroupItem must be used inside CheckboxGroupRoot.");return root}export{CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot};
2
2
  //# sourceMappingURL=checkbox-group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/checkbox-group.ts"],"mappings":"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","names":[],"file":"checkbox-group.js"}
1
+ {"version":3,"sources":["../src/checkbox-group.ts"],"mappings":"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","names":[],"file":"checkbox-group.js"}
@@ -1,6 +1,6 @@
1
1
  import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type PrimitiveAs } from './primitive.js';
3
- import { type ConditionalPresenceProps } from './internal/conditional-presence.js';
3
+ import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
4
4
  export type CheckboxValue = boolean | 'indeterminate';
5
5
  export interface CheckboxRootProps {
6
6
  readonly modelValue?: CheckboxValue;
package/dist/checkbox.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createCheckboxController,getCheckboxAttributes,getCheckboxInputAttributes}from"@sectile/dom/checkbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const checkboxContextKey=Symbol("SectileCheckbox");const CheckboxRoot=defineComponent({name:"SectileCheckboxRoot",inheritAttrs:false,props:{modelValue:{type:[Boolean,String],default:void 0},defaultValue:{type:[Boolean,String],default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},name:{type:String,default:void 0},value:{type:String,default:"on"},form:{type:String,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const rootElement=shallowRef(null);const inputElement=shallowRef(null);const controlled=useControlledStateInvariant("CheckboxRoot","modelValue",()=>props.modelValue);const initialValue=controlled?props.modelValue:props.defaultValue;const controller=shallowRef(createController(controlled,controlled?props.modelValue:props.defaultValue,props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const value=controlled?props.modelValue:fromDOMValue(snapshot.value.state.checked);controller.value=createController(controlled,value,props,emit);refresh()};const participation=useCompositeFormControl({root:rootElement,focusTarget:rootElement,submissions:[{element:inputElement,capabilities:hiddenInputSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{controller.value=createController(controlled,controlled?props.modelValue:initialValue,props,emit);refresh()})}});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValue(toDOMValue(value));if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.disabled,()=>props.readonly],rebuild);const slotProps=computed(()=>Object.freeze({checked:fromDOMValue(snapshot.value.state.checked),isChecked:snapshot.value.state.checked===true,isIndeterminate:snapshot.value.state.checked==="mixed",disabled:props.disabled,readonly:props.readonly}));const attributes=computed(()=>getCheckboxAttributes(snapshot.value.state,{disabled:props.disabled,readOnly:props.readonly,required:props.required,native:true}));const inputAttributes=computed(()=>getCheckboxInputAttributes(snapshot.value.state,{...props.name===void 0?{}:{name:props.name},value:props.value,...props.form===void 0?{}:{form:props.form},required:props.required,disabled:props.disabled}));const dataState=computed(()=>attributes.value["data-state"]);const part=usePartContract("checkbox","root");provide(checkboxContextKey,{slotProps,dataState,partContract:part});const handleClick=event=>{if(event.defaultPrevented)return;if(controller.value.handleEvent("toggle"))refresh()};return()=>{const root=h(Primitive,mergeProps(attrs,attributes.value,{elementRef:element=>{rootElement.value=element},as:props.as,asChild:props.asChild,...props.as==="button"&&!props.asChild?{type:"button"}:{},"data-scope":part.scope,"data-part":part.part,onClick:handleClick},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("input",mergeProps(inputAttributes.value,{ref:inputElement,style:visuallyHiddenInputStyle}))]}}});const CheckboxIndicator=defineComponent({name:"SectileCheckboxIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const context=inject(checkboxContextKey);if(context===void 0){throw new TypeError("CheckboxIndicator must be used inside CheckboxRoot.")}const part={scope:context.partContract.scope,part:context.partContract.parts["indicator"]??"indicator"};const active=computed(()=>context.slotProps.value.checked!==false);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const state=context.slotProps.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":context.dataState.value}),{default:()=>slots["default"]?.(state)})}}});function createController(controlled,value,props,emit){const result=createCheckboxController({...controlled?{value:toDOMValue(value)}:{defaultValue:toDOMValue(value)},disabled:props.disabled??false,readOnly:props.readonly??false,onValueChange:next=>{emit("update:modelValue",fromDOMValue(next))}});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toDOMValue(value){return value==="indeterminate"?"mixed":value}function fromDOMValue(value){return value==="mixed"?"indeterminate":value}export{CheckboxIndicator,CheckboxRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createCheckboxController,getCheckboxAttributes,getCheckboxInputAttributes}from"@sectile/dom/checkbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const checkboxContextKey=Symbol("SectileCheckbox");const CheckboxRoot=defineComponent({name:"SectileCheckboxRoot",inheritAttrs:false,props:{modelValue:{type:[Boolean,String],default:void 0},defaultValue:{type:[Boolean,String],default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},name:{type:String,default:void 0},value:{type:String,default:"on"},form:{type:String,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const rootElement=shallowRef(null);const inputElement=shallowRef(null);const controlled=useControlledStateInvariant("CheckboxRoot","modelValue",()=>props.modelValue);const initialValue=controlled?props.modelValue:props.defaultValue;const controller=shallowRef(createController(controlled,controlled?props.modelValue:props.defaultValue,props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const value=controlled?props.modelValue:fromDOMValue(snapshot.value.state.checked);controller.value=createController(controlled,value,props,emit);refresh()};const participation=useCompositeFormControl({root:rootElement,focusTarget:rootElement,submissions:[{element:inputElement,capabilities:hiddenInputSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{controller.value=createController(controlled,controlled?props.modelValue:initialValue,props,emit);refresh()})}});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValue(toDOMValue(value));if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.disabled,()=>props.readonly],rebuild);const slotProps=computed(()=>Object.freeze({checked:fromDOMValue(snapshot.value.state.checked),isChecked:snapshot.value.state.checked===true,isIndeterminate:snapshot.value.state.checked==="mixed",disabled:props.disabled,readonly:props.readonly}));const attributes=computed(()=>getCheckboxAttributes(snapshot.value.state,{disabled:props.disabled,readOnly:props.readonly,required:props.required,native:true}));const inputAttributes=computed(()=>getCheckboxInputAttributes(snapshot.value.state,{...props.name===void 0?{}:{name:props.name},value:props.value,...props.form===void 0?{}:{form:props.form},required:props.required,disabled:props.disabled}));const dataState=computed(()=>attributes.value["data-state"]);const part=usePartContract("checkbox","root");provide(checkboxContextKey,{slotProps,dataState,partContract:part});const handleClick=event=>{if(event.defaultPrevented)return;if(controller.value.handleEvent("toggle"))refresh()};return()=>{const root=h(Primitive,mergeProps(attrs,attributes.value,{elementRef:element=>{rootElement.value=element},as:props.as,asChild:props.asChild,...props.as==="button"&&!props.asChild?{type:"button"}:{},"data-scope":part.scope,"data-part":part.part,onClick:handleClick},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("input",mergeProps(inputAttributes.value,{ref:inputElement,style:visuallyHiddenInputStyle}))]}}});const CheckboxIndicator=defineComponent({name:"SectileCheckboxIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const context=inject(checkboxContextKey);if(context===void 0){throw new TypeError("CheckboxIndicator must be used inside CheckboxRoot.")}const part={scope:context.partContract.scope,part:context.partContract.parts["indicator"]??"indicator"};const active=computed(()=>context.slotProps.value.checked!==false);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const state=context.slotProps.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":context.dataState.value}),{default:()=>slots["default"]?.(state)})}}});function createController(controlled,value,props,emit){const result=createCheckboxController({...controlled?{value:toDOMValue(value)}:{defaultValue:toDOMValue(value)},disabled:props.disabled??false,readOnly:props.readonly??false,onValueChange:next=>{emit("update:modelValue",fromDOMValue(next))}});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toDOMValue(value){return value==="indeterminate"?"mixed":value}function fromDOMValue(value){return value==="mixed"?"indeterminate":value}export{CheckboxIndicator,CheckboxRoot};
2
2
  //# sourceMappingURL=checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/checkbox.ts"],"mappings":"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","names":[],"file":"checkbox.js"}
1
+ {"version":3,"sources":["../src/checkbox.ts"],"mappings":"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","names":[],"file":"checkbox.js"}
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createColorPicker,formatColorValue,parseColorValue}from"@sectile/dom/color-picker";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{Primitive}from"./primitive.js";const rootKey=Symbol("SectileColorPickerRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const ColorPickerRoot=defineComponent({name:"SectileColorPickerRoot",inheritAttrs:false,props:{modelValue:{type:String,default:void 0},defaultValue:{type:String,default:"#5b6df6"},draft:{type:String,default:void 0},defaultDraft:{type:String,default:null},format:{type:String,default:void 0},defaultFormat:{type:String,default:"hex"},allowAlpha:{type:Boolean,default:true},channelStep:{type:Number,default:1},alphaStep:{type:Number,default:17},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},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,"update:draft":_value=>true,"update:format":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const connection=shallowRef();const native=shallowRef();const text=shallowRef();const swatch=shallowRef();const areaElement=shallowRef();const areaThumb=shallowRef();const hue=shallowRef();const alpha=shallowRef();const channels=new Map;const coordinates=new Map;const submission=shallowRef();const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>text.value??native.value??areaElement.value??root.value??null,submissions:[{element:()=>submission.value??null,capabilities:hiddenInputSubmissionCapabilities}]});const valueControlled=props.modelValue!==void 0;const draftControlled=props.draft!==void 0;const formatControlled=props.format!==void 0;const initialValue=parseInitial(props.modelValue??props.defaultValue);const value=shallowRef(initialValue);const draft=shallowRef(props.draft!==void 0?props.draft:props.defaultDraft);const format=shallowRef(props.format??props.defaultFormat);const channel=shallowRef("red");const textValue=shallowRef(props.modelValue??props.defaultValue);const cssColor=shallowRef("rgb(91, 109, 246)");const area=shallowRef({x:.604,y:.965,hue:233,alpha:initialValue.alpha/255});const coordinateValues=shallowRef([]);const revision=shallowRef(0);const state=computed(()=>({value:value.value,text:textValue.value,cssColor:cssColor.value,draft:draft.value,format:format.value,channel:channel.value,area:area.value,coordinates:coordinateValues.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const target=connection.value;if(target===void 0)return;const snapshot=target.getSnapshot();revision.value=snapshot.revision;value.value=snapshot.state.value;draft.value=snapshot.state.draft;format.value=snapshot.state.format;channel.value=snapshot.state.channel;textValue.value=target.getText();cssColor.value=target.getCSSColor();area.value=target.getAreaValue();coordinateValues.value=target.getCoordinates()};const connectParts=()=>{const target=connection.value;if(target===void 0)return;if(native.value!==void 0)target.setNativeInputAttributes(native.value);if(text.value!==void 0)target.setTextInputAttributes(text.value);if(swatch.value!==void 0)target.setSwatchAttributes(swatch.value);if(areaElement.value!==void 0)target.setAreaAttributes(areaElement.value);if(areaThumb.value!==void 0)target.setAreaThumbAttributes(areaThumb.value);if(hue.value!==void 0)target.setHueInputAttributes(hue.value);if(alpha.value!==void 0)target.setAlphaInputAttributes(alpha.value);for(const[name,element]of channels)target.setChannelInputAttributes(element,name);for(const[element,[model,name,kind]]of coordinates){if(kind==="range")target.setCoordinateSliderAttributes(element,model,name);else target.setCoordinateInputAttributes(element,model,name)}};const connect=()=>{connection.value?.disconnect();if(root.value===void 0)return;connection.value=createColorPicker({root:root.value,...valueControlled?{value:props.modelValue}:{defaultValue:textValue.value},...draftControlled?{draft:props.draft}:{defaultDraft:draft.value},...formatControlled?{format:props.format}:{defaultFormat:format.value},allowAlpha:props.allowAlpha,channelStep:props.channelStep,alphaStep:props.alphaStep,disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>emit("update:modelValue",toHex(next)),onDraftChange:next=>emit("update:draft",next),onFormatChange:next=>emit("update:format",next),onUpdate:refresh});connectParts();refresh()};provide(rootKey,{state,allowAlpha:computed(()=>props.allowAlpha),registerNative:element=>{native.value=element;if(element!==void 0)connection.value?.setNativeInputAttributes(element)},registerText:element=>{text.value=element;if(element!==void 0)connection.value?.setTextInputAttributes(element)},registerChannel:(element,name)=>{if(element===void 0)channels.delete(name);else{channels.set(name,element);connection.value?.setChannelInputAttributes(element,name)}},registerCoordinate:(element,model,name,kind)=>{coordinates.set(element,[model,name,kind]);if(kind==="range")connection.value?.setCoordinateSliderAttributes(element,model,name);else connection.value?.setCoordinateInputAttributes(element,model,name)},unregisterCoordinate:element=>{coordinates.delete(element)},registerArea:element=>{areaElement.value=element;if(element!==void 0)connection.value?.setAreaAttributes(element)},registerAreaThumb:element=>{areaThumb.value=element;if(element!==void 0)connection.value?.setAreaThumbAttributes(element)},registerHue:element=>{hue.value=element;if(element!==void 0)connection.value?.setHueInputAttributes(element)},registerAlpha:element=>{alpha.value=element;if(element!==void 0)connection.value?.setAlphaInputAttributes(element)},registerSwatch:element=>{swatch.value=element;if(element!==void 0)connection.value?.setSwatchAttributes(element)},setFormat:next=>{if(connection.value?.handleEvent({type:"set-format",format:next}))refresh()}});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.allowAlpha,()=>props.channelStep,()=>props.alphaStep,()=>props.disabled,()=>props.readonly,()=>props.label],connect);watch([()=>props.modelValue,()=>props.draft,()=>props.format],()=>{const target=connection.value;if(target===void 0)return;const result=target.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...draftControlled?{draft:props.draft}:{},...formatControlled?{format:props.format}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element instanceof HTMLElement?element:void 0},role:"group","aria-label":props.label,"aria-disabled":String(props.disabled),"aria-readonly":String(props.readonly),"data-scope":"color-picker","data-part":"root","data-format":state.value.format,"data-channel":state.value.channel,"data-revision":String(revision.value)}),{default:()=>slots["default"]?.(state.value)});if(props.name===void 0&&props.form===void 0&&!props.required&&!participation.participating)return visual;return[visual,h("input",{ref:element=>{submission.value=element instanceof HTMLInputElement?element:void 0},type:"hidden",name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.text})]}}});const ColorPickerLabel=simplePart("Label","label","label");const ColorPickerControl=simplePart("Control","control","div");const ColorPickerNativeInput=inputPart("NativeInput","native-input",(root,element)=>root.registerNative(element));const ColorPickerTextInput=inputPart("TextInput","text-input",(root,element)=>root.registerText(element));const ColorPickerChannelInput=defineComponent({name:"SectileColorPickerChannelInput",inheritAttrs:false,props:{channel:{type:String,required:true},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerChannelInput");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerChannel(element instanceof HTMLInputElement?element:void 0,props.channel),type:"range",min:0,max:255,step:1,value:root.state.value.value[props.channel],disabled:root.state.value.disabled||props.channel==="alpha"&&!root.allowAlpha.value,"aria-label":`${props.channel} channel`,"data-scope":"color-picker","data-part":"channel-input","data-channel":props.channel}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerCoordinateInput=coordinatePart("CoordinateInput","coordinate-input","number");const ColorPickerCoordinateSlider=coordinatePart("CoordinateSlider","coordinate-slider","range");const ColorPickerArea=defineComponent({name:"SectileColorPickerArea",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerArea");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerArea(element instanceof HTMLElement?element:void 0),tabindex:root.state.value.disabled?-1:0,"aria-label":"Color saturation and brightness","aria-readonly":String(root.state.value.readonly),"data-scope":"color-picker","data-part":"area",style:{"--sectile-color-area-hue":`hsl(${root.state.value.area.hue} 100% 50%)`}}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerAreaThumb=defineComponent({name:"SectileColorPickerAreaThumb",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"span"}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerAreaThumb");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerAreaThumb(element instanceof HTMLElement?element:void 0),"aria-hidden":"true","data-scope":"color-picker","data-part":"area-thumb",style:{"--sectile-color-area-x":`${root.state.value.area.x*100}%`,"--sectile-color-area-y":`${(1-root.state.value.area.y)*100}%`,backgroundColor:root.state.value.cssColor}}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerHueSlider=inputPart("HueSlider","hue-slider",(root,element)=>root.registerHue(element));const ColorPickerAlphaSlider=inputPart("AlphaSlider","alpha-slider",(root,element)=>root.registerAlpha(element));const ColorPickerSwatch=defineComponent({name:"SectileColorPickerSwatch",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerSwatch");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerSwatch(element instanceof HTMLElement?element:void 0),style:{backgroundColor:root.state.value.cssColor},"aria-label":root.state.value.text,"data-scope":"color-picker","data-part":"swatch"}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerValueText=defineComponent({name:"SectileColorPickerValueText",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerValueText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"color-picker","data-part":"value-text"}),{default:()=>slots["default"]?.(root.state.value)??root.state.value.text})}});const ColorPickerFormatTrigger=defineComponent({name:"SectileColorPickerFormatTrigger",inheritAttrs:false,props:{format:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerFormatTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly,"aria-pressed":String(root.state.value.format===props.format),"data-scope":"color-picker","data-part":"format-trigger","data-state":root.state.value.format===props.format?"active":"inactive",onClick:event=>{if(!event.defaultPrevented)root.setFormat(props.format)}}),{default:()=>slots["default"]?.(root.state.value)})}});function simplePart(name,part,as){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:as}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"color-picker","data-part":part}),{default:()=>slots["default"]?.(root.state.value)})}})}function coordinatePart(name,part,kind){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{format:{type:String,required:true},coordinate:{type:String,required:true},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);let registered;onBeforeUnmount(()=>{if(registered!==void 0)root.unregisterCoordinate(registered)});return()=>{const entry=root.state.value.coordinates.find(item=>item.coordinate===props.coordinate);return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{const next=element instanceof HTMLInputElement?element:void 0;if(registered!==void 0&&registered!==next)root.unregisterCoordinate(registered);registered=next;if(next!==void 0)root.registerCoordinate(next,props.format,props.coordinate,kind)},type:kind,min:entry?.min,max:entry?.max,step:entry?.step,value:entry?.value,disabled:root.state.value.disabled||props.coordinate==="alpha"&&!root.allowAlpha.value,readonly:kind==="number"?root.state.value.readonly:void 0,"aria-readonly":String(root.state.value.readonly),"aria-label":entry?.label??props.coordinate,"aria-valuetext":entry===void 0?void 0:`${entry.value}${entry.unit}`,"data-scope":"color-picker","data-part":part,"data-coordinate":props.coordinate,"data-format":props.format,style:{"--sectile-color-coordinate-color":root.state.value.cssColor}}),{default:()=>slots["default"]?.(root.state.value)})}}})}function inputPart(name,part,register){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>register(root,element instanceof HTMLInputElement?element:void 0),disabled:root.state.value.disabled,readonly:name==="TextInput"?root.state.value.readonly:void 0,"aria-readonly":String(root.state.value.readonly),"data-scope":"color-picker","data-part":part}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside ColorPickerRoot.`);return root}function parseInitial(text){const result=parseColorValue(text);return result.ok?result.value:Object.freeze({red:0,green:0,blue:0,alpha:255})}function toHex(value){const result=formatColorValue(value,"hex");return result.ok?result.value:"#000000"}export{ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createColorPicker,formatColorValue,parseColorValue}from"@sectile/dom/color-picker";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{Primitive}from"./primitive.js";const rootKey=Symbol("SectileColorPickerRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const ColorPickerRoot=defineComponent({name:"SectileColorPickerRoot",inheritAttrs:false,props:{modelValue:{type:String,default:void 0},defaultValue:{type:String,default:"#5b6df6"},draft:{type:String,default:void 0},defaultDraft:{type:String,default:null},format:{type:String,default:void 0},defaultFormat:{type:String,default:"hex"},allowAlpha:{type:Boolean,default:true},channelStep:{type:Number,default:1},alphaStep:{type:Number,default:17},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},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,"update:draft":_value=>true,"update:format":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const connection=shallowRef();const native=shallowRef();const text=shallowRef();const swatch=shallowRef();const areaElement=shallowRef();const areaThumb=shallowRef();const hue=shallowRef();const alpha=shallowRef();const channels=new Map;const coordinates=new Map;const submission=shallowRef();const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>text.value??native.value??areaElement.value??root.value??null,submissions:[{element:()=>submission.value??null,capabilities:hiddenInputSubmissionCapabilities}]});const valueControlled=props.modelValue!==void 0;const draftControlled=props.draft!==void 0;const formatControlled=props.format!==void 0;const noDraftProposal=Symbol("no-draft-proposal");let proposedDraft=noDraftProposal;let textComposing=false;let reconnectPending=false;let reconnectTimer=null;const initialValue=parseInitial(props.modelValue??props.defaultValue);const value=shallowRef(initialValue);const draft=shallowRef(props.draft!==void 0?props.draft:props.defaultDraft);const format=shallowRef(props.format??props.defaultFormat);const channel=shallowRef("red");const textValue=shallowRef(props.modelValue??props.defaultValue);const cssColor=shallowRef("rgb(91, 109, 246)");const area=shallowRef({x:.604,y:.965,hue:233,alpha:initialValue.alpha/255});const coordinateValues=shallowRef([]);const revision=shallowRef(0);const state=computed(()=>({value:value.value,text:textValue.value,cssColor:cssColor.value,draft:draft.value,format:format.value,channel:channel.value,area:area.value,coordinates:coordinateValues.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const target=connection.value;if(target===void 0)return;const snapshot=target.getSnapshot();revision.value=snapshot.revision;value.value=snapshot.state.value;draft.value=snapshot.state.draft;format.value=snapshot.state.format;channel.value=snapshot.state.channel;textValue.value=target.getText();cssColor.value=target.getCSSColor();area.value=target.getAreaValue();coordinateValues.value=target.getCoordinates()};const syncControlledValues=()=>{const target=connection.value;if(target===void 0)return;const result=target.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...draftControlled?{draft:props.draft}:{},...formatControlled?{format:props.format}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};const connectParts=()=>{const target=connection.value;if(target===void 0)return;if(native.value!==void 0)target.setNativeInputAttributes(native.value);if(text.value!==void 0)target.setTextInputAttributes(text.value);if(swatch.value!==void 0)target.setSwatchAttributes(swatch.value);if(areaElement.value!==void 0)target.setAreaAttributes(areaElement.value);if(areaThumb.value!==void 0)target.setAreaThumbAttributes(areaThumb.value);if(hue.value!==void 0)target.setHueInputAttributes(hue.value);if(alpha.value!==void 0)target.setAlphaInputAttributes(alpha.value);for(const[name,element]of channels)target.setChannelInputAttributes(element,name);for(const[element,[model,name,kind]]of coordinates){if(kind==="range")target.setCoordinateSliderAttributes(element,model,name);else target.setCoordinateInputAttributes(element,model,name)}};const connect=()=>{connection.value?.disconnect();if(root.value===void 0)return;connection.value=createColorPicker({root:root.value,...valueControlled?{value:props.modelValue}:{defaultValue:textValue.value},...draftControlled?{draft:proposedDraft===noDraftProposal?props.draft:proposedDraft}:{defaultDraft:draft.value},...formatControlled?{format:props.format}:{defaultFormat:format.value},allowAlpha:props.allowAlpha,channelStep:props.channelStep,alphaStep:props.alphaStep,disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>emit("update:modelValue",toHex(next)),onDraftChange:next=>{emit("update:draft",next);if(!draftControlled)return;proposedDraft=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedDraft!==proposal)return;proposedDraft=noDraftProposal;syncControlledValues()})},onFormatChange:next=>emit("update:format",next),onUpdate:refresh});connectParts();refresh()};const requestConnect=()=>{if(textComposing){reconnectPending=true;return}connect()};const setTextComposing=composing=>{textComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(textComposing)return;reconnectPending=false;connect()},0)};provide(rootKey,{state,allowAlpha:computed(()=>props.allowAlpha),registerNative:element=>{native.value=element;if(element!==void 0)connection.value?.setNativeInputAttributes(element)},registerText:element=>{const changed=text.value!==element;text.value=element;if(changed&&element!==void 0)connection.value?.setTextInputAttributes(element)},registerChannel:(element,name)=>{if(element===void 0)channels.delete(name);else{channels.set(name,element);connection.value?.setChannelInputAttributes(element,name)}},registerCoordinate:(element,model,name,kind)=>{coordinates.set(element,[model,name,kind]);if(kind==="range")connection.value?.setCoordinateSliderAttributes(element,model,name);else connection.value?.setCoordinateInputAttributes(element,model,name)},unregisterCoordinate:element=>{coordinates.delete(element)},registerArea:element=>{areaElement.value=element;if(element!==void 0)connection.value?.setAreaAttributes(element)},registerAreaThumb:element=>{areaThumb.value=element;if(element!==void 0)connection.value?.setAreaThumbAttributes(element)},registerHue:element=>{hue.value=element;if(element!==void 0)connection.value?.setHueInputAttributes(element)},registerAlpha:element=>{alpha.value=element;if(element!==void 0)connection.value?.setAlphaInputAttributes(element)},registerSwatch:element=>{swatch.value=element;if(element!==void 0)connection.value?.setSwatchAttributes(element)},setTextComposing,setFormat:next=>{if(connection.value?.handleEvent({type:"set-format",format:next}))refresh()}});onMounted(connect);onBeforeUnmount(()=>{if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;proposedDraft=noDraftProposal;connection.value?.disconnect()});watch([()=>props.allowAlpha,()=>props.channelStep,()=>props.alphaStep,()=>props.disabled,()=>props.readonly,()=>props.label],requestConnect);watch([()=>props.modelValue,()=>props.draft,()=>props.format],()=>{proposedDraft=noDraftProposal;syncControlledValues()});return()=>{const visual=h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element instanceof HTMLElement?element:void 0},role:"group","aria-label":props.label,"aria-disabled":String(props.disabled),"aria-readonly":String(props.readonly),"data-scope":"color-picker","data-part":"root","data-format":state.value.format,"data-channel":state.value.channel,"data-revision":String(revision.value)}),{default:()=>slots["default"]?.(state.value)});if(props.name===void 0&&props.form===void 0&&!props.required&&!participation.participating)return visual;return[visual,h("input",{ref:element=>{submission.value=element instanceof HTMLInputElement?element:void 0},type:"hidden",name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.text})]}}});const ColorPickerLabel=simplePart("Label","label","label");const ColorPickerControl=simplePart("Control","control","div");const ColorPickerNativeInput=inputPart("NativeInput","native-input",(root,element)=>root.registerNative(element));const ColorPickerTextInput=inputPart("TextInput","text-input",(root,element)=>root.registerText(element));const ColorPickerChannelInput=defineComponent({name:"SectileColorPickerChannelInput",inheritAttrs:false,props:{channel:{type:String,required:true},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerChannelInput");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerChannel(element instanceof HTMLInputElement?element:void 0,props.channel),type:"range",min:0,max:255,step:1,value:root.state.value.value[props.channel],disabled:root.state.value.disabled||props.channel==="alpha"&&!root.allowAlpha.value,"aria-label":`${props.channel} channel`,"data-scope":"color-picker","data-part":"channel-input","data-channel":props.channel}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerCoordinateInput=coordinatePart("CoordinateInput","coordinate-input","number");const ColorPickerCoordinateSlider=coordinatePart("CoordinateSlider","coordinate-slider","range");const ColorPickerArea=defineComponent({name:"SectileColorPickerArea",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerArea");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerArea(element instanceof HTMLElement?element:void 0),tabindex:root.state.value.disabled?-1:0,"aria-label":"Color saturation and brightness","aria-readonly":String(root.state.value.readonly),"data-scope":"color-picker","data-part":"area",style:{"--sectile-color-area-hue":`hsl(${root.state.value.area.hue} 100% 50%)`}}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerAreaThumb=defineComponent({name:"SectileColorPickerAreaThumb",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"span"}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerAreaThumb");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerAreaThumb(element instanceof HTMLElement?element:void 0),"aria-hidden":"true","data-scope":"color-picker","data-part":"area-thumb",style:{"--sectile-color-area-x":`${root.state.value.area.x*100}%`,"--sectile-color-area-y":`${(1-root.state.value.area.y)*100}%`,backgroundColor:root.state.value.cssColor}}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerHueSlider=inputPart("HueSlider","hue-slider",(root,element)=>root.registerHue(element));const ColorPickerAlphaSlider=inputPart("AlphaSlider","alpha-slider",(root,element)=>root.registerAlpha(element));const ColorPickerSwatch=defineComponent({name:"SectileColorPickerSwatch",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerSwatch");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.registerSwatch(element instanceof HTMLElement?element:void 0),style:{backgroundColor:root.state.value.cssColor},"aria-label":root.state.value.text,"data-scope":"color-picker","data-part":"swatch"}),{default:()=>slots["default"]?.(root.state.value)})}});const ColorPickerValueText=defineComponent({name:"SectileColorPickerValueText",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerValueText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"color-picker","data-part":"value-text"}),{default:()=>slots["default"]?.(root.state.value)??root.state.value.text})}});const ColorPickerFormatTrigger=defineComponent({name:"SectileColorPickerFormatTrigger",inheritAttrs:false,props:{format:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ColorPickerFormatTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly,"aria-pressed":String(root.state.value.format===props.format),"data-scope":"color-picker","data-part":"format-trigger","data-state":root.state.value.format===props.format?"active":"inactive",onClick:event=>{if(!event.defaultPrevented)root.setFormat(props.format)}}),{default:()=>slots["default"]?.(root.state.value)})}});function simplePart(name,part,as){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:as}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"color-picker","data-part":part}),{default:()=>slots["default"]?.(root.state.value)})}})}function coordinatePart(name,part,kind){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{format:{type:String,required:true},coordinate:{type:String,required:true},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);let registered;onBeforeUnmount(()=>{if(registered!==void 0)root.unregisterCoordinate(registered)});return()=>{const entry=root.state.value.coordinates.find(item=>item.coordinate===props.coordinate);return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{const next=element instanceof HTMLInputElement?element:void 0;if(registered!==void 0&&registered!==next)root.unregisterCoordinate(registered);registered=next;if(next!==void 0)root.registerCoordinate(next,props.format,props.coordinate,kind)},type:kind,min:entry?.min,max:entry?.max,step:entry?.step,value:entry?.value,disabled:root.state.value.disabled||props.coordinate==="alpha"&&!root.allowAlpha.value,readonly:kind==="number"?root.state.value.readonly:void 0,"aria-readonly":String(root.state.value.readonly),"aria-label":entry?.label??props.coordinate,"aria-valuetext":entry===void 0?void 0:`${entry.value}${entry.unit}`,"data-scope":"color-picker","data-part":part,"data-coordinate":props.coordinate,"data-format":props.format,style:{"--sectile-color-coordinate-color":root.state.value.cssColor}}),{default:()=>slots["default"]?.(root.state.value)})}}})}function inputPart(name,part,register){return defineComponent({name:`SectileColorPicker${name}`,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`ColorPicker${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>register(root,element instanceof HTMLInputElement?element:void 0),disabled:root.state.value.disabled,readonly:name==="TextInput"?root.state.value.readonly:void 0,"aria-readonly":String(root.state.value.readonly),...name==="TextInput"?{onCompositionstart:()=>root.setTextComposing(true),onCompositionend:()=>root.setTextComposing(false)}:{},"data-scope":"color-picker","data-part":part}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside ColorPickerRoot.`);return root}function parseInitial(text){const result=parseColorValue(text);return result.ok?result.value:Object.freeze({red:0,green:0,blue:0,alpha:255})}function toHex(value){const result=formatColorValue(value,"hex");return result.ok?result.value:"#000000"}export{ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText};
2
2
  //# sourceMappingURL=color-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-picker.ts"],"mappings":"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","names":[],"file":"color-picker.js"}
1
+ {"version":3,"sources":["../src/color-picker.ts"],"mappings":"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","names":[],"file":"color-picker.js"}