lithesome 0.18.0 → 0.19.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 (431) hide show
  1. package/README.md +45 -30
  2. package/dist/attachments/outside.d.ts +12 -0
  3. package/dist/attachments/outside.js +34 -0
  4. package/dist/attachments/portal.d.ts +7 -0
  5. package/dist/attachments/portal.js +27 -0
  6. package/dist/attachments/trap.d.ts +6 -0
  7. package/dist/attachments/trap.js +20 -0
  8. package/dist/components/accordion/Accordion.svelte +33 -0
  9. package/dist/components/accordion/Accordion.svelte.d.ts +9 -0
  10. package/dist/components/accordion/AccordionButton.svelte +20 -0
  11. package/dist/components/accordion/AccordionButton.svelte.d.ts +15 -0
  12. package/dist/components/accordion/AccordionContent.svelte +20 -0
  13. package/dist/components/accordion/AccordionContent.svelte.d.ts +10 -0
  14. package/dist/components/accordion/AccordionHeading.svelte +26 -0
  15. package/dist/components/accordion/AccordionHeading.svelte.d.ts +12 -0
  16. package/dist/components/accordion/AccordionItem.svelte +28 -0
  17. package/dist/components/accordion/AccordionItem.svelte.d.ts +13 -0
  18. package/dist/components/{Accordion → accordion}/index.d.ts +1 -2
  19. package/dist/components/accordion/state.svelte.d.ts +99 -0
  20. package/dist/components/accordion/state.svelte.js +156 -0
  21. package/dist/components/hovercard/Hovercard.svelte +33 -0
  22. package/dist/components/{Hovercard → hovercard}/Hovercard.svelte.d.ts +4 -2
  23. package/dist/components/hovercard/HovercardArrow.svelte +23 -0
  24. package/dist/components/hovercard/HovercardArrow.svelte.d.ts +7 -0
  25. package/dist/components/hovercard/HovercardContent.svelte +23 -0
  26. package/dist/components/hovercard/HovercardContent.svelte.d.ts +9 -0
  27. package/dist/components/hovercard/HovercardTrigger.svelte +23 -0
  28. package/dist/components/hovercard/HovercardTrigger.svelte.d.ts +8 -0
  29. package/dist/components/{Hovercard/index.d.ts → hovercard/index.js} +0 -1
  30. package/dist/components/hovercard/state.svelte.d.ts +74 -0
  31. package/dist/components/hovercard/state.svelte.js +149 -0
  32. package/dist/components/menu/Menu.svelte +35 -0
  33. package/dist/components/menu/Menu.svelte.d.ts +6 -0
  34. package/dist/components/menu/MenuArrow.svelte +17 -0
  35. package/dist/components/{Menu → menu}/MenuArrow.svelte.d.ts +5 -2
  36. package/dist/components/menu/MenuContent.svelte +23 -0
  37. package/dist/components/menu/MenuContent.svelte.d.ts +9 -0
  38. package/dist/components/menu/MenuItem.svelte +28 -0
  39. package/dist/components/menu/MenuItem.svelte.d.ts +13 -0
  40. package/dist/components/menu/MenuSub.svelte +37 -0
  41. package/dist/components/menu/MenuSub.svelte.d.ts +6 -0
  42. package/dist/components/menu/MenuSubContent.svelte +23 -0
  43. package/dist/components/menu/MenuSubContent.svelte.d.ts +9 -0
  44. package/dist/components/menu/MenuSubTrigger.svelte +23 -0
  45. package/dist/components/menu/MenuSubTrigger.svelte.d.ts +17 -0
  46. package/dist/components/menu/MenuTrigger.svelte +23 -0
  47. package/dist/components/menu/MenuTrigger.svelte.d.ts +10 -0
  48. package/dist/components/{Menu → menu}/index.d.ts +4 -2
  49. package/dist/components/{Menu → menu}/index.js +4 -1
  50. package/dist/components/menu/state.svelte.d.ts +161 -0
  51. package/dist/components/menu/state.svelte.js +387 -0
  52. package/dist/components/modal/Modal.svelte +32 -0
  53. package/dist/components/modal/Modal.svelte.d.ts +6 -0
  54. package/dist/components/modal/ModalBackdrop.svelte +24 -0
  55. package/dist/components/modal/ModalBackdrop.svelte.d.ts +10 -0
  56. package/dist/components/modal/ModalContent.svelte +24 -0
  57. package/dist/components/modal/ModalContent.svelte.d.ts +14 -0
  58. package/dist/components/modal/ModalDescription.svelte +24 -0
  59. package/dist/components/modal/ModalDescription.svelte.d.ts +7 -0
  60. package/dist/components/modal/ModalTitle.svelte +24 -0
  61. package/dist/components/{Modal → modal}/ModalTitle.svelte.d.ts +5 -2
  62. package/dist/components/modal/ModalTrigger.svelte +24 -0
  63. package/dist/components/modal/ModalTrigger.svelte.d.ts +12 -0
  64. package/dist/components/{Modal → modal}/index.d.ts +2 -2
  65. package/dist/components/{Modal → modal}/index.js +2 -1
  66. package/dist/components/modal/state.svelte.d.ts +96 -0
  67. package/dist/components/modal/state.svelte.js +184 -0
  68. package/dist/components/pin/Pin.svelte +44 -0
  69. package/dist/components/pin/Pin.svelte.d.ts +11 -0
  70. package/dist/components/pin/PinInput.svelte +17 -0
  71. package/dist/components/{Pin → pin}/PinInput.svelte.d.ts +5 -2
  72. package/dist/components/{Pin → pin}/index.d.ts +0 -2
  73. package/dist/components/{Pin → pin}/index.js +0 -1
  74. package/dist/components/pin/state.svelte.d.ts +50 -0
  75. package/dist/components/pin/state.svelte.js +166 -0
  76. package/dist/components/radiogroup/RadioGroup.svelte +35 -0
  77. package/dist/components/radiogroup/RadioGroup.svelte.d.ts +10 -0
  78. package/dist/components/radiogroup/RadioGroupItem.svelte +28 -0
  79. package/dist/components/radiogroup/RadioGroupItem.svelte.d.ts +17 -0
  80. package/dist/components/{RadioGroup/index.d.ts → radiogroup/index.js} +0 -1
  81. package/dist/components/radiogroup/state.svelte.d.ts +55 -0
  82. package/dist/components/radiogroup/state.svelte.js +103 -0
  83. package/dist/components/select/Select.svelte +47 -0
  84. package/dist/components/select/Select.svelte.d.ts +6 -0
  85. package/dist/components/select/SelectArrow.svelte +23 -0
  86. package/dist/components/{Select → select}/SelectArrow.svelte.d.ts +5 -2
  87. package/dist/components/select/SelectContent.svelte +23 -0
  88. package/dist/components/select/SelectContent.svelte.d.ts +9 -0
  89. package/dist/components/select/SelectOption.svelte +29 -0
  90. package/dist/components/select/SelectOption.svelte.d.ts +19 -0
  91. package/dist/components/select/SelectTrigger.svelte +23 -0
  92. package/dist/components/select/SelectTrigger.svelte.d.ts +14 -0
  93. package/dist/components/select/SelectValue.svelte +25 -0
  94. package/dist/components/select/SelectValue.svelte.d.ts +11 -0
  95. package/dist/components/{Select → select}/index.d.ts +0 -2
  96. package/dist/components/{Select → select}/index.js +0 -1
  97. package/dist/components/select/state.svelte.d.ts +194 -0
  98. package/dist/components/select/state.svelte.js +386 -0
  99. package/dist/components/slider/Slider.svelte +45 -0
  100. package/dist/components/slider/Slider.svelte.d.ts +7 -0
  101. package/dist/components/slider/SliderRange.svelte +17 -0
  102. package/dist/components/{Slider → slider}/SliderRange.svelte.d.ts +5 -2
  103. package/dist/components/slider/SliderThumb.svelte +17 -0
  104. package/dist/components/{Slider → slider}/SliderThumb.svelte.d.ts +5 -2
  105. package/dist/components/slider/SliderValue.svelte +17 -0
  106. package/dist/components/{Slider → slider}/SliderValue.svelte.d.ts +5 -2
  107. package/dist/components/{Slider/index.d.ts → slider/index.js} +0 -1
  108. package/dist/components/slider/state.svelte.d.ts +105 -0
  109. package/dist/components/slider/state.svelte.js +214 -0
  110. package/dist/components/tabs/Tabs.svelte +31 -0
  111. package/dist/components/tabs/Tabs.svelte.d.ts +11 -0
  112. package/dist/components/tabs/TabsButton.svelte +30 -0
  113. package/dist/components/tabs/TabsButton.svelte.d.ts +14 -0
  114. package/dist/components/tabs/TabsContent.svelte +25 -0
  115. package/dist/components/tabs/TabsContent.svelte.d.ts +14 -0
  116. package/dist/components/tabs/TabsList.svelte +23 -0
  117. package/dist/components/tabs/TabsList.svelte.d.ts +12 -0
  118. package/dist/components/{Tabs/index.d.ts → tabs/index.js} +0 -1
  119. package/dist/components/tabs/state.svelte.d.ts +91 -0
  120. package/dist/components/tabs/state.svelte.js +151 -0
  121. package/dist/components/tabs/types.d.ts +14 -0
  122. package/dist/components/tags/Tags.svelte +37 -0
  123. package/dist/components/tags/Tags.svelte.d.ts +11 -0
  124. package/dist/components/tags/TagsDelete.svelte +26 -0
  125. package/dist/components/tags/TagsDelete.svelte.d.ts +9 -0
  126. package/dist/components/tags/TagsInput.svelte +17 -0
  127. package/dist/components/{Tags → tags}/TagsInput.svelte.d.ts +4 -2
  128. package/dist/components/tags/TagsItem.svelte +26 -0
  129. package/dist/components/tags/TagsItem.svelte.d.ts +10 -0
  130. package/dist/components/tags/state.svelte.d.ts +77 -0
  131. package/dist/components/tags/state.svelte.js +199 -0
  132. package/dist/components/tooltip/Tooltip.svelte +38 -0
  133. package/dist/components/tooltip/Tooltip.svelte.d.ts +6 -0
  134. package/dist/components/tooltip/TooltipArrow.svelte +23 -0
  135. package/dist/components/{Tooltip → tooltip}/TooltipArrow.svelte.d.ts +5 -2
  136. package/dist/components/tooltip/TooltipContent.svelte +23 -0
  137. package/dist/components/tooltip/TooltipContent.svelte.d.ts +9 -0
  138. package/dist/components/tooltip/TooltipTrigger.svelte +23 -0
  139. package/dist/components/tooltip/TooltipTrigger.svelte.d.ts +8 -0
  140. package/dist/components/{Tooltip/index.d.ts → tooltip/index.js} +0 -1
  141. package/dist/components/tooltip/state.svelte.d.ts +74 -0
  142. package/dist/components/tooltip/state.svelte.js +135 -0
  143. package/dist/components/tooltip/types.d.ts +14 -0
  144. package/dist/index.d.ts +14 -23
  145. package/dist/index.js +14 -22
  146. package/dist/internals/attachment.d.ts +4 -0
  147. package/dist/internals/attachment.js +6 -0
  148. package/dist/internals/components/Element.svelte +77 -0
  149. package/dist/internals/components/Element.svelte.d.ts +16 -0
  150. package/dist/{internal/helpers → internals}/context.svelte.d.ts +9 -10
  151. package/dist/{internal/helpers → internals}/context.svelte.js +38 -31
  152. package/dist/internals/element.d.ts +24 -0
  153. package/dist/internals/element.js +40 -0
  154. package/dist/internals/floating.svelte.d.ts +3 -0
  155. package/dist/internals/floating.svelte.js +66 -0
  156. package/dist/internals/index.d.ts +11 -0
  157. package/dist/internals/index.js +10 -0
  158. package/dist/internals/is.d.ts +14 -0
  159. package/dist/internals/is.js +14 -0
  160. package/dist/{internal/helpers → internals}/keyboard.d.ts +2 -0
  161. package/dist/{internal/helpers → internals}/keyboard.js +2 -0
  162. package/dist/internals/log.d.ts +3 -0
  163. package/dist/{internal/helpers → internals}/log.js +1 -1
  164. package/dist/internals/state.svelte.d.ts +7 -0
  165. package/dist/internals/state.svelte.js +8 -0
  166. package/dist/internals/types.d.ts +88 -0
  167. package/dist/{internal/helpers → internals}/utils.svelte.d.ts +38 -26
  168. package/dist/{internal/helpers → internals}/utils.svelte.js +93 -72
  169. package/dist/types/components/accordion.d.ts +16 -0
  170. package/dist/types/components/hovercard.d.ts +14 -0
  171. package/dist/types/components/menu.d.ts +29 -0
  172. package/dist/types/components/modal.d.ts +17 -0
  173. package/dist/types/components/pin.d.ts +14 -0
  174. package/dist/types/components/radiogroup.d.ts +10 -0
  175. package/dist/types/components/select.d.ts +24 -0
  176. package/dist/types/components/slider.d.ts +16 -0
  177. package/dist/types/components/tabs.d.ts +14 -0
  178. package/dist/types/components/tags.d.ts +16 -0
  179. package/dist/types/components/tooltip.d.ts +14 -0
  180. package/dist/types/index.d.ts +11 -0
  181. package/package.json +72 -77
  182. package/LICENSE.md +0 -21
  183. package/dist/actions/outside.d.ts +0 -19
  184. package/dist/actions/outside.js +0 -25
  185. package/dist/actions/portal.d.ts +0 -9
  186. package/dist/actions/portal.js +0 -28
  187. package/dist/actions/trap.d.ts +0 -7
  188. package/dist/actions/trap.js +0 -17
  189. package/dist/components/Accordion/Accordion.svelte +0 -31
  190. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -4
  191. package/dist/components/Accordion/AccordionButton.svelte +0 -22
  192. package/dist/components/Accordion/AccordionButton.svelte.d.ts +0 -4
  193. package/dist/components/Accordion/AccordionContent.svelte +0 -27
  194. package/dist/components/Accordion/AccordionContent.svelte.d.ts +0 -4
  195. package/dist/components/Accordion/AccordionHeading.svelte +0 -13
  196. package/dist/components/Accordion/AccordionHeading.svelte.d.ts +0 -4
  197. package/dist/components/Accordion/AccordionItem.svelte +0 -25
  198. package/dist/components/Accordion/AccordionItem.svelte.d.ts +0 -4
  199. package/dist/components/Accordion/main.svelte.d.ts +0 -95
  200. package/dist/components/Accordion/main.svelte.js +0 -148
  201. package/dist/components/Accordion/types.d.ts +0 -83
  202. package/dist/components/Checkbox/Checkbox.svelte +0 -40
  203. package/dist/components/Checkbox/Checkbox.svelte.d.ts +0 -4
  204. package/dist/components/Checkbox/index.d.ts +0 -2
  205. package/dist/components/Checkbox/index.js +0 -1
  206. package/dist/components/Checkbox/types.d.ts +0 -25
  207. package/dist/components/Collapsible/Collapsible.svelte +0 -31
  208. package/dist/components/Collapsible/Collapsible.svelte.d.ts +0 -4
  209. package/dist/components/Collapsible/CollapsibleButton.svelte +0 -22
  210. package/dist/components/Collapsible/CollapsibleButton.svelte.d.ts +0 -4
  211. package/dist/components/Collapsible/CollapsibleContent.svelte +0 -34
  212. package/dist/components/Collapsible/CollapsibleContent.svelte.d.ts +0 -4
  213. package/dist/components/Collapsible/index.d.ts +0 -3
  214. package/dist/components/Collapsible/index.js +0 -3
  215. package/dist/components/Collapsible/main.svelte.d.ts +0 -46
  216. package/dist/components/Collapsible/main.svelte.js +0 -74
  217. package/dist/components/Collapsible/types.d.ts +0 -36
  218. package/dist/components/Combobox/Combobox.svelte +0 -46
  219. package/dist/components/Combobox/Combobox.svelte.d.ts +0 -4
  220. package/dist/components/Combobox/ComboboxArrow.svelte +0 -11
  221. package/dist/components/Combobox/ComboboxArrow.svelte.d.ts +0 -4
  222. package/dist/components/Combobox/ComboboxContent.svelte +0 -40
  223. package/dist/components/Combobox/ComboboxContent.svelte.d.ts +0 -4
  224. package/dist/components/Combobox/ComboboxInput.svelte +0 -23
  225. package/dist/components/Combobox/ComboboxInput.svelte.d.ts +0 -4
  226. package/dist/components/Combobox/ComboboxOption.svelte +0 -42
  227. package/dist/components/Combobox/ComboboxOption.svelte.d.ts +0 -4
  228. package/dist/components/Combobox/index.d.ts +0 -6
  229. package/dist/components/Combobox/index.js +0 -5
  230. package/dist/components/Combobox/main.svelte.d.ts +0 -115
  231. package/dist/components/Combobox/main.svelte.js +0 -293
  232. package/dist/components/Combobox/types.d.ts +0 -106
  233. package/dist/components/Hovercard/Hovercard.svelte +0 -17
  234. package/dist/components/Hovercard/HovercardArrow.svelte +0 -11
  235. package/dist/components/Hovercard/HovercardArrow.svelte.d.ts +0 -4
  236. package/dist/components/Hovercard/HovercardContent.svelte +0 -39
  237. package/dist/components/Hovercard/HovercardContent.svelte.d.ts +0 -4
  238. package/dist/components/Hovercard/HovercardTrigger.svelte +0 -17
  239. package/dist/components/Hovercard/HovercardTrigger.svelte.d.ts +0 -4
  240. package/dist/components/Hovercard/main.svelte.d.ts +0 -55
  241. package/dist/components/Hovercard/main.svelte.js +0 -133
  242. package/dist/components/Hovercard/types.d.ts +0 -25
  243. package/dist/components/Menu/Menu.svelte +0 -16
  244. package/dist/components/Menu/Menu.svelte.d.ts +0 -4
  245. package/dist/components/Menu/MenuArrow.svelte +0 -11
  246. package/dist/components/Menu/MenuContent.svelte +0 -40
  247. package/dist/components/Menu/MenuContent.svelte.d.ts +0 -4
  248. package/dist/components/Menu/MenuItem.svelte +0 -39
  249. package/dist/components/Menu/MenuItem.svelte.d.ts +0 -4
  250. package/dist/components/Menu/MenuTrigger.svelte +0 -17
  251. package/dist/components/Menu/MenuTrigger.svelte.d.ts +0 -4
  252. package/dist/components/Menu/main.svelte.d.ts +0 -70
  253. package/dist/components/Menu/main.svelte.js +0 -205
  254. package/dist/components/Menu/types.d.ts +0 -81
  255. package/dist/components/Modal/Modal.svelte +0 -17
  256. package/dist/components/Modal/Modal.svelte.d.ts +0 -4
  257. package/dist/components/Modal/ModalContent.svelte +0 -41
  258. package/dist/components/Modal/ModalContent.svelte.d.ts +0 -4
  259. package/dist/components/Modal/ModalDescription.svelte +0 -13
  260. package/dist/components/Modal/ModalDescription.svelte.d.ts +0 -4
  261. package/dist/components/Modal/ModalOverlay.svelte +0 -35
  262. package/dist/components/Modal/ModalOverlay.svelte.d.ts +0 -4
  263. package/dist/components/Modal/ModalTitle.svelte +0 -13
  264. package/dist/components/Modal/main.svelte.d.ts +0 -58
  265. package/dist/components/Modal/main.svelte.js +0 -102
  266. package/dist/components/Modal/types.d.ts +0 -28
  267. package/dist/components/Pin/Pin.svelte +0 -34
  268. package/dist/components/Pin/Pin.svelte.d.ts +0 -4
  269. package/dist/components/Pin/PinInput.svelte +0 -27
  270. package/dist/components/Pin/PinValue.svelte +0 -20
  271. package/dist/components/Pin/PinValue.svelte.d.ts +0 -4
  272. package/dist/components/Pin/main.svelte.d.ts +0 -65
  273. package/dist/components/Pin/main.svelte.js +0 -181
  274. package/dist/components/Pin/types.d.ts +0 -81
  275. package/dist/components/Popover/Popover.svelte +0 -16
  276. package/dist/components/Popover/Popover.svelte.d.ts +0 -4
  277. package/dist/components/Popover/PopoverArrow.svelte +0 -11
  278. package/dist/components/Popover/PopoverArrow.svelte.d.ts +0 -4
  279. package/dist/components/Popover/PopoverContent.svelte +0 -51
  280. package/dist/components/Popover/PopoverContent.svelte.d.ts +0 -4
  281. package/dist/components/Popover/PopoverTrigger.svelte +0 -17
  282. package/dist/components/Popover/PopoverTrigger.svelte.d.ts +0 -4
  283. package/dist/components/Popover/index.d.ts +0 -5
  284. package/dist/components/Popover/index.js +0 -4
  285. package/dist/components/Popover/main.svelte.d.ts +0 -41
  286. package/dist/components/Popover/main.svelte.js +0 -125
  287. package/dist/components/Popover/types.d.ts +0 -19
  288. package/dist/components/Portal/Portal.svelte +0 -18
  289. package/dist/components/Portal/Portal.svelte.d.ts +0 -4
  290. package/dist/components/Portal/index.d.ts +0 -2
  291. package/dist/components/Portal/index.js +0 -1
  292. package/dist/components/Portal/types.d.ts +0 -9
  293. package/dist/components/RadioGroup/RadioGroup.svelte +0 -31
  294. package/dist/components/RadioGroup/RadioGroup.svelte.d.ts +0 -4
  295. package/dist/components/RadioGroup/RadioGroupItem.svelte +0 -32
  296. package/dist/components/RadioGroup/RadioGroupItem.svelte.d.ts +0 -4
  297. package/dist/components/RadioGroup/main.svelte.d.ts +0 -63
  298. package/dist/components/RadioGroup/main.svelte.js +0 -124
  299. package/dist/components/RadioGroup/types.d.ts +0 -46
  300. package/dist/components/Select/Select.svelte +0 -25
  301. package/dist/components/Select/Select.svelte.d.ts +0 -4
  302. package/dist/components/Select/SelectArrow.svelte +0 -11
  303. package/dist/components/Select/SelectContent.svelte +0 -39
  304. package/dist/components/Select/SelectContent.svelte.d.ts +0 -4
  305. package/dist/components/Select/SelectOption.svelte +0 -34
  306. package/dist/components/Select/SelectOption.svelte.d.ts +0 -4
  307. package/dist/components/Select/SelectTrigger.svelte +0 -17
  308. package/dist/components/Select/SelectTrigger.svelte.d.ts +0 -4
  309. package/dist/components/Select/SelectValue.svelte +0 -19
  310. package/dist/components/Select/SelectValue.svelte.d.ts +0 -4
  311. package/dist/components/Select/main.svelte.d.ts +0 -111
  312. package/dist/components/Select/main.svelte.js +0 -306
  313. package/dist/components/Select/types.d.ts +0 -72
  314. package/dist/components/Slider/Slider.svelte +0 -49
  315. package/dist/components/Slider/Slider.svelte.d.ts +0 -4
  316. package/dist/components/Slider/SliderRange.svelte +0 -12
  317. package/dist/components/Slider/SliderThumb.svelte +0 -15
  318. package/dist/components/Slider/SliderValue.svelte +0 -19
  319. package/dist/components/Slider/main.svelte.d.ts +0 -101
  320. package/dist/components/Slider/main.svelte.js +0 -240
  321. package/dist/components/Slider/types.d.ts +0 -66
  322. package/dist/components/Switch/Switch.svelte +0 -41
  323. package/dist/components/Switch/Switch.svelte.d.ts +0 -4
  324. package/dist/components/Switch/index.d.ts +0 -2
  325. package/dist/components/Switch/index.js +0 -1
  326. package/dist/components/Switch/types.d.ts +0 -26
  327. package/dist/components/Tabs/Tabs.svelte +0 -27
  328. package/dist/components/Tabs/Tabs.svelte.d.ts +0 -4
  329. package/dist/components/Tabs/TabsButton.svelte +0 -32
  330. package/dist/components/Tabs/TabsButton.svelte.d.ts +0 -4
  331. package/dist/components/Tabs/TabsContent.svelte +0 -15
  332. package/dist/components/Tabs/TabsContent.svelte.d.ts +0 -4
  333. package/dist/components/Tabs/TabsList.svelte +0 -13
  334. package/dist/components/Tabs/TabsList.svelte.d.ts +0 -4
  335. package/dist/components/Tabs/main.svelte.d.ts +0 -84
  336. package/dist/components/Tabs/main.svelte.js +0 -146
  337. package/dist/components/Tabs/types.d.ts +0 -71
  338. package/dist/components/Tags/Tags.svelte +0 -41
  339. package/dist/components/Tags/Tags.svelte.d.ts +0 -4
  340. package/dist/components/Tags/TagsDelete.svelte +0 -20
  341. package/dist/components/Tags/TagsDelete.svelte.d.ts +0 -4
  342. package/dist/components/Tags/TagsInput.svelte +0 -18
  343. package/dist/components/Tags/TagsItem.svelte +0 -15
  344. package/dist/components/Tags/TagsItem.svelte.d.ts +0 -4
  345. package/dist/components/Tags/main.svelte.d.ts +0 -85
  346. package/dist/components/Tags/main.svelte.js +0 -202
  347. package/dist/components/Tags/types.d.ts +0 -84
  348. package/dist/components/Tags/types.js +0 -1
  349. package/dist/components/Toast/Toast.svelte +0 -13
  350. package/dist/components/Toast/Toast.svelte.d.ts +0 -4
  351. package/dist/components/Toast/ToastMessage.svelte +0 -13
  352. package/dist/components/Toast/ToastMessage.svelte.d.ts +0 -4
  353. package/dist/components/Toast/ToastTitle.svelte +0 -13
  354. package/dist/components/Toast/ToastTitle.svelte.d.ts +0 -4
  355. package/dist/components/Toast/Toaster.svelte +0 -26
  356. package/dist/components/Toast/Toaster.svelte.d.ts +0 -4
  357. package/dist/components/Toast/index.d.ts +0 -7
  358. package/dist/components/Toast/index.js +0 -6
  359. package/dist/components/Toast/main.svelte.d.ts +0 -38
  360. package/dist/components/Toast/main.svelte.js +0 -93
  361. package/dist/components/Toast/types.d.ts +0 -31
  362. package/dist/components/Toast/types.js +0 -1
  363. package/dist/components/Tooltip/Tooltip.svelte +0 -19
  364. package/dist/components/Tooltip/Tooltip.svelte.d.ts +0 -4
  365. package/dist/components/Tooltip/TooltipArrow.svelte +0 -11
  366. package/dist/components/Tooltip/TooltipContent.svelte +0 -39
  367. package/dist/components/Tooltip/TooltipContent.svelte.d.ts +0 -4
  368. package/dist/components/Tooltip/TooltipTrigger.svelte +0 -17
  369. package/dist/components/Tooltip/TooltipTrigger.svelte.d.ts +0 -4
  370. package/dist/components/Tooltip/main.svelte.d.ts +0 -50
  371. package/dist/components/Tooltip/main.svelte.js +0 -100
  372. package/dist/components/Tooltip/types.d.ts +0 -27
  373. package/dist/components/Tooltip/types.js +0 -1
  374. package/dist/components/Tree/Tree.svelte +0 -28
  375. package/dist/components/Tree/Tree.svelte.d.ts +0 -4
  376. package/dist/components/Tree/TreeButton.svelte +0 -27
  377. package/dist/components/Tree/TreeButton.svelte.d.ts +0 -4
  378. package/dist/components/Tree/TreeGroup.svelte +0 -29
  379. package/dist/components/Tree/TreeGroup.svelte.d.ts +0 -4
  380. package/dist/components/Tree/TreeItem.svelte +0 -26
  381. package/dist/components/Tree/TreeItem.svelte.d.ts +0 -4
  382. package/dist/components/Tree/index.d.ts +0 -5
  383. package/dist/components/Tree/index.js +0 -4
  384. package/dist/components/Tree/main.svelte.d.ts +0 -93
  385. package/dist/components/Tree/main.svelte.js +0 -252
  386. package/dist/components/Tree/types.d.ts +0 -49
  387. package/dist/components/Tree/types.js +0 -1
  388. package/dist/internal/components/FloatingArrow.svelte +0 -26
  389. package/dist/internal/components/FloatingArrow.svelte.d.ts +0 -22
  390. package/dist/internal/components/FloatingContent.svelte +0 -90
  391. package/dist/internal/components/FloatingContent.svelte.d.ts +0 -24
  392. package/dist/internal/components/types.d.ts +0 -11
  393. package/dist/internal/components/types.js +0 -1
  394. package/dist/internal/helpers/action.d.ts +0 -15
  395. package/dist/internal/helpers/action.js +0 -47
  396. package/dist/internal/helpers/element.d.ts +0 -45
  397. package/dist/internal/helpers/element.js +0 -99
  398. package/dist/internal/helpers/floating.d.ts +0 -14
  399. package/dist/internal/helpers/floating.js +0 -79
  400. package/dist/internal/helpers/is.d.ts +0 -4
  401. package/dist/internal/helpers/is.js +0 -4
  402. package/dist/internal/helpers/log.d.ts +0 -3
  403. package/dist/internal/helpers/transition.d.ts +0 -16
  404. package/dist/internal/helpers/transition.js +0 -16
  405. package/dist/internal/index.d.ts +0 -12
  406. package/dist/internal/index.js +0 -12
  407. package/dist/internal/types.d.ts +0 -69
  408. package/dist/internal/types.js +0 -1
  409. package/dist/components/{Accordion → accordion}/index.js +1 -1
  410. package/dist/components/{Hovercard/index.js → hovercard/index.d.ts} +0 -0
  411. package/dist/components/{RadioGroup/index.js → radiogroup/index.d.ts} +0 -0
  412. package/dist/components/{Slider/index.js → slider/index.d.ts} +0 -0
  413. package/dist/components/{Tabs/index.js → tabs/index.d.ts} +0 -0
  414. package/dist/components/{Accordion → tabs}/types.js +0 -0
  415. package/dist/components/{Tags → tags}/index.d.ts +1 -1
  416. package/dist/components/{Tags → tags}/index.js +1 -1
  417. /package/dist/components/{Tooltip/index.js → tooltip/index.d.ts} +0 -0
  418. /package/dist/components/{Checkbox → tooltip}/types.js +0 -0
  419. /package/dist/{components/Collapsible → internals}/types.js +0 -0
  420. /package/dist/{components/Combobox/types.js → types/components/accordion.js} +0 -0
  421. /package/dist/{components/Hovercard/types.js → types/components/hovercard.js} +0 -0
  422. /package/dist/{components/Menu/types.js → types/components/menu.js} +0 -0
  423. /package/dist/{components/Modal/types.js → types/components/modal.js} +0 -0
  424. /package/dist/{components/Pin/types.js → types/components/pin.js} +0 -0
  425. /package/dist/{components/Popover/types.js → types/components/radiogroup.js} +0 -0
  426. /package/dist/{components/Portal/types.js → types/components/select.js} +0 -0
  427. /package/dist/{components/RadioGroup/types.js → types/components/slider.js} +0 -0
  428. /package/dist/{components/Select/types.js → types/components/tabs.js} +0 -0
  429. /package/dist/{components/Slider/types.js → types/components/tags.js} +0 -0
  430. /package/dist/{components/Switch/types.js → types/components/tooltip.js} +0 -0
  431. /package/dist/{components/Tabs/types.js → types/index.js} +0 -0
