@rafal.lemieszewski/tide-ui 0.83.0 → 0.84.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 (256) hide show
  1. package/README.md +20 -8
  2. package/dist/cjs/components/core-index.cjs +1 -0
  3. package/dist/cjs/components/fundamental/accordion.cjs +1 -0
  4. package/dist/cjs/components/fundamental/alert-dialog.cjs +1 -0
  5. package/dist/cjs/components/fundamental/alert.cjs +1 -0
  6. package/dist/cjs/components/fundamental/autocomplete-search.cjs +1 -0
  7. package/dist/cjs/components/fundamental/avatar-group.cjs +1 -0
  8. package/dist/cjs/components/fundamental/avatar.cjs +1 -0
  9. package/dist/cjs/components/fundamental/badge.cjs +1 -0
  10. package/dist/cjs/components/fundamental/breadcrumb.cjs +1 -0
  11. package/dist/cjs/components/fundamental/button-group.cjs +1 -0
  12. package/dist/cjs/components/fundamental/button.cjs +1 -0
  13. package/dist/cjs/components/fundamental/calendar.cjs +1 -0
  14. package/dist/cjs/components/fundamental/card.cjs +1 -0
  15. package/dist/cjs/components/fundamental/chart.cjs +1 -0
  16. package/dist/cjs/components/fundamental/checkbox.cjs +1 -0
  17. package/dist/cjs/components/fundamental/collapsible.cjs +1 -0
  18. package/dist/cjs/components/fundamental/combobox.cjs +1 -0
  19. package/dist/cjs/components/fundamental/command.cjs +1 -0
  20. package/dist/cjs/components/fundamental/country-dropdown.cjs +1 -0
  21. package/dist/cjs/components/fundamental/custom-icons.cjs +1 -0
  22. package/dist/cjs/components/fundamental/date-picker.cjs +1 -0
  23. package/dist/cjs/components/fundamental/dialog.cjs +1 -0
  24. package/dist/cjs/components/fundamental/drawer.cjs +1 -0
  25. package/dist/cjs/components/fundamental/dropdown-menu.cjs +1 -0
  26. package/dist/cjs/components/fundamental/editable.cjs +1 -0
  27. package/dist/cjs/components/fundamental/empty.cjs +1 -0
  28. package/dist/cjs/components/fundamental/file-upload.cjs +1 -0
  29. package/dist/cjs/components/fundamental/flag.cjs +1 -0
  30. package/dist/cjs/components/fundamental/form-field.cjs +1 -0
  31. package/dist/cjs/components/fundamental/hover-card.cjs +1 -0
  32. package/dist/cjs/components/fundamental/icon.cjs +1 -0
  33. package/dist/cjs/components/fundamental/input-group.cjs +1 -0
  34. package/dist/cjs/components/fundamental/input.cjs +1 -0
  35. package/dist/cjs/components/fundamental/kbd.cjs +1 -0
  36. package/dist/cjs/components/fundamental/label.cjs +1 -0
  37. package/dist/cjs/components/fundamental/month-picker.cjs +1 -0
  38. package/dist/cjs/components/fundamental/pagination.cjs +1 -0
  39. package/dist/cjs/components/fundamental/popover.cjs +1 -0
  40. package/dist/cjs/components/fundamental/progress.cjs +1 -0
  41. package/dist/cjs/components/fundamental/radio-group.cjs +1 -0
  42. package/dist/cjs/components/fundamental/resizable.cjs +1 -0
  43. package/dist/cjs/components/fundamental/scroll-area.cjs +1 -0
  44. package/dist/cjs/components/fundamental/select.cjs +1 -0
  45. package/dist/cjs/components/fundamental/separator.cjs +1 -0
  46. package/dist/cjs/components/fundamental/sheet.cjs +1 -0
  47. package/dist/cjs/components/fundamental/sidebar.cjs +1 -0
  48. package/dist/cjs/components/fundamental/skeleton.cjs +1 -0
  49. package/dist/cjs/components/fundamental/slider.cjs +1 -0
  50. package/dist/cjs/components/fundamental/spinner.cjs +1 -0
  51. package/dist/cjs/components/fundamental/switch.cjs +1 -0
  52. package/dist/cjs/components/fundamental/table.cjs +1 -0
  53. package/dist/cjs/components/fundamental/tabs.cjs +1 -0
  54. package/dist/cjs/components/fundamental/tag.cjs +27 -0
  55. package/dist/cjs/components/fundamental/text-link.cjs +1 -0
  56. package/dist/cjs/components/fundamental/textarea.cjs +1 -0
  57. package/dist/cjs/components/fundamental/toast.cjs +1 -0
  58. package/dist/cjs/components/fundamental/toggle-group.cjs +1 -0
  59. package/dist/cjs/components/fundamental/toggle.cjs +1 -0
  60. package/dist/cjs/components/fundamental/tooltip.cjs +1 -0
  61. package/dist/cjs/components/fundamental/tree.cjs +1 -0
  62. package/dist/cjs/components/product/activity-log.cjs +1 -0
  63. package/dist/cjs/components/product/app-frame.cjs +1 -0
  64. package/dist/cjs/components/product/attributes-list.cjs +1 -0
  65. package/dist/cjs/components/product/bookmarks.cjs +1 -0
  66. package/dist/cjs/components/product/data-table-settings-menu.cjs +1 -0
  67. package/dist/cjs/components/product/data-table.cjs +1 -0
  68. package/dist/cjs/components/product/filters.cjs +1 -0
  69. package/dist/cjs/components/product/fixture-status.cjs +1 -0
  70. package/dist/cjs/components/product/linked-chart.cjs +1 -0
  71. package/dist/cjs/components/product/view-mode-menu.cjs +1 -0
  72. package/dist/cjs/lib/date-utils.cjs +1 -0
  73. package/dist/cjs/lib/hooks.cjs +1 -0
  74. package/dist/cjs/lib/index.cjs +1 -0
  75. package/dist/cjs/lib/utils.cjs +1 -0
  76. package/dist/es/components/core-index.js +37 -0
  77. package/dist/es/components/fundamental/accordion.js +60 -0
  78. package/dist/es/components/fundamental/alert-dialog.js +116 -0
  79. package/dist/es/components/fundamental/alert.js +65 -0
  80. package/dist/es/components/fundamental/autocomplete-search.js +139 -0
  81. package/dist/es/components/fundamental/avatar-group.js +51 -0
  82. package/dist/es/components/fundamental/avatar.js +165 -0
  83. package/dist/es/components/fundamental/badge.js +157 -0
  84. package/dist/es/components/fundamental/breadcrumb.js +142 -0
  85. package/dist/es/components/fundamental/button-group.js +86 -0
  86. package/dist/es/components/fundamental/button.js +186 -0
  87. package/dist/es/components/fundamental/calendar.js +130 -0
  88. package/dist/es/components/fundamental/card.js +68 -0
  89. package/dist/es/components/fundamental/chart.js +1006 -0
  90. package/dist/es/components/fundamental/checkbox.js +51 -0
  91. package/dist/es/components/fundamental/collapsible.js +55 -0
  92. package/dist/es/components/fundamental/combobox.js +229 -0
  93. package/dist/es/components/fundamental/command.js +155 -0
  94. package/dist/es/components/fundamental/country-dropdown.js +215 -0
  95. package/dist/es/components/fundamental/custom-icons.js +876 -0
  96. package/dist/es/components/fundamental/date-picker.js +119 -0
  97. package/dist/es/components/fundamental/dialog.js +106 -0
  98. package/dist/es/components/fundamental/drawer.js +93 -0
  99. package/dist/es/components/fundamental/dropdown-menu.js +600 -0
  100. package/dist/es/components/fundamental/editable.js +123 -0
  101. package/dist/es/components/fundamental/empty.js +152 -0
  102. package/dist/es/components/fundamental/file-upload.js +289 -0
  103. package/dist/es/components/fundamental/flag.js +60 -0
  104. package/dist/es/components/fundamental/form-field.js +352 -0
  105. package/dist/es/components/fundamental/hover-card.js +23 -0
  106. package/dist/es/components/fundamental/icon.js +200 -0
  107. package/dist/es/components/fundamental/input-group.js +135 -0
  108. package/dist/es/components/fundamental/input.js +78 -0
  109. package/dist/es/components/fundamental/kbd.js +57 -0
  110. package/dist/es/components/fundamental/label.js +54 -0
  111. package/dist/es/components/fundamental/month-picker.js +161 -0
  112. package/dist/es/components/fundamental/pagination.js +109 -0
  113. package/dist/es/components/fundamental/popover.js +24 -0
  114. package/dist/es/components/fundamental/progress.js +66 -0
  115. package/dist/es/components/fundamental/radio-group.js +64 -0
  116. package/dist/es/components/fundamental/resizable.js +43 -0
  117. package/dist/es/components/fundamental/scroll-area.js +38 -0
  118. package/dist/es/components/fundamental/select.js +136 -0
  119. package/dist/es/components/fundamental/separator.js +47 -0
  120. package/dist/es/components/fundamental/sheet.js +134 -0
  121. package/dist/es/components/fundamental/sidebar.js +709 -0
  122. package/dist/es/components/fundamental/skeleton.js +158 -0
  123. package/dist/es/components/fundamental/slider.js +35 -0
  124. package/dist/es/components/fundamental/spinner.js +225 -0
  125. package/dist/es/components/fundamental/switch.js +27 -0
  126. package/dist/es/components/fundamental/table.js +263 -0
  127. package/dist/es/components/fundamental/tabs.js +170 -0
  128. package/dist/es/components/fundamental/tag.js +295 -0
  129. package/dist/es/components/fundamental/text-link.js +105 -0
  130. package/dist/es/components/fundamental/textarea.js +47 -0
  131. package/dist/es/components/fundamental/toast.js +108 -0
  132. package/dist/es/components/fundamental/toggle-group.js +37 -0
  133. package/dist/es/components/fundamental/toggle.js +51 -0
  134. package/dist/es/components/fundamental/tooltip.js +26 -0
  135. package/dist/es/components/fundamental/tree.js +161 -0
  136. package/dist/es/components/product/activity-log.js +231 -0
  137. package/dist/es/components/product/app-frame.js +985 -0
  138. package/dist/es/components/product/attributes-list.js +351 -0
  139. package/dist/es/components/product/bookmarks.js +833 -0
  140. package/dist/es/components/product/data-table-settings-menu.js +169 -0
  141. package/dist/es/components/product/data-table.js +2473 -0
  142. package/dist/es/components/product/filters.js +1041 -0
  143. package/dist/es/components/product/fixture-status.js +178 -0
  144. package/dist/es/components/product/linked-chart.js +179 -0
  145. package/dist/es/components/product/view-mode-menu.js +353 -0
  146. package/dist/es/lib/date-utils.js +151 -0
  147. package/dist/es/lib/hooks.js +29 -0
  148. package/dist/es/lib/index.js +348 -0
  149. package/dist/es/lib/utils.js +8 -0
  150. package/dist/es/style.css +1 -0
  151. package/dist/types/bookmarks.d.ts +2 -0
  152. package/dist/types/calendar.d.ts +2 -0
  153. package/dist/types/chart.d.ts +2 -0
  154. package/dist/types/components/core-index.d.cts +135 -0
  155. package/dist/types/components/core-index.d.ts +135 -0
  156. package/dist/{components → types/components}/fundamental/avatar.d.ts +3 -3
  157. package/dist/{components → types/components}/fundamental/badge.d.ts +2 -2
  158. package/dist/{components → types/components}/fundamental/button-group.d.ts +2 -2
  159. package/dist/{components → types/components}/fundamental/button.d.ts +1 -1
  160. package/dist/types/components/fundamental/calendar.d.ts +7 -0
  161. package/dist/types/components/fundamental/chart.d.ts +95 -0
  162. package/dist/{components → types/components}/fundamental/command.d.ts +2 -2
  163. package/dist/types/components/fundamental/country-dropdown.d.ts +34 -0
  164. package/dist/types/components/fundamental/date-picker.d.ts +30 -0
  165. package/dist/{components → types/components}/fundamental/file-upload.d.ts +1 -1
  166. package/dist/{components → types/components}/fundamental/form-field.d.ts +2 -2
  167. package/dist/{components → types/components}/fundamental/form.d.ts +2 -2
  168. package/dist/{components → types/components}/fundamental/icon.d.ts +1 -1
  169. package/dist/{components → types/components}/fundamental/input-group.d.ts +1 -1
  170. package/dist/types/components/fundamental/resizable.d.cts +23 -0
  171. package/dist/{components → types/components}/fundamental/resizable.d.ts +1 -1
  172. package/dist/{components → types/components}/fundamental/sidebar.d.ts +3 -3
  173. package/dist/{components → types/components}/fundamental/spinner.d.ts +1 -1
  174. package/dist/{components → types/components}/fundamental/table.d.ts +3 -3
  175. package/dist/{components → types/components}/fundamental/text-link.d.ts +1 -1
  176. package/dist/{components → types/components}/index.d.ts +118 -118
  177. package/dist/{components → types/components}/product/activity-log.d.ts +1 -1
  178. package/dist/{components → types/components}/product/attributes-list.d.ts +1 -1
  179. package/dist/types/components/product/bookmarks.d.cts +90 -0
  180. package/dist/{components → types/components}/product/bookmarks.d.ts +1 -1
  181. package/dist/types/components/product/data-table.d.ts +802 -0
  182. package/dist/types/components/product/filters.d.ts +124 -0
  183. package/dist/{components → types/components}/product/fixture-status.d.ts +1 -1
  184. package/dist/types/components/product/linked-chart.d.cts +22 -0
  185. package/dist/{components → types/components}/product/linked-chart.d.ts +1 -1
  186. package/dist/types/country-dropdown.d.ts +2 -0
  187. package/dist/types/data-table.d.ts +2 -0
  188. package/dist/types/date-picker.d.ts +2 -0
  189. package/dist/types/filters.d.ts +2 -0
  190. package/dist/types/index.d.ts +2 -0
  191. package/dist/types/lib/index.d.cts +104 -0
  192. package/dist/types/lib/index.d.ts +104 -0
  193. package/dist/types/linked-chart.d.ts +2 -0
  194. package/dist/types/resizable.d.ts +2 -0
  195. package/package.json +191 -31
  196. package/dist/index.cjs.js +0 -144
  197. package/dist/index.cjs.js.map +0 -1
  198. package/dist/index.d.ts +0 -2
  199. package/dist/index.es.js +0 -87768
  200. package/dist/index.es.js.map +0 -1
  201. package/dist/lib/index.d.ts +0 -3
  202. package/dist/style.css +0 -1
  203. /package/dist/{components → types/components}/fundamental/accordion.d.ts +0 -0
  204. /package/dist/{components → types/components}/fundamental/alert-dialog.d.ts +0 -0
  205. /package/dist/{components → types/components}/fundamental/alert.d.ts +0 -0
  206. /package/dist/{components → types/components}/fundamental/autocomplete-search.d.ts +0 -0
  207. /package/dist/{components → types/components}/fundamental/avatar-group.d.ts +0 -0
  208. /package/dist/{components → types/components}/fundamental/breadcrumb.d.ts +0 -0
  209. /package/dist/{components → types/components}/fundamental/button.test.d.ts +0 -0
  210. /package/dist/{components/fundamental/calendar.d.ts → types/components/fundamental/calendar.d.cts} +0 -0
  211. /package/dist/{components → types/components}/fundamental/card.d.ts +0 -0
  212. /package/dist/{components/fundamental/chart.d.ts → types/components/fundamental/chart.d.cts} +0 -0
  213. /package/dist/{components → types/components}/fundamental/checkbox.d.ts +0 -0
  214. /package/dist/{components → types/components}/fundamental/collapsible.d.ts +0 -0
  215. /package/dist/{components → types/components}/fundamental/combobox.d.ts +0 -0
  216. /package/dist/{components/fundamental/country-dropdown.d.ts → types/components/fundamental/country-dropdown.d.cts} +0 -0
  217. /package/dist/{components → types/components}/fundamental/custom-icons.d.ts +0 -0
  218. /package/dist/{components/fundamental/date-picker.d.ts → types/components/fundamental/date-picker.d.cts} +0 -0
  219. /package/dist/{components → types/components}/fundamental/dialog.d.ts +0 -0
  220. /package/dist/{components → types/components}/fundamental/drawer.d.ts +0 -0
  221. /package/dist/{components → types/components}/fundamental/dropdown-menu.d.ts +0 -0
  222. /package/dist/{components → types/components}/fundamental/editable.d.ts +0 -0
  223. /package/dist/{components → types/components}/fundamental/empty.d.ts +0 -0
  224. /package/dist/{components → types/components}/fundamental/flag.d.ts +0 -0
  225. /package/dist/{components → types/components}/fundamental/hover-card.d.ts +0 -0
  226. /package/dist/{components → types/components}/fundamental/input.d.ts +0 -0
  227. /package/dist/{components → types/components}/fundamental/kbd.d.ts +0 -0
  228. /package/dist/{components → types/components}/fundamental/label.d.ts +0 -0
  229. /package/dist/{components → types/components}/fundamental/month-picker.d.ts +0 -0
  230. /package/dist/{components → types/components}/fundamental/pagination.d.ts +0 -0
  231. /package/dist/{components → types/components}/fundamental/popover.d.ts +0 -0
  232. /package/dist/{components → types/components}/fundamental/progress.d.ts +0 -0
  233. /package/dist/{components → types/components}/fundamental/radio-group.d.ts +0 -0
  234. /package/dist/{components → types/components}/fundamental/scroll-area.d.ts +0 -0
  235. /package/dist/{components → types/components}/fundamental/select.d.ts +0 -0
  236. /package/dist/{components → types/components}/fundamental/separator.d.ts +0 -0
  237. /package/dist/{components → types/components}/fundamental/sheet.d.ts +0 -0
  238. /package/dist/{components → types/components}/fundamental/skeleton.d.ts +0 -0
  239. /package/dist/{components → types/components}/fundamental/slider.d.ts +0 -0
  240. /package/dist/{components → types/components}/fundamental/switch.d.ts +0 -0
  241. /package/dist/{components → types/components}/fundamental/tabs.d.ts +0 -0
  242. /package/dist/{components → types/components}/fundamental/tag.d.ts +0 -0
  243. /package/dist/{components → types/components}/fundamental/textarea.d.ts +0 -0
  244. /package/dist/{components → types/components}/fundamental/toast.d.ts +0 -0
  245. /package/dist/{components → types/components}/fundamental/toggle-group.d.ts +0 -0
  246. /package/dist/{components → types/components}/fundamental/toggle.d.ts +0 -0
  247. /package/dist/{components → types/components}/fundamental/tooltip.d.ts +0 -0
  248. /package/dist/{components → types/components}/fundamental/tree.d.ts +0 -0
  249. /package/dist/{components → types/components}/product/app-frame.d.ts +0 -0
  250. /package/dist/{components → types/components}/product/data-table-settings-menu.d.ts +0 -0
  251. /package/dist/{components/product/data-table.d.ts → types/components/product/data-table.d.cts} +0 -0
  252. /package/dist/{components/product/filters.d.ts → types/components/product/filters.d.cts} +0 -0
  253. /package/dist/{components → types/components}/product/view-mode-menu.d.ts +0 -0
  254. /package/dist/{lib → types/lib}/date-utils.d.ts +0 -0
  255. /package/dist/{lib → types/lib}/hooks.d.ts +0 -0
  256. /package/dist/{lib → types/lib}/utils.d.ts +0 -0
