@arolariu/components 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/EXAMPLES.md +2510 -0
  3. package/dist/components/ui/alert-dialog.d.ts +4 -16
  4. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  5. package/dist/components/ui/alert-dialog.js +18 -14
  6. package/dist/components/ui/alert-dialog.js.map +1 -1
  7. package/dist/components/ui/avatar.d.ts +3 -12
  8. package/dist/components/ui/avatar.d.ts.map +1 -1
  9. package/dist/components/ui/avatar.js +18 -15
  10. package/dist/components/ui/avatar.js.map +1 -1
  11. package/dist/components/ui/button-group.d.ts +1 -1
  12. package/dist/components/ui/button-group.d.ts.map +1 -1
  13. package/dist/components/ui/calendar.d.ts +1 -4
  14. package/dist/components/ui/calendar.d.ts.map +1 -1
  15. package/dist/components/ui/calendar.js +7 -7
  16. package/dist/components/ui/calendar.js.map +1 -1
  17. package/dist/components/ui/carousel.d.ts.map +1 -1
  18. package/dist/components/ui/carousel.js.map +1 -1
  19. package/dist/components/ui/chart.d.ts.map +1 -1
  20. package/dist/components/ui/chart.js +125 -59
  21. package/dist/components/ui/chart.js.map +1 -1
  22. package/dist/components/ui/checkbox-group.d.ts +2 -6
  23. package/dist/components/ui/checkbox-group.d.ts.map +1 -1
  24. package/dist/components/ui/checkbox-group.js +8 -7
  25. package/dist/components/ui/checkbox-group.js.map +1 -1
  26. package/dist/components/ui/checkbox.d.ts +3 -1
  27. package/dist/components/ui/checkbox.d.ts.map +1 -1
  28. package/dist/components/ui/checkbox.js +4 -1
  29. package/dist/components/ui/checkbox.js.map +1 -1
  30. package/dist/components/ui/collapsible.d.ts.map +1 -1
  31. package/dist/components/ui/collapsible.js.map +1 -1
  32. package/dist/components/ui/combobox.d.ts +335 -0
  33. package/dist/components/ui/combobox.d.ts.map +1 -0
  34. package/dist/components/ui/combobox.js +206 -0
  35. package/dist/components/ui/combobox.js.map +1 -0
  36. package/dist/components/ui/combobox.module.js +23 -0
  37. package/dist/components/ui/combobox.module.js.map +1 -0
  38. package/dist/components/ui/combobox_module.css +142 -0
  39. package/dist/components/ui/combobox_module.css.map +1 -0
  40. package/dist/components/ui/command.d.ts.map +1 -1
  41. package/dist/components/ui/command.js +25 -16
  42. package/dist/components/ui/command.js.map +1 -1
  43. package/dist/components/ui/context-menu.d.ts.map +1 -1
  44. package/dist/components/ui/context-menu.js.map +1 -1
  45. package/dist/components/ui/drawer.d.ts.map +1 -1
  46. package/dist/components/ui/drawer.js.map +1 -1
  47. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  48. package/dist/components/ui/dropdown-menu.js.map +1 -1
  49. package/dist/components/ui/dropdrawer.d.ts +10 -16
  50. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  51. package/dist/components/ui/dropdrawer.js +28 -20
  52. package/dist/components/ui/dropdrawer.js.map +1 -1
  53. package/dist/components/ui/item.d.ts +1 -1
  54. package/dist/components/ui/item.d.ts.map +1 -1
  55. package/dist/components/ui/menubar.d.ts +11 -13
  56. package/dist/components/ui/menubar.d.ts.map +1 -1
  57. package/dist/components/ui/menubar.js.map +1 -1
  58. package/dist/components/ui/meter.d.ts +8 -24
  59. package/dist/components/ui/meter.d.ts.map +1 -1
  60. package/dist/components/ui/meter.js +23 -19
  61. package/dist/components/ui/meter.js.map +1 -1
  62. package/dist/components/ui/navigation-menu.d.ts +3 -12
  63. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  64. package/dist/components/ui/navigation-menu.js +14 -11
  65. package/dist/components/ui/navigation-menu.js.map +1 -1
  66. package/dist/components/ui/number-field.d.ts +6 -12
  67. package/dist/components/ui/number-field.d.ts.map +1 -1
  68. package/dist/components/ui/number-field.js.map +1 -1
  69. package/dist/components/ui/progress.d.ts +1 -4
  70. package/dist/components/ui/progress.d.ts.map +1 -1
  71. package/dist/components/ui/progress.js +10 -9
  72. package/dist/components/ui/progress.js.map +1 -1
  73. package/dist/components/ui/radio-group.d.ts +2 -4
  74. package/dist/components/ui/radio-group.d.ts.map +1 -1
  75. package/dist/components/ui/radio-group.js.map +1 -1
  76. package/dist/components/ui/resizable.d.ts +3 -3
  77. package/dist/components/ui/resizable.d.ts.map +1 -1
  78. package/dist/components/ui/resizable.js.map +1 -1
  79. package/dist/components/ui/scratcher.d.ts +1 -1
  80. package/dist/components/ui/scratcher.d.ts.map +1 -1
  81. package/dist/components/ui/scratcher.js +5 -4
  82. package/dist/components/ui/scratcher.js.map +1 -1
  83. package/dist/components/ui/scroll-area.d.ts +2 -4
  84. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  85. package/dist/components/ui/scroll-area.js.map +1 -1
  86. package/dist/components/ui/separator.d.ts +1 -4
  87. package/dist/components/ui/separator.d.ts.map +1 -1
  88. package/dist/components/ui/separator.js +9 -8
  89. package/dist/components/ui/separator.js.map +1 -1
  90. package/dist/components/ui/sheet.d.ts.map +1 -1
  91. package/dist/components/ui/sheet.js.map +1 -1
  92. package/dist/components/ui/sidebar.d.ts +1 -1
  93. package/dist/components/ui/sidebar.d.ts.map +1 -1
  94. package/dist/components/ui/sidebar.js.map +1 -1
  95. package/dist/components/ui/sonner.d.ts +5 -4
  96. package/dist/components/ui/sonner.d.ts.map +1 -1
  97. package/dist/components/ui/sonner.js +7 -6
  98. package/dist/components/ui/sonner.js.map +1 -1
  99. package/dist/components/ui/toggle-group.d.ts +2 -8
  100. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  101. package/dist/components/ui/toggle-group.js +12 -10
  102. package/dist/components/ui/toggle-group.js.map +1 -1
  103. package/dist/components/ui/toolbar.d.ts +10 -30
  104. package/dist/components/ui/toolbar.d.ts.map +1 -1
  105. package/dist/components/ui/toolbar.js +28 -23
  106. package/dist/components/ui/toolbar.js.map +1 -1
  107. package/dist/hooks/useClipboard.d.ts +77 -0
  108. package/dist/hooks/useClipboard.d.ts.map +1 -0
  109. package/dist/hooks/useClipboard.js +42 -0
  110. package/dist/hooks/useClipboard.js.map +1 -0
  111. package/dist/hooks/useControllableState.d.ts +54 -0
  112. package/dist/hooks/useControllableState.d.ts.map +1 -0
  113. package/dist/hooks/useControllableState.js +29 -0
  114. package/dist/hooks/useControllableState.js.map +1 -0
  115. package/dist/hooks/useDebounce.d.ts +33 -0
  116. package/dist/hooks/useDebounce.d.ts.map +1 -0
  117. package/dist/hooks/useDebounce.js +20 -0
  118. package/dist/hooks/useDebounce.js.map +1 -0
  119. package/dist/hooks/useEventCallback.d.ts +34 -0
  120. package/dist/hooks/useEventCallback.d.ts.map +1 -0
  121. package/dist/hooks/useEventCallback.js +12 -0
  122. package/dist/hooks/useEventCallback.js.map +1 -0
  123. package/dist/hooks/useId.d.ts +30 -0
  124. package/dist/hooks/useId.d.ts.map +1 -0
  125. package/dist/hooks/useId.js +9 -0
  126. package/dist/hooks/useId.js.map +1 -0
  127. package/dist/hooks/useIntersectionObserver.d.ts +51 -0
  128. package/dist/hooks/useIntersectionObserver.d.ts.map +1 -0
  129. package/dist/hooks/useIntersectionObserver.js +25 -0
  130. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  131. package/dist/hooks/useInterval.d.ts +55 -0
  132. package/dist/hooks/useInterval.d.ts.map +1 -0
  133. package/dist/hooks/useInterval.js +24 -0
  134. package/dist/hooks/useInterval.js.map +1 -0
  135. package/dist/hooks/useLocalStorage.d.ts +43 -0
  136. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  137. package/dist/hooks/useLocalStorage.js +53 -0
  138. package/dist/hooks/useLocalStorage.js.map +1 -0
  139. package/dist/hooks/useMergedRefs.d.ts +27 -0
  140. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  141. package/dist/hooks/useMergedRefs.js +11 -0
  142. package/dist/hooks/useMergedRefs.js.map +1 -0
  143. package/dist/hooks/useOnClickOutside.d.ts +32 -0
  144. package/dist/hooks/useOnClickOutside.d.ts.map +1 -0
  145. package/dist/hooks/useOnClickOutside.js +23 -0
  146. package/dist/hooks/useOnClickOutside.js.map +1 -0
  147. package/dist/hooks/usePrevious.d.ts +33 -0
  148. package/dist/hooks/usePrevious.d.ts.map +1 -0
  149. package/dist/hooks/usePrevious.js +14 -0
  150. package/dist/hooks/usePrevious.js.map +1 -0
  151. package/dist/hooks/useThrottle.d.ts +37 -0
  152. package/dist/hooks/useThrottle.d.ts.map +1 -0
  153. package/dist/hooks/useThrottle.js +34 -0
  154. package/dist/hooks/useThrottle.js.map +1 -0
  155. package/dist/hooks/useTimeout.d.ts +28 -0
  156. package/dist/hooks/useTimeout.d.ts.map +1 -0
  157. package/dist/hooks/useTimeout.js +24 -0
  158. package/dist/hooks/useTimeout.js.map +1 -0
  159. package/dist/index.d.ts +14 -0
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +14 -0
  162. package/dist/lib/utilities.d.ts +2 -3
  163. package/dist/lib/utilities.d.ts.map +1 -1
  164. package/dist/lib/utilities.js.map +1 -1
  165. package/dist/motion/tokens.js +5 -5
  166. package/dist/motion/tokens.js.map +1 -1
  167. package/dist/rslib-runtime.js +39 -0
  168. package/dist/rslib-runtime.js.map +1 -0
  169. package/package.json +82 -3
  170. package/src/components/ui/alert-dialog.tsx +15 -8
  171. package/src/components/ui/avatar.tsx +9 -6
  172. package/src/components/ui/calendar.tsx +7 -13
  173. package/src/components/ui/carousel.tsx +2 -0
  174. package/src/components/ui/chart.tsx +63 -60
  175. package/src/components/ui/checkbox-group.tsx +4 -5
  176. package/src/components/ui/checkbox.tsx +10 -2
  177. package/src/components/ui/collapsible.tsx +1 -0
  178. package/src/components/ui/combobox.module.css +158 -0
  179. package/src/components/ui/combobox.tsx +569 -0
  180. package/src/components/ui/command.tsx +31 -15
  181. package/src/components/ui/context-menu.tsx +3 -0
  182. package/src/components/ui/drawer.tsx +2 -0
  183. package/src/components/ui/dropdown-menu.tsx +3 -0
  184. package/src/components/ui/dropdrawer.tsx +80 -62
  185. package/src/components/ui/menubar.tsx +9 -10
  186. package/src/components/ui/meter.tsx +16 -17
  187. package/src/components/ui/navigation-menu.tsx +41 -33
  188. package/src/components/ui/number-field.tsx +6 -13
  189. package/src/components/ui/progress.tsx +3 -2
  190. package/src/components/ui/radio-group.tsx +2 -5
  191. package/src/components/ui/resizable.tsx +2 -2
  192. package/src/components/ui/scratcher.tsx +6 -10
  193. package/src/components/ui/scroll-area.tsx +2 -5
  194. package/src/components/ui/separator.tsx +4 -3
  195. package/src/components/ui/sheet.tsx +3 -0
  196. package/src/components/ui/sidebar.tsx +1 -0
  197. package/src/components/ui/sonner.tsx +20 -12
  198. package/src/components/ui/toggle-group.tsx +6 -4
  199. package/src/components/ui/toolbar.tsx +20 -21
  200. package/src/hooks/useClipboard.tsx +137 -0
  201. package/src/hooks/useControllableState.tsx +81 -0
  202. package/src/hooks/useDebounce.tsx +50 -0
  203. package/src/hooks/useEventCallback.tsx +47 -0
  204. package/src/hooks/useId.tsx +36 -0
  205. package/src/hooks/useIntersectionObserver.tsx +81 -0
  206. package/src/hooks/useInterval.tsx +80 -0
  207. package/src/hooks/useLocalStorage.tsx +111 -0
  208. package/src/hooks/useMergedRefs.tsx +48 -0
  209. package/src/hooks/useOnClickOutside.tsx +55 -0
  210. package/src/hooks/usePrevious.tsx +44 -0
  211. package/src/hooks/useThrottle.tsx +78 -0
  212. package/src/hooks/useTimeout.tsx +51 -0
  213. package/src/index.ts +23 -0
  214. package/src/lib/utilities.ts +4 -4
  215. package/src/motion/tokens.ts +4 -4
  216. package/src/stories/DesignPrinciples.mdx +48 -0
  217. package/src/stories/GettingStarted.mdx +92 -0
  218. package/src/stories/Welcome.mdx +44 -0
