@proyecto-viviana/solidaria-components 0.3.2 → 0.4.1

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 (417) hide show
  1. package/dist/ActionBar.d.ts.map +1 -1
  2. package/dist/ActionBar.js +175 -0
  3. package/dist/ActionBar.js.map +1 -0
  4. package/dist/ActionBar.jsx +119 -0
  5. package/dist/ActionBar.jsx.map +1 -0
  6. package/dist/ActionGroup.d.ts.map +1 -1
  7. package/dist/ActionGroup.js +179 -0
  8. package/dist/ActionGroup.js.map +1 -0
  9. package/dist/ActionGroup.jsx +129 -0
  10. package/dist/ActionGroup.jsx.map +1 -0
  11. package/dist/Alert.js +111 -0
  12. package/dist/Alert.js.map +1 -0
  13. package/dist/Alert.jsx +82 -0
  14. package/dist/Alert.jsx.map +1 -0
  15. package/dist/Autocomplete.d.ts +2 -2
  16. package/dist/Autocomplete.d.ts.map +1 -1
  17. package/dist/Autocomplete.js +130 -0
  18. package/dist/Autocomplete.js.map +1 -0
  19. package/dist/Autocomplete.jsx +116 -0
  20. package/dist/Autocomplete.jsx.map +1 -0
  21. package/dist/Breadcrumbs.d.ts.map +1 -1
  22. package/dist/Breadcrumbs.js +333 -0
  23. package/dist/Breadcrumbs.js.map +1 -0
  24. package/dist/Breadcrumbs.jsx +261 -0
  25. package/dist/Breadcrumbs.jsx.map +1 -0
  26. package/dist/Button.d.ts.map +1 -1
  27. package/dist/Button.js +348 -0
  28. package/dist/Button.js.map +1 -0
  29. package/dist/Button.jsx +314 -0
  30. package/dist/Button.jsx.map +1 -0
  31. package/dist/Calendar.d.ts +4 -4
  32. package/dist/Calendar.d.ts.map +1 -1
  33. package/dist/Calendar.js +573 -0
  34. package/dist/Calendar.js.map +1 -0
  35. package/dist/Calendar.jsx +342 -0
  36. package/dist/Calendar.jsx.map +1 -0
  37. package/dist/CalendarPicker.d.ts +33 -0
  38. package/dist/CalendarPicker.d.ts.map +1 -0
  39. package/dist/CalendarPicker.js +44 -0
  40. package/dist/CalendarPicker.js.map +1 -0
  41. package/dist/CalendarPicker.jsx +44 -0
  42. package/dist/CalendarPicker.jsx.map +1 -0
  43. package/dist/Checkbox.d.ts +83 -4
  44. package/dist/Checkbox.d.ts.map +1 -1
  45. package/dist/Checkbox.js +923 -0
  46. package/dist/Checkbox.js.map +1 -0
  47. package/dist/Checkbox.jsx +707 -0
  48. package/dist/Checkbox.jsx.map +1 -0
  49. package/dist/Collection.d.ts.map +1 -1
  50. package/dist/Collection.js +202 -0
  51. package/dist/Collection.js.map +1 -0
  52. package/dist/Collection.jsx +152 -0
  53. package/dist/Collection.jsx.map +1 -0
  54. package/dist/Color.d.ts.map +1 -1
  55. package/dist/Color.js +1717 -0
  56. package/dist/Color.js.map +1 -0
  57. package/dist/Color.jsx +1340 -0
  58. package/dist/Color.jsx.map +1 -0
  59. package/dist/ColorEditor.js +208 -0
  60. package/dist/ColorEditor.js.map +1 -0
  61. package/dist/ColorEditor.jsx +120 -0
  62. package/dist/ColorEditor.jsx.map +1 -0
  63. package/dist/ComboBox.d.ts +8 -4
  64. package/dist/ComboBox.d.ts.map +1 -1
  65. package/dist/ComboBox.js +1000 -0
  66. package/dist/ComboBox.js.map +1 -0
  67. package/dist/ComboBox.jsx +724 -0
  68. package/dist/ComboBox.jsx.map +1 -0
  69. package/dist/ContextualHelpTrigger.js +146 -0
  70. package/dist/ContextualHelpTrigger.js.map +1 -0
  71. package/dist/ContextualHelpTrigger.jsx +109 -0
  72. package/dist/ContextualHelpTrigger.jsx.map +1 -0
  73. package/dist/DateField.d.ts +14 -5
  74. package/dist/DateField.d.ts.map +1 -1
  75. package/dist/DateField.js +4 -0
  76. package/dist/DateField.jsx +4 -0
  77. package/dist/DateField2.js +502 -0
  78. package/dist/DateField2.js.map +1 -0
  79. package/dist/DateField2.jsx +354 -0
  80. package/dist/DateField2.jsx.map +1 -0
  81. package/dist/DatePicker.d.ts +46 -7
  82. package/dist/DatePicker.d.ts.map +1 -1
  83. package/dist/DatePicker.js +7 -0
  84. package/dist/DatePicker.jsx +7 -0
  85. package/dist/DatePicker2.js +1171 -0
  86. package/dist/DatePicker2.js.map +1 -0
  87. package/dist/DatePicker2.jsx +820 -0
  88. package/dist/DatePicker2.jsx.map +1 -0
  89. package/dist/DateRangePickerContext.d.ts +2 -0
  90. package/dist/DateRangePickerContext.d.ts.map +1 -1
  91. package/dist/Dialog.d.ts.map +1 -1
  92. package/dist/Dialog.js +337 -0
  93. package/dist/Dialog.js.map +1 -0
  94. package/dist/Dialog.jsx +192 -0
  95. package/dist/Dialog.jsx.map +1 -0
  96. package/dist/Disclosure.d.ts.map +1 -1
  97. package/dist/Disclosure.js +331 -0
  98. package/dist/Disclosure.js.map +1 -0
  99. package/dist/Disclosure.jsx +230 -0
  100. package/dist/Disclosure.jsx.map +1 -0
  101. package/dist/DragAndDrop.d.ts.map +1 -1
  102. package/dist/DragAndDrop.js +176 -0
  103. package/dist/DragAndDrop.js.map +1 -0
  104. package/dist/DragAndDrop.jsx +160 -0
  105. package/dist/DragAndDrop.jsx.map +1 -0
  106. package/dist/DropZone.d.ts.map +1 -1
  107. package/dist/DropZone.js +189 -0
  108. package/dist/DropZone.js.map +1 -0
  109. package/dist/DropZone.jsx +144 -0
  110. package/dist/DropZone.jsx.map +1 -0
  111. package/dist/FieldError.js +66 -0
  112. package/dist/FieldError.js.map +1 -0
  113. package/dist/FieldError.jsx +47 -0
  114. package/dist/FieldError.jsx.map +1 -0
  115. package/dist/FileTrigger.js +79 -0
  116. package/dist/FileTrigger.js.map +1 -0
  117. package/dist/FileTrigger.jsx +49 -0
  118. package/dist/FileTrigger.jsx.map +1 -0
  119. package/dist/Focusable.js +70 -0
  120. package/dist/Focusable.js.map +1 -0
  121. package/dist/Focusable.jsx +69 -0
  122. package/dist/Focusable.jsx.map +1 -0
  123. package/dist/Form.js +99 -0
  124. package/dist/Form.js.map +1 -0
  125. package/dist/Form.jsx +73 -0
  126. package/dist/Form.jsx.map +1 -0
  127. package/dist/GridList.d.ts +34 -2
  128. package/dist/GridList.d.ts.map +1 -1
  129. package/dist/GridList.js +723 -0
  130. package/dist/GridList.js.map +1 -0
  131. package/dist/GridList.jsx +552 -0
  132. package/dist/GridList.jsx.map +1 -0
  133. package/dist/Icon.d.ts.map +1 -1
  134. package/dist/Icon.js +127 -0
  135. package/dist/Icon.js.map +1 -0
  136. package/dist/Icon.jsx +72 -0
  137. package/dist/Icon.jsx.map +1 -0
  138. package/dist/Keyboard.js +30 -0
  139. package/dist/Keyboard.js.map +1 -0
  140. package/dist/Keyboard.jsx +24 -0
  141. package/dist/Keyboard.jsx.map +1 -0
  142. package/dist/Landmark.js +134 -0
  143. package/dist/Landmark.js.map +1 -0
  144. package/dist/Landmark.jsx +118 -0
  145. package/dist/Landmark.jsx.map +1 -0
  146. package/dist/Link.d.ts.map +1 -1
  147. package/dist/Link.js +219 -0
  148. package/dist/Link.js.map +1 -0
  149. package/dist/Link.jsx +189 -0
  150. package/dist/Link.jsx.map +1 -0
  151. package/dist/ListBox.d.ts +2 -2
  152. package/dist/ListBox.d.ts.map +1 -1
  153. package/dist/ListBox.js +831 -0
  154. package/dist/ListBox.js.map +1 -0
  155. package/dist/ListBox.jsx +644 -0
  156. package/dist/ListBox.jsx.map +1 -0
  157. package/dist/Menu.d.ts +27 -9
  158. package/dist/Menu.d.ts.map +1 -1
  159. package/dist/Menu.js +1254 -0
  160. package/dist/Menu.js.map +1 -0
  161. package/dist/Menu.jsx +1042 -0
  162. package/dist/Menu.jsx.map +1 -0
  163. package/dist/Meter.d.ts.map +1 -1
  164. package/dist/Meter.js +123 -0
  165. package/dist/Meter.js.map +1 -0
  166. package/dist/Meter.jsx +107 -0
  167. package/dist/Meter.jsx.map +1 -0
  168. package/dist/Modal.d.ts.map +1 -1
  169. package/dist/Modal.js +382 -0
  170. package/dist/Modal.js.map +1 -0
  171. package/dist/Modal.jsx +314 -0
  172. package/dist/Modal.jsx.map +1 -0
  173. package/dist/NumberField.d.ts +3 -3
  174. package/dist/NumberField.d.ts.map +1 -1
  175. package/dist/NumberField.js +573 -0
  176. package/dist/NumberField.js.map +1 -0
  177. package/dist/NumberField.jsx +443 -0
  178. package/dist/NumberField.jsx.map +1 -0
  179. package/dist/Popover.d.ts +10 -2
  180. package/dist/Popover.d.ts.map +1 -1
  181. package/dist/Popover.js +471 -0
  182. package/dist/Popover.js.map +1 -0
  183. package/dist/Popover.jsx +354 -0
  184. package/dist/Popover.jsx.map +1 -0
  185. package/dist/Pressable.js +69 -0
  186. package/dist/Pressable.js.map +1 -0
  187. package/dist/Pressable.jsx +68 -0
  188. package/dist/Pressable.jsx.map +1 -0
  189. package/dist/ProgressBar.d.ts.map +1 -1
  190. package/dist/ProgressBar.js +130 -0
  191. package/dist/ProgressBar.js.map +1 -0
  192. package/dist/ProgressBar.jsx +114 -0
  193. package/dist/ProgressBar.jsx.map +1 -0
  194. package/dist/RadioGroup.d.ts +82 -4
  195. package/dist/RadioGroup.d.ts.map +1 -1
  196. package/dist/RadioGroup.js +931 -0
  197. package/dist/RadioGroup.js.map +1 -0
  198. package/dist/RadioGroup.jsx +681 -0
  199. package/dist/RadioGroup.jsx.map +1 -0
  200. package/dist/RangeCalendar.d.ts.map +1 -1
  201. package/dist/RangeCalendar.js +546 -0
  202. package/dist/RangeCalendar.js.map +1 -0
  203. package/dist/RangeCalendar.jsx +323 -0
  204. package/dist/RangeCalendar.jsx.map +1 -0
  205. package/dist/RouterProvider.js +118 -0
  206. package/dist/RouterProvider.js.map +1 -0
  207. package/dist/RouterProvider.jsx +112 -0
  208. package/dist/RouterProvider.jsx.map +1 -0
  209. package/dist/SearchField.d.ts +2 -2
  210. package/dist/SearchField.d.ts.map +1 -1
  211. package/dist/SearchField.js +667 -0
  212. package/dist/SearchField.js.map +1 -0
  213. package/dist/SearchField.jsx +550 -0
  214. package/dist/SearchField.jsx.map +1 -0
  215. package/dist/Select.d.ts +7 -0
  216. package/dist/Select.d.ts.map +1 -1
  217. package/dist/Select.js +1044 -0
  218. package/dist/Select.js.map +1 -0
  219. package/dist/Select.jsx +759 -0
  220. package/dist/Select.jsx.map +1 -0
  221. package/dist/SelectionIndicator.d.ts.map +1 -1
  222. package/dist/SelectionIndicator.js +86 -0
  223. package/dist/SelectionIndicator.js.map +1 -0
  224. package/dist/SelectionIndicator.jsx +50 -0
  225. package/dist/SelectionIndicator.jsx.map +1 -0
  226. package/dist/Separator.js +97 -0
  227. package/dist/Separator.js.map +1 -0
  228. package/dist/Separator.jsx +85 -0
  229. package/dist/Separator.jsx.map +1 -0
  230. package/dist/SharedElementTransition.d.ts.map +1 -1
  231. package/dist/SharedElementTransition.js +167 -0
  232. package/dist/SharedElementTransition.js.map +1 -0
  233. package/dist/SharedElementTransition.jsx +140 -0
  234. package/dist/SharedElementTransition.jsx.map +1 -0
  235. package/dist/Slider.d.ts +33 -1
  236. package/dist/Slider.d.ts.map +1 -1
  237. package/dist/Slider.js +515 -0
  238. package/dist/Slider.js.map +1 -0
  239. package/dist/Slider.jsx +403 -0
  240. package/dist/Slider.jsx.map +1 -0
  241. package/dist/StepList.d.ts.map +1 -1
  242. package/dist/StepList.js +191 -0
  243. package/dist/StepList.js.map +1 -0
  244. package/dist/StepList.jsx +136 -0
  245. package/dist/StepList.jsx.map +1 -0
  246. package/dist/Switch.d.ts +65 -2
  247. package/dist/Switch.d.ts.map +1 -1
  248. package/dist/Switch.js +534 -0
  249. package/dist/Switch.js.map +1 -0
  250. package/dist/Switch.jsx +393 -0
  251. package/dist/Switch.jsx.map +1 -0
  252. package/dist/Table.d.ts +50 -0
  253. package/dist/Table.d.ts.map +1 -1
  254. package/dist/Table.js +1766 -0
  255. package/dist/Table.js.map +1 -0
  256. package/dist/Table.jsx +1355 -0
  257. package/dist/Table.jsx.map +1 -0
  258. package/dist/Tabs.d.ts +0 -4
  259. package/dist/Tabs.d.ts.map +1 -1
  260. package/dist/Tabs.js +598 -0
  261. package/dist/Tabs.js.map +1 -0
  262. package/dist/Tabs.jsx +367 -0
  263. package/dist/Tabs.jsx.map +1 -0
  264. package/dist/TagGroup.d.ts +3 -1
  265. package/dist/TagGroup.d.ts.map +1 -1
  266. package/dist/TagGroup.js +382 -0
  267. package/dist/TagGroup.js.map +1 -0
  268. package/dist/TagGroup.jsx +273 -0
  269. package/dist/TagGroup.jsx.map +1 -0
  270. package/dist/Text.d.ts +18 -6
  271. package/dist/Text.d.ts.map +1 -1
  272. package/dist/Text.js +42 -0
  273. package/dist/Text.js.map +1 -0
  274. package/dist/Text.jsx +35 -0
  275. package/dist/Text.jsx.map +1 -0
  276. package/dist/TextField.d.ts +6 -6
  277. package/dist/TextField.d.ts.map +1 -1
  278. package/dist/TextField.js +439 -0
  279. package/dist/TextField.js.map +1 -0
  280. package/dist/TextField.jsx +406 -0
  281. package/dist/TextField.jsx.map +1 -0
  282. package/dist/TimeField.d.ts +17 -53
  283. package/dist/TimeField.d.ts.map +1 -1
  284. package/dist/TimeField.js +278 -0
  285. package/dist/TimeField.js.map +1 -0
  286. package/dist/TimeField.jsx +218 -0
  287. package/dist/TimeField.jsx.map +1 -0
  288. package/dist/Toast.d.ts +14 -0
  289. package/dist/Toast.d.ts.map +1 -1
  290. package/dist/Toast.js +551 -0
  291. package/dist/Toast.js.map +1 -0
  292. package/dist/Toast.jsx +361 -0
  293. package/dist/Toast.jsx.map +1 -0
  294. package/dist/ToggleButton.d.ts.map +1 -1
  295. package/dist/ToggleButton.js +123 -0
  296. package/dist/ToggleButton.js.map +1 -0
  297. package/dist/ToggleButton.jsx +88 -0
  298. package/dist/ToggleButton.jsx.map +1 -0
  299. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  300. package/dist/ToggleButtonGroup.js +114 -0
  301. package/dist/ToggleButtonGroup.js.map +1 -0
  302. package/dist/ToggleButtonGroup.jsx +85 -0
  303. package/dist/ToggleButtonGroup.jsx.map +1 -0
  304. package/dist/Toolbar.js +112 -0
  305. package/dist/Toolbar.js.map +1 -0
  306. package/dist/Toolbar.jsx +92 -0
  307. package/dist/Toolbar.jsx.map +1 -0
  308. package/dist/Tooltip.d.ts.map +1 -1
  309. package/dist/Tooltip.js +539 -0
  310. package/dist/Tooltip.js.map +1 -0
  311. package/dist/Tooltip.jsx +465 -0
  312. package/dist/Tooltip.jsx.map +1 -0
  313. package/dist/Tree.d.ts +14 -2
  314. package/dist/Tree.d.ts.map +1 -1
  315. package/dist/Tree.js +1424 -0
  316. package/dist/Tree.js.map +1 -0
  317. package/dist/Tree.jsx +1172 -0
  318. package/dist/Tree.jsx.map +1 -0
  319. package/dist/Virtualizer.d.ts +16 -2
  320. package/dist/Virtualizer.d.ts.map +1 -1
  321. package/dist/Virtualizer.js +2 -0
  322. package/dist/Virtualizer.jsx +2 -0
  323. package/dist/Virtualizer2.js +751 -0
  324. package/dist/Virtualizer2.js.map +1 -0
  325. package/dist/Virtualizer2.jsx +730 -0
  326. package/dist/Virtualizer2.jsx.map +1 -0
  327. package/dist/VirtualizerLayouts.d.ts +18 -0
  328. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  329. package/dist/VisuallyHidden.js +42 -0
  330. package/dist/VisuallyHidden.js.map +1 -0
  331. package/dist/VisuallyHidden.jsx +35 -0
  332. package/dist/VisuallyHidden.jsx.map +1 -0
  333. package/dist/contexts.js +33 -0
  334. package/dist/contexts.js.map +1 -0
  335. package/dist/contexts.jsx +33 -0
  336. package/dist/contexts.jsx.map +1 -0
  337. package/dist/index.d.ts +9 -9
  338. package/dist/index.d.ts.map +1 -1
  339. package/dist/index.js +69 -23932
  340. package/dist/index.jsx +69 -18337
  341. package/dist/useDragAndDrop.d.ts +0 -8
  342. package/dist/useDragAndDrop.d.ts.map +1 -1
  343. package/dist/useDragAndDrop.js +2 -0
  344. package/dist/useDragAndDrop.jsx +2 -0
  345. package/dist/useDragAndDrop2.js +399 -0
  346. package/dist/useDragAndDrop2.js.map +1 -0
  347. package/dist/useDragAndDrop2.jsx +399 -0
  348. package/dist/useDragAndDrop2.jsx.map +1 -0
  349. package/dist/utils.d.ts +84 -11
  350. package/dist/utils.d.ts.map +1 -1
  351. package/dist/utils.js +285 -0
  352. package/dist/utils.js.map +1 -0
  353. package/dist/utils.jsx +277 -0
  354. package/dist/utils.jsx.map +1 -0
  355. package/dist/virtualizer/Layout.js +144 -0
  356. package/dist/virtualizer/Layout.js.map +1 -0
  357. package/dist/virtualizer/Layout.jsx +144 -0
  358. package/dist/virtualizer/Layout.jsx.map +1 -0
  359. package/package.json +395 -4
  360. package/src/ActionBar.tsx +10 -12
  361. package/src/ActionGroup.tsx +5 -3
  362. package/src/Autocomplete.tsx +14 -9
  363. package/src/Breadcrumbs.tsx +58 -39
  364. package/src/Button.tsx +22 -2
  365. package/src/Calendar.tsx +57 -11
  366. package/src/CalendarPicker.tsx +73 -0
  367. package/src/Checkbox.tsx +539 -3
  368. package/src/Collection.tsx +9 -3
  369. package/src/Color.tsx +84 -41
  370. package/src/ComboBox.tsx +97 -21
  371. package/src/DateField.tsx +304 -53
  372. package/src/DatePicker.tsx +402 -62
  373. package/src/DateRangePickerContext.tsx +2 -0
  374. package/src/Dialog.tsx +13 -5
  375. package/src/Disclosure.tsx +7 -1
  376. package/src/DragAndDrop.tsx +3 -1
  377. package/src/DropZone.tsx +3 -1
  378. package/src/GridList.tsx +133 -26
  379. package/src/Icon.tsx +3 -1
  380. package/src/Link.tsx +3 -1
  381. package/src/ListBox.tsx +354 -25
  382. package/src/Menu.tsx +252 -128
  383. package/src/Meter.tsx +3 -1
  384. package/src/Modal.tsx +120 -56
  385. package/src/NumberField.tsx +51 -8
  386. package/src/Popover.tsx +68 -17
  387. package/src/ProgressBar.tsx +3 -1
  388. package/src/RadioGroup.tsx +468 -4
  389. package/src/RangeCalendar.tsx +123 -2
  390. package/src/SearchField.tsx +80 -4
  391. package/src/Select.tsx +122 -26
  392. package/src/SelectionIndicator.tsx +3 -1
  393. package/src/SharedElementTransition.tsx +95 -37
  394. package/src/Slider.tsx +159 -13
  395. package/src/StepList.tsx +0 -7
  396. package/src/Switch.tsx +395 -2
  397. package/src/Table.tsx +428 -99
  398. package/src/Tabs.tsx +17 -45
  399. package/src/TagGroup.tsx +29 -7
  400. package/src/Text.tsx +31 -10
  401. package/src/TextField.tsx +44 -6
  402. package/src/TimeField.tsx +127 -192
  403. package/src/Toast.tsx +79 -14
  404. package/src/ToggleButton.tsx +3 -1
  405. package/src/ToggleButtonGroup.tsx +3 -1
  406. package/src/Tooltip.tsx +3 -1
  407. package/src/Tree.tsx +91 -13
  408. package/src/Virtualizer.tsx +180 -31
  409. package/src/VirtualizerLayouts.ts +45 -10
  410. package/src/index.ts +51 -8
  411. package/src/useDragAndDrop.ts +8 -10
  412. package/src/utils.tsx +246 -30
  413. package/dist/HiddenTimeInput.d.ts +0 -25
  414. package/dist/HiddenTimeInput.d.ts.map +0 -1
  415. package/dist/index.js.map +0 -1
  416. package/dist/index.jsx.map +0 -1
  417. package/src/HiddenTimeInput.tsx +0 -133
