@proyecto-viviana/solidaria-components 0.3.2 → 0.4.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 (398) hide show
  1. package/dist/ActionBar.js +184 -0
  2. package/dist/ActionBar.js.map +1 -0
  3. package/dist/ActionBar.jsx +128 -0
  4. package/dist/ActionBar.jsx.map +1 -0
  5. package/dist/ActionGroup.js +179 -0
  6. package/dist/ActionGroup.js.map +1 -0
  7. package/dist/ActionGroup.jsx +129 -0
  8. package/dist/ActionGroup.jsx.map +1 -0
  9. package/dist/Alert.js +111 -0
  10. package/dist/Alert.js.map +1 -0
  11. package/dist/Alert.jsx +82 -0
  12. package/dist/Alert.jsx.map +1 -0
  13. package/dist/Autocomplete.js +130 -0
  14. package/dist/Autocomplete.js.map +1 -0
  15. package/dist/Autocomplete.jsx +116 -0
  16. package/dist/Autocomplete.jsx.map +1 -0
  17. package/dist/Breadcrumbs.d.ts.map +1 -1
  18. package/dist/Breadcrumbs.js +334 -0
  19. package/dist/Breadcrumbs.js.map +1 -0
  20. package/dist/Breadcrumbs.jsx +266 -0
  21. package/dist/Breadcrumbs.jsx.map +1 -0
  22. package/dist/Button.d.ts.map +1 -1
  23. package/dist/Button.js +348 -0
  24. package/dist/Button.js.map +1 -0
  25. package/dist/Button.jsx +314 -0
  26. package/dist/Button.jsx.map +1 -0
  27. package/dist/Calendar.d.ts +4 -4
  28. package/dist/Calendar.d.ts.map +1 -1
  29. package/dist/Calendar.js +538 -0
  30. package/dist/Calendar.js.map +1 -0
  31. package/dist/Calendar.jsx +333 -0
  32. package/dist/Calendar.jsx.map +1 -0
  33. package/dist/CalendarPicker.d.ts +33 -0
  34. package/dist/CalendarPicker.d.ts.map +1 -0
  35. package/dist/CalendarPicker.js +44 -0
  36. package/dist/CalendarPicker.js.map +1 -0
  37. package/dist/CalendarPicker.jsx +44 -0
  38. package/dist/CalendarPicker.jsx.map +1 -0
  39. package/dist/Checkbox.d.ts +83 -4
  40. package/dist/Checkbox.d.ts.map +1 -1
  41. package/dist/Checkbox.js +923 -0
  42. package/dist/Checkbox.js.map +1 -0
  43. package/dist/Checkbox.jsx +707 -0
  44. package/dist/Checkbox.jsx.map +1 -0
  45. package/dist/Collection.d.ts.map +1 -1
  46. package/dist/Collection.js +202 -0
  47. package/dist/Collection.js.map +1 -0
  48. package/dist/Collection.jsx +152 -0
  49. package/dist/Collection.jsx.map +1 -0
  50. package/dist/Color.d.ts.map +1 -1
  51. package/dist/Color.js +1720 -0
  52. package/dist/Color.js.map +1 -0
  53. package/dist/Color.jsx +1344 -0
  54. package/dist/Color.jsx.map +1 -0
  55. package/dist/ColorEditor.js +208 -0
  56. package/dist/ColorEditor.js.map +1 -0
  57. package/dist/ColorEditor.jsx +120 -0
  58. package/dist/ColorEditor.jsx.map +1 -0
  59. package/dist/ComboBox.d.ts +4 -4
  60. package/dist/ComboBox.d.ts.map +1 -1
  61. package/dist/ComboBox.js +992 -0
  62. package/dist/ComboBox.js.map +1 -0
  63. package/dist/ComboBox.jsx +714 -0
  64. package/dist/ComboBox.jsx.map +1 -0
  65. package/dist/ContextualHelpTrigger.js +146 -0
  66. package/dist/ContextualHelpTrigger.js.map +1 -0
  67. package/dist/ContextualHelpTrigger.jsx +109 -0
  68. package/dist/ContextualHelpTrigger.jsx.map +1 -0
  69. package/dist/DateField.d.ts +3 -3
  70. package/dist/DateField.d.ts.map +1 -1
  71. package/dist/DateField.js +4 -0
  72. package/dist/DateField.jsx +4 -0
  73. package/dist/DateField2.js +499 -0
  74. package/dist/DateField2.js.map +1 -0
  75. package/dist/DateField2.jsx +317 -0
  76. package/dist/DateField2.jsx.map +1 -0
  77. package/dist/DatePicker.d.ts +4 -4
  78. package/dist/DatePicker.d.ts.map +1 -1
  79. package/dist/DatePicker.js +991 -0
  80. package/dist/DatePicker.js.map +1 -0
  81. package/dist/DatePicker.jsx +682 -0
  82. package/dist/DatePicker.jsx.map +1 -0
  83. package/dist/Dialog.d.ts.map +1 -1
  84. package/dist/Dialog.js +337 -0
  85. package/dist/Dialog.js.map +1 -0
  86. package/dist/Dialog.jsx +192 -0
  87. package/dist/Dialog.jsx.map +1 -0
  88. package/dist/Disclosure.d.ts.map +1 -1
  89. package/dist/Disclosure.js +328 -0
  90. package/dist/Disclosure.js.map +1 -0
  91. package/dist/Disclosure.jsx +230 -0
  92. package/dist/Disclosure.jsx.map +1 -0
  93. package/dist/DragAndDrop.d.ts.map +1 -1
  94. package/dist/DragAndDrop.js +176 -0
  95. package/dist/DragAndDrop.js.map +1 -0
  96. package/dist/DragAndDrop.jsx +160 -0
  97. package/dist/DragAndDrop.jsx.map +1 -0
  98. package/dist/DropZone.d.ts.map +1 -1
  99. package/dist/DropZone.js +189 -0
  100. package/dist/DropZone.js.map +1 -0
  101. package/dist/DropZone.jsx +144 -0
  102. package/dist/DropZone.jsx.map +1 -0
  103. package/dist/FieldError.js +66 -0
  104. package/dist/FieldError.js.map +1 -0
  105. package/dist/FieldError.jsx +47 -0
  106. package/dist/FieldError.jsx.map +1 -0
  107. package/dist/FileTrigger.js +79 -0
  108. package/dist/FileTrigger.js.map +1 -0
  109. package/dist/FileTrigger.jsx +49 -0
  110. package/dist/FileTrigger.jsx.map +1 -0
  111. package/dist/Focusable.js +70 -0
  112. package/dist/Focusable.js.map +1 -0
  113. package/dist/Focusable.jsx +69 -0
  114. package/dist/Focusable.jsx.map +1 -0
  115. package/dist/Form.js +99 -0
  116. package/dist/Form.js.map +1 -0
  117. package/dist/Form.jsx +73 -0
  118. package/dist/Form.jsx.map +1 -0
  119. package/dist/GridList.d.ts +34 -2
  120. package/dist/GridList.d.ts.map +1 -1
  121. package/dist/GridList.js +723 -0
  122. package/dist/GridList.js.map +1 -0
  123. package/dist/GridList.jsx +552 -0
  124. package/dist/GridList.jsx.map +1 -0
  125. package/dist/HiddenTimeInput.js +104 -0
  126. package/dist/HiddenTimeInput.js.map +1 -0
  127. package/dist/HiddenTimeInput.jsx +69 -0
  128. package/dist/HiddenTimeInput.jsx.map +1 -0
  129. package/dist/Icon.d.ts.map +1 -1
  130. package/dist/Icon.js +127 -0
  131. package/dist/Icon.js.map +1 -0
  132. package/dist/Icon.jsx +72 -0
  133. package/dist/Icon.jsx.map +1 -0
  134. package/dist/Keyboard.js +30 -0
  135. package/dist/Keyboard.js.map +1 -0
  136. package/dist/Keyboard.jsx +24 -0
  137. package/dist/Keyboard.jsx.map +1 -0
  138. package/dist/Landmark.js +134 -0
  139. package/dist/Landmark.js.map +1 -0
  140. package/dist/Landmark.jsx +118 -0
  141. package/dist/Landmark.jsx.map +1 -0
  142. package/dist/Link.d.ts.map +1 -1
  143. package/dist/Link.js +219 -0
  144. package/dist/Link.js.map +1 -0
  145. package/dist/Link.jsx +189 -0
  146. package/dist/Link.jsx.map +1 -0
  147. package/dist/ListBox.d.ts.map +1 -1
  148. package/dist/ListBox.js +670 -0
  149. package/dist/ListBox.js.map +1 -0
  150. package/dist/ListBox.jsx +508 -0
  151. package/dist/ListBox.jsx.map +1 -0
  152. package/dist/Menu.d.ts +27 -9
  153. package/dist/Menu.d.ts.map +1 -1
  154. package/dist/Menu.js +1254 -0
  155. package/dist/Menu.js.map +1 -0
  156. package/dist/Menu.jsx +1042 -0
  157. package/dist/Menu.jsx.map +1 -0
  158. package/dist/Meter.d.ts.map +1 -1
  159. package/dist/Meter.js +123 -0
  160. package/dist/Meter.js.map +1 -0
  161. package/dist/Meter.jsx +107 -0
  162. package/dist/Meter.jsx.map +1 -0
  163. package/dist/Modal.d.ts.map +1 -1
  164. package/dist/Modal.js +380 -0
  165. package/dist/Modal.js.map +1 -0
  166. package/dist/Modal.jsx +314 -0
  167. package/dist/Modal.jsx.map +1 -0
  168. package/dist/NumberField.d.ts +3 -3
  169. package/dist/NumberField.d.ts.map +1 -1
  170. package/dist/NumberField.js +573 -0
  171. package/dist/NumberField.js.map +1 -0
  172. package/dist/NumberField.jsx +443 -0
  173. package/dist/NumberField.jsx.map +1 -0
  174. package/dist/Popover.d.ts +10 -2
  175. package/dist/Popover.d.ts.map +1 -1
  176. package/dist/Popover.js +464 -0
  177. package/dist/Popover.js.map +1 -0
  178. package/dist/Popover.jsx +333 -0
  179. package/dist/Popover.jsx.map +1 -0
  180. package/dist/Pressable.js +69 -0
  181. package/dist/Pressable.js.map +1 -0
  182. package/dist/Pressable.jsx +68 -0
  183. package/dist/Pressable.jsx.map +1 -0
  184. package/dist/ProgressBar.d.ts.map +1 -1
  185. package/dist/ProgressBar.js +130 -0
  186. package/dist/ProgressBar.js.map +1 -0
  187. package/dist/ProgressBar.jsx +114 -0
  188. package/dist/ProgressBar.jsx.map +1 -0
  189. package/dist/RadioGroup.d.ts +82 -4
  190. package/dist/RadioGroup.d.ts.map +1 -1
  191. package/dist/RadioGroup.js +931 -0
  192. package/dist/RadioGroup.js.map +1 -0
  193. package/dist/RadioGroup.jsx +681 -0
  194. package/dist/RadioGroup.jsx.map +1 -0
  195. package/dist/RangeCalendar.d.ts.map +1 -1
  196. package/dist/RangeCalendar.js +410 -0
  197. package/dist/RangeCalendar.js.map +1 -0
  198. package/dist/RangeCalendar.jsx +253 -0
  199. package/dist/RangeCalendar.jsx.map +1 -0
  200. package/dist/RouterProvider.js +118 -0
  201. package/dist/RouterProvider.js.map +1 -0
  202. package/dist/RouterProvider.jsx +112 -0
  203. package/dist/RouterProvider.jsx.map +1 -0
  204. package/dist/SearchField.d.ts +2 -2
  205. package/dist/SearchField.d.ts.map +1 -1
  206. package/dist/SearchField.js +643 -0
  207. package/dist/SearchField.js.map +1 -0
  208. package/dist/SearchField.jsx +526 -0
  209. package/dist/SearchField.jsx.map +1 -0
  210. package/dist/Select.d.ts.map +1 -1
  211. package/dist/Select.js +1031 -0
  212. package/dist/Select.js.map +1 -0
  213. package/dist/Select.jsx +744 -0
  214. package/dist/Select.jsx.map +1 -0
  215. package/dist/SelectionIndicator.d.ts.map +1 -1
  216. package/dist/SelectionIndicator.js +86 -0
  217. package/dist/SelectionIndicator.js.map +1 -0
  218. package/dist/SelectionIndicator.jsx +50 -0
  219. package/dist/SelectionIndicator.jsx.map +1 -0
  220. package/dist/Separator.js +97 -0
  221. package/dist/Separator.js.map +1 -0
  222. package/dist/Separator.jsx +85 -0
  223. package/dist/Separator.jsx.map +1 -0
  224. package/dist/SharedElementTransition.d.ts.map +1 -1
  225. package/dist/SharedElementTransition.js +165 -0
  226. package/dist/SharedElementTransition.js.map +1 -0
  227. package/dist/SharedElementTransition.jsx +138 -0
  228. package/dist/SharedElementTransition.jsx.map +1 -0
  229. package/dist/Slider.d.ts +33 -1
  230. package/dist/Slider.d.ts.map +1 -1
  231. package/dist/Slider.js +515 -0
  232. package/dist/Slider.js.map +1 -0
  233. package/dist/Slider.jsx +403 -0
  234. package/dist/Slider.jsx.map +1 -0
  235. package/dist/StepList.js +198 -0
  236. package/dist/StepList.js.map +1 -0
  237. package/dist/StepList.jsx +141 -0
  238. package/dist/StepList.jsx.map +1 -0
  239. package/dist/Switch.d.ts +65 -2
  240. package/dist/Switch.d.ts.map +1 -1
  241. package/dist/Switch.js +534 -0
  242. package/dist/Switch.js.map +1 -0
  243. package/dist/Switch.jsx +393 -0
  244. package/dist/Switch.jsx.map +1 -0
  245. package/dist/Table.d.ts +48 -0
  246. package/dist/Table.d.ts.map +1 -1
  247. package/dist/Table.js +1759 -0
  248. package/dist/Table.js.map +1 -0
  249. package/dist/Table.jsx +1348 -0
  250. package/dist/Table.jsx.map +1 -0
  251. package/dist/Tabs.d.ts +0 -4
  252. package/dist/Tabs.d.ts.map +1 -1
  253. package/dist/Tabs.js +595 -0
  254. package/dist/Tabs.js.map +1 -0
  255. package/dist/Tabs.jsx +367 -0
  256. package/dist/Tabs.jsx.map +1 -0
  257. package/dist/TagGroup.d.ts.map +1 -1
  258. package/dist/TagGroup.js +378 -0
  259. package/dist/TagGroup.js.map +1 -0
  260. package/dist/TagGroup.jsx +270 -0
  261. package/dist/TagGroup.jsx.map +1 -0
  262. package/dist/Text.d.ts +18 -6
  263. package/dist/Text.d.ts.map +1 -1
  264. package/dist/Text.js +42 -0
  265. package/dist/Text.js.map +1 -0
  266. package/dist/Text.jsx +35 -0
  267. package/dist/Text.jsx.map +1 -0
  268. package/dist/TextField.d.ts +6 -6
  269. package/dist/TextField.d.ts.map +1 -1
  270. package/dist/TextField.js +436 -0
  271. package/dist/TextField.js.map +1 -0
  272. package/dist/TextField.jsx +403 -0
  273. package/dist/TextField.jsx.map +1 -0
  274. package/dist/TimeField.d.ts +3 -3
  275. package/dist/TimeField.d.ts.map +1 -1
  276. package/dist/TimeField.js +372 -0
  277. package/dist/TimeField.js.map +1 -0
  278. package/dist/TimeField.jsx +224 -0
  279. package/dist/TimeField.jsx.map +1 -0
  280. package/dist/Toast.d.ts +14 -0
  281. package/dist/Toast.d.ts.map +1 -1
  282. package/dist/Toast.js +551 -0
  283. package/dist/Toast.js.map +1 -0
  284. package/dist/Toast.jsx +361 -0
  285. package/dist/Toast.jsx.map +1 -0
  286. package/dist/ToggleButton.d.ts.map +1 -1
  287. package/dist/ToggleButton.js +123 -0
  288. package/dist/ToggleButton.js.map +1 -0
  289. package/dist/ToggleButton.jsx +88 -0
  290. package/dist/ToggleButton.jsx.map +1 -0
  291. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  292. package/dist/ToggleButtonGroup.js +114 -0
  293. package/dist/ToggleButtonGroup.js.map +1 -0
  294. package/dist/ToggleButtonGroup.jsx +85 -0
  295. package/dist/ToggleButtonGroup.jsx.map +1 -0
  296. package/dist/Toolbar.js +112 -0
  297. package/dist/Toolbar.js.map +1 -0
  298. package/dist/Toolbar.jsx +92 -0
  299. package/dist/Toolbar.jsx.map +1 -0
  300. package/dist/Tooltip.d.ts.map +1 -1
  301. package/dist/Tooltip.js +539 -0
  302. package/dist/Tooltip.js.map +1 -0
  303. package/dist/Tooltip.jsx +465 -0
  304. package/dist/Tooltip.jsx.map +1 -0
  305. package/dist/Tree.d.ts +14 -2
  306. package/dist/Tree.d.ts.map +1 -1
  307. package/dist/Tree.js +1424 -0
  308. package/dist/Tree.js.map +1 -0
  309. package/dist/Tree.jsx +1172 -0
  310. package/dist/Tree.jsx.map +1 -0
  311. package/dist/Virtualizer.d.ts +16 -2
  312. package/dist/Virtualizer.d.ts.map +1 -1
  313. package/dist/Virtualizer.js +2 -0
  314. package/dist/Virtualizer.jsx +2 -0
  315. package/dist/Virtualizer2.js +751 -0
  316. package/dist/Virtualizer2.js.map +1 -0
  317. package/dist/Virtualizer2.jsx +730 -0
  318. package/dist/Virtualizer2.jsx.map +1 -0
  319. package/dist/VirtualizerLayouts.d.ts +18 -0
  320. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  321. package/dist/VisuallyHidden.js +42 -0
  322. package/dist/VisuallyHidden.js.map +1 -0
  323. package/dist/VisuallyHidden.jsx +35 -0
  324. package/dist/VisuallyHidden.jsx.map +1 -0
  325. package/dist/contexts.js +33 -0
  326. package/dist/contexts.js.map +1 -0
  327. package/dist/contexts.jsx +33 -0
  328. package/dist/contexts.jsx.map +1 -0
  329. package/dist/index.d.ts +7 -6
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +70 -23932
  332. package/dist/index.jsx +70 -18337
  333. package/dist/useDragAndDrop.js +2 -0
  334. package/dist/useDragAndDrop.jsx +2 -0
  335. package/dist/useDragAndDrop2.js +395 -0
  336. package/dist/useDragAndDrop2.js.map +1 -0
  337. package/dist/useDragAndDrop2.jsx +395 -0
  338. package/dist/useDragAndDrop2.jsx.map +1 -0
  339. package/dist/utils.d.ts +83 -11
  340. package/dist/utils.d.ts.map +1 -1
  341. package/dist/utils.js +285 -0
  342. package/dist/utils.js.map +1 -0
  343. package/dist/utils.jsx +277 -0
  344. package/dist/utils.jsx.map +1 -0
  345. package/dist/virtualizer/Layout.js +144 -0
  346. package/dist/virtualizer/Layout.js.map +1 -0
  347. package/dist/virtualizer/Layout.jsx +144 -0
  348. package/dist/virtualizer/Layout.jsx.map +1 -0
  349. package/package.json +401 -4
  350. package/src/Breadcrumbs.tsx +3 -1
  351. package/src/Button.tsx +22 -2
  352. package/src/Calendar.tsx +27 -10
  353. package/src/CalendarPicker.tsx +73 -0
  354. package/src/Checkbox.tsx +539 -3
  355. package/src/Collection.tsx +9 -3
  356. package/src/Color.tsx +42 -14
  357. package/src/ComboBox.tsx +50 -6
  358. package/src/DateField.tsx +20 -2
  359. package/src/DatePicker.tsx +57 -5
  360. package/src/Dialog.tsx +13 -5
  361. package/src/Disclosure.tsx +3 -1
  362. package/src/DragAndDrop.tsx +3 -1
  363. package/src/DropZone.tsx +3 -1
  364. package/src/GridList.tsx +125 -24
  365. package/src/Icon.tsx +3 -1
  366. package/src/Link.tsx +3 -1
  367. package/src/ListBox.tsx +31 -4
  368. package/src/Menu.tsx +252 -128
  369. package/src/Meter.tsx +3 -1
  370. package/src/Modal.tsx +100 -52
  371. package/src/NumberField.tsx +51 -8
  372. package/src/Popover.tsx +40 -10
  373. package/src/ProgressBar.tsx +3 -1
  374. package/src/RadioGroup.tsx +468 -4
  375. package/src/RangeCalendar.tsx +3 -1
  376. package/src/SearchField.tsx +27 -3
  377. package/src/Select.tsx +22 -7
  378. package/src/SelectionIndicator.tsx +3 -1
  379. package/src/SharedElementTransition.tsx +3 -1
  380. package/src/Slider.tsx +159 -13
  381. package/src/Switch.tsx +395 -2
  382. package/src/Table.tsx +409 -95
  383. package/src/Tabs.tsx +16 -45
  384. package/src/TagGroup.tsx +3 -1
  385. package/src/Text.tsx +31 -10
  386. package/src/TextField.tsx +43 -5
  387. package/src/TimeField.tsx +20 -2
  388. package/src/Toast.tsx +79 -14
  389. package/src/ToggleButton.tsx +3 -1
  390. package/src/ToggleButtonGroup.tsx +3 -1
  391. package/src/Tooltip.tsx +3 -1
  392. package/src/Tree.tsx +77 -9
  393. package/src/Virtualizer.tsx +180 -31
  394. package/src/VirtualizerLayouts.ts +45 -10
  395. package/src/index.ts +50 -0
  396. package/src/utils.tsx +243 -27
  397. package/dist/index.js.map +0 -1
  398. package/dist/index.jsx.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButton.js","names":["JSX","createContext","createMemo","splitProps","useContext","createToggleButton","createToggleButtonGroupItem","createFocusRing","createHover","mergeProps","AriaToggleButtonProps","Key","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","useToggleButtonGroupStateContext","RefLike","el","T","current","assignRef","ref","ToggleButtonRenderProps","isHovered","isPressed","isFocused","isFocusVisible","isDisabled","isSelected","ToggleButtonProps","Omit","toggleKey","id","children","class","style","HTMLButtonElement","ToggleButtonContext","resolveDisabledValue","ToggleButton","props","Element","contextProps","mergedProps","local","ariaProps","groupState","groupKey","standaloneAriaProps","toggleAria","focusProps","hoverProps","renderValues","renderProps","defaultClassName","domProps","filtered","global","Record","onClick","cleanButtonProps","_ref1","rest","buttonProps","cleanFocusProps","_ref2","cleanHoverProps","_ref3","_el$","_$getNextElement","_tmpl$","_$use","_$spread","_$mergeProps","slot","data-pressed","undefined","data-hovered","data-focused","data-focus-visible","data-disabled","data-selected","_$insert","renderChildren","_$runHydrationEvents"],"sources":["../src/ToggleButton.tsx"],"sourcesContent":["/**\n * ToggleButton component for solidaria-components\n *\n * A pre-wired headless toggle button that combines pressed + selected state.\n * Port direction: react-aria-components/src/ToggleButton.tsx\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext } from \"solid-js\";\nimport {\n createToggleButton,\n createToggleButtonGroupItem,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaToggleButtonProps,\n} from \"@proyecto-viviana/solidaria\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\nimport { useToggleButtonGroupStateContext } from \"./ToggleButtonGroup\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nexport interface ToggleButtonRenderProps {\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n}\n\nexport interface ToggleButtonProps extends Omit<AriaToggleButtonProps, \"children\">, SlotProps {\n /** Key used when inside ToggleButtonGroup selection state. */\n toggleKey?: Key;\n /** Preferred group key prop, parity with RAC item id usage. */\n id?: Key;\n children?: RenderChildren<ToggleButtonRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonRenderProps>;\n style?: StyleOrFunction<ToggleButtonRenderProps>;\n /** Ref for the underlying button element. */\n ref?: RefLike<HTMLButtonElement>;\n}\n\nexport const ToggleButtonContext = createContext<ToggleButtonProps | null>(null);\n\nfunction resolveDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\nexport function ToggleButton(props: ToggleButtonProps): JSX.Element {\n const contextProps = useContext(ToggleButtonContext);\n const mergedProps = (contextProps ? mergeProps(contextProps, props) : props) as ToggleButtonProps;\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"toggleKey\",\n \"id\",\n ]);\n const groupState = useToggleButtonGroupStateContext();\n const groupKey = local.id ?? local.toggleKey;\n const standaloneAriaProps = mergeProps<AriaToggleButtonProps>(ariaProps, {\n get id() {\n return local.id;\n },\n });\n\n const toggleAria =\n groupState && groupKey != null\n ? createToggleButtonGroupItem(\n {\n ...ariaProps,\n id: groupKey,\n },\n groupState,\n )\n : createToggleButton(standaloneAriaProps);\n\n const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n });\n\n const renderValues = createMemo<ToggleButtonRenderProps>(() => ({\n isHovered: isHovered(),\n isPressed: toggleAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: isDisabled(),\n isSelected: toggleAria.isSelected(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButton\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).onClick;\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanButtonProps = () => {\n const { ref: _ref1, ...rest } = toggleAria.buttonProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref3, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n ref={(el) => assignRef(local.ref, el)}\n slot={local.slot}\n data-pressed={toggleAria.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={isDisabled() || undefined}\n data-selected={toggleAria.isSelected() || undefined}\n >\n {renderProps.renderChildren()}\n </button>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { filterDOMProps, useRenderProps } from "./utils.jsx";
2
+ import { useToggleButtonGroupStateContext } from "./ToggleButtonGroup.jsx";
3
+ import { createContext, createMemo, splitProps, useContext } from "solid-js";
4
+ import { createFocusRing, createHover, createToggleButton, createToggleButtonGroupItem, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
5
+ //#region src/ToggleButton.tsx
6
+ /**
7
+ * ToggleButton component for solidaria-components
8
+ *
9
+ * A pre-wired headless toggle button that combines pressed + selected state.
10
+ * Port direction: react-aria-components/src/ToggleButton.tsx
11
+ */
12
+ function assignRef(ref, el) {
13
+ if (!ref) return;
14
+ if (typeof ref === "function") ref(el);
15
+ else ref.current = el;
16
+ }
17
+ const ToggleButtonContext = createContext(null);
18
+ function resolveDisabledValue(isDisabled) {
19
+ if (typeof isDisabled === "function") return isDisabled();
20
+ return !!isDisabled;
21
+ }
22
+ function ToggleButton(props) {
23
+ const contextProps = useContext(ToggleButtonContext);
24
+ const [local, ariaProps] = splitProps(contextProps ? mergeProps$1(contextProps, props) : props, [
25
+ "children",
26
+ "class",
27
+ "style",
28
+ "ref",
29
+ "slot",
30
+ "toggleKey",
31
+ "id"
32
+ ]);
33
+ const groupState = useToggleButtonGroupStateContext();
34
+ const groupKey = local.id ?? local.toggleKey;
35
+ const standaloneAriaProps = mergeProps$1(ariaProps, { get id() {
36
+ return local.id;
37
+ } });
38
+ const toggleAria = groupState && groupKey != null ? createToggleButtonGroupItem({
39
+ ...ariaProps,
40
+ id: groupKey
41
+ }, groupState) : createToggleButton(standaloneAriaProps);
42
+ const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;
43
+ const { isFocused, isFocusVisible, focusProps } = createFocusRing();
44
+ const { isHovered, hoverProps } = createHover({ get isDisabled() {
45
+ return isDisabled();
46
+ } });
47
+ const renderValues = createMemo(() => ({
48
+ isHovered: isHovered(),
49
+ isPressed: toggleAria.isPressed(),
50
+ isFocused: isFocused(),
51
+ isFocusVisible: isFocusVisible(),
52
+ isDisabled: isDisabled(),
53
+ isSelected: toggleAria.isSelected()
54
+ }));
55
+ const renderProps = useRenderProps({
56
+ get children() {
57
+ return local.children;
58
+ },
59
+ class: local.class,
60
+ style: local.style,
61
+ defaultClassName: "solidaria-ToggleButton"
62
+ }, renderValues);
63
+ const domProps = createMemo(() => {
64
+ const filtered = filterDOMProps(ariaProps, { global: true });
65
+ delete filtered.onClick;
66
+ delete filtered.id;
67
+ return filtered;
68
+ });
69
+ const cleanButtonProps = () => {
70
+ const { ref: _ref1, ...rest } = toggleAria.buttonProps;
71
+ return rest;
72
+ };
73
+ const cleanFocusProps = () => {
74
+ const { ref: _ref2, ...rest } = focusProps;
75
+ return rest;
76
+ };
77
+ const cleanHoverProps = () => {
78
+ const { ref: _ref3, ...rest } = hoverProps;
79
+ return rest;
80
+ };
81
+ return <button {...domProps()} {...cleanButtonProps()} {...cleanFocusProps()} {...cleanHoverProps()} class={renderProps.class()} style={renderProps.style()} ref={(el) => assignRef(local.ref, el)} slot={local.slot} data-pressed={toggleAria.isPressed() || void 0} data-hovered={isHovered() || void 0} data-focused={isFocused() || void 0} data-focus-visible={isFocusVisible() || void 0} data-disabled={isDisabled() || void 0} data-selected={toggleAria.isSelected() || void 0}>
82
+ {renderProps.renderChildren()}
83
+ </button>;
84
+ }
85
+ //#endregion
86
+ export { ToggleButton, ToggleButtonContext };
87
+
88
+ //# sourceMappingURL=ToggleButton.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButton.jsx","names":["mergeProps"],"sources":["../src/ToggleButton.tsx"],"sourcesContent":["/**\n * ToggleButton component for solidaria-components\n *\n * A pre-wired headless toggle button that combines pressed + selected state.\n * Port direction: react-aria-components/src/ToggleButton.tsx\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext } from \"solid-js\";\nimport {\n createToggleButton,\n createToggleButtonGroupItem,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaToggleButtonProps,\n} from \"@proyecto-viviana/solidaria\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\nimport { useToggleButtonGroupStateContext } from \"./ToggleButtonGroup\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nexport interface ToggleButtonRenderProps {\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n}\n\nexport interface ToggleButtonProps extends Omit<AriaToggleButtonProps, \"children\">, SlotProps {\n /** Key used when inside ToggleButtonGroup selection state. */\n toggleKey?: Key;\n /** Preferred group key prop, parity with RAC item id usage. */\n id?: Key;\n children?: RenderChildren<ToggleButtonRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonRenderProps>;\n style?: StyleOrFunction<ToggleButtonRenderProps>;\n /** Ref for the underlying button element. */\n ref?: RefLike<HTMLButtonElement>;\n}\n\nexport const ToggleButtonContext = createContext<ToggleButtonProps | null>(null);\n\nfunction resolveDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\nexport function ToggleButton(props: ToggleButtonProps): JSX.Element {\n const contextProps = useContext(ToggleButtonContext);\n const mergedProps = (contextProps ? mergeProps(contextProps, props) : props) as ToggleButtonProps;\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"toggleKey\",\n \"id\",\n ]);\n const groupState = useToggleButtonGroupStateContext();\n const groupKey = local.id ?? local.toggleKey;\n const standaloneAriaProps = mergeProps<AriaToggleButtonProps>(ariaProps, {\n get id() {\n return local.id;\n },\n });\n\n const toggleAria =\n groupState && groupKey != null\n ? createToggleButtonGroupItem(\n {\n ...ariaProps,\n id: groupKey,\n },\n groupState,\n )\n : createToggleButton(standaloneAriaProps);\n\n const isDisabled = () => resolveDisabledValue(ariaProps.isDisabled) || !!groupState?.isDisabled;\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n });\n\n const renderValues = createMemo<ToggleButtonRenderProps>(() => ({\n isHovered: isHovered(),\n isPressed: toggleAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: isDisabled(),\n isSelected: toggleAria.isSelected(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButton\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).onClick;\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanButtonProps = () => {\n const { ref: _ref1, ...rest } = toggleAria.buttonProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref3, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n ref={(el) => assignRef(local.ref, el)}\n slot={local.slot}\n data-pressed={toggleAria.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={isDisabled() || undefined}\n data-selected={toggleAria.isSelected() || undefined}\n >\n {renderProps.renderChildren()}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;AA6BA,SAAS,UAAa,KAAiB,IAAa;CAClD,IAAI,CAAC,KAAK;CACV,IAAI,OAAO,QAAQ,YACjB,IAAI,EAAE;MAEN,IAAI,UAAU;AAElB;AAuBA,MAAa,sBAAsB,cAAwC,IAAI;AAE/E,SAAS,qBAAqB,YAA0D;CACtF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,CAAC,CAAC;AACX;AAEA,SAAgB,aAAa,OAAuC;CAClE,MAAM,eAAe,WAAW,mBAAmB;CAGnD,MAAM,CAAC,OAAO,aAAa,WAFN,eAAeA,aAAW,cAAc,KAAK,IAAI,OAEnB;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,aAAa,iCAAiC;CACpD,MAAM,WAAW,MAAM,MAAM,MAAM;CACnC,MAAM,sBAAsBA,aAAkC,WAAW,EACvE,IAAI,KAAK;EACP,OAAO,MAAM;CACf,EACF,CAAC;CAED,MAAM,aACJ,cAAc,YAAY,OACtB,4BACE;EACE,GAAG;EACH,IAAI;CACN,GACA,UACF,IACA,mBAAmB,mBAAmB;CAE5C,MAAM,mBAAmB,qBAAqB,UAAU,UAAU,KAAK,CAAC,CAAC,YAAY;CAErF,MAAM,EAAE,WAAW,gBAAgB,eAAe,gBAAgB;CAClE,MAAM,EAAE,WAAW,eAAe,YAAY,EAC5C,IAAI,aAAa;EACf,OAAO,WAAW;CACpB,EACF,CAAC;CAED,MAAM,eAAe,kBAA2C;EAC9D,WAAW,UAAU;EACrB,WAAW,WAAW,UAAU;EAChC,WAAW,UAAU;EACrB,gBAAgB,eAAe;EAC/B,YAAY,WAAW;EACvB,YAAY,WAAW,WAAW;CACpC,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,WAAW,iBAAiB;EAChC,MAAM,WAAW,eAAe,WAAW,EAAE,QAAQ,KAAK,CAAC;EAC3D,OAAQ,SAAqC;EAC7C,OAAQ,SAAqC;EAC7C,OAAO;CACT,CAAC;CAED,MAAM,yBAAyB;EAC7B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS,WAAW;EAC3C,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CACA,MAAM,wBAAwB;EAC5B,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS;EAChC,OAAO;CACT;CAEA,OACE,CAAC,WACK,SAAS,OACT,iBAAiB,OACjB,gBAAgB,OAChB,gBAAgB,GACpB,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,MAAM,OAAO,UAAU,MAAM,KAAK,EAAE,GACpC,MAAM,MAAM,MACZ,cAAc,WAAW,UAAU,KAAK,KAAA,GACxC,cAAc,UAAU,KAAK,KAAA,GAC7B,cAAc,UAAU,KAAK,KAAA,GAC7B,oBAAoB,eAAe,KAAK,KAAA,GACxC,eAAe,WAAW,KAAK,KAAA,GAC/B,eAAe,WAAW,WAAW,KAAK,KAAA,GAC3C;OACE,YAAY,eAAe,EAAE;IAChC,EAAE;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../src/ToggleButtonGroup.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAqD,MAAM,UAAU,CAAC;AAEvF,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,sBACf,SACE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,mBAAmB,CAAC,EAC9F,SAAS;IACX,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,eAAe,CAAC,4BAA4B,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,wBAAwB,2DAAqD,CAAC;AAC3F,eAAO,MAAM,6BAA6B,qDAA+C,CAAC;AAC1F,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,MAAM,MAAM,kCAAkC,GAAG,gBAAgB,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAsF5E;AAED,wBAAgB,gCAAgC,IAAI,gBAAgB,GAAG,IAAI,CAE1E"}
1
+ {"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../src/ToggleButtonGroup.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAqD,MAAM,UAAU,CAAC;AAEvF,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,sBACf,SACE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,mBAAmB,CAAC,EAC9F,SAAS;IACX,aAAa,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,eAAe,CAAC,4BAA4B,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,wBAAwB,2DAAqD,CAAC;AAC3F,eAAO,MAAM,6BAA6B,qDAA+C,CAAC;AAC1F,eAAO,MAAM,uBAAuB,qDAAgC,CAAC;AACrE,MAAM,MAAM,kCAAkC,GAAG,gBAAgB,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAwF5E;AAED,wBAAgB,gCAAgC,IAAI,gBAAgB,GAAG,IAAI,CAE1E"}
@@ -0,0 +1,114 @@
1
+ import { filterDOMProps, useRenderProps } from "./utils.js";
2
+ import { createComponent, getNextElement, insert, mergeProps, runHydrationEvents, spread, template, use } from "solid-js/web";
3
+ import { createContext, createMemo, splitProps, useContext } from "solid-js";
4
+ import { createToggleButtonGroup, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
5
+ import { createToggleGroupState } from "@proyecto-viviana/solid-stately";
6
+ //#region src/ToggleButtonGroup.tsx
7
+ /**
8
+ * ToggleButtonGroup component for solidaria-components.
9
+ *
10
+ * Groups toggle buttons with single/multiple selection state.
11
+ * Parity target: react-aria-components/src/ToggleButtonGroup.tsx
12
+ */
13
+ var _tmpl$ = /*#__PURE__*/ template(`<div>`);
14
+ const ToggleButtonGroupContext = createContext(null);
15
+ const ToggleButtonGroupStateContext = createContext(null);
16
+ const ToggleGroupStateContext = ToggleButtonGroupStateContext;
17
+ function ToggleButtonGroup(props) {
18
+ const [local, domProps] = splitProps(props, [
19
+ "selectionMode",
20
+ "disallowEmptySelection",
21
+ "selectedKeys",
22
+ "defaultSelectedKeys",
23
+ "onSelectionChange",
24
+ "orientation",
25
+ "isDisabled",
26
+ "children",
27
+ "class",
28
+ "style",
29
+ "ref",
30
+ "slot",
31
+ "aria-label",
32
+ "aria-labelledby"
33
+ ]);
34
+ const state = createToggleGroupState(() => ({
35
+ selectionMode: local.selectionMode,
36
+ disallowEmptySelection: local.disallowEmptySelection,
37
+ selectedKeys: local.selectedKeys,
38
+ defaultSelectedKeys: local.defaultSelectedKeys,
39
+ onSelectionChange: local.onSelectionChange,
40
+ isDisabled: !!local.isDisabled
41
+ }));
42
+ const { groupProps } = createToggleButtonGroup({
43
+ get orientation() {
44
+ return local.orientation;
45
+ },
46
+ get isDisabled() {
47
+ return !!local.isDisabled;
48
+ },
49
+ get "aria-label"() {
50
+ return local["aria-label"];
51
+ },
52
+ get "aria-labelledby"() {
53
+ return local["aria-labelledby"];
54
+ }
55
+ }, state);
56
+ const renderProps = useRenderProps({
57
+ get children() {
58
+ return local.children;
59
+ },
60
+ class: local.class,
61
+ style: local.style,
62
+ defaultClassName: "solidaria-ToggleButtonGroup"
63
+ }, () => ({
64
+ orientation: local.orientation ?? "horizontal",
65
+ isDisabled: !!local.isDisabled,
66
+ state
67
+ }));
68
+ const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
69
+ const mergedGroupProps = createMemo(() => mergeProps$2(filteredDomProps(), groupProps));
70
+ return (() => {
71
+ var _el$ = getNextElement(_tmpl$);
72
+ use((el) => {
73
+ if (!local.ref) return;
74
+ if (typeof local.ref === "function") local.ref(el);
75
+ }, _el$);
76
+ spread(_el$, mergeProps(() => mergedGroupProps(), {
77
+ get ["class"]() {
78
+ return renderProps.class();
79
+ },
80
+ get style() {
81
+ return renderProps.style();
82
+ },
83
+ get slot() {
84
+ return local.slot;
85
+ },
86
+ get ["data-orientation"]() {
87
+ return local.orientation ?? "horizontal";
88
+ },
89
+ get ["data-disabled"]() {
90
+ return local.isDisabled || void 0;
91
+ }
92
+ }), false, true);
93
+ insert(_el$, createComponent(ToggleButtonGroupContext.Provider, {
94
+ value: props,
95
+ get children() {
96
+ return createComponent(ToggleButtonGroupStateContext.Provider, {
97
+ value: state,
98
+ get children() {
99
+ return renderProps.renderChildren();
100
+ }
101
+ });
102
+ }
103
+ }));
104
+ runHydrationEvents();
105
+ return _el$;
106
+ })();
107
+ }
108
+ function useToggleButtonGroupStateContext() {
109
+ return useContext(ToggleButtonGroupStateContext);
110
+ }
111
+ //#endregion
112
+ export { ToggleButtonGroup, ToggleButtonGroupContext, ToggleButtonGroupStateContext, ToggleGroupStateContext, useToggleButtonGroupStateContext };
113
+
114
+ //# sourceMappingURL=ToggleButtonGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButtonGroup.js","names":["JSX","createContext","createMemo","splitProps","useContext","createToggleButtonGroup","mergeProps","createToggleGroupState","Key","ToggleGroupState","ClassNameOrFunction","StyleOrFunction","RenderChildren","SlotProps","useRenderProps","filterDOMProps","ToggleButtonGroupRenderProps","orientation","isDisabled","state","ToggleButtonGroupProps","Omit","HTMLAttributes","HTMLDivElement","selectionMode","disallowEmptySelection","selectedKeys","Iterable","defaultSelectedKeys","onSelectionChange","keys","Set","children","class","style","ToggleButtonGroupContext","ToggleButtonGroupStateContext","ToggleGroupStateContext","ToggleButtonGroupStateContextValue","ToggleButtonGroup","props","Element","local","domProps","groupProps","aria-label","aria-labelledby","renderProps","defaultClassName","filteredDomProps","global","mergedGroupProps","Record","_el$","_$getNextElement","_tmpl$","_$use","el","ref","_$spread","_$mergeProps","slot","data-orientation","data-disabled","undefined","_$insert","_$createComponent","Provider","value","renderChildren","_$runHydrationEvents","useToggleButtonGroupStateContext"],"sources":["../src/ToggleButtonGroup.tsx"],"sourcesContent":["/**\n * ToggleButtonGroup component for solidaria-components.\n *\n * Groups toggle buttons with single/multiple selection state.\n * Parity target: react-aria-components/src/ToggleButtonGroup.tsx\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext } from \"solid-js\";\nimport { createToggleButtonGroup, mergeProps } from \"@proyecto-viviana/solidaria\";\nimport {\n createToggleGroupState,\n type Key,\n type ToggleGroupState,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n type RenderChildren,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface ToggleButtonGroupRenderProps {\n orientation: \"horizontal\" | \"vertical\";\n isDisabled: boolean;\n state: ToggleGroupState;\n}\n\nexport interface ToggleButtonGroupProps\n extends\n Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\" | \"style\" | \"onSelectionChange\">,\n SlotProps {\n selectionMode?: \"single\" | \"multiple\";\n disallowEmptySelection?: boolean;\n selectedKeys?: Iterable<Key>;\n defaultSelectedKeys?: Iterable<Key>;\n onSelectionChange?: (keys: Set<Key>) => void;\n orientation?: \"horizontal\" | \"vertical\";\n isDisabled?: boolean;\n children?: RenderChildren<ToggleButtonGroupRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonGroupRenderProps>;\n style?: StyleOrFunction<ToggleButtonGroupRenderProps>;\n}\n\nexport const ToggleButtonGroupContext = createContext<ToggleButtonGroupProps | null>(null);\nexport const ToggleButtonGroupStateContext = createContext<ToggleGroupState | null>(null);\nexport const ToggleGroupStateContext = ToggleButtonGroupStateContext;\nexport type ToggleButtonGroupStateContextValue = ToggleGroupState;\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"selectionMode\",\n \"disallowEmptySelection\",\n \"selectedKeys\",\n \"defaultSelectedKeys\",\n \"onSelectionChange\",\n \"orientation\",\n \"isDisabled\",\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"aria-label\",\n \"aria-labelledby\",\n ]);\n\n const state = createToggleGroupState(() => ({\n selectionMode: local.selectionMode,\n disallowEmptySelection: local.disallowEmptySelection,\n selectedKeys: local.selectedKeys,\n defaultSelectedKeys: local.defaultSelectedKeys,\n onSelectionChange: local.onSelectionChange,\n isDisabled: !!local.isDisabled,\n }));\n\n const { groupProps } = createToggleButtonGroup(\n {\n get orientation() {\n return local.orientation;\n },\n get isDisabled() {\n return !!local.isDisabled;\n },\n get \"aria-label\"() {\n return local[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return local[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButtonGroup\",\n },\n () => ({\n orientation: local.orientation ?? \"horizontal\",\n isDisabled: !!local.isDisabled,\n state,\n }),\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n const mergedGroupProps = createMemo(() =>\n mergeProps(filteredDomProps(), groupProps as Record<string, unknown>),\n );\n\n return (\n <div\n {...(mergedGroupProps() as JSX.HTMLAttributes<HTMLDivElement>)}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-orientation={local.orientation ?? \"horizontal\"}\n data-disabled={local.isDisabled || undefined}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n }\n }}\n >\n <ToggleButtonGroupContext.Provider value={props}>\n <ToggleButtonGroupStateContext.Provider value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext.Provider>\n </ToggleButtonGroupContext.Provider>\n </div>\n );\n}\n\nexport function useToggleButtonGroupStateContext(): ToggleGroupState | null {\n return useContext(ToggleButtonGroupStateContext);\n}\n"],"mappings":";;;;;;;;;;;;;AA6CA,MAAamC,2BAA2BlC,cAA6C,IAAI;AACzF,MAAamC,gCAAgCnC,cAAuC,IAAI;AACxF,MAAaoC,0BAA0BD;AAGvC,SAAgBG,kBAAkBC,OAA4C;CAC5E,MAAM,CAACE,OAAOC,YAAYxC,WAAWqC,OAAO;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAiB,CAClB;CAED,MAAMrB,QAAQZ,8BAA8B;EAC1CiB,eAAekB,MAAMlB;EACrBC,wBAAwBiB,MAAMjB;EAC9BC,cAAcgB,MAAMhB;EACpBE,qBAAqBc,MAAMd;EAC3BC,mBAAmBa,MAAMb;EACzBX,YAAY,CAAC,CAACwB,MAAMxB;CACtB,EAAE;CAEF,MAAM,EAAE0B,eAAevC,wBACrB;EACE,IAAIY,cAAc;GAChB,OAAOyB,MAAMzB;EACf;EACA,IAAIC,aAAa;GACf,OAAO,CAAC,CAACwB,MAAMxB;EACjB;EACA,IAAI,eAAe;GACjB,OAAOwB,MAAM;EACf;EACA,IAAI,oBAAoB;GACtB,OAAOA,MAAM;EACf;CACF,GACAvB,KACF;CAEA,MAAM4B,cAAcjC,eAClB;EACE,IAAIkB,WAAW;GACb,OAAOU,MAAMV;EACf;EACAC,OAAOS,MAAMT;EACbC,OAAOQ,MAAMR;EACbc,kBAAkB;CACpB,UACO;EACL/B,aAAayB,MAAMzB,eAAe;EAClCC,YAAY,CAAC,CAACwB,MAAMxB;EACpBC;CACF,EACF;CAEA,MAAM8B,mBAAmB/C,iBAAiBa,eAAe4B,UAAU,EAAEO,QAAQ,KAAK,CAAC,CAAC;CACpF,MAAMC,mBAAmBjD,iBACvBI,aAAW2C,iBAAiB,GAAGL,UAAqC,CACtE;CAEA,cAAA;EAAA,IAAAS,OAAAC,eAAAC,MAAA;EAAAC,KAQUC,OAAO;GACX,IAAI,CAACf,MAAMgB,KAAK;GAChB,IAAI,OAAOhB,MAAMgB,QAAQ,YACvBhB,MAAMgB,IAAID,EAAE;EAEhB,GAACJ,IAAA;EAAAM,OAAAN,MAAAO,iBAXIT,iBAAiB,GAAuC;GAAA,KAAA,WAAA;IAAA,OACtDJ,YAAYd,MAAM;GAAC;GAAA,IAC1BC,QAAK;IAAA,OAAEa,YAAYb,MAAM;GAAC;GAAA,IAC1B2B,OAAI;IAAA,OAAEnB,MAAMmB;GAAI;GAAA,KAAA,sBAAA;IAAA,OACEnB,MAAMzB,eAAe;GAAY;GAAA,KAAA,mBAAA;IAAA,OACpCyB,MAAMxB,cAAc8C,KAAAA;GAAS;EAAA,CAAA,GAAA,OAAA,IAAA;EAAAC,OAAAZ,MAAAa,gBAQ3C/B,yBAAyBgC,UAAQ;GAACC,OAAO5B;GAAK,IAAAR,WAAA;IAAA,OAAAkC,gBAC5C9B,8BAA8B+B,UAAQ;KAACC,OAAOjD;KAAK,IAAAa,WAAA;MAAA,OACjDe,YAAYsB,eAAe;KAAC;IAAA,CAAA;GAAA;EAAA,CAAA,CAAA;EAAAC,mBAAA;EAAA,OAAAjB;CAAA,EAAA,CAAA;AAKvC;AAEA,SAAgBkB,mCAA4D;CAC1E,OAAOnE,WAAWgC,6BAA6B;AACjD"}
@@ -0,0 +1,85 @@
1
+ import { filterDOMProps, useRenderProps } from "./utils.jsx";
2
+ import { createContext, createMemo, splitProps, useContext } from "solid-js";
3
+ import { createToggleButtonGroup, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
4
+ import { createToggleGroupState } from "@proyecto-viviana/solid-stately";
5
+ //#region src/ToggleButtonGroup.tsx
6
+ /**
7
+ * ToggleButtonGroup component for solidaria-components.
8
+ *
9
+ * Groups toggle buttons with single/multiple selection state.
10
+ * Parity target: react-aria-components/src/ToggleButtonGroup.tsx
11
+ */
12
+ const ToggleButtonGroupContext = createContext(null);
13
+ const ToggleButtonGroupStateContext = createContext(null);
14
+ const ToggleGroupStateContext = ToggleButtonGroupStateContext;
15
+ function ToggleButtonGroup(props) {
16
+ const [local, domProps] = splitProps(props, [
17
+ "selectionMode",
18
+ "disallowEmptySelection",
19
+ "selectedKeys",
20
+ "defaultSelectedKeys",
21
+ "onSelectionChange",
22
+ "orientation",
23
+ "isDisabled",
24
+ "children",
25
+ "class",
26
+ "style",
27
+ "ref",
28
+ "slot",
29
+ "aria-label",
30
+ "aria-labelledby"
31
+ ]);
32
+ const state = createToggleGroupState(() => ({
33
+ selectionMode: local.selectionMode,
34
+ disallowEmptySelection: local.disallowEmptySelection,
35
+ selectedKeys: local.selectedKeys,
36
+ defaultSelectedKeys: local.defaultSelectedKeys,
37
+ onSelectionChange: local.onSelectionChange,
38
+ isDisabled: !!local.isDisabled
39
+ }));
40
+ const { groupProps } = createToggleButtonGroup({
41
+ get orientation() {
42
+ return local.orientation;
43
+ },
44
+ get isDisabled() {
45
+ return !!local.isDisabled;
46
+ },
47
+ get "aria-label"() {
48
+ return local["aria-label"];
49
+ },
50
+ get "aria-labelledby"() {
51
+ return local["aria-labelledby"];
52
+ }
53
+ }, state);
54
+ const renderProps = useRenderProps({
55
+ get children() {
56
+ return local.children;
57
+ },
58
+ class: local.class,
59
+ style: local.style,
60
+ defaultClassName: "solidaria-ToggleButtonGroup"
61
+ }, () => ({
62
+ orientation: local.orientation ?? "horizontal",
63
+ isDisabled: !!local.isDisabled,
64
+ state
65
+ }));
66
+ const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
67
+ const mergedGroupProps = createMemo(() => mergeProps$1(filteredDomProps(), groupProps));
68
+ return <div {...mergedGroupProps()} class={renderProps.class()} style={renderProps.style()} slot={local.slot} data-orientation={local.orientation ?? "horizontal"} data-disabled={local.isDisabled || void 0} ref={(el) => {
69
+ if (!local.ref) return;
70
+ if (typeof local.ref === "function") local.ref(el);
71
+ }}>
72
+ <ToggleButtonGroupContext.Provider value={props}>
73
+ <ToggleButtonGroupStateContext.Provider value={state}>
74
+ {renderProps.renderChildren()}
75
+ </ToggleButtonGroupStateContext.Provider>
76
+ </ToggleButtonGroupContext.Provider>
77
+ </div>;
78
+ }
79
+ function useToggleButtonGroupStateContext() {
80
+ return useContext(ToggleButtonGroupStateContext);
81
+ }
82
+ //#endregion
83
+ export { ToggleButtonGroup, ToggleButtonGroupContext, ToggleButtonGroupStateContext, ToggleGroupStateContext, useToggleButtonGroupStateContext };
84
+
85
+ //# sourceMappingURL=ToggleButtonGroup.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButtonGroup.jsx","names":["mergeProps"],"sources":["../src/ToggleButtonGroup.tsx"],"sourcesContent":["/**\n * ToggleButtonGroup component for solidaria-components.\n *\n * Groups toggle buttons with single/multiple selection state.\n * Parity target: react-aria-components/src/ToggleButtonGroup.tsx\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext } from \"solid-js\";\nimport { createToggleButtonGroup, mergeProps } from \"@proyecto-viviana/solidaria\";\nimport {\n createToggleGroupState,\n type Key,\n type ToggleGroupState,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n type RenderChildren,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface ToggleButtonGroupRenderProps {\n orientation: \"horizontal\" | \"vertical\";\n isDisabled: boolean;\n state: ToggleGroupState;\n}\n\nexport interface ToggleButtonGroupProps\n extends\n Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\" | \"style\" | \"onSelectionChange\">,\n SlotProps {\n selectionMode?: \"single\" | \"multiple\";\n disallowEmptySelection?: boolean;\n selectedKeys?: Iterable<Key>;\n defaultSelectedKeys?: Iterable<Key>;\n onSelectionChange?: (keys: Set<Key>) => void;\n orientation?: \"horizontal\" | \"vertical\";\n isDisabled?: boolean;\n children?: RenderChildren<ToggleButtonGroupRenderProps>;\n class?: ClassNameOrFunction<ToggleButtonGroupRenderProps>;\n style?: StyleOrFunction<ToggleButtonGroupRenderProps>;\n}\n\nexport const ToggleButtonGroupContext = createContext<ToggleButtonGroupProps | null>(null);\nexport const ToggleButtonGroupStateContext = createContext<ToggleGroupState | null>(null);\nexport const ToggleGroupStateContext = ToggleButtonGroupStateContext;\nexport type ToggleButtonGroupStateContextValue = ToggleGroupState;\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"selectionMode\",\n \"disallowEmptySelection\",\n \"selectedKeys\",\n \"defaultSelectedKeys\",\n \"onSelectionChange\",\n \"orientation\",\n \"isDisabled\",\n \"children\",\n \"class\",\n \"style\",\n \"ref\",\n \"slot\",\n \"aria-label\",\n \"aria-labelledby\",\n ]);\n\n const state = createToggleGroupState(() => ({\n selectionMode: local.selectionMode,\n disallowEmptySelection: local.disallowEmptySelection,\n selectedKeys: local.selectedKeys,\n defaultSelectedKeys: local.defaultSelectedKeys,\n onSelectionChange: local.onSelectionChange,\n isDisabled: !!local.isDisabled,\n }));\n\n const { groupProps } = createToggleButtonGroup(\n {\n get orientation() {\n return local.orientation;\n },\n get isDisabled() {\n return !!local.isDisabled;\n },\n get \"aria-label\"() {\n return local[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return local[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-ToggleButtonGroup\",\n },\n () => ({\n orientation: local.orientation ?? \"horizontal\",\n isDisabled: !!local.isDisabled,\n state,\n }),\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n const mergedGroupProps = createMemo(() =>\n mergeProps(filteredDomProps(), groupProps as Record<string, unknown>),\n );\n\n return (\n <div\n {...(mergedGroupProps() as JSX.HTMLAttributes<HTMLDivElement>)}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-orientation={local.orientation ?? \"horizontal\"}\n data-disabled={local.isDisabled || undefined}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n }\n }}\n >\n <ToggleButtonGroupContext.Provider value={props}>\n <ToggleButtonGroupStateContext.Provider value={state}>\n {renderProps.renderChildren()}\n </ToggleButtonGroupStateContext.Provider>\n </ToggleButtonGroupContext.Provider>\n </div>\n );\n}\n\nexport function useToggleButtonGroupStateContext(): ToggleGroupState | null {\n return useContext(ToggleButtonGroupStateContext);\n}\n"],"mappings":";;;;;;;;;;;AA6CA,MAAa,2BAA2B,cAA6C,IAAI;AACzF,MAAa,gCAAgC,cAAuC,IAAI;AACxF,MAAa,0BAA0B;AAGvC,SAAgB,kBAAkB,OAA4C;CAC5E,MAAM,CAAC,OAAO,YAAY,WAAW,OAAO;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,QAAQ,8BAA8B;EAC1C,eAAe,MAAM;EACrB,wBAAwB,MAAM;EAC9B,cAAc,MAAM;EACpB,qBAAqB,MAAM;EAC3B,mBAAmB,MAAM;EACzB,YAAY,CAAC,CAAC,MAAM;CACtB,EAAE;CAEF,MAAM,EAAE,eAAe,wBACrB;EACE,IAAI,cAAc;GAChB,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,CAAC,CAAC,MAAM;EACjB;EACA,IAAI,eAAe;GACjB,OAAO,MAAM;EACf;EACA,IAAI,oBAAoB;GACtB,OAAO,MAAM;EACf;CACF,GACA,KACF;CAEA,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,UACO;EACL,aAAa,MAAM,eAAe;EAClC,YAAY,CAAC,CAAC,MAAM;EACpB;CACF,EACF;CAEA,MAAM,mBAAmB,iBAAiB,eAAe,UAAU,EAAE,QAAQ,KAAK,CAAC,CAAC;CACpF,MAAM,mBAAmB,iBACvBA,aAAW,iBAAiB,GAAG,UAAqC,CACtE;CAEA,OACE,CAAC,QACM,iBAAiB,GACtB,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,MAAM,MAAM,MACZ,kBAAkB,MAAM,eAAe,cACvC,eAAe,MAAM,cAAc,KAAA,GACnC,MAAM,OAAO;EACX,IAAI,CAAC,MAAM,KAAK;EAChB,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,EAAE;CAEhB,GACD;MACC,CAAC,yBAAyB,SAAS,OAAO,OAAO;QAC/C,CAAC,8BAA8B,SAAS,OAAO,OAAO;WACnD,YAAY,eAAe,EAAE;QAChC,EAAE,8BAA8B,SAAS;MAC3C,EAAE,yBAAyB,SAAS;IACtC,EAAE;AAEN;AAEA,SAAgB,mCAA4D;CAC1E,OAAO,WAAW,6BAA6B;AACjD"}
@@ -0,0 +1,112 @@
1
+ import { filterDOMProps } from "./utils.js";
2
+ import { getNextElement, insert, mergeProps, runHydrationEvents, spread, template, use } from "solid-js/web";
3
+ import { createContext, createMemo, splitProps, useContext } from "solid-js";
4
+ import { createToolbar } from "@proyecto-viviana/solidaria";
5
+ //#region src/Toolbar.tsx
6
+ /**
7
+ * Toolbar component for solidaria-components
8
+ *
9
+ * Pre-wired headless toolbar component that combines aria hooks.
10
+ * Port of react-aria-components/src/Toolbar.tsx
11
+ */
12
+ var _tmpl$ = /*#__PURE__*/ template(`<div>`);
13
+ const ToolbarContext = createContext(null);
14
+ /**
15
+ * A toolbar is a container for a set of interactive controls,
16
+ * such as buttons, checkboxes, or links, with arrow key navigation.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <Toolbar aria-label="Text formatting">
21
+ * <Button>Bold</Button>
22
+ * <Button>Italic</Button>
23
+ * <Button>Underline</Button>
24
+ * </Toolbar>
25
+ *
26
+ * // With render props
27
+ * <Toolbar orientation="vertical">
28
+ * {({ orientation }) => (
29
+ * <div data-orientation={orientation}>
30
+ * <Button>Cut</Button>
31
+ * <Button>Copy</Button>
32
+ * <Button>Paste</Button>
33
+ * </div>
34
+ * )}
35
+ * </Toolbar>
36
+ * ```
37
+ */
38
+ function Toolbar(props) {
39
+ const [local, ariaProps, domProps] = splitProps(props, [
40
+ "class",
41
+ "style",
42
+ "slot",
43
+ "children",
44
+ "ref"
45
+ ], [
46
+ "orientation",
47
+ "aria-label",
48
+ "aria-labelledby"
49
+ ]);
50
+ const ctx = useContext(ToolbarContext);
51
+ const slotProps = () => {
52
+ if (ctx?.slots && local.slot) return ctx.slots[local.slot] || {};
53
+ return {};
54
+ };
55
+ const { toolbarProps, orientation } = createToolbar({
56
+ get orientation() {
57
+ return ariaProps.orientation;
58
+ },
59
+ get "aria-label"() {
60
+ return ariaProps["aria-label"] ?? slotProps()["aria-label"];
61
+ },
62
+ get "aria-labelledby"() {
63
+ return ariaProps["aria-labelledby"];
64
+ }
65
+ });
66
+ const renderValues = createMemo(() => ({ orientation: orientation() }));
67
+ const resolvedClass = createMemo(() => {
68
+ const cls = local.class;
69
+ if (typeof cls === "function") return cls(renderValues());
70
+ return cls ?? "solidaria-Toolbar";
71
+ });
72
+ const resolvedStyle = createMemo(() => {
73
+ const style = local.style;
74
+ if (typeof style === "function") return style(renderValues());
75
+ return style;
76
+ });
77
+ const resolvedChildren = createMemo(() => {
78
+ const children = props.children;
79
+ if (typeof children === "function") return children(renderValues());
80
+ return children;
81
+ });
82
+ const filteredDOMProps = createMemo(() => filterDOMProps(domProps, { global: true }));
83
+ return (() => {
84
+ var _el$ = getNextElement(_tmpl$);
85
+ use((el) => {
86
+ if (!local.ref) return;
87
+ if (typeof local.ref === "function") local.ref(el);
88
+ else local.ref.current = el;
89
+ }, _el$);
90
+ spread(_el$, mergeProps(filteredDOMProps, toolbarProps, {
91
+ get ["class"]() {
92
+ return resolvedClass();
93
+ },
94
+ get style() {
95
+ return resolvedStyle();
96
+ },
97
+ get slot() {
98
+ return local.slot;
99
+ },
100
+ get ["data-orientation"]() {
101
+ return orientation();
102
+ }
103
+ }), false, true);
104
+ insert(_el$, resolvedChildren);
105
+ runHydrationEvents();
106
+ return _el$;
107
+ })();
108
+ }
109
+ //#endregion
110
+ export { Toolbar, ToolbarContext };
111
+
112
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","names":["JSX","ParentProps","createContext","createMemo","splitProps","useContext","createToolbar","AriaToolbarProps","Orientation","SlotProps","filterDOMProps","ToolbarRenderProps","orientation","ToolbarProps","class","renderProps","style","CSSProperties","key","ref","el","HTMLDivElement","current","ToolbarContextValue","slots","name","Record","ToolbarContext","Toolbar","props","Element","local","ariaProps","domProps","ctx","slotProps","slot","toolbarProps","aria-label","aria-labelledby","renderValues","resolvedClass","cls","resolvedStyle","resolvedChildren","children","filteredDOMProps","global","_el$","_$getNextElement","_tmpl$","_$use","_$spread","_$mergeProps","data-orientation","_$insert","_$runHydrationEvents"],"sources":["../src/Toolbar.tsx"],"sourcesContent":["/**\n * Toolbar component for solidaria-components\n *\n * Pre-wired headless toolbar component that combines aria hooks.\n * Port of react-aria-components/src/Toolbar.tsx\n */\n\nimport {\n type JSX,\n type ParentProps,\n createContext,\n createMemo,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n createToolbar,\n type AriaToolbarProps,\n type Orientation,\n} from \"@proyecto-viviana/solidaria\";\nimport { type SlotProps, filterDOMProps } from \"./utils\";\n\nexport interface ToolbarRenderProps {\n /** The orientation of the toolbar. */\n orientation: Orientation;\n}\n\nexport interface ToolbarProps extends AriaToolbarProps, ParentProps, SlotProps {\n /** The CSS className for the element. A function may be provided to receive render props. */\n class?: string | ((renderProps: ToolbarRenderProps) => string);\n /** The inline style for the element. A function may be provided to receive render props. */\n style?: JSX.CSSProperties | ((renderProps: ToolbarRenderProps) => JSX.CSSProperties);\n /** Additional data-* attributes. */\n [key: `data-${string}`]: string | undefined;\n /** Ref for the toolbar element. */\n ref?: ((el: HTMLDivElement) => void) | { current?: HTMLDivElement | null };\n}\n\nexport interface ToolbarContextValue {\n slots?: {\n [name: string]: Record<string, unknown>;\n };\n}\n\nexport const ToolbarContext = createContext<ToolbarContextValue | null>(null);\n\n/**\n * A toolbar is a container for a set of interactive controls,\n * such as buttons, checkboxes, or links, with arrow key navigation.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Text formatting\">\n * <Button>Bold</Button>\n * <Button>Italic</Button>\n * <Button>Underline</Button>\n * </Toolbar>\n *\n * // With render props\n * <Toolbar orientation=\"vertical\">\n * {({ orientation }) => (\n * <div data-orientation={orientation}>\n * <Button>Cut</Button>\n * <Button>Copy</Button>\n * <Button>Paste</Button>\n * </div>\n * )}\n * </Toolbar>\n * ```\n */\nexport function Toolbar(props: ToolbarProps): JSX.Element {\n const [local, ariaProps, domProps] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"children\", \"ref\"],\n [\"orientation\", \"aria-label\", \"aria-labelledby\"],\n );\n\n const ctx = useContext(ToolbarContext);\n const slotProps = () => {\n if (ctx?.slots && local.slot) {\n return ctx.slots[local.slot] || {};\n }\n return {};\n };\n\n const { toolbarProps, orientation } = createToolbar({\n get orientation() {\n return ariaProps.orientation;\n },\n get \"aria-label\"() {\n return (\n (ariaProps[\"aria-label\"] as string | undefined) ??\n (slotProps()[\"aria-label\"] as string | undefined)\n );\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"] as string | undefined;\n },\n });\n\n const renderValues = createMemo<ToolbarRenderProps>(() => ({\n orientation: orientation(),\n }));\n\n const resolvedClass = createMemo(() => {\n const cls = local.class;\n if (typeof cls === \"function\") {\n return cls(renderValues());\n }\n return cls ?? \"solidaria-Toolbar\";\n });\n\n const resolvedStyle = createMemo(() => {\n const style = local.style;\n if (typeof style === \"function\") {\n return style(renderValues());\n }\n return style;\n });\n\n const resolvedChildren = createMemo(() => {\n const children = props.children;\n if (typeof children === \"function\") {\n return (children as (props: ToolbarRenderProps) => JSX.Element)(renderValues());\n }\n return children;\n });\n\n const filteredDOMProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDOMProps()}\n {...toolbarProps}\n class={resolvedClass()}\n style={resolvedStyle()}\n slot={local.slot}\n data-orientation={orientation()}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n } else {\n local.ref.current = el;\n }\n }}\n >\n {resolvedChildren()}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;AA4CA,MAAa2B,iBAAiBzB,cAA0C,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;AA0B5E,SAAgB0B,QAAQC,OAAkC;CACxD,MAAM,CAACE,OAAOC,WAAWC,YAAY7B,WACnCyB,OACA;EAAC;EAAS;EAAS;EAAQ;EAAY;CAAK,GAC5C;EAAC;EAAe;EAAc;CAAiB,CACjD;CAEA,MAAMK,MAAM7B,WAAWsB,cAAc;CACrC,MAAMQ,kBAAkB;EACtB,IAAID,KAAKV,SAASO,MAAMK,MACtB,OAAOF,IAAIV,MAAMO,MAAMK,SAAS,CAAC;EAEnC,OAAO,CAAC;CACV;CAEA,MAAM,EAAEC,cAAczB,gBAAgBN,cAAc;EAClD,IAAIM,cAAc;GAChB,OAAOoB,UAAUpB;EACnB;EACA,IAAI,eAAe;GACjB,OACGoB,UAAU,iBACVG,UAAU,CAAC,CAAC;EAEjB;EACA,IAAI,oBAAoB;GACtB,OAAOH,UAAU;EACnB;CACF,CAAC;CAED,MAAMQ,eAAerC,kBAAsC,EACzDS,aAAaA,YAAY,EAC3B,EAAE;CAEF,MAAM6B,gBAAgBtC,iBAAiB;EACrC,MAAMuC,MAAMX,MAAMjB;EAClB,IAAI,OAAO4B,QAAQ,YACjB,OAAOA,IAAIF,aAAa,CAAC;EAE3B,OAAOE,OAAO;CAChB,CAAC;CAED,MAAMC,gBAAgBxC,iBAAiB;EACrC,MAAMa,QAAQe,MAAMf;EACpB,IAAI,OAAOA,UAAU,YACnB,OAAOA,MAAMwB,aAAa,CAAC;EAE7B,OAAOxB;CACT,CAAC;CAED,MAAM4B,mBAAmBzC,iBAAiB;EACxC,MAAM0C,WAAWhB,MAAMgB;EACvB,IAAI,OAAOA,aAAa,YACtB,OAAQA,SAAwDL,aAAa,CAAC;EAEhF,OAAOK;CACT,CAAC;CAED,MAAMC,mBAAmB3C,iBAAiBO,eAAeuB,UAAU,EAAEc,QAAQ,KAAK,CAAC,CAAC;CAEpF,cAAA;EAAA,IAAAC,OAAAC,eAAAC,MAAA;EAAAC,KAQU/B,OAAO;GACX,IAAI,CAACW,MAAMZ,KAAK;GAChB,IAAI,OAAOY,MAAMZ,QAAQ,YACvBY,MAAMZ,IAAIC,EAAE;QAEZW,MAAMZ,IAAIG,UAAUF;EAExB,GAAC4B,IAAA;EAAAI,OAAAJ,MAAAK,WAbGP,kBACAT,cAAY;GAAA,KAAA,WAAA;IAAA,OACTI,cAAc;GAAC;GAAA,IACtBzB,QAAK;IAAA,OAAE2B,cAAc;GAAC;GAAA,IACtBP,OAAI;IAAA,OAAEL,MAAMK;GAAI;GAAA,KAAA,sBAAA;IAAA,OACExB,YAAY;GAAC;EAAA,CAAA,GAAA,OAAA,IAAA;EAAA2C,OAAAP,MAU9BJ,gBAAgB;EAAAY,mBAAA;EAAA,OAAAR;CAAA,EAAA,CAAA;AAGvB"}
@@ -0,0 +1,92 @@
1
+ import { filterDOMProps } from "./utils.jsx";
2
+ import { createContext, createMemo, splitProps, useContext } from "solid-js";
3
+ import { createToolbar } from "@proyecto-viviana/solidaria";
4
+ //#region src/Toolbar.tsx
5
+ /**
6
+ * Toolbar component for solidaria-components
7
+ *
8
+ * Pre-wired headless toolbar component that combines aria hooks.
9
+ * Port of react-aria-components/src/Toolbar.tsx
10
+ */
11
+ const ToolbarContext = createContext(null);
12
+ /**
13
+ * A toolbar is a container for a set of interactive controls,
14
+ * such as buttons, checkboxes, or links, with arrow key navigation.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <Toolbar aria-label="Text formatting">
19
+ * <Button>Bold</Button>
20
+ * <Button>Italic</Button>
21
+ * <Button>Underline</Button>
22
+ * </Toolbar>
23
+ *
24
+ * // With render props
25
+ * <Toolbar orientation="vertical">
26
+ * {({ orientation }) => (
27
+ * <div data-orientation={orientation}>
28
+ * <Button>Cut</Button>
29
+ * <Button>Copy</Button>
30
+ * <Button>Paste</Button>
31
+ * </div>
32
+ * )}
33
+ * </Toolbar>
34
+ * ```
35
+ */
36
+ function Toolbar(props) {
37
+ const [local, ariaProps, domProps] = splitProps(props, [
38
+ "class",
39
+ "style",
40
+ "slot",
41
+ "children",
42
+ "ref"
43
+ ], [
44
+ "orientation",
45
+ "aria-label",
46
+ "aria-labelledby"
47
+ ]);
48
+ const ctx = useContext(ToolbarContext);
49
+ const slotProps = () => {
50
+ if (ctx?.slots && local.slot) return ctx.slots[local.slot] || {};
51
+ return {};
52
+ };
53
+ const { toolbarProps, orientation } = createToolbar({
54
+ get orientation() {
55
+ return ariaProps.orientation;
56
+ },
57
+ get "aria-label"() {
58
+ return ariaProps["aria-label"] ?? slotProps()["aria-label"];
59
+ },
60
+ get "aria-labelledby"() {
61
+ return ariaProps["aria-labelledby"];
62
+ }
63
+ });
64
+ const renderValues = createMemo(() => ({ orientation: orientation() }));
65
+ const resolvedClass = createMemo(() => {
66
+ const cls = local.class;
67
+ if (typeof cls === "function") return cls(renderValues());
68
+ return cls ?? "solidaria-Toolbar";
69
+ });
70
+ const resolvedStyle = createMemo(() => {
71
+ const style = local.style;
72
+ if (typeof style === "function") return style(renderValues());
73
+ return style;
74
+ });
75
+ const resolvedChildren = createMemo(() => {
76
+ const children = props.children;
77
+ if (typeof children === "function") return children(renderValues());
78
+ return children;
79
+ });
80
+ const filteredDOMProps = createMemo(() => filterDOMProps(domProps, { global: true }));
81
+ return <div {...filteredDOMProps()} {...toolbarProps} class={resolvedClass()} style={resolvedStyle()} slot={local.slot} data-orientation={orientation()} ref={(el) => {
82
+ if (!local.ref) return;
83
+ if (typeof local.ref === "function") local.ref(el);
84
+ else local.ref.current = el;
85
+ }}>
86
+ {resolvedChildren()}
87
+ </div>;
88
+ }
89
+ //#endregion
90
+ export { Toolbar, ToolbarContext };
91
+
92
+ //# sourceMappingURL=Toolbar.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.jsx","names":[],"sources":["../src/Toolbar.tsx"],"sourcesContent":["/**\n * Toolbar component for solidaria-components\n *\n * Pre-wired headless toolbar component that combines aria hooks.\n * Port of react-aria-components/src/Toolbar.tsx\n */\n\nimport {\n type JSX,\n type ParentProps,\n createContext,\n createMemo,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n createToolbar,\n type AriaToolbarProps,\n type Orientation,\n} from \"@proyecto-viviana/solidaria\";\nimport { type SlotProps, filterDOMProps } from \"./utils\";\n\nexport interface ToolbarRenderProps {\n /** The orientation of the toolbar. */\n orientation: Orientation;\n}\n\nexport interface ToolbarProps extends AriaToolbarProps, ParentProps, SlotProps {\n /** The CSS className for the element. A function may be provided to receive render props. */\n class?: string | ((renderProps: ToolbarRenderProps) => string);\n /** The inline style for the element. A function may be provided to receive render props. */\n style?: JSX.CSSProperties | ((renderProps: ToolbarRenderProps) => JSX.CSSProperties);\n /** Additional data-* attributes. */\n [key: `data-${string}`]: string | undefined;\n /** Ref for the toolbar element. */\n ref?: ((el: HTMLDivElement) => void) | { current?: HTMLDivElement | null };\n}\n\nexport interface ToolbarContextValue {\n slots?: {\n [name: string]: Record<string, unknown>;\n };\n}\n\nexport const ToolbarContext = createContext<ToolbarContextValue | null>(null);\n\n/**\n * A toolbar is a container for a set of interactive controls,\n * such as buttons, checkboxes, or links, with arrow key navigation.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Text formatting\">\n * <Button>Bold</Button>\n * <Button>Italic</Button>\n * <Button>Underline</Button>\n * </Toolbar>\n *\n * // With render props\n * <Toolbar orientation=\"vertical\">\n * {({ orientation }) => (\n * <div data-orientation={orientation}>\n * <Button>Cut</Button>\n * <Button>Copy</Button>\n * <Button>Paste</Button>\n * </div>\n * )}\n * </Toolbar>\n * ```\n */\nexport function Toolbar(props: ToolbarProps): JSX.Element {\n const [local, ariaProps, domProps] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"children\", \"ref\"],\n [\"orientation\", \"aria-label\", \"aria-labelledby\"],\n );\n\n const ctx = useContext(ToolbarContext);\n const slotProps = () => {\n if (ctx?.slots && local.slot) {\n return ctx.slots[local.slot] || {};\n }\n return {};\n };\n\n const { toolbarProps, orientation } = createToolbar({\n get orientation() {\n return ariaProps.orientation;\n },\n get \"aria-label\"() {\n return (\n (ariaProps[\"aria-label\"] as string | undefined) ??\n (slotProps()[\"aria-label\"] as string | undefined)\n );\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"] as string | undefined;\n },\n });\n\n const renderValues = createMemo<ToolbarRenderProps>(() => ({\n orientation: orientation(),\n }));\n\n const resolvedClass = createMemo(() => {\n const cls = local.class;\n if (typeof cls === \"function\") {\n return cls(renderValues());\n }\n return cls ?? \"solidaria-Toolbar\";\n });\n\n const resolvedStyle = createMemo(() => {\n const style = local.style;\n if (typeof style === \"function\") {\n return style(renderValues());\n }\n return style;\n });\n\n const resolvedChildren = createMemo(() => {\n const children = props.children;\n if (typeof children === \"function\") {\n return (children as (props: ToolbarRenderProps) => JSX.Element)(renderValues());\n }\n return children;\n });\n\n const filteredDOMProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDOMProps()}\n {...toolbarProps}\n class={resolvedClass()}\n style={resolvedStyle()}\n slot={local.slot}\n data-orientation={orientation()}\n ref={(el) => {\n if (!local.ref) return;\n if (typeof local.ref === \"function\") {\n local.ref(el);\n } else {\n local.ref.current = el;\n }\n }}\n >\n {resolvedChildren()}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AA4CA,MAAa,iBAAiB,cAA0C,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;AA0B5E,SAAgB,QAAQ,OAAkC;CACxD,MAAM,CAAC,OAAO,WAAW,YAAY,WACnC,OACA;EAAC;EAAS;EAAS;EAAQ;EAAY;CAAK,GAC5C;EAAC;EAAe;EAAc;CAAiB,CACjD;CAEA,MAAM,MAAM,WAAW,cAAc;CACrC,MAAM,kBAAkB;EACtB,IAAI,KAAK,SAAS,MAAM,MACtB,OAAO,IAAI,MAAM,MAAM,SAAS,CAAC;EAEnC,OAAO,CAAC;CACV;CAEA,MAAM,EAAE,cAAc,gBAAgB,cAAc;EAClD,IAAI,cAAc;GAChB,OAAO,UAAU;EACnB;EACA,IAAI,eAAe;GACjB,OACG,UAAU,iBACV,UAAU,CAAC,CAAC;EAEjB;EACA,IAAI,oBAAoB;GACtB,OAAO,UAAU;EACnB;CACF,CAAC;CAED,MAAM,eAAe,kBAAsC,EACzD,aAAa,YAAY,EAC3B,EAAE;CAEF,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,MAAM,MAAM;EAClB,IAAI,OAAO,QAAQ,YACjB,OAAO,IAAI,aAAa,CAAC;EAE3B,OAAO,OAAO;CAChB,CAAC;CAED,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,QAAQ,MAAM;EACpB,IAAI,OAAO,UAAU,YACnB,OAAO,MAAM,aAAa,CAAC;EAE7B,OAAO;CACT,CAAC;CAED,MAAM,mBAAmB,iBAAiB;EACxC,MAAM,WAAW,MAAM;EACvB,IAAI,OAAO,aAAa,YACtB,OAAQ,SAAwD,aAAa,CAAC;EAEhF,OAAO;CACT,CAAC;CAED,MAAM,mBAAmB,iBAAiB,eAAe,UAAU,EAAE,QAAQ,KAAK,CAAC,CAAC;CAEpF,OACE,CAAC,QACK,iBAAiB,OACjB,cACJ,OAAO,cAAc,GACrB,OAAO,cAAc,GACrB,MAAM,MAAM,MACZ,kBAAkB,YAAY,GAC9B,MAAM,OAAO;EACX,IAAI,CAAC,MAAM,KAAK;EAChB,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,EAAE;OAEZ,MAAM,IAAI,UAAU;CAExB,GACD;OACE,iBAAiB,EAAE;IACtB,EAAE;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../src/Tooltip.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EACR,KAAK,eAAe,EAQrB,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,IAAI,UAAU,EACvC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,mBAAmB,IAAI,SAAS,EAEtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AACrF,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,4BAA6B,SAAQ,UAAU,EAAE,SAAS;IACzE,yEAAyE;IACzE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC9C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAChD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAC5C,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACrB;AAED,UAAU,0BAA0B;IAClC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IAC9C,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;CACvC;AAGD,eAAO,MAAM,cAAc,+DAAwB,CAAC;AACpD,eAAO,MAAM,0BAA0B,wDAAkD,CAAC;AAE1F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,4BAA4B,CAiFxE,CAAC;AAqKF;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAkGxD;AA+UD,YAAY,EAAE,mBAAmB,EAAE,CAAC"}