@kubetail/ui 3.0.0-rc8-mm → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/elements/alert.cjs +1 -1
  2. package/dist/elements/alert.cjs.map +1 -1
  3. package/dist/elements/alert.d.ts +3 -3
  4. package/dist/elements/alert.js.map +1 -1
  5. package/dist/elements/avatar.cjs +1 -1
  6. package/dist/elements/avatar.cjs.map +1 -1
  7. package/dist/elements/avatar.d.ts +6 -6
  8. package/dist/elements/avatar.js.map +1 -1
  9. package/dist/elements/button.cjs +1 -1
  10. package/dist/elements/button.cjs.map +1 -1
  11. package/dist/elements/button.d.ts +1 -1
  12. package/dist/elements/button.js.map +1 -1
  13. package/dist/elements/calendar.cjs +1 -1
  14. package/dist/elements/calendar.cjs.map +1 -1
  15. package/dist/elements/calendar.d.ts +1 -1
  16. package/dist/elements/calendar.js.map +1 -1
  17. package/dist/elements/card.cjs +1 -1
  18. package/dist/elements/card.cjs.map +1 -1
  19. package/dist/elements/card.d.ts +7 -7
  20. package/dist/elements/card.js.map +1 -1
  21. package/dist/elements/checkbox.cjs +1 -1
  22. package/dist/elements/checkbox.cjs.map +1 -1
  23. package/dist/elements/checkbox.d.ts +1 -1
  24. package/dist/elements/checkbox.js.map +1 -1
  25. package/dist/elements/context-menu.cjs +1 -1
  26. package/dist/elements/context-menu.cjs.map +1 -1
  27. package/dist/elements/context-menu.d.ts +15 -15
  28. package/dist/elements/context-menu.js.map +1 -1
  29. package/dist/elements/dialog.cjs +1 -1
  30. package/dist/elements/dialog.cjs.map +1 -1
  31. package/dist/elements/dialog.d.ts +10 -10
  32. package/dist/elements/dialog.js.map +1 -1
  33. package/dist/elements/dropdown-menu.cjs +1 -1
  34. package/dist/elements/dropdown-menu.cjs.map +1 -1
  35. package/dist/elements/dropdown-menu.d.ts +15 -15
  36. package/dist/elements/dropdown-menu.js.map +1 -1
  37. package/dist/elements/field.cjs +1 -1
  38. package/dist/elements/field.cjs.map +1 -1
  39. package/dist/elements/field.d.ts +10 -10
  40. package/dist/elements/field.js.map +1 -1
  41. package/dist/elements/form.cjs +1 -1
  42. package/dist/elements/form.cjs.map +1 -1
  43. package/dist/elements/form.d.ts +7 -7
  44. package/dist/elements/form.js.map +1 -1
  45. package/dist/elements/input-group.cjs +1 -1
  46. package/dist/elements/input-group.cjs.map +1 -1
  47. package/dist/elements/input-group.d.ts +6 -6
  48. package/dist/elements/input-group.js.map +1 -1
  49. package/dist/elements/input.cjs +1 -1
  50. package/dist/elements/input.cjs.map +1 -1
  51. package/dist/elements/input.d.ts +1 -1
  52. package/dist/elements/input.js.map +1 -1
  53. package/dist/elements/label.cjs +1 -1
  54. package/dist/elements/label.cjs.map +1 -1
  55. package/dist/elements/label.d.ts +1 -1
  56. package/dist/elements/label.js.map +1 -1
  57. package/dist/elements/link.cjs +1 -1
  58. package/dist/elements/link.cjs.map +1 -1
  59. package/dist/elements/link.d.ts +1 -1
  60. package/dist/elements/link.js.map +1 -1
  61. package/dist/elements/pagination.cjs +1 -1
  62. package/dist/elements/pagination.cjs.map +1 -1
  63. package/dist/elements/pagination.d.ts +7 -7
  64. package/dist/elements/pagination.js.map +1 -1
  65. package/dist/elements/popover.cjs +1 -1
  66. package/dist/elements/popover.cjs.map +1 -1
  67. package/dist/elements/popover.d.ts +3 -3
  68. package/dist/elements/popover.js.map +1 -1
  69. package/dist/elements/search-box.cjs +1 -1
  70. package/dist/elements/search-box.cjs.map +1 -1
  71. package/dist/elements/search-box.js.map +1 -1
  72. package/dist/elements/select.cjs +1 -1
  73. package/dist/elements/select.cjs.map +1 -1
  74. package/dist/elements/select.d.ts +9 -9
  75. package/dist/elements/select.js.map +1 -1
  76. package/dist/elements/separator.cjs +1 -1
  77. package/dist/elements/separator.cjs.map +1 -1
  78. package/dist/elements/separator.d.ts +1 -1
  79. package/dist/elements/separator.js.map +1 -1
  80. package/dist/elements/sheet.cjs +1 -1
  81. package/dist/elements/sheet.cjs.map +1 -1
  82. package/dist/elements/sheet.d.ts +8 -8
  83. package/dist/elements/sheet.js.map +1 -1
  84. package/dist/elements/sidebar.cjs +1 -1
  85. package/dist/elements/sidebar.cjs.map +1 -1
  86. package/dist/elements/sidebar.d.ts +19 -19
  87. package/dist/elements/sidebar.js.map +1 -1
  88. package/dist/elements/skeleton.cjs +1 -1
  89. package/dist/elements/skeleton.cjs.map +1 -1
  90. package/dist/elements/skeleton.d.ts +1 -1
  91. package/dist/elements/skeleton.js.map +1 -1
  92. package/dist/elements/spinner.cjs +1 -1
  93. package/dist/elements/spinner.cjs.map +1 -1
  94. package/dist/elements/spinner.d.ts +1 -1
  95. package/dist/elements/spinner.js.map +1 -1
  96. package/dist/elements/switch.cjs +1 -1
  97. package/dist/elements/switch.cjs.map +1 -1
  98. package/dist/elements/switch.d.ts +1 -1
  99. package/dist/elements/switch.js.map +1 -1
  100. package/dist/elements/table.cjs +1 -1
  101. package/dist/elements/table.cjs.map +1 -1
  102. package/dist/elements/table.d.ts +8 -8
  103. package/dist/elements/table.js.map +1 -1
  104. package/dist/elements/tabs.cjs +1 -1
  105. package/dist/elements/tabs.cjs.map +1 -1
  106. package/dist/elements/tabs.d.ts +4 -4
  107. package/dist/elements/tabs.js.map +1 -1
  108. package/dist/elements/textarea.cjs +1 -1
  109. package/dist/elements/textarea.cjs.map +1 -1
  110. package/dist/elements/textarea.d.ts +1 -1
  111. package/dist/elements/textarea.js.map +1 -1
  112. package/dist/elements/toggle.cjs +1 -1
  113. package/dist/elements/toggle.cjs.map +1 -1
  114. package/dist/elements/toggle.d.ts +1 -1
  115. package/dist/elements/toggle.js.map +1 -1
  116. package/dist/elements/tooltip.cjs +1 -1
  117. package/dist/elements/tooltip.cjs.map +1 -1
  118. package/dist/elements/tooltip.d.ts +4 -4
  119. package/dist/elements/tooltip.js.map +1 -1
  120. package/dist/hooks/use-mobile.cjs +1 -1
  121. package/dist/hooks/use-mobile.cjs.map +1 -1
  122. package/dist/hooks/use-mobile.js.map +1 -1
  123. package/dist/index.css +7 -7
  124. package/dist/lib/utils.cjs +1 -1
  125. package/dist/lib/utils.cjs.map +1 -1
  126. package/dist/lib/utils.js.map +1 -1
  127. package/package.json +34 -34
