@koide-labs/ui 0.0.15 → 0.1.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 (310) hide show
  1. package/dist/-utils.d.ts +2 -2
  2. package/dist/-utils.js +1 -1
  3. package/dist/{Button-DrPFFzo7.js → Button-BmcVHRRW.js} +2 -2
  4. package/dist/{CompositeRoot-CVk5a-pR.js → CompositeRoot-CCgh2M64.js} +6 -6
  5. package/dist/{FloatingPortal-tWyuKRSN.js → FloatingPortal-BQsQhvIr.js} +27 -27
  6. package/dist/{FloatingPortalLite-DVyq6YhV.js → FloatingPortalLite-_ECdFE7b.js} +1 -1
  7. package/dist/{InternalBackdrop-jYAiOJ8v.js → InternalBackdrop-BSMKU-hc.js} +13 -13
  8. package/dist/{LabelableContext-BMvjVwor.js → LabelableContext-Be1u-eFg.js} +2 -2
  9. package/dist/accordion.css +1 -0
  10. package/dist/alert-dialog.css +1 -0
  11. package/dist/anchor.css +1 -0
  12. package/dist/avatar.css +1 -0
  13. package/dist/badge.css +1 -0
  14. package/dist/button.css +1 -0
  15. package/dist/checkbox.css +1 -0
  16. package/dist/code.css +1 -0
  17. package/dist/collapse.css +1 -0
  18. package/dist/command.css +1 -0
  19. package/dist/components/accordion/accordion.d.ts +19 -0
  20. package/dist/components/accordion/accordion.js +701 -0
  21. package/dist/components/accordion/index.d.ts +1 -12
  22. package/dist/components/accordion/index.js +2 -697
  23. package/dist/components/alert-dialog/alert-dialog.d.ts +36 -0
  24. package/dist/components/alert-dialog/alert-dialog.js +138 -0
  25. package/dist/components/alert-dialog/index.d.ts +1 -26
  26. package/dist/components/alert-dialog/index.js +2 -134
  27. package/dist/components/anchor/anchor.d.ts +12 -0
  28. package/dist/components/anchor/anchor.js +21 -0
  29. package/dist/components/anchor/index.d.ts +1 -8
  30. package/dist/components/anchor/index.js +2 -19
  31. package/dist/components/avatar/avatar.d.ts +25 -0
  32. package/dist/components/avatar/avatar.js +161 -0
  33. package/dist/components/avatar/index.d.ts +1 -21
  34. package/dist/components/avatar/index.js +2 -159
  35. package/dist/components/badge/badge.d.ts +20 -0
  36. package/dist/components/badge/badge.js +42 -0
  37. package/dist/components/badge/index.d.ts +1 -16
  38. package/dist/components/badge/index.js +2 -40
  39. package/dist/components/button/button.d.ts +27 -0
  40. package/dist/components/button/button.js +47 -0
  41. package/dist/components/button/index.d.ts +1 -24
  42. package/dist/components/button/index.js +2 -45
  43. package/dist/components/checkbox/checkbox.d.ts +13 -0
  44. package/dist/components/checkbox/checkbox.js +269 -0
  45. package/dist/components/checkbox/index.d.ts +1 -9
  46. package/dist/components/checkbox/index.js +2 -267
  47. package/dist/components/code/code.d.ts +13 -0
  48. package/dist/components/code/code.js +1206 -0
  49. package/dist/components/code/index.d.ts +1 -9
  50. package/dist/components/code/index.js +2 -1204
  51. package/dist/components/collapse/collapse.d.ts +14 -0
  52. package/dist/components/collapse/collapse.js +35 -0
  53. package/dist/components/collapse/index.d.ts +1 -11
  54. package/dist/components/collapse/index.js +2 -33
  55. package/dist/components/command/command.d.ts +36 -0
  56. package/dist/components/command/command.js +1695 -0
  57. package/dist/components/command/index.d.ts +1 -15
  58. package/dist/components/command/index.js +2 -1693
  59. package/dist/components/context-menu/context-menu.d.ts +82 -0
  60. package/dist/components/context-menu/context-menu.js +1445 -0
  61. package/dist/components/context-menu/index.d.ts +1 -42
  62. package/dist/components/context-menu/index.js +2 -1442
  63. package/dist/components/dialog/dialog.d.ts +22 -0
  64. package/dist/components/dialog/dialog.js +140 -0
  65. package/dist/components/dialog/dialog.types.d.ts +38 -0
  66. package/dist/components/dialog/index.d.ts +1 -48
  67. package/dist/components/dialog/index.js +2 -136
  68. package/dist/components/heading/heading.d.ts +25 -0
  69. package/dist/components/heading/heading.js +36 -0
  70. package/dist/components/heading/index.d.ts +1 -44
  71. package/dist/components/heading/index.js +2 -49
  72. package/dist/components/icon/icon.d.ts +28 -0
  73. package/dist/components/icon/icon.js +43 -0
  74. package/dist/components/icon/{icon-names.d.ts → icon.types.d.ts} +4 -0
  75. package/dist/components/icon/icon.types.js +1 -0
  76. package/dist/components/icon/index.d.ts +2 -24
  77. package/dist/components/icon/index.js +2 -41
  78. package/dist/components/icon-button/icon-button.d.ts +16 -0
  79. package/dist/components/icon-button/icon-button.js +46 -0
  80. package/dist/components/icon-button/index.d.ts +1 -12
  81. package/dist/components/icon-button/index.js +2 -44
  82. package/dist/components/inline-code/index.d.ts +1 -6
  83. package/dist/components/inline-code/index.js +2 -20
  84. package/dist/components/inline-code/inline-code.d.ts +10 -0
  85. package/dist/components/inline-code/inline-code.js +25 -0
  86. package/dist/components/input/index.d.ts +1 -3
  87. package/dist/components/input/index.js +2 -117
  88. package/dist/components/input/input.d.ts +9 -0
  89. package/dist/components/input/input.js +126 -0
  90. package/dist/components/meter/index.d.ts +1 -18
  91. package/dist/components/meter/index.js +2 -163
  92. package/dist/components/meter/meter.d.ts +22 -0
  93. package/dist/components/meter/meter.js +165 -0
  94. package/dist/components/multiline-input/index.d.ts +1 -6
  95. package/dist/components/multiline-input/index.js +2 -98
  96. package/dist/components/multiline-input/multiline-input.d.ts +10 -0
  97. package/dist/components/multiline-input/multiline-input.js +100 -0
  98. package/dist/components/number-input/index.d.ts +1 -10
  99. package/dist/components/number-input/index.js +2 -1167
  100. package/dist/components/number-input/number-input.d.ts +14 -0
  101. package/dist/components/number-input/number-input.js +1169 -0
  102. package/dist/components/password-input/index.d.ts +1 -2
  103. package/dist/components/password-input/index.js +2 -27
  104. package/dist/components/password-input/password-input.d.ts +7 -0
  105. package/dist/components/password-input/password-input.js +29 -0
  106. package/dist/components/pill/index.d.ts +1 -13
  107. package/dist/components/pill/index.js +2 -36
  108. package/dist/components/pill/pill.d.ts +17 -0
  109. package/dist/components/pill/pill.js +38 -0
  110. package/dist/components/popover/index.d.ts +1 -21
  111. package/dist/components/popover/index.js +2 -634
  112. package/dist/components/popover/popover.d.ts +22 -0
  113. package/dist/components/popover/popover.js +634 -0
  114. package/dist/components/preview-card/index.d.ts +1 -17
  115. package/dist/components/preview-card/index.js +2 -400
  116. package/dist/components/preview-card/preview-card.d.ts +21 -0
  117. package/dist/components/preview-card/preview-card.js +402 -0
  118. package/dist/components/radio-group/index.d.ts +1 -0
  119. package/dist/components/radio-group/index.js +5 -0
  120. package/dist/components/radio-group/radio-group.d.ts +25 -0
  121. package/dist/components/{radio/index.js → radio-group/radio-group.js} +91 -90
  122. package/dist/components/search-bar/index.d.ts +1 -12
  123. package/dist/components/search-bar/index.js +2 -46
  124. package/dist/components/search-bar/search-bar.d.ts +16 -0
  125. package/dist/components/search-bar/search-bar.js +43 -0
  126. package/dist/components/select/index.d.ts +1 -16
  127. package/dist/components/select/index.js +2 -1261
  128. package/dist/components/select/select.d.ts +22 -0
  129. package/dist/components/select/select.js +1263 -0
  130. package/dist/components/separator/index.d.ts +1 -7
  131. package/dist/components/separator/index.js +2 -4
  132. package/dist/components/separator/separator.d.ts +10 -0
  133. package/dist/components/separator/separator.js +6 -0
  134. package/dist/components/slider/index.d.ts +1 -5
  135. package/dist/components/slider/index.js +2 -900
  136. package/dist/components/slider/slider.d.ts +10 -0
  137. package/dist/components/slider/slider.js +899 -0
  138. package/dist/components/spinner/index.d.ts +1 -2
  139. package/dist/components/spinner/index.js +2 -11
  140. package/dist/components/spinner/spinner.d.ts +7 -0
  141. package/dist/components/spinner/spinner.js +13 -0
  142. package/dist/components/stacked-avatars/index.d.ts +1 -14
  143. package/dist/components/stacked-avatars/index.js +2 -90
  144. package/dist/components/stacked-avatars/stacked-avatars.d.ts +18 -0
  145. package/dist/components/stacked-avatars/stacked-avatars.js +92 -0
  146. package/dist/components/status-banner/index.d.ts +1 -17
  147. package/dist/components/status-banner/index.js +2 -69
  148. package/dist/components/status-banner/status-banner.d.ts +22 -0
  149. package/dist/components/status-banner/status-banner.js +71 -0
  150. package/dist/components/surface/index.d.ts +2 -27
  151. package/dist/components/surface/index.js +2 -39
  152. package/dist/components/surface/surface.d.ts +26 -0
  153. package/dist/components/surface/surface.js +36 -0
  154. package/dist/components/surface/surface.types.d.ts +1 -0
  155. package/dist/components/surface/surface.types.js +1 -0
  156. package/dist/components/switch/index.d.ts +1 -5
  157. package/dist/components/switch/index.js +2 -194
  158. package/dist/components/switch/switch.d.ts +10 -0
  159. package/dist/components/switch/switch.js +193 -0
  160. package/dist/components/tabs/index.d.ts +1 -18
  161. package/dist/components/tabs/index.js +2 -507
  162. package/dist/components/tabs/tabs.d.ts +28 -0
  163. package/dist/components/tabs/tabs.js +511 -0
  164. package/dist/components/text/index.d.ts +1 -26
  165. package/dist/components/text/index.js +2 -46
  166. package/dist/components/text/text.d.ts +29 -0
  167. package/dist/components/text/text.js +48 -0
  168. package/dist/components/theme-provider/index.d.ts +1 -1
  169. package/dist/components/theme-provider/theme-provider.d.ts +8 -4
  170. package/dist/components/theme-provider/theme-provider.js +3 -3
  171. package/dist/components/timestamp/index.d.ts +1 -23
  172. package/dist/components/timestamp/index.js +2 -1390
  173. package/dist/components/timestamp/timestamp.d.ts +26 -0
  174. package/dist/components/timestamp/timestamp.js +1391 -0
  175. package/dist/components/toaster/index.d.ts +2 -0
  176. package/dist/components/toaster/index.js +7 -0
  177. package/dist/components/toaster/toaster.d.ts +7 -0
  178. package/dist/components/toaster/toaster.js +923 -0
  179. package/dist/components/{toast → toaster}/use-toast-manager.d.ts +3 -3
  180. package/dist/components/tooltip/index.d.ts +1 -14
  181. package/dist/components/tooltip/index.js +2 -710
  182. package/dist/components/tooltip/tooltip.d.ts +24 -0
  183. package/dist/components/tooltip/tooltip.js +9 -0
  184. package/dist/components/view/index.d.ts +2 -30
  185. package/dist/components/view/index.js +2 -79
  186. package/dist/components/view/view.d.ts +31 -0
  187. package/dist/components/view/view.js +83 -0
  188. package/dist/components/view/view.types.d.ts +5 -0
  189. package/dist/components/view/view.types.js +1 -0
  190. package/dist/components/visually-hidden/index.d.ts +5 -1
  191. package/dist/{composite-Bx7Szd_T.js → composite-BZzP-LlG.js} +3 -3
  192. package/dist/{composite-C9L5QmZL.js → composite-BwEK5cWH.js} +1 -1
  193. package/dist/context-menu.css +1 -0
  194. package/dist/{createBaseUIEventDetails-D8M2Yl-a.js → createBaseUIEventDetails-CCSfZ2vM.js} +7 -7
  195. package/dist/{detectBrowser-I-s3yzIE.js → detectBrowser-Bl8Ki_1I.js} +2 -2
  196. package/dist/dialog.css +1 -1
  197. package/dist/{dialog.module-BeF-6XAo.js → dialog.module-DsbQRp-d.js} +55 -55
  198. package/dist/{element-CZEOj04G.js → element-u5WgOZX1.js} +7 -7
  199. package/dist/{event-CKoGyQEJ.js → event-B89-Ng5h.js} +4 -4
  200. package/dist/{floating-ui.utils-C7pRWMZ_.js → floating-ui.utils-DUVaIF3G.js} +7 -7
  201. package/dist/{floating-ui.utils.dom-C7FS5id0.js → floating-ui.utils.dom-cbi420Pg.js} +4 -4
  202. package/dist/{getDisabledMountTransitionStyles-YfHPge6T.js → getDisabledMountTransitionStyles-E2x-_lte.js} +7 -7
  203. package/dist/heading.css +1 -0
  204. package/dist/icon-button.css +1 -0
  205. package/dist/icon.css +1 -0
  206. package/dist/index.d.ts +10 -10
  207. package/dist/index.js +86 -104
  208. package/dist/{inertValue-BCYGsdmf.js → inertValue-BTpPjX30.js} +1 -1
  209. package/dist/inline-code.css +1 -0
  210. package/dist/input.css +1 -1
  211. package/dist/input.module-CtE19OH8.js +8 -0
  212. package/dist/integrations/react-markdown/index.js +12 -12
  213. package/dist/meter.css +1 -0
  214. package/dist/number-input.css +1 -0
  215. package/dist/password-input.css +1 -0
  216. package/dist/pill.css +1 -0
  217. package/dist/popover.css +1 -0
  218. package/dist/preview-card.css +1 -0
  219. package/dist/radio-group.css +1 -0
  220. package/dist/safePolygon-DnkzOIur.js +558 -0
  221. package/dist/search-bar.css +1 -0
  222. package/dist/select.css +1 -0
  223. package/dist/{index-DVjyPAD4.js → separator-fh_wDZNf.js} +7 -11
  224. package/dist/separator.css +1 -0
  225. package/dist/slider.css +1 -0
  226. package/dist/spinner.css +1 -0
  227. package/dist/stacked-avatars.css +1 -0
  228. package/dist/status-banner.css +1 -0
  229. package/dist/styles/core.css +1 -1
  230. package/dist/surface.css +1 -0
  231. package/dist/switch.css +1 -0
  232. package/dist/tabs.css +1 -0
  233. package/dist/text.css +1 -0
  234. package/dist/timestamp.css +1 -0
  235. package/dist/toaster.css +1 -0
  236. package/dist/tooltip-oCp-elli.js +765 -0
  237. package/dist/tooltip.css +1 -0
  238. package/dist/transitions.css +1 -1
  239. package/dist/{transitions.module-CWX8e5cx.js → transitions.module-D9mMAtfI.js} +11 -11
  240. package/dist/{useAnimationFrame-451ugS_6.js → useAnimationFrame-DvK1s63A.js} +1 -1
  241. package/dist/{useButton-DfIwsdb8.js → useButton-d3_JgBNr.js} +3 -3
  242. package/dist/{useCompositeListItem-OkcAim_1.js → useCompositeListItem-CZp9WTnF.js} +2 -2
  243. package/dist/{useLabelableId-Ci_jDvmv.js → useLabelableId-CX4tcfzK.js} +3 -3
  244. package/dist/{useOpenChangeComplete-Dse9kY9E.js → useOpenChangeComplete-BHd-N7Ig.js} +5 -5
  245. package/dist/{useRender-CLx7dR_1.js → useRender-C3vlzS3t.js} +1 -1
  246. package/dist/{useRenderElement-DwToLA61.js → useRenderElement-DngNDu_P.js} +2 -2
  247. package/dist/{useRole-oDBdbuwQ.js → useRole-BD3OL1rr.js} +3 -3
  248. package/dist/{useStableCallback-CkTrVkNX.js → useStableCallback-DKZHlUAT.js} +1 -1
  249. package/dist/{useSyncedFloatingRootContext-Dorsv-jf.js → useSyncedFloatingRootContext-BB1vwkV-.js} +20 -20
  250. package/dist/{useTimeout-CflX-kz3.js → useTimeout-BNni6aw5.js} +1 -1
  251. package/dist/{useTransitionStatus-CUfcuGAV.js → useTransitionStatus-CmMyUh74.js} +1 -1
  252. package/dist/{useTypeahead-D85V2IUx.js → useTypeahead-BiL5IAVb.js} +11 -11
  253. package/dist/{useValueAsRef-HURLzret.js → useValueAsRef-B4EriRsI.js} +1 -1
  254. package/dist/{useValueChanged-DL757-yD.js → useValueChanged-MJRmEWz1.js} +1 -1
  255. package/dist/view.css +1 -1
  256. package/dist/view.module-Dj7wj0kk.js +6 -0
  257. package/dist/view2.css +1 -0
  258. package/package.json +1 -1
  259. package/dist/components/radio/index.d.ts +0 -13
  260. package/dist/components/toast/index.d.ts +0 -2
  261. package/dist/components/toast/index.js +0 -8
  262. package/dist/components/toast/toast.d.ts +0 -2
  263. package/dist/components/toast/toast.js +0 -921
  264. package/dist/components/tooltip/tooltip-arrow.d.ts +0 -3
  265. package/dist/components/tooltip/tooltip-arrow.js +0 -6
  266. package/dist/index10.css +0 -1
  267. package/dist/index11.css +0 -1
  268. package/dist/index12.css +0 -1
  269. package/dist/index13.css +0 -1
  270. package/dist/index14.css +0 -1
  271. package/dist/index15.css +0 -1
  272. package/dist/index16.css +0 -1
  273. package/dist/index17.css +0 -1
  274. package/dist/index18.css +0 -1
  275. package/dist/index19.css +0 -1
  276. package/dist/index20.css +0 -1
  277. package/dist/index21.css +0 -1
  278. package/dist/index22.css +0 -1
  279. package/dist/index23.css +0 -1
  280. package/dist/index24.css +0 -1
  281. package/dist/index25.css +0 -1
  282. package/dist/index26.css +0 -1
  283. package/dist/index27.css +0 -1
  284. package/dist/index28.css +0 -1
  285. package/dist/index29.css +0 -1
  286. package/dist/index3.css +0 -1
  287. package/dist/index30.css +0 -1
  288. package/dist/index31.css +0 -1
  289. package/dist/index32.css +0 -1
  290. package/dist/index33.css +0 -1
  291. package/dist/index34.css +0 -1
  292. package/dist/index35.css +0 -1
  293. package/dist/index36.css +0 -1
  294. package/dist/index37.css +0 -1
  295. package/dist/index4.css +0 -1
  296. package/dist/index5.css +0 -1
  297. package/dist/index6.css +0 -1
  298. package/dist/index7.css +0 -1
  299. package/dist/index8.css +0 -1
  300. package/dist/index9.css +0 -1
  301. package/dist/input.module-DDQY_Ij6.js +0 -7
  302. package/dist/safePolygon-DWy1dGKJ.js +0 -308
  303. package/dist/toast.css +0 -1
  304. package/dist/tooltip-arrow-cs6vjjqZ.js +0 -24
  305. package/dist/tooltip-arrow.css +0 -1
  306. package/dist/useHoverReferenceInteraction-SfOBPoXM.js +0 -264
  307. package/dist/usePopupAutoResize-CNR6Ekmx.js +0 -85
  308. package/dist/view.module-DfDLgJE0.js +0 -6
  309. /package/dist/components/{icon/icon-names.js → dialog/dialog.types.js} +0 -0
  310. /package/dist/components/{toast → toaster}/use-toast-manager.js +0 -0
