@kubetail/ui 2.7.1 → 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 (139) 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/avatar.cjs +1 -1
  7. package/dist/elements/avatar.cjs.map +1 -1
  8. package/dist/elements/avatar.d.ts +1 -1
  9. package/dist/elements/avatar.js +1 -1
  10. package/dist/elements/avatar.js.map +1 -1
  11. package/dist/elements/button.cjs +1 -1
  12. package/dist/elements/button.cjs.map +1 -1
  13. package/dist/elements/button.d.ts +5 -13
  14. package/dist/elements/button.js +24 -18
  15. package/dist/elements/button.js.map +1 -1
  16. package/dist/elements/card.cjs +1 -1
  17. package/dist/elements/card.cjs.map +1 -1
  18. package/dist/elements/card.d.ts +3 -1
  19. package/dist/elements/card.js +9 -8
  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 +2 -2
  24. package/dist/elements/checkbox.js +4 -4
  25. package/dist/elements/checkbox.js.map +1 -1
  26. package/dist/elements/context-menu.cjs +1 -1
  27. package/dist/elements/context-menu.cjs.map +1 -1
  28. package/dist/elements/context-menu.d.ts +16 -18
  29. package/dist/elements/context-menu.js +52 -44
  30. package/dist/elements/context-menu.js.map +1 -1
  31. package/dist/elements/dialog.cjs +1 -1
  32. package/dist/elements/dialog.cjs.map +1 -1
  33. package/dist/elements/dialog.d.ts +12 -11
  34. package/dist/elements/dialog.js +47 -42
  35. package/dist/elements/dialog.js.map +1 -1
  36. package/dist/elements/dropdown-menu.cjs +1 -1
  37. package/dist/elements/dropdown-menu.cjs.map +1 -1
  38. package/dist/elements/dropdown-menu.d.ts +20 -17
  39. package/dist/elements/dropdown-menu.js +86 -72
  40. package/dist/elements/dropdown-menu.js.map +1 -1
  41. package/dist/elements/field.cjs +2 -0
  42. package/dist/elements/field.cjs.map +1 -0
  43. package/dist/elements/field.d.ts +24 -0
  44. package/dist/elements/field.js +110 -0
  45. package/dist/elements/field.js.map +1 -0
  46. package/dist/elements/form.cjs +1 -1
  47. package/dist/elements/form.cjs.map +1 -1
  48. package/dist/elements/form.d.ts +5 -4
  49. package/dist/elements/form.js +39 -42
  50. package/dist/elements/form.js.map +1 -1
  51. package/dist/elements/input-group.cjs +2 -0
  52. package/dist/elements/input-group.cjs.map +1 -0
  53. package/dist/elements/input-group.d.ts +18 -0
  54. package/dist/elements/input-group.js +80 -0
  55. package/dist/elements/input-group.js.map +1 -0
  56. package/dist/elements/input.cjs +1 -1
  57. package/dist/elements/input.cjs.map +1 -1
  58. package/dist/elements/input.js +7 -6
  59. package/dist/elements/input.js.map +1 -1
  60. package/dist/elements/label.cjs +1 -1
  61. package/dist/elements/label.cjs.map +1 -1
  62. package/dist/elements/label.d.ts +2 -2
  63. package/dist/elements/label.js +6 -6
  64. package/dist/elements/label.js.map +1 -1
  65. package/dist/elements/link.cjs +1 -1
  66. package/dist/elements/link.cjs.map +1 -1
  67. package/dist/elements/link.d.ts +6 -5
  68. package/dist/elements/link.js +18 -13
  69. package/dist/elements/link.js.map +1 -1
  70. package/dist/elements/pagination.cjs +1 -1
  71. package/dist/elements/pagination.cjs.map +1 -1
  72. package/dist/elements/pagination.d.ts +8 -5
  73. package/dist/elements/pagination.js +32 -26
  74. package/dist/elements/pagination.js.map +1 -1
  75. package/dist/elements/popover.cjs +1 -1
  76. package/dist/elements/popover.cjs.map +1 -1
  77. package/dist/elements/popover.d.ts +8 -5
  78. package/dist/elements/popover.js +13 -19
  79. package/dist/elements/popover.js.map +1 -1
  80. package/dist/elements/search-box.cjs +1 -1
  81. package/dist/elements/search-box.cjs.map +1 -1
  82. package/dist/elements/search-box.js +5 -5
  83. package/dist/elements/select.cjs +1 -1
  84. package/dist/elements/select.cjs.map +1 -1
  85. package/dist/elements/select.d.ts +11 -11
  86. package/dist/elements/select.js +49 -51
  87. package/dist/elements/select.js.map +1 -1
  88. package/dist/elements/separator.cjs +1 -1
  89. package/dist/elements/separator.cjs.map +1 -1
  90. package/dist/elements/separator.d.ts +2 -2
  91. package/dist/elements/separator.js +7 -6
  92. package/dist/elements/separator.js.map +1 -1
  93. package/dist/elements/sheet.cjs +1 -1
  94. package/dist/elements/sheet.cjs.map +1 -1
  95. package/dist/elements/sheet.d.ts +8 -7
  96. package/dist/elements/sheet.js +44 -37
  97. package/dist/elements/sheet.js.map +1 -1
  98. package/dist/elements/sidebar.cjs +1 -1
  99. package/dist/elements/sidebar.cjs.map +1 -1
  100. package/dist/elements/sidebar.d.ts +11 -16
  101. package/dist/elements/sidebar.js +178 -166
  102. package/dist/elements/sidebar.js.map +1 -1
  103. package/dist/elements/skeleton.cjs +1 -1
  104. package/dist/elements/skeleton.cjs.map +1 -1
  105. package/dist/elements/skeleton.js +1 -1
  106. package/dist/elements/skeleton.js.map +1 -1
  107. package/dist/elements/spinner.cjs.map +1 -1
  108. package/dist/elements/spinner.js.map +1 -1
  109. package/dist/elements/switch.cjs +1 -1
  110. package/dist/elements/switch.cjs.map +1 -1
  111. package/dist/elements/switch.d.ts +2 -2
  112. package/dist/elements/switch.js +3 -3
  113. package/dist/elements/switch.js.map +1 -1
  114. package/dist/elements/table.cjs +1 -1
  115. package/dist/elements/table.cjs.map +1 -1
  116. package/dist/elements/table.d.ts +1 -1
  117. package/dist/elements/table.js +6 -5
  118. package/dist/elements/table.js.map +1 -1
  119. package/dist/elements/tabs.cjs +1 -1
  120. package/dist/elements/tabs.cjs.map +1 -1
  121. package/dist/elements/tabs.d.ts +10 -6
  122. package/dist/elements/tabs.js +28 -16
  123. package/dist/elements/tabs.js.map +1 -1
  124. package/dist/elements/textarea.cjs +2 -0
  125. package/dist/elements/textarea.cjs.map +1 -0
  126. package/dist/elements/textarea.d.ts +3 -0
  127. package/dist/elements/textarea.js +15 -0
  128. package/dist/elements/textarea.js.map +1 -0
  129. package/dist/elements/toggle.cjs +1 -1
  130. package/dist/elements/toggle.cjs.map +1 -1
  131. package/dist/elements/toggle.d.ts +2 -2
  132. package/dist/elements/toggle.js +8 -8
  133. package/dist/elements/toggle.js.map +1 -1
  134. package/dist/elements/tooltip.cjs +1 -1
  135. package/dist/elements/tooltip.cjs.map +1 -1
  136. package/dist/elements/tooltip.d.ts +5 -5
  137. package/dist/elements/tooltip.js +18 -12
  138. package/dist/elements/tooltip.js.map +1 -1
  139. package/package.json +3 -71