@@ -1 +1 @@
1
- {"version":3,"file":"form.cjs","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { Children, cloneElement, createContext, isValidElement, useContext, useId, useMemo } from 'react';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ children }: { children: React.ReactNode }) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n const child = Children.only(children);\n\n if (!isValidElement<Record<string, unknown>>(child)) {\n return <>{children}</>;\n }\n\n return cloneElement(child, {\n 'data-slot': 'form-control',\n id: formItemId,\n 'aria-describedby': !error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`,\n 'aria-invalid': !!error,\n });\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":"6QAgBA,IAAM,EAAO,EAAA,aASP,GAAA,EAAA,EAAA,eAAwD,EAAE,CAA0B,CAMpF,GAAA,EAAA,EAAA,eAAsD,EAAE,CAAyB,CAEjF,GAGJ,CACA,GAAG,KACuC,CAC1C,IAAM,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAM,EAAM,KAAM,EAAG,CAAC,EAAM,KAAK,CAAC,CAEjE,OACE,EAAA,EAAA,KAAC,EAAiB,SAAlB,CAAkC,kBAChC,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,GAAI,EAAS,CAAA,CACC,CAAA,EAI1B,MAAqB,CACzB,IAAM,GAAA,EAAA,EAAA,YAA0B,EAAiB,CAC3C,GAAA,EAAA,EAAA,YAAyB,EAAgB,CACzC,CAAE,kBAAA,EAAA,EAAA,iBAAkC,CACpC,GAAA,EAAA,EAAA,cAAyB,CAAE,KAAM,EAAa,KAAM,CAAC,CACrD,EAAa,EAAc,EAAa,KAAM,EAAU,CAE9D,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,CAGnE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,EACJ,EAGH,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,IAAM,GAAA,EAAA,EAAA,QAAY,CACZ,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAI,EAAG,CAAC,EAAG,CAAC,CAE3C,OACE,EAAA,EAAA,KAAC,EAAgB,SAAjB,CAAiC,kBAC/B,EAAA,EAAA,KAAC,MAAD,CAAK,YAAU,YAAY,UAAW,EAAA,GAAG,aAAc,EAAU,CAAE,GAAI,EAAS,CAAA,CACvD,CAAA,CAI/B,SAAS,EAAU,CAAE,YAAW,GAAG,GAA6C,CAC9E,GAAM,CAAE,QAAO,cAAe,GAAc,CAE5C,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACE,YAAU,aACV,aAAY,CAAC,CAAC,EACd,UAAW,EAAA,GAAG,qCAAsC,EAAU,CAC9D,QAAS,EACT,GAAI,EACJ,CAAA,CAIN,SAAS,EAAY,CAAE,YAA2C,CAChE,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,GAAc,CACxE,EAAQ,EAAA,SAAS,KAAK,EAAS,CAMrC,OAJI,EAAA,EAAA,gBAAyC,EAAM,EAInD,EAAA,EAAA,cAAoB,EAAO,CACzB,YAAa,eACb,GAAI,EACJ,mBAAqB,EAA4B,GAAG,EAAkB,GAAG,IAA5C,EAC7B,eAAgB,CAAC,CAAC,EACnB,CAAC,EARO,EAAA,EAAA,KAAA,EAAA,SAAA,CAAG,WAAY,CAAA,CAW1B,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,GAAc,CAE5C,OACE,EAAA,EAAA,KAAC,IAAD,CACE,YAAU,mBACV,GAAI,EACJ,UAAW,EAAA,GAAG,gCAAiC,EAAU,CACzD,GAAI,EACJ,CAAA,CAIN,SAAS,EAAY,CAAE,YAAW,GAAG,GAAoC,CACvE,GAAM,CAAE,QAAO,iBAAkB,GAAc,CACzC,EAAO,EAAQ,OAAO,GAAO,SAAW,GAAG,CAAG,EAAM,SAM1D,OAJK,GAKH,EAAA,EAAA,KAAC,IAAD,CAAG,YAAU,eAAe,GAAI,EAAe,UAAW,EAAA,GAAG,2BAA4B,EAAU,CAAE,GAAI,WACtG,EACC,CAAA,CANG"}
1
+ {"version":3,"file":"form.cjs","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { Children, cloneElement, createContext, isValidElement, useContext, useId, useMemo } from 'react';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ children }: { children: React.ReactNode }) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n const child = Children.only(children);\n\n if (!isValidElement<Record<string, unknown>>(child)) {\n return <>{children}</>;\n }\n\n return cloneElement(child, {\n 'data-slot': 'form-control',\n id: formItemId,\n 'aria-describedby': !error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`,\n 'aria-invalid': !!error,\n });\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":"gOAgBA,IAAM,EAAO,EAAA,aASP,GAAA,EAAA,EAAA,eAAwD,CAAC,CAA0B,EAMnF,GAAA,EAAA,EAAA,eAAsD,CAAC,CAAyB,EAEhF,GAGJ,CACA,GAAG,KACuC,CAC1C,IAAM,GAAA,EAAA,EAAA,cAAuB,CAAE,KAAM,EAAM,IAAK,GAAI,CAAC,EAAM,IAAI,CAAC,EAEhE,OACE,EAAA,EAAA,KAAC,EAAiB,SAAlB,CAAkC,kBAChC,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,GAAI,CAAQ,CAAA,CACC,CAAA,CAE/B,EAEM,MAAqB,CACzB,IAAM,GAAA,EAAA,EAAA,YAA0B,CAAgB,EAC1C,GAAA,EAAA,EAAA,YAAyB,CAAe,EACxC,CAAE,kBAAA,EAAA,EAAA,gBAAiC,EACnC,GAAA,EAAA,EAAA,cAAyB,CAAE,KAAM,EAAa,IAAK,CAAC,EACpD,EAAa,EAAc,EAAa,KAAM,CAAS,EAE7D,GAAI,CAAC,EACH,MAAU,MAAM,gDAAgD,EAGlE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,CACL,CACF,EAEA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,IAAM,GAAA,EAAA,EAAA,OAAW,EACX,GAAA,EAAA,EAAA,cAAuB,CAAE,IAAG,GAAI,CAAC,CAAE,CAAC,EAE1C,OACE,EAAA,EAAA,KAAC,EAAgB,SAAjB,CAAiC,kBAC/B,EAAA,EAAA,KAAC,MAAD,CAAK,YAAU,YAAY,UAAW,EAAA,GAAG,aAAc,CAAS,EAAG,GAAI,CAAQ,CAAA,CACvD,CAAA,CAE9B,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAA6C,CAC9E,GAAM,CAAE,QAAO,cAAe,EAAa,EAE3C,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACE,YAAU,aACV,aAAY,CAAC,CAAC,EACd,UAAW,EAAA,GAAG,qCAAsC,CAAS,EAC7D,QAAS,EACT,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAY,CAAE,YAA2C,CAChE,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,EAAa,EACvE,EAAQ,EAAA,SAAS,KAAK,CAAQ,EAMpC,OAJI,EAAA,EAAA,gBAAyC,CAAK,GAIlD,EAAA,EAAA,cAAoB,EAAO,CACzB,YAAa,eACb,GAAI,EACJ,mBAAqB,EAA4B,GAAG,EAAkB,GAAG,IAA5C,EAC7B,eAAgB,CAAC,CAAC,CACpB,CAAC,GARQ,EAAA,EAAA,KAAA,EAAA,SAAA,CAAG,UAAW,CAAA,CASzB,CAEA,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,EAAa,EAE3C,OACE,EAAA,EAAA,KAAC,IAAD,CACE,YAAU,mBACV,GAAI,EACJ,UAAW,EAAA,GAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAoC,CACvE,GAAM,CAAE,QAAO,iBAAkB,EAAa,EACxC,EAAO,EAAQ,OAAO,GAAO,SAAW,EAAE,EAAI,EAAM,SAM1D,OAJK,GAKH,EAAA,EAAA,KAAC,IAAD,CAAG,YAAU,eAAe,GAAI,EAAe,UAAW,EAAA,GAAG,2BAA4B,CAAS,EAAG,GAAI,WACtG,CACA,CAAA,EANI,IAQX"}
@@ -1,7 +1,7 @@
1
1
  import { type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
2
2
  import { Label } from '@/elements/label';
3
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
4
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
3
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
4
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
5
5
  declare const useFormField: () => {
6
6
  invalid: boolean;
7
7
  isDirty: boolean;
@@ -14,11 +14,11 @@ declare const useFormField: () => {
14
14
  formDescriptionId: string;
15
15
  formMessageId: string;
16
16
  };
17
- declare function FormItem({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
18
- declare function FormLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react/jsx-runtime").JSX.Element;
17
+ declare function FormItem({ className, ...props }: React.ComponentProps<'div'>): import("react").JSX.Element;
18
+ declare function FormLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react").JSX.Element;
19
19
  declare function FormControl({ children }: {
20
20
  children: React.ReactNode;
21
- }): import("react/jsx-runtime").JSX.Element;
22
- declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element;
23
- declare function FormMessage({ className, ...props }: React.ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element | null;
21
+ }): import("react").JSX.Element;
22
+ declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
23
+ declare function FormMessage({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element | null;
24
24
  export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { Children, cloneElement, createContext, isValidElement, useContext, useId, useMemo } from 'react';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ children }: { children: React.ReactNode }) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n const child = Children.only(children);\n\n if (!isValidElement<Record<string, unknown>>(child)) {\n return <>{children}</>;\n }\n\n return cloneElement(child, {\n 'data-slot': 'form-control',\n id: formItemId,\n 'aria-describedby': !error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`,\n 'aria-invalid': !!error,\n });\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":";;;;;;;AAgBA,IAAM,IAAO,GASP,IAAmB,EAAqC,EAAE,CAA0B,EAMpF,IAAkB,EAAoC,EAAE,CAAyB,EAEjF,KAGJ,EACA,GAAG,QACuC;CAC1C,IAAM,IAAQ,SAAe,EAAE,MAAM,EAAM,MAAM,GAAG,CAAC,EAAM,KAAK,CAAC;AAEjE,QACE,kBAAC,EAAiB,UAAlB;EAAkC;YAChC,kBAAC,GAAD,EAAY,GAAI,GAAS,CAAA;EACC,CAAA;GAI1B,UAAqB;CACzB,IAAM,IAAe,EAAW,EAAiB,EAC3C,IAAc,EAAW,EAAgB,EACzC,EAAE,qBAAkB,GAAgB,EACpC,IAAY,EAAa,EAAE,MAAM,EAAa,MAAM,CAAC,EACrD,IAAa,EAAc,EAAa,MAAM,EAAU;AAE9D,KAAI,CAAC,EACH,OAAU,MAAM,iDAAiD;CAGnE,IAAM,EAAE,UAAO;AAEf,QAAO;EACL;EACA,MAAM,EAAa;EACnB,YAAY,GAAG,EAAG;EAClB,mBAAmB,GAAG,EAAG;EACzB,eAAe,GAAG,EAAG;EACrB,GAAG;EACJ;;AAGH,SAAS,EAAS,EAAE,cAAW,GAAG,KAAsC;CACtE,IAAM,IAAK,GAAO,EACZ,IAAQ,SAAe,EAAE,OAAI,GAAG,CAAC,EAAG,CAAC;AAE3C,QACE,kBAAC,EAAgB,UAAjB;EAAiC;YAC/B,kBAAC,OAAD;GAAK,aAAU;GAAY,WAAW,EAAG,cAAc,EAAU;GAAE,GAAI;GAAS,CAAA;EACvD,CAAA;;AAI/B,SAAS,EAAU,EAAE,cAAW,GAAG,KAA6C;CAC9E,IAAM,EAAE,UAAO,kBAAe,GAAc;AAE5C,QACE,kBAAC,GAAD;EACE,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,EAAG,sCAAsC,EAAU;EAC9D,SAAS;EACT,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAY,EAAE,eAA2C;CAChE,IAAM,EAAE,UAAO,eAAY,sBAAmB,qBAAkB,GAAc,EACxE,IAAQ,EAAS,KAAK,EAAS;AAMrC,QAJK,EAAwC,EAAM,GAI5C,EAAa,GAAO;EACzB,aAAa;EACb,IAAI;EACJ,oBAAqB,IAA4B,GAAG,EAAkB,GAAG,MAA5C;EAC7B,gBAAgB,CAAC,CAAC;EACnB,CAAC,GARO,kBAAA,GAAA,EAAG,aAAY,CAAA;;AAW1B,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAoC;CAC3E,IAAM,EAAE,yBAAsB,GAAc;AAE5C,QACE,kBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,EAAG,iCAAiC,EAAU;EACzD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAY,EAAE,cAAW,GAAG,KAAoC;CACvE,IAAM,EAAE,UAAO,qBAAkB,GAAc,EACzC,IAAO,IAAQ,OAAO,GAAO,WAAW,GAAG,GAAG,EAAM;AAM1D,QAJK,IAKH,kBAAC,KAAD;EAAG,aAAU;EAAe,IAAI;EAAe,WAAW,EAAG,4BAA4B,EAAU;EAAE,GAAI;YACtG;EACC,CAAA,GANG"}
1
+ {"version":3,"file":"form.js","names":[],"sources":["../../src/elements/form.tsx"],"sourcesContent":["'use client';\n\nimport { Children, cloneElement, createContext, isValidElement, useContext, useId, useMemo } from 'react';\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/elements/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n const value = useMemo(() => ({ name: props.name }), [props.name]);\n\n return (\n <FormFieldContext.Provider value={value}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = useId();\n const value = useMemo(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={value}>\n <div data-slot=\"form-item\" className={cn('grid gap-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ children }: { children: React.ReactNode }) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n const child = Children.only(children);\n\n if (!isValidElement<Record<string, unknown>>(child)) {\n return <>{children}</>;\n }\n\n return cloneElement(child, {\n 'data-slot': 'form-control',\n id: formItemId,\n 'aria-describedby': !error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`,\n 'aria-invalid': !!error,\n });\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p data-slot=\"form-message\" id={formMessageId} className={cn('text-destructive text-sm', className)} {...props}>\n {body}\n </p>\n );\n}\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n"],"mappings":";;;;;;;AAgBA,IAAM,IAAO,GASP,IAAmB,EAAqC,CAAC,CAA0B,GAMnF,IAAkB,EAAoC,CAAC,CAAyB,GAEhF,KAGJ,EACA,GAAG,QACuC;CAC1C,IAAM,IAAQ,SAAe,EAAE,MAAM,EAAM,KAAK,IAAI,CAAC,EAAM,IAAI,CAAC;CAEhE,OACE,kBAAC,EAAiB,UAAlB;EAAkC;YAChC,kBAAC,GAAD,EAAY,GAAI,EAAQ,CAAA;CACC,CAAA;AAE/B,GAEM,UAAqB;CACzB,IAAM,IAAe,EAAW,CAAgB,GAC1C,IAAc,EAAW,CAAe,GACxC,EAAE,qBAAkB,EAAe,GACnC,IAAY,EAAa,EAAE,MAAM,EAAa,KAAK,CAAC,GACpD,IAAa,EAAc,EAAa,MAAM,CAAS;CAE7D,IAAI,CAAC,GACH,MAAU,MAAM,gDAAgD;CAGlE,IAAM,EAAE,UAAO;CAEf,OAAO;EACL;EACA,MAAM,EAAa;EACnB,YAAY,GAAG,EAAG;EAClB,mBAAmB,GAAG,EAAG;EACzB,eAAe,GAAG,EAAG;EACrB,GAAG;CACL;AACF;AAEA,SAAS,EAAS,EAAE,cAAW,GAAG,KAAsC;CACtE,IAAM,IAAK,EAAM,GACX,IAAQ,SAAe,EAAE,MAAG,IAAI,CAAC,CAAE,CAAC;CAE1C,OACE,kBAAC,EAAgB,UAAjB;EAAiC;YAC/B,kBAAC,OAAD;GAAK,aAAU;GAAY,WAAW,EAAG,cAAc,CAAS;GAAG,GAAI;EAAQ,CAAA;CACvD,CAAA;AAE9B;AAEA,SAAS,EAAU,EAAE,cAAW,GAAG,KAA6C;CAC9E,IAAM,EAAE,UAAO,kBAAe,EAAa;CAE3C,OACE,kBAAC,GAAD;EACE,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,EAAG,sCAAsC,CAAS;EAC7D,SAAS;EACT,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EAAE,eAA2C;CAChE,IAAM,EAAE,UAAO,eAAY,sBAAmB,qBAAkB,EAAa,GACvE,IAAQ,EAAS,KAAK,CAAQ;CAMpC,OAJK,EAAwC,CAAK,IAI3C,EAAa,GAAO;EACzB,aAAa;EACb,IAAI;EACJ,oBAAqB,IAA4B,GAAG,EAAkB,GAAG,MAA5C;EAC7B,gBAAgB,CAAC,CAAC;CACpB,CAAC,IARQ,kBAAA,GAAA,EAAG,YAAW,CAAA;AASzB;AAEA,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAoC;CAC3E,IAAM,EAAE,yBAAsB,EAAa;CAE3C,OACE,kBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,EAAG,iCAAiC,CAAS;EACxD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EAAE,cAAW,GAAG,KAAoC;CACvE,IAAM,EAAE,UAAO,qBAAkB,EAAa,GACxC,IAAO,IAAQ,OAAO,GAAO,WAAW,EAAE,IAAI,EAAM;CAM1D,OAJK,IAKH,kBAAC,KAAD;EAAG,aAAU;EAAe,IAAI;EAAe,WAAW,EAAG,4BAA4B,CAAS;EAAG,GAAI;YACtG;CACA,CAAA,IANI;AAQX"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`),n=require(`./textarea.cjs`),r=require(`./button.cjs`),i=require(`./input.cjs`);let a=require(`react/jsx-runtime`),o=require(`class-variance-authority`),s=require(`react`);s=e.__toESM(s,1);function c({className:e,...n}){return(0,a.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:t.cn(`group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5`,e),...n})}var l=(0,o.cva)(`flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]`,"inline-end":`order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]`,"block-start":`order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2`,"block-end":`order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2`}},defaultVariants:{align:`inline-start`}});function u({className:e,align:n=`inline-start`,...r}){return(0,a.jsx)(`div`,{role:`group`,"data-slot":`input-group-addon`,"data-align":n,className:t.cn(l({align:n}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...r})}var d=(0,o.cva)(`flex items-center gap-2 text-sm shadow-none`,{variants:{size:{xs:`h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5`,sm:``,"icon-xs":`size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0`,"icon-sm":`size-8 p-0 has-[>svg]:p-0`}},defaultVariants:{size:`xs`}});function f({className:e,type:n=`button`,variant:i=`ghost`,size:o=`xs`,...s}){return(0,a.jsx)(r.Button,{type:n,"data-size":o,variant:i,className:t.cn(d({size:o}),e),...s})}function p({className:e,...n}){return(0,a.jsx)(`span`,{className:t.cn(`flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,e),...n})}function m({className:e,...n}){return(0,a.jsx)(i.Input,{"data-slot":`input-group-control`,className:t.cn(`flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,e),...n})}function h({className:e,...r}){return(0,a.jsx)(n.Textarea,{"data-slot":`input-group-control`,className:t.cn(`flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,e),...r})}exports.InputGroup=c,exports.InputGroupAddon=u,exports.InputGroupButton=f,exports.InputGroupInput=m,exports.InputGroupText=p,exports.InputGroupTextarea=h;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../lib/utils.cjs"),n=require("./textarea.cjs"),r=require("./button.cjs"),i=require("./input.cjs");let a=require("react/jsx-runtime"),o=require("class-variance-authority"),s=require("react");s=e.__toESM(s,1);function c({className:e,...n}){return(0,a.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:t.cn(`group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5`,e),...n})}var l=(0,o.cva)(`flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]`,"inline-end":`order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]`,"block-start":`order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2`,"block-end":`order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2`}},defaultVariants:{align:`inline-start`}});function u({className:e,align:n=`inline-start`,...r}){return(0,a.jsx)(`div`,{role:`group`,"data-slot":`input-group-addon`,"data-align":n,className:t.cn(l({align:n}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...r})}var d=(0,o.cva)(`flex items-center gap-2 text-sm shadow-none`,{variants:{size:{xs:`h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5`,sm:``,"icon-xs":`size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0`,"icon-sm":`size-8 p-0 has-[>svg]:p-0`}},defaultVariants:{size:`xs`}});function f({className:e,type:n=`button`,variant:i=`ghost`,size:o=`xs`,...s}){return(0,a.jsx)(r.Button,{type:n,"data-size":o,variant:i,className:t.cn(d({size:o}),e),...s})}function p({className:e,...n}){return(0,a.jsx)(`span`,{className:t.cn(`flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,e),...n})}function m({className:e,...n}){return(0,a.jsx)(i.Input,{"data-slot":`input-group-control`,className:t.cn(`flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,e),...n})}function h({className:e,...r}){return(0,a.jsx)(n.Textarea,{"data-slot":`input-group-control`,className:t.cn(`flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent`,e),...r})}exports.InputGroup=c,exports.InputGroupAddon=u,exports.InputGroupButton=f,exports.InputGroupInput=m,exports.InputGroupText=p,exports.InputGroupTextarea=h;
2
2
  //# sourceMappingURL=input-group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.cjs","names":[],"sources":["../../src/elements/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Button } from '@/elements/button';\nimport { Input } from '@/elements/input';\nimport { Textarea } from '@/elements/textarea';\nimport { cn } from '@/lib/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // The click handler is a pointer-only convenience that forwards focus to the sibling input,\n // which is itself the keyboard-accessible control — no keyboard handler is needed.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };\n"],"mappings":"+VAUA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,KAAK,QACL,UAAW,EAAA,GACT,wlCACA,EACD,CACD,GAAI,EACJ,CAAA,CAIN,IAAM,GAAA,EAAA,EAAA,KACJ,0PACA,CACE,SAAU,CACR,MAAO,CACL,eAAgB,uEAChB,aAAc,sEACd,cACE,oGACF,YAAa,mGACd,CACF,CACD,gBAAiB,CACf,MAAO,eACR,CACF,CACF,CAED,SAAS,EAAgB,CACvB,YACA,QAAQ,eACR,GAAG,GAC0E,CAC7E,OAIE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,QACL,YAAU,oBACV,aAAY,EACZ,UAAW,EAAA,GAAG,EAAwB,CAAE,QAAO,CAAC,CAAE,EAAU,CAC5D,QAAU,GAAM,CACT,EAAE,OAAuB,QAAQ,SAAS,EAG/C,EAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO,EAEhE,GAAI,EACJ,CAAA,CAIN,IAAM,GAAA,EAAA,EAAA,KAA+B,8CAA+C,CAClF,SAAU,CACR,KAAM,CACJ,GAAI,4FACJ,GAAI,GACJ,UAAW,8DACX,UAAW,4BACZ,CACF,CACD,gBAAiB,CACf,KAAM,KACP,CACF,CAAC,CAEF,SAAS,EAAiB,CACxB,YACA,OAAO,SACP,UAAU,QACV,OAAO,KACP,GAAG,GAIA,CACH,OACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACQ,OACN,YAAW,EACF,UACT,UAAW,EAAA,GAAG,EAAyB,CAAE,OAAM,CAAC,CAAE,EAAU,CAC5D,GAAI,EACJ,CAAA,CAIN,SAAS,EAAe,CAAE,YAAW,GAAG,GAAuC,CAC7E,OACE,EAAA,EAAA,KAAC,OAAD,CACE,UAAW,EAAA,GACT,yHACA,EACD,CACD,GAAI,EACJ,CAAA,CAIN,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAwC,CAC/E,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACE,YAAU,sBACV,UAAW,EAAA,GACT,mLACA,EACD,CACD,GAAI,EACJ,CAAA,CAIN,SAAS,EAAmB,CAAE,YAAW,GAAG,GAA2C,CACrF,OACE,EAAA,EAAA,KAAC,EAAA,SAAD,CACE,YAAU,sBACV,UAAW,EAAA,GACT,oMACA,EACD,CACD,GAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"input-group.cjs","names":[],"sources":["../../src/elements/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Button } from '@/elements/button';\nimport { Input } from '@/elements/input';\nimport { Textarea } from '@/elements/textarea';\nimport { cn } from '@/lib/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // The click handler is a pointer-only convenience that forwards focus to the sibling input,\n // which is itself the keyboard-accessible control — no keyboard handler is needed.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };\n"],"mappings":"+VAUA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,KAAK,QACL,UAAW,EAAA,GACT,wlCACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,IAAM,GAAA,EAAA,EAAA,KACJ,0PACA,CACE,SAAU,CACR,MAAO,CACL,eAAgB,uEAChB,aAAc,sEACd,cACE,oGACF,YAAa,kGACf,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAEA,SAAS,EAAgB,CACvB,YACA,QAAQ,eACR,GAAG,GAC0E,CAC7E,OAIE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,QACL,YAAU,oBACV,aAAY,EACZ,UAAW,EAAA,GAAG,EAAwB,CAAE,OAAM,CAAC,EAAG,CAAS,EAC3D,QAAU,GAAM,CACT,EAAE,OAAuB,QAAQ,QAAQ,GAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAM,CAC/D,EACA,GAAI,CACL,CAAA,CAEL,CAEA,IAAM,GAAA,EAAA,EAAA,KAA+B,8CAA+C,CAClF,SAAU,CACR,KAAM,CACJ,GAAI,4FACJ,GAAI,GACJ,UAAW,8DACX,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAED,SAAS,EAAiB,CACxB,YACA,OAAO,SACP,UAAU,QACV,OAAO,KACP,GAAG,GAIA,CACH,OACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACQ,OACN,YAAW,EACF,UACT,UAAW,EAAA,GAAG,EAAyB,CAAE,MAAK,CAAC,EAAG,CAAS,EAC3D,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAe,CAAE,YAAW,GAAG,GAAuC,CAC7E,OACE,EAAA,EAAA,KAAC,OAAD,CACE,UAAW,EAAA,GACT,yHACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAwC,CAC/E,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACE,YAAU,sBACV,UAAW,EAAA,GACT,mLACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAmB,CAAE,YAAW,GAAG,GAA2C,CACrF,OACE,EAAA,EAAA,KAAC,EAAA,SAAD,CACE,YAAU,sBACV,UAAW,EAAA,GACT,oMACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -1,18 +1,18 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  import { Button } from '@/elements/button';