package/dist/Tabs.js ADDED
@@ -0,0 +1,598 @@
1
+ import { filterDOMProps, useRenderProps } from "./utils.js";
2
+ import { SharedElementTransition } from "./SharedElementTransition.js";
3
+ import { SelectionIndicator, SelectionIndicatorContext } from "./SelectionIndicator.js";
4
+ import { addEventListener, className, createComponent, delegateEvents, effect, getNextElement, insert, memo, mergeProps, runHydrationEvents, setAttribute, setProperty, spread, style, template, use } from "solid-js/web";
5
+ import { For, Show, createContext, createEffect, createMemo, createSignal, onCleanup, splitProps, useContext } from "solid-js";
6
+ import { createFocusRing, createHover, createTab, createTabList, createTabPanel } from "@proyecto-viviana/solidaria";
7
+ import { createTabListState } from "@proyecto-viviana/solid-stately";
8
+ //#region src/Tabs.tsx
9
+ /**
10
+ * Tabs component for solidaria-components
11
+ *
12
+ * A pre-wired headless tabs component that combines state + aria hooks.
13
+ * Port of react-aria-components/src/Tabs.tsx
14
+ */
15
+ var _tmpl$ = /*#__PURE__*/ template(`<div>`), _tmpl$2 = /*#__PURE__*/ template(`<div class=solidaria-TabList role=tablist>`), _tmpl$3 = /*#__PURE__*/ template(`<div class=solidaria-Tab role=tab>`);
16
+ function assignRef(ref, element) {
17
+ if (!ref) return;
18
+ if (typeof ref === "function") ref(element);
19
+ else if (typeof ref === "object" && "current" in ref) ref.current = element;
20
+ }
21
+ const TabsContext = createContext(null);
22
+ const TabsStateContext = createContext(null);
23
+ function collectionItemKey(item) {
24
+ const tab = item;
25
+ const key = tab.id ?? tab.key;
26
+ if (key == null) throw new Error("Tabs collection items require an id or key.");
27
+ return key;
28
+ }
29
+ function staticTabText(tab) {
30
+ return tab.textValue ?? String(tab.id);
31
+ }
32
+ /**
33
+ * Tabs provide a way to organize content into multiple sections, with only one section visible at a time.
34
+ */
35
+ function Tabs(props) {
36
+ const [local, stateProps, rest] = splitProps(props, [
37
+ "class",
38
+ "style",
39
+ "slot",
40
+ "ref"
41
+ ], [
42
+ "items",
43
+ "getKey",
44
+ "getTextValue",
45
+ "getDisabled",
46
+ "disabledKeys",
47
+ "selectedKey",
48
+ "defaultSelectedKey",
49
+ "onSelectionChange",
50
+ "isDisabled",
51
+ "keyboardActivation",
52
+ "orientation"
53
+ ]);
54
+ const [tabListItems, setTabListItems] = createSignal(void 0);
55
+ const [registeredTabs, setRegisteredTabs] = createSignal([]);
56
+ const effectiveItems = createMemo(() => {
57
+ if (stateProps.items) return stateProps.items;
58
+ if (tabListItems()) return tabListItems() ?? [];
59
+ return registeredTabs();
60
+ });
61
+ const state = createTabListState({
62
+ get items() {
63
+ return effectiveItems();
64
+ },
65
+ get getKey() {
66
+ return stateProps.getKey ?? collectionItemKey;
67
+ },
68
+ get getTextValue() {
69
+ return stateProps.getTextValue ?? ((item) => {
70
+ const tab = item;
71
+ return tab.textValue ?? tab.label ?? staticTabText(tab);
72
+ });
73
+ },
74
+ get getDisabled() {
75
+ return stateProps.getDisabled ?? ((item) => {
76
+ return item.isDisabled ?? false;
77
+ });
78
+ },
79
+ get disabledKeys() {
80
+ return stateProps.disabledKeys;
81
+ },
82
+ get selectedKey() {
83
+ return stateProps.selectedKey;
84
+ },
85
+ get defaultSelectedKey() {
86
+ return stateProps.defaultSelectedKey;
87
+ },
88
+ get onSelectionChange() {
89
+ return stateProps.onSelectionChange;
90
+ },
91
+ get isDisabled() {
92
+ return stateProps.isDisabled;
93
+ },
94
+ get keyboardActivation() {
95
+ return stateProps.keyboardActivation;
96
+ },
97
+ get orientation() {
98
+ return stateProps.orientation;
99
+ }
100
+ });
101
+ const renderValues = createMemo(() => ({
102
+ orientation: state.orientation(),
103
+ isDisabled: state.isDisabled()
104
+ }));
105
+ const renderProps = useRenderProps({
106
+ class: local.class,
107
+ style: local.style,
108
+ get children() {
109
+ return props.children;
110
+ },
111
+ defaultClassName: "solidaria-Tabs"
112
+ }, renderValues);
113
+ const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
114
+ const contextValue = {
115
+ state,
116
+ items: effectiveItems,
117
+ setTabListItems(items) {
118
+ setTabListItems(() => items);
119
+ },
120
+ registerTab(tab) {
121
+ setRegisteredTabs((current) => {
122
+ const next = current.filter((item) => item.id !== tab.id);
123
+ next.push(tab);
124
+ return next;
125
+ });
126
+ },
127
+ unregisterTab(id) {
128
+ setRegisteredTabs((current) => current.filter((item) => item.id !== id));
129
+ }
130
+ };
131
+ return createComponent(TabsContext.Provider, {
132
+ value: contextValue,
133
+ get children() {
134
+ return createComponent(TabsStateContext.Provider, {
135
+ value: state,
136
+ get children() {
137
+ var _el$ = getNextElement(_tmpl$);
138
+ use((element) => assignRef(local.ref, element), _el$);
139
+ spread(_el$, mergeProps(domProps, {
140
+ get ["class"]() {
141
+ return renderProps.class();
142
+ },
143
+ get style() {
144
+ return renderProps.style();
145
+ },
146
+ get ["data-orientation"]() {
147
+ return state.orientation();
148
+ },
149
+ get ["data-disabled"]() {
150
+ return state.isDisabled() || void 0;
151
+ }
152
+ }), false, true);
153
+ insert(_el$, () => props.children);
154
+ runHydrationEvents();
155
+ return _el$;
156
+ }
157
+ });
158
+ }
159
+ });
160
+ }
161
+ /**
162
+ * A TabList contains Tab elements that represent the available tabs.
163
+ */
164
+ function TabList(props) {
165
+ const [local, collectionProps, ariaProps] = splitProps(props, [
166
+ "class",
167
+ "style",
168
+ "slot"
169
+ ], ["items"]);
170
+ return createComponent(Show, {
171
+ when: useContext(TabsContext),
172
+ get fallback() {
173
+ return getNextElement(_tmpl$2);
174
+ },
175
+ children: (ctx) => createComponent(TabListInner, {
176
+ get context() {
177
+ return ctx();
178
+ },
179
+ local,
180
+ get items() {
181
+ return collectionProps.items;
182
+ },
183
+ ariaProps,
184
+ get children() {
185
+ return props.children;
186
+ }
187
+ })
188
+ });
189
+ }
190
+ /** Inner TabList component that has access to context */
191
+ function TabListInner(props) {
192
+ const state = props.context.state;
193
+ const items = props.context.items;
194
+ const renderItem = createMemo(() => {
195
+ if (typeof props.children !== "function") return;
196
+ if (props.children.length === 0 && props.items === void 0) return;
197
+ return props.children;
198
+ });
199
+ const renderedChildren = createMemo(() => {
200
+ if (renderItem() || typeof props.children !== "function") return props.children;
201
+ return props.children();
202
+ });
203
+ createEffect(() => {
204
+ props.context.setTabListItems(props.items);
205
+ });
206
+ onCleanup(() => {
207
+ props.context.setTabListItems(void 0);
208
+ });
209
+ const { tabListProps } = createTabList(props.ariaProps, state);
210
+ const renderValues = createMemo(() => ({
211
+ orientation: state.orientation(),
212
+ isDisabled: state.isDisabled()
213
+ }));
214
+ const renderProps = useRenderProps({
215
+ class: props.local.class,
216
+ style: props.local.style,
217
+ defaultClassName: "solidaria-TabList"
218
+ }, renderValues);
219
+ const handleKeyDown = (e) => {
220
+ tabListProps.onKeyDown(e);
221
+ };
222
+ const handleFocus = (e) => {
223
+ tabListProps.onFocusIn(e);
224
+ };
225
+ const handleBlur = (e) => {
226
+ tabListProps.onFocusOut(e);
227
+ };
228
+ return (() => {
229
+ var _el$3 = getNextElement(_tmpl$);
230
+ _el$3.$$focusout = handleBlur;
231
+ _el$3.$$focusin = handleFocus;
232
+ _el$3.$$keydown = handleKeyDown;
233
+ insert(_el$3, (() => {
234
+ var _c$ = memo(() => !!renderItem());
235
+ return () => _c$() ? createComponent(SharedElementTransition, { get children() {
236
+ return createComponent(For, {
237
+ get each() {
238
+ return props.items ?? items();
239
+ },
240
+ children: (item) => renderItem()?.(item)
241
+ });
242
+ } }) : renderedChildren();
243
+ })());
244
+ effect((_p$) => {
245
+ var _v$ = tabListProps.role, _v$2 = tabListProps["aria-orientation"], _v$3 = tabListProps["aria-label"], _v$4 = tabListProps["aria-labelledby"], _v$5 = tabListProps["aria-describedby"], _v$6 = renderProps.class(), _v$7 = renderProps.style(), _v$8 = state.orientation(), _v$9 = state.isDisabled() || void 0;
246
+ _v$ !== _p$.e && setAttribute(_el$3, "role", _p$.e = _v$);
247
+ _v$2 !== _p$.t && setAttribute(_el$3, "aria-orientation", _p$.t = _v$2);
248
+ _v$3 !== _p$.a && setAttribute(_el$3, "aria-label", _p$.a = _v$3);
249
+ _v$4 !== _p$.o && setAttribute(_el$3, "aria-labelledby", _p$.o = _v$4);
250
+ _v$5 !== _p$.i && setAttribute(_el$3, "aria-describedby", _p$.i = _v$5);
251
+ _v$6 !== _p$.n && className(_el$3, _p$.n = _v$6);
252
+ _p$.s = style(_el$3, _v$7, _p$.s);
253
+ _v$8 !== _p$.h && setAttribute(_el$3, "data-orientation", _p$.h = _v$8);
254
+ _v$9 !== _p$.r && setAttribute(_el$3, "data-disabled", _p$.r = _v$9);
255
+ return _p$;
256
+ }, {
257
+ e: void 0,
258
+ t: void 0,
259
+ a: void 0,
260
+ o: void 0,
261
+ i: void 0,
262
+ n: void 0,
263
+ s: void 0,
264
+ h: void 0,
265
+ r: void 0
266
+ });
267
+ runHydrationEvents();
268
+ return _el$3;
269
+ })();
270
+ }
271
+ /**
272
+ * A Tab represents an individual tab in a TabList.
273
+ */
274
+ function Tab(props) {
275
+ const [local, ariaProps] = splitProps(props, [
276
+ "class",
277
+ "style",
278
+ "slot",
279
+ "id"
280
+ ]);
281
+ const context = useContext(TabsStateContext);
282
+ const tabsContext = useContext(TabsContext);
283
+ return createComponent(Show, {
284
+ when: context,
285
+ get fallback() {
286
+ return getNextElement(_tmpl$3);
287
+ },
288
+ children: (state) => createComponent(TabInner, {
289
+ get state() {
290
+ return state();
291
+ },
292
+ tabsContext,
293
+ local,
294
+ ariaProps,
295
+ get children() {
296
+ return props.children;
297
+ }
298
+ })
299
+ });
300
+ }
301
+ /** Inner Tab component that has access to context */
302
+ function TabInner(props) {
303
+ let tabRef;
304
+ const textValue = () => {
305
+ if (props.ariaProps["aria-label"]) return props.ariaProps["aria-label"];
306
+ return typeof props.children === "string" ? props.children : void 0;
307
+ };
308
+ createEffect(() => {
309
+ props.tabsContext?.registerTab({
310
+ id: props.local.id,
311
+ textValue: textValue(),
312
+ isDisabled: props.ariaProps.isDisabled
313
+ });
314
+ });
315
+ onCleanup(() => {
316
+ props.tabsContext?.unregisterTab(props.local.id);
317
+ });
318
+ const tabAria = createTab({
319
+ key: props.local.id,
320
+ get isDisabled() {
321
+ return props.ariaProps.isDisabled;
322
+ },
323
+ get "aria-label"() {
324
+ return props.ariaProps["aria-label"];
325
+ },
326
+ get "aria-labelledby"() {
327
+ return props.ariaProps["aria-labelledby"];
328
+ }
329
+ }, props.state, () => tabRef ?? null);
330
+ const { isHovered, hoverProps } = createHover({ get isDisabled() {
331
+ return tabAria.isDisabled();
332
+ } });
333
+ const renderValues = createMemo(() => ({
334
+ isSelected: tabAria.isSelected(),
335
+ isFocused: tabAria.isFocused(),
336
+ isFocusVisible: tabAria.isFocusVisible(),
337
+ isPressed: tabAria.isPressed(),
338
+ isHovered: isHovered(),
339
+ isDisabled: tabAria.isDisabled()
340
+ }));
341
+ const renderProps = useRenderProps({
342
+ get children() {
343
+ return props.children;
344
+ },
345
+ class: props.local.class,
346
+ style: props.local.style,
347
+ defaultClassName: "solidaria-Tab"
348
+ }, renderValues);
349
+ const selectionIndicatorContext = createMemo(() => ({ isSelected: tabAria.isSelected }));
350
+ return createComponent(SelectionIndicatorContext.Provider, {
351
+ get value() {
352
+ return selectionIndicatorContext();
353
+ },
354
+ get children() {
355
+ var _el$5 = getNextElement(_tmpl$);
356
+ var _ref$ = tabRef;
357
+ typeof _ref$ === "function" ? use(_ref$, _el$5) : tabRef = _el$5;
358
+ spread(_el$5, mergeProps({
359
+ get id() {
360
+ return tabAria.tabProps.id;
361
+ },
362
+ get role() {
363
+ return tabAria.tabProps.role;
364
+ },
365
+ get ["aria-selected"]() {
366
+ return tabAria.isSelected();
367
+ },
368
+ get ["aria-disabled"]() {
369
+ return tabAria.isDisabled() || void 0;
370
+ },
371
+ get ["aria-controls"]() {
372
+ return memo(() => !!tabAria.isSelected())() ? tabAria.tabProps["aria-controls"] : void 0;
373
+ },
374
+ get ["aria-label"]() {
375
+ return tabAria.tabProps["aria-label"];
376
+ },
377
+ get ["aria-labelledby"]() {
378
+ return tabAria.tabProps["aria-labelledby"];
379
+ },
380
+ get tabIndex() {
381
+ return tabAria.tabProps.tabIndex;
382
+ },
383
+ get ["class"]() {
384
+ return renderProps.class();
385
+ },
386
+ get style() {
387
+ return renderProps.style();
388
+ },
389
+ get onKeyDown() {
390
+ return tabAria.tabProps.onKeyDown;
391
+ },
392
+ get onMouseDown() {
393
+ return tabAria.tabProps.onMouseDown;
394
+ },
395
+ get onPointerDown() {
396
+ return tabAria.tabProps.onPointerDown;
397
+ },
398
+ get onClick() {
399
+ return tabAria.tabProps.onClick;
400
+ },
401
+ get onFocus() {
402
+ return tabAria.tabProps.onFocus;
403
+ },
404
+ get onFocusIn() {
405
+ return tabAria.tabProps.onFocusIn;
406
+ },
407
+ get onBlur() {
408
+ return tabAria.tabProps.onBlur;
409
+ }
410
+ }, hoverProps, {
411
+ get ["data-selected"]() {
412
+ return tabAria.isSelected() || void 0;
413
+ },
414
+ get ["data-focused"]() {
415
+ return tabAria.isFocused() || void 0;
416
+ },
417
+ get ["data-focus-visible"]() {
418
+ return tabAria.isFocusVisible() || void 0;
419
+ },
420
+ get ["data-pressed"]() {
421
+ return tabAria.isPressed() || void 0;
422
+ },
423
+ get ["data-hovered"]() {
424
+ return isHovered() || void 0;
425
+ },
426
+ get ["data-disabled"]() {
427
+ return tabAria.isDisabled() || void 0;
428
+ }
429
+ }), false, true);
430
+ insert(_el$5, () => renderProps.renderChildrenStable());
431
+ runHydrationEvents();
432
+ return _el$5;
433
+ }
434
+ });
435
+ }
436
+ /**
437
+ * Groups multiple TabPanel elements.
438
+ */
439
+ function TabPanels(props) {
440
+ const [local, rest] = splitProps(props, [
441
+ "class",
442
+ "style",
443
+ "slot",
444
+ "children"
445
+ ]);
446
+ const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
447
+ const state = useContext(TabsStateContext);
448
+ let ref;
449
+ let previousSelectedKey = void 0;
450
+ const [panelSize, setPanelSize] = createSignal({});
451
+ createEffect(() => {
452
+ const selectedKey = state?.selectedKey() ?? null;
453
+ if (!ref) {
454
+ previousSelectedKey = selectedKey;
455
+ return;
456
+ }
457
+ if (previousSelectedKey === void 0) {
458
+ previousSelectedKey = selectedKey;
459
+ return;
460
+ }
461
+ if (previousSelectedKey === selectedKey) return;
462
+ previousSelectedKey = selectedKey;
463
+ const transition = window.getComputedStyle(ref).transition;
464
+ const shouldMeasureWidth = /width|inline-size|all/.test(transition);
465
+ const shouldMeasureHeight = /height|block-size|all/.test(transition);
466
+ if (!shouldMeasureWidth && !shouldMeasureHeight) return;
467
+ const selectedPanel = ref.querySelector("[role=\"tabpanel\"]:not([hidden])");
468
+ if (!selectedPanel) return;
469
+ setPanelSize({
470
+ width: shouldMeasureWidth ? `${selectedPanel.offsetWidth}px` : void 0,
471
+ height: shouldMeasureHeight ? `${selectedPanel.offsetHeight}px` : void 0
472
+ });
473
+ });
474
+ const mergedStyle = () => ({
475
+ ...local.style,
476
+ ...panelSize().width ? { "--tab-panel-width": panelSize().width } : {},
477
+ ...panelSize().height ? { "--tab-panel-height": panelSize().height } : {}
478
+ });
479
+ return (() => {
480
+ var _el$6 = getNextElement(_tmpl$);
481
+ use((el) => {
482
+ ref = el;
483
+ }, _el$6);
484
+ spread(_el$6, mergeProps(domProps, {
485
+ get ["class"]() {
486
+ return local.class ?? "solidaria-TabPanels";
487
+ },
488
+ get style() {
489
+ return mergedStyle();
490
+ }
491
+ }), false, true);
492
+ insert(_el$6, () => local.children);
493
+ runHydrationEvents();
494
+ return _el$6;
495
+ })();
496
+ }
497
+ /**
498
+ * A TabPanel displays the content for a selected Tab.
499
+ */
500
+ function TabPanel(props) {
501
+ const [local, ariaProps] = splitProps(props, [
502
+ "class",
503
+ "style",
504
+ "slot",
505
+ "shouldForceMount"
506
+ ]);
507
+ const state = useContext(TabsStateContext);
508
+ const { tabPanelProps, isSelected } = createTabPanel(ariaProps, state);
509
+ const { isFocused, isFocusVisible, focusProps } = createFocusRing();
510
+ const isInert = () => Boolean(local.shouldForceMount && ariaProps.id !== void 0 && !isSelected());
511
+ const isEntering = () => false;
512
+ const isExiting = () => false;
513
+ const renderValues = createMemo(() => ({
514
+ isSelected: isSelected(),
515
+ isFocused: isFocused(),
516
+ isFocusVisible: isFocusVisible(),
517
+ isInert: isInert(),
518
+ isEntering: isEntering(),
519
+ isExiting: isExiting(),
520
+ state
521
+ }));
522
+ const renderProps = useRenderProps({
523
+ get children() {
524
+ return props.children;
525
+ },
526
+ class: local.class,
527
+ style: local.style,
528
+ defaultClassName: "solidaria-TabPanel"
529
+ }, renderValues);
530
+ const shouldRender = () => {
531
+ if (local.shouldForceMount) return true;
532
+ if (ariaProps.id === void 0) return state ? state.selectedKey() !== null : true;
533
+ return isSelected();
534
+ };
535
+ return createComponent(Show, {
536
+ get when() {
537
+ return shouldRender();
538
+ },
539
+ get children() {
540
+ var _el$7 = getNextElement(_tmpl$);
541
+ addEventListener(_el$7, "blur", focusProps.onBlur);
542
+ addEventListener(_el$7, "focus", focusProps.onFocus);
543
+ insert(_el$7, () => renderProps.renderChildren());
544
+ effect((_p$) => {
545
+ var _v$0 = tabPanelProps.id, _v$1 = tabPanelProps.role, _v$10 = tabPanelProps["aria-labelledby"], _v$11 = tabPanelProps["aria-label"], _v$12 = tabPanelProps["aria-describedby"], _v$13 = tabPanelProps.tabIndex, _v$14 = renderProps.class(), _v$15 = renderProps.style(), _v$16 = isSelected() || void 0, _v$17 = isFocused() || void 0, _v$18 = isFocusVisible() || void 0, _v$19 = isInert() ? true : void 0, _v$20 = isInert() || void 0, _v$21 = isEntering() || void 0, _v$22 = isExiting() || void 0, _v$23 = ariaProps.id !== void 0 && !isSelected() && !local.shouldForceMount ? true : void 0;
546
+ _v$0 !== _p$.e && setAttribute(_el$7, "id", _p$.e = _v$0);
547
+ _v$1 !== _p$.t && setAttribute(_el$7, "role", _p$.t = _v$1);
548
+ _v$10 !== _p$.a && setAttribute(_el$7, "aria-labelledby", _p$.a = _v$10);
549
+ _v$11 !== _p$.o && setAttribute(_el$7, "aria-label", _p$.o = _v$11);
550
+ _v$12 !== _p$.i && setAttribute(_el$7, "aria-describedby", _p$.i = _v$12);
551
+ _v$13 !== _p$.n && setAttribute(_el$7, "tabindex", _p$.n = _v$13);
552
+ _v$14 !== _p$.s && className(_el$7, _p$.s = _v$14);
553
+ _p$.h = style(_el$7, _v$15, _p$.h);
554
+ _v$16 !== _p$.r && setAttribute(_el$7, "data-selected", _p$.r = _v$16);
555
+ _v$17 !== _p$.d && setAttribute(_el$7, "data-focused", _p$.d = _v$17);
556
+ _v$18 !== _p$.l && setAttribute(_el$7, "data-focus-visible", _p$.l = _v$18);
557
+ _v$19 !== _p$.u && setProperty(_el$7, "inert", _p$.u = _v$19);
558
+ _v$20 !== _p$.c && setAttribute(_el$7, "data-inert", _p$.c = _v$20);
559
+ _v$21 !== _p$.w && setAttribute(_el$7, "data-entering", _p$.w = _v$21);
560
+ _v$22 !== _p$.m && setAttribute(_el$7, "data-exiting", _p$.m = _v$22);
561
+ _v$23 !== _p$.f && setProperty(_el$7, "hidden", _p$.f = _v$23);
562
+ return _p$;
563
+ }, {
564
+ e: void 0,
565
+ t: void 0,
566
+ a: void 0,
567
+ o: void 0,
568
+ i: void 0,
569
+ n: void 0,
570
+ s: void 0,
571
+ h: void 0,
572
+ r: void 0,
573
+ d: void 0,
574
+ l: void 0,
575
+ u: void 0,
576
+ c: void 0,
577
+ w: void 0,
578
+ m: void 0,
579
+ f: void 0
580
+ });
581
+ return _el$7;
582
+ }
583
+ });
584
+ }
585
+ Tabs.List = TabList;
586
+ Tabs.Tab = Tab;
587
+ Tabs.Panels = TabPanels;
588
+ Tabs.Panel = TabPanel;
589
+ Tabs.SelectionIndicator = SelectionIndicator;
590
+ delegateEvents([
591
+ "keydown",
592
+ "focusin",
593
+ "focusout"
594
+ ]);
595
+ //#endregion
596
+ export { SelectionIndicator, SelectionIndicatorContext, Tab, TabList, TabPanel, TabPanels, Tabs, TabsContext, TabsStateContext };
597
+
598
+ //# sourceMappingURL=Tabs.js.map