@jfrader/ui 0.4.0 → 0.5.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 (307) hide show
  1. package/README.md +2 -0
  2. package/dist/accordion-DLul6vIl.js +205 -0
  3. package/dist/accordion.js +1 -1
  4. package/dist/{alert-BBqaKI4k.js → alert-DS_einpy.js} +1 -1
  5. package/dist/alert.js +1 -1
  6. package/dist/announcement-bar-Dlbq5-9D.js +382 -0
  7. package/dist/announcement-bar.js +2 -0
  8. package/dist/avatar-CaGJHy1N.js +145 -0
  9. package/dist/avatar-group-M1opAQEG.js +138 -0
  10. package/dist/avatar-group.js +2 -0
  11. package/dist/avatar.js +1 -1
  12. package/dist/badge-CjM5Agqk.js +119 -0
  13. package/dist/badge.js +1 -1
  14. package/dist/bottom-sheet-DjZOPq4k.js +674 -0
  15. package/dist/bottom-sheet.js +2 -0
  16. package/dist/{breadcrumbs-DVAOxfvL.js → breadcrumbs-BDK_LiwH.js} +11 -4
  17. package/dist/breadcrumbs.js +1 -1
  18. package/dist/{button-P2e7_44z.js → button-NLY0h6EJ.js} +8 -8
  19. package/dist/button.js +1 -1
  20. package/dist/calendar-BzJdv_SZ.js +449 -0
  21. package/dist/calendar.js +1 -1
  22. package/dist/card-Ca4KQKYQ.js +154 -0
  23. package/dist/card.js +1 -1
  24. package/dist/carousel-B7OrvD6J.js +474 -0
  25. package/dist/carousel.js +2 -0
  26. package/dist/{checkbox-COYG6L7d.js → checkbox-DKSzExj2.js} +17 -16
  27. package/dist/checkbox.js +1 -1
  28. package/dist/chip-group-DjQ0_6Y9.js +290 -0
  29. package/dist/chip-group.js +2 -0
  30. package/dist/code-block/shiki.js +147 -0
  31. package/dist/code-block-B5we2lZa.js +293 -0
  32. package/dist/code-block.js +2 -0
  33. package/dist/collection-registry-k6JcD3Jr.js +44 -0
  34. package/dist/combobox-DFFqOBCi.js +339 -0
  35. package/dist/combobox.js +1 -1
  36. package/dist/command-palette-BmQu2w4H.js +391 -0
  37. package/dist/command-palette.js +1 -1
  38. package/dist/comment-thread-ASaXDcGo.js +1410 -0
  39. package/dist/comment-thread.js +2 -0
  40. package/dist/context-menu-__1c2Dk9.js +370 -0
  41. package/dist/context-menu.js +2 -0
  42. package/dist/copy-button-DCSLcYS-.js +252 -0
  43. package/dist/copy-button.js +2 -0
  44. package/dist/countdown-Dp_TD1VP.js +293 -0
  45. package/dist/countdown.js +2 -0
  46. package/dist/date-picker-BiPN7yeK.js +255 -0
  47. package/dist/date-picker.js +1 -1
  48. package/dist/date-range-picker-DQpUeKqV.js +570 -0
  49. package/dist/date-range-picker.js +2 -0
  50. package/dist/{dialog-xaydbXl2.js → dialog-BX1zYMs-.js} +21 -20
  51. package/dist/dialog.js +1 -1
  52. package/dist/{divider-DYoJf0I_.js → divider-Cp7aNbhM.js} +21 -20
  53. package/dist/divider.js +1 -1
  54. package/dist/drawer-DsASTiP-.js +553 -0
  55. package/dist/drawer.js +2 -0
  56. package/dist/elastic-slider-BG6K019r.js +395 -0
  57. package/dist/elastic-slider.js +2 -0
  58. package/dist/empty-state-CDgrjPPf.js +142 -0
  59. package/dist/empty-state.js +2 -0
  60. package/dist/expandable-card-rUATve0o.js +347 -0
  61. package/dist/expandable-card.js +2 -0
  62. package/dist/expanding-search-BxOwtdwt.js +238 -0
  63. package/dist/expanding-search.js +2 -0
  64. package/dist/field-anatomy-COVdNpf5.js +84 -0
  65. package/dist/file-dropzone-BuXm3Tea.js +457 -0
  66. package/dist/file-dropzone.js +2 -0
  67. package/dist/filter-toolbar-Cy5Hqur-.js +314 -0
  68. package/dist/filter-toolbar.js +2 -0
  69. package/dist/hold-to-confirm-DjB2EVjM.js +294 -0
  70. package/dist/hold-to-confirm.js +2 -0
  71. package/dist/hover-card-CoMJKg1g.js +347 -0
  72. package/dist/hover-card.js +2 -0
  73. package/dist/image-compare-BxY8Ykzt.js +415 -0
  74. package/dist/image-compare.js +2 -0
  75. package/dist/index.js +84 -38
  76. package/dist/inline-edit-C0eeml65.js +535 -0
  77. package/dist/inline-edit.js +2 -0
  78. package/dist/input-control-DmMuAuPS.js +34 -0
  79. package/dist/json-viewer-DgWqyU75.js +802 -0
  80. package/dist/json-viewer.js +2 -0
  81. package/dist/listbox-style-WX-RASp1.js +59 -0
  82. package/dist/{media-D_eA_I-e.js → media-8yrN85VT.js} +2 -2
  83. package/dist/mention-input-sq61si9L.js +600 -0
  84. package/dist/mention-input.js +2 -0
  85. package/dist/menu-DDKgmK2F.js +295 -0
  86. package/dist/menu.js +1 -1
  87. package/dist/metric-card--lVTz5Wn.js +118 -0
  88. package/dist/metric-card.js +2 -0
  89. package/dist/multi-select-DG1BCFX7.js +598 -0
  90. package/dist/multi-select.js +2 -0
  91. package/dist/{navigation-DhnKriOp.js → navigation-CC26JDr-.js} +24 -18
  92. package/dist/navigation.js +1 -1
  93. package/dist/overlay-layer-qEbpEtb8.js +78 -0
  94. package/dist/overlay-portal-C4JZFq2M.js +15 -0
  95. package/dist/{pagination-DYdwsxwe.js → pagination-BfkeWbmP.js} +24 -23
  96. package/dist/pagination.js +1 -1
  97. package/dist/password-field-03pWRkuY.js +250 -0
  98. package/dist/password-field.js +2 -0
  99. package/dist/pill-BaS-uIbn.js +58 -0
  100. package/dist/pill.js +1 -1
  101. package/dist/popover-CErIw2q3.js +125 -0
  102. package/dist/popover.js +1 -1
  103. package/dist/{progress-BpJswTG4.js → progress-DAQkfhPd.js} +5 -5
  104. package/dist/progress.js +1 -1
  105. package/dist/radio-cards-Cu9cBssN.js +456 -0
  106. package/dist/radio-cards.js +2 -0
  107. package/dist/{radio-group-Ce0_IWQr.js → radio-group-TIK0-iPX.js} +22 -19
  108. package/dist/radio-group.js +1 -1
  109. package/dist/resizable-panels-DUpQEpwG.js +520 -0
  110. package/dist/resizable-panels.js +2 -0
  111. package/dist/scroll-area-CcZyiSOQ.js +371 -0
  112. package/dist/scroll-area.js +2 -0
  113. package/dist/search-field-DMvho0KQ.js +274 -0
  114. package/dist/search-field.js +2 -0
  115. package/dist/segmented-control-8ZUGnsZm.js +327 -0
  116. package/dist/segmented-control.js +2 -0
  117. package/dist/select-D5rhJ8gi.js +293 -0
  118. package/dist/select.js +1 -1
  119. package/dist/signature-pad-_bTeguN9.js +645 -0
  120. package/dist/signature-pad.js +2 -0
  121. package/dist/{skeleton-OoFlOEXO.js → skeleton-XQQDkCHd.js} +1 -1
  122. package/dist/skeleton.js +1 -1
  123. package/dist/slider-DVG6-Awh.js +308 -0
  124. package/dist/slider.js +2 -0
  125. package/dist/sortable-data-table-CYKT_Ng7.js +365 -0
  126. package/dist/sortable-data-table.js +2 -0
  127. package/dist/{spinner-C2YDoiMn.js → spinner-DtxvDPdM.js} +1 -1
  128. package/dist/spinner.js +1 -1
  129. package/dist/split-button-BCw4zZom.js +262 -0
  130. package/dist/split-button.js +2 -0
  131. package/dist/stepper-CruHbXxX.js +480 -0
  132. package/dist/stepper.js +2 -0
  133. package/dist/swipe-actions-CBuJREU1.js +420 -0
  134. package/dist/swipe-actions.js +2 -0
  135. package/dist/switch-C1WrKrf-.js +145 -0
  136. package/dist/switch.js +1 -1
  137. package/dist/tabs-XluwRjgg.js +210 -0
  138. package/dist/tabs.js +1 -1
  139. package/dist/tag-input-DSRCyrX2.js +418 -0
  140. package/dist/tag-input.js +2 -0
  141. package/dist/{text-field-D60ok14S.js → text-field-hU72iSVS.js} +20 -17
  142. package/dist/text-field.js +1 -1
  143. package/dist/{textarea-DyfjtP0A.js → textarea-3k4Y0QQ3.js} +23 -20
  144. package/dist/textarea.js +1 -1
  145. package/dist/theme-root.js +1 -1
  146. package/dist/theme-switch-C505TtU8.js +166 -0
  147. package/dist/theme-switch.js +2 -0
  148. package/dist/time-picker-CPlhW0tr.js +311 -0
  149. package/dist/time-picker.js +2 -0
  150. package/dist/timeline-B0uAAVfT.js +624 -0
  151. package/dist/timeline.js +2 -0
  152. package/dist/toast-B7wo3sX1.js +371 -0
  153. package/dist/toast-stack-B40VpS4M.js +197 -0
  154. package/dist/toast-stack.js +2 -0
  155. package/dist/toast.js +1 -1
  156. package/dist/{toggle-group-CI0e7hFm.js → toggle-group-B2fpFZwV.js} +5 -5
  157. package/dist/toggle-group.js +1 -1
  158. package/dist/tooltip-BvgVTCTN.js +120 -0
  159. package/dist/tooltip.js +1 -1
  160. package/dist/tree-view-j8qLqkb_.js +364 -0
  161. package/dist/tree-view.js +2 -0
  162. package/dist/types/components/announcement-bar/announcement-bar.d.ts +75 -0
  163. package/dist/types/components/announcement-bar/index.d.ts +2 -0
  164. package/dist/types/components/avatar-group/avatar-group.d.ts +43 -0
  165. package/dist/types/components/avatar-group/index.d.ts +2 -0
  166. package/dist/types/components/bottom-sheet/bottom-sheet.d.ts +60 -0
  167. package/dist/types/components/bottom-sheet/index.d.ts +2 -0
  168. package/dist/types/components/calendar/calendar.d.ts +25 -1
  169. package/dist/types/components/calendar/index.d.ts +1 -1
  170. package/dist/types/components/carousel/carousel.d.ts +73 -0
  171. package/dist/types/components/carousel/index.d.ts +2 -0
  172. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  173. package/dist/types/components/chip-group/chip-group.d.ts +54 -0
  174. package/dist/types/components/chip-group/index.d.ts +1 -0
  175. package/dist/types/components/code-block/code-block.d.ts +58 -0
  176. package/dist/types/components/code-block/index.d.ts +1 -0
  177. package/dist/types/components/code-block/shiki.d.ts +3 -0
  178. package/dist/types/components/combobox/combobox.d.ts +1 -1
  179. package/dist/types/components/command-palette/command-palette.d.ts +2 -2
  180. package/dist/types/components/comment-thread/comment-thread.d.ts +118 -0
  181. package/dist/types/components/comment-thread/index.d.ts +1 -0
  182. package/dist/types/components/comment-thread/thread-core.d.ts +96 -0
  183. package/dist/types/components/comment-thread/thread-parts.d.ts +114 -0
  184. package/dist/types/components/context-menu/context-menu.d.ts +55 -0
  185. package/dist/types/components/context-menu/index.d.ts +2 -0
  186. package/dist/types/components/copy-button/copy-button.d.ts +49 -0
  187. package/dist/types/components/copy-button/index.d.ts +2 -0
  188. package/dist/types/components/countdown/countdown.d.ts +37 -0
  189. package/dist/types/components/countdown/index.d.ts +1 -0
  190. package/dist/types/components/date-picker/date-picker.d.ts +1 -1
  191. package/dist/types/components/date-range-picker/date-range-picker.d.ts +103 -0
  192. package/dist/types/components/date-range-picker/index.d.ts +2 -0
  193. package/dist/types/components/drawer/drawer.d.ts +59 -0
  194. package/dist/types/components/drawer/index.d.ts +2 -0
  195. package/dist/types/components/elastic-slider/elastic-slider.d.ts +53 -0
  196. package/dist/types/components/elastic-slider/index.d.ts +1 -0
  197. package/dist/types/components/empty-state/empty-state.d.ts +36 -0
  198. package/dist/types/components/empty-state/index.d.ts +2 -0
  199. package/dist/types/components/expandable-card/expandable-card.d.ts +28 -0
  200. package/dist/types/components/expandable-card/index.d.ts +2 -0
  201. package/dist/types/components/expanding-search/expanding-search.d.ts +22 -0
  202. package/dist/types/components/expanding-search/index.d.ts +1 -0
  203. package/dist/types/components/field/field-anatomy.d.ts +4 -2
  204. package/dist/types/components/file-dropzone/file-dropzone.d.ts +93 -0
  205. package/dist/types/components/file-dropzone/index.d.ts +2 -0
  206. package/dist/types/components/filter-toolbar/filter-toolbar.d.ts +70 -0
  207. package/dist/types/components/filter-toolbar/index.d.ts +1 -0
  208. package/dist/types/components/hold-to-confirm/hold-to-confirm.d.ts +32 -0
  209. package/dist/types/components/hold-to-confirm/index.d.ts +2 -0
  210. package/dist/types/components/hover-card/hover-card.d.ts +97 -0
  211. package/dist/types/components/hover-card/index.d.ts +2 -0
  212. package/dist/types/components/image-compare/image-compare.d.ts +54 -0
  213. package/dist/types/components/image-compare/index.d.ts +1 -0
  214. package/dist/types/components/inline-edit/index.d.ts +2 -0
  215. package/dist/types/components/inline-edit/inline-edit.d.ts +93 -0
  216. package/dist/types/components/json-viewer/index.d.ts +2 -0
  217. package/dist/types/components/json-viewer/json-viewer.d.ts +82 -0
  218. package/dist/types/components/mention-input/index.d.ts +2 -0
  219. package/dist/types/components/mention-input/mention-input.d.ts +87 -0
  220. package/dist/types/components/menu/menu.d.ts +68 -7
  221. package/dist/types/components/metric-card/index.d.ts +1 -0
  222. package/dist/types/components/metric-card/metric-card.d.ts +37 -0
  223. package/dist/types/components/multi-select/index.d.ts +2 -0
  224. package/dist/types/components/multi-select/multi-select.d.ts +73 -0
  225. package/dist/types/components/pagination/pagination.d.ts +1 -1
  226. package/dist/types/components/password-field/index.d.ts +2 -0
  227. package/dist/types/components/password-field/password-field.d.ts +34 -0
  228. package/dist/types/components/popover/popover.d.ts +1 -1
  229. package/dist/types/components/radio-cards/index.d.ts +1 -0
  230. package/dist/types/components/radio-cards/radio-cards.d.ts +42 -0
  231. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  232. package/dist/types/components/resizable-panels/index.d.ts +2 -0
  233. package/dist/types/components/resizable-panels/resizable-panels.d.ts +42 -0
  234. package/dist/types/components/scroll-area/index.d.ts +2 -0
  235. package/dist/types/components/scroll-area/scroll-area.d.ts +34 -0
  236. package/dist/types/components/search-field/index.d.ts +1 -0
  237. package/dist/types/components/search-field/search-field.d.ts +31 -0
  238. package/dist/types/components/segmented-control/index.d.ts +2 -0
  239. package/dist/types/components/segmented-control/segmented-control.d.ts +32 -0
  240. package/dist/types/components/select/select.d.ts +1 -1
  241. package/dist/types/components/signature-pad/index.d.ts +2 -0
  242. package/dist/types/components/signature-pad/signature-pad.d.ts +104 -0
  243. package/dist/types/components/slider/index.d.ts +1 -0
  244. package/dist/types/components/slider/slider-style.d.ts +14 -0
  245. package/dist/types/components/slider/slider.d.ts +62 -0
  246. package/dist/types/components/slider/use-slider-interaction.d.ts +79 -0
  247. package/dist/types/components/sortable-data-table/index.d.ts +1 -0
  248. package/dist/types/components/sortable-data-table/sortable-data-table.d.ts +76 -0
  249. package/dist/types/components/split-button/index.d.ts +2 -0
  250. package/dist/types/components/split-button/split-button.d.ts +55 -0
  251. package/dist/types/components/stepper/index.d.ts +2 -0
  252. package/dist/types/components/stepper/stepper.d.ts +85 -0
  253. package/dist/types/components/swipe-actions/index.d.ts +2 -0
  254. package/dist/types/components/swipe-actions/swipe-actions.d.ts +44 -0
  255. package/dist/types/components/tabs/tabs.d.ts +1 -1
  256. package/dist/types/components/tag-input/index.d.ts +2 -0
  257. package/dist/types/components/tag-input/tag-input.d.ts +66 -0
  258. package/dist/types/components/text-field/text-field.d.ts +1 -1
  259. package/dist/types/components/textarea/textarea.d.ts +1 -1
  260. package/dist/types/components/theme-switch/index.d.ts +1 -0
  261. package/dist/types/components/theme-switch/theme-switch.d.ts +33 -0
  262. package/dist/types/components/time-picker/index.d.ts +2 -0
  263. package/dist/types/components/time-picker/time-picker.d.ts +48 -0
  264. package/dist/types/components/timeline/index.d.ts +2 -0
  265. package/dist/types/components/timeline/timeline.d.ts +66 -0
  266. package/dist/types/components/toast/toast.d.ts +37 -2
  267. package/dist/types/components/toast-stack/index.d.ts +2 -0
  268. package/dist/types/components/toast-stack/toast-stack.d.ts +28 -0
  269. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  270. package/dist/types/components/tree-view/index.d.ts +1 -0
  271. package/dist/types/components/tree-view/tree-view.d.ts +47 -0
  272. package/dist/types/components/usage-meter/index.d.ts +2 -0
  273. package/dist/types/components/usage-meter/usage-meter.d.ts +83 -0
  274. package/dist/types/index.d.ts +45 -0
  275. package/dist/types/overlay/overlay-layer.d.ts +53 -0
  276. package/dist/types/overlay/use-overlay-floating.d.ts +19 -2
  277. package/dist/types/styling/media.d.ts +1 -0
  278. package/dist/types/styling/theme.d.ts +12 -0
  279. package/dist/types/utils/use-controlled-state.d.ts +2 -1
  280. package/dist/usage-meter-qyQ3rYVv.js +463 -0
  281. package/dist/usage-meter.js +2 -0
  282. package/dist/use-controlled-state-DpeVQZNR.js +20 -0
  283. package/dist/use-latest-callback-cj1OOQL6.js +11 -0
  284. package/dist/use-overlay-floating-Bx2jBKAA.js +33 -0
  285. package/dist/use-slider-interaction-ChL-208h.js +234 -0
  286. package/package.json +195 -3
  287. package/dist/accordion-Bd-j04hW.js +0 -198
  288. package/dist/avatar-BahDVO9t.js +0 -132
  289. package/dist/badge-B_sLygxU.js +0 -108
  290. package/dist/calendar-C9Yad_-w.js +0 -394
  291. package/dist/card-D-aI2QHx.js +0 -158
  292. package/dist/collection-registry-BTYi6zGh.js +0 -98
  293. package/dist/combobox-DiMC2g_u.js +0 -327
  294. package/dist/command-palette-V_2pEay7.js +0 -379
  295. package/dist/date-picker-C29Uo4Tx.js +0 -250
  296. package/dist/field-anatomy-D2ToMeRa.js +0 -109
  297. package/dist/menu-CGPTNRnF.js +0 -216
  298. package/dist/pill-DO2gHzMb.js +0 -56
  299. package/dist/popover-CdRXjQqI.js +0 -113
  300. package/dist/select-BgG7WgSh.js +0 -286
  301. package/dist/switch-Dr-qjmT4.js +0 -142
  302. package/dist/tabs-CK_g1RKa.js +0 -203
  303. package/dist/toast-CjmELMZZ.js +0 -283
  304. package/dist/tooltip-CaL3rKbV.js +0 -108
  305. package/dist/use-controlled-state-CVXDa-qM.js +0 -21
  306. package/dist/use-overlay-floating-Bit-f0FU.js +0 -31
  307. package/dist/{theme-root-BbTBuLMQ.js → theme-root-Bs1U3uPA.js} +2 -2
