nuance-ui 0.2.5 → 0.2.7

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 (385) hide show
  1. package/LICENSE.md +9 -9
  2. package/README.md +75 -75
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +4 -5
  5. package/dist/runtime/components/action-icon/action-icon-group.d.vue.ts +4 -0
  6. package/dist/runtime/components/action-icon/action-icon-group.vue +3 -3
  7. package/dist/runtime/components/action-icon/action-icon-group.vue.d.ts +4 -0
  8. package/dist/runtime/components/action-icon/action-icon-section.d.vue.ts +9 -0
  9. package/dist/runtime/components/action-icon/action-icon-section.vue +1 -1
  10. package/dist/runtime/components/action-icon/action-icon-section.vue.d.ts +9 -0
  11. package/dist/runtime/components/action-icon/action-icon.d.vue.ts +14 -5
  12. package/dist/runtime/components/action-icon/action-icon.vue +2 -1
  13. package/dist/runtime/components/action-icon/action-icon.vue.d.ts +14 -5
  14. package/dist/runtime/components/alert.d.vue.ts +10 -14
  15. package/dist/runtime/components/alert.vue +1 -1
  16. package/dist/runtime/components/alert.vue.d.ts +10 -14
  17. package/dist/runtime/components/app-shell/app-shell-aside.vue +30 -30
  18. package/dist/runtime/components/app-shell/app-shell-footer.vue +29 -29
  19. package/dist/runtime/components/app-shell/app-shell-header.vue +30 -30
  20. package/dist/runtime/components/app-shell/app-shell-main.vue +18 -18
  21. package/dist/runtime/components/app-shell/app-shell-navbar.vue +34 -34
  22. package/dist/runtime/components/app-shell/app-shell-section.d.vue.ts +4 -1
  23. package/dist/runtime/components/app-shell/app-shell-section.vue +10 -10
  24. package/dist/runtime/components/app-shell/app-shell-section.vue.d.ts +4 -1
  25. package/dist/runtime/components/app-shell/app-shell.d.vue.ts +11 -3
  26. package/dist/runtime/components/app-shell/app-shell.vue +35 -35
  27. package/dist/runtime/components/app-shell/app-shell.vue.d.ts +11 -3
  28. package/dist/runtime/components/app-shell/context.d.ts +5 -0
  29. package/dist/runtime/components/avatar/avatar-group.d.vue.ts +1 -1
  30. package/dist/runtime/components/avatar/avatar-group.vue +1 -1
  31. package/dist/runtime/components/avatar/avatar-group.vue.d.ts +1 -1
  32. package/dist/runtime/components/avatar/avatar.d.vue.ts +13 -9
  33. package/dist/runtime/components/avatar/avatar.vue +4 -4
  34. package/dist/runtime/components/avatar/avatar.vue.d.ts +13 -9
  35. package/dist/runtime/components/avatar/index.d.ts +1 -0
  36. package/dist/runtime/components/avatar/index.js +1 -0
  37. package/dist/runtime/components/background-image.d.vue.ts +2 -1
  38. package/dist/runtime/components/background-image.vue.d.ts +2 -1
  39. package/dist/runtime/components/badge.d.vue.ts +21 -8
  40. package/dist/runtime/components/badge.vue +2 -2
  41. package/dist/runtime/components/badge.vue.d.ts +21 -8
  42. package/dist/runtime/components/box.d.vue.ts +5 -1
  43. package/dist/runtime/components/box.vue.d.ts +5 -1
  44. package/dist/runtime/components/breadcrumbs.d.vue.ts +23 -3
  45. package/dist/runtime/components/breadcrumbs.vue +79 -79
  46. package/dist/runtime/components/breadcrumbs.vue.d.ts +23 -3
  47. package/dist/runtime/components/button/button-group.d.vue.ts +4 -0
  48. package/dist/runtime/components/button/button-group.vue.d.ts +4 -0
  49. package/dist/runtime/components/button/button.d.vue.ts +22 -9
  50. package/dist/runtime/components/button/button.module.css +1 -1
  51. package/dist/runtime/components/button/button.vue +2 -1
  52. package/dist/runtime/components/button/button.vue.d.ts +22 -9
  53. package/dist/runtime/components/button/unstyled-button.vue +23 -23
  54. package/dist/runtime/components/calendar/calendar.d.vue.ts +1 -1
  55. package/dist/runtime/components/calendar/calendar.vue.d.ts +1 -1
  56. package/dist/runtime/components/calendar/index.d.ts +1 -1
  57. package/dist/runtime/components/calendar/index.js +1 -1
  58. package/dist/runtime/components/calendar/lib/context.d.ts +2 -2
  59. package/dist/runtime/components/calendar/lib/context.js +1 -1
  60. package/dist/runtime/components/calendar/lib/use-calendar-navigation.d.ts +2 -2
  61. package/dist/runtime/components/calendar/lib/use-calendar-navigation.js +1 -1
  62. package/dist/runtime/components/calendar/lib/use-calendar-selection.d.ts +3 -3
  63. package/dist/runtime/components/calendar/lib/use-calendar-selection.js +2 -2
  64. package/dist/runtime/components/calendar/ui/core/calendar-cell.d.vue.ts +1 -0
  65. package/dist/runtime/components/calendar/ui/core/calendar-cell.vue.d.ts +1 -0
  66. package/dist/runtime/components/calendar/ui/core/calendar-header.vue +95 -95
  67. package/dist/runtime/components/calendar/ui/core/calendar-root.d.vue.ts +3 -3
  68. package/dist/runtime/components/calendar/ui/core/calendar-root.vue +4 -4
  69. package/dist/runtime/components/calendar/ui/core/calendar-root.vue.d.ts +3 -3
  70. package/dist/runtime/components/calendar/ui/levels/calendar-decade.vue +40 -40
  71. package/dist/runtime/components/calendar/ui/levels/calendar-month.vue +1 -1
  72. package/dist/runtime/components/calendar/ui/levels/calendar-year.vue +41 -41
  73. package/dist/runtime/components/card/card-section.vue +3 -3
  74. package/dist/runtime/components/card/card.vue +3 -3
  75. package/dist/runtime/components/checkbox/checkbox-card.d.vue.ts +3 -0
  76. package/dist/runtime/components/checkbox/checkbox-card.vue +29 -14
  77. package/dist/runtime/components/checkbox/checkbox-card.vue.d.ts +3 -0
  78. package/dist/runtime/components/checkbox/checkbox-group.d.vue.ts +12 -1
  79. package/dist/runtime/components/checkbox/checkbox-group.vue +16 -6
  80. package/dist/runtime/components/checkbox/checkbox-group.vue.d.ts +12 -1
  81. package/dist/runtime/components/checkbox/checkbox-indicator.vue +118 -117
  82. package/dist/runtime/components/checkbox/checkbox.d.vue.ts +6 -2
  83. package/dist/runtime/components/checkbox/checkbox.vue +36 -19
  84. package/dist/runtime/components/checkbox/checkbox.vue.d.ts +6 -2
  85. package/dist/runtime/components/checkbox/lib/group.context.d.ts +15 -3
  86. package/dist/runtime/components/checkbox/lib/group.context.js +9 -7
  87. package/dist/runtime/components/chip/chip-group.vue +2 -2
  88. package/dist/runtime/components/chip/chip.d.vue.ts +1 -0
  89. package/dist/runtime/components/chip/chip.vue +10 -10
  90. package/dist/runtime/components/chip/chip.vue.d.ts +1 -0
  91. package/dist/runtime/components/chip/lib.js +1 -1
  92. package/dist/runtime/components/combobox/combobox-dropdown.vue +15 -15
  93. package/dist/runtime/components/combobox/combobox-empty.vue +3 -3
  94. package/dist/runtime/components/combobox/combobox-group.d.vue.ts +5 -5
  95. package/dist/runtime/components/combobox/combobox-group.vue +22 -22
  96. package/dist/runtime/components/combobox/combobox-group.vue.d.ts +5 -5
  97. package/dist/runtime/components/combobox/combobox-option-list.vue +3 -3
  98. package/dist/runtime/components/combobox/combobox-option.d.vue.ts +1 -1
  99. package/dist/runtime/components/combobox/combobox-option.vue +23 -28
  100. package/dist/runtime/components/combobox/combobox-option.vue.d.ts +1 -1
  101. package/dist/runtime/components/combobox/combobox-options-dropdown.d.vue.ts +6 -8
  102. package/dist/runtime/components/combobox/combobox-options-dropdown.vue +6 -7
  103. package/dist/runtime/components/combobox/combobox-options-dropdown.vue.d.ts +6 -8
  104. package/dist/runtime/components/combobox/combobox-root.d.vue.ts +6 -8
  105. package/dist/runtime/components/combobox/combobox-root.vue +4 -6
  106. package/dist/runtime/components/combobox/combobox-root.vue.d.ts +6 -8
  107. package/dist/runtime/components/combobox/combobox-target.vue +3 -3
  108. package/dist/runtime/components/combobox/combobox.module.css +1 -1
  109. package/dist/runtime/components/combobox/lib/context.d.ts +2 -2
  110. package/dist/runtime/components/combobox/lib/context.js +1 -1
  111. package/dist/runtime/components/combobox/lib/use-combobox/index.d.ts +70 -1
  112. package/dist/runtime/components/combobox/lib/use-combobox/index.js +104 -1
  113. package/dist/runtime/components/combobox/lib/use-combobox-data/get-parsed-combobox-data.d.ts +2 -2
  114. package/dist/runtime/components/combobox/lib/use-combobox-data/get-parsed-combobox-data.js +2 -1
  115. package/dist/runtime/components/combobox/lib/use-combobox-data/index.d.ts +7 -1
  116. package/dist/runtime/components/combobox/lib/use-combobox-data/index.js +24 -1
  117. package/dist/runtime/components/combobox/lib/utils/default-option-filter.d.ts +3 -3
  118. package/dist/runtime/components/combobox/lib/utils/default-option-filter.js +1 -1
  119. package/dist/runtime/components/combobox/lib/utils/index.d.ts +2 -3
  120. package/dist/runtime/components/combobox/lib/utils/index.js +2 -2
  121. package/dist/runtime/components/combobox/lib/utils/is-empty-combobox-data.d.ts +2 -2
  122. package/dist/runtime/components/combobox/lib/utils/is-guards.d.ts +2 -0
  123. package/dist/runtime/components/combobox/types.d.ts +34 -0
  124. package/dist/runtime/components/container.vue +8 -8
  125. package/dist/runtime/components/date-time-picker.d.vue.ts +3 -0
  126. package/dist/runtime/components/date-time-picker.vue +66 -66
  127. package/dist/runtime/components/date-time-picker.vue.d.ts +3 -0
  128. package/dist/runtime/components/dialog/index.d.ts +1 -1
  129. package/dist/runtime/components/dialog/lib.js +1 -1
  130. package/dist/runtime/components/dialog/ui/dialog-close-button.vue +11 -11
  131. package/dist/runtime/components/dialog/ui/dialog-header.vue +5 -5
  132. package/dist/runtime/components/dialog/ui/dialog-root.d.vue.ts +3 -2
  133. package/dist/runtime/components/dialog/ui/dialog-root.vue +1 -1
  134. package/dist/runtime/components/dialog/ui/dialog-root.vue.d.ts +3 -2
  135. package/dist/runtime/components/dialog/ui/dialog-title.vue +5 -5
  136. package/dist/runtime/components/drawer/drawer-close-button.vue +3 -3
  137. package/dist/runtime/components/drawer/drawer-header.vue +3 -3
  138. package/dist/runtime/components/drawer/drawer-root.vue +15 -15
  139. package/dist/runtime/components/drawer/drawer-title.vue +3 -3
  140. package/dist/runtime/components/index.d.ts +12 -11
  141. package/dist/runtime/components/index.js +1 -10
  142. package/dist/runtime/components/input/date-picker.vue +86 -86
  143. package/dist/runtime/components/input/email-input.vue +21 -21
  144. package/dist/runtime/components/input/lib/input-wrapper.context.d.ts +2 -1
  145. package/dist/runtime/components/input/number-input.d.vue.ts +1 -1
  146. package/dist/runtime/components/input/number-input.vue +132 -132
  147. package/dist/runtime/components/input/number-input.vue.d.ts +1 -1
  148. package/dist/runtime/components/input/password-input.vue +28 -28
  149. package/dist/runtime/components/input/text-input.d.vue.ts +2 -1
  150. package/dist/runtime/components/input/text-input.vue.d.ts +2 -1
  151. package/dist/runtime/components/input/ui/button-input.d.vue.ts +7 -2
  152. package/dist/runtime/components/input/ui/button-input.vue.d.ts +7 -2
  153. package/dist/runtime/components/input/ui/input-base.d.vue.ts +1 -0
  154. package/dist/runtime/components/input/ui/input-base.vue.d.ts +1 -0
  155. package/dist/runtime/components/input/ui/input-inline.d.vue.ts +12 -5
  156. package/dist/runtime/components/input/ui/input-inline.vue +9 -5
  157. package/dist/runtime/components/input/ui/input-inline.vue.d.ts +12 -5
  158. package/dist/runtime/components/input/ui/input-label.d.vue.ts +2 -0
  159. package/dist/runtime/components/input/ui/input-label.vue.d.ts +2 -0
  160. package/dist/runtime/components/input/ui/input-wrapper.d.vue.ts +1 -0
  161. package/dist/runtime/components/input/ui/input-wrapper.vue.d.ts +1 -0
  162. package/dist/runtime/components/link/link-button.vue +16 -16
  163. package/dist/runtime/components/link/link.d.vue.ts +1 -0
  164. package/dist/runtime/components/link/link.vue +10 -10
  165. package/dist/runtime/components/link/link.vue.d.ts +1 -0
  166. package/dist/runtime/components/loader/_loaders/bars-loader.vue +5 -5
  167. package/dist/runtime/components/loader/_loaders/dots-loader.vue +5 -5
  168. package/dist/runtime/components/loader/_loaders/oval-loader.vue +1 -1
  169. package/dist/runtime/components/loader/loader.d.vue.ts +6 -0
  170. package/dist/runtime/components/loader/loader.vue +1 -1
  171. package/dist/runtime/components/loader/loader.vue.d.ts +6 -0
  172. package/dist/runtime/components/modal/modal-close-button.vue +3 -3
  173. package/dist/runtime/components/modal/modal-header.vue +3 -3
  174. package/dist/runtime/components/modal/modal-root.vue +13 -13
  175. package/dist/runtime/components/modal/modal-title.vue +3 -3
  176. package/dist/runtime/components/nav-link/nav-icon-link.d.vue.ts +11 -4
  177. package/dist/runtime/components/nav-link/nav-icon-link.vue +15 -15
  178. package/dist/runtime/components/nav-link/nav-icon-link.vue.d.ts +11 -4
  179. package/dist/runtime/components/nav-link/nav-link.d.vue.ts +10 -6
  180. package/dist/runtime/components/nav-link/nav-link.vue +131 -131
  181. package/dist/runtime/components/nav-link/nav-link.vue.d.ts +10 -6
  182. package/dist/runtime/components/paper.d.vue.ts +1 -0
  183. package/dist/runtime/components/paper.vue.d.ts +1 -0
  184. package/dist/runtime/components/popover/lib/context.js +1 -1
  185. package/dist/runtime/components/popover/lib/get-arrow-position.d.ts +1 -1
  186. package/dist/runtime/components/popover/lib/use-popover.d.ts +1 -1
  187. package/dist/runtime/components/popover/popover-dropdown.vue +70 -69
  188. package/dist/runtime/components/popover/popover-target.vue +8 -8
  189. package/dist/runtime/components/popover/popover.d.vue.ts +1 -1
  190. package/dist/runtime/components/popover/popover.vue +1 -1
  191. package/dist/runtime/components/popover/popover.vue.d.ts +1 -1
  192. package/dist/runtime/components/popover/{types/index.d.ts → types.d.ts} +7 -6
  193. package/dist/runtime/components/progress/progress-label.vue +3 -3
  194. package/dist/runtime/components/progress/progress-root.d.vue.ts +4 -4
  195. package/dist/runtime/components/progress/progress-root.vue +3 -3
  196. package/dist/runtime/components/progress/progress-root.vue.d.ts +4 -4
  197. package/dist/runtime/components/progress/progress-section.vue +9 -9
  198. package/dist/runtime/components/progress/progress.vue +9 -9
  199. package/dist/runtime/components/renderless/renderless.vue +3 -3
  200. package/dist/runtime/components/roving-focus/index.d.ts +1 -1
  201. package/dist/runtime/components/roving-focus/index.js +1 -1
  202. package/dist/runtime/components/roving-focus/roving-focus-item.vue +15 -15
  203. package/dist/runtime/components/roving-focus/roving-focus.vue +1 -1
  204. package/dist/runtime/components/{select/select.d.vue.ts → select.d.vue.ts} +23 -10
  205. package/dist/runtime/components/{select/select.vue → select.vue} +59 -25
  206. package/dist/runtime/components/{select/select.vue.d.ts → select.vue.d.ts} +23 -10
  207. package/dist/runtime/components/switch/index.d.ts +3 -0
  208. package/dist/runtime/components/switch/index.js +1 -0
  209. package/dist/runtime/components/switch/lib/group.context.d.ts +34 -0
  210. package/dist/runtime/components/switch/lib/group.context.js +25 -0
  211. package/dist/runtime/components/switch/switch-group.d.vue.ts +42 -0
  212. package/dist/runtime/components/switch/switch-group.vue +50 -0
  213. package/dist/runtime/components/switch/switch-group.vue.d.ts +42 -0
  214. package/dist/runtime/components/switch/switch.d.vue.ts +50 -0
  215. package/dist/runtime/components/switch/switch.vue +328 -0
  216. package/dist/runtime/components/switch/switch.vue.d.ts +50 -0
  217. package/dist/runtime/components/table/index.d.ts +1 -1
  218. package/dist/runtime/components/table/index.js +1 -1
  219. package/dist/runtime/components/table/lib.d.ts +1 -1
  220. package/dist/runtime/components/table/table.d.ts +30 -30
  221. package/dist/runtime/components/table/{model.d.ts → types.d.ts} +3 -15
  222. package/dist/runtime/components/table/ui/table-sort-icon.d.vue.ts +1 -1
  223. package/dist/runtime/components/table/ui/table-sort-icon.vue.d.ts +1 -1
  224. package/dist/runtime/components/table/ui/table-sortable-header.d.vue.ts +1 -1
  225. package/dist/runtime/components/table/ui/table-sortable-header.vue +11 -11
  226. package/dist/runtime/components/table/ui/table-sortable-header.vue.d.ts +1 -1
  227. package/dist/runtime/components/table/ui/table.d.vue.ts +1 -1
  228. package/dist/runtime/components/table/ui/table.vue +1 -1
  229. package/dist/runtime/components/table/ui/table.vue.d.ts +1 -1
  230. package/dist/runtime/components/tabs/index.d.ts +4 -0
  231. package/dist/runtime/components/tabs/lib.d.ts +1 -0
  232. package/dist/runtime/components/tabs/lib.js +9 -1
  233. package/dist/runtime/components/tabs/tabs-list.vue +10 -10
  234. package/dist/runtime/components/tabs/tabs-panel.vue +11 -11
  235. package/dist/runtime/components/tabs/tabs-root.vue +12 -11
  236. package/dist/runtime/components/tabs/tabs-tab.vue +20 -20
  237. package/dist/runtime/components/text.vue +68 -68
  238. package/dist/runtime/components/textarea.vue +34 -34
  239. package/dist/runtime/components/time-picker/index.d.ts +1 -1
  240. package/dist/runtime/components/time-picker/index.js +1 -1
  241. package/dist/runtime/components/time-picker/lib/get-parsed-time.d.ts +1 -1
  242. package/dist/runtime/components/time-picker/lib/get-time-string.d.ts +1 -1
  243. package/dist/runtime/components/time-picker/lib/use-time-picker.d.ts +1 -1
  244. package/dist/runtime/components/time-picker/time-picker.d.vue.ts +8 -7
  245. package/dist/runtime/components/time-picker/time-picker.vue.d.ts +8 -7
  246. package/dist/runtime/components/time-picker/{model.d.ts → types.d.ts} +13 -0
  247. package/dist/runtime/components/title.vue +14 -14
  248. package/dist/runtime/components/{transition/transition.vue → transition.vue} +3 -3
  249. package/dist/runtime/components/tree/_ui/tree-item.d.vue.ts +1 -1
  250. package/dist/runtime/components/tree/_ui/tree-item.vue +131 -130
  251. package/dist/runtime/components/tree/_ui/tree-item.vue.d.ts +1 -1
  252. package/dist/runtime/components/tree/_ui/tree-root.d.vue.ts +1 -1
  253. package/dist/runtime/components/tree/_ui/tree-root.vue +22 -22
  254. package/dist/runtime/components/tree/_ui/tree-root.vue.d.ts +1 -1
  255. package/dist/runtime/components/tree/index.d.ts +1 -1
  256. package/dist/runtime/components/tree/index.js +1 -1
  257. package/dist/runtime/components/tree/lib/context.d.ts +1 -1
  258. package/dist/runtime/components/tree/lib/context.js +1 -1
  259. package/dist/runtime/components/tree/lib/filter-tree-items.d.ts +1 -1
  260. package/dist/runtime/components/tree/tree.d.vue.ts +1 -1
  261. package/dist/runtime/components/tree/tree.vue.d.ts +1 -1
  262. package/dist/runtime/components/visually-hidden/visually-hidden-input.d.vue.ts +2 -1
  263. package/dist/runtime/components/visually-hidden/visually-hidden-input.vue +1 -1
  264. package/dist/runtime/components/visually-hidden/visually-hidden-input.vue.d.ts +2 -1
  265. package/dist/runtime/components/visually-hidden/visually-hidden.vue +9 -9
  266. package/dist/runtime/composables/create-strict-injection.d.ts +42 -0
  267. package/dist/runtime/{composals → composables}/index.d.ts +2 -0
  268. package/dist/runtime/{composals → composables}/index.js +2 -0
  269. package/dist/runtime/composables/use-active-link.d.ts +15 -0
  270. package/dist/runtime/{composals → composables}/use-date-config.d.ts +10 -5
  271. package/dist/runtime/composables/use-selectable-group.d.ts +23 -0
  272. package/dist/runtime/composables/use-selectable-group.js +20 -0
  273. package/dist/runtime/{composals → composables}/use-style-resolver.d.ts +3 -0
  274. package/dist/runtime/composables/use-theme.d.ts +16 -0
  275. package/dist/runtime/modals/_confirm-modal/confirm-modal.d.vue.ts +1 -1
  276. package/dist/runtime/modals/_confirm-modal/confirm-modal.vue.d.ts +1 -1
  277. package/dist/runtime/modals/modal-manager.d.ts +28 -45
  278. package/dist/runtime/modals/modal-manager.js +8 -28
  279. package/dist/runtime/modals/modals-provider.d.vue.ts +1 -7
  280. package/dist/runtime/modals/modals-provider.vue +1 -7
  281. package/dist/runtime/modals/modals-provider.vue.d.ts +1 -7
  282. package/dist/runtime/modals/use-modal.d.ts +5 -14
  283. package/dist/runtime/modals/use-modal.js +3 -6
  284. package/dist/runtime/styles/dark-theme.css +1 -1
  285. package/dist/runtime/types/index.d.ts +2 -0
  286. package/dist/runtime/types/theme.d.ts +9 -0
  287. package/dist/runtime/utils/boolean/index.d.ts +2 -0
  288. package/dist/runtime/utils/boolean/index.js +2 -0
  289. package/dist/runtime/utils/boolean/is-falsy.d.ts +6 -0
  290. package/dist/runtime/utils/boolean/is-number-like.d.ts +8 -0
  291. package/dist/runtime/{const/index.d.ts → utils/color/const.d.ts} +1 -0
  292. package/dist/runtime/utils/{color-functions → color}/get-color-var.d.ts +3 -0
  293. package/dist/runtime/utils/color/get-gradient.d.ts +15 -0
  294. package/dist/runtime/utils/{color-functions → color}/get-gradient.js +1 -1
  295. package/dist/runtime/utils/color/index.d.ts +4 -0
  296. package/dist/runtime/utils/color/index.js +4 -0
  297. package/dist/runtime/utils/color/parse-theme-color.d.ts +36 -0
  298. package/dist/runtime/utils/css/get-mod.d.ts +9 -0
  299. package/dist/runtime/utils/{get-mod.js → css/get-mod.js} +1 -1
  300. package/dist/runtime/utils/css/get-size.d.ts +27 -0
  301. package/dist/runtime/utils/{get-size.js → css/get-size.js} +2 -2
  302. package/dist/runtime/utils/css/index.d.ts +3 -0
  303. package/dist/runtime/utils/css/index.js +3 -0
  304. package/dist/runtime/utils/css/rem.d.ts +10 -0
  305. package/dist/runtime/utils/date/create-months.d.ts +12 -0
  306. package/dist/runtime/utils/date/get-days-between.d.ts +5 -0
  307. package/dist/runtime/{helpers → utils}/date/is-weekend.d.ts +3 -0
  308. package/dist/runtime/utils/date/types.d.ts +10 -0
  309. package/dist/runtime/utils/index.d.ts +5 -7
  310. package/dist/runtime/utils/index.js +5 -7
  311. package/dist/runtime/utils/{create-variant-color-resolver.d.ts → style/create-variant-color-resolver.d.ts} +12 -0
  312. package/dist/runtime/utils/{create-variant-color-resolver.js → style/create-variant-color-resolver.js} +3 -3
  313. package/dist/runtime/utils/style/index.d.ts +1 -0
  314. package/dist/runtime/utils/style/index.js +1 -0
  315. package/dist/runtime/utils/tree.d.ts +20 -84
  316. package/package.json +5 -9
  317. package/dist/runtime/components/combobox/lib/use-combobox/use-combobox.d.ts +0 -70
  318. package/dist/runtime/components/combobox/lib/use-combobox/use-combobox.js +0 -97
  319. package/dist/runtime/components/combobox/lib/use-combobox-data/use-combobox-data.d.ts +0 -7
  320. package/dist/runtime/components/combobox/lib/use-combobox-data/use-combobox-data.js +0 -23
  321. package/dist/runtime/components/combobox/lib/utils/is-options-group.d.ts +0 -2
  322. package/dist/runtime/components/combobox/types/index.d.ts +0 -19
  323. package/dist/runtime/components/combobox/types/index.js +0 -1
  324. package/dist/runtime/components/combobox/types/item.d.ts +0 -22
  325. package/dist/runtime/components/select/index.d.ts +0 -1
  326. package/dist/runtime/components/transition/index.d.ts +0 -1
  327. package/dist/runtime/components/transition/index.js +0 -0
  328. package/dist/runtime/components/tree/model.js +0 -0
  329. package/dist/runtime/composals/use-active-link.d.ts +0 -5
  330. package/dist/runtime/composals/use-theme.d.ts +0 -9
  331. package/dist/runtime/helpers/create-strict-injection.d.ts +0 -94
  332. package/dist/runtime/helpers/date/create-months.d.ts +0 -3
  333. package/dist/runtime/helpers/date/get-days-between.d.ts +0 -1
  334. package/dist/runtime/helpers/date/types.d.ts +0 -19
  335. package/dist/runtime/helpers/index.d.ts +0 -1
  336. package/dist/runtime/helpers/index.js +0 -1
  337. package/dist/runtime/utils/color-functions/get-gradient.d.ts +0 -3
  338. package/dist/runtime/utils/color-functions/parse-theme-color.d.ts +0 -14
  339. package/dist/runtime/utils/converters/rem.d.ts +0 -2
  340. package/dist/runtime/utils/get-mod.d.ts +0 -2
  341. package/dist/runtime/utils/get-size.d.ts +0 -6
  342. /package/dist/runtime/components/avatar/{_lib → lib}/context.d.ts +0 -0
  343. /package/dist/runtime/components/avatar/{_lib → lib}/context.js +0 -0
  344. /package/dist/runtime/components/avatar/{_lib → lib}/get-initials-color.d.ts +0 -0
  345. /package/dist/runtime/components/avatar/{_lib → lib}/get-initials-color.js +0 -0
  346. /package/dist/runtime/components/avatar/{_lib → lib}/get-initials.d.ts +0 -0
  347. /package/dist/runtime/components/avatar/{_lib → lib}/get-initials.js +0 -0
  348. /package/dist/runtime/components/calendar/{model.d.ts → types.d.ts} +0 -0
  349. /package/dist/runtime/{helpers/date → components/calendar}/types.js +0 -0
  350. /package/dist/runtime/components/combobox/lib/utils/{is-options-group.js → is-guards.js} +0 -0
  351. /package/dist/runtime/components/{calendar/model.js → combobox/types.js} +0 -0
  352. /package/dist/runtime/components/dialog/{model.d.ts → types.d.ts} +0 -0
  353. /package/dist/runtime/components/{combobox/types/item.js → dialog/types.js} +0 -0
  354. /package/dist/runtime/components/input/{types/index.d.ts → types.d.ts} +0 -0
  355. /package/dist/runtime/components/{dialog/model.js → input/types.js} +0 -0
  356. /package/dist/runtime/components/{input/types/index.js → popover/types.js} +0 -0
  357. /package/dist/runtime/components/roving-focus/{_lib → lib}/context.d.ts +0 -0
  358. /package/dist/runtime/components/roving-focus/{_lib → lib}/context.js +0 -0
  359. /package/dist/runtime/components/{popover/types/index.js → table/types.js} +0 -0
  360. /package/dist/runtime/components/{select/index.js → time-picker/types.js} +0 -0
  361. /package/dist/runtime/components/{transition/transition.d.vue.ts → transition.d.vue.ts} +0 -0
  362. /package/dist/runtime/components/{transition/transition.vue.d.ts → transition.vue.d.ts} +0 -0
  363. /package/dist/runtime/components/tree/{model.d.ts → types.d.ts} +0 -0
  364. /package/dist/runtime/components/{table/model.js → tree/types.js} +0 -0
  365. /package/dist/runtime/{helpers → composables}/create-strict-injection.js +0 -0
  366. /package/dist/runtime/{composals → composables}/use-active-link.js +0 -0
  367. /package/dist/runtime/{composals → composables}/use-date-config.js +0 -0
  368. /package/dist/runtime/{composals → composables}/use-style-resolver.js +0 -0
  369. /package/dist/runtime/{composals → composables}/use-theme.js +0 -0
  370. /package/dist/runtime/{const/index.js → utils/color/const.js} +0 -0
  371. /package/dist/runtime/utils/{color-functions → color}/get-color-var.js +0 -0
  372. /package/dist/runtime/utils/{color-functions → color}/parse-theme-color.js +0 -0
  373. /package/dist/runtime/utils/{converters → css}/rem.js +0 -0
  374. /package/dist/runtime/{helpers → utils}/date/create-months.js +0 -0
  375. /package/dist/runtime/{helpers → utils}/date/get-days-between.js +0 -0
  376. /package/dist/runtime/{helpers → utils}/date/get-week-number.d.ts +0 -0
  377. /package/dist/runtime/{helpers → utils}/date/get-week-number.js +0 -0
  378. /package/dist/runtime/{helpers → utils}/date/index.d.ts +0 -0
  379. /package/dist/runtime/{helpers → utils}/date/index.js +0 -0
  380. /package/dist/runtime/{helpers → utils}/date/is-same-month.d.ts +0 -0
  381. /package/dist/runtime/{helpers → utils}/date/is-same-month.js +0 -0
  382. /package/dist/runtime/{helpers → utils}/date/is-same-week.d.ts +0 -0
  383. /package/dist/runtime/{helpers → utils}/date/is-same-week.js +0 -0
  384. /package/dist/runtime/{helpers → utils}/date/is-weekend.js +0 -0
  385. /package/dist/runtime/{components/time-picker/model.js → utils/date/types.js} +0 -0