@@ -1,11 +1,5 @@
1
1
  import { NumberField as BaseNumberField } from "@base-ui/react/number-field";
2
2
  import * as React from "react";
3
- type NumberFieldProps = React.ComponentPropsWithRef<typeof BaseNumberField.Root>;
4
- type NumberFieldGroupProps = React.ComponentPropsWithRef<typeof BaseNumberField.Group>;
5
- type NumberFieldInputProps = React.ComponentPropsWithRef<typeof BaseNumberField.Input>;
6
- type NumberFieldIncrementProps = React.ComponentPropsWithRef<typeof BaseNumberField.Increment>;
7
- type NumberFieldDecrementProps = React.ComponentPropsWithRef<typeof BaseNumberField.Decrement>;
8
- type NumberFieldScrubAreaProps = React.ComponentPropsWithRef<typeof BaseNumberField.ScrubArea>;
9
3
  /**
10
4
  * Provides a styled numeric input with optional steppers and scrub support.
11
5
  *
@@ -117,27 +111,27 @@ declare namespace NumberFieldScrubArea {
117
111
  var displayName: string;
118
112
  }
119
113
  declare namespace NumberField {
120
- type Props = NumberFieldProps;
114
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Root>;
121
115
  type State = BaseNumberField.Root.State;
122
116
  }
123
117
  declare namespace NumberFieldGroup {
124
- type Props = NumberFieldGroupProps;
118
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Group>;
125
119
  type State = BaseNumberField.Group.State;
126
120
  }
127
121
  declare namespace NumberFieldInput {
128
- type Props = NumberFieldInputProps;
122
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Input>;
129
123
  type State = BaseNumberField.Input.State;
130
124
  }
131
125
  declare namespace NumberFieldIncrement {
132
- type Props = NumberFieldIncrementProps;
126
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Increment>;
133
127
  type State = BaseNumberField.Increment.State;
134
128
  }
135
129
  declare namespace NumberFieldDecrement {
136
- type Props = NumberFieldDecrementProps;
130
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Decrement>;
137
131
  type State = BaseNumberField.Decrement.State;
138
132
  }
139
133
  declare namespace NumberFieldScrubArea {
140
- type Props = NumberFieldScrubAreaProps;
134
+ type Props = React.ComponentPropsWithRef<typeof BaseNumberField.ScrubArea>;
141
135
  type State = BaseNumberField.ScrubArea.State;
142
136
  }
143
137
  export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea };
@@ -1 +1 @@
1
- {"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/number-field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,IAAI,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,gBAAgB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AACjF,KAAK,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AACvF,KAAK,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AACvF,KAAK,yBAAyB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/F,KAAK,yBAAyB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/F,KAAK,yBAAyB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc3E;kBAdQ,WAAW;;;AAgBpB;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,gBAAgB,uLAiBrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,gBAAgB,2LAgBrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAgB7B;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAgB7B;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAiB7B,kBAAU,WAAW,CAAC;IACpB,KAAY,KAAK,GAAG,gBAAgB,CAAC;IACrC,KAAY,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;CAChD;AAGD,kBAAU,gBAAgB,CAAC;IACzB,KAAY,KAAK,GAAG,qBAAqB,CAAC;IAC1C,KAAY,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;CACjD;AAGD,kBAAU,gBAAgB,CAAC;IACzB,KAAY,KAAK,GAAG,qBAAqB,CAAC;IAC1C,KAAY,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;CACjD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,yBAAyB,CAAC;IAC9C,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,yBAAyB,CAAC;IAC9C,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,yBAAyB,CAAC;IAC9C,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AASD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAC,CAAC"}
1
+ {"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/number-field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,IAAI,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc3E;kBAdQ,WAAW;;;AAgBpB;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,gBAAgB,uLAiBrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,gBAAgB,2LAgBrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAgB7B;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAgB7B;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAc7F;kBAdQ,oBAAoB;;;AAiB7B,kBAAU,WAAW,CAAC;IACpB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7E,KAAY,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;CAChD;AAGD,kBAAU,gBAAgB,CAAC;IACzB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAY,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;CACjD;AAGD,kBAAU,gBAAgB,CAAC;IACzB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAY,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;CACjD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IAClF,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IAClF,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AAGD,kBAAU,oBAAoB,CAAC;IAC7B,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IAClF,KAAY,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;CACrD;AASD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/number-field.js","sources":["../../../src/components/ui/number-field.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {NumberField as BaseNumberField} from \"@base-ui/react/number-field\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./number-field.module.css\";\r\n\r\ntype NumberFieldProps = React.ComponentPropsWithRef<typeof BaseNumberField.Root>;\r\ntype NumberFieldGroupProps = React.ComponentPropsWithRef<typeof BaseNumberField.Group>;\r\ntype NumberFieldInputProps = React.ComponentPropsWithRef<typeof BaseNumberField.Input>;\r\ntype NumberFieldIncrementProps = React.ComponentPropsWithRef<typeof BaseNumberField.Increment>;\r\ntype NumberFieldDecrementProps = React.ComponentPropsWithRef<typeof BaseNumberField.Decrement>;\r\ntype NumberFieldScrubAreaProps = React.ComponentPropsWithRef<typeof BaseNumberField.ScrubArea>;\r\n\r\n/**\r\n * Provides a styled numeric input with optional steppers and scrub support.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on Base UI Number Field primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberField defaultValue={2}>\r\n * <NumberFieldGroup>\r\n * <NumberFieldDecrement />\r\n * <NumberFieldInput />\r\n * <NumberFieldIncrement />\r\n * </NumberFieldGroup>\r\n * </NumberField>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberField(props: Readonly<NumberField.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Root\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.root, className)}, {}),\r\n })}>\r\n {children}\r\n </BaseNumberField.Root>\r\n );\r\n}\r\n\r\n/**\r\n * Wraps the interactive number-field controls in a shared container.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on Base UI Number Field group primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldGroup>\r\n * <NumberFieldInput />\r\n * </NumberFieldGroup>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nconst NumberFieldGroup = React.forwardRef<React.ComponentRef<typeof BaseNumberField.Group>, NumberFieldGroup.Props>(\r\n (props: Readonly<NumberFieldGroup.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Group\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.group, className)}, {}),\r\n })}>\r\n {children}\r\n </BaseNumberField.Group>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the text input used for numeric entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on Base UI Number Field input primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldInput aria-label='Quantity' />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nconst NumberFieldInput = React.forwardRef<React.ComponentRef<typeof BaseNumberField.Input>, NumberFieldInput.Props>(\r\n (props: Readonly<NumberFieldInput.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Input\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the increment control for a number field.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on Base UI Number Field increment primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldIncrement />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldIncrement(props: Readonly<NumberFieldIncrement.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Increment\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.stepper, styles.increment, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.stepperSymbol}>+</span>}\r\n </BaseNumberField.Increment>\r\n );\r\n}\r\n\r\n/**\r\n * Renders the decrement control for a number field.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on Base UI Number Field decrement primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldDecrement />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldDecrement(props: Readonly<NumberFieldDecrement.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Decrement\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.stepper, styles.decrement, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.stepperSymbol}>−</span>}\r\n </BaseNumberField.Decrement>\r\n );\r\n}\r\n\r\n/**\r\n * Renders the scrub handle used for drag-to-adjust interactions.\r\n *\r\n * @remarks\r\n * - Renders a `<span>` element by default\r\n * - Built on Base UI Number Field scrub-area primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldScrubArea />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldScrubArea(props: Readonly<NumberFieldScrubArea.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.ScrubArea\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"span\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.scrubArea, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.scrubHandle}>⋮⋮</span>}\r\n </BaseNumberField.ScrubArea>\r\n );\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberField {\r\n export type Props = NumberFieldProps;\r\n export type State = BaseNumberField.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldGroup {\r\n export type Props = NumberFieldGroupProps;\r\n export type State = BaseNumberField.Group.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldInput {\r\n export type Props = NumberFieldInputProps;\r\n export type State = BaseNumberField.Input.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldIncrement {\r\n export type Props = NumberFieldIncrementProps;\r\n export type State = BaseNumberField.Increment.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldDecrement {\r\n export type Props = NumberFieldDecrementProps;\r\n export type State = BaseNumberField.Decrement.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldScrubArea {\r\n export type Props = NumberFieldScrubAreaProps;\r\n export type State = BaseNumberField.ScrubArea.State;\r\n}\r\n\r\nNumberField.displayName = \"NumberField\";\r\nNumberFieldGroup.displayName = \"NumberFieldGroup\";\r\nNumberFieldInput.displayName = \"NumberFieldInput\";\r\nNumberFieldIncrement.displayName = \"NumberFieldIncrement\";\r\nNumberFieldDecrement.displayName = \"NumberFieldDecrement\";\r\nNumberFieldScrubArea.displayName = \"NumberFieldScrubArea\";\r\n\r\nexport {NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea};\r\n"],"names":["NumberField","props","className","children","render","otherProps","BaseNumberField","useRender","mergeProps","cn","styles","NumberFieldGroup","React","ref","NumberFieldInput","NumberFieldIncrement","NumberFieldDecrement","NumberFieldScrubArea"],"mappings":"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"}
1
+ {"version":3,"file":"components/ui/number-field.js","sources":["../../../src/components/ui/number-field.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {NumberField as BaseNumberField} from \"@base-ui/react/number-field\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./number-field.module.css\";\r\n\r\n/**\r\n * Provides a styled numeric input with optional steppers and scrub support.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on Base UI Number Field primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberField defaultValue={2}>\r\n * <NumberFieldGroup>\r\n * <NumberFieldDecrement />\r\n * <NumberFieldInput />\r\n * <NumberFieldIncrement />\r\n * </NumberFieldGroup>\r\n * </NumberField>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberField(props: Readonly<NumberField.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Root\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.root, className)}, {}),\r\n })}>\r\n {children}\r\n </BaseNumberField.Root>\r\n );\r\n}\r\n\r\n/**\r\n * Wraps the interactive number-field controls in a shared container.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on Base UI Number Field group primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldGroup>\r\n * <NumberFieldInput />\r\n * </NumberFieldGroup>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nconst NumberFieldGroup = React.forwardRef<React.ComponentRef<typeof BaseNumberField.Group>, NumberFieldGroup.Props>(\r\n (props: Readonly<NumberFieldGroup.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Group\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.group, className)}, {}),\r\n })}>\r\n {children}\r\n </BaseNumberField.Group>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the text input used for numeric entry.\r\n *\r\n * @remarks\r\n * - Renders an `<input>` element by default\r\n * - Built on Base UI Number Field input primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldInput aria-label='Quantity' />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nconst NumberFieldInput = React.forwardRef<React.ComponentRef<typeof BaseNumberField.Input>, NumberFieldInput.Props>(\r\n (props: Readonly<NumberFieldInput.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Input\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"input\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.input, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the increment control for a number field.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on Base UI Number Field increment primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldIncrement />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldIncrement(props: Readonly<NumberFieldIncrement.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Increment\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.stepper, styles.increment, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.stepperSymbol}>+</span>}\r\n </BaseNumberField.Increment>\r\n );\r\n}\r\n\r\n/**\r\n * Renders the decrement control for a number field.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on Base UI Number Field decrement primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldDecrement />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldDecrement(props: Readonly<NumberFieldDecrement.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.Decrement\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.stepper, styles.decrement, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.stepperSymbol}>−</span>}\r\n </BaseNumberField.Decrement>\r\n );\r\n}\r\n\r\n/**\r\n * Renders the scrub handle used for drag-to-adjust interactions.\r\n *\r\n * @remarks\r\n * - Renders a `<span>` element by default\r\n * - Built on Base UI Number Field scrub-area primitives\r\n *\r\n * @example\r\n * ```tsx\r\n * <NumberFieldScrubArea />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/number-field | Base UI Number Field Docs}\r\n */\r\nfunction NumberFieldScrubArea(props: Readonly<NumberFieldScrubArea.Props>): React.ReactElement {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseNumberField.ScrubArea\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"span\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.scrubArea, className)}, {}),\r\n })}>\r\n {children ?? <span className={styles.scrubHandle}>⋮⋮</span>}\r\n </BaseNumberField.ScrubArea>\r\n );\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberField {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Root>;\r\n export type State = BaseNumberField.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldGroup {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Group>;\r\n export type State = BaseNumberField.Group.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldInput {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Input>;\r\n export type State = BaseNumberField.Input.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldIncrement {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Increment>;\r\n export type State = BaseNumberField.Increment.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldDecrement {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.Decrement>;\r\n export type State = BaseNumberField.Decrement.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace NumberFieldScrubArea {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseNumberField.ScrubArea>;\r\n export type State = BaseNumberField.ScrubArea.State;\r\n}\r\n\r\nNumberField.displayName = \"NumberField\";\r\nNumberFieldGroup.displayName = \"NumberFieldGroup\";\r\nNumberFieldInput.displayName = \"NumberFieldInput\";\r\nNumberFieldIncrement.displayName = \"NumberFieldIncrement\";\r\nNumberFieldDecrement.displayName = \"NumberFieldDecrement\";\r\nNumberFieldScrubArea.displayName = \"NumberFieldScrubArea\";\r\n\r\nexport {NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea};\r\n"],"names":["NumberField","props","className","children","render","otherProps","BaseNumberField","useRender","mergeProps","cn","styles","NumberFieldGroup","React","ref","NumberFieldInput","NumberFieldIncrement","NumberFieldDecrement","NumberFieldScrubArea"],"mappings":"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"}
@@ -25,10 +25,7 @@ export interface ProgressProps extends Omit<React.ComponentPropsWithRef<typeof B
25
25
  *