package/README.md CHANGED
@@ -1,43 +1,58 @@
1
- > [!WARNING]
2
- > This library is still in very early development. Expect things to be broken.
1
+ # Svelte library
3
2
 
4
- # Lithesome
3
+ Everything you need to build a Svelte library, powered by [`sv`](https://npmjs.com/package/sv).
5
4
 
6
- An unstyled component library for Svelte 5.
5
+ Read more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging).
7
6
 
8
- <br>
7
+ ## Creating a project
9
8
 
10
- ## Install
9
+ If you're seeing this, you've probably already done this step. Congrats!
11
10
 
12
- ```bash
13
- pnpm i -D lithesome
11
+ ```sh
12
+ # create a new project in the current directory
13
+ npx sv create
14
+
15
+ # create a new project in my-app
16
+ npx sv create my-app
17
+ ```
18
+
19
+ ## Developing
20
+
21
+ Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
22
+
23
+ ```sh
24
+ npm run dev
25
+
26
+ # or start the server and open the app in a new browser tab
27
+ npm run dev -- --open
28
+ ```
29
+
30
+ Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.
31
+
32
+ ## Building
33
+
34
+ To build your library:
35
+
36
+ ```sh
37
+ npm pack
14
38
  ```
15
39
 
16
- ## Usage
17
-
18
- ```svelte
19
- <script>
20
- import { Menu, MenuTrigger, MenuContent, MenuItem } from 'lithesome';
21
- </script>
22
-
23
- <Menu>
24
- <MenuTrigger>
25
- <button>Auth</button>
26
- </MenuTrigger>
27
- <MenuContent>
28
- <MenuItem>My Profile</MenuItem>
29
- <MenuItem>Account Settings</MenuItem>
30
- <MenuItem>Logout</MenuItem>
31
- </MenuContent>
32
- </Menu>
40
+ To create a production version of your showcase app:
41
+
42
+ ```sh
43
+ npm run build
33
44
  ```