@@ -1,12 +1,12 @@
1
1
  <script setup>
2
- import { useTheme } from "@nui/composals";
2
+ import { useTheme } from "@nui/composables";
3
3
  import { getThemeColor } from "@nui/utils";
4
4
  import { computed, watch } from "vue";
5
5
  import ActionIcon from "../../action-icon/action-icon.vue";
6
6
  import Button from "../../button/button.vue";
7
7
  import Loader from "../../loader/loader.vue";
8
8
  import RovingFocusItem from "../../roving-focus/roving-focus-item.vue";
9
- import UTransition from "../../transition/transition.vue";
9
+ import UTransition from "../../transition.vue";
10
10
  import { useTreeState } from "../lib/context";
11
11
  import { filterTreeItems } from "../lib/filter-tree-items";
12
12
  import { useTreeItemHandlers } from "../lib/item-handlers";
@@ -51,135 +51,136 @@ const { handleClick, handleKeyDown } = useTreeItemHandlers(path, isFolder, expan
51
51
  </script>
52
52
 
53
53
  <template>
54
- <li :class='$style.item' role='presentation'>
55
- <RovingFocusItem>
56
- <Button
57
- :size='ctx.size'
58
- :color='ctx.color'
59
- :variant='ctx.variant'
60
- :disabled
61
- role='treeitem'
62
- :classes='$style'
63
- :aria-level='level'
64
- :aria-selected='selected'
65
- :mod='{ active, selected, "tree-item": path }'
66
- right-section-p-e='all'
67
- @click.prevent='handleClick'
68
- @keydown.prevent='handleKeyDown'
69
- >
70
- <template #leftSection>
71
- <template v-if='pending'>
72
- <Loader :class='$style.icon' />
73
- </template>
74
-
75
- <template v-else-if='isFolder'>
76
- <Icon v-if='expanded' :class='$style.icon' :name='trailingIcon' />
77
- <Icon v-else :class='$style.icon' :name='icon' />
78
- </template>
79
-
80
- <template v-else>
81
- <Icon
82
- :class='$style.icon'
83
- :name='fileIcon'
84
- :style='{ color: color && getThemeColor(color, theme) }'
85
- />
86
- </template>
87
- </template>
88
-
89
- {{ name ?? path }}
90
-
91
- <template v-if='isFolder' #rightSection>
92
- <ActionIcon
93
- icon='gravity-ui:chevron-down'
94
- size='sm'
95
- :color='ctx.color'
96
- :classes='{ root: $style.chevron, icon: $style["chevron-icon"] }'
97
- :mod='{ expanded }'
98
- variant='subtle'
99
- @click.stop='ctx.toggle("expand", path)'
100
- />
101
- </template>
102
- </Button>
103
- </RovingFocusItem>
104
-
105
- <UTransition name='scale-y'>
106
- <ul
107
- v-if='expanded && data && data.length > 0'
108
- :class='$style.list'
109
- role='group'
110
- >
111
- <TreeItem
112
- v-for='child in data'
113
- :key='child.path'
114
- v-bind='child'
115
- :path='child.path'
116
- :level='level + 1'
117
- />
118
- </ul>
119
- </UTransition>
120
- </li>
54
+ <li :class='$style.item' role='presentation'>
55
+ <RovingFocusItem>
56
+ <Button
57
+ :size='ctx.size'
58
+ :color='ctx.color'
59
+ :variant='ctx.variant'
60
+ :disabled
61
+ role='treeitem'
62
+ :classes='$style'
63
+ :aria-level='level'
64
+ :aria-selected='selected'
65
+ :mod='{ active, selected, "tree-item": path }'
66
+ right-section-p-e='all'
67
+ @click.prevent='handleClick'
68
+ @keydown.prevent='handleKeyDown'
69
+ >
70
+ <template #leftSection>
71
+ <template v-if='pending'>
72
+ <Loader :class='$style.icon' />
73
+ </template>
74
+
75
+ <template v-else-if='isFolder'>
76
+ <Icon v-if='expanded' :class='$style.icon' :name='trailingIcon' />
77
+ <Icon v-else :class='$style.icon' :name='icon' />
78
+ </template>
79
+
80
+ <template v-else>
81
+ <Icon
82
+ :class='$style.icon'
83
+ :name='fileIcon'
84
+ :style='{ color: color && getThemeColor(color, theme) }'
85
+ />
86
+ </template>
87
+ </template>
88
+
89
+ {{ name ?? path }}
90
+
91
+ <template v-if='isFolder' #rightSection>
92
+ <ActionIcon
93
+ icon='gravity-ui:chevron-down'
94
+ size='sm'
95
+ :color='ctx.color'
96
+ :classes='{ root: $style.chevron, icon: $style["chevron-icon"] }'
97
+ :mod='{ expanded }'
98
+ variant='subtle'
99
+ @click.stop='ctx.toggle("expand", path)'
100
+ />
101
+ </template>
102
+ </Button>
103
+ </RovingFocusItem>
104
+
105
+ <UTransition name='scale-y'>
106
+ <ul
107
+ v-if='expanded && data && data.length > 0'
108
+ :class='$style.list'
109
+ role='group'
110
+ >
111
+ <TreeItem
112
+ v-for='child in data'
113
+ :key='child.path'
114
+ v-bind='child'
115
+ :path='child.path'
116
+ :level='level + 1'
117
+ />
118
+ </ul>
119
+ </UTransition>
120
+ </li>
121
121
  </template>
122
122
 
123
123
  <style module lang="postcss">
124
- .item {
125
- display: grid;
126
- gap: .25rem;
127
- }
128
-
129
- .icon {
130
- --loader-size: var(--tree-icon-size);
131
-
132
- width: var(--tree-icon-size);
133
- height: var(--tree-icon-size);
134
- }
135
-
136
- .chevron {
137
- color: var(--color-dimmed);
138
-
139
- transition: transform .3s ease-in-out;
140
-
141
- &:hover {
142
- color: var(--color-dimmed);
143
-
144
- background-color: transparent;
145
- }
146
-
147
- &[data-expanded] .chevron-icon {
148
- transform: rotate(-180deg);
149
- }
150
- }
151
-
152
- .list {
153
- display: grid;
154
- gap: .25rem;
155
-
156
- margin-inline-start: 1rem;
157
-
158
- padding-inline-start: .75rem;
159
- border-left: 1px solid var(--color-gray-4);
160
- }
161
-
162
- .root {
163
- .inner {
164
- display: grid;
165
- grid-template-columns: auto 1fr auto;
166
-
167
- color: var(--color-text);
168
-
169
- .label {
170
- font-weight: 500;
171
- }
172
- }
173
-
174
- &[data-active],
175
- &[data-selected] {
176
- .inner {
177
- color: var(--button-color);
178
- }
179
- }
180
-
181
- &[data-selected] {
182
- background: alpha(var(--button-color), .1);
183
- }
184
- }
124
+ .item {
125
+ display: grid;
126
+ gap: .25rem;
127
+ }
128
+
129
+ .icon {
130
+ --loader-size: var(--tree-icon-size);
131
+
132
+ width: var(--tree-icon-size);
133
+ height: var(--tree-icon-size);
134
+ }
135
+
136
+ .chevron {
137
+ color: var(--color-dimmed);
138
+
139
+ transition: transform .3s ease-in-out;
140
+
141
+ &:hover {
142
+ color: var(--color-dimmed);
143
+
144
+ background-color: transparent;
145
+ }
146
+
147
+ &[data-expanded] .chevron-icon {
148
+ transform: rotate(-180deg);
149
+ }
150
+ }
151
+
152
+
153
+ .list {
154
+ display: grid;
155
+ gap: .25rem;
156
+
157
+ margin-inline-start: 1rem;
158
+
159
+ padding-inline-start: .75rem;
160
+ border-left: 1px solid var(--color-gray-4);
161
+ }
162
+
163
+ .root {
164
+ .inner {
165
+ display: grid;
166
+ grid-template-columns: auto 1fr auto;
167
+
168
+ color: var(--color-text);
169
+
170
+ .label {
171
+ font-weight: 500;
172
+ }
173
+ }
174
+
175
+ &[data-active],
176
+ &[data-selected] {
177
+ .inner {
178
+ color: var(--button-color);
179
+ }
180
+ }
181
+
182
+ &[data-selected] {
183
+ background: alpha(var(--button-color), .1);
184
+ }
185
+ }
185
186
  </style>
@@ -1,4 +1,4 @@
1
- import type { TreeItem } from '../model.js';
1
+ import type { TreeItem } from '../types.js';
2
2
  export interface TreeItemProps extends TreeItem {
3
3
  level: number;
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import type { ButtonProps } from '@nui/components';
2
2
  import type { RovingFocusProps } from '../../roving-focus/roving-focus.vue.js';
3
- import type { TreeFilter, TreeIconResolver, TreeLoader, TreeModels } from '../model.js';
3
+ import type { TreeFilter, TreeIconResolver, TreeLoader, TreeModels } from '../types.js';
4
4
  export type TreeRootProps = RovingFocusProps & {
5
5
  iconResolver?: TreeIconResolver;
6
6
  removable?: boolean;
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { useStyleResolver } from "@nui/composals";
2
+ import { useStyleResolver } from "@nui/composables";
3
3
  import { getSize } from "@nui/utils";
4
4
  import { onClickOutside, useEventListener } from "@vueuse/core";
5
5
  import { useTemplateRef } from "vue";
@@ -64,28 +64,28 @@ if (removable) {
64
64
  </script>
65
65
 
66
66
  <template>
67
- <RovingFocus :attr :loop :orientation>
68
- <Box
69
- is='ul'
70
- ref='parent'
71
- role='tree'
72
- :style
73
- :class='$style.root'
74
- @keydown.esc.prevent='selected = []'
75
- >
76
- <slot />
77
- </Box>
78
- </RovingFocus>
67
+ <RovingFocus :attr :loop :orientation>
68
+ <Box
69
+ is='ul'
70
+ ref='parent'
71
+ role='tree'
72
+ :style
73
+ :class='$style.root'
74
+ @keydown.esc.prevent='selected = []'
75
+ >
76
+ <slot />
77
+ </Box>
78
+ </RovingFocus>
79
79
  </template>
80
80
 
81
81
  <style module lang="postcss">
82
- .root {
83
- --tree-icon-size: var(--spacing-md);
84
-
85
- display: flex;
86
- flex-direction: column;
87
- gap: .25rem;
88
-
89
- padding-inline-start: 0;
90
- }
82
+ .root {
83
+ --tree-icon-size: var(--spacing-md);
84
+
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: .25rem;
88
+
89
+ padding-inline-start: 0;
90
+ }
91
91
  </style>
@@ -1,6 +1,6 @@
1
1
  import type { ButtonProps } from '@nui/components';
2
2
  import type { RovingFocusProps } from '../../roving-focus/roving-focus.vue.js';
3
- import type { TreeFilter, TreeIconResolver, TreeLoader, TreeModels } from '../model.js';
3
+ import type { TreeFilter, TreeIconResolver, TreeLoader, TreeModels } from '../types.js';
4
4
  export type TreeRootProps = RovingFocusProps & {
5
5
  iconResolver?: TreeIconResolver;
6
6
  removable?: boolean;
@@ -1 +1 @@
1
- export * from './model.js';
1
+ export * from './types.js';
@@ -1 +1 @@
1
- export * from "./model.js";
1
+ export * from "./types.js";
@@ -1,6 +1,6 @@
1
1
  import type { ButtonProps } from '@nui/components';
2
2
  import type { ModelRef, ShallowRef } from 'vue';
3
- import type { TreeFilter, TreeIconResolver, TreeLoader } from '../model.js';
3
+ import type { TreeFilter, TreeIconResolver, TreeLoader } from '../types.js';
4
4
  type EventType = 'select' | 'expand';
5
5
  type SelectMode = 'single' | 'multiple' | 'range';
6
6
  export interface TreeContext {
@@ -1,4 +1,4 @@
1
- import { createStrictInjection } from "@nui/helpers";
1
+ import { createStrictInjection } from "@nui/composables";
2
2
  import { unrefElement } from "@vueuse/core";
3
3
  const injectionKey = Symbol("nui-tree");
4
4
  const [useProvide, useState] = createStrictInjection(({
@@ -1,2 +1,2 @@
1
- import type { TreeFilter, TreeItem } from '../model.js';
1
+ import type { TreeFilter, TreeItem } from '../types.js';
2
2
  export declare function filterTreeItems(items: TreeItem[] | undefined, filter?: TreeFilter): TreeItem[] | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { TreeRootProps } from './_ui/tree-root.vue.js';
2
- import type { TreeModels } from './model.js';
2
+ import type { TreeModels } from './types.js';
3
3
  export interface TreeProps extends TreeRootProps {
4
4
  }
5
5
  type __VLS_Props = TreeProps;
@@ -1,5 +1,5 @@
1
1
  import type { TreeRootProps } from './_ui/tree-root.vue.js';
2
- import type { TreeModels } from './model.js';
2
+ import type { TreeModels } from './types.js';
3
3
  export interface TreeProps extends TreeRootProps {
4
4
  }
5
5
  type __VLS_Props = TreeProps;
@@ -1,6 +1,7 @@
1
1
  import type { VisuallyHiddenProps } from './visually-hidden.vue.js';
2
2
  export interface VisuallyHiddenInputProps extends VisuallyHiddenProps {
3
- name: string;
3
+ /** Input name */
4
+ name?: string;
4
5
  required?: boolean;
5
6
  disabled?: boolean;
6
7
  }
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import VisuallyHidden from "./visually-hidden.vue";
3
3
  const props = defineProps({
4
- name: { type: String, required: true },
4
+ name: { type: String, required: false },
5
5
  required: { type: Boolean, required: false },
6
6
  disabled: { type: Boolean, required: false },
7
7
  feature: { type: String, required: false },
@@ -1,6 +1,7 @@
1
1
  import type { VisuallyHiddenProps } from './visually-hidden.vue.js';
2
2
  export interface VisuallyHiddenInputProps extends VisuallyHiddenProps {
3
- name: string;
3
+ /** Input name */
4
+ name?: string;
4
5
  required?: boolean;
5
6
  disabled?: boolean;
6
7
  }
@@ -8,15 +8,15 @@ const { feature, ...rest } = defineProps({
8
8
  </script>
9
9
 
10
10
  <template>
11
- <Box
12
- :aria-hidden='feature === "focusable" ? "true" : void 0'
13
- :data-hidden='feature === "fully-hidden" ? "true" : void 0'
14
- :tabindex='feature === "fully-hidden" ? "-1" : void 0'
15
- v-bind='rest'
16
- class='root'
17
- >
18
- <slot />
19
- </Box>
11
+ <Box
12
+ :aria-hidden='feature === "focusable" ? "true" : void 0'
13
+ :data-hidden='feature === "fully-hidden" ? "true" : void 0'
14
+ :tabindex='feature === "fully-hidden" ? "-1" : void 0'
15
+ v-bind='rest'
16
+ class='root'
17
+ >
18
+ <slot />
19
+ </Box>
20
20
  </template>
21
21
 
22
22
  <style scoped>
@@ -0,0 +1,42 @@
1
+ import type { InjectionKey } from '@vue/runtime-core';
2
+ import type { CreateInjectionStateOptions } from '@vueuse/core';
3
+ interface StrictInjectionOptions<Return> extends Omit<CreateInjectionStateOptions<Return>, 'injectionKey'> {
4
+ /** Human-readable context name embedded into the missing-provider error message. */
5
+ name: string;
6
+ /** Vue injection key used to store and read the provided state. */
7
+ injectionKey: InjectionKey<Return>;
8
+ }
9
+ type StrictInjectionReturn<Arguments extends Array<any>, Return> = Readonly<[
10
+ /**
11
+ * Provider function to be called in a parent component.
12
+ * Creates and provides the state to all descendant components.
13
+ */
14
+ useProvidingState: (...args: Arguments) => Return,
15
+ /**
16
+ * Consumer function to be called in a child component.
17
+ * Injects the state provided by the nearest parent provider.
18
+ *
19
+ * @throws {Error} When called outside of a provider context
20
+ */
21
+ useInjectedState: () => Return
22
+ ]>;
23
+ /**
24
+ * Creates a strict provide/inject.
25
+ *
26
+ * Unlike Vue's standard `inject`, the returned consumer hook throws a
27
+ * descriptive error when called outside of a provider, so misuse surfaces
28
+ * immediately instead of producing silent `undefined` values downstream.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const [useProvideComboboxState, useComboboxState] = createStrictInjection(
33
+ * (state: ComboboxState) => ({
34
+ * ...state,
35
+ * select: (item: string) => { state.selected.value = item },
36
+ * }),
37
+ * { name: 'ComboboxState', injectionKey: Symbol('combobox-state') },
38
+ * )
39
+ * ```
40
+ */
41
+ export declare function createStrictInjection<Arguments extends Array<any>, Return>(composable: (...args: Arguments) => Return, options: StrictInjectionOptions<Return>): StrictInjectionReturn<Arguments, Return>;
42
+ export {};
@@ -1,4 +1,6 @@
1
+ export * from './create-strict-injection.js';
1
2
  export * from './use-active-link.js';
2
3
  export * from './use-date-config.js';
4
+ export * from './use-selectable-group.js';
3
5
  export * from './use-style-resolver.js';
4
6
  export * from './use-theme.js';
@@ -1,4 +1,6 @@
1
+ export * from "./create-strict-injection.js";
1
2
  export * from "./use-active-link.js";
2
3
  export * from "./use-date-config.js";
4
+ export * from "./use-selectable-group.js";
3
5
  export * from "./use-style-resolver.js";
4
6
  export * from "./use-theme.js";
@@ -0,0 +1,15 @@
1
+ import type { ComputedRef } from 'vue';
2
+ import type { RouteLocationRaw } from 'vue-router';
3
+ /**
4
+ * Computes whether a given route target matches the current route.
5
+ *
6
+ * By default the link is active when its resolved path equals the current
7
+ * path or is a prefix of it, so parent routes stay highlighted while
8
+ * browsing nested children.
9
+ *
10
+ * Pass `exact: true` to disable prefix matching.
11
+ */
12
+ export declare function useActiveLink(href: RouteLocationRaw | undefined, options?: {
13
+ /** Require a strict path equality instead of prefix matching. */
14
+ exact?: boolean;
15
+ }): ComputedRef<boolean>;
@@ -1,5 +1,7 @@
1
1
  import type { FormatOptions } from '@formkit/tempo';
2
+ /** Locale configuration for date-aware features. */
2
3
  export type DateConfig = Omit<FormatOptions, 'date' | 'format'> & {
4
+ /** Index of the first day of the week (0 = Sunday, 1 = Monday, ...). */
3
5
  firstDayOfWeek: number;
4
6
  };
5
7
  declare const Inject: () => {
@@ -10,8 +12,11 @@ declare const Inject: () => {
10
12
  partFilter?: (part: import("@formkit/tempo").Part) => boolean;
11
13
  } | undefined;
12
14
  /**
13
- * Hook to provide the dates configuration in a root or parent component.
14
- * Necessary for initializing the configuration that will be used by child components.
15
+ * Provides the shared date configuration to the component subtree.
16
+ *
17
+ * Call once in a root or layout component.
18
+ *
19
+ * When `firstDayOfWeek` is omitted, it is resolved from the locale.
15
20
  */
16
21
  export declare const useProvideDatesConfig: (state?: Partial<DateConfig> | undefined) => {
17
22
  firstDayOfWeek: number;
@@ -21,10 +26,10 @@ export declare const useProvideDatesConfig: (state?: Partial<DateConfig> | undef
21
26
  partFilter?: (part: import("@formkit/tempo").Part) => boolean;
22
27
  };
23
28
  /**
24
- * Hook to inject the dates configuration in a component.
25
- * Used in components that depend on the dates configuration.
29
+ * Reads the shared date configuration provided by `useProvideDatesConfig`.
26
30
  *
27
- * @param localValue merges new values with ctx with `defu`
31
+ * A local override can be passed in and will be shallow-merged on top of the
32
+ * injected config.
28
33
  */
29
34
  export declare function useDatesConfig(localValue?: ReturnType<typeof Inject>): {
30
35
  firstDayOfWeek: number;
@@ -0,0 +1,23 @@
1
+ import type { ModelRef } from 'vue';
2
+ export interface UseSelectableGroupOptions {
3
+ /** When `true`, the value cannot be changed. */
4
+ readOnly?: boolean;
5
+ /** When `true`, all items in the group are disabled. */
6
+ disabled?: boolean;
7
+ /** Maximum number of items that can be selected. When reached, unselected items become disabled. */
8
+ maxSelectedValues?: number;
9
+ }
10
+ export interface UseSelectableGroupReturn<T> {
11
+ /** Toggles the given value in the selection array. */
12
+ update: (value: T) => void;
13
+ /** Returns `true` when the value is currently selected. */
14
+ isSelected: (value: T) => boolean;
15
+ /** Returns `true` when an item with the given value should be disabled. */
16
+ isDisabled: (value: T) => boolean;
17
+ }
18
+ /**
19
+ * Shared selection logic for multi-select group components.
20
+ *
21
+ * Centralizes the add/remove, max-limit and read-only rules.
22
+ */
23
+ export declare function useSelectableGroup<T extends string = string>(value: ModelRef<T[]>, options?: UseSelectableGroupOptions): UseSelectableGroupReturn<T>;
@@ -0,0 +1,20 @@
1
+ export function useSelectableGroup(value, options = {}) {
2
+ const isSelected = (item) => value.value.includes(item);
3
+ const update = (item) => {
4
+ if (options.readOnly)
5
+ return;
6
+ const selected = isSelected(item);
7
+ if (!selected && options.maxSelectedValues !== void 0 && value.value.length >= options.maxSelectedValues) {
8
+ return;
9
+ }
10
+ value.value = selected ? value.value.filter((i) => i !== item) : [...value.value, item];
11
+ };
12
+ const isDisabled = (item) => {
13
+ if (options.disabled)
14
+ return true;
15
+ if (options.maxSelectedValues === void 0)
16
+ return false;
17
+ return !isSelected(item) && value.value.length >= options.maxSelectedValues;
18
+ };
19
+ return { update, isSelected, isDisabled };
20
+ }
@@ -1,3 +1,6 @@
1
1
  import type { NuanceTheme } from '@nui/types';
2
2
  import type { CSSProperties } from 'vue';
3
+ /**
4
+ * Builds a style object from a factory that receives the current theme.
5
+ */
3
6
  export declare function useStyleResolver<T extends CSSProperties>(factory: (theme: NuanceTheme) => T): T;
@@ -0,0 +1,16 @@
1
+ import type { NuanceTheme } from '@nui/types';
2
+ interface ThemeInstance {
3
+ /** User-selected theme preference, including `system`. Writable. */
4
+ preference: NuanceTheme;
5
+ /** Resolved theme currently applied to the document. */
6
+ readonly value: NuanceTheme;
7
+ /** `true` while the theme has not yet been determined on the client. */
8
+ unknown: boolean;
9
+ /** `true` when the theme is forced by the application and cannot be changed by the user. */
10
+ forced: boolean;
11
+ }
12
+ /**
13
+ * Returns the current Nuance theme instance
14
+ */
15
+ export declare function useTheme(): ThemeInstance;
16
+ export {};
@@ -1,5 +1,5 @@
1
+ import type { MaybePromise } from '@nui/types';
1
2
  import type { ButtonProps, ModalRootProps } from '../../components/index.js';
2
- import type { MaybePromise } from '../../types/index.js';
3
3
  type ConfirmLabels = Record<'confirm' | 'cancel', string>;
4
4
  export interface ConfirmModalProps extends /* @vue-ignore */ ModalRootProps {
5
5
  /** Modal title */