26
26
  * @see {@link https://base-ui.com/react/components/progress | Base UI Documentation}
27
27
  */
28
- declare function Progress(props: Readonly<Progress.Props>): React.ReactElement;
29
- declare namespace Progress {
30
- var displayName: string;
31
- }
28
+ declare const Progress: React.ForwardRefExoticComponent<Omit<ProgressProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
32
29
  declare namespace Progress {
33
30
  type Props = ProgressProps;
34
31
  type State = BaseProgress.Root.State;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/components/ui/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,IAAI,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACzG,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAgBrE;kBAhBQ,QAAQ;;;AAoBjB,kBAAU,QAAQ,CAAC;IACjB,KAAY,KAAK,GAAG,aAAa,CAAC;IAClC,KAAY,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;CAC7C;AAED,OAAO,EAAC,QAAQ,EAAC,CAAC"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/components/ui/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,IAAI,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACzG,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,QAAQ,mGAiBZ,CAAC;AAIH,kBAAU,QAAQ,CAAC;IACjB,KAAY,KAAK,GAAG,aAAa,CAAC;IAClC,KAAY,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;CAC7C;AAED,OAAO,EAAC,QAAQ,EAAC,CAAC"}
@@ -1,28 +1,29 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { Progress } from "@base-ui/react/progress";
3
+ import { Progress as progress_Progress } from "@base-ui/react/progress";
4
4
  import { useRender } from "@base-ui/react/use-render";
5
- import "react";
5
+ import { forwardRef } from "react";
6
6
  import { cn } from "../../lib/utilities.js";
7
7
  import progress_module from "./progress.module.js";
8
- function progress_Progress(props) {
8
+ const ui_progress_Progress = /*#__PURE__*/ forwardRef(function(props, forwardedRef) {
9
9
  const { className, render, value = 0, ...otherProps } = props;
10
- return /*#__PURE__*/ jsx(Progress.Root, {
10
+ return /*#__PURE__*/ jsx(progress_Progress.Root, {
11
11
  value: value,
12
12
  ...otherProps,
13
+ ref: forwardedRef,
13
14
  render: useRender({
14
15
  defaultTagName: "div",
15
16
  render: render
16
17
  }),
17
- children: /*#__PURE__*/ jsx(Progress.Track, {
18
+ children: /*#__PURE__*/ jsx(progress_Progress.Track, {
18
19
  className: cn(progress_module.track, className),
19
- children: /*#__PURE__*/ jsx(Progress.Indicator, {
20
+ children: /*#__PURE__*/ jsx(progress_Progress.Indicator, {
20
21
  className: progress_module.indicator
21
22
  })
22
23
  })
23
24
  });
24
- }
25
- progress_Progress.displayName = "Progress";
26
- export { progress_Progress as Progress };
25
+ });
26
+ ui_progress_Progress.displayName = "Progress";
27
+ export { ui_progress_Progress as Progress };
27
28
 
28
29
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/progress.js","sources":["../../../src/components/ui/progress.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Progress as BaseProgress} from \"@base-ui/react/progress\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./progress.module.css\";\r\n\r\n/**\r\n * Props for the shared progress wrapper.\r\n */\r\nexport interface ProgressProps extends Omit<React.ComponentPropsWithRef<typeof BaseProgress.Root>, \"value\"> {\r\n /** Additional CSS classes merged with the progress track styles. @default undefined */\r\n className?: string;\r\n /** The current completion percentage or normalized value rendered by the progress bar. @default 0 */\r\n value?: number;\r\n}\r\n\r\n/**\r\n * Visualizes task completion with a styled track and animated indicator.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/progress | Base UI Progress}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Progress value={64} />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/progress | Base UI Documentation}\r\n */\r\nfunction Progress(props: Readonly<Progress.Props>): React.ReactElement {\r\n const {className, render, value = 0, ...otherProps} = props;\r\n\r\n return (\r\n <BaseProgress.Root\r\n value={value}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n })}>\r\n <BaseProgress.Track className={cn(styles.track, className)}>\r\n <BaseProgress.Indicator className={styles.indicator} />\r\n </BaseProgress.Track>\r\n </BaseProgress.Root>\r\n );\r\n}\r\nProgress.displayName = \"Progress\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Progress {\r\n export type Props = ProgressProps;\r\n export type State = BaseProgress.Root.State;\r\n}\r\n\r\nexport {Progress};\r\n"],"names":["Progress","props","className","render","value","otherProps","BaseProgress","useRender","cn","styles"],"mappings":";;;;;;;AAmCA,SAASA,kBAASC,KAA+B;IAC/C,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,CAAC,EAAE,GAAGC,YAAW,GAAGJ;IAEtD,OAAO,WAAP,GACE,IAACK,SAAAA,IAAiB;QAChB,OAAOF;QACN,GAAGC,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQJ;QACV;kBACA,kBAACG,SAAAA,KAAkB;YAAC,WAAWE,GAAGC,gBAAAA,KAAY,EAAEP;sBAC9C,kBAACI,SAAAA,SAAsB;gBAAC,WAAWG,gBAAAA,SAAgB;;;;AAI3D;AACAT,kBAAS,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/progress.js","sources":["../../../src/components/ui/progress.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {Progress as BaseProgress} from \"@base-ui/react/progress\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./progress.module.css\";\r\n\r\n/**\r\n * Props for the shared progress wrapper.\r\n */\r\nexport interface ProgressProps extends Omit<React.ComponentPropsWithRef<typeof BaseProgress.Root>, \"value\"> {\r\n /** Additional CSS classes merged with the progress track styles. @default undefined */\r\n className?: string;\r\n /** The current completion percentage or normalized value rendered by the progress bar. @default 0 */\r\n value?: number;\r\n}\r\n\r\n/**\r\n * Visualizes task completion with a styled track and animated indicator.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/progress | Base UI Progress}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Progress value={64} />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/progress | Base UI Documentation}\r\n */\r\nconst Progress = React.forwardRef<HTMLDivElement, Progress.Props>(function Progress(props, forwardedRef) {\r\n const {className, render, value = 0, ...otherProps} = props;\r\n\r\n return (\r\n <BaseProgress.Root\r\n value={value}\r\n {...otherProps}\r\n ref={forwardedRef}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n })}>\r\n <BaseProgress.Track className={cn(styles.track, className)}>\r\n <BaseProgress.Indicator className={styles.indicator} />\r\n </BaseProgress.Track>\r\n </BaseProgress.Root>\r\n );\r\n});\r\nProgress.displayName = \"Progress\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Progress {\r\n export type Props = ProgressProps;\r\n export type State = BaseProgress.Root.State;\r\n}\r\n\r\nexport {Progress};\r\n"],"names":["Progress","React","props","forwardedRef","className","render","value","otherProps","BaseProgress","useRender","cn","styles"],"mappings":";;;;;;;AAmCA,MAAMA,uBAAW,WAAHA,GAAGC,WAAiD,SAAkBC,KAAK,EAAEC,YAAY;IACrG,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,CAAC,EAAE,GAAGC,YAAW,GAAGL;IAEtD,OAAO,WAAP,GACE,IAACM,kBAAAA,IAAiB;QAChB,OAAOF;QACN,GAAGC,UAAU;QACd,KAAKJ;QACL,QAAQM,UAAU;YAChB,gBAAgB;YAChB,QAAQJ;QACV;kBACA,kBAACG,kBAAAA,KAAkB;YAAC,WAAWE,GAAGC,gBAAAA,KAAY,EAAEP;sBAC9C,kBAACI,kBAAAA,SAAsB;gBAAC,WAAWG,gBAAAA,SAAgB;;;;AAI3D;AACAX,qBAAS,WAAW,GAAG"}
@@ -1,8 +1,6 @@
1
1
  import { Radio } from "@base-ui/react/radio";
2
2
  import { RadioGroup as BaseRadioGroup } from "@base-ui/react/radio-group";
3
3
  import * as React from "react";
4
- type RadioGroupProps = React.ComponentPropsWithRef<typeof BaseRadioGroup>;
5
- type RadioGroupItemProps = React.ComponentPropsWithRef<typeof Radio.Root>;
6
4
  /**
7
5
  * Coordinates radio group state and selection behavior.
8
6
  *
@@ -36,11 +34,11 @@ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<BaseRadioGroup.Pr
36
34
  */
37
35
  declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<Radio.Root.Props<unknown>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
38
36
  declare namespace RadioGroup {
39
- type Props = RadioGroupProps;
37
+ type Props = React.ComponentPropsWithRef<typeof BaseRadioGroup>;
40
38
  type State = BaseRadioGroup.State;
41
39
  }
42
40
  declare namespace RadioGroupItem {
43
- type Props = RadioGroupItemProps;
41
+ type Props = React.ComponentPropsWithRef<typeof Radio.Root>;
44
42
  type State = Radio.Root.State;
45
43
  }
46
44
  export { RadioGroup, RadioGroupItem };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/components/ui/radio-group.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAC,UAAU,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAGxE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,eAAe,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,CAAC;AAC1E,KAAK,mBAAmB,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,mHAgBf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,cAAc,gHAmBnB,CAAC;AAGF,kBAAU,UAAU,CAAC;IACnB,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;CAC1C;AAGD,kBAAU,cAAc,CAAC;IACvB,KAAY,KAAK,GAAG,mBAAmB,CAAC;IACxC,KAAY,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;CACtC;AAKD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC"}
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/components/ui/radio-group.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAC,UAAU,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAGxE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,mHAgBf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,cAAc,gHAmBnB,CAAC;AAGF,kBAAU,UAAU,CAAC;IACnB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,CAAC;IACvE,KAAY,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;CAC1C;AAGD,kBAAU,cAAc,CAAC;IACvB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACnE,KAAY,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;CACtC;AAKD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/radio-group.js","sources":["../../../src/components/ui/radio-group.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {Radio} from \"@base-ui/react/radio\";\r\nimport {RadioGroup as BaseRadioGroup} from \"@base-ui/react/radio-group\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport {Circle} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./radio-group.module.css\";\r\n\r\ntype RadioGroupProps = React.ComponentPropsWithRef<typeof BaseRadioGroup>;\r\ntype RadioGroupItemProps = React.ComponentPropsWithRef<typeof Radio.Root>;\r\n\r\n/**\r\n * Coordinates radio group state and selection behavior.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <RadioGroup>Content</RadioGroup>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/radio-group | Base UI Documentation}\r\n */\r\nconst RadioGroup = React.forwardRef<React.ComponentRef<typeof BaseRadioGroup>, RadioGroup.Props>(\r\n (props: Readonly<RadioGroup.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseRadioGroup\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.group, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the radio group item.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <RadioGroupItem>Content</RadioGroupItem>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/radio-group | Base UI Documentation}\r\n */\r\nconst RadioGroupItem = React.forwardRef<React.ComponentRef<typeof Radio.Root>, RadioGroupItem.Props>(\r\n (props: Readonly<RadioGroupItem.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <Radio.Root\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.item, className)}, {}),\r\n })}>\r\n <Radio.Indicator className={styles.indicator}>\r\n <Circle className={styles.icon} />\r\n </Radio.Indicator>\r\n </Radio.Root>\r\n );\r\n },\r\n);\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace RadioGroup {\r\n export type Props = RadioGroupProps;\r\n export type State = BaseRadioGroup.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace RadioGroupItem {\r\n export type Props = RadioGroupItemProps;\r\n export type State = Radio.Root.State;\r\n}\r\n\r\nRadioGroup.displayName = \"RadioGroup\";\r\nRadioGroupItem.displayName = \"RadioGroupItem\";\r\n\r\nexport {RadioGroup, RadioGroupItem};\r\n"],"names":["RadioGroup","React","props","ref","className","render","otherProps","BaseRadioGroup","useRender","mergeProps","cn","styles","RadioGroupItem","Radio","Circle"],"mappings":";;;;;;;;;;AA8BA,MAAMA,yBAAa,WAAHA,GAAGC,WACjB,CAACC,OAAmCC;IAClC,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGJ;IAE3C,OAAO,WAAP,GACE,IAACK,YAAcA;QACb,KAAKJ;QACJ,GAAGG,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,KAAY,EAAEP;YAAU,GAAG,CAAC;QAC/D;;AAGN;AAkBF,MAAMQ,iBAAiB,WAAHA,GAAGX,WACrB,CAACC,OAAuCC;IACtC,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGJ;IAE3C,OAAO,WAAP,GACE,IAACW,MAAM,IAAI;QACT,KAAKV;QACJ,GAAGG,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,IAAW,EAAEP;YAAU,GAAG,CAAC;QAC9D;kBACA,kBAACS,MAAM,SAAS;YAAC,WAAWF,mBAAAA,SAAgB;sBAC1C,kBAACG,QAAMA;gBAAC,WAAWH,mBAAAA,IAAW;;;;AAItC;AAeFX,uBAAW,WAAW,GAAG;AACzBY,eAAe,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/radio-group.js","sources":["../../../src/components/ui/radio-group.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {Radio} from \"@base-ui/react/radio\";\r\nimport {RadioGroup as BaseRadioGroup} from \"@base-ui/react/radio-group\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport {Circle} from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./radio-group.module.css\";\r\n\r\n/**\r\n * Coordinates radio group state and selection behavior.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <RadioGroup>Content</RadioGroup>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/radio-group | Base UI Documentation}\r\n */\r\nconst RadioGroup = React.forwardRef<React.ComponentRef<typeof BaseRadioGroup>, RadioGroup.Props>(\r\n (props: Readonly<RadioGroup.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseRadioGroup\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.group, className)}, {}),\r\n })}\r\n />\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the radio group item.\r\n *\r\n * @remarks\r\n * - Renders a `<button>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <RadioGroupItem>Content</RadioGroupItem>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/radio-group | Base UI Documentation}\r\n */\r\nconst RadioGroupItem = React.forwardRef<React.ComponentRef<typeof Radio.Root>, RadioGroupItem.Props>(\r\n (props: Readonly<RadioGroupItem.Props>, ref): React.ReactElement => {\r\n const {className, render, ...otherProps} = props;\r\n\r\n return (\r\n <Radio.Root\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"button\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.item, className)}, {}),\r\n })}>\r\n <Radio.Indicator className={styles.indicator}>\r\n <Circle className={styles.icon} />\r\n </Radio.Indicator>\r\n </Radio.Root>\r\n );\r\n },\r\n);\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace RadioGroup {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseRadioGroup>;\r\n export type State = BaseRadioGroup.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace RadioGroupItem {\r\n export type Props = React.ComponentPropsWithRef<typeof Radio.Root>;\r\n export type State = Radio.Root.State;\r\n}\r\n\r\nRadioGroup.displayName = \"RadioGroup\";\r\nRadioGroupItem.displayName = \"RadioGroupItem\";\r\n\r\nexport {RadioGroup, RadioGroupItem};\r\n"],"names":["RadioGroup","React","props","ref","className","render","otherProps","BaseRadioGroup","useRender","mergeProps","cn","styles","RadioGroupItem","Radio","Circle"],"mappings":";;;;;;;;;;AA2BA,MAAMA,yBAAa,WAAHA,GAAGC,WACjB,CAACC,OAAmCC;IAClC,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGJ;IAE3C,OAAO,WAAP,GACE,IAACK,YAAcA;QACb,KAAKJ;QACJ,GAAGG,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,KAAY,EAAEP;YAAU,GAAG,CAAC;QAC/D;;AAGN;AAkBF,MAAMQ,iBAAiB,WAAHA,GAAGX,WACrB,CAACC,OAAuCC;IACtC,MAAM,EAACC,SAAS,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGJ;IAE3C,OAAO,WAAP,GACE,IAACW,MAAM,IAAI;QACT,KAAKV;QACJ,GAAGG,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,IAAW,EAAEP;YAAU,GAAG,CAAC;QAC9D;kBACA,kBAACS,MAAM,SAAS;YAAC,WAAWF,mBAAAA,SAAgB;sBAC1C,kBAACG,QAAMA;gBAAC,WAAWH,mBAAAA,IAAW;;;;AAItC;AAeFX,uBAAW,WAAW,GAAG;AACzBY,eAAe,WAAW,GAAG"}
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
- import type { ImperativePanelGroupHandle, ImperativePanelHandle } from "react-resizable-panels";
2
+ import type { ImperativePanelGroupHandle } from "react-resizable-panels";
3
3
  import * as ResizablePrimitive from "react-resizable-panels";