@@ -0,0 +1,234 @@
1
+ 'use client';
2
+ import { r as e } from "./sx-Dx9JUKp5.js";
3
+ import { n as t } from "./focus-ring-BK5W5_NY.js";
4
+ import { n } from "./media-8yrN85VT.js";
5
+ import { t as r } from "./use-controlled-state-DpeVQZNR.js";
6
+ import { t as i } from "./renderable-DzcIj1Lo.js";
7
+ import { useEffect as a, useId as o, useMemo as s, useRef as c, useState as l } from "react";
8
+ import { vars as u } from "@jfrader/tokens/vars";
9
+ //#region src/components/slider/slider-style.ts
10
+ var d = e({
11
+ display: "grid",
12
+ gap: u.space[2],
13
+ minInlineSize: 0,
14
+ inlineSize: "100%",
15
+ fontFamily: u.font.sans,
16
+ fontSize: u.textSize.sm,
17
+ lineHeight: u.lineHeight.base,
18
+ color: u.color.text
19
+ }), f = e({
20
+ display: "flex",
21
+ flexWrap: "wrap",
22
+ justifyContent: "space-between",
23
+ gap: u.space[2],
24
+ alignItems: "baseline"
25
+ }), p = e({ fontWeight: u.fontWeight.medium }), m = e({
26
+ fontVariantNumeric: "tabular-nums",
27
+ overflowWrap: "anywhere"
28
+ }), h = e({ color: u.color.textMuted }), g = e({ color: u.color.dangerText }), _ = e({
29
+ display: "flex",
30
+ alignItems: "center",
31
+ gap: u.space[3],
32
+ minInlineSize: 0,
33
+ paddingBlockStart: u.space[8]
34
+ }), v = e({
35
+ position: "relative",
36
+ flex: 1,
37
+ minInlineSize: u.space[8],
38
+ marginInline: u.space[4],
39
+ touchAction: "pan-y",
40
+ userSelect: "none",
41
+ cursor: "pointer",
42
+ "&[data-disabled]": { cursor: "default" }
43
+ }), y = {
44
+ sm: e({ minBlockSize: u.space[8] }),
45
+ md: e({ minBlockSize: u.space[10] })
46
+ }, b = e({
47
+ display: "flex",
48
+ flexWrap: "wrap",
49
+ gap: u.space[2]
50
+ }), x = e({
51
+ minBlockSize: u.space[8],
52
+ minInlineSize: u.space[8],
53
+ paddingBlock: u.space[1],
54
+ paddingInline: u.space[2],
55
+ font: "inherit",
56
+ overflowWrap: "anywhere",
57
+ maxInlineSize: "100%",
58
+ color: u.color.text,
59
+ background: u.color.surfaceRaised,
60
+ border: `1px solid ${u.color.borderControl}`,
61
+ borderRadius: u.radius.md,
62
+ cursor: "pointer",
63
+ "&:focus-visible": t,
64
+ "&:disabled": { cursor: "default" },
65
+ [n]: { borderColor: "ButtonText" }
66
+ }), S = 1e-7, C = "data-slider-thumb";
67
+ function w(e, t) {
68
+ return typeof e == "number" ? e === t : typeof t != "number" && e[0] === t[0] && e[1] === t[1];
69
+ }
70
+ function T(...e) {
71
+ return e.filter(Boolean).join(" ") || void 0;
72
+ }
73
+ function E(e) {
74
+ return i(e) && e !== "";
75
+ }
76
+ function D(e, t) {
77
+ return typeof e == "function" ? e(t) : e;
78
+ }
79
+ function O(e, t, n) {
80
+ let r = s(() => new Intl.NumberFormat(e, t), [e, t]);
81
+ return {
82
+ formatter: r,
83
+ format: (e) => n ? n(e, r) : r.format(e)
84
+ };
85
+ }
86
+ function k(e) {
87
+ let { component: t, range: n, value: i, defaultValue: s, min: u, max: d, step: f, largeStep: p, minStepsBetweenThumbs: m, disabled: h, onValueChange: g, onValueCommit: _, onPointerSample: v, resolvePointer: y, onGestureEnd: b } = e, x = (d - u) / f;
88
+ if (![
89
+ u,
90
+ d,
91
+ f,
92
+ x
93
+ ].every(Number.isFinite) || d <= u || f <= 0 || !Number.isSafeInteger(Math.round(x)) || Math.abs(x - Math.round(x)) > S) throw Error(`${t} requires finite min < max, a positive step, and max aligned to min + n * step.`);
94
+ if (!Number.isInteger(m) || m < 0 || m > Math.round(x)) throw Error(`${t} minStepsBetweenThumbs must be a nonnegative integer that fits the domain.`);
95
+ if (p !== void 0 && (!Number.isFinite(p) || p <= 0)) throw Error(`${t} largeStep must be finite and positive.`);
96
+ let T = m * f, E = Math.max(1, Math.round((p ?? (d - u) / 10) / f)) * f, D = (e) => {
97
+ if (!Number.isFinite(e)) throw Error(`${t} values must be finite.`);
98
+ let n = Math.max(0, Math.min(Math.round(x), Math.round((e - u) / f))), r = u + n * f, i = Number(r.toPrecision(15));
99
+ return Math.abs(i - r) <= f * S ? i : r;
100
+ }, O = (e) => {
101
+ if (!n) {
102
+ if (typeof e != "number") throw Error(`${t} single mode requires a number.`);
103
+ return D(e);
104
+ }
105
+ if (typeof e == "number" || e.length !== 2 || e[0] > e[1]) throw Error(`${t} range requires an ordered [lower, upper] tuple.`);
106
+ let r = D(e[0]), i = D(e[1]);
107
+ if ((i - r) / f + S < m) throw Error(`${t} range values must respect minStepsBetweenThumbs.`);
108
+ return [r, i];
109
+ }, [k] = l(() => O(s ?? (n ? [u, d] : u))), [A, j, M] = r(i, k, g), N = O(A ?? k), P = typeof N == "number" ? [N] : N, F = o(), I = c(null), L = c(null), R = c(0), [z, B] = l(null), V = (e) => n ? [e === 0 ? u : D(P[0] + T), e === 0 ? D(P[1] - T) : d] : [u, d], H = (e, t) => {
110
+ let [r, i] = V(e), a = D(Math.max(r, Math.min(i, t)));
111
+ return n ? e === 0 ? [a, P[1]] : [P[0], a] : a;
112
+ }, U = (e) => {
113
+ w(N, e) || j(e);
114
+ }, W = (e) => {
115
+ let t = L.current;
116
+ t && (L.current = null, B(null), b?.(e), t.control.hasPointerCapture(t.pointerId) && t.control.releasePointerCapture(t.pointerId), e && !w(t.initial, t.candidate) && _(t.candidate));
117
+ };
118
+ a(() => {
119
+ h && W(!1);
120
+ }, [h]), a(() => () => {
121
+ let e = L.current;
122
+ L.current = null, e?.control.hasPointerCapture(e.pointerId) && e.control.releasePointerCapture(e.pointerId);
123
+ }, []), a(() => {
124
+ let e = I.current?.closest("form");
125
+ if (!e) return;
126
+ let t = (e) => {
127
+ queueMicrotask(() => {
128
+ e.defaultPrevented || (W(!1), M());
129
+ });
130
+ };
131
+ return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
132
+ }, [M]);
133
+ let G = (e) => I.current?.querySelector(`[${C}="${e}"]`)?.focus(), K = () => I.current?.matches(":dir(rtl)") ?? !1, q = (e) => {
134
+ let t = I.current.getBoundingClientRect(), n = t.width > 0 ? (e - t.left) / t.width : 0;
135
+ return u + (K() ? 1 - n : n) * (d - u);
136
+ }, J = (e) => n ? Math.abs(e - P[0]) === Math.abs(e - P[1]) ? R.current : Math.abs(e - P[0]) < Math.abs(e - P[1]) ? 0 : 1 : 0, Y = (e) => {
137
+ let t = L.current;
138
+ if (!t || e.pointerId !== t.pointerId || h) return;
139
+ t.coincident && e.clientX !== t.originX && (t.thumb = e.clientX > t.originX === K() ? 0 : 1, t.coincident = !1, B(t.thumb), G(t.thumb));
140
+ let [n, r] = V(t.thumb), i = I.current.getBoundingClientRect().width, a = {
141
+ raw: q(e.clientX - t.offset),
142
+ low: n,
143
+ high: r,
144
+ pxPerUnit: i / (d - u),
145
+ rtl: K(),
146
+ pointerType: e.pointerType
147
+ };
148
+ v?.(a);
149
+ let o = H(t.thumb, y ? y(a) : a.raw);
150
+ w(t.candidate, o) || (t.candidate = o, U(o));
151
+ }, X = (e) => {
152
+ if (e.defaultPrevented || h || L.current || !e.isPrimary || e.button !== 0) return;
153
+ let t = e.target.closest(`[${C}]`), r = t ? Number(t.getAttribute(C)) : J(q(e.clientX)), i = t?.getBoundingClientRect(), a = i ? e.clientX - (i.left + i.width / 2) : 0;
154
+ L.current = {
155
+ pointerId: e.pointerId,
156
+ thumb: r,
157
+ offset: a,
158
+ originX: e.clientX,
159
+ coincident: n && P[0] === P[1],
160
+ initial: N,
161
+ candidate: N,
162
+ control: e.currentTarget
163
+ }, e.currentTarget.setPointerCapture(e.pointerId), e.preventDefault(), B(r), G(r), t || Y(e);
164
+ }, Z = (e, t) => {
165
+ if (h || e.defaultPrevented) return;
166
+ let n = K() ? -1 : 1, r = e.shiftKey ? E : f, [i, a] = V(t), o = {
167
+ ArrowRight: P[t] + r * n,
168
+ ArrowLeft: P[t] - r * n,
169
+ ArrowUp: P[t] + r,
170
+ ArrowDown: P[t] - r,
171
+ PageUp: P[t] + E,
172
+ PageDown: P[t] - E,
173
+ Home: i,
174
+ End: a
175
+ }[e.key];
176
+ if (o === void 0) return;
177
+ e.preventDefault();
178
+ let s = H(t, o);
179
+ w(N, s) || (U(s), _(s));
180
+ };
181
+ return {
182
+ id: F,
183
+ controlRef: I,
184
+ current: N,
185
+ values: P,
186
+ active: z,
187
+ bounds: V,
188
+ percent: (e) => (e - u) / (d - u) * 100,
189
+ normalizeMarks: (e) => Array.from(new Map(e.flatMap((e) => {
190
+ let t = typeof e == "number" ? { value: e } : e;
191
+ return Number.isFinite(t.value) && t.value >= u && t.value <= d ? [[D(t.value), {
192
+ ...t,
193
+ value: D(t.value)
194
+ }]] : [];
195
+ })).values()),
196
+ controlHandlers: (e) => ({
197
+ ref: (t) => {
198
+ I.current = t;
199
+ let n = e?.ref;
200
+ if (typeof n == "function") return n(t);
201
+ n && (n.current = t);
202
+ },
203
+ onPointerDown: (t) => {
204
+ e?.onPointerDown?.(t), X(t);
205
+ },
206
+ onPointerMove: (t) => {
207
+ e?.onPointerMove?.(t), t.defaultPrevented || Y(t);
208
+ },
209
+ onPointerUp: (t) => {
210
+ e?.onPointerUp?.(t), L.current?.pointerId === t.pointerId && W(!0);
211
+ },
212
+ onPointerCancel: (t) => {
213
+ e?.onPointerCancel?.(t), L.current?.pointerId === t.pointerId && W(!1);
214
+ },
215
+ onLostPointerCapture: (t) => {
216
+ e?.onLostPointerCapture?.(t), L.current?.pointerId === t.pointerId && W(!1);
217
+ }
218
+ }),
219
+ handleRootKeyDown: (e) => {
220
+ let t = e.target.closest(`[${C}]`);
221
+ t && I.current?.contains(t) && Z(e, Number(t.getAttribute(C)));
222
+ },
223
+ selectMark: (e) => {
224
+ if (h) return;
225
+ let t = H(J(e), e);
226
+ w(N, t) || (U(t), _(t));
227
+ },
228
+ noteFocus: (e) => {
229
+ R.current = e;
230
+ }
231
+ };
232
+ }
233
+ //#endregion
234
+ export { k as a, g as c, x as d, b as f, y as g, _ as h, O as i, f as l, d as m, D as n, v as o, m as p, T as r, h as s, E as t, p as u };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jfrader/ui",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "React components styled with Emotion and themed through CSS custom properties.",
5
5
  "keywords": [
6
6
  "react",
@@ -34,14 +34,26 @@
34
34
  "types": "./dist/types/components/alert/index.d.ts",
35
35
  "import": "./dist/alert.js"
36
36
  },