4
- declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
4
+ declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
5
5
  declare const inputGroupAddonVariants: (props?: ({
6
6
  align?: "inline-end" | "inline-start" | "block-start" | "block-end" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): import("react/jsx-runtime").JSX.Element;
8
+ declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
9
9
  declare const inputGroupButtonVariants: (props?: ({
10
10
  size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
11
11
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
12
  declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
13
13
  type?: 'button' | 'submit' | 'reset';
14
- }): import("react/jsx-runtime").JSX.Element;
15
- declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
16
- declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): import("react/jsx-runtime").JSX.Element;
17
- declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): import("react/jsx-runtime").JSX.Element;
14
+ }): React.JSX.Element;
15
+ declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
16
+ declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): React.JSX.Element;
17
+ declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
18
18
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.js","names":[],"sources":["../../src/elements/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Button } from '@/elements/button';\nimport { Input } from '@/elements/input';\nimport { Textarea } from '@/elements/textarea';\nimport { cn } from '@/lib/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // The click handler is a pointer-only convenience that forwards focus to the sibling input,\n // which is itself the keyboard-accessible control — no keyboard handler is needed.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };\n"],"mappings":";;;;;;;;;AAUA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;AACxE,QACE,kBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,EACT,ylCACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,IAAM,IAA0B,EAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBAAgB;EAChB,cAAc;EACd,eACE;EACF,aAAa;EACd,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAED,SAAS,EAAgB,EACvB,cACA,WAAQ,gBACR,GAAG,KAC0E;AAC7E,QAIE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,EAAG,EAAwB,EAAE,UAAO,CAAC,EAAE,EAAU;EAC5D,UAAU,MAAM;AACT,KAAE,OAAuB,QAAQ,SAAS,IAG/C,EAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;EACJ,CAAA;;AAIN,IAAM,IAA2B,EAAI,+CAA+C;CAClF,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CAAC;AAEF,SAAS,EAAiB,EACxB,cACA,UAAO,UACP,aAAU,SACV,UAAO,MACP,GAAG,KAIA;AACH,QACE,kBAAC,GAAD;EACQ;EACN,aAAW;EACF;EACT,WAAW,EAAG,EAAyB,EAAE,SAAM,CAAC,EAAE,EAAU;EAC5D,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAe,EAAE,cAAW,GAAG,KAAuC;AAC7E,QACE,kBAAC,QAAD;EACE,WAAW,EACT,0HACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAwC;AAC/E,QACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,oLACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAmB,EAAE,cAAW,GAAG,KAA2C;AACrF,QACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,qMACA,EACD;EACD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"input-group.js","names":[],"sources":["../../src/elements/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Button } from '@/elements/button';\nimport { Input } from '@/elements/input';\nimport { Textarea } from '@/elements/textarea';\nimport { cn } from '@/lib/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',\n 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',\n 'block-start':\n 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',\n 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n // The click handler is a pointer-only convenience that forwards focus to the sibling input,\n // which is itself the keyboard-accessible control — no keyboard handler is needed.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };\n"],"mappings":";;;;;;;;;AAUA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,EACT,ylCACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,IAA0B,EAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBAAgB;EAChB,cAAc;EACd,eACE;EACF,aAAa;CACf,EACF;CACA,iBAAiB,EACf,OAAO,eACT;AACF,CACF;AAEA,SAAS,EAAgB,EACvB,cACA,WAAQ,gBACR,GAAG,KAC0E;CAC7E,OAIE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,EAAG,EAAwB,EAAE,SAAM,CAAC,GAAG,CAAS;EAC3D,UAAU,MAAM;GACT,EAAE,OAAuB,QAAQ,QAAQ,KAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,GAAG,MAAM;EAC/D;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,IAA2B,EAAI,+CAA+C;CAClF,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;CACb,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AAED,SAAS,EAAiB,EACxB,cACA,UAAO,UACP,aAAU,SACV,UAAO,MACP,GAAG,KAIA;CACH,OACE,kBAAC,GAAD;EACQ;EACN,aAAW;EACF;EACT,WAAW,EAAG,EAAyB,EAAE,QAAK,CAAC,GAAG,CAAS;EAC3D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAe,EAAE,cAAW,GAAG,KAAuC;CAC7E,OACE,kBAAC,QAAD;EACE,WAAW,EACT,0HACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAwC;CAC/E,OACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,oLACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAmB,EAAE,cAAW,GAAG,KAA2C;CACrF,OACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,qMACA,CACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react/jsx-runtime`),n=require(`@base-ui/react/input`);function r({className:r,type:i,...a}){return(0,t.jsx)(n.Input,{type:i,"data-slot":`input`,className:e.cn(`h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,r),...a})}exports.Input=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../lib/utils.cjs");let t=require("react/jsx-runtime"),n=require("@base-ui/react/input");function r({className:r,type:i,...a}){return(0,t.jsx)(n.Input,{type:i,"data-slot":`input`,className:e.cn(`h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,r),...a})}exports.Input=r;
2
2
  //# sourceMappingURL=input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.cjs","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"yNAIA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACQ,OACN,YAAU,QACV,UAAW,EAAA,GACT,4oBACA,EACD,CACD,GAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"input.cjs","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"4KAIA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,EAAA,MAAD,CACQ,OACN,YAAU,QACV,UAAW,EAAA,GACT,4oBACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- declare function Input({ className, type, ...props }: React.ComponentProps<'input'>): import("react/jsx-runtime").JSX.Element;