4
- export type { ImperativePanelGroupHandle, ImperativePanelHandle };
4
+ export type { ImperativePanelGroupHandle, ImperativePanelHandle } from "react-resizable-panels";
5
5
  /**
6
6
  * Props for the {@link ResizablePanelGroup} component.
7
7
  */
@@ -73,7 +73,7 @@ declare const ResizablePanel: React.ForwardRefExoticComponent<Omit<React.HTMLAtt
73
73
  tagName?: keyof HTMLElementTagNameMap | undefined;
74
74
  } & {
75
75
  children?: import("react").ReactNode | undefined;
76
- } & React.RefAttributes<ImperativePanelHandle>>;
76
+ } & React.RefAttributes<ResizablePrimitive.ImperativePanelHandle>>;
77
77
  /**
78
78
  * Renders a draggable resize handle between resizable panels.
79
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../src/components/ui/resizable.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,0BAA0B,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAC9F,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAM7D,YAAY,EAAC,0BAA0B,EAAE,qBAAqB,EAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC;IAC7G;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,yBAAyB,CAAC,wBAAwB,GAAG,KAAK,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAOjI,CAAC;AAEL;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;+CAA2B,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,eAAe,CAAC,EAAC,UAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAa/H;kBAbQ,eAAe;;;AAmBxB,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAC,CAAC"}
1
+ {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../src/components/ui/resizable.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAM7D,YAAY,EAAC,0BAA0B,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC;IAC7G;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,yBAAyB,CAAC,wBAAwB,GAAG,KAAK,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAOjI,CAAC;AAEL;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;kEAA2B,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,eAAe,CAAC,EAAC,UAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAa/H;kBAbQ,eAAe;;;AAmBxB,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/resizable.js","sources":["../../../src/components/ui/resizable.tsx"],"sourcesContent":["\"use client\";\r\n\r\n/* eslint-disable react/jsx-handler-names */\r\n\r\nimport {GripVertical} from \"lucide-react\";\r\nimport * as React from \"react\";\r\nimport type {ImperativePanelGroupHandle, ImperativePanelHandle} from \"react-resizable-panels\";\r\nimport * as ResizablePrimitive from \"react-resizable-panels\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./resizable.module.css\";\r\n\r\nexport type {ImperativePanelGroupHandle, ImperativePanelHandle};\r\n\r\n/**\r\n * Props for the {@link ResizablePanelGroup} component.\r\n */\r\nexport type ResizablePanelGroupProps = React.ComponentProps<typeof ResizablePrimitive.PanelGroup>;\r\n\r\n/**\r\n * Props for the {@link ResizablePanel} component.\r\n */\r\nexport type ResizablePanelProps = React.ComponentProps<typeof ResizablePrimitive.Panel>;\r\n\r\n/**\r\n * Props for the {@link ResizableHandle} component.\r\n *\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n */\r\nexport interface ResizableHandleProps extends React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> {\r\n /**\r\n * Renders a visual drag grip inside the resize handle to indicate that adjacent panels can be resized.\r\n *\r\n * @default false\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n */\r\n withHandle?: boolean;\r\n}\r\n\r\n/**\r\n * Wraps `react-resizable-panels` panel groups with shared styles.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizablePanelGroup direction='horizontal'>...</ResizablePanelGroup>\r\n * ```\r\n *\r\n * @see {@link ResizablePanelGroupProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nconst ResizablePanelGroup: React.ForwardRefExoticComponent<ResizablePanelGroupProps & React.RefAttributes<ImperativePanelGroupHandle>> =\r\n React.forwardRef<ImperativePanelGroupHandle, ResizablePanelGroupProps>(({className, ...props}, ref) => (\r\n <ResizablePrimitive.PanelGroup\r\n ref={ref}\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ));\r\n\r\n/**\r\n * Re-exports the underlying resizable panel primitive for consistent composition.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling is applied by parent panel group and handles\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizablePanel defaultSize={50}>Content</ResizablePanel>\r\n * ```\r\n *\r\n * @see {@link ResizablePanelProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nconst ResizablePanel = ResizablePrimitive.Panel;\r\n\r\n/**\r\n * Renders a draggable resize handle between resizable panels.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizableHandle withHandle />\r\n * ```\r\n *\r\n * @see {@link ResizableHandleProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nfunction ResizableHandle({withHandle = false, className, children, ...props}: Readonly<ResizableHandleProps>): React.JSX.Element {\r\n return (\r\n <ResizablePrimitive.PanelResizeHandle\r\n className={cn(styles.handle, className)}\r\n {...props}>\r\n {Boolean(withHandle) && (\r\n <div className={styles.handleGrip}>\r\n <GripVertical className={styles.handleGripIcon} />\r\n </div>\r\n )}\r\n {children}\r\n </ResizablePrimitive.PanelResizeHandle>\r\n );\r\n}\r\n\r\nResizablePanelGroup.displayName = \"ResizablePanelGroup\";\r\nResizablePanel.displayName = \"ResizablePanel\";\r\nResizableHandle.displayName = \"ResizableHandle\";\r\n\r\nexport {ResizableHandle, ResizablePanel, ResizablePanelGroup};\r\n"],"names":["ResizablePanelGroup","React","className","props","ref","ResizablePrimitive","cn","styles","ResizablePanel","ResizableHandle","withHandle","children","Boolean","GripVertical"],"mappings":";;;;;;;AAwDA,MAAMA,sBAAmBA,WAAAA,GACvBC,WAAuE,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAM,EAAEC,MAAAA,WAAAA,GAC7F,IAACC,YAA6B;QAC5B,KAAKD;QACL,WAAWE,GAAGC,iBAAAA,KAAY,EAAEL;QAC3B,GAAGC,KAAK;;AAoBf,MAAMK,iBAAiBH;AAkBvB,SAASI,gBAAgB,EAACC,aAAa,KAAK,EAAER,SAAS,EAAES,QAAQ,EAAE,GAAGR,OAAsC;IAC1G,OAAO,WAAP,GACE,KAACE,mBAAoC;QACnC,WAAWC,GAAGC,iBAAAA,MAAa,EAAEL;QAC5B,GAAGC,KAAK;;YACRS,QAAQF,eAAe,WAAfA,GACP,IAAC;gBAAI,WAAWH,iBAAAA,UAAiB;0BAC/B,kBAACM,cAAYA;oBAAC,WAAWN,iBAAAA,cAAqB;;;YAGjDI;;;AAGP;AAEAX,oBAAoB,WAAW,GAAG;AAClCQ,eAAe,WAAW,GAAG;AAC7BC,gBAAgB,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/resizable.js","sources":["../../../src/components/ui/resizable.tsx"],"sourcesContent":["\"use client\";\r\n\r\n/* eslint-disable react/jsx-handler-names */\r\n\r\nimport {GripVertical} from \"lucide-react\";\r\nimport * as React from \"react\";\r\nimport type {ImperativePanelGroupHandle} from \"react-resizable-panels\";\r\nimport * as ResizablePrimitive from \"react-resizable-panels\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\n\r\nimport styles from \"./resizable.module.css\";\r\n\r\nexport type {ImperativePanelGroupHandle, ImperativePanelHandle} from \"react-resizable-panels\";\r\n\r\n/**\r\n * Props for the {@link ResizablePanelGroup} component.\r\n */\r\nexport type ResizablePanelGroupProps = React.ComponentProps<typeof ResizablePrimitive.PanelGroup>;\r\n\r\n/**\r\n * Props for the {@link ResizablePanel} component.\r\n */\r\nexport type ResizablePanelProps = React.ComponentProps<typeof ResizablePrimitive.Panel>;\r\n\r\n/**\r\n * Props for the {@link ResizableHandle} component.\r\n *\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n */\r\nexport interface ResizableHandleProps extends React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> {\r\n /**\r\n * Renders a visual drag grip inside the resize handle to indicate that adjacent panels can be resized.\r\n *\r\n * @default false\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n */\r\n withHandle?: boolean;\r\n}\r\n\r\n/**\r\n * Wraps `react-resizable-panels` panel groups with shared styles.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizablePanelGroup direction='horizontal'>...</ResizablePanelGroup>\r\n * ```\r\n *\r\n * @see {@link ResizablePanelGroupProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nconst ResizablePanelGroup: React.ForwardRefExoticComponent<ResizablePanelGroupProps & React.RefAttributes<ImperativePanelGroupHandle>> =\r\n React.forwardRef<ImperativePanelGroupHandle, ResizablePanelGroupProps>(({className, ...props}, ref) => (\r\n <ResizablePrimitive.PanelGroup\r\n ref={ref}\r\n className={cn(styles.group, className)}\r\n {...props}\r\n />\r\n ));\r\n\r\n/**\r\n * Re-exports the underlying resizable panel primitive for consistent composition.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling is applied by parent panel group and handles\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizablePanel defaultSize={50}>Content</ResizablePanel>\r\n * ```\r\n *\r\n * @see {@link ResizablePanelProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nconst ResizablePanel = ResizablePrimitive.Panel;\r\n\r\n/**\r\n * Renders a draggable resize handle between resizable panels.\r\n *\r\n * @remarks\r\n * - Third-party wrapper component\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example\r\n * ```tsx\r\n * <ResizableHandle withHandle />\r\n * ```\r\n *\r\n * @see {@link ResizableHandleProps} for available props\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels | react-resizable-panels docs}\r\n * @see {@link https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels#readme | react-resizable-panels API reference}\r\n */\r\nfunction ResizableHandle({withHandle = false, className, children, ...props}: Readonly<ResizableHandleProps>): React.JSX.Element {\r\n return (\r\n <ResizablePrimitive.PanelResizeHandle\r\n className={cn(styles.handle, className)}\r\n {...props}>\r\n {Boolean(withHandle) && (\r\n <div className={styles.handleGrip}>\r\n <GripVertical className={styles.handleGripIcon} />\r\n </div>\r\n )}\r\n {children}\r\n </ResizablePrimitive.PanelResizeHandle>\r\n );\r\n}\r\n\r\nResizablePanelGroup.displayName = \"ResizablePanelGroup\";\r\nResizablePanel.displayName = \"ResizablePanel\";\r\nResizableHandle.displayName = \"ResizableHandle\";\r\n\r\nexport {ResizableHandle, ResizablePanel, ResizablePanelGroup};\r\n"],"names":["ResizablePanelGroup","React","className","props","ref","ResizablePrimitive","cn","styles","ResizablePanel","ResizableHandle","withHandle","children","Boolean","GripVertical"],"mappings":";;;;;;;AAwDA,MAAMA,sBAAmBA,WAAAA,GACvBC,WAAuE,CAAC,EAACC,SAAS,EAAE,GAAGC,OAAM,EAAEC,MAAAA,WAAAA,GAC7F,IAACC,YAA6B;QAC5B,KAAKD;QACL,WAAWE,GAAGC,iBAAAA,KAAY,EAAEL;QAC3B,GAAGC,KAAK;;AAoBf,MAAMK,iBAAiBH;AAkBvB,SAASI,gBAAgB,EAACC,aAAa,KAAK,EAAER,SAAS,EAAES,QAAQ,EAAE,GAAGR,OAAsC;IAC1G,OAAO,WAAP,GACE,KAACE,mBAAoC;QACnC,WAAWC,GAAGC,iBAAAA,MAAa,EAAEL;QAC5B,GAAGC,KAAK;;YACRS,QAAQF,eAAe,WAAfA,GACP,IAAC;gBAAI,WAAWH,iBAAAA,UAAiB;0BAC/B,kBAACM,cAAYA;oBAAC,WAAWN,iBAAAA,cAAqB;;;YAGjDI;;;AAGP;AAEAX,oBAAoB,WAAW,GAAG;AAClCQ,eAAe,WAAW,GAAG;AAC7BC,gBAAgB,WAAW,GAAG"}
@@ -32,5 +32,5 @@ export interface ScratcherProps {
32
32
  *
33
33
  * @see {@link ScratcherProps} for available props
34
34
  */
35
- export declare const Scratcher: React.FC<ScratcherProps>;
35
+ export declare const Scratcher: React.ForwardRefExoticComponent<ScratcherProps & React.RefAttributes<HTMLDivElement>>;
36
36
  //# sourceMappingURL=scratcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scratcher.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scratcher.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,uGAAuG;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAKD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqJ9C,CAAC"}
1
+ {"version":3,"file":"scratcher.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scratcher.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,uGAAuG;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAKD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,uFAiJpB,CAAC"}
@@ -10,7 +10,7 @@ const defaultGradientColors = [
10
10
  "#FDCC92"
11
11
  ];
12
12
  const ignoreAnimationError = ()=>null;
13
- const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, children, className, gradientColors = defaultGradientColors })=>{
13
+ const scratcher_Scratcher = /*#__PURE__*/ react.forwardRef(function({ width, height, minScratchPercentage = 50, onComplete, children, className, gradientColors = defaultGradientColors }, forwardedRef) {
14
14
  const canvasRef = useRef(null);
15
15
  const [isScratching, setIsScratching] = useState(false);
16
16
  const [isComplete, setIsComplete] = useState(false);
@@ -119,6 +119,7 @@ const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, child
119
119
  scratch
120
120
  ]);
121
121
  return /*#__PURE__*/ jsxs(motion.div, {
122
+ ref: forwardedRef,
122
123
  className: cn(scratcher_module.root, className),
123
124
  style: {
124
125
  width,
@@ -138,8 +139,8 @@ const Scratcher = ({ width, height, minScratchPercentage = 50, onComplete, child
138
139
  children
139
140
  ]
140
141
  });
141
- };
142
- Scratcher.displayName = "Scratcher";
143
- export { Scratcher };
142
+ });
143
+ scratcher_Scratcher.displayName = "Scratcher";
144
+ export { scratcher_Scratcher as Scratcher };
144
145
 
