@marwes-ui/svelte 1.3.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 (371) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +518 -0
  4. package/dist/components/accordion/Accordion.svelte +56 -0
  5. package/dist/components/accordion/Accordion.svelte.d.ts +4 -0
  6. package/dist/components/accordion/AccordionField.svelte +90 -0
  7. package/dist/components/accordion/AccordionField.svelte.d.ts +4 -0
  8. package/dist/components/accordion/FAQAccordion.svelte +21 -0
  9. package/dist/components/accordion/FAQAccordion.svelte.d.ts +20 -0
  10. package/dist/components/accordion/README.md +19 -0
  11. package/dist/components/accordion/SectionsAccordion.svelte +22 -0
  12. package/dist/components/accordion/SectionsAccordion.svelte.d.ts +21 -0
  13. package/dist/components/accordion/SettingsAccordion.svelte +21 -0
  14. package/dist/components/accordion/SettingsAccordion.svelte.d.ts +20 -0
  15. package/dist/components/accordion/index.d.ts +2 -0
  16. package/dist/components/accordion/index.js +1 -0
  17. package/dist/components/accordion/types.d.ts +28 -0
  18. package/dist/components/accordion/types.js +1 -0
  19. package/dist/components/avatar/Avatar.svelte +45 -0
  20. package/dist/components/avatar/Avatar.svelte.d.ts +4 -0
  21. package/dist/components/avatar/AvatarBadge.svelte +47 -0
  22. package/dist/components/avatar/AvatarBadge.svelte.d.ts +7 -0
  23. package/dist/components/avatar/AvatarGroup.svelte +50 -0
  24. package/dist/components/avatar/AvatarGroup.svelte.d.ts +15 -0
  25. package/dist/components/avatar/PresenceAvatar.svelte +12 -0
  26. package/dist/components/avatar/PresenceAvatar.svelte.d.ts +7 -0
  27. package/dist/components/avatar/ProfileAvatar.svelte +7 -0
  28. package/dist/components/avatar/ProfileAvatar.svelte.d.ts +4 -0
  29. package/dist/components/avatar/README.md +19 -0
  30. package/dist/components/avatar/TeamAvatarGroup.svelte +21 -0
  31. package/dist/components/avatar/TeamAvatarGroup.svelte.d.ts +15 -0
  32. package/dist/components/avatar/index.d.ts +2 -0
  33. package/dist/components/avatar/index.js +1 -0
  34. package/dist/components/avatar/types.d.ts +6 -0
  35. package/dist/components/avatar/types.js +1 -0
  36. package/dist/components/badge/Badge.svelte +26 -0
  37. package/dist/components/badge/Badge.svelte.d.ts +4 -0
  38. package/dist/components/badge/BadgeGroup.svelte +25 -0
  39. package/dist/components/badge/BadgeGroup.svelte.d.ts +4 -0
  40. package/dist/components/badge/NotificationBadge.svelte +7 -0
  41. package/dist/components/badge/NotificationBadge.svelte.d.ts +4 -0
  42. package/dist/components/badge/PriorityBadge.svelte +7 -0
  43. package/dist/components/badge/PriorityBadge.svelte.d.ts +4 -0
  44. package/dist/components/badge/README.md +16 -0
  45. package/dist/components/badge/StatusBadge.svelte +7 -0
  46. package/dist/components/badge/StatusBadge.svelte.d.ts +4 -0
  47. package/dist/components/badge/index.d.ts +3 -0
  48. package/dist/components/badge/index.js +2 -0
  49. package/dist/components/badge/types.d.ts +15 -0
  50. package/dist/components/badge/types.js +1 -0
  51. package/dist/components/button/Button.svelte +92 -0
  52. package/dist/components/button/Button.svelte.d.ts +4 -0
  53. package/dist/components/button/CancelButton.svelte +8 -0
  54. package/dist/components/button/CancelButton.svelte.d.ts +5 -0
  55. package/dist/components/button/CloseButton.svelte +8 -0
  56. package/dist/components/button/CloseButton.svelte.d.ts +5 -0
  57. package/dist/components/button/ConfirmButton.svelte +8 -0
  58. package/dist/components/button/ConfirmButton.svelte.d.ts +5 -0
  59. package/dist/components/button/CopyButton.svelte +8 -0
  60. package/dist/components/button/CopyButton.svelte.d.ts +5 -0
  61. package/dist/components/button/CreateButton.svelte +7 -0
  62. package/dist/components/button/CreateButton.svelte.d.ts +5 -0
  63. package/dist/components/button/DestructiveButton.svelte +8 -0
  64. package/dist/components/button/DestructiveButton.svelte.d.ts +5 -0
  65. package/dist/components/button/DownloadButton.svelte +8 -0
  66. package/dist/components/button/DownloadButton.svelte.d.ts +5 -0
  67. package/dist/components/button/DropdownButton.svelte +8 -0
  68. package/dist/components/button/DropdownButton.svelte.d.ts +5 -0
  69. package/dist/components/button/EditButton.svelte +8 -0
  70. package/dist/components/button/EditButton.svelte.d.ts +5 -0
  71. package/dist/components/button/FilterButton.svelte +8 -0
  72. package/dist/components/button/FilterButton.svelte.d.ts +5 -0
  73. package/dist/components/button/LinkButton.svelte +8 -0
  74. package/dist/components/button/LinkButton.svelte.d.ts +5 -0
  75. package/dist/components/button/PrimaryButton.svelte +7 -0
  76. package/dist/components/button/PrimaryButton.svelte.d.ts +5 -0
  77. package/dist/components/button/README.md +21 -0
  78. package/dist/components/button/RefreshButton.svelte +8 -0
  79. package/dist/components/button/RefreshButton.svelte.d.ts +5 -0
  80. package/dist/components/button/SaveButton.svelte +8 -0
  81. package/dist/components/button/SaveButton.svelte.d.ts +5 -0
  82. package/dist/components/button/SearchButton.svelte +8 -0
  83. package/dist/components/button/SearchButton.svelte.d.ts +5 -0
  84. package/dist/components/button/SecondaryButton.svelte +7 -0
  85. package/dist/components/button/SecondaryButton.svelte.d.ts +5 -0
  86. package/dist/components/button/SortButton.svelte +8 -0
  87. package/dist/components/button/SortButton.svelte.d.ts +5 -0
  88. package/dist/components/button/SubmitButton.svelte +7 -0
  89. package/dist/components/button/SubmitButton.svelte.d.ts +5 -0
  90. package/dist/components/button/SuccessButton.svelte +7 -0
  91. package/dist/components/button/SuccessButton.svelte.d.ts +5 -0
  92. package/dist/components/button/TextButton.svelte +7 -0
  93. package/dist/components/button/TextButton.svelte.d.ts +5 -0
  94. package/dist/components/button/UploadButton.svelte +8 -0
  95. package/dist/components/button/UploadButton.svelte.d.ts +5 -0
  96. package/dist/components/button/VerifyButton.svelte +8 -0
  97. package/dist/components/button/VerifyButton.svelte.d.ts +5 -0
  98. package/dist/components/button/index.d.ts +2 -0
  99. package/dist/components/button/index.js +1 -0
  100. package/dist/components/button/types.d.ts +8 -0
  101. package/dist/components/button/types.js +1 -0
  102. package/dist/components/card/Card.svelte +33 -0
  103. package/dist/components/card/Card.svelte.d.ts +4 -0
  104. package/dist/components/card/ProductCard.svelte +6 -0
  105. package/dist/components/card/ProductCard.svelte.d.ts +4 -0
  106. package/dist/components/card/ProfileCard.svelte +6 -0
  107. package/dist/components/card/ProfileCard.svelte.d.ts +4 -0
  108. package/dist/components/card/README.md +15 -0
  109. package/dist/components/card/StatCard.svelte +6 -0
  110. package/dist/components/card/StatCard.svelte.d.ts +4 -0
  111. package/dist/components/card/index.d.ts +2 -0
  112. package/dist/components/card/index.js +1 -0
  113. package/dist/components/card/types.d.ts +10 -0
  114. package/dist/components/card/types.js +1 -0
  115. package/dist/components/checkbox/Checkbox.svelte +54 -0
  116. package/dist/components/checkbox/Checkbox.svelte.d.ts +4 -0
  117. package/dist/components/checkbox/CheckboxField.svelte +74 -0
  118. package/dist/components/checkbox/CheckboxField.svelte.d.ts +4 -0
  119. package/dist/components/checkbox/CheckboxGroupField.svelte +50 -0
  120. package/dist/components/checkbox/CheckboxGroupField.svelte.d.ts +4 -0
  121. package/dist/components/checkbox/README.md +17 -0
  122. package/dist/components/checkbox/index.d.ts +3 -0
  123. package/dist/components/checkbox/index.js +2 -0
  124. package/dist/components/checkbox/types.d.ts +30 -0
  125. package/dist/components/checkbox/types.js +1 -0
  126. package/dist/components/date-picker/DatePicker.svelte +108 -0
  127. package/dist/components/date-picker/DatePicker.svelte.d.ts +4 -0
  128. package/dist/components/date-picker/README.md +17 -0
  129. package/dist/components/date-picker/index.d.ts +2 -0
  130. package/dist/components/date-picker/index.js +1 -0
  131. package/dist/components/date-picker/types.d.ts +13 -0
  132. package/dist/components/date-picker/types.js +1 -0
  133. package/dist/components/dialog/ConfirmDialog.svelte +28 -0
  134. package/dist/components/dialog/ConfirmDialog.svelte.d.ts +4 -0
  135. package/dist/components/dialog/DestructiveDialog.svelte +28 -0
  136. package/dist/components/dialog/DestructiveDialog.svelte.d.ts +4 -0
  137. package/dist/components/dialog/Dialog.svelte +114 -0
  138. package/dist/components/dialog/Dialog.svelte.d.ts +4 -0
  139. package/dist/components/dialog/DialogModal.svelte +120 -0
  140. package/dist/components/dialog/DialogModal.svelte.d.ts +4 -0
  141. package/dist/components/dialog/InfoDialog.svelte +24 -0
  142. package/dist/components/dialog/InfoDialog.svelte.d.ts +4 -0
  143. package/dist/components/dialog/README.md +23 -0
  144. package/dist/components/dialog/index.d.ts +6 -0
  145. package/dist/components/dialog/index.js +5 -0
  146. package/dist/components/dialog/types.d.ts +42 -0
  147. package/dist/components/dialog/types.js +1 -0
  148. package/dist/components/divider/Divider.svelte +25 -0
  149. package/dist/components/divider/Divider.svelte.d.ts +4 -0
  150. package/dist/components/divider/README.md +15 -0
  151. package/dist/components/divider/index.d.ts +2 -0
  152. package/dist/components/divider/index.js +1 -0
  153. package/dist/components/divider/types.d.ts +5 -0
  154. package/dist/components/divider/types.js +1 -0
  155. package/dist/components/heading/H1.svelte +23 -0
  156. package/dist/components/heading/H1.svelte.d.ts +4 -0
  157. package/dist/components/heading/H2.svelte +23 -0
  158. package/dist/components/heading/H2.svelte.d.ts +4 -0
  159. package/dist/components/heading/H3.svelte +23 -0
  160. package/dist/components/heading/H3.svelte.d.ts +4 -0
  161. package/dist/components/heading/README.md +13 -0
  162. package/dist/components/heading/index.d.ts +4 -0
  163. package/dist/components/heading/index.js +3 -0
  164. package/dist/components/heading/types.d.ts +26 -0
  165. package/dist/components/heading/types.js +1 -0
  166. package/dist/components/icon/Icon.svelte +65 -0
  167. package/dist/components/icon/Icon.svelte.d.ts +4 -0
  168. package/dist/components/icon/README.md +18 -0
  169. package/dist/components/icon/index.d.ts +2 -0
  170. package/dist/components/icon/index.js +1 -0
  171. package/dist/components/icon/types.d.ts +12 -0
  172. package/dist/components/icon/types.js +1 -0
  173. package/dist/components/input/CurrencyField.svelte +12 -0
  174. package/dist/components/input/CurrencyField.svelte.d.ts +7 -0
  175. package/dist/components/input/DateOfBirthField.svelte +21 -0
  176. package/dist/components/input/DateOfBirthField.svelte.d.ts +14 -0
  177. package/dist/components/input/DropdownField.svelte +29 -0
  178. package/dist/components/input/DropdownField.svelte.d.ts +14 -0
  179. package/dist/components/input/EmailField.svelte +9 -0
  180. package/dist/components/input/EmailField.svelte.d.ts +7 -0
  181. package/dist/components/input/Input.svelte +49 -0
  182. package/dist/components/input/Input.svelte.d.ts +4 -0
  183. package/dist/components/input/InputField.svelte +139 -0
  184. package/dist/components/input/InputField.svelte.d.ts +4 -0
  185. package/dist/components/input/InputOtp.svelte +140 -0
  186. package/dist/components/input/InputOtp.svelte.d.ts +4 -0
  187. package/dist/components/input/PasswordField.svelte +9 -0
  188. package/dist/components/input/PasswordField.svelte.d.ts +7 -0
  189. package/dist/components/input/PhoneField.svelte +9 -0
  190. package/dist/components/input/PhoneField.svelte.d.ts +7 -0
  191. package/dist/components/input/README.md +24 -0
  192. package/dist/components/input/RichText.svelte +177 -0
  193. package/dist/components/input/RichText.svelte.d.ts +4 -0
  194. package/dist/components/input/RichTextField.svelte +84 -0
  195. package/dist/components/input/RichTextField.svelte.d.ts +4 -0
  196. package/dist/components/input/SearchField.svelte +9 -0
  197. package/dist/components/input/SearchField.svelte.d.ts +7 -0
  198. package/dist/components/input/Select.svelte +88 -0
  199. package/dist/components/input/Select.svelte.d.ts +4 -0
  200. package/dist/components/input/SelectField.svelte +395 -0
  201. package/dist/components/input/SelectField.svelte.d.ts +4 -0
  202. package/dist/components/input/Textarea.svelte +50 -0
  203. package/dist/components/input/Textarea.svelte.d.ts +4 -0
  204. package/dist/components/input/TextareaField.svelte +57 -0
  205. package/dist/components/input/TextareaField.svelte.d.ts +4 -0
  206. package/dist/components/input/URLField.svelte +9 -0
  207. package/dist/components/input/URLField.svelte.d.ts +7 -0
  208. package/dist/components/input/ZipCodeField.svelte +21 -0
  209. package/dist/components/input/ZipCodeField.svelte.d.ts +14 -0
  210. package/dist/components/input/index.d.ts +7 -0
  211. package/dist/components/input/index.js +6 -0
  212. package/dist/components/input/types.d.ts +104 -0
  213. package/dist/components/input/types.js +1 -0
  214. package/dist/components/paragraph/Paragraph.svelte +23 -0
  215. package/dist/components/paragraph/Paragraph.svelte.d.ts +4 -0
  216. package/dist/components/paragraph/README.md +13 -0
  217. package/dist/components/paragraph/index.d.ts +2 -0
  218. package/dist/components/paragraph/index.js +1 -0
  219. package/dist/components/paragraph/types.d.ts +9 -0
  220. package/dist/components/paragraph/types.js +1 -0
  221. package/dist/components/radio/OptionRadioGroup.svelte +52 -0
  222. package/dist/components/radio/OptionRadioGroup.svelte.d.ts +21 -0
  223. package/dist/components/radio/README.md +16 -0
  224. package/dist/components/radio/Radio.svelte +38 -0
  225. package/dist/components/radio/Radio.svelte.d.ts +4 -0
  226. package/dist/components/radio/RadioGroupField.svelte +75 -0
  227. package/dist/components/radio/RadioGroupField.svelte.d.ts +4 -0
  228. package/dist/components/radio/RatingRadioGroup.svelte +51 -0
  229. package/dist/components/radio/RatingRadioGroup.svelte.d.ts +17 -0
  230. package/dist/components/radio/YesNoRadioGroup.svelte +48 -0
  231. package/dist/components/radio/YesNoRadioGroup.svelte.d.ts +16 -0
  232. package/dist/components/radio/index.d.ts +3 -0
  233. package/dist/components/radio/index.js +2 -0
  234. package/dist/components/radio/types.d.ts +22 -0
  235. package/dist/components/radio/types.js +1 -0
  236. package/dist/components/skeleton/README.md +16 -0
  237. package/dist/components/skeleton/Skeleton.svelte +29 -0
  238. package/dist/components/skeleton/Skeleton.svelte.d.ts +4 -0
  239. package/dist/components/skeleton/index.d.ts +2 -0
  240. package/dist/components/skeleton/index.js +1 -0
  241. package/dist/components/skeleton/types.d.ts +6 -0
  242. package/dist/components/skeleton/types.js +1 -0
  243. package/dist/components/slider/BrightnessSlider.svelte +31 -0
  244. package/dist/components/slider/BrightnessSlider.svelte.d.ts +11 -0
  245. package/dist/components/slider/README.md +20 -0
  246. package/dist/components/slider/RadiusSlider.svelte +31 -0
  247. package/dist/components/slider/RadiusSlider.svelte.d.ts +11 -0
  248. package/dist/components/slider/Slider.svelte +67 -0
  249. package/dist/components/slider/Slider.svelte.d.ts +4 -0
  250. package/dist/components/slider/SliderField.svelte +115 -0
  251. package/dist/components/slider/SliderField.svelte.d.ts +4 -0
  252. package/dist/components/slider/VolumeSlider.svelte +31 -0
  253. package/dist/components/slider/VolumeSlider.svelte.d.ts +11 -0
  254. package/dist/components/slider/index.d.ts +2 -0
  255. package/dist/components/slider/index.js +1 -0
  256. package/dist/components/slider/types.d.ts +28 -0
  257. package/dist/components/slider/types.js +1 -0
  258. package/dist/components/spacing/README.md +15 -0
  259. package/dist/components/spacing/Spacer.svelte +8 -0
  260. package/dist/components/spacing/Spacer.svelte.d.ts +3 -0
  261. package/dist/components/spacing/Spacing.svelte +23 -0
  262. package/dist/components/spacing/Spacing.svelte.d.ts +4 -0
  263. package/dist/components/spacing/index.d.ts +3 -0
  264. package/dist/components/spacing/index.js +2 -0
  265. package/dist/components/spacing/types.d.ts +7 -0
  266. package/dist/components/spacing/types.js +1 -0
  267. package/dist/components/spinner/ButtonSpinner.svelte +35 -0
  268. package/dist/components/spinner/ButtonSpinner.svelte.d.ts +4 -0
  269. package/dist/components/spinner/EmptyStateSpinner.svelte +20 -0
  270. package/dist/components/spinner/EmptyStateSpinner.svelte.d.ts +4 -0
  271. package/dist/components/spinner/README.md +19 -0
  272. package/dist/components/spinner/Spinner.svelte +60 -0
  273. package/dist/components/spinner/Spinner.svelte.d.ts +4 -0
  274. package/dist/components/spinner/index.d.ts +3 -0
  275. package/dist/components/spinner/index.js +2 -0
  276. package/dist/components/spinner/types.d.ts +9 -0
  277. package/dist/components/spinner/types.js +1 -0
  278. package/dist/components/stat-tile/README.md +15 -0
  279. package/dist/components/stat-tile/StatTile.svelte +44 -0
  280. package/dist/components/stat-tile/StatTile.svelte.d.ts +4 -0
  281. package/dist/components/stat-tile/index.d.ts +2 -0
  282. package/dist/components/stat-tile/index.js +1 -0
  283. package/dist/components/stat-tile/types.d.ts +14 -0
  284. package/dist/components/stat-tile/types.js +1 -0
  285. package/dist/components/switch/FeatureToggle.svelte +19 -0
  286. package/dist/components/switch/FeatureToggle.svelte.d.ts +13 -0
  287. package/dist/components/switch/PermissionSwitch.svelte +19 -0
  288. package/dist/components/switch/PermissionSwitch.svelte.d.ts +13 -0
  289. package/dist/components/switch/PreferenceSwitch.svelte +19 -0
  290. package/dist/components/switch/PreferenceSwitch.svelte.d.ts +13 -0
  291. package/dist/components/switch/README.md +17 -0
  292. package/dist/components/switch/Switch.svelte +52 -0
  293. package/dist/components/switch/Switch.svelte.d.ts +4 -0
  294. package/dist/components/switch/SwitchField.svelte +71 -0
  295. package/dist/components/switch/SwitchField.svelte.d.ts +4 -0
  296. package/dist/components/switch/index.d.ts +3 -0
  297. package/dist/components/switch/index.js +2 -0
  298. package/dist/components/switch/types.d.ts +20 -0
  299. package/dist/components/switch/types.js +1 -0
  300. package/dist/components/tab/ContentTabs.svelte +11 -0
  301. package/dist/components/tab/ContentTabs.svelte.d.ts +3 -0
  302. package/dist/components/tab/NavigationTabs.svelte +11 -0
  303. package/dist/components/tab/NavigationTabs.svelte.d.ts +3 -0
  304. package/dist/components/tab/README.md +26 -0
  305. package/dist/components/tab/SettingsTabs.svelte +11 -0
  306. package/dist/components/tab/SettingsTabs.svelte.d.ts +3 -0
  307. package/dist/components/tab/Tab.svelte +32 -0
  308. package/dist/components/tab/Tab.svelte.d.ts +4 -0
  309. package/dist/components/tab/TabGroup.svelte +132 -0
  310. package/dist/components/tab/TabGroup.svelte.d.ts +4 -0
  311. package/dist/components/tab/TabPanel.svelte +25 -0
  312. package/dist/components/tab/TabPanel.svelte.d.ts +4 -0
  313. package/dist/components/tab/index.d.ts +7 -0
  314. package/dist/components/tab/index.js +6 -0
  315. package/dist/components/tab/types.d.ts +36 -0
  316. package/dist/components/tab/types.js +1 -0
  317. package/dist/components/toast/ErrorToast.svelte +24 -0
  318. package/dist/components/toast/ErrorToast.svelte.d.ts +4 -0
  319. package/dist/components/toast/InfoToast.svelte +24 -0
  320. package/dist/components/toast/InfoToast.svelte.d.ts +4 -0
  321. package/dist/components/toast/README.md +35 -0
  322. package/dist/components/toast/SuccessToast.svelte +25 -0
  323. package/dist/components/toast/SuccessToast.svelte.d.ts +4 -0
  324. package/dist/components/toast/Toast.svelte +53 -0
  325. package/dist/components/toast/Toast.svelte.d.ts +4 -0
  326. package/dist/components/toast/ToastContainer.svelte +212 -0
  327. package/dist/components/toast/ToastContainer.svelte.d.ts +4 -0
  328. package/dist/components/toast/ToastProvider.svelte +71 -0
  329. package/dist/components/toast/ToastProvider.svelte.d.ts +7 -0
  330. package/dist/components/toast/WarningToast.svelte +24 -0
  331. package/dist/components/toast/WarningToast.svelte.d.ts +4 -0
  332. package/dist/components/toast/index.d.ts +9 -0
  333. package/dist/components/toast/index.js +8 -0
  334. package/dist/components/toast/types.d.ts +48 -0
  335. package/dist/components/toast/types.js +1 -0
  336. package/dist/components/tooltip/README.md +22 -0
  337. package/dist/components/tooltip/Tooltip.svelte +29 -0
  338. package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
  339. package/dist/components/tooltip/TooltipGroup.svelte +100 -0
  340. package/dist/components/tooltip/TooltipGroup.svelte.d.ts +4 -0
  341. package/dist/components/tooltip/index.d.ts +3 -0
  342. package/dist/components/tooltip/index.js +2 -0
  343. package/dist/components/tooltip/types.d.ts +22 -0
  344. package/dist/components/tooltip/types.js +1 -0
  345. package/dist/index.d.ts +149 -0
  346. package/dist/index.js +149 -0
  347. package/dist/internal/attrs.d.ts +2 -0
  348. package/dist/internal/attrs.js +5 -0
  349. package/dist/internal/css-vars.d.ts +5 -0
  350. package/dist/internal/css-vars.js +20 -0
  351. package/dist/internal/merge-class.d.ts +1 -0
  352. package/dist/internal/merge-class.js +4 -0
  353. package/dist/internal/svg-attrs.d.ts +9 -0
  354. package/dist/internal/svg-attrs.js +16 -0
  355. package/dist/provider/MarwesProvider.svelte +186 -0
  356. package/dist/provider/MarwesProvider.svelte.d.ts +4 -0
  357. package/dist/provider/context.d.ts +3 -0
  358. package/dist/provider/context.js +12 -0
  359. package/dist/provider/runtime-theme.d.ts +5 -0
  360. package/dist/provider/runtime-theme.js +63 -0
  361. package/dist/provider/theme-mode-runtime.d.ts +15 -0
  362. package/dist/provider/theme-mode-runtime.js +84 -0
  363. package/dist/provider/types.d.ts +32 -0
  364. package/dist/provider/types.js +1 -0
  365. package/dist/provider/use-theme-mode.d.ts +24 -0
  366. package/dist/provider/use-theme-mode.js +38 -0
  367. package/dist/provider/use-theme.d.ts +15 -0
  368. package/dist/provider/use-theme.js +19 -0
  369. package/dist/ssr.d.ts +2 -0
  370. package/dist/ssr.js +1 -0
  371. package/package.json +59 -0
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { createCardRecipe } from "@marwes-ui/core";
3
+ import { mergeClass } from "../../internal/merge-class.js";
4
+ import type { CardProps } from "./types.js";
5
+
6
+ let {
7
+ title,
8
+ children,
9
+ class: className,
10
+ id,
11
+ dataAttributes,
12
+ }: CardProps = $props();
13
+
14
+ const kit = $derived(createCardRecipe(dataAttributes ? { dataAttributes } : {}));
15
+ const mergedClass = $derived(mergeClass(kit.className, className));
16
+ </script>
17
+
18
+ <div {id} class={mergedClass} {...kit.dataAttributes}>
19
+ {#if title}
20
+ <div class="mw-card__header">
21
+ <span class="mw-card__title">
22
+ {#if typeof title === "string"}
23
+ {title}
24
+ {:else}
25
+ {@render title()}
26
+ {/if}
27
+ </span>
28
+ </div>
29
+ {/if}
30
+ <div class="mw-card__body">
31
+ {@render children?.()}
32
+ </div>
33
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { CardProps } from "./types.js";
2
+ declare const Card: import("svelte").Component<CardProps, {}, "">;
3
+ type Card = ReturnType<typeof Card>;
4
+ export default Card;
@@ -0,0 +1,6 @@
1
+ <script lang="ts">
2
+ import Card from "./Card.svelte";
3
+ import type { CardProps } from "./types.js";
4
+ let { dataAttributes, ...props }: CardProps = $props();
5
+ </script>
6
+ <Card {...props} dataAttributes={{ ...dataAttributes, "data-purpose": "product-card" }} />
@@ -0,0 +1,4 @@
1
+ import type { CardProps } from "./types.js";
2
+ declare const ProductCard: import("svelte").Component<CardProps, {}, "">;
3
+ type ProductCard = ReturnType<typeof ProductCard>;
4
+ export default ProductCard;
@@ -0,0 +1,6 @@
1
+ <script lang="ts">
2
+ import Card from "./Card.svelte";
3
+ import type { CardProps } from "./types.js";
4
+ let { dataAttributes, ...props }: CardProps = $props();
5
+ </script>
6
+ <Card {...props} dataAttributes={{ ...dataAttributes, "data-purpose": "profile-card" }} />
@@ -0,0 +1,4 @@
1
+ import type { CardProps } from "./types.js";
2
+ declare const ProfileCard: import("svelte").Component<CardProps, {}, "">;
3
+ type ProfileCard = ReturnType<typeof ProfileCard>;
4
+ export default ProfileCard;
@@ -0,0 +1,15 @@
1
+ # Card — Parity Findings
2
+
3
+ ## Svelte vs React/Vue
4
+
5
+ ### Aligned ✅
6
+ - `Card` atom with `createCardRecipe`
7
+ - Title (string or snippet) + body content
8
+ - Correct DOM structure: mw-card > mw-card__header > mw-card__title + mw-card__body
9
+ - Class merging, id, data attributes
10
+
11
+ ### Missing ❌
12
+ - **Purpose variant wrappers** (3): `ProductCard`, `ProfileCard`, `StatCard`
13
+
14
+ ### Notes
15
+ - Purpose card variants add pre-configured slot structures and data-purpose attributes. Medium complexity — each needs custom slot/snippet layout.
@@ -0,0 +1,6 @@
1
+ <script lang="ts">
2
+ import Card from "./Card.svelte";
3
+ import type { CardProps } from "./types.js";
4
+ let { dataAttributes, ...props }: CardProps = $props();
5
+ </script>
6
+ <Card {...props} dataAttributes={{ ...dataAttributes, "data-purpose": "stat-card" }} />
@@ -0,0 +1,4 @@
1
+ import type { CardProps } from "./types.js";
2
+ declare const StatCard: import("svelte").Component<CardProps, {}, "">;
3
+ type StatCard = ReturnType<typeof StatCard>;
4
+ export default StatCard;
@@ -0,0 +1,2 @@
1
+ export { default as Card } from "./Card.svelte";
2
+ export type { CardProps } from "./types.js";
@@ -0,0 +1 @@
1
+ export { default as Card } from "./Card.svelte";
@@ -0,0 +1,10 @@
1
+ import type { CardOptions } from "@marwes-ui/core";
2
+ import type { Snippet } from "svelte";
3
+ export interface CardProps extends CardOptions {
4
+ /** Optional title rendered above the body content */
5
+ title?: Snippet | string;
6
+ /** Card body content */
7
+ children?: Snippet;
8
+ class?: string;
9
+ id?: string;
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ <script lang="ts">
2
+ import { checkboxRecipe } from "@marwes-ui/core";
3
+ import { mergeClass } from "../../internal/merge-class.js";
4
+ import type { CheckboxProps } from "./types.js";
5
+
6
+ let {
7
+ checked = $bindable(),
8
+ onchange,
9
+ oncheckedchange,
10
+ class: className,
11
+ ariaDescribedBy,
12
+ ...coreProps
13
+ }: CheckboxProps = $props();
14
+
15
+ const kit = $derived(checkboxRecipe({
16
+ ...coreProps,
17
+ ...(checked !== undefined ? { checked } : {}),
18
+ ...(ariaDescribedBy ? { ariaDescribedBy } : {}),
19
+ }));
20
+ const mergedClass = $derived(mergeClass(kit.className, className));
21
+
22
+ let inputElement: HTMLInputElement | undefined = $state(undefined);
23
+
24
+ $effect(() => {
25
+ if (inputElement) {
26
+ inputElement.indeterminate = kit.indeterminate;
27
+ }
28
+ });
29
+
30
+ function handleChange(e: Event & { currentTarget: HTMLInputElement }): void {
31
+ checked = e.currentTarget.checked;
32
+ onchange?.(e);
33
+ oncheckedchange?.(e.currentTarget.checked);
34
+ }
35
+ </script>
36
+
37
+ <input
38
+ bind:this={inputElement}
39
+ type="checkbox"
40
+ class={mergedClass}
41
+ id={kit.a11y.id}
42
+ name={kit.a11y.name}
43
+ value={kit.a11y.value}
44
+ disabled={kit.a11y.disabled === true}
45
+ required={kit.a11y.required === true}
46
+ aria-label={kit.a11y.ariaLabel}
47
+ aria-labelledby={kit.a11y.ariaLabelledBy}
48
+ aria-describedby={kit.a11y.ariaDescribedBy}
49
+ aria-checked={kit.a11y.ariaChecked}
50
+ aria-invalid={kit.a11y.ariaInvalid === true ? true : undefined}
51
+ checked={kit.checked}
52
+ defaultChecked={kit.defaultChecked}
53
+ onchange={handleChange}
54
+ />
@@ -0,0 +1,4 @@
1
+ import type { CheckboxProps } from "./types.js";
2
+ declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "checked">;
3
+ type Checkbox = ReturnType<typeof Checkbox>;
4
+ export default Checkbox;
@@ -0,0 +1,74 @@
1
+ <script lang="ts">
2
+ import { buildCheckboxFieldA11yIds } from "@marwes-ui/core";
3
+ import { mergeClass } from "../../internal/merge-class.js";
4
+ import Checkbox from "./Checkbox.svelte";
5
+ import type { CheckboxFieldProps, CheckboxProps } from "./types.js";
6
+
7
+ let {
8
+ id: userProvidedId,
9
+ label,
10
+ description,
11
+ error,
12
+ checkbox = {},
13
+ ariaDescribedBy,
14
+ checked = $bindable(false),
15
+ class: className,
16
+ }: CheckboxFieldProps = $props();
17
+
18
+ const uniqueId = $props.id();
19
+ const fieldId = $derived(userProvidedId ?? `mw-checkbox-${uniqueId}`);
20
+
21
+ function hasTextContent(text: string | undefined): boolean {
22
+ return text !== undefined && text.trim().length > 0;
23
+ }
24
+
25
+ const hasDescription = $derived(hasTextContent(description));
26
+ const hasError = $derived(hasTextContent(error));
27
+ const invalid = $derived(hasError || checkbox.invalid || false);
28
+ const disabled = $derived(checkbox.disabled || false);
29
+
30
+ const a11yIds = $derived(
31
+ buildCheckboxFieldA11yIds({
32
+ id: fieldId,
33
+ hasDescription,
34
+ hasError,
35
+ externalDescribedBy: ariaDescribedBy,
36
+ })
37
+ );
38
+
39
+ const wrapperClass = $derived(
40
+ mergeClass(
41
+ "mw-checkbox-field",
42
+ disabled && "mw-checkbox-field--disabled",
43
+ invalid && "mw-checkbox-field--invalid",
44
+ className
45
+ )
46
+ );
47
+ </script>
48
+
49
+ <div class={wrapperClass}>
50
+ <div class="mw-checkbox-field__row">
51
+ <Checkbox
52
+ {...checkbox}
53
+ id={fieldId}
54
+ {invalid}
55
+ ariaDescribedBy={a11yIds.describedBy ?? undefined}
56
+ bind:checked
57
+ />
58
+ <label class="mw-checkbox-field__label" for={fieldId}>
59
+ <p class="mw-p mw-p--md">{label}</p>
60
+ </label>
61
+ </div>
62
+
63
+ {#if hasDescription}
64
+ <div class="mw-checkbox-field__description" id={a11yIds.descriptionId}>
65
+ <p class="mw-p mw-p--sm">{description}</p>
66
+ </div>
67
+ {/if}
68
+
69
+ {#if hasError}
70
+ <div class="mw-checkbox-field__error" id={a11yIds.errorId} aria-live="polite">
71
+ <p class="mw-p mw-p--sm">{error}</p>
72
+ </div>
73
+ {/if}
74
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { CheckboxFieldProps } from "./types.js";
2
+ declare const CheckboxField: import("svelte").Component<CheckboxFieldProps, {}, "checked">;
3
+ type CheckboxField = ReturnType<typeof CheckboxField>;
4
+ export default CheckboxField;
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import { buildCheckboxGroupFieldA11yIds } from "@marwes-ui/core";
3
+ import { mergeClass } from "../../internal/merge-class.js";
4
+ import type { CheckboxGroupFieldProps } from "./types.js";
5
+
6
+ let {
7
+ id: userProvidedId,
8
+ label,
9
+ description,
10
+ error,
11
+ ariaDescribedBy,
12
+ children,
13
+ class: className,
14
+ }: CheckboxGroupFieldProps = $props();
15
+
16
+ const uniqueId = $props.id();
17
+ const fieldId = $derived(userProvidedId ?? `mw-checkbox-group-${uniqueId}`);
18
+
19
+ function hasTextContent(text: string | undefined): boolean {
20
+ return text !== undefined && text.trim().length > 0;
21
+ }
22
+
23
+ const hasDescription = $derived(hasTextContent(description));
24
+ const hasError = $derived(hasTextContent(error));
25
+
26
+ const a11yIds = $derived(
27
+ buildCheckboxGroupFieldA11yIds({ id: fieldId, hasDescription, hasError, externalDescribedBy: ariaDescribedBy })
28
+ );
29
+
30
+ const wrapperClass = $derived(mergeClass("mw-checkbox-group-field", className));
31
+ </script>
32
+
33
+ <fieldset class={wrapperClass} aria-labelledby={a11yIds.labelId} aria-describedby={a11yIds.describedBy} aria-invalid={hasError ? true : undefined}>
34
+ <legend class="mw-checkbox-group-field__label" id={a11yIds.labelId}>
35
+ <p class="mw-p mw-p--md">{label}</p>
36
+ </legend>
37
+ <div class="mw-checkbox-group-field__options">
38
+ {@render children?.()}
39
+ </div>
40
+ {#if hasDescription && !hasError}
41
+ <div class="mw-checkbox-group-field__description" id={a11yIds.descriptionId}>
42
+ <p class="mw-p mw-p--sm">{description}</p>
43
+ </div>
44
+ {/if}
45
+ {#if hasError}
46
+ <div class="mw-checkbox-group-field__error" id={a11yIds.errorId} aria-live="polite">
47
+ <p class="mw-p mw-p--sm">{error}</p>
48
+ </div>
49
+ {/if}
50
+ </fieldset>
@@ -0,0 +1,4 @@
1
+ import type { CheckboxGroupFieldProps } from "./types.js";
2
+ declare const CheckboxGroupField: import("svelte").Component<CheckboxGroupFieldProps, {}, "">;
3
+ type CheckboxGroupField = ReturnType<typeof CheckboxGroupField>;
4
+ export default CheckboxGroupField;
@@ -0,0 +1,17 @@
1
+ # Checkbox — Parity Findings
2
+
3
+ ## Svelte vs React/Vue
4
+
5
+ ### Aligned ✅
6
+ - `Checkbox` atom with `checkboxRecipe`
7
+ - `bind:checked` support
8
+ - `indeterminate` DOM property applied via `$effect`
9
+ - `oncheckedchange` callback
10
+ - All a11y: aria-label, aria-labelledby, aria-describedby, aria-checked="mixed", aria-invalid
11
+ - `CheckboxField` molecule with label, description, error, `buildCheckboxFieldA11yIds`
12
+
13
+ ### Missing ❌
14
+ - **`CheckboxGroupField`** molecule (groups multiple checkboxes with shared label/error)
15
+
16
+ ### Notes
17
+ - `CheckboxGroupField` is a fieldset-based wrapper around multiple `CheckboxField` items. Same pattern as `RadioGroupField`. Medium complexity.
@@ -0,0 +1,3 @@
1
+ export { default as Checkbox } from "./Checkbox.svelte";
2
+ export { default as CheckboxField } from "./CheckboxField.svelte";
3
+ export type { CheckboxProps, CheckboxFieldProps, CheckboxGroupFieldProps } from "./types.js";
@@ -0,0 +1,2 @@
1
+ export { default as Checkbox } from "./Checkbox.svelte";
2
+ export { default as CheckboxField } from "./CheckboxField.svelte";
@@ -0,0 +1,30 @@
1
+ import type { CheckboxProps as CoreCheckboxProps } from "@marwes-ui/core";
2
+ import type { Snippet } from "svelte";
3
+ export interface CheckboxProps extends Omit<CoreCheckboxProps, "ariaDescribedBy"> {
4
+ checked?: boolean;
5
+ onchange?: (e: Event & {
6
+ currentTarget: HTMLInputElement;
7
+ }) => void;
8
+ oncheckedchange?: (checked: boolean) => void;
9
+ class?: string;
10
+ ariaDescribedBy?: string | undefined;
11
+ }
12
+ export interface CheckboxFieldProps {
13
+ id?: string;
14
+ label: string;
15
+ description?: string;
16
+ error?: string;
17
+ checkbox?: CheckboxProps;
18
+ ariaDescribedBy?: string;
19
+ checked?: boolean;
20
+ class?: string;
21
+ }
22
+ export interface CheckboxGroupFieldProps {
23
+ id?: string;
24
+ label: string;
25
+ description?: string;
26
+ error?: string;
27
+ ariaDescribedBy?: string;
28
+ children?: Snippet;
29
+ class?: string;
30
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,108 @@
1
+ <script lang="ts">
2
+ import { createDatePickerRecipe } from "@marwes-ui/core";
3
+ import type { DatePickerOptions } from "@marwes-ui/core";
4
+ import { mergeClass } from "../../internal/merge-class.js";
5
+ import type { DatePickerProps } from "./types.js";
6
+
7
+ let {
8
+ monthLabel,
9
+ weekdayLabels,
10
+ weeks,
11
+ device,
12
+ previousYearLabel,
13
+ previousMonthLabel,
14
+ nextMonthLabel,
15
+ nextYearLabel,
16
+ cancelLabel,
17
+ applyLabel,
18
+ calendarLabel,
19
+ dataAttributes,
20
+ onpreviousyear,
21
+ onpreviousmonth,
22
+ onnextmonth,
23
+ onnextyear,
24
+ ondayselect,
25
+ oncancel,
26
+ onapply,
27
+ class: className,
28
+ }: DatePickerProps = $props();
29
+
30
+ const recipeOptions = $derived.by((): DatePickerOptions => {
31
+ const opts: DatePickerOptions = {};
32
+ if (monthLabel !== undefined) opts.monthLabel = monthLabel;
33
+ if (weekdayLabels !== undefined) opts.weekdayLabels = weekdayLabels;
34
+ if (weeks !== undefined) opts.weeks = weeks;
35
+ if (device !== undefined) opts.device = device;
36
+ if (previousYearLabel !== undefined) opts.previousYearLabel = previousYearLabel;
37
+ if (previousMonthLabel !== undefined) opts.previousMonthLabel = previousMonthLabel;
38
+ if (nextMonthLabel !== undefined) opts.nextMonthLabel = nextMonthLabel;
39
+ if (nextYearLabel !== undefined) opts.nextYearLabel = nextYearLabel;
40
+ if (cancelLabel !== undefined) opts.cancelLabel = cancelLabel;
41
+ if (applyLabel !== undefined) opts.applyLabel = applyLabel;
42
+ if (calendarLabel !== undefined) opts.calendarLabel = calendarLabel;
43
+ if (dataAttributes !== undefined) opts.dataAttributes = dataAttributes;
44
+ return opts;
45
+ });
46
+
47
+ const kit = $derived(createDatePickerRecipe(recipeOptions));
48
+ const mergedClass = $derived(mergeClass(kit.className, className));
49
+ </script>
50
+
51
+ <section class={mergedClass} aria-label={kit.labels.calendar} {...kit.dataAttributes}>
52
+ <header class={kit.slots.headerClassName}>
53
+ <div class={kit.slots.navGroupClassName}>
54
+ <button type="button" class={kit.slots.navButtonClassName} aria-label={kit.labels.previousYear} onclick={onpreviousyear}>«</button>
55
+ <button type="button" class={kit.slots.navButtonClassName} aria-label={kit.labels.previousMonth} onclick={onpreviousmonth}>‹</button>
56
+ </div>
57
+ <div class={kit.slots.monthLabelClassName}>{kit.monthLabel}</div>
58
+ <div class={kit.slots.navGroupClassName}>
59
+ <button type="button" class={kit.slots.navButtonClassName} aria-label={kit.labels.nextMonth} onclick={onnextmonth}>›</button>
60
+ <button type="button" class={kit.slots.navButtonClassName} aria-label={kit.labels.nextYear} onclick={onnextyear}>»</button>
61
+ </div>
62
+ </header>
63
+
64
+ <table class={kit.slots.gridClassName} aria-label={kit.monthLabel}>
65
+ <thead>
66
+ <tr class="mw-date-picker__weekdays">
67
+ {#each kit.weekdayLabels as weekday (weekday)}
68
+ <th class={kit.slots.weekdayClassName} scope="col">{weekday}</th>
69
+ {/each}
70
+ </tr>
71
+ </thead>
72
+ <tbody>
73
+ {#each kit.weeks as week, weekIndex}
74
+ <tr class={kit.slots.weekClassName}>
75
+ {#each week as day, dayIndex}
76
+ {@const dayKit = kit.dayKits[weekIndex]?.[dayIndex]}
77
+ {#if dayKit}
78
+ <td class={kit.slots.cellClassName}>
79
+ <button
80
+ type="button"
81
+ class={dayKit.className}
82
+ aria-label={dayKit.ariaLabel}
83
+ aria-pressed={dayKit.selected ? "true" : undefined}
84
+ disabled={dayKit.disabled}
85
+ onclick={() => ondayselect?.(day)}
86
+ {...dayKit.dataAttributes}
87
+ >
88
+ {day.label}
89
+ </button>
90
+ </td>
91
+ {/if}
92
+ {/each}
93
+ </tr>
94
+ {/each}
95
+ </tbody>
96
+ </table>
97
+
98
+ <footer class={kit.slots.footerClassName}>
99
+ <button type="button" class={kit.slots.footerButtonClassName} onclick={oncancel}>
100
+ {kit.labels.cancel}
101
+ </button>
102
+ {#if kit.labels.apply}
103
+ <button type="button" class="{kit.slots.footerButtonClassName} mw-date-picker__footer-button--primary" onclick={onapply}>
104
+ {kit.labels.apply}
105
+ </button>
106
+ {/if}
107
+ </footer>
108
+ </section>
@@ -0,0 +1,4 @@
1
+ import type { DatePickerProps } from "./types.js";
2
+ declare const DatePicker: import("svelte").Component<DatePickerProps, {}, "">;
3
+ type DatePicker = ReturnType<typeof DatePicker>;
4
+ export default DatePicker;
@@ -0,0 +1,17 @@
1
+ # DatePicker — Parity Findings
2
+
3
+ ## Svelte vs React/Vue
4
+
5
+ ### Aligned ✅
6
+ - `DatePicker` atom with `createDatePickerRecipe`
7
+ - Month grid with weekday headers and day buttons
8
+ - Navigation controls: previous/next month/year
9
+ - Footer with cancel/apply buttons
10
+ - Day states: default, hover, selected, range, range-hover, disabled, null
11
+ - `aria-label`, `aria-pressed` on selected days, `disabled` on empty/disabled days
12
+ - Device variants: desktop, mobile
13
+ - All label props for customization
14
+
15
+ ### Notes
16
+ - Date parsing, formatting, popover state, and form orchestration are intentionally outside the component scope.
17
+ - The consumer provides `weeks`, `weekdayLabels`, and `monthLabel` data — the component is a pure rendering surface.
@@ -0,0 +1,2 @@
1
+ export { default as DatePicker } from "./DatePicker.svelte";
2
+ export type { DatePickerProps } from "./types.js";
@@ -0,0 +1 @@
1
+ export { default as DatePicker } from "./DatePicker.svelte";
@@ -0,0 +1,13 @@
1
+ import type { DatePickerDay, DatePickerOptions } from "@marwes-ui/core";
2
+ export interface DatePickerProps extends DatePickerOptions {
3
+ weeks?: DatePickerDay[][];
4
+ weekdayLabels?: string[];
5
+ onpreviousyear?: () => void;
6
+ onpreviousmonth?: () => void;
7
+ onnextmonth?: () => void;
8
+ onnextyear?: () => void;
9
+ ondayselect?: (day: DatePickerDay) => void;
10
+ oncancel?: () => void;
11
+ onapply?: () => void;
12
+ class?: string;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { createPurposeSemanticAttributes } from "@marwes-ui/core";
3
+ import CancelButton from "../button/CancelButton.svelte";
4
+ import ConfirmButton from "../button/ConfirmButton.svelte";
5
+ import DialogModal from "./DialogModal.svelte";
6
+ import type { ConfirmDialogProps } from "./types.js";
7
+
8
+ let {
9
+ confirmLabel = "Confirm",
10
+ cancelLabel = "Cancel",
11
+ onconfirm,
12
+ oncancel,
13
+ dataAttributes,
14
+ ...dialogProps
15
+ }: ConfirmDialogProps = $props();
16
+
17
+ const mergedDataAttrs = $derived({
18
+ ...dataAttributes,
19
+ ...createPurposeSemanticAttributes("confirm-dialog"),
20
+ });
21
+ </script>
22
+
23
+ <DialogModal {...dialogProps} dataAttributes={mergedDataAttrs}>
24
+ {#snippet footer({ close })}
25
+ <CancelButton onclick={() => { oncancel?.(); close(); }}>{cancelLabel}</CancelButton>
26
+ <ConfirmButton onclick={() => { onconfirm?.(); close(); }}>{confirmLabel}</ConfirmButton>
27
+ {/snippet}
28
+ </DialogModal>
@@ -0,0 +1,4 @@
1
+ import type { ConfirmDialogProps } from "./types.js";
2
+ declare const ConfirmDialog: import("svelte").Component<ConfirmDialogProps, {}, "">;
3
+ type ConfirmDialog = ReturnType<typeof ConfirmDialog>;
4
+ export default ConfirmDialog;
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { createPurposeSemanticAttributes } from "@marwes-ui/core";
3
+ import CancelButton from "../button/CancelButton.svelte";
4
+ import DestructiveButton from "../button/DestructiveButton.svelte";
5
+ import DialogModal from "./DialogModal.svelte";
6
+ import type { DestructiveDialogProps } from "./types.js";
7
+
8
+ let {
9
+ confirmLabel = "Delete",
10
+ cancelLabel = "Cancel",
11
+ onconfirm,
12
+ oncancel,
13
+ dataAttributes,
14
+ ...dialogProps
15
+ }: DestructiveDialogProps = $props();
16
+
17
+ const mergedDataAttrs = $derived({
18
+ ...dataAttributes,
19
+ ...createPurposeSemanticAttributes("destructive-dialog"),
20
+ });
21
+ </script>
22
+
23
+ <DialogModal {...dialogProps} dataAttributes={mergedDataAttrs}>
24
+ {#snippet footer({ close })}
25
+ <CancelButton onclick={() => { oncancel?.(); close(); }}>{cancelLabel}</CancelButton>
26
+ <DestructiveButton onclick={() => { onconfirm?.(); close(); }}>{confirmLabel}</DestructiveButton>
27
+ {/snippet}
28
+ </DialogModal>
@@ -0,0 +1,4 @@
1
+ import type { DestructiveDialogProps } from "./types.js";
2
+ declare const DestructiveDialog: import("svelte").Component<DestructiveDialogProps, {}, "">;
3
+ type DestructiveDialog = ReturnType<typeof DestructiveDialog>;
4
+ export default DestructiveDialog;