@uselets/ui 2.0.0 → 2.0.2

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 (209) hide show
  1. package/dist/{as-child-Dxg3Xo1G.d.ts → as-child-T9W73ZYU.d.ts} +1 -3
  2. package/dist/{chart-B_6nC_ih.d.ts → chart-8rgtsk95.d.ts} +1 -3
  3. package/dist/cli/uselets.mjs.map +1 -1
  4. package/dist/components/accordion.d.ts +1 -3
  5. package/dist/components/accordion.js.map +1 -1
  6. package/dist/components/alert-dialog.d.ts +5 -5
  7. package/dist/components/alert-dialog.js +1 -1
  8. package/dist/components/alert-dialog.js.map +1 -1
  9. package/dist/components/alert.d.ts +0 -2
  10. package/dist/components/alert.js.map +1 -1
  11. package/dist/components/anchor.d.ts +1 -3
  12. package/dist/components/anchor.js.map +1 -1
  13. package/dist/components/area-chart.d.ts +1 -3
  14. package/dist/components/area-chart.js.map +1 -1
  15. package/dist/components/avatar.d.ts +1 -3
  16. package/dist/components/avatar.js.map +1 -1
  17. package/dist/components/badge.d.ts +1 -3
  18. package/dist/components/badge.js.map +1 -1
  19. package/dist/components/bar-chart.d.ts +1 -3
  20. package/dist/components/bar-chart.js.map +1 -1
  21. package/dist/components/bottom-nav.d.ts +1 -3
  22. package/dist/components/bottom-nav.js.map +1 -1
  23. package/dist/components/breadcrumb.d.ts +1 -3
  24. package/dist/components/breadcrumb.js.map +1 -1
  25. package/dist/components/button-group.d.ts +1 -3
  26. package/dist/components/button-group.js.map +1 -1
  27. package/dist/components/button.d.ts +1 -3
  28. package/dist/components/button.js.map +1 -1
  29. package/dist/components/calendar.d.ts +0 -2
  30. package/dist/components/calendar.js +1 -1
  31. package/dist/components/calendar.js.map +1 -1
  32. package/dist/components/card.d.ts +0 -2
  33. package/dist/components/card.js.map +1 -1
  34. package/dist/components/carousel.d.ts +0 -2
  35. package/dist/components/carousel.js.map +1 -1
  36. package/dist/components/center.d.ts +0 -2
  37. package/dist/components/center.js.map +1 -1
  38. package/dist/components/chart.d.ts +1 -1
  39. package/dist/components/chart.js.map +1 -1
  40. package/dist/components/checkbox.d.ts +0 -2
  41. package/dist/components/checkbox.js.map +1 -1
  42. package/dist/components/code.d.ts +0 -2
  43. package/dist/components/code.js.map +1 -1
  44. package/dist/components/collapsible.d.ts +1 -3
  45. package/dist/components/collapsible.js.map +1 -1
  46. package/dist/components/combobox.d.ts +1 -3
  47. package/dist/components/combobox.js.map +1 -1
  48. package/dist/components/command.d.ts +0 -2
  49. package/dist/components/command.js.map +1 -1
  50. package/dist/components/container.d.ts +0 -2
  51. package/dist/components/container.js.map +1 -1
  52. package/dist/components/data-table.d.ts +0 -2
  53. package/dist/components/data-table.js.map +1 -1
  54. package/dist/components/date-range-picker.d.ts +0 -2
  55. package/dist/components/date-range-picker.js.map +1 -1
  56. package/dist/components/dialog.d.ts +5 -5
  57. package/dist/components/dialog.js +1 -1
  58. package/dist/components/dialog.js.map +1 -1
  59. package/dist/components/direction.d.ts +0 -2
  60. package/dist/components/donut-chart.d.ts +0 -2
  61. package/dist/components/donut-chart.js.map +1 -1
  62. package/dist/components/drawer.d.ts +2 -4
  63. package/dist/components/drawer.js +1 -1
  64. package/dist/components/drawer.js.map +1 -1
  65. package/dist/components/dropdown-menu.d.ts +1 -3
  66. package/dist/components/dropdown-menu.js.map +1 -1
  67. package/dist/components/dropzone.d.ts +0 -2
  68. package/dist/components/dropzone.js.map +1 -1
  69. package/dist/components/empty.d.ts +0 -2
  70. package/dist/components/empty.js.map +1 -1
  71. package/dist/components/field.d.ts +0 -2
  72. package/dist/components/field.js.map +1 -1
  73. package/dist/components/flex.d.ts +0 -2
  74. package/dist/components/flex.js.map +1 -1
  75. package/dist/components/grid.d.ts +0 -2
  76. package/dist/components/grid.js.map +1 -1
  77. package/dist/components/group.d.ts +0 -2
  78. package/dist/components/group.js.map +1 -1
  79. package/dist/components/heading.d.ts +1 -3
  80. package/dist/components/heading.js.map +1 -1
  81. package/dist/components/hover-card.d.ts +1 -3
  82. package/dist/components/hover-card.js.map +1 -1
  83. package/dist/components/input-group.d.ts +0 -2
  84. package/dist/components/input-group.js.map +1 -1
  85. package/dist/components/input-otp.d.ts +0 -2
  86. package/dist/components/input-otp.js.map +1 -1
  87. package/dist/components/input.d.ts +0 -2
  88. package/dist/components/input.js.map +1 -1
  89. package/dist/components/kbd.d.ts +0 -2
  90. package/dist/components/kbd.js.map +1 -1
  91. package/dist/components/label.d.ts +1 -3
  92. package/dist/components/label.js.map +1 -1
  93. package/dist/components/list.d.ts +1 -3
  94. package/dist/components/list.js.map +1 -1
  95. package/dist/components/logo.d.ts +0 -2
  96. package/dist/components/marker.d.ts +1 -3
  97. package/dist/components/marker.js.map +1 -1
  98. package/dist/components/mask-input.d.ts +0 -2
  99. package/dist/components/mask-input.js.map +1 -1
  100. package/dist/components/native-select.d.ts +0 -2
  101. package/dist/components/native-select.js.map +1 -1
  102. package/dist/components/navigation-menu.d.ts +1 -3
  103. package/dist/components/navigation-menu.js.map +1 -1
  104. package/dist/components/number-field.d.ts +1 -3
  105. package/dist/components/number-field.js.map +1 -1
  106. package/dist/components/pagination.d.ts +0 -2
  107. package/dist/components/pagination.js.map +1 -1
  108. package/dist/components/phone-input.d.ts +0 -2
  109. package/dist/components/phone-input.js.map +1 -1
  110. package/dist/components/pie-chart.d.ts +1 -3
  111. package/dist/components/pie-chart.js.map +1 -1
  112. package/dist/components/popover.d.ts +1 -3
  113. package/dist/components/popover.js.map +1 -1
  114. package/dist/components/progress.d.ts +0 -2
  115. package/dist/components/progress.js.map +1 -1
  116. package/dist/components/radio-group.d.ts +0 -2
  117. package/dist/components/radio-group.js.map +1 -1
  118. package/dist/components/resizable.d.ts +0 -2
  119. package/dist/components/resizable.js.map +1 -1
  120. package/dist/components/ring-progress.d.ts +0 -2
  121. package/dist/components/ring-progress.js.map +1 -1
  122. package/dist/components/scroll-area.d.ts +0 -2
  123. package/dist/components/scroll-area.js.map +1 -1
  124. package/dist/components/select.d.ts +1 -3
  125. package/dist/components/select.js.map +1 -1
  126. package/dist/components/separator.d.ts +1 -3
  127. package/dist/components/separator.js.map +1 -1
  128. package/dist/components/sidebar.d.ts +1 -3
  129. package/dist/components/sidebar.js.map +1 -1
  130. package/dist/components/simple-grid.d.ts +0 -2
  131. package/dist/components/simple-grid.js.map +1 -1
  132. package/dist/components/skeleton.d.ts +0 -2
  133. package/dist/components/skeleton.js.map +1 -1
  134. package/dist/components/slider.d.ts +0 -2
  135. package/dist/components/slider.js.map +1 -1
  136. package/dist/components/sonner.d.ts +0 -2
  137. package/dist/components/sonner.js.map +1 -1
  138. package/dist/components/spinner.d.ts +0 -2
  139. package/dist/components/spinner.js.map +1 -1
  140. package/dist/components/stack.d.ts +0 -2
  141. package/dist/components/stack.js.map +1 -1
  142. package/dist/components/stepper.d.ts +1 -3
  143. package/dist/components/stepper.js.map +1 -1
  144. package/dist/components/switch.d.ts +0 -2
  145. package/dist/components/switch.js.map +1 -1
  146. package/dist/components/table.d.ts +0 -2
  147. package/dist/components/table.js.map +1 -1
  148. package/dist/components/tabs.d.ts +1 -3
  149. package/dist/components/tabs.js.map +1 -1
  150. package/dist/components/text.d.ts +1 -3
  151. package/dist/components/text.js.map +1 -1
  152. package/dist/components/textarea.d.ts +0 -2
  153. package/dist/components/textarea.js.map +1 -1
  154. package/dist/components/theme.d.ts +0 -2
  155. package/dist/components/theme.js.map +1 -1
  156. package/dist/components/timeline.d.ts +0 -2
  157. package/dist/components/timeline.js.map +1 -1
  158. package/dist/components/toggle-group.d.ts +1 -3
  159. package/dist/components/toggle-group.js.map +1 -1
  160. package/dist/components/toggle.d.ts +1 -3
  161. package/dist/components/toggle.js.map +1 -1
  162. package/dist/components/tooltip.d.ts +1 -3
  163. package/dist/components/tooltip.js.map +1 -1
  164. package/dist/components/unstyled-button.d.ts +1 -3
  165. package/dist/components/unstyled-button.js.map +1 -1
  166. package/dist/components/visibility.d.ts +0 -2
  167. package/dist/components/visibility.js.map +1 -1
  168. package/dist/hooks/use-breakpoint-value.d.ts +0 -2
  169. package/dist/hooks/use-breakpoint-value.js.map +1 -1
  170. package/dist/hooks/use-breakpoint.d.ts +0 -2
  171. package/dist/hooks/use-breakpoint.js.map +1 -1
  172. package/dist/hooks/use-disclosure.d.ts +0 -2
  173. package/dist/hooks/use-disclosure.js.map +1 -1
  174. package/dist/hooks/use-document-visibility.d.ts +0 -2
  175. package/dist/hooks/use-document-visibility.js.map +1 -1
  176. package/dist/hooks/use-hotkeys.d.ts +1 -1
  177. package/dist/hooks/use-idle.d.ts +0 -2
  178. package/dist/hooks/use-idle.js.map +1 -1
  179. package/dist/hooks/use-interval.d.ts +0 -2
  180. package/dist/hooks/use-interval.js.map +1 -1
  181. package/dist/hooks/use-local-storage.d.ts +0 -2
  182. package/dist/hooks/use-local-storage.js.map +1 -1
  183. package/dist/hooks/use-mask.d.ts +0 -2
  184. package/dist/hooks/use-mask.js.map +1 -1
  185. package/dist/hooks/use-mobile.d.ts +0 -2
  186. package/dist/hooks/use-mobile.js.map +1 -1
  187. package/dist/index.d.ts +3 -3
  188. package/dist/lib/as-child.d.ts +1 -1
  189. package/dist/lib/as-child.js.map +1 -1
  190. package/dist/lib/badge.d.ts +0 -2
  191. package/dist/lib/badge.js.map +1 -1
  192. package/dist/lib/button.d.ts +0 -2
  193. package/dist/lib/button.js.map +1 -1
  194. package/dist/lib/color.d.ts +0 -2
  195. package/dist/lib/color.js.map +1 -1
  196. package/dist/lib/compose-refs.d.ts +0 -2
  197. package/dist/lib/compose-refs.js.map +1 -1
  198. package/dist/lib/progress.d.ts +0 -2
  199. package/dist/lib/progress.js.map +1 -1
  200. package/dist/lib/utils.d.ts +0 -2
  201. package/dist/lib/utils.js.map +1 -1
  202. package/dist/logo--R3_XDgA.js.map +1 -1
  203. package/dist/postcss.config.js.map +1 -1
  204. package/dist/resolve-class-name-BurP8ngI.js.map +1 -1
  205. package/dist/skills/uselets-ui/references/component-catalog.md +3 -3
  206. package/dist/{use-hotkeys-D1_TEIwN.d.ts → use-hotkeys-BVm0IGb8.d.ts} +1 -5
  207. package/dist/use-hotkeys-YDJmGWX6.js.map +1 -1
  208. package/package.json +9 -9
  209. package/skills/uselets-ui/references/component-catalog.md +3 -3
@@ -1,10 +1,9 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { t as AsChildPrimitiveProps } from "../as-child-Dxg3Xo1G.js";
2
+ import { t as AsChildPrimitiveProps } from "../as-child-T9W73ZYU.js";
3
3
  import * as React from "react";
4
4
  import { ReactNode } from "react";
5
5
  import { VariantProps } from "class-variance-authority";
6
6
  import { NumberField as NumberField$1 } from "@base-ui/react/number-field";
