@cryptlex/web-components 3.8.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/components/data-table/data-table-filter.es.js +178 -0
  2. package/dist/components/data-table/data-table-filter.es.js.map +1 -0
  3. package/dist/components/data-table/data-table.es.js +402 -153
  4. package/dist/components/data-table/data-table.es.js.map +1 -1
  5. package/dist/components/data-table/table-commons.es.js +267 -19
  6. package/dist/components/data-table/table-commons.es.js.map +1 -1
  7. package/dist/components/inputs/calendar.es.js +12 -12
  8. package/dist/components/inputs/calendar.es.js.map +1 -1
  9. package/dist/components/inputs/checkbox.es.js +13 -13
  10. package/dist/components/inputs/checkbox.es.js.map +1 -1
  11. package/dist/components/inputs/country-select.es.js +3 -3
  12. package/dist/components/inputs/form-field.es.js +1 -1
  13. package/dist/components/inputs/input-otp.es.js +2 -2
  14. package/dist/components/inputs/input-otp.es.js.map +1 -1
  15. package/dist/components/inputs/input.es.js +7 -7
  16. package/dist/components/inputs/input.es.js.map +1 -1
  17. package/dist/components/inputs/multi-select.es.js +7 -7
  18. package/dist/components/inputs/radio-group.es.js +1 -1
  19. package/dist/components/inputs/select.es.js +10 -10
  20. package/dist/components/inputs/select.es.js.map +1 -1
  21. package/dist/components/inputs/textarea.es.js +4 -4
  22. package/dist/components/key-value-card/key-value-card.es.js +6 -9
  23. package/dist/components/key-value-card/key-value-card.es.js.map +1 -1
  24. package/dist/components/ui/accordion.es.js +6 -6
  25. package/dist/components/ui/accordion.es.js.map +1 -1
  26. package/dist/components/ui/alert.es.js +4 -4
  27. package/dist/components/ui/avatar.es.js +1 -1
  28. package/dist/components/ui/badge.es.js +1 -1
  29. package/dist/components/ui/breadcrumb.es.js +2 -2
  30. package/dist/components/ui/breadcrumb.es.js.map +1 -1
  31. package/dist/components/ui/button.es.js +27 -25
  32. package/dist/components/ui/button.es.js.map +1 -1
  33. package/dist/components/ui/card.es.js +8 -8
  34. package/dist/components/ui/card.es.js.map +1 -1
  35. package/dist/components/ui/copy-button.es.js +12 -14
  36. package/dist/components/ui/copy-button.es.js.map +1 -1
  37. package/dist/components/ui/dialog.es.js +4 -4
  38. package/dist/components/ui/dialog.es.js.map +1 -1
  39. package/dist/components/ui/drawer.es.js +10 -10
  40. package/dist/components/ui/drawer.es.js.map +1 -1
  41. package/dist/components/ui/dropdown-menu.es.js +13 -13
  42. package/dist/components/ui/dropdown-menu.es.js.map +1 -1
  43. package/dist/components/ui/label.es.js +1 -1
  44. package/dist/components/ui/loader.es.js +3 -3
  45. package/dist/components/ui/pagination.es.js +2 -2
  46. package/dist/components/ui/pagination.es.js.map +1 -1
  47. package/dist/components/ui/popover.es.js +5 -5
  48. package/dist/components/ui/popover.es.js.map +1 -1
  49. package/dist/components/ui/separator.es.js +1 -1
  50. package/dist/components/ui/sheet.es.js +1 -1
  51. package/dist/components/ui/sidebar.es.js +105 -105
  52. package/dist/components/ui/sidebar.es.js.map +1 -1
  53. package/dist/components/ui/skeleton.es.js +1 -1
  54. package/dist/components/ui/static-data-table.es.js +1 -1
  55. package/dist/components/ui/table.es.js +8 -8
  56. package/dist/components/ui/table.es.js.map +1 -1
  57. package/dist/components/ui/tabs.es.js +1 -1
  58. package/dist/components/ui/tabs.es.js.map +1 -1
  59. package/dist/components/ui/timeline.es.js +3 -3
  60. package/dist/components/ui/timeline.es.js.map +1 -1
  61. package/dist/components/ui/tooltip.es.js +1 -1
  62. package/dist/index.es.d.ts +128 -32
  63. package/dist/index.es.js +237 -238
  64. package/dist/index.es.js.map +1 -1
  65. package/dist/node_modules/.pnpm/@radix-ui_react-dropdown-menu@2.1.15_@types_react-dom@19.1.0_@types_react@19.1.0_react-dom@19.1.0_react@19.1.0/node_modules/@radix-ui/react-dropdown-menu/dist/index.es.js +10 -10
  66. package/dist/node_modules/.pnpm/@radix-ui_react-menu@2.1.15_@types_react-dom@19.1.0_@types_react@19.1.0_react-dom@19.1.0_react@19.1.0/node_modules/@radix-ui/react-menu/dist/index.es.js +4 -4
  67. package/dist/utils/{index.es.js → primitives.es.js} +1 -1
  68. package/dist/utils/primitives.es.js.map +1 -0
  69. package/dist/{hooks → utils}/use-mobile.es.js.map +1 -1
  70. package/lib/theme.css +10 -12
  71. package/lib/tokens.css +3 -3
  72. package/lib/utilities.css +8 -8
  73. package/package.json +9 -11
  74. package/dist/components/data-table/column-picker.es.js +0 -50
  75. package/dist/components/data-table/column-picker.es.js.map +0 -1
  76. package/dist/components/data-table/page-size.es.js +0 -25
  77. package/dist/components/data-table/page-size.es.js.map +0 -1
  78. package/dist/components/data-table/paginator.es.js +0 -64
  79. package/dist/components/data-table/paginator.es.js.map +0 -1
  80. package/dist/components/data-table/table-actions.es.js +0 -26
  81. package/dist/components/data-table/table-actions.es.js.map +0 -1
  82. package/dist/components/data-table/table-content.es.js +0 -65
  83. package/dist/components/data-table/table-content.es.js.map +0 -1
  84. package/dist/components/data-table/table-utils/constants.es.js +0 -288
  85. package/dist/components/data-table/table-utils/constants.es.js.map +0 -1
  86. package/dist/components/data-table/table-utils/createTableFetchFn.es.js +0 -25
  87. package/dist/components/data-table/table-utils/createTableFetchFn.es.js.map +0 -1
  88. package/dist/components/data-table/table-utils/date.es.js +0 -12
  89. package/dist/components/data-table/table-utils/date.es.js.map +0 -1
  90. package/dist/components/data-table/table-utils/string.es.js +0 -19
  91. package/dist/components/data-table/table-utils/string.es.js.map +0 -1
  92. package/dist/components/data-table/table-utils/types.es.js +0 -5
  93. package/dist/components/data-table/table-utils/types.es.js.map +0 -1
  94. package/dist/utils/index.es.js.map +0 -1
  95. /package/dist/{hooks → utils}/use-mobile.es.js +0 -0