@@ -1,510 +1,5 @@
1
1
  "use client";
2
- import { jsx as g, jsxs as U } from "react/jsx-runtime";
3
- import { c as z } from "../../clsx-OuTLNxxd.js";
4
- import * as n from "react";
5
- import { Fragment as rt } from "react";
6
- import { tokens as it } from "../../styles/tokens.js";
7
- import { Button as ut } from "../button/index.js";
8
- import { Icon as ct } from "../icon/index.js";
9
- import { S as lt } from "../../index-DVjyPAD4.js";
10
- import { View as j } from "../view/index.js";
11
- import { u as dt } from "../../useControlled-Du4sJyMj.js";
12
- import { u as F } from "../../useIsoLayoutEffect-CIDbvm3Q.js";
13
- import { u as O } from "../../useStableCallback-CkTrVkNX.js";
14
- import { u as $, b as ft } from "../../useRenderElement-DwToLA61.js";
15
- import { C as bt, u as pt } from "../../useCompositeListItem-OkcAim_1.js";
16
- import { u as mt } from "../../DirectionContext-C2o_MF_i.js";
17
- import { f as tt } from "../../formatErrorMessage-BqPuTBN-.js";
18
- import { u as et } from "../../useBaseUiId-B7WyxtIE.js";
19
- import { u as _t, A as gt, C as vt } from "../../CompositeRoot-CVk5a-pR.js";
20
- import { o as J } from "../../owner-rKN292Q9.js";
21
- import { c as Q, n as X } from "../../createBaseUIEventDetails-D8M2Yl-a.js";
22
- import { u as Tt } from "../../useButton-DfIwsdb8.js";
23
- import { h as ht, f as Ct } from "../../element-CZEOj04G.js";
24
- import '../../index27.css';const K = /* @__PURE__ */ n.createContext(void 0);
25
- process.env.NODE_ENV !== "production" && (K.displayName = "TabsRootContext");
26
- function Y() {
27
- const t = n.useContext(K);
28
- if (t === void 0)
29
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TabsRootContext is missing. Tabs parts must be placed within <Tabs.Root>." : tt(64));
30
- return t;
31
- }
32
- let Et = /* @__PURE__ */ (function(t) {
33
- return t.activationDirection = "data-activation-direction", t.orientation = "data-orientation", t;
34
- })({});
35
- const W = {
36
- tabActivationDirection: (t) => ({
37
- [Et.activationDirection]: t
38
- })
39
- }, nt = /* @__PURE__ */ n.forwardRef(function(o, u) {
40
- const {
41
- className: f,
42
- defaultValue: e = 0,
43
- onValueChange: c,
44
- orientation: a = "horizontal",
45
- render: _,
46
- value: b,
47
- ...v
48
- } = o, T = mt(), E = Object.hasOwn(o, "defaultValue"), R = n.useRef([]), [x, l] = n.useState(() => /* @__PURE__ */ new Map()), [d, h] = dt({
49
- controlled: b,
50
- default: e,
51
- name: "Tabs",
52
- state: "value"
53
- }), N = b !== void 0, [i, P] = n.useState(() => /* @__PURE__ */ new Map()), [D, I] = n.useState("none"), M = O((s, m) => {
54
- c?.(s, m), !m.isCanceled && (h(s), I(m.activationDirection));
55
- }), p = O((s, m) => {
56
- l((r) => {
57
- if (r.get(s) === m)
58
- return r;
59
- const C = new Map(r);
60
- return C.set(s, m), C;
61
- });
62
- }), w = O((s, m) => {
63
- l((r) => {
64
- if (!r.has(s) || r.get(s) !== m)
65
- return r;
66
- const C = new Map(r);
67
- return C.delete(s), C;
68
- });
69
- }), A = n.useCallback((s) => x.get(s), [x]), y = n.useCallback((s) => {
70
- for (const m of i.values())
71
- if (s === m?.value)
72
- return m?.id;
73
- }, [i]), B = n.useCallback((s) => {
74
- if (s === void 0)
75
- return null;
76
- for (const [m, r] of i.entries())
77
- if (r != null && s === (r.value ?? r.index))
78
- return m;
79
- return null;
80
- }, [i]), S = n.useMemo(() => ({
81
- direction: T,
82
- getTabElementBySelectedValue: B,
83
- getTabIdByPanelValue: y,
84
- getTabPanelIdByValue: A,
85
- onValueChange: M,
86
- orientation: a,
87
- registerMountedTabPanel: p,
88
- setTabMap: P,
89
- unregisterMountedTabPanel: w,
90
- tabActivationDirection: D,
91
- value: d
92
- }), [T, B, y, A, M, a, p, P, w, D, d]), k = n.useMemo(() => {
93
- for (const s of i.values())
94
- if (s != null && s.value === d)
95
- return s;
96
- }, [i, d]), L = n.useMemo(() => {
97
- for (const s of i.values())
98
- if (s != null && !s.disabled)
99
- return s.value;
100
- }, [i]);
101
- F(() => {
102
- if (N || i.size === 0)
103
- return;
104
- const s = k?.disabled, m = k == null && d !== null;
105
- if (E && s && d === e || !s && !m)
106
- return;
107
- const C = L ?? null;
108
- d !== C && (h(C), I("none"));
109
- }, [e, L, E, N, k, I, h, i, d]);
110
- const H = $("div", o, {
111
- state: {
112
- orientation: a,
113
- tabActivationDirection: D
114
- },
115
- ref: u,
116
- props: v,
117
- stateAttributesMapping: W
118
- });
119
- return /* @__PURE__ */ g(K.Provider, {
120
- value: S,
121
- children: /* @__PURE__ */ g(bt, {
122
- elementsRef: R,
123
- children: H
124
- })
125
- });
126
- });
127
- process.env.NODE_ENV !== "production" && (nt.displayName = "TabsRoot");
128
- const q = /* @__PURE__ */ n.createContext(void 0);
129
- process.env.NODE_ENV !== "production" && (q.displayName = "TabsListContext");
130
- function Mt() {
131
- const t = n.useContext(q);
132
- if (t === void 0)
133
- throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TabsListContext is missing. TabsList parts must be placed within <Tabs.List>." : tt(65));
134
- return t;
135
- }
136
- const ot = /* @__PURE__ */ n.forwardRef(function(o, u) {
137
- const {
138
- className: f,
139
- disabled: e = !1,
140
- render: c,
141
- value: a,
142
- id: _,
143
- nativeButton: b = !0,
144
- ...v
145
- } = o, {
146
- value: T,
147
- getTabPanelIdByValue: E,
148
- orientation: R
149
- } = Y(), {
150
- activateOnFocus: x,
151
- highlightedTabIndex: l,
152
- onTabActivation: d,
153
- setHighlightedTabIndex: h,
154
- tabsListElement: N
155
- } = Mt(), i = et(_), P = n.useMemo(() => ({
156
- disabled: e,
157
- id: i,
158
- value: a
159
- }), [e, i, a]), {
160
- compositeProps: D,
161
- compositeRef: I,
162
- index: M
163
- // hook is used instead of the CompositeItem component
164
- // because the index is needed for Tab internals
165
- } = _t({
166
- metadata: P
167
- }), p = a === T, w = n.useRef(!1);
168
- F(() => {
169
- if (w.current) {
170
- w.current = !1;
171
- return;
172
- }
173
- if (!(p && M > -1 && l !== M))
174
- return;
175
- const r = N;
176
- if (r != null) {
177
- const C = ht(J(r));
178
- if (C && Ct(r, C))
179
- return;
180
- }
181
- e || h(M);
182
- }, [p, M, l, h, e, N]);
183
- const {
184
- getButtonProps: A,
185
- buttonRef: y
186
- } = Tt({
187
- disabled: e,
188
- native: b,
189
- focusableWhenDisabled: !0
190
- }), B = E(a), S = n.useRef(!1), k = n.useRef(!1);
191
- function L(r) {
192
- p || e || d(a, Q(X, r.nativeEvent, void 0, {
193
- activationDirection: "none"
194
- }));
195
- }
196
- function G(r) {
197
- p || (M > -1 && !e && h(M), !e && x && (!S.current || // keyboard or touch focus
198
- S.current && k.current) && d(a, Q(X, r.nativeEvent, void 0, {
199
- activationDirection: "none"
200
- })));
201
- }
202
- function H(r) {
203
- if (p || e)
204
- return;
205
- S.current = !0;
206
- function C() {
207
- S.current = !1, k.current = !1;
208
- }
209
- (!r.button || r.button === 0) && (k.current = !0, J(r.currentTarget).addEventListener("pointerup", C, {
210
- once: !0
211
- }));
212
- }
213
- const s = n.useMemo(() => ({
214
- disabled: e,
215
- active: p,
216
- orientation: R
217
- }), [e, p, R]);
218
- return $("button", o, {
219
- state: s,
220
- ref: [u, y, I],
221
- props: [D, {
222
- role: "tab",
223
- "aria-controls": B,
224
- "aria-selected": p,
225
- id: i,
226
- onClick: L,
227
- onFocus: G,
228
- onPointerDown: H,
229
- [gt]: p ? "" : void 0,
230
- onKeyDownCapture() {
231
- w.current = !0;
232
- }
233
- }, v, A]
234
- });
235
- });
236
- process.env.NODE_ENV !== "production" && (ot.displayName = "TabsTab");
237
- let xt = /* @__PURE__ */ (function(t) {
238
- return t.index = "data-index", t.activationDirection = "data-activation-direction", t.orientation = "data-orientation", t.hidden = "data-hidden", t;
239
- })({});
240
- const at = /* @__PURE__ */ n.forwardRef(function(o, u) {
241
- const {
242
- className: f,
243
- value: e,
244
- render: c,
245
- keepMounted: a = !1,
246
- ..._
247
- } = o, {
248
- value: b,
249
- getTabIdByPanelValue: v,
250
- orientation: T,
251
- tabActivationDirection: E,
252
- registerMountedTabPanel: R,
253
- unregisterMountedTabPanel: x
254
- } = Y(), l = et(), d = n.useMemo(() => ({
255
- id: l,
256
- value: e
257
- }), [l, e]), {
258
- ref: h,
259
- index: N
260
- } = pt({
261
- metadata: d
262
- }), i = e !== b, P = v(e), D = n.useMemo(() => ({
263
- hidden: i,
264
- orientation: T,
265
- tabActivationDirection: E
266
- }), [i, T, E]), I = $("div", o, {
267
- state: D,
268
- ref: [u, h],
269
- props: [{
270
- "aria-labelledby": P,
271
- hidden: i,
272
- id: l ?? void 0,
273
- role: "tabpanel",
274
- tabIndex: i ? -1 : 0,
275
- [xt.index]: N
276
- }, _],
277
- stateAttributesMapping: W
278
- });
279
- return F(() => {
280
- if (!(i && !a) && l != null)
281
- return R(e, l), () => {
282
- x(e, l);
283
- };
284
- }, [i, a, e, l, R, x]), !i || a ? I : null;
285
- });
286
- process.env.NODE_ENV !== "production" && (at.displayName = "TabsPanel");
287
- const st = /* @__PURE__ */ n.forwardRef(function(o, u) {
288
- const {
289
- activateOnFocus: f = !1,
290
- className: e,
291
- loopFocus: c = !0,
292
- render: a,
293
- ..._
294
- } = o, {
295
- getTabElementBySelectedValue: b,
296
- onValueChange: v,
297
- orientation: T,
298
- value: E,
299
- setTabMap: R,
300
- tabActivationDirection: x
301
- } = Y(), [l, d] = n.useState(0), [h, N] = n.useState(null), i = Rt(
302
- E,
303
- // the old value
304
- T,
305
- h,
306
- b
307
- ), P = O((p, w) => {
308
- if (p !== E) {
309
- const A = i(p);
310
- w.activationDirection = A, v(p, w);
311
- }
312
- }), D = n.useMemo(() => ({
313
- orientation: T,
314
- tabActivationDirection: x
315
- }), [T, x]), I = {
316
- "aria-orientation": T === "vertical" ? "vertical" : void 0,
317
- role: "tablist"
318
- }, M = n.useMemo(() => ({
319
- activateOnFocus: f,
320
- highlightedTabIndex: l,
321
- onTabActivation: P,
322
- setHighlightedTabIndex: d,
323
- tabsListElement: h,
324
- value: E
325
- }), [f, l, P, d, h, E]);
326
- return /* @__PURE__ */ g(q.Provider, {
327
- value: M,
328
- children: /* @__PURE__ */ g(vt, {
329
- render: a,
330
- className: e,
331
- state: D,
332
- refs: [u, N],
333
- props: [I, _],
334
- stateAttributesMapping: W,
335
- highlightedIndex: l,
336
- enableHomeAndEndKeys: !0,
337
- loopFocus: c,
338
- orientation: T,
339
- onHighlightedIndexChange: d,
340
- onMapChange: R,
341
- disabledIndices: ft
342
- })
343
- });
344
- });
345
- process.env.NODE_ENV !== "production" && (st.displayName = "TabsList");
346
- function Z(t, o) {
347
- const {
348
- left: u,
349
- top: f
350
- } = t.getBoundingClientRect(), {
351
- left: e,
352
- top: c
353
- } = o.getBoundingClientRect(), a = u - e, _ = f - c;
354
- return {
355
- left: a,
356
- top: _
357
- };
358
- }
359
- function Rt(t, o, u, f) {
360
- const [e, c] = n.useState(null);
361
- return F(() => {
362
- if (t == null || u == null) {
363
- c(null);
364
- return;
365
- }
366
- const a = f(t);
367
- if (a == null) {
368
- c(null);
369
- return;
370
- }
371
- const {
372
- left: _,
373
- top: b
374
- } = Z(a, u);
375
- c(o === "horizontal" ? _ : b);
376
- }, [o, f, u, t]), n.useCallback((a) => {
377
- if (a === t)
378
- return "none";
379
- if (a == null)
380
- return c(null), "none";
381
- if (a != null && u != null) {
382
- const _ = f(a);
383
- if (_ != null) {
384
- const {
385
- left: b,
386
- top: v
387
- } = Z(_, u);
388
- if (e == null)
389
- return c(o === "horizontal" ? b : v), "none";
390
- if (o === "horizontal") {
391
- if (b < e)
392
- return c(b), "left";
393
- if (b > e)
394
- return c(b), "right";
395
- } else {
396
- if (v < e)
397
- return c(v), "up";
398
- if (v > e)
399
- return c(v), "down";
400
- }
401
- }
402
- }
403
- return "none";
404
- }, [f, o, e, u, t]);
405
- }
406
- const Nt = "_tabs_1w9kt_5", Pt = "_tabs__list_1w9kt_9", Dt = "_tabs_variant_default_1w9kt_16", It = "_tabs__separator_1w9kt_21", wt = "_tabs__trigger_1w9kt_25", kt = "_tabs_variant_progress_1w9kt_46", V = {
407
- tabs: Nt,
408
- tabs__list: Pt,
409
- tabs_variant_default: Dt,
410
- tabs__separator: It,
411
- tabs__trigger: wt,
412
- tabs_variant_progress: kt,
413
- "tabs__trigger-complete": "_tabs__trigger-complete_1w9kt_70",
414
- "tabs_variant_button-group": "_tabs_variant_button-group_1w9kt_82"
415
- }, At = /* @__PURE__ */ new Set(["default", "progress"]);
416
- function ae({
417
- variant: t = "default",
418
- disabled: o = !1,
419
- tabs: u,
420
- className: f,
421
- children: e,
422
- ...c
423
- }) {
424
- return /* @__PURE__ */ U(
425
- j,
426
- {
427
- render: /* @__PURE__ */ g(
428
- nt,
429
- {
430
- className: z(
431
- V.tabs,
432
- V[`tabs_variant_${t}`],
433
- f
434
- ),
435
- ...c
436
- }
437
- ),
438
- children: [
439
- /* @__PURE__ */ g(Vt, { children: u.map((a, _) => /* @__PURE__ */ U(rt, { children: [
440
- /* @__PURE__ */ g(St, { disabled: o, ...a }),
441
- _ + 1 < u.length && At.has(t) ? /* @__PURE__ */ g(
442
- yt,
443
- {
444
- orientation: t === "progress" ? "horizontal" : "vertical"
445
- }
446
- ) : null
447
- ] }, a.value)) }),
448
- e
449
- ]
450
- }
451
- );
452
- }
453
- function St({
454
- value: t,
455
- className: o,
456
- complete: u,
457
- children: f,
458
- ...e
459
- }) {
460
- return /* @__PURE__ */ U(
461
- ut,
462
- {
463
- interactive: "list-item",
464
- className: z(V.tabs__trigger, o),
465
- render: /* @__PURE__ */ g(ot, { value: t }),
466
- ...e,
467
- children: [
468
- u ? /* @__PURE__ */ g(
469
- ct,
470
- {
471
- color: it.positiveDefault,
472
- name: "check-line",
473
- className: V["tabs__trigger-complete"]
474
- }
475
- ) : null,
476
- f
477
- ]
478
- }
479
- );
480
- }
481
- function Vt({ className: t, ...o }) {
482
- return /* @__PURE__ */ g(
483
- j,
484
- {
485
- render: /* @__PURE__ */ g(
486
- st,
487
- {
488
- className: z(V.tabs__list, t),
489
- ...o
490
- }
491
- )
492
- }
493
- );
494
- }
495
- function yt({ className: t, ...o }) {
496
- return /* @__PURE__ */ g(
497
- lt,
498
- {
499
- className: z(V.tabs__separator, t),
500
- ...o
501
- }
502
- );
503
- }
504
- function se({ children: t, ...o }) {
505
- return /* @__PURE__ */ g(at, { ...o, children: /* @__PURE__ */ g(j, { children: t }) });
506
- }
2
+ import { Tabs as r } from "./tabs.js";
507
3
  export {
508
- ae as Tabs,
509
- se as TabsPanel
4
+ r as Tabs
510
5
  };
