@next-degree/pickle-shared-js 0.15.2 → 0.15.3

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 (145) hide show
  1. package/dist/{chunk-VBLDMVVW.cjs → chunk-2XIO3WQ2.cjs} +4 -4
  2. package/dist/{chunk-VBLDMVVW.cjs.map → chunk-2XIO3WQ2.cjs.map} +1 -1
  3. package/dist/{chunk-ZZCTMR2F.cjs → chunk-2YUUVN7E.cjs} +3 -3
  4. package/dist/{chunk-ZZCTMR2F.cjs.map → chunk-2YUUVN7E.cjs.map} +1 -1
  5. package/dist/{chunk-QRMNGILI.cjs → chunk-4F2PRKMM.cjs} +4 -4
  6. package/dist/{chunk-QRMNGILI.cjs.map → chunk-4F2PRKMM.cjs.map} +1 -1
  7. package/dist/{chunk-NCEXSFMC.js → chunk-556GH3CB.js} +4 -4
  8. package/dist/{chunk-NCEXSFMC.js.map → chunk-556GH3CB.js.map} +1 -1
  9. package/dist/{chunk-F3FYMCRO.js → chunk-5IFDS3CJ.js} +3 -3
  10. package/dist/{chunk-F3FYMCRO.js.map → chunk-5IFDS3CJ.js.map} +1 -1
  11. package/dist/{chunk-5EUHR4DQ.cjs → chunk-7PVEU6NQ.cjs} +13 -13
  12. package/dist/{chunk-5EUHR4DQ.cjs.map → chunk-7PVEU6NQ.cjs.map} +1 -1
  13. package/dist/{chunk-K76RPF2X.js → chunk-CPZFINPG.js} +3 -3
  14. package/dist/{chunk-K76RPF2X.js.map → chunk-CPZFINPG.js.map} +1 -1
  15. package/dist/{chunk-ILLYEM3G.cjs → chunk-E244YSGF.cjs} +31 -42
  16. package/dist/chunk-E244YSGF.cjs.map +1 -0
  17. package/dist/{chunk-LV6BHE7Q.cjs → chunk-HDQBXWSS.cjs} +12 -3
  18. package/dist/chunk-HDQBXWSS.cjs.map +1 -0
  19. package/dist/{chunk-R73HWAYA.js → chunk-KKYX5Y5N.js} +3 -3
  20. package/dist/{chunk-R73HWAYA.js.map → chunk-KKYX5Y5N.js.map} +1 -1
  21. package/dist/{chunk-NEKYNDRG.js → chunk-KMHPNIJQ.js} +3 -3
  22. package/dist/{chunk-NEKYNDRG.js.map → chunk-KMHPNIJQ.js.map} +1 -1
  23. package/dist/{chunk-5NQTYPZG.js → chunk-KRG4BXBL.js} +3 -3
  24. package/dist/{chunk-5NQTYPZG.js.map → chunk-KRG4BXBL.js.map} +1 -1
  25. package/dist/{chunk-CQHERJ3J.js → chunk-M4WUWRGI.js} +4 -4
  26. package/dist/chunk-M4WUWRGI.js.map +1 -0
  27. package/dist/{chunk-CEVBQ664.cjs → chunk-MNDXLLWH.cjs} +9 -9
  28. package/dist/{chunk-CEVBQ664.cjs.map → chunk-MNDXLLWH.cjs.map} +1 -1
  29. package/dist/{chunk-567FG76G.cjs → chunk-OXDKVZZ5.cjs} +4 -4
  30. package/dist/{chunk-567FG76G.cjs.map → chunk-OXDKVZZ5.cjs.map} +1 -1
  31. package/dist/{chunk-4E3ANVRR.js → chunk-OZJZVEF2.js} +3 -3
  32. package/dist/{chunk-4E3ANVRR.js.map → chunk-OZJZVEF2.js.map} +1 -1
  33. package/dist/{chunk-4IMEF4J5.cjs → chunk-PU52LECH.cjs} +4 -4
  34. package/dist/{chunk-4IMEF4J5.cjs.map → chunk-PU52LECH.cjs.map} +1 -1
  35. package/dist/{chunk-ZSNEG5J7.js → chunk-SRIUPNYK.js} +12 -3
  36. package/dist/chunk-SRIUPNYK.js.map +1 -0
  37. package/dist/{chunk-ZILKCCXQ.cjs → chunk-VBRVZZ2I.cjs} +4 -4
  38. package/dist/chunk-VBRVZZ2I.cjs.map +1 -0
  39. package/dist/{chunk-QURNDLRE.js → chunk-VE3GPIUQ.js} +19 -9
  40. package/dist/chunk-VE3GPIUQ.js.map +1 -0
  41. package/dist/{chunk-W4QTU3U6.js → chunk-VLAFOLD6.js} +4 -4
  42. package/dist/{chunk-W4QTU3U6.js.map → chunk-VLAFOLD6.js.map} +1 -1
  43. package/dist/{chunk-7NYMASRN.js → chunk-VSQKQNTT.js} +26 -37
  44. package/dist/chunk-VSQKQNTT.js.map +1 -0
  45. package/dist/{chunk-XKLOANYB.cjs → chunk-WRULIQZE.cjs} +19 -9
  46. package/dist/chunk-WRULIQZE.cjs.map +1 -0
  47. package/dist/{chunk-LFWX5GEE.cjs → chunk-YOQY4H6Z.cjs} +8 -8
  48. package/dist/{chunk-LFWX5GEE.cjs.map → chunk-YOQY4H6Z.cjs.map} +1 -1
  49. package/dist/{company_service_sanity-CCbS8ElX.d.cts → company_service_sanity-Br0R7m-A.d.cts} +271 -271
  50. package/dist/{company_service_sanity-B1Xg7ISJ.d.ts → company_service_sanity-DF01qvTz.d.ts} +271 -271
  51. package/dist/components/jobCard/JobLocation.d.cts +1 -1
  52. package/dist/components/jobCard/JobLocation.d.ts +1 -1
  53. package/dist/components/jobPost/JobDescription.cjs +4 -4
  54. package/dist/components/jobPost/JobDescription.js +3 -3
  55. package/dist/components/jobPost/JobPost.cjs +9 -9
  56. package/dist/components/jobPost/JobPost.d.cts +1 -1
  57. package/dist/components/jobPost/JobPost.d.ts +1 -1
  58. package/dist/components/jobPost/JobPost.js +8 -8
  59. package/dist/components/primitives/command.cjs +11 -11
  60. package/dist/components/primitives/command.d.cts +1 -1
  61. package/dist/components/primitives/command.d.ts +1 -1
  62. package/dist/components/primitives/command.js +2 -2
  63. package/dist/components/primitives/dialog.cjs +11 -11
  64. package/dist/components/primitives/dialog.js +1 -1
  65. package/dist/components/ui/Button.cjs +3 -3
  66. package/dist/components/ui/Button.d.cts +1 -1
  67. package/dist/components/ui/Button.d.ts +1 -1
  68. package/dist/components/ui/Button.js +1 -1
  69. package/dist/components/ui/Combobox.cjs +5 -6
  70. package/dist/components/ui/Combobox.d.cts +4 -3
  71. package/dist/components/ui/Combobox.d.ts +4 -3
  72. package/dist/components/ui/Combobox.js +4 -5
  73. package/dist/components/ui/ListItem.cjs +2 -4
  74. package/dist/components/ui/ListItem.js +1 -3
  75. package/dist/components/ui/ModalDialog.cjs +4 -4
  76. package/dist/components/ui/ModalDialog.js +3 -3
  77. package/dist/components/ui/PlacesQueryInput.cjs +4 -4
  78. package/dist/components/ui/PlacesQueryInput.js +3 -3
  79. package/dist/components/ui/ReadMore.cjs +3 -3
  80. package/dist/components/ui/ReadMore.js +2 -2
  81. package/dist/components/ui/buttonShadcn.d.cts +1 -1
  82. package/dist/components/ui/buttonShadcn.d.ts +1 -1
  83. package/dist/{displayText-Ck0qovrl.d.cts → displayText-BDPndCI9.d.cts} +2 -2
  84. package/dist/{displayText-ClDGmi1J.d.ts → displayText-EpnIpZ38.d.ts} +2 -2
  85. package/dist/hooks/useDisplayText.cjs +4 -4
  86. package/dist/hooks/useDisplayText.d.cts +3 -3
  87. package/dist/hooks/useDisplayText.d.ts +3 -3
  88. package/dist/hooks/useDisplayText.js +3 -3
  89. package/dist/index.cjs +27 -27
  90. package/dist/index.d.cts +6 -6
  91. package/dist/index.d.ts +6 -6
  92. package/dist/index.js +14 -14
  93. package/dist/{job_posting_service_latest-DfX8Y4gB.d.cts → job_posting_service_latest-B6Trs6sX.d.cts} +177 -177
  94. package/dist/{job_posting_service_latest-DfX8Y4gB.d.ts → job_posting_service_latest-B6Trs6sX.d.ts} +177 -177
  95. package/dist/{job_posting_service_latest-Bk53vj02.d.cts → job_posting_service_latest-BKz5U2Gp.d.cts} +177 -177
  96. package/dist/{job_posting_service_latest-Bk53vj02.d.ts → job_posting_service_latest-BKz5U2Gp.d.ts} +177 -177
  97. package/dist/{job_posting_service_sanity-BSxLNte3.d.cts → job_posting_service_sanity-BN7XcVxU.d.cts} +357 -357
  98. package/dist/{job_posting_service_sanity-C6aPb8kp.d.ts → job_posting_service_sanity-BNQsNQs2.d.ts} +357 -357
  99. package/dist/lib/locations.d.cts +3 -3
  100. package/dist/lib/locations.d.ts +3 -3
  101. package/dist/lib/mappings.d.cts +3 -3
  102. package/dist/lib/mappings.d.ts +3 -3
  103. package/dist/lib/salaryRange.d.cts +1 -1
  104. package/dist/lib/salaryRange.d.ts +1 -1
  105. package/dist/services/displayText.cjs +3 -3
  106. package/dist/services/displayText.d.cts +3 -3
  107. package/dist/services/displayText.d.ts +3 -3
  108. package/dist/services/displayText.js +2 -2
  109. package/dist/styles/globals.css +15 -3
  110. package/dist/styles/globals.css.map +1 -1
  111. package/dist/types/data/company_service_latest.d.cts +1 -1
  112. package/dist/types/data/company_service_latest.d.ts +1 -1
  113. package/dist/types/data/job_posting_service_latest.d.cts +1 -1
  114. package/dist/types/data/job_posting_service_latest.d.ts +1 -1
  115. package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
  116. package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
  117. package/dist/types/index.d.cts +5 -5
  118. package/dist/types/index.d.ts +5 -5
  119. package/dist/types/latest/company_service_latest.d.cts +1 -1
  120. package/dist/types/latest/company_service_latest.d.ts +1 -1
  121. package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
  122. package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
  123. package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
  124. package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
  125. package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
  126. package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
  127. package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
  128. package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
  129. package/package.json +1 -1
  130. package/dist/chunk-7NYMASRN.js.map +0 -1
  131. package/dist/chunk-CQHERJ3J.js.map +0 -1
  132. package/dist/chunk-ILLYEM3G.cjs.map +0 -1
  133. package/dist/chunk-LV6BHE7Q.cjs.map +0 -1
  134. package/dist/chunk-QURNDLRE.js.map +0 -1
  135. package/dist/chunk-XKLOANYB.cjs.map +0 -1
  136. package/dist/chunk-ZILKCCXQ.cjs.map +0 -1
  137. package/dist/chunk-ZSNEG5J7.js.map +0 -1
  138. package/dist/{company_service_latest-CVgoQ8Mc.d.cts → company_service_latest-C7Moeufo.d.cts} +174 -174
  139. package/dist/{company_service_latest-CVgoQ8Mc.d.ts → company_service_latest-C7Moeufo.d.ts} +174 -174
  140. package/dist/{company_service_latest-oWEnaiRd.d.cts → company_service_latest-CITz7F53.d.cts} +174 -174
  141. package/dist/{company_service_latest-oWEnaiRd.d.ts → company_service_latest-CITz7F53.d.ts} +174 -174
  142. package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.cts → shared_pickle_output_latest--XZhOUyE.d.cts} +11 -11
  143. package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.ts → shared_pickle_output_latest--XZhOUyE.d.ts} +11 -11
  144. package/dist/{shared_pickle_output_latest-BjRRmT8R.d.cts → shared_pickle_output_latest-DKOmTyYk.d.cts} +11 -11
  145. package/dist/{shared_pickle_output_latest-BjRRmT8R.d.ts → shared_pickle_output_latest-DKOmTyYk.d.ts} +11 -11