37
+ "./announcement-bar": {
38
+ "types": "./dist/types/components/announcement-bar/index.d.ts",
39
+ "import": "./dist/announcement-bar.js"
40
+ },
37
41
  "./avatar": {
38
42
  "types": "./dist/types/components/avatar/index.d.ts",
39
43
  "import": "./dist/avatar.js"
40
44
  },
45
+ "./avatar-group": {
46
+ "types": "./dist/types/components/avatar-group/index.d.ts",
47
+ "import": "./dist/avatar-group.js"
48
+ },
41
49
  "./badge": {
42
50
  "types": "./dist/types/components/badge/index.d.ts",
43
51
  "import": "./dist/badge.js"
44
52
  },
53
+ "./bottom-sheet": {
54
+ "types": "./dist/types/components/bottom-sheet/index.d.ts",
55
+ "import": "./dist/bottom-sheet.js"
56
+ },
45
57
  "./breadcrumbs": {
46
58
  "types": "./dist/types/components/breadcrumbs/index.d.ts",
47
59
  "import": "./dist/breadcrumbs.js"
@@ -58,10 +70,26 @@
58
70
  "types": "./dist/types/components/card/index.d.ts",
59
71
  "import": "./dist/card.js"
60
72
  },
73
+ "./carousel": {
74
+ "types": "./dist/types/components/carousel/index.d.ts",
75
+ "import": "./dist/carousel.js"
76
+ },
61
77
  "./checkbox": {
62
78
  "types": "./dist/types/components/checkbox/index.d.ts",
63
79
  "import": "./dist/checkbox.js"
64
80
  },
