@hina-ui/vue 1.7.4 → 1.7.6

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 (536) hide show
  1. package/README.md +37 -0
  2. package/dist/index.js +2251 -992
  3. package/dist/index.js.map +1 -1
  4. package/dist/shared/behavior/anchor-follow.ts +95 -0
  5. package/dist/shared/behavior/form.ts +187 -0
  6. package/dist/shared/behavior/ripple.ts +222 -0
  7. package/dist/shared/behavior/spoiler/painter.ts +197 -0
  8. package/dist/shared/behavior/spoiler/worklet.ts +199 -0
  9. package/dist/shared/behavior/toast.ts +243 -0
  10. package/dist/shared/lib/anchor.ts +83 -0
  11. package/dist/shared/lib/banner.ts +10 -0
  12. package/dist/shared/lib/calendar/format.ts +23 -0
  13. package/dist/shared/lib/caret.ts +48 -0
  14. package/dist/shared/lib/collapse.ts +29 -0
  15. package/dist/shared/lib/command-palette/hotkey.ts +27 -0
  16. package/dist/shared/lib/command-palette/match.ts +92 -0
  17. package/dist/shared/lib/data-list.ts +40 -0
  18. package/dist/shared/lib/data-table/column-sizing-styles.ts +41 -0
  19. package/dist/shared/lib/data-table/column-sizing.ts +101 -0
  20. package/dist/shared/lib/data-table/csv.ts +51 -0
  21. package/dist/shared/lib/data-table/layout.ts +199 -0
  22. package/dist/shared/lib/data-table/resize.ts +66 -0
  23. package/dist/shared/lib/data-table/state.ts +226 -0
  24. package/dist/shared/lib/data-table/utils.ts +80 -0
  25. package/dist/shared/lib/date-range-field/validity.ts +21 -0
  26. package/dist/shared/lib/date.ts +111 -0
  27. package/dist/shared/lib/field-focus.ts +36 -0
  28. package/dist/shared/lib/file-upload/select.ts +58 -0
  29. package/dist/shared/lib/file-upload/size.ts +16 -0
  30. package/dist/shared/lib/form/errors.ts +48 -0
  31. package/dist/shared/lib/form/focus.ts +10 -0
  32. package/dist/shared/lib/form/standard-schema.ts +26 -0
  33. package/dist/shared/lib/form/values.ts +23 -0
  34. package/dist/shared/lib/highlighter.ts +98 -0
  35. package/dist/shared/lib/iris-origin.ts +40 -0
  36. package/dist/shared/lib/lightbox/clip.ts +117 -0
  37. package/dist/shared/lib/lightbox/download.ts +29 -0
  38. package/dist/shared/lib/lightbox/gesture.ts +54 -0
  39. package/dist/shared/lib/lightbox/paging.ts +33 -0
  40. package/dist/shared/lib/lightbox/pose.ts +142 -0
  41. package/dist/shared/lib/lightbox/source.ts +17 -0
  42. package/dist/shared/lib/lightbox/types.ts +14 -0
  43. package/dist/shared/lib/lightbox/zoom.ts +127 -0
  44. package/dist/shared/lib/meter-group.ts +16 -0
  45. package/dist/shared/lib/overlay-anchor.ts +42 -0
  46. package/dist/shared/lib/pagination.ts +16 -0
  47. package/dist/shared/lib/pointer-corridor.ts +26 -0
  48. package/dist/shared/lib/qr-code-export.ts +68 -0
  49. package/dist/shared/lib/range-calendar/limit.ts +11 -0
  50. package/dist/shared/lib/rating.ts +4 -0
  51. package/dist/shared/lib/relative-time.ts +20 -0
  52. package/dist/shared/lib/scroll-area.ts +77 -0
  53. package/dist/shared/lib/scroll-restore.ts +148 -0
  54. package/dist/shared/lib/toast-layout.ts +42 -0
  55. package/dist/shared/lib/tree/selection.ts +131 -0
  56. package/dist/shared/lib/tree-select/filter.ts +19 -0
  57. package/dist/shared/lib/virtual/choices.ts +193 -0
  58. package/dist/shared/lib/virtual/collection.ts +71 -0
  59. package/dist/shared/lib/virtual/filter.ts +26 -0
  60. package/dist/shared/lib/virtual/flow.ts +32 -0
  61. package/dist/shared/lib/virtual/list.ts +63 -0
  62. package/dist/shared/lib/virtual/navigation.ts +26 -0
  63. package/dist/shared/lib/virtual/tree.ts +98 -0
  64. package/dist/shared/locale/en-US.ts +220 -0
  65. package/dist/shared/locale/index.ts +52 -0
  66. package/dist/shared/locale/types.ts +225 -0
  67. package/dist/shared/locale/zh-CN.ts +215 -0
  68. package/dist/shared/primitives/number-field/LICENSE +21 -0
  69. package/dist/shared/primitives/number-field/index.ts +407 -0
  70. package/dist/shared/styles/semantic.css +10 -2
  71. package/dist/shared/types/autocomplete.ts +16 -0
  72. package/dist/shared/types/data-table.ts +170 -0
  73. package/dist/shared/types/pagination.ts +19 -0
  74. package/dist/shared/types/select.ts +23 -0
  75. package/dist/shared/types/tree-select.ts +34 -0
  76. package/dist/shared/types/tree.ts +20 -0
  77. package/dist/types/shared/src/behavior/anchor-follow.d.ts +13 -0
  78. package/dist/types/shared/src/behavior/anchor-follow.d.ts.map +1 -0
  79. package/dist/types/shared/src/behavior/form.d.ts +24 -0
  80. package/dist/types/shared/src/behavior/form.d.ts.map +1 -0
  81. package/dist/types/shared/src/behavior/ripple.d.ts +11 -0
  82. package/dist/types/shared/src/behavior/ripple.d.ts.map +1 -0
  83. package/dist/types/shared/src/behavior/spoiler/painter.d.ts +35 -0
  84. package/dist/types/shared/src/behavior/spoiler/painter.d.ts.map +1 -0
  85. package/dist/types/shared/src/behavior/spoiler/worklet.d.ts +2 -0
  86. package/dist/types/shared/src/behavior/spoiler/worklet.d.ts.map +1 -0
  87. package/dist/types/shared/src/behavior/toast.d.ts +72 -0
  88. package/dist/types/shared/src/behavior/toast.d.ts.map +1 -0
  89. package/dist/types/shared/src/lib/anchor.d.ts +31 -0
  90. package/dist/types/shared/src/lib/anchor.d.ts.map +1 -0
  91. package/dist/types/shared/src/lib/banner.d.ts +3 -0
  92. package/dist/types/shared/src/lib/banner.d.ts.map +1 -0
  93. package/dist/types/shared/src/lib/calendar/format.d.ts +7 -0
  94. package/dist/types/shared/src/lib/calendar/format.d.ts.map +1 -0
  95. package/dist/types/shared/src/lib/caret.d.ts +2 -0
  96. package/dist/types/shared/src/lib/caret.d.ts.map +1 -0
  97. package/dist/types/shared/src/lib/collapse.d.ts +9 -0
  98. package/dist/types/shared/src/lib/collapse.d.ts.map +1 -0
  99. package/dist/types/shared/src/lib/command-palette/hotkey.d.ts +9 -0
  100. package/dist/types/shared/src/lib/command-palette/hotkey.d.ts.map +1 -0
  101. package/dist/types/shared/src/lib/command-palette/match.d.ts +21 -0
  102. package/dist/types/shared/src/lib/command-palette/match.d.ts.map +1 -0
  103. package/dist/types/shared/src/lib/data-list.d.ts +7 -0
  104. package/dist/types/shared/src/lib/data-list.d.ts.map +1 -0
  105. package/dist/types/shared/src/lib/data-table/column-sizing-styles.d.ts +8 -0
  106. package/dist/types/shared/src/lib/data-table/column-sizing-styles.d.ts.map +1 -0
  107. package/dist/types/shared/src/lib/data-table/column-sizing.d.ts +22 -0
  108. package/dist/types/shared/src/lib/data-table/column-sizing.d.ts.map +1 -0
  109. package/dist/types/shared/src/lib/data-table/csv.d.ts +5 -0
  110. package/dist/types/shared/src/lib/data-table/csv.d.ts.map +1 -0
  111. package/dist/types/shared/src/lib/data-table/layout.d.ts +28 -0
  112. package/dist/types/shared/src/lib/data-table/layout.d.ts.map +1 -0
  113. package/dist/types/shared/src/lib/data-table/resize.d.ts +15 -0
  114. package/dist/types/shared/src/lib/data-table/resize.d.ts.map +1 -0
  115. package/dist/types/shared/src/lib/data-table/state.d.ts +103 -0
  116. package/dist/types/shared/src/lib/data-table/state.d.ts.map +1 -0
  117. package/dist/types/shared/src/lib/data-table/utils.d.ts +11 -0
  118. package/dist/types/shared/src/lib/data-table/utils.d.ts.map +1 -0
  119. package/dist/types/shared/src/lib/date-range-field/validity.d.ts +12 -0
  120. package/dist/types/shared/src/lib/date-range-field/validity.d.ts.map +1 -0
  121. package/dist/types/shared/src/lib/date.d.ts +28 -0
  122. package/dist/types/shared/src/lib/date.d.ts.map +1 -0
  123. package/dist/types/shared/src/lib/field-focus.d.ts +2 -0
  124. package/dist/types/shared/src/lib/field-focus.d.ts.map +1 -0
  125. package/dist/types/shared/src/lib/file-upload/select.d.ts +17 -0
  126. package/dist/types/shared/src/lib/file-upload/select.d.ts.map +1 -0
  127. package/dist/types/shared/src/lib/file-upload/size.d.ts +2 -0
  128. package/dist/types/shared/src/lib/file-upload/size.d.ts.map +1 -0
  129. package/dist/types/shared/src/lib/form/errors.d.ts +7 -0
  130. package/dist/types/shared/src/lib/form/errors.d.ts.map +1 -0
  131. package/dist/types/shared/src/lib/form/focus.d.ts +2 -0
  132. package/dist/types/shared/src/lib/form/focus.d.ts.map +1 -0
  133. package/dist/types/shared/src/lib/form/standard-schema.d.ts +23 -0
  134. package/dist/types/shared/src/lib/form/standard-schema.d.ts.map +1 -0
  135. package/dist/types/shared/src/lib/form/values.d.ts +3 -0
  136. package/dist/types/shared/src/lib/form/values.d.ts.map +1 -0
  137. package/dist/types/shared/src/lib/highlighter.d.ts +4 -0
  138. package/dist/types/shared/src/lib/highlighter.d.ts.map +1 -0
  139. package/dist/types/shared/src/lib/iris-origin.d.ts +6 -0
  140. package/dist/types/shared/src/lib/iris-origin.d.ts.map +1 -0
  141. package/dist/types/shared/src/lib/lightbox/clip.d.ts +16 -0
  142. package/dist/types/shared/src/lib/lightbox/clip.d.ts.map +1 -0
  143. package/dist/types/shared/src/lib/lightbox/download.d.ts +3 -0
  144. package/dist/types/shared/src/lib/lightbox/download.d.ts.map +1 -0
  145. package/dist/types/shared/src/lib/lightbox/gesture.d.ts +26 -0
  146. package/dist/types/shared/src/lib/lightbox/gesture.d.ts.map +1 -0
  147. package/dist/types/shared/src/lib/lightbox/paging.d.ts +9 -0
  148. package/dist/types/shared/src/lib/lightbox/paging.d.ts.map +1 -0
  149. package/dist/types/shared/src/lib/lightbox/pose.d.ts +38 -0
  150. package/dist/types/shared/src/lib/lightbox/pose.d.ts.map +1 -0
  151. package/dist/types/shared/src/lib/lightbox/source.d.ts +4 -0
  152. package/dist/types/shared/src/lib/lightbox/source.d.ts.map +1 -0
  153. package/dist/types/shared/src/lib/lightbox/types.d.ts +16 -0
  154. package/dist/types/shared/src/lib/lightbox/types.d.ts.map +1 -0
  155. package/dist/types/shared/src/lib/lightbox/zoom.d.ts +40 -0
  156. package/dist/types/shared/src/lib/lightbox/zoom.d.ts.map +1 -0
  157. package/dist/types/shared/src/lib/meter-group.d.ts +5 -0
  158. package/dist/types/shared/src/lib/meter-group.d.ts.map +1 -0
  159. package/dist/types/shared/src/lib/overlay-anchor.d.ts +10 -0
  160. package/dist/types/shared/src/lib/overlay-anchor.d.ts.map +1 -0
  161. package/dist/types/shared/src/lib/pagination.d.ts +4 -0
  162. package/dist/types/shared/src/lib/pagination.d.ts.map +1 -0
  163. package/dist/types/shared/src/lib/pointer-corridor.d.ts +7 -0
  164. package/dist/types/shared/src/lib/pointer-corridor.d.ts.map +1 -0
  165. package/dist/types/shared/src/lib/qr-code-export.d.ts +6 -0
  166. package/dist/types/shared/src/lib/qr-code-export.d.ts.map +1 -0
  167. package/dist/types/shared/src/lib/range-calendar/limit.d.ts +3 -0
  168. package/dist/types/shared/src/lib/range-calendar/limit.d.ts.map +1 -0
  169. package/dist/types/shared/src/lib/rating.d.ts +2 -0
  170. package/dist/types/shared/src/lib/rating.d.ts.map +1 -0
  171. package/dist/types/shared/src/lib/relative-time.d.ts +2 -0
  172. package/dist/types/shared/src/lib/relative-time.d.ts.map +1 -0
  173. package/dist/types/shared/src/lib/scroll-area.d.ts +50 -0
  174. package/dist/types/shared/src/lib/scroll-area.d.ts.map +1 -0
  175. package/dist/types/shared/src/lib/scroll-restore.d.ts +34 -0
  176. package/dist/types/shared/src/lib/scroll-restore.d.ts.map +1 -0
  177. package/dist/types/shared/src/lib/toast-layout.d.ts +13 -0
  178. package/dist/types/shared/src/lib/toast-layout.d.ts.map +1 -0
  179. package/dist/types/shared/src/lib/tree/selection.d.ts +23 -0
  180. package/dist/types/shared/src/lib/tree/selection.d.ts.map +1 -0
  181. package/dist/types/shared/src/lib/tree-select/filter.d.ts +7 -0
  182. package/dist/types/shared/src/lib/tree-select/filter.d.ts.map +1 -0
  183. package/dist/types/shared/src/lib/virtual/choices.d.ts +59 -0
  184. package/dist/types/shared/src/lib/virtual/choices.d.ts.map +1 -0
  185. package/dist/types/shared/src/lib/virtual/collection.d.ts +25 -0
  186. package/dist/types/shared/src/lib/virtual/collection.d.ts.map +1 -0
  187. package/dist/types/shared/src/lib/virtual/flow.d.ts +18 -0
  188. package/dist/types/shared/src/lib/virtual/flow.d.ts.map +1 -0
  189. package/dist/types/shared/src/lib/virtual/list.d.ts +46 -0
  190. package/dist/types/shared/src/lib/virtual/list.d.ts.map +1 -0
  191. package/dist/types/shared/src/lib/virtual/navigation.d.ts +3 -0
  192. package/dist/types/shared/src/lib/virtual/navigation.d.ts.map +1 -0
  193. package/dist/types/shared/src/lib/virtual/tree.d.ts +31 -0
  194. package/dist/types/shared/src/lib/virtual/tree.d.ts.map +1 -0
  195. package/dist/types/shared/src/locale/en-US.d.ts +3 -0
  196. package/dist/types/shared/src/locale/en-US.d.ts.map +1 -0
  197. package/dist/types/shared/src/locale/index.d.ts +6 -0
  198. package/dist/types/shared/src/locale/index.d.ts.map +1 -0
  199. package/dist/types/shared/src/locale/types.d.ts +235 -0
  200. package/dist/types/shared/src/locale/types.d.ts.map +1 -0
  201. package/dist/types/shared/src/locale/zh-CN.d.ts +3 -0
  202. package/dist/types/shared/src/locale/zh-CN.d.ts.map +1 -0
  203. package/dist/types/shared/src/primitives/number-field/index.d.ts +155 -0
  204. package/dist/types/shared/src/primitives/number-field/index.d.ts.map +1 -0
  205. package/dist/types/shared/src/types/autocomplete.d.ts +14 -0
  206. package/dist/types/shared/src/types/autocomplete.d.ts.map +1 -0
  207. package/dist/types/shared/src/types/data-table.d.ts +169 -0
  208. package/dist/types/shared/src/types/data-table.d.ts.map +1 -0
  209. package/dist/types/shared/src/types/pagination.d.ts +23 -0
  210. package/dist/types/shared/src/types/pagination.d.ts.map +1 -0
  211. package/dist/types/shared/src/types/select.d.ts +14 -0
  212. package/dist/types/shared/src/types/select.d.ts.map +1 -0
  213. package/dist/types/shared/src/types/tree-select.d.ts +10 -0
  214. package/dist/types/shared/src/types/tree-select.d.ts.map +1 -0
  215. package/dist/types/shared/src/types/tree.d.ts +18 -0
  216. package/dist/types/shared/src/types/tree.d.ts.map +1 -0
  217. package/dist/types/shared/src/variants/autocomplete.d.ts +3 -0
  218. package/dist/types/shared/src/variants/autocomplete.d.ts.map +1 -0
  219. package/dist/types/shared/src/variants/editable.d.ts +52 -0
  220. package/dist/types/shared/src/variants/editable.d.ts.map +1 -0
  221. package/dist/types/shared/src/variants/float-button.d.ts +74 -0
  222. package/dist/types/shared/src/variants/float-button.d.ts.map +1 -0
  223. package/dist/types/shared/src/variants/split-button.d.ts +18 -0
  224. package/dist/types/shared/src/variants/split-button.d.ts.map +1 -0
  225. package/dist/types/vue/src/components/accordion/AccordionTrigger.vue.d.ts.map +1 -1
  226. package/dist/types/vue/src/components/anchor/Anchor.vue.d.ts.map +1 -1
  227. package/dist/types/vue/src/components/anchor/composables/useAnchor.d.ts +2 -7
  228. package/dist/types/vue/src/components/anchor/composables/useAnchor.d.ts.map +1 -1
  229. package/dist/types/vue/src/components/anchor/composables/useAnchorFollow.d.ts +1 -1
  230. package/dist/types/vue/src/components/anchor/composables/useAnchorFollow.d.ts.map +1 -1
  231. package/dist/types/vue/src/components/anchor/composables/useScrollSpy.d.ts +2 -5
  232. package/dist/types/vue/src/components/anchor/composables/useScrollSpy.d.ts.map +1 -1
  233. package/dist/types/vue/src/components/anchor/types.d.ts +1 -8
  234. package/dist/types/vue/src/components/anchor/types.d.ts.map +1 -1
  235. package/dist/types/vue/src/components/autocomplete/autocomplete.variants.d.ts +1 -1
  236. package/dist/types/vue/src/components/autocomplete/autocomplete.variants.d.ts.map +1 -1
  237. package/dist/types/vue/src/components/autocomplete/types.d.ts +1 -13
  238. package/dist/types/vue/src/components/autocomplete/types.d.ts.map +1 -1
  239. package/dist/types/vue/src/components/banner/utils/direction.d.ts +1 -2
  240. package/dist/types/vue/src/components/banner/utils/direction.d.ts.map +1 -1
  241. package/dist/types/vue/src/components/calendar/utils/format.d.ts +1 -6
  242. package/dist/types/vue/src/components/calendar/utils/format.d.ts.map +1 -1
  243. package/dist/types/vue/src/components/code-block/highlighter.d.ts +1 -3
  244. package/dist/types/vue/src/components/code-block/highlighter.d.ts.map +1 -1
  245. package/dist/types/vue/src/components/collapsible/CollapsibleTrigger.vue.d.ts.map +1 -1
  246. package/dist/types/vue/src/components/command-palette/composables/useCommandItems.d.ts +1 -1
  247. package/dist/types/vue/src/components/command-palette/utils/hotkey.d.ts +1 -8
  248. package/dist/types/vue/src/components/command-palette/utils/hotkey.d.ts.map +1 -1
  249. package/dist/types/vue/src/components/command-palette/utils/match.d.ts +5 -12
  250. package/dist/types/vue/src/components/command-palette/utils/match.d.ts.map +1 -1
  251. package/dist/types/vue/src/components/data-list/composables/useDataList.d.ts.map +1 -1
  252. package/dist/types/vue/src/components/data-list/utils/scroll.d.ts +1 -2
  253. package/dist/types/vue/src/components/data-list/utils/scroll.d.ts.map +1 -1
  254. package/dist/types/vue/src/components/data-table/column-sizing-styles.d.ts +1 -3
  255. package/dist/types/vue/src/components/data-table/column-sizing-styles.d.ts.map +1 -1
  256. package/dist/types/vue/src/components/data-table/column-sizing.d.ts +1 -21
  257. package/dist/types/vue/src/components/data-table/column-sizing.d.ts.map +1 -1
  258. package/dist/types/vue/src/components/data-table/composables/useDataTable.d.ts.map +1 -1
  259. package/dist/types/vue/src/components/data-table/composables/useTableColumns.d.ts.map +1 -1
  260. package/dist/types/vue/src/components/data-table/composables/useTableDrag.d.ts.map +1 -1
  261. package/dist/types/vue/src/components/data-table/composables/useTableExport.d.ts.map +1 -1
  262. package/dist/types/vue/src/components/data-table/composables/useTableResize.d.ts.map +1 -1
  263. package/dist/types/vue/src/components/data-table/composables/useTableResizeHandles.d.ts.map +1 -1
  264. package/dist/types/vue/src/components/data-table/composables/useTableVirtual.d.ts.map +1 -1
  265. package/dist/types/vue/src/components/data-table/types.d.ts +3 -153
  266. package/dist/types/vue/src/components/data-table/types.d.ts.map +1 -1
  267. package/dist/types/vue/src/components/data-table/utils.d.ts +1 -9
  268. package/dist/types/vue/src/components/data-table/utils.d.ts.map +1 -1
  269. package/dist/types/vue/src/components/date-range-field/utils/validity.d.ts +1 -11
  270. package/dist/types/vue/src/components/date-range-field/utils/validity.d.ts.map +1 -1
  271. package/dist/types/vue/src/components/editable/editable.variants.d.ts +1 -1
  272. package/dist/types/vue/src/components/editable/editable.variants.d.ts.map +1 -1
  273. package/dist/types/vue/src/components/file-upload/utils/select.d.ts +1 -16
  274. package/dist/types/vue/src/components/file-upload/utils/select.d.ts.map +1 -1
  275. package/dist/types/vue/src/components/file-upload/utils/size.d.ts +1 -1
  276. package/dist/types/vue/src/components/file-upload/utils/size.d.ts.map +1 -1
  277. package/dist/types/vue/src/components/float-button/float-button.variants.d.ts +1 -1
  278. package/dist/types/vue/src/components/float-button/float-button.variants.d.ts.map +1 -1
  279. package/dist/types/vue/src/components/form/Form.vue.d.ts +1 -1
  280. package/dist/types/vue/src/components/form/composables/useForm.d.ts +9 -15
  281. package/dist/types/vue/src/components/form/composables/useForm.d.ts.map +1 -1
  282. package/dist/types/vue/src/components/form/standard-schema.d.ts +1 -22
  283. package/dist/types/vue/src/components/form/standard-schema.d.ts.map +1 -1
  284. package/dist/types/vue/src/components/form/utils/errors.d.ts +1 -6
  285. package/dist/types/vue/src/components/form/utils/errors.d.ts.map +1 -1
  286. package/dist/types/vue/src/components/form/utils/focus.d.ts +1 -1
  287. package/dist/types/vue/src/components/form/utils/focus.d.ts.map +1 -1
  288. package/dist/types/vue/src/components/form/utils/values.d.ts +1 -2
  289. package/dist/types/vue/src/components/form/utils/values.d.ts.map +1 -1
  290. package/dist/types/vue/src/components/form-field/FormField.vue.d.ts.map +1 -1
  291. package/dist/types/vue/src/components/lightbox/composables/useLightboxHint.d.ts.map +1 -1
  292. package/dist/types/vue/src/components/lightbox/types.d.ts +1 -15
  293. package/dist/types/vue/src/components/lightbox/types.d.ts.map +1 -1
  294. package/dist/types/vue/src/components/lightbox/utils/clip.d.ts +1 -15
  295. package/dist/types/vue/src/components/lightbox/utils/clip.d.ts.map +1 -1
  296. package/dist/types/vue/src/components/lightbox/utils/download.d.ts +1 -2
  297. package/dist/types/vue/src/components/lightbox/utils/download.d.ts.map +1 -1
  298. package/dist/types/vue/src/components/lightbox/utils/gesture.d.ts +1 -25
  299. package/dist/types/vue/src/components/lightbox/utils/gesture.d.ts.map +1 -1
  300. package/dist/types/vue/src/components/lightbox/utils/paging.d.ts +1 -8
  301. package/dist/types/vue/src/components/lightbox/utils/paging.d.ts.map +1 -1
  302. package/dist/types/vue/src/components/lightbox/utils/pose.d.ts +1 -37
  303. package/dist/types/vue/src/components/lightbox/utils/pose.d.ts.map +1 -1
  304. package/dist/types/vue/src/components/lightbox/utils/source.d.ts +1 -3
  305. package/dist/types/vue/src/components/lightbox/utils/source.d.ts.map +1 -1
  306. package/dist/types/vue/src/components/lightbox/utils/zoom.d.ts +1 -39
  307. package/dist/types/vue/src/components/lightbox/utils/zoom.d.ts.map +1 -1
  308. package/dist/types/vue/src/components/meter-group/utils/tones.d.ts +1 -3
  309. package/dist/types/vue/src/components/meter-group/utils/tones.d.ts.map +1 -1
  310. package/dist/types/vue/src/components/month-grid/MonthGrid.vue.d.ts +1 -1
  311. package/dist/types/vue/src/components/multi-select/MultiSelect.vue.d.ts.map +1 -1
  312. package/dist/types/vue/src/components/pagination/composables/usePagination.d.ts +2 -2
  313. package/dist/types/vue/src/components/pagination/composables/usePagination.d.ts.map +1 -1
  314. package/dist/types/vue/src/components/pagination/types.d.ts +1 -22
  315. package/dist/types/vue/src/components/pagination/types.d.ts.map +1 -1
  316. package/dist/types/vue/src/components/pagination/utils/ranges.d.ts +1 -2
  317. package/dist/types/vue/src/components/pagination/utils/ranges.d.ts.map +1 -1
  318. package/dist/types/vue/src/components/password-input/PasswordInput.vue.d.ts +4 -1
  319. package/dist/types/vue/src/components/password-input/PasswordInput.vue.d.ts.map +1 -1
  320. package/dist/types/vue/src/components/prev-next/PrevNextLink.vue.d.ts.map +1 -1
  321. package/dist/types/vue/src/components/qr-code/export.d.ts +1 -2
  322. package/dist/types/vue/src/components/qr-code/export.d.ts.map +1 -1
  323. package/dist/types/vue/src/components/range-calendar/utils/limit.d.ts +1 -2
  324. package/dist/types/vue/src/components/range-calendar/utils/limit.d.ts.map +1 -1
  325. package/dist/types/vue/src/components/range-slider/RangeSlider.vue.d.ts +2 -2
  326. package/dist/types/vue/src/components/rating/utils/fill.d.ts +1 -1
  327. package/dist/types/vue/src/components/rating/utils/fill.d.ts.map +1 -1
  328. package/dist/types/vue/src/components/ripple/useRipple.d.ts.map +1 -1
  329. package/dist/types/vue/src/components/scroll-area/ScrollArea.vue.d.ts.map +1 -1
  330. package/dist/types/vue/src/components/scroll-area/composables/useEdgeShadow.d.ts +2 -1
  331. package/dist/types/vue/src/components/scroll-area/composables/useEdgeShadow.d.ts.map +1 -1
  332. package/dist/types/vue/src/components/scroll-area/composables/useLayerLock.d.ts.map +1 -1
  333. package/dist/types/vue/src/components/scroll-area/composables/useWheelRedirect.d.ts.map +1 -1
  334. package/dist/types/vue/src/components/scroll-area/scroll-restore.d.ts +1 -33
  335. package/dist/types/vue/src/components/scroll-area/scroll-restore.d.ts.map +1 -1
  336. package/dist/types/vue/src/components/search-input/SearchInput.vue.d.ts +4 -1
  337. package/dist/types/vue/src/components/search-input/SearchInput.vue.d.ts.map +1 -1
  338. package/dist/types/vue/src/components/select/types.d.ts +1 -13
  339. package/dist/types/vue/src/components/select/types.d.ts.map +1 -1
  340. package/dist/types/vue/src/components/slider/Slider.vue.d.ts +2 -2
  341. package/dist/types/vue/src/components/split-button/split-button.variants.d.ts +1 -1
  342. package/dist/types/vue/src/components/split-button/split-button.variants.d.ts.map +1 -1
  343. package/dist/types/vue/src/components/spoiler/SpoilerPainter.d.ts +1 -34
  344. package/dist/types/vue/src/components/spoiler/SpoilerPainter.d.ts.map +1 -1
  345. package/dist/types/vue/src/components/spoiler/utils/irisOrigin.d.ts +1 -5
  346. package/dist/types/vue/src/components/spoiler/utils/irisOrigin.d.ts.map +1 -1
  347. package/dist/types/vue/src/components/spoiler/worklet.d.ts +1 -1
  348. package/dist/types/vue/src/components/spoiler/worklet.d.ts.map +1 -1
  349. package/dist/types/vue/src/components/table/Table.vue.d.ts +6 -3
  350. package/dist/types/vue/src/components/table/Table.vue.d.ts.map +1 -1
  351. package/dist/types/vue/src/components/tabs/TabsList.vue.d.ts +6 -3
  352. package/dist/types/vue/src/components/tabs/TabsList.vue.d.ts.map +1 -1
  353. package/dist/types/vue/src/components/time/utils/relativeTime.d.ts +1 -1
  354. package/dist/types/vue/src/components/time/utils/relativeTime.d.ts.map +1 -1
  355. package/dist/types/vue/src/components/toast/composables/useToastLayout.d.ts +4 -11
  356. package/dist/types/vue/src/components/toast/composables/useToastLayout.d.ts.map +1 -1
  357. package/dist/types/vue/src/components/toast/store.d.ts +14 -62
  358. package/dist/types/vue/src/components/toast/store.d.ts.map +1 -1
  359. package/dist/types/vue/src/components/tree/composables/useTree.d.ts.map +1 -1
  360. package/dist/types/vue/src/components/tree/types.d.ts +1 -17
  361. package/dist/types/vue/src/components/tree/types.d.ts.map +1 -1
  362. package/dist/types/vue/src/components/tree/utils/selection.d.ts +1 -15
  363. package/dist/types/vue/src/components/tree/utils/selection.d.ts.map +1 -1
  364. package/dist/types/vue/src/components/tree-select/types.d.ts +1 -9
  365. package/dist/types/vue/src/components/tree-select/types.d.ts.map +1 -1
  366. package/dist/types/vue/src/components/tree-select/utils/filterTree.d.ts +1 -6
  367. package/dist/types/vue/src/components/tree-select/utils/filterTree.d.ts.map +1 -1
  368. package/dist/types/vue/src/components/virtual-list/composables/useVirtualList.d.ts +1 -1
  369. package/dist/types/vue/src/components/virtual-list/composables/useVirtualList.d.ts.map +1 -1
  370. package/dist/types/vue/src/components/visually-hidden/VisuallyHidden.vue.d.ts +4 -1
  371. package/dist/types/vue/src/components/visually-hidden/VisuallyHidden.vue.d.ts.map +1 -1
  372. package/dist/types/vue/src/lib/caret.d.ts +1 -1
  373. package/dist/types/vue/src/lib/caret.d.ts.map +1 -1
  374. package/dist/types/vue/src/lib/collapse.d.ts +2 -8
  375. package/dist/types/vue/src/lib/collapse.d.ts.map +1 -1
  376. package/dist/types/vue/src/lib/date.d.ts +1 -27
  377. package/dist/types/vue/src/lib/date.d.ts.map +1 -1
  378. package/dist/types/vue/src/lib/field-focus.d.ts +1 -1
  379. package/dist/types/vue/src/lib/field-focus.d.ts.map +1 -1
  380. package/dist/types/vue/src/lib/overlay-anchor.d.ts +2 -7
  381. package/dist/types/vue/src/lib/overlay-anchor.d.ts.map +1 -1
  382. package/dist/types/vue/src/lib/pointer-corridor.d.ts +1 -6
  383. package/dist/types/vue/src/lib/pointer-corridor.d.ts.map +1 -1
  384. package/dist/types/vue/src/lib/reka/useVirtualChoices.d.ts +3 -11
  385. package/dist/types/vue/src/lib/reka/useVirtualChoices.d.ts.map +1 -1
  386. package/dist/types/vue/src/lib/reka/useVirtualTree.d.ts +1 -1
  387. package/dist/types/vue/src/lib/reka/useVirtualTree.d.ts.map +1 -1
  388. package/dist/types/vue/src/lib/virtual/navigation.d.ts +1 -2
  389. package/dist/types/vue/src/lib/virtual/navigation.d.ts.map +1 -1
  390. package/dist/types/vue/src/lib/virtual/useVirtualCollection.d.ts +1 -1
  391. package/dist/types/vue/src/lib/virtual/useVirtualCollection.d.ts.map +1 -1
  392. package/dist/types/vue/src/lib/virtual/useVirtualWindow.d.ts +2 -15
  393. package/dist/types/vue/src/lib/virtual/useVirtualWindow.d.ts.map +1 -1
  394. package/dist/types/vue/src/locale/en-US.d.ts +1 -2
  395. package/dist/types/vue/src/locale/en-US.d.ts.map +1 -1
  396. package/dist/types/vue/src/locale/index.d.ts +3 -4
  397. package/dist/types/vue/src/locale/index.d.ts.map +1 -1
  398. package/dist/types/vue/src/locale/types.d.ts +1 -234
  399. package/dist/types/vue/src/locale/types.d.ts.map +1 -1
  400. package/dist/types/vue/src/locale/zh-CN.d.ts +1 -2
  401. package/dist/types/vue/src/locale/zh-CN.d.ts.map +1 -1
  402. package/dist/types/vue/src/primitives/number-field/NumberFieldDecrement.vue.d.ts +17 -0
  403. package/dist/types/vue/src/primitives/number-field/NumberFieldDecrement.vue.d.ts.map +1 -0
  404. package/dist/types/vue/src/primitives/number-field/NumberFieldIncrement.vue.d.ts +17 -0
  405. package/dist/types/vue/src/primitives/number-field/NumberFieldIncrement.vue.d.ts.map +1 -0
  406. package/dist/types/vue/src/primitives/number-field/NumberFieldInput.vue.d.ts +16 -0
  407. package/dist/types/vue/src/primitives/number-field/NumberFieldInput.vue.d.ts.map +1 -0
  408. package/dist/types/vue/src/primitives/number-field/NumberFieldRoot.vue.d.ts +47 -0
  409. package/dist/types/vue/src/primitives/number-field/NumberFieldRoot.vue.d.ts.map +1 -0
  410. package/dist/types/vue/src/primitives/number-field/context.d.ts +41 -0
  411. package/dist/types/vue/src/primitives/number-field/context.d.ts.map +1 -0
  412. package/dist/types/vue/src/primitives/number-field/index.d.ts +5 -0
  413. package/dist/types/vue/src/primitives/number-field/index.d.ts.map +1 -0
  414. package/dist/types/vue/src/primitives/utils/timers.d.ts +6 -0
  415. package/dist/types/vue/src/primitives/utils/timers.d.ts.map +1 -0
  416. package/dist/types/vue/src/primitives/utils/usePrimitiveElement.d.ts +6 -0
  417. package/dist/types/vue/src/primitives/utils/usePrimitiveElement.d.ts.map +1 -0
  418. package/dist/types/vue/src/primitives/utils/useVModel.d.ts +7 -0
  419. package/dist/types/vue/src/primitives/utils/useVModel.d.ts.map +1 -0
  420. package/dist/types/vue/src/primitives/visually-hidden/VisuallyHiddenInput.d.ts +66 -0
  421. package/dist/types/vue/src/primitives/visually-hidden/VisuallyHiddenInput.d.ts.map +1 -0
  422. package/dist/types/vue/src/primitives/visually-hidden/VisuallyHiddenInputBubble.vue.d.ts +28 -0
  423. package/dist/types/vue/src/primitives/visually-hidden/VisuallyHiddenInputBubble.vue.d.ts.map +1 -0
  424. package/package.json +3 -2
  425. package/src/components/accordion/AccordionTrigger.vue +9 -1
  426. package/src/components/anchor/Anchor.vue +13 -9
  427. package/src/components/anchor/composables/useAnchor.ts +3 -12
  428. package/src/components/anchor/composables/useAnchorFollow.ts +10 -63
  429. package/src/components/anchor/composables/useScrollSpy.ts +22 -38
  430. package/src/components/anchor/types.ts +1 -8
  431. package/src/components/autocomplete/autocomplete.variants.ts +1 -1
  432. package/src/components/autocomplete/composables/useAutocomplete.ts +1 -1
  433. package/src/components/autocomplete/types.ts +1 -16
  434. package/src/components/banner/utils/direction.ts +1 -10
  435. package/src/components/calendar/utils/format.ts +1 -23
  436. package/src/components/code-block/highlighter.ts +1 -98
  437. package/src/components/collapsible/CollapsibleTrigger.vue +8 -1
  438. package/src/components/command-palette/utils/hotkey.ts +1 -27
  439. package/src/components/command-palette/utils/match.ts +5 -75
  440. package/src/components/data-list/composables/useDataList.ts +2 -4
  441. package/src/components/data-list/utils/scroll.ts +1 -26
  442. package/src/components/data-table/column-sizing-styles.ts +1 -40
  443. package/src/components/data-table/column-sizing.ts +1 -101
  444. package/src/components/data-table/composables/useDataTable.ts +103 -123
  445. package/src/components/data-table/composables/useTableColumns.ts +38 -113
  446. package/src/components/data-table/composables/useTableDrag.ts +21 -11
  447. package/src/components/data-table/composables/useTableExport.ts +8 -32
  448. package/src/components/data-table/composables/useTableResize.ts +13 -17
  449. package/src/components/data-table/composables/useTableResizeHandles.ts +6 -21
  450. package/src/components/data-table/types.ts +15 -155
  451. package/src/components/data-table/utils.ts +1 -75
  452. package/src/components/date-range-field/utils/validity.ts +1 -21
  453. package/src/components/editable/editable.variants.ts +1 -1
  454. package/src/components/file-upload/utils/select.ts +1 -58
  455. package/src/components/file-upload/utils/size.ts +1 -16
  456. package/src/components/float-button/float-button.variants.ts +1 -1
  457. package/src/components/form/composables/useForm.ts +24 -135
  458. package/src/components/form/standard-schema.ts +1 -26
  459. package/src/components/form/utils/errors.ts +1 -48
  460. package/src/components/form/utils/focus.ts +1 -10
  461. package/src/components/form/utils/values.ts +1 -23
  462. package/src/components/form-field/FormField.vue +3 -2
  463. package/src/components/lightbox/composables/useLightboxHint.ts +6 -1
  464. package/src/components/lightbox/types.ts +1 -14
  465. package/src/components/lightbox/utils/clip.ts +1 -117
  466. package/src/components/lightbox/utils/download.ts +1 -29
  467. package/src/components/lightbox/utils/gesture.ts +1 -54
  468. package/src/components/lightbox/utils/paging.ts +1 -33
  469. package/src/components/lightbox/utils/pose.ts +1 -142
  470. package/src/components/lightbox/utils/source.ts +1 -17
  471. package/src/components/lightbox/utils/zoom.ts +1 -127
  472. package/src/components/meter-group/utils/tones.ts +1 -14
  473. package/src/components/multi-select/MultiSelect.vue +1 -2
  474. package/src/components/number-input/NumberInput.vue +2 -2
  475. package/src/components/pagination/composables/usePagination.ts +2 -3
  476. package/src/components/pagination/types.ts +1 -19
  477. package/src/components/pagination/utils/ranges.ts +1 -12
  478. package/src/components/password-input/PasswordInput.vue +6 -0
  479. package/src/components/prev-next/PrevNext.vue +1 -1
  480. package/src/components/prev-next/PrevNextLink.vue +1 -1
  481. package/src/components/qr-code/export.ts +1 -65
  482. package/src/components/range-calendar/utils/limit.ts +1 -11
  483. package/src/components/rating/utils/fill.ts +1 -4
  484. package/src/components/ripple/useRipple.ts +10 -198
  485. package/src/components/scroll-area/ScrollArea.vue +6 -18
  486. package/src/components/scroll-area/composables/useEdgeShadow.ts +7 -16
  487. package/src/components/scroll-area/composables/useLayerLock.ts +2 -9
  488. package/src/components/scroll-area/composables/useWheelRedirect.ts +2 -10
  489. package/src/components/scroll-area/scroll-restore.ts +1 -148
  490. package/src/components/search-input/SearchInput.vue +6 -0
  491. package/src/components/select/types.ts +1 -23
  492. package/src/components/split-button/split-button.variants.ts +1 -1
  493. package/src/components/spoiler/SpoilerPainter.ts +1 -197
  494. package/src/components/spoiler/utils/irisOrigin.ts +1 -40
  495. package/src/components/spoiler/worklet.ts +1 -199
  496. package/src/components/table/Table.vue +9 -0
  497. package/src/components/tabs/TabsList.vue +9 -0
  498. package/src/components/time/utils/relativeTime.ts +1 -20
  499. package/src/components/toast/composables/useToastLayout.ts +12 -24
  500. package/src/components/toast/store.ts +16 -228
  501. package/src/components/tree/composables/useTree.ts +17 -33
  502. package/src/components/tree/types.ts +1 -20
  503. package/src/components/tree/utils/selection.ts +1 -78
  504. package/src/components/tree-select/types.ts +1 -34
  505. package/src/components/tree-select/utils/filterTree.ts +1 -19
  506. package/src/components/virtual-list/composables/useVirtualList.ts +16 -42
  507. package/src/components/visually-hidden/VisuallyHidden.vue +21 -3
  508. package/src/lib/caret.ts +1 -48
  509. package/src/lib/collapse.ts +6 -29
  510. package/src/lib/date.ts +1 -111
  511. package/src/lib/field-focus.ts +1 -36
  512. package/src/lib/overlay-anchor.ts +11 -37
  513. package/src/lib/pointer-corridor.ts +1 -26
  514. package/src/lib/reka/useVirtualChoices.ts +55 -133
  515. package/src/lib/reka/useVirtualTree.ts +22 -65
  516. package/src/lib/virtual/navigation.ts +1 -26
  517. package/src/lib/virtual/useVirtualCollection.ts +28 -47
  518. package/src/lib/virtual/useVirtualWindow.ts +15 -25
  519. package/src/locale/en-US.ts +1 -220
  520. package/src/locale/index.ts +9 -53
  521. package/src/locale/types.ts +1 -225
  522. package/src/locale/zh-CN.ts +1 -215
  523. package/src/primitives/number-field/LICENSE +21 -0
  524. package/src/primitives/number-field/NumberFieldDecrement.vue +21 -0
  525. package/src/primitives/number-field/NumberFieldIncrement.vue +21 -0
  526. package/src/primitives/number-field/NumberFieldInput.vue +114 -0
  527. package/src/primitives/number-field/NumberFieldRoot.vue +169 -0
  528. package/src/primitives/number-field/context.ts +111 -0
  529. package/src/primitives/number-field/index.ts +14 -0
  530. package/src/primitives/utils/LICENSE +44 -0
  531. package/src/primitives/utils/timers.ts +6 -0
  532. package/src/primitives/utils/usePrimitiveElement.ts +12 -0
  533. package/src/primitives/utils/useVModel.ts +37 -0
  534. package/src/primitives/visually-hidden/LICENSE +21 -0
  535. package/src/primitives/visually-hidden/VisuallyHiddenInput.ts +97 -0
  536. package/src/primitives/visually-hidden/VisuallyHiddenInputBubble.vue +49 -0