@@ -0,0 +1,51 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import * as r from "@radix-ui/react-checkbox";
4
+ import { Minus as n, Check as b } from "lucide-react";
5
+ import { cva as t } from "class-variance-authority";
6
+ import { cn as o } from "../../lib/utils.js";
7
+ const l = t(
8
+ "peer w-[var(--size-2xs)] h-[var(--size-2xs)] shrink-0 rounded-s border-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring-color)] focus-visible:ring-offset-2 cursor-pointer hover:cursor-pointer [&:not(:disabled)]:cursor-pointer disabled:cursor-not-allowed disabled:opacity-100 box-border",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: [
13
+ "border-[var(--color-interaction-border-input)] bg-[var(--color-surface-primary)]",
14
+ "hover:border-[var(--color-interaction-border-input-hovered)]",
15
+ "data-[state=checked]:border-[var(--color-border-brand-bold)] data-[state=checked]:bg-[var(--color-background-blue-bold)] data-[state=checked]:text-[var(--color-text-on-action)]",
16
+ "data-[state=indeterminate]:border-[var(--color-border-brand-bold)] data-[state=indeterminate]:bg-[var(--color-background-blue-bold)] data-[state=indeterminate]:text-[var(--color-text-on-action)]",
17
+ "disabled:border-none disabled:bg-[var(--color-background-disabled)]",
18
+ "disabled:data-[state=checked]:border-none disabled:data-[state=checked]:bg-[var(--color-background-disabled)] disabled:data-[state=checked]:text-[var(--color-icon-disabled)]",
19
+ "disabled:data-[state=indeterminate]:border-none disabled:data-[state=indeterminate]:bg-[var(--color-background-disabled)] disabled:data-[state=indeterminate]:text-[var(--color-icon-disabled)]"
20
+ ],
21
+ error: [
22
+ "border-[var(--color-border-error-bold)] bg-[var(--color-surface-primary)]",
23
+ "hover:border-[var(--color-border-error-bold)]",
24
+ "data-[state=checked]:border-[var(--color-border-error-bold)] data-[state=checked]:bg-[var(--color-background-error-subtle)] data-[state=checked]:text-[var(--color-text-on-error)]",
25
+ "data-[state=indeterminate]:border-[var(--color-border-error-bold)] data-[state=indeterminate]:bg-[var(--color-background-error-subtle)] data-[state=indeterminate]:text-[var(--color-text-on-error)]",
26
+ "disabled:border-none disabled:bg-[var(--color-background-disabled)]",
27
+ "disabled:data-[state=checked]:border-none disabled:data-[state=checked]:bg-[var(--color-background-disabled)] disabled:data-[state=checked]:text-[var(--color-icon-disabled)]",
28
+ "disabled:data-[state=indeterminate]:border-none disabled:data-[state=indeterminate]:bg-[var(--color-background-disabled)] disabled:data-[state=indeterminate]:text-[var(--color-icon-disabled)]"
29
+ ]
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ variant: "default"
34
+ }
35
+ }
36
+ ), v = t(
37
+ "flex items-center justify-center text-current [&>svg]:w-[var(--size-3xs)] [&>svg]:h-[var(--size-3xs)]"
38
+ ), u = /* @__PURE__ */ s.forwardRef(({ className: d, variant: i, ...a }, c) => /* @__PURE__ */ e(
39
+ r.Root,
40
+ {
41
+ ref: c,
42
+ className: o(l({ variant: i }), d),
43
+ ...a,
44
+ children: /* @__PURE__ */ e(r.Indicator, { className: o(v()), children: a.checked === "indeterminate" ? /* @__PURE__ */ e(n, {}) : /* @__PURE__ */ e(b, {}) })
45
+ }
46
+ ));
47
+ u.displayName = r.Root.displayName;
48
+ export {
49
+ u as Checkbox,
50
+ l as checkboxVariants
51
+ };
@@ -0,0 +1,55 @@
1
+ import { jsx as o, jsxs as m } from "react/jsx-runtime";
2
+ import * as n from "react";
3
+ import * as e from "@radix-ui/react-collapsible";
4
+ import { cn as c } from "../../lib/utils.js";
5
+ import { Icon as p } from "./icon.js";
6
+ const u = e.Root, d = /* @__PURE__ */ n.forwardRef(({ className: t, children: a, hideIcon: r = !1, asChild: i = !1, ...s }, l) => i ? /* @__PURE__ */ o(
7
+ e.CollapsibleTrigger,
8
+ {
9
+ ref: l,
10
+ asChild: !0,
11
+ ...s,
12
+ children: a
13
+ }
14
+ ) : /* @__PURE__ */ m(
15
+ e.CollapsibleTrigger,
16
+ {
17
+ ref: l,
18
+ className: c(
19
+ "[&]:text-body-medium-md flex flex-1 cursor-pointer items-center justify-between gap-[var(--space-s)] py-[var(--space-l)] text-left text-[var(--color-text-primary)] transition-all focus-visible:ring-2 focus-visible:ring-[var(--ring-color)] focus-visible:ring-offset-2 focus-visible:outline-none [&[data-state=open]>svg]:rotate-180",
20
+ t
21
+ ),
22
+ ...s,
23
+ children: [
24
+ a,
25
+ !r && /* @__PURE__ */ o(
26
+ p,
27
+ {
28
+ name: "chevron-down",
29
+ size: "m",
30
+ color: "tertiary",
31
+ className: "shrink-0 transition-transform duration-200"
32
+ }
33
+ )
34
+ ]
35
+ }
36
+ ));
37
+ d.displayName = e.CollapsibleTrigger.displayName;
38
+ const f = /* @__PURE__ */ n.forwardRef(({ className: t, children: a, ...r }, i) => /* @__PURE__ */ o(
39
+ e.CollapsibleContent,
40
+ {
41
+ ref: i,
42
+ className: c(
43
+ "[&]:text-body-md data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-[var(--color-text-secondary)]",
44
+ t
45
+ ),
46
+ ...r,
47
+ children: /* @__PURE__ */ o("div", { className: "pt-0 pb-[var(--space-l)]", children: a })
48
+ }
49
+ ));
50
+ f.displayName = e.CollapsibleContent.displayName;
51
+ export {
52
+ u as Collapsible,
53
+ f as CollapsibleContent,
54
+ d as CollapsibleTrigger
55
+ };
@@ -0,0 +1,229 @@
1
+ import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
+ import * as m from "react";
3
+ import { Check as k } from "lucide-react";
4
+ import { cn as n } from "../../lib/utils.js";
5
+ import { useIsDesktop as T } from "../../lib/hooks.js";
6
+ import { Command as y, CommandInput as O, CommandList as D, CommandEmpty as z, CommandGroup as j, CommandItem as I } from "./command.js";
7
+ import { Popover as E, PopoverTrigger as G, PopoverContent as L } from "./popover.js";
8
+ import { Drawer as P, DrawerTrigger as R, DrawerContent as q } from "./drawer.js";
9
+ function W({
10
+ options: o,
11
+ value: c,
12
+ onValueChange: d,
13
+ placeholder: v = "Select option...",
14
+ searchPlaceholder: u = "Search options...",
15
+ emptyMessage: p = "No options found",
16
+ disabled: b = !1,
17
+ className: f,
18
+ popoverClassName: C,
19
+ trigger: g,
20
+ clearable: x
21
+ }) {
22
+ const [i, s] = m.useState(!1), [N, t] = m.useState(""), h = T(), S = o.find((a) => a.value === c), w = m.useCallback((a) => {
23
+ d?.(a === c ? "" : a), s(!1);
24
+ }, [c, d]);
25
+ return h ? /* @__PURE__ */ e("div", { className: n("w-full", f), children: /* @__PURE__ */ r(E, { open: i, onOpenChange: s, children: [
26
+ /* @__PURE__ */ e(G, { asChild: !0, children: g({ open: i, selectedOption: S, placeholder: v, disabled: b }) }),
27
+ /* @__PURE__ */ e(
28
+ L,
29
+ {
30
+ className: n(
31
+ "w-[var(--radix-popover-trigger-width)] min-w-[16rem] p-0",
32
+ C
33
+ ),
34
+ children: /* @__PURE__ */ r(y, { children: [
35
+ /* @__PURE__ */ e(
36
+ O,
37
+ {
38
+ placeholder: u,
39
+ value: N,
40
+ onValueChange: t,
41
+ clearable: x,
42
+ onClear: () => t("")
43
+ }
44
+ ),
45
+ /* @__PURE__ */ r(D, { children: [
46
+ /* @__PURE__ */ e(z, { children: p }),
47
+ /* @__PURE__ */ e(j, { children: o.map((a) => /* @__PURE__ */ r(
48
+ I,
49
+ {
50
+ value: a.value,
51
+ disabled: a.disabled,
52
+ onSelect: w,
53
+ className: "h-[var(--size-m)] px-[var(--space-m)] transition-colors hover:bg-[var(--color-background-neutral-subtlest-hovered)] aria-selected:bg-[var(--color-background-neutral-subtlest-hovered)]",
54
+ children: [
55
+ a.label,
56
+ /* @__PURE__ */ e(
57
+ k,
58
+ {
59
+ className: n(
60
+ "ml-auto h-4 w-4 text-[var(--color-icon-brand-bold)]",
61
+ c === a.value ? "opacity-100" : "opacity-0"
62
+ )
63
+ }
64
+ )
65
+ ]
66
+ },
67
+ a.value
68
+ )) })
69
+ ] })
70
+ ] })
71
+ }
72
+ )
73
+ ] }) }) : /* @__PURE__ */ e("div", { className: n("w-full", f), children: /* @__PURE__ */ r(P, { open: i, onOpenChange: s, children: [
74
+ /* @__PURE__ */ e(R, { asChild: !0, children: g({ open: i, selectedOption: S, placeholder: v, disabled: b }) }),
75
+ /* @__PURE__ */ r(q, { className: n("p-0", C), children: [
76
+ /* @__PURE__ */ e("div", { className: "space-y-[var(--space-xs)] px-[var(--space-m)] pb-[var(--space-m)]", children: /* @__PURE__ */ r(y, { children: [
77
+ /* @__PURE__ */ e(
78
+ O,
79
+ {
80
+ placeholder: u,
81
+ value: N,
82
+ onValueChange: t,
83
+ clearable: x,
84
+ onClear: () => t("")
85
+ }
86
+ ),
87
+ /* @__PURE__ */ r(D, { children: [
88
+ /* @__PURE__ */ e(z, { children: p }),
89
+ /* @__PURE__ */ e(j, { children: o.map((a) => /* @__PURE__ */ r(
90
+ I,
91
+ {
92
+ value: a.value,
93
+ disabled: a.disabled,
94
+ onSelect: w,
95
+ className: "h-[var(--size-l)] px-[var(--space-m)] active:bg-[var(--color-background-neutral-subtlest-hovered)]",
96
+ children: [
97
+ a.label,
98
+ /* @__PURE__ */ e(
99
+ k,
100
+ {
101
+ className: n(
102
+ "ml-auto h-4 w-4 text-[var(--color-icon-brand-bold)]",
103
+ c === a.value ? "opacity-100" : "opacity-0"
104
+ )
105
+ }
106
+ )
107
+ ]
108
+ },
109
+ a.value
110
+ )) })
111
+ ] })
112
+ ] }) }),
113
+ /* @__PURE__ */ e("div", { className: "h-[env(safe-area-inset-bottom)]" })
114
+ ] })
115
+ ] }) });
116
+ }
117
+ function X({
118
+ options: o,
119
+ values: c = [],
120
+ onValuesChange: d,
121
+ placeholder: v = "Select options...",
122
+ searchPlaceholder: u = "Search options...",
123
+ emptyMessage: p = "No options found",
124
+ disabled: b = !1,
125
+ className: f,
126
+ popoverClassName: C,
127
+ trigger: g,
128
+ maxDisplayedItems: x = 3,
129
+ clearable: i
130
+ }) {
131
+ const [s, N] = m.useState(!1), [t, h] = m.useState(""), S = T(), w = o.filter((l) => c.includes(l.value)), a = m.useCallback((l) => {
132
+ c.includes(l) ? d?.(c.filter((A) => A !== l)) : d?.([...c, l]);
133
+ }, [c, d]);
134
+ return S ? /* @__PURE__ */ e("div", { className: n("w-full", f), children: /* @__PURE__ */ r(E, { open: s, onOpenChange: N, children: [
135
+ /* @__PURE__ */ e(G, { asChild: !0, children: g({ open: s, selectedOptions: w, placeholder: v, disabled: b, maxDisplayedItems: x }) }),
136
+ /* @__PURE__ */ e(
137
+ L,
138
+ {
139
+ className: n(
140
+ "w-[var(--radix-popover-trigger-width)] min-w-[16rem] p-0",
141
+ C
142
+ ),
143
+ children: /* @__PURE__ */ r(y, { children: [
144
+ /* @__PURE__ */ e(
145
+ O,
146
+ {
147
+ placeholder: u,
148
+ value: t,
149
+ onValueChange: h,
150
+ clearable: i,
151
+ onClear: () => h("")
152
+ }
153
+ ),
154
+ /* @__PURE__ */ r(D, { children: [
155
+ /* @__PURE__ */ e(z, { children: p }),
156
+ /* @__PURE__ */ e(j, { children: o.map((l) => /* @__PURE__ */ r(
157
+ I,
158
+ {
159
+ value: l.value,
160
+ disabled: l.disabled,
161
+ onSelect: a,
162
+ className: "h-[var(--size-m)] px-[var(--space-m)] transition-colors hover:bg-[var(--color-background-neutral-subtlest-hovered)] aria-selected:bg-[var(--color-background-neutral-subtlest-hovered)]",
163
+ children: [
164
+ l.label,
165
+ /* @__PURE__ */ e(
166
+ k,
167
+ {
168
+ className: n(
169
+ "ml-auto h-4 w-4 text-[var(--color-icon-brand-bold)]",
170
+ c.includes(l.value) ? "opacity-100" : "opacity-0"
171
+ )
172
+ }
173
+ )
174
+ ]
175
+ },
176
+ l.value
177
+ )) })
178
+ ] })
179
+ ] })
180
+ }
181
+ )
182
+ ] }) }) : /* @__PURE__ */ e("div", { className: n("w-full", f), children: /* @__PURE__ */ r(P, { open: s, onOpenChange: N, children: [
183
+ /* @__PURE__ */ e(R, { asChild: !0, children: g({ open: s, selectedOptions: w, placeholder: v, disabled: b, maxDisplayedItems: x }) }),
184
+ /* @__PURE__ */ r(q, { className: n("p-0", C), children: [
185
+ /* @__PURE__ */ e("div", { className: "space-y-[var(--space-xs)] px-[var(--space-m)] pb-[var(--space-m)]", children: /* @__PURE__ */ r(y, { children: [
186
+ /* @__PURE__ */ e(
187
+ O,
188
+ {
189
+ placeholder: u,
190
+ value: t,
191
+ onValueChange: h,
192
+ clearable: i,
193
+ onClear: () => h("")
194
+ }
195
+ ),
196
+ /* @__PURE__ */ r(D, { children: [
197
+ /* @__PURE__ */ e(z, { children: p }),
198
+ /* @__PURE__ */ e(j, { children: o.map((l) => /* @__PURE__ */ r(
199
+ I,
200
+ {
201
+ value: l.value,
202
+ disabled: l.disabled,
203
+ onSelect: a,
204
+ className: "h-[var(--size-l)] px-[var(--space-m)] active:bg-[var(--color-background-neutral-subtlest-hovered)]",
205
+ children: [
206
+ l.label,
207
+ /* @__PURE__ */ e(
208
+ k,
209
+ {
210
+ className: n(
211
+ "ml-auto h-4 w-4 text-[var(--color-icon-brand-bold)]",
212
+ c.includes(l.value) ? "opacity-100" : "opacity-0"
213
+ )
214
+ }
215
+ )
216
+ ]
217
+ },
218
+ l.value
219
+ )) })
220
+ ] })
221
+ ] }) }),
222
+ /* @__PURE__ */ e("div", { className: "h-[env(safe-area-inset-bottom)]" })
223
+ ] })
224
+ ] }) });
225
+ }
226
+ export {
227
+ W as Combobox,
228
+ X as MultiCombobox
229
+ };
@@ -0,0 +1,155 @@
1
+ import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
+ import * as d from "react";
3
+ import * as m from "@radix-ui/react-dialog";
4
+ import { Command as t } from "cmdk";
5
+ import { cn as s } from "../../lib/utils.js";
6
+ import { Icon as b } from "./icon.js";
7
+ import { Button as _ } from "./button.js";
8
+ import { inputVariants as h } from "./input.js";
9
+ const c = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
10
+ t,
11
+ {
12
+ ref: o,
13
+ loop: !0,
14
+ className: s(
15
+ "flex h-full w-full flex-col overflow-hidden rounded-m bg-[var(--color-surface-primary)] text-[var(--color-text-primary)]",
16
+ e
17
+ ),
18
+ ...a
19
+ }
20
+ ));
21
+ c.displayName = t.displayName;
22
+ const L = ({ children: e, ...a }) => /* @__PURE__ */ r(m.Root, { ...a, children: /* @__PURE__ */ l(m.Portal, { children: [
23
+ /* @__PURE__ */ r(
24
+ m.Overlay,
25
+ {
26
+ className: s(
27
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/25"
28
+ )
29
+ }
30
+ ),
31
+ /* @__PURE__ */ r(
32
+ m.Content,
33
+ {
34
+ className: s(
35
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[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%] fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden rounded-l border border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] p-0 shadow-lg duration-200 max-w-[450px]"
36
+ ),
37
+ "aria-describedby": void 0,
38
+ children: /* @__PURE__ */ r(c, { className: "[&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4 [&_[cmdk-item]]:px-[var(--space-m)] [&_[cmdk-item]]:min-h-[var(--size-m)] [&_[cmdk-item]]:py-[var(--space-s)] [&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4", children: e })
39
+ }
40
+ )
41
+ ] }) }), N = /* @__PURE__ */ d.forwardRef(({ className: e, size: a = "m", clearable: o = !0, onClear: u, value: i, ...x }, f) => {
42
+ const p = o && i && String(i).length > 0, v = a === "s" ? "s" : "m", y = a === "s" ? "pl-[30px]" : "pl-[34px]", g = p ? "pr-[calc(var(--size-s)+var(--space-m)+var(--space-s))]" : "";
43
+ return /* @__PURE__ */ l("div", { className: "relative p-[var(--space-s)] border-b border-[var(--color-border-primary-subtle)]", "cmdk-input-wrapper": "", children: [
44
+ /* @__PURE__ */ r(
45
+ b,
46
+ {
47
+ name: "search",
48
+ size: v,
49
+ color: "tertiary",
50
+ className: "absolute left-[18px] top-1/2 -translate-y-1/2 pointer-events-none"
51
+ }
52
+ ),
53
+ /* @__PURE__ */ r(
54
+ t.Input,
55
+ {
56
+ ref: f,
57
+ value: i,
58
+ className: s(
59
+ h({ size: a, variant: "default" }),
60
+ y,
61
+ g,
62
+ // Force typography to override cmdk defaults
63
+ a === "s" && "[&]:text-body-sm",
64
+ a === "m" && "[&]:text-body-md",
65
+ a === "l" && "[&]:text-body-md",
66
+ // Force focus styles to override cmdk defaults - includes outer blue ring
67
+ "[&]:focus-visible:outline-none",
68
+ "[&]:focus-visible:border-[#005f85]",
69
+ "[&]:focus-visible:!shadow-[0px_0px_0px_2px_rgba(0,95,133,0.2),0px_3px_4px_0px_rgba(0,14,20,0.03)]",
70
+ "[&]:focus:outline-none",
71
+ "[&]:focus:!shadow-[0px_0px_0px_2px_rgba(0,95,133,0.2),0px_3px_4px_0px_rgba(0,14,20,0.03)]",
72
+ e
73
+ ),
74
+ ...x
75
+ }
76
+ ),
77
+ p && /* @__PURE__ */ r(
78
+ _,
79
+ {
80
+ type: "button",
81
+ variant: "ghost",
82
+ size: "s",
83
+ icon: "x",
84
+ iconPosition: "only",
85
+ onClick: (n) => {
86
+ n.preventDefault(), n.stopPropagation(), u?.();
87
+ },
88
+ className: "absolute right-[var(--space-m)] top-1/2 -translate-y-1/2 active:!translate-y-[-50%]",
89
+ "aria-label": "Clear search"
90
+ }
91
+ )
92
+ ] });
93
+ });
94
+ N.displayName = t.Input.displayName;
95
+ const w = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
96
+ t.List,
97
+ {
98
+ ref: o,
99
+ className: s("max-h-[300px] overflow-y-auto overflow-x-hidden", e),
100
+ ...a
101
+ }
102
+ ));
103
+ w.displayName = t.List.displayName;
104
+ const k = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
105
+ t.Empty,
106
+ {
107
+ ref: o,
108
+ className: s("py-6 text-center [&]:text-body-md text-[var(--color-text-secondary)]", e),
109
+ ...a
110
+ }
111
+ ));
112
+ k.displayName = t.Empty.displayName;
113
+ const C = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
114
+ t.Group,
115
+ {
116
+ ref: o,
117
+ className: s(
118
+ "overflow-hidden p-[var(--space-s)] text-[var(--color-text-primary)] [&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:py-[var(--space-s)] [&_[cmdk-group-heading]]:[&]:text-body-medium-sm [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)]",
119
+ e
120
+ ),
121
+ ...a
122
+ }
123
+ ));
124
+ C.displayName = t.Group.displayName;
125
+ const R = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
126
+ t.Separator,
127
+ {
128
+ ref: o,
129
+ className: s("-mx-1 h-px bg-[var(--color-border-primary-subtle)]", e),
130
+ ...a
131
+ }
132
+ ));
133
+ R.displayName = t.Separator.displayName;
134
+ const I = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE__ */ r(
135
+ t.Item,
136
+ {
137
+ ref: o,
138
+ className: s(
139
+ "[&]:text-body-md relative flex cursor-pointer select-none items-center rounded-m px-[var(--space-m)] min-h-[var(--size-m)] py-[var(--space-s)] outline-none transition-colors aria-selected:bg-[var(--color-background-neutral-subtlest-hovered)] aria-selected:text-[var(--color-text-primary)] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
140
+ e
141
+ ),
142
+ ...a
143
+ }
144
+ ));
145
+ I.displayName = t.Item.displayName;
146
+ export {
147
+ c as Command,
148
+ L as CommandDialog,
149
+ k as CommandEmpty,
150
+ C as CommandGroup,
151
+ N as CommandInput,
152
+ I as CommandItem,
153
+ w as CommandList,
154
+ R as CommandSeparator
155
+ };