81
+ "./chip-group": {
82
+ "types": "./dist/types/components/chip-group/index.d.ts",
83
+ "import": "./dist/chip-group.js"
84
+ },
85
+ "./code-block": {
86
+ "types": "./dist/types/components/code-block/index.d.ts",
87
+ "import": "./dist/code-block.js"
88
+ },
89
+ "./code-block/shiki": {
90
+ "types": "./dist/types/components/code-block/shiki.d.ts",
91
+ "import": "./dist/code-block/shiki.js"
92
+ },
65
93
  "./combobox": {
66
94
  "types": "./dist/types/components/combobox/index.d.ts",
67
95
  "import": "./dist/combobox.js"
@@ -70,14 +98,34 @@
70
98
  "types": "./dist/types/components/command-palette/index.d.ts",
71
99
  "import": "./dist/command-palette.js"
72
100
  },
101
+ "./comment-thread": {
102
+ "types": "./dist/types/components/comment-thread/index.d.ts",
103
+ "import": "./dist/comment-thread.js"
104
+ },
73
105
  "./container": {
74
106
  "types": "./dist/types/components/container/index.d.ts",
75
107
  "import": "./dist/container.js"
76
108
  },
109
+ "./context-menu": {
110
+ "types": "./dist/types/components/context-menu/index.d.ts",
111
+ "import": "./dist/context-menu.js"
112
+ },
113
+ "./copy-button": {
114
+ "types": "./dist/types/components/copy-button/index.d.ts",
115
+ "import": "./dist/copy-button.js"
116
+ },
117
+ "./countdown": {
118
+ "types": "./dist/types/components/countdown/index.d.ts",
119
+ "import": "./dist/countdown.js"
120
+ },
77
121
  "./date-picker": {
78
122
  "types": "./dist/types/components/date-picker/index.d.ts",
79
123
  "import": "./dist/date-picker.js"
80
124
  },