34
45
 
35
- <br>
46
+ You can preview the production build with `npm run preview`.
47
+
48
+ > To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
36
49
 
37
- ## Docs
50
+ ## Publishing
38
51
 
39
- View more information at: https://lithesome.dev
52
+ Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).
40
53
 
41
- ## License
54
+ To publish your library to [npm](https://www.npmjs.com):
42
55
 
43
- See the [LICENSE](https://github.com/Gibbu/lithesome/blob/main/LICENSE.md) file for license rights and limitations (MIT).
56
+ ```sh
57
+ npm publish
58
+ ```
@@ -0,0 +1,12 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ type ExcludeElement = HTMLElement | string | null | undefined;
3
+ /**
4
+ * An attachment that fires if the node is not clicked on.
5
+ * @param callback The function called when clicking outside of the element.
6
+ * @param exlude The element to be excluded when calling the `callback` handler.
7
+ * @param event The event to trigger the callback function.
8
+ *
9
+ * Default = `click`
10
+ */
11
+ export declare const outside: (callback: VoidFunction, exclude: ExcludeElement[], on?: keyof DocumentEventMap) => Attachment<HTMLElement>;
12
+ export {};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * An attachment that fires if the node is not clicked on.
3
+ * @param callback The function called when clicking outside of the element.
4
+ * @param exlude The element to be excluded when calling the `callback` handler.
5
+ * @param event The event to trigger the callback function.
6
+ *
7
+ * Default = `click`
8
+ */
9
+ export const outside = (callback, exclude, on) => {
10
+ return (node) => {
11
+ const event = (e) => {
12
+ const target = e.target;
13
+ let elements = [];
14
+ exclude.forEach((el) => {
15
+ if (el) {
16
+ if (typeof el === 'string') {
17
+ const query = Array.from(document.querySelectorAll(el));
18
+ elements = [...elements, ...query];
19
+ }
20
+ else {
21
+ elements.push(el);
22
+ }
23
+ }
24
+ });
25
+ const contains = elements.some((el) => el?.contains(target));
26
+ if (node && !node.contains(target) && !e.defaultPrevented && !contains)
27
+ callback();
28
+ };
29
+ window.addEventListener(on || 'click', event);
30
+ return () => {
31
+ window.removeEventListener(on || 'click', event);
32
+ };
33
+ };
34
+ };
@@ -0,0 +1,7 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ /**
3
+ * A svelte attachment to portal content from one part of the dom to another.
4
+ * @param target The element to be portaled to.\
5
+ * Default = `body`.
6
+ */
7
+ export declare const portal: (target?: HTMLElement | string) => Attachment<HTMLElement>;
@@ -0,0 +1,27 @@
1
+ import { tick } from 'svelte';
2
+ import { log } from '../internals/index.js';
3
+ /**
4
+ * A svelte attachment to portal content from one part of the dom to another.
5
+ * @param target The element to be portaled to.\
6
+ * Default = `body`.
7
+ */
8
+ export const portal = (target = 'body') => {
9
+ return (node) => {
10
+ const update = async (newTarget) => {
11
+ let el = typeof newTarget === 'string' ? document.querySelector(newTarget) : newTarget;
12
+ await tick();
13
+ if (!el) {
14
+ log.error(`Cannot find the given target element: ${target}`);
15
+ return;
16
+ }
17
+ el.appendChild(node);
18
+ };
19
+ update(target);
20
+ return () => {
21
+ tick().then(() => {
22
+ if (node)
23
+ node.remove();
24
+ });
25
+ };
26
+ };
27
+ };
@@ -0,0 +1,6 @@
1
+ import type { Options } from 'focus-trap';
2
+ import type { Attachment } from 'svelte/attachments';
3
+ /**
4
+ * Creates a focus trap.
5
+ */
6
+ export declare const trap: (opts: Options) => Attachment<HTMLElement>;
@@ -0,0 +1,20 @@
1
+ import { createFocusTrap } from 'focus-trap';
2
+ /**
3
+ * Creates a focus trap.
4
+ */
5
+ export const trap = (opts) => {
6
+ return (node) => {
7
+ let trap = null;
8
+ if (trap)
9
+ return;
10
+ trap = createFocusTrap(node, {
11
+ fallbackFocus: node,
12
+ ...opts
13
+ });
14
+ trap.activate();
15
+ return () => {
16
+ trap?.deactivate();
17
+ trap = null;
18
+ };
19
+ };
20
+ };
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { stateValue } from '../../internals/context.svelte.js';
3
+ import { Element, parseId } from '../../internals/index.js';
4
+ import { createAccordionRootContext } from './state.svelte.js';
5
+
6
+ import type { AccordionProps } from '../../types/index.js';
7
+
8
+ const uid = $props.id();
9
+
10
+ let {
11
+ id = parseId(uid),
12
+ children,
13
+ custom,
14
+ ref = $bindable(),
15
+ value = $bindable(''),
16
+ onChange,
17
+ ...props
18
+ }: AccordionProps<typeof ctx.props, typeof ctx.state> = $props();
19
+
20
+ let ctx = createAccordionRootContext({
21
+ id,
22
+ ref: stateValue(() => ref!),
23
+ value: stateValue(
24
+ () => value,
25
+ (v) => {
26
+ value = v;
27
+ onChange?.(v);
28
+ }
29
+ )
30
+ });
31
+ </script>
32
+
33
+ <Element bind:ref {children} {custom} {ctx} {...props} />
@@ -0,0 +1,9 @@
1
+ import type { AccordionProps } from '../../types/index.js';
2
+ declare const Accordion: import("svelte").Component<AccordionProps<{
3
+ id: string;
4
+ "data-accordion-root": string;
5
+ }, {
6
+ value: string | string[];
7
+ }>, {}, "ref" | "value">;
8
+ type Accordion = ReturnType<typeof Accordion>;
9
+ export default Accordion;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { Element, parseId, stateValue } from '../../internals/index.js';
3
+ import { useAccordionButton } from './state.svelte.js';
4
+
5
+ import type { AccordionButtonProps } from '../../types/index.js';
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ id = parseId(uid),
11
+ children,
12
+ custom,
13
+ ref = $bindable(),
14
+ ...props
15
+ }: AccordionButtonProps<typeof ctx.props, typeof ctx.state> = $props();
16
+
17
+ let ctx = useAccordionButton({ id, ref: stateValue(() => ref!) });
18
+ </script>
19
+
20
+ <Element bind:ref {children} {custom} {ctx} as="button" {...props} />
@@ -0,0 +1,15 @@
1
+ import type { AccordionButtonProps } from '../../types/index.js';
2
+ declare const AccordionButton: import("svelte").Component<AccordionButtonProps<{
3
+ readonly id: string;
4
+ readonly type: "button";
5
+ readonly 'aria-expanded': boolean;
6
+ readonly 'aria-disabled': boolean;
7
+ readonly 'aria-controls': string | undefined;
8
+ readonly tabindex: 0 | -1;
9
+ readonly 'data-accordionbutton': "";
10
+ readonly 'data-active': true | undefined;
11
+ }, {
12
+ active: boolean;
13
+ }>, {}, "ref">;
14
+ type AccordionButton = ReturnType<typeof AccordionButton>;
15
+ export default AccordionButton;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { Element, parseId, stateValue } from '../../internals/index.js';
3
+ import { useAccordionContent } from './state.svelte.js';
4
+
5
+ import type { AccordionContentProps } from '../../types/index.js';
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ id = parseId(uid),
11
+ children,
12
+ custom,
13
+ ref = $bindable(),
14
+ ...props
15
+ }: AccordionContentProps<typeof ctx.props, typeof ctx.state> = $props();
16
+
17
+ let ctx = useAccordionContent({ id, ref: stateValue(() => ref!) });
18
+ </script>
19
+
20
+ <Element bind:ref {children} {custom} {ctx} visible={ctx._item.Active} {...props} />
@@ -0,0 +1,10 @@
1
+ import type { AccordionContentProps } from '../../types/index.js';
2
+ declare const AccordionContent: import("svelte").Component<AccordionContentProps<{
3
+ id: string;
4
+ "data-accordion-content": string;
5
+ 'data-active': boolean;
6
+ }, {
7
+ active: boolean;
8
+ }>, {}, "ref">;
9
+ type AccordionContent = ReturnType<typeof AccordionContent>;
10
+ export default AccordionContent;
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { stateValue } from '../../internals/context.svelte.js';
3
+ import { Element, parseId } from '../../internals/index.js';
4
+ import { useAccordionHeading } from './state.svelte.js';
5
+
6
+ import type { AccordionHeadingProps } from '../../types/index.js';
7
+
8
+ const uid = $props.id();
9
+
10
+ let {
11
+ id = parseId(uid),
12
+ children,
13
+ custom,
14
+ ref = $bindable(),
15
+ level = 3,
16
+ ...props
17
+ }: AccordionHeadingProps<typeof ctx.props, typeof ctx.state> = $props();
18
+
19
+ let ctx = useAccordionHeading({
20
+ id,
21
+ ref: stateValue(() => ref!),
22
+ level: stateValue(() => level)
23
+ });
24
+ </script>
25
+
26
+ <Element bind:ref {children} {custom} {ctx} {...props} />
@@ -0,0 +1,12 @@
1
+ import type { AccordionHeadingProps } from '../../types/index.js';
2
+ declare const AccordionHeading: import("svelte").Component<AccordionHeadingProps<{
3
+ id: string;
4
+ "data-accordion-heading": string;
5
+ role: string;
6
+ 'aria-level': 2 | 1 | 3 | 4 | 5 | 6;
7
+ 'data-opened': string;
8
+ }, {
9
+ active: boolean;
10
+ }>, {}, "ref">;
11
+ type AccordionHeading = ReturnType<typeof AccordionHeading>;
12
+ export default AccordionHeading;
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { stateValue } from '../../internals/context.svelte.js';
3
+ import { Element, parseId } from '../../internals/index.js';
4
+ import { createAccordionItemContext } from './state.svelte.js';
5
+
6
+ import type { AccordionItemProps } from '../../types/index.js';
7
+
8
+ const uid = $props.id();
9
+
10
+ let {
11
+ id = parseId(uid),
12
+ children,
13
+ custom,
14
+ ref = $bindable(),
15
+ value,
16
+ disabled = $bindable(false),
17
+ ...props
18
+ }: AccordionItemProps<typeof ctx.props, typeof ctx.state> = $props();
19
+
20
+ let ctx = createAccordionItemContext({
21
+ id,
22
+ ref: stateValue(() => ref!),
23
+ value: stateValue(() => value),
24
+ disabled: stateValue(() => disabled)
25
+ });
26
+ </script>
27
+
28
+ <Element bind:ref {children} {custom} {ctx} {...props} />
@@ -0,0 +1,13 @@
1
+ import type { AccordionItemProps } from '../../types/index.js';
2
+ declare const AccordionItem: import("svelte").Component<AccordionItemProps<{
3
+ id: string;
4
+ "data-accordion-item": string;
5
+ 'data-disabled': boolean;
6
+ 'data-opened': string;
7
+ 'data-value': string;
8
+ }, {
9
+ active: boolean;
10
+ disabled: boolean;
11
+ }>, {}, "disabled" | "ref">;
12
+ type AccordionItem = ReturnType<typeof AccordionItem>;
13
+ export default AccordionItem;
@@ -1,6 +1,5 @@
1
1
  export { default as Accordion } from './Accordion.svelte';