@@ -0,0 +1,28 @@
1
+ import { Tabs as TabsPrimitive } from '@base-ui/react/tabs';
2
+ import { Button } from '../button';
3
+ type TabsVariant = "default" | "progress" | "button-group";
4
+ interface TabsTriggerProps extends Button.Props {
5
+ value: TabsPrimitive.Tab.Props["value"];
6
+ /** Show indicator that tab is complete. */
7
+ complete?: boolean;
8
+ }
9
+ interface TabsRootProps extends TabsPrimitive.Root.Props {
10
+ /** Tabs styling that we should use. Defaults to "default". */
11
+ variant?: TabsVariant;
12
+ /** Disable all triggers */
13
+ disabled?: boolean;
14
+ tabs: Array<TabsTriggerProps>;
15
+ }
16
+ declare function TabsRoot({ variant, disabled, tabs, className, children, ...props }: TabsRootProps): import("react/jsx-runtime").JSX.Element;
17
+ type TabsPanelProps = TabsPrimitive.Panel.Props;
18
+ declare function TabsPanel({ children, ...props }: TabsPanelProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare const Tabs: typeof TabsRoot & {
20
+ Panel: typeof TabsPanel;
21
+ };
22
+ export declare namespace Tabs {
23
+ type Props = TabsRootProps;
24
+ namespace Panel {
25
+ type Props = TabsPanelProps;
26
+ }
27
+ }
28
+ export {};