125
+ "./date-range-picker": {
126
+ "types": "./dist/types/components/date-range-picker/index.d.ts",
127
+ "import": "./dist/date-range-picker.js"
128
+ },
81
129
  "./dialog": {
82
130
  "types": "./dist/types/components/dialog/index.d.ts",
83
131
  "import": "./dist/dialog.js"
@@ -86,18 +134,78 @@
86
134
  "types": "./dist/types/components/divider/index.d.ts",
87
135
  "import": "./dist/divider.js"
88
136
  },
137
+ "./drawer": {
138
+ "types": "./dist/types/components/drawer/index.d.ts",
139
+ "import": "./dist/drawer.js"
140
+ },
141
+ "./elastic-slider": {
142
+ "types": "./dist/types/components/elastic-slider/index.d.ts",
143
+ "import": "./dist/elastic-slider.js"
144
+ },
145
+ "./empty-state": {
146
+ "types": "./dist/types/components/empty-state/index.d.ts",
147
+ "import": "./dist/empty-state.js"
148
+ },
149
+ "./expandable-card": {
150
+ "types": "./dist/types/components/expandable-card/index.d.ts",
151
+ "import": "./dist/expandable-card.js"
152
+ },
153
+ "./expanding-search": {
154
+ "types": "./dist/types/components/expanding-search/index.d.ts",
155
+ "import": "./dist/expanding-search.js"
156
+ },
157
+ "./file-dropzone": {
158
+ "types": "./dist/types/components/file-dropzone/index.d.ts",
159
+ "import": "./dist/file-dropzone.js"
160
+ },
161
+ "./filter-toolbar": {
162
+ "types": "./dist/types/components/filter-toolbar/index.d.ts",
163
+ "import": "./dist/filter-toolbar.js"
164
+ },
89
165
  "./flex": {
90
166
  "types": "./dist/types/components/flex/index.d.ts",
91
167
  "import": "./dist/flex.js"
92
168
  },