@@ -40,7 +40,6 @@ var buttonVariants = cva(
40
40
  "items-center",
41
41
  "justify-center",
42
42
  "gap-2",
43
- "rounded-full",
44
43
  "font-bold",
45
44
  "outline-2",
46
45
  "outline-offset-2",
@@ -52,6 +51,7 @@ var buttonVariants = cva(
52
51
  variants: {
53
52
  variant: {
54
53
  neutral: [
54
+ "rounded-full",
55
55
  "bg-black",
56
56
  "text-white",
57
57
  "hover:bg-grey-90",
@@ -61,6 +61,7 @@ var buttonVariants = cva(
61
61
  "disabled:bg-grey-10"
62
62
  ],
63
63
  primary: [
64
+ "rounded-full",
64
65
  "bg-pickle-100",
65
66
  "text-black",
66
67
  "hover:bg-pickle-80",
@@ -70,6 +71,7 @@ var buttonVariants = cva(
70
71
  "disabled:bg-grey-10"
71
72
  ],
72
73
  secondary: [
74
+ "rounded-full",
73
75
  "bg-green-80",
74
76
  "text-white",
75
77
  "hover:bg-green-90",
@@ -79,6 +81,7 @@ var buttonVariants = cva(
79
81
  "disabled:bg-grey-10"
80
82
  ],
81
83
  transparent: [
84
+ "rounded-full",
82
85
  "text-white",
83
86
  "hover:bg-green-80",
84
87
  "active:bg-green-100",
@@ -86,6 +89,7 @@ var buttonVariants = cva(
86
89
  "disabled:text-grey-40"
87
90
  ],
88
91
  link: [
92
+ "rounded-none",
89
93
  "leading-tight",
90
94
  "text-black",
91
95
  "underline",
@@ -95,6 +99,7 @@ var buttonVariants = cva(
95
99
  "active:text-purple-80"
96
100
  ],
97
101
  "outline-primary": [
102
+ "rounded-full",
98
103
  "bg-transparent",
99
104
  "border-2",
100
105
  "border-pickle-100",
@@ -110,6 +115,7 @@ var buttonVariants = cva(
110
115
  "disabled:hover:text-grey-40"
111
116
  ],
112
117
  "outline-secondary": [
118
+ "rounded-full",
113
119
  "bg-transparent",
114
120
  "border-2",
115
121
  "border-green-80",
@@ -125,6 +131,7 @@ var buttonVariants = cva(
125
131
  "disabled:hover:text-grey-40"
126
132
  ],
127
133
  "icon-outline": [
134
+ "rounded-full",
128
135
  "bg-transparent",
129
136
  "text-black",
130
137
  "hover:bg-grey-5",
@@ -135,6 +142,7 @@ var buttonVariants = cva(
135
142
  "disabled:hover:text-grey-40"
136
143
  ],
137
144
  "icon-primary": [
145
+ "rounded-full",
138
146
  "bg-pickle-100",
139
147
  "text-black",
140
148
  "hover:bg-pickle-80",
@@ -144,6 +152,7 @@ var buttonVariants = cva(
144
152
  "disabled:bg-grey-10"
145
153
  ],
146
154
  "icon-secondary": [
155
+ "rounded-full",
147
156
  "bg-green-80",
148
157
  "text-white",
149
158
  "hover:bg-green-90",
@@ -259,5 +268,5 @@ var buttonVariants = cva(
259
268
  );
260
269
 
261
270
  export { Button, buttonVariants };
262
- //# sourceMappingURL=chunk-ZSNEG5J7.js.map
263
- //# sourceMappingURL=chunk-ZSNEG5J7.js.map
271
+ //# sourceMappingURL=chunk-SRIUPNYK.js.map
272
+ //# sourceMappingURL=chunk-SRIUPNYK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Button.tsx"],"names":[],"mappings":"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","file":"chunk-SRIUPNYK.js","sourcesContent":["'use client'\n\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'cva'\nimport { Loader2 } from 'lucide-react'\nimport React, { forwardRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Props for the Button component.\n * @interface ButtonProps\n * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}\n * @extends {VariantProps<typeof buttonVariants>}\n */\ninterface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\n/**\n * A versatile button component that supports multiple variants and sizes.\n *\n * @component\n * @example\n * ```tsx\n * // Default button\n * <Button>Click me</Button>\n *\n * // Primary variant with large size\n * <Button variant=\"primary\" size=\"lg\">Large Button</Button>\n *\n * // As a link\n * <Button asChild>\n * <a href=\"/somewhere\">Go somewhere</a>\n * </Button>\n * ```\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n type = 'button',\n children,\n isLoading = false,\n ...props\n },\n ref\n ) => {\n const Component = asChild ? Slot : 'button'\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className, isLoading, asChild }))}\n type={type}\n ref={ref}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n {isLoading && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-white/30 backdrop-blur-[0.5px]\">\n <Loader2 className=\"h-5 w-5 animate-spin text-gray-800\" />\n </div>\n )}\n </>\n )}\n </Component>\n )\n }\n)\nButton.displayName = 'Button'\n\n/**\n * Variant definitions for the Button component using class-variance-authority.\n * Provides consistent styling across different button variations.\n */\nexport const buttonVariants = cva(\n [\n 'relative',\n 'flex',\n 'items-center',\n 'justify-center',\n 'gap-2',\n 'font-bold',\n 'outline-2',\n 'outline-offset-2',\n 'outline-dashed',\n 'outline-transparent',\n 'overflow-hidden',\n ],\n {\n variants: {\n variant: {\n neutral: [\n 'rounded-full',\n 'bg-black',\n 'text-white',\n 'hover:bg-grey-90',\n 'active:bg-grey-80',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n primary: [\n 'rounded-full',\n 'bg-pickle-100',\n 'text-black',\n 'hover:bg-pickle-80',\n 'active:bg-pickle-60',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n secondary: [\n 'rounded-full',\n 'bg-green-80',\n 'text-white',\n 'hover:bg-green-90',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n transparent: [\n 'rounded-full',\n 'text-white',\n 'hover:bg-green-80',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n ],\n link: [\n 'rounded-none',\n 'leading-tight',\n 'text-black',\n 'underline',\n 'hover:text-purple-100',\n 'focus:text-black',\n 'focus:outline-purple-100',\n 'active:text-purple-80',\n ],\n 'outline-primary': [\n 'rounded-full',\n 'bg-transparent',\n 'border-2',\n 'border-pickle-100',\n 'text-pickle-100',\n 'hover:bg-pickle-100',\n 'hover:text-black',\n 'active:bg-pickle-80',\n 'active:text-black',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:border-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'outline-secondary': [\n 'rounded-full',\n 'bg-transparent',\n 'border-2',\n 'border-green-80',\n 'text-green-80',\n 'hover:bg-green-80',\n 'hover:text-white',\n 'active:bg-green-90',\n 'active:text-white',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:border-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'icon-outline': [\n 'rounded-full',\n 'bg-transparent',\n 'text-black',\n 'hover:bg-grey-5',\n 'active:bg-grey-10',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'icon-primary': [\n 'rounded-full',\n 'bg-pickle-100',\n 'text-black',\n 'hover:bg-pickle-80',\n 'active:bg-pickle-60',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n 'icon-secondary': [\n 'rounded-full',\n 'bg-green-80',\n 'text-white',\n 'hover:bg-green-90',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n },\n size: {\n 'extra-small': ['h-8', 'text-xs', 'px-3', 'py-1'],\n small: ['h-10', 'text-sm', 'px-4', 'py-2'],\n medium: ['h-12', 'text-base', 'px-6', 'py-3'],\n large: ['h-14', 'text-lg', 'px-8', 'py-4'],\n },\n isLoading: {\n true: ['cursor-not-allowed', 'pointer-events-none'],\n },\n asChild: {\n true: [],\n false: ['cursor-pointer', 'pointer-events-auto'],\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'medium',\n isLoading: false,\n asChild: false,\n },\n compoundVariants: [\n {\n variant: 'link',\n size: 'extra-small',\n class: ['h-3', 'text-xs', 'p-0'],\n },\n {\n variant: 'link',\n size: 'small',\n class: ['h-3', 'text-xs', 'p-0'],\n },\n {\n variant: 'link',\n size: 'medium',\n class: ['h-4', 'text-sm', 'p-0'],\n },\n {\n variant: 'link',\n size: 'large',\n class: ['h-6', 'text-base', 'p-0'],\n },\n {\n variant: 'icon-outline',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-outline',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-outline',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-outline',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n {\n variant: 'icon-primary',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-primary',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-primary',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-primary',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n {\n variant: 'icon-secondary',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-secondary',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-secondary',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-secondary',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n ],\n }\n)\n"]}
@@ -43,14 +43,14 @@ var DialogOverlay = React__namespace.forwardRef(({ className, ...props }, ref) =
43
43
  ));
44
44
  DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
45
45
  var DialogContent = React__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
46
- /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
46
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, { className: "z-50" }),
47
47
  /* @__PURE__ */ jsxRuntime.jsx(
48
48
  DialogPrimitive__namespace.Content,
49
49
  {
50
50
  ref,
51
51
  className: chunkMGWZXPMF_cjs.cn(
52
52
  // Position centered with sensible defaults (shadcn pattern)
53
- "fixed left-1/2 top-1/2 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200",
53
+ "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200",
54
54
  // Animations
55
55
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
56
56
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -103,5 +103,5 @@ exports.DialogOverlay = DialogOverlay;
103
103
  exports.DialogPortal = DialogPortal;
104
104
  exports.DialogTitle = DialogTitle;
105
105
  exports.DialogTrigger = DialogTrigger;
106
- //# sourceMappingURL=chunk-ZILKCCXQ.cjs.map
107
- //# sourceMappingURL=chunk-ZILKCCXQ.cjs.map
106
+ //# sourceMappingURL=chunk-VBRVZZ2I.cjs.map
107
+ //# sourceMappingURL=chunk-VBRVZZ2I.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/dialog.tsx"],"names":["DialogPrimitive","React","jsx","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAM,MAAyB,GAAAA,0BAAA,CAAA;AAE/B,IAAM,aAAgC,GAAAA,0BAAA,CAAA;AAEtC,IAAM,YAA+B,GAAAA,0BAAA,CAAA;AAErC,IAAM,WAA8B,GAAAA,0BAAA,CAAA;AAE9B,IAAA,aAAA,GAAsBC,4BAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAAiBF,0BAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAAG,oBAAA;AAAA,MACT,mJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,cAA8BH,0BAAQ,CAAA,OAAA,CAAA,WAAA;AAE9C,IAAA,aAAA,GAAsBC,gBAG1B,CAAA,UAAA,CAAA,CAAC,EAAE,SAAA,EAAW,QAAU,EAAA,GAAG,KAAM,EAAA,EAAG,GACpC,qBAAAG,eAAA,CAAC,YACC,EAAA,EAAA,QAAA,EAAA;AAAA,kBAACF,cAAA,CAAA,aAAA,EAAA,EAAc,WAAU,MAAO,EAAA,CAAA;AAAA,kBAChCA,cAAA;AAAA,IAAiBF,0BAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAAG,oBAAA;AAAA;AAAA,QAET,iIAAA;AAAA;AAAA,QAEA,yHAAA;AAAA,QACA,8DAAA;AAAA,QACA,yKAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8BH,0BAAQ,CAAA,OAAA,CAAA,WAAA;AAEpD,IAAM,YAAe,GAAA,CAAC,EAAE,SAAA,EAAW,GAAG,KAAM,EAAA,qBACzCE,cAAA,CAAA,KAAA,EAAA,EAAI,WAAWC,oBAAG,CAAA,oDAAA,EAAsD,SAAS,CAAA,EAAI,GAAG,KAAO,EAAA;AAElG,YAAA,CAAa,WAAc,GAAA,cAAA;AAE3B,IAAM,eAAe,CAAC,EAAE,SAAW,EAAA,GAAG,OACpC,qBAAAD,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAWC,oBAAG,CAAA,+DAAA,EAAiE,SAAS,CAAA;AAAA,IACvF,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAc,GAAA,cAAA;AAErB,IAAA,WAAA,GAAoBF,4BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAAiBF,0BAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWG,oBAAG,CAAA,mDAAA,EAAqD,SAAS,CAAA;AAAA,IAC3E,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8BH,0BAAM,CAAA,KAAA,CAAA,WAAA;AAE1C,IAAA,iBAAA,GAA0BC,4BAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAAiBF,0BAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWG,oBAAG,CAAA,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,cAA8BH,0BAAY,CAAA,WAAA,CAAA,WAAA","file":"chunk-VBRVZZ2I.cjs","sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className=\"z-50\" />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n // Position centered with sensible defaults (shadcn pattern)\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200',\n // Animations\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]',\n 'sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { Checkbox } from './chunk-4VYXUFJA.js';
2
1
  import { cn } from './chunk-2FGZQI42.js';
3
2
  import { CheckIcon, icons } from 'lucide-react';
4
3
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -25,22 +24,33 @@ function ListItem({
25
24
  "li",
26
25
  {
27
26
  className: cn(
28
- "group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",
27
+ "group relative flex w-72 cursor-pointer flex-row items-center gap-2 overflow-hidden text-left text-sm",
29
28
  className
30
29
  ),
31
30
  ...props,
32
31
  "data-state": isSelected ? "checked" : "unchecked",
33
32
  children: [
34
33
  optionIcon && /* @__PURE__ */ jsx("span", { className: "mr-2", children: optionIcon }),
35
- hasCheckbox && /* @__PURE__ */ jsx(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
36
- /* @__PURE__ */ jsxs("div", { children: [
37
- /* @__PURE__ */ jsx("p", { children: title }),
38
- /* @__PURE__ */ jsx("p", { className: "text-xs text-grey-80", children: description })
34
+ hasCheckbox && /* @__PURE__ */ jsx(
35
+ "div",
36
+ {
37
+ role: "presentation",
38
+ className: cn(
39
+ "flex h-4 w-4 shrink-0 items-center justify-center rounded border border-grey-60",
40
+ isSelected && "border-green-100 bg-green-100"
41
+ ),
42
+ onClick: (e) => e.preventDefault(),
43
+ children: isSelected && /* @__PURE__ */ jsx(CheckIcon, { className: "h-3 w-3 text-white", size: 12 })
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 overflow-hidden", children: [
47
+ /* @__PURE__ */ jsx("p", { className: "truncate", children: title }),
48
+ /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-grey-80", children: description })
39
49
  ] }),
40
50
  /* @__PURE__ */ jsx(
41
51
  CheckIcon,
42
52
  {
43
- className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
53
+ className: "hidden w-6 shrink-0 text-green-100 group-data-[state=checked]:block",
44
54
  size: 16
45
55
  }
46
56
  )
@@ -51,5 +61,5 @@ function ListItem({
51
61
  var ListItem_default = ListItem;
52
62
 
53
63
  export { ListItem_default };
54
- //# sourceMappingURL=chunk-QURNDLRE.js.map
55
- //# sourceMappingURL=chunk-QURNDLRE.js.map
64
+ //# sourceMappingURL=chunk-VE3GPIUQ.js.map
65
+ //# sourceMappingURL=chunk-VE3GPIUQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/ListItem.tsx"],"names":["icon"],"mappings":";;;;AAiBA,SAAS,QAAS,CAAA;AAAA,EAChB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAkB,EAAA;AAChB,EAAM,MAAA,cAAA,GAAiB,CAACA,KAA4B,KAAA;AAClD,IAAA,IAAIA,SAAQ,KAAO,EAAA;AACjB,MAAM,MAAA,aAAA,GAAgB,MAAMA,KAAe,CAAA;AAC3C,MAAO,uBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA;AAElC,IAAO,OAAA,IAAA;AAAA,GACT;AAEA,EAAA,MAAM,UAAa,GAAA,IAAA,GAAO,cAAe,CAAA,IAAI,CAAI,GAAA,MAAA;AAEjD,EACE,uBAAA,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,EAAA;AAAA,QACT,uGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,YAAA,EAAY,aAAa,SAAY,GAAA,WAAA;AAAA,MAEpC,QAAA,EAAA;AAAA,QAAA,UAAA,oBAAe,GAAA,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,MAAA,EAAQ,QAAW,EAAA,UAAA,EAAA,CAAA;AAAA,QACjD,WACC,oBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,cAAA;AAAA,YACL,SAAW,EAAA,EAAA;AAAA,cACT,iFAAA;AAAA,cACA,UAAc,IAAA;AAAA,aAChB;AAAA,YACA,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,cAAe,EAAA;AAAA,YAEhC,wCAAe,GAAA,CAAA,SAAA,EAAA,EAAU,SAAU,EAAA,oBAAA,EAAqB,MAAM,EAAI,EAAA;AAAA;AAAA,SACrE;AAAA,wBAEF,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,gCACb,EAAA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,GAAA,EAAA,EAAE,SAAU,EAAA,UAAA,EAAY,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,0BAC9B,GAAA,CAAA,GAAA,EAAA,EAAE,SAAU,EAAA,+BAAA,EAAiC,QAAY,EAAA,WAAA,EAAA;AAAA,SAC5D,EAAA,CAAA;AAAA,wBAEA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,qEAAA;AAAA,YACV,IAAM,EAAA;AAAA;AAAA;AACR;AAAA;AAAA,GACF;AAEJ;AAEA,IAAO,gBAAQ,GAAA","file":"chunk-VE3GPIUQ.js","sourcesContent":["import { CheckIcon } from 'lucide-react'\nimport { icons } from 'lucide-react'\nimport { type ComponentPropsWithoutRef, type ReactNode } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center gap-2 overflow-hidden text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <div\n role=\"presentation\"\n className={cn(\n 'flex h-4 w-4 shrink-0 items-center justify-center rounded border border-grey-60',\n isSelected && 'border-green-100 bg-green-100'\n )}\n onClick={(e) => e.preventDefault()}\n >\n {isSelected && <CheckIcon className=\"h-3 w-3 text-white\" size={12} />}\n </div>\n )}\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n <p className=\"truncate\">{title}</p>\n <p className=\"truncate text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"hidden w-6 shrink-0 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n"]}
@@ -1,5 +1,5 @@
1
- import { Button } from './chunk-ZSNEG5J7.js';
2
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogClose, DialogFooter } from './chunk-CQHERJ3J.js';
1
+ import { Button } from './chunk-SRIUPNYK.js';
2
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogClose, DialogFooter } from './chunk-M4WUWRGI.js';
3
3
  import { cn } from './chunk-2FGZQI42.js';
4
4
  import { X } from 'lucide-react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -106,5 +106,5 @@ function ModalDialog({
106
106
  }
107
107
 
108
108
  export { ModalDialog };
109
- //# sourceMappingURL=chunk-W4QTU3U6.js.map
110
- //# sourceMappingURL=chunk-W4QTU3U6.js.map
109
+ //# sourceMappingURL=chunk-VLAFOLD6.js.map
110
+ //# sourceMappingURL=chunk-VLAFOLD6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/ModalDialog.tsx"],"names":[],"mappings":";;;;;;AA6DO,SAAS,WAAY,CAAA;AAAA,EAC1B,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAe,GAAA,KAAA;AAAA,EACf,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAM,MAAA,gBAAA,GAAmB,CAAC,IAAkB,KAAA;AAE1C,IAAI,IAAA,CAAC,QAAQ,YAAc,EAAA;AACzB,MAAA;AAAA;AAIF,IAAA,IAAI,YAAc,EAAA;AAChB,MAAA,YAAA,CAAa,IAAI,CAAA;AACjB,MAAA;AAAA;AAIF,IAAI,IAAA,CAAC,QAAQ,OAAS,EAAA;AACpB,MAAQ,OAAA,EAAA;AAAA;AACV,GACF;AAEA,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA,EAAO,IAAM,EAAA,MAAA,EAAQ,YAAc,EAAA,gBAAA,EAClC,QAAC,kBAAA,IAAA,CAAA,aAAA,EAAA,EAAc,SAAW,EAAA,EAAA,CAAG,eAAiB,EAAA,UAAA,EAAY,OAAO,CAC/D,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA;AAAA,UACT,oFAAA;AAAA,UACA,UAAY,EAAA;AAAA,SACd;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAC,IAAA,CAAA,KAAA,EAAA,EAAI,WAAU,qBACb,EAAA,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,WAAY,EAAA,EAAA,SAAA,EAAW,EAAG,CAAA,UAAA,EAAY,KAAK,CACzC,EAAA,QAAA,EAAA;AAAA,cACC,SAAA,oBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,kCACZ,EAAA,QAAA,EAAA;AAAA,gBAAA,SAAA;AAAA,gCACD,GAAA,CAAC,UAAM,QAAM,EAAA,KAAA,EAAA;AAAA,eACf,EAAA,CAAA;AAAA,cAED,CAAC,SAAa,IAAA;AAAA,aACjB,EAAA,CAAA;AAAA,YACC,WACC,mBAAA,GAAA,CAAC,iBAAkB,EAAA,EAAA,SAAA,EAAW,GAAG,UAAY,EAAA,WAAW,CACrD,EAAA,QAAA,EAAA,WAAA,EACH,CAEA,mBAAA,GAAA,CAAC,iBAAkB,EAAA,EAAA,SAAA,EAAU,WAAU,QAAuB,EAAA,yBAAA,EAAA;AAAA,WAElE,EAAA,CAAA;AAAA,0BACC,GAAA,CAAA,WAAA,EAAA,EAAY,QAAU,EAAA,YAAA,EAAc,SAAU,EAAA,KAAA,EAAM,YAAW,EAAA,OAAA,EAC9D,QAAC,kBAAA,GAAA,CAAA,CAAA,EAAA,EAAE,SAAU,EAAA,SAAA,EAAU,CACzB,EAAA;AAAA;AAAA;AAAA,KACF;AAAA,oBAEA,GAAA,CAAC,SAAI,SAAW,EAAA,EAAA,CAAG,QAAQ,UAAY,EAAA,IAAI,GAAI,QAAS,EAAA,CAAA;AAAA,IAEvD,WAAW,MAAO,CAAA,OAAA,IAAW,MAAO,CAAA,SAAA,IAAa,OAAO,QACvD,CAAA,oBAAA,IAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA;AAAA,UACT,2DAAA;AAAA,UACA,UAAY,EAAA;AAAA,SACd;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,MAAA,CAAO,QACN,oBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,QAAA;AAAA,cACL,IAAA,EAAM,MAAO,CAAA,QAAA,CAAS,IAAQ,IAAA,OAAA;AAAA,cAC9B,OAAA,EAAS,MAAO,CAAA,QAAA,CAAS,OAAW,IAAA,MAAA;AAAA,cACpC,OAAA,EAAS,OAAO,QAAS,CAAA,OAAA;AAAA,cACzB,QAAA,EAAU,MAAO,CAAA,QAAA,CAAS,QAAY,IAAA,YAAA;AAAA,cACtC,SAAA,EAAW,OAAO,QAAS,CAAA,SAAA;AAAA,cAC3B,SAAW,EAAA,EAAA,CAAG,QAAU,EAAA,MAAA,CAAO,SAAS,SAAS,CAAA;AAAA,cAEhD,iBAAO,QAAS,CAAA;AAAA;AAAA,WACnB;AAAA,UAED,OAAO,SACN,oBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,QAAA;AAAA,cACL,IAAA,EAAM,MAAO,CAAA,SAAA,CAAU,IAAQ,IAAA,OAAA;AAAA,cAC/B,OAAA,EAAS,MAAO,CAAA,SAAA,CAAU,OAAW,IAAA,SAAA;AAAA,cACrC,OAAA,EAAS,OAAO,SAAU,CAAA,OAAA;AAAA,cAC1B,QAAA,EAAU,MAAO,CAAA,SAAA,CAAU,QAAY,IAAA,YAAA;AAAA,cACvC,SAAA,EAAW,OAAO,SAAU,CAAA,SAAA;AAAA,cAC5B,SAAW,EAAA,EAAA,CAAG,QAAU,EAAA,MAAA,CAAO,UAAU,SAAS,CAAA;AAAA,cAEjD,iBAAO,SAAU,CAAA;AAAA;AAAA,WACpB;AAAA,UAED,OAAO,OACN,oBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,QAAA;AAAA,cACL,IAAA,EAAM,MAAO,CAAA,OAAA,CAAQ,IAAQ,IAAA,OAAA;AAAA,cAC7B,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,OAAW,IAAA,SAAA;AAAA,cACnC,OAAA,EAAS,OAAO,OAAQ,CAAA,OAAA;AAAA,cACxB,QAAA,EAAU,MAAO,CAAA,OAAA,CAAQ,QAAY,IAAA,YAAA;AAAA,cACrC,SAAA,EAAW,OAAO,OAAQ,CAAA,SAAA;AAAA,cAC1B,SAAW,EAAA,EAAA,CAAG,QAAU,EAAA,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,cAE/C,iBAAO,OAAQ,CAAA;AAAA;AAAA;AAClB;AAAA;AAAA;AAEJ,GAAA,EAEJ,CACF,EAAA,CAAA;AAEJ","file":"chunk-W4QTU3U6.js","sourcesContent":["'use client'\n\nimport { X } from 'lucide-react'\nimport { type ReactNode } from 'react'\n\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/primitives/dialog'\nimport { Button } from '@/components/ui/Button'\nimport { cn } from '@/lib/utils'\n\ntype FooterButton = {\n text: string\n onClick: () => void\n variant?: 'primary' | 'secondary' | 'neutral' | 'link'\n size?: 'extra-small' | 'small' | 'medium' | 'large'\n disabled?: boolean\n isLoading?: boolean\n className?: string\n}\n\ntype ModalDialogProps = Readonly<{\n isOpen: boolean\n onOpenChange?: (open: boolean) => void\n onClose?: () => void\n isSubmitting?: boolean\n title: string\n titleIcon?: ReactNode\n description?: ReactNode\n children: ReactNode\n footer?: {\n primary?: FooterButton\n secondary?: FooterButton\n tertiary?: FooterButton\n }\n classNames?: {\n content?: string\n header?: string\n title?: string\n description?: string\n footer?: string\n body?: string\n }\n}>\n\n/**\n * Reusable modal dialog component using Radix UI Dialog\n * Features:\n * - Escape key handling (built into Dialog)\n * - Backdrop click to close (built into Dialog)\n * - Close button with X icon\n * - Accessible with ARIA attributes\n * - Customizable container classNames\n * - Prevents closing when isSubmitting is true\n */\nexport function ModalDialog({\n isOpen,\n onOpenChange,\n onClose,\n isSubmitting = false,\n title,\n titleIcon,\n description,\n children,\n footer,\n classNames,\n}: ModalDialogProps) {\n const handleOpenChange = (open: boolean) => {\n // Prevent closing when submitting\n if (!open && isSubmitting) {\n return\n }\n\n // Call onOpenChange if provided (for boolean-based API)\n if (onOpenChange) {\n onOpenChange(open)\n return\n }\n\n // Call onClose if provided (for callback-based API)\n if (!open && onClose) {\n onClose()\n }\n }\n\n return (\n <Dialog open={isOpen} onOpenChange={handleOpenChange}>\n <DialogContent className={cn('flex flex-col', classNames?.content)}>\n <DialogHeader\n className={cn(\n 'flex flex-row items-center justify-between gap-2 border-b border-grey-10 px-6 py-4',\n classNames?.header\n )}\n >\n <div className=\"flex flex-col gap-1\">\n <DialogTitle className={cn(classNames?.title)}>\n {titleIcon && (\n <div className=\"flex flex-row items-center gap-2\">\n {titleIcon}\n <span>{title}</span>\n </div>\n )}\n {!titleIcon && title}\n </DialogTitle>\n {description ? (\n <DialogDescription className={cn(classNames?.description)}>\n {description}\n </DialogDescription>\n ) : (\n <DialogDescription className=\"sr-only\">No description provided</DialogDescription>\n )}\n </div>\n <DialogClose disabled={isSubmitting} className=\"m-0\" aria-label=\"Close\">\n <X className=\"h-5 w-5\" />\n </DialogClose>\n </DialogHeader>\n\n <div className={cn('px-6', classNames?.body)}>{children}</div>\n\n {footer && (footer.primary || footer.secondary || footer.tertiary) && (\n <DialogFooter\n className={cn(\n 'flex items-center gap-2 border-t border-grey-10 px-6 py-4',\n classNames?.footer\n )}\n >\n {footer.tertiary && (\n <Button\n type=\"button\"\n size={footer.tertiary.size || 'small'}\n variant={footer.tertiary.variant || 'link'}\n onClick={footer.tertiary.onClick}\n disabled={footer.tertiary.disabled || isSubmitting}\n isLoading={footer.tertiary.isLoading}\n className={cn('w-auto', footer.tertiary.className)}\n >\n {footer.tertiary.text}\n </Button>\n )}\n {footer.secondary && (\n <Button\n type=\"button\"\n size={footer.secondary.size || 'small'}\n variant={footer.secondary.variant || 'neutral'}\n onClick={footer.secondary.onClick}\n disabled={footer.secondary.disabled || isSubmitting}\n isLoading={footer.secondary.isLoading}\n className={cn('w-auto', footer.secondary.className)}\n >\n {footer.secondary.text}\n </Button>\n )}\n {footer.primary && (\n <Button\n type=\"button\"\n size={footer.primary.size || 'small'}\n variant={footer.primary.variant || 'primary'}\n onClick={footer.primary.onClick}\n disabled={footer.primary.disabled || isSubmitting}\n isLoading={footer.primary.isLoading}\n className={cn('w-auto', footer.primary.className)}\n >\n {footer.primary.text}\n </Button>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/ui/ModalDialog.tsx"],"names":[],"mappings":"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","file":"chunk-VLAFOLD6.js","sourcesContent":["'use client'\n\nimport { X } from 'lucide-react'\nimport { type ReactNode } from 'react'\n\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/primitives/dialog'\nimport { Button } from '@/components/ui/Button'\nimport { cn } from '@/lib/utils'\n\ntype FooterButton = {\n text: string\n onClick: () => void\n variant?: 'primary' | 'secondary' | 'neutral' | 'link'\n size?: 'extra-small' | 'small' | 'medium' | 'large'\n disabled?: boolean\n isLoading?: boolean\n className?: string\n}\n\ntype ModalDialogProps = Readonly<{\n isOpen: boolean\n onOpenChange?: (open: boolean) => void\n onClose?: () => void\n isSubmitting?: boolean\n title: string\n titleIcon?: ReactNode\n description?: ReactNode\n children: ReactNode\n footer?: {\n primary?: FooterButton\n secondary?: FooterButton\n tertiary?: FooterButton\n }\n classNames?: {\n content?: string\n header?: string\n title?: string\n description?: string\n footer?: string\n body?: string\n }\n}>\n\n/**\n * Reusable modal dialog component using Radix UI Dialog\n * Features:\n * - Escape key handling (built into Dialog)\n * - Backdrop click to close (built into Dialog)\n * - Close button with X icon\n * - Accessible with ARIA attributes\n * - Customizable container classNames\n * - Prevents closing when isSubmitting is true\n */\nexport function ModalDialog({\n isOpen,\n onOpenChange,\n onClose,\n isSubmitting = false,\n title,\n titleIcon,\n description,\n children,\n footer,\n classNames,\n}: ModalDialogProps) {\n const handleOpenChange = (open: boolean) => {\n // Prevent closing when submitting\n if (!open && isSubmitting) {\n return\n }\n\n // Call onOpenChange if provided (for boolean-based API)\n if (onOpenChange) {\n onOpenChange(open)\n return\n }\n\n // Call onClose if provided (for callback-based API)\n if (!open && onClose) {\n onClose()\n }\n }\n\n return (\n <Dialog open={isOpen} onOpenChange={handleOpenChange}>\n <DialogContent className={cn('flex flex-col', classNames?.content)}>\n <DialogHeader\n className={cn(\n 'flex flex-row items-center justify-between gap-2 border-b border-grey-10 px-6 py-4',\n classNames?.header\n )}\n >\n <div className=\"flex flex-col gap-1\">\n <DialogTitle className={cn(classNames?.title)}>\n {titleIcon && (\n <div className=\"flex flex-row items-center gap-2\">\n {titleIcon}\n <span>{title}</span>\n </div>\n )}\n {!titleIcon && title}\n </DialogTitle>\n {description ? (\n <DialogDescription className={cn(classNames?.description)}>\n {description}\n </DialogDescription>\n ) : (\n <DialogDescription className=\"sr-only\">No description provided</DialogDescription>\n )}\n </div>\n <DialogClose disabled={isSubmitting} className=\"m-0\" aria-label=\"Close\">\n <X className=\"h-5 w-5\" />\n </DialogClose>\n </DialogHeader>\n\n <div className={cn('px-6', classNames?.body)}>{children}</div>\n\n {footer && (footer.primary || footer.secondary || footer.tertiary) && (\n <DialogFooter\n className={cn(\n 'flex items-center gap-2 border-t border-grey-10 px-6 py-4',\n classNames?.footer\n )}\n >\n {footer.tertiary && (\n <Button\n type=\"button\"\n size={footer.tertiary.size || 'small'}\n variant={footer.tertiary.variant || 'link'}\n onClick={footer.tertiary.onClick}\n disabled={footer.tertiary.disabled || isSubmitting}\n isLoading={footer.tertiary.isLoading}\n className={cn('w-auto', footer.tertiary.className)}\n >\n {footer.tertiary.text}\n </Button>\n )}\n {footer.secondary && (\n <Button\n type=\"button\"\n size={footer.secondary.size || 'small'}\n variant={footer.secondary.variant || 'neutral'}\n onClick={footer.secondary.onClick}\n disabled={footer.secondary.disabled || isSubmitting}\n isLoading={footer.secondary.isLoading}\n className={cn('w-auto', footer.secondary.className)}\n >\n {footer.secondary.text}\n </Button>\n )}\n {footer.primary && (\n <Button\n type=\"button\"\n size={footer.primary.size || 'small'}\n variant={footer.primary.variant || 'primary'}\n onClick={footer.primary.onClick}\n disabled={footer.primary.disabled || isSubmitting}\n isLoading={footer.primary.isLoading}\n className={cn('w-auto', footer.primary.className)}\n >\n {footer.primary.text}\n </Button>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n )\n}\n"]}
@@ -1,14 +1,14 @@
1
- import { ListItem_default } from './chunk-QURNDLRE.js';
1
+ import { ListItem_default } from './chunk-VE3GPIUQ.js';
2
2
  import { Label_default } from './chunk-CAGLLWPR.js';
3
3
  import { ErrorMessage_default } from './chunk-CWTO3NXW.js';
4
4
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-VZZZQZBC.js';
5
5
  import { Separator } from './chunk-FNCPK4RH.js';
6
6
  import { Badge } from './chunk-TVYLTYUK.js';
7
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-R73HWAYA.js';
7
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-KKYX5Y5N.js';
8
8
  import { cn } from './chunk-2FGZQI42.js';
9
9
  import { cva } from 'cva';
10
- import { icons, ChevronDownIcon, CircleX } from 'lucide-react';
11
- import { forwardRef, useState, useRef, useEffect } from 'react';
10
+ import { ChevronDownIcon, CircleX } from 'lucide-react';
11
+ import { forwardRef, useState, useRef, useMemo } from 'react';
12
12
  import { jsxs, jsx } from 'react/jsx-runtime';
13
13
 
14
14
  var Combobox = forwardRef((props, ref) => {
@@ -32,52 +32,41 @@ var Combobox = forwardRef((props, ref) => {
32
32
  onChange: handleChange,
33
33
  children: footer
34
34
  } = props;
35
- const [selected, setSelected] = useState([]);
36
35
  const [open, setOpen] = useState(false);
37
36
  const containerRef = useRef(null);
38
- const isUserUpdate = useRef(false);
39
- const IconComponent = icon && icons[icon];
37
+ const IconComponent = icon;
40
38
  const hideSearchBox = options?.length <= 5;
41
39
  const isDefault = variant === "default";
42
40
  const isChip = variant === "chip";
41
+ const optionsByValue = useMemo(
42
+ () => new Map(options.map((o) => [o.value, o])),
43
+ [options]
44
+ );
45
+ const selected = useMemo(() => {
46
+ const valueArray = multiselect ? value ?? [] : value ? [value] : [];
47
+ return valueArray.map((v) => optionsByValue.get(v)).filter((v) => v !== void 0);
48
+ }, [value, multiselect, optionsByValue]);
43
49
  const isEmpty = selected.length === 0;
44
50
  const showChevron = isDefault ? isEmpty : true;
45
51
  const close = () => setOpen(false);
46
- useEffect(() => {
47
- if (!isUserUpdate.current) {
48
- const valueArray = multiselect ? value ?? [] : value ? [value] : [];
49
- setSelected(
50
- valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== void 0)
51
- );
52
- }
53
- }, [value, options, multiselect]);
54
- useEffect(() => {
55
- if (isUserUpdate.current) {
56
- if (multiselect) {
57
- handleChange?.(selected.map((o) => o.value));
58
- } else {
59
- handleChange?.(selected[0]?.value ?? "");
60
- }
61
- isUserUpdate.current = false;
62
- }
63
- }, [selected, multiselect, handleChange]);
64
- const updateMultiSelect = (prev, option) => {
65
- return prev.some((o) => o.value === option.value) ? prev.filter((v) => v !== option) : [...prev, option];
66
- };
67
- const handleSelect = (value2) => {
68
- const option = options.find((o) => o.value === value2);
52
+ const handleSelect = (nextValue) => {
53
+ const option = optionsByValue.get(nextValue);
69
54
  if (!option || option.disabled) return;
70
- isUserUpdate.current = true;
71
55
  if (multiselect) {
72
- setSelected((prev) => updateMultiSelect(prev, option));
56
+ const current = Array.isArray(value) ? value : [];
57
+ const next = current.includes(option.value) ? current.filter((v) => v !== option.value) : [...current, option.value];
58
+ handleChange?.(next);
73
59
  } else {
74
- setSelected([option]);
60
+ handleChange?.(option.value);
75
61
  close();
76
62
  }
77
63
  };
78
64
  const handleClear = () => {
79
- isUserUpdate.current = true;
80
- setSelected([]);
65
+ if (multiselect) {
66
+ handleChange?.([]);
67
+ } else {
68
+ handleChange?.("");
69
+ }
81
70
  };
82
71
  const handleDisplayValue = () => {
83
72
  const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(", ") : placeholder;
@@ -221,5 +210,5 @@ var triggerVariants = cva(
221
210
  );
222
211
 
223
212
  export { Combobox };
224
- //# sourceMappingURL=chunk-7NYMASRN.js.map
225
- //# sourceMappingURL=chunk-7NYMASRN.js.map
213
+ //# sourceMappingURL=chunk-VSQKQNTT.js.map
214
+ //# sourceMappingURL=chunk-VSQKQNTT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Combobox.tsx"],"names":["id"],"mappings":"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","file":"chunk-VSQKQNTT.js","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { ChevronDownIcon, CircleX } from 'lucide-react'\nimport {\n type ComponentProps,\n type ComponentType,\n forwardRef,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\nimport { Badge } from '@/components/ui/Badge'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport ListItem from '@/components/ui/ListItem'\nimport { cn } from '@/lib/utils'\n\ntype Icon = { icon?: ComponentType<{ className?: string }> }\ntype LabelProps = { label?: string; description?: string }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = {\n id: string\n value: string\n title: string\n description?: string\n icon?: string\n disabled?: boolean\n}\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = {\n options: Option[]\n classNames?: ClassNames\n placeholder?: string\n error?: string\n useAnchor?: boolean\n}\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon & LabelProps\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n id,\n name,\n value,\n label,\n options,\n required,\n description,\n classNames,\n multiselect,\n placeholder,\n error,\n useAnchor = true,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [open, setOpen] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const IconComponent = icon\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const optionsByValue = useMemo(\n () => new Map(options.map((o) => [o.value, o] as const)),\n [options]\n )\n const selected = useMemo(() => {\n const valueArray = multiselect ? ((value ?? []) as string[]) : value ? [value as string] : []\n return valueArray.map((v) => optionsByValue.get(v)).filter((v): v is Option => v !== undefined)\n }, [value, multiselect, optionsByValue])\n const isEmpty = selected.length === 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n const handleSelect = (nextValue: string) => {\n const option = optionsByValue.get(nextValue)\n if (!option || option.disabled) return\n\n if (multiselect) {\n const current = (Array.isArray(value) ? value : []) as string[]\n const next = current.includes(option.value)\n ? current.filter((v) => v !== option.value)\n : [...current, option.value]\n handleChange?.(next)\n } else {\n handleChange?.(option.value)\n close()\n }\n }\n\n const handleClear = () => {\n if (multiselect) {\n handleChange?.([])\n } else {\n handleChange?.('')\n }\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div ref={containerRef} className={cn('flex flex-col gap-1', className)}>\n {isDefault && (\n <Label\n text={label}\n htmlFor={name}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${id ?? name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-50'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n container={useAnchor ? containerRef.current : undefined}\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, disabled, ...option }) => (\n <CommandItem\n key={id}\n value={option.title}\n disabled={disabled}\n onSelect={() => handleSelect(option.value)}\n className={cn(disabled && 'cursor-not-allowed opacity-50')}\n >\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </Command>\n </PopoverContent>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-grey-80 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-2', 'px-4', 'text-base'],\n xlarge: ['h-11', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n"]}
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var chunkPTNATMEI_cjs = require('./chunk-PTNATMEI.cjs');
4
3
  var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
5
4
  var lucideReact = require('lucide-react');
6
5
  var jsxRuntime = require('react/jsx-runtime');
@@ -27,22 +26,33 @@ function ListItem({
27
26
  "li",
28
27
  {
29
28
  className: chunkMGWZXPMF_cjs.cn(
30
- "group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",
29
+ "group relative flex w-72 cursor-pointer flex-row items-center gap-2 overflow-hidden text-left text-sm",
31
30
  className
32
31
  ),
33
32
  ...props,
34
33
  "data-state": isSelected ? "checked" : "unchecked",
35
34
  children: [
36
35
  optionIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-2", children: optionIcon }),
37
- hasCheckbox && /* @__PURE__ */ jsxRuntime.jsx(chunkPTNATMEI_cjs.Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
38
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
39
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: title }),
40
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-grey-80", children: description })
36
+ hasCheckbox && /* @__PURE__ */ jsxRuntime.jsx(
37
+ "div",
38
+ {
39
+ role: "presentation",
40
+ className: chunkMGWZXPMF_cjs.cn(
41
+ "flex h-4 w-4 shrink-0 items-center justify-center rounded border border-grey-60",
42
+ isSelected && "border-green-100 bg-green-100"
43
+ ),
44
+ onClick: (e) => e.preventDefault(),
45
+ children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "h-3 w-3 text-white", size: 12 })
46
+ }
47
+ ),
48
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 overflow-hidden", children: [
49
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate", children: title }),
50
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-grey-80", children: description })
41
51
  ] }),
42
52
  /* @__PURE__ */ jsxRuntime.jsx(
43
53
  lucideReact.CheckIcon,
44
54
  {
45
- className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
55
+ className: "hidden w-6 shrink-0 text-green-100 group-data-[state=checked]:block",
46
56
  size: 16
47
57
  }
48
58
  )
@@ -53,5 +63,5 @@ function ListItem({
53
63
  var ListItem_default = ListItem;
54
64
 
55
65
  exports.ListItem_default = ListItem_default;
56
- //# sourceMappingURL=chunk-XKLOANYB.cjs.map
57
- //# sourceMappingURL=chunk-XKLOANYB.cjs.map
66
+ //# sourceMappingURL=chunk-WRULIQZE.cjs.map
67
+ //# sourceMappingURL=chunk-WRULIQZE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/ListItem.tsx"],"names":["icon","icons","jsx","jsxs","cn","CheckIcon"],"mappings":";;;;;;AAiBA,SAAS,QAAS,CAAA;AAAA,EAChB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAkB,EAAA;AAChB,EAAM,MAAA,cAAA,GAAiB,CAACA,KAA4B,KAAA;AAClD,IAAA,IAAIA,SAAQC,iBAAO,EAAA;AACjB,MAAM,MAAA,aAAA,GAAgBA,kBAAMD,KAAe,CAAA;AAC3C,MAAO,uBAAAE,cAAA,CAAC,aAAc,EAAA,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA;AAElC,IAAO,OAAA,IAAA;AAAA,GACT;AAEA,EAAA,MAAM,UAAa,GAAA,IAAA,GAAO,cAAe,CAAA,IAAI,CAAI,GAAA,MAAA;AAEjD,EACE,uBAAAC,eAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,oBAAA;AAAA,QACT,uGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,YAAA,EAAY,aAAa,SAAY,GAAA,WAAA;AAAA,MAEpC,QAAA,EAAA;AAAA,QAAA,UAAA,oBAAeF,cAAA,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,MAAA,EAAQ,QAAW,EAAA,UAAA,EAAA,CAAA;AAAA,QACjD,WACC,oBAAAA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,cAAA;AAAA,YACL,SAAW,EAAAE,oBAAA;AAAA,cACT,iFAAA;AAAA,cACA,UAAc,IAAA;AAAA,aAChB;AAAA,YACA,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,cAAe,EAAA;AAAA,YAEhC,wCAAeF,cAAA,CAAAG,qBAAA,EAAA,EAAU,SAAU,EAAA,oBAAA,EAAqB,MAAM,EAAI,EAAA;AAAA;AAAA,SACrE;AAAA,wBAEFF,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,gCACb,EAAA,QAAA,EAAA;AAAA,0BAACD,cAAA,CAAA,GAAA,EAAA,EAAE,SAAU,EAAA,UAAA,EAAY,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,0BAC9BA,cAAA,CAAA,GAAA,EAAA,EAAE,SAAU,EAAA,+BAAA,EAAiC,QAAY,EAAA,WAAA,EAAA;AAAA,SAC5D,EAAA,CAAA;AAAA,wBAEAA,cAAA;AAAA,UAACG,qBAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,qEAAA;AAAA,YACV,IAAM,EAAA;AAAA;AAAA;AACR;AAAA;AAAA,GACF;AAEJ;AAEA,IAAO,gBAAQ,GAAA","file":"chunk-WRULIQZE.cjs","sourcesContent":["import { CheckIcon } from 'lucide-react'\nimport { icons } from 'lucide-react'\nimport { type ComponentPropsWithoutRef, type ReactNode } from 'react'\n\nimport { cn } from '@/lib/utils'\n\ntype IconKey = keyof typeof icons\n\ninterface ListItemProps extends ComponentPropsWithoutRef<'li'> {\n icon?: string\n hasCheckbox?: boolean\n isSelected?: boolean\n title: string\n value: string\n description?: string\n}\n\nfunction ListItem({\n icon,\n hasCheckbox,\n isSelected,\n className,\n title,\n value,\n description,\n ...props\n}: ListItemProps) {\n const getIconIfValid = (icon: string): ReactNode => {\n if (icon in icons) {\n const IconComponent = icons[icon as IconKey]\n return <IconComponent size={14} />\n }\n return null\n }\n\n const optionIcon = icon ? getIconIfValid(icon) : undefined\n\n return (\n <li\n className={cn(\n 'group relative flex w-72 cursor-pointer flex-row items-center gap-2 overflow-hidden text-left text-sm',\n className\n )}\n {...props}\n data-state={isSelected ? 'checked' : 'unchecked'}\n >\n {optionIcon && <span className=\"mr-2\">{optionIcon}</span>}\n {hasCheckbox && (\n <div\n role=\"presentation\"\n className={cn(\n 'flex h-4 w-4 shrink-0 items-center justify-center rounded border border-grey-60',\n isSelected && 'border-green-100 bg-green-100'\n )}\n onClick={(e) => e.preventDefault()}\n >\n {isSelected && <CheckIcon className=\"h-3 w-3 text-white\" size={12} />}\n </div>\n )}\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n <p className=\"truncate\">{title}</p>\n <p className=\"truncate text-xs text-grey-80\">{description}</p>\n </div>\n\n <CheckIcon\n className=\"hidden w-6 shrink-0 text-green-100 group-data-[state=checked]:block\"\n size={16}\n />\n </li>\n )\n}\n\nexport default ListItem\n"]}
@@ -2,12 +2,12 @@
2
2
 
3
3
  var chunkDWB5TTR6_cjs = require('./chunk-DWB5TTR6.cjs');
4
4
  var chunk46HHHYSV_cjs = require('./chunk-46HHHYSV.cjs');
5
- var chunkQRMNGILI_cjs = require('./chunk-QRMNGILI.cjs');
5
+ var chunk4F2PRKMM_cjs = require('./chunk-4F2PRKMM.cjs');
6
6
  var chunkTOEADI6J_cjs = require('./chunk-TOEADI6J.cjs');
7
7
  var chunkGQNVPLSG_cjs = require('./chunk-GQNVPLSG.cjs');
8
8
  var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
9
9
  var chunk4LUPQO4R_cjs = require('./chunk-4LUPQO4R.cjs');
10
- var chunk567FG76G_cjs = require('./chunk-567FG76G.cjs');
10
+ var chunkOXDKVZZ5_cjs = require('./chunk-OXDKVZZ5.cjs');
11
11
  var chunkXAPQTBJR_cjs = require('./chunk-XAPQTBJR.cjs');
12
12
  var DateFns = require('date-fns');
13
13
  var jsxRuntime = require('react/jsx-runtime');
@@ -42,9 +42,9 @@ function JobPost({
42
42
  backAcceptedRoutes,
43
43
  actions
44
44
  }) {
45
- const formattedEmploymentType = chunk567FG76G_cjs.useDisplayText("employmentType", job.employmentType);
46
- const formattedEmploymentLevel = chunk567FG76G_cjs.useDisplayText("employmentLevel", job.employmentLevel);
47
- const formattedJobFunction = chunk567FG76G_cjs.useDisplayText("jobFunction", job.jobFunction);
45
+ const formattedEmploymentType = chunkOXDKVZZ5_cjs.useDisplayText("employmentType", job.employmentType);
46
+ const formattedEmploymentLevel = chunkOXDKVZZ5_cjs.useDisplayText("employmentLevel", job.employmentLevel);
47
+ const formattedJobFunction = chunkOXDKVZZ5_cjs.useDisplayText("jobFunction", job.jobFunction);
48
48
  const formattedLocations = chunkXAPQTBJR_cjs.getAddressList(job);
49
49
  const formattedSalary = chunkGQNVPLSG_cjs.salaryRange(job.estimatedSalary);
50
50
  const formattedDate = DateFns__namespace.formatDistanceToNow(new Date(job.datePosted), {
@@ -102,7 +102,7 @@ function JobPost({
102
102
  }
103
103
  ),
104
104
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-8 px-6", children: [
105
- /* @__PURE__ */ jsxRuntime.jsx(chunkQRMNGILI_cjs.JobDescription, { description: job.description }),
105
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4F2PRKMM_cjs.JobDescription, { description: job.description }),
106
106
  /* @__PURE__ */ jsxRuntime.jsx(
107
107
  chunk46HHHYSV_cjs.CompanyTake,
108
108
  {
@@ -133,5 +133,5 @@ function JobPost({
133
133
  }
134
134
 
135
135
  exports.JobPost = JobPost;
136
- //# sourceMappingURL=chunk-LFWX5GEE.cjs.map
137
- //# sourceMappingURL=chunk-LFWX5GEE.cjs.map
136
+ //# sourceMappingURL=chunk-YOQY4H6Z.cjs.map
137
+ //# sourceMappingURL=chunk-YOQY4H6Z.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-LFWX5GEE.cjs","sourcesContent":["'use client'\n\nimport * as DateFns from 'date-fns'\nimport { type ReactNode } from 'react'\n\nimport { CompanyBenefits } from '@/components/company/CompanyBenefits'\nimport { CompanyInformation } from '@/components/company/CompanyInformation'\nimport { CompanyTake } from '@/components/company/CompanyTake'\nimport { JobDescription } from '@/components/jobPost/JobDescription'\nimport { JobHeader } from '@/components/jobPost/JobHeader'\nimport { useDisplayText } from '@/hooks/useDisplayText'\nimport { getAddressList } from '@/lib/locations'\nimport { salaryRange } from '@/lib/salaryRange'\nimport { cn } from '@/lib/utils'\nimport { type JobPostModel } from '@/types/data/job_posting_service_latest'\n\nexport type JobPostProps = {\n job: JobPostModel\n bannerSrc: string\n avatarSrc?: string\n standalone?: boolean\n avatarHref?: string\n fallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n}\n\nexport function JobPost({\n job,\n bannerSrc,\n avatarSrc,\n standalone,\n avatarHref,\n fallbackHref,\n backAcceptedRoutes,\n actions,\n}: Readonly<JobPostProps>) {\n const formattedEmploymentType = useDisplayText('employmentType', job.employmentType)\n const formattedEmploymentLevel = useDisplayText('employmentLevel', job.employmentLevel)\n const formattedJobFunction = useDisplayText('jobFunction', job.jobFunction)\n const formattedLocations = getAddressList(job)\n const formattedSalary = salaryRange(job.estimatedSalary)\n const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted as string), {\n addSuffix: true,\n })\n\n const tags = [\n !!formattedSalary && {\n icon: 'banknote' as const,\n name: 'salary',\n label: formattedSalary,\n },\n !!formattedEmploymentType && {\n icon: 'briefcase-business' as const,\n name: 'employmentType',\n label: formattedEmploymentType,\n },\n !!formattedEmploymentLevel && {\n icon: 'circle-user' as const,\n name: 'level',\n label: formattedEmploymentLevel,\n },\n !!formattedJobFunction && {\n icon: 'briefcase-business' as const,\n name: 'jobFunction',\n label: formattedJobFunction,\n },\n ...formattedLocations.map((label) => ({\n icon: 'map-pin' as const,\n name: 'location',\n label,\n })),\n ].filter((t) => !!t)\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-10 pb-4',\n !standalone && 'border-1 rounded-3xl border-grey-5'\n )}\n >\n <JobHeader\n title={job.title}\n bannerSrc={bannerSrc}\n avatarName={job.hiringOrganization?.companyName}\n avatarSrc={job.hiringOrganization?.logo?.asset?.url}\n subtitles={[job.hiringOrganization?.companyName ?? '', `Posted ${formattedDate}`]}\n actions={actions}\n standalone={standalone}\n avatarHref={avatarHref}\n backFallbackHref={fallbackHref}\n backAcceptedRoutes={backAcceptedRoutes}\n tags={tags}\n />\n\n <div className=\"flex flex-col gap-8 px-6\">\n <JobDescription description={job.description} />\n\n <CompanyTake\n avatarSrc={avatarSrc}\n content={job.hiringOrganization?.companyNDG?.companyNDGTake}\n />\n\n <CompanyInformation\n name={job.hiringOrganization?.companyName ?? ''}\n how={job.hiringOrganization?.companyPhilosophy?.companyHow}\n mission={job.hiringOrganization?.companyPhilosophy?.companyMission}\n wow={job.hiringOrganization?.companyNDG?.companyWow}\n website={job.hiringOrganization?.companyWebsite}\n />\n\n <CompanyBenefits\n benefits={job.hiringOrganization?.companyCareers?.companyBenefits\n ?.map((b) => b.title)\n .filter((d) => d !== undefined)}\n />\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-YOQY4H6Z.cjs","sourcesContent":["'use client'\n\nimport * as DateFns from 'date-fns'\nimport { type ReactNode } from 'react'\n\nimport { CompanyBenefits } from '@/components/company/CompanyBenefits'\nimport { CompanyInformation } from '@/components/company/CompanyInformation'\nimport { CompanyTake } from '@/components/company/CompanyTake'\nimport { JobDescription } from '@/components/jobPost/JobDescription'\nimport { JobHeader } from '@/components/jobPost/JobHeader'\nimport { useDisplayText } from '@/hooks/useDisplayText'\nimport { getAddressList } from '@/lib/locations'\nimport { salaryRange } from '@/lib/salaryRange'\nimport { cn } from '@/lib/utils'\nimport { type JobPostModel } from '@/types/data/job_posting_service_latest'\n\nexport type JobPostProps = {\n job: JobPostModel\n bannerSrc: string\n avatarSrc?: string\n standalone?: boolean\n avatarHref?: string\n fallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n}\n\nexport function JobPost({\n job,\n bannerSrc,\n avatarSrc,\n standalone,\n avatarHref,\n fallbackHref,\n backAcceptedRoutes,\n actions,\n}: Readonly<JobPostProps>) {\n const formattedEmploymentType = useDisplayText('employmentType', job.employmentType)\n const formattedEmploymentLevel = useDisplayText('employmentLevel', job.employmentLevel)\n const formattedJobFunction = useDisplayText('jobFunction', job.jobFunction)\n const formattedLocations = getAddressList(job)\n const formattedSalary = salaryRange(job.estimatedSalary)\n const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted as string), {\n addSuffix: true,\n })\n\n const tags = [\n !!formattedSalary && {\n icon: 'banknote' as const,\n name: 'salary',\n label: formattedSalary,\n },\n !!formattedEmploymentType && {\n icon: 'briefcase-business' as const,\n name: 'employmentType',\n label: formattedEmploymentType,\n },\n !!formattedEmploymentLevel && {\n icon: 'circle-user' as const,\n name: 'level',\n label: formattedEmploymentLevel,\n },\n !!formattedJobFunction && {\n icon: 'briefcase-business' as const,\n name: 'jobFunction',\n label: formattedJobFunction,\n },\n ...formattedLocations.map((label) => ({\n icon: 'map-pin' as const,\n name: 'location',\n label,\n })),\n ].filter((t) => !!t)\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-10 pb-4',\n !standalone && 'border-1 rounded-3xl border-grey-5'\n )}\n >\n <JobHeader\n title={job.title}\n bannerSrc={bannerSrc}\n avatarName={job.hiringOrganization?.companyName}\n avatarSrc={job.hiringOrganization?.logo?.asset?.url}\n subtitles={[job.hiringOrganization?.companyName ?? '', `Posted ${formattedDate}`]}\n actions={actions}\n standalone={standalone}\n avatarHref={avatarHref}\n backFallbackHref={fallbackHref}\n backAcceptedRoutes={backAcceptedRoutes}\n tags={tags}\n />\n\n <div className=\"flex flex-col gap-8 px-6\">\n <JobDescription description={job.description} />\n\n <CompanyTake\n avatarSrc={avatarSrc}\n content={job.hiringOrganization?.companyNDG?.companyNDGTake}\n />\n\n <CompanyInformation\n name={job.hiringOrganization?.companyName ?? ''}\n how={job.hiringOrganization?.companyPhilosophy?.companyHow}\n mission={job.hiringOrganization?.companyPhilosophy?.companyMission}\n wow={job.hiringOrganization?.companyNDG?.companyWow}\n website={job.hiringOrganization?.companyWebsite}\n />\n\n <CompanyBenefits\n benefits={job.hiringOrganization?.companyCareers?.companyBenefits\n ?.map((b) => b.title)\n .filter((d) => d !== undefined)}\n />\n </div>\n </div>\n )\n}\n"]}