7
- //#region src/components/number-field.d.ts
8
7
  declare const numberFieldGroupVariants: (props?: ({
9
8
  size?: "lg" | "md" | "sm" | null | undefined;
10
9
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -35,6 +34,5 @@ export type NumberFieldScrubAreaProps = Omit<React.ComponentProps<typeof NumberF
35
34
  label: string;
36
35
  };
37
36
  declare function NumberFieldScrubArea({ className, label, ...props }: NumberFieldScrubAreaProps): React.JSX.Element;
38
- //#endregion
39
37
  export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea };
40
38
  //# sourceMappingURL=number-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-field.js","names":["NumberFieldPrimitive","resolveClassName","NumberField$1","NumberFieldContext","createContext","numberFieldGroupVariants","cva","numberFieldButtonVariants","numberFieldInputVariants","ariaInvalid","props","generatedId","useId","fieldControlId","useFieldControlId","id","invalid","useFieldInvalid","fieldId","sizeValue","size","cn","className","state","sizeProp","context","useContext","toAsChildRenderProps","asChild","children","IconMinus","IconPlus","Label","label"],"sources":["../../src/components/number-field.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { NumberField as NumberFieldPrimitive } from '@base-ui/react/number-field'\nimport { IconMinus, IconPlus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { Label } from './label'\n\nconst NumberFieldContext = createContext<{\n fieldId: string\n size: 'sm' | 'md' | 'lg'\n invalid: React.AriaAttributes['aria-invalid']\n} | null>(null)\n\nconst numberFieldGroupVariants = cva(\n [\n 'relative flex w-full justify-between rounded-lg border border-input bg-transparent transition-colors dark:bg-input/30',\n 'data-disabled:pointer-events-none data-disabled:opacity-50',\n 'focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50',\n 'has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40'\n ],\n {\n variants: {\n size: {\n sm: 'h-7 text-sm',\n md: 'h-8 text-sm',\n lg: 'h-9 text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst numberFieldButtonVariants = cva(\n 'relative flex shrink-0 cursor-pointer items-center justify-center transition-colors pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 pointer-coarse:after:min-w-11 hover:bg-accent',\n {\n variants: {\n size: {\n sm: \"px-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"px-2 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-2.5 [&_svg:not([class*='size-'])]:size-4\"\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst numberFieldInputVariants = cva('w-full min-w-0 flex-1 bg-transparent text-center tabular-nums outline-none', {\n variants: {\n size: {\n sm: 'px-2 py-0.5',\n md: 'px-2.5 py-1',\n lg: 'px-2.5 py-1.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nexport type NumberFieldProps = Omit<NumberFieldPrimitive.Root.Props, 'render'> &\n VariantProps<typeof numberFieldGroupVariants>\n\nfunction NumberField({ id, className, size = 'md', 'aria-invalid': ariaInvalid, ...props }: NumberFieldProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n const fieldId = fieldControlId ?? generatedId\n const sizeValue = size ?? 'md'\n\n return (\n <NumberFieldContext.Provider value={{ fieldId, size: sizeValue, invalid }}>\n <NumberFieldPrimitive.Root\n className={(state) => cn('flex w-full flex-col items-start gap-2', resolveClassName(className, state))}\n data-size={sizeValue}\n data-slot=\"number-field\"\n {...props}\n />\n </NumberFieldContext.Provider>\n )\n}\n\nexport type NumberFieldGroupProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Group> &\n Partial<VariantProps<typeof numberFieldGroupVariants>>\n\nfunction NumberFieldGroup({ className, size: sizeProp, asChild, children, ...props }: NumberFieldGroupProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldGroup must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n\n return (\n <NumberFieldPrimitive.Group\n className={(state) => cn(numberFieldGroupVariants({ size }), resolveClassName(className, state))}\n data-slot=\"number-field-group\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport type NumberFieldDecrementProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Decrement> &\n Partial<VariantProps<typeof numberFieldButtonVariants>> & {\n /** Replaces the default minus icon. */\n children?: React.ReactNode\n }\n\nfunction NumberFieldDecrement({ className, size: sizeProp, children, asChild, ...props }: NumberFieldDecrementProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldDecrement must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n return (\n <NumberFieldPrimitive.Decrement\n className={(state) =>\n cn(numberFieldButtonVariants({ size }), 'rounded-s-lg border-e-0', resolveClassName(className, state))\n }\n data-slot=\"number-field-decrement\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && (children ?? <IconMinus />)}\n </NumberFieldPrimitive.Decrement>\n )\n}\n\nexport type NumberFieldIncrementProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Increment> &\n Partial<VariantProps<typeof numberFieldButtonVariants>> & {\n /** Replaces the default plus icon. */\n children?: ReactNode\n }\n\nfunction NumberFieldIncrement({ className, size: sizeProp, children, asChild, ...props }: NumberFieldIncrementProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldIncrement must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n return (\n <NumberFieldPrimitive.Increment\n className={(state) =>\n cn(numberFieldButtonVariants({ size }), 'rounded-e-lg border-s-0', resolveClassName(className, state))\n }\n data-slot=\"number-field-increment\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && (children ?? <IconPlus />)}\n </NumberFieldPrimitive.Increment>\n )\n}\n\nexport type NumberFieldInputProps = Omit<NumberFieldPrimitive.Input.Props, 'render'> &\n Partial<VariantProps<typeof numberFieldInputVariants>>\n\nfunction NumberFieldInput({ id, className, size: sizeProp, ...props }: NumberFieldInputProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldInput must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n\n return (\n <NumberFieldPrimitive.Input\n id={id ?? context.fieldId}\n aria-invalid={context.invalid}\n className={(state) => cn(numberFieldInputVariants({ size }), resolveClassName(className, state))}\n data-slot=\"number-field-input\"\n {...props}\n />\n )\n}\n\nexport type NumberFieldScrubAreaProps = Omit<React.ComponentProps<typeof NumberFieldPrimitive.ScrubArea>, 'render'> & {\n /** Visible label; dragging it changes the value. */\n label: string\n}\n\nfunction NumberFieldScrubArea({ className, label, ...props }: NumberFieldScrubAreaProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldScrubArea must be used within a NumberField component for accessibility.')\n }\n\n return (\n <NumberFieldPrimitive.ScrubArea\n className={(state) => cn('flex cursor-ew-resize', resolveClassName(className, state))}\n data-slot=\"number-field-scrub-area\"\n {...props}\n >\n <Label className=\"cursor-ew-resize\" htmlFor={context.fieldId}>\n {label}\n </Label>\n <NumberFieldPrimitive.ScrubAreaCursor className=\"drop-shadow-[0_1px_1px_#0008] filter\">\n <CursorGrowIcon />\n </NumberFieldPrimitive.ScrubAreaCursor>\n </NumberFieldPrimitive.ScrubArea>\n )\n}\n\nfunction CursorGrowIcon(props: React.ComponentProps<'svg'>) {\n return (\n <svg\n aria-hidden=\"true\"\n fill=\"black\"\n height=\"14\"\n stroke=\"white\"\n viewBox=\"0 0 24 14\"\n width=\"26\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z\" />\n </svg>\n )\n}\n\nexport {\n NumberField,\n NumberFieldDecrement,\n NumberFieldGroup,\n NumberFieldIncrement,\n NumberFieldInput,\n NumberFieldScrubArea\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"number-field.js","names":["NumberFieldPrimitive","resolveClassName","NumberField$1","NumberFieldContext","createContext","numberFieldGroupVariants","cva","numberFieldButtonVariants","numberFieldInputVariants","ariaInvalid","props","generatedId","useId","fieldControlId","useFieldControlId","id","invalid","useFieldInvalid","fieldId","sizeValue","size","cn","className","state","sizeProp","context","useContext","toAsChildRenderProps","asChild","children","IconMinus","IconPlus","Label","label"],"sources":["../../src/components/number-field.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { NumberField as NumberFieldPrimitive } from '@base-ui/react/number-field'\nimport { IconMinus, IconPlus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { Label } from './label'\n\nconst NumberFieldContext = createContext<{\n fieldId: string\n size: 'sm' | 'md' | 'lg'\n invalid: React.AriaAttributes['aria-invalid']\n} | null>(null)\n\nconst numberFieldGroupVariants = cva(\n [\n 'relative flex w-full justify-between rounded-lg border border-input bg-transparent transition-colors dark:bg-input/30',\n 'data-disabled:pointer-events-none data-disabled:opacity-50',\n 'focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50',\n 'has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40'\n ],\n {\n variants: {\n size: {\n sm: 'h-7 text-sm',\n md: 'h-8 text-sm',\n lg: 'h-9 text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst numberFieldButtonVariants = cva(\n 'relative flex shrink-0 cursor-pointer items-center justify-center transition-colors pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 pointer-coarse:after:min-w-11 hover:bg-accent',\n {\n variants: {\n size: {\n sm: \"px-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"px-2 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-2.5 [&_svg:not([class*='size-'])]:size-4\"\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst numberFieldInputVariants = cva('w-full min-w-0 flex-1 bg-transparent text-center tabular-nums outline-none', {\n variants: {\n size: {\n sm: 'px-2 py-0.5',\n md: 'px-2.5 py-1',\n lg: 'px-2.5 py-1.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nexport type NumberFieldProps = Omit<NumberFieldPrimitive.Root.Props, 'render'> &\n VariantProps<typeof numberFieldGroupVariants>\n\nfunction NumberField({ id, className, size = 'md', 'aria-invalid': ariaInvalid, ...props }: NumberFieldProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n const fieldId = fieldControlId ?? generatedId\n const sizeValue = size ?? 'md'\n\n return (\n <NumberFieldContext.Provider value={{ fieldId, size: sizeValue, invalid }}>\n <NumberFieldPrimitive.Root\n className={(state) => cn('flex w-full flex-col items-start gap-2', resolveClassName(className, state))}\n data-size={sizeValue}\n data-slot=\"number-field\"\n {...props}\n />\n </NumberFieldContext.Provider>\n )\n}\n\nexport type NumberFieldGroupProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Group> &\n Partial<VariantProps<typeof numberFieldGroupVariants>>\n\nfunction NumberFieldGroup({ className, size: sizeProp, asChild, children, ...props }: NumberFieldGroupProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldGroup must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n\n return (\n <NumberFieldPrimitive.Group\n className={(state) => cn(numberFieldGroupVariants({ size }), resolveClassName(className, state))}\n data-slot=\"number-field-group\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport type NumberFieldDecrementProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Decrement> &\n Partial<VariantProps<typeof numberFieldButtonVariants>> & {\n /** Replaces the default minus icon. */\n children?: React.ReactNode\n }\n\nfunction NumberFieldDecrement({ className, size: sizeProp, children, asChild, ...props }: NumberFieldDecrementProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldDecrement must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n return (\n <NumberFieldPrimitive.Decrement\n className={(state) =>\n cn(numberFieldButtonVariants({ size }), 'rounded-s-lg border-e-0', resolveClassName(className, state))\n }\n data-slot=\"number-field-decrement\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && (children ?? <IconMinus />)}\n </NumberFieldPrimitive.Decrement>\n )\n}\n\nexport type NumberFieldIncrementProps = AsChildPrimitiveProps<typeof NumberFieldPrimitive.Increment> &\n Partial<VariantProps<typeof numberFieldButtonVariants>> & {\n /** Replaces the default plus icon. */\n children?: ReactNode\n }\n\nfunction NumberFieldIncrement({ className, size: sizeProp, children, asChild, ...props }: NumberFieldIncrementProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldIncrement must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n return (\n <NumberFieldPrimitive.Increment\n className={(state) =>\n cn(numberFieldButtonVariants({ size }), 'rounded-e-lg border-s-0', resolveClassName(className, state))\n }\n data-slot=\"number-field-increment\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && (children ?? <IconPlus />)}\n </NumberFieldPrimitive.Increment>\n )\n}\n\nexport type NumberFieldInputProps = Omit<NumberFieldPrimitive.Input.Props, 'render'> &\n Partial<VariantProps<typeof numberFieldInputVariants>>\n\nfunction NumberFieldInput({ id, className, size: sizeProp, ...props }: NumberFieldInputProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldInput must be used within a NumberField component.')\n }\n const size = sizeProp ?? context.size\n\n return (\n <NumberFieldPrimitive.Input\n id={id ?? context.fieldId}\n aria-invalid={context.invalid}\n className={(state) => cn(numberFieldInputVariants({ size }), resolveClassName(className, state))}\n data-slot=\"number-field-input\"\n {...props}\n />\n )\n}\n\nexport type NumberFieldScrubAreaProps = Omit<React.ComponentProps<typeof NumberFieldPrimitive.ScrubArea>, 'render'> & {\n /** Visible label; dragging it changes the value. */\n label: string\n}\n\nfunction NumberFieldScrubArea({ className, label, ...props }: NumberFieldScrubAreaProps) {\n const context = useContext(NumberFieldContext)\n if (!context) {\n throw new Error('NumberFieldScrubArea must be used within a NumberField component for accessibility.')\n }\n\n return (\n <NumberFieldPrimitive.ScrubArea\n className={(state) => cn('flex cursor-ew-resize', resolveClassName(className, state))}\n data-slot=\"number-field-scrub-area\"\n {...props}\n >\n <Label className=\"cursor-ew-resize\" htmlFor={context.fieldId}>\n {label}\n </Label>\n <NumberFieldPrimitive.ScrubAreaCursor className=\"drop-shadow-[0_1px_1px_#0008] filter\">\n <CursorGrowIcon />\n </NumberFieldPrimitive.ScrubAreaCursor>\n </NumberFieldPrimitive.ScrubArea>\n )\n}\n\nfunction CursorGrowIcon(props: React.ComponentProps<'svg'>) {\n return (\n <svg\n aria-hidden=\"true\"\n fill=\"black\"\n height=\"14\"\n stroke=\"white\"\n viewBox=\"0 0 24 14\"\n width=\"26\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z\" />\n </svg>\n )\n}\n\nexport {\n NumberField,\n NumberFieldDecrement,\n NumberFieldGroup,\n NumberFieldIncrement,\n NumberFieldInput,\n NumberFieldScrubArea\n}\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import { Button } from "./button.js";
3
3
  import * as React from "react";
4
- //#region src/components/pagination.d.ts
5
4
  export type PaginationProps = React.ComponentProps<'nav'> & Pick<React.ComponentProps<typeof Button>, 'color'>;
6
5
  export type PaginationContentProps = React.ComponentProps<'ul'>;
7
6
  export type PaginationItemProps = React.ComponentProps<'li'>;
@@ -31,6 +30,5 @@ declare function PaginationLink({ className, isActive, size, color, ...props }:
31
30
  declare function PaginationPrevious({ className, text, ...props }: PaginationPreviousProps): React.JSX.Element;
32
31
  declare function PaginationNext({ className, text, ...props }: PaginationNextProps): React.JSX.Element;
33
32
  declare function PaginationEllipsis({ className, ...props }: PaginationEllipsisProps): React.JSX.Element;
34
- //#endregion
35
33
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
36
34
  //# sourceMappingURL=pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","names":["React","PaginationContext","props","color","cn","className","context","Button","isActive","text","IconChevronLeft","IconChevronRight","IconDots"],"sources":["../../src/components/pagination.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconChevronLeft, IconChevronRight, IconDots } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\n\nconst PaginationContext = React.createContext<Pick<React.ComponentProps<typeof Button>, 'color'>>({})\n\nexport type PaginationProps = React.ComponentProps<'nav'> & Pick<React.ComponentProps<typeof Button>, 'color'>\n\nexport type PaginationContentProps = React.ComponentProps<'ul'>\n\nexport type PaginationItemProps = React.ComponentProps<'li'>\n\nexport type PaginationLinkProps = {\n /** Marks the link as the current page. */\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, 'size' | 'color'> &\n React.ComponentProps<'a'>\n\nexport type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink> & {\n /**\n * Label next to the arrow, shown from `sm` up.\n * @default ''\n */\n text?: string\n}\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink> & {\n /**\n * Label next to the arrow, shown from `sm` up.\n * @default ''\n */\n text?: string\n}\n\nexport type PaginationEllipsisProps = React.ComponentProps<'span'>\n\nfunction Pagination({ className, color, children, ...props }: PaginationProps) {\n return (\n <PaginationContext.Provider value={{ color }}>\n <nav\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n data-color={color}\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n >\n {children}\n </nav>\n </PaginationContext.Provider>\n )\n}\n\nfunction PaginationContent({ className, ...props }: PaginationContentProps) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />\n}\n\nfunction PaginationItem({ ...props }: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\nfunction PaginationLink({ className, isActive, size = 'icon', color, ...props }: PaginationLinkProps) {\n const context = React.useContext(PaginationContext)\n\n return (\n <Button\n asChild\n variant={isActive ? 'solid' : 'secondary'}\n color={color ?? context.color ?? 'primary'}\n size={size}\n className={cn(className)}\n >\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n </Button>\n )\n}\n\nfunction PaginationPrevious({ className, text = '', ...props }: PaginationPreviousProps) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size={text ? 'md' : 'icon'}\n className={cn(text && 'pl-1.5!', className)}\n {...props}\n >\n <IconChevronLeft data-icon=\"inline-start\" />\n {text && <span className=\"hidden sm:block\">{text}</span>}\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({ className, text = '', ...props }: PaginationNextProps) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size={text ? 'md' : 'icon'}\n className={cn(text && 'pr-1.5!', className)}\n {...props}\n >\n {text && <span className=\"hidden sm:block\">{text}</span>}\n <IconChevronRight data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({ className, ...props }: PaginationEllipsisProps) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n <IconDots />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n}\n"],"mappings":"sRAOA,MAAMC,EAAoBD,EAAM,cAAkE,CAAC,CAAC,EAgCpG,SAAS,WAAW,CAAE,YAAW,QAAO,WAAU,GAAGE,GAA0B,CAC7E,MACE,kBAACD,EAAkB,SAAnB,CAA4B,MAAO,CAAE,OAAM,EACzC,SAAA,kBAAC,MAAD,CACE,aAAW,aACX,YAAU,aACV,aAAYE,EACZ,UAAWC,EAAG,qCAAsCC,CAAS,EAC7D,GAAIH,EAEH,UACE,CAAA,CACqB,CAAA,CAEhC,CAEA,SAAS,kBAAkB,CAAE,YAAW,GAAGA,GAAiC,CAC1E,MAAO,kBAAC,KAAD,CAAI,YAAU,qBAAqB,UAAWE,EAAG,4BAA6BC,CAAS,EAAG,GAAIH,CAAQ,CAAA,CAC/G,CAEA,SAAS,eAAe,CAAE,GAAGA,GAA8B,CACzD,MAAO,kBAAC,KAAD,CAAI,YAAU,kBAAkB,GAAIA,CAAQ,CAAA,CACrD,CAEA,SAAS,eAAe,CAAE,YAAW,WAAU,OAAO,OAAQ,QAAO,GAAGA,GAA8B,CACpG,IAAMI,EAAUN,EAAM,WAAWC,CAAiB,EAElD,MACE,kBAACM,EAAD,CACE,QAAA,GACA,QAASC,EAAW,QAAU,YAC9B,MAAOL,GAASG,EAAQ,OAAS,UAC3B,OACN,UAAWF,EAAGC,CAAS,EAEvB,SAAA,kBAAC,IAAD,CAAG,eAAcG,EAAW,OAAS,IAAA,GAAW,YAAU,kBAAkB,cAAaA,EAAU,GAAIN,CAAQ,CAAA,CACzG,CAAA,CAEZ,CAEA,SAAS,mBAAmB,CAAE,YAAW,OAAO,GAAI,GAAGA,GAAkC,CACvF,MACE,kBAAC,eAAD,CACE,aAAW,sBACX,KAAMO,EAAO,KAAO,OACpB,UAAWL,EAAGK,GAAQ,UAAWJ,CAAS,EAC1C,GAAIH,EAJN,SAAA,CAME,kBAACQ,EAAD,CAAiB,YAAU,cAAgB,CAAA,EAC1CD,GAAQ,kBAAC,OAAD,CAAM,UAAU,kBAAmB,SAAAA,CAAW,CAAA,CACzC,GAEpB,CAEA,SAAS,eAAe,CAAE,YAAW,OAAO,GAAI,GAAGP,GAA8B,CAC/E,MACE,kBAAC,eAAD,CACE,aAAW,kBACX,KAAMO,EAAO,KAAO,OACpB,UAAWL,EAAGK,GAAQ,UAAWJ,CAAS,EAC1C,GAAIH,EAJN,SAAA,CAMGO,GAAQ,kBAAC,OAAD,CAAM,UAAU,kBAAmB,SAAAA,CAAW,CAAA,EACvD,kBAACE,EAAD,CAAkB,YAAU,YAAc,CAAA,CAC5B,GAEpB,CAEA,SAAS,mBAAmB,CAAE,YAAW,GAAGT,GAAkC,CAC5E,MACE,kBAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAWE,EAAG,+EAAgFC,CAAS,EACvG,GAAIH,EAJN,SAAA,CAME,kBAACU,EAAD,CAAW,CAAA,EACX,kBAAC,OAAD,CAAM,UAAU,UAAU,SAAA,YAAgB,CAAA,CACtC,GAEV"}
1
+ {"version":3,"file":"pagination.js","names":["React","PaginationContext","props","color","cn","className","context","Button","isActive","text","IconChevronLeft","IconChevronRight","IconDots"],"sources":["../../src/components/pagination.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconChevronLeft, IconChevronRight, IconDots } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\n\nconst PaginationContext = React.createContext<Pick<React.ComponentProps<typeof Button>, 'color'>>({})\n\nexport type PaginationProps = React.ComponentProps<'nav'> & Pick<React.ComponentProps<typeof Button>, 'color'>\n\nexport type PaginationContentProps = React.ComponentProps<'ul'>\n\nexport type PaginationItemProps = React.ComponentProps<'li'>\n\nexport type PaginationLinkProps = {\n /** Marks the link as the current page. */\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, 'size' | 'color'> &\n React.ComponentProps<'a'>\n\nexport type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink> & {\n /**\n * Label next to the arrow, shown from `sm` up.\n * @default ''\n */\n text?: string\n}\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink> & {\n /**\n * Label next to the arrow, shown from `sm` up.\n * @default ''\n */\n text?: string\n}\n\nexport type PaginationEllipsisProps = React.ComponentProps<'span'>\n\nfunction Pagination({ className, color, children, ...props }: PaginationProps) {\n return (\n <PaginationContext.Provider value={{ color }}>\n <nav\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n data-color={color}\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n >\n {children}\n </nav>\n </PaginationContext.Provider>\n )\n}\n\nfunction PaginationContent({ className, ...props }: PaginationContentProps) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />\n}\n\nfunction PaginationItem({ ...props }: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\nfunction PaginationLink({ className, isActive, size = 'icon', color, ...props }: PaginationLinkProps) {\n const context = React.useContext(PaginationContext)\n\n return (\n <Button\n asChild\n variant={isActive ? 'solid' : 'secondary'}\n color={color ?? context.color ?? 'primary'}\n size={size}\n className={cn(className)}\n >\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n </Button>\n )\n}\n\nfunction PaginationPrevious({ className, text = '', ...props }: PaginationPreviousProps) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size={text ? 'md' : 'icon'}\n className={cn(text && 'pl-1.5!', className)}\n {...props}\n >\n <IconChevronLeft data-icon=\"inline-start\" />\n {text && <span className=\"hidden sm:block\">{text}</span>}\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({ className, text = '', ...props }: PaginationNextProps) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size={text ? 'md' : 'icon'}\n className={cn(text && 'pr-1.5!', className)}\n {...props}\n >\n {text && <span className=\"hidden sm:block\">{text}</span>}\n <IconChevronRight data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({ className, ...props }: PaginationEllipsisProps) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n <IconDots />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n}\n"],"mappings":"A,sRAOA,MAAMC,EAAoBD,EAAM,cAAkE,CAAC,CAAC,EAgCpG,SAAS,WAAW,CAAE,YAAW,QAAO,WAAU,GAAGE,GAA0B,CAC7E,MACE,kBAACD,EAAkB,SAAnB,CAA4B,MAAO,CAAE,OAAM,EACzC,SAAA,kBAAC,MAAD,CACE,aAAW,aACX,YAAU,aACV,aAAYE,EACZ,UAAWC,EAAG,qCAAsCC,CAAS,EAC7D,GAAIH,EAEH,UACE,CAAA,CACqB,CAAA,CAEhC,CAEA,SAAS,kBAAkB,CAAE,YAAW,GAAGA,GAAiC,CAC1E,MAAO,kBAAC,KAAD,CAAI,YAAU,qBAAqB,UAAWE,EAAG,4BAA6BC,CAAS,EAAG,GAAIH,CAAQ,CAAA,CAC/G,CAEA,SAAS,eAAe,CAAE,GAAGA,GAA8B,CACzD,MAAO,kBAAC,KAAD,CAAI,YAAU,kBAAkB,GAAIA,CAAQ,CAAA,CACrD,CAEA,SAAS,eAAe,CAAE,YAAW,WAAU,OAAO,OAAQ,QAAO,GAAGA,GAA8B,CACpG,IAAMI,EAAUN,EAAM,WAAWC,CAAiB,EAElD,MACE,kBAACM,EAAD,CACE,QAAA,GACA,QAASC,EAAW,QAAU,YAC9B,MAAOL,GAASG,EAAQ,OAAS,UAC3B,OACN,UAAWF,EAAGC,CAAS,EAEvB,SAAA,kBAAC,IAAD,CAAG,eAAcG,EAAW,OAAS,IAAA,GAAW,YAAU,kBAAkB,cAAaA,EAAU,GAAIN,CAAQ,CAAA,CACzG,CAAA,CAEZ,CAEA,SAAS,mBAAmB,CAAE,YAAW,OAAO,GAAI,GAAGA,GAAkC,CACvF,MACE,kBAAC,eAAD,CACE,aAAW,sBACX,KAAMO,EAAO,KAAO,OACpB,UAAWL,EAAGK,GAAQ,UAAWJ,CAAS,EAC1C,GAAIH,EAJN,SAAA,CAME,kBAACQ,EAAD,CAAiB,YAAU,cAAgB,CAAA,EAC1CD,GAAQ,kBAAC,OAAD,CAAM,UAAU,kBAAmB,SAAAA,CAAW,CAAA,CACzC,C,EAEpB,CAEA,SAAS,eAAe,CAAE,YAAW,OAAO,GAAI,GAAGP,GAA8B,CAC/E,MACE,kBAAC,eAAD,CACE,aAAW,kBACX,KAAMO,EAAO,KAAO,OACpB,UAAWL,EAAGK,GAAQ,UAAWJ,CAAS,EAC1C,GAAIH,EAJN,SAAA,CAMGO,GAAQ,kBAAC,OAAD,CAAM,UAAU,kBAAmB,SAAAA,CAAW,CAAA,EACvD,kBAACE,EAAD,CAAkB,YAAU,YAAc,CAAA,CAC5B,C,EAEpB,CAEA,SAAS,mBAAmB,CAAE,YAAW,GAAGT,GAAkC,CAC5E,MACE,kBAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAWE,EAAG,+EAAgFC,CAAS,EACvG,GAAIH,EAJN,SAAA,CAME,kBAACU,EAAD,CAAW,CAAA,EACX,kBAAC,OAAD,CAAM,UAAU,UAAU,SAAA,YAAgB,CAAA,CACtC,C,EAEV,C"}
@@ -1,7 +1,6 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import { ComponentProps } from "react";
3
3
  import * as BasePhoneInput from "react-phone-number-input";
4
- //#region src/components/phone-input.d.ts
5
4
  export type PhoneInputProps = Omit<ComponentProps<'input'>, 'onChange' | 'value' | 'ref'> & Omit<BasePhoneInput.Props<typeof BasePhoneInput.default>, 'onChange' | 'popupClassName' | 'scrollAreaClassName'> & {
6
5
  /** Called with the number in E.164 format, or an empty string when the input is cleared. */
7
6
  onChange?: (value: BasePhoneInput.Value) => void;
@@ -14,6 +13,5 @@ export type PhoneInputValue = BasePhoneInput.Value;
14
13
  export type PhoneInputCountry = BasePhoneInput.Country;
15
14
  export type PhoneInputLabels = BasePhoneInput.Labels;
16
15
  declare function PhoneInput({ className, popupClassName, scrollAreaClassName, onChange, value, ...props }: PhoneInputProps): import("react").JSX.Element;
17
- //#endregion
18
16
  export { PhoneInput };
19
17
  //# sourceMappingURL=phone-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phone-input.js","names":["BasePhoneInput","flags","PhoneInputContext","createContext","props","invalid","useFieldInvalid","cn","className","value","onChange","Input","selectedCountry","countryList","useContext","searchValue","setSearchValue","useState","filteredCountries","useMemo","label","Combobox","country","ComboboxTrigger","Button","disabled","ComboboxValue","ComboboxContent","popupClassName","ComboboxInput","ComboboxSeparator","ComboboxEmpty","ComboboxList","ScrollArea","item","ComboboxItem","Flag","countryName","IconWorld"],"sources":["../../src/components/phone-input.tsx"],"sourcesContent":["import { type ComponentProps, createContext, useContext, useMemo, useState } from 'react'\nimport * as BasePhoneInput from 'react-phone-number-input'\nimport flags from 'react-phone-number-input/flags'\n\nimport { IconWorld } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport {\n Combobox,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue\n} from './combobox'\nimport { useFieldInvalid } from './field'\nimport { Input } from './input'\nimport { ScrollArea } from './scroll-area'\n\nconst PhoneInputContext = createContext<{\n popupClassName?: string\n scrollAreaClassName?: string\n}>({\n popupClassName: undefined,\n scrollAreaClassName: undefined\n})\n\nexport type PhoneInputProps = Omit<ComponentProps<'input'>, 'onChange' | 'value' | 'ref'> &\n Omit<BasePhoneInput.Props<typeof BasePhoneInput.default>, 'onChange' | 'popupClassName' | 'scrollAreaClassName'> & {\n /** Called with the number in E.164 format, or an empty string when the input is cleared. */\n onChange?: (value: BasePhoneInput.Value) => void\n /** Classes for the country list popup. */\n popupClassName?: string\n /** Classes for the scrollable area of the country list. */\n scrollAreaClassName?: string\n }\n\nexport type PhoneInputValue = BasePhoneInput.Value\nexport type PhoneInputCountry = BasePhoneInput.Country\nexport type PhoneInputLabels = BasePhoneInput.Labels\n\nfunction PhoneInput({ className, popupClassName, scrollAreaClassName, onChange, value, ...props }: PhoneInputProps) {\n const invalid = useFieldInvalid(props['aria-invalid'])\n\n return (\n <PhoneInputContext.Provider value={{ popupClassName, scrollAreaClassName }}>\n <BasePhoneInput.default\n className={cn(\n 'flex',\n invalid &&\n invalid !== 'false' &&\n '[&_*[data-slot=combobox-trigger]]:border-destructive [&_*[data-slot=combobox-trigger]]:ring-destructive/50',\n className\n )}\n flagComponent={FlagComponent}\n countrySelectComponent={CountrySelect}\n inputComponent={InputComponent}\n smartCaret={false}\n defaultCountry=\"BR\"\n value={value || undefined}\n onChange={(value) => onChange?.(value || ('' as BasePhoneInput.Value))}\n {...props}\n />\n </PhoneInputContext.Provider>\n )\n}\n\nfunction InputComponent({ className, ...props }: ComponentProps<typeof Input>) {\n return <Input className={cn('rounded-s-none focus:z-1', className)} {...props} />\n}\n\ntype CountryEntry = { label: string; value: BasePhoneInput.Country | undefined }\n\ntype CountrySelectProps = {\n disabled?: boolean\n value: BasePhoneInput.Country\n options: CountryEntry[]\n onChange: (country: BasePhoneInput.Country) => void\n}\n\nfunction CountrySelect({ disabled, value: selectedCountry, options: countryList, onChange }: CountrySelectProps) {\n const { popupClassName } = useContext(PhoneInputContext)\n const [searchValue, setSearchValue] = useState('')\n\n const filteredCountries = useMemo(() => {\n if (!searchValue) return countryList\n return countryList.filter(({ label }) => label.toLowerCase().includes(searchValue.toLowerCase()))\n }, [countryList, searchValue])\n\n return (\n <Combobox\n items={filteredCountries}\n value={selectedCountry || ''}\n onValueChange={(country: BasePhoneInput.Country | null) => {\n if (country) {\n onChange(country)\n }\n }}\n >\n <ComboboxTrigger asChild>\n <Button\n variant=\"outline\"\n color=\"zinc\"\n className={cn(\n 'flex h-8 items-center gap-1 rounded-s-lg rounded-e-none border-e-0 border-input px-2.5 py-0 leading-none dark:bg-input/30',\n 'hover:bg-transparent focus:z-10 data-pressed:bg-transparent',\n disabled && 'opacity-50'\n )}\n disabled={disabled}\n >\n <span className=\"sr-only\">\n <ComboboxValue />\n </span>\n <FlagComponent country={selectedCountry} countryName={selectedCountry} />\n </Button>\n </ComboboxTrigger>\n <ComboboxContent className={cn('w-xs *:data-[slot=input-group]:bg-transparent', popupClassName)}>\n <ComboboxInput\n placeholder=\"e.g. United States\"\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n showTrigger={false}\n className=\"border-input focus-visible:border-border rounded-none border-0 px-0 py-2.5 shadow-none ring-0! outline-none! focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n <ComboboxSeparator />\n <ComboboxEmpty className=\"px-4 py-2.5 text-sm\">Nenhum país encontrado.</ComboboxEmpty>\n <ComboboxList className=\"max-h-none overflow-visible\">\n <div className=\"relative flex max-h-full\">\n <div className=\"flex max-h-[min(calc(var(--available-height)-(--spacing(9))),24rem)] w-full scroll-pt-2 scroll-pb-2 flex-col overscroll-contain\">\n <ScrollArea className=\"size-full min-h-0 **:data-[slot=scroll-area-scrollbar]:m-0 **:data-[slot=scroll-area-viewport]:h-full **:data-[slot=scroll-area-viewport]:overscroll-contain\">\n {filteredCountries.map((item: CountryEntry) =>\n item.value ? (\n <ComboboxItem key={item.value} value={item.value} className=\"flex items-center gap-2\">\n <FlagComponent country={item.value} countryName={item.label} />\n <span className=\"flex-1 text-sm\">{item.label}</span>\n <span className=\"text-foreground/50 text-sm\">\n {`+${BasePhoneInput.getCountryCallingCode(item.value)}`}\n </span>\n </ComboboxItem>\n ) : null\n )}\n </ScrollArea>\n </div>\n </div>\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n )\n}\n\nfunction FlagComponent({ country, countryName }: BasePhoneInput.FlagProps) {\n const Flag = flags[country]\n\n return (\n <span className=\"flex h-4 w-4 items-center justify-center [&_svg:not([class*='size-'])]:size-full! [&_svg:not([class*='size-'])]:rounded-[5px]\">\n {Flag ? <Flag title={countryName} /> : <IconWorld className=\"size-4 opacity-60\" />}\n </span>\n )\n}\n\nexport { PhoneInput }\n"],"mappings":"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"}
1
+ {"version":3,"file":"phone-input.js","names":["BasePhoneInput","flags","PhoneInputContext","createContext","props","invalid","useFieldInvalid","cn","className","value","onChange","Input","selectedCountry","countryList","useContext","searchValue","setSearchValue","useState","filteredCountries","useMemo","label","Combobox","country","ComboboxTrigger","Button","disabled","ComboboxValue","ComboboxContent","popupClassName","ComboboxInput","ComboboxSeparator","ComboboxEmpty","ComboboxList","ScrollArea","item","ComboboxItem","Flag","countryName","IconWorld"],"sources":["../../src/components/phone-input.tsx"],"sourcesContent":["import { type ComponentProps, createContext, useContext, useMemo, useState } from 'react'\nimport * as BasePhoneInput from 'react-phone-number-input'\nimport flags from 'react-phone-number-input/flags'\n\nimport { IconWorld } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport {\n Combobox,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue\n} from './combobox'\nimport { useFieldInvalid } from './field'\nimport { Input } from './input'\nimport { ScrollArea } from './scroll-area'\n\nconst PhoneInputContext = createContext<{\n popupClassName?: string\n scrollAreaClassName?: string\n}>({\n popupClassName: undefined,\n scrollAreaClassName: undefined\n})\n\nexport type PhoneInputProps = Omit<ComponentProps<'input'>, 'onChange' | 'value' | 'ref'> &\n Omit<BasePhoneInput.Props<typeof BasePhoneInput.default>, 'onChange' | 'popupClassName' | 'scrollAreaClassName'> & {\n /** Called with the number in E.164 format, or an empty string when the input is cleared. */\n onChange?: (value: BasePhoneInput.Value) => void\n /** Classes for the country list popup. */\n popupClassName?: string\n /** Classes for the scrollable area of the country list. */\n scrollAreaClassName?: string\n }\n\nexport type PhoneInputValue = BasePhoneInput.Value\nexport type PhoneInputCountry = BasePhoneInput.Country\nexport type PhoneInputLabels = BasePhoneInput.Labels\n\nfunction PhoneInput({ className, popupClassName, scrollAreaClassName, onChange, value, ...props }: PhoneInputProps) {\n const invalid = useFieldInvalid(props['aria-invalid'])\n\n return (\n <PhoneInputContext.Provider value={{ popupClassName, scrollAreaClassName }}>\n <BasePhoneInput.default\n className={cn(\n 'flex',\n invalid &&\n invalid !== 'false' &&\n '[&_*[data-slot=combobox-trigger]]:border-destructive [&_*[data-slot=combobox-trigger]]:ring-destructive/50',\n className\n )}\n flagComponent={FlagComponent}\n countrySelectComponent={CountrySelect}\n inputComponent={InputComponent}\n smartCaret={false}\n defaultCountry=\"BR\"\n value={value || undefined}\n onChange={(value) => onChange?.(value || ('' as BasePhoneInput.Value))}\n {...props}\n />\n </PhoneInputContext.Provider>\n )\n}\n\nfunction InputComponent({ className, ...props }: ComponentProps<typeof Input>) {\n return <Input className={cn('rounded-s-none focus:z-1', className)} {...props} />\n}\n\ntype CountryEntry = { label: string; value: BasePhoneInput.Country | undefined }\n\ntype CountrySelectProps = {\n disabled?: boolean\n value: BasePhoneInput.Country\n options: CountryEntry[]\n onChange: (country: BasePhoneInput.Country) => void\n}\n\nfunction CountrySelect({ disabled, value: selectedCountry, options: countryList, onChange }: CountrySelectProps) {\n const { popupClassName } = useContext(PhoneInputContext)\n const [searchValue, setSearchValue] = useState('')\n\n const filteredCountries = useMemo(() => {\n if (!searchValue) return countryList\n return countryList.filter(({ label }) => label.toLowerCase().includes(searchValue.toLowerCase()))\n }, [countryList, searchValue])\n\n return (\n <Combobox\n items={filteredCountries}\n value={selectedCountry || ''}\n onValueChange={(country: BasePhoneInput.Country | null) => {\n if (country) {\n onChange(country)\n }\n }}\n >\n <ComboboxTrigger asChild>\n <Button\n variant=\"outline\"\n color=\"zinc\"\n className={cn(\n 'flex h-8 items-center gap-1 rounded-s-lg rounded-e-none border-e-0 border-input px-2.5 py-0 leading-none dark:bg-input/30',\n 'hover:bg-transparent focus:z-10 data-pressed:bg-transparent',\n disabled && 'opacity-50'\n )}\n disabled={disabled}\n >\n <span className=\"sr-only\">\n <ComboboxValue />\n </span>\n <FlagComponent country={selectedCountry} countryName={selectedCountry} />\n </Button>\n </ComboboxTrigger>\n <ComboboxContent className={cn('w-xs *:data-[slot=input-group]:bg-transparent', popupClassName)}>\n <ComboboxInput\n placeholder=\"e.g. United States\"\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n showTrigger={false}\n className=\"border-input focus-visible:border-border rounded-none border-0 px-0 py-2.5 shadow-none ring-0! outline-none! focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n <ComboboxSeparator />\n <ComboboxEmpty className=\"px-4 py-2.5 text-sm\">Nenhum país encontrado.</ComboboxEmpty>\n <ComboboxList className=\"max-h-none overflow-visible\">\n <div className=\"relative flex max-h-full\">\n <div className=\"flex max-h-[min(calc(var(--available-height)-(--spacing(9))),24rem)] w-full scroll-pt-2 scroll-pb-2 flex-col overscroll-contain\">\n <ScrollArea className=\"size-full min-h-0 **:data-[slot=scroll-area-scrollbar]:m-0 **:data-[slot=scroll-area-viewport]:h-full **:data-[slot=scroll-area-viewport]:overscroll-contain\">\n {filteredCountries.map((item: CountryEntry) =>\n item.value ? (\n <ComboboxItem key={item.value} value={item.value} className=\"flex items-center gap-2\">\n <FlagComponent country={item.value} countryName={item.label} />\n <span className=\"flex-1 text-sm\">{item.label}</span>\n <span className=\"text-foreground/50 text-sm\">\n {`+${BasePhoneInput.getCountryCallingCode(item.value)}`}\n </span>\n </ComboboxItem>\n ) : null\n )}\n </ScrollArea>\n </div>\n </div>\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n )\n}\n\nfunction FlagComponent({ country, countryName }: BasePhoneInput.FlagProps) {\n const Flag = flags[country]\n\n return (\n <span className=\"flex h-4 w-4 items-center justify-center [&_svg:not([class*='size-'])]:size-full! [&_svg:not([class*='size-'])]:rounded-[5px]\">\n {Flag ? <Flag title={countryName} /> : <IconWorld className=\"size-4 opacity-60\" />}\n </span>\n )\n}\n\nexport { PhoneInput }\n"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { c as ChartLegendContentProps, m as ChartTooltipContentProps, n as ChartColorKey, r as ChartConfig } from "../chart-B_6nC_ih.js";
2
+ import { c as ChartLegendContentProps, m as ChartTooltipContentProps, n as ChartColorKey, r as ChartConfig } from "../chart-8rgtsk95.js";
3
3
  import * as React from "react";
4
4
  import { Pie } from "recharts";
5
- //#region src/components/pie-chart.d.ts
6
5
  export type PieChartDatum = {
7
6
  /** Slice name, shown in the tooltip and legend. */
8
7
  name: string;
@@ -90,6 +89,5 @@ export type PieChartBaseProps = Omit<PieChartProps, 'children'> & {
90
89
  };
91
90
  declare function PieChartBase({ className, data, withTooltip, withLegend, withLabels, labelsPosition, startAngle, endAngle, paddingAngle, strokeWidth, strokeColor, innerRadius, outerRadius, animationDuration, tooltipProps, legendProps, pieProps, dataSlot, centerSlot, ...props }: PieChartBaseProps): React.JSX.Element;
92
91
  declare function PieChart(props: PieChartProps): React.JSX.Element;
93
- //#endregion
94
92
  export { PieChart, PieChartBase };
95
93
  //# sourceMappingURL=pie-chart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pie-chart.js","names":["RechartsPieChart","React","PieChart$1","data","item","resolveChartColor","DEFAULT_CHART_PALETTE","index","acc","props","config","resolvedStroke","strokeColor","styledData","ChartContainer","dataSlot","cn","className","withTooltip","Tooltip","ChartTooltipContent","tooltipProps","withLegend","Legend","ChartLegendContent","legendProps","Pie","withLabels","labelsPosition","animationDuration","pieProps","centerSlot"],"sources":["../../src/components/pie-chart.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Legend, Pie, PieChart as RechartsPieChart, Tooltip } from 'recharts'\n\nimport { cn } from '../lib/utils'\nimport {\n type ChartColorKey,\n type ChartConfig,\n ChartContainer,\n ChartLegendContent,\n type ChartLegendContentProps,\n ChartTooltipContent,\n type ChartTooltipContentProps,\n DEFAULT_CHART_PALETTE,\n resolveChartColor\n} from './chart'\n\nexport type PieChartDatum = {\n /** Slice name, shown in the tooltip and legend. */\n name: string\n /** Slice value. */\n value: number\n /** Any CSS color. Wins over `colorKey`. */\n color?: string\n /** Palette family, resolved to its semantic color `var(--{key})`. */\n colorKey?: ChartColorKey\n}\n\nexport type PieChartProps = Omit<React.ComponentProps<'div'>, 'children'> & {\n /** Slices to draw. */\n data: PieChartDatum[]\n /**\n * Shows a tooltip on hover.\n * @default true\n */\n withTooltip?: boolean\n /**\n * Shows the legend.\n * @default false\n */\n withLegend?: boolean\n /**\n * Shows the value of each slice.\n * @default false\n */\n withLabels?: boolean\n /**\n * Where the labels go.\n * @default 'outside'\n */\n labelsPosition?: 'inside' | 'outside'\n /**\n * Angle where the first slice starts.\n * @default 90\n */\n startAngle?: number\n /**\n * Angle where the last slice ends.\n * @default -270\n */\n endAngle?: number\n /**\n * Space between slices, in degrees.\n * @default 0\n */\n paddingAngle?: number\n /**\n * Width of the gap between slices.\n * @default 1\n */\n strokeWidth?: number\n /**\n * Color of the gap between slices (palette family or CSS color).\n * @default 'var(--background)'\n */\n strokeColor?: ChartColorKey | string\n /**\n * Inner radius; above `0` it becomes a ring.\n * @default 0\n */\n innerRadius?: number | string\n /**\n * Outer radius (px or %).\n * @default '80%'\n */\n outerRadius?: number | string\n /** Animation length in ms. */\n animationDuration?: number\n /** Props for the tooltip content. */\n tooltipProps?: ChartTooltipContentProps\n /** Props for the legend content. */\n legendProps?: ChartLegendContentProps\n /** Props for the Recharts `<Pie>`. */\n pieProps?: Partial<React.ComponentProps<typeof Pie>>\n children?: React.ReactNode\n}\n\nexport function buildPieConfig(data: PieChartDatum[]): ChartConfig {\n return data.reduce<ChartConfig>((acc, item, index) => {\n acc[item.name] = {\n label: item.name,\n color:\n item.color ?? resolveChartColor(item.colorKey) ?? DEFAULT_CHART_PALETTE[index % DEFAULT_CHART_PALETTE.length]\n }\n return acc\n }, {})\n}\n\nexport type PieChartBaseProps = Omit<PieChartProps, 'children'> & {\n dataSlot: string\n innerRadius?: number | string\n outerRadius?: number | string\n centerSlot?: React.ReactNode\n}\n\nfunction PieChartBase({\n className,\n data,\n withTooltip = true,\n withLegend = false,\n withLabels = false,\n labelsPosition = 'outside',\n startAngle = 90,\n endAngle = -270,\n paddingAngle = 0,\n strokeWidth = 1,\n strokeColor = 'var(--background)',\n innerRadius = 0,\n outerRadius = '80%',\n animationDuration,\n tooltipProps,\n legendProps,\n pieProps,\n dataSlot,\n centerSlot,\n ...props\n}: PieChartBaseProps) {\n const config = React.useMemo(() => buildPieConfig(data), [data])\n const resolvedStroke = resolveChartColor(strokeColor) ?? strokeColor\n const styledData = React.useMemo(\n () => data.map((item) => ({ ...item, fill: config[item.name]?.color, stroke: resolvedStroke })),\n [data, resolvedStroke, config]\n )\n\n return (\n <ChartContainer\n data-slot={dataSlot}\n className={cn('relative aspect-square w-full', className)}\n config={config}\n {...props}\n >\n <RechartsPieChart>\n {withTooltip && <Tooltip cursor={false} content={<ChartTooltipContent hideLabel {...tooltipProps} />} />}\n {withLegend && <Legend content={<ChartLegendContent nameKey=\"name\" {...legendProps} />} />}\n <Pie\n data={styledData}\n dataKey=\"value\"\n nameKey=\"name\"\n startAngle={startAngle}\n endAngle={endAngle}\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={paddingAngle}\n strokeWidth={strokeWidth}\n label={\n withLabels\n ? labelsPosition === 'inside'\n ? { position: 'inside', fontSize: 12, fontWeight: 500, fill: 'var(--background)' }\n : { fontSize: 12 }\n : undefined\n }\n labelLine={withLabels && labelsPosition === 'outside'}\n animationDuration={animationDuration}\n isAnimationActive={animationDuration !== 0}\n {...pieProps}\n >\n {centerSlot}\n </Pie>\n </RechartsPieChart>\n </ChartContainer>\n )\n}\n\nfunction PieChart(props: PieChartProps) {\n return <PieChartBase {...props} dataSlot=\"pie-chart\" />\n}\n\nexport { PieChart, PieChartBase }\n"],"mappings":"4WAiGA,SAAgB,eAAe,EAAoC,CACjE,OAAOG,EAAK,QAAqB,EAAK,EAAM,KAC1C,EAAIC,EAAK,MAAQ,CACf,MAAOA,EAAK,KACZ,MACEA,EAAK,OAASC,EAAkBD,EAAK,QAAQ,GAAKE,EAAsBC,EAAQD,EAAsB,OAC1G,EACOE,GACN,CAAC,CAAC,CACP,CASA,SAAS,aAAa,CACpB,YACA,OACA,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,UACjB,aAAa,GACb,WAAW,KACX,eAAe,EACf,cAAc,EACd,cAAc,oBACd,cAAc,EACd,cAAc,MACd,oBACA,eACA,cACA,WACA,WACA,aACA,GAAGC,GACiB,CACpB,IAAMC,EAAST,EAAM,YAAc,eAAeE,CAAI,EAAG,CAACA,CAAI,CAAC,EACzDQ,EAAiBN,EAAkBO,CAAW,GAAKA,EACnDC,EAAaZ,EAAM,YACjBE,EAAK,IAAK,IAAU,CAAE,GAAGC,EAAM,KAAMM,EAAON,EAAK,KAAK,EAAE,MAAO,OAAQO,CAAe,EAAE,EAC9F,CAACR,EAAMQ,EAAgBD,CAAM,CAC/B,EAEA,MACE,kBAACI,EAAD,CACE,YAAWC,EACX,UAAWC,EAAG,gCAAiCC,CAAS,EAChD,SACR,GAAIR,EAEJ,SAAA,kBAACT,EAAD,CAAA,SAAA,CACGkB,GAAe,kBAACC,EAAD,CAAS,OAAQ,GAAO,QAAS,kBAACC,EAAD,CAAqB,UAAA,GAAU,GAAIC,CAAe,CAAA,CAAI,CAAA,EACtGC,GAAc,kBAACC,EAAD,CAAQ,QAAS,kBAACC,EAAD,CAAoB,QAAQ,OAAO,GAAIC,CAAc,CAAA,CAAI,CAAA,EACzF,kBAACC,EAAD,CACE,KAAMb,EACN,QAAQ,QACR,QAAQ,OACI,aACF,WACG,cACA,cACC,eACD,cACb,MACEc,EACIC,IAAmB,SACjB,CAAE,SAAU,SAAU,SAAU,GAAI,WAAY,IAAK,KAAM,mBAAoB,EAC/E,CAAE,SAAU,EAAG,EACjB,IAAA,GAEN,UAAWD,GAAcC,IAAmB,UACzB,oBACnB,kBAAmBC,IAAsB,EACzC,GAAIC,EAEH,SAAAC,CACE,CAAA,CACW,CAAA,CAAA,CACJ,CAAA,CAEpB,CAEA,SAAS,SAAS,EAAsB,CACtC,MAAO,kBAAC,aAAD,CAAc,GAAItB,EAAO,SAAS,WAAa,CAAA,CACxD"}
1
+ {"version":3,"file":"pie-chart.js","names":["RechartsPieChart","React","PieChart$1","data","item","resolveChartColor","DEFAULT_CHART_PALETTE","index","acc","props","config","resolvedStroke","strokeColor","styledData","ChartContainer","dataSlot","cn","className","withTooltip","Tooltip","ChartTooltipContent","tooltipProps","withLegend","Legend","ChartLegendContent","legendProps","Pie","withLabels","labelsPosition","animationDuration","pieProps","centerSlot"],"sources":["../../src/components/pie-chart.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Legend, Pie, PieChart as RechartsPieChart, Tooltip } from 'recharts'\n\nimport { cn } from '../lib/utils'\nimport {\n type ChartColorKey,\n type ChartConfig,\n ChartContainer,\n ChartLegendContent,\n type ChartLegendContentProps,\n ChartTooltipContent,\n type ChartTooltipContentProps,\n DEFAULT_CHART_PALETTE,\n resolveChartColor\n} from './chart'\n\nexport type PieChartDatum = {\n /** Slice name, shown in the tooltip and legend. */\n name: string\n /** Slice value. */\n value: number\n /** Any CSS color. Wins over `colorKey`. */\n color?: string\n /** Palette family, resolved to its semantic color `var(--{key})`. */\n colorKey?: ChartColorKey\n}\n\nexport type PieChartProps = Omit<React.ComponentProps<'div'>, 'children'> & {\n /** Slices to draw. */\n data: PieChartDatum[]\n /**\n * Shows a tooltip on hover.\n * @default true\n */\n withTooltip?: boolean\n /**\n * Shows the legend.\n * @default false\n */\n withLegend?: boolean\n /**\n * Shows the value of each slice.\n * @default false\n */\n withLabels?: boolean\n /**\n * Where the labels go.\n * @default 'outside'\n */\n labelsPosition?: 'inside' | 'outside'\n /**\n * Angle where the first slice starts.\n * @default 90\n */\n startAngle?: number\n /**\n * Angle where the last slice ends.\n * @default -270\n */\n endAngle?: number\n /**\n * Space between slices, in degrees.\n * @default 0\n */\n paddingAngle?: number\n /**\n * Width of the gap between slices.\n * @default 1\n */\n strokeWidth?: number\n /**\n * Color of the gap between slices (palette family or CSS color).\n * @default 'var(--background)'\n */\n strokeColor?: ChartColorKey | string\n /**\n * Inner radius; above `0` it becomes a ring.\n * @default 0\n */\n innerRadius?: number | string\n /**\n * Outer radius (px or %).\n * @default '80%'\n */\n outerRadius?: number | string\n /** Animation length in ms. */\n animationDuration?: number\n /** Props for the tooltip content. */\n tooltipProps?: ChartTooltipContentProps\n /** Props for the legend content. */\n legendProps?: ChartLegendContentProps\n /** Props for the Recharts `<Pie>`. */\n pieProps?: Partial<React.ComponentProps<typeof Pie>>\n children?: React.ReactNode\n}\n\nexport function buildPieConfig(data: PieChartDatum[]): ChartConfig {\n return data.reduce<ChartConfig>((acc, item, index) => {\n acc[item.name] = {\n label: item.name,\n color:\n item.color ?? resolveChartColor(item.colorKey) ?? DEFAULT_CHART_PALETTE[index % DEFAULT_CHART_PALETTE.length]\n }\n return acc\n }, {})\n}\n\nexport type PieChartBaseProps = Omit<PieChartProps, 'children'> & {\n dataSlot: string\n innerRadius?: number | string\n outerRadius?: number | string\n centerSlot?: React.ReactNode\n}\n\nfunction PieChartBase({\n className,\n data,\n withTooltip = true,\n withLegend = false,\n withLabels = false,\n labelsPosition = 'outside',\n startAngle = 90,\n endAngle = -270,\n paddingAngle = 0,\n strokeWidth = 1,\n strokeColor = 'var(--background)',\n innerRadius = 0,\n outerRadius = '80%',\n animationDuration,\n tooltipProps,\n legendProps,\n pieProps,\n dataSlot,\n centerSlot,\n ...props\n}: PieChartBaseProps) {\n const config = React.useMemo(() => buildPieConfig(data), [data])\n const resolvedStroke = resolveChartColor(strokeColor) ?? strokeColor\n const styledData = React.useMemo(\n () => data.map((item) => ({ ...item, fill: config[item.name]?.color, stroke: resolvedStroke })),\n [data, resolvedStroke, config]\n )\n\n return (\n <ChartContainer\n data-slot={dataSlot}\n className={cn('relative aspect-square w-full', className)}\n config={config}\n {...props}\n >\n <RechartsPieChart>\n {withTooltip && <Tooltip cursor={false} content={<ChartTooltipContent hideLabel {...tooltipProps} />} />}\n {withLegend && <Legend content={<ChartLegendContent nameKey=\"name\" {...legendProps} />} />}\n <Pie\n data={styledData}\n dataKey=\"value\"\n nameKey=\"name\"\n startAngle={startAngle}\n endAngle={endAngle}\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={paddingAngle}\n strokeWidth={strokeWidth}\n label={\n withLabels\n ? labelsPosition === 'inside'\n ? { position: 'inside', fontSize: 12, fontWeight: 500, fill: 'var(--background)' }\n : { fontSize: 12 }\n : undefined\n }\n labelLine={withLabels && labelsPosition === 'outside'}\n animationDuration={animationDuration}\n isAnimationActive={animationDuration !== 0}\n {...pieProps}\n >\n {centerSlot}\n </Pie>\n </RechartsPieChart>\n </ChartContainer>\n )\n}\n\nfunction PieChart(props: PieChartProps) {\n return <PieChartBase {...props} dataSlot=\"pie-chart\" />\n}\n\nexport { PieChart, PieChartBase }\n"],"mappings":"A,4WAiGA,SAAgB,eAAe,EAAoC,CACjE,OAAOG,EAAK,QAAqB,EAAK,EAAM,KAC1C,EAAIC,EAAK,MAAQ,CACf,MAAOA,EAAK,KACZ,MACEA,EAAK,OAASC,EAAkBD,EAAK,QAAQ,GAAKE,EAAsBC,EAAQD,EAAsB,OAC1G,EACOE,GACN,CAAC,CAAC,CACP,CASA,SAAS,aAAa,CACpB,YACA,OACA,cAAc,GACd,aAAa,GACb,aAAa,GACb,iBAAiB,UACjB,aAAa,GACb,WAAW,KACX,eAAe,EACf,cAAc,EACd,cAAc,oBACd,cAAc,EACd,cAAc,MACd,oBACA,eACA,cACA,WACA,WACA,aACA,GAAGC,GACiB,CACpB,IAAMC,EAAST,EAAM,YAAc,eAAeE,CAAI,EAAG,CAACA,CAAI,CAAC,EACzDQ,EAAiBN,EAAkBO,CAAW,GAAKA,EACnDC,EAAaZ,EAAM,YACjBE,EAAK,IAAK,IAAU,CAAE,GAAGC,EAAM,KAAMM,EAAON,EAAK,KAAK,EAAE,MAAO,OAAQO,CAAe,EAAE,EAC9F,CAACR,EAAMQ,EAAgBD,CAAM,CAC/B,EAEA,MACE,kBAACI,EAAD,CACE,YAAWC,EACX,UAAWC,EAAG,gCAAiCC,CAAS,EAChD,SACR,GAAIR,EAEJ,SAAA,kBAACT,EAAD,CAAA,SAAA,CACGkB,GAAe,kBAACC,EAAD,CAAS,OAAQ,GAAO,QAAS,kBAACC,EAAD,CAAqB,UAAA,GAAU,GAAIC,CAAe,CAAA,CAAI,CAAA,EACtGC,GAAc,kBAACC,EAAD,CAAQ,QAAS,kBAACC,EAAD,CAAoB,QAAQ,OAAO,GAAIC,CAAc,CAAA,CAAI,CAAA,EACzF,kBAACC,EAAD,CACE,KAAMb,EACN,QAAQ,QACR,QAAQ,OACI,aACF,WACG,cACA,cACC,eACD,cACb,MACEc,EACIC,IAAmB,SACjB,CAAE,SAAU,SAAU,SAAU,GAAI,WAAY,IAAK,KAAM,mBAAoB,EAC/E,CAAE,SAAU,EAAG,EACjB,IAAA,GAEN,UAAWD,GAAcC,IAAmB,UACzB,oBACnB,kBAAmBC,IAAsB,EACzC,GAAIC,EAEH,SAAAC,CACE,CAAA,CACW,CAAA,CAAA,CACJ,CAAA,CAEpB,CAEA,SAAS,SAAS,EAAsB,CACtC,MAAO,kBAAC,aAAD,CAAc,GAAItB,EAAO,SAAS,WAAa,CAAA,CACxD,C"}
@@ -1,8 +1,7 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { t as AsChildPrimitiveProps } from "../as-child-Dxg3Xo1G.js";
2
+ import { t as AsChildPrimitiveProps } from "../as-child-T9W73ZYU.js";
3
3
  import * as React from "react";
4
4
  import { Popover as Popover$1 } from "@base-ui/react/popover";
5
- //#region src/components/popover.d.ts
6
5
  export type PopoverProps = React.ComponentProps<typeof Popover$1.Root>;
7
6
  export type PopoverTriggerProps = AsChildPrimitiveProps<typeof Popover$1.Trigger>;
8
7
  export type PopoverContentProps = AsChildPrimitiveProps<typeof Popover$1.Popup> & Pick<React.ComponentProps<typeof Popover$1.Positioner>, 'anchor' | 'side' | 'sideOffset' | 'align' | 'alignOffset' | 'sticky'> & Pick<React.ComponentProps<typeof Popover$1.Portal>, 'keepMounted'>;
@@ -17,6 +16,5 @@ declare function PopoverContent({ className, anchor, side, sideOffset, align, al
17
16
  declare function PopoverHeader({ className, ...props }: PopoverHeaderProps): React.JSX.Element;
18
17
  declare function PopoverTitle({ className, asChild, children, ...props }: PopoverTitleProps): React.JSX.Element;
19
18
  declare function PopoverDescription({ className, asChild, children, ...props }: PopoverDescriptionProps): React.JSX.Element;
20
- //#endregion
21
19
  export { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
22
20
  //# sourceMappingURL=popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","names":["PopoverPrimitive","resolveClassName","Popover$1","props","toAsChildRenderProps","asChild","children","cn","className","state"],"sources":["../../src/components/popover.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nexport type PopoverProps = React.ComponentProps<typeof PopoverPrimitive.Root>\n\nexport type PopoverTriggerProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Trigger>\n\nexport type PopoverContentProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Popup> &\n Pick<\n React.ComponentProps<typeof PopoverPrimitive.Positioner>,\n 'anchor' | 'side' | 'sideOffset' | 'align' | 'alignOffset' | 'sticky'\n > &\n Pick<React.ComponentProps<typeof PopoverPrimitive.Portal>, 'keepMounted'>\n\nexport type PopoverCloseProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Close>\n\nexport type PopoverHeaderProps = React.ComponentProps<'div'>\n\nexport type PopoverTitleProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Title>\n\nexport type PopoverDescriptionProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Description>\n\nfunction Popover({ ...props }: PopoverProps) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ asChild, children, ...props }: PopoverTriggerProps) {\n return (\n <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} {...toAsChildRenderProps(asChild, children)} />\n )\n}\n\nfunction PopoverClose({ asChild, children, ...props }: PopoverCloseProps) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} {...toAsChildRenderProps(asChild, children)} />\n}\n\nfunction PopoverContent({\n className,\n anchor,\n side = 'bottom',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n sticky,\n keepMounted,\n asChild,\n children,\n ...props\n}: PopoverContentProps) {\n return (\n <PopoverPrimitive.Portal keepMounted={keepMounted}>\n <PopoverPrimitive.Positioner\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n sticky={sticky}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={(state) =>\n cn(\n 'bg-popover text-popover-foreground ring-foreground/10 z-50 w-72 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 origin-(--transform-origin) flex flex-col gap-2.5 outline-hidden',\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: PopoverHeaderProps) {\n return <div data-slot=\"popover-header\" className={cn('flex flex-col gap-0.5 text-sm', className)} {...props} />\n}\n\nfunction PopoverTitle({ className, asChild, children, ...props }: PopoverTitleProps) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={(state) => cn('font-medium', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction PopoverDescription({ className, asChild, children, ...props }: PopoverDescriptionProps) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={(state) => cn('text-muted-foreground', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n"],"mappings":"sRA2BA,SAAS,QAAQ,CAAE,GAAGG,GAAuB,CAC3C,MAAO,kBAACH,EAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAIG,CAAQ,CAAA,CAChE,CAEA,SAAS,eAAe,CAAE,UAAS,WAAU,GAAGA,GAA8B,CAC5E,MACE,kBAACH,EAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAIG,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CAEnH,CAEA,SAAS,aAAa,CAAE,UAAS,WAAU,GAAGH,GAA4B,CACxE,MAAO,kBAACH,EAAiB,MAAlB,CAAwB,YAAU,gBAAgB,GAAIG,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CACpH,CAEA,SAAS,eAAe,CACtB,YACA,SACA,OAAO,SACP,aAAa,EACb,QAAQ,SACR,cAAc,EACd,SACA,cACA,UACA,WACA,GAAGH,GACmB,CACtB,MACE,kBAACH,EAAiB,OAAlB,CAAsC,cACpC,SAAA,kBAACA,EAAiB,WAAlB,CACU,SACF,OACM,aACL,QACM,cACL,SACR,UAAU,eAEV,SAAA,kBAACA,EAAiB,MAAlB,CACE,YAAU,kBACV,UAAY,GACVO,EACE,0LACA,uIACA,8JACAN,EAAiBO,EAAWC,CAAK,CACnC,EAEF,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAC0B,CAAA,CACN,CAAA,CAE7B,CAEA,SAAS,cAAc,CAAE,YAAW,GAAGH,GAA6B,CAClE,MAAO,kBAAC,MAAD,CAAK,YAAU,iBAAiB,UAAWI,EAAG,gCAAiCC,CAAS,EAAG,GAAIL,CAAQ,CAAA,CAChH,CAEA,SAAS,aAAa,CAAE,YAAW,UAAS,WAAU,GAAGA,GAA4B,CACnF,MACE,kBAACH,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAY,GAAUO,EAAG,cAAeN,EAAiBO,EAAWC,CAAK,CAAC,EAC1E,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,CAEA,SAAS,mBAAmB,CAAE,YAAW,UAAS,WAAU,GAAGH,GAAkC,CAC/F,MACE,kBAACH,EAAiB,YAAlB,CACE,YAAU,sBACV,UAAY,GAAUO,EAAG,wBAAyBN,EAAiBO,EAAWC,CAAK,CAAC,EACpF,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL"}
1
+ {"version":3,"file":"popover.js","names":["PopoverPrimitive","resolveClassName","Popover$1","props","toAsChildRenderProps","asChild","children","cn","className","state"],"sources":["../../src/components/popover.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nexport type PopoverProps = React.ComponentProps<typeof PopoverPrimitive.Root>\n\nexport type PopoverTriggerProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Trigger>\n\nexport type PopoverContentProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Popup> &\n Pick<\n React.ComponentProps<typeof PopoverPrimitive.Positioner>,\n 'anchor' | 'side' | 'sideOffset' | 'align' | 'alignOffset' | 'sticky'\n > &\n Pick<React.ComponentProps<typeof PopoverPrimitive.Portal>, 'keepMounted'>\n\nexport type PopoverCloseProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Close>\n\nexport type PopoverHeaderProps = React.ComponentProps<'div'>\n\nexport type PopoverTitleProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Title>\n\nexport type PopoverDescriptionProps = AsChildPrimitiveProps<typeof PopoverPrimitive.Description>\n\nfunction Popover({ ...props }: PopoverProps) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ asChild, children, ...props }: PopoverTriggerProps) {\n return (\n <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} {...toAsChildRenderProps(asChild, children)} />\n )\n}\n\nfunction PopoverClose({ asChild, children, ...props }: PopoverCloseProps) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} {...toAsChildRenderProps(asChild, children)} />\n}\n\nfunction PopoverContent({\n className,\n anchor,\n side = 'bottom',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n sticky,\n keepMounted,\n asChild,\n children,\n ...props\n}: PopoverContentProps) {\n return (\n <PopoverPrimitive.Portal keepMounted={keepMounted}>\n <PopoverPrimitive.Positioner\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n sticky={sticky}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={(state) =>\n cn(\n 'bg-popover text-popover-foreground ring-foreground/10 z-50 w-72 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 origin-(--transform-origin) flex flex-col gap-2.5 outline-hidden',\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: PopoverHeaderProps) {\n return <div data-slot=\"popover-header\" className={cn('flex flex-col gap-0.5 text-sm', className)} {...props} />\n}\n\nfunction PopoverTitle({ className, asChild, children, ...props }: PopoverTitleProps) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={(state) => cn('font-medium', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction PopoverDescription({ className, asChild, children, ...props }: PopoverDescriptionProps) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={(state) => cn('text-muted-foreground', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n"],"mappings":"A,sRA2BA,SAAS,QAAQ,CAAE,GAAGG,GAAuB,CAC3C,MAAO,kBAACH,EAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAIG,CAAQ,CAAA,CAChE,CAEA,SAAS,eAAe,CAAE,UAAS,WAAU,GAAGA,GAA8B,CAC5E,MACE,kBAACH,EAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAIG,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CAEnH,CAEA,SAAS,aAAa,CAAE,UAAS,WAAU,GAAGH,GAA4B,CACxE,MAAO,kBAACH,EAAiB,MAAlB,CAAwB,YAAU,gBAAgB,GAAIG,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CACpH,CAEA,SAAS,eAAe,CACtB,YACA,SACA,OAAO,SACP,aAAa,EACb,QAAQ,SACR,cAAc,EACd,SACA,cACA,UACA,WACA,GAAGH,GACmB,CACtB,MACE,kBAACH,EAAiB,OAAlB,CAAsC,cACpC,SAAA,kBAACA,EAAiB,WAAlB,CACU,SACF,OACM,aACL,QACM,cACL,SACR,UAAU,eAEV,SAAA,kBAACA,EAAiB,MAAlB,CACE,YAAU,kBACV,UAAY,GACVO,EACE,0LACA,uIACA,8JACAN,EAAiBO,EAAWC,CAAK,CACnC,EAEF,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAC0B,CAAA,CACN,CAAA,CAE7B,CAEA,SAAS,cAAc,CAAE,YAAW,GAAGH,GAA6B,CAClE,MAAO,kBAAC,MAAD,CAAK,YAAU,iBAAiB,UAAWI,EAAG,gCAAiCC,CAAS,EAAG,GAAIL,CAAQ,CAAA,CAChH,CAEA,SAAS,aAAa,CAAE,YAAW,UAAS,WAAU,GAAGA,GAA4B,CACnF,MACE,kBAACH,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAY,GAAUO,EAAG,cAAeN,EAAiBO,EAAWC,CAAK,CAAC,EAC1E,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,CAEA,SAAS,mBAAmB,CAAE,YAAW,UAAS,WAAU,GAAGH,GAAkC,CAC/F,MACE,kBAACH,EAAiB,YAAlB,CACE,YAAU,sBACV,UAAY,GAAUO,EAAG,wBAAyBN,EAAiBO,EAAWC,CAAK,CAAC,EACpF,GAAIN,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,C"}
@@ -2,7 +2,6 @@ import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as React from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import { Progress as Progress$1 } from "@base-ui/react/progress";
5
- //#region src/components/progress.d.ts
6
5
  declare const progressVariants: (props?: ({
7
6
  size?: "lg" | "md" | "sm" | null | undefined;
8
7
  color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
@@ -15,6 +14,5 @@ export type ProgressProps = Omit<React.ComponentProps<typeof Progress$1.Root>, '
15
14
  value?: number | null;
16
15
  };
17
16
  declare function Progress({ className, value, size, color, ...props }: ProgressProps): React.JSX.Element;
18
- //#endregion
19
17
  export { Progress, progressVariants };
20
18
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","names":["ProgressPrimitive","Progress$1","progressVariants","cva","progressColorVariants","props","size","color","cn","resolveClassName","className","state"],"sources":["../../src/components/progress.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { progressColorVariants } from '../lib/progress'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nconst progressVariants = cva('relative flex w-full items-center overflow-x-hidden rounded-full bg-muted', {\n variants: {\n size: {\n sm: 'h-0.5',\n md: 'h-1',\n lg: 'h-1.5'\n },\n color: progressColorVariants\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n})\n\nexport type ProgressProps = Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, 'render' | 'value'> &\n VariantProps<typeof progressVariants> & {\n /**\n * Progress from `0` to `100`. `null` renders an indeterminate bar.\n * @default null\n */\n value?: number | null\n }\n\nfunction Progress({ className, value = null, size = 'md', color = 'primary', ...props }: ProgressProps) {\n return (\n <ProgressPrimitive.Root data-slot=\"progress\" data-size={size} data-color={color} value={value} {...props}>\n <ProgressPrimitive.Track\n data-slot=\"progress-track\"\n className={(state) => cn(progressVariants({ size, color }), resolveClassName(className, state))}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full bg-(--progress-color) transition-all\"\n />\n </ProgressPrimitive.Track>\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress, progressVariants }\n"],"mappings":"mUASA,MAAME,EAAmBC,EAAI,4EAA6E,CACxG,SAAU,CACR,KAAM,CACJ,GAAI,QACJ,GAAI,MACJ,GAAI,OACN,EACA,MAAOC,CACT,EACA,gBAAiB,CACf,KAAM,KACN,MAAO,SACT,CACF,CAAC,EAWD,SAAS,SAAS,CAAE,YAAW,QAAQ,KAAM,OAAO,KAAM,QAAQ,UAAW,GAAGC,GAAwB,CACtG,MACE,kBAACL,EAAkB,KAAnB,CAAwB,YAAU,WAAW,YAAWM,EAAM,aAAYC,EAAc,QAAO,GAAIF,EACjG,SAAA,kBAACL,EAAkB,MAAnB,CACE,YAAU,iBACV,UAAY,GAAUQ,EAAGN,EAAiB,CAAE,OAAM,OAAM,CAAC,EAAGO,EAAiBC,EAAWC,CAAK,CAAC,EAE9F,SAAA,kBAACX,EAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,6CACX,CAAA,CACsB,CAAA,CACH,CAAA,CAE5B"}
1
+ {"version":3,"file":"progress.js","names":["ProgressPrimitive","Progress$1","progressVariants","cva","progressColorVariants","props","size","color","cn","resolveClassName","className","state"],"sources":["../../src/components/progress.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { progressColorVariants } from '../lib/progress'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nconst progressVariants = cva('relative flex w-full items-center overflow-x-hidden rounded-full bg-muted', {\n variants: {\n size: {\n sm: 'h-0.5',\n md: 'h-1',\n lg: 'h-1.5'\n },\n color: progressColorVariants\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n})\n\nexport type ProgressProps = Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, 'render' | 'value'> &\n VariantProps<typeof progressVariants> & {\n /**\n * Progress from `0` to `100`. `null` renders an indeterminate bar.\n * @default null\n */\n value?: number | null\n }\n\nfunction Progress({ className, value = null, size = 'md', color = 'primary', ...props }: ProgressProps) {\n return (\n <ProgressPrimitive.Root data-slot=\"progress\" data-size={size} data-color={color} value={value} {...props}>\n <ProgressPrimitive.Track\n data-slot=\"progress-track\"\n className={(state) => cn(progressVariants({ size, color }), resolveClassName(className, state))}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full bg-(--progress-color) transition-all\"\n />\n </ProgressPrimitive.Track>\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress, progressVariants }\n"],"mappings":"A,mUASA,MAAME,EAAmBC,EAAI,4EAA6E,CACxG,SAAU,CACR,KAAM,CACJ,GAAI,QACJ,GAAI,MACJ,GAAI,OACN,EACA,MAAOC,CACT,EACA,gBAAiB,CACf,KAAM,KACN,MAAO,SACT,CACF,CAAC,EAWD,SAAS,SAAS,CAAE,YAAW,QAAQ,KAAM,OAAO,KAAM,QAAQ,UAAW,GAAGC,GAAwB,CACtG,MACE,kBAACL,EAAkB,KAAnB,CAAwB,YAAU,WAAW,YAAWM,EAAM,aAAYC,EAAc,QAAO,GAAIF,EACjG,SAAA,kBAACL,EAAkB,MAAnB,CACE,YAAU,iBACV,UAAY,GAAUQ,EAAGN,EAAiB,CAAE,OAAM,OAAM,CAAC,EAAGO,EAAiBC,EAAWC,CAAK,CAAC,EAE9F,SAAA,kBAACX,EAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,6CACX,CAAA,CACsB,CAAA,CACH,CAAA,CAE5B,C"}
@@ -6,7 +6,6 @@ import { ReactNode } from "react";
6
6
  import { VariantProps } from "class-variance-authority";
7
7
  import { Radio } from "@base-ui/react/radio";
8
8
  import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
9
- //#region src/components/radio-group.d.ts
10
9
  export type RadioGroupProps<Value = string> = Omit<RadioGroup$1.Props<Value>, 'render'> & {
11
10
  asChild?: boolean;
12
11
  } & {
@@ -34,6 +33,5 @@ export type RadioGroupItemProps = Omit<React.ComponentProps<typeof Radio.Root>,
34
33
  };
35
34
  declare function RadioGroup<Value = string>({ className, color, asChild, children, 'aria-invalid': ariaInvalid, ...props }: RadioGroupProps<Value>): React.JSX.Element;
36
35
  declare function RadioGroupItem({ className, color, id, label, labelProps, description, descriptionProps, size, ...props }: RadioGroupItemProps): React.JSX.Element;
37
- //#endregion
38
36
  export { RadioGroup, RadioGroupItem };
39
37
  //# sourceMappingURL=radio-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","names":["RadioGroupPrimitive","RadioPrimitive","resolveClassName","RadioGroup$1","radioGroupItemVariants","cva","selectionControlColorVariants","radioGroupIndicatorVariants","radioGroupIndicatorDotVariants","radioGroupItemLabelVariants","radioGroupItemDescriptionVariants","RadioGroupFieldControlIdContext","createContext","ariaInvalid","props","fieldControlId","useFieldControlId","fieldLabelId","useFieldLabelId","invalid","useFieldInvalid","color","cn","className","state","toAsChildRenderProps","asChild","children","generatedId","useId","id","groupFieldControlId","useContext","hasLabel","label","resolvedId","labelClassName","labelRootProps","labelProps","descriptionId","hasDescription","description","descriptionClassName","descriptionRootProps","descriptionProps","resolvedDescriptionId","item","Radio","size","Label"],"sources":["../../src/components/radio-group.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { Radio as RadioPrimitive } from '@base-ui/react/radio'\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { toAsChildRenderProps } from '../lib/as-child'\nimport type { UIColor } from '../lib/color'\nimport { selectionControlColorVariants } from '../lib/color'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid, useFieldLabelId } from './field'\nimport { Label, type LabelProps } from './label'\n\nexport type RadioGroupProps<Value = string> = Omit<RadioGroupPrimitive.Props<Value>, 'render'> & {\n asChild?: boolean\n} & {\n /**\n * Palette family for every item in the group.\n * @default 'primary'\n */\n color?: UIColor\n}\n\nconst radioGroupItemVariants = cva(\n [\n 'group/radio-group-item peer relative flex aspect-square shrink-0 rounded-full border border-input outline-none',\n 'after:absolute after:-inset-x-3 after:-inset-y-2',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50',\n 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\n 'dark:data-unchecked:bg-input/30',\n 'data-checked:border-(--selection-control) data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground)'\n ],\n {\n variants: {\n color: selectionControlColorVariants,\n size: {\n sm: 'size-4',\n md: 'size-4.5',\n lg: 'size-5.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst radioGroupIndicatorVariants = cva('flex items-center justify-center', {\n variants: {\n size: {\n sm: 'size-4',\n md: 'size-4.5',\n lg: 'size-5.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupIndicatorDotVariants = cva('absolute top-1/2 left-1/2 rounded-full bg-primary-foreground', {\n variants: {\n size: {\n sm: 'size-1.5',\n md: 'size-2',\n lg: 'size-2.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupItemLabelVariants = cva('', {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-lg'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupItemDescriptionVariants = cva(\n 'text-muted-foreground text-left leading-normal font-normal [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-xs',\n lg: 'text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nexport type RadioGroupItemProps = Omit<React.ComponentProps<typeof RadioPrimitive.Root>, 'render'> &\n VariantProps<typeof radioGroupItemVariants> & {\n /** Overrides the group color for this item. */\n color?: UIColor\n /** Label rendered next to the radio and linked to it. */\n label?: ReactNode\n /** Props for the rendered label. */\n labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>\n /** Helper text rendered below the label. */\n description?: ReactNode\n /** Props for the rendered description. */\n descriptionProps?: Omit<React.ComponentProps<'p'>, 'children'>\n }\n\n// The `Field` control id claimed by the enclosing `RadioGroup`. Items must not reuse it (every item would share\n// one id); an item only takes a Field control id when it sits in its own nested `Field`.\nconst RadioGroupFieldControlIdContext = createContext<string | undefined>(undefined)\n\nfunction RadioGroup<Value = string>({\n className,\n color = 'primary',\n asChild,\n children,\n 'aria-invalid': ariaInvalid,\n ...props\n}: RadioGroupProps<Value>) {\n const fieldControlId = useFieldControlId()\n const fieldLabelId = useFieldLabelId()\n const invalid = useFieldInvalid(ariaInvalid)\n\n return (\n <RadioGroupFieldControlIdContext.Provider value={fieldControlId}>\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n data-color={color}\n aria-labelledby={fieldLabelId}\n aria-invalid={invalid}\n className={(state) =>\n cn('grid w-full gap-2', selectionControlColorVariants[color], resolveClassName(className, state))\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </RadioGroupFieldControlIdContext.Provider>\n )\n}\n\nfunction RadioGroupItem({\n className,\n color,\n id,\n label,\n labelProps,\n description,\n descriptionProps,\n size = 'md',\n ...props\n}: RadioGroupItemProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const groupFieldControlId = useContext(RadioGroupFieldControlIdContext)\n const hasLabel = label !== undefined\n const ownFieldControlId = id === undefined && fieldControlId === groupFieldControlId ? undefined : fieldControlId\n const resolvedId = ownFieldControlId ?? (hasLabel ? generatedId : undefined)\n const { className: labelClassName, ...labelRootProps } = labelProps ?? {}\n const descriptionId = useId()\n const hasDescription = description !== undefined\n const { className: descriptionClassName, ...descriptionRootProps } = descriptionProps ?? {}\n const resolvedDescriptionId = hasDescription ? (descriptionRootProps.id ?? descriptionId) : undefined\n\n const item = (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n data-color={color}\n data-size={size}\n id={resolvedId}\n aria-describedby={resolvedDescriptionId}\n className={(state) => cn(radioGroupItemVariants({ color, size }), resolveClassName(className, state))}\n {...props}\n >\n <RadioPrimitive.Indicator data-slot=\"radio-group-indicator\" className={cn(radioGroupIndicatorVariants({ size }))}>\n <span className={cn(radioGroupIndicatorDotVariants({ size }), '-translate-x-1/2 -translate-y-1/2')} />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n\n if (!hasLabel && !hasDescription) {\n return item\n }\n\n return (\n <div\n data-slot=\"radio-group-item-field\"\n className=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-x-2 gap-y-0.5\"\n >\n {item}\n {hasLabel && (\n <Label\n {...labelRootProps}\n htmlFor={resolvedId}\n className={cn(radioGroupItemLabelVariants({ size }), labelClassName)}\n >\n {label}\n </Label>\n )}\n {hasDescription && (\n <p\n data-slot=\"radio-group-item-description\"\n {...descriptionRootProps}\n id={resolvedDescriptionId}\n className={cn('col-start-2', radioGroupItemDescriptionVariants({ size }), descriptionClassName)}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"],"mappings":"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"}
1
+ {"version":3,"file":"radio-group.js","names":["RadioGroupPrimitive","RadioPrimitive","resolveClassName","RadioGroup$1","radioGroupItemVariants","cva","selectionControlColorVariants","radioGroupIndicatorVariants","radioGroupIndicatorDotVariants","radioGroupItemLabelVariants","radioGroupItemDescriptionVariants","RadioGroupFieldControlIdContext","createContext","ariaInvalid","props","fieldControlId","useFieldControlId","fieldLabelId","useFieldLabelId","invalid","useFieldInvalid","color","cn","className","state","toAsChildRenderProps","asChild","children","generatedId","useId","id","groupFieldControlId","useContext","hasLabel","label","resolvedId","labelClassName","labelRootProps","labelProps","descriptionId","hasDescription","description","descriptionClassName","descriptionRootProps","descriptionProps","resolvedDescriptionId","item","Radio","size","Label"],"sources":["../../src/components/radio-group.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { Radio as RadioPrimitive } from '@base-ui/react/radio'\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { toAsChildRenderProps } from '../lib/as-child'\nimport type { UIColor } from '../lib/color'\nimport { selectionControlColorVariants } from '../lib/color'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid, useFieldLabelId } from './field'\nimport { Label, type LabelProps } from './label'\n\nexport type RadioGroupProps<Value = string> = Omit<RadioGroupPrimitive.Props<Value>, 'render'> & {\n asChild?: boolean\n} & {\n /**\n * Palette family for every item in the group.\n * @default 'primary'\n */\n color?: UIColor\n}\n\nconst radioGroupItemVariants = cva(\n [\n 'group/radio-group-item peer relative flex aspect-square shrink-0 rounded-full border border-input outline-none',\n 'after:absolute after:-inset-x-3 after:-inset-y-2',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50',\n 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\n 'dark:data-unchecked:bg-input/30',\n 'data-checked:border-(--selection-control) data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground)'\n ],\n {\n variants: {\n color: selectionControlColorVariants,\n size: {\n sm: 'size-4',\n md: 'size-4.5',\n lg: 'size-5.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nconst radioGroupIndicatorVariants = cva('flex items-center justify-center', {\n variants: {\n size: {\n sm: 'size-4',\n md: 'size-4.5',\n lg: 'size-5.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupIndicatorDotVariants = cva('absolute top-1/2 left-1/2 rounded-full bg-primary-foreground', {\n variants: {\n size: {\n sm: 'size-1.5',\n md: 'size-2',\n lg: 'size-2.5'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupItemLabelVariants = cva('', {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-lg'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst radioGroupItemDescriptionVariants = cva(\n 'text-muted-foreground text-left leading-normal font-normal [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-xs',\n lg: 'text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nexport type RadioGroupItemProps = Omit<React.ComponentProps<typeof RadioPrimitive.Root>, 'render'> &\n VariantProps<typeof radioGroupItemVariants> & {\n /** Overrides the group color for this item. */\n color?: UIColor\n /** Label rendered next to the radio and linked to it. */\n label?: ReactNode\n /** Props for the rendered label. */\n labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>\n /** Helper text rendered below the label. */\n description?: ReactNode\n /** Props for the rendered description. */\n descriptionProps?: Omit<React.ComponentProps<'p'>, 'children'>\n }\n\n// The `Field` control id claimed by the enclosing `RadioGroup`. Items must not reuse it (every item would share\n// one id); an item only takes a Field control id when it sits in its own nested `Field`.\nconst RadioGroupFieldControlIdContext = createContext<string | undefined>(undefined)\n\nfunction RadioGroup<Value = string>({\n className,\n color = 'primary',\n asChild,\n children,\n 'aria-invalid': ariaInvalid,\n ...props\n}: RadioGroupProps<Value>) {\n const fieldControlId = useFieldControlId()\n const fieldLabelId = useFieldLabelId()\n const invalid = useFieldInvalid(ariaInvalid)\n\n return (\n <RadioGroupFieldControlIdContext.Provider value={fieldControlId}>\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n data-color={color}\n aria-labelledby={fieldLabelId}\n aria-invalid={invalid}\n className={(state) =>\n cn('grid w-full gap-2', selectionControlColorVariants[color], resolveClassName(className, state))\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </RadioGroupFieldControlIdContext.Provider>\n )\n}\n\nfunction RadioGroupItem({\n className,\n color,\n id,\n label,\n labelProps,\n description,\n descriptionProps,\n size = 'md',\n ...props\n}: RadioGroupItemProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const groupFieldControlId = useContext(RadioGroupFieldControlIdContext)\n const hasLabel = label !== undefined\n const ownFieldControlId = id === undefined && fieldControlId === groupFieldControlId ? undefined : fieldControlId\n const resolvedId = ownFieldControlId ?? (hasLabel ? generatedId : undefined)\n const { className: labelClassName, ...labelRootProps } = labelProps ?? {}\n const descriptionId = useId()\n const hasDescription = description !== undefined\n const { className: descriptionClassName, ...descriptionRootProps } = descriptionProps ?? {}\n const resolvedDescriptionId = hasDescription ? (descriptionRootProps.id ?? descriptionId) : undefined\n\n const item = (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n data-color={color}\n data-size={size}\n id={resolvedId}\n aria-describedby={resolvedDescriptionId}\n className={(state) => cn(radioGroupItemVariants({ color, size }), resolveClassName(className, state))}\n {...props}\n >\n <RadioPrimitive.Indicator data-slot=\"radio-group-indicator\" className={cn(radioGroupIndicatorVariants({ size }))}>\n <span className={cn(radioGroupIndicatorDotVariants({ size }), '-translate-x-1/2 -translate-y-1/2')} />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n\n if (!hasLabel && !hasDescription) {\n return item\n }\n\n return (\n <div\n data-slot=\"radio-group-item-field\"\n className=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-x-2 gap-y-0.5\"\n >\n {item}\n {hasLabel && (\n <Label\n {...labelRootProps}\n htmlFor={resolvedId}\n className={cn(radioGroupItemLabelVariants({ size }), labelClassName)}\n >\n {label}\n </Label>\n )}\n {hasDescription && (\n <p\n data-slot=\"radio-group-item-description\"\n {...descriptionRootProps}\n id={resolvedDescriptionId}\n className={cn('col-start-2', radioGroupItemDescriptionVariants({ size }), descriptionClassName)}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as ResizablePrimitive from "react-resizable-panels";
3
- //#region src/components/resizable.d.ts
4
3
  export type ResizablePanelGroupProps = ResizablePrimitive.GroupProps;
5
4
  export type ResizablePanelProps = ResizablePrimitive.PanelProps;
6
5
  export type ResizableHandleProps = ResizablePrimitive.SeparatorProps & {
@@ -10,6 +9,5 @@ export type ResizableHandleProps = ResizablePrimitive.SeparatorProps & {
10
9
  declare function ResizablePanelGroup({ className, ...props }: ResizablePanelGroupProps): import("react").JSX.Element;
11
10
  declare function ResizablePanel({ ...props }: ResizablePanelProps): import("react").JSX.Element;
12
11
  declare function ResizableHandle({ withHandle, className, ...props }: ResizableHandleProps): import("react").JSX.Element;
13
- //#endregion
14
12
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
15
13
  //# sourceMappingURL=resizable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.js","names":["ResizablePrimitive","props","cn","className","withHandle"],"sources":["../../src/components/resizable.tsx"],"sourcesContent":["import * as ResizablePrimitive from 'react-resizable-panels'\n\nimport { cn } from '../lib/utils'\n\nexport type ResizablePanelGroupProps = ResizablePrimitive.GroupProps\n\nexport type ResizablePanelProps = ResizablePrimitive.PanelProps\n\nexport type ResizableHandleProps = ResizablePrimitive.SeparatorProps & {\n /** Shows a visible grip on the handle. */\n withHandle?: boolean\n}\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePanelGroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ ...props }: ResizablePanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({ withHandle, className, ...props }: ResizableHandleProps) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n 'relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90',\n className\n )}\n {...props}\n >\n {withHandle && <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />}\n </ResizablePrimitive.Separator>\n )\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\n"],"mappings":"8JAaA,SAAS,oBAAoB,CAAE,YAAW,GAAGC,GAAmC,CAC9E,MACE,kBAACD,EAAmB,MAApB,CACE,YAAU,wBACV,UAAWE,EAAG,0DAA2DC,CAAS,EAClF,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,eAAe,CAAE,GAAGA,GAA8B,CACzD,MAAO,kBAACD,EAAmB,MAApB,CAA0B,YAAU,kBAAkB,GAAIC,CAAQ,CAAA,CAC3E,CAEA,SAAS,gBAAgB,CAAE,aAAY,YAAW,GAAGA,GAA+B,CAClF,MACE,kBAACD,EAAmB,UAApB,CACE,YAAU,mBACV,UAAWE,EACT,ukBACAC,CACF,EACA,GAAIF,EAEH,SAAAG,GAAc,kBAAC,MAAD,CAAK,UAAU,iDAAmD,CAAA,CACrD,CAAA,CAElC"}
1
+ {"version":3,"file":"resizable.js","names":["ResizablePrimitive","props","cn","className","withHandle"],"sources":["../../src/components/resizable.tsx"],"sourcesContent":["import * as ResizablePrimitive from 'react-resizable-panels'\n\nimport { cn } from '../lib/utils'\n\nexport type ResizablePanelGroupProps = ResizablePrimitive.GroupProps\n\nexport type ResizablePanelProps = ResizablePrimitive.PanelProps\n\nexport type ResizableHandleProps = ResizablePrimitive.SeparatorProps & {\n /** Shows a visible grip on the handle. */\n withHandle?: boolean\n}\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePanelGroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ ...props }: ResizablePanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({ withHandle, className, ...props }: ResizableHandleProps) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n 'relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90',\n className\n )}\n {...props}\n >\n {withHandle && <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />}\n </ResizablePrimitive.Separator>\n )\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\n"],"mappings":"A,8JAaA,SAAS,oBAAoB,CAAE,YAAW,GAAGC,GAAmC,CAC9E,MACE,kBAACD,EAAmB,MAApB,CACE,YAAU,wBACV,UAAWE,EAAG,0DAA2DC,CAAS,EAClF,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,eAAe,CAAE,GAAGA,GAA8B,CACzD,MAAO,kBAACD,EAAmB,MAApB,CAA0B,YAAU,kBAAkB,GAAIC,CAAQ,CAAA,CAC3E,CAEA,SAAS,gBAAgB,CAAE,aAAY,YAAW,GAAGA,GAA+B,CAClF,MACE,kBAACD,EAAmB,UAApB,CACE,YAAU,mBACV,UAAWE,EACT,ukBACAC,CACF,EACA,GAAIF,EAEH,SAAAG,GAAc,kBAAC,MAAD,CAAK,UAAU,iDAAmD,CAAA,CACrD,CAAA,CAElC,C"}
@@ -1,7 +1,6 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as React from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
- //#region src/components/ring-progress.d.ts
5
4
  declare const ringProgressVariants: (props?: ({
6
5
  size?: "lg" | "md" | "sm" | null | undefined;
7
6
  color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
@@ -20,6 +19,5 @@ export type RingProgressProps = React.ComponentProps<'svg'> & VariantProps<typeo
20
19
  thickness?: RingProgressThickness;
21
20
  };
22
21
  declare function RingProgress({ className, value, size, color, thickness, ...props }: RingProgressProps): React.JSX.Element;
23
- //#endregion
24
22
  export { RingProgress, ringProgressVariants };
25
23
  //# sourceMappingURL=ring-progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ring-progress.js","names":["ringProgressVariants","cva","progressColorVariants","ringThickness","props","strokeWidth","thickness","radius","circumference","clamped","value","strokeDashoffset","size","color","cn","className"],"sources":["../../src/components/ring-progress.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { progressColorVariants } from '../lib/progress'\nimport { cn } from '../lib/utils'\n\nconst ringProgressVariants = cva('shrink-0', {\n variants: {\n size: {\n sm: 'size-8',\n md: 'size-10',\n lg: 'size-12'\n },\n color: progressColorVariants\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n})\n\nexport type RingProgressThickness = 'thin' | 'md' | 'thick'\n\nconst ringThickness = {\n thin: 8,\n md: 12,\n thick: 16\n} as const satisfies Record<RingProgressThickness, number>\n\nexport type RingProgressProps = React.ComponentProps<'svg'> &\n VariantProps<typeof ringProgressVariants> & {\n /**\n * Progress from `0` to `100`.\n * @default 0\n */\n value?: number\n /**\n * Stroke width of the ring.\n * @default 'md'\n */\n thickness?: RingProgressThickness\n }\n\nfunction RingProgress({\n className,\n value = 0,\n size = 'md',\n color = 'primary',\n thickness = 'md',\n ...props\n}: RingProgressProps) {\n const strokeWidth = ringThickness[thickness]\n const radius = (100 - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const clamped = Math.min(100, Math.max(0, value))\n const strokeDashoffset = circumference * (1 - clamped / 100)\n\n return (\n <svg\n data-slot=\"ring-progress\"\n data-size={size}\n data-color={color}\n data-thickness={thickness}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n viewBox=\"0 0 100 100\"\n className={cn(ringProgressVariants({ size, color }), className)}\n {...props}\n >\n <circle cx=\"50\" cy=\"50\" r={radius} fill=\"none\" strokeWidth={strokeWidth} className=\"stroke-muted\" />\n <circle\n cx=\"50\"\n cy=\"50\"\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n transform=\"rotate(-90 50 50)\"\n className=\"stroke-(--progress-color) transition-all\"\n />\n </svg>\n )\n}\n\nexport { RingProgress, ringProgressVariants }\n"],"mappings":"yOAOA,MAAMA,EAAuBC,EAAI,WAAY,CAC3C,SAAU,CACR,KAAM,CACJ,GAAI,SACJ,GAAI,UACJ,GAAI,SACN,EACA,MAAOC,CACT,EACA,gBAAiB,CACf,KAAM,KACN,MAAO,SACT,CACF,CAAC,EAIKC,EAAgB,CACpB,KAAM,EACN,GAAI,GACJ,MAAO,EACT,EAgBA,SAAS,aAAa,CACpB,YACA,QAAQ,EACR,OAAO,KACP,QAAQ,UACR,YAAY,KACZ,GAAGC,GACiB,CACpB,IAAMC,EAAcF,EAAcG,GAC5BC,GAAU,IAAMF,GAAe,EAC/BG,EAAgB,EAAI,KAAK,GAAKD,EAC9BE,EAAU,KAAK,IAAI,IAAK,KAAK,IAAI,EAAGC,CAAK,CAAC,EAC1CC,EAAmBH,GAAiB,EAAIC,EAAU,KAExD,MACE,kBAAC,MAAD,CACE,YAAU,gBACV,YAAWG,EACX,aAAYC,EACZ,iBAAgBP,EAChB,KAAK,cACL,gBAAeG,EACf,gBAAe,EACf,gBAAe,IACf,QAAQ,cACR,UAAWK,EAAGd,EAAqB,CAAE,OAAM,OAAM,CAAC,EAAGe,CAAS,EAC9D,GAAIX,EAXN,SAAA,CAaE,kBAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAGG,EAAQ,KAAK,OAAoB,cAAa,UAAU,cAAgB,CAAA,EACnG,kBAAC,SAAD,CACE,GAAG,KACH,GAAG,KACH,EAAGA,EACH,KAAK,OACQ,cACb,cAAc,QACd,gBAAiBC,EACC,mBAClB,UAAU,oBACV,UAAU,0CACX,CAAA,CACE,GAET"}
1
+ {"version":3,"file":"ring-progress.js","names":["ringProgressVariants","cva","progressColorVariants","ringThickness","props","strokeWidth","thickness","radius","circumference","clamped","value","strokeDashoffset","size","color","cn","className"],"sources":["../../src/components/ring-progress.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { progressColorVariants } from '../lib/progress'\nimport { cn } from '../lib/utils'\n\nconst ringProgressVariants = cva('shrink-0', {\n variants: {\n size: {\n sm: 'size-8',\n md: 'size-10',\n lg: 'size-12'\n },\n color: progressColorVariants\n },\n defaultVariants: {\n size: 'md',\n color: 'primary'\n }\n})\n\nexport type RingProgressThickness = 'thin' | 'md' | 'thick'\n\nconst ringThickness = {\n thin: 8,\n md: 12,\n thick: 16\n} as const satisfies Record<RingProgressThickness, number>\n\nexport type RingProgressProps = React.ComponentProps<'svg'> &\n VariantProps<typeof ringProgressVariants> & {\n /**\n * Progress from `0` to `100`.\n * @default 0\n */\n value?: number\n /**\n * Stroke width of the ring.\n * @default 'md'\n */\n thickness?: RingProgressThickness\n }\n\nfunction RingProgress({\n className,\n value = 0,\n size = 'md',\n color = 'primary',\n thickness = 'md',\n ...props\n}: RingProgressProps) {\n const strokeWidth = ringThickness[thickness]\n const radius = (100 - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const clamped = Math.min(100, Math.max(0, value))\n const strokeDashoffset = circumference * (1 - clamped / 100)\n\n return (\n <svg\n data-slot=\"ring-progress\"\n data-size={size}\n data-color={color}\n data-thickness={thickness}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n viewBox=\"0 0 100 100\"\n className={cn(ringProgressVariants({ size, color }), className)}\n {...props}\n >\n <circle cx=\"50\" cy=\"50\" r={radius} fill=\"none\" strokeWidth={strokeWidth} className=\"stroke-muted\" />\n <circle\n cx=\"50\"\n cy=\"50\"\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n transform=\"rotate(-90 50 50)\"\n className=\"stroke-(--progress-color) transition-all\"\n />\n </svg>\n )\n}\n\nexport { RingProgress, ringProgressVariants }\n"],"mappings":"A,yOAOA,MAAMA,EAAuBC,EAAI,WAAY,CAC3C,SAAU,CACR,KAAM,CACJ,GAAI,SACJ,GAAI,UACJ,GAAI,SACN,EACA,MAAOC,CACT,EACA,gBAAiB,CACf,KAAM,KACN,MAAO,SACT,CACF,CAAC,EAIKC,EAAgB,CACpB,KAAM,EACN,GAAI,GACJ,MAAO,EACT,EAgBA,SAAS,aAAa,CACpB,YACA,QAAQ,EACR,OAAO,KACP,QAAQ,UACR,YAAY,KACZ,GAAGC,GACiB,CACpB,IAAMC,EAAcF,EAAcG,GAC5BC,GAAU,IAAMF,GAAe,EAC/BG,EAAgB,EAAI,KAAK,GAAKD,EAC9BE,EAAU,KAAK,IAAI,IAAK,KAAK,IAAI,EAAGC,CAAK,CAAC,EAC1CC,EAAmBH,GAAiB,EAAIC,EAAU,KAExD,MACE,kBAAC,MAAD,CACE,YAAU,gBACV,YAAWG,EACX,aAAYC,EACZ,iBAAgBP,EAChB,KAAK,cACL,gBAAeG,EACf,gBAAe,EACf,gBAAe,IACf,QAAQ,cACR,UAAWK,EAAGd,EAAqB,CAAE,OAAM,OAAM,CAAC,EAAGe,CAAS,EAC9D,GAAIX,EAXN,SAAA,CAaE,kBAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAGG,EAAQ,KAAK,OAAoB,cAAa,UAAU,cAAgB,CAAA,EACnG,kBAAC,SAAD,CACE,GAAG,KACH,GAAG,KACH,EAAGA,EACH,KAAK,OACQ,cACb,cAAc,QACd,gBAAiBC,EACC,mBAClB,UAAU,oBACV,UAAU,0CACX,CAAA,CACE,C,EAET,C"}
@@ -1,11 +1,9 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as React from "react";
3
3
  import { ScrollArea as ScrollArea$1 } from "@base-ui/react/scroll-area";
4
- //#region src/components/scroll-area.d.ts
5
4
  export type ScrollAreaProps = Omit<React.ComponentProps<typeof ScrollArea$1.Root>, 'render'>;
6
5
  export type ScrollBarProps = Omit<React.ComponentProps<typeof ScrollArea$1.Scrollbar>, 'render'>;
7
6
  declare function ScrollArea({ className, children, ...props }: ScrollAreaProps): React.JSX.Element;
8
7
  declare function ScrollBar({ className, orientation, ...props }: ScrollBarProps): React.JSX.Element;
9
- //#endregion
10
8
  export { ScrollArea, ScrollBar };
11
9
  //# sourceMappingURL=scroll-area.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollArea$1","props","cn","resolveClassName","className","state","orientation"],"sources":["../../src/components/scroll-area.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area'\n\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nexport type ScrollAreaProps = Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, 'render'>\n\nexport type ScrollBarProps = Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Scrollbar>, 'render'>\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaProps) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={(state) => cn('relative', resolveClassName(className, state))}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'size-full rounded-[inherit] transition-[color,box-shadow] outline-none',\n 'focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1'\n )}\n >\n <ScrollAreaPrimitive.Content data-slot=\"scroll-area-content\">{children}</ScrollAreaPrimitive.Content>\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({ className, orientation = 'vertical', ...props }: ScrollBarProps) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={(state) =>\n cn(\n 'flex touch-none p-px transition-opacity select-none',\n 'opacity-0 delay-600 data-hovering:opacity-100 data-hovering:delay-0 data-scrolling:opacity-100 data-scrolling:delay-0',\n 'data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent',\n 'data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent',\n resolveClassName(className, state)\n )\n }\n {...props}\n >\n <ScrollAreaPrimitive.Thumb data-slot=\"scroll-area-thumb\" className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"mappings":"wOAWA,SAAS,WAAW,CAAE,YAAW,WAAU,GAAGE,GAA0B,CACtE,MACE,kBAACF,EAAoB,KAArB,CACE,YAAU,cACV,UAAY,GAAUG,EAAG,WAAYC,EAAiBC,EAAWC,CAAK,CAAC,EACvE,GAAIJ,EAHN,SAAA,CAKE,kBAACF,EAAoB,SAArB,CACE,YAAU,uBACV,UAAWG,EACT,yEACA,6EACF,EAEA,SAAA,kBAACH,EAAoB,QAArB,CAA6B,YAAU,sBAAuB,UAAsC,CAAA,CACxE,CAAA,EAC9B,kBAAC,UAAD,CAAY,CAAA,EACZ,kBAACA,EAAoB,OAArB,CAA6B,CAAA,CACL,GAE9B,CAEA,SAAS,UAAU,CAAE,YAAW,cAAc,WAAY,GAAGE,GAAyB,CACpF,MACE,kBAACF,EAAoB,UAArB,CACE,YAAU,wBACV,mBAAkBO,EACL,cACb,UAAY,GACVJ,EACE,sDACA,wHACA,+GACA,qGACAC,EAAiBC,EAAWC,CAAK,CACnC,EAEF,GAAIJ,EAEJ,SAAA,kBAACF,EAAoB,MAArB,CAA2B,YAAU,oBAAoB,UAAU,wCAA0C,CAAA,CAChF,CAAA,CAEnC"}
1
+ {"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollArea$1","props","cn","resolveClassName","className","state","orientation"],"sources":["../../src/components/scroll-area.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area'\n\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\n\nexport type ScrollAreaProps = Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, 'render'>\n\nexport type ScrollBarProps = Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Scrollbar>, 'render'>\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaProps) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={(state) => cn('relative', resolveClassName(className, state))}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'size-full rounded-[inherit] transition-[color,box-shadow] outline-none',\n 'focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1'\n )}\n >\n <ScrollAreaPrimitive.Content data-slot=\"scroll-area-content\">{children}</ScrollAreaPrimitive.Content>\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({ className, orientation = 'vertical', ...props }: ScrollBarProps) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={(state) =>\n cn(\n 'flex touch-none p-px transition-opacity select-none',\n 'opacity-0 delay-600 data-hovering:opacity-100 data-hovering:delay-0 data-scrolling:opacity-100 data-scrolling:delay-0',\n 'data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent',\n 'data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent',\n resolveClassName(className, state)\n )\n }\n {...props}\n >\n <ScrollAreaPrimitive.Thumb data-slot=\"scroll-area-thumb\" className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n"],"mappings":"A,wOAWA,SAAS,WAAW,CAAE,YAAW,WAAU,GAAGE,GAA0B,CACtE,MACE,kBAACF,EAAoB,KAArB,CACE,YAAU,cACV,UAAY,GAAUG,EAAG,WAAYC,EAAiBC,EAAWC,CAAK,CAAC,EACvE,GAAIJ,EAHN,SAAA,CAKE,kBAACF,EAAoB,SAArB,CACE,YAAU,uBACV,UAAWG,EACT,yEACA,6EACF,EAEA,SAAA,kBAACH,EAAoB,QAArB,CAA6B,YAAU,sBAAuB,UAAsC,CAAA,CACxE,CAAA,EAC9B,kBAAC,UAAD,CAAY,CAAA,EACZ,kBAACA,EAAoB,OAArB,CAA6B,CAAA,CACL,C,EAE9B,CAEA,SAAS,UAAU,CAAE,YAAW,cAAc,WAAY,GAAGE,GAAyB,CACpF,MACE,kBAACF,EAAoB,UAArB,CACE,YAAU,wBACV,mBAAkBO,EACL,cACb,UAAY,GACVJ,EACE,sDACA,wHACA,+GACA,qGACAC,EAAiBC,EAAWC,CAAK,CACnC,EAEF,GAAIJ,EAEJ,SAAA,kBAACF,EAAoB,MAArB,CAA2B,YAAU,oBAAoB,UAAU,wCAA0C,CAAA,CAChF,CAAA,CAEnC,C"}
@@ -1,8 +1,7 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { t as AsChildPrimitiveProps } from "../as-child-Dxg3Xo1G.js";
2
+ import { t as AsChildPrimitiveProps } from "../as-child-T9W73ZYU.js";
3
3
  import * as React from "react";
4
4
  import { Select as Select$1 } from "@base-ui/react/select";
5
- //#region src/components/select.d.ts
6
5
  export type SelectProps<Value = string, Multiple extends boolean | undefined = false> = Select$1.Root.Props<Value, Multiple>;
7
6
  export type SelectGroupProps = AsChildPrimitiveProps<typeof Select$1.Group>;
8
7
  export type SelectValueProps = AsChildPrimitiveProps<typeof Select$1.Value>;
@@ -29,6 +28,5 @@ declare function SelectItem({ className, children, ...props }: SelectItemProps):
29
28
  declare function SelectSeparator({ className, asChild, children, ...props }: SelectSeparatorProps): React.JSX.Element;
30
29
  declare function SelectScrollUpButton({ className, asChild, children, ...props }: SelectScrollUpButtonProps): React.JSX.Element;
31
30
  declare function SelectScrollDownButton({ className, asChild, children, ...props }: SelectScrollDownButtonProps): React.JSX.Element;
32
- //#endregion
33
31
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
34
32
  //# sourceMappingURL=select.d.ts.map