169
+ "./hold-to-confirm": {
170
+ "types": "./dist/types/components/hold-to-confirm/index.d.ts",
171
+ "import": "./dist/hold-to-confirm.js"
172
+ },
173
+ "./image-compare": {
174
+ "types": "./dist/types/components/image-compare/index.d.ts",
175
+ "import": "./dist/image-compare.js"
176
+ },
177
+ "./inline-edit": {
178
+ "types": "./dist/types/components/inline-edit/index.d.ts",
179
+ "import": "./dist/inline-edit.js"
180
+ },
181
+ "./hover-card": {
182
+ "types": "./dist/types/components/hover-card/index.d.ts",
183
+ "import": "./dist/hover-card.js"
184
+ },
185
+ "./json-viewer": {
186
+ "types": "./dist/types/components/json-viewer/index.d.ts",
187
+ "import": "./dist/json-viewer.js"
188
+ },
93
189
  "./kbd": {
94
190
  "types": "./dist/types/components/kbd/index.d.ts",
95
191
  "import": "./dist/kbd.js"
96
192
  },
193
+ "./mention-input": {
194
+ "types": "./dist/types/components/mention-input/index.d.ts",
195
+ "import": "./dist/mention-input.js"
196
+ },
97
197
  "./menu": {
98
198
  "types": "./dist/types/components/menu/index.d.ts",
99
199
  "import": "./dist/menu.js"
100
200
  },
