@hexclave/ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/components/action-dialog.d.ts +3 -3
  2. package/dist/components/action-dialog.d.ts.map +1 -1
  3. package/dist/components/action-dialog.js.map +1 -1
  4. package/dist/components/brand-icons.js +3 -3
  5. package/dist/components/brand-icons.js.map +1 -1
  6. package/dist/components/copy-button.d.ts +2 -2
  7. package/dist/components/copy-button.js +2 -2
  8. package/dist/components/copy-button.js.map +1 -1
  9. package/dist/components/data-table/data-table.js +2 -2
  10. package/dist/components/data-table/data-table.js.map +1 -1
  11. package/dist/components/data-table/toolbar.js +3 -3
  12. package/dist/components/data-table/toolbar.js.map +1 -1
  13. package/dist/components/ui/accordion.js +4 -4
  14. package/dist/components/ui/accordion.js.map +1 -1
  15. package/dist/components/ui/alert.js +4 -4
  16. package/dist/components/ui/alert.js.map +1 -1
  17. package/dist/components/ui/avatar.js +4 -4
  18. package/dist/components/ui/avatar.js.map +1 -1
  19. package/dist/components/ui/badge.js +2 -2
  20. package/dist/components/ui/badge.js.map +1 -1
  21. package/dist/components/ui/breadcrumb.js +6 -6
  22. package/dist/components/ui/breadcrumb.js.map +1 -1
  23. package/dist/components/ui/button.js +7 -7
  24. package/dist/components/ui/button.js.map +1 -1
  25. package/dist/components/ui/card.js +8 -8
  26. package/dist/components/ui/card.js.map +1 -1
  27. package/dist/components/ui/checkbox.js +2 -2
  28. package/dist/components/ui/checkbox.js.map +1 -1
  29. package/dist/components/ui/command.js +8 -8
  30. package/dist/components/ui/command.js.map +1 -1
  31. package/dist/components/ui/context-menu.js +9 -9
  32. package/dist/components/ui/context-menu.js.map +1 -1
  33. package/dist/components/ui/dialog.js +5 -5
  34. package/dist/components/ui/dialog.js.map +1 -1
  35. package/dist/components/ui/dropdown-menu.js +16 -16
  36. package/dist/components/ui/dropdown-menu.js.map +1 -1
  37. package/dist/components/ui/form.js +8 -8
  38. package/dist/components/ui/form.js.map +1 -1
  39. package/dist/components/ui/hover-card.js +2 -2
  40. package/dist/components/ui/hover-card.js.map +1 -1
  41. package/dist/components/ui/inline-code.js +7 -7
  42. package/dist/components/ui/inline-code.js.map +1 -1
  43. package/dist/components/ui/input-otp.js +5 -5
  44. package/dist/components/ui/input-otp.js.map +1 -1
  45. package/dist/components/ui/input.js +3 -3
  46. package/dist/components/ui/input.js.map +1 -1
  47. package/dist/components/ui/label.js +3 -3
  48. package/dist/components/ui/label.js.map +1 -1
  49. package/dist/components/ui/menubar.js +2 -2
  50. package/dist/components/ui/menubar.js.map +1 -1
  51. package/dist/components/ui/navigation-menu.js +7 -7
  52. package/dist/components/ui/navigation-menu.js.map +1 -1
  53. package/dist/components/ui/password-input.js +2 -2
  54. package/dist/components/ui/password-input.js.map +1 -1
  55. package/dist/components/ui/popover.js +2 -2
  56. package/dist/components/ui/popover.js.map +1 -1
  57. package/dist/components/ui/progress.js +2 -2
  58. package/dist/components/ui/progress.js.map +1 -1
  59. package/dist/components/ui/radio-group.js +3 -3
  60. package/dist/components/ui/radio-group.js.map +1 -1
  61. package/dist/components/ui/resizable.d.ts +1 -1
  62. package/dist/components/ui/resizable.d.ts.map +1 -1
  63. package/dist/components/ui/scroll-area.js +3 -3
  64. package/dist/components/ui/scroll-area.js.map +1 -1
  65. package/dist/components/ui/select.js +8 -8
  66. package/dist/components/ui/select.js.map +1 -1
  67. package/dist/components/ui/separator.js +2 -2
  68. package/dist/components/ui/separator.js.map +1 -1
  69. package/dist/components/ui/sheet.js +5 -5
  70. package/dist/components/ui/sheet.js.map +1 -1
  71. package/dist/components/ui/slider.js +2 -2
  72. package/dist/components/ui/slider.js.map +1 -1
  73. package/dist/components/ui/spinner.js +2 -2
  74. package/dist/components/ui/spinner.js.map +1 -1
  75. package/dist/components/ui/switch.js +9 -9
  76. package/dist/components/ui/switch.js.map +1 -1
  77. package/dist/components/ui/table.js +9 -9
  78. package/dist/components/ui/table.js.map +1 -1
  79. package/dist/components/ui/tabs.js +4 -4
  80. package/dist/components/ui/tabs.js.map +1 -1
  81. package/dist/components/ui/textarea.js +2 -2
  82. package/dist/components/ui/textarea.js.map +1 -1
  83. package/dist/components/ui/toast.js +7 -7
  84. package/dist/components/ui/toast.js.map +1 -1
  85. package/dist/components/ui/toggle-group.js +3 -3
  86. package/dist/components/ui/toggle-group.js.map +1 -1
  87. package/dist/components/ui/toggle.js +2 -2
  88. package/dist/components/ui/toggle.js.map +1 -1
  89. package/dist/components/ui/tooltip.js +3 -3
  90. package/dist/components/ui/tooltip.js.map +1 -1
  91. package/dist/components/ui/typography.d.ts +1 -1
  92. package/dist/components/ui/typography.js +2 -2
  93. package/dist/components/ui/typography.js.map +1 -1
  94. package/dist/esm/components/action-dialog.d.ts +3 -3
  95. package/dist/esm/components/action-dialog.d.ts.map +1 -1
  96. package/dist/esm/components/action-dialog.js.map +1 -1
  97. package/dist/esm/components/brand-icons.js.map +1 -1
  98. package/dist/esm/components/copy-button.d.ts +2 -2
  99. package/dist/esm/components/copy-button.js.map +1 -1
  100. package/dist/esm/components/data-table/data-table.js.map +1 -1
  101. package/dist/esm/components/data-table/toolbar.js.map +1 -1
  102. package/dist/esm/components/ui/accordion.js.map +1 -1
  103. package/dist/esm/components/ui/alert.js.map +1 -1
  104. package/dist/esm/components/ui/avatar.js.map +1 -1
  105. package/dist/esm/components/ui/badge.js.map +1 -1
  106. package/dist/esm/components/ui/breadcrumb.js.map +1 -1
  107. package/dist/esm/components/ui/button.js.map +1 -1
  108. package/dist/esm/components/ui/card.js.map +1 -1
  109. package/dist/esm/components/ui/checkbox.js.map +1 -1
  110. package/dist/esm/components/ui/command.js.map +1 -1
  111. package/dist/esm/components/ui/context-menu.js.map +1 -1
  112. package/dist/esm/components/ui/dialog.js.map +1 -1
  113. package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
  114. package/dist/esm/components/ui/form.js.map +1 -1
  115. package/dist/esm/components/ui/hover-card.js.map +1 -1
  116. package/dist/esm/components/ui/inline-code.js.map +1 -1
  117. package/dist/esm/components/ui/input-otp.js.map +1 -1
  118. package/dist/esm/components/ui/input.js.map +1 -1
  119. package/dist/esm/components/ui/label.js.map +1 -1
  120. package/dist/esm/components/ui/menubar.js.map +1 -1
  121. package/dist/esm/components/ui/navigation-menu.js.map +1 -1
  122. package/dist/esm/components/ui/password-input.js.map +1 -1
  123. package/dist/esm/components/ui/popover.js.map +1 -1
  124. package/dist/esm/components/ui/progress.js.map +1 -1
  125. package/dist/esm/components/ui/radio-group.js.map +1 -1
  126. package/dist/esm/components/ui/resizable.d.ts +1 -1
  127. package/dist/esm/components/ui/resizable.d.ts.map +1 -1
  128. package/dist/esm/components/ui/scroll-area.js.map +1 -1
  129. package/dist/esm/components/ui/select.js.map +1 -1
  130. package/dist/esm/components/ui/separator.js.map +1 -1
  131. package/dist/esm/components/ui/sheet.js.map +1 -1
  132. package/dist/esm/components/ui/slider.js.map +1 -1
  133. package/dist/esm/components/ui/spinner.js.map +1 -1
  134. package/dist/esm/components/ui/switch.js.map +1 -1
  135. package/dist/esm/components/ui/table.js.map +1 -1
  136. package/dist/esm/components/ui/tabs.js.map +1 -1
  137. package/dist/esm/components/ui/textarea.js.map +1 -1
  138. package/dist/esm/components/ui/toast.js.map +1 -1
  139. package/dist/esm/components/ui/toggle-group.js.map +1 -1
  140. package/dist/esm/components/ui/toggle.js.map +1 -1
  141. package/dist/esm/components/ui/tooltip.js.map +1 -1
  142. package/dist/esm/components/ui/typography.d.ts +1 -1
  143. package/dist/esm/components/ui/typography.js.map +1 -1
  144. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { Button } from "./ui/button.js";
1
+ import { ButtonProps } from "./ui/button.js";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { LucideIcon } from "lucide-react";
4
4
  import React from "react";
