@kubetail/ui 3.0.0-rc1 → 3.0.0-rc2

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 (119) 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 +2 -2
  4. package/dist/elements/alert.js +6 -12
  5. package/dist/elements/alert.js.map +1 -1
  6. package/dist/elements/button.cjs +1 -1
  7. package/dist/elements/button.cjs.map +1 -1
  8. package/dist/elements/button.d.ts +5 -14
  9. package/dist/elements/button.js +29 -26
  10. package/dist/elements/button.js.map +1 -1
  11. package/dist/elements/card.cjs +1 -1
  12. package/dist/elements/card.cjs.map +1 -1
  13. package/dist/elements/card.d.ts +3 -1
  14. package/dist/elements/card.js +9 -8
  15. package/dist/elements/card.js.map +1 -1
  16. package/dist/elements/checkbox.cjs +1 -1
  17. package/dist/elements/checkbox.cjs.map +1 -1
  18. package/dist/elements/checkbox.d.ts +1 -1
  19. package/dist/elements/checkbox.js +3 -3
  20. package/dist/elements/checkbox.js.map +1 -1
  21. package/dist/elements/context-menu.cjs +1 -1
  22. package/dist/elements/context-menu.cjs.map +1 -1
  23. package/dist/elements/context-menu.d.ts +15 -18
  24. package/dist/elements/context-menu.js +58 -45
  25. package/dist/elements/context-menu.js.map +1 -1
  26. package/dist/elements/dialog.cjs +1 -1
  27. package/dist/elements/dialog.cjs.map +1 -1
  28. package/dist/elements/dialog.d.ts +11 -10
  29. package/dist/elements/dialog.js +52 -38
  30. package/dist/elements/dialog.js.map +1 -1
  31. package/dist/elements/dropdown-menu.cjs +1 -1
  32. package/dist/elements/dropdown-menu.cjs.map +1 -1
  33. package/dist/elements/dropdown-menu.d.ts +19 -19
  34. package/dist/elements/dropdown-menu.js +89 -71
  35. package/dist/elements/dropdown-menu.js.map +1 -1
  36. package/dist/elements/field.cjs +2 -0
  37. package/dist/elements/field.cjs.map +1 -0
  38. package/dist/elements/field.d.ts +24 -0
  39. package/dist/elements/field.js +110 -0
  40. package/dist/elements/field.js.map +1 -0
  41. package/dist/elements/input-group.cjs +2 -0
  42. package/dist/elements/input-group.cjs.map +1 -0
  43. package/dist/elements/input-group.d.ts +18 -0
  44. package/dist/elements/input-group.js +80 -0
  45. package/dist/elements/input-group.js.map +1 -0
  46. package/dist/elements/input.cjs +1 -1
  47. package/dist/elements/input.cjs.map +1 -1
  48. package/dist/elements/input.js +7 -6
  49. package/dist/elements/input.js.map +1 -1
  50. package/dist/elements/label.cjs +1 -1
  51. package/dist/elements/label.cjs.map +1 -1
  52. package/dist/elements/label.d.ts +1 -0
  53. package/dist/elements/label.js +1 -0
  54. package/dist/elements/label.js.map +1 -1
  55. package/dist/elements/pagination.cjs +1 -1
  56. package/dist/elements/pagination.cjs.map +1 -1
  57. package/dist/elements/pagination.d.ts +8 -5
  58. package/dist/elements/pagination.js +32 -26
  59. package/dist/elements/pagination.js.map +1 -1
  60. package/dist/elements/search-box.cjs +1 -1
  61. package/dist/elements/search-box.cjs.map +1 -1
  62. package/dist/elements/search-box.js +5 -5
  63. package/dist/elements/select.cjs +1 -1
  64. package/dist/elements/select.cjs.map +1 -1
  65. package/dist/elements/select.d.ts +8 -13
  66. package/dist/elements/select.js +34 -31
  67. package/dist/elements/select.js.map +1 -1
  68. package/dist/elements/separator.cjs +1 -1
  69. package/dist/elements/separator.cjs.map +1 -1
  70. package/dist/elements/separator.d.ts +1 -1
  71. package/dist/elements/separator.js +3 -1
  72. package/dist/elements/separator.js.map +1 -1
  73. package/dist/elements/sheet.cjs +1 -1
  74. package/dist/elements/sheet.cjs.map +1 -1
  75. package/dist/elements/sheet.d.ts +7 -6
  76. package/dist/elements/sheet.js +50 -37
  77. package/dist/elements/sheet.js.map +1 -1
  78. package/dist/elements/sidebar.cjs +1 -1
  79. package/dist/elements/sidebar.cjs.map +1 -1
  80. package/dist/elements/sidebar.d.ts +10 -16
  81. package/dist/elements/sidebar.js +168 -173
  82. package/dist/elements/sidebar.js.map +1 -1
  83. package/dist/elements/skeleton.cjs +1 -1
  84. package/dist/elements/skeleton.cjs.map +1 -1
  85. package/dist/elements/skeleton.js +1 -1
  86. package/dist/elements/skeleton.js.map +1 -1
  87. package/dist/elements/spinner.cjs.map +1 -1
  88. package/dist/elements/spinner.js.map +1 -1
  89. package/dist/elements/switch.cjs +1 -1
  90. package/dist/elements/switch.cjs.map +1 -1
  91. package/dist/elements/switch.d.ts +1 -1
  92. package/dist/elements/switch.js +2 -2
  93. package/dist/elements/switch.js.map +1 -1
  94. package/dist/elements/table.cjs +1 -1
  95. package/dist/elements/table.cjs.map +1 -1
  96. package/dist/elements/table.d.ts +1 -1
  97. package/dist/elements/table.js +6 -5
  98. package/dist/elements/table.js.map +1 -1
  99. package/dist/elements/tabs.cjs +1 -1
  100. package/dist/elements/tabs.cjs.map +1 -1
  101. package/dist/elements/tabs.d.ts +9 -5
  102. package/dist/elements/tabs.js +28 -16
  103. package/dist/elements/tabs.js.map +1 -1
  104. package/dist/elements/textarea.cjs +2 -0
  105. package/dist/elements/textarea.cjs.map +1 -0
  106. package/dist/elements/textarea.d.ts +3 -0
  107. package/dist/elements/textarea.js +15 -0
  108. package/dist/elements/textarea.js.map +1 -0
  109. package/dist/elements/toggle.cjs +1 -1
  110. package/dist/elements/toggle.cjs.map +1 -1
  111. package/dist/elements/toggle.d.ts +1 -1
  112. package/dist/elements/toggle.js +6 -6
  113. package/dist/elements/toggle.js.map +1 -1
  114. package/dist/elements/tooltip.cjs +1 -1
  115. package/dist/elements/tooltip.cjs.map +1 -1
  116. package/dist/elements/tooltip.d.ts +4 -8
  117. package/dist/elements/tooltip.js +13 -7
  118. package/dist/elements/tooltip.js.map +1 -1
  119. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","names":[],"sources":["../../src/elements/field.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useMemo } from 'react';\n\nimport { Label } from '@/elements/label';\nimport { Separator } from '@/elements/separator';\nimport { cn } from '@/lib/utils';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base', className)}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva('group/field flex w-full gap-2 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn('group/field-content flex flex-1 flex-col gap-0.5 leading-snug', className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5',\n 'last:mt-0 nth-last-2:-mt-1',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: ({ message?: string } | undefined)[];\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];\n\n if (uniqueErrors?.length === 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map((error) => error?.message && <li key={error.message}>{error.message}</li>)}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-sm font-normal text-destructive', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;AASA,SAAS,EAAS,EAAE,cAAW,GAAG,KAA2C;AAC3E,QACE,kBAAC,YAAD;EACE,aAAU;EACV,WAAW,EACT,oGACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAY,EACnB,cACA,aAAU,UACV,GAAG,KACiE;AACpE,QACE,kBAAC,UAAD;EACE,aAAU;EACV,gBAAc;EACd,WAAW,EAAG,mFAAmF,EAAU;EAC3G,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;AACxE,QACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,wIACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,IAAM,IAAgB,EAAI,sEAAsE;CAC9F,UAAU,EACR,aAAa;EACX,UAAU;EACV,YACE;EACF,YACE;EACH,EACF;CACD,iBAAiB,EACf,aAAa,YACd;CACF,CAAC;AAEF,SAAS,EAAM,EACb,cACA,iBAAc,YACd,GAAG,KACgE;AACnE,QACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,EAAG,EAAc,EAAE,gBAAa,CAAC,EAAE,EAAU;EACxD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAa,EAAE,cAAW,GAAG,KAAsC;AAC1E,QACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,iEAAiE,EAAU;EACzF,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAW,EAAE,cAAW,GAAG,KAA6C;AAC/E,QACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,2VACA,qEACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;AACxE,QACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,iGACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAiB,EAAE,cAAW,GAAG,KAAoC;AAC5E,QACE,kBAAC,KAAD;EACE,aAAU;EACV,WAAW,EACT,qJACA,8BACA,qEACA,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAe,EACtB,aACA,cACA,GAAG,KAGF;AACD,QACE,kBAAC,OAAD;EACE,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,EAAG,6EAA6E,EAAU;EACrG,GAAI;YAJN,CAME,kBAAC,GAAD,EAAW,WAAU,4BAA6B,CAAA,EACjD,KACC,kBAAC,QAAD;GACE,WAAU;GACV,aAAU;GAET;GACI,CAAA,CAEL;;;AAIV,SAAS,EAAW,EAClB,cACA,aACA,WACA,GAAG,KAGF;CACD,IAAM,IAAU,QAAc;AAC5B,MAAI,EACF,QAAO;AAGT,MAAI,CAAC,GAAQ,OACX,QAAO;EAGT,IAAM,IAAe,CAAC,GAAG,IAAI,IAAI,EAAO,KAAK,MAAU,CAAC,GAAO,SAAS,EAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAM1F,SAJI,GAAc,WAAW,IACpB,EAAa,IAAI,UAIxB,kBAAC,MAAD;GAAI,WAAU;aACX,EAAa,KAAK,MAAU,GAAO,WAAW,kBAAC,MAAD,EAAA,UAAyB,EAAM,SAAa,EAAnC,EAAM,QAA6B,CAAC;GACzF,CAAA;IAEN,CAAC,GAAU,EAAO,CAAC;AAMtB,QAJK,IAKH,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,WAAW,EAAG,wCAAwC,EAAU;EAChE,GAAI;YAEH;EACG,CAAA,GAXC"}
@@ -0,0 +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;
2
+ //# sourceMappingURL=input-group.cjs.map
@@ -0,0 +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"}
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { Button } from '@/elements/button';
4
+ declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
5
+ declare const inputGroupAddonVariants: (props?: ({
6
+ align?: "inline-end" | "inline-start" | "block-start" | "block-end" | null | undefined;
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;
9
+ declare const inputGroupButtonVariants: (props?: ({
10
+ size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
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;
18
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea };
@@ -0,0 +1,80 @@
1
+ "use client";
2
+ import { cn as e } from "../lib/utils.js";
3
+ import { Textarea as t } from "./textarea.js";
4
+ import { Button as n } from "./button.js";
5
+ import { Input as r } from "./input.js";
6
+ import { jsx as i } from "react/jsx-runtime";
7
+ import { cva as a } from "class-variance-authority";
8
+ import "react";
9
+ //#region src/elements/input-group.tsx
10
+ function o({ className: t, ...n }) {
11
+ return /* @__PURE__ */ i("div", {
12
+ "data-slot": "input-group",
13
+ role: "group",
14
+ className: e("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", t),
15
+ ...n
16
+ });
17
+ }
18
+ var s = a("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", {
19
+ variants: { align: {
20
+ "inline-start": "order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]",
21
+ "inline-end": "order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]",
22
+ "block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
23
+ "block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
24
+ } },
25
+ defaultVariants: { align: "inline-start" }
26
+ });
27
+ function c({ className: t, align: n = "inline-start", ...r }) {
28
+ return /* @__PURE__ */ i("div", {
29
+ role: "group",
30
+ "data-slot": "input-group-addon",
31
+ "data-align": n,
32
+ className: e(s({ align: n }), t),
33
+ onClick: (e) => {
34
+ e.target.closest("button") || e.currentTarget.parentElement?.querySelector("input")?.focus();
35
+ },
36
+ ...r
37
+ });
38
+ }
39
+ var l = a("flex items-center gap-2 text-sm shadow-none", {
40
+ variants: { size: {
41
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
42
+ sm: "",
43
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
44
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
45
+ } },
46
+ defaultVariants: { size: "xs" }
47
+ });
48
+ function u({ className: t, type: r = "button", variant: a = "ghost", size: o = "xs", ...s }) {
49
+ return /* @__PURE__ */ i(n, {
50
+ type: r,
51
+ "data-size": o,
52
+ variant: a,
53
+ className: e(l({ size: o }), t),
54
+ ...s
55
+ });
56
+ }
57
+ function d({ className: t, ...n }) {
58
+ return /* @__PURE__ */ i("span", {
59
+ className: e("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", t),
60
+ ...n
61
+ });
62
+ }
63
+ function f({ className: t, ...n }) {
64
+ return /* @__PURE__ */ i(r, {
65
+ "data-slot": "input-group-control",
66
+ className: e("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", t),
67
+ ...n
68
+ });
69
+ }
70
+ function p({ className: n, ...r }) {
71
+ return /* @__PURE__ */ i(t, {
72
+ "data-slot": "input-group-control",
73
+ className: e("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),
74
+ ...r
75
+ });
76
+ }
77
+ //#endregion
78
+ export { o as InputGroup, c as InputGroupAddon, u as InputGroupButton, f as InputGroupInput, d as InputGroupText, p as InputGroupTextarea };
79
+
80
+ //# sourceMappingURL=input-group.js.map
@@ -0,0 +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,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`);function n({className:n,type:r,...i}){return(0,t.jsx)(`input`,{type:r,"data-slot":`input`,className:e.cn(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n),...i})}exports.Input=n;
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;
2
2
  //# sourceMappingURL=input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.cjs","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":"uLAEA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAD,CACQ,OACN,YAAU,QACV,UAAW,EAAA,GACT,kcACA,gFACA,yGACA,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":"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,15 +1,16 @@
1
1
  import { cn as e } from "../lib/utils.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
+ import { Input as n } from "@base-ui/react/input";
3
4
  //#region src/elements/input.tsx
4
- function n({ className: n, type: r, ...i }) {
5
- return /* @__PURE__ */ t("input", {
6
- type: r,
5
+ function r({ className: r, type: i, ...a }) {
6
+ return /* @__PURE__ */ t(n, {
7
+ type: i,
7
8
  "data-slot": "input",
8
- className: e("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", n),
9
- ...i
9
+ className: e("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),
10
+ ...a
10
11
  });
11
12
  }
12
13
  //#endregion
13
- export { n as Input };
14
+ export { r as Input };
14
15
 
15
16
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../src/elements/input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;AAEA,SAAS,EAAM,EAAE,cAAW,SAAM,GAAG,KAAwC;AAC3E,QACE,kBAAC,SAAD;EACQ;EACN,aAAU;EACV,WAAW,EACT,mcACA,iFACA,0GACA,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;AAC3E,QACE,kBAAC,GAAD;EACQ;EACN,aAAU;EACV,WAAW,EACT,6oBACA,EACD;EACD,GAAI;EACJ,CAAA"}
@@ -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`);function n({className:n,...r}){return(0,t.jsx)(`label`,{"data-slot":`label`,className:e.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`,n),...r})}exports.Label=n;
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 { 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":"oMAIA,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,EACD,CACD,GAAI,EACJ,CAAA"}
@@ -1,2 +1,3 @@
1
+ import * as React from 'react';
1
2
  declare function Label({ className, ...props }: React.ComponentProps<'label'>): import("react/jsx-runtime").JSX.Element;
2
3
  export { Label };
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn as e } from "../lib/utils.js";
3
3
  import { jsx as t } from "react/jsx-runtime";
4
+ import "react";
4
5
  //#region src/elements/label.tsx
5
6
  function n({ className: n, ...r }) {
6
7
  return /* @__PURE__ */ t("label", {
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\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":";;;;AAIA,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;AACrE,QAEE,kBAAC,SAAD;EACE,aAAU;EACV,WAAW,EACT,uNACA,EACD;EACD,GAAI;EACJ,CAAA"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`),n=require(`./button.cjs`);let r=require(`react/jsx-runtime`),i=require(`lucide-react`),a=require(`react`);a=e.__toESM(a,1);function o({className:e,...n}){return(0,r.jsx)(`nav`,{role:`navigation`,"aria-label":`pagination`,"data-slot":`pagination`,className:t.cn(`mx-auto flex w-full justify-center`,e),...n})}function s({className:e,...n}){return(0,r.jsx)(`ul`,{"data-slot":`pagination-content`,className:t.cn(`flex flex-row items-center gap-1`,e),...n})}function c({...e}){return(0,r.jsx)(`li`,{"data-slot":`pagination-item`,...e})}function l({className:e,isActive:i,size:a=`icon`,children:o,...s}){return(0,r.jsx)(`a`,{"aria-current":i?`page`:void 0,"data-slot":`pagination-link`,"data-active":i,className:t.cn(n.buttonVariants({variant:i?`outline`:`ghost`,size:a}),e),...s,children:o})}function u({className:e,...n}){return(0,r.jsxs)(l,{"aria-label":`Go to previous page`,size:`default`,className:t.cn(`gap-1 px-2.5 sm:pl-2.5`,e),...n,children:[(0,r.jsx)(i.ChevronLeftIcon,{}),(0,r.jsx)(`span`,{className:`hidden sm:block`,children:`Previous`})]})}function d({className:e,...n}){return(0,r.jsxs)(l,{"aria-label":`Go to next page`,size:`default`,className:t.cn(`gap-1 px-2.5 sm:pr-2.5`,e),...n,children:[(0,r.jsx)(`span`,{className:`hidden sm:block`,children:`Next`}),(0,r.jsx)(i.ChevronRightIcon,{})]})}function f({className:e,...n}){return(0,r.jsxs)(`span`,{"aria-hidden":!0,"data-slot":`pagination-ellipsis`,className:t.cn(`flex size-9 items-center justify-center`,e),...n,children:[(0,r.jsx)(i.MoreHorizontalIcon,{className:`size-4`}),(0,r.jsx)(`span`,{className:`sr-only`,children:`More pages`})]})}exports.Pagination=o,exports.PaginationContent=s,exports.PaginationEllipsis=f,exports.PaginationItem=c,exports.PaginationLink=l,exports.PaginationNext=d,exports.PaginationPrevious=u;
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;
2
2
  //# sourceMappingURL=pagination.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.cjs","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Button, buttonVariants } from '@/elements/button';\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 flex-row items-center gap-1', 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', children, ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? 'page' : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? 'outline' : 'ghost',\n size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </a>\n );\n}\n\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pl-2.5', className)}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pr-2.5', className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\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-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":"iRAMA,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,mCAAoC,EAAU,CAAE,GAAI,EAAS,CAAA,CAGvH,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,WAAU,GAAG,GAA8B,CACvG,OACE,EAAA,EAAA,KAAC,IAAD,CACE,eAAc,EAAW,OAAS,IAAA,GAClC,YAAU,kBACV,cAAa,EACb,UAAW,EAAA,GACT,EAAA,eAAe,CACb,QAAS,EAAW,UAAY,QAChC,OACD,CAAC,CACF,EACD,CACD,GAAI,EAEH,WACC,CAAA,CAIR,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAsD,CAChG,OACE,EAAA,EAAA,MAAC,EAAD,CACE,aAAW,sBACX,KAAK,UACL,UAAW,EAAA,GAAG,yBAA0B,EAAU,CAClD,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,EAAA,gBAAD,EAAmB,CAAA,EACnB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAkB,WAAe,CAAA,CAClC,GAIrB,SAAS,EAAe,CAAE,YAAW,GAAG,GAAsD,CAC5F,OACE,EAAA,EAAA,MAAC,EAAD,CACE,aAAW,kBACX,KAAK,UACL,UAAW,EAAA,GAAG,yBAA0B,EAAU,CAClD,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2BAAkB,OAAW,CAAA,EAC7C,EAAA,EAAA,KAAC,EAAA,iBAAD,EAAoB,CAAA,CACL,GAIrB,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAuC,CACjF,OACE,EAAA,EAAA,MAAC,OAAD,CACE,cAAA,GACA,YAAU,sBACV,UAAW,EAAA,GAAG,0CAA2C,EAAU,CACnE,GAAI,WAJN,EAME,EAAA,EAAA,KAAC,EAAA,mBAAD,CAAoB,UAAU,SAAW,CAAA,EACzC,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":"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,4 +1,3 @@
1
- import * as React from 'react';
2
1
  import { Button } from '@/elements/button';
3
2
  declare function Pagination({ className, ...props }: React.ComponentProps<'nav'>): import("react/jsx-runtime").JSX.Element;
4
3
  declare function PaginationContent({ className, ...props }: React.ComponentProps<'ul'>): import("react/jsx-runtime").JSX.Element;
@@ -6,8 +5,12 @@ declare function PaginationItem({ ...props }: React.ComponentProps<'li'>): impor
6
5
  type PaginationLinkProps = {
7
6
  isActive?: boolean;
8
7
  } & Pick<React.ComponentProps<typeof Button>, 'size'> & React.ComponentProps<'a'>;
9
- declare function PaginationLink({ className, isActive, size, children, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
10
- declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
11
- declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
8
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
9
+ declare function PaginationPrevious({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
10
+ text?: string;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function PaginationNext({ className, text, ...props }: React.ComponentProps<typeof PaginationLink> & {
13
+ text?: string;
14
+ }): import("react/jsx-runtime").JSX.Element;
12
15
  declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
13
- export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, };
16
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -1,8 +1,7 @@
1
1
  import { cn as e } from "../lib/utils.js";
2
- import { buttonVariants as t } from "./button.js";
2
+ import { Button as t } from "./button.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  import { ChevronLeftIcon as i, ChevronRightIcon as a, MoreHorizontalIcon as o } from "lucide-react";
5
- import "react";
6
5
  //#region src/elements/pagination.tsx
7
6
  function s({ className: t, ...r }) {
8
7
  return /* @__PURE__ */ n("nav", {
@@ -16,7 +15,7 @@ function s({ className: t, ...r }) {
16
15
  function c({ className: t, ...r }) {
17
16
  return /* @__PURE__ */ n("ul", {
18
17
  "data-slot": "pagination-content",
19
- className: e("flex flex-row items-center gap-1", t),
18
+ className: e("flex items-center gap-0.5", t),
20
19
  ...r
21
20
  });
22
21
  }
@@ -26,50 +25,57 @@ function l({ ...e }) {
26
25
  ...e
27
26
  });
28
27
  }
29
- function u({ className: r, isActive: i, size: a = "icon", children: o, ...s }) {
30
- return /* @__PURE__ */ n("a", {
31
- "aria-current": i ? "page" : void 0,
32
- "data-slot": "pagination-link",
33
- "data-active": i,
34
- className: e(t({
35
- variant: i ? "outline" : "ghost",
36
- size: a
37
- }), r),
38
- ...s,
39
- children: o
28
+ function u({ className: r, isActive: i, size: a = "icon", ...o }) {
29
+ return /* @__PURE__ */ n(t, {
30
+ variant: i ? "outline" : "ghost",
31
+ size: a,
32
+ className: e(r),
33
+ nativeButton: !1,
34
+ render: /* @__PURE__ */ n("a", {
35
+ "aria-current": i ? "page" : void 0,
36
+ "data-slot": "pagination-link",
37
+ "data-active": i,
38
+ ...o
39
+ })
40
40
  });
41
41
  }
42
- function d({ className: t, ...a }) {
42
+ function d({ className: t, text: a = "Previous", ...o }) {
43
43
  return /* @__PURE__ */ r(u, {
44
44
  "aria-label": "Go to previous page",
45
45
  size: "default",
46
- className: e("gap-1 px-2.5 sm:pl-2.5", t),
47
- ...a,
48
- children: [/* @__PURE__ */ n(i, {}), /* @__PURE__ */ n("span", {
46
+ className: e("pl-1.5!", t),
47
+ ...o,
48
+ children: [/* @__PURE__ */ n(i, {
49
+ "data-icon": "inline-start",
50
+ className: "cn-rtl-flip"
51
+ }), /* @__PURE__ */ n("span", {
49
52
  className: "hidden sm:block",
50
- children: "Previous"
53
+ children: a
51
54
  })]
52
55
  });
53
56
  }
54
- function f({ className: t, ...i }) {
57
+ function f({ className: t, text: i = "Next", ...o }) {
55
58
  return /* @__PURE__ */ r(u, {
56
59
  "aria-label": "Go to next page",
57
60
  size: "default",
58
- className: e("gap-1 px-2.5 sm:pr-2.5", t),
59
- ...i,
61
+ className: e("pr-1.5!", t),
62
+ ...o,
60
63
  children: [/* @__PURE__ */ n("span", {
61
64
  className: "hidden sm:block",
62
- children: "Next"
63
- }), /* @__PURE__ */ n(a, {})]
65
+ children: i
66
+ }), /* @__PURE__ */ n(a, {
67
+ "data-icon": "inline-end",
68
+ className: "cn-rtl-flip"
69
+ })]
64
70
  });
65
71
  }
66
72
  function p({ className: t, ...i }) {
67
73
  return /* @__PURE__ */ r("span", {
68
74
  "aria-hidden": !0,
69
75
  "data-slot": "pagination-ellipsis",
70
- className: e("flex size-9 items-center justify-center", t),
76
+ className: e("flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4", t),
71
77
  ...i,
72
- children: [/* @__PURE__ */ n(o, { className: "size-4" }), /* @__PURE__ */ n("span", {
78
+ children: [/* @__PURE__ */ n(o, {}), /* @__PURE__ */ n("span", {
73
79
  className: "sr-only",
74
80
  children: "More pages"
75
81
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","names":[],"sources":["../../src/elements/pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Button, buttonVariants } from '@/elements/button';\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 flex-row items-center gap-1', 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', children, ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? 'page' : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? 'outline' : 'ghost',\n size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </a>\n );\n}\n\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pl-2.5', className)}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 px-2.5 sm:pr-2.5', className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\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-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":";;;;;;AAMA,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,oCAAoC,EAAU;EAAE,GAAI;EAAS,CAAA;;AAGvH,SAAS,EAAe,EAAE,GAAG,KAAqC;AAChE,QAAO,kBAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAQtD,SAAS,EAAe,EAAE,cAAW,aAAU,UAAO,QAAQ,aAAU,GAAG,KAA8B;AACvG,QACE,kBAAC,KAAD;EACE,gBAAc,IAAW,SAAS,KAAA;EAClC,aAAU;EACV,eAAa;EACb,WAAW,EACT,EAAe;GACb,SAAS,IAAW,YAAY;GAChC;GACD,CAAC,EACF,EACD;EACD,GAAI;EAEH;EACC,CAAA;;AAIR,SAAS,EAAmB,EAAE,cAAW,GAAG,KAAsD;AAChG,QACE,kBAAC,GAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,EAAG,0BAA0B,EAAU;EAClD,GAAI;YAJN,CAME,kBAAC,GAAD,EAAmB,CAAA,EACnB,kBAAC,QAAD;GAAM,WAAU;aAAkB;GAAe,CAAA,CAClC;;;AAIrB,SAAS,EAAe,EAAE,cAAW,GAAG,KAAsD;AAC5F,QACE,kBAAC,GAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,EAAG,0BAA0B,EAAU;EAClD,GAAI;YAJN,CAME,kBAAC,QAAD;GAAM,WAAU;aAAkB;GAAW,CAAA,EAC7C,kBAAC,GAAD,EAAoB,CAAA,CACL;;;AAIrB,SAAS,EAAmB,EAAE,cAAW,GAAG,KAAuC;AACjF,QACE,kBAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAW,EAAG,2CAA2C,EAAU;EACnE,GAAI;YAJN,CAME,kBAAC,GAAD,EAAoB,WAAU,UAAW,CAAA,EACzC,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;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,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(`lucide-react`);var i=(0,require(`react`).forwardRef)(({className:i,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)(r.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`,i),...s})]})});i.displayName=`SearchBox`,exports.SearchBox=i;
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;
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":"0OAeA,IAAM,GAAA,mBAAA,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":"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,21 +1,21 @@
1
1
  import { cn as e } from "../lib/utils.js";
2
2
  import { Input as t } from "./input.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
- import { Search as i } from "lucide-react";
5
- import { forwardRef as a } from "react";
4
+ import { forwardRef as i } from "react";
5
+ import { Search as a } from "lucide-react";
6
6
  //#region src/elements/search-box.tsx
7
- var o = a(({ className: a, containerClassName: o, placeholder: s = "", ...c }, l) => {
7
+ var o = i(({ className: i, containerClassName: o, placeholder: s = "", ...c }, l) => {
8
8
  let { disabled: u } = c;
9
9
  return /* @__PURE__ */ r("div", {
10
10
  className: e("relative w-full max-w-sm", o),
11
- children: [/* @__PURE__ */ n(i, {
11
+ children: [/* @__PURE__ */ n(a, {
12
12
  "aria-hidden": !0,
13
13
  className: e("pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground", u && "opacity-50")
14
14
  }), /* @__PURE__ */ n(t, {
15
15
  ref: l,
16
16
  type: "search",
17
17
  placeholder: s,
18
- className: e("pl-9", a),
18
+ className: e("pl-9", i),
19
19
  ...c
20
20
  })]
21
21
  });
@@ -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(`lucide-react`),r=require(`@base-ui/react/select`);function i({...e}){return(0,t.jsx)(r.Select.Root,{...e})}function a({...e}){return(0,t.jsx)(r.Select.Group,{"data-slot":`select-group`,...e})}function o({placeholder:e,...n}){return(0,t.jsx)(r.Select.Value,{"data-slot":`select-value`,...n,children:t=>t==null||t===``?e:String(t)})}function s({className:i,size:a=`default`,children:o,...s}){return(0,t.jsxs)(r.Select.Trigger,{"data-slot":`select-trigger`,"data-size":a,className:e.cn(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,i),...s,children:[o,(0,t.jsx)(r.Select.Icon,{render:(0,t.jsx)(n.ChevronDownIcon,{className:`size-4 opacity-50`})})]})}function c({className:i,...a}){return(0,t.jsx)(r.Select.ScrollUpArrow,{"data-slot":`select-scroll-up-button`,className:e.cn(`flex cursor-default items-center justify-center py-1`,i),...a,children:(0,t.jsx)(n.ChevronUpIcon,{className:`size-4`})})}function l({className:i,...a}){return(0,t.jsx)(r.Select.ScrollDownArrow,{"data-slot":`select-scroll-down-button`,className:e.cn(`flex cursor-default items-center justify-center py-1`,i),...a,children:(0,t.jsx)(n.ChevronDownIcon,{className:`size-4`})})}function u({className:n,children:i,side:a,align:o,...s}){return(0,t.jsx)(r.Select.Portal,{children:(0,t.jsx)(r.Select.Positioner,{side:a,align:o,children:(0,t.jsxs)(r.Select.Popup,{"data-slot":`select-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 relative z-50 max-h-(--available-height) min-w-[8rem] origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,n),...s,children:[(0,t.jsx)(c,{}),(0,t.jsx)(r.Select.List,{className:`p-1`,children:i}),(0,t.jsx)(l,{})]})})})}function d({className:n,...i}){return(0,t.jsx)(r.Select.GroupLabel,{"data-slot":`select-label`,className:e.cn(`text-muted-foreground px-2 py-1.5 text-xs`,n),...i})}function f({className:i,children:a,...o}){return(0,t.jsxs)(r.Select.Item,{"data-slot":`select-item`,className:e.cn(`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,i),...o,children:[(0,t.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,t.jsx)(r.Select.ItemIndicator,{children:(0,t.jsx)(n.CheckIcon,{className:`size-4`})})}),(0,t.jsx)(r.Select.ItemText,{children:a})]})}function p({className:n,...r}){return(0,t.jsx)(`div`,{role:`separator`,"data-slot":`select-separator`,className:e.cn(`bg-border pointer-events-none -mx-1 my-1 h-px`,n),...r})}exports.Select=i,exports.SelectContent=u,exports.SelectGroup=a,exports.SelectItem=f,exports.SelectLabel=d,exports.SelectScrollDownButton=l,exports.SelectScrollUpButton=c,exports.SelectSeparator=p,exports.SelectTrigger=s,exports.SelectValue=o;
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(`lucide-react`),r=require(`@base-ui/react/select`);var i=r.Select.Root;function a({className:n,...i}){return(0,t.jsx)(r.Select.Group,{"data-slot":`select-group`,className:e.cn(`scroll-my-1 p-1`,n),...i})}function o({className:n,...i}){return(0,t.jsx)(r.Select.Value,{"data-slot":`select-value`,className:e.cn(`flex flex-1 text-left`,n),...i})}function s({className:i,size:a=`default`,children:o,...s}){return(0,t.jsxs)(r.Select.Trigger,{"data-slot":`select-trigger`,"data-size":a,className:e.cn(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,i),...s,children:[o,(0,t.jsx)(r.Select.Icon,{render:(0,t.jsx)(n.ChevronDownIcon,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function c({className:i,...a}){return(0,t.jsx)(r.Select.ScrollUpArrow,{"data-slot":`select-scroll-up-button`,className:e.cn(`top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,i),...a,children:(0,t.jsx)(n.ChevronUpIcon,{})})}function l({className:i,...a}){return(0,t.jsx)(r.Select.ScrollDownArrow,{"data-slot":`select-scroll-down-button`,className:e.cn(`bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,i),...a,children:(0,t.jsx)(n.ChevronDownIcon,{})})}function u({className:n,children:i,side:a=`bottom`,sideOffset:o=4,align:s=`center`,alignOffset:u=0,alignItemWithTrigger:d=!0,...f}){return(0,t.jsx)(r.Select.Portal,{children:(0,t.jsx)(r.Select.Positioner,{side:a,sideOffset:o,align:s,alignOffset:u,alignItemWithTrigger:d,className:`isolate z-50`,children:(0,t.jsxs)(r.Select.Popup,{"data-slot":`select-content`,"data-align-trigger":d,className:e.cn(`relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n),...f,children:[(0,t.jsx)(c,{}),(0,t.jsx)(r.Select.List,{children:i}),(0,t.jsx)(l,{})]})})})}function d({className:n,...i}){return(0,t.jsx)(r.Select.GroupLabel,{"data-slot":`select-label`,className:e.cn(`px-1.5 py-1 text-xs text-muted-foreground`,n),...i})}function f({className:i,children:a,...o}){return(0,t.jsxs)(r.Select.Item,{"data-slot":`select-item`,className:e.cn(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,i),...o,children:[(0,t.jsx)(r.Select.ItemText,{className:`flex flex-1 shrink-0 gap-2 whitespace-nowrap`,children:a}),(0,t.jsx)(r.Select.ItemIndicator,{render:(0,t.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,t.jsx)(n.CheckIcon,{className:`pointer-events-none`})})})]})}function p({className:n,...i}){return(0,t.jsx)(r.Select.Separator,{"data-slot":`select-separator`,className:e.cn(`pointer-events-none -mx-1 my-1 h-px bg-border`,n),...i})}exports.Select=i,exports.SelectContent=u,exports.SelectGroup=a,exports.SelectItem=f,exports.SelectLabel=d,exports.SelectScrollDownButton=l,exports.SelectScrollUpButton=c,exports.SelectSeparator=p,exports.SelectTrigger=s,exports.SelectValue=o;
2
2
  //# sourceMappingURL=select.cjs.map