201
+ "./metric-card": {
202
+ "types": "./dist/types/components/metric-card/index.d.ts",
203
+ "import": "./dist/metric-card.js"
204
+ },
205
+ "./multi-select": {
206
+ "types": "./dist/types/components/multi-select/index.d.ts",
207
+ "import": "./dist/multi-select.js"
208
+ },
101
209
  "./navigation": {
102
210
  "types": "./dist/types/components/navigation/index.d.ts",
103
211
  "import": "./dist/navigation.js"
@@ -106,6 +214,10 @@
106
214
  "types": "./dist/types/components/pagination/index.d.ts",
107
215
  "import": "./dist/pagination.js"
108
216
  },
217
+ "./password-field": {
218
+ "types": "./dist/types/components/password-field/index.d.ts",
219
+ "import": "./dist/password-field.js"
220
+ },
109
221
  "./pill": {
110
222
  "types": "./dist/types/components/pill/index.d.ts",
111
223
  "import": "./dist/pill.js"
@@ -118,26 +230,70 @@
118
230
  "types": "./dist/types/components/progress/index.d.ts",
119
231
  "import": "./dist/progress.js"
120
232
  },
233
+ "./radio-cards": {
234
+ "types": "./dist/types/components/radio-cards/index.d.ts",
235
+ "import": "./dist/radio-cards.js"
236
+ },
121
237
  "./radio-group": {
122
238
  "types": "./dist/types/components/radio-group/index.d.ts",
123
239
  "import": "./dist/radio-group.js"
124
240
  },