@@ -0,0 +1,41 @@
1
+ import { type Ref } from 'vue';
2
+ import { type NumberFieldBound, type NumberFieldFormat, type NumberFieldInputMode, type NumberFieldRange, type NumberFieldStep } from '../../../../shared/src/primitives/number-field';
3
+ export interface NumberFieldRootContext {
4
+ modelValue: Ref<number | null | undefined>;
5
+ step: (direction: NumberFieldStep, multiplier?: number) => void;
6
+ jump: (bound: NumberFieldBound) => void;
7
+ commit: (text: string) => void;
8
+ inputEl: Ref<HTMLInputElement | undefined>;
9
+ onInputElement: (element: HTMLInputElement) => void;
10
+ inputMode: Ref<NumberFieldInputMode>;
11
+ textValue: Ref<string>;
12
+ range: Ref<NumberFieldRange>;
13
+ format: Ref<NumberFieldFormat>;
14
+ disabled: Ref<boolean>;
15
+ readonly: Ref<boolean>;
16
+ disableWheelChange: Ref<boolean>;
17
+ invertWheelChange: Ref<boolean>;
18
+ isDecreaseDisabled: Ref<boolean>;
19
+ isIncreaseDisabled: Ref<boolean>;
20
+ id: Ref<string | undefined>;
21
+ }
22
+ export declare function provideNumberFieldRootContext(context: NumberFieldRootContext): NumberFieldRootContext;
23
+ export declare function injectNumberFieldRootContext(): NumberFieldRootContext;
24
+ export declare function useNumberFieldStep(direction: NumberFieldStep, props: {
25
+ as?: unknown;
26
+ disabled?: boolean;
27
+ }): {
28
+ primitiveElement: Ref<import("vue").ComponentPublicInstance | undefined, import("vue").ComponentPublicInstance | undefined>;
29
+ attributes: import("vue").ComputedRef<{
30
+ readonly tabindex: "-1";
31
+ readonly 'aria-label': "Increase" | "Decrease";
32
+ readonly type: "button" | undefined;
33
+ readonly style: {
34
+ readonly userSelect: "none" | undefined;
35
+ };
36
+ readonly disabled: "" | undefined;
37
+ readonly 'data-disabled': "" | undefined;
38
+ readonly 'data-pressed': "true" | undefined;
39
+ }>;
40
+ };
41
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/number-field/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,GAAG,EACT,MAAM,KAAK,CAAA;AACZ,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,gDAAgD,CAAA;AAIvD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC1C,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/D,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACvC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,OAAO,EAAE,GAAG,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;IAC1C,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACnD,SAAS,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACtB,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC5B,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC9B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/B,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,EAAE,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAC5B;AAID,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,0BAG5E;AAED,wBAAgB,4BAA4B,2BAO3C;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;;;EAiD5C"}
@@ -0,0 +1,5 @@
1
+ export { default as NumberFieldRoot, type NumberFieldRootEmits, type NumberFieldRootProps, } from './NumberFieldRoot.vue';
2
+ export { default as NumberFieldInput, type NumberFieldInputProps } from './NumberFieldInput.vue';
3
+ export { default as NumberFieldIncrement, type NumberFieldIncrementProps, } from './NumberFieldIncrement.vue';
4
+ export { default as NumberFieldDecrement, type NumberFieldDecrementProps, } from './NumberFieldDecrement.vue';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/number-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAChG,OAAO,EACL,OAAO,IAAI,oBAAoB,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,OAAO,IAAI,oBAAoB,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const windowTimers: {
2
+ setTimeout: (callback: () => void, delay: number) => number;
3
+ clearTimeout: (handle: unknown) => void;
4
+ };
5
+ export declare const isClient: boolean;
6
+ //# sourceMappingURL=timers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/utils/timers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;2BACA,MAAM,IAAI,SAAS,MAAM;2BACzB,OAAO;CAC/B,CAAA;AAED,eAAO,MAAM,QAAQ,SAAmE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { type ComponentPublicInstance } from 'vue';
2
+ export declare function usePrimitiveElement<T extends ComponentPublicInstance>(): {
3
+ primitiveElement: import("vue").Ref<T | undefined, T | undefined>;
4
+ currentElement: import("vue").ComputedRef<HTMLElement | undefined>;
5
+ };
6
+ //# sourceMappingURL=usePrimitiveElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrimitiveElement.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/utils/usePrimitiveElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,uBAAuB,EAAE,MAAM,KAAK,CAAA;AAEjE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;;;EASpE"}
@@ -0,0 +1,7 @@
1
+ import { type Ref } from 'vue';
2
+ export interface VModelOptions<V> {
3
+ defaultValue?: V;
4
+ passive?: boolean;
5
+ }
6
+ export declare function useVModel<P extends object, K extends keyof P & string, V = P[K]>(props: P, key: K, emit: (event: `update:${K}`, value: V) => void, options?: VModelOptions<V>): Ref<V>;
7
+ //# sourceMappingURL=useVModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVModel.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/utils/useVModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9D,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC9E,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,EAC9C,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM,GAC7B,GAAG,CAAC,CAAC,CAAC,CAwBR"}
@@ -0,0 +1,66 @@
1
+ import { type PropType } from 'vue';
2
+ import type { VisuallyHiddenProps } from 'reka-ui';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ name: {
5
+ type: StringConstructor;
6
+ required: true;
7
+ };
8
+ value: {
9
+ type: PropType<unknown>;
10
+ required: true;
11
+ };
12
+ checked: {
13
+ type: BooleanConstructor;
14
+ required: false;
15
+ default: undefined;
16
+ };
17
+ required: {
18
+ type: BooleanConstructor;
19
+ required: false;
20
+ };
21
+ disabled: {
22
+ type: BooleanConstructor;
23
+ required: false;
24
+ };
25
+ feature: {
26
+ type: PropType<VisuallyHiddenProps["feature"]>;
27
+ required: false;
28
+ default: string;
29
+ };
30
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
31
+ [key: string]: any;
32
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
+ name: {
34
+ type: StringConstructor;
35
+ required: true;
36
+ };
37
+ value: {
38
+ type: PropType<unknown>;
39
+ required: true;
40
+ };
41
+ checked: {
42
+ type: BooleanConstructor;
43
+ required: false;
44
+ default: undefined;
45
+ };
46
+ required: {
47
+ type: BooleanConstructor;
48
+ required: false;
49
+ };
50
+ disabled: {
51
+ type: BooleanConstructor;
52
+ required: false;
53
+ };
54
+ feature: {
55
+ type: PropType<VisuallyHiddenProps["feature"]>;
56
+ required: false;
57
+ default: string;
58
+ };
59
+ }>> & Readonly<{}>, {
60
+ required: boolean;
61
+ disabled: boolean;
62
+ checked: boolean;
63
+ feature: "focusable" | "fully-hidden" | undefined;
64
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
65
+ export default _default;
66
+ //# sourceMappingURL=VisuallyHiddenInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisuallyHiddenInput.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/visually-hidden/VisuallyHiddenInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,KAAK,CAAA;AACZ,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;;;;;;;cAYZ,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;cAKjC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;;;;;;;;;;;;cALxB,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;cAKjC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;;;;;;;;;;AAV9D,wBAgFE"}
@@ -0,0 +1,28 @@
1
+ import type { VisuallyHiddenProps } from 'reka-ui';
2
+ export interface VisuallyHiddenInputBubbleProps<T> {
3
+ name: string;
4
+ value: T;
5
+ checked?: boolean;
6
+ required?: boolean;
7
+ disabled?: boolean;
8
+ feature?: VisuallyHiddenProps['feature'];
9
+ }
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
12
+ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
13
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<VisuallyHiddenInputBubbleProps<T>> & (typeof globalThis extends {
14
+ __VLS_PROPS_FALLBACK: infer P;
15
+ } ? P : {});
16
+ expose: (exposed: {}) => void;
17
+ attrs: any;
18
+ slots: {};
19
+ emit: {};
20
+ }>) => import("vue").VNode & {
21
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
22
+ };
23
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
24
+ [K in keyof T]: T[K];
25
+ } : {
26
+ [K in keyof T as K]: T[K];
27
+ }) & {};
28
+ //# sourceMappingURL=VisuallyHiddenInputBubble.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisuallyHiddenInputBubble.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/primitives/visually-hidden/VisuallyHiddenInputBubble.vue"],"names":[],"mappings":"AAyDE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,CAAA;IACR,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;CACzC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY,GAAK,CAAC,EACvB,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WA2EO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,mCAAmB,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC1I,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;WACH,EAAE;UACH,EAAE;EAEL,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAA;CAAI,CAAC;AACzF,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hina-ui/vue",
3
- "version": "1.7.4",
4
- "description": "An elegant, restrained Vue 3 component library built on Reka UI and Tailwind CSS v4.",
3
+ "version": "1.7.6",
4
+ "description": "The design system behind Hikarinagi: Vue 3 components built on Reka UI and Tailwind CSS v4.",
5
5
  "keywords": [
6
6
  "vue",
7
7
  "vue3",
@@ -50,6 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@internationalized/date": "^3.12.4",
53
+ "@internationalized/number": "^3.6.8",
53
54
  "@lucide/vue": "^1.37.0",
54
55
  "@tanstack/vue-table": "^9.2.4",
55
56
  "@tanstack/vue-virtual": "^3.13.36",
@@ -1,5 +1,10 @@
1
1
  <script setup lang="ts">
2
- import { AccordionHeader, AccordionTrigger as RekaAccordionTrigger } from 'reka-ui'
2
+ import {
3
+ AccordionHeader,
4
+ AccordionTrigger as RekaAccordionTrigger,
5
+ injectCollapsibleRootContext,
6
+ useId,
7
+ } from 'reka-ui'
3
8
  import { cn } from '../../lib/cn'
4
9
  import Ripple from '../ripple/Ripple.vue'
5
10
  import DisclosureIcon from '../disclosure-icon/DisclosureIcon.vue'
@@ -7,6 +12,9 @@
7
12
 
8
13
  defineOptions({ name: 'HnAccordionTrigger' })
9
14
 
15
+ const root = injectCollapsibleRootContext()
16
+ root.contentId ||= useId(undefined, 'reka-collapsible-content')
17
+
10
18
  const props = withDefaults(
11
19
  defineProps<{
12
20
  level?: 2 | 3 | 4 | 5 | 6
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts" generic="T extends AnchorItem = AnchorItem">
2
- import { useTemplateRef, watch } from 'vue'
2
+ import { computed, useTemplateRef, watch } from 'vue'
3
3
  import { cn } from '../../lib/cn'
4
4
  import { useUiLocale } from '../../locale'
5
5
  import Highlight from '../highlight/Highlight.vue'
@@ -11,12 +11,15 @@
11
11
 
12
12
  defineOptions({ name: 'HnAnchor' })
13
13
 
14
- const props = defineProps<{
15
- items: T[]
16
- label?: string
17
- autoScroll?: boolean
18
- class?: string
19
- }>()
14
+ const props = withDefaults(
15
+ defineProps<{
16
+ items: T[]
17
+ label?: string
18
+ autoScroll?: boolean
19
+ class?: string
20
+ }>(),
21
+ { autoScroll: true },
22
+ )
20
23
 
21
24
  const emit = defineEmits<{ change: [current: string | undefined] }>()
22
25
 
@@ -26,9 +29,10 @@
26
29
 
27
30
  const t = useUiLocale()
28
31
 
29
- const { entries, visible, current, span, jump } = useAnchor(() => props.items)
32
+ const { entries, visible, covered, current, span, jump } = useAnchor(() => props.items)
33
+ const lastCovered = computed(() => covered.value.at(-1)?.id)
30
34
  const root = useTemplateRef<HTMLElement>('root')
31
- useAnchorFollow(root, current, () => props.autoScroll !== false)
35
+ useAnchorFollow(root, current, lastCovered, () => props.autoScroll)
32
36
  watch(current, id => emit('change', id), { flush: 'post' })
33
37
  defineExpose({ current })
34
38
  </script>
@@ -1,19 +1,10 @@
1
1
  import { computed } from 'vue'
2
- import type { AnchorItem, AnchorSlotItem } from '../types'
2
+ import { anchorEntries } from '../../../../../shared/src/lib/anchor'
3
+ import type { AnchorItem } from '../types'
3
4
  import { useScrollSpy } from './useScrollSpy'
4
5
 
5
6
  export function useAnchor<T extends AnchorItem>(items: () => T[]) {
6
- const entries = computed(() =>
7
- items().flatMap(item => [
8
- { id: item.id, label: item.label, depth: 0, item: item as AnchorSlotItem<T> },
9
- ...(item.children ?? []).map(child => ({
10
- id: child.id,
11
- label: child.label,
12
- depth: 1,
13
- item: child as AnchorSlotItem<T>,
14
- })),
15
- ]),
16
- )
7
+ const entries = computed(() => anchorEntries(items()))
17
8
 
18
9
  return { entries, ...useScrollSpy(() => entries.value) }
19
10
  }
@@ -1,87 +1,34 @@
1
1
  import { useResizeObserver } from '@vueuse/core'
2
2
  import { onBeforeUnmount, onMounted, shallowRef, watch, type Ref } from 'vue'
3
- import { prefersReducedMotion } from '../../../motion'
3
+ import { createAnchorFollow } from '../../../../../shared/src/behavior/anchor-follow'
4
4
 
5
5
  export function useAnchorFollow(
6
6
  root: Readonly<Ref<HTMLElement | null>>,
7
7
  current: Readonly<Ref<string | undefined>>,
8
+ lastCovered: Readonly<Ref<string | undefined>>,
8
9
  enabled: () => boolean,
9
10
  ) {
10
11
  const viewport = shallowRef<HTMLElement>()
12
+ const follower = createAnchorFollow()
11
13
  let mounted = false
12
14
  let frame = 0
13
- let lastCurrent: string | undefined
14
-
15
- function findViewport(nav: HTMLElement, target: HTMLElement) {
16
- const doc = nav.ownerDocument
17
- const view = doc.defaultView!
18
- for (
19
- let node: HTMLElement | null = nav;
20
- node && node !== doc.body && node !== doc.documentElement;
21
- node = node.parentElement
22
- ) {
23
- // A shared page/content scroller is not the directory's own viewport.
24
- if (node.contains(target)) break
25
- if (/^(auto|scroll|overlay)$/.test(view.getComputedStyle(node).overflowY)) return node
26
- }
27
- }
28
15
 
29
16
  function follow() {
30
17
  frame = 0
31
- const nav = root.value
32
- const id = current.value
33
- if (!enabled() || !nav || !id) return
34
- const target = nav.ownerDocument.getElementById(id)
35
- const link = nav.querySelector<HTMLElement>('a[aria-current="location"]')
36
- if (!target || !link || !link.getClientRects().length) return
37
- const port = findViewport(nav, target)
38
- viewport.value = port
39
- const changed = lastCurrent !== undefined && lastCurrent !== id
40
- lastCurrent = id
41
- if (!port || port.clientHeight <= 0 || port.scrollHeight <= port.clientHeight) return
42
-
43
- const box = port.getBoundingClientRect()
44
- const row = link.getBoundingClientRect()
45
- const scale = port.offsetHeight ? box.height / port.offsetHeight : 1
46
- if (scale <= 0) return
47
- const top = box.top + port.clientTop * scale
48
- const bottom = top + port.clientHeight * scale
49
- if (row.top >= top && row.bottom <= bottom) return
50
- // A wrapped item taller than the viewport cannot be fully visible. Avoid
51
- // alternating between its top and bottom when resize observers run again.
52
- if (row.top <= top && row.bottom >= bottom) return
53
-
54
- const style = port.ownerDocument.defaultView!.getComputedStyle(port)
55
- const margin = Math.min(row.height / scale / 2, port.clientHeight / 4)
56
- const padding = (value: string) =>
57
- Math.min(
58
- Math.max(0, (port.clientHeight - row.height / scale) / 2),
59
- value === 'auto'
60
- ? margin
61
- : (parseFloat(value) || 0) * (value.endsWith('%') ? port.clientHeight / 100 : 1),
62
- )
63
- const before = padding(style.scrollPaddingTop)
64
- const after = padding(style.scrollPaddingBottom)
65
- const delta =
66
- row.height > bottom - top || row.top < top
67
- ? (row.top - top) / scale - before
68
- : (row.bottom - bottom) / scale + after
69
- const next = Math.max(
70
- 0,
71
- Math.min(port.scrollHeight - port.clientHeight, port.scrollTop + delta),
72
- )
73
- if (Math.abs(next - port.scrollTop) < 1) return
74
- port.scrollTo({
75
- top: next,
76
- behavior: changed && !prefersReducedMotion() ? 'smooth' : 'instant',
18
+ const result = follower.follow({
19
+ nav: root.value,
20
+ current: current.value,
21
+ lastCovered: lastCovered.value,
22
+ enabled: enabled(),
77
23
  })
24
+ if (result) viewport.value = result.viewport
78
25
  }
79
26
 
80
27
  function schedule() {
81
28
  if (mounted && !frame) frame = requestAnimationFrame(follow)
82
29
  }
83
30
 
84
- watch([root, current, enabled], schedule, { flush: 'post' })
31
+ watch([root, current, lastCovered, enabled], schedule, { flush: 'post' })
85
32
  useResizeObserver(
86
33
  () =>
87
34
  [root.value, root.value?.parentElement, viewport.value].filter(
@@ -1,70 +1,54 @@
1
1
  import { useIntersectionObserver } from '@vueuse/core'
2
2
  import { computed, onMounted, shallowRef, watch } from 'vue'
3
- import { prefersReducedMotion } from '../../../motion'
4
-
5
- export interface SpyEntry {
6
- id: string
7
- label: string
8
- depth: number
9
- }
3
+ import {
4
+ SCROLL_SPY_OPTIONS,
5
+ applyIntersections,
6
+ coveredEntries,
7
+ coveredSpan,
8
+ hashTarget,
9
+ jumpToAnchor,
10
+ sameTargets,
11
+ spyTargets,
12
+ type SpyEntry,
13
+ } from '../../../../../shared/src/lib/anchor'
14
+
15
+ export type { SpyEntry }
10
16
 
11
17
  export function useScrollSpy(entries: () => SpyEntry[]) {
12
18
  const visible = shallowRef<ReadonlySet<string>>(new Set())
13
19
  const targets = shallowRef<Array<HTMLElement | null>>([])
14
20
  const intersecting = new Set<string>()
15
21
 
16
- const covered = computed(() => entries().filter(entry => visible.value.has(entry.id)))
22
+ const covered = computed(() => coveredEntries(entries(), visible.value))
17
23
  const current = computed(() => covered.value[0]?.id)
18
- const span = computed(() => {
19
- const rows = entries().flatMap((entry, index) => (visible.value.has(entry.id) ? [index] : []))
20
- return rows.length ? `${rows[0]! + 1} / ${rows.at(-1)! + 2}` : undefined
21
- })
24
+ const span = computed(() => coveredSpan(entries(), visible.value))
22
25
 
23
26
  useIntersectionObserver(
24
27
  targets,
25
28
  observed => {
26
- for (const entry of observed) {
27
- if (entry.isIntersecting && entry.intersectionRatio > 0) intersecting.add(entry.target.id)
28
- else intersecting.delete(entry.target.id)
29
- }
30
- visible.value = intersecting.size
31
- ? new Set(intersecting)
32
- : new Set(current.value ? [current.value] : [])
29
+ visible.value = applyIntersections(intersecting, observed, current.value)
33
30
  },
34
- { rootMargin: '0px 0px -15% 0px', threshold: [0, Number.EPSILON] },
31
+ SCROLL_SPY_OPTIONS,
35
32
  )
36
33
 
37
- function targetOf(id: string) {
38
- return document.getElementById(id)
39
- }
40
-
41
34
  function locate() {
42
35
  intersecting.clear()
43
- targets.value = entries().map(({ id }) => targetOf(id))
36
+ targets.value = spyTargets(entries())
44
37
  }
45
38
 
46
39
  onMounted(() => {
47
- const hash = decodeURIComponent(location.hash.slice(1))
48
- if (hash && entries().some(entry => entry.id === hash)) visible.value = new Set([hash])
40
+ const hash = hashTarget(entries())
41
+ if (hash) visible.value = new Set([hash])
49
42
  locate()
50
43
  watch(entries, (next, previous) => {
51
- if (
52
- next.length === previous.length &&
53
- next.every((entry, index) => entry.id === previous[index]?.id)
54
- )
55
- return
44
+ if (sameTargets(next, previous)) return
56
45
  visible.value = new Set()
57
46
  locate()
58
47
  })
59
48
  })
60
49
 
61
50
  function jump(event: MouseEvent, id: string) {
62
- const el = targetOf(id)
63
- if (!el) return
64
- event.preventDefault()
65
- el.scrollIntoView({ behavior: prefersReducedMotion() ? 'auto' : 'smooth', block: 'start' })
66
- history.replaceState(history.state, '', `#${id}`)
67
- visible.value = new Set([id])
51
+ if (jumpToAnchor(event, id)) visible.value = new Set([id])
68
52
  }
69
53
 
70
54
  return { visible, covered, current, span, jump }
@@ -1,8 +1 @@
1
- export interface AnchorItem {
2
- id: string
3
- label: string
4
- children?: AnchorItem[]
5
- }
6
-
7
- export type AnchorSlotItem<T extends AnchorItem> =
8
- T | (T extends { children?: AnchorItem[] } ? NonNullable<T['children']>[number] : never)
1
+ export type { AnchorItem, AnchorSlotItem } from '../../../../shared/src/lib/anchor'
@@ -1 +1 @@
1
- export { autocompleteContent, autocompleteList } from '@hina-ui/shared/variants/autocomplete'
1
+ export { autocompleteContent, autocompleteList } from '../../../../shared/src/variants/autocomplete'
@@ -1,6 +1,6 @@
1
1
  import { computed, nextTick, shallowRef, useId, watch, type Ref } from 'vue'
2
2
  import { useEventListener } from '@vueuse/core'
3
- import { applyCompletion } from '@hina-ui/shared/lib/completion'
3
+ import { applyCompletion } from '../../../../../shared/src/lib/completion'
4
4
  import type {
5
5
  AutocompleteOption,
6
6
  AutocompleteSelection,
@@ -1,16 +1 @@
1
- import type { CompletionContext, CompletionEdit } from '../../../../shared/src/lib/completion'
2
-
3
- export type { CompletionContext, CompletionEdit } from '../../../../shared/src/lib/completion'
4
-
5
- export interface AutocompleteOption {
6
- value: string | number
7
- label: string
8
- description?: string
9
- disabled?: boolean
10
- }
11
-
12
- export interface AutocompleteSelection<T extends AutocompleteOption = AutocompleteOption> {
13
- option: T
14
- context: CompletionContext
15
- edit: CompletionEdit
16
- }
1
+ export * from '../../../../shared/src/types/autocomplete'
@@ -1,10 +1 @@
1
- export type SlideDirection = 1 | -1
2
-
3
- export function stepBetween(previous: number, next: number, count: number): SlideDirection {
4
- if (count < 2) return 1
5
- const from = ((previous % count) + count) % count
6
- const to = ((next % count) + count) % count
7
- if (to === (from + 1) % count) return 1
8
- if (to === (from - 1 + count) % count) return -1
9
- return to > from ? 1 : -1
10
- }
1
+ export * from '../../../../../shared/src/lib/banner'
@@ -1,23 +1 @@
1
- import { getLocalTimeZone, type DateValue } from '@internationalized/date'
2
-
3
- const local = (date: DateValue) => date.toDate(getLocalTimeZone())
4
-
5
- export function formatMonthHeading(tag: string, date: DateValue) {
6
- return new Intl.DateTimeFormat(tag, { year: 'numeric', month: 'long' }).format(local(date))
7
- }
8
-
9
- export function formatYearHeading(tag: string, date: DateValue) {
10
- return new Intl.DateTimeFormat(tag, { year: 'numeric' }).format(local(date))
11
- }
12
-
13
- export function formatMonthName(tag: string, date: DateValue) {
14
- return new Intl.DateTimeFormat(tag, { month: 'short' }).format(local(date))
15
- }
16
-
17
- export function formatDigits(tag: string, value: number) {
18
- return new Intl.NumberFormat(tag, { useGrouping: false }).format(value)
19
- }
20
-
21
- export function formatYearsHeading(tag: string, cells: DateValue[]) {
22
- return `${formatDigits(tag, cells[0]!.year)} – ${formatDigits(tag, cells.at(-1)!.year)}`
23
- }
1
+ export * from '../../../../../shared/src/lib/calendar/format'