@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
@@ -0,0 +1,137 @@
1
+ <script lang="ts">
2
+ import type { NeoButtonGroupContext } from './neo-button-group.model.js';
3
+ import type { NeoButtonRowItem, NeoButtonRowProps } from './neo-button-row.model.js';
4
+ import type { NeoMenuItem } from '../floating/menu/neo-menu-list-item.model.js';
5
+
6
+ import { watch } from '@dvcol/svelte-utils/watch';
7
+ import { tick } from 'svelte';
8
+ import { innerHeight, innerWidth } from 'svelte/reactivity/window';
9
+
10
+ import { isButtonRowDivider } from './neo-button-row.model.js';
11
+ import NeoButton from './NeoButton.svelte';
12
+ import NeoButtonGroup from './NeoButtonGroup.svelte';
13
+ import NeoDivider from '../divider/NeoDivider.svelte';
14
+ import NeoMenu from '../floating/menu/NeoMenu.svelte';
15
+ import NeoIconBouncingDots from '../icons/NeoIconBouncingDots.svelte';
16
+
17
+ let {
18
+ // Snippets
19
+ children: innerChildren,
20
+ collapsed,
21
+
22
+ // State
23
+ items: buttons = [],
24
+ threshold = $bindable(0),
25
+
26
+ // Group props
27
+ ref = $bindable(),
28
+ offsetWidth = $bindable(),
29
+ offsetHeight = $bindable(),
30
+
31
+ // Button props
32
+ hovered = $bindable(false),
33
+ focused = $bindable(false),
34
+
35
+ // Other props
36
+ menuProps,
37
+ iconProps,
38
+ buttonProps,
39
+ collapseProps,
40
+ ...rest
41
+ }: NeoButtonRowProps = $props();
42
+
43
+ function buttonRowItemToMenuItem(item: NeoButtonRowItem, next?: NeoButtonRowItem): NeoMenuItem | undefined {
44
+ if (isButtonRowDivider(item)) return;
45
+ return {
46
+ id: item.id?.toString(),
47
+ label: item.label,
48
+ value: item.value,
49
+ before: item.icon,
50
+ reverse: item.reverse,
51
+ disabled: item.disabled,
52
+ readonly: item.readonly,
53
+ color: item.color || undefined,
54
+ href: item.href,
55
+ onclick: item.onclick,
56
+ divider: {
57
+ bottom: next && isButtonRowDivider(next),
58
+ },
59
+ ...(item.menuProps ?? {}),
60
+ };
61
+ }
62
+
63
+ const visible = $derived(threshold ? buttons?.slice(0, -threshold) : buttons);
64
+ const hidden = $derived(threshold ? buttons?.slice(-threshold) : []);
65
+ const items = $derived(
66
+ hidden?.map((t, i, arr) => buttonRowItemToMenuItem(t, arr[i + 1]))
67
+ .filter(Boolean) as NeoMenuItem[],
68
+ );
69
+
70
+ const isOverflown = (el?: Element) => {
71
+ if (!el || !buttons?.length) return false;
72
+ if (rest.vertical) return el.scrollHeight > el.clientHeight;
73
+ return el.scrollWidth > el.clientWidth;
74
+ };
75
+
76
+ const autoSize = async (el = ref) => {
77
+ threshold = 0;
78
+ await tick();
79
+ if (!el || !buttons?.length) return;
80
+ while (threshold < buttons.length && isOverflown(el)) {
81
+ threshold += 1;
82
+ await tick();
83
+ }
84
+ };
85
+
86
+ watch(
87
+ () => {
88
+ void autoSize();
89
+ },
90
+ () => [
91
+ rest.vertical,
92
+ offsetWidth,
93
+ offsetHeight,
94
+ innerWidth.current,
95
+ innerHeight.current,
96
+ ],
97
+ );
98
+ </script>
99
+
100
+ <NeoButtonGroup bind:ref bind:offsetWidth bind:offsetHeight nowrap {...rest}>
101
+ {#snippet children(ctx: NeoButtonGroupContext)}
102
+ {@render innerChildren?.(ctx, { items, threshold, menuProps, collapseProps, iconProps })}
103
+
104
+ {#each visible as _props, index (_props.id ?? index)}
105
+ {#if (isButtonRowDivider(_props))}
106
+ <NeoDivider vertical={!rest.vertical} {..._props} />
107
+ {:else}
108
+ <NeoButton {...buttonProps} {..._props} />
109
+ {/if}
110
+ {/each}
111
+
112
+ {#if items?.length && collapsed}
113
+ {@render collapsed(ctx, { items, threshold, menuProps, collapseProps, iconProps })}
114
+ {:else if items?.length}
115
+ <div class="neo-button-row-collapse">
116
+ <NeoMenu {items} openOnClick {...menuProps}>
117
+ <NeoButton bind:hovered bind:focused {...collapseProps}>
118
+ {#snippet icon()}
119
+ <NeoIconBouncingDots bounce={hovered || focused} {...iconProps} />
120
+ {/snippet}
121
+ </NeoButton>
122
+ </NeoMenu>
123
+ </div>
124
+ {/if}
125
+ {/snippet}
126
+ </NeoButtonGroup>
127
+
128
+ <style>.neo-button-row-collapse {
129
+ display: contents;
130
+ }
131
+ .neo-button-row-collapse :global(> .neo-tooltip-trigger) {
132
+ width: 100%;
133
+ height: 100%;
134
+ }
135
+ .neo-button-row-collapse :global(> .neo-tooltip-trigger) :global(svg) {
136
+ margin-inline: 0.25rem;
137
+ }</style>
@@ -0,0 +1,4 @@
1
+ import type { NeoButtonRowProps } from './neo-button-row.model.js';
2
+ declare const NeoButtonRow: import("svelte").Component<NeoButtonRowProps, {}, "ref" | "hovered" | "focused" | "offsetHeight" | "offsetWidth" | "threshold">;
3
+ type NeoButtonRow = ReturnType<typeof NeoButtonRow>;
4
+ export default NeoButtonRow;
@@ -2,7 +2,7 @@
2
2
  import type { NeoIconButtonProps } from './neo-icon-button.model.js';
3
3
 
4
4
  import NeoButton from './NeoButton.svelte';
5
- import IconCancel from '../icons/IconCancel.svelte';
5
+ import NeoIconCancel from '../icons/NeoIconCancel.svelte';
6
6
 
7
7
  let {
8
8
  // Button props
@@ -19,7 +19,7 @@
19
19
  </script>
20
20
 
21
21
  {#snippet icon()}
22
- <IconCancel {...iconProps} />
22
+ <NeoIconCancel {...iconProps} />
23
23
  {/snippet}
24
24
 
25
25
  <div class="neo-cancel-button">
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
2
  import type { NeoCheckboxButtonProps } from './neo-checkbox-button.model.js';
3
3
 
4
- import IconCheckbox from '../icons/IconCheckbox.svelte';
4
+ import NeoIconCheckbox from '../icons/NeoIconCheckbox.svelte';
5
+ import { computeBorderRadius } from '../utils/border.utils.js';
5
6
  import { getColorVariable } from '../utils/colors.utils.js';
6
7
  import { coerce, computeShadowElevation, DefaultShadowShallowElevation, DefaultShallowMinMaxElevation } from '../utils/shadow.utils.js';
7
8
 
@@ -61,11 +62,12 @@
61
62
  style:--neo-checkbox-color={getColorVariable(color)}
62
63
  style:--neo-checkbox-box-shadow={boxShadow}
63
64
  style:--neo-checkbox-checked-shadow={checkedShadow}
65
+ style:--neo-checkbox-border-radius={computeBorderRadius(rounded)}
64
66
  {onclick}
65
67
  {...rest}
66
68
  >
67
69
  {@render children?.()}
68
- <IconCheckbox circle={rounded} indeterminate={!!indeterminate} checked={!!checked} enter={touched} />
70
+ <NeoIconCheckbox circle={!!rounded} indeterminate={!!indeterminate} checked={!!checked} enter={touched} />
69
71
  </button>
70
72
 
71
73
  <style>.neo-checkbox-button {
@@ -79,7 +81,7 @@
79
81
  background-color: color-mix(in srgb, transparent, currentcolor 1%);
80
82
  background-clip: padding-box;
81
83
  border: var(--neo-checkbox-border-width, var(--neo-border-width, 1px)) var(--neo-checkbox-border-color, transparent) solid;
82
- border-radius: var(--neo-border-radius-xs);
84
+ border-radius: var(--neo-checkbox-border-radius, var(--neo-border-radius-xs));
83
85
  outline: none;
84
86
  box-shadow: var(--neo-checkbox-box-shadow, var(--neo-box-shadow-raised-2));
85
87
  cursor: pointer;
@@ -151,7 +153,7 @@
151
153
  background-clip: padding-box;
152
154
  border-color: var(--neo-skeleton-color);
153
155
  opacity: 1;
154
- transition: background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
156
+ transition: border-radius 0.3333333333s ease, background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
155
157
  animation: skeleton 3s var(--neo-transition-skeleton) infinite;
156
158
  animation-delay: 1s;
157
159
  }
@@ -1,4 +1,4 @@
1
1
  import type { NeoCheckboxButtonProps } from './neo-checkbox-button.model.js';
2
- declare const NeoCheckboxButton: import("svelte").Component<NeoCheckboxButtonProps, {}, "checked" | "touched" | "indeterminate">;
2
+ declare const NeoCheckboxButton: import("svelte").Component<NeoCheckboxButtonProps, {}, "checked" | "indeterminate" | "touched">;
3
3
  type NeoCheckboxButton = ReturnType<typeof NeoCheckboxButton>;
4
4
  export default NeoCheckboxButton;
@@ -1,8 +1,9 @@
1
1
  <script lang="ts">
2
- import type { NeoIconButtonProps } from './neo-icon-button.model.js';
2
+ import type { NeoCloseButtonProps } from './neo-close-button.model.js';
3
3
 
4
4
  import NeoButton from './NeoButton.svelte';
5
- import IconClose from '../icons/IconClose.svelte';
5
+ import NeoIconClose from '../icons/NeoIconClose.svelte';
6
+ import { getColorVariable } from '../utils/index.js';
6
7
 
7
8
  let {
8
9
  // Button props
@@ -11,26 +12,56 @@
11
12
  hovered = $bindable(false),
12
13
  focused = $bindable(false),
13
14
 
15
+ // States
16
+ hoverColor,
17
+ size,
18
+ inline,
19
+
14
20
  // Other Props
15
21
  iconProps,
16
22
  ...rest
17
- }: NeoIconButtonProps = $props();
23
+ }: NeoCloseButtonProps = $props();
18
24
 
25
+ const iconSize = $derived.by(() => {
26
+ switch (size) {
27
+ case 'sm':
28
+ return 0.6875;
29
+ case 'md':
30
+ return 0.75;
31
+ case 'lg':
32
+ return 1;
33
+ default:
34
+ return 0.875;
35
+ }
36
+ });
19
37
  </script>
20
38
 
21
39
  {#snippet icon()}
22
- <IconClose size="0.875rem" {...iconProps} />
40
+ <NeoIconClose size="{iconSize}rem" {...iconProps} />
23
41
  {/snippet}
24
42
 
25
- <div class="neo-close-button">
43
+ <div
44
+ data-size={size}
45
+ class="neo-close-button"
46
+ class:neo-inline={inline}
47
+ style:--neo-close-color={getColorVariable(hoverColor)}
48
+ >
26
49
  <NeoButton bind:ref bind:checked bind:hovered bind:focused {icon} {...rest} />
27
50
  </div>
28
51
 
29
52
  <style>.neo-close-button {
30
53
  display: contents;
31
- --neo-btn-text-color-hover: var(--neo-close-color-hover, rgb(255 0 0 / 75%));
54
+ --neo-btn-text-color-hover: oklch(from var(--neo-close-color) l c h / 75%);
32
55
  --neo-btn-text-color-active: var(--neo-close-color, rgb(255 0 0));
33
56
  }
57
+ .neo-close-button.neo-inline :global(.neo-button) {
58
+ margin-block: auto;
59
+ }
60
+ .neo-close-button[data-size=md], .neo-close-button[data-size=sm] {
61
+ --neo-btn-padding-empty: var(--neo-btn-close-padding, var(--neo-gap-3xs, 0.3125rem));
62
+ --neo-btn-padding: var(--neo-btn-close-padding, var(--neo-gap-3xs, 0.3125rem));
63
+ --neo-btn-margin: var(--neo-btn-close-margin, var(--neo-gap-3xs, 0.3125rem));
64
+ }
34
65
  .neo-close-button > :global(.neo-button) :global(.neo-icon) {
35
66
  transition: rotate 0.3s ease-out;
36
67
  }
@@ -1,4 +1,4 @@
1
- import type { NeoIconButtonProps } from './neo-icon-button.model.js';
2
- declare const NeoCloseButton: import("svelte").Component<NeoIconButtonProps, {}, "ref" | "hovered" | "focused" | "checked">;
1
+ import type { NeoCloseButtonProps } from './neo-close-button.model.js';
2
+ declare const NeoCloseButton: import("svelte").Component<NeoCloseButtonProps, {}, "ref" | "hovered" | "focused" | "checked">;
3
3
  type NeoCloseButton = ReturnType<typeof NeoCloseButton>;
4
4
  export default NeoCloseButton;
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
2
  import type { NeoRadioButtonProps } from './neo-radio-button.model.js';
3
3
 
4
- import IconRadio from '../icons/IconRadio.svelte';
4
+ import NeoIconRadio from '../icons/NeoIconRadio.svelte';
5
+ import { computeBorderRadius } from '../utils/border.utils.js';
5
6
  import { getColorVariable } from '../utils/colors.utils.js';
6
7
  import { coerce, computeShadowElevation, DefaultShadowShallowElevation, DefaultShallowMinMaxElevation } from '../utils/shadow.utils.js';
7
8
 
@@ -59,11 +60,12 @@
59
60
  style:--neo-radio-color={getColorVariable(color)}
60
61
  style:--neo-radio-box-shadow={boxShadow}
61
62
  style:--neo-radio-checked-shadow={checkedShadow}
63
+ style:--neo-radio-border-radius={computeBorderRadius(rounded)}
62
64
  {onclick}
63
65
  {...rest}
64
66
  >
65
67
  {@render children?.()}
66
- <IconRadio circle={rounded} scale={rounded ? 0.75 : 0.9} checked={!!checked} enter={touched} />
68
+ <NeoIconRadio circle={!!rounded} scale={rounded ? 0.75 : 0.9} checked={!!checked} enter={touched} />
67
69
  </button>
68
70
 
69
71
  <style>.neo-radio-button {
@@ -77,7 +79,7 @@
77
79
  background-color: color-mix(in srgb, transparent, currentcolor 1%);
78
80
  background-clip: padding-box;
79
81
  border: var(--neo-radio-border-width, var(--neo-border-width, 1px)) var(--neo-radio-border-color, transparent) solid;
80
- border-radius: var(--neo-border-radius-xs);
82
+ border-radius: var(--neo-radio-border-radius, var(--neo-border-radius-xs));
81
83
  outline: none;
82
84
  box-shadow: var(--neo-radio-box-shadow, var(--neo-box-shadow-raised-2));
83
85
  cursor: pointer;
@@ -152,7 +154,7 @@
152
154
  background-clip: padding-box;
153
155
  border-color: var(--neo-skeleton-color);
154
156
  opacity: 1;
155
- transition: background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
157
+ transition: border-radius 0.3333333333s ease, background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
156
158
  animation: skeleton 3s var(--neo-transition-skeleton) infinite;
157
159
  animation-delay: 1s;
158
160
  }
@@ -1,6 +1,7 @@
1
1
  <script lang="ts">
2
2
  import type { NeoSwitchButtonContext, NeoSwitchButtonProps } from './neo-switch-button.model.js';
3
3
 
4
+ import { computeBorderRadius } from '../utils/border.utils.js';
4
5
  import { getColorVariable } from '../utils/colors.utils.js';
5
6
  import { coerce, computeShadowElevation, DefaultShadowShallowElevation, DefaultShallowMinMaxElevation } from '../utils/shadow.utils.js';
6
7
 
@@ -73,6 +74,7 @@
73
74
  style:--neo-switch-color={getColorVariable(color)}
74
75
  style:--neo-switch-box-shadow={boxShadow}
75
76
  style:--neo-switch-toggle-width="{toggleWidth}px"
77
+ style:--neo-switch-border-radius={computeBorderRadius(rounded)}
76
78
  {onclick}
77
79
  {...rest}
78
80
  >
@@ -162,10 +164,10 @@
162
164
  transition: color 0.3s ease, box-shadow 0.3s ease-out, border-radius 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
163
165
  }
164
166
  .neo-switch-button.neo-rounded {
165
- border-radius: var(--neo-border-radius-lg);
167
+ border-radius: var(--neo-switch-border-radius, var(--neo-border-radius-xxl));
166
168
  }
167
169
  .neo-switch-button.neo-rounded .neo-switch-rail {
168
- border-radius: var(--neo-border-radius-lg);
170
+ border-radius: var(--neo-switch-border-radius, var(--neo-border-radius-xxl));
169
171
  }
170
172
  .neo-switch-button.neo-valid {
171
173
  --neo-switch-checked-background: color-mix(in srgb, transparent, var(--neo-switch-valid-color, var(--neo-color-success)) 40%);
@@ -266,7 +268,7 @@
266
268
  background-clip: padding-box;
267
269
  border-color: var(--neo-skeleton-color);
268
270
  opacity: 1;
269
- transition: background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
271
+ transition: border-radius 0.3333333333s ease, background-color 1s ease, color 0.3333333333s ease, border-color 1s ease, opacity 1s ease;
270
272
  animation: skeleton 3s var(--neo-transition-skeleton) infinite;
271
273
  animation-delay: 1s;
272
274
  }
@@ -1,6 +1,7 @@
1
1
  export { default as NeoArrowButton } from './NeoArrowButton.svelte';
2
2
  export { default as NeoButton } from './NeoButton.svelte';
3
3
  export { default as NeoButtonGroup } from './NeoButtonGroup.svelte';
4
+ export { default as NeoButtonRow } from './NeoButtonRow.svelte';
4
5
  export { default as NeoCancelButton } from './NeoCancelButton.svelte';
5
6
  export { default as NeoCheckboxButton } from './NeoCheckboxButton.svelte';
6
7
  export { default as NeoCloseButton } from './NeoCloseButton.svelte';
@@ -8,6 +9,7 @@ export { default as NeoRadioButton } from './NeoRadioButton.svelte';
8
9
  export { default as NeoSwitchButton } from './NeoSwitchButton.svelte';
9
10
  export type * from './neo-arrow-button.model.js';
10
11
  export type * from './neo-button-group.model.js';
12
+ export type * from './neo-button-row.model.js';
11
13
  export type * from './neo-button.model.js';
12
14
  export type * from './neo-checkbox-button.model.js';
13
15
  export type * from './neo-radio-button.model.js';
@@ -1,6 +1,7 @@
1
1
  export { default as NeoArrowButton } from './NeoArrowButton.svelte';
2
2
  export { default as NeoButton } from './NeoButton.svelte';
3
3
  export { default as NeoButtonGroup } from './NeoButtonGroup.svelte';
4
+ export { default as NeoButtonRow } from './NeoButtonRow.svelte';
4
5
  export { default as NeoCancelButton } from './NeoCancelButton.svelte';
5
6
  export { default as NeoCheckboxButton } from './NeoCheckboxButton.svelte';
6
7
  export { default as NeoCloseButton } from './NeoCloseButton.svelte';
@@ -1,12 +1,12 @@
1
1
  import type { NeoButtonProps } from './neo-button.model.js';
2
- import type { IconArrowProps } from '../icons/icon.model.js';
2
+ import type { NeoIconArrowProps } from '../icons/neo-icon.model.js';
3
3
  export type NeoArrowButtonProps = NeoButtonProps & {
4
4
  /**
5
5
  * Optional arrow properties.
6
6
  */
7
- arrowProps?: IconArrowProps;
7
+ arrowProps?: NeoIconArrowProps;
8
8
  /**
9
9
  * Arrow direction.
10
10
  */
11
- direction?: IconArrowProps['direction'];
11
+ direction?: NeoIconArrowProps['direction'];
12
12
  };
@@ -1,6 +1,7 @@
1
- import type { NeoButtonActiveElevation, NeoButtonBlur, NeoButtonHoverElevation } from '../index.js';
2
1
  import type { Snippet } from 'svelte';
2
+ import type { NeoButtonActiveElevation, NeoButtonBlur, NeoButtonHoverElevation } from './neo-button.model.js';
3
3
  import type { HTMLActionProps } from '../utils/action.utils.js';
4
+ import type { BorderRadiusInput } from '../utils/border.utils.js';
4
5
  import type { Color } from '../utils/colors.utils.js';
5
6
  import type { HTMLFlexProps, HTMLNeoBaseElement, HTMLRefProps } from '../utils/html-element.utils.js';
6
7
  import type { ShadowElevation, ShadowElevationString } from '../utils/shadow.utils.js';
@@ -73,7 +74,7 @@ export interface NeoButtonGroupContext {
73
74
  /**
74
75
  * If true, the button group will have a rounded border.
75
76
  */
76
- rounded?: boolean;
77
+ rounded?: BorderRadiusInput;
77
78
  /**
78
79
  * Text color to use for the button.
79
80
  */
@@ -116,6 +117,14 @@ export type NeoButtonGroupProps<Tag extends keyof HTMLElementTagNameMap = 'div'>
116
117
  * @default 'div'
117
118
  */
118
119
  tag?: Tag | keyof HTMLElementTagNameMap;
120
+ /**
121
+ * The offset height of the button group.
122
+ */
123
+ offsetHeight?: HTMLElementTagNameMap[Tag]['offsetHeight'];
124
+ /**
125
+ * The offset width of the button group.
126
+ */
127
+ offsetWidth?: HTMLElementTagNameMap[Tag]['offsetWidth'];
119
128
  /**
120
129
  * If true, the buttons will not wrap to the next line.
121
130
  */
@@ -128,4 +137,4 @@ export type NeoButtonGroupProps<Tag extends keyof HTMLElementTagNameMap = 'div'>
128
137
  * Optional height constraints.
129
138
  */
130
139
  height?: SizeInput<'height'>;
131
- } & NeoButtonGroupContext & HTMLFlexProps & HTMLNeoBaseElement<HTMLElementTagNameMap[Tag]> & HTMLActionProps & HTMLRefProps;
140
+ } & NeoButtonGroupContext & HTMLFlexProps & HTMLActionProps & HTMLRefProps & Omit<HTMLNeoBaseElement<HTMLElementTagNameMap[Tag]>, 'children'>;
@@ -0,0 +1,33 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { NeoButtonGroupContext, NeoButtonGroupProps } from './neo-button-group.model.js';
3
+ import type { NeoButtonProps } from './neo-button.model.js';
4
+ import type { NeoDividerProps } from '../divider/neo-divider.model.js';
5
+ import type { NeoMenuItem } from '../floating/menu/neo-menu-list-item.model.js';
6
+ import type { NeoMenuProps } from '../floating/menu/neo-menu.model.js';
7
+ import type { NeoIconBouncingDotsProps } from '../icons/neo-icon.model.js';
8
+ export interface NeoButtonRowItemButton extends NeoButtonProps {
9
+ menuProps?: Partial<NeoMenuItem>;
10
+ label?: string | undefined;
11
+ icon?: Snippet<[unknown]>;
12
+ }
13
+ export interface NeoButtonRowItemDivider extends NeoDividerProps {
14
+ divider: true;
15
+ }
16
+ export type NeoButtonRowItem = NeoButtonRowItemButton | NeoButtonRowItemDivider;
17
+ export declare const isButtonRowDivider: (item: NeoButtonRowItem) => item is NeoButtonRowItemDivider;
18
+ export interface NeoButtonRowContext {
19
+ items?: NeoMenuItem[];
20
+ threshold?: number;
21
+ menuProps?: Partial<NeoMenuProps>;
22
+ iconProps?: NeoIconBouncingDotsProps;
23
+ collapseProps?: NeoButtonProps;
24
+ }
25
+ export interface NeoButtonRowProps extends Omit<NeoButtonRowContext, 'items'>, Omit<NeoButtonGroupProps, 'children'> {
26
+ children?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
27
+ collapsed?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
28
+ ref?: NeoButtonGroupProps['ref'];
29
+ items: NeoButtonRowItem[];
30
+ hovered?: NeoButtonProps['hovered'];
31
+ focused?: NeoButtonProps['focused'];
32
+ buttonProps?: NeoButtonProps;
33
+ }
@@ -0,0 +1 @@
1
+ export const isButtonRowDivider = (item) => item && 'divider' in item && item.divider;
@@ -1,6 +1,8 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { HTMLAnchorAttributes, HTMLButtonAttributes, KeyboardEventHandler } from 'svelte/elements';
3
+ import type { NeoImageProps } from '../media/neo-image.model.js';
3
4
  import type { HTMLActionProps } from '../utils/action.utils.js';
5
+ import type { BorderRadiusInput } from '../utils/border.utils.js';
4
6
  import type { Color } from '../utils/colors.utils.js';
5
7
  import type { HTMLFlexProps, HTMLNeoBaseElement, HTMLRefProps, SvelteEvent } from '../utils/html-element.utils.js';
6
8
  import type { BlurElevation, BlurElevationString, ShadowElevation, ShadowElevationString, ShadowHoverElevation, ShadowHoverElevationsString } from '../utils/shadow.utils.js';
@@ -39,9 +41,10 @@ export interface NeoButtonStates {
39
41
  */
40
42
  focused?: boolean;
41
43
  /**
42
- * If true, only the icon (if any) will be displayed.
44
+ * If true, the button will not propagate the click event to its parent elements.
45
+ * This is useful for preventing unwanted side effects when clicking the button.
43
46
  */
44
- empty?: boolean;
47
+ propagation?: boolean;
45
48
  /**
46
49
  * If true, the button will act as a toggle button.
47
50
  */
@@ -74,7 +77,7 @@ export type NeoButtonProps<Tag extends keyof HTMLElementTagNameMap = 'button'> =
74
77
  /**
75
78
  * Optional icon snippet to display before the text.
76
79
  */
77
- icon?: Snippet<[NeoButtonContext]>;
80
+ icon?: Snippet<[NeoButtonContext]> | string;
78
81
  /**
79
82
  * The HTML tag to use for the button.
80
83
  * If an `href` is provided, the tag will default to `'a'`.
@@ -159,7 +162,7 @@ export type NeoButtonProps<Tag extends keyof HTMLElementTagNameMap = 'button'> =
159
162
  /**
160
163
  * If true, the button will have a rounded border.
161
164
  */
162
- rounded?: boolean;
165
+ rounded?: BorderRadiusInput;
163
166
  /**
164
167
  * If true, the flex direction of the button will be reversed.
165
168
  */
@@ -201,6 +204,10 @@ export type NeoButtonProps<Tag extends keyof HTMLElementTagNameMap = 'button'> =
201
204
  * @param e
202
205
  */
203
206
  onkeyup?: KeyboardEventHandler<HTMLButtonElement>;
207
+ /**
208
+ * Optional props to pass to the icon image component if the icon is a string.
209
+ */
210
+ imageProps?: Partial<NeoImageProps>;
204
211
  } & NeoButtonStates & HTMLFlexProps & HTMLActionProps & HTMLRefProps & Partial<Omit<Tag extends 'button' ? HTMLButtonAttributes : Tag extends 'a' ? HTMLAnchorAttributes : HTMLNeoBaseElement<HTMLElementTagNameMap[Tag]>, 'onclick' | 'onkeydown' | 'onkeyup'>>;
205
212
  export type NeoButtonTemplate = Pick<NeoButtonProps, 'elevation' | 'hover' | 'active' | 'pressed' | 'borderless' | 'glass' | 'tinted' | 'rounded' | 'reverse' | 'coalesce' | 'pulse'>;
206
213
  export declare const NeoRaisedButton: NeoButtonTemplate;
@@ -0,0 +1,13 @@
1
+ import type { NeoIconButtonProps } from './neo-icon-button.model.js';
2
+ import type { Color } from '../utils/colors.utils.js';
3
+ export declare const NeoCloseButtonSize: {
4
+ readonly Small: "sm";
5
+ readonly Medium: "md";
6
+ readonly Large: "lg";
7
+ };
8
+ export type NeoCloseButtonSizes = (typeof NeoCloseButtonSize)[keyof typeof NeoCloseButtonSize];
9
+ export interface NeoCloseButtonProps extends NeoIconButtonProps {
10
+ hoverColor?: Color | CSSStyleDeclaration['color'];
11
+ size?: NeoCloseButtonSizes;
12
+ inline?: boolean;
13
+ }
@@ -0,0 +1,5 @@
1
+ export const NeoCloseButtonSize = {
2
+ Small: 'sm',
3
+ Medium: 'md',
4
+ Large: 'lg',
5
+ };
@@ -1,8 +1,8 @@
1
1
  import type { NeoButtonProps } from './neo-button.model.js';
2
- import type { IconProps } from '../icons/icon.model.js';
2
+ import type { NeoIconProps } from '../icons/neo-icon.model.js';
3
3
  export type NeoIconButtonProps = NeoButtonProps & {
4
4
  /**
5
5
  * Optional icon properties.
6
6
  */
7
- iconProps?: IconProps;
7
+ iconProps?: NeoIconProps;
8
8
  };