241
+ "./resizable-panels": {
242
+ "types": "./dist/types/components/resizable-panels/index.d.ts",
243
+ "import": "./dist/resizable-panels.js"
244
+ },
245
+ "./scroll-area": {
246
+ "types": "./dist/types/components/scroll-area/index.d.ts",
247
+ "import": "./dist/scroll-area.js"
248
+ },
249
+ "./search-field": {
250
+ "types": "./dist/types/components/search-field/index.d.ts",
251
+ "import": "./dist/search-field.js"
252
+ },
253
+ "./segmented-control": {
254
+ "types": "./dist/types/components/segmented-control/index.d.ts",
255
+ "import": "./dist/segmented-control.js"
256
+ },
125
257
  "./select": {
126
258
  "types": "./dist/types/components/select/index.d.ts",
127
259
  "import": "./dist/select.js"
128
260
  },
261
+ "./signature-pad": {
262
+ "types": "./dist/types/components/signature-pad/index.d.ts",
263
+ "import": "./dist/signature-pad.js"
264
+ },
129
265
  "./skeleton": {
130
266
  "types": "./dist/types/components/skeleton/index.d.ts",
131
267
  "import": "./dist/skeleton.js"
132
268
  },
269
+ "./slider": {
270
+ "types": "./dist/types/components/slider/index.d.ts",
271
+ "import": "./dist/slider.js"
272
+ },
273
+ "./sortable-data-table": {
274
+ "types": "./dist/types/components/sortable-data-table/index.d.ts",
275
+ "import": "./dist/sortable-data-table.js"
276
+ },
133
277
  "./spinner": {
134
278
  "types": "./dist/types/components/spinner/index.d.ts",
135
279
  "import": "./dist/spinner.js"
136
280
  },
281
+ "./split-button": {
282
+ "types": "./dist/types/components/split-button/index.d.ts",
283
+ "import": "./dist/split-button.js"
284
+ },
137
285
  "./stack": {
138
286
  "types": "./dist/types/components/stack/index.d.ts",
139
287
  "import": "./dist/stack.js"
140
288
  },
289
+ "./stepper": {
290
+ "types": "./dist/types/components/stepper/index.d.ts",
291
+ "import": "./dist/stepper.js"
292
+ },
293
+ "./swipe-actions": {
294
+ "types": "./dist/types/components/swipe-actions/index.d.ts",
295
+ "import": "./dist/swipe-actions.js"
296
+ },
141
297
  "./switch": {
142
298
  "types": "./dist/types/components/switch/index.d.ts",
143
299
  "import": "./dist/switch.js"
@@ -146,6 +302,10 @@
146
302
  "types": "./dist/types/components/tabs/index.d.ts",
147
303
  "import": "./dist/tabs.js"
148
304
  },
305
+ "./tag-input": {
306
+ "types": "./dist/types/components/tag-input/index.d.ts",
307
+ "import": "./dist/tag-input.js"
308
+ },
149
309
  "./text-field": {
150
310
  "types": "./dist/types/components/text-field/index.d.ts",
151
311
  "import": "./dist/text-field.js"
@@ -158,10 +318,26 @@
158
318
  "types": "./dist/types/components/theme-root/index.d.ts",
159
319
  "import": "./dist/theme-root.js"
160
320
  },
321
+ "./theme-switch": {
322
+ "types": "./dist/types/components/theme-switch/index.d.ts",
323
+ "import": "./dist/theme-switch.js"
324
+ },
325
+ "./time-picker": {
326
+ "types": "./dist/types/components/time-picker/index.d.ts",
327
+ "import": "./dist/time-picker.js"
328
+ },
329
+ "./timeline": {
330
+ "types": "./dist/types/components/timeline/index.d.ts",
331
+ "import": "./dist/timeline.js"
332
+ },
161
333
  "./toast": {
162
334
  "types": "./dist/types/components/toast/index.d.ts",
163
335
  "import": "./dist/toast.js"
164
336
  },
337
+ "./toast-stack": {
338
+ "types": "./dist/types/components/toast-stack/index.d.ts",
339
+ "import": "./dist/toast-stack.js"
340
+ },
165
341
  "./toggle-group": {
166
342
  "types": "./dist/types/components/toggle-group/index.d.ts",
167
343
  "import": "./dist/toggle-group.js"
@@ -169,6 +345,14 @@
169
345
  "./tooltip": {
170
346
  "types": "./dist/types/components/tooltip/index.d.ts",
171
347
  "import": "./dist/tooltip.js"
348
+ },
349
+ "./tree-view": {
350
+ "types": "./dist/types/components/tree-view/index.d.ts",
351
+ "import": "./dist/tree-view.js"
352
+ },
353
+ "./usage-meter": {
354
+ "types": "./dist/types/components/usage-meter/index.d.ts",
355
+ "import": "./dist/usage-meter.js"
172
356
  }
173
357
  },
174
358
  "publishConfig": {
@@ -178,11 +362,18 @@
178
362
  "@emotion/react": "^11.14.0",
179
363
  "@emotion/styled": "^11.14.0",
180
364
  "@floating-ui/react": "^0.27.20",
181
- "@jfrader/tokens": "0.4.0"
365
+ "motion": "^14.1.0",
366
+ "@jfrader/tokens": "0.5.1"
182
367
  },
183
368
  "peerDependencies": {
184
369
  "react": "^19.0.0",
185
- "react-dom": "^19.0.0"
370
+ "react-dom": "^19.0.0",
371
+ "shiki": "^4.4.3"
372
+ },
373
+ "peerDependenciesMeta": {
374
+ "shiki": {
375
+ "optional": true
376
+ }
186
377
  },
187
378
  "devDependencies": {
188
379
  "@storybook/react-vite": "^10.6.1",
@@ -191,6 +382,7 @@
191
382
  "@vitejs/plugin-react": "^6.1.2",
192
383
  "react": "^19.3.0",
193
384
  "react-dom": "^19.3.0",
385
+ "shiki": "^4.4.3",
194
386
  "storybook": "^10.6.1",
195
387
  "typescript": "^7.0.2",
196
388
  "vite": "^8.3.4"