@@ -16,12 +16,12 @@ type ActionDialogProps = {
16
16
  okButton?: boolean | Readonly<{
17
17
  label?: string;
18
18
  onClick?: () => Promise<"prevent-close" | undefined | void>;
19
- props?: Partial<React.ComponentProps<typeof Button>>;
19
+ props?: Partial<ButtonProps>;
20
20
  }>;
21
21
  cancelButton?: boolean | Readonly<{
22
22
  label?: string;
23
23
  onClick?: () => Promise<"prevent-close" | undefined | void>;
24
- props?: Partial<React.ComponentProps<typeof Button>>;
24
+ props?: Partial<ButtonProps>;
25
25
  }>;
26
26
  confirmText?: string;
27
27
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"action-dialog.d.ts","names":[],"sources":["../../src/components/action-dialog.tsx"],"mappings":";;;;;;KAMY,iBAAA;EACV,OAAA,GAAU,KAAA,CAAM,SAAA;EAChB,IAAA;EACA,OAAA;EACA,YAAA,IAAgB,IAAA;EAChB,SAAA,GAAY,UAAA;EACZ,KAAA,YAAiB,KAAA,CAAM,SAAA;EACvB,WAAA,GAAc,KAAA,CAAM,SAAA;EACpB,MAAA;EACA,QAAA,aAAqB,QAAA;IACnB,KAAA;IACA,OAAA,SAAgB,OAAA;IAChB,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,cAAA,QAAsB,MAAA;EAAA;EAE9C,YAAA,aAAyB,QAAA;IACvB,KAAA;IACA,OAAA,SAAgB,OAAA;IAChB,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,cAAA,QAAsB,MAAA;EAAA;EAE9C,WAAA;EACA,QAAA,GAAW,KAAA,CAAM,SAAA;EACjB,YAAA;AAAA;AAAA,iBAGc,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"action-dialog.d.ts","names":[],"sources":["../../src/components/action-dialog.tsx"],"mappings":";;;;;;KAMY,iBAAA;EACV,OAAA,GAAU,KAAA,CAAM,SAAA;EAChB,IAAA;EACA,OAAA;EACA,YAAA,IAAgB,IAAA;EAChB,SAAA,GAAY,UAAA;EACZ,KAAA,YAAiB,KAAA,CAAM,SAAA;EACvB,WAAA,GAAc,KAAA,CAAM,SAAA;EACpB,MAAA;EACA,QAAA,aAAqB,QAAA;IACnB,KAAA;IACA,OAAA,SAAgB,OAAA;IAChB,KAAA,GAAQ,OAAA,CAAQ,WAAA;EAAA;EAElB,YAAA,aAAyB,QAAA;IACvB,KAAA;IACA,OAAA,SAAgB,OAAA;IAChB,KAAA,GAAQ,OAAA,CAAQ,WAAA;EAAA;EAElB,WAAA;EACA,QAAA,GAAW,KAAA,CAAM,SAAA;EACjB,YAAA;AAAA;AAAA,iBAGc,YAAA,CAAa,KAAA,EAAO,iBAAA,GAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"action-dialog.js","names":["CircleAlert","Info","React","Dialog","DialogTrigger","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogBody","Suspense","Skeleton","Alert","Label","Checkbox","DialogFooter","Button"],"sources":["../../src/components/action-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { CircleAlert, Info, LucideIcon } from \"lucide-react\";\nimport React, { Suspense, useId } from \"react\";\nimport { Alert, Button, Checkbox, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Label, Skeleton } from '..';\n\nexport type ActionDialogProps = {\n trigger?: React.ReactNode,\n open?: boolean,\n onClose?: () => void,\n onOpenChange?: (open: boolean) => void,\n titleIcon?: LucideIcon,\n title: boolean | React.ReactNode,\n description?: React.ReactNode,\n danger?: boolean,\n okButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<React.ComponentProps<typeof Button>>,\n }>,\n cancelButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<React.ComponentProps<typeof Button>>,\n }>,\n confirmText?: string,\n children?: React.ReactNode,\n preventClose?: boolean,\n};\n\nexport function ActionDialog(props: ActionDialogProps) {\n const okButton = props.okButton === true ? {} : props.okButton;\n const cancelButton = props.cancelButton === true ? {} : props.cancelButton;\n const anyButton = !!(okButton || cancelButton);\n const title = props.title === true ? (props.cancelButton ? \"Confirmation\" : \"Alert\") : props.title;\n const TitleIcon = props.titleIcon || (props.danger ? CircleAlert : Info);\n const [openState, setOpenState] = React.useState(!!props.open);\n const open = props.open ?? openState;\n const [confirmed, setConfirmed] = React.useState(false);\n const confirmId = useId();\n const [invalidationCount, setInvalidationCount] = React.useState(0);\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n props.onClose?.();\n setConfirmed(false);\n } else {\n setInvalidationCount(invalidationCount + 1);\n }\n setOpenState(open);\n props.onOpenChange?.(open);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} key={invalidationCount}>\n {props.trigger && <DialogTrigger asChild>\n {props.trigger}\n </DialogTrigger>}\n\n <DialogContent\n onInteractOutside={props.preventClose ? (e) => e.preventDefault() : undefined}\n className={props.preventClose ? \"[&>button]:hidden\" : \"\"}\n >\n <DialogHeader>\n <DialogTitle className=\"flex items-center\">\n <TitleIcon className=\"h-4 w-4 mr-2\"/>\n {title}\n </DialogTitle>\n <DialogDescription>\n {props.description}\n </DialogDescription>\n </DialogHeader>\n\n <DialogBody className=\"pb-2\">\n <div>\n <Suspense fallback={\n <>\n <Skeleton className='h-9 w-2/3 self-center' />\n\n <Skeleton className='h-3 w-16 mt-8' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-3 w-24 mt-2' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-9 w-full mt-6' />\n </>\n }>\n {props.children}\n </Suspense>\n </div>\n\n {props.confirmText && <Alert>\n <Label className=\"flex gap-4 items-center\">\n <Checkbox id={confirmId} checked={confirmed} onCheckedChange={(v) => setConfirmed(!!v)}/>\n {props.confirmText}\n </Label>\n </Alert>}\n </DialogBody>\n\n\n {anyButton && <DialogFooter className=\"gap-2\">\n {cancelButton && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={async () => {\n if (await cancelButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...cancelButton.props}\n >\n {cancelButton.label ?? \"Cancel\"}\n </Button>\n )}\n {okButton && (\n <Button\n disabled={!!props.confirmText && !confirmed}\n variant={props.danger ? \"destructive\" : \"default\"}\n onClick={async () => {\n if (await okButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...okButton.props}\n >\n {okButton.label ?? \"OK\"}\n </Button>\n )}\n </DialogFooter>}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAgB,aAAa,OAA0B;CACrD,MAAM,WAAW,MAAM,aAAa,OAAO,EAAE,GAAG,MAAM;CACtD,MAAM,eAAe,MAAM,iBAAiB,OAAO,EAAE,GAAG,MAAM;CAC9D,MAAM,YAAY,CAAC,EAAE,YAAY;CACjC,MAAM,QAAQ,MAAM,UAAU,OAAQ,MAAM,eAAe,iBAAiB,UAAW,MAAM;CAC7F,MAAM,YAAY,MAAM,cAAc,MAAM,SAASA,2BAAcC;CACnE,MAAM,CAAC,WAAW,gBAAgBC,cAAM,SAAS,CAAC,CAAC,MAAM,KAAK;CAC9D,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,CAAC,WAAW,gBAAgBA,cAAM,SAAS,MAAM;CACvD,MAAM,8BAAmB;CACzB,MAAM,CAAC,mBAAmB,wBAAwBA,cAAM,SAAS,EAAE;CAEnE,MAAM,gBAAgB,SAAkB;AACtC,MAAI,CAAC,MAAM;AACT,SAAM,WAAW;AACjB,gBAAa,MAAM;QAEnB,sBAAqB,oBAAoB,EAAE;AAE7C,eAAa,KAAK;AAClB,QAAM,eAAe,KAAK;;AAG5B,QACE,4CAACC;EAAa;EAAoB;aAC/B,MAAM,WAAW,2CAACC;GAAc;aAC9B,MAAM;IACO,EAEhB,4CAACC;GACC,mBAAmB,MAAM,gBAAgB,MAAM,EAAE,gBAAgB,GAAG;GACpE,WAAW,MAAM,eAAe,sBAAsB;;IAEtD,4CAACC,uCACC,4CAACC;KAAY,WAAU;gBACrB,2CAAC,aAAU,WAAU,iBAAgB,EACpC;MACW,EACd,2CAACC,2CACE,MAAM,cACW,IACP;IAEf,4CAACC;KAAW,WAAU;gBACpB,2CAAC,mBACC,2CAACC;MAAS,UACR;OACE,2CAACC,wBAAS,WAAU,0BAA0B;OAE9C,2CAACA,wBAAS,WAAU,kBAAkB;OACtC,2CAACA,wBAAS,WAAU,oBAAoB;OAExC,2CAACA,wBAAS,WAAU,kBAAkB;OACtC,2CAACA,wBAAS,WAAU,oBAAoB;OAExC,2CAACA,wBAAS,WAAU,oBAAoB;UACvC;gBAEF,MAAM;OACE,GACP,EAEL,MAAM,eAAe,2CAACC,+BACrB,4CAACC;MAAM,WAAU;iBACf,2CAACC;OAAS,IAAI;OAAW,SAAS;OAAW,kBAAkB,MAAM,aAAa,CAAC,CAAC,EAAE;QAAG,EACxF,MAAM;OACD,GACF;MACG;IAGZ,aAAa,4CAACC;KAAa,WAAU;gBACnC,gBACC,2CAACC;MACC,SAAQ;MACR,OAAM;MACN,SAAS,YAAY;AACnB,WAAI,MAAM,aAAa,WAAW,KAAK,gBACrC,cAAa,MAAM;;MAGvB,GAAI,aAAa;gBAEhB,aAAa,SAAS;OAChB,EAEV,YACC,2CAACA;MACC,UAAU,CAAC,CAAC,MAAM,eAAe,CAAC;MAClC,SAAS,MAAM,SAAS,gBAAgB;MACxC,SAAS,YAAY;AACnB,WAAI,MAAM,SAAS,WAAW,KAAK,gBACjC,cAAa,MAAM;;MAGvB,GAAI,SAAS;gBAEZ,SAAS,SAAS;OACZ;MAEE;;IACD;IA7EmC,kBA8E5C"}
1
+ {"version":3,"file":"action-dialog.js","names":["CircleAlert","Info","React","Dialog","DialogTrigger","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogBody","Suspense","Skeleton","Alert","Label","Checkbox","DialogFooter","Button"],"sources":["../../src/components/action-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { CircleAlert, Info, LucideIcon } from \"lucide-react\";\nimport React, { Suspense, useId } from \"react\";\nimport { Alert, Button, type ButtonProps, Checkbox, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Label, Skeleton } from '..';\n\nexport type ActionDialogProps = {\n trigger?: React.ReactNode,\n open?: boolean,\n onClose?: () => void,\n onOpenChange?: (open: boolean) => void,\n titleIcon?: LucideIcon,\n title: boolean | React.ReactNode,\n description?: React.ReactNode,\n danger?: boolean,\n okButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<ButtonProps>,\n }>,\n cancelButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<ButtonProps>,\n }>,\n confirmText?: string,\n children?: React.ReactNode,\n preventClose?: boolean,\n};\n\nexport function ActionDialog(props: ActionDialogProps) {\n const okButton = props.okButton === true ? {} : props.okButton;\n const cancelButton = props.cancelButton === true ? {} : props.cancelButton;\n const anyButton = !!(okButton || cancelButton);\n const title = props.title === true ? (props.cancelButton ? \"Confirmation\" : \"Alert\") : props.title;\n const TitleIcon = props.titleIcon || (props.danger ? CircleAlert : Info);\n const [openState, setOpenState] = React.useState(!!props.open);\n const open = props.open ?? openState;\n const [confirmed, setConfirmed] = React.useState(false);\n const confirmId = useId();\n const [invalidationCount, setInvalidationCount] = React.useState(0);\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n props.onClose?.();\n setConfirmed(false);\n } else {\n setInvalidationCount(invalidationCount + 1);\n }\n setOpenState(open);\n props.onOpenChange?.(open);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} key={invalidationCount}>\n {props.trigger && <DialogTrigger asChild>\n {props.trigger}\n </DialogTrigger>}\n\n <DialogContent\n onInteractOutside={props.preventClose ? (e) => e.preventDefault() : undefined}\n className={props.preventClose ? \"[&>button]:hidden\" : \"\"}\n >\n <DialogHeader>\n <DialogTitle className=\"flex items-center\">\n <TitleIcon className=\"h-4 w-4 mr-2\"/>\n {title}\n </DialogTitle>\n <DialogDescription>\n {props.description}\n </DialogDescription>\n </DialogHeader>\n\n <DialogBody className=\"pb-2\">\n <div>\n <Suspense fallback={\n <>\n <Skeleton className='h-9 w-2/3 self-center' />\n\n <Skeleton className='h-3 w-16 mt-8' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-3 w-24 mt-2' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-9 w-full mt-6' />\n </>\n }>\n {props.children}\n </Suspense>\n </div>\n\n {props.confirmText && <Alert>\n <Label className=\"flex gap-4 items-center\">\n <Checkbox id={confirmId} checked={confirmed} onCheckedChange={(v) => setConfirmed(!!v)}/>\n {props.confirmText}\n </Label>\n </Alert>}\n </DialogBody>\n\n\n {anyButton && <DialogFooter className=\"gap-2\">\n {cancelButton && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={async () => {\n if (await cancelButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...cancelButton.props}\n >\n {cancelButton.label ?? \"Cancel\"}\n </Button>\n )}\n {okButton && (\n <Button\n disabled={!!props.confirmText && !confirmed}\n variant={props.danger ? \"destructive\" : \"default\"}\n onClick={async () => {\n if (await okButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...okButton.props}\n >\n {okButton.label ?? \"OK\"}\n </Button>\n )}\n </DialogFooter>}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAgB,aAAa,OAA0B;CACrD,MAAM,WAAW,MAAM,aAAa,OAAO,EAAE,GAAG,MAAM;CACtD,MAAM,eAAe,MAAM,iBAAiB,OAAO,EAAE,GAAG,MAAM;CAC9D,MAAM,YAAY,CAAC,EAAE,YAAY;CACjC,MAAM,QAAQ,MAAM,UAAU,OAAQ,MAAM,eAAe,iBAAiB,UAAW,MAAM;CAC7F,MAAM,YAAY,MAAM,cAAc,MAAM,SAASA,2BAAcC;CACnE,MAAM,CAAC,WAAW,gBAAgBC,cAAM,SAAS,CAAC,CAAC,MAAM,KAAK;CAC9D,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,CAAC,WAAW,gBAAgBA,cAAM,SAAS,MAAM;CACvD,MAAM,8BAAmB;CACzB,MAAM,CAAC,mBAAmB,wBAAwBA,cAAM,SAAS,EAAE;CAEnE,MAAM,gBAAgB,SAAkB;AACtC,MAAI,CAAC,MAAM;AACT,SAAM,WAAW;AACjB,gBAAa,MAAM;QAEnB,sBAAqB,oBAAoB,EAAE;AAE7C,eAAa,KAAK;AAClB,QAAM,eAAe,KAAK;;AAG5B,QACE,4CAACC;EAAa;EAAoB;aAC/B,MAAM,WAAW,2CAACC;GAAc;aAC9B,MAAM;IACO,EAEhB,4CAACC;GACC,mBAAmB,MAAM,gBAAgB,MAAM,EAAE,gBAAgB,GAAG;GACpE,WAAW,MAAM,eAAe,sBAAsB;;IAEtD,4CAACC,uCACC,4CAACC;KAAY,WAAU;gBACrB,2CAAC,aAAU,WAAU,iBAAgB,EACpC;MACW,EACd,2CAACC,2CACE,MAAM,cACW,IACP;IAEf,4CAACC;KAAW,WAAU;gBACpB,2CAAC,mBACC,2CAACC;MAAS,UACR;OACE,2CAACC,wBAAS,WAAU,0BAA0B;OAE9C,2CAACA,wBAAS,WAAU,kBAAkB;OACtC,2CAACA,wBAAS,WAAU,oBAAoB;OAExC,2CAACA,wBAAS,WAAU,kBAAkB;OACtC,2CAACA,wBAAS,WAAU,oBAAoB;OAExC,2CAACA,wBAAS,WAAU,oBAAoB;UACvC;gBAEF,MAAM;OACE,GACP,EAEL,MAAM,eAAe,2CAACC,+BACrB,4CAACC;MAAM,WAAU;iBACf,2CAACC;OAAS,IAAI;OAAW,SAAS;OAAW,kBAAkB,MAAM,aAAa,CAAC,CAAC,EAAE;QAAG,EACxF,MAAM;OACD,GACF;MACG;IAGZ,aAAa,4CAACC;KAAa,WAAU;gBACnC,gBACC,2CAACC;MACC,SAAQ;MACR,OAAM;MACN,SAAS,YAAY;AACnB,WAAI,MAAM,aAAa,WAAW,KAAK,gBACrC,cAAa,MAAM;;MAGvB,GAAI,aAAa;gBAEhB,aAAa,SAAS;OAChB,EAEV,YACC,2CAACA;MACC,UAAU,CAAC,CAAC,MAAM,eAAe,CAAC;MAClC,SAAS,MAAM,SAAS,gBAAgB;MACxC,SAAS,YAAY;AACnB,WAAI,MAAM,SAAS,WAAW,KAAK,gBACjC,cAAa,MAAM;;MAGvB,GAAI,SAAS;gBAEZ,SAAS,SAAS;OACZ;MAEE;;IACD;IA7EmC,kBA8E5C"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_chunk = require('../chunk-BE-pF4vm.js');
3
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
- let _stackframe_stack_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
4
+ let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
5
5
 
6
6
  //#region src/components/brand-icons.tsx
7
7
  function Google({ iconSize }) {
@@ -285,7 +285,7 @@ function Mapping({ provider, iconSize }) {
285
285
  case "apple": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Apple, { iconSize });
286
286
  case "x": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(X, { iconSize });
287
287
  case "twitch": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Twitch, { iconSize });
288
- default: throw new _stackframe_stack_shared_dist_utils_errors.HexclaveAssertionError(`Icon not found for provider: ${provider}`);
288
+ default: throw new _hexclave_shared_dist_utils_errors.HexclaveAssertionError(`Icon not found for provider: ${provider}`);
289
289
  }
290
290
  }
291
291
  function toTitle(id) {
@@ -302,7 +302,7 @@ function toTitle(id) {
302
302
  linkedin: "LinkedIn",
303
303
  x: "X",
304
304
  twitch: "Twitch"
305
- }[id] || (0, _stackframe_stack_shared_dist_utils_errors.throwErr)(`Unknown provider: ${id}`);
305
+ }[id] || (0, _hexclave_shared_dist_utils_errors.throwErr)(`Unknown provider: ${id}`);
306
306
  }