1
+ declare function Input({ className, type, ...props }: React.ComponentProps<'input'>): import("react").JSX.Element;
2
2
  export { Input };
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;AAIA,SAAS,EAAM,EAAE,cAAW,SAAM,GAAG,KAAwC;AAC3E,QACE,kBAAC,GAAD;EACQ;EACN,aAAU;EACV,WAAW,EACT,6oBACA,EACD;EACD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;AAIA,SAAS,EAAM,EAAE,cAAW,SAAM,GAAG,KAAwC;CAC3E,OACE,kBAAC,GAAD;EACQ;EACN,aAAU;EACV,WAAW,EACT,6oBACA,CACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`);let n=require(`react/jsx-runtime`),r=require(`react`);r=e.__toESM(r,1);function i({className:e,...r}){return(0,n.jsx)(`label`,{"data-slot":`label`,className:t.cn(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...r})}exports.Label=i;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../lib/utils.cjs");let n=require("react/jsx-runtime"),r=require("react");r=e.__toESM(r,1);function i({className:e,...r}){return(0,n.jsx)(`label`,{"data-slot":`label`,className:t.cn(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...r})}exports.Label=i;
2
2
  //# sourceMappingURL=label.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.cjs","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"0OAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OAEE,EAAA,EAAA,KAAC,QAAD,CACE,YAAU,QACV,UAAW,EAAA,GACT,sNACA,EACD,CACD,GAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"label.cjs","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"0OAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OAEE,EAAA,EAAA,KAAC,QAAD,CACE,YAAU,QACV,UAAW,EAAA,GACT,sNACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -1,3 +1,3 @@
1
1
  import * as React from 'react';
2
- declare function Label({ className, ...props }: React.ComponentProps<'label'>): import("react/jsx-runtime").JSX.Element;
2
+ declare function Label({ className, ...props }: React.ComponentProps<'label'>): React.JSX.Element;
3
3
  export { Label };
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;AAMA,SAAS,EAAM,EAAE,cAAW,GAAG,KAAwC;AACrE,QAEE,kBAAC,SAAD;EACE,aAAU;EACV,WAAW,EACT,uNACA,EACD;EACD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"label.js","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;AAMA,SAAS,EAAM,EAAE,cAAW,GAAG,KAAwC;CACrE,OAEE,kBAAC,SAAD;EACE,aAAU;EACV,WAAW,EACT,uNACA,CACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react/jsx-runtime`),n=require(`class-variance-authority`),r=require(`@base-ui/react/use-render`);var i=(0,n.cva)(`inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer`,{variants:{variant:{default:``,external:``}},defaultVariants:{variant:`default`}}),a=null;function o(e){a=e}function s(){return a}function c({className:t,variant:n,render:a,...o}){let s=n===`external`&&!a?{target:`_blank`,rel:`noopener noreferrer`}:{};return(0,r.useRender)({render:a,defaultTagName:`a`,props:{"data-slot":`link`,className:e.cn(i({variant:n,className:t})),...s,...o}})}function l({className:n,variant:r,...o}){let s=a||`a`;return(0,t.jsx)(s,{"data-slot":`link`,className:e.cn(i({variant:r,className:n})),...r===`external`&&s===`a`?{target:`_blank`,rel:`noopener noreferrer`}:{},...o})}exports.Link=c,exports.RouterLink=l,exports.getLinkComponent=s,exports.linkStyles=i,exports.setLinkComponent=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../lib/utils.cjs");let t=require("react/jsx-runtime"),n=require("class-variance-authority"),r=require("@base-ui/react/use-render");var i=(0,n.cva)(`inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer`,{variants:{variant:{default:``,external:``}},defaultVariants:{variant:`default`}}),a=null;function o(e){a=e}function s(){return a}function c({className:t,variant:n,render:a,...o}){let s=n===`external`&&!a?{target:`_blank`,rel:`noopener noreferrer`}:{};return(0,r.useRender)({render:a,defaultTagName:`a`,props:{"data-slot":`link`,className:e.cn(i({variant:n,className:t})),...s,...o}})}function l({className:n,variant:r,...o}){let s=a||`a`;return(0,t.jsx)(s,{"data-slot":`link`,className:e.cn(i({variant:r,className:n})),...r===`external`&&s===`a`?{target:`_blank`,rel:`noopener noreferrer`}:{},...o})}exports.Link=c,exports.RouterLink=l,exports.getLinkComponent=s,exports.linkStyles=i,exports.setLinkComponent=o;
2
2
  //# sourceMappingURL=link.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.cjs","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst linkStyles = cva(\n 'inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer',\n {\n variants: {\n variant: {\n default: '',\n external: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type LinkVariantProps = VariantProps<typeof linkStyles>;\n\ntype LinkComponent = React.ElementType;\n\nlet configuredLinkComponent: LinkComponent | null = null;\n\n/**\n * Set a custom component to be used by `RouterLink` (e.g. your router's Link component).\n *\n * @example\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link } from 'react-router-dom';\n * setLinkComponent(Link);\n */\nfunction setLinkComponent(component: LinkComponent) {\n configuredLinkComponent = component;\n}\n\n/**\n * Get the currently configured link component.\n */\nfunction getLinkComponent(): LinkComponent | null {\n return configuredLinkComponent;\n}\n\ntype LinkProps = React.ComponentProps<'a'> &\n LinkVariantProps & {\n render?: useRender.RenderProp;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `render` for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.render - render as a different element (e.g. `render={<RouterLink to=\"...\" />}`)\n */\nfunction Link({ className, variant, render, ...props }: LinkProps) {\n const externalProps = variant === 'external' && !render ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\n return useRender({\n render,\n defaultTagName: 'a',\n props: {\n 'data-slot': 'link',\n className: cn(linkStyles({ variant, className })),\n ...externalProps,\n ...props,\n },\n });\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;\n\n/**\n * `RouterLink` renders using the component set via `setLinkComponent()`,\n * falling back to a plain `<a>` tag if none has been configured.\n *\n * @example\n * // In your app entry:\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link as RRLink } from 'react-router-dom';\n * setLinkComponent(RRLink);\n *\n * // Then use RouterLink anywhere:\n * <RouterLink to=\"/dashboard\">Dashboard</RouterLink>\n */\nfunction RouterLink({ className, variant, ...props }: RouterLinkProps) {\n const Comp = configuredLinkComponent || 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && Comp === 'a' ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\nexport { Link, RouterLink, linkStyles, setLinkComponent, getLinkComponent };\n"],"mappings":"oQAKA,IAAM,GAAA,EAAA,EAAA,KACJ,8LACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,GACT,SAAU,GACX,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CACF,CAMG,EAAgD,KAUpD,SAAS,EAAiB,EAA0B,CAClD,EAA0B,EAM5B,SAAS,GAAyC,CAChD,OAAO,EAgBT,SAAS,EAAK,CAAE,YAAW,UAAS,SAAQ,GAAG,GAAoB,CACjE,IAAM,EAAgB,IAAY,YAAc,CAAC,EAAS,CAAE,OAAQ,SAAU,IAAK,sBAAuB,CAAG,EAAE,CAE/G,OAAA,EAAA,EAAA,WAAiB,CACf,SACA,eAAgB,IAChB,MAAO,CACL,YAAa,OACb,UAAW,EAAA,GAAG,EAAW,CAAE,UAAS,YAAW,CAAC,CAAC,CACjD,GAAG,EACH,GAAG,EACJ,CACF,CAAC,CAkBJ,SAAS,EAAW,CAAE,YAAW,UAAS,GAAG,GAA0B,CACrE,IAAM,EAAO,GAA2B,IAExC,OACE,EAAA,EAAA,KAAC,EAAD,CACE,YAAU,OACV,UAAW,EAAA,GAAG,EAAW,CAAE,UAAS,YAAW,CAAC,CAAC,CACjD,GAAK,IAAY,YAAc,IAAS,IAAM,CAAE,OAAQ,SAAU,IAAK,sBAAuB,CAAG,EAAE,CACnG,GAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"link.cjs","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst linkStyles = cva(\n 'inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer',\n {\n variants: {\n variant: {\n default: '',\n external: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type LinkVariantProps = VariantProps<typeof linkStyles>;\n\ntype LinkComponent = React.ElementType;\n\nlet configuredLinkComponent: LinkComponent | null = null;\n\n/**\n * Set a custom component to be used by `RouterLink` (e.g. your router's Link component).\n *\n * @example\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link } from 'react-router-dom';\n * setLinkComponent(Link);\n */\nfunction setLinkComponent(component: LinkComponent) {\n configuredLinkComponent = component;\n}\n\n/**\n * Get the currently configured link component.\n */\nfunction getLinkComponent(): LinkComponent | null {\n return configuredLinkComponent;\n}\n\ntype LinkProps = React.ComponentProps<'a'> &\n LinkVariantProps & {\n render?: useRender.RenderProp;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `render` for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.render - render as a different element (e.g. `render={<RouterLink to=\"...\" />}`)\n */\nfunction Link({ className, variant, render, ...props }: LinkProps) {\n const externalProps = variant === 'external' && !render ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\n return useRender({\n render,\n defaultTagName: 'a',\n props: {\n 'data-slot': 'link',\n className: cn(linkStyles({ variant, className })),\n ...externalProps,\n ...props,\n },\n });\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;\n\n/**\n * `RouterLink` renders using the component set via `setLinkComponent()`,\n * falling back to a plain `<a>` tag if none has been configured.\n *\n * @example\n * // In your app entry:\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link as RRLink } from 'react-router-dom';\n * setLinkComponent(RRLink);\n *\n * // Then use RouterLink anywhere:\n * <RouterLink to=\"/dashboard\">Dashboard</RouterLink>\n */\nfunction RouterLink({ className, variant, ...props }: RouterLinkProps) {\n const Comp = configuredLinkComponent || 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && Comp === 'a' ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\nexport { Link, RouterLink, linkStyles, setLinkComponent, getLinkComponent };\n"],"mappings":"uNAKA,IAAM,GAAA,EAAA,EAAA,KACJ,8LACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,GACT,SAAU,EACZ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAMI,EAAgD,KAUpD,SAAS,EAAiB,EAA0B,CAClD,EAA0B,CAC5B,CAKA,SAAS,GAAyC,CAChD,OAAO,CACT,CAeA,SAAS,EAAK,CAAE,YAAW,UAAS,SAAQ,GAAG,GAAoB,CACjE,IAAM,EAAgB,IAAY,YAAc,CAAC,EAAS,CAAE,OAAQ,SAAU,IAAK,qBAAsB,EAAI,CAAC,EAE9G,OAAA,EAAA,EAAA,WAAiB,CACf,SACA,eAAgB,IAChB,MAAO,CACL,YAAa,OACb,UAAW,EAAA,GAAG,EAAW,CAAE,UAAS,WAAU,CAAC,CAAC,EAChD,GAAG,EACH,GAAG,CACL,CACF,CAAC,CACH,CAiBA,SAAS,EAAW,CAAE,YAAW,UAAS,GAAG,GAA0B,CACrE,IAAM,EAAO,GAA2B,IAExC,OACE,EAAA,EAAA,KAAC,EAAD,CACE,YAAU,OACV,UAAW,EAAA,GAAG,EAAW,CAAE,UAAS,WAAU,CAAC,CAAC,EAChD,GAAK,IAAY,YAAc,IAAS,IAAM,CAAE,OAAQ,SAAU,IAAK,qBAAsB,EAAI,CAAC,EAClG,GAAI,CACL,CAAA,CAEL"}