2
- export { default as AccordionHeading } from './AccordionHeading.svelte';
3
2
  export { default as AccordionItem } from './AccordionItem.svelte';
4
3
  export { default as AccordionButton } from './AccordionButton.svelte';
4
+ export { default as AccordionHeading } from './AccordionHeading.svelte';
5
5
  export { default as AccordionContent } from './AccordionContent.svelte';
6
- export type * from './types.js';
@@ -0,0 +1,99 @@
1
+ import { SvelteMap } from 'svelte/reactivity';
2
+ import type { GetInternalProps } from '../../internals/types.js';
3
+ import type { AccordionButtonProps, AccordionContentProps, AccordionHeadingProps, AccordionItemProps, AccordionProps } from '../../types/index.js';
4
+ type RootProps = GetInternalProps<AccordionProps>;
5
+ export declare class AccordionRoot {
6
+ #private;
7
+ $value: RootProps['value'];
8
+ items: string[];
9
+ constructor(props: RootProps);
10
+ toggleActiveItem: (itemId: string) => void;
11
+ isActive: (value: string) => boolean;
12
+ props: {
13
+ id: string;
14
+ "data-accordion-root": string;
15
+ };
16
+ state: {
17
+ value: string | string[];
18
+ };
19
+ }
20
+ type ItemProps = GetInternalProps<AccordionItemProps>;
21
+ declare class AccordionItem {
22
+ #private;
23
+ $value: ItemProps['value'];
24
+ $disabled: ItemProps['disabled'];
25
+ _root: AccordionRoot;
26
+ sharedIds: SvelteMap<"content" | "item" | "button", string>;
27
+ Active: boolean;
28
+ constructor(root: AccordionRoot, props: ItemProps);
29
+ props: {
30
+ id: string;
31
+ "data-accordion-item": string;
32
+ 'data-disabled': boolean;
33
+ 'data-opened': string;
34
+ 'data-value': string;
35
+ };
36
+ state: {
37
+ active: boolean;
38
+ disabled: boolean;
39
+ };
40
+ }
41
+ type HeadingProps = GetInternalProps<AccordionHeadingProps>;
42
+ declare class AccordionHeading {
43
+ #private;
44
+ $level: HeadingProps['level'];
45
+ _root: AccordionRoot;
46
+ _item: AccordionItem;
47
+ constructor(root: AccordionRoot, item: AccordionItem, props: HeadingProps);
48
+ props: {
49
+ id: string;
50
+ "data-accordion-heading": string;
51
+ role: string;
52
+ 'aria-level': 2 | 1 | 3 | 4 | 5 | 6;
53
+ 'data-opened': string;
54
+ };
55
+ state: {
56
+ active: boolean;
57
+ };
58
+ }
59
+ type ButtonProps = GetInternalProps<AccordionButtonProps>;
60
+ declare class AccordionButton {
61
+ #private;
62
+ _item: AccordionItem;
63
+ _root: AccordionRoot;
64
+ constructor(item: AccordionItem, root: AccordionRoot, props: ButtonProps);
65
+ props: {
66
+ readonly id: string;
67
+ readonly type: "button";
68
+ readonly 'aria-expanded': boolean;
69
+ readonly 'aria-disabled': boolean;
70
+ readonly 'aria-controls': string | undefined;
71
+ readonly tabindex: 0 | -1;
72
+ readonly 'data-accordionbutton': "";
73
+ readonly 'data-active': true | undefined;
74
+ };
75
+ state: {
76
+ active: boolean;
77
+ };
78
+ }
79
+ type ContentProps = GetInternalProps<AccordionContentProps>;
80
+ declare class AccordionContent {
81
+ #private;
82
+ _item: AccordionItem;
83
+ _root: AccordionRoot;
84
+ constructor(item: AccordionItem, root: AccordionRoot, props: ContentProps);
85
+ props: {
86
+ id: string;
87
+ "data-accordion-content": string;
88
+ 'data-active': boolean;
89
+ };
90
+ state: {
91
+ active: boolean;
92
+ };
93
+ }
94
+ export declare const createAccordionRootContext: (props: RootProps) => AccordionRoot;
95
+ export declare const createAccordionItemContext: (props: ItemProps) => AccordionItem;
96
+ export declare const useAccordionHeading: (props: HeadingProps) => AccordionHeading;
97
+ export declare const useAccordionButton: (props: ButtonProps) => AccordionButton;
98
+ export declare const useAccordionContent: (props: ContentProps) => AccordionContent;
99
+ export {};
@@ -0,0 +1,156 @@
1
+ import { SvelteMap } from 'svelte/reactivity';
2
+ import { attach } from '../../internals/attachment.js';
3
+ import { buildContext } from '../../internals/context.svelte.js';
4
+ import { addEvents, createAttributes } from '../../internals/utils.svelte.js';
5
+ const { attrs } = createAttributes('accordion', ['root', 'item', 'heading', 'button', 'content']);
6
+ export class AccordionRoot {
7
+ $value;
8
+ #id;
9
+ items = $state([]);
10
+ constructor(props) {
11
+ this.$value = props.value;
12
+ this.#id = props.id;
13
+ }
14
+ toggleActiveItem = (itemId) => {
15
+ if (Array.isArray(this.$value.val)) {
16
+ if (this.$value.val.includes(itemId))
17
+ this.$value.val = this.$value.val.filter((el) => el != itemId);
18
+ else
19
+ this.$value.val.push(itemId);
20
+ }
21
+ else {
22
+ if (this.$value.val === itemId)
23
+ this.$value.val = '';
24
+ else
25
+ this.$value.val = itemId;
26
+ }
27
+ };
28
+ isActive = (value) => {
29
+ return typeof this.$value.val === 'string' ? this.$value.val === value : this.$value.val.includes(value);
30
+ };
31
+ props = $derived.by(() => ({
32
+ id: this.#id,
33
+ [attrs.root]: ''
34
+ }));
35
+ state = $derived.by(() => ({
36
+ value: this.$value.val
37
+ }));
38
+ }
39
+ class AccordionItem {
40
+ $value;
41
+ $disabled;
42
+ #id;
43
+ _root;
44
+ sharedIds = new SvelteMap();
45
+ Active = $derived.by(() => this._root.isActive(this.$value.val));
46
+ constructor(root, props) {
47
+ this._root = root;
48
+ this.$value = props.value;
49
+ this.$disabled = props.disabled;
50
+ this.#id = props.id;
51
+ this.sharedIds.set('item', this.#id);
52
+ }
53
+ props = $derived.by(() => ({
54
+ id: this.#id,
55
+ [attrs.item]: '',
56
+ 'data-disabled': this.$disabled.val,
57
+ 'data-opened': this.Active ? 'opened' : 'closed',
58
+ 'data-value': this.$value.val
59
+ }));
60
+ state = $derived.by(() => ({
61
+ active: this.Active,
62
+ disabled: this.$disabled.val
63
+ }));
64
+ }
65
+ class AccordionHeading {
66
+ $level;
67
+ #id;
68
+ _root;
69
+ _item;
70
+ constructor(root, item, props) {
71
+ this._root = root;
72
+ this._item = item;
73
+ this.$level = props.level;
74
+ this.#id = props.id;
75
+ }
76
+ props = $derived.by(() => ({
77
+ id: this.#id,
78
+ [attrs.heading]: '',
79
+ role: 'heading',
80
+ 'aria-level': this.$level.val,
81
+ 'data-opened': this._item.Active ? 'opened' : 'closed'
82
+ }));
83
+ state = $derived.by(() => ({
84
+ active: this._item.Active
85
+ }));
86
+ }
87
+ class AccordionButton {
88
+ #id;
89
+ _item;
90
+ _root;
91
+ constructor(item, root, props) {
92
+ this._item = item;
93
+ this._root = root;
94
+ this.#id = props.id;
95
+ this._item.sharedIds.set('button', this.#id);
96
+ }
97
+ props = $derived.by(() => ({
98
+ id: this.#id,
99
+ type: 'button',
100
+ 'aria-expanded': this._item.Active,
101
+ 'aria-disabled': this._item.$disabled.val,
102
+ 'aria-controls': this._item.Active ? this._item.sharedIds.get('content') : undefined,
103
+ tabindex: this._item.$disabled.val ? -1 : 0,
104
+ 'data-accordionbutton': '',
105
+ 'data-active': this._item.Active || undefined,
106
+ ...attach((node) => addEvents(node, {
107
+ click: () => {
108
+ if (this._item.$disabled.val)
109
+ return;
110
+ this._root.toggleActiveItem(this._item.$value.val);
111
+ }
112
+ }))
113
+ }));
114
+ state = $derived.by(() => ({
115
+ active: this._item.Active
116
+ }));
117
+ }
118
+ class AccordionContent {
119
+ #id;
120
+ _item;
121
+ _root;
122
+ constructor(item, root, props) {
123
+ this._item = item;
124
+ this._root = root;
125
+ this.#id = props.id;
126
+ this._item.sharedIds.set('content', this.#id);
127
+ }
128
+ props = $derived.by(() => ({
129
+ id: this.#id,
130
+ [attrs.content]: '',
131
+ 'data-active': this._item.Active
132
+ }));
133
+ state = $derived.by(() => ({
134
+ active: this._item.Active
135
+ }));
136
+ }
137
+ //
138
+ // ~~BUILDERS
139
+ //
140
+ const rootContext = buildContext(AccordionRoot);
141
+ const itemContext = buildContext(AccordionItem);
142
+ export const createAccordionRootContext = (props) => {
143
+ return rootContext.create(props);
144
+ };
145
+ export const createAccordionItemContext = (props) => {
146
+ return itemContext.create(rootContext.get(), props);
147
+ };
148
+ export const useAccordionHeading = (props) => {
149
+ return rootContext.register(AccordionHeading, itemContext.get(), props);
150
+ };
151
+ export const useAccordionButton = (props) => {
152
+ return itemContext.register(AccordionButton, rootContext.get(), props);
153
+ };
154
+ export const useAccordionContent = (props) => {
155
+ return itemContext.register(AccordionContent, rootContext.get(), props);
156
+ };