307
307
  const BRAND_COLORS = {
308
308
  github: "#24292e",
@@ -1 +1 @@
1
- {"version":3,"file":"brand-icons.js","names":["HexclaveAssertionError"],"sources":["../../src/components/brand-icons.tsx"],"sourcesContent":["import { HexclaveAssertionError, throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\n\nexport function Google({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 24 24\">\n <path fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"/>\n <path fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"/>\n <path fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"/>\n <path fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"/>\n <path fill=\"none\" d=\"M1 1h22v22H1z\"/>\n </svg>\n );\n}\n\nexport function Facebook({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 512 512\">\n <path fill='#FFFFFF'\n d=\"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"/>\n </svg>\n );\n}\n\nexport function GitHub({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 496 512\">\n <path fill='#FFFFFF'\n d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"/>\n </svg>\n );\n}\n\nexport function Microsoft({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 21 21\">\n <title>{\"MS-SymbolLockup\"}</title>\n <path fill=\"#f25022\" d=\"M1 1h9v9H1z\"/>\n <path fill=\"#00a4ef\" d=\"M1 11h9v9H1z\"/>\n <path fill=\"#7fba00\" d=\"M11 1h9v9h-9z\"/>\n <path fill=\"#ffb900\" d=\"M11 11h9v9h-9z\"/>\n </svg>\n );\n}\n\nexport function Spotify({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 496 512\">\n <path fill='#ffffff'\n d=\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"/>\n </svg>\n );\n}\n\nexport function Discord({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 127.14 96.36\">\n <path fill=\"#fff\"\n d=\"M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z\"/>\n </svg>\n );\n}\n\nexport function Gitlab({ iconSize }: { iconSize: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={iconSize}\n height={iconSize}\n viewBox=\"0 -10 256 256\"\n version=\"1.1\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <g>\n <path\n d=\"M128.07485,236.074667 L128.07485,236.074667 L175.17885,91.1043048 L80.9708495,91.1043048 L128.07485,236.074667 L128.07485,236.074667 Z\"\n fill=\"#E24329\"></path>\n <path\n d=\"M128.07485,236.074423 L80.9708495,91.104061 L14.9557638,91.104061 L128.07485,236.074423 L128.07485,236.074423 Z\"\n fill=\"#FC6D26\"></path>\n <path\n d=\"M14.9558857,91.1044267 L14.9558857,91.1044267 L0.641828571,135.159589 C-0.663771429,139.17757 0.766171429,143.57955 4.18438095,146.06275 L128.074971,236.074789 L14.9558857,91.1044267 L14.9558857,91.1044267 Z\"\n fill=\"#FCA326\"></path>\n <path\n d=\"M14.9558857,91.1045486 L80.9709714,91.1045486 L52.6000762,3.79026286 C51.1408762,-0.703146667 44.7847619,-0.701927619 43.3255619,3.79026286 L14.9558857,91.1045486 L14.9558857,91.1045486 Z\"\n fill=\"#E24329\"></path>\n <path\n d=\"M128.07485,236.074423 L175.17885,91.104061 L241.193935,91.104061 L128.07485,236.074423 L128.07485,236.074423 Z\"\n fill=\"#FC6D26\"></path>\n <path\n d=\"M241.193935,91.1044267 L241.193935,91.1044267 L255.507992,135.159589 C256.813592,139.17757 255.38365,143.57955 251.96544,146.06275 L128.07485,236.074789 L241.193935,91.1044267 L241.193935,91.1044267 Z\"\n fill=\"#FCA326\"></path>\n <path\n d=\"M241.193935,91.1045486 L175.17885,91.1045486 L203.549745,3.79026286 C205.008945,-0.703146667 211.365059,-0.701927619 212.824259,3.79026286 L241.193935,91.1045486 L241.193935,91.1045486 Z\"\n fill=\"#E24329\"></path>\n </g>\n </svg>\n );\n}\n\nexport function Bitbucket({ iconSize }: { iconSize: number }) {\n return (\n <svg\n preserveAspectRatio=\"xMidYMid\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-0.9662264221278978 -0.5824607696358868 257.93281329857973 230.8324730411935\"\n width={iconSize}\n height={iconSize}\n >\n <linearGradient\n id=\"a\"\n x1=\"108.633%\"\n x2=\"46.927%\"\n y1=\"13.818%\"\n y2=\"78.776%\"\n >\n <stop offset=\".18\" stopColor=\"#0052cc\"/>\n <stop offset=\"1\" stopColor=\"#2684ff\"/>\n </linearGradient>\n <g fill=\"none\">\n <path d=\"M101.272 152.561h53.449l12.901-75.32H87.06z\"/>\n <path\n d=\"M8.308 0A8.202 8.202 0 0 0 .106 9.516l34.819 211.373a11.155 11.155 0 0 0 10.909 9.31h167.04a8.202 8.202 0 0 0 8.201-6.89l34.82-213.752a8.202 8.202 0 0 0-8.203-9.514zm146.616 152.768h-53.315l-14.436-75.42h80.67z\"\n fill=\"#2684ff\"/>\n <path\n d=\"M244.61 77.242h-76.916l-12.909 75.36h-53.272l-62.902 74.663a11.105 11.105 0 0 0 7.171 2.704H212.73a8.196 8.196 0 0 0 8.196-6.884z\"\n fill=\"url(#a)\"/>\n </g>\n </svg>\n );\n}\n\nexport function LinkedIn({ iconSize }: { iconSize: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"#fff\"\n height={iconSize}\n width={iconSize}\n viewBox=\"0 0 310 310\"\n >\n <g id=\"XMLID_801_\">\n <path id=\"XMLID_802_\"\n d=\"M72.16,99.73H9.927c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5H72.16c2.762,0,5-2.238,5-5V104.73 C77.16,101.969,74.922,99.73,72.16,99.73z\"/>\n <path id=\"XMLID_803_\"\n d=\"M41.066,0.341C18.422,0.341,0,18.743,0,41.362C0,63.991,18.422,82.4,41.066,82.4 c22.626,0,41.033-18.41,41.033-41.038C82.1,18.743,63.692,0.341,41.066,0.341z\"/>\n <path id=\"XMLID_804_\"\n d=\"M230.454,94.761c-24.995,0-43.472,10.745-54.679,22.954V104.73c0-2.761-2.238-5-5-5h-59.599 c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5h62.097c2.762,0,5-2.238,5-5v-98.918c0-33.333,9.054-46.319,32.29-46.319 c25.306,0,27.317,20.818,27.317,48.034v97.204c0,2.762,2.238,5,5,5H305c2.762,0,5-2.238,5-5V194.995 C310,145.43,300.549,94.761,230.454,94.761z\"/>\n </g>\n </svg>\n );\n}\n\nexport function Apple({ iconSize }: { iconSize: number }) {\n return (\n <svg fill=\"#fff\" height={iconSize} width={iconSize} version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 22.773 22.773\">\n <path\n d=\"M15.769,0c0.053,0,0.106,0,0.162,0c0.13,1.606-0.483,2.806-1.228,3.675c-0.731,0.863-1.732,1.7-3.351,1.573c-0.108-1.583,0.506-2.694,1.25-3.561C13.292,0.879,14.557,0.16,15.769,0z\"/>\n <path\n d=\"M20.67,16.716c0,0.016,0,0.03,0,0.045c-0.455,1.378-1.104,2.559-1.896,3.655c-0.723,0.995-1.609,2.334-3.191,2.334c-1.367,0-2.275-0.879-3.676-0.903c-1.482-0.024-2.297,0.735-3.652,0.926c-0.155,0-0.31,0-0.462,0c-0.995-0.144-1.798-0.932-2.383-1.642c-1.725-2.098-3.058-4.808-3.306-8.276c0-0.34,0-0.679,0-1.019c0.105-2.482,1.311-4.5,2.914-5.478c0.846-0.52,2.009-0.963,3.304-0.765c0.555,0.086,1.122,0.276,1.619,0.464c0.471,0.181,1.06,0.502,1.618,0.485c0.378-0.011,0.754-0.208,1.135-0.347c1.116-0.403,2.21-0.865,3.652-0.648c1.733,0.262,2.963,1.032,3.723,2.22c-1.466,0.933-2.625,2.339-2.427,4.74C17.818,14.688,19.086,15.964,20.67,16.716z\"/>\n </svg>\n );\n}\n\nexport function X({ iconSize }: { iconSize: number }) {\n return (\n <svg aria-label=\"X\" viewBox=\"0 0 1200 1227\" width={iconSize} height={iconSize}\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#FFFFFF\"\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"/>\n </svg>\n );\n}\n\nexport function Twitch({ iconSize }: { iconSize: number }) {\n return (\n <svg aria-label=\"Twitch\" viewBox=\"0 0 2400 2800\" width={iconSize} height={iconSize}\n xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <polygon fill={\"#FFFFFF\"}\n points=\"2200,1300 1800,1700 1400,1700 1050,2050 1050,1700 600,1700 600,200 2200,200\"/>\n <g>\n <g id=\"Layer_1-2\">\n <path fill={\"#9146FF\"} d=\"M500,0L0,500v1800h600v500l500-500h400l900-900V0H500z M2200,1300l-400,400h-400l-350,350v-350H600V200h1600 V1300z\"/>\n <rect x=\"1700\" y=\"550\" fill={\"#9146FF\"} width=\"200\" height=\"600\"/>\n <rect x=\"1150\" y=\"550\" fill={\"#9146FF\"} width=\"200\" height=\"600\"/>\n </g>\n </g>\n </g>\n </svg>\n );\n}\n\nexport function Mapping({\n provider,\n iconSize,\n}: {\n provider: string,\n iconSize: number,\n}) {\n switch (provider) {\n case \"google\": {\n return <Google iconSize={iconSize}/>;\n }\n case \"github\": {\n return <GitHub iconSize={iconSize}/>;\n }\n case \"facebook\": {\n return <Facebook iconSize={iconSize}/>;\n }\n case \"microsoft\": {\n return <Microsoft iconSize={iconSize}/>;\n }\n case \"spotify\": {\n return <Spotify iconSize={iconSize}/>;\n }\n case \"discord\": {\n return <Discord iconSize={iconSize}/>;\n }\n case \"gitlab\": {\n return <Gitlab iconSize={iconSize}/>;\n }\n case \"bitbucket\": {\n return <Bitbucket iconSize={iconSize}/>;\n }\n case \"linkedin\": {\n return <LinkedIn iconSize={iconSize}/>;\n }\n case \"apple\": {\n return <Apple iconSize={iconSize}/>;\n }\n case \"x\": {\n return <X iconSize={iconSize}/>;\n }\n case \"twitch\": {\n return <Twitch iconSize={iconSize}/>;\n }\n default: {\n throw new HexclaveAssertionError(`Icon not found for provider: ${provider}`);\n }\n }\n}\n\nexport function toTitle(id: string) {\n return {\n github: \"GitHub\",\n google: \"Google\",\n facebook: \"Facebook\",\n microsoft: \"Microsoft\",\n spotify: \"Spotify\",\n discord: \"Discord\",\n gitlab: \"GitLab\",\n apple: \"Apple\",\n bitbucket: \"Bitbucket\",\n linkedin: \"LinkedIn\",\n x: \"X\",\n twitch: \"Twitch\"\n }[id] || throwErr(`Unknown provider: ${id}`);\n}\n\nexport const BRAND_COLORS: Record<string, string> = {\n github: '#24292e',\n google: '#ffffff',\n facebook: '#0866FF',\n microsoft: '#2F2F2F',\n spotify: '#1DD65F',\n discord: '#5661F5',\n linkedin: '#0A66C2',\n x: '#000000',\n apple: '#000000',\n twitch: '#ffffff'\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"brand-icons.js","names":["HexclaveAssertionError"],"sources":["../../src/components/brand-icons.tsx"],"sourcesContent":["import { HexclaveAssertionError, throwErr } from \"@hexclave/shared/dist/utils/errors\";\n\nexport function Google({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 24 24\">\n <path fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"/>\n <path fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"/>\n <path fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"/>\n <path fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"/>\n <path fill=\"none\" d=\"M1 1h22v22H1z\"/>\n </svg>\n );\n}\n\nexport function Facebook({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 512 512\">\n <path fill='#FFFFFF'\n d=\"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"/>\n </svg>\n );\n}\n\nexport function GitHub({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 496 512\">\n <path fill='#FFFFFF'\n d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"/>\n </svg>\n );\n}\n\nexport function Microsoft({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 21 21\">\n <title>{\"MS-SymbolLockup\"}</title>\n <path fill=\"#f25022\" d=\"M1 1h9v9H1z\"/>\n <path fill=\"#00a4ef\" d=\"M1 11h9v9H1z\"/>\n <path fill=\"#7fba00\" d=\"M11 1h9v9h-9z\"/>\n <path fill=\"#ffb900\" d=\"M11 11h9v9h-9z\"/>\n </svg>\n );\n}\n\nexport function Spotify({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 496 512\">\n <path fill='#ffffff'\n d=\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"/>\n </svg>\n );\n}\n\nexport function Discord({ iconSize }: { iconSize: number }) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={iconSize} height={iconSize} viewBox=\"0 0 127.14 96.36\">\n <path fill=\"#fff\"\n d=\"M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z\"/>\n </svg>\n );\n}\n\nexport function Gitlab({ iconSize }: { iconSize: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={iconSize}\n height={iconSize}\n viewBox=\"0 -10 256 256\"\n version=\"1.1\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <g>\n <path\n d=\"M128.07485,236.074667 L128.07485,236.074667 L175.17885,91.1043048 L80.9708495,91.1043048 L128.07485,236.074667 L128.07485,236.074667 Z\"\n fill=\"#E24329\"></path>\n <path\n d=\"M128.07485,236.074423 L80.9708495,91.104061 L14.9557638,91.104061 L128.07485,236.074423 L128.07485,236.074423 Z\"\n fill=\"#FC6D26\"></path>\n <path\n d=\"M14.9558857,91.1044267 L14.9558857,91.1044267 L0.641828571,135.159589 C-0.663771429,139.17757 0.766171429,143.57955 4.18438095,146.06275 L128.074971,236.074789 L14.9558857,91.1044267 L14.9558857,91.1044267 Z\"\n fill=\"#FCA326\"></path>\n <path\n d=\"M14.9558857,91.1045486 L80.9709714,91.1045486 L52.6000762,3.79026286 C51.1408762,-0.703146667 44.7847619,-0.701927619 43.3255619,3.79026286 L14.9558857,91.1045486 L14.9558857,91.1045486 Z\"\n fill=\"#E24329\"></path>\n <path\n d=\"M128.07485,236.074423 L175.17885,91.104061 L241.193935,91.104061 L128.07485,236.074423 L128.07485,236.074423 Z\"\n fill=\"#FC6D26\"></path>\n <path\n d=\"M241.193935,91.1044267 L241.193935,91.1044267 L255.507992,135.159589 C256.813592,139.17757 255.38365,143.57955 251.96544,146.06275 L128.07485,236.074789 L241.193935,91.1044267 L241.193935,91.1044267 Z\"\n fill=\"#FCA326\"></path>\n <path\n d=\"M241.193935,91.1045486 L175.17885,91.1045486 L203.549745,3.79026286 C205.008945,-0.703146667 211.365059,-0.701927619 212.824259,3.79026286 L241.193935,91.1045486 L241.193935,91.1045486 Z\"\n fill=\"#E24329\"></path>\n </g>\n </svg>\n );\n}\n\nexport function Bitbucket({ iconSize }: { iconSize: number }) {\n return (\n <svg\n preserveAspectRatio=\"xMidYMid\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-0.9662264221278978 -0.5824607696358868 257.93281329857973 230.8324730411935\"\n width={iconSize}\n height={iconSize}\n >\n <linearGradient\n id=\"a\"\n x1=\"108.633%\"\n x2=\"46.927%\"\n y1=\"13.818%\"\n y2=\"78.776%\"\n >\n <stop offset=\".18\" stopColor=\"#0052cc\"/>\n <stop offset=\"1\" stopColor=\"#2684ff\"/>\n </linearGradient>\n <g fill=\"none\">\n <path d=\"M101.272 152.561h53.449l12.901-75.32H87.06z\"/>\n <path\n d=\"M8.308 0A8.202 8.202 0 0 0 .106 9.516l34.819 211.373a11.155 11.155 0 0 0 10.909 9.31h167.04a8.202 8.202 0 0 0 8.201-6.89l34.82-213.752a8.202 8.202 0 0 0-8.203-9.514zm146.616 152.768h-53.315l-14.436-75.42h80.67z\"\n fill=\"#2684ff\"/>\n <path\n d=\"M244.61 77.242h-76.916l-12.909 75.36h-53.272l-62.902 74.663a11.105 11.105 0 0 0 7.171 2.704H212.73a8.196 8.196 0 0 0 8.196-6.884z\"\n fill=\"url(#a)\"/>\n </g>\n </svg>\n );\n}\n\nexport function LinkedIn({ iconSize }: { iconSize: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"#fff\"\n height={iconSize}\n width={iconSize}\n viewBox=\"0 0 310 310\"\n >\n <g id=\"XMLID_801_\">\n <path id=\"XMLID_802_\"\n d=\"M72.16,99.73H9.927c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5H72.16c2.762,0,5-2.238,5-5V104.73 C77.16,101.969,74.922,99.73,72.16,99.73z\"/>\n <path id=\"XMLID_803_\"\n d=\"M41.066,0.341C18.422,0.341,0,18.743,0,41.362C0,63.991,18.422,82.4,41.066,82.4 c22.626,0,41.033-18.41,41.033-41.038C82.1,18.743,63.692,0.341,41.066,0.341z\"/>\n <path id=\"XMLID_804_\"\n d=\"M230.454,94.761c-24.995,0-43.472,10.745-54.679,22.954V104.73c0-2.761-2.238-5-5-5h-59.599 c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5h62.097c2.762,0,5-2.238,5-5v-98.918c0-33.333,9.054-46.319,32.29-46.319 c25.306,0,27.317,20.818,27.317,48.034v97.204c0,2.762,2.238,5,5,5H305c2.762,0,5-2.238,5-5V194.995 C310,145.43,300.549,94.761,230.454,94.761z\"/>\n </g>\n </svg>\n );\n}\n\nexport function Apple({ iconSize }: { iconSize: number }) {\n return (\n <svg fill=\"#fff\" height={iconSize} width={iconSize} version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 22.773 22.773\">\n <path\n d=\"M15.769,0c0.053,0,0.106,0,0.162,0c0.13,1.606-0.483,2.806-1.228,3.675c-0.731,0.863-1.732,1.7-3.351,1.573c-0.108-1.583,0.506-2.694,1.25-3.561C13.292,0.879,14.557,0.16,15.769,0z\"/>\n <path\n d=\"M20.67,16.716c0,0.016,0,0.03,0,0.045c-0.455,1.378-1.104,2.559-1.896,3.655c-0.723,0.995-1.609,2.334-3.191,2.334c-1.367,0-2.275-0.879-3.676-0.903c-1.482-0.024-2.297,0.735-3.652,0.926c-0.155,0-0.31,0-0.462,0c-0.995-0.144-1.798-0.932-2.383-1.642c-1.725-2.098-3.058-4.808-3.306-8.276c0-0.34,0-0.679,0-1.019c0.105-2.482,1.311-4.5,2.914-5.478c0.846-0.52,2.009-0.963,3.304-0.765c0.555,0.086,1.122,0.276,1.619,0.464c0.471,0.181,1.06,0.502,1.618,0.485c0.378-0.011,0.754-0.208,1.135-0.347c1.116-0.403,2.21-0.865,3.652-0.648c1.733,0.262,2.963,1.032,3.723,2.22c-1.466,0.933-2.625,2.339-2.427,4.74C17.818,14.688,19.086,15.964,20.67,16.716z\"/>\n </svg>\n );\n}\n\nexport function X({ iconSize }: { iconSize: number }) {\n return (\n <svg aria-label=\"X\" viewBox=\"0 0 1200 1227\" width={iconSize} height={iconSize}\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"#FFFFFF\"\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"/>\n </svg>\n );\n}\n\nexport function Twitch({ iconSize }: { iconSize: number }) {\n return (\n <svg aria-label=\"Twitch\" viewBox=\"0 0 2400 2800\" width={iconSize} height={iconSize}\n xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <polygon fill={\"#FFFFFF\"}\n points=\"2200,1300 1800,1700 1400,1700 1050,2050 1050,1700 600,1700 600,200 2200,200\"/>\n <g>\n <g id=\"Layer_1-2\">\n <path fill={\"#9146FF\"} d=\"M500,0L0,500v1800h600v500l500-500h400l900-900V0H500z M2200,1300l-400,400h-400l-350,350v-350H600V200h1600 V1300z\"/>\n <rect x=\"1700\" y=\"550\" fill={\"#9146FF\"} width=\"200\" height=\"600\"/>\n <rect x=\"1150\" y=\"550\" fill={\"#9146FF\"} width=\"200\" height=\"600\"/>\n </g>\n </g>\n </g>\n </svg>\n );\n}\n\nexport function Mapping({\n provider,\n iconSize,\n}: {\n provider: string,\n iconSize: number,\n}) {\n switch (provider) {\n case \"google\": {\n return <Google iconSize={iconSize}/>;\n }\n case \"github\": {\n return <GitHub iconSize={iconSize}/>;\n }\n case \"facebook\": {\n return <Facebook iconSize={iconSize}/>;\n }\n case \"microsoft\": {\n return <Microsoft iconSize={iconSize}/>;\n }\n case \"spotify\": {\n return <Spotify iconSize={iconSize}/>;\n }\n case \"discord\": {\n return <Discord iconSize={iconSize}/>;\n }\n case \"gitlab\": {\n return <Gitlab iconSize={iconSize}/>;\n }\n case \"bitbucket\": {\n return <Bitbucket iconSize={iconSize}/>;\n }\n case \"linkedin\": {\n return <LinkedIn iconSize={iconSize}/>;\n }\n case \"apple\": {\n return <Apple iconSize={iconSize}/>;\n }\n case \"x\": {\n return <X iconSize={iconSize}/>;\n }\n case \"twitch\": {\n return <Twitch iconSize={iconSize}/>;\n }\n default: {\n throw new HexclaveAssertionError(`Icon not found for provider: ${provider}`);\n }\n }\n}\n\nexport function toTitle(id: string) {\n return {\n github: \"GitHub\",\n google: \"Google\",\n facebook: \"Facebook\",\n microsoft: \"Microsoft\",\n spotify: \"Spotify\",\n discord: \"Discord\",\n gitlab: \"GitLab\",\n apple: \"Apple\",\n bitbucket: \"Bitbucket\",\n linkedin: \"LinkedIn\",\n x: \"X\",\n twitch: \"Twitch\"\n }[id] || throwErr(`Unknown provider: ${id}`);\n}\n\nexport const BRAND_COLORS: Record<string, string> = {\n github: '#24292e',\n google: '#ffffff',\n facebook: '#0866FF',\n microsoft: '#2F2F2F',\n spotify: '#1DD65F',\n discord: '#5661F5',\n linkedin: '#0A66C2',\n x: '#000000',\n apple: '#000000',\n twitch: '#ffffff'\n};\n"],"mappings":"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"}
@@ -13,9 +13,9 @@ declare const CopyButton: React.FC<{
13
13
  variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "plain" | null | undefined;
14
14
  size?: "default" | "plain" | "sm" | "lg" | "icon" | null | undefined;
15
15
  } & class_variance_authority_types0.ClassProp) | undefined) => string> & {
16
- ref?: React.Ref<HTMLButtonElement> | undefined;
17
- } & {
18
16
  content: string;
17
+ } & {
18
+ ref?: React.Ref<HTMLButtonElement> | undefined;
19
19
  }>;
20
20
  //#endregion
21
21
  export { CopyButton };
@@ -7,10 +7,10 @@ let react = require("react");
7
7
  react = require_chunk.__toESM(react);
8
8
  let ___index_js = require("../index.js");
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
- let _stackframe_stack_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
10
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
11
11
 
12
12
  //#region src/components/copy-button.tsx
13
- const CopyButton = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)((props, ref) => {
13
+ const CopyButton = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)((props, ref) => {
14
14
  const { toast } = (0, ___index_js.useToast)();
15
15
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(___index_js.Button, {
16
16
  variant: "secondary",
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.js","names":["Button","Copy"],"sources":["../../src/components/copy-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport { Copy } from \"lucide-react\";\nimport React from \"react\";\nimport { Button, cn, useToast } from \"..\";\n\nconst CopyButton = forwardRefIfNeeded<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button> & { content: string }\n>((props, ref) => {\n const { toast } = useToast();\n\n return (\n <Button\n variant=\"secondary\"\n {...props}\n className={cn(\"h-6 w-6 p-1\", props.className)}\n ref={ref}\n onClick={async (...args) => {\n await props.onClick?.(...args);\n try {\n await navigator.clipboard.writeText(props.content);\n toast({ description: 'Copied to clipboard!', variant: 'success' });\n } catch (e) {\n toast({ description: 'Failed to copy to clipboard', variant: 'destructive' });\n }\n }}\n >\n <Copy />\n </Button>\n );\n});\nCopyButton.displayName = \"CopyButton\";\n\nexport { CopyButton };\n"],"mappings":";;;;;;;;;;;;AAOA,MAAM,gFAGH,OAAO,QAAQ;CAChB,MAAM,EAAE,qCAAoB;AAE5B,QACE,2CAACA;EACC,SAAQ;EACR,GAAI;EACJ,+BAAc,eAAe,MAAM,UAAU;EACxC;EACL,SAAS,OAAO,GAAG,SAAS;AAC1B,SAAM,MAAM,UAAU,GAAG,KAAK;AAC9B,OAAI;AACF,UAAM,UAAU,UAAU,UAAU,MAAM,QAAQ;AAClD,UAAM;KAAE,aAAa;KAAwB,SAAS;KAAW,CAAC;YAC3D,GAAG;AACV,UAAM;KAAE,aAAa;KAA+B,SAAS;KAAe,CAAC;;;YAIjF,2CAACC,sBAAO;GACD;EAEX;AACF,WAAW,cAAc"}
1
+ {"version":3,"file":"copy-button.js","names":["Button","Copy"],"sources":["../../src/components/copy-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport { Copy } from \"lucide-react\";\nimport React from \"react\";\nimport { Button, cn, type ButtonProps, useToast } from \"..\";\n\nconst CopyButton = forwardRefIfNeeded<\n HTMLButtonElement,\n ButtonProps & { content: string }\n>((props, ref) => {\n const { toast } = useToast();\n\n return (\n <Button\n variant=\"secondary\"\n {...props}\n className={cn(\"h-6 w-6 p-1\", props.className)}\n ref={ref}\n onClick={async (...args) => {\n await props.onClick?.(...args);\n try {\n await navigator.clipboard.writeText(props.content);\n toast({ description: 'Copied to clipboard!', variant: 'success' });\n } catch (e) {\n toast({ description: 'Failed to copy to clipboard', variant: 'destructive' });\n }\n }}\n >\n <Copy />\n </Button>\n );\n});\nCopyButton.displayName = \"CopyButton\";\n\nexport { CopyButton };\n"],"mappings":";;;;;;;;;;;;AAOA,MAAM,wEAGH,OAAO,QAAQ;CAChB,MAAM,EAAE,qCAAoB;AAE5B,QACE,2CAACA;EACC,SAAQ;EACR,GAAI;EACJ,+BAAc,eAAe,MAAM,UAAU;EACxC;EACL,SAAS,OAAO,GAAG,SAAS;AAC1B,SAAM,MAAM,UAAU,GAAG,KAAK;AAC9B,OAAI;AACF,UAAM,UAAU,UAAU,UAAU,MAAM,QAAQ;AAClD,UAAM;KAAE,aAAa;KAAwB,SAAS;KAAW,CAAC;YAC3D,GAAG;AACV,UAAM;KAAE,aAAa;KAA+B,SAAS;KAAe,CAAC;;;YAIjF,2CAACC,sBAAO;GACD;EAEX;AACF,WAAW,cAAc"}
@@ -5,7 +5,7 @@ const require_chunk = require('../../chunk-BE-pF4vm.js');
5
5
  let react = require("react");
6
6
  react = require_chunk.__toESM(react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
- let _stackframe_stack_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
8
+ let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
9
9
  let ___ui_table_js = require("../ui/table.js");
10
10
  let _tanstack_react_table = require("@tanstack/react-table");
11
11
  let __pagination_js = require("./pagination.js");
@@ -86,7 +86,7 @@ function DataTableManualPagination({ columns, data, toolbarRender, defaultVisibi
86
86
  const [globalFilter, setGlobalFilter] = react.default.useState();
87
87
  const [refreshCounter, setRefreshCounter] = react.default.useState(0);
88
88
  react.default.useEffect(() => {
89
- (0, _stackframe_stack_shared_dist_utils_promises.runAsynchronouslyWithAlert)(async () => {
89
+ (0, _hexclave_shared_dist_utils_promises.runAsynchronouslyWithAlert)(async () => {
90
90
  const { nextCursor } = await onUpdate({
91
91
  cursor: cursors[pagination.pageIndex],
92
92
  limit: pagination.pageSize,
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","names":["DataTableToolbar","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","DataTablePagination","React","GlobalFiltering"],"sources":["../../../src/components/data-table/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\nimport {\n ColumnDef,\n ColumnFiltersState,\n GlobalFiltering,\n OnChangeFn,\n PaginationState,\n SortingState,\n Table as TableType,\n VisibilityState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport React from \"react\";\nimport { DataTablePagination } from \"./pagination\";\nimport { DataTableToolbar } from \"./toolbar\";\n\nexport function TableView<TData, TValue>(props: {\n table: TableType<TData>,\n columns: ColumnDef<TData, TValue>[],\n toolbarRender?: (table: TableType<TData>) => React.ReactNode,\n showDefaultToolbar?: boolean,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n onRowClick?: (row: TData) => void,\n}) {\n return (\n <div className=\"space-y-4\">\n <DataTableToolbar\n table={props.table}\n toolbarRender={props.toolbarRender}\n showDefaultToolbar={props.showDefaultToolbar}\n defaultColumnFilters={props.defaultColumnFilters}\n defaultSorting={props.defaultSorting}\n />\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {props.table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} >\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {props.table.getRowModel().rows.length ? (\n props.table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n onClick={(ev) => {\n // only trigger onRowClick if the element is a direct descendant; don't trigger for portals\n if (ev.target instanceof Node && ev.currentTarget.contains(ev.target)) {\n props.onRowClick?.(row.original);\n }\n }}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={props.columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <DataTablePagination table={props.table} />\n </div>\n );\n}\n\ntype DataTableProps<TData, TValue> = {\n columns: ColumnDef<TData, TValue>[],\n data: TData[],\n toolbarRender?: (table: TableType<TData>) => React.ReactNode,\n defaultVisibility?: VisibilityState,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n showDefaultToolbar?: boolean,\n onRowClick?: (row: TData) => void,\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n defaultColumnFilters,\n defaultSorting,\n showDefaultToolbar = true,\n onRowClick,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSorting);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(defaultColumnFilters);\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: 10,\n });\n const [globalFilter, setGlobalFilter] = React.useState<any>();\n\n return <DataTableBase\n columns={columns}\n data={data}\n toolbarRender={toolbarRender}\n defaultVisibility={defaultVisibility}\n sorting={sorting}\n setSorting={setSorting}\n defaultSorting={defaultSorting}\n columnFilters={columnFilters}\n setColumnFilters={setColumnFilters}\n defaultColumnFilters={defaultColumnFilters}\n manualPagination={false}\n manualFiltering={false}\n pagination={pagination}\n setPagination={setPagination}\n globalFilter={globalFilter}\n setGlobalFilter={setGlobalFilter}\n showDefaultToolbar={showDefaultToolbar}\n onRowClick={onRowClick}\n />;\n}\n\ntype DataTableManualPaginationProps<TData, TValue> = DataTableProps<TData, TValue> & {\n onUpdate: (options: {\n cursor: string,\n limit: number,\n sorting: SortingState,\n columnFilters: ColumnFiltersState,\n globalFilters: any,\n }) => Promise<{ nextCursor: string | null }>,\n}\n\nexport function DataTableManualPagination<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n defaultColumnFilters,\n defaultSorting,\n onRowClick,\n onUpdate,\n showDefaultToolbar = true,\n}: DataTableManualPaginationProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSorting);\n const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize: 10 });\n const [cursors, setCursors] = React.useState<Record<number, string>>({});\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(defaultColumnFilters);\n const [globalFilter, setGlobalFilter] = React.useState<any>();\n const [refreshCounter, setRefreshCounter] = React.useState(0);\n\n React.useEffect(() => {\n runAsynchronouslyWithAlert(async () => {\n const { nextCursor } = await onUpdate({\n cursor: cursors[pagination.pageIndex],\n limit: pagination.pageSize,\n sorting,\n columnFilters,\n globalFilters: globalFilter,\n });\n setCursors(c => nextCursor ? { ...c, [pagination.pageIndex + 1]: nextCursor } : c);\n });\n }, [pagination, sorting, columnFilters, refreshCounter]);\n\n // Reset to first page when filters change\n React.useEffect(() => {\n setPagination(pagination => ({ ...pagination, pageIndex: 0 }));\n setCursors({});\n }, [columnFilters, sorting, pagination.pageSize]);\n\n // Refresh the users when the global filter changes. Delay to prevent unnecessary re-renders.\n React.useEffect(() => {\n const timer = setTimeout(() => {\n setRefreshCounter(x => x + 1);\n }, 3_000);\n return () => clearTimeout(timer);\n }, [globalFilter]);\n\n return <DataTableBase\n columns={columns}\n data={data}\n toolbarRender={toolbarRender}\n sorting={sorting}\n setSorting={setSorting}\n pagination={pagination}\n setPagination={setPagination}\n columnFilters={columnFilters}\n setColumnFilters={setColumnFilters}\n rowCount={pagination.pageSize * Object.keys(cursors).length + (cursors[pagination.pageIndex + 1] ? 1 : 0)}\n globalFilter={globalFilter}\n setGlobalFilter={setGlobalFilter}\n defaultColumnFilters={defaultColumnFilters}\n defaultSorting={defaultSorting}\n defaultVisibility={defaultVisibility}\n showDefaultToolbar={showDefaultToolbar}\n onRowClick={onRowClick}\n />;\n}\n\ntype DataTableBaseProps<TData, TValue> = DataTableProps<TData, TValue> & {\n sorting?: SortingState,\n setSorting?: OnChangeFn<SortingState>,\n pagination?: PaginationState,\n setPagination?: OnChangeFn<PaginationState>,\n rowCount?: number,\n columnFilters?: ColumnFiltersState,\n setColumnFilters?: OnChangeFn<ColumnFiltersState>,\n manualPagination?: boolean,\n manualFiltering?: boolean,\n globalFilter?: any,\n setGlobalFilter?: OnChangeFn<any>,\n}\n\nfunction DataTableBase<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n sorting,\n setSorting,\n defaultColumnFilters,\n defaultSorting,\n pagination,\n setPagination,\n rowCount,\n columnFilters,\n setColumnFilters,\n globalFilter,\n setGlobalFilter,\n manualPagination = true,\n manualFiltering = true,\n showDefaultToolbar = true,\n onRowClick,\n}: DataTableBaseProps<TData, TValue>) {\n const [rowSelection, setRowSelection] = React.useState({});\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(defaultVisibility || {});\n\n const table: TableType<TData> = useReactTable({\n data,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters,\n pagination,\n globalFilter: globalFilter,\n },\n enableRowSelection: true,\n onGlobalFilterChange: setGlobalFilter,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n getColumnCanGlobalFilter: (c) => c.columnDef.enableGlobalFilter ?? GlobalFiltering.getDefaultOptions!(table).getColumnCanGlobalFilter!(c),\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n autoResetAll: false,\n manualPagination,\n manualFiltering,\n rowCount,\n });\n\n return <TableView\n table={table}\n columns={columns}\n toolbarRender={toolbarRender}\n showDefaultToolbar={showDefaultToolbar}\n defaultColumnFilters={defaultColumnFilters}\n defaultSorting={defaultSorting}\n onRowClick={onRowClick}\n />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","names":["DataTableToolbar","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","DataTablePagination","React","GlobalFiltering"],"sources":["../../../src/components/data-table/data-table.tsx"],"sourcesContent":["\"use client\";\n\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\nimport {\n ColumnDef,\n ColumnFiltersState,\n GlobalFiltering,\n OnChangeFn,\n PaginationState,\n SortingState,\n Table as TableType,\n VisibilityState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport React from \"react\";\nimport { DataTablePagination } from \"./pagination\";\nimport { DataTableToolbar } from \"./toolbar\";\n\nexport function TableView<TData, TValue>(props: {\n table: TableType<TData>,\n columns: ColumnDef<TData, TValue>[],\n toolbarRender?: (table: TableType<TData>) => React.ReactNode,\n showDefaultToolbar?: boolean,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n onRowClick?: (row: TData) => void,\n}) {\n return (\n <div className=\"space-y-4\">\n <DataTableToolbar\n table={props.table}\n toolbarRender={props.toolbarRender}\n showDefaultToolbar={props.showDefaultToolbar}\n defaultColumnFilters={props.defaultColumnFilters}\n defaultSorting={props.defaultSorting}\n />\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {props.table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} >\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {props.table.getRowModel().rows.length ? (\n props.table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n onClick={(ev) => {\n // only trigger onRowClick if the element is a direct descendant; don't trigger for portals\n if (ev.target instanceof Node && ev.currentTarget.contains(ev.target)) {\n props.onRowClick?.(row.original);\n }\n }}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={props.columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <DataTablePagination table={props.table} />\n </div>\n );\n}\n\ntype DataTableProps<TData, TValue> = {\n columns: ColumnDef<TData, TValue>[],\n data: TData[],\n toolbarRender?: (table: TableType<TData>) => React.ReactNode,\n defaultVisibility?: VisibilityState,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n showDefaultToolbar?: boolean,\n onRowClick?: (row: TData) => void,\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n defaultColumnFilters,\n defaultSorting,\n showDefaultToolbar = true,\n onRowClick,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSorting);\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(defaultColumnFilters);\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: 10,\n });\n const [globalFilter, setGlobalFilter] = React.useState<any>();\n\n return <DataTableBase\n columns={columns}\n data={data}\n toolbarRender={toolbarRender}\n defaultVisibility={defaultVisibility}\n sorting={sorting}\n setSorting={setSorting}\n defaultSorting={defaultSorting}\n columnFilters={columnFilters}\n setColumnFilters={setColumnFilters}\n defaultColumnFilters={defaultColumnFilters}\n manualPagination={false}\n manualFiltering={false}\n pagination={pagination}\n setPagination={setPagination}\n globalFilter={globalFilter}\n setGlobalFilter={setGlobalFilter}\n showDefaultToolbar={showDefaultToolbar}\n onRowClick={onRowClick}\n />;\n}\n\ntype DataTableManualPaginationProps<TData, TValue> = DataTableProps<TData, TValue> & {\n onUpdate: (options: {\n cursor: string,\n limit: number,\n sorting: SortingState,\n columnFilters: ColumnFiltersState,\n globalFilters: any,\n }) => Promise<{ nextCursor: string | null }>,\n}\n\nexport function DataTableManualPagination<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n defaultColumnFilters,\n defaultSorting,\n onRowClick,\n onUpdate,\n showDefaultToolbar = true,\n}: DataTableManualPaginationProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSorting);\n const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize: 10 });\n const [cursors, setCursors] = React.useState<Record<number, string>>({});\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(defaultColumnFilters);\n const [globalFilter, setGlobalFilter] = React.useState<any>();\n const [refreshCounter, setRefreshCounter] = React.useState(0);\n\n React.useEffect(() => {\n runAsynchronouslyWithAlert(async () => {\n const { nextCursor } = await onUpdate({\n cursor: cursors[pagination.pageIndex],\n limit: pagination.pageSize,\n sorting,\n columnFilters,\n globalFilters: globalFilter,\n });\n setCursors(c => nextCursor ? { ...c, [pagination.pageIndex + 1]: nextCursor } : c);\n });\n }, [pagination, sorting, columnFilters, refreshCounter]);\n\n // Reset to first page when filters change\n React.useEffect(() => {\n setPagination(pagination => ({ ...pagination, pageIndex: 0 }));\n setCursors({});\n }, [columnFilters, sorting, pagination.pageSize]);\n\n // Refresh the users when the global filter changes. Delay to prevent unnecessary re-renders.\n React.useEffect(() => {\n const timer = setTimeout(() => {\n setRefreshCounter(x => x + 1);\n }, 3_000);\n return () => clearTimeout(timer);\n }, [globalFilter]);\n\n return <DataTableBase\n columns={columns}\n data={data}\n toolbarRender={toolbarRender}\n sorting={sorting}\n setSorting={setSorting}\n pagination={pagination}\n setPagination={setPagination}\n columnFilters={columnFilters}\n setColumnFilters={setColumnFilters}\n rowCount={pagination.pageSize * Object.keys(cursors).length + (cursors[pagination.pageIndex + 1] ? 1 : 0)}\n globalFilter={globalFilter}\n setGlobalFilter={setGlobalFilter}\n defaultColumnFilters={defaultColumnFilters}\n defaultSorting={defaultSorting}\n defaultVisibility={defaultVisibility}\n showDefaultToolbar={showDefaultToolbar}\n onRowClick={onRowClick}\n />;\n}\n\ntype DataTableBaseProps<TData, TValue> = DataTableProps<TData, TValue> & {\n sorting?: SortingState,\n setSorting?: OnChangeFn<SortingState>,\n pagination?: PaginationState,\n setPagination?: OnChangeFn<PaginationState>,\n rowCount?: number,\n columnFilters?: ColumnFiltersState,\n setColumnFilters?: OnChangeFn<ColumnFiltersState>,\n manualPagination?: boolean,\n manualFiltering?: boolean,\n globalFilter?: any,\n setGlobalFilter?: OnChangeFn<any>,\n}\n\nfunction DataTableBase<TData, TValue>({\n columns,\n data,\n toolbarRender,\n defaultVisibility,\n sorting,\n setSorting,\n defaultColumnFilters,\n defaultSorting,\n pagination,\n setPagination,\n rowCount,\n columnFilters,\n setColumnFilters,\n globalFilter,\n setGlobalFilter,\n manualPagination = true,\n manualFiltering = true,\n showDefaultToolbar = true,\n onRowClick,\n}: DataTableBaseProps<TData, TValue>) {\n const [rowSelection, setRowSelection] = React.useState({});\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(defaultVisibility || {});\n\n const table: TableType<TData> = useReactTable({\n data,\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n columnFilters,\n pagination,\n globalFilter: globalFilter,\n },\n enableRowSelection: true,\n onGlobalFilterChange: setGlobalFilter,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n getColumnCanGlobalFilter: (c) => c.columnDef.enableGlobalFilter ?? GlobalFiltering.getDefaultOptions!(table).getColumnCanGlobalFilter!(c),\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n autoResetAll: false,\n manualPagination,\n manualFiltering,\n rowCount,\n });\n\n return <TableView\n table={table}\n columns={columns}\n toolbarRender={toolbarRender}\n showDefaultToolbar={showDefaultToolbar}\n defaultColumnFilters={defaultColumnFilters}\n defaultSorting={defaultSorting}\n onRowClick={onRowClick}\n />;\n}\n"],"mappings":"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"}
@@ -7,13 +7,13 @@ let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let _radix_ui_react_icons = require("@radix-ui/react-icons");
8
8
  let ___ui_button_js = require("../ui/button.js");
9
9
  let __view_options_js = require("./view-options.js");
10
- let _stackframe_stack_shared_dist_utils_objects = require("@hexclave/shared/dist/utils/objects");
10
+ let _hexclave_shared_dist_utils_objects = require("@hexclave/shared/dist/utils/objects");
11
11
  let export_to_csv = require("export-to-csv");
12
12
 
13
13
  //#region src/components/data-table/toolbar.tsx
14
14
  function DataTableToolbar({ table, toolbarRender, showDefaultToolbar, defaultColumnFilters, defaultSorting, showResetFilters = true }) {
15
- const isFiltered = !(0, _stackframe_stack_shared_dist_utils_objects.deepPlainEquals)(table.getState().columnFilters, defaultColumnFilters);
16
- const isSorted = !(0, _stackframe_stack_shared_dist_utils_objects.deepPlainEquals)(table.getState().sorting, defaultSorting);
15
+ const isFiltered = !(0, _hexclave_shared_dist_utils_objects.deepPlainEquals)(table.getState().columnFilters, defaultColumnFilters);
16
+ const isSorted = !(0, _hexclave_shared_dist_utils_objects.deepPlainEquals)(table.getState().sorting, defaultSorting);
17
17
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18
18
  className: "flex items-center justify-between",
19
19
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","names":["Button","Cross2Icon","DataTableViewOptions","DownloadIcon"],"sources":["../../../src/components/data-table/toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport { deepPlainEquals } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { Button } from \"../ui/button\";\nimport { Cell, ColumnFiltersState, SortingState, Table } from \"@tanstack/react-table\";\nimport { download, generateCsv, mkConfig } from 'export-to-csv';\nimport { DownloadIcon } from \"lucide-react\";\nimport { DataTableViewOptions } from \"./view-options\";\n\ntype DataTableToolbarProps<TData> = {\n table: Table<TData>,\n toolbarRender?: (table: Table<TData>) => React.ReactNode,\n showDefaultToolbar?: boolean,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n showResetFilters?: boolean,\n}\n\nexport function DataTableToolbar<TData>({\n table,\n toolbarRender,\n showDefaultToolbar,\n defaultColumnFilters,\n defaultSorting,\n showResetFilters = true,\n}: DataTableToolbarProps<TData>) {\n const isFiltered = !deepPlainEquals(table.getState().columnFilters, defaultColumnFilters);\n const isSorted = !deepPlainEquals(table.getState().sorting, defaultSorting);\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2 flex-wrap flex-1 stack-scope\">\n {toolbarRender?.(table)}\n {showResetFilters && (isFiltered || isSorted) && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n table.setColumnFilters(defaultColumnFilters);\n table.setSorting(defaultSorting);\n }}\n className=\"h-8 px-2 lg:px-3\"\n >\n Reset filters\n <Cross2Icon className=\"ml-2 h-4 w-4\" />\n </Button>\n )}\n </div>\n {showDefaultToolbar && (\n <>\n <div className=\"flex items-center gap-2 flex-wrap\">\n <DataTableViewOptions table={table} />\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"ml-auto hidden h-8 lg:flex\"\n onClick={() => {\n const csvConfig = mkConfig({\n fieldSeparator: ',',\n filename: 'data',\n decimalSeparator: '.',\n useKeysAsHeaders: true,\n });\n\n const renderCellValue = (cell: Cell<TData, unknown>) => {\n const rendered = cell.renderValue();\n if (rendered === null) {\n return undefined;\n }\n if (['string', 'number', 'boolean', 'undefined'].includes(typeof rendered)) {\n return rendered;\n }\n if (rendered instanceof Date) {\n return rendered.toISOString();\n }\n if (typeof rendered === 'object') {\n return JSON.stringify(rendered);\n }\n };\n\n\n const rowModel = table.getCoreRowModel();\n const rows = rowModel.rows.map(row => Object.fromEntries(row.getAllCells().map(c => [c.column.id, renderCellValue(c)]).filter(([_, v]) => v !== undefined)));\n if (rows.length === 0) {\n alert(\"No data to export\");\n return;\n }\n const csv = generateCsv(csvConfig)(rows as any);\n download(csvConfig)(csv);\n }}\n >\n <DownloadIcon className=\"mr-2 h-4 w-4\" />\n Export CSV\n </Button>\n </div>\n </>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,iBAAwB,EACtC,OACA,eACA,oBACA,sBACA,gBACA,mBAAmB,QACY;CAC/B,MAAM,aAAa,kEAAiB,MAAM,UAAU,CAAC,eAAe,qBAAqB;CACzF,MAAM,WAAW,kEAAiB,MAAM,UAAU,CAAC,SAAS,eAAe;AAE3E,QACE,4CAAC;EAAI,WAAU;aACb,4CAAC;GAAI,WAAU;cACZ,gBAAgB,MAAM,EACtB,qBAAqB,cAAc,aAClC,4CAACA;IACC,SAAQ;IACR,eAAe;AACb,WAAM,iBAAiB,qBAAqB;AAC5C,WAAM,WAAW,eAAe;;IAElC,WAAU;eACX,iBAEC,2CAACC,oCAAW,WAAU,iBAAiB;KAChC;IAEP,EACL,sBACC,mFACE,4CAAC;GAAI,WAAU;cACb,2CAACC,0CAA4B,QAAS,EACtC,4CAACF;IACC,SAAQ;IACR,MAAK;IACL,WAAU;IACV,eAAe;KACb,MAAM,wCAAqB;MACzB,gBAAgB;MAChB,UAAU;MACV,kBAAkB;MAClB,kBAAkB;MACnB,CAAC;KAEF,MAAM,mBAAmB,SAA+B;MACtD,MAAM,WAAW,KAAK,aAAa;AACnC,UAAI,aAAa,KACf;AAEF,UAAI;OAAC;OAAU;OAAU;OAAW;OAAY,CAAC,SAAS,OAAO,SAAS,CACxE,QAAO;AAET,UAAI,oBAAoB,KACtB,QAAO,SAAS,aAAa;AAE/B,UAAI,OAAO,aAAa,SACtB,QAAO,KAAK,UAAU,SAAS;;KAMnC,MAAM,OADW,MAAM,iBAAiB,CAClB,KAAK,KAAI,QAAO,OAAO,YAAY,IAAI,aAAa,CAAC,KAAI,MAAK,CAAC,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,MAAM,OAAU,CAAC,CAAC;AAC5J,SAAI,KAAK,WAAW,GAAG;AACrB,YAAM,oBAAoB;AAC1B;;KAEF,MAAM,qCAAkB,UAAU,CAAC,KAAY;AAC/C,iCAAS,UAAU,CAAC,IAAI;;eAG1B,2CAACG,6BAAa,WAAU,iBAAiB;KAElC;IACL,GACL;GAED"}
1
+ {"version":3,"file":"toolbar.js","names":["Button","Cross2Icon","DataTableViewOptions","DownloadIcon"],"sources":["../../../src/components/data-table/toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport { deepPlainEquals } from \"@hexclave/shared/dist/utils/objects\";\nimport { Button } from \"../ui/button\";\nimport { Cell, ColumnFiltersState, SortingState, Table } from \"@tanstack/react-table\";\nimport { download, generateCsv, mkConfig } from 'export-to-csv';\nimport { DownloadIcon } from \"lucide-react\";\nimport { DataTableViewOptions } from \"./view-options\";\n\ntype DataTableToolbarProps<TData> = {\n table: Table<TData>,\n toolbarRender?: (table: Table<TData>) => React.ReactNode,\n showDefaultToolbar?: boolean,\n defaultColumnFilters: ColumnFiltersState,\n defaultSorting: SortingState,\n showResetFilters?: boolean,\n}\n\nexport function DataTableToolbar<TData>({\n table,\n toolbarRender,\n showDefaultToolbar,\n defaultColumnFilters,\n defaultSorting,\n showResetFilters = true,\n}: DataTableToolbarProps<TData>) {\n const isFiltered = !deepPlainEquals(table.getState().columnFilters, defaultColumnFilters);\n const isSorted = !deepPlainEquals(table.getState().sorting, defaultSorting);\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2 flex-wrap flex-1 stack-scope\">\n {toolbarRender?.(table)}\n {showResetFilters && (isFiltered || isSorted) && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n table.setColumnFilters(defaultColumnFilters);\n table.setSorting(defaultSorting);\n }}\n className=\"h-8 px-2 lg:px-3\"\n >\n Reset filters\n <Cross2Icon className=\"ml-2 h-4 w-4\" />\n </Button>\n )}\n </div>\n {showDefaultToolbar && (\n <>\n <div className=\"flex items-center gap-2 flex-wrap\">\n <DataTableViewOptions table={table} />\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"ml-auto hidden h-8 lg:flex\"\n onClick={() => {\n const csvConfig = mkConfig({\n fieldSeparator: ',',\n filename: 'data',\n decimalSeparator: '.',\n useKeysAsHeaders: true,\n });\n\n const renderCellValue = (cell: Cell<TData, unknown>) => {\n const rendered = cell.renderValue();\n if (rendered === null) {\n return undefined;\n }\n if (['string', 'number', 'boolean', 'undefined'].includes(typeof rendered)) {\n return rendered;\n }\n if (rendered instanceof Date) {\n return rendered.toISOString();\n }\n if (typeof rendered === 'object') {\n return JSON.stringify(rendered);\n }\n };\n\n\n const rowModel = table.getCoreRowModel();\n const rows = rowModel.rows.map(row => Object.fromEntries(row.getAllCells().map(c => [c.column.id, renderCellValue(c)]).filter(([_, v]) => v !== undefined)));\n if (rows.length === 0) {\n alert(\"No data to export\");\n return;\n }\n const csv = generateCsv(csvConfig)(rows as any);\n download(csvConfig)(csv);\n }}\n >\n <DownloadIcon className=\"mr-2 h-4 w-4\" />\n Export CSV\n </Button>\n </div>\n </>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,iBAAwB,EACtC,OACA,eACA,oBACA,sBACA,gBACA,mBAAmB,QACY;CAC/B,MAAM,aAAa,0DAAiB,MAAM,UAAU,CAAC,eAAe,qBAAqB;CACzF,MAAM,WAAW,0DAAiB,MAAM,UAAU,CAAC,SAAS,eAAe;AAE3E,QACE,4CAAC;EAAI,WAAU;aACb,4CAAC;GAAI,WAAU;cACZ,gBAAgB,MAAM,EACtB,qBAAqB,cAAc,aAClC,4CAACA;IACC,SAAQ;IACR,eAAe;AACb,WAAM,iBAAiB,qBAAqB;AAC5C,WAAM,WAAW,eAAe;;IAElC,WAAU;eACX,iBAEC,2CAACC,oCAAW,WAAU,iBAAiB;KAChC;IAEP,EACL,sBACC,mFACE,4CAAC;GAAI,WAAU;cACb,2CAACC,0CAA4B,QAAS,EACtC,4CAACF;IACC,SAAQ;IACR,MAAK;IACL,WAAU;IACV,eAAe;KACb,MAAM,wCAAqB;MACzB,gBAAgB;MAChB,UAAU;MACV,kBAAkB;MAClB,kBAAkB;MACnB,CAAC;KAEF,MAAM,mBAAmB,SAA+B;MACtD,MAAM,WAAW,KAAK,aAAa;AACnC,UAAI,aAAa,KACf;AAEF,UAAI;OAAC;OAAU;OAAU;OAAW;OAAY,CAAC,SAAS,OAAO,SAAS,CACxE,QAAO;AAET,UAAI,oBAAoB,KACtB,QAAO,SAAS,aAAa;AAE/B,UAAI,OAAO,aAAa,SACtB,QAAO,KAAK,UAAU,SAAS;;KAMnC,MAAM,OADW,MAAM,iBAAiB,CAClB,KAAK,KAAI,QAAO,OAAO,YAAY,IAAI,aAAa,CAAC,KAAI,MAAK,CAAC,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,MAAM,OAAU,CAAC,CAAC;AAC5J,SAAI,KAAK,WAAW,GAAG;AACrB,YAAM,oBAAoB;AAC1B;;KAEF,MAAM,qCAAkB,UAAU,CAAC,KAAY;AAC/C,iCAAS,UAAU,CAAC,IAAI;;eAG1B,2CAACG,6BAAa,WAAU,iBAAiB;KAElC;IACL,GACL;GAED"}
@@ -5,7 +5,7 @@ const require_chunk = require('../../chunk-BE-pF4vm.js');
5
5
  let react = require("react");
6
6
  react = require_chunk.__toESM(react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
- let _stackframe_stack_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
8
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
9
9
  let _radix_ui_react_icons = require("@radix-ui/react-icons");
10
10
  let ______lib_utils_js = require("../../lib/utils.js");
11
11
  let _radix_ui_react_accordion = require("@radix-ui/react-accordion");
@@ -13,13 +13,13 @@ _radix_ui_react_accordion = require_chunk.__toESM(_radix_ui_react_accordion);
13
13
 
14
14
  //#region src/components/ui/accordion.tsx
15
15
  const Accordion = _radix_ui_react_accordion.Root;
16
- const AccordionItem = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Item, {
16
+ const AccordionItem = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Item, {
17
17
  ref,
18
18
  className: (0, ______lib_utils_js.cn)("border-b", className),
19
19
  ...props
20
20
  }));
21
21
  AccordionItem.displayName = "AccordionItem";
22
- const AccordionTrigger = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, children, disabled, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Header, {
22
+ const AccordionTrigger = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, children, disabled, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Header, {
23
23
  className: "stack-scope flex",
24
24
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_radix_ui_react_accordion.Trigger, {
25
25
  ref,
@@ -29,7 +29,7 @@ const AccordionTrigger = (0, _stackframe_stack_shared_dist_utils_react.forwardRe
29
29
  })
30
30
  }));
31
31
  AccordionTrigger.displayName = _radix_ui_react_accordion.Trigger.displayName;
32
- const AccordionContent = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Content, {
32
+ const AccordionContent = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Content, {
33
33
  ref,
34
34
  className: "stack-scope text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
35
35
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":["AccordionPrimitive","ChevronDownIcon"],"sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, disabled, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"stack-scope flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n {!disabled && <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"stack-scope text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;;;;;;;;AASA,MAAM,YAAYA,0BAAmB;AAErC,MAAM,mFAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,0BAAmB;CACb;CACL,sCAAc,YAAY,UAAU;CACpC,GAAI;EACJ,CACF;AACF,cAAc,cAAc;AAE5B,MAAM,sFAGH,EAAE,WAAW,UAAU,UAAU,GAAG,SAAS,QAC9C,2CAACA,0BAAmB;CAAO,WAAU;WACnC,4CAACA,0BAAmB;EACb;EACL,sCACE,wIACA,UACD;EACD,GAAI;aAEH,UACA,CAAC,YAAY,2CAACC,yCAAgB,WAAU,6EAA6E;GAC3F;EACH,CAC5B;AACF,iBAAiB,cAAcD,0BAAmB,QAAQ;AAE1D,MAAM,sFAGH,EAAE,WAAW,UAAU,GAAG,SAAS,QACpC,2CAACA,0BAAmB;CACb;CACL,WAAU;CACV,GAAI;WAEJ,2CAAC;EAAI,sCAAc,aAAa,UAAU;EAAG;GAAe;EACjC,CAC7B;AACF,iBAAiB,cAAcA,0BAAmB,QAAQ"}
1
+ {"version":3,"file":"accordion.js","names":["AccordionPrimitive","ChevronDownIcon"],"sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, disabled, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"stack-scope flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n {!disabled && <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = forwardRefIfNeeded<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"stack-scope text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;;;;;;;;AASA,MAAM,YAAYA,0BAAmB;AAErC,MAAM,2EAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,0BAAmB;CACb;CACL,sCAAc,YAAY,UAAU;CACpC,GAAI;EACJ,CACF;AACF,cAAc,cAAc;AAE5B,MAAM,8EAGH,EAAE,WAAW,UAAU,UAAU,GAAG,SAAS,QAC9C,2CAACA,0BAAmB;CAAO,WAAU;WACnC,4CAACA,0BAAmB;EACb;EACL,sCACE,wIACA,UACD;EACD,GAAI;aAEH,UACA,CAAC,YAAY,2CAACC,yCAAgB,WAAU,6EAA6E;GAC3F;EACH,CAC5B;AACF,iBAAiB,cAAcD,0BAAmB,QAAQ;AAE1D,MAAM,8EAGH,EAAE,WAAW,UAAU,GAAG,SAAS,QACpC,2CAACA,0BAAmB;CACb;CACL,WAAU;CACV,GAAI;WAEJ,2CAAC;EAAI,sCAAc,aAAa,UAAU;EAAG;GAAe;EACjC,CAC7B;AACF,iBAAiB,cAAcA,0BAAmB,QAAQ"}
@@ -3,7 +3,7 @@ const require_chunk = require('../../chunk-BE-pF4vm.js');
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
- let _stackframe_stack_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
6
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
7
7
  let ______lib_utils_js = require("../../lib/utils.js");
8
8
  let class_variance_authority = require("class-variance-authority");
9
9
 
@@ -16,20 +16,20 @@ const alertVariants = (0, class_variance_authority.cva)("stack-scope relative w-
16
16
  } },
17
17
  defaultVariants: { variant: "default" }
18
18
  });
19
- const Alert = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
19
+ const Alert = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
20
20
  ref,
21
21
  role: "alert",
22
22
  className: (0, ______lib_utils_js.cn)(alertVariants({ variant }), className),
23
23
  ...props
24
24
  }));
25
25
  Alert.displayName = "Alert";
26
- const AlertTitle = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h5", {
26
+ const AlertTitle = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h5", {
27
27
  ref,
28
28
  className: (0, ______lib_utils_js.cn)("mb-1 font-medium leading-none tracking-tight", className),
29
29
  ...props
30
30
  }));
31
31
  AlertTitle.displayName = "AlertTitle";
32
- const AlertDescription = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
32
+ const AlertDescription = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33
33
  ref,
34
34
  className: (0, ______lib_utils_js.cn)("text-sm [&_p]:leading-relaxed", className),
35
35
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../../../src/components/ui/alert.tsx"],"sourcesContent":["import React from \"react\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst alertVariants = cva(\n \"stack-scope relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive bg-destructive/5\",\n success: \"border-success/50 text-success dark:border-success [&>svg]:text-success bg-success/5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Alert = forwardRefIfNeeded<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = forwardRefIfNeeded<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = forwardRefIfNeeded<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n"],"mappings":";;;;;;;;;;AAMA,MAAM,kDACJ,uLACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aAAa;EACb,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,MAAM,2EAGH,EAAE,WAAW,SAAS,GAAG,SAAS,QACnC,2CAAC;CACM;CACL,MAAK;CACL,sCAAc,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;CACpD,GAAI;EACJ,CACF;AACF,MAAM,cAAc;AAEpB,MAAM,gFAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAAC;CACM;CACL,sCAAc,gDAAgD,UAAU;CACxE,GAAI;EACJ,CACF;AACF,WAAW,cAAc;AAEzB,MAAM,sFAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAAC;CACM;CACL,sCAAc,iCAAiC,UAAU;CACzD,GAAI;EACJ,CACF;AACF,iBAAiB,cAAc"}
1
+ {"version":3,"file":"alert.js","names":[],"sources":["../../../src/components/ui/alert.tsx"],"sourcesContent":["import React from \"react\";\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst alertVariants = cva(\n \"stack-scope relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive bg-destructive/5\",\n success: \"border-success/50 text-success dark:border-success [&>svg]:text-success bg-success/5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Alert = forwardRefIfNeeded<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = forwardRefIfNeeded<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = forwardRefIfNeeded<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n"],"mappings":";;;;;;;;;;AAMA,MAAM,kDACJ,uLACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aAAa;EACb,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,MAAM,mEAGH,EAAE,WAAW,SAAS,GAAG,SAAS,QACnC,2CAAC;CACM;CACL,MAAK;CACL,sCAAc,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;CACpD,GAAI;EACJ,CACF;AACF,MAAM,cAAc;AAEpB,MAAM,wEAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAAC;CACM;CACL,sCAAc,gDAAgD,UAAU;CACxE,GAAI;EACJ,CACF;AACF,WAAW,cAAc;AAEzB,MAAM,8EAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAAC;CACM;CACL,sCAAc,iCAAiC,UAAU;CACzD,GAAI;EACJ,CACF;AACF,iBAAiB,cAAc"}
@@ -5,25 +5,25 @@ const require_chunk = require('../../chunk-BE-pF4vm.js');
5
5
  let react = require("react");
6
6
  react = require_chunk.__toESM(react);
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
- let _stackframe_stack_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
8
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
9
9
  let ______lib_utils_js = require("../../lib/utils.js");
10
10
  let _radix_ui_react_avatar = require("@radix-ui/react-avatar");
11
11
  _radix_ui_react_avatar = require_chunk.__toESM(_radix_ui_react_avatar);
12
12
 
13
13
  //#region src/components/ui/avatar.tsx
14
- const Avatar = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Root, {
14
+ const Avatar = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Root, {
15
15
  ref,
16
16
  className: (0, ______lib_utils_js.cn)("stack-scope relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className),
17
17
  ...props
18
18
  }));
19
19
  Avatar.displayName = _radix_ui_react_avatar.Root.displayName;
20
- const AvatarImage = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Image, {
20
+ const AvatarImage = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Image, {
21
21
  ref,
22
22
  className: (0, ______lib_utils_js.cn)("aspect-square h-full w-full", className),
23
23
  ...props
24
24
  }));
25
25
  AvatarImage.displayName = _radix_ui_react_avatar.Image.displayName;
26
- const AvatarFallback = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Fallback, {
26
+ const AvatarFallback = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_avatar.Fallback, {
27
27
  ref,
28
28
  className: (0, ______lib_utils_js.cn)("flex h-full w-full items-center justify-center rounded-full bg-muted", className),
29
29
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","names":["AvatarPrimitive"],"sources":["../../../src/components/ui/avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Avatar = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"stack-scope relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,4EAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCACE,6EACA,UACD;CACD,GAAI;EACJ,CACF;AACF,OAAO,cAAcA,uBAAgB,KAAK;AAE1C,MAAM,iFAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCAAc,+BAA+B,UAAU;CACvD,GAAI;EACJ,CACF;AACF,YAAY,cAAcA,uBAAgB,MAAM;AAEhD,MAAM,oFAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCACE,wEACA,UACD;CACD,GAAI;EACJ,CACF;AACF,eAAe,cAAcA,uBAAgB,SAAS"}
1
+ {"version":3,"file":"avatar.js","names":["AvatarPrimitive"],"sources":["../../../src/components/ui/avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Avatar = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"stack-scope relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = forwardRefIfNeeded<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,oEAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCACE,6EACA,UACD;CACD,GAAI;EACJ,CACF;AACF,OAAO,cAAcA,uBAAgB,KAAK;AAE1C,MAAM,yEAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCAAc,+BAA+B,UAAU;CACvD,GAAI;EACJ,CACF;AACF,YAAY,cAAcA,uBAAgB,MAAM;AAEhD,MAAM,4EAGH,EAAE,WAAW,GAAG,SAAS,QAC1B,2CAACA,uBAAgB;CACV;CACL,sCACE,wEACA,UACD;CACD,GAAI;EACJ,CACF;AACF,eAAe,cAAcA,uBAAgB,SAAS"}
@@ -3,7 +3,7 @@ const require_chunk = require('../../chunk-BE-pF4vm.js');
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
- let _stackframe_stack_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
6
+ let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
7
7
  let ______lib_utils_js = require("../../lib/utils.js");
8
8
  let class_variance_authority = require("class-variance-authority");
9
9
 
@@ -17,7 +17,7 @@ const badgeVariants = (0, class_variance_authority.cva)("stack-scope inline-flex
17
17
  } },
18
18
  defaultVariants: { variant: "default" }
19
19
  });
20
- const Badge = (0, _stackframe_stack_shared_dist_utils_react.forwardRefIfNeeded)(({ className, variant, ...props }, ref) => {
20
+ const Badge = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, variant, ...props }, ref) => {
21
21
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
22
22
  ref,
23
23
  className: (0, ______lib_utils_js.cn)(badgeVariants({ variant }), className),
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","names":[],"sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"stack-scope inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type BadgeProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof badgeVariants>;\n\nconst Badge = forwardRefIfNeeded<HTMLDivElement, BadgeProps>(({ className, variant, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n});\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;;;;;AAMA,MAAM,kDACJ,kKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,aACE;EACF,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAID,MAAM,2EAAwD,EAAE,WAAW,SAAS,GAAG,SAAS,QAAQ;AACtG,QACE,2CAAC;EAAS;EAAK,sCAAc,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EAAE,GAAI;GAAS;EAEpF;AACF,MAAM,cAAc"}
1
+ {"version":3,"file":"badge.js","names":[],"sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"stack-scope inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type BadgeProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof badgeVariants>;\n\nconst Badge = forwardRefIfNeeded<HTMLDivElement, BadgeProps>(({ className, variant, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n});\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;;;;;AAMA,MAAM,kDACJ,kKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,aACE;EACF,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAID,MAAM,mEAAwD,EAAE,WAAW,SAAS,GAAG,SAAS,QAAQ;AACtG,QACE,2CAAC;EAAS;EAAK,sCAAc,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EAAE,GAAI;GAAS;EAEpF;AACF,MAAM,cAAc"}