145
146
  //# sourceMappingURL=scratcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/scratcher.js","sources":["../../../src/components/ui/scratcher.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {motion, useAnimation} from \"motion/react\";\r\nimport React, {useEffect, useRef, useState} from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./scratcher.module.css\";\r\n\r\n/** Props accepted by {@link Scratcher}. */\r\nexport interface ScratcherProps {\r\n /** Content revealed after the overlay is scratched away. @default undefined */\r\n children: React.ReactNode;\r\n /** Width of the scratch card surface in pixels. @default undefined */\r\n width: number;\r\n /** Height of the scratch card surface in pixels. @default undefined */\r\n height: number;\r\n /** Percentage of cleared pixels required before completion fires. @default 50 */\r\n minScratchPercentage?: number;\r\n /** Additional CSS classes merged with the scratch card container. @default undefined */\r\n className?: string;\r\n /** Callback invoked once the scratch completion threshold is reached. @default undefined */\r\n onComplete?: () => void;\r\n /** Three-stop gradient used for the scratchable overlay. @default [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"] */\r\n gradientColors?: [string, string, string];\r\n}\r\n\r\nconst defaultGradientColors: [string, string, string] = [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"];\r\nconst ignoreAnimationError = (): null => null;\r\n\r\n/**\r\n * Renders a scratch-card reveal surface with animated completion feedback.\r\n *\r\n * @remarks\r\n * - Animated component using the `motion` library\r\n * - Renders a `<div>` element containing a `<canvas>`\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n * - Client-side only (`\"use client\"` directive)\r\n *\r\n * @example\r\n * ```tsx\r\n * <Scratcher width={320} height={180}>Prize unlocked</Scratcher>\r\n * ```\r\n *\r\n * @see {@link ScratcherProps} for available props\r\n */\r\nexport const Scratcher: React.FC<ScratcherProps> = ({\r\n width,\r\n height,\r\n minScratchPercentage = 50,\r\n onComplete,\r\n children,\r\n className,\r\n gradientColors = defaultGradientColors,\r\n}): React.JSX.Element => {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const [isScratching, setIsScratching] = useState(false);\r\n const [isComplete, setIsComplete] = useState(false);\r\n\r\n const controls = useAnimation();\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n context.fillStyle = \"#ccc\";\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n const gradient = context.createLinearGradient(0, 0, canvas.width, canvas.height);\r\n gradient.addColorStop(0, gradientColors[0]);\r\n gradient.addColorStop(0.5, gradientColors[1]);\r\n gradient.addColorStop(1, gradientColors[2]);\r\n context.fillStyle = gradient;\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n }, [gradientColors]);\r\n\r\n const scratch = React.useCallback((clientX: number, clientY: number): void => {\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n const rect = canvas.getBoundingClientRect();\r\n const x = clientX - rect.left + 16;\r\n const y = clientY - rect.top + 16;\r\n context.globalCompositeOperation = \"destination-out\";\r\n context.beginPath();\r\n context.arc(x, y, 30, 0, Math.PI * 2);\r\n context.fill();\r\n }, []);\r\n\r\n const startAnimation = React.useCallback(async (): Promise<void> => {\r\n await controls.start({\r\n scale: [1, 1.5, 1],\r\n rotate: [0, 10, -10, 10, -10, 0],\r\n transition: {duration: 0.5},\r\n });\r\n\r\n onComplete?.();\r\n }, [controls, onComplete]);\r\n\r\n const checkCompletion = React.useCallback((): void => {\r\n if (isComplete) {\r\n return;\r\n }\r\n\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n const pixels = imageData.data;\r\n const totalPixels = pixels.length / 4;\r\n let clearPixels = 0;\r\n\r\n for (let index = 3; index < pixels.length; index += 4) {\r\n if (pixels[index] === 0) {\r\n clearPixels += 1;\r\n }\r\n }\r\n\r\n const percentage = (clearPixels / totalPixels) * 100;\r\n if (percentage >= minScratchPercentage) {\r\n setIsComplete(true);\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n startAnimation().catch(ignoreAnimationError);\r\n }\r\n }, [isComplete, minScratchPercentage, startAnimation]);\r\n\r\n useEffect(() => {\r\n const handleDocumentMouseMove = (event: MouseEvent): void => {\r\n if (isScratching) {\r\n scratch(event.clientX, event.clientY);\r\n }\r\n };\r\n\r\n const handleDocumentTouchMove = (event: TouchEvent): void => {\r\n if (!isScratching) {\r\n return;\r\n }\r\n\r\n const [touch] = event.touches;\r\n if (!touch) {\r\n return;\r\n }\r\n\r\n scratch(touch.clientX, touch.clientY);\r\n };\r\n\r\n const handleDocumentPointerEnd = (): void => {\r\n setIsScratching(false);\r\n checkCompletion();\r\n };\r\n\r\n globalThis.document.addEventListener(\"mousemove\", handleDocumentMouseMove);\r\n globalThis.document.addEventListener(\"touchmove\", handleDocumentTouchMove);\r\n globalThis.document.addEventListener(\"mouseup\", handleDocumentPointerEnd);\r\n globalThis.document.addEventListener(\"touchend\", handleDocumentPointerEnd);\r\n globalThis.document.addEventListener(\"touchcancel\", handleDocumentPointerEnd);\r\n\r\n return () => {\r\n globalThis.document.removeEventListener(\"mousemove\", handleDocumentMouseMove);\r\n globalThis.document.removeEventListener(\"touchmove\", handleDocumentTouchMove);\r\n globalThis.document.removeEventListener(\"mouseup\", handleDocumentPointerEnd);\r\n globalThis.document.removeEventListener(\"touchend\", handleDocumentPointerEnd);\r\n globalThis.document.removeEventListener(\"touchcancel\", handleDocumentPointerEnd);\r\n };\r\n }, [checkCompletion, isScratching, scratch]);\r\n\r\n return (\r\n <motion.div\r\n className={cn(styles.root, className)}\r\n style={{\r\n width,\r\n height,\r\n cursor:\r\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto\",\r\n }}\r\n animate={controls}>\r\n <canvas\r\n ref={canvasRef}\r\n width={width}\r\n height={height}\r\n className={styles.canvas}\r\n onMouseDown={() => setIsScratching(true)}\r\n onTouchStart={() => setIsScratching(true)}\r\n />\r\n {children}\r\n </motion.div>\r\n );\r\n};\r\n\r\nScratcher.displayName = \"Scratcher\";\r\n"],"names":["defaultGradientColors","ignoreAnimationError","Scratcher","width","height","minScratchPercentage","onComplete","children","className","gradientColors","canvasRef","useRef","isScratching","setIsScratching","useState","isComplete","setIsComplete","controls","useAnimation","useEffect","canvas","context","gradient","scratch","React","clientX","clientY","rect","x","y","Math","startAnimation","checkCompletion","imageData","pixels","totalPixels","clearPixels","index","percentage","handleDocumentMouseMove","event","handleDocumentTouchMove","touch","handleDocumentPointerEnd","globalThis","motion","cn","styles"],"mappings":"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"}