@@ -44,5 +44,5 @@ type RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;
44
44
  * // Then use RouterLink anywhere:
45
45
  * <RouterLink to="/dashboard">Dashboard</RouterLink>
46
46
  */
47
- declare function RouterLink({ className, variant, ...props }: RouterLinkProps): import("react/jsx-runtime").JSX.Element;
47
+ declare function RouterLink({ className, variant, ...props }: RouterLinkProps): import("react").JSX.Element;
48
48
  export { Link, RouterLink, linkStyles, setLinkComponent, getLinkComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst linkStyles = cva(\n 'inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer',\n {\n variants: {\n variant: {\n default: '',\n external: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type LinkVariantProps = VariantProps<typeof linkStyles>;\n\ntype LinkComponent = React.ElementType;\n\nlet configuredLinkComponent: LinkComponent | null = null;\n\n/**\n * Set a custom component to be used by `RouterLink` (e.g. your router's Link component).\n *\n * @example\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link } from 'react-router-dom';\n * setLinkComponent(Link);\n */\nfunction setLinkComponent(component: LinkComponent) {\n configuredLinkComponent = component;\n}\n\n/**\n * Get the currently configured link component.\n */\nfunction getLinkComponent(): LinkComponent | null {\n return configuredLinkComponent;\n}\n\ntype LinkProps = React.ComponentProps<'a'> &\n LinkVariantProps & {\n render?: useRender.RenderProp;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `render` for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.render - render as a different element (e.g. `render={<RouterLink to=\"...\" />}`)\n */\nfunction Link({ className, variant, render, ...props }: LinkProps) {\n const externalProps = variant === 'external' && !render ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\n return useRender({\n render,\n defaultTagName: 'a',\n props: {\n 'data-slot': 'link',\n className: cn(linkStyles({ variant, className })),\n ...externalProps,\n ...props,\n },\n });\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;\n\n/**\n * `RouterLink` renders using the component set via `setLinkComponent()`,\n * falling back to a plain `<a>` tag if none has been configured.\n *\n * @example\n * // In your app entry:\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link as RRLink } from 'react-router-dom';\n * setLinkComponent(RRLink);\n *\n * // Then use RouterLink anywhere:\n * <RouterLink to=\"/dashboard\">Dashboard</RouterLink>\n */\nfunction RouterLink({ className, variant, ...props }: RouterLinkProps) {\n const Comp = configuredLinkComponent || 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && Comp === 'a' ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\nexport { Link, RouterLink, linkStyles, setLinkComponent, getLinkComponent };\n"],"mappings":";;;;;AAKA,IAAM,IAAa,EACjB,+LACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,UAAU;EACX,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF,EAMG,IAAgD;AAUpD,SAAS,EAAiB,GAA0B;AAClD,KAA0B;;AAM5B,SAAS,IAAyC;AAChD,QAAO;;AAgBT,SAAS,EAAK,EAAE,cAAW,YAAS,WAAQ,GAAG,KAAoB;CACjE,IAAM,IAAgB,MAAY,cAAc,CAAC,IAAS;EAAE,QAAQ;EAAU,KAAK;EAAuB,GAAG,EAAE;AAE/G,QAAO,EAAU;EACf;EACA,gBAAgB;EAChB,OAAO;GACL,aAAa;GACb,WAAW,EAAG,EAAW;IAAE;IAAS;IAAW,CAAC,CAAC;GACjD,GAAG;GACH,GAAG;GACJ;EACF,CAAC;;AAkBJ,SAAS,EAAW,EAAE,cAAW,YAAS,GAAG,KAA0B;CACrE,IAAM,IAAO,KAA2B;AAExC,QACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EAAG,EAAW;GAAE;GAAS;GAAW,CAAC,CAAC;EACjD,GAAK,MAAY,cAAc,MAAS,MAAM;GAAE,QAAQ;GAAU,KAAK;GAAuB,GAAG,EAAE;EACnG,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"link.js","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst linkStyles = cva(\n 'inline-flex items-center gap-1 text-primary underline-offset-4 hover:underline transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] rounded-sm cursor-pointer',\n {\n variants: {\n variant: {\n default: '',\n external: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type LinkVariantProps = VariantProps<typeof linkStyles>;\n\ntype LinkComponent = React.ElementType;\n\nlet configuredLinkComponent: LinkComponent | null = null;\n\n/**\n * Set a custom component to be used by `RouterLink` (e.g. your router's Link component).\n *\n * @example\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link } from 'react-router-dom';\n * setLinkComponent(Link);\n */\nfunction setLinkComponent(component: LinkComponent) {\n configuredLinkComponent = component;\n}\n\n/**\n * Get the currently configured link component.\n */\nfunction getLinkComponent(): LinkComponent | null {\n return configuredLinkComponent;\n}\n\ntype LinkProps = React.ComponentProps<'a'> &\n LinkVariantProps & {\n render?: useRender.RenderProp;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `render` for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.render - render as a different element (e.g. `render={<RouterLink to=\"...\" />}`)\n */\nfunction Link({ className, variant, render, ...props }: LinkProps) {\n const externalProps = variant === 'external' && !render ? { target: '_blank', rel: 'noopener noreferrer' } : {};\n\n return useRender({\n render,\n defaultTagName: 'a',\n props: {\n 'data-slot': 'link',\n className: cn(linkStyles({ variant, className })),\n ...externalProps,\n ...props,\n },\n });\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;\n\n/**\n * `RouterLink` renders using the component set via `setLinkComponent()`,\n * falling back to a plain `<a>` tag if none has been configured.\n *\n * @example\n * // In your app entry:\n * import { setLinkComponent } from '@kubetail/ui/elements/link';\n * import { Link as RRLink } from 'react-router-dom';\n * setLinkComponent(RRLink);\n *\n * // Then use RouterLink anywhere:\n * <RouterLink to=\"/dashboard\">Dashboard</RouterLink>\n */\nfunction RouterLink({ className, variant, ...props }: RouterLinkProps) {\n const Comp = configuredLinkComponent || 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && Comp === 'a' ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\nexport { Link, RouterLink, linkStyles, setLinkComponent, getLinkComponent };\n"],"mappings":";;;;;AAKA,IAAM,IAAa,EACjB,+LACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,UAAU;CACZ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF,GAMI,IAAgD;AAUpD,SAAS,EAAiB,GAA0B;CAClD,IAA0B;AAC5B;AAKA,SAAS,IAAyC;CAChD,OAAO;AACT;AAeA,SAAS,EAAK,EAAE,cAAW,YAAS,WAAQ,GAAG,KAAoB;CACjE,IAAM,IAAgB,MAAY,cAAc,CAAC,IAAS;EAAE,QAAQ;EAAU,KAAK;CAAsB,IAAI,CAAC;CAE9G,OAAO,EAAU;EACf;EACA,gBAAgB;EAChB,OAAO;GACL,aAAa;GACb,WAAW,EAAG,EAAW;IAAE;IAAS;GAAU,CAAC,CAAC;GAChD,GAAG;GACH,GAAG;EACL;CACF,CAAC;AACH;AAiBA,SAAS,EAAW,EAAE,cAAW,YAAS,GAAG,KAA0B;CACrE,IAAM,IAAO,KAA2B;CAExC,OACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EAAG,EAAW;GAAE;GAAS;EAAU,CAAC,CAAC;EAChD,GAAK,MAAY,cAAc,MAAS,MAAM;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EAClG,GAAI;CACL,CAAA;AAEL"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`),t=require(`./button.cjs`);let n=require(`react/jsx-runtime`),r=require(`lucide-react`);function i({className:t,...r}){return(0,n.jsx)(`nav`,{role:`navigation`,"aria-label":`pagination`,"data-slot":`pagination`,className:e.cn(`mx-auto flex w-full justify-center`,t),...r})}function a({className:t,...r}){return(0,n.jsx)(`ul`,{"data-slot":`pagination-content`,className:e.cn(`flex items-center gap-0.5`,t),...r})}function o({...e}){return(0,n.jsx)(`li`,{"data-slot":`pagination-item`,...e})}function s({className:r,isActive:i,size:a=`icon`,...o}){return(0,n.jsx)(t.Button,{variant:i?`outline`:`ghost`,size:a,className:e.cn(r),nativeButton:!1,render:(0,n.jsx)(`a`,{"aria-current":i?`page`:void 0,"data-slot":`pagination-link`,"data-active":i,...o})})}function c({className:t,text:i=`Previous`,...a}){return(0,n.jsxs)(s,{"aria-label":`Go to previous page`,size:`default`,className:e.cn(`pl-1.5!`,t),...a,children:[(0,n.jsx)(r.ChevronLeftIcon,{"data-icon":`inline-start`,className:`cn-rtl-flip`}),(0,n.jsx)(`span`,{className:`hidden sm:block`,children:i})]})}function l({className:t,text:i=`Next`,...a}){return(0,n.jsxs)(s,{"aria-label":`Go to next page`,size:`default`,className:e.cn(`pr-1.5!`,t),...a,children:[(0,n.jsx)(`span`,{className:`hidden sm:block`,children:i}),(0,n.jsx)(r.ChevronRightIcon,{"data-icon":`inline-end`,className:`cn-rtl-flip`})]})}function u({className:t,...i}){return(0,n.jsxs)(`span`,{"aria-hidden":!0,"data-slot":`pagination-ellipsis`,className:e.cn(`flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4`,t),...i,children:[(0,n.jsx)(r.MoreHorizontalIcon,{}),(0,n.jsx)(`span`,{className:`sr-only`,children:`More pages`})]})}exports.Pagination=i,exports.PaginationContent=a,exports.PaginationEllipsis=u,exports.PaginationItem=o,exports.PaginationLink=s,exports.PaginationNext=l,exports.PaginationPrevious=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../lib/utils.cjs"),t=require("./button.cjs");let n=require("react/jsx-runtime"),r=require("lucide-react");function i({className:t,...r}){return(0,n.jsx)(`nav`,{role:`navigation`,"aria-label":`pagination`,"data-slot":`pagination`,className:e.cn(`mx-auto flex w-full justify-center`,t),...r})}function a({className:t,...r}){return(0,n.jsx)(`ul`,{"data-slot":`pagination-content`,className:e.cn(`flex items-center gap-0.5`,t),...r})}function o({...e}){return(0,n.jsx)(`li`,{"data-slot":`pagination-item`,...e})}function s({className:r,isActive:i,size:a=`icon`,...o}){return(0,n.jsx)(t.Button,{variant:i?`outline`:`ghost`,size:a,className:e.cn(r),nativeButton:!1,render:(0,n.jsx)(`a`,{"aria-current":i?`page`:void 0,"data-slot":`pagination-link`,"data-active":i,...o})})}function c({className:t,text:i=`Previous`,...a}){return(0,n.jsxs)(s,{"aria-label":`Go to previous page`,size:`default`,className:e.cn(`pl-1.5!`,t),...a,children:[(0,n.jsx)(r.ChevronLeftIcon,{"data-icon":`inline-start`,className:`cn-rtl-flip`}),(0,n.jsx)(`span`,{className:`hidden sm:block`,children:i})]})}function l({className:t,text:i=`Next`,...a}){return(0,n.jsxs)(s,{"aria-label":`Go to next page`,size:`default`,className:e.cn(`pr-1.5!`,t),...a,children:[(0,n.jsx)(`span`,{className:`hidden sm:block`,children:i}),(0,n.jsx)(r.ChevronRightIcon,{"data-icon":`inline-end`,className:`cn-rtl-flip`})]})}function u({className:t,...i}){return(0,n.jsxs)(`span`,{"aria-hidden":!0,"data-slot":`pagination-ellipsis`,className:e.cn(`flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4`,t),...i,children:[(0,n.jsx)(r.MoreHorizontalIcon,{}),(0,n.jsx)(`span`,{className:`sr-only`,children:`More pages`})]})}exports.Pagination=i,exports.PaginationContent=a,exports.PaginationEllipsis=u,exports.PaginationItem=o,exports.PaginationLink=s,exports.PaginationNext=l,exports.PaginationPrevious=c;
2
2
  //# sourceMappingURL=pagination.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.cjs","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { Button } from '@/elements/button';\nimport { cn } from '@/lib/utils';\n\nfunction Pagination({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />;\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, 'size'> &\n React.ComponentProps<'a'>;\n\nfunction PaginationLink({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? 'outline' : 'ghost'}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n }\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n text = 'Previous',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to previous page\" size=\"default\" className={cn('pl-1.5!', className)} {...props}>\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n text = 'Next',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to next page\" size=\"default\" className={cn('pr-1.5!', className)} {...props}>\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\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 <MoreHorizontalIcon />\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":"2OAKA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,aACL,aAAW,aACX,YAAU,aACV,UAAW,EAAA,GAAG,qCAAsC,EAAU,CAC9D,GAAI,EACJ,CAAA,CAIN,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAqC,CAC9E,OAAO,EAAA,EAAA,KAAC,KAAD,CAAI,YAAU,qBAAqB,UAAW,EAAA,GAAG,4BAA6B,EAAU,CAAE,GAAI,EAAS,CAAA,CAGhH,SAAS,EAAe,CAAE,GAAG,GAAqC,CAChE,OAAO,EAAA,EAAA,KAAC,KAAD,CAAI,YAAU,kBAAkB,GAAI,EAAS,CAAA,CAQtD,SAAS,EAAe,CAAE,YAAW,WAAU,OAAO,OAAQ,GAAG,GAA8B,CAC7F,OACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,QAAS,EAAW,UAAY,QAC1B,OACN,UAAW,EAAA,GAAG,EAAU,CACxB,aAAc,GACd,QAEE,EAAA,EAAA,KAAC,IAAD,CAAG,eAAc,EAAW,OAAS,IAAA,GAAW,YAAU,kBAAkB,cAAa,EAAU,GAAI,EAAS,CAAA,CAElH,CAAA,CAIN,SAAS,EAAmB,CAC1B,YACA,OAAO,WACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CAAgB,aAAW,sBAAsB,KAAK,UAAU,UAAW,EAAA,GAAG,UAAW,EAAU,CAAE,GAAI,WAAzG,EACE,EAAA,EAAA,KAAC,EAAA,gBAAD,CAAiB,YAAU,eAAe,UAAU,cAAgB,CAAA,EACpE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAmB,EAAY,CAAA,CAChC,GAIrB,SAAS,EAAe,CACtB,YACA,OAAO,OACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CAAgB,aAAW,kBAAkB,KAAK,UAAU,UAAW,EAAA,GAAG,UAAW,EAAU,CAAE,GAAI,WAArG,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAmB,EAAY,CAAA,EAC/C,EAAA,EAAA,KAAC,EAAA,iBAAD,CAAkB,YAAU,aAAa,UAAU,cAAgB,CAAA,CACpD,GAIrB,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAuC,CACjF,OACE,EAAA,EAAA,MAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAW,EAAA,GAAG,+EAAgF,EAAU,CACxG,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,EAAA,mBAAD,EAAsB,CAAA,EACtB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAU,aAAiB,CAAA,CACtC"}
1
+ {"version":3,"file":"pagination.cjs","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { Button } from '@/elements/button';\nimport { cn } from '@/lib/utils';\n\nfunction Pagination({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />;\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, 'size'> &\n React.ComponentProps<'a'>;\n\nfunction PaginationLink({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? 'outline' : 'ghost'}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n }\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n text = 'Previous',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to previous page\" size=\"default\" className={cn('pl-1.5!', className)} {...props}>\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n text = 'Next',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to next page\" size=\"default\" className={cn('pr-1.5!', className)} {...props}>\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\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 <MoreHorizontalIcon />\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":"8LAKA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,aACL,aAAW,aACX,YAAU,aACV,UAAW,EAAA,GAAG,qCAAsC,CAAS,EAC7D,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAqC,CAC9E,OAAO,EAAA,EAAA,KAAC,KAAD,CAAI,YAAU,qBAAqB,UAAW,EAAA,GAAG,4BAA6B,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC/G,CAEA,SAAS,EAAe,CAAE,GAAG,GAAqC,CAChE,OAAO,EAAA,EAAA,KAAC,KAAD,CAAI,YAAU,kBAAkB,GAAI,CAAQ,CAAA,CACrD,CAOA,SAAS,EAAe,CAAE,YAAW,WAAU,OAAO,OAAQ,GAAG,GAA8B,CAC7F,OACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,QAAS,EAAW,UAAY,QAC1B,OACN,UAAW,EAAA,GAAG,CAAS,EACvB,aAAc,GACd,QAEE,EAAA,EAAA,KAAC,IAAD,CAAG,eAAc,EAAW,OAAS,IAAA,GAAW,YAAU,kBAAkB,cAAa,EAAU,GAAI,CAAQ,CAAA,CAElH,CAAA,CAEL,CAEA,SAAS,EAAmB,CAC1B,YACA,OAAO,WACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CAAgB,aAAW,sBAAsB,KAAK,UAAU,UAAW,EAAA,GAAG,UAAW,CAAS,EAAG,GAAI,WAAzG,EACE,EAAA,EAAA,KAAC,EAAA,gBAAD,CAAiB,YAAU,eAAe,UAAU,aAAe,CAAA,GACnE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAmB,CAAW,CAAA,CAChC,GAEpB,CAEA,SAAS,EAAe,CACtB,YACA,OAAO,OACP,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAD,CAAgB,aAAW,kBAAkB,KAAK,UAAU,UAAW,EAAA,GAAG,UAAW,CAAS,EAAG,GAAI,WAArG,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAmB,CAAW,CAAA,GAC9C,EAAA,EAAA,KAAC,EAAA,iBAAD,CAAkB,YAAU,aAAa,UAAU,aAAe,CAAA,CACpD,GAEpB,CAEA,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAuC,CACjF,OACE,EAAA,EAAA,MAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAW,EAAA,GAAG,+EAAgF,CAAS,EACvG,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,EAAA,mBAAD,CAAqB,CAAA,GACrB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAU,YAAgB,CAAA,CACtC,GAEV"}
@@ -1,16 +1,16 @@
1
1
  import { Button } from '@/elements/button';
2
- declare function Pagination({ className, ...props }: React.ComponentProps<'nav'>): import("react/jsx-runtime").JSX.Element;
3
- declare function PaginationContent({ className, ...props }: React.ComponentProps<'ul'>): import("react/jsx-runtime").JSX.Element;
4
- declare function PaginationItem({ ...props }: React.ComponentProps<'li'>): import("react/jsx-runtime").JSX.Element;
2
+ declare function Pagination({ className, ...props }: React.ComponentProps<'nav'>): import("react").JSX.Element;
3
+ declare function PaginationContent({ className, ...props }: React.ComponentProps<'ul'>): import("react").JSX.Element;
4
+ declare function PaginationItem({ ...props }: React.ComponentProps<'li'>): import("react").JSX.Element;
5
5
  type PaginationLinkProps = {
6
6
  isActive?: boolean;
7
7
  } & Pick<React.ComponentProps<typeof Button>, 'size'> & React.ComponentProps<'a'>;
8
- declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
8
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react").JSX.Element;
9
9
  declare function PaginationPrevious({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
10
10
  text?: string;
11
- }): import("react/jsx-runtime").JSX.Element;
11
+ }): import("react").JSX.Element;
12
12
  declare function PaginationNext({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
13
13
  text?: string;
14
- }): import("react/jsx-runtime").JSX.Element;
15
- declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
14
+ }): import("react").JSX.Element;
15
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>): import("react").JSX.Element;
16
16
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { Button } from '@/elements/button';\nimport { cn } from '@/lib/utils';\n\nfunction Pagination({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />;\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, 'size'> &\n React.ComponentProps<'a'>;\n\nfunction PaginationLink({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? 'outline' : 'ghost'}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n }\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n text = 'Previous',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to previous page\" size=\"default\" className={cn('pl-1.5!', className)} {...props}>\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n text = 'Next',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to next page\" size=\"default\" className={cn('pr-1.5!', className)} {...props}>\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\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 <MoreHorizontalIcon />\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":";;;;;AAKA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;AACxE,QACE,kBAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAW,EAAG,sCAAsC,EAAU;EAC9D,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAkB,EAAE,cAAW,GAAG,KAAqC;AAC9E,QAAO,kBAAC,MAAD;EAAI,aAAU;EAAqB,WAAW,EAAG,6BAA6B,EAAU;EAAE,GAAI;EAAS,CAAA;;AAGhH,SAAS,EAAe,EAAE,GAAG,KAAqC;AAChE,QAAO,kBAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAQtD,SAAS,EAAe,EAAE,cAAW,aAAU,UAAO,QAAQ,GAAG,KAA8B;AAC7F,QACE,kBAAC,GAAD;EACE,SAAS,IAAW,YAAY;EAC1B;EACN,WAAW,EAAG,EAAU;EACxB,cAAc;EACd,QAEE,kBAAC,KAAD;GAAG,gBAAc,IAAW,SAAS,KAAA;GAAW,aAAU;GAAkB,eAAa;GAAU,GAAI;GAAS,CAAA;EAElH,CAAA;;AAIN,SAAS,EAAmB,EAC1B,cACA,UAAO,YACP,GAAG,KAC+D;AAClE,QACE,kBAAC,GAAD;EAAgB,cAAW;EAAsB,MAAK;EAAU,WAAW,EAAG,WAAW,EAAU;EAAE,GAAI;YAAzG,CACE,kBAAC,GAAD;GAAiB,aAAU;GAAe,WAAU;GAAgB,CAAA,EACpE,kBAAC,QAAD;GAAM,WAAU;aAAmB;GAAY,CAAA,CAChC;;;AAIrB,SAAS,EAAe,EACtB,cACA,UAAO,QACP,GAAG,KAC+D;AAClE,QACE,kBAAC,GAAD;EAAgB,cAAW;EAAkB,MAAK;EAAU,WAAW,EAAG,WAAW,EAAU;EAAE,GAAI;YAArG,CACE,kBAAC,QAAD;GAAM,WAAU;aAAmB;GAAY,CAAA,EAC/C,kBAAC,GAAD;GAAkB,aAAU;GAAa,WAAU;GAAgB,CAAA,CACpD;;;AAIrB,SAAS,EAAmB,EAAE,cAAW,GAAG,KAAuC;AACjF,QACE,kBAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAW,EAAG,gFAAgF,EAAU;EACxG,GAAI;YAJN,CAME,kBAAC,GAAD,EAAsB,CAAA,EACtB,kBAAC,QAAD;GAAM,WAAU;aAAU;GAAiB,CAAA,CACtC"}
1
+ {"version":3,"file":"pagination.js","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { Button } from '@/elements/button';\nimport { cn } from '@/lib/utils';\n\nfunction Pagination({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-0.5', className)} {...props} />;\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, 'size'> &\n React.ComponentProps<'a'>;\n\nfunction PaginationLink({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? 'outline' : 'ghost'}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a aria-current={isActive ? 'page' : undefined} data-slot=\"pagination-link\" data-active={isActive} {...props} />\n }\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n text = 'Previous',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to previous page\" size=\"default\" className={cn('pl-1.5!', className)} {...props}>\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n text = 'Next',\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink aria-label=\"Go to next page\" size=\"default\" className={cn('pr-1.5!', className)} {...props}>\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\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 <MoreHorizontalIcon />\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":";;;;;AAKA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAW,EAAG,sCAAsC,CAAS;EAC7D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAkB,EAAE,cAAW,GAAG,KAAqC;CAC9E,OAAO,kBAAC,MAAD;EAAI,aAAU;EAAqB,WAAW,EAAG,6BAA6B,CAAS;EAAG,GAAI;CAAQ,CAAA;AAC/G;AAEA,SAAS,EAAe,EAAE,GAAG,KAAqC;CAChE,OAAO,kBAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;CAAQ,CAAA;AACrD;AAOA,SAAS,EAAe,EAAE,cAAW,aAAU,UAAO,QAAQ,GAAG,KAA8B;CAC7F,OACE,kBAAC,GAAD;EACE,SAAS,IAAW,YAAY;EAC1B;EACN,WAAW,EAAG,CAAS;EACvB,cAAc;EACd,QAEE,kBAAC,KAAD;GAAG,gBAAc,IAAW,SAAS,KAAA;GAAW,aAAU;GAAkB,eAAa;GAAU,GAAI;EAAQ,CAAA;CAElH,CAAA;AAEL;AAEA,SAAS,EAAmB,EAC1B,cACA,UAAO,YACP,GAAG,KAC+D;CAClE,OACE,kBAAC,GAAD;EAAgB,cAAW;EAAsB,MAAK;EAAU,WAAW,EAAG,WAAW,CAAS;EAAG,GAAI;YAAzG,CACE,kBAAC,GAAD;GAAiB,aAAU;GAAe,WAAU;EAAe,CAAA,GACnE,kBAAC,QAAD;GAAM,WAAU;aAAmB;EAAW,CAAA,CAChC;;AAEpB;AAEA,SAAS,EAAe,EACtB,cACA,UAAO,QACP,GAAG,KAC+D;CAClE,OACE,kBAAC,GAAD;EAAgB,cAAW;EAAkB,MAAK;EAAU,WAAW,EAAG,WAAW,CAAS;EAAG,GAAI;YAArG,CACE,kBAAC,QAAD;GAAM,WAAU;aAAmB;EAAW,CAAA,GAC9C,kBAAC,GAAD;GAAkB,aAAU;GAAa,WAAU;EAAe,CAAA,CACpD;;AAEpB;AAEA,SAAS,EAAmB,EAAE,cAAW,GAAG,KAAuC;CACjF,OACE,kBAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAW,EAAG,gFAAgF,CAAS;EACvG,GAAI;YAJN,CAME,kBAAC,GAAD,CAAqB,CAAA,GACrB,kBAAC,QAAD;GAAM,WAAU;aAAU;EAAgB,CAAA,CACtC;;AAEV"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react/jsx-runtime`),n=require(`@base-ui/react/popover`);function r({...e}){return(0,t.jsx)(n.Popover.Root,{...e})}function i({...e}){return(0,t.jsx)(n.Popover.Trigger,{"data-slot":`popover-trigger`,...e})}function a({className:r,align:i=`center`,side:a,sideOffset:o=4,...s}){return(0,t.jsx)(n.Popover.Portal,{children:(0,t.jsx)(n.Popover.Positioner,{align:i,side:a,sideOffset:o,children:(0,t.jsx)(n.Popover.Popup,{"data-slot":`popover-content`,className:e.cn(`bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden`,r),...s})})})}var o=n.Popover.Close;exports.Popover=r,exports.PopoverClose=o,exports.PopoverContent=a,exports.PopoverTrigger=i;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../lib/utils.cjs");let t=require("react/jsx-runtime"),n=require("@base-ui/react/popover");function r({...e}){return(0,t.jsx)(n.Popover.Root,{...e})}function i({...e}){return(0,t.jsx)(n.Popover.Trigger,{"data-slot":`popover-trigger`,...e})}function a({className:r,align:i=`center`,side:a,sideOffset:o=4,...s}){return(0,t.jsx)(n.Popover.Portal,{children:(0,t.jsx)(n.Popover.Positioner,{align:i,side:a,sideOffset:o,children:(0,t.jsx)(n.Popover.Popup,{"data-slot":`popover-content`,className:e.cn(`bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden`,r),...s})})})}var o=n.Popover.Close;exports.Popover=r,exports.PopoverClose=o,exports.PopoverContent=a,exports.PopoverTrigger=i;
2
2
  //# sourceMappingURL=popover.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.cjs","names":[],"sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n side,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Popup> & {\n align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];\n side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];\n sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} side={side} sideOffset={sideOffset}>\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":"wOAMA,SAAS,EAAQ,CAAE,GAAG,GAA6D,CACjF,OAAO,EAAA,EAAA,KAAC,EAAA,QAAiB,KAAlB,CAAuB,GAAI,EAAS,CAAA,CAG7C,SAAS,EAAe,CAAE,GAAG,GAAgE,CAC3F,OAAO,EAAA,EAAA,KAAC,EAAA,QAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAI,EAAS,CAAA,CAG5E,SAAS,EAAe,CACtB,YACA,QAAQ,SACR,OACA,aAAa,EACb,GAAG,GAKF,CACD,OACE,EAAA,EAAA,KAAC,EAAA,QAAiB,OAAlB,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,QAAiB,WAAlB,CAAoC,QAAa,OAAkB,uBACjE,EAAA,EAAA,KAAC,EAAA,QAAiB,MAAlB,CACE,YAAU,kBACV,UAAW,EAAA,GACT,uaACA,EACD,CACD,GAAI,EACJ,CAAA,CAC0B,CAAA,CACN,CAAA,CAI9B,IAAM,EAAe,EAAA,QAAiB"}
1
+ {"version":3,"file":"popover.cjs","names":[],"sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n side,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Popup> & {\n align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];\n side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];\n sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} side={side} sideOffset={sideOffset}>\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":"2LAMA,SAAS,EAAQ,CAAE,GAAG,GAA6D,CACjF,OAAO,EAAA,EAAA,KAAC,EAAA,QAAiB,KAAlB,CAAuB,GAAI,CAAQ,CAAA,CAC5C,CAEA,SAAS,EAAe,CAAE,GAAG,GAAgE,CAC3F,OAAO,EAAA,EAAA,KAAC,EAAA,QAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAI,CAAQ,CAAA,CAC3E,CAEA,SAAS,EAAe,CACtB,YACA,QAAQ,SACR,OACA,aAAa,EACb,GAAG,GAKF,CACD,OACE,EAAA,EAAA,KAAC,EAAA,QAAiB,OAAlB,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,QAAiB,WAAlB,CAAoC,QAAa,OAAkB,uBACjE,EAAA,EAAA,KAAC,EAAA,QAAiB,MAAlB,CACE,YAAU,kBACV,UAAW,EAAA,GACT,uaACA,CACF,EACA,GAAI,CACL,CAAA,CAC0B,CAAA,CACN,CAAA,CAE7B,CAEA,IAAM,EAAe,EAAA,QAAiB"}
@@ -1,10 +1,10 @@
1
1
  import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
2
- declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
- declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
2
+ declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react").JSX.Element;
3
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react").JSX.Element;
4
4
  declare function PopoverContent({ className, align, side, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Popup> & {
5
5
  align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];
6
6
  side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];
7
7
  sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];
8
- }): import("react/jsx-runtime").JSX.Element;
8
+ }): import("react").JSX.Element;
9
9
  declare const PopoverClose: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").PopoverCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
10
10
  export { Popover, PopoverClose, PopoverContent, PopoverTrigger };
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","names":[],"sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n side,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Popup> & {\n align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];\n side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];\n sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} side={side} sideOffset={sideOffset}>\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":";;;;;AAMA,SAAS,EAAQ,EAAE,GAAG,KAA6D;AACjF,QAAO,kBAAC,EAAiB,MAAlB,EAAuB,GAAI,GAAS,CAAA;;AAG7C,SAAS,EAAe,EAAE,GAAG,KAAgE;AAC3F,QAAO,kBAAC,EAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAG5E,SAAS,EAAe,EACtB,cACA,WAAQ,UACR,SACA,gBAAa,GACb,GAAG,KAKF;AACD,QACE,kBAAC,EAAiB,QAAlB,EAAA,UACE,kBAAC,EAAiB,YAAlB;EAAoC;EAAa;EAAkB;YACjE,kBAAC,EAAiB,OAAlB;GACE,aAAU;GACV,WAAW,EACT,waACA,EACD;GACD,GAAI;GACJ,CAAA;EAC0B,CAAA,EACN,CAAA;;AAI9B,IAAM,IAAe,EAAiB"}
1
+ {"version":3,"file":"popover.js","names":[],"sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n side,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Popup> & {\n align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];\n side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];\n sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner align={align} side={side} sideOffset={sideOffset}>\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'bg-popover text-popover-foreground 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 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 z-50 w-72 origin-(--transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":";;;;;AAMA,SAAS,EAAQ,EAAE,GAAG,KAA6D;CACjF,OAAO,kBAAC,EAAiB,MAAlB,EAAuB,GAAI,EAAQ,CAAA;AAC5C;AAEA,SAAS,EAAe,EAAE,GAAG,KAAgE;CAC3F,OAAO,kBAAC,EAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,EAAe,EACtB,cACA,WAAQ,UACR,SACA,gBAAa,GACb,GAAG,KAKF;CACD,OACE,kBAAC,EAAiB,QAAlB,EAAA,UACE,kBAAC,EAAiB,YAAlB;EAAoC;EAAa;EAAkB;YACjE,kBAAC,EAAiB,OAAlB;GACE,aAAU;GACV,WAAW,EACT,waACA,CACF;GACA,GAAI;EACL,CAAA;CAC0B,CAAA,EACN,CAAA;AAE7B;AAEA,IAAM,IAAe,EAAiB"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`),t=require(`./input.cjs`);let n=require(`react/jsx-runtime`),r=require(`react`),i=require(`lucide-react`);var a=(0,r.forwardRef)(({className:r,containerClassName:a,placeholder:o=``,...s},c)=>{let{disabled:l}=s;return(0,n.jsxs)(`div`,{className:e.cn(`relative w-full max-w-sm`,a),children:[(0,n.jsx)(i.Search,{"aria-hidden":!0,className:e.cn(`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`,l&&`opacity-50`)}),(0,n.jsx)(t.Input,{ref:c,type:`search`,placeholder:o,className:e.cn(`pl-9`,r),...s})]})});a.displayName=`SearchBox`,exports.SearchBox=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../lib/utils.cjs"),t=require("./input.cjs");let n=require("react/jsx-runtime"),r=require("react"),i=require("lucide-react");var a=(0,r.forwardRef)(({className:r,containerClassName:a,placeholder:o=``,...s},c)=>{let{disabled:l}=s;return(0,n.jsxs)(`div`,{className:e.cn(`relative w-full max-w-sm`,a),children:[(0,n.jsx)(i.Search,{"aria-hidden":!0,className:e.cn(`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`,l&&`opacity-50`)}),(0,n.jsx)(t.Input,{ref:c,type:`search`,placeholder:o,className:e.cn(`pl-9`,r),...s})]})});a.displayName=`SearchBox`,exports.SearchBox=a;
2
2
  //# sourceMappingURL=search-box.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-box.cjs","names":[],"sources":["../../src/elements/search-box.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Search } from 'lucide-react';\n\nimport { Input } from '@/elements/input';\nimport { cn } from '@/lib/utils';\n\nexport type SearchBoxProps = React.ComponentProps<typeof Input> & {\n containerClassName?: string;\n};\n\n/**\n * A compact search box.\n * - Uses shadcn <Input/>\n * - Leading search icon\n */\nconst SearchBox = forwardRef<HTMLInputElement, SearchBoxProps>(\n ({ className, containerClassName, placeholder = '', ...props }, ref) => {\n const { disabled } = props;\n\n return (\n <div className={cn('relative w-full max-w-sm', containerClassName)}>\n <Search\n aria-hidden\n className={cn(\n 'pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground',\n disabled && 'opacity-50',\n )}\n />\n <Input ref={ref} type=\"search\" placeholder={placeholder} className={cn('pl-9', className)} {...props} />\n </div>\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport { SearchBox };\n"],"mappings":"6PAeA,IAAM,GAAA,EAAA,EAAA,aACH,CAAE,YAAW,qBAAoB,cAAc,GAAI,GAAG,GAAS,IAAQ,CACtE,GAAM,CAAE,YAAa,EAErB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,2BAA4B,EAAmB,UAAlE,EACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,cAAA,GACA,UAAW,EAAA,GACT,6FACA,GAAY,aACb,CACD,CAAA,EACF,EAAA,EAAA,KAAC,EAAA,MAAD,CAAY,MAAK,KAAK,SAAsB,cAAa,UAAW,EAAA,GAAG,OAAQ,EAAU,CAAE,GAAI,EAAS,CAAA,CACpG,IAGX,CAED,EAAU,YAAc"}
1
+ {"version":3,"file":"search-box.cjs","names":[],"sources":["../../src/elements/search-box.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Search } from 'lucide-react';\n\nimport { Input } from '@/elements/input';\nimport { cn } from '@/lib/utils';\n\nexport type SearchBoxProps = React.ComponentProps<typeof Input> & {\n containerClassName?: string;\n};\n\n/**\n * A compact search box.\n * - Uses shadcn <Input/>\n * - Leading search icon\n */\nconst SearchBox = forwardRef<HTMLInputElement, SearchBoxProps>(\n ({ className, containerClassName, placeholder = '', ...props }, ref) => {\n const { disabled } = props;\n\n return (\n <div className={cn('relative w-full max-w-sm', containerClassName)}>\n <Search\n aria-hidden\n className={cn(\n 'pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground',\n disabled && 'opacity-50',\n )}\n />\n <Input ref={ref} type=\"search\" placeholder={placeholder} className={cn('pl-9', className)} {...props} />\n </div>\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport { SearchBox };\n"],"mappings":"gNAeA,IAAM,GAAA,EAAA,EAAA,aACH,CAAE,YAAW,qBAAoB,cAAc,GAAI,GAAG,GAAS,IAAQ,CACtE,GAAM,CAAE,YAAa,EAErB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,2BAA4B,CAAkB,WAAjE,EACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,cAAA,GACA,UAAW,EAAA,GACT,6FACA,GAAY,YACd,CACD,CAAA,GACD,EAAA,EAAA,KAAC,EAAA,MAAD,CAAY,MAAK,KAAK,SAAsB,cAAa,UAAW,EAAA,GAAG,OAAQ,CAAS,EAAG,GAAI,CAAQ,CAAA,CACpG,GAET,CACF,EAEA,EAAU,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-box.js","names":[],"sources":["../../src/elements/search-box.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Search } from 'lucide-react';\n\nimport { Input } from '@/elements/input';\nimport { cn } from '@/lib/utils';\n\nexport type SearchBoxProps = React.ComponentProps<typeof Input> & {\n containerClassName?: string;\n};\n\n/**\n * A compact search box.\n * - Uses shadcn <Input/>\n * - Leading search icon\n */\nconst SearchBox = forwardRef<HTMLInputElement, SearchBoxProps>(\n ({ className, containerClassName, placeholder = '', ...props }, ref) => {\n const { disabled } = props;\n\n return (\n <div className={cn('relative w-full max-w-sm', containerClassName)}>\n <Search\n aria-hidden\n className={cn(\n 'pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground',\n disabled && 'opacity-50',\n )}\n />\n <Input ref={ref} type=\"search\" placeholder={placeholder} className={cn('pl-9', className)} {...props} />\n </div>\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport { SearchBox };\n"],"mappings":";;;;;;AAeA,IAAM,IAAY,GACf,EAAE,cAAW,uBAAoB,iBAAc,IAAI,GAAG,KAAS,MAAQ;CACtE,IAAM,EAAE,gBAAa;AAErB,QACE,kBAAC,OAAD;EAAK,WAAW,EAAG,4BAA4B,EAAmB;YAAlE,CACE,kBAAC,GAAD;GACE,eAAA;GACA,WAAW,EACT,8FACA,KAAY,aACb;GACD,CAAA,EACF,kBAAC,GAAD;GAAY;GAAK,MAAK;GAAsB;GAAa,WAAW,EAAG,QAAQ,EAAU;GAAE,GAAI;GAAS,CAAA,CACpG;;EAGX;AAED,EAAU,cAAc"}
1
+ {"version":3,"file":"search-box.js","names":[],"sources":["../../src/elements/search-box.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Search } from 'lucide-react';\n\nimport { Input } from '@/elements/input';\nimport { cn } from '@/lib/utils';\n\nexport type SearchBoxProps = React.ComponentProps<typeof Input> & {\n containerClassName?: string;\n};\n\n/**\n * A compact search box.\n * - Uses shadcn <Input/>\n * - Leading search icon\n */\nconst SearchBox = forwardRef<HTMLInputElement, SearchBoxProps>(\n ({ className, containerClassName, placeholder = '', ...props }, ref) => {\n const { disabled } = props;\n\n return (\n <div className={cn('relative w-full max-w-sm', containerClassName)}>\n <Search\n aria-hidden\n className={cn(\n 'pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground',\n disabled && 'opacity-50',\n )}\n />\n <Input ref={ref} type=\"search\" placeholder={placeholder} className={cn('pl-9', className)} {...props} />\n </div>\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport { SearchBox };\n"],"mappings":";;;;;;AAeA,IAAM,IAAY,GACf,EAAE,cAAW,uBAAoB,iBAAc,IAAI,GAAG,KAAS,MAAQ;CACtE,IAAM,EAAE,gBAAa;CAErB,OACE,kBAAC,OAAD;EAAK,WAAW,EAAG,4BAA4B,CAAkB;YAAjE,CACE,kBAAC,GAAD;GACE,eAAA;GACA,WAAW,EACT,8FACA,KAAY,YACd;EACD,CAAA,GACD,kBAAC,GAAD;GAAY;GAAK,MAAK;GAAsB;GAAa,WAAW,EAAG,QAAQ,CAAS;GAAG,GAAI;EAAQ,CAAA,CACpG;;AAET,CACF;AAEA,EAAU,cAAc"}