@@ -1,16 +1,16 @@
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 * as n from "@radix-ui/react-label";
4
+ import "react";
5
5
  //#region src/elements/label.tsx
6
- function r({ className: r, ...i }) {
7
- return /* @__PURE__ */ t(n.Root, {
6
+ function n({ className: n, ...r }) {
7
+ return /* @__PURE__ */ t("label", {
8
8
  "data-slot": "label",
9
- className: e("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", r),
10
- ...i
9
+ className: e("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),
10
+ ...r
11
11
  });
12
12
  }
13
13
  //#endregion
14
- export { r as Label };
14
+ export { n as Label };
15
15
 
16
16
  //# sourceMappingURL=label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../src/elements/label.tsx"],"sourcesContent":["'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/lib/utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\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,KAA2D;AACxF,QACE,kBAAC,EAAe,MAAhB;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`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react/jsx-runtime`),n=require(`class-variance-authority`),r=require(`@radix-ui/react-slot`);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:n,variant:a,asChild:o=!1,...s}){return(0,t.jsx)(o?r.Slot:`a`,{"data-slot":`link`,className:e.cn(i({variant:a,className:n})),...a===`external`&&!o?{target:`_blank`,rel:`noopener noreferrer`}:{},...s})}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`}),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;
2
2
  //# sourceMappingURL=link.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.cjs","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\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 asChild?: boolean;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `asChild` via Radix UI Slot for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.asChild - render as child element via Radix Slot\n */\nfunction Link({ className, variant, asChild = false, ...props }: LinkProps) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && !asChild ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'asChild'> & 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":"+PAKA,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,UAAU,GAAO,GAAG,GAAoB,CAG1E,OACE,EAAA,EAAA,KAHW,EAAU,EAAA,KAAO,IAG5B,CACE,YAAU,OACV,UAAW,EAAA,GAAG,EAAW,CAAE,UAAS,YAAW,CAAC,CAAC,CACjD,GAAK,IAAY,YAAc,CAAC,EAAU,CAAE,OAAQ,SAAU,IAAK,sBAAuB,CAAG,EAAE,CAC/F,GAAI,EACJ,CAAA,CAmBN,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":"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,3 +1,4 @@
1
+ import { useRender } from '@base-ui/react/use-render';
1
2
  import { type VariantProps } from 'class-variance-authority';
2
3
  declare const linkStyles: (props?: ({
3
4
  variant?: "default" | "external" | null | undefined;
@@ -18,18 +19,18 @@ declare function setLinkComponent(component: LinkComponent): void;
18
19
  */
19
20
  declare function getLinkComponent(): LinkComponent | null;
20
21
  type LinkProps = React.ComponentProps<'a'> & LinkVariantProps & {
21
- asChild?: boolean;
22
+ render?: useRender.RenderProp;
22
23
  };
23
24
  /**
24
25
  * `Link` renders a styled anchor element.
25
26
  *
26
- * Supports `asChild` via Radix UI Slot for composition with custom components.
27
+ * Supports `render` for composition with custom components.
27
28
  *
28
29
  * @param props.variant - "default" | "external" (adds target="_blank" and rel="noopener noreferrer")
29
- * @param props.asChild - render as child element via Radix Slot
30
+ * @param props.render - render as a different element (e.g. `render={<RouterLink to="..." />}`)
30
31
  */
31
- declare function Link({ className, variant, asChild, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
32
- type RouterLinkProps = Omit<LinkProps, 'asChild'> & Record<string, unknown>;
32
+ declare function Link({ className, variant, render, ...props }: LinkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
33
+ type RouterLinkProps = Omit<LinkProps, 'render'> & Record<string, unknown>;
33
34
  /**
34
35
  * `RouterLink` renders using the component set via `setLinkComponent()`,
35
36
  * falling back to a plain `<a>` tag if none has been configured.
@@ -1,7 +1,7 @@
1
1
  import { cn as e } from "../lib/utils.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import { cva as n } from "class-variance-authority";
4
- import { Slot as r } from "@radix-ui/react-slot";
4
+ import { useRender as r } from "@base-ui/react/use-render";
5
5
  //#region src/elements/link.tsx
6
6
  var i = 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", {
7
7
  variants: { variant: {
@@ -16,18 +16,23 @@ function o(e) {
16
16
  function s() {
17
17
  return a;
18
18
  }
19
- function c({ className: n, variant: a, asChild: o = !1, ...s }) {
20
- return /* @__PURE__ */ t(o ? r : "a", {
21
- "data-slot": "link",
22
- className: e(i({
23
- variant: a,
24
- className: n
25
- })),
26
- ...a === "external" && !o ? {
27
- target: "_blank",
28
- rel: "noopener noreferrer"
29
- } : {},
30
- ...s
19
+ function c({ className: t, variant: n, render: a, ...o }) {
20
+ let s = n === "external" && !a ? {
21
+ target: "_blank",
22
+ rel: "noopener noreferrer"
23
+ } : {};
24
+ return r({
25
+ render: a,
26
+ defaultTagName: "a",
27
+ props: {
28
+ "data-slot": "link",
29
+ className: e(i({
30
+ variant: n,
31
+ className: t
32
+ })),
33
+ ...s,
34
+ ...o
35
+ }
31
36
  });
32
37
  }
33
38
  function l({ className: n, variant: r, ...o }) {
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","names":[],"sources":["../../src/elements/link.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\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 asChild?: boolean;\n };\n\n/**\n * `Link` renders a styled anchor element.\n *\n * Supports `asChild` via Radix UI Slot for composition with custom components.\n *\n * @param props.variant - \"default\" | \"external\" (adds target=\"_blank\" and rel=\"noopener noreferrer\")\n * @param props.asChild - render as child element via Radix Slot\n */\nfunction Link({ className, variant, asChild = false, ...props }: LinkProps) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"link\"\n className={cn(linkStyles({ variant, className }))}\n {...(variant === 'external' && !asChild ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n {...props}\n />\n );\n}\n\ntype RouterLinkProps = Omit<LinkProps, 'asChild'> & 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,aAAU,IAAO,GAAG,KAAoB;AAG1E,QACE,kBAHW,IAAU,IAAO,KAG5B;EACE,aAAU;EACV,WAAW,EAAG,EAAW;GAAE;GAAS;GAAW,CAAC,CAAC;EACjD,GAAK,MAAY,cAAc,CAAC,IAAU;GAAE,QAAQ;GAAU,KAAK;GAAuB,GAAG,EAAE;EAC/F,GAAI;EACJ,CAAA;;AAmBN,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;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,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
- "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(`@radix-ui/react-popover`);r=e.__toESM(r,1);function i({...e}){return(0,n.jsx)(r.Root,{"data-slot":`popover`,...e})}function a({...e}){return(0,n.jsx)(r.Trigger,{"data-slot":`popover-trigger`,...e})}function o({className:e,align:i=`center`,sideOffset:a=4,...o}){return(0,n.jsx)(r.Portal,{children:(0,n.jsx)(r.Content,{"data-slot":`popover-content`,align:i,sideOffset:a,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,e),...o})})}function s({...e}){return(0,n.jsx)(r.Anchor,{"data-slot":`popover-anchor`,...e})}var c=r.Close;exports.Popover=i,exports.PopoverAnchor=s,exports.PopoverClose=c,exports.PopoverContent=o,exports.PopoverTrigger=a;
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;
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 * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...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 sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":"4PAMA,SAAS,EAAQ,CAAE,GAAG,GAA6D,CACjF,OAAO,EAAA,EAAA,KAAC,EAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAI,EAAS,CAAA,CAGjE,SAAS,EAAe,CAAE,GAAG,GAAgE,CAC3F,OAAO,EAAA,EAAA,KAAC,EAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAI,EAAS,CAAA,CAG5E,SAAS,EAAe,CACtB,YACA,QAAQ,SACR,aAAa,EACb,GAAG,GACqD,CACxD,OACE,EAAA,EAAA,KAAC,EAAiB,OAAlB,CAAA,UACE,EAAA,EAAA,KAAC,EAAiB,QAAlB,CACE,YAAU,kBACH,QACK,aACZ,UAAW,EAAA,GACT,ieACA,EACD,CACD,GAAI,EACJ,CAAA,CACsB,CAAA,CAI9B,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAAC,EAAiB,OAAlB,CAAyB,YAAU,iBAAiB,GAAI,EAAS,CAAA,CAG1E,IAAM,EAAe,EAAiB"}
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,7 +1,10 @@
1
- import * as PopoverPrimitive from '@radix-ui/react-popover';
1
+ import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
2
2
  declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
3
  declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
4
- declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
5
- declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
6
- declare const PopoverClose: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
7
- export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };
4
+ declare function PopoverContent({ className, align, side, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Popup> & {
5
+ align?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['align'];
6
+ side?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['side'];
7
+ sideOffset?: React.ComponentProps<typeof PopoverPrimitive.Positioner>['sideOffset'];
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ declare const PopoverClose: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").PopoverCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
10
+ export { Popover, PopoverClose, PopoverContent, PopoverTrigger };
@@ -1,13 +1,10 @@
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 * as n from "@radix-ui/react-popover";
4
+ import { Popover as n } from "@base-ui/react/popover";
5
5
  //#region src/elements/popover.tsx
6
6
  function r({ ...e }) {
7
- return /* @__PURE__ */ t(n.Root, {
8
- "data-slot": "popover",
9
- ...e
10
- });
7
+ return /* @__PURE__ */ t(n.Root, { ...e });
11
8
  }
12
9
  function i({ ...e }) {
13
10
  return /* @__PURE__ */ t(n.Trigger, {
@@ -15,23 +12,20 @@ function i({ ...e }) {
15
12
  ...e
16
13
  });
17
14
  }
18
- function a({ className: r, align: i = "center", sideOffset: a = 4, ...o }) {
19
- return /* @__PURE__ */ t(n.Portal, { children: /* @__PURE__ */ t(n.Content, {
20
- "data-slot": "popover-content",
15
+ function a({ className: r, align: i = "center", side: a, sideOffset: o = 4, ...s }) {
16
+ return /* @__PURE__ */ t(n.Portal, { children: /* @__PURE__ */ t(n.Positioner, {
21
17
  align: i,
22
- sideOffset: a,
23
- className: e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", r),
24
- ...o
18
+ side: a,
19
+ sideOffset: o,
20
+ children: /* @__PURE__ */ t(n.Popup, {
21
+ "data-slot": "popover-content",
22
+ className: e("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),
23
+ ...s
24
+ })
25
25
  }) });
26
26
  }
27
- function o({ ...e }) {
28
- return /* @__PURE__ */ t(n.Anchor, {
29
- "data-slot": "popover-anchor",
30
- ...e
31
- });
32
- }
33
- var s = n.Close;
27
+ var o = n.Close;
34
28
  //#endregion
35
- export { r as Popover, o as PopoverAnchor, s as PopoverClose, a as PopoverContent, i as PopoverTrigger };
29
+ export { r as Popover, o as PopoverClose, a as PopoverContent, i as PopoverTrigger };
36
30
 
37
31
  //# sourceMappingURL=popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","names":[],"sources":["../../src/elements/popover.tsx"],"sourcesContent":["'use client';\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@/lib/utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...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 sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nconst PopoverClose = PopoverPrimitive.Close;\n\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n"],"mappings":";;;;;AAMA,SAAS,EAAQ,EAAE,GAAG,KAA6D;AACjF,QAAO,kBAAC,EAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;EAAS,CAAA;;AAGjE,SAAS,EAAe,EAAE,GAAG,KAAgE;AAC3F,QAAO,kBAAC,EAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAG5E,SAAS,EAAe,EACtB,cACA,WAAQ,UACR,gBAAa,GACb,GAAG,KACqD;AACxD,QACE,kBAAC,EAAiB,QAAlB,EAAA,UACE,kBAAC,EAAiB,SAAlB;EACE,aAAU;EACH;EACK;EACZ,WAAW,EACT,keACA,EACD;EACD,GAAI;EACJ,CAAA,EACsB,CAAA;;AAI9B,SAAS,EAAc,EAAE,GAAG,KAA+D;AACzF,QAAO,kBAAC,EAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAG1E,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;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,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`});const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../lib/utils.cjs`);let n=require(`react/jsx-runtime`),r=require(`lucide-react`),i=require(`@radix-ui/react-select`);i=e.__toESM(i,1);function a({...e}){return(0,n.jsx)(i.Root,{"data-slot":`select`,...e})}function o({...e}){return(0,n.jsx)(i.Group,{"data-slot":`select-group`,...e})}function s({...e}){return(0,n.jsx)(i.Value,{"data-slot":`select-value`,...e})}function c({className:e,size:a=`default`,children:o,asChild:s=!1,...c}){return s?(0,n.jsx)(i.Trigger,{...c,asChild:!0,children:o}):(0,n.jsxs)(i.Trigger,{"data-slot":`select-trigger`,"data-size":a,className:t.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`,e),...c,children:[o,(0,n.jsx)(i.Icon,{asChild:!0,children:(0,n.jsx)(r.ChevronDownIcon,{className:`size-4 opacity-50`})})]})}function l({className:e,...a}){return(0,n.jsx)(i.ScrollUpButton,{"data-slot":`select-scroll-up-button`,className:t.cn(`flex cursor-default items-center justify-center py-1`,e),...a,children:(0,n.jsx)(r.ChevronUpIcon,{className:`size-4`})})}function u({className:e,...a}){return(0,n.jsx)(i.ScrollDownButton,{"data-slot":`select-scroll-down-button`,className:t.cn(`flex cursor-default items-center justify-center py-1`,e),...a,children:(0,n.jsx)(r.ChevronDownIcon,{className:`size-4`})})}function d({className:e,children:r,position:a=`popper`,...o}){return(0,n.jsx)(i.Portal,{children:(0,n.jsxs)(i.Content,{"data-slot":`select-content`,className:t.cn(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,a===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:a,...o,children:[(0,n.jsx)(l,{}),(0,n.jsx)(i.Viewport,{className:t.cn(`p-1`,a===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:r}),(0,n.jsx)(u,{})]})})}function f({className:e,...r}){return(0,n.jsx)(i.Label,{"data-slot":`select-label`,className:t.cn(`text-muted-foreground px-2 py-1.5 text-xs`,e),...r})}function p({className:e,children:a,...o}){return(0,n.jsxs)(i.Item,{"data-slot":`select-item`,className:t.cn(`focus:bg-accent focus: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`,e),...o,children:[(0,n.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(r.CheckIcon,{className:`size-4`})})}),(0,n.jsx)(i.ItemText,{children:a})]})}function m({className:e,...r}){return(0,n.jsx)(i.Separator,{"data-slot":`select-separator`,className:t.cn(`bg-border pointer-events-none -mx-1 my-1 h-px`,e),...r})}exports.Select=a,exports.SelectContent=d,exports.SelectGroup=o,exports.SelectItem=p,exports.SelectLabel=f,exports.SelectScrollDownButton=u,exports.SelectScrollUpButton=l,exports.SelectSeparator=m,exports.SelectTrigger=c,exports.SelectValue=s;
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