@@ -1,27 +1,27 @@
1
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
2
- import { cn as t } from "../../utils/index.es.js";
3
- import { useFieldContext as a } from "../../utils/form-context.es.js";
4
- import { CircleDashed as l, Check as c } from "lucide-react";
5
- function u({ className: n, checked: e, indeterminate: i, ...r }) {
6
- return /* @__PURE__ */ s("div", { className: "relative size-input", children: [
7
- i && /* @__PURE__ */ o(l, { className: "pointer-events-none absolute size-icon top-2 left-2" }),
8
- e && !i && /* @__PURE__ */ o(c, { className: "pointer-events-none absolute size-icon top-2 left-2" }),
1
+ import { jsxs as t, jsx as o } from "react/jsx-runtime";
2
+ import { useFieldContext as s } from "../../utils/form-context.es.js";
3
+ import { CircleDashed as a, Check as l } from "lucide-react";
4
+ import { cn as c } from "../../utils/primitives.es.js";
5
+ function u({ className: n, checked: e, indeterminate: r, ...i }) {
6
+ return /* @__PURE__ */ t("div", { className: "relative size-input", children: [
7
+ r && /* @__PURE__ */ o(a, { className: "pointer-events-none text-primary-foreground absolute size-icon top-2 left-2" }),
8
+ e && !r && /* @__PURE__ */ o(l, { className: "pointer-events-none text-primary-foreground absolute size-icon top-2 left-2" }),
9
9
  /* @__PURE__ */ o(
10
10
  "input",
11
11
  {
12
12
  checked: e,
13
13
  type: "checkbox",
14
- className: t(
14
+ className: c(
15
15
  "appearance-none size-input border border-input bg-card checked:bg-primary rounded-none focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
16
16
  n
17
17
  ),
18
- ...r
18
+ ...i
19
19
  }
20
20
  )
21
21
  ] });
22
22
  }
23
- function h({ ...n }) {
24
- const e = a();
23
+ function m({ ...n }) {
24
+ const e = s();
25
25
  return /* @__PURE__ */ o(
26
26
  u,
27
27
  {
@@ -34,6 +34,6 @@ function h({ ...n }) {
34
34
  }
35
35
  export {
36
36
  u as Checkbox,
37
- h as TfCheckbox
37
+ m as TfCheckbox
38
38
  };
39
39
  //# sourceMappingURL=checkbox.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.es.js","sources":["../../../lib/components/inputs/checkbox.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport { Check, CircleDashed } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport interface CheckboxProps\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"value\"> {\n\tindeterminate?: boolean\n}\n\nexport function Checkbox({ className, checked, indeterminate, ...props }: CheckboxProps) {\n\treturn (\n\t\t<div className=\"relative size-input\">\n\t\t\t{indeterminate && <CircleDashed className=\"pointer-events-none absolute size-icon top-2 left-2\" />}\n\t\t\t{checked && !indeterminate && <Check className=\"pointer-events-none absolute size-icon top-2 left-2\" />}\n\t\t\t<input\n\t\t\t\tchecked={checked}\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"appearance-none size-input border border-input bg-card checked:bg-primary rounded-none focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\n\t\t</div>\n\t);\n}\n\nexport interface TfCheckboxProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof Checkbox>,\n\t\t\"onChange\" | \"onBlur\" | \"checked\"\n\t> { }\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n\tconst field = useFieldContext<boolean>();\n\n\treturn (\n\t\t<Checkbox\n\t\t\tchecked={field.state.value}\n\t\t\tonChange={() => field.handleChange(!field.state.value)}\n\t\t\tonBlur={field.handleBlur}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["Checkbox","className","checked","indeterminate","props","jsxs","jsx","CircleDashed","Check","cn","TfCheckbox","field","useFieldContext"],"mappings":";;;;AAUO,SAASA,EAAS,EAAE,WAAAC,GAAW,SAAAC,GAAS,eAAAC,GAAe,GAAGC,KAAwB;AACxF,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAAF,KAAiB,gBAAAG,EAACC,GAAA,EAAa,WAAU,sDAAA,CAAsD;AAAA,IAC/FL,KAAW,CAACC,KAAiB,gBAAAG,EAACE,GAAA,EAAM,WAAU,uDAAsD;AAAA,IACrG,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,SAAAJ;AAAA,QACA,MAAK;AAAA,QACL,WAAWO;AAAA,UACV;AAAA,UACAR;AAAA,QAAA;AAAA,QAEA,GAAGG;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GAED;AAEF;AAOO,SAASM,EAAW,EAAE,GAAGN,KAA0B;AACzD,QAAMO,IAAQC,EAAA;AAEd,SACC,gBAAAN;AAAA,IAACN;AAAA,IAAA;AAAA,MACA,SAASW,EAAM,MAAM;AAAA,MACrB,UAAU,MAAMA,EAAM,aAAa,CAACA,EAAM,MAAM,KAAK;AAAA,MACrD,QAAQA,EAAM;AAAA,MACb,GAAGP;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"checkbox.es.js","sources":["../../../lib/components/inputs/checkbox.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport { Check, CircleDashed } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport interface CheckboxProps\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"value\"> {\n\tindeterminate?: boolean\n}\n\nexport function Checkbox({ className, checked, indeterminate, ...props }: CheckboxProps) {\n\treturn (\n\t\t<div className=\"relative size-input\">\n\t\t\t{indeterminate && <CircleDashed className=\"pointer-events-none text-primary-foreground absolute size-icon top-2 left-2\" />}\n\t\t\t{checked && !indeterminate && <Check className=\"pointer-events-none text-primary-foreground absolute size-icon top-2 left-2\" />}\n\t\t\t<input\n\t\t\t\tchecked={checked}\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"appearance-none size-input border border-input bg-card checked:bg-primary rounded-none focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\n\t\t</div>\n\t);\n}\n\nexport interface TfCheckboxProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof Checkbox>,\n\t\t\"onChange\" | \"onBlur\" | \"checked\"\n\t> { }\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n\tconst field = useFieldContext<boolean>();\n\n\treturn (\n\t\t<Checkbox\n\t\t\tchecked={field.state.value}\n\t\t\tonChange={() => field.handleChange(!field.state.value)}\n\t\t\tonBlur={field.handleBlur}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["Checkbox","className","checked","indeterminate","props","jsxs","jsx","CircleDashed","Check","cn","TfCheckbox","field","useFieldContext"],"mappings":";;;;AAUO,SAASA,EAAS,EAAE,WAAAC,GAAW,SAAAC,GAAS,eAAAC,GAAe,GAAGC,KAAwB;AACxF,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAAF,KAAiB,gBAAAG,EAACC,GAAA,EAAa,WAAU,8EAAA,CAA8E;AAAA,IACvHL,KAAW,CAACC,KAAiB,gBAAAG,EAACE,GAAA,EAAM,WAAU,+EAA8E;AAAA,IAC7H,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,SAAAJ;AAAA,QACA,MAAK;AAAA,QACL,WAAWO;AAAA,UACV;AAAA,UACAR;AAAA,QAAA;AAAA,QAEA,GAAGG;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GAED;AAEF;AAOO,SAASM,EAAW,EAAE,GAAGN,KAA0B;AACzD,QAAMO,IAAQC,EAAA;AAEd,SACC,gBAAAN;AAAA,IAACN;AAAA,IAAA;AAAA,MACA,SAASW,EAAM,MAAM;AAAA,MACrB,UAAU,MAAMA,EAAM,aAAa,CAACA,EAAM,MAAM,KAAK;AAAA,MACrD,QAAQA,EAAM;AAAA,MACb,GAAGP;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as i, jsxs as o, Fragment as t } from "react/jsx-runtime";
2
- import { TfMultiSelect as l, MultiSelect as s } from "./multi-select.es.js";
2
+ import { MultiSelect as l, TfMultiSelect as s } from "./multi-select.es.js";
3
3
  function u(a) {
4
4
  function n(r) {
5
5
  return String.fromCodePoint(
@@ -269,12 +269,12 @@ const d = {
269
269
  function c({
270
270
  ...a
271
271
  }) {
272
- return /* @__PURE__ */ i(s, { ...a, options: e });
272
+ return /* @__PURE__ */ i(l, { ...a, options: e });
273
273
  }
274
274
  function C({
275
275
  ...a
276
276
  }) {
277
- return /* @__PURE__ */ i(l, { ...a, options: e });
277
+ return /* @__PURE__ */ i(s, { ...a, options: e });
278
278
  }
279
279
  export {
280
280
  c as CountrySelect,
@@ -1,8 +1,8 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { cn as u } from "../../utils/index.es.js";
3
2
  import { Info as p, CircleX as N } from "lucide-react";
4
3
  import h from "react";
5
4
  import { Label as x } from "../ui/label.es.js";
5
+ import { cn as u } from "../../utils/primitives.es.js";
6
6
  function j({
7
7
  field: a,
8
8
  label: s,
@@ -1,8 +1,8 @@
1
1
  import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
- import { cn as n } from "../../utils/index.es.js";
3
2
  import { OTPInput as l, OTPInputContext as p } from "input-otp";
4
3
  import { Minus as m } from "lucide-react";
5
4
  import * as d from "react";
5
+ import { cn as n } from "../../utils/primitives.es.js";
6
6
  function v({
7
7
  className: e,
8
8
  containerClassName: r,
@@ -43,7 +43,7 @@ function P({
43
43
  ...i,
44
44
  children: [
45
45
  s,
46
- a && /* @__PURE__ */ t("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ t("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
46
+ a && /* @__PURE__ */ t("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ t("div", { className: "h-icon w-px animate-caret-blink bg-foreground duration-1000" }) })
47
47
  ]
48
48
  }
49
49
  );
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.es.js","sources":["../../../lib/components/inputs/input-otp.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\nimport * as React from \"react\";\n\nexport function InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput>) {\n\treturn (\n\t\t<OTPInput\n\t\t\tcontainerClassName={cn(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={cn(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function InputOTPGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn <div className={cn(\"flex items-center\", className)} {...props} />;\n}\n\nexport function InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & { index: number }) {\n\tconst inputOTPContext = React.use(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all\",\n\t\t\t\tisActive ? \"z-10 border-2 border-primary\" : \"\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div role=\"separator\" {...props}>\n\t\t\t<Minus />\n\t\t</div>\n\t);\n}\n"],"names":["InputOTP","className","containerClassName","props","jsx","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","inputOTPContext","React","OTPInputContext","char","hasFakeCaret","isActive","jsxs","InputOTPSeparator","Minus"],"mappings":";;;;;AAKO,SAASA,EAAS;AAAA,EACxB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,GAAGC;AACJ,GAA0C;AACzC,SACC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,oBAAoBC;AAAA,QACnB;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,WAAWI,EAAG,+BAA+BL,CAAS;AAAA,MACrD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASI,EAAc;AAAA,EAC7B,WAAAN;AAAA,EACA,GAAGE;AACJ,GAAgC;AAC/B,SAAO,gBAAAC,EAAC,SAAI,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO;AACvE;AAEO,SAASK,EAAa;AAAA,EAC5B,OAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGE;AACJ,GAAoD;AACnD,QAAMO,IAAkBC,EAAM,IAAIC,CAAe,GAC3C,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaL,EAAgB,MAAMD,CAAK;AAEpE,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWV;AAAA,QACV;AAAA,QACAS,IAAW,kCAAkC;AAAA,QAC7Cd;AAAA,MAAA;AAAA,MAEA,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAU;AAAA,QACAC,uBACC,OAAA,EAAI,WAAU,yEACd,UAAA,gBAAAV,EAAC,OAAA,EAAI,WAAU,2DAAA,CAA2D,EAAA,CAC3E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ;AAEO,SAASa,EAAkB,EAAE,GAAGd,KAAsC;AAC5E,SACC,gBAAAC,EAAC,SAAI,MAAK,aAAa,GAAGD,GACzB,UAAA,gBAAAC,EAACc,KAAM,EAAA,CACR;AAEF;"}
1
+ {"version":3,"file":"input-otp.es.js","sources":["../../../lib/components/inputs/input-otp.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\nimport * as React from \"react\";\n\nexport function InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput>) {\n\treturn (\n\t\t<OTPInput\n\t\t\tcontainerClassName={cn(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={cn(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function InputOTPGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn <div className={cn(\"flex items-center\", className)} {...props} />;\n}\n\nexport function InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & { index: number }) {\n\tconst inputOTPContext = React.use(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all\",\n\t\t\t\tisActive ? \"z-10 border-2 border-primary\" : \"\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"h-icon w-px animate-caret-blink bg-foreground duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div role=\"separator\" {...props}>\n\t\t\t<Minus />\n\t\t</div>\n\t);\n}\n"],"names":["InputOTP","className","containerClassName","props","jsx","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","inputOTPContext","React","OTPInputContext","char","hasFakeCaret","isActive","jsxs","InputOTPSeparator","Minus"],"mappings":";;;;;AAKO,SAASA,EAAS;AAAA,EACxB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,GAAGC;AACJ,GAA0C;AACzC,SACC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,oBAAoBC;AAAA,QACnB;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,WAAWI,EAAG,+BAA+BL,CAAS;AAAA,MACrD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASI,EAAc;AAAA,EAC7B,WAAAN;AAAA,EACA,GAAGE;AACJ,GAAgC;AAC/B,SAAO,gBAAAC,EAAC,SAAI,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO;AACvE;AAEO,SAASK,EAAa;AAAA,EAC5B,OAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGE;AACJ,GAAoD;AACnD,QAAMO,IAAkBC,EAAM,IAAIC,CAAe,GAC3C,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaL,EAAgB,MAAMD,CAAK;AAEpE,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWV;AAAA,QACV;AAAA,QACAS,IAAW,kCAAkC;AAAA,QAC7Cd;AAAA,MAAA;AAAA,MAEA,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAU;AAAA,QACAC,uBACC,OAAA,EAAI,WAAU,yEACd,UAAA,gBAAAV,EAAC,OAAA,EAAI,WAAU,8DAAA,CAA8D,EAAA,CAC9E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ;AAEO,SAASa,EAAkB,EAAE,GAAGd,KAAsC;AAC5E,SACC,gBAAAC,EAAC,SAAI,MAAK,aAAa,GAAGD,GACzB,UAAA,gBAAAC,EAACc,KAAM,EAAA,CACR;AAEF;"}
@@ -1,7 +1,7 @@
1
- import { jsx as i, jsxs as u } from "react/jsx-runtime";
2
- import { cn as r } from "../../utils/index.es.js";
3
- import { useFieldContext as o } from "../../utils/form-context.es.js";
4
- import { Button as m } from "../ui/button.es.js";
1
+ import { jsxs as u, jsx as i } from "react/jsx-runtime";
2
+ import { useFieldContext as m } from "../../utils/form-context.es.js";
3
+ import { cn as r } from "../../utils/primitives.es.js";
4
+ import { Button as o } from "../ui/button.es.js";
5
5
  function s({
6
6
  className: a,
7
7
  type: n,
@@ -17,19 +17,19 @@ function s({
17
17
  type: n,
18
18
  className: r(
19
19
  "h-input input file:border-0 file:bg-transparent grow file:body file:font-medium",
20
- e ? "pl-8" : ""
20
+ e ? "pl-input" : ""
21
21
  ),
22
22
  ...l
23
23
  }
24
24
  ),
25
- t && /* @__PURE__ */ i(m, { ...t, variant: "outline", size: "icon" })
25
+ t && /* @__PURE__ */ i(o, { ...t, variant: "neutral", size: "icon" })
26
26
  ] });
27
27
  }
28
28
  function g({
29
29
  disabled: a,
30
30
  ...n
31
31
  }) {
32
- const e = o();
32
+ const e = m();
33
33
  return /* @__PURE__ */ i(
34
34
  s,
35
35
  {
@@ -1 +1 @@
1
- {"version":3,"file":"input.es.js","sources":["../../../lib/components/inputs/input.tsx"],"sourcesContent":["import { Button, type ButtonProps } from \"@/components/ui\";\nimport { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport type { LucideIcon } from \"lucide-react\";\nimport type React from \"react\";\n\nexport type InputProps = React.ComponentProps<\"input\"> & {\n\ticon?: LucideIcon;\n\tbuttonProps?: ButtonProps;\n};\n\nexport function Input({\n\tclassName,\n\ttype,\n\ticon: Icon,\n\tbuttonProps,\n\t...props\n}: InputProps) {\n\treturn (\n\t\t<div className={cn(\"relative flex gap-1 items-center\", className)}>\n\t\t\t{Icon && (\n\t\t\t\t<Icon className=\"absolute left-2 size-icon text-muted-foreground\" />\n\t\t\t)}\n\t\t\t<input\n\t\t\t\ttype={type}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"h-input input file:border-0 file:bg-transparent grow file:body file:font-medium\",\n\t\t\t\t\tIcon ? \"pl-8\" : \"\",\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t{buttonProps && (\n\t\t\t\t<Button {...buttonProps} variant={\"outline\"} size={\"icon\"} />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport function TfInput({\n\tdisabled,\n\t...props\n}: Omit<InputProps, \"value\" | \"id\" | \"name\" | \"onBlur\" | \"onChange\">) {\n\tconst field = useFieldContext<string | number>();\n\n\treturn (\n\t\t<Input\n\t\t\tdisabled={disabled || field.form.state.isSubmitting}\n\t\t\tvalue={field.state.value}\n\t\t\tid={field.name}\n\t\t\tname={field.name}\n\t\t\tonBlur={field.handleBlur}\n\t\t\tonChange={(e) =>\n\t\t\t\tfield.handleChange(\n\t\t\t\t\tprops.type === \"number\" ? e.target.valueAsNumber : e.target.value,\n\t\t\t\t)\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["Input","className","type","Icon","buttonProps","props","cn","jsx","Button","TfInput","disabled","field","useFieldContext","e"],"mappings":";;;;AAWO,SAASA,EAAM;AAAA,EACrB,WAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAMC;AAAA,EACN,aAAAC;AAAA,EACA,GAAGC;AACJ,GAAe;AACd,2BACE,OAAA,EAAI,WAAWC,EAAG,oCAAoCL,CAAS,GAC9D,UAAA;AAAA,IAAAE,KACA,gBAAAI,EAACJ,GAAA,EAAK,WAAU,kDAAA,CAAkD;AAAA,IAEnE,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,MAAAL;AAAA,QACA,WAAWI;AAAA,UACV;AAAA,UACAH,IAAO,SAAS;AAAA,QAAA;AAAA,QAEhB,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJD,uBACCI,GAAA,EAAQ,GAAGJ,GAAa,SAAS,WAAW,MAAM,OAAA,CAAQ;AAAA,EAAA,GAE7D;AAEF;AAEO,SAASK,EAAQ;AAAA,EACvB,UAAAC;AAAA,EACA,GAAGL;AACJ,GAAsE;AACrE,QAAMM,IAAQC,EAAA;AAEd,SACC,gBAAAL;AAAA,IAACP;AAAA,IAAA;AAAA,MACA,UAAUU,KAAYC,EAAM,KAAK,MAAM;AAAA,MACvC,OAAOA,EAAM,MAAM;AAAA,MACnB,IAAIA,EAAM;AAAA,MACV,MAAMA,EAAM;AAAA,MACZ,QAAQA,EAAM;AAAA,MACd,UAAU,CAACE,MACVF,EAAM;AAAA,QACLN,EAAM,SAAS,WAAWQ,EAAE,OAAO,gBAAgBA,EAAE,OAAO;AAAA,MAAA;AAAA,MAG7D,GAAGR;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"input.es.js","sources":["../../../lib/components/inputs/input.tsx"],"sourcesContent":["import { Button, type ButtonProps } from \"@/components/ui\";\nimport { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport type { LucideIcon } from \"lucide-react\";\nimport type React from \"react\";\nimport type { ComponentType } from \"react\";\n\nexport type FilterComp<T> = ComponentType<{ value: T; onChange: (value: T) => void }>;\n\nexport type InputProps = React.ComponentProps<\"input\"> & {\n\ticon?: LucideIcon;\n\tbuttonProps?: ButtonProps;\n};\n\nexport function Input({\n\tclassName,\n\ttype,\n\ticon: Icon,\n\tbuttonProps,\n\t...props\n}: InputProps) {\n\treturn (\n\t\t<div className={cn(\"relative flex gap-1 items-center\", className)}>\n\t\t\t{Icon && (\n\t\t\t\t<Icon className=\"absolute left-2 size-icon text-muted-foreground\" />\n\t\t\t)}\n\t\t\t<input\n\t\t\t\ttype={type}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"h-input input file:border-0 file:bg-transparent grow file:body file:font-medium\",\n\t\t\t\t\tIcon ? \"pl-input\" : \"\",\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t{buttonProps && (\n\t\t\t\t<Button {...buttonProps} variant={\"neutral\"} size={\"icon\"} />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport function TfInput({\n\tdisabled,\n\t...props\n}: Omit<InputProps, \"value\" | \"id\" | \"name\" | \"onBlur\" | \"onChange\">) {\n\tconst field = useFieldContext<string | number>();\n\treturn (\n\t\t<Input\n\t\t\tdisabled={disabled || field.form.state.isSubmitting}\n\t\t\tvalue={field.state.value}\n\t\t\tid={field.name}\n\t\t\tname={field.name}\n\t\t\tonBlur={field.handleBlur}\n\t\t\tonChange={(e) =>\n\t\t\t\tfield.handleChange(\n\t\t\t\t\tprops.type === \"number\" ? e.target.valueAsNumber : e.target.value,\n\t\t\t\t)\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["Input","className","type","Icon","buttonProps","props","cn","jsx","Button","TfInput","disabled","field","useFieldContext","e"],"mappings":";;;;AAcO,SAASA,EAAM;AAAA,EACrB,WAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAMC;AAAA,EACN,aAAAC;AAAA,EACA,GAAGC;AACJ,GAAe;AACd,2BACE,OAAA,EAAI,WAAWC,EAAG,oCAAoCL,CAAS,GAC9D,UAAA;AAAA,IAAAE,KACA,gBAAAI,EAACJ,GAAA,EAAK,WAAU,kDAAA,CAAkD;AAAA,IAEnE,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,MAAAL;AAAA,QACA,WAAWI;AAAA,UACV;AAAA,UACAH,IAAO,aAAa;AAAA,QAAA;AAAA,QAEpB,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJD,uBACCI,GAAA,EAAQ,GAAGJ,GAAa,SAAS,WAAW,MAAM,OAAA,CAAQ;AAAA,EAAA,GAE7D;AAEF;AAEO,SAASK,EAAQ;AAAA,EACvB,UAAAC;AAAA,EACA,GAAGL;AACJ,GAAsE;AACrE,QAAMM,IAAQC,EAAA;AACd,SACC,gBAAAL;AAAA,IAACP;AAAA,IAAA;AAAA,MACA,UAAUU,KAAYC,EAAM,KAAK,MAAM;AAAA,MACvC,OAAOA,EAAM,MAAM;AAAA,MACnB,IAAIA,EAAM;AAAA,MACV,MAAMA,EAAM;AAAA,MACZ,QAAQA,EAAM;AAAA,MACd,UAAU,CAACE,MACVF,EAAM;AAAA,QACLN,EAAM,SAAS,WAAWQ,EAAE,OAAO,gBAAgBA,EAAE,OAAO;AAAA,MAAA;AAAA,MAG7D,GAAGR;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,8 +1,8 @@
1
- import { jsx as n, jsxs as d, Fragment as i } from "react/jsx-runtime";
1
+ import { jsxs as d, Fragment as i, jsx as n } from "react/jsx-runtime";
2
2
  import { DropdownMenu as M, DropdownMenuTrigger as k, DropdownMenuContent as w, DropdownMenuGroup as S, DropdownMenuCheckboxItem as s } from "../ui/dropdown-menu.es.js";
3
- import { cn as x } from "../../utils/index.es.js";
4
- import { useFieldContext as B } from "../../utils/form-context.es.js";
5
- import j, { useCallback as h } from "react";
3
+ import { useFieldContext as x } from "../../utils/form-context.es.js";
4
+ import B, { useCallback as h } from "react";
5
+ import { cn as j } from "../../utils/primitives.es.js";
6
6
  function A({
7
7
  options: r,
8
8
  value: l,
@@ -11,7 +11,7 @@ function A({
11
11
  className: m,
12
12
  ...u
13
13
  }) {
14
- const f = j.useCallback(() => {
14
+ const f = B.useCallback(() => {
15
15
  const e = l ?? [];
16
16
  return r.filter((t) => e.includes(t.value)).map((t, C, D) => /* @__PURE__ */ d(i, { children: [
17
17
  t.label,
@@ -23,7 +23,7 @@ function A({
23
23
  a() ? c([]) : c(r.map((e) => e.value));
24
24
  }, p = h((e) => l.includes(e), [l]), a = h(() => l.length === r.length, [l, r]);
25
25
  return /* @__PURE__ */ n(i, { children: /* @__PURE__ */ d(M, { children: [
26
- /* @__PURE__ */ n(k, { ...u, asChild: !0, children: /* @__PURE__ */ n("button", { ...u, className: x("btn-dropdown", m), children: o || f() }) }),
26
+ /* @__PURE__ */ n(k, { ...u, asChild: !0, children: /* @__PURE__ */ n("button", { ...u, className: j("btn-dropdown", m), children: o || f() }) }),
27
27
  /* @__PURE__ */ n(w, { children: /* @__PURE__ */ d(S, { children: [
28
28
  /* @__PURE__ */ n(
29
29
  s,
@@ -52,7 +52,7 @@ function A({
52
52
  ] }) });
53
53
  }
54
54
  function I({ ...r }) {
55
- const l = B();
55
+ const l = x();
56
56
  return /* @__PURE__ */ n(
57
57
  A,
58
58
  {
@@ -1,7 +1,7 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { Root as t, Item as c, Indicator as s } from "../../node_modules/.pnpm/@radix-ui_react-radio-group@1.3.7_@types_react-dom@19.1.0_@types_react@19.1.0_react-dom@19.1.0_react@19.1.0/node_modules/@radix-ui/react-radio-group/dist/index.es.js";
3
- import { cn as i } from "../../utils/index.es.js";
4
3
  import { Check as n } from "lucide-react";
4
+ import { cn as i } from "../../utils/primitives.es.js";
5
5
  function u({
6
6
  className: o,
7
7
  ...r
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as e, Fragment as c, jsxs as m } from "react/jsx-runtime";
3
- import { cn as s } from "../../utils/index.es.js";
4
- import { useFieldContext as f } from "../../utils/form-context.es.js";
5
- import * as h from "react";
6
- import { DropdownMenu as p, DropdownMenuTrigger as g, DropdownMenuContent as w, DropdownMenuRadioGroup as C, DropdownMenuRadioItem as D } from "../ui/dropdown-menu.es.js";
3
+ import { useFieldContext as s } from "../../utils/form-context.es.js";
4
+ import * as f from "react";
5
+ import { DropdownMenu as h, DropdownMenuTrigger as p, DropdownMenuContent as g, DropdownMenuRadioGroup as w, DropdownMenuRadioItem as C } from "../ui/dropdown-menu.es.js";
6
+ import { cn as D } from "../../utils/primitives.es.js";
7
7
  function M({
8
8
  value: r,
9
9
  setValue: l,
@@ -12,14 +12,14 @@ function M({
12
12
  buttonLabel: t,
13
13
  ...u
14
14
  }) {
15
- const d = h.useCallback(() => {
15
+ const d = f.useCallback(() => {
16
16
  var n;
17
17
  return (n = o.find((i) => i.value === r)) == null ? void 0 : n.label;
18
18
  }, [r]);
19
- return /* @__PURE__ */ e(c, { children: /* @__PURE__ */ m(p, { children: [
20
- /* @__PURE__ */ e(g, { ...u, asChild: !0, children: /* @__PURE__ */ e("button", { className: s("btn-dropdown", a), ...u, children: t || d() }) }),
21
- /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e(C, { value: r, children: o.map((n) => /* @__PURE__ */ e(
22
- D,
19
+ return /* @__PURE__ */ e(c, { children: /* @__PURE__ */ m(h, { children: [
20
+ /* @__PURE__ */ e(p, { ...u, asChild: !0, children: /* @__PURE__ */ e("button", { className: D("btn-dropdown", a), ...u, children: t || d() }) }),
21
+ /* @__PURE__ */ e(g, { children: /* @__PURE__ */ e(w, { value: r, children: o.map((n) => /* @__PURE__ */ e(
22
+ C,
23
23
  {
24
24
  onSelect: () => {
25
25
  l(n.value);
@@ -31,7 +31,7 @@ function M({
31
31
  ] }) });
32
32
  }
33
33
  function B({ ...r }) {
34
- const l = f();
34
+ const l = s();
35
35
  return /* @__PURE__ */ e(
36
36
  M,
37
37
  {
@@ -1 +1 @@
1
- {"version":3,"file":"select.es.js","sources":["../../../lib/components/inputs/select.tsx"],"sourcesContent":["\"use client\";\nimport type { SelectionProps } from \"@/components/inputs/multi-select\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui\";\nimport { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport * as React from \"react\";\n\nexport interface SingleSelectProps extends SelectionProps<string> { }\n\nexport function SingleSelect({\n\tvalue,\n\tsetValue,\n\toptions,\n\tclassName,\n\tbuttonLabel,\n\t...props\n}: SingleSelectProps) {\n\tconst defaultButtonLabel = React.useCallback(() => {\n\t\treturn options.find((o) => o.value === value)?.label;\n\t}, [value]);\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu>\n\t\t\t\t<DropdownMenuTrigger {...props} asChild>\n\t\t\t\t\t<button className={cn(\"btn-dropdown\", className)} {...props}>\n\t\t\t\t\t\t{buttonLabel ? buttonLabel : defaultButtonLabel()}\n\t\t\t\t\t</button>\n\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t<DropdownMenuContent>\n\t\t\t\t\t<DropdownMenuRadioGroup value={value}>\n\t\t\t\t\t\t{options.map((opt) => (\n\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\t\tsetValue(opt.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={opt.value}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{opt.label}\n\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DropdownMenuRadioGroup>\n\t\t\t\t</DropdownMenuContent>\n\t\t\t</DropdownMenu>\n\t\t</>\n\t);\n}\n\nexport interface TfSingleSelectProps\n\textends Omit<SingleSelectProps, \"value\" | \"setValue\"> { }\nexport function TfSingleSelect({ ...props }: TfSingleSelectProps) {\n\tconst field = useFieldContext<string>();\n\n\treturn (\n\t\t<SingleSelect\n\t\t\tvalue={field.state.value}\n\t\t\tsetValue={field.handleChange}\n\t\t\tonBlur={field.handleBlur}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["SingleSelect","value","setValue","options","className","buttonLabel","props","defaultButtonLabel","React","_a","o","jsx","Fragment","DropdownMenu","DropdownMenuTrigger","cn","DropdownMenuContent","DropdownMenuRadioGroup","opt","DropdownMenuRadioItem","TfSingleSelect","field","useFieldContext"],"mappings":";;;;;;AAeO,SAASA,EAAa;AAAA,EAC5B,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACJ,GAAsB;AACrB,QAAMC,IAAqBC,EAAM,YAAY,MAAM;;AAClD,YAAOC,IAAAN,EAAQ,KAAK,CAACO,MAAMA,EAAE,UAAUT,CAAK,MAArC,gBAAAQ,EAAwC;AAAA,EAChD,GAAG,CAACR,CAAK,CAAC;AAEV,SACC,gBAAAU,EAAAC,GAAA,EACC,4BAACC,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAF,EAACG,KAAqB,GAAGR,GAAO,SAAO,IACtC,UAAA,gBAAAK,EAAC,YAAO,WAAWI,EAAG,gBAAgBX,CAAS,GAAI,GAAGE,GACpD,eAA4BC,KAC9B,GACD;AAAA,IACA,gBAAAI,EAACK,KACA,UAAA,gBAAAL,EAACM,GAAA,EAAuB,OAAAhB,GACtB,UAAAE,EAAQ,IAAI,CAACe,MACb,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACA,UAAU,MAAM;AACf,UAAAjB,EAASgB,EAAI,KAAK;AAAA,QACnB;AAAA,QACA,OAAOA,EAAI;AAAA,QAEV,UAAAA,EAAI;AAAA,MAAA;AAAA,IAAA,CAEN,GACF,EAAA,CACD;AAAA,EAAA,EAAA,CACD,EAAA,CACD;AAEF;AAIO,SAASE,EAAe,EAAE,GAAGd,KAA8B;AACjE,QAAMe,IAAQC,EAAA;AAEd,SACC,gBAAAX;AAAA,IAACX;AAAA,IAAA;AAAA,MACA,OAAOqB,EAAM,MAAM;AAAA,MACnB,UAAUA,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,MACb,GAAGf;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"select.es.js","sources":["../../../lib/components/inputs/select.tsx"],"sourcesContent":["\"use client\";\nimport type { SelectionProps } from \"@/components/inputs/multi-select\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui\";\nimport { cn } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport * as React from \"react\";\n\nexport interface SingleSelectProps extends SelectionProps<string> { }\n\nexport function SingleSelect({\n\tvalue,\n\tsetValue,\n\toptions,\n\tclassName,\n\tbuttonLabel,\n\t...props\n}: SingleSelectProps) {\n\tconst defaultButtonLabel = React.useCallback(() => {\n\t\treturn options.find((o) => o.value === value)?.label;\n\t}, [value]);\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu>\n\t\t\t\t<DropdownMenuTrigger {...props} asChild>\n\t\t\t\t\t<button className={cn(\"btn-dropdown\", className)} {...props}>\n\t\t\t\t\t\t{buttonLabel ? buttonLabel : defaultButtonLabel()}\n\t\t\t\t\t</button>\n\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t<DropdownMenuContent>\n\t\t\t\t\t<DropdownMenuRadioGroup value={value}>\n\t\t\t\t\t\t{options.map((opt) => (\n\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\t\tsetValue(opt.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={opt.value}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{opt.label}\n\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DropdownMenuRadioGroup>\n\t\t\t\t</DropdownMenuContent>\n\t\t\t</DropdownMenu>\n\t\t</>\n\t);\n}\n\nexport interface TfSingleSelectProps\n\textends Omit<SingleSelectProps, \"value\" | \"setValue\"> { }\nexport function TfSingleSelect({ ...props }: TfSingleSelectProps) {\n\tconst field = useFieldContext<string>();\n\n\treturn (\n\t\t<SingleSelect\n\t\t\tvalue={field.state.value}\n\t\t\tsetValue={field.handleChange}\n\t\t\tonBlur={field.handleBlur}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"names":["SingleSelect","value","setValue","options","className","buttonLabel","props","defaultButtonLabel","React","_a","o","jsx","Fragment","DropdownMenu","DropdownMenuTrigger","cn","DropdownMenuContent","DropdownMenuRadioGroup","opt","DropdownMenuRadioItem","TfSingleSelect","field","useFieldContext"],"mappings":";;;;;;AAeO,SAASA,EAAa;AAAA,EAC5B,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACJ,GAAsB;AACrB,QAAMC,IAAqBC,EAAM,YAAY,MAAM;;AAClD,YAAOC,IAAAN,EAAQ,KAAK,CAACO,MAAMA,EAAE,UAAUT,CAAK,MAArC,gBAAAQ,EAAwC;AAAA,EAChD,GAAG,CAACR,CAAK,CAAC;AAEV,SACC,gBAAAU,EAAAC,GAAA,EACC,4BAACC,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAF,EAACG,KAAqB,GAAGR,GAAO,SAAO,IACtC,UAAA,gBAAAK,EAAC,YAAO,WAAWI,EAAG,gBAAgBX,CAAS,GAAI,GAAGE,GACpD,eAA4BC,KAC9B,GACD;AAAA,IACA,gBAAAI,EAACK,KACA,UAAA,gBAAAL,EAACM,GAAA,EAAuB,OAAAhB,GACtB,UAAAE,EAAQ,IAAI,CAACe,MACb,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACA,UAAU,MAAM;AACf,UAAAjB,EAASgB,EAAI,KAAK;AAAA,QACnB;AAAA,QACA,OAAOA,EAAI;AAAA,QAEV,UAAAA,EAAI;AAAA,MAAA;AAAA,IAAA,CAEN,GACF,EAAA,CACD;AAAA,EAAA,EAAA,CACD,EAAA,CACD;AAEF;AAIO,SAASE,EAAe,EAAE,GAAGd,KAA8B;AACjE,QAAMe,IAAQC,EAAA;AAEd,SACC,gBAAAX;AAAA,IAACX;AAAA,IAAA;AAAA,MACA,OAAOqB,EAAM,MAAM;AAAA,MACnB,UAAUA,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,MACb,GAAGf;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,14 +1,14 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { cn as i } from "../../utils/index.es.js";
3
- import { useFieldContext as o } from "../../utils/form-context.es.js";
2
+ import { useFieldContext as i } from "../../utils/form-context.es.js";
3
+ import { cn as o } from "../../utils/primitives.es.js";
4
4
  function u({
5
5
  className: t,
6
6
  ...a
7
7
  }) {
8
- return /* @__PURE__ */ n("textarea", { className: i("flex input min-h-input", t), ...a });
8
+ return /* @__PURE__ */ n("textarea", { className: o("flex input min-h-input", t), ...a });
9
9
  }
10
10
  function s({ disabled: t, ...a }) {
11
- const e = o();
11
+ const e = i();
12
12
  return /* @__PURE__ */ n(
13
13
  u,
14
14
  {
@@ -1,13 +1,10 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
2
  import { Badge as d } from "../ui/badge.es.js";
3
- import "react";
4
- import "../../utils/form-context.es.js";
5
- import "../../utils/form-hook.es.js";
6
3
  import { Card as i, CardHeader as f, CardTitle as m, CardContent as h } from "../ui/card.es.js";
7
4
  import { Skeleton as x } from "../ui/skeleton.es.js";
8
- import { CopyButton as u } from "../ui/copy-button.es.js";
9
- import { FormatDate as y } from "../data-table/table-utils/date.es.js";
10
- const S = ({
5
+ import { formatDate as u } from "../data-table/table-commons.es.js";
6
+ import { CopyButton as y } from "../ui/copy-button.es.js";
7
+ const B = ({
11
8
  data: c,
12
9
  label: o,
13
10
  fields: l
@@ -22,10 +19,10 @@ const S = ({
22
19
  case "copyButton":
23
20
  return /* @__PURE__ */ t("span", { className: "flex items-center gap-2", children: [
24
21
  r,
25
- /* @__PURE__ */ e(u, { value: r })
22
+ /* @__PURE__ */ e(y, { value: r })
26
23
  ] });
27
24
  case "date":
28
- return /* @__PURE__ */ e("span", { children: y(r) });
25
+ return /* @__PURE__ */ e("span", { children: u(r) });
29
26
  case "yesno":
30
27
  return /* @__PURE__ */ e("span", { children: r ? "Yes" : "No" });
31
28
  case "badge":
@@ -58,6 +55,6 @@ const S = ({
58
55
  ] });
59
56
  };
60
57
  export {
61
- S as KeyValueCard
58
+ B as KeyValueCard
62
59
  };
63
60
  //# sourceMappingURL=key-value-card.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-card.es.js","sources":["../../../lib/components/key-value-card/key-value-card.tsx"],"sourcesContent":["import { Badge } from \"@/components/ui/badge\";\nimport {\n\tCard,\n\tCardContent,\n\tCardHeader,\n\tCardTitle,\n\tCopyButton,\n\tFormatDate,\n\tSkeleton,\n} from \"@/index\";\n\n// Utility type to handle nested keys (dot notation) in any object\ntype NestedKeyOf<T> = T extends object\n\t? {\n\t\t\t[K in keyof T]: K extends string | number\n\t\t\t\t? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}`\n\t\t\t\t: never;\n\t\t}[keyof T]\n\t: never;\n\n// DisplayField type that works with nested keys\nexport type DisplayField<T> = {\n\tdisplay: string;\n\taccessor: NestedKeyOf<T>;\n\ttype?:\n\t\t| \"text\"\n\t\t| \"badge\"\n\t\t| \"boolean\"\n\t\t| \"date\"\n\t\t| \"yesno\"\n\t\t| \"copyButton\"\n\t\t| \"link\"; // Field types\n\ttransform?: (value: any) => React.ReactNode;\n};\n\nexport interface KeyValueCardProps<T> {\n\tdata: T; // Ensure data is of type T\n\tlabel: string;\n\tfields: DisplayField<T>[];\n\tclassName?: string;\n}\n\nexport const KeyValueCard = <T extends {}>({\n\tdata,\n\tlabel,\n\tfields,\n}: KeyValueCardProps<T>) => {\n\tconst renderValue = (field: DisplayField<T>, value: any) => {\n\t\tif (field.transform) {\n\t\t\treturn field.transform(value);\n\t\t}\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"-\";\n\t\t}\n\t\tswitch (field.type) {\n\t\t\tcase \"link\":\n\t\t\t// return <Link to={value}>{value}</Link>;\n\t\t\tcase \"copyButton\":\n\t\t\t\treturn (\n\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{value}\n\t\t\t\t\t\t<CopyButton value={value} />\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\tcase \"date\":\n\t\t\t\treturn <span>{FormatDate(value)}</span>;\n\t\t\tcase \"yesno\":\n\t\t\t\treturn <span>{value ? \"Yes\" : \"No\"}</span>;\n\t\t\tcase \"badge\":\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1\">\n\t\t\t\t\t\t{Array.isArray(value)\n\t\t\t\t\t\t\t? value.map((item, index) => (\n\t\t\t\t\t\t\t\t\t<Badge key={index}>\n\t\t\t\t\t\t\t\t\t\t{typeof item === \"object\" ? item?.name || item?.id : item}\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t: value}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\n\t\t\tcase \"boolean\":\n\t\t\t\treturn <span>{value.toString()}</span>;\n\t\t\tdefault:\n\t\t\t\treturn <span>{value}</span>;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Card>\n\t\t\t<CardHeader>\n\t\t\t\t<CardTitle>{label}</CardTitle>\n\t\t\t</CardHeader>\n\t\t\t<CardContent>\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t{data\n\t\t\t\t\t\t? fields.map((field) => {\n\t\t\t\t\t\t\t\t// TODO: improve this\n\t\t\t\t\t\t\t\tconst value = field.accessor\n\t\t\t\t\t\t\t\t\t? field.accessor\n\t\t\t\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t\t\t\t\t(obj, key) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tobj && key in obj ? obj[key] : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\tdata as Record<string, any>,\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={field.display}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<p className=\"text-sm flex w-full justify-start col-span-1\">\n\t\t\t\t\t\t\t\t\t\t\t{field.display}\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t<div className=\"text-sm flex w-full justify-start text-wrap break-all\">\n\t\t\t\t\t\t\t\t\t\t\t{renderValue(field, value)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: fields.map((_, index) => (\n\t\t\t\t\t\t\t\t<Skeleton key={index} className=\"h-12 w-full\" />\n\t\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</CardContent>\n\t\t</Card>\n\t);\n};\n"],"names":["KeyValueCard","data","label","fields","renderValue","field","value","jsxs","jsx","CopyButton","FormatDate","item","index","Badge","Card","CardHeader","CardTitle","CardContent","obj","key","_","Skeleton"],"mappings":";;;;;;;;;AA0CO,MAAMA,IAAe,CAAe;AAAA,EAC1C,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AACD,MAA4B;AAC3B,QAAMC,IAAc,CAACC,GAAwBC,MAAe;AAC3D,QAAID,EAAM;AACT,aAAOA,EAAM,UAAUC,CAAK;AAE7B,QAA2BA,KAAU;AACpC,aAAO;AAER,YAAQD,EAAM,MAAA;AAAA,MACb,KAAK;AAAA,MAEL,KAAK;AACJ,eACC,gBAAAE,EAAC,QAAA,EAAK,WAAU,2BACd,UAAA;AAAA,UAAAD;AAAA,UACD,gBAAAE,EAACC,KAAW,OAAAH,EAAA,CAAc;AAAA,QAAA,GAC3B;AAAA,MAEF,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAE,EAAWJ,CAAK,GAAE;AAAA,MACjC,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAF,IAAQ,QAAQ,MAAK;AAAA,MACpC,KAAK;AACJ,eACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA,MAAM,QAAQF,CAAK,IACjBA,EAAM,IAAI,CAACK,GAAMC,wBAChBC,GAAA,EACC,UAAA,OAAOF,KAAS,YAAWA,KAAA,gBAAAA,EAAM,UAAQA,KAAA,gBAAAA,EAAM,MAAKA,EAAA,GAD1CC,CAEZ,CACA,IACAN,EAAA,CACJ;AAAA,MAGF,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAF,EAAM,SAAA,GAAW;AAAA,MAChC;AACC,eAAO,gBAAAE,EAAC,UAAM,UAAAF,EAAA,CAAM;AAAA,IAAA;AAAA,EAEvB;AAEA,2BACEQ,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAN,EAACO,GAAA,EACA,UAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAAd,EAAA,CAAM,GACnB;AAAA,IACA,gBAAAM,EAACS,GAAA,EACA,UAAA,gBAAAT,EAAC,OAAA,EAAI,WAAU,uBACb,UAAAP,IACEE,EAAO,IAAI,CAACE,MAAU;AAEtB,YAAMC,IAAQD,EAAM,WACjBA,EAAM,SACL,MAAM,GAAG,EACT;AAAA,QACA,CAACa,GAAKC,MACLD,KAAOC,KAAOD,IAAMA,EAAIC,CAAG,IAAI;AAAA,QAChClB;AAAA,MAAA,IAED;AAEH,aACC,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UAEA,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAC,EAAC,KAAA,EAAE,WAAU,gDACX,UAAAH,EAAM,SACR;AAAA,8BACC,OAAA,EAAI,WAAU,yDACb,UAAAD,EAAYC,GAAOC,CAAK,EAAA,CAC1B;AAAA,UAAA;AAAA,QAAA;AAAA,QARKD,EAAM;AAAA,MAAA;AAAA,IAWd,CAAC,IACAF,EAAO,IAAI,CAACiB,GAAGR,MACf,gBAAAJ,EAACa,GAAA,EAAqB,WAAU,cAAA,GAAjBT,CAA+B,CAC9C,GACJ,EAAA,CACD;AAAA,EAAA,GACD;AAEF;"}
1
+ {"version":3,"file":"key-value-card.es.js","sources":["../../../lib/components/key-value-card/key-value-card.tsx"],"sourcesContent":["import { Badge } from \"@/components/ui/badge\";\nimport {\n\tCard,\n\tCardContent,\n\tCardHeader,\n\tCardTitle,\n\tCopyButton,\n\tformatDate,\n\tSkeleton,\n} from \"@/index\";\n\n// Utility type to handle nested keys (dot notation) in any object\ntype NestedKeyOf<T> = T extends object\n\t? {\n\t\t[K in keyof T]: K extends string | number\n\t\t? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}`\n\t\t: never;\n\t}[keyof T]\n\t: never;\n\n// DisplayField type that works with nested keys\nexport type DisplayField<T> = {\n\tdisplay: string;\n\taccessor: NestedKeyOf<T>;\n\ttype?:\n\t| \"text\"\n\t| \"badge\"\n\t| \"boolean\"\n\t| \"date\"\n\t| \"yesno\"\n\t| \"copyButton\"\n\t| \"link\"; // Field types\n\ttransform?: (value: any) => React.ReactNode;\n};\n\nexport interface KeyValueCardProps<T> {\n\tdata: T; // Ensure data is of type T\n\tlabel: string;\n\tfields: DisplayField<T>[];\n\tclassName?: string;\n}\n\nexport const KeyValueCard = <T extends {}>({\n\tdata,\n\tlabel,\n\tfields,\n}: KeyValueCardProps<T>) => {\n\tconst renderValue = (field: DisplayField<T>, value: any) => {\n\t\tif (field.transform) {\n\t\t\treturn field.transform(value);\n\t\t}\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"-\";\n\t\t}\n\t\tswitch (field.type) {\n\t\t\tcase \"link\":\n\t\t\t// return <Link to={value}>{value}</Link>;\n\t\t\tcase \"copyButton\":\n\t\t\t\treturn (\n\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{value}\n\t\t\t\t\t\t<CopyButton value={value} />\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\tcase \"date\":\n\t\t\t\treturn <span>{formatDate(value)}</span>;\n\t\t\tcase \"yesno\":\n\t\t\t\treturn <span>{value ? \"Yes\" : \"No\"}</span>;\n\t\t\tcase \"badge\":\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1\">\n\t\t\t\t\t\t{Array.isArray(value)\n\t\t\t\t\t\t\t? value.map((item, index) => (\n\t\t\t\t\t\t\t\t<Badge key={index}>\n\t\t\t\t\t\t\t\t\t{typeof item === \"object\" ? item?.name || item?.id : item}\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t: value}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\n\t\t\tcase \"boolean\":\n\t\t\t\treturn <span>{value.toString()}</span>;\n\t\t\tdefault:\n\t\t\t\treturn <span>{value}</span>;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Card>\n\t\t\t<CardHeader>\n\t\t\t\t<CardTitle>{label}</CardTitle>\n\t\t\t</CardHeader>\n\t\t\t<CardContent>\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t{data\n\t\t\t\t\t\t? fields.map((field) => {\n\t\t\t\t\t\t\t// TODO: improve this\n\t\t\t\t\t\t\tconst value = field.accessor\n\t\t\t\t\t\t\t\t? field.accessor\n\t\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t\t\t(obj, key) =>\n\t\t\t\t\t\t\t\t\t\t\tobj && key in obj ? obj[key] : undefined,\n\t\t\t\t\t\t\t\t\t\tdata as Record<string, any>,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={field.display}\n\t\t\t\t\t\t\t\t\tclassName=\"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p className=\"text-sm flex w-full justify-start col-span-1\">\n\t\t\t\t\t\t\t\t\t\t{field.display}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<div className=\"text-sm flex w-full justify-start text-wrap break-all\">\n\t\t\t\t\t\t\t\t\t\t{renderValue(field, value)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t: fields.map((_, index) => (\n\t\t\t\t\t\t\t<Skeleton key={index} className=\"h-12 w-full\" />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</CardContent>\n\t\t</Card>\n\t);\n};\n"],"names":["KeyValueCard","data","label","fields","renderValue","field","value","jsxs","jsx","CopyButton","formatDate","item","index","Badge","Card","CardHeader","CardTitle","CardContent","obj","key","_","Skeleton"],"mappings":";;;;;;AA0CO,MAAMA,IAAe,CAAe;AAAA,EAC1C,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AACD,MAA4B;AAC3B,QAAMC,IAAc,CAACC,GAAwBC,MAAe;AAC3D,QAAID,EAAM;AACT,aAAOA,EAAM,UAAUC,CAAK;AAE7B,QAA2BA,KAAU;AACpC,aAAO;AAER,YAAQD,EAAM,MAAA;AAAA,MACb,KAAK;AAAA,MAEL,KAAK;AACJ,eACC,gBAAAE,EAAC,QAAA,EAAK,WAAU,2BACd,UAAA;AAAA,UAAAD;AAAA,UACD,gBAAAE,EAACC,KAAW,OAAAH,EAAA,CAAc;AAAA,QAAA,GAC3B;AAAA,MAEF,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAE,EAAWJ,CAAK,GAAE;AAAA,MACjC,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAF,IAAQ,QAAQ,MAAK;AAAA,MACpC,KAAK;AACJ,eACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA,MAAM,QAAQF,CAAK,IACjBA,EAAM,IAAI,CAACK,GAAMC,wBACjBC,GAAA,EACC,UAAA,OAAOF,KAAS,YAAWA,KAAA,gBAAAA,EAAM,UAAQA,KAAA,gBAAAA,EAAM,MAAKA,EAAA,GAD1CC,CAEZ,CACA,IACCN,EAAA,CACJ;AAAA,MAGF,KAAK;AACJ,eAAO,gBAAAE,EAAC,QAAA,EAAM,UAAAF,EAAM,SAAA,GAAW;AAAA,MAChC;AACC,eAAO,gBAAAE,EAAC,UAAM,UAAAF,EAAA,CAAM;AAAA,IAAA;AAAA,EAEvB;AAEA,2BACEQ,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAN,EAACO,GAAA,EACA,UAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAAd,EAAA,CAAM,GACnB;AAAA,IACA,gBAAAM,EAACS,GAAA,EACA,UAAA,gBAAAT,EAAC,OAAA,EAAI,WAAU,uBACb,UAAAP,IACEE,EAAO,IAAI,CAACE,MAAU;AAEvB,YAAMC,IAAQD,EAAM,WACjBA,EAAM,SACN,MAAM,GAAG,EACT;AAAA,QACA,CAACa,GAAKC,MACLD,KAAOC,KAAOD,IAAMA,EAAIC,CAAG,IAAI;AAAA,QAChClB;AAAA,MAAA,IAEA;AAEH,aACC,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UAEA,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAC,EAAC,KAAA,EAAE,WAAU,gDACX,UAAAH,EAAM,SACR;AAAA,8BACC,OAAA,EAAI,WAAU,yDACb,UAAAD,EAAYC,GAAOC,CAAK,EAAA,CAC1B;AAAA,UAAA;AAAA,QAAA;AAAA,QARKD,EAAM;AAAA,MAAA;AAAA,IAWd,CAAC,IACCF,EAAO,IAAI,CAACiB,GAAGR,MAChB,gBAAAJ,EAACa,GAAA,EAAqB,WAAU,cAAA,GAAjBT,CAA+B,CAC9C,GACH,EAAA,CACD;AAAA,EAAA,GACD;AAEF;"}
@@ -1,24 +1,24 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
- import { cn as r } from "../../utils/index.es.js";
3
- import { Root as i, Item as s, Header as c, Trigger as d, Content as m } from "../../node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.0_@types_react@19.1.0_react-dom@19.1.0_react@19.1.0/node_modules/@radix-ui/react-accordion/dist/index.es.js";
2
+ import { Root as i, Item as c, Header as s, Trigger as d, Content as m } from "../../node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.0_@types_react@19.1.0_react-dom@19.1.0_react@19.1.0/node_modules/@radix-ui/react-accordion/dist/index.es.js";
4
3
  import { ChevronDown as l } from "lucide-react";
4
+ import { cn as r } from "../../utils/primitives.es.js";
5
5
  const x = i;
6
6
  function h({
7
7
  className: e,
8
8
  ...o
9
9
  }) {
10
- return /* @__PURE__ */ t(s, { className: r("border-b", e), ...o });
10
+ return /* @__PURE__ */ t(c, { className: r("border-b", e), ...o });
11
11
  }
12
12
  function b({
13
13
  className: e,
14
14
  children: o,
15
15
  ...n
16
16
  }) {
17
- return /* @__PURE__ */ t(c, { className: "flex", children: /* @__PURE__ */ a(
17
+ return /* @__PURE__ */ t(s, { className: "flex", children: /* @__PURE__ */ a(
18
18
  d,
19
19
  {
20
20
  className: r(
21
- "flex flex-1 items-center justify-between py-4 body font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",
21
+ "flex flex-1 items-center justify-between py-icon body font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",
22
22
  e
23
23
  ),
24
24
  ...n,
@@ -39,7 +39,7 @@ function N({
39
39
  {
40
40
  className: "overflow-hidden body data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
41
41
  ...n,
42
- children: /* @__PURE__ */ t("div", { className: r("pb-4 pt-0", e), children: o })
42
+ children: /* @__PURE__ */ t("div", { className: r("pb-icon pt-0", e), children: o })
43
43
  }
44
44
  );
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.es.js","sources":["../../../lib/components/ui/accordion.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport const Accordion = AccordionPrimitive.Root;\n\nexport function AccordionItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n\treturn (\n\t\t<AccordionPrimitive.Item className={cn(\"border-b\", className)} {...props} />\n\t);\n}\n\nexport function AccordionTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n\treturn (\n\t\t<AccordionPrimitive.Header className=\"flex\">\n\t\t\t<AccordionPrimitive.Trigger\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex flex-1 items-center justify-between py-4 body font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<ChevronDown className=\"size-icon shrink-0 text-muted-foreground transition-transform duration-200\" />\n\t\t\t</AccordionPrimitive.Trigger>\n\t\t</AccordionPrimitive.Header>\n\t);\n}\n\nexport function AccordionContent({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n\treturn (\n\t\t<AccordionPrimitive.Content\n\t\t\tclassName=\"overflow-hidden body data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n\t\t</AccordionPrimitive.Content>\n\t);\n}\n"],"names":["Accordion","AccordionPrimitive.Root","AccordionItem","className","props","jsx","AccordionPrimitive.Item","cn","AccordionTrigger","children","AccordionPrimitive.Header","jsxs","AccordionPrimitive.Trigger","ChevronDown","AccordionContent","AccordionPrimitive.Content"],"mappings":";;;;AAKO,MAAMA,IAAYC;AAElB,SAASC,EAAc;AAAA,EAC7B,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAyD;AACxD,SACC,gBAAAC,EAACC,GAAA,EAAwB,WAAWC,EAAG,YAAYJ,CAAS,GAAI,GAAGC,GAAO;AAE5E;AAEO,SAASI,EAAiB;AAAA,EAChC,WAAAL;AAAA,EACA,UAAAM;AAAA,EACA,GAAGL;AACJ,GAA4D;AAC3D,SACC,gBAAAC,EAACK,GAAA,EAA0B,WAAU,QACpC,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACA,WAAWL;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAY,WAAU,6EAAA,CAA6E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEtG;AAEF;AAEO,SAASC,EAAiB;AAAA,EAChC,WAAAX;AAAA,EACA,UAAAM;AAAA,EACA,GAAGL;AACJ,GAA4D;AAC3D,SACC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACT,GAAGX;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWG,EAAG,aAAaJ,CAAS,GAAI,UAAAM,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGzD;"}
1
+ {"version":3,"file":"accordion.es.js","sources":["../../../lib/components/ui/accordion.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport const Accordion = AccordionPrimitive.Root;\n\nexport function AccordionItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n\treturn (\n\t\t<AccordionPrimitive.Item className={cn(\"border-b\", className)} {...props} />\n\t);\n}\n\nexport function AccordionTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n\treturn (\n\t\t<AccordionPrimitive.Header className=\"flex\">\n\t\t\t<AccordionPrimitive.Trigger\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex flex-1 items-center justify-between py-icon body font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<ChevronDown className=\"size-icon shrink-0 text-muted-foreground transition-transform duration-200\" />\n\t\t\t</AccordionPrimitive.Trigger>\n\t\t</AccordionPrimitive.Header>\n\t);\n}\n\nexport function AccordionContent({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n\treturn (\n\t\t<AccordionPrimitive.Content\n\t\t\tclassName=\"overflow-hidden body data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={cn(\"pb-icon pt-0\", className)}>{children}</div>\n\t\t</AccordionPrimitive.Content>\n\t);\n}\n"],"names":["Accordion","AccordionPrimitive.Root","AccordionItem","className","props","jsx","AccordionPrimitive.Item","cn","AccordionTrigger","children","AccordionPrimitive.Header","jsxs","AccordionPrimitive.Trigger","ChevronDown","AccordionContent","AccordionPrimitive.Content"],"mappings":";;;;AAKO,MAAMA,IAAYC;AAElB,SAASC,EAAc;AAAA,EAC7B,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAyD;AACxD,SACC,gBAAAC,EAACC,GAAA,EAAwB,WAAWC,EAAG,YAAYJ,CAAS,GAAI,GAAGC,GAAO;AAE5E;AAEO,SAASI,EAAiB;AAAA,EAChC,WAAAL;AAAA,EACA,UAAAM;AAAA,EACA,GAAGL;AACJ,GAA4D;AAC3D,SACC,gBAAAC,EAACK,GAAA,EAA0B,WAAU,QACpC,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACA,WAAWL;AAAA,QACV;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAY,WAAU,6EAAA,CAA6E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEtG;AAEF;AAEO,SAASC,EAAiB;AAAA,EAChC,WAAAX;AAAA,EACA,UAAAM;AAAA,EACA,GAAGL;AACJ,GAA4D;AAC3D,SACC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACT,GAAGX;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWG,EAAG,gBAAgBJ,CAAS,GAAI,UAAAM,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAG5D;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
- import { cn as i } from "../../utils/index.es.js";
3
- import { cva as c } from "class-variance-authority";
4
- const n = c(
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as c } from "../../utils/primitives.es.js";
4
+ const n = i(
5
5
  "transition-colors border border-dotted p-2 text-foreground text-sm inline-flex items-start gap-2",
6
6
  {
7
7
  variants: {
@@ -17,7 +17,7 @@ const n = c(
17
17
  }
18
18
  );
19
19
  function f({ children: r, className: s, variant: o, icon: e, ...a }) {
20
- return /* @__PURE__ */ d("div", { role: "alert", className: i(n({ variant: o }), s), ...a, children: [
20
+ return /* @__PURE__ */ d("div", { role: "alert", className: c(n({ variant: o }), s), ...a, children: [
21
21
  e && /* @__PURE__ */ t(e, { className: "size-icon mt-1" }),
22
22
  /* @__PURE__ */ t("span", { className: "w-full", children: r })
23
23
  ] });
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { cn as r } from "../../utils/index.es.js";
2
+ import { cn as r } from "../../utils/primitives.es.js";
3
3
  function f({ className: e, initials: t, ...n }) {
4
4
  return /* @__PURE__ */ o(
5
5
  "div",
@@ -1,5 +1,5 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { cn as t } from "../../utils/index.es.js";
2
+ import { cn as t } from "../../utils/primitives.es.js";
3
3
  function s({ className: n, children: r, ...i }) {
4
4
  return /* @__PURE__ */ e(
5
5
  "span",
@@ -1,7 +1,7 @@
1
1
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
2
2
  import { Root as i } from "../../node_modules/.pnpm/@radix-ui_react-slot@1.2.3_@types_react@19.1.0_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.es.js";
3
- import { cn as n } from "../../utils/index.es.js";
4
3
  import { ChevronRight as s, DotSquare as c } from "lucide-react";
4
+ import { cn as n } from "../../utils/primitives.es.js";
5
5
  function p({ ...r }) {
6
6
  return /* @__PURE__ */ a("nav", { "aria-label": "breadcrumb", ...r });
7
7
  }
@@ -88,7 +88,7 @@ function B({
88
88
  className: n("flex size-9 items-center justify-center", r),
89
89
  ...e,
90
90
  children: [
91
- /* @__PURE__ */ a(c, { className: "size-4" }),
91
+ /* @__PURE__ */ a(c, { className: "size-icon" }),
92
92
  /* @__PURE__ */ a("span", { className: "sr-only", children: "More" })
93
93
  ]
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.es.js","sources":["../../../lib/components/ui/breadcrumb.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\nimport { ChevronRight, DotSquare } from \"lucide-react\";\n\nexport function Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n\treturn <nav aria-label=\"breadcrumb\" {...props} />;\n}\n\nexport function BreadcrumbList({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ol\">) {\n\treturn (\n\t\t<ol\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-1.5 break-words body text-muted-foreground sm:gap-2.5\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\"inline-flex items-center gap-1.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbLink({\n\tasChild,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tclassName={cn(\"transition-colors hover:text-foreground\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbPage({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\trole=\"link\"\n\t\t\taria-disabled=\"true\"\n\t\t\taria-current=\"page\"\n\t\t\tclassName={cn(\"font-normal text-foreground\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbSeparator({\n\tchildren,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\trole=\"presentation\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(\"[&>svg]:size-icon\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <ChevronRight />}\n\t\t</li>\n\t);\n}\n\nexport function BreadcrumbEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\trole=\"presentation\"\n\t\t\taria-hidden=\"true\"\n\t\t\t// TODO why 9??\n\t\t\tclassName={cn(\"flex size-9 items-center justify-center\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<DotSquare className=\"size-4\" />\n\t\t\t<span className=\"sr-only\">More</span>\n\t\t</span>\n\t);\n}\n"],"names":["Breadcrumb","props","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","jsxs","DotSquare"],"mappings":";;;;AAMO,SAASA,EAAW,EAAE,GAAGC,KAAsC;AACrE,SAAO,gBAAAC,EAAC,OAAA,EAAI,cAAW,cAAc,GAAGD,GAAO;AAChD;AAEO,SAASE,EAAe;AAAA,EAC9B,WAAAC;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWG;AAAA,QACV;AAAA,QACAD;AAAA,MAAA;AAAA,MAEA,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASK,EAAe;AAAA,EAC9B,WAAAF;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWG,EAAG,oCAAoCD,CAAS;AAAA,MAC1D,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASM,EAAe;AAAA,EAC9B,SAAAC;AAAA,EACA,WAAAJ;AAAA,EACA,GAAGH;AACJ,GAAsD;AAGrD,SACC,gBAAAC;AAAA,IAHYM,IAAUC,IAAO;AAAA,IAG5B;AAAA,MACA,WAAWJ,EAAG,2CAA2CD,CAAS;AAAA,MACjE,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASS,EAAe;AAAA,EAC9B,WAAAN;AAAA,EACA,GAAGH;AACJ,GAAiC;AAChC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWG,EAAG,+BAA+BD,CAAS;AAAA,MACrD,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASU,EAAoB;AAAA,EACnC,UAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,WAAWG,EAAG,qBAAqBD,CAAS;AAAA,MAC3C,GAAGH;AAAA,MAEH,UAAAW,uBAAaC,GAAA,CAAA,CAAa;AAAA,IAAA;AAAA,EAAA;AAG9B;AAEO,SAASC,EAAmB;AAAA,EAClC,WAAAV;AAAA,EACA,GAAGH;AACJ,GAAiC;AAChC,SACC,gBAAAc;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,eAAY;AAAA,MAEZ,WAAWV,EAAG,2CAA2CD,CAAS;AAAA,MACjE,GAAGH;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAACc,GAAA,EAAU,WAAU,SAAA,CAAS;AAAA,QAC9B,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGjC;"}
1
+ {"version":3,"file":"breadcrumb.es.js","sources":["../../../lib/components/ui/breadcrumb.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\nimport { ChevronRight, DotSquare } from \"lucide-react\";\n\nexport function Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n\treturn <nav aria-label=\"breadcrumb\" {...props} />;\n}\n\nexport function BreadcrumbList({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ol\">) {\n\treturn (\n\t\t<ol\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-wrap items-center gap-1.5 break-words body text-muted-foreground sm:gap-2.5\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\"inline-flex items-center gap-1.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbLink({\n\tasChild,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tclassName={cn(\"transition-colors hover:text-foreground\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbPage({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\trole=\"link\"\n\t\t\taria-disabled=\"true\"\n\t\t\taria-current=\"page\"\n\t\t\tclassName={cn(\"font-normal text-foreground\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function BreadcrumbSeparator({\n\tchildren,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\trole=\"presentation\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(\"[&>svg]:size-icon\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <ChevronRight />}\n\t\t</li>\n\t);\n}\n\nexport function BreadcrumbEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\trole=\"presentation\"\n\t\t\taria-hidden=\"true\"\n\t\t\t// TODO why 9??\n\t\t\tclassName={cn(\"flex size-9 items-center justify-center\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<DotSquare className=\"size-icon\" />\n\t\t\t<span className=\"sr-only\">More</span>\n\t\t</span>\n\t);\n}\n"],"names":["Breadcrumb","props","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","jsxs","DotSquare"],"mappings":";;;;AAMO,SAASA,EAAW,EAAE,GAAGC,KAAsC;AACrE,SAAO,gBAAAC,EAAC,OAAA,EAAI,cAAW,cAAc,GAAGD,GAAO;AAChD;AAEO,SAASE,EAAe;AAAA,EAC9B,WAAAC;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWG;AAAA,QACV;AAAA,QACAD;AAAA,MAAA;AAAA,MAEA,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASK,EAAe;AAAA,EAC9B,WAAAF;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWG,EAAG,oCAAoCD,CAAS;AAAA,MAC1D,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASM,EAAe;AAAA,EAC9B,SAAAC;AAAA,EACA,WAAAJ;AAAA,EACA,GAAGH;AACJ,GAAsD;AAGrD,SACC,gBAAAC;AAAA,IAHYM,IAAUC,IAAO;AAAA,IAG5B;AAAA,MACA,WAAWJ,EAAG,2CAA2CD,CAAS;AAAA,MACjE,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASS,EAAe;AAAA,EAC9B,WAAAN;AAAA,EACA,GAAGH;AACJ,GAAiC;AAChC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWG,EAAG,+BAA+BD,CAAS;AAAA,MACrD,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASU,EAAoB;AAAA,EACnC,UAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGH;AACJ,GAA+B;AAC9B,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,WAAWG,EAAG,qBAAqBD,CAAS;AAAA,MAC3C,GAAGH;AAAA,MAEH,UAAAW,uBAAaC,GAAA,CAAA,CAAa;AAAA,IAAA;AAAA,EAAA;AAG9B;AAEO,SAASC,EAAmB;AAAA,EAClC,WAAAV;AAAA,EACA,GAAGH;AACJ,GAAiC;AAChC,SACC,gBAAAc;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,eAAY;AAAA,MAEZ,WAAWV,EAAG,2CAA2CD,CAAS;AAAA,MACjE,GAAGH;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAACc,GAAA,EAAU,WAAU,YAAA,CAAY;AAAA,QACjC,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGjC;"}