1
+ {"version":3,"file":"components/ui/scratcher.js","sources":["../../../src/components/ui/scratcher.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {motion, useAnimation} from \"motion/react\";\r\nimport React, {useEffect, useRef, useState} from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./scratcher.module.css\";\r\n\r\n/** Props accepted by {@link Scratcher}. */\r\nexport interface ScratcherProps {\r\n /** Content revealed after the overlay is scratched away. @default undefined */\r\n children: React.ReactNode;\r\n /** Width of the scratch card surface in pixels. @default undefined */\r\n width: number;\r\n /** Height of the scratch card surface in pixels. @default undefined */\r\n height: number;\r\n /** Percentage of cleared pixels required before completion fires. @default 50 */\r\n minScratchPercentage?: number;\r\n /** Additional CSS classes merged with the scratch card container. @default undefined */\r\n className?: string;\r\n /** Callback invoked once the scratch completion threshold is reached. @default undefined */\r\n onComplete?: () => void;\r\n /** Three-stop gradient used for the scratchable overlay. @default [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"] */\r\n gradientColors?: [string, string, string];\r\n}\r\n\r\nconst defaultGradientColors: [string, string, string] = [\"#A97CF8\", \"#F38CB8\", \"#FDCC92\"];\r\nconst ignoreAnimationError = (): null => null;\r\n\r\n/**\r\n * Renders a scratch-card reveal surface with animated completion feedback.\r\n *\r\n * @remarks\r\n * - Animated component using the `motion` library\r\n * - Renders a `<div>` element containing a `<canvas>`\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n * - Client-side only (`\"use client\"` directive)\r\n *\r\n * @example\r\n * ```tsx\r\n * <Scratcher width={320} height={180}>Prize unlocked</Scratcher>\r\n * ```\r\n *\r\n * @see {@link ScratcherProps} for available props\r\n */\r\nexport const Scratcher = React.forwardRef<HTMLDivElement, ScratcherProps>(function Scratcher(\r\n {width, height, minScratchPercentage = 50, onComplete, children, className, gradientColors = defaultGradientColors},\r\n forwardedRef,\r\n) {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const [isScratching, setIsScratching] = useState(false);\r\n const [isComplete, setIsComplete] = useState(false);\r\n\r\n const controls = useAnimation();\r\n\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n context.fillStyle = \"#ccc\";\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n const gradient = context.createLinearGradient(0, 0, canvas.width, canvas.height);\r\n gradient.addColorStop(0, gradientColors[0]);\r\n gradient.addColorStop(0.5, gradientColors[1]);\r\n gradient.addColorStop(1, gradientColors[2]);\r\n context.fillStyle = gradient;\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n }, [gradientColors]);\r\n\r\n const scratch = React.useCallback((clientX: number, clientY: number): void => {\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n const rect = canvas.getBoundingClientRect();\r\n const x = clientX - rect.left + 16;\r\n const y = clientY - rect.top + 16;\r\n context.globalCompositeOperation = \"destination-out\";\r\n context.beginPath();\r\n context.arc(x, y, 30, 0, Math.PI * 2);\r\n context.fill();\r\n }, []);\r\n\r\n const startAnimation = React.useCallback(async (): Promise<void> => {\r\n await controls.start({\r\n scale: [1, 1.5, 1],\r\n rotate: [0, 10, -10, 10, -10, 0],\r\n transition: {duration: 0.5},\r\n });\r\n\r\n onComplete?.();\r\n }, [controls, onComplete]);\r\n\r\n const checkCompletion = React.useCallback((): void => {\r\n if (isComplete) {\r\n return;\r\n }\r\n\r\n const canvas = canvasRef.current;\r\n const context = canvas?.getContext(\"2d\");\r\n if (!canvas || !context) {\r\n return;\r\n }\r\n\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n const pixels = imageData.data;\r\n const totalPixels = pixels.length / 4;\r\n let clearPixels = 0;\r\n\r\n for (let index = 3; index < pixels.length; index += 4) {\r\n if (pixels[index] === 0) {\r\n clearPixels += 1;\r\n }\r\n }\r\n\r\n const percentage = (clearPixels / totalPixels) * 100;\r\n if (percentage >= minScratchPercentage) {\r\n setIsComplete(true);\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n startAnimation().catch(ignoreAnimationError);\r\n }\r\n }, [isComplete, minScratchPercentage, startAnimation]);\r\n\r\n useEffect(() => {\r\n const handleDocumentMouseMove = (event: MouseEvent): void => {\r\n if (isScratching) {\r\n scratch(event.clientX, event.clientY);\r\n }\r\n };\r\n\r\n const handleDocumentTouchMove = (event: TouchEvent): void => {\r\n if (!isScratching) {\r\n return;\r\n }\r\n\r\n const [touch] = event.touches;\r\n if (!touch) {\r\n return;\r\n }\r\n\r\n scratch(touch.clientX, touch.clientY);\r\n };\r\n\r\n const handleDocumentPointerEnd = (): void => {\r\n setIsScratching(false);\r\n checkCompletion();\r\n };\r\n\r\n globalThis.document.addEventListener(\"mousemove\", handleDocumentMouseMove);\r\n globalThis.document.addEventListener(\"touchmove\", handleDocumentTouchMove);\r\n globalThis.document.addEventListener(\"mouseup\", handleDocumentPointerEnd);\r\n globalThis.document.addEventListener(\"touchend\", handleDocumentPointerEnd);\r\n globalThis.document.addEventListener(\"touchcancel\", handleDocumentPointerEnd);\r\n\r\n return () => {\r\n globalThis.document.removeEventListener(\"mousemove\", handleDocumentMouseMove);\r\n globalThis.document.removeEventListener(\"touchmove\", handleDocumentTouchMove);\r\n globalThis.document.removeEventListener(\"mouseup\", handleDocumentPointerEnd);\r\n globalThis.document.removeEventListener(\"touchend\", handleDocumentPointerEnd);\r\n globalThis.document.removeEventListener(\"touchcancel\", handleDocumentPointerEnd);\r\n };\r\n }, [checkCompletion, isScratching, scratch]);\r\n\r\n return (\r\n <motion.div\r\n ref={forwardedRef}\r\n className={cn(styles.root, className)}\r\n style={{\r\n width,\r\n height,\r\n cursor:\r\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto\",\r\n }}\r\n animate={controls}>\r\n <canvas\r\n ref={canvasRef}\r\n width={width}\r\n height={height}\r\n className={styles.canvas}\r\n onMouseDown={() => setIsScratching(true)}\r\n onTouchStart={() => setIsScratching(true)}\r\n />\r\n {children}\r\n </motion.div>\r\n );\r\n});\r\n\r\nScratcher.displayName = \"Scratcher\";\r\n"],"names":["defaultGradientColors","ignoreAnimationError","Scratcher","React","width","height","minScratchPercentage","onComplete","children","className","gradientColors","forwardedRef","canvasRef","useRef","isScratching","setIsScratching","useState","isComplete","setIsComplete","controls","useAnimation","useEffect","canvas","context","gradient","scratch","clientX","clientY","rect","x","y","Math","startAnimation","checkCompletion","imageData","pixels","totalPixels","clearPixels","index","percentage","handleDocumentMouseMove","event","handleDocumentTouchMove","touch","handleDocumentPointerEnd","globalThis","motion","cn","styles"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import { ScrollArea as BaseScrollArea } from "@base-ui/react/scroll-area";
2
2
  import * as React from "react";
3
- type ScrollAreaProps = React.ComponentPropsWithRef<typeof BaseScrollArea.Root>;
4
- type ScrollBarProps = React.ComponentPropsWithRef<typeof BaseScrollArea.Scrollbar>;
5
3
  /**
6
4
  * Coordinates scroll area layout and scrolling behavior.
7
5
  *
@@ -38,11 +36,11 @@ declare namespace ScrollBar {
38
36
  var displayName: string;
39
37
  }
40
38
  declare namespace ScrollArea {
41
- type Props = ScrollAreaProps;
39
+ type Props = React.ComponentPropsWithRef<typeof BaseScrollArea.Root>;
42
40
  type State = BaseScrollArea.Root.State;
43
41
  }
44
42
  declare namespace ScrollBar {
45
- type Props = ScrollBarProps;
43
+ type Props = React.ComponentPropsWithRef<typeof BaseScrollArea.Scrollbar>;
46
44
  type State = BaseScrollArea.Scrollbar.State;
47
45
  }
48
46
  export { ScrollArea, ScrollBar };
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scroll-area.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,eAAe,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC/E,KAAK,cAAc,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAEnF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,qLAqBf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAoBvE;kBApBQ,SAAS;;;AAuBlB,kBAAU,UAAU,CAAC;IACnB,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/C;AAGD,kBAAU,SAAS,CAAC;IAClB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC;CACpD;AAKD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,CAAC"}
1
+ {"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scroll-area.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,qLAqBf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAoBvE;kBApBQ,SAAS;;;AAuBlB,kBAAU,UAAU,CAAC;IACnB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5E,KAAY,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/C;AAGD,kBAAU,SAAS,CAAC;IAClB,KAAY,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IACjF,KAAY,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC;CACpD;AAKD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/scroll-area.js","sources":["../../../src/components/ui/scroll-area.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {ScrollArea as BaseScrollArea} from \"@base-ui/react/scroll-area\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./scroll-area.module.css\";\r\n\r\ntype ScrollAreaProps = React.ComponentPropsWithRef<typeof BaseScrollArea.Root>;\r\ntype ScrollBarProps = React.ComponentPropsWithRef<typeof BaseScrollArea.Scrollbar>;\r\n\r\n/**\r\n * Coordinates scroll area layout and scrolling behavior.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/scroll-area | Base UI Scroll Area}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <ScrollArea>Content</ScrollArea>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/scroll-area | Base UI Documentation}\r\n */\r\nconst ScrollArea = React.forwardRef<React.ComponentRef<typeof BaseScrollArea.Root>, ScrollArea.Props>(\r\n (props: Readonly<ScrollArea.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseScrollArea.Root\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.root, className)}, {}),\r\n })}>\r\n <BaseScrollArea.Viewport className={styles.viewport}>\r\n <BaseScrollArea.Content className={styles.content}>{children}</BaseScrollArea.Content>\r\n </BaseScrollArea.Viewport>\r\n <ScrollBar />\r\n <BaseScrollArea.Corner className={styles.corner} />\r\n </BaseScrollArea.Root>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the scroll bar.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/scroll-area | Base UI Scroll Area}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <ScrollBar>Content</ScrollBar>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/scroll-area | Base UI Documentation}\r\n */\r\nfunction ScrollBar(props: Readonly<ScrollBar.Props>): React.ReactElement {\r\n const {className, orientation = \"vertical\", render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseScrollArea.Scrollbar\r\n orientation={orientation}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps(\r\n {\r\n className: cn(styles.scrollbar, orientation === \"vertical\" ? styles.vertical : styles.horizontal, className),\r\n },\r\n {},\r\n ),\r\n })}>\r\n <BaseScrollArea.Thumb className={styles.thumb} />\r\n </BaseScrollArea.Scrollbar>\r\n );\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace ScrollArea {\r\n export type Props = ScrollAreaProps;\r\n export type State = BaseScrollArea.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace ScrollBar {\r\n export type Props = ScrollBarProps;\r\n export type State = BaseScrollArea.Scrollbar.State;\r\n}\r\n\r\nScrollArea.displayName = \"ScrollArea\";\r\nScrollBar.displayName = \"ScrollBar\";\r\n\r\nexport {ScrollArea, ScrollBar};\r\n"],"names":["ScrollArea","React","props","ref","className","children","render","otherProps","BaseScrollArea","useRender","mergeProps","cn","styles","ScrollBar","orientation"],"mappings":";;;;;;;;AA4BA,MAAMA,yBAAa,WAAHA,GAAGC,WACjB,CAACC,OAAmCC;IAClC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAErD,OAAO,WAAP,GACE,KAACM,WAAAA,IAAmB;QAClB,KAAKL;QACJ,GAAGI,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,IAAW,EAAER;YAAU,GAAG,CAAC;QAC9D;;0BACA,IAACI,WAAAA,QAAuB;gBAAC,WAAWI,mBAAAA,QAAe;0BACjD,kBAACJ,WAAAA,OAAsB;oBAAC,WAAWI,mBAAAA,OAAc;8BAAGP;;;0BAEtD,IAACQ,WAASA,CAAAA;0BACV,IAACL,WAAAA,MAAqB;gBAAC,WAAWI,mBAAAA,MAAa;;;;AAGrD;AAkBF,SAASC,UAAUX,KAAgC;IACjD,MAAM,EAACE,SAAS,EAAEU,cAAc,UAAU,EAAER,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAErE,OAAO,WAAP,GACE,IAACM,WAAAA,SAAwB;QACvB,aAAaM;QACZ,GAAGP,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WACL;gBACE,WAAWC,GAAGC,mBAAAA,SAAgB,EAAEE,AAAgB,eAAhBA,cAA6BF,mBAAAA,QAAe,GAAGA,mBAAAA,UAAiB,EAAER;YACpG,GACA,CAAC;QAEL;kBACA,kBAACI,WAAAA,KAAoB;YAAC,WAAWI,mBAAAA,KAAY;;;AAGnD;AAcAZ,uBAAW,WAAW,GAAG;AACzBa,UAAU,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/scroll-area.js","sources":["../../../src/components/ui/scroll-area.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {ScrollArea as BaseScrollArea} from \"@base-ui/react/scroll-area\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./scroll-area.module.css\";\r\n\r\n/**\r\n * Coordinates scroll area layout and scrolling behavior.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/scroll-area | Base UI Scroll Area}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <ScrollArea>Content</ScrollArea>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/scroll-area | Base UI Documentation}\r\n */\r\nconst ScrollArea = React.forwardRef<React.ComponentRef<typeof BaseScrollArea.Root>, ScrollArea.Props>(\r\n (props: Readonly<ScrollArea.Props>, ref): React.ReactElement => {\r\n const {className, children, render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseScrollArea.Root\r\n ref={ref}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps({className: cn(styles.root, className)}, {}),\r\n })}>\r\n <BaseScrollArea.Viewport className={styles.viewport}>\r\n <BaseScrollArea.Content className={styles.content}>{children}</BaseScrollArea.Content>\r\n </BaseScrollArea.Viewport>\r\n <ScrollBar />\r\n <BaseScrollArea.Corner className={styles.corner} />\r\n </BaseScrollArea.Root>\r\n );\r\n },\r\n);\r\n\r\n/**\r\n * Renders the scroll bar.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/scroll-area | Base UI Scroll Area}\r\n * - Supports the `render` prop for element composition\r\n *\r\n * @example\r\n * ```tsx\r\n * <ScrollBar>Content</ScrollBar>\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/scroll-area | Base UI Documentation}\r\n */\r\nfunction ScrollBar(props: Readonly<ScrollBar.Props>): React.ReactElement {\r\n const {className, orientation = \"vertical\", render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseScrollArea.Scrollbar\r\n orientation={orientation}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps(\r\n {\r\n className: cn(styles.scrollbar, orientation === \"vertical\" ? styles.vertical : styles.horizontal, className),\r\n },\r\n {},\r\n ),\r\n })}>\r\n <BaseScrollArea.Thumb className={styles.thumb} />\r\n </BaseScrollArea.Scrollbar>\r\n );\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace ScrollArea {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseScrollArea.Root>;\r\n export type State = BaseScrollArea.Root.State;\r\n}\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace ScrollBar {\r\n export type Props = React.ComponentPropsWithRef<typeof BaseScrollArea.Scrollbar>;\r\n export type State = BaseScrollArea.Scrollbar.State;\r\n}\r\n\r\nScrollArea.displayName = \"ScrollArea\";\r\nScrollBar.displayName = \"ScrollBar\";\r\n\r\nexport {ScrollArea, ScrollBar};\r\n"],"names":["ScrollArea","React","props","ref","className","children","render","otherProps","BaseScrollArea","useRender","mergeProps","cn","styles","ScrollBar","orientation"],"mappings":";;;;;;;;AAyBA,MAAMA,yBAAa,WAAHA,GAAGC,WACjB,CAACC,OAAmCC;IAClC,MAAM,EAACC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAErD,OAAO,WAAP,GACE,KAACM,WAAAA,IAAmB;QAClB,KAAKL;QACJ,GAAGI,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WAAW;gBAAC,WAAWC,GAAGC,mBAAAA,IAAW,EAAER;YAAU,GAAG,CAAC;QAC9D;;0BACA,IAACI,WAAAA,QAAuB;gBAAC,WAAWI,mBAAAA,QAAe;0BACjD,kBAACJ,WAAAA,OAAsB;oBAAC,WAAWI,mBAAAA,OAAc;8BAAGP;;;0BAEtD,IAACQ,WAASA,CAAAA;0BACV,IAACL,WAAAA,MAAqB;gBAAC,WAAWI,mBAAAA,MAAa;;;;AAGrD;AAkBF,SAASC,UAAUX,KAAgC;IACjD,MAAM,EAACE,SAAS,EAAEU,cAAc,UAAU,EAAER,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAErE,OAAO,WAAP,GACE,IAACM,WAAAA,SAAwB;QACvB,aAAaM;QACZ,GAAGP,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WACL;gBACE,WAAWC,GAAGC,mBAAAA,SAAgB,EAAEE,AAAgB,eAAhBA,cAA6BF,mBAAAA,QAAe,GAAGA,mBAAAA,UAAiB,EAAER;YACpG,GACA,CAAC;QAEL;kBACA,kBAACI,WAAAA,KAAoB;YAAC,WAAWI,mBAAAA,KAAY;;;AAGnD;AAcAZ,uBAAW,WAAW,GAAG;AACzBa,UAAU,WAAW,GAAG"}
@@ -27,10 +27,7 @@ export interface SeparatorProps extends Omit<React.ComponentPropsWithRef<typeof
27
27
  *
28
28
  * @see {@link https://base-ui.com/react/components/separator | Base UI Documentation}
29
29
  */
30
- declare function Separator(props: Readonly<Separator.Props>): React.ReactElement;
31
- declare namespace Separator {
32
- var displayName: string;
33
- }
30
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
34
31
  declare namespace Separator {
35
32
  type Props = SeparatorProps;
36
33
  type State = BaseSeparator.State;
@@ -1 +1 @@
1
- {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,IAAI,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,aAAa,CAAC,EAAE,WAAW,CAAC;IAC1G,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,oGAAoG;IACpG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAmBvE;kBAnBQ,SAAS;;;AAuBlB,kBAAU,SAAS,CAAC;IAClB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;CACzC;AAED,OAAO,EAAC,SAAS,EAAC,CAAC"}
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,IAAI,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,aAAa,CAAC,EAAE,WAAW,CAAC;IAC1G,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,oGAAoG;IACpG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,SAAS,oGAoBb,CAAC;AAIH,kBAAU,SAAS,CAAC;IAClB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;CACzC;AAED,OAAO,EAAC,SAAS,EAAC,CAAC"}
@@ -1,16 +1,17 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { mergeProps } from "@base-ui/react/merge-props";
4
- import { Separator } from "@base-ui/react/separator";
4
+ import { Separator as separator_Separator } from "@base-ui/react/separator";
5
5
  import { useRender } from "@base-ui/react/use-render";
6
- import "react";
6
+ import { forwardRef } from "react";
7
7
  import { cn } from "../../lib/utilities.js";
8
8
  import separator_module from "./separator.module.js";
9
- function separator_Separator(props) {
10
- const { className, decorative: _decorative = true, orientation = "horizontal", render, ...otherProps } = props;
11
- return /*#__PURE__*/ jsx(Separator, {
9
+ const ui_separator_Separator = /*#__PURE__*/ forwardRef(function(props, forwardedRef) {
10
+ const { className, orientation = "horizontal", render, ...otherProps } = props;
11
+ return /*#__PURE__*/ jsx(separator_Separator, {
12
12
  orientation: orientation,
13
13
  ...otherProps,
14
+ ref: forwardedRef,
14
15
  render: useRender({
15
16
  defaultTagName: "div",
16
17
  render: render,
@@ -19,8 +20,8 @@ function separator_Separator(props) {
19
20
  }, {})
20
21
  })
21
22
  });
22
- }
23
- separator_Separator.displayName = "Separator";
24
- export { separator_Separator as Separator };
23
+ });
24
+ ui_separator_Separator.displayName = "Separator";
25
+ export { ui_separator_Separator as Separator };
25
26
 
26
27
  //# sourceMappingURL=separator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/ui/separator.js","sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {Separator as BaseSeparator} from \"@base-ui/react/separator\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./separator.module.css\";\r\n\r\n/**\r\n * Props for the shared separator wrapper.\r\n */\r\nexport interface SeparatorProps extends Omit<React.ComponentPropsWithRef<typeof BaseSeparator>, \"className\"> {\r\n /** Additional CSS classes merged with the separator styles. @default undefined */\r\n className?: string;\r\n /** The visual axis used when rendering the separator line. @default \"horizontal\" */\r\n orientation?: \"horizontal\" | \"vertical\";\r\n /** Legacy compatibility flag retained by the wrapper but not forwarded to Base UI. @default true */\r\n decorative?: boolean;\r\n}\r\n\r\n/**\r\n * Separates adjacent content areas with a horizontal or vertical rule.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/separator | Base UI Separator}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Separator />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/separator | Base UI Documentation}\r\n */\r\nfunction Separator(props: Readonly<Separator.Props>): React.ReactElement {\r\n const {className, decorative: _decorative = true, orientation = \"horizontal\", render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseSeparator\r\n orientation={orientation}\r\n {...otherProps}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps(\r\n {\r\n className: cn(styles.separator, orientation === \"horizontal\" ? styles.horizontal : styles.vertical, className),\r\n },\r\n {},\r\n ),\r\n })}\r\n />\r\n );\r\n}\r\nSeparator.displayName = \"Separator\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Separator {\r\n export type Props = SeparatorProps;\r\n export type State = BaseSeparator.State;\r\n}\r\n\r\nexport {Separator};\r\n"],"names":["Separator","props","className","_decorative","orientation","render","otherProps","BaseSeparator","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAsCA,SAASA,oBAAUC,KAAgC;IACjD,MAAM,EAACC,SAAS,EAAE,YAAYC,cAAc,IAAI,EAAEC,cAAc,YAAY,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAEvG,OAAO,WAAP,GACE,IAACM,WAAaA;QACZ,aAAaH;QACZ,GAAGE,UAAU;QACd,QAAQE,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WACL;gBACE,WAAWC,GAAGC,iBAAAA,SAAgB,EAAEP,AAAgB,iBAAhBA,cAA+BO,iBAAAA,UAAiB,GAAGA,iBAAAA,QAAe,EAAET;YACtG,GACA,CAAC;QAEL;;AAGN;AACAF,oBAAU,WAAW,GAAG"}
1
+ {"version":3,"file":"components/ui/separator.js","sources":["../../../src/components/ui/separator.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {mergeProps} from \"@base-ui/react/merge-props\";\r\nimport {Separator as BaseSeparator} from \"@base-ui/react/separator\";\r\nimport {useRender} from \"@base-ui/react/use-render\";\r\nimport * as React from \"react\";\r\n\r\nimport {cn} from \"@/lib/utilities\";\r\nimport styles from \"./separator.module.css\";\r\n\r\n/**\r\n * Props for the shared separator wrapper.\r\n */\r\nexport interface SeparatorProps extends Omit<React.ComponentPropsWithRef<typeof BaseSeparator>, \"className\"> {\r\n /** Additional CSS classes merged with the separator styles. @default undefined */\r\n className?: string;\r\n /** The visual axis used when rendering the separator line. @default \"horizontal\" */\r\n orientation?: \"horizontal\" | \"vertical\";\r\n /** Legacy compatibility flag retained by the wrapper but not forwarded to Base UI. @default true */\r\n decorative?: boolean;\r\n}\r\n\r\n/**\r\n * Separates adjacent content areas with a horizontal or vertical rule.\r\n *\r\n * @remarks\r\n * - Renders a `<div>` element by default\r\n * - Built on {@link https://base-ui.com/react/components/separator | Base UI Separator}\r\n * - Supports the `render` prop for element composition\r\n * - Styling via CSS Modules with `--ac-*` custom properties\r\n *\r\n * @example Basic usage\r\n * ```tsx\r\n * <Separator />\r\n * ```\r\n *\r\n * @see {@link https://base-ui.com/react/components/separator | Base UI Documentation}\r\n */\r\nconst Separator = React.forwardRef<HTMLDivElement, Separator.Props>(function Separator(props, forwardedRef) {\r\n const {className, orientation = \"horizontal\", render, ...otherProps} = props;\r\n\r\n return (\r\n <BaseSeparator\r\n orientation={orientation}\r\n {...otherProps}\r\n ref={forwardedRef}\r\n render={useRender({\r\n defaultTagName: \"div\",\r\n render: render as never,\r\n props: mergeProps(\r\n {\r\n className: cn(styles.separator, orientation === \"horizontal\" ? styles.horizontal : styles.vertical, className),\r\n },\r\n {},\r\n ),\r\n })}\r\n />\r\n );\r\n});\r\nSeparator.displayName = \"Separator\";\r\n\r\n// eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API\r\nnamespace Separator {\r\n export type Props = SeparatorProps;\r\n export type State = BaseSeparator.State;\r\n}\r\n\r\nexport {Separator};\r\n"],"names":["Separator","React","props","forwardedRef","className","orientation","render","otherProps","BaseSeparator","useRender","mergeProps","cn","styles"],"mappings":";;;;;;;;AAsCA,MAAMA,yBAAY,WAAHA,GAAGC,WAAkD,SAAmBC,KAAK,EAAEC,YAAY;IACxG,MAAM,EAACC,SAAS,EAAEC,cAAc,YAAY,EAAEC,MAAM,EAAE,GAAGC,YAAW,GAAGL;IAEvE,OAAO,WAAP,GACE,IAACM,qBAAaA;QACZ,aAAaH;QACZ,GAAGE,UAAU;QACd,KAAKJ;QACL,QAAQM,UAAU;YAChB,gBAAgB;YAChB,QAAQH;YACR,OAAOI,WACL;gBACE,WAAWC,GAAGC,iBAAAA,SAAgB,EAAEP,AAAgB,iBAAhBA,cAA+BO,iBAAAA,UAAiB,GAAGA,iBAAAA,QAAe,EAAER;YACtG,GACA,CAAC;QAEL;;AAGN;AACAJ,uBAAU,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,IAAI,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,UAAU,UAAW,SAAQ,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC;CAAG;AAEnF,UAAU,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC3G;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAC5G;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAChH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,gBAAiB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC;IACnE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,gBAAiB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC;IACnE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IACvG;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,qBAAsB,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAE/D;kBAFQ,KAAK;;;AAId;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,WAAW,gIAAoB,CAAC;AACtC;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,kIAAmB,CAAC;AAEpC;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,YAAY,0GAkBjB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAa7E;kBAbQ,YAAY;;;AAerB;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,YAAY,uGAyBjB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAW3E;kBAXQ,WAAW;;;AAapB;;;;;;;;;;;;;;GAcG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAW3E;kBAXQ,WAAW;;;AAapB;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAczE;kBAdQ,UAAU;;;AAgBnB;;;;;;;;;;;;;;GAcG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAcrF;kBAdQ,gBAAgB;;;AAiBzB,kBAAU,KAAK,CAAC;IACd,KAAY,KAAK,GAAG,UAAU,CAAC;IAC/B,KAAY,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;CAC3C;AAGD,kBAAU,YAAY,CAAC;IACrB,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C;AAGD,kBAAU,YAAY,CAAC;IACrB,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;CAC/C;AAGD,kBAAU,YAAY,CAAC;IACrB,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;CAC5C;AAGD,kBAAU,WAAW,CAAC;IACpB,KAAY,KAAK,GAAG,gBAAgB,CAAC;IACrC,KAAY,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAGD,kBAAU,WAAW,CAAC;IACpB,KAAY,KAAK,GAAG,gBAAgB,CAAC;IACrC,KAAY,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAGD,kBAAU,UAAU,CAAC;IACnB,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;CAC5C;AAGD,kBAAU,gBAAgB,CAAC;IACzB,KAAY,KAAK,GAAG,qBAAqB,CAAC;IAC1C,KAAY,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;CAClD;AAaD,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sheet.tsx"],"names":[],"mappings":"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"}