@dvcol/neo-svelte 1.1.2 → 1.2.0

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 (466) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +15 -7
  3. package/dist/badge/neo-badge.model.d.ts +1 -1
  4. package/dist/buttons/NeoArrowButton.svelte +4 -4
  5. package/dist/buttons/NeoButton.svelte +110 -24
  6. package/dist/buttons/NeoButtonGroup.svelte +18 -9
  7. package/dist/buttons/NeoButtonGroup.svelte.d.ts +1 -1
  8. package/dist/buttons/NeoButtonRow.svelte +137 -0
  9. package/dist/buttons/NeoButtonRow.svelte.d.ts +4 -0
  10. package/dist/buttons/NeoCancelButton.svelte +2 -2
  11. package/dist/buttons/NeoCheckboxButton.svelte +6 -4
  12. package/dist/buttons/NeoCheckboxButton.svelte.d.ts +1 -1
  13. package/dist/buttons/NeoCloseButton.svelte +37 -6
  14. package/dist/buttons/NeoCloseButton.svelte.d.ts +2 -2
  15. package/dist/buttons/NeoRadioButton.svelte +6 -4
  16. package/dist/buttons/NeoSwitchButton.svelte +5 -3
  17. package/dist/buttons/index.d.ts +2 -0
  18. package/dist/buttons/index.js +1 -0
  19. package/dist/buttons/neo-arrow-button.model.d.ts +3 -3
  20. package/dist/buttons/neo-button-group.model.d.ts +12 -3
  21. package/dist/buttons/neo-button-row.model.d.ts +33 -0
  22. package/dist/buttons/neo-button-row.model.js +1 -0
  23. package/dist/buttons/neo-button.model.d.ts +11 -4
  24. package/dist/buttons/neo-close-button.model.d.ts +13 -0
  25. package/dist/buttons/neo-close-button.model.js +5 -0
  26. package/dist/buttons/neo-icon-button.model.d.ts +2 -2
  27. package/dist/cards/NeoCard.svelte +22 -20
  28. package/dist/cards/neo-card.model.d.ts +3 -2
  29. package/dist/collapse/NeoAccordion.svelte +3 -1
  30. package/dist/collapse/NeoCollapse.svelte +2 -2
  31. package/dist/collapse/NeoCollapse.svelte.d.ts +3 -1
  32. package/dist/collapse/neo-accordion.model.d.ts +2 -1
  33. package/dist/containers/NeoTransitionContainer.svelte +10 -0
  34. package/dist/containers/neo-transition-container.model.d.ts +9 -0
  35. package/dist/cursor/NeoCursor.svelte.d.ts +1 -1
  36. package/dist/divider/NeoDivider.svelte +4 -2
  37. package/dist/divider/neo-divider.model.d.ts +2 -1
  38. package/dist/floating/common/NeoConfirm.svelte +5 -5
  39. package/dist/floating/common/NeoConfirm.svelte.d.ts +1 -1
  40. package/dist/floating/common/NeoFloatingStepper.svelte +1 -1
  41. package/dist/floating/common/NeoFloatingStepper.svelte.d.ts +1 -1
  42. package/dist/floating/common/NeoHandle.svelte +2 -1
  43. package/dist/floating/common/neo-confirm.model.d.ts +2 -1
  44. package/dist/floating/common/neo-floating-stepper.model.d.ts +1 -1
  45. package/dist/floating/common/neo-placement.model.d.ts +56 -4
  46. package/dist/floating/common/neo-placement.model.js +22 -0
  47. package/dist/floating/dialog/NeoDialog.svelte +23 -21
  48. package/dist/floating/dialog/NeoDialog.svelte.d.ts +1 -1
  49. package/dist/floating/dialog/NeoDialogConfirm.svelte.d.ts +1 -1
  50. package/dist/floating/dialog/NeoDialogStepper.svelte.d.ts +1 -1
  51. package/dist/floating/dialog/neo-dialog-confirm.model.d.ts +5 -5
  52. package/dist/floating/dialog/neo-dialog-stepper.model.d.ts +4 -4
  53. package/dist/floating/dialog/neo-dialog.model.d.ts +2 -1
  54. package/dist/floating/dialog/use-movable.svelte.js +2 -1
  55. package/dist/floating/drawer/NeoDrawer.svelte +9 -9
  56. package/dist/floating/drawer/NeoDrawer.svelte.d.ts +2 -2
  57. package/dist/floating/drawer/NeoDrawerConfirm.svelte +2 -4
  58. package/dist/floating/drawer/NeoDrawerConfirm.svelte.d.ts +2 -2
  59. package/dist/floating/drawer/NeoDrawerStepper.svelte +2 -4
  60. package/dist/floating/drawer/NeoDrawerStepper.svelte.d.ts +2 -2
  61. package/dist/floating/drawer/neo-drawer.model.d.ts +6 -0
  62. package/dist/floating/drawer/neo-drawer.model.js +1 -0
  63. package/dist/floating/index.d.ts +1 -0
  64. package/dist/floating/index.js +1 -0
  65. package/dist/floating/menu/NeoMenu.svelte +55 -17
  66. package/dist/floating/menu/NeoMenu.svelte.d.ts +1 -1
  67. package/dist/floating/menu/NeoMenuList.svelte +60 -67
  68. package/dist/floating/menu/NeoMenuListItem.svelte +157 -24
  69. package/dist/floating/menu/NeoMenuListItem.svelte.d.ts +1 -0
  70. package/dist/floating/menu/index.d.ts +1 -0
  71. package/dist/floating/menu/neo-menu-list-item.model.d.ts +48 -11
  72. package/dist/floating/menu/neo-menu-list.model.d.ts +24 -4
  73. package/dist/floating/menu/neo-menu.model.d.ts +3 -3
  74. package/dist/floating/notification/NeoNotificationItem.svelte +459 -0
  75. package/dist/floating/notification/NeoNotificationItem.svelte.d.ts +4 -0
  76. package/dist/floating/notification/NeoNotificationProvider.svelte +49 -0
  77. package/dist/floating/notification/NeoNotificationProvider.svelte.d.ts +4 -0
  78. package/dist/floating/notification/NeoNotificationStack.svelte +345 -0
  79. package/dist/floating/notification/NeoNotificationStack.svelte.d.ts +16 -0
  80. package/dist/floating/notification/NeoSimpleNotification.svelte +304 -0
  81. package/dist/floating/notification/NeoSimpleNotification.svelte.d.ts +4 -0
  82. package/dist/floating/notification/index.d.ts +8 -0
  83. package/dist/floating/notification/index.js +7 -0
  84. package/dist/floating/notification/neo-notification-item.model.d.ts +54 -0
  85. package/dist/floating/notification/neo-notification-item.model.js +1 -0
  86. package/dist/floating/notification/neo-notification-provider.model.d.ts +78 -0
  87. package/dist/floating/notification/neo-notification-provider.model.js +18 -0
  88. package/dist/floating/notification/neo-notification-stack.model.d.ts +48 -0
  89. package/dist/floating/notification/neo-notification-stack.model.js +1 -0
  90. package/dist/floating/notification/neo-notification.model.d.ts +271 -0
  91. package/dist/floating/notification/neo-notification.model.js +70 -0
  92. package/dist/floating/notification/neo-simple-notification.model.d.ts +14 -0
  93. package/dist/floating/notification/neo-simple-notification.model.js +1 -0
  94. package/dist/floating/portal/NeoPortal.svelte +11 -8
  95. package/dist/floating/portal/NeoPortalTarget.svelte +7 -0
  96. package/dist/floating/portal/NeoPortalTarget.svelte.d.ts +7 -0
  97. package/dist/floating/portal/neo-portal-context.svelte.d.ts +1 -1
  98. package/dist/floating/portal/neo-portal.model.d.ts +4 -5
  99. package/dist/floating/tooltips/NeoPopConfirm.svelte +2 -0
  100. package/dist/floating/tooltips/NeoPopConfirm.svelte.d.ts +1 -1
  101. package/dist/floating/tooltips/NeoPopSelect.svelte +5 -3
  102. package/dist/floating/tooltips/NeoPopSelect.svelte.d.ts +1 -1
  103. package/dist/floating/tooltips/NeoPopStepper.svelte +2 -0
  104. package/dist/floating/tooltips/NeoPopStepper.svelte.d.ts +1 -1
  105. package/dist/floating/tooltips/NeoTooltip.svelte +43 -23
  106. package/dist/floating/tooltips/NeoTooltip.svelte.d.ts +5 -1
  107. package/dist/floating/tooltips/neo-pop-confirm.model.d.ts +1 -1
  108. package/dist/floating/tooltips/neo-pop-select.model.d.ts +1 -3
  109. package/dist/floating/tooltips/neo-pop-stepper.model.d.ts +2 -2
  110. package/dist/floating/tooltips/neo-tooltip.model.d.ts +7 -2
  111. package/dist/form/NeoForm.svelte +1 -1
  112. package/dist/form/NeoForm.svelte.d.ts +3 -1
  113. package/dist/form/neo-form-context.svelte.d.ts +2 -0
  114. package/dist/icons/{IconAccount.svelte → NeoIconAccount.svelte} +2 -2
  115. package/dist/icons/NeoIconAccount.svelte.d.ts +4 -0
  116. package/dist/icons/{IconAdd.svelte → NeoIconAdd.svelte} +11 -6
  117. package/dist/icons/NeoIconAdd.svelte.d.ts +4 -0
  118. package/dist/icons/{IconAddress.svelte → NeoIconAddress.svelte} +2 -2
  119. package/dist/icons/NeoIconAddress.svelte.d.ts +4 -0
  120. package/dist/icons/{IconAlert.svelte → NeoIconAlert.svelte} +11 -6
  121. package/dist/icons/NeoIconAlert.svelte.d.ts +4 -0
  122. package/dist/icons/{IconAlignBottom.svelte → NeoIconAlignBottom.svelte} +11 -6
  123. package/dist/icons/NeoIconAlignBottom.svelte.d.ts +4 -0
  124. package/dist/icons/{IconAlignMiddle.svelte → NeoIconAlignMiddle.svelte} +11 -6
  125. package/dist/icons/NeoIconAlignMiddle.svelte.d.ts +4 -0
  126. package/dist/icons/{IconAlignTop.svelte → NeoIconAlignTop.svelte} +11 -6
  127. package/dist/icons/NeoIconAlignTop.svelte.d.ts +4 -0
  128. package/dist/icons/{IconArrow.svelte → NeoIconArrow.svelte} +9 -9
  129. package/dist/icons/NeoIconArrow.svelte.d.ts +4 -0
  130. package/dist/icons/NeoIconAudio.svelte +83 -0
  131. package/dist/icons/NeoIconAudio.svelte.d.ts +4 -0
  132. package/dist/icons/NeoIconBouncingDots.svelte +82 -0
  133. package/dist/icons/NeoIconBouncingDots.svelte.d.ts +4 -0
  134. package/dist/icons/{IconCalendar.svelte → NeoIconCalendar.svelte} +11 -6
  135. package/dist/icons/NeoIconCalendar.svelte.d.ts +4 -0
  136. package/dist/icons/{IconCancel.svelte → NeoIconCancel.svelte} +2 -2
  137. package/dist/icons/NeoIconCancel.svelte.d.ts +4 -0
  138. package/dist/icons/{IconCheckbox.svelte → NeoIconCheckbox.svelte} +2 -2
  139. package/dist/icons/NeoIconCheckbox.svelte.d.ts +4 -0
  140. package/dist/icons/NeoIconCircle.svelte +18 -0
  141. package/dist/icons/NeoIconCircle.svelte.d.ts +4 -0
  142. package/dist/icons/{IconCircleLoading.svelte → NeoIconCircleLoading.svelte} +2 -2
  143. package/dist/icons/{IconCircleLoading.svelte.d.ts → NeoIconCircleLoading.svelte.d.ts} +55 -39
  144. package/dist/icons/{IconClear.svelte → NeoIconClear.svelte} +11 -6
  145. package/dist/icons/NeoIconClear.svelte.d.ts +4 -0
  146. package/dist/icons/{IconClose.svelte → NeoIconClose.svelte} +2 -2
  147. package/dist/icons/NeoIconClose.svelte.d.ts +4 -0
  148. package/dist/icons/NeoIconCog.svelte +36 -0
  149. package/dist/icons/NeoIconCog.svelte.d.ts +4 -0
  150. package/dist/icons/{IconConfirm.svelte → NeoIconConfirm.svelte} +11 -6
  151. package/dist/icons/NeoIconConfirm.svelte.d.ts +4 -0
  152. package/dist/icons/NeoIconCube.svelte +31 -0
  153. package/dist/icons/NeoIconCube.svelte.d.ts +4 -0
  154. package/dist/icons/{IconDoubleChevron.svelte → NeoIconDoubleChevron.svelte} +11 -5
  155. package/dist/icons/NeoIconDoubleChevron.svelte.d.ts +4 -0
  156. package/dist/icons/{IconDoubleChevronLeft.svelte → NeoIconDoubleChevronLeft.svelte} +11 -6
  157. package/dist/icons/NeoIconDoubleChevronLeft.svelte.d.ts +4 -0
  158. package/dist/icons/{IconDoubleChevronRight.svelte → NeoIconDoubleChevronRight.svelte} +11 -6
  159. package/dist/icons/NeoIconDoubleChevronRight.svelte.d.ts +4 -0
  160. package/dist/icons/{IconDownload.svelte → NeoIconDownload.svelte} +11 -6
  161. package/dist/icons/NeoIconDownload.svelte.d.ts +4 -0
  162. package/dist/icons/NeoIconEmpty.svelte +26 -0
  163. package/dist/icons/NeoIconEmpty.svelte.d.ts +4 -0
  164. package/dist/icons/NeoIconError.svelte +30 -0
  165. package/dist/icons/NeoIconError.svelte.d.ts +4 -0
  166. package/dist/icons/{IconFileUpload.svelte → NeoIconFileUpload.svelte} +11 -6
  167. package/dist/icons/NeoIconFileUpload.svelte.d.ts +4 -0
  168. package/dist/icons/NeoIconFire.svelte +33 -0
  169. package/dist/icons/NeoIconFire.svelte.d.ts +4 -0
  170. package/dist/icons/{IconGithub.svelte → NeoIconGithub.svelte} +11 -6
  171. package/dist/icons/NeoIconGithub.svelte.d.ts +4 -0
  172. package/dist/icons/NeoIconImage.svelte +39 -0
  173. package/dist/icons/NeoIconImage.svelte.d.ts +4 -0
  174. package/dist/icons/NeoIconInfo.svelte +30 -0
  175. package/dist/icons/NeoIconInfo.svelte.d.ts +4 -0
  176. package/dist/icons/{IconList.svelte → NeoIconList.svelte} +11 -6
  177. package/dist/icons/NeoIconList.svelte.d.ts +4 -0
  178. package/dist/icons/{IconListSmall.svelte → NeoIconListSmall.svelte} +2 -2
  179. package/dist/icons/NeoIconListSmall.svelte.d.ts +4 -0
  180. package/dist/icons/{IconLoadingMatrix.svelte → NeoIconLoadingMatrix.svelte} +2 -2
  181. package/dist/icons/NeoIconLoadingMatrix.svelte.d.ts +4 -0
  182. package/dist/icons/{IconMail.svelte → NeoIconMail.svelte} +11 -6
  183. package/dist/icons/NeoIconMail.svelte.d.ts +4 -0
  184. package/dist/icons/{IconMinus.svelte → NeoIconMinus.svelte} +11 -6
  185. package/dist/icons/NeoIconMinus.svelte.d.ts +4 -0
  186. package/dist/icons/{IconPaint.svelte → NeoIconPaint.svelte} +11 -6
  187. package/dist/icons/NeoIconPaint.svelte.d.ts +4 -0
  188. package/dist/icons/{IconPencil.svelte → NeoIconPencil.svelte} +11 -6
  189. package/dist/icons/NeoIconPencil.svelte.d.ts +4 -0
  190. package/dist/icons/{IconPlayPause.svelte → NeoIconPlayPause.svelte} +2 -2
  191. package/dist/icons/NeoIconPlayPause.svelte.d.ts +4 -0
  192. package/dist/icons/{IconQuestionMark.svelte → NeoIconQuestionMark.svelte} +11 -6
  193. package/dist/icons/NeoIconQuestionMark.svelte.d.ts +4 -0
  194. package/dist/icons/{IconRadio.svelte → NeoIconRadio.svelte} +2 -2
  195. package/dist/icons/NeoIconRadio.svelte.d.ts +4 -0
  196. package/dist/icons/NeoIconRefresh.svelte +38 -0
  197. package/dist/icons/NeoIconRefresh.svelte.d.ts +4 -0
  198. package/dist/icons/NeoIconRestore.svelte +20 -0
  199. package/dist/icons/NeoIconRestore.svelte.d.ts +4 -0
  200. package/dist/icons/NeoIconSave.svelte +35 -0
  201. package/dist/icons/NeoIconSave.svelte.d.ts +4 -0
  202. package/dist/icons/NeoIconSaveOff.svelte +42 -0
  203. package/dist/icons/NeoIconSaveOff.svelte.d.ts +4 -0
  204. package/dist/icons/{IconSearch.svelte → NeoIconSearch.svelte} +11 -6
  205. package/dist/icons/NeoIconSearch.svelte.d.ts +4 -0
  206. package/dist/icons/NeoIconSuccess.svelte +26 -0
  207. package/dist/icons/NeoIconSuccess.svelte.d.ts +4 -0
  208. package/dist/icons/{IconSun.svelte → NeoIconSun.svelte} +11 -6
  209. package/dist/icons/NeoIconSun.svelte.d.ts +4 -0
  210. package/dist/icons/{IconSunMoon.svelte → NeoIconSunMoon.svelte} +11 -64
  211. package/dist/icons/NeoIconSunMoon.svelte.d.ts +4 -0
  212. package/dist/icons/{IconTextHighlight.svelte → NeoIconTextHighlight.svelte} +11 -6
  213. package/dist/icons/NeoIconTextHighlight.svelte.d.ts +4 -0
  214. package/dist/icons/NeoIconTheme.svelte +14 -0
  215. package/dist/icons/NeoIconTheme.svelte.d.ts +3 -0
  216. package/dist/icons/NeoIconTrend.svelte +39 -0
  217. package/dist/icons/NeoIconTrend.svelte.d.ts +4 -0
  218. package/dist/icons/NeoIconUnplug.svelte +63 -0
  219. package/dist/icons/NeoIconUnplug.svelte.d.ts +4 -0
  220. package/dist/icons/{IconVideo.svelte → NeoIconVideo.svelte} +11 -6
  221. package/dist/icons/NeoIconVideo.svelte.d.ts +4 -0
  222. package/dist/icons/NeoIconWarning.svelte +30 -0
  223. package/dist/icons/NeoIconWarning.svelte.d.ts +4 -0
  224. package/dist/icons/NeoIconWatch.svelte +41 -0
  225. package/dist/icons/NeoIconWatch.svelte.d.ts +4 -0
  226. package/dist/icons/NeoIconWatchOff.svelte +50 -0
  227. package/dist/icons/NeoIconWatchOff.svelte.d.ts +4 -0
  228. package/dist/icons/NeoIconWave.svelte +31 -0
  229. package/dist/icons/NeoIconWave.svelte.d.ts +4 -0
  230. package/dist/icons/index.d.ts +54 -0
  231. package/dist/icons/index.js +54 -0
  232. package/dist/icons/{icon.model.d.ts → neo-icon.model.d.ts} +41 -13
  233. package/dist/icons/{icon.model.js → neo-icon.model.js} +1 -1
  234. package/dist/index.d.ts +2 -0
  235. package/dist/index.js +2 -0
  236. package/dist/inputs/NeoCheckbox.svelte +6 -4
  237. package/dist/inputs/NeoCheckbox.svelte.d.ts +1 -1
  238. package/dist/inputs/NeoColorPicker.svelte +6 -3
  239. package/dist/inputs/NeoColorPicker.svelte.d.ts +1 -1
  240. package/dist/inputs/NeoColorPickerSelector.svelte +2 -2
  241. package/dist/inputs/NeoColorPickerSelector.svelte.d.ts +1 -1
  242. package/dist/inputs/NeoDateTime.svelte +6 -3
  243. package/dist/inputs/NeoDateTime.svelte.d.ts +1 -1
  244. package/dist/inputs/NeoFilePicker.svelte +11 -6
  245. package/dist/inputs/NeoFilePicker.svelte.d.ts +1 -1
  246. package/dist/inputs/NeoFilePickerCard.svelte +20 -14
  247. package/dist/inputs/NeoNativeSelect.svelte +6 -3
  248. package/dist/inputs/NeoNativeSelect.svelte.d.ts +1 -1
  249. package/dist/inputs/NeoNumberStep.svelte +13 -8
  250. package/dist/inputs/NeoNumberStep.svelte.d.ts +1 -1
  251. package/dist/inputs/NeoPassword.svelte +4 -4
  252. package/dist/inputs/NeoPassword.svelte.d.ts +1 -1
  253. package/dist/inputs/NeoPin.svelte +10 -10
  254. package/dist/inputs/NeoPin.svelte.d.ts +10 -1
  255. package/dist/inputs/NeoRadio.svelte +3 -3
  256. package/dist/inputs/NeoRadio.svelte.d.ts +1 -1
  257. package/dist/inputs/NeoRange.svelte +29 -27
  258. package/dist/inputs/NeoRange.svelte.d.ts +5 -2
  259. package/dist/inputs/NeoSelect.svelte +17 -8
  260. package/dist/inputs/NeoSelect.svelte.d.ts +1 -1
  261. package/dist/inputs/NeoSwitch.svelte +2 -2
  262. package/dist/inputs/NeoSwitch.svelte.d.ts +1 -1
  263. package/dist/inputs/common/NeoAffix.svelte +10 -10
  264. package/dist/inputs/common/NeoBaseInput.svelte +16 -2
  265. package/dist/inputs/common/NeoBaseInput.svelte.d.ts +1 -1
  266. package/dist/inputs/common/NeoInput.svelte +12 -4
  267. package/dist/inputs/common/NeoInput.svelte.d.ts +1 -1
  268. package/dist/inputs/common/NeoTextarea.svelte +18 -6
  269. package/dist/inputs/common/NeoTextarea.svelte.d.ts +2 -1
  270. package/dist/inputs/common/NeoValidation.svelte +6 -4
  271. package/dist/inputs/common/neo-input.model.d.ts +8 -1
  272. package/dist/inputs/common/neo-validation.model.d.ts +2 -1
  273. package/dist/inputs/neo-range.model.d.ts +2 -1
  274. package/dist/inputs/neo-select.model.d.ts +8 -4
  275. package/dist/list/NeoList.svelte +100 -62
  276. package/dist/list/NeoList.svelte.d.ts +5 -2
  277. package/dist/list/NeoListBaseItem.svelte +222 -92
  278. package/dist/list/NeoListBaseItem.svelte.d.ts +1 -1
  279. package/dist/list/NeoListBaseLoader.svelte +28 -4
  280. package/dist/list/NeoListBaseSection.svelte +18 -15
  281. package/dist/list/NeoListSearch.svelte +36 -20
  282. package/dist/list/NeoListSearch.svelte.d.ts +1 -1
  283. package/dist/list/NeoSimpleList.svelte +391 -0
  284. package/dist/list/NeoSimpleList.svelte.d.ts +8 -0
  285. package/dist/list/NeoVirtualList.svelte +388 -0
  286. package/dist/list/NeoVirtualList.svelte.d.ts +22 -0
  287. package/dist/list/index.d.ts +4 -0
  288. package/dist/list/index.js +2 -0
  289. package/dist/list/neo-list-base-item.model.d.ts +36 -7
  290. package/dist/list/neo-list-base-item.model.js +1 -0
  291. package/dist/list/neo-list-base-loader.model.d.ts +18 -1
  292. package/dist/list/neo-list-base-section.model.d.ts +8 -5
  293. package/dist/list/neo-list-search.model.d.ts +2 -2
  294. package/dist/list/neo-list.model.d.ts +120 -51
  295. package/dist/list/neo-list.model.js +18 -0
  296. package/dist/list/neo-simple-list.model.d.ts +124 -0
  297. package/dist/list/neo-simple-list.model.js +1 -0
  298. package/dist/list/neo-virtual-list.model.d.ts +69 -0
  299. package/dist/list/neo-virtual-list.model.js +6 -0
  300. package/dist/loading/NeoLoadingMatrix.svelte +2 -2
  301. package/dist/loading/neo-lazy.model.d.ts +2 -2
  302. package/dist/loading/neo-suspense.model.d.ts +1 -1
  303. package/dist/media/NeoImage.svelte +204 -0
  304. package/dist/media/NeoImage.svelte.d.ts +4 -0
  305. package/dist/media/NeoMedia.svelte +204 -0
  306. package/dist/media/NeoMedia.svelte.d.ts +4 -0
  307. package/dist/media/index.d.ts +2 -0
  308. package/dist/media/index.js +1 -0
  309. package/dist/media/neo-image.model.d.ts +67 -0
  310. package/dist/media/neo-image.model.js +1 -0
  311. package/dist/media/neo-media.model.d.ts +120 -0
  312. package/dist/media/neo-media.model.js +5 -0
  313. package/dist/nav/NeoTab.svelte +20 -15
  314. package/dist/nav/NeoTab.svelte.d.ts +17 -2
  315. package/dist/nav/NeoTabPanel.svelte +7 -5
  316. package/dist/nav/NeoTabPanel.svelte.d.ts +17 -2
  317. package/dist/nav/NeoTabs.svelte +21 -17
  318. package/dist/nav/NeoTabs.svelte.d.ts +19 -3
  319. package/dist/nav/NeoTabsCard.svelte +5 -3
  320. package/dist/nav/NeoTabsCard.svelte.d.ts +17 -2
  321. package/dist/nav/NeoTabsRow.svelte +225 -0
  322. package/dist/nav/NeoTabsRow.svelte.d.ts +19 -0
  323. package/dist/nav/index.d.ts +2 -0
  324. package/dist/nav/index.js +1 -0
  325. package/dist/nav/neo-tab-panel.model.d.ts +3 -3
  326. package/dist/nav/neo-tab.model.d.ts +15 -5
  327. package/dist/nav/neo-tabs-card.model.d.ts +3 -2
  328. package/dist/nav/neo-tabs-context.svelte.d.ts +35 -29
  329. package/dist/nav/neo-tabs-context.svelte.js +17 -3
  330. package/dist/nav/neo-tabs-row.model.d.ts +85 -0
  331. package/dist/nav/neo-tabs-row.model.js +1 -0
  332. package/dist/nav/neo-tabs.model.d.ts +12 -11
  333. package/dist/pill/NeoPill.svelte +73 -14
  334. package/dist/pill/neo-pill.model.d.ts +25 -1
  335. package/dist/progress/NeoProgress.svelte +203 -42
  336. package/dist/progress/NeoProgress.svelte.d.ts +8 -8
  337. package/dist/progress/NeoProgressBar.svelte +37 -6
  338. package/dist/progress/NeoProgressBar.svelte.d.ts +9 -1
  339. package/dist/progress/index.d.ts +1 -0
  340. package/dist/progress/index.js +1 -0
  341. package/dist/progress/neo-progress-bar.model.d.ts +11 -6
  342. package/dist/progress/neo-progress-service.svelte.d.ts +47 -0
  343. package/dist/progress/neo-progress-service.svelte.js +157 -0
  344. package/dist/progress/neo-progress.model.d.ts +98 -41
  345. package/dist/progress/neo-progress.model.js +6 -1
  346. package/dist/providers/NeoRememberSelector.svelte +43 -0
  347. package/dist/providers/NeoRememberSelector.svelte.d.ts +4 -0
  348. package/dist/providers/NeoResetSelector.svelte +40 -0
  349. package/dist/providers/NeoResetSelector.svelte.d.ts +4 -0
  350. package/dist/providers/NeoSourceSelector.svelte +63 -0
  351. package/dist/providers/NeoSourceSelector.svelte.d.ts +4 -0
  352. package/dist/providers/NeoThemeProvider.svelte +25 -10
  353. package/dist/providers/NeoThemeProvider.svelte.d.ts +1 -2
  354. package/dist/providers/NeoThemeSelector.svelte +26 -108
  355. package/dist/providers/NeoThemeSelector.svelte.d.ts +1 -1
  356. package/dist/providers/NeoThemeSelectors.svelte +57 -0
  357. package/dist/providers/NeoThemeSelectors.svelte.d.ts +4 -0
  358. package/dist/providers/NeoTransitionSelector.svelte +57 -0
  359. package/dist/providers/NeoTransitionSelector.svelte.d.ts +4 -0
  360. package/dist/providers/index.d.ts +10 -0
  361. package/dist/providers/index.js +5 -0
  362. package/dist/providers/neo-remember-selector.model.d.ts +9 -0
  363. package/dist/providers/neo-remember-selector.model.js +2 -0
  364. package/dist/providers/neo-reset-selector.model.d.ts +9 -0
  365. package/dist/providers/neo-reset-selector.model.js +1 -0
  366. package/dist/providers/neo-source-selector.model.d.ts +9 -0
  367. package/dist/providers/neo-source-selector.model.js +2 -0
  368. package/dist/providers/neo-theme-provider-context.svelte.d.ts +14 -3
  369. package/dist/providers/neo-theme-provider-context.svelte.js +94 -11
  370. package/dist/providers/neo-theme-provider.model.d.ts +31 -3
  371. package/dist/providers/neo-theme-provider.model.js +9 -0
  372. package/dist/providers/neo-theme-selector.model.d.ts +3 -48
  373. package/dist/providers/neo-theme-selector.model.js +1 -0
  374. package/dist/providers/neo-theme-selectors.model.d.ts +84 -0
  375. package/dist/providers/neo-theme-selectors.model.js +1 -0
  376. package/dist/providers/neo-transition-selector.model.d.ts +9 -0
  377. package/dist/providers/neo-transition-selector.model.js +2 -0
  378. package/dist/skeletons/NeoSkeletonContainer.svelte +3 -1
  379. package/dist/skeletons/NeoSkeletonMedia.svelte +26 -18
  380. package/dist/skeletons/NeoSkeletonText.svelte +5 -3
  381. package/dist/skeletons/neo-skeleton-container.model.d.ts +9 -0
  382. package/dist/skeletons/neo-skeleton-media.model.d.ts +20 -10
  383. package/dist/skeletons/neo-skeleton-media.model.js +7 -1
  384. package/dist/skeletons/neo-skeleton-text.model.d.ts +5 -0
  385. package/dist/stepper/NeoStepper.svelte +20 -20
  386. package/dist/stepper/NeoStepper.svelte.d.ts +9 -2
  387. package/dist/stepper/neo-stepper.model.d.ts +5 -5
  388. package/dist/styles/animation.scss +76 -0
  389. package/dist/styles/common/colors.scss +15 -9
  390. package/dist/styles/common/properties.css +18 -0
  391. package/dist/styles/common/spacing.scss +8 -4
  392. package/dist/styles/common/typography.scss +13 -3
  393. package/dist/styles/common/utils.scss +2 -2
  394. package/dist/styles/mixin.scss +125 -11
  395. package/dist/styles/theme.scss +20 -0
  396. package/dist/styles/transition.scss +101 -0
  397. package/dist/text/NeoEllipsis.svelte +1 -0
  398. package/dist/text/NeoHtml.svelte +26 -0
  399. package/dist/text/NeoHtml.svelte.d.ts +7 -0
  400. package/dist/text/NeoMark.svelte +18 -5
  401. package/dist/text/NeoTypewriter.svelte +5 -4
  402. package/dist/text/NeoTypewriter.svelte.d.ts +5 -1
  403. package/dist/text/index.d.ts +2 -0
  404. package/dist/text/index.js +1 -0
  405. package/dist/text/neo-html.model.d.ts +4 -0
  406. package/dist/text/neo-html.model.js +1 -0
  407. package/dist/text/neo-mark.model.d.ts +8 -0
  408. package/dist/text/typewriter.utils.d.ts +2 -2
  409. package/dist/text/typewriter.utils.js +8 -9
  410. package/dist/utils/action.utils.d.ts +1 -21
  411. package/dist/utils/border.utils.d.ts +13 -0
  412. package/dist/utils/border.utils.js +18 -0
  413. package/dist/utils/colors.utils.d.ts +1 -1
  414. package/dist/utils/error.utils.d.ts +22 -0
  415. package/dist/utils/error.utils.js +36 -0
  416. package/dist/utils/style.utils.d.ts +1 -1
  417. package/package.json +55 -39
  418. package/dist/icons/IconAccount.svelte.d.ts +0 -4
  419. package/dist/icons/IconAdd.svelte.d.ts +0 -26
  420. package/dist/icons/IconAddress.svelte.d.ts +0 -4
  421. package/dist/icons/IconAlert.svelte.d.ts +0 -26
  422. package/dist/icons/IconAlignBottom.svelte.d.ts +0 -26
  423. package/dist/icons/IconAlignMiddle.svelte.d.ts +0 -26
  424. package/dist/icons/IconAlignTop.svelte.d.ts +0 -26
  425. package/dist/icons/IconArrow.svelte.d.ts +0 -4
  426. package/dist/icons/IconBouncingDots.svelte +0 -63
  427. package/dist/icons/IconBouncingDots.svelte.d.ts +0 -4
  428. package/dist/icons/IconCalendar.svelte.d.ts +0 -26
  429. package/dist/icons/IconCancel.svelte.d.ts +0 -4
  430. package/dist/icons/IconCheckbox.svelte.d.ts +0 -4
  431. package/dist/icons/IconClear.svelte.d.ts +0 -26
  432. package/dist/icons/IconClose.svelte.d.ts +0 -4
  433. package/dist/icons/IconConfirm.svelte.d.ts +0 -26
  434. package/dist/icons/IconDoubleChevron.svelte.d.ts +0 -26
  435. package/dist/icons/IconDoubleChevronLeft.svelte.d.ts +0 -26
  436. package/dist/icons/IconDoubleChevronRight.svelte.d.ts +0 -26
  437. package/dist/icons/IconDownload.svelte.d.ts +0 -26
  438. package/dist/icons/IconEmpty.svelte +0 -18
  439. package/dist/icons/IconEmpty.svelte.d.ts +0 -26
  440. package/dist/icons/IconFileUpload.svelte.d.ts +0 -26
  441. package/dist/icons/IconGithub.svelte.d.ts +0 -26
  442. package/dist/icons/IconImage.svelte +0 -26
  443. package/dist/icons/IconImage.svelte.d.ts +0 -26
  444. package/dist/icons/IconList.svelte.d.ts +0 -26
  445. package/dist/icons/IconListSmall.svelte.d.ts +0 -4
  446. package/dist/icons/IconLoadingMatrix.svelte.d.ts +0 -4
  447. package/dist/icons/IconMail.svelte.d.ts +0 -26
  448. package/dist/icons/IconMinus.svelte.d.ts +0 -26
  449. package/dist/icons/IconPaint.svelte.d.ts +0 -26
  450. package/dist/icons/IconPencil.svelte.d.ts +0 -26
  451. package/dist/icons/IconPlayPause.svelte.d.ts +0 -4
  452. package/dist/icons/IconQuestionMark.svelte.d.ts +0 -26
  453. package/dist/icons/IconRadio.svelte.d.ts +0 -4
  454. package/dist/icons/IconSave.svelte +0 -25
  455. package/dist/icons/IconSave.svelte.d.ts +0 -26
  456. package/dist/icons/IconSaveOff.svelte +0 -32
  457. package/dist/icons/IconSaveOff.svelte.d.ts +0 -26
  458. package/dist/icons/IconSearch.svelte.d.ts +0 -26
  459. package/dist/icons/IconSun.svelte.d.ts +0 -26
  460. package/dist/icons/IconSunMoon.svelte.d.ts +0 -4
  461. package/dist/icons/IconTextHighlight.svelte.d.ts +0 -26
  462. package/dist/icons/IconVideo.svelte.d.ts +0 -26
  463. package/dist/icons/IconWatch.svelte +0 -29
  464. package/dist/icons/IconWatch.svelte.d.ts +0 -26
  465. package/dist/icons/IconWatchOff.svelte +0 -34
  466. package/dist/icons/IconWatchOff.svelte.d.ts +0 -26
package/CHANGELOG.md CHANGED
@@ -2,6 +2,96 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.2.0](https://github.com/dvcol/neo-svelte/compare/v1.1.2...v1.2.0) (2026-03-21)
6
+
7
+
8
+ ### Features
9
+
10
+ * **border:** widen border-radius range ([fa5f824](https://github.com/dvcol/neo-svelte/commit/fa5f824dbb4647023d228ad7ad0d8afce00ba9a2))
11
+ * **buttons:** adds image icon support to buttons & pills ([3e02aca](https://github.com/dvcol/neo-svelte/commit/3e02aca68fc74cd0daa877496f6f71f8054e193f))
12
+ * **buttons:** alter background when hovering/activating buttons ([1e82f4c](https://github.com/dvcol/neo-svelte/commit/1e82f4c0f7ae75b2eb1b0b9a6f949ffc1a010f32))
13
+ * **icon:** fix unplug & rework props ([b42a890](https://github.com/dvcol/neo-svelte/commit/b42a89021766f52421aed4664ce6be78658d6b4b))
14
+ * **icon:** make watch enter toggle ([820b795](https://github.com/dvcol/neo-svelte/commit/820b795fe2e81f5dabb3a1801a922c9c78dd0b5a))
15
+ * **icon:** rework selector & export some icons ([d58de75](https://github.com/dvcol/neo-svelte/commit/d58de75733a2406ee08d8afc28b4e09dab41ae4e))
16
+ * **image:** support error & fallback ([83a8f5d](https://github.com/dvcol/neo-svelte/commit/83a8f5d0ca0ce53f36316adcdd3c575aeefa328d))
17
+ * **list:** add transition to virtual list ([684b1a5](https://github.com/dvcol/neo-svelte/commit/684b1a52895e503c55fdcd358604321bdf0c6f16))
18
+ * **list:** adds media to base loader ([8807c1e](https://github.com/dvcol/neo-svelte/commit/8807c1e1084c966f51960b1ed3af3fd3f83fdc77))
19
+ * **list:** adds scrolltop/scrollbottom event listener ([dbfce7f](https://github.com/dvcol/neo-svelte/commit/dbfce7f881c0e2684d5f5bf0c2108ceab33ec0b6))
20
+ * **list:** adds tags support to list item ([78772c1](https://github.com/dvcol/neo-svelte/commit/78772c183b5da05f75cf645e68a45b9da0d38184))
21
+ * **list:** adds virtual list component ([0484ddc](https://github.com/dvcol/neo-svelte/commit/0484ddc563a71914ed5e05a0aaf108db8ab0a63b))
22
+ * **list:** introduce simpler flat list before virtual list ([6a5c63d](https://github.com/dvcol/neo-svelte/commit/6a5c63d3f47762c129937a71dd68d61c24bdaa10))
23
+ * **list:** move style to virtual list ([44fde70](https://github.com/dvcol/neo-svelte/commit/44fde70a0ef053a19312b2f74a9fb0a8870584f2))
24
+ * **list:** support reversing flow in list & menu ([1df5367](https://github.com/dvcol/neo-svelte/commit/1df5367a58983981c6203132a86d924d0e4d89e5))
25
+ * **media:** adds basic image support ([d2cb84a](https://github.com/dvcol/neo-svelte/commit/d2cb84a2bb797c013e44592d56b4df8180bd760b))
26
+ * **media:** adds media wrapper & image support ([b3c8d4d](https://github.com/dvcol/neo-svelte/commit/b3c8d4d572887bcdd5dd5afefe693d528ae3ac59))
27
+ * **media:** move skeleton loading to NeoImage ([fd15ba4](https://github.com/dvcol/neo-svelte/commit/fd15ba45ac55e351c7a2eb9c89997be4d19df8d4))
28
+ * **notification:** adds basic notification stack plumbing ([542cede](https://github.com/dvcol/neo-svelte/commit/542cede52d044c008158fd1103806158546377c6))
29
+ * **notification:** adds drag to dismiss ([3616a44](https://github.com/dvcol/neo-svelte/commit/3616a445f587748e18eb932d9aff39f481b57691))
30
+ * **notification:** adds notification content ([82a99f1](https://github.com/dvcol/neo-svelte/commit/82a99f1a2e7a1f274fcb15f383b25d9d2ba4bedc))
31
+ * **notification:** basic styling & swipe to dismiss ([a4c6259](https://github.com/dvcol/neo-svelte/commit/a4c6259a51b58cfe68fc15729e1a7628bd35094b))
32
+ * **notification:** split notification item & stack ([ec97213](https://github.com/dvcol/neo-svelte/commit/ec97213995d4d726f16bf1145c8cddbdc8e94a5a))
33
+ * **pill:** adds icon to pills ([4dd9dd8](https://github.com/dvcol/neo-svelte/commit/4dd9dd89da587df442fbaf0a42151abc8dad9f5d))
34
+ * **progress:** adds delay support ([236b1e8](https://github.com/dvcol/neo-svelte/commit/236b1e8bf6fc3de14447049038ec4c8fcb014cc2))
35
+ * **progress:** adds queuing service to progress ([a5fadd9](https://github.com/dvcol/neo-svelte/commit/a5fadd92fc72ca352496d6ee668e5f885314adc5))
36
+ * **progress:** adds service hook & context ([5ed620a](https://github.com/dvcol/neo-svelte/commit/5ed620ab2fba7c3b0d2b7fb4507784d090bb9c6a))
37
+ * **progress:** enter & exit from indeterminate gracefully ([871b526](https://github.com/dvcol/neo-svelte/commit/871b526780f5313c90d0e247b98b24ffc6ccda06))
38
+ * **rounded:** support custom rounded value ([efe1282](https://github.com/dvcol/neo-svelte/commit/efe1282f74186e58361dcd413de02f0b26ec7e21))
39
+ * **row:** adds tabs & button row ([45f69e1](https://github.com/dvcol/neo-svelte/commit/45f69e1dfca5d4f5df4bc880a84bf407c4c4c9ab))
40
+ * **tabs:** forward focus & pointer events in tabs ([98e0791](https://github.com/dvcol/neo-svelte/commit/98e07915359040db5c1d014aa50f1aa52fa85e6e))
41
+ * **text:** adds html support to NeoMark ([44ad0ba](https://github.com/dvcol/neo-svelte/commit/44ad0ba9d9ba2057c31b5eba9d96439a6ae08564))
42
+ * **theme:** adds spin transition option ([1aa9fd3](https://github.com/dvcol/neo-svelte/commit/1aa9fd3020955bdffdd71eb84cc88667bf60ce2d))
43
+ * **transition:** adds transition selector ([796f6b3](https://github.com/dvcol/neo-svelte/commit/796f6b3277760790a0f872c731f29f641a05dc46))
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * **border:** adjust border radius for menu & tooltips ([182cb77](https://github.com/dvcol/neo-svelte/commit/182cb777cdf9e79bebb91043047085459f6e16f1))
49
+ * **buttons:** adjust group specificity ([b3805e6](https://github.com/dvcol/neo-svelte/commit/b3805e6017777124a8741f350002e386e610b41e))
50
+ * **components:** export bound methods to component instance ([ee02250](https://github.com/dvcol/neo-svelte/commit/ee0225098fb998def7c3e0def7c5868b62b226aa))
51
+ * **css:** rename variables ([8a96aa3](https://github.com/dvcol/neo-svelte/commit/8a96aa30bf8dd3a3f7f6cbe7bec4f919e3b281a6))
52
+ * **dialog:** css sizing issue in safari ([a24d40d](https://github.com/dvcol/neo-svelte/commit/a24d40dbca48d6edf26966d854b1a5d571f7982a))
53
+ * **dialog:** fix drawer ([12dce43](https://github.com/dvcol/neo-svelte/commit/12dce43862a26ffec0daa3a8de1273ba0a0bf545))
54
+ * **floating:** export notifications ([1376474](https://github.com/dvcol/neo-svelte/commit/1376474884e3ffd473624b8b9d6b730a339716fb))
55
+ * **icon:** make empty stroke color dynamic ([e20f69a](https://github.com/dvcol/neo-svelte/commit/e20f69a3028d2a6a42fab006a7a43aa4172d7221))
56
+ * **input:** adds native select overflow auto ([f1d154a](https://github.com/dvcol/neo-svelte/commit/f1d154a46bb659dfe9de5d393921228eb502d1d2))
57
+ * **input:** fix multiple select value reflect ([55b3af4](https://github.com/dvcol/neo-svelte/commit/55b3af42931c58df2aba57a23a68635818a4c1eb))
58
+ * **input:** make select pointer cursor ([3d91970](https://github.com/dvcol/neo-svelte/commit/3d9197019df03e8b3393a2b54446c9971757be90))
59
+ * **inputs:** reflect value change in selects & fix buttons ([b56518f](https://github.com/dvcol/neo-svelte/commit/b56518f1c2e5cad9f97d314dfdf31bd3d2edfd78))
60
+ * **lazy:** relax component props ([5591986](https://github.com/dvcol/neo-svelte/commit/5591986417c3f6c7d87674fed59fe241e6aaaf4e))
61
+ * **list:** adds loading to virtual list ([c47cd1b](https://github.com/dvcol/neo-svelte/commit/c47cd1bce77282f6913991f41a0a4f0f6d2b966b))
62
+ * **list:** adjust spacing in list elements ([b0334a6](https://github.com/dvcol/neo-svelte/commit/b0334a694441ef31e72b25583e6ff197428aec41))
63
+ * **list:** broaden tab select targets ([a744101](https://github.com/dvcol/neo-svelte/commit/a744101c73ce30c852bcd52760a3128c6a97110e))
64
+ * **list:** correct typings ([2a1a48d](https://github.com/dvcol/neo-svelte/commit/2a1a48d7aa6a24b206e6f5b217e5099edadc1fed))
65
+ * **list:** correctly render dividers ([2f10550](https://github.com/dvcol/neo-svelte/commit/2f10550f1a6b230c8bd03de8ee2b554375c34781))
66
+ * **list:** expose virtual props ([bef22ff](https://github.com/dvcol/neo-svelte/commit/bef22ffe05bd9ed1bfaa791f444f815617e9a848))
67
+ * **list:** fix divider support in flip mode ([dfa5241](https://github.com/dvcol/neo-svelte/commit/dfa524194af6f118971fe63aeff6fc373c2400d7))
68
+ * **list:** fix flip behaviour and arrow/tab nav ([bdc5b31](https://github.com/dvcol/neo-svelte/commit/bdc5b315a8daf30fb822f4ac216fd5e35a3e6416))
69
+ * **list:** fix scroll detection, add tolerance & widen search styles ([490af21](https://github.com/dvcol/neo-svelte/commit/490af217aeeab39b2683e75a12f71fd938fed1bd))
70
+ * **list:** fix skeleton & section label ([3c60652](https://github.com/dvcol/neo-svelte/commit/3c6065208827769dd7bbe4cf02ae7163abb1708b))
71
+ * **list:** improve virtual list performance ([064ce40](https://github.com/dvcol/neo-svelte/commit/064ce40ca139daf8d987638dad9a82f14fbe34bd))
72
+ * **list:** remove flip logic from virtual ([c5ee022](https://github.com/dvcol/neo-svelte/commit/c5ee022912115bec2b2e2715bae11176eca57ef0))
73
+ * **list:** remove skeleton from list ([266d59f](https://github.com/dvcol/neo-svelte/commit/266d59f1b07a53400b52affb911531bd87ceedd5))
74
+ * **list:** reverse flow of tags ([82a2ae9](https://github.com/dvcol/neo-svelte/commit/82a2ae987cdd57d2c6dea25abae876e5d8fec728))
75
+ * **media:** adjust border-radius ([76a994f](https://github.com/dvcol/neo-svelte/commit/76a994f9c8457472dfee402e7b2b54c8b3ddce25))
76
+ * **media:** fix alt text visibility ([a18fe15](https://github.com/dvcol/neo-svelte/commit/a18fe15b66b8373f4051c3d6b53d1a60c7083d2d))
77
+ * **media:** fix sizing of alt text while loading ([d1c3d03](https://github.com/dvcol/neo-svelte/commit/d1c3d038c2c78652b5d8cec92c59ce5e7f883393))
78
+ * **menu:** fallback to value if section has no label ([b94498d](https://github.com/dvcol/neo-svelte/commit/b94498d4d216a38e674d6862d3877cb8ac5c3445))
79
+ * **menu:** increase rounded menu spacing ([f8a1952](https://github.com/dvcol/neo-svelte/commit/f8a1952b70508daecd586324fe2501381330cdcd))
80
+ * **notification:** adds collapsed view ([80ae3f4](https://github.com/dvcol/neo-svelte/commit/80ae3f4032a34efada5286dc1f1c4e17536ec9e3))
81
+ * **notification:** adjust rounded style & fix drag/swipe ([e7649c9](https://github.com/dvcol/neo-svelte/commit/e7649c9c2234a56d67234b4c01d9f30f52236d5f))
82
+ * **notification:** debounce swipe in stacks ([c3c88ef](https://github.com/dvcol/neo-svelte/commit/c3c88ef3eb9ae1afff9bd432beac53d88bea8dc9))
83
+ * **notification:** fix height on safari ([9e18807](https://github.com/dvcol/neo-svelte/commit/9e1880741e04449445ffcbe3f3128d511a46f634))
84
+ * **notification:** increase stagger & fix touch drag ([e914e54](https://github.com/dvcol/neo-svelte/commit/e914e54e1276c259ef694120bb95a0a812fc3573))
85
+ * **notification:** switch to grid ([842e6b5](https://github.com/dvcol/neo-svelte/commit/842e6b53c3bc7e9c0df03ae45040d0a374f7e9c2))
86
+ * **notification:** update delay ([c057316](https://github.com/dvcol/neo-svelte/commit/c0573167d610efbb29d6fa6d58f5e63dd2efaaad))
87
+ * **portal:** svelte doesn't support mounting snippets anymore ([6b52970](https://github.com/dvcol/neo-svelte/commit/6b5297077b466c087a640eae8678089e8220f695))
88
+ * **progress:** rework controlleds methods ([101a405](https://github.com/dvcol/neo-svelte/commit/101a4057fed6c54f6d7b815bec98f59223deb6e8))
89
+ * **row:** rework tab registration ([fce041e](https://github.com/dvcol/neo-svelte/commit/fce041e23244216b29b54c0e4f31cedb258ddc3d))
90
+ * **row:** show active tab in menu ([daf9142](https://github.com/dvcol/neo-svelte/commit/daf9142a7d2f670956d29ccea7dcc3409667357f))
91
+ * **style:** adjust glass border colours & bump svelte ([7602f07](https://github.com/dvcol/neo-svelte/commit/7602f0796661d1768941bea3a1886d26bbfb7921))
92
+ * **tooltip:** fix floating state access & reflect final position ([e12762c](https://github.com/dvcol/neo-svelte/commit/e12762c774558f783a1898e1ed12c369f69d9ee1))
93
+ * **touch:** disable touch action on draggable elements ([ac01b68](https://github.com/dvcol/neo-svelte/commit/ac01b68005c55db11fa2146ccbfc785aaf591075))
94
+
5
95
  ### [1.1.2](https://github.com/dvcol/neo-svelte/compare/v1.1.1...v1.1.2) (2025-04-21)
6
96
 
7
97
 
package/README.md CHANGED
@@ -112,9 +112,8 @@ See examples in the demo (code [here](https://github.com/dvcol/neo-svelte/tree/f
112
112
  - [x] sections
113
113
  - [x] keyboard navigation
114
114
  - [x] scroll shadow
115
- - [ ] virtualized
116
- - [ ] infinite scroll
117
- - [ ] drag & drop
115
+ - [x] virtualized
116
+ - [x] infinite scroll
118
117
  - [ ] pagination
119
118
  - [ ] drag & drop
120
119
  - [ ] timeline
@@ -156,7 +155,7 @@ See examples in the demo (code [here](https://github.com/dvcol/neo-svelte/tree/f
156
155
  - [x] popselect
157
156
  - [x] popstepper
158
157
 
159
- - [ ] Modal/dialog
158
+ - [x] Modal/dialog
160
159
 
161
160
  - [x] HTML Dialog
162
161
  - [x] animation (slide/fade)
@@ -173,6 +172,15 @@ See examples in the demo (code [here](https://github.com/dvcol/neo-svelte/tree/f
173
172
  - [x] close button
174
173
  - [ ] persistant
175
174
 
175
+ - [ ] Command Palette
176
+
177
+ - [ ] list
178
+ - [ ] header
179
+ - [ ] footer
180
+ - [ ] panel
181
+ - [ ] shortcuts
182
+ - [ ] expanded buttons
183
+
176
184
  - [x] menu
177
185
 
178
186
  - [x] nested menus
@@ -247,9 +255,9 @@ See examples in the demo (code [here](https://github.com/dvcol/neo-svelte/tree/f
247
255
  - [x] fake typos
248
256
  - [x] random pauses
249
257
 
250
- - [ ] Alerts
251
- - [ ] toast
252
- - [ ] rich notification
258
+ - [x] Alerts
259
+ - [x] toast
260
+ - [x] rich notification
253
261
  - [ ] container
254
262
  - [x] transition
255
263
  - [ ] split/resizable
@@ -27,7 +27,7 @@ export type NeoBadgeProps = {
27
27
  /**
28
28
  * The value to display in the badge.
29
29
  */
30
- value?: Snippet<[NeoBadgeContext]>;
30
+ value?: string | Snippet<[NeoBadgeContext]>;
31
31
  /**
32
32
  * Optional vertical and horizontal offset for the badge.
33
33
  */
@@ -2,12 +2,12 @@
2
2
  import type { NeoArrowButtonProps } from './neo-arrow-button.model.js';
3
3
 
4
4
  import NeoButton from './NeoButton.svelte';
5
- import { IconArrowDirection } from '../icons/icon.model.js';
6
- import IconArrow from '../icons/IconArrow.svelte';
5
+ import { NeoIconArrowDirection } from '../icons/neo-icon.model.js';
6
+ import NeoIconArrow from '../icons/NeoIconArrow.svelte';
7
7
 
8
8
  let {
9
9
  // State
10
- direction = IconArrowDirection.Right,
10
+ direction = NeoIconArrowDirection.Right,
11
11
 
12
12
  // Button props
13
13
  ref = $bindable(),
@@ -26,7 +26,7 @@
26
26
  </script>
27
27
 
28
28
  {#snippet icon()}
29
- <IconArrow {direction} expanded={(checked || hovered || focused) && !disabled && !readonly} {...arrowProps} />
29
+ <NeoIconArrow {direction} expanded={(checked || hovered || focused) && !disabled && !readonly} {...arrowProps} />
30
30
  {/snippet}
31
31
 
32
32
  <NeoButton bind:ref bind:checked bind:hovered bind:focused {icon} {reverse} {disabled} {readonly} {...rest} />
@@ -7,8 +7,10 @@
7
7
  import { width } from '@dvcol/svelte-utils/transition';
8
8
 
9
9
  import { NeoTextButton } from './neo-button.model.js';
10
- import IconCircleLoading from '../icons/IconCircleLoading.svelte';
10
+ import NeoIconCircleLoading from '../icons/NeoIconCircleLoading.svelte';
11
+ import NeoImage from '../media/NeoImage.svelte';
11
12
  import { toAction, toActionProps, toTransition, toTransitionProps } from '../utils/action.utils.js';
13
+ import { computeBorderRadius } from '../utils/border.utils.js';
12
14
  import { getColorVariable } from '../utils/colors.utils.js';
13
15
  import {
14
16
  coerce,
@@ -37,12 +39,12 @@
37
39
  loading,
38
40
  skeleton = false,
39
41
  disabled,
40
- empty: only,
41
42
  toggle,
42
43
  readonly,
43
44
  checked = $bindable(false),
44
45
  hovered = $bindable(false),
45
46
  focused = $bindable(false),
47
+ propagation = true,
46
48
 
47
49
  // Styles
48
50
  start,
@@ -82,6 +84,7 @@
82
84
  use,
83
85
 
84
86
  // Other props
87
+ imageProps,
85
88
  ..._rest
86
89
  }: NeoButtonProps = $props();
87
90
 
@@ -120,7 +123,7 @@
120
123
  let enter = $state(false);
121
124
  let clicked = $state(false);
122
125
  const pressed = $derived(enter || clicked || checked);
123
- const empty = $derived(only || (!children && label === undefined));
126
+ const empty = $derived((!children && (label === undefined || label === null)));
124
127
  const scalePressed = $derived(typeof scale === 'boolean' ? undefined : scale);
125
128
 
126
129
  let timeout: ReturnType<typeof setTimeout>;
@@ -133,6 +136,7 @@
133
136
  };
134
137
 
135
138
  const onClick: MouseEventHandler<HTMLButtonElement> = (e) => {
139
+ if (!propagation) e.stopPropagation();
136
140
  if (loading || disabled) return;
137
141
  if (readonly) return onActive();
138
142
  if (toggle) {
@@ -147,12 +151,14 @@
147
151
  };
148
152
 
149
153
  const onKeydownEnter: KeyboardEventHandler<HTMLButtonElement> = (e) => {
154
+ if (!propagation) e.stopPropagation();
150
155
  if (loading || disabled || readonly) return;
151
156
  if (e.key === 'Enter') enter = true;
152
157
  onkeydown?.(e);
153
158
  };
154
159
 
155
160
  const onKeyUpEnter: KeyboardEventHandler<HTMLButtonElement> = (e) => {
161
+ if (!propagation) e.stopPropagation();
156
162
  if (e.key === 'Enter') enter = false;
157
163
  if (loading || disabled || readonly) return;
158
164
  onkeyup?.(e);
@@ -188,7 +194,6 @@
188
194
  hovered,
189
195
  focused,
190
196
 
191
- empty,
192
197
  toggle,
193
198
 
194
199
  checked,
@@ -236,12 +241,14 @@
236
241
  class:neo-inset-hover={hoverElevation < 0}
237
242
  class:neo-rounded={rounded}
238
243
  class:neo-empty={empty}
244
+ class:neo-propagation={!propagation}
239
245
  style:--neo-btn-text-color={getColorVariable(color)}
240
246
  style:--neo-btn-backdrop-filter={filter}
241
247
  style:--neo-btn-box-shadow={boxShadow}
242
248
  style:--neo-btn-box-shadow-hover={hoverShadow}
243
249
  style:--neo-btn-box-shadow-active={activeShadow}
244
250
  style:--neo-btn-scale-pressed={scalePressed}
251
+ style:--neo-btn-border-radius={computeBorderRadius(rounded)}
245
252
  style:justify-content={justify}
246
253
  style:align-items={align}
247
254
  style:flex
@@ -269,9 +276,11 @@
269
276
  {#if loading || icon}
270
277
  <span class="neo-icon" class:neo-only={empty} transition:width={quickDurationProps}>
271
278
  {#if loading}
272
- <IconCircleLoading />
273
- {:else}
279
+ <NeoIconCircleLoading />
280
+ {:else if typeof icon === 'function'}
274
281
  {@render icon?.(context)}
282
+ {:else if typeof icon === 'string'}
283
+ <NeoImage src={icon} ratio="1/1" {...imageProps} />
275
284
  {/if}
276
285
  </span>
277
286
  {/if}
@@ -305,7 +314,7 @@
305
314
  justify-content: center;
306
315
  box-sizing: border-box;
307
316
  min-width: var(--neo-btn-min-width);
308
- min-height: var(--neo-btn-min-height, var(--neo-line-height));
317
+ min-height: var(--neo-btn-min-height);
309
318
  margin: var(--neo-btn-margin, var(--neo-shadow-margin, 0.625rem));
310
319
  padding: var(--neo-btn-padding, 0.25rem 0.75rem);
311
320
  color: var(--neo-btn-text-color, inherit);
@@ -317,8 +326,9 @@
317
326
  border-radius: var(--neo-btn-border-radius, var(--neo-border-radius));
318
327
  box-shadow: var(--neo-btn-box-shadow, var(--neo-box-shadow-raised-3));
319
328
  cursor: pointer;
320
- transition: opacity 0.3s ease, color 0.15s ease, background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.3s ease-out;
329
+ transition: opacity 0.3s ease, color 0.15s ease, background-color 0.15s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.3s ease-out;
321
330
  appearance: none;
331
+ will-change: background-color, box-shadow;
322
332
  }
323
333
  .neo-button.neo-loading {
324
334
  cursor: wait;
@@ -330,6 +340,10 @@
330
340
  justify-content: center;
331
341
  vertical-align: middle;
332
342
  }
343
+ .neo-button .neo-icon :global(.neo-image) {
344
+ --neo-image-border-radius: 0;
345
+ min-height: 1rem;
346
+ }
333
347
  .neo-button .neo-content {
334
348
  width: 100%;
335
349
  height: 100%;
@@ -339,15 +353,15 @@
339
353
  scale: 1;
340
354
  }
341
355
  .neo-button .neo-content .neo-icon:not(.neo-only) {
342
- margin-right: var(--neo-btn-icon-gap, 0.3125rem);
343
- margin-left: var(--neo-btn-icon-offset, calc(0% - var(--neo-btn-icon-gap, 0.3125rem)));
356
+ margin-right: var(--neo-btn-icon-gap, var(--neo-gap-3xs, 0.3125rem));
357
+ margin-left: var(--neo-btn-icon-offset, calc(0% - var(--neo-btn-icon-gap, var(--neo-gap-3xs, 0.3125rem))));
344
358
  }
345
359
  .neo-button .neo-content.neo-reverse {
346
360
  flex-direction: row-reverse;
347
361
  }
348
362
  .neo-button .neo-content.neo-reverse .neo-icon:not(.neo-only) {
349
- margin-right: var(--neo-btn-icon-offset, calc(0% - var(--neo-btn-icon-gap, 0.3125rem)));
350
- margin-left: var(--neo-btn-icon-gap, 0.3125rem);
363
+ margin-right: var(--neo-btn-icon-offset, calc(0% - var(--neo-btn-icon-gap, var(--neo-gap-3xs, 0.3125rem))));
364
+ margin-left: var(--neo-btn-icon-gap, var(--neo-gap-3xs, 0.3125rem));
351
365
  }
352
366
  .neo-button:focus-visible {
353
367
  outline: var(--neo-border-width, 1px) solid var(--neo-border-color-focused);
@@ -359,33 +373,79 @@
359
373
  .neo-button:focus-visible .neo-content, .neo-button:hover .neo-content {
360
374
  color: var(--neo-btn-text-color-hover, var(--neo-text-color-hover));
361
375
  }
362
- .neo-button.neo-pressed, .neo-button:active:not(.neo-loading, :disabled, [disabled=true]) {
376
+ .neo-button.neo-pressed, .neo-button:active:not(.neo-loading,
377
+ :disabled,
378
+ [disabled=true],
379
+ :has(:global(:where(.neo-button.neo-propagation:active)))) {
363
380
  box-shadow: var(--neo-btn-box-shadow-active, var(--neo-box-shadow-pressed-2));
364
- transition: opacity 0.3s ease, color 0.15s ease, background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.15s ease-out;
381
+ transition: opacity 0.3s ease, color 0.15s ease, background-color 0.15s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.15s ease-out;
365
382
  }
366
- .neo-button.neo-pressed.neo-scale .neo-content, .neo-button:active:not(.neo-loading, :disabled, [disabled=true]).neo-scale .neo-content {
383
+ .neo-button.neo-pressed.neo-scale .neo-content, .neo-button:active:not(.neo-loading,
384
+ :disabled,
385
+ [disabled=true],
386
+ :has(:global(:where(.neo-button.neo-propagation:active)))).neo-scale .neo-content {
367
387
  color: var(--neo-btn-text-color-active, var(--neo-text-color-active));
368
388
  scale: var(--neo-btn-scale-pressed, 0.98);
369
389
  }
370
- .neo-button:is(a):visited:not(:disabled, .neo-pressed, [disabled=true], :active:not(.neo-loading, :disabled, [disabled=true])) .neo-content {
390
+ .neo-button.neo-inset-hover:focus-visible, .neo-button.neo-inset-hover:hover, .neo-button.neo-inset-hover.neo-pressed, .neo-button.neo-inset-hover:active:not(.neo-loading,
391
+ :disabled,
392
+ [disabled=true],
393
+ :has(:global(:where(.neo-button.neo-propagation:active)))), .neo-button.neo-inset:focus-visible, .neo-button.neo-inset:hover, .neo-button.neo-inset.neo-pressed, .neo-button.neo-inset:active:not(.neo-loading,
394
+ :disabled,
395
+ [disabled=true],
396
+ :has(:global(:where(.neo-button.neo-propagation:active)))) {
397
+ background-color: var(--neo-btn-bg-color-hover, var(--neo-background-color-hover));
398
+ }
399
+ .neo-button:is(a):visited:not(:disabled,
400
+ .neo-pressed,
401
+ [disabled=true],
402
+ :active:not(.neo-loading,
403
+ :disabled,
404
+ [disabled=true],
405
+ :has(:global(:where(.neo-button.neo-propagation:active))))) .neo-content {
371
406
  color: var(--neo-btn-text-color-visited, var(--neo-text-color-secondary));
372
407
  }
373
408
  .neo-button.neo-borderless {
374
409
  border-color: transparent !important;
375
410
  }
376
- .neo-button.neo-hover.neo-flat-hover.neo-hovered, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed), .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed), .neo-button.neo-flat-active.neo-pressed, .neo-button.neo-flat-active:active, .neo-button.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active) {
411
+ .neo-button.neo-hover.neo-flat-hover.neo-hovered, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed), .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed), .neo-button.neo-flat-active.neo-pressed, .neo-button.neo-flat-active:active, .neo-button.neo-flat:not(.neo-borderless,
412
+ .neo-hover-flat:hover,
413
+ .neo-hover-flat:focus-visible,
414
+ .neo-hover-flat.neo-hovered,
415
+ .neo-pressed,
416
+ :active) {
377
417
  border-color: var(--neo-btn-border-color, var(--neo-border-color));
378
418
  }
379
- .neo-button.neo-hover.neo-flat-hover.neo-hovered:focus-visible, .neo-button.neo-hover.neo-flat-hover.neo-hovered:hover, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):focus-visible, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):hover, .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):focus-visible, .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):hover, .neo-button.neo-flat-active.neo-pressed:focus-visible, .neo-button.neo-flat-active.neo-pressed:hover, .neo-button.neo-flat-active:active:focus-visible, .neo-button.neo-flat-active:active:hover, .neo-button.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active):focus-visible, .neo-button.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active):hover {
419
+ .neo-button.neo-hover.neo-flat-hover.neo-hovered:focus-visible, .neo-button.neo-hover.neo-flat-hover.neo-hovered:hover, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):focus-visible, .neo-button.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):hover, .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):focus-visible, .neo-button.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):hover, .neo-button.neo-flat-active.neo-pressed:focus-visible, .neo-button.neo-flat-active.neo-pressed:hover, .neo-button.neo-flat-active:active:focus-visible, .neo-button.neo-flat-active:active:hover, .neo-button.neo-flat:not(.neo-borderless,
420
+ .neo-hover-flat:hover,
421
+ .neo-hover-flat:focus-visible,
422
+ .neo-hover-flat.neo-hovered,
423
+ .neo-pressed,
424
+ :active):focus-visible, .neo-button.neo-flat:not(.neo-borderless,
425
+ .neo-hover-flat:hover,
426
+ .neo-hover-flat:focus-visible,
427
+ .neo-hover-flat.neo-hovered,
428
+ .neo-pressed,
429
+ :active):hover {
380
430
  border-color: var(--neo-btn-border-color-hover, var(--neo-border-color-highlight));
381
431
  }
382
432
  .neo-button.neo-glass {
433
+ --neo-background-color-tinted-hover: var(--neo-glass-background-color-tinted-hover);
383
434
  --neo-background-color-tinted: var(--neo-glass-background-color-tinted);
384
435
  --neo-skeleton-color: var(--neo-glass-skeleton-color);
385
436
  --neo-border-color: var(--neo-glass-border-color);
386
437
  background-color: var(--neo-btn-bg-color, var(--neo-glass-background-color));
387
438
  backdrop-filter: var(--neo-btn-backdrop-filter, var(--neo-blur-2) var(--neo-saturate-3));
388
439
  }
440
+ .neo-button.neo-glass.neo-inset-hover:hover, .neo-button.neo-glass.neo-inset-hover:focus-visible, .neo-button.neo-glass.neo-inset-hover.neo-pressed, .neo-button.neo-glass.neo-inset-hover:active:not(.neo-loading,
441
+ :disabled,
442
+ [disabled=true],
443
+ :has(:global(:where(.neo-button.neo-propagation:active)))), .neo-button.neo-glass.neo-inset:hover, .neo-button.neo-glass.neo-inset:focus-visible, .neo-button.neo-glass.neo-inset.neo-pressed, .neo-button.neo-glass.neo-inset:active:not(.neo-loading,
444
+ :disabled,
445
+ [disabled=true],
446
+ :has(:global(:where(.neo-button.neo-propagation:active)))) {
447
+ background-color: var(--neo-btn-bg-color-hover, var(--neo-glass-background-color-hover));
448
+ }
389
449
  .neo-button.neo-glass:not(.neo-inset,
390
450
  .neo-inset-hover:hover,
391
451
  .neo-inset-hover:focus-visible,
@@ -397,10 +457,25 @@
397
457
  :active) {
398
458
  border-color: var(--neo-btn-border-color, var(--neo-glass-top-border-color) var(--neo-glass-right-border-color) var(--neo-glass-bottom-border-color) var(--neo-glass-left-border-color));
399
459
  }
400
- .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed), .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed), .neo-button.neo-glass.neo-flat-active.neo-pressed, .neo-button.neo-glass.neo-flat-active:active, .neo-button.neo-glass.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active) {
460
+ .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed), .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed), .neo-button.neo-glass.neo-flat-active.neo-pressed, .neo-button.neo-glass.neo-flat-active:active, .neo-button.neo-glass.neo-flat:not(.neo-borderless,
461
+ .neo-hover-flat:hover,
462
+ .neo-hover-flat:focus-visible,
463
+ .neo-hover-flat.neo-hovered,
464
+ .neo-pressed,
465
+ :active) {
401
466
  border-color: var(--neo-btn-border-color, var(--neo-glass-border-color-flat));
402
467
  }
403
- .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered:focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered:hover, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):hover, .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):hover, .neo-button.neo-glass.neo-flat-active.neo-pressed:focus-visible, .neo-button.neo-glass.neo-flat-active.neo-pressed:hover, .neo-button.neo-glass.neo-flat-active:active:focus-visible, .neo-button.neo-glass.neo-flat-active:active:hover, .neo-button.neo-glass.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active):focus-visible, .neo-button.neo-glass.neo-flat:not(.neo-borderless, .neo-hover-flat:hover, .neo-hover-flat:focus-visible, .neo-hover-flat.neo-hovered, .neo-pressed, :active):hover {
468
+ .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered:focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered:hover, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover:focus-visible:not(:active, .neo-pressed):hover, .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):focus-visible, .neo-button.neo-glass.neo-hover.neo-flat-hover:hover:not(:active, .neo-pressed):hover, .neo-button.neo-glass.neo-flat-active.neo-pressed:focus-visible, .neo-button.neo-glass.neo-flat-active.neo-pressed:hover, .neo-button.neo-glass.neo-flat-active:active:focus-visible, .neo-button.neo-glass.neo-flat-active:active:hover, .neo-button.neo-glass.neo-flat:not(.neo-borderless,
469
+ .neo-hover-flat:hover,
470
+ .neo-hover-flat:focus-visible,
471
+ .neo-hover-flat.neo-hovered,
472
+ .neo-pressed,
473
+ :active):focus-visible, .neo-button.neo-glass.neo-flat:not(.neo-borderless,
474
+ .neo-hover-flat:hover,
475
+ .neo-hover-flat:focus-visible,
476
+ .neo-hover-flat.neo-hovered,
477
+ .neo-pressed,
478
+ :active):hover {
404
479
  border-color: var(--neo-btn-border-color-hover, var(--neo-glass-border-color-flat-highlight));
405
480
  }
406
481
  @starting-style {
@@ -414,9 +489,18 @@
414
489
  .neo-button.neo-tinted {
415
490
  background-color: var(--neo-btn-bg-color, var(--neo-background-color-tinted));
416
491
  }
492
+ .neo-button.neo-tinted.neo-inset-hover:hover, .neo-button.neo-tinted.neo-inset-hover:focus-visible, .neo-button.neo-tinted.neo-inset-hover.neo-pressed, .neo-button.neo-tinted.neo-inset-hover:active:not(.neo-loading,
493
+ :disabled,
494
+ [disabled=true],
495
+ :has(:global(:where(.neo-button.neo-propagation:active)))), .neo-button.neo-tinted.neo-inset:hover, .neo-button.neo-tinted.neo-inset:focus-visible, .neo-button.neo-tinted.neo-inset.neo-pressed, .neo-button.neo-tinted.neo-inset:active:not(.neo-loading,
496
+ :disabled,
497
+ [disabled=true],
498
+ :has(:global(:where(.neo-button.neo-propagation:active)))) {
499
+ background-color: var(--neo-btn-bg-color-hover, var(--neo-background-color-tinted-hover));
500
+ }
417
501
  .neo-button.neo-rounded {
418
502
  padding: var(--neo-btn-padding, 0.3125rem 0.75rem);
419
- border-radius: var(--neo-btn-border-radius-rounded, var(--neo-border-radius-lg));
503
+ border-radius: var(--neo-btn-border-radius, var(--neo-border-radius-xxl));
420
504
  }
421
505
  .neo-button.neo-container {
422
506
  display: flex;
@@ -429,7 +513,7 @@
429
513
  text-align: start;
430
514
  }
431
515
  .neo-button.neo-container:focus-visible, .neo-button.neo-container:hover {
432
- transition: opacity 0.3s ease, color 0.15s ease, background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.15s ease-out;
516
+ transition: opacity 0.3s ease, color 0.15s ease, background-color 0.15s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, border-radius 0.3s ease, box-shadow 0.15s ease-out;
433
517
  }
434
518
  .neo-button:disabled:disabled, .neo-button[disabled]:not([disabled=false]) {
435
519
  cursor: not-allowed;
@@ -456,7 +540,7 @@
456
540
  background-clip: padding-box;
457
541
  border-color: var(--neo-skeleton-color);
458
542
  opacity: 1;
459
- transition: background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
543
+ transition: border-radius 0.3333333333s ease, background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
460
544
  animation: skeleton 3s var(--neo-transition-skeleton) infinite;
461
545
  animation-delay: 1s;
462
546
  }
@@ -478,7 +562,9 @@
478
562
  .neo-button.neo-empty {
479
563
  padding: var(--neo-btn-padding-empty, 0.5rem);
480
564
  }
481
- .neo-button.neo-empty.neo-pressed.neo-pressed.neo-scale .neo-content, .neo-button.neo-empty:active:not(.neo-loading, :disabled, [disabled=true]).neo-scale .neo-content {
565
+ .neo-button.neo-empty.neo-pressed.neo-pressed.neo-scale .neo-content, .neo-button.neo-empty:active:not(.neo-loading,
566
+ :disabled,
567
+ [disabled=true] :has(:global(:where(.neo-button.neo-propagation:active)))).neo-scale .neo-content {
482
568
  scale: var(--neo-btn-scale-pressed-empty, var(--neo-btn-scale-pressed, 0.9));
483
569
  }
484
570
  .neo-button.neo-pulse {
@@ -2,6 +2,7 @@
2
2
  import type { NeoButtonGroupContext, NeoButtonGroupProps } from './neo-button-group.model.js';
3
3
 
4
4
  import { toAction, toActionProps, toTransition, toTransitionProps } from '../utils/action.utils.js';
5
+ import { computeBorderRadius } from '../utils/border.utils.js';
5
6
  import { getColorVariable } from '../utils/colors.utils.js';
6
7
  import {
7
8
  coerce,
@@ -55,6 +56,9 @@
55
56
  width: _width,
56
57
  height: _height,
57
58
 
59
+ offsetWidth = $bindable(),
60
+ offsetHeight = $bindable(),
61
+
58
62
  // Transition
59
63
  in: inAction,
60
64
  out: outAction,
@@ -120,6 +124,8 @@
120
124
  <svelte:element
121
125
  this={tag}
122
126
  bind:this={ref}
127
+ bind:offsetWidth
128
+ bind:offsetHeight
123
129
  class:neo-button-group={true}
124
130
  class:neo-borderless={borderless}
125
131
  class:neo-start={start}
@@ -144,6 +150,7 @@
144
150
  style:--neo-btn-group-box-shadow-btn-hover={buttonHoverShadow}
145
151
  style:--neo-btn-group-box-shadow-btn-active={buttonActiveShadow}
146
152
  style:--neo-btn-group-glass-blur={filter}
153
+ style:--neo-btn-group-border-radius={computeBorderRadius(rounded)}
147
154
  style:justify-content={justify}
148
155
  style:align-items={align}
149
156
  style:flex
@@ -248,17 +255,17 @@
248
255
  border-color: transparent !important;
249
256
  }
250
257
  .neo-button-group :global(.neo-button:disabled:not(.neo-pressed)),
251
- .neo-button-group :global(.neo-button[disabled]:not([disabled="false"], .neo-pressed)) {
258
+ .neo-button-group :global(.neo-button[disabled]:not([disabled='false'], .neo-pressed)) {
252
259
  box-shadow: var(--neo-box-shadow-flat) !important;
253
260
  }
254
- .neo-button-group :global(.neo-button:not(:active:not(.neo-loading), .neo-pressed)) {
261
+ .neo-button-group :global(.neo-button:not(:active:not(.neo-loading, :has(.neo-button.neo-propagation:active)), .neo-pressed)) {
255
262
  box-shadow: var(--neo-box-shadow-flat);
256
263
  }
257
- .neo-button-group :global(.neo-button:not(.neo-flat, :active:not(.neo-loading), .neo-pressed):hover) {
264
+ .neo-button-group :global(.neo-button:not(.neo-flat, :active:not(.neo-loading, :has(.neo-button.neo-propagation:active)), .neo-pressed):hover) {
258
265
  box-shadow: var(--neo-btn-group-box-shadow-btn-hover);
259
266
  }
260
267
  .neo-button-group :global(.neo-button.neo-pressed),
261
- .neo-button-group :global(.neo-button:active:not(.neo-loading)) {
268
+ .neo-button-group :global(.neo-button:active:not(.neo-loading, :has(.neo-button.neo-propagation:active))) {
262
269
  box-shadow: var(--neo-btn-group-box-shadow-btn-active);
263
270
  }
264
271
  .neo-button-group.neo-pulse {
@@ -315,10 +322,10 @@
315
322
  }
316
323
  .neo-button-group.neo-rounded {
317
324
  padding: 0.25rem 0.3125rem;
318
- border-radius: var(--neo-btn-groupborder-radius-rounded, var(--neo-border-radius-lg));
325
+ border-radius: var(--neo-btn-groupborder-radius-rounded, var(--neo-border-radius-xxl));
319
326
  }
320
327
  .neo-button-group.neo-rounded :global(.neo-button) {
321
- border-radius: var(--neo-btn-groupborder-radius-rounded, var(--neo-border-radius-lg));
328
+ border-radius: var(--neo-btn-groupborder-radius-rounded, var(--neo-border-radius-xxl));
322
329
  }
323
330
  .neo-button-group.neo-skeleton {
324
331
  box-shadow: var(--neo-box-shadow-flat);
@@ -330,7 +337,7 @@
330
337
  background-clip: padding-box;
331
338
  border-color: var(--neo-skeleton-color);
332
339
  opacity: 1;
333
- transition: background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
340
+ transition: border-radius 0.3333333333s ease, background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
334
341
  animation: skeleton 3s var(--neo-transition-skeleton) infinite;
335
342
  animation-delay: 1s;
336
343
  }
@@ -359,12 +366,14 @@
359
366
  .neo-button-group.neo-vertical {
360
367
  flex-direction: column;
361
368
  min-width: max-content;
362
- --neo-btn-group-scale-x: 1.75;
363
- --neo-btn-group-scale-y: 1.5;
364
369
  }
365
370
  .neo-button-group.neo-vertical :global(.neo-divider) {
366
371
  max-width: calc(100% - 0.5rem);
367
372
  }
373
+ .neo-button-group.neo-vertical {
374
+ --neo-btn-group-scale-x: 1.75;
375
+ --neo-btn-group-scale-y: 1.5;
376
+ }
368
377
  .neo-button-group.neo-vertical :global(.neo-button) {
369
378
  width: 100%;
370
379
  }
@@ -1,4 +1,4 @@
1
1
  import type { NeoButtonGroupProps } from './neo-button-group.model.js';
2
- declare const NeoButtonGroup: import("svelte").Component<NeoButtonGroupProps, {}, "ref">;
2
+ declare const NeoButtonGroup: import("svelte").Component<NeoButtonGroupProps, {}, "ref" | "offsetHeight" | "offsetWidth">;
3
3
  type NeoButtonGroup = ReturnType<typeof NeoButtonGroup>;
4
4
  export default NeoButtonGroup;