@giddaa-housing/ui 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/dist/accordion.d.ts +9 -10
  3. package/dist/accordion.js +41 -87
  4. package/dist/activity-timeline.d.ts +12 -16
  5. package/dist/activity-timeline.js +83 -198
  6. package/dist/alert.d.ts +8 -9
  7. package/dist/alert.js +53 -111
  8. package/dist/auth-layout.d.ts +4 -4
  9. package/dist/auth-layout.js +143 -294
  10. package/dist/avatar.d.ts +6 -6
  11. package/dist/avatar.js +49 -19
  12. package/dist/badge.d.ts +12 -14
  13. package/dist/badge.js +71 -11
  14. package/dist/bar-chart.d.ts +65 -67
  15. package/dist/bar-chart.js +232 -207
  16. package/dist/breadcrumb.d.ts +5 -5
  17. package/dist/breadcrumb.js +56 -118
  18. package/dist/bullet-chart.d.ts +33 -33
  19. package/dist/bullet-chart.js +121 -148
  20. package/dist/button-BZIeyUw6.d.ts +17 -0
  21. package/dist/button-group.d.ts +13 -16
  22. package/dist/button-group.js +39 -88
  23. package/dist/button.d.ts +2 -19
  24. package/dist/button.js +94 -13
  25. package/dist/calendar.d.ts +6 -6
  26. package/dist/calendar.js +138 -17
  27. package/dist/card.d.ts +14 -16
  28. package/dist/card.js +59 -145
  29. package/dist/carousel.d.ts +34 -35
  30. package/dist/carousel.js +335 -20
  31. package/dist/chart.d.ts +58 -59
  32. package/dist/chart.js +376 -28
  33. package/dist/checkbox.d.ts +10 -12
  34. package/dist/checkbox.js +82 -47
  35. package/dist/cn-BI_4DMBf.js +23 -0
  36. package/dist/collapsible.d.ts +7 -8
  37. package/dist/collapsible.js +22 -47
  38. package/dist/combobox.d.ts +10 -10
  39. package/dist/combobox.js +236 -44
  40. package/dist/cta.d.ts +12 -14
  41. package/dist/cta.js +175 -341
  42. package/dist/currency-selector.d.ts +31 -32
  43. package/dist/currency-selector.js +106 -184
  44. package/dist/data-table.d.ts +164 -0
  45. package/dist/data-table.js +673 -0
  46. package/dist/date-picker.d.ts +22 -23
  47. package/dist/date-picker.js +119 -192
  48. package/dist/details-card.d.ts +7 -7
  49. package/dist/details-card.js +104 -253
  50. package/dist/dialog.d.ts +13 -14
  51. package/dist/dialog.js +116 -209
  52. package/dist/dropdown-menu.d.ts +13 -13
  53. package/dist/dropdown-menu.js +180 -37
  54. package/dist/dropzone.d.ts +55 -55
  55. package/dist/dropzone.js +327 -439
  56. package/dist/editorial-card.d.ts +23 -25
  57. package/dist/editorial-card.js +129 -296
  58. package/dist/empty-state.d.ts +8 -9
  59. package/dist/empty-state.js +48 -105
  60. package/dist/field.d.ts +23 -25
  61. package/dist/field.js +110 -221
  62. package/dist/filter.d.ts +118 -0
  63. package/dist/filter.js +775 -0
  64. package/dist/footer.d.ts +8 -15
  65. package/dist/footer.js +197 -400
  66. package/dist/funnel-chart.d.ts +38 -41
  67. package/dist/funnel-chart.js +167 -189
  68. package/dist/gallery-indicator.d.ts +11 -12
  69. package/dist/gallery-indicator.js +75 -12
  70. package/dist/heatmap-chart.d.ts +47 -50
  71. package/dist/heatmap-chart.js +186 -237
  72. package/dist/infotip.d.ts +8 -9
  73. package/dist/infotip.js +33 -59
  74. package/dist/input-CfoEJ8A6.d.ts +12 -0
  75. package/dist/input-group.d.ts +16 -20
  76. package/dist/input-group.js +99 -23
  77. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  78. package/dist/input-size-context.d.ts +2 -11
  79. package/dist/input-size-context.js +17 -9
  80. package/dist/input.d.ts +2 -13
  81. package/dist/input.js +27 -11
  82. package/dist/item.d.ts +7 -8
  83. package/dist/item.js +22 -59
  84. package/dist/kpi-card.d.ts +18 -20
  85. package/dist/kpi-card.js +84 -192
  86. package/dist/label.d.ts +6 -6
  87. package/dist/label.js +40 -8
  88. package/dist/line-chart.d.ts +88 -89
  89. package/dist/line-chart.js +142 -104
  90. package/dist/logo.d.ts +4 -4
  91. package/dist/logo.js +92 -9
  92. package/dist/map-indicator.d.ts +7 -7
  93. package/dist/map-indicator.js +80 -106
  94. package/dist/match.d.ts +10 -11
  95. package/dist/match.js +62 -107
  96. package/dist/media-gallery-hero.d.ts +40 -42
  97. package/dist/media-gallery-hero.js +182 -343
  98. package/dist/media-player.d.ts +17 -17
  99. package/dist/media-player.js +873 -1348
  100. package/dist/multi-step-form.d.ts +56 -0
  101. package/dist/multi-step-form.js +342 -0
  102. package/dist/number-input.d.ts +34 -34
  103. package/dist/number-input.js +61 -117
  104. package/dist/page-header.d.ts +10 -11
  105. package/dist/page-header.js +34 -79
  106. package/dist/pagination.d.ts +17 -21
  107. package/dist/pagination.js +132 -207
  108. package/dist/password-input.d.ts +5 -13
  109. package/dist/password-input.js +31 -55
  110. package/dist/phone-input.d.ts +19 -20
  111. package/dist/phone-input.js +226 -344
  112. package/dist/photo-gallery.d.ts +19 -19
  113. package/dist/photo-gallery.js +313 -449
  114. package/dist/picker-lzgmsNfG.js +32 -0
  115. package/dist/pie-chart.d.ts +60 -60
  116. package/dist/pie-chart.js +140 -148
  117. package/dist/popover.d.ts +9 -9
  118. package/dist/popover.js +72 -23
  119. package/dist/price-tag.d.ts +26 -27
  120. package/dist/price-tag.js +113 -173
  121. package/dist/progress.d.ts +16 -17
  122. package/dist/progress.js +169 -24
  123. package/dist/property-listing-card.d.ts +14 -17
  124. package/dist/property-listing-card.js +102 -220
  125. package/dist/radar-chart.d.ts +29 -31
  126. package/dist/radar-chart.js +162 -137
  127. package/dist/radio-group.d.ts +11 -13
  128. package/dist/radio-group.js +46 -60
  129. package/dist/review-block.d.ts +14 -16
  130. package/dist/review-block.js +154 -10
  131. package/dist/rich-text-editor.d.ts +30 -14
  132. package/dist/rich-text-editor.js +592 -716
  133. package/dist/scatter-chart.d.ts +45 -47
  134. package/dist/scatter-chart.js +236 -240
  135. package/dist/search-input.d.ts +8 -16
  136. package/dist/search-input.js +57 -109
  137. package/dist/select.d.ts +8 -8
  138. package/dist/select.js +144 -27
  139. package/dist/separator.d.ts +8 -9
  140. package/dist/separator.js +32 -8
  141. package/dist/sheet.d.ts +11 -11
  142. package/dist/sheet.js +103 -24
  143. package/dist/sidebar.d.ts +32 -37
  144. package/dist/sidebar.js +364 -634
  145. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  146. package/dist/size-context.d.ts +2 -11
  147. package/dist/size-context.js +17 -9
  148. package/dist/skeleton.d.ts +4 -5
  149. package/dist/skeleton.js +12 -8
  150. package/dist/slider.d.ts +8 -9
  151. package/dist/slider.js +64 -135
  152. package/dist/sparkline.d.ts +43 -46
  153. package/dist/sparkline.js +221 -251
  154. package/dist/stepper.d.ts +23 -24
  155. package/dist/stepper.js +149 -246
  156. package/dist/styles.css +510 -108
  157. package/dist/switch.d.ts +10 -12
  158. package/dist/switch.js +48 -70
  159. package/dist/table-card.d.ts +35 -0
  160. package/dist/table-card.js +125 -0
  161. package/dist/table.d.ts +18 -14
  162. package/dist/table.js +113 -154
  163. package/dist/tabs.d.ts +23 -15
  164. package/dist/tabs.js +71 -18
  165. package/dist/tag.d.ts +21 -23
  166. package/dist/tag.js +103 -159
  167. package/dist/testimonial-block.d.ts +18 -19
  168. package/dist/testimonial-block.js +189 -358
  169. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  170. package/dist/textarea.d.ts +2 -12
  171. package/dist/textarea.js +24 -11
  172. package/dist/time-picker.d.ts +11 -11
  173. package/dist/time-picker.js +245 -302
  174. package/dist/toast.d.ts +16 -18
  175. package/dist/toast.js +154 -205
  176. package/dist/tooltip.d.ts +8 -9
  177. package/dist/tooltip.js +37 -12
  178. package/dist/tree-map.d.ts +54 -57
  179. package/dist/tree-map.js +227 -269
  180. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  181. package/dist/waterfall-chart.d.ts +94 -97
  182. package/dist/waterfall-chart.js +455 -552
  183. package/package.json +28 -9
  184. package/dist/accordion.js.map +0 -1
  185. package/dist/activity-timeline.js.map +0 -1
  186. package/dist/alert.js.map +0 -1
  187. package/dist/auth-layout.js.map +0 -1
  188. package/dist/avatar.js.map +0 -1
  189. package/dist/badge.js.map +0 -1
  190. package/dist/bar-chart.js.map +0 -1
  191. package/dist/breadcrumb.js.map +0 -1
  192. package/dist/bullet-chart.js.map +0 -1
  193. package/dist/button-group.js.map +0 -1
  194. package/dist/button.js.map +0 -1
  195. package/dist/calendar.js.map +0 -1
  196. package/dist/card.js.map +0 -1
  197. package/dist/carousel.js.map +0 -1
  198. package/dist/chart.js.map +0 -1
  199. package/dist/checkbox.js.map +0 -1
  200. package/dist/chunk-322YCNVL.js +0 -278
  201. package/dist/chunk-322YCNVL.js.map +0 -1
  202. package/dist/chunk-3ACQVT7A.js +0 -25
  203. package/dist/chunk-3ACQVT7A.js.map +0 -1
  204. package/dist/chunk-3T65TLJX.js +0 -334
  205. package/dist/chunk-3T65TLJX.js.map +0 -1
  206. package/dist/chunk-6ZSGQHH2.js +0 -192
  207. package/dist/chunk-6ZSGQHH2.js.map +0 -1
  208. package/dist/chunk-7TBMLFGW.js +0 -41
  209. package/dist/chunk-7TBMLFGW.js.map +0 -1
  210. package/dist/chunk-B4H6RNDH.js +0 -135
  211. package/dist/chunk-B4H6RNDH.js.map +0 -1
  212. package/dist/chunk-BUXCGZ6X.js +0 -219
  213. package/dist/chunk-BUXCGZ6X.js.map +0 -1
  214. package/dist/chunk-CHII2QHH.js +0 -58
  215. package/dist/chunk-CHII2QHH.js.map +0 -1
  216. package/dist/chunk-DMNOXRRW.js +0 -147
  217. package/dist/chunk-DMNOXRRW.js.map +0 -1
  218. package/dist/chunk-EFSOSSIC.js +0 -130
  219. package/dist/chunk-EFSOSSIC.js.map +0 -1
  220. package/dist/chunk-FZDSVMKY.js +0 -363
  221. package/dist/chunk-FZDSVMKY.js.map +0 -1
  222. package/dist/chunk-GJOFIJS3.js +0 -246
  223. package/dist/chunk-GJOFIJS3.js.map +0 -1
  224. package/dist/chunk-HL3ZSYES.js +0 -23
  225. package/dist/chunk-HL3ZSYES.js.map +0 -1
  226. package/dist/chunk-JVLUBAPB.js +0 -129
  227. package/dist/chunk-JVLUBAPB.js.map +0 -1
  228. package/dist/chunk-KDPYSOYZ.js +0 -64
  229. package/dist/chunk-KDPYSOYZ.js.map +0 -1
  230. package/dist/chunk-KSMDANKI.js +0 -43
  231. package/dist/chunk-KSMDANKI.js.map +0 -1
  232. package/dist/chunk-MEKCCOP5.js +0 -46
  233. package/dist/chunk-MEKCCOP5.js.map +0 -1
  234. package/dist/chunk-NOFXVRWL.js +0 -451
  235. package/dist/chunk-NOFXVRWL.js.map +0 -1
  236. package/dist/chunk-PC5MHNVA.js +0 -171
  237. package/dist/chunk-PC5MHNVA.js.map +0 -1
  238. package/dist/chunk-QKAQZ2GU.js +0 -122
  239. package/dist/chunk-QKAQZ2GU.js.map +0 -1
  240. package/dist/chunk-QZHSHSVV.js +0 -26
  241. package/dist/chunk-QZHSHSVV.js.map +0 -1
  242. package/dist/chunk-RBMK26XD.js +0 -19
  243. package/dist/chunk-RBMK26XD.js.map +0 -1
  244. package/dist/chunk-SFNJGF6M.js +0 -262
  245. package/dist/chunk-SFNJGF6M.js.map +0 -1
  246. package/dist/chunk-UJJNLGTM.js +0 -112
  247. package/dist/chunk-UJJNLGTM.js.map +0 -1
  248. package/dist/chunk-VGR4ZWJ3.js +0 -418
  249. package/dist/chunk-VGR4ZWJ3.js.map +0 -1
  250. package/dist/chunk-XG47P6D4.js +0 -99
  251. package/dist/chunk-XG47P6D4.js.map +0 -1
  252. package/dist/chunk-XZZAHNVM.js +0 -21
  253. package/dist/chunk-XZZAHNVM.js.map +0 -1
  254. package/dist/chunk-Y4TTYVNE.js +0 -36
  255. package/dist/chunk-Y4TTYVNE.js.map +0 -1
  256. package/dist/chunk-YDWIHW6Q.js +0 -69
  257. package/dist/chunk-YDWIHW6Q.js.map +0 -1
  258. package/dist/collapsible.js.map +0 -1
  259. package/dist/combobox.js.map +0 -1
  260. package/dist/cta.js.map +0 -1
  261. package/dist/currency-selector.js.map +0 -1
  262. package/dist/date-picker.js.map +0 -1
  263. package/dist/details-card.js.map +0 -1
  264. package/dist/dialog.js.map +0 -1
  265. package/dist/dropdown-menu.js.map +0 -1
  266. package/dist/dropzone.js.map +0 -1
  267. package/dist/editorial-card.js.map +0 -1
  268. package/dist/empty-state.js.map +0 -1
  269. package/dist/field.js.map +0 -1
  270. package/dist/footer.js.map +0 -1
  271. package/dist/funnel-chart.js.map +0 -1
  272. package/dist/gallery-indicator.js.map +0 -1
  273. package/dist/heatmap-chart.js.map +0 -1
  274. package/dist/infotip.js.map +0 -1
  275. package/dist/input-group.js.map +0 -1
  276. package/dist/input-size-context.js.map +0 -1
  277. package/dist/input.js.map +0 -1
  278. package/dist/item.js.map +0 -1
  279. package/dist/kpi-card.js.map +0 -1
  280. package/dist/label.js.map +0 -1
  281. package/dist/line-chart.js.map +0 -1
  282. package/dist/logo.js.map +0 -1
  283. package/dist/map-indicator.js.map +0 -1
  284. package/dist/match.js.map +0 -1
  285. package/dist/media-gallery-hero.js.map +0 -1
  286. package/dist/media-player.js.map +0 -1
  287. package/dist/number-input.js.map +0 -1
  288. package/dist/page-header.js.map +0 -1
  289. package/dist/pagination.js.map +0 -1
  290. package/dist/password-input.js.map +0 -1
  291. package/dist/phone-input.js.map +0 -1
  292. package/dist/photo-gallery.js.map +0 -1
  293. package/dist/pie-chart.js.map +0 -1
  294. package/dist/popover.js.map +0 -1
  295. package/dist/price-tag.js.map +0 -1
  296. package/dist/progress.js.map +0 -1
  297. package/dist/property-listing-card.js.map +0 -1
  298. package/dist/radar-chart.js.map +0 -1
  299. package/dist/radio-group.js.map +0 -1
  300. package/dist/review-block.js.map +0 -1
  301. package/dist/rich-text-editor.js.map +0 -1
  302. package/dist/scatter-chart.js.map +0 -1
  303. package/dist/search-input.js.map +0 -1
  304. package/dist/select.js.map +0 -1
  305. package/dist/separator.js.map +0 -1
  306. package/dist/sheet.js.map +0 -1
  307. package/dist/sidebar.js.map +0 -1
  308. package/dist/size-context.js.map +0 -1
  309. package/dist/skeleton.js.map +0 -1
  310. package/dist/slider.js.map +0 -1
  311. package/dist/sparkline.js.map +0 -1
  312. package/dist/stepper.js.map +0 -1
  313. package/dist/switch.js.map +0 -1
  314. package/dist/tab-list.d.ts +0 -38
  315. package/dist/tab-list.js +0 -123
  316. package/dist/tab-list.js.map +0 -1
  317. package/dist/table.js.map +0 -1
  318. package/dist/tabs.js.map +0 -1
  319. package/dist/tag.js.map +0 -1
  320. package/dist/testimonial-block.js.map +0 -1
  321. package/dist/textarea.js.map +0 -1
  322. package/dist/time-picker.js.map +0 -1
  323. package/dist/toast.js.map +0 -1
  324. package/dist/tooltip.js.map +0 -1
  325. package/dist/tree-map.js.map +0 -1
  326. package/dist/waterfall-chart.js.map +0 -1
@@ -1,192 +1,114 @@
1
1
  "use client";
2
- import {
3
- useUncontrolled
4
- } from "./chunk-QZHSHSVV.js";
5
- import {
6
- Select,
7
- SelectContent,
8
- SelectItem,
9
- SelectTrigger,
10
- SelectValue
11
- } from "./chunk-SFNJGF6M.js";
12
- import "./chunk-HL3ZSYES.js";
13
- import {
14
- cn
15
- } from "./chunk-Y4TTYVNE.js";
16
-
17
- // src/currency-selector.tsx
18
- import { cva } from "class-variance-authority";
2
+ import { t as cn } from "./cn-BI_4DMBf.js";
3
+ import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
4
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select.js";
19
5
  import { CheckIcon } from "lucide-react";
20
6
  import { jsx, jsxs } from "react/jsx-runtime";
21
- var DEFAULT_FLAG = [
22
- { color: "#1f8f55" },
23
- { color: "#ffffff" },
24
- { color: "#1f8f55" }
7
+ import { cva } from "class-variance-authority";
8
+ //#region src/currency-selector.tsx
9
+ const DEFAULT_FLAG = [
10
+ { color: "#1f8f55" },
11
+ { color: "#ffffff" },
12
+ { color: "#1f8f55" }
25
13
  ];
26
- var currencySelectorTriggerVariants = cva(
27
- "group/currency-selector inline-flex w-fit shrink-0 items-center rounded-full border-0 font-bold whitespace-nowrap outline-none transition-[background-color,color,box-shadow] focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60 data-popup-open:text-fg-primary [&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:text-current",
28
- {
29
- variants: {
30
- size: {
31
- sm: "h-8 gap-1.5 px-3 text-gdt-xs",
32
- md: "h-11 gap-2 px-4 text-gdt-sm",
33
- lg: "h-12 gap-2.5 px-5 text-gdt-md"
34
- },
35
- withBackground: {
36
- true: "bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-popup-open:bg-action-tertiary-hover",
37
- false: "bg-transparent px-0 text-fg-primary hover:text-fg-brand active:text-fg-brand data-popup-open:bg-transparent"
38
- }
39
- },
40
- defaultVariants: {
41
- size: "md",
42
- withBackground: true
43
- }
44
- }
45
- );
14
+ const currencySelectorTriggerVariants = cva("group/currency-selector inline-flex w-fit shrink-0 items-center rounded-full border-0 font-bold whitespace-nowrap outline-none transition-[background-color,color,box-shadow] focus-visible:shadow-[0_0_0_2px_var(--color-line-focus)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60 data-popup-open:text-fg-primary [&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:text-current", {
15
+ variants: {
16
+ size: {
17
+ sm: "h-8 gap-1.5 px-3 text-gdt-xs",
18
+ md: "h-11 gap-2 px-4 text-gdt-sm",
19
+ lg: "h-12 gap-2.5 px-5 text-gdt-md"
20
+ },
21
+ withBackground: {
22
+ true: "bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-popup-open:bg-action-tertiary-hover",
23
+ false: "bg-transparent px-0 text-fg-primary hover:text-fg-brand active:text-fg-brand data-popup-open:bg-transparent"
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ size: "md",
28
+ withBackground: true
29
+ }
30
+ });
46
31
  function findOption(options, value) {
47
- return options.find((option) => option.code === value);
32
+ return options.find((option) => option.code === value);
48
33
  }
49
- function CurrencyFlag({
50
- flag = DEFAULT_FLAG,
51
- label,
52
- className
53
- }) {
54
- const total = flag.reduce((sum, stripe) => sum + (stripe.size ?? 1), 0);
55
- let cursor = 0;
56
- const stops = flag.flatMap((stripe) => {
57
- const start = cursor;
58
- cursor += (stripe.size ?? 1) / total * 100;
59
- return [
60
- `${stripe.color} ${start.toFixed(2)}%`,
61
- `${stripe.color} ${cursor.toFixed(2)}%`
62
- ];
63
- });
64
- return /* @__PURE__ */ jsx(
65
- "span",
66
- {
67
- role: "img",
68
- "aria-label": label ?? "Currency flag",
69
- "data-slot": "currency-flag",
70
- className: cn(
71
- "inline-block h-4 w-6 shrink-0 overflow-hidden rounded-[3px] bg-cover shadow-[inset_0_0_0_1px_rgb(0_0_0/0.04)]",
72
- className
73
- ),
74
- style: { backgroundImage: `linear-gradient(90deg, ${stops.join(", ")})` }
75
- }
76
- );
34
+ function CurrencyFlag({ flag = DEFAULT_FLAG, label, className }) {
35
+ const total = flag.reduce((sum, stripe) => sum + (stripe.size ?? 1), 0);
36
+ let cursor = 0;
37
+ const stops = flag.flatMap((stripe) => {
38
+ const start = cursor;
39
+ cursor += (stripe.size ?? 1) / total * 100;
40
+ return [`${stripe.color} ${start.toFixed(2)}%`, `${stripe.color} ${cursor.toFixed(2)}%`];
41
+ });
42
+ return /* @__PURE__ */ jsx("span", {
43
+ role: "img",
44
+ "aria-label": label ?? "Currency flag",
45
+ "data-slot": "currency-flag",
46
+ className: cn("inline-block h-4 w-6 shrink-0 overflow-hidden rounded-[3px] bg-cover shadow-[inset_0_0_0_1px_rgb(0_0_0/0.04)]", className),
47
+ style: { backgroundImage: `linear-gradient(90deg, ${stops.join(", ")})` }
48
+ });
77
49
  }
78
- function CurrencySelector({
79
- options,
80
- value,
81
- defaultValue,
82
- onValueChange,
83
- open,
84
- defaultOpen,
85
- onOpenChange,
86
- size = "md",
87
- withBackground = true,
88
- showFlag = true,
89
- showOptionFlags = true,
90
- contentClassName,
91
- className,
92
- placeholder = "Select currency",
93
- type = "button",
94
- ...props
95
- }) {
96
- const fallbackValue = options[0]?.code;
97
- const [selectedValue, setSelectedValue] = useUncontrolled({
98
- value,
99
- defaultValue,
100
- finalValue: fallbackValue,
101
- onChange: (nextValue) => {
102
- const nextOption = findOption(options, nextValue);
103
- if (nextOption) {
104
- onValueChange?.(nextValue, nextOption);
105
- }
106
- }
107
- });
108
- const selectedOption = findOption(options, selectedValue);
109
- const handleValueChange = (nextValue) => {
110
- if (nextValue) {
111
- setSelectedValue(nextValue);
112
- }
113
- };
114
- return /* @__PURE__ */ jsxs(
115
- Select,
116
- {
117
- value: selectedValue,
118
- onValueChange: handleValueChange,
119
- open,
120
- defaultOpen,
121
- onOpenChange,
122
- size,
123
- children: [
124
- /* @__PURE__ */ jsxs(
125
- SelectTrigger,
126
- {
127
- type,
128
- unstyled: true,
129
- className: cn(
130
- currencySelectorTriggerVariants({
131
- size,
132
- withBackground
133
- }),
134
- className
135
- ),
136
- ...props,
137
- children: [
138
- showFlag && selectedOption ? /* @__PURE__ */ jsx(
139
- CurrencyFlag,
140
- {
141
- flag: selectedOption.flag,
142
- label: `${selectedOption.countryCode ?? selectedOption.code} flag`
143
- }
144
- ) : null,
145
- /* @__PURE__ */ jsx(SelectValue, { placeholder, children: selectedOption?.code ?? placeholder })
146
- ]
147
- }
148
- ),
149
- /* @__PURE__ */ jsx(
150
- SelectContent,
151
- {
152
- align: "start",
153
- sideOffset: 8,
154
- className: cn(
155
- "w-65 rounded-[18px] border-line-subtle bg-surface-overlay p-2 shadow-3",
156
- contentClassName
157
- ),
158
- children: options.map((option) => /* @__PURE__ */ jsxs(
159
- SelectItem,
160
- {
161
- value: option.code,
162
- className: "min-h-12 rounded-lg px-3 text-gdt-sm data-selected:bg-surface-brand-subtle data-selected:font-normal data-selected:text-fg-brand data-highlighted:bg-surface-brand-subtle",
163
- children: [
164
- showOptionFlags ? /* @__PURE__ */ jsx(
165
- CurrencyFlag,
166
- {
167
- flag: option.flag,
168
- label: `${option.countryCode ?? option.code} flag`
169
- }
170
- ) : null,
171
- /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate", children: [
172
- option.code,
173
- " - ",
174
- option.label
175
- ] }),
176
- option.code === selectedValue ? /* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto size-4 text-fg-brand" }) : null
177
- ]
178
- },
179
- option.code
180
- ))
181
- }
182
- )
183
- ]
184
- }
185
- );
50
+ function CurrencySelector({ options, value, defaultValue, onValueChange, open, defaultOpen, onOpenChange, size = "md", withBackground = true, showFlag = true, showOptionFlags = true, contentClassName, className, placeholder = "Select currency", type = "button", ...props }) {
51
+ const fallbackValue = options[0]?.code;
52
+ const [selectedValue, setSelectedValue] = useUncontrolled({
53
+ value,
54
+ defaultValue,
55
+ finalValue: fallbackValue,
56
+ onChange: (nextValue) => {
57
+ const nextOption = findOption(options, nextValue);
58
+ if (nextOption) onValueChange?.(nextValue, nextOption);
59
+ }
60
+ });
61
+ const selectedOption = findOption(options, selectedValue);
62
+ const handleValueChange = (nextValue) => {
63
+ if (nextValue) setSelectedValue(nextValue);
64
+ };
65
+ return /* @__PURE__ */ jsxs(Select, {
66
+ value: selectedValue,
67
+ onValueChange: handleValueChange,
68
+ open,
69
+ defaultOpen,
70
+ onOpenChange,
71
+ size,
72
+ children: [/* @__PURE__ */ jsxs(SelectTrigger, {
73
+ type,
74
+ unstyled: true,
75
+ className: cn(currencySelectorTriggerVariants({
76
+ size,
77
+ withBackground
78
+ }), className),
79
+ ...props,
80
+ children: [showFlag && selectedOption ? /* @__PURE__ */ jsx(CurrencyFlag, {
81
+ flag: selectedOption.flag,
82
+ label: `${selectedOption.countryCode ?? selectedOption.code} flag`
83
+ }) : null, /* @__PURE__ */ jsx(SelectValue, {
84
+ placeholder,
85
+ children: selectedOption?.code ?? placeholder
86
+ })]
87
+ }), /* @__PURE__ */ jsx(SelectContent, {
88
+ align: "start",
89
+ sideOffset: 8,
90
+ className: cn("w-65 rounded-[18px] border-line-subtle bg-surface-overlay p-2 shadow-3", contentClassName),
91
+ children: options.map((option) => /* @__PURE__ */ jsxs(SelectItem, {
92
+ value: option.code,
93
+ className: "min-h-12 rounded-lg px-3 text-gdt-sm data-selected:bg-surface-brand-subtle data-selected:font-normal data-selected:text-fg-brand data-highlighted:bg-surface-brand-subtle",
94
+ children: [
95
+ showOptionFlags ? /* @__PURE__ */ jsx(CurrencyFlag, {
96
+ flag: option.flag,
97
+ label: `${option.countryCode ?? option.code} flag`
98
+ }) : null,
99
+ /* @__PURE__ */ jsxs("span", {
100
+ className: "min-w-0 flex-1 truncate",
101
+ children: [
102
+ option.code,
103
+ " - ",
104
+ option.label
105
+ ]
106
+ }),
107
+ option.code === selectedValue ? /* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto size-4 text-fg-brand" }) : null
108
+ ]
109
+ }, option.code))
110
+ })]
111
+ });
186
112
  }
187
- export {
188
- CurrencyFlag,
189
- CurrencySelector,
190
- currencySelectorTriggerVariants
191
- };
192
- //# sourceMappingURL=currency-selector.js.map
113
+ //#endregion
114
+ export { CurrencyFlag, CurrencySelector, currencySelectorTriggerVariants };
@@ -0,0 +1,164 @@
1
+ import { t as Button } from "./button-BZIeyUw6.js";
2
+ import { Empty } from "./empty-state.js";
3
+ import { FilterApplyButtonProps, FilterContentProps, FilterProps, FilterResetButtonProps } from "./filter.js";
4
+ import { Pagination } from "./pagination.js";
5
+ import { PopoverBody, PopoverContent, PopoverFooter, PopoverHeader } from "./popover.js";
6
+ import { Table as Table$1 } from "./table.js";
7
+ import * as React from "react";
8
+ import { ColumnDef, Row, Table, TableOptions } from "@tanstack/react-table";
9
+ //#region src/data-table.d.ts
10
+ declare module "@tanstack/react-table" {
11
+ interface ColumnMeta<TData, TValue> extends DataTableColumnMeta {}
12
+ }
13
+ type DataTableColumnMeta = {
14
+ cardLabel?: React.ReactNode;
15
+ hideInCard?: boolean;
16
+ isPinned?: boolean;
17
+ pinPosition?: "left" | "right";
18
+ skeletonType?: "default" | "image-description";
19
+ useAsCardBadge?: boolean;
20
+ useAsCardSubtitle?: boolean;
21
+ useAsCardTitle?: boolean;
22
+ };
23
+ type DataTableColumnDef<TData, TValue = unknown> = ColumnDef<TData, TValue>;
24
+ type DataTableRow<TData> = Row<TData>;
25
+ type DataTableInstance<TData> = Table<TData>;
26
+ type DataTableContextValue<TData> = {
27
+ isLoading?: boolean;
28
+ onRowClick?: (row: Row<TData>) => void;
29
+ table: Table<TData>;
30
+ };
31
+ declare function useDataTableContext<TData>(): DataTableContextValue<TData>;
32
+ type UseDataTableOptions<TData, TValue = unknown> = Omit<TableOptions<TData>, "columns" | "data" | "enableRowSelection" | "getCoreRowModel"> & {
33
+ columns: ColumnDef<TData, TValue>[];
34
+ data: TData[];
35
+ enableRowSelection?: boolean;
36
+ };
37
+ declare function useDataTable<TData, TValue = unknown>({ columns, data, enableRowSelection, initialState, getSortedRowModel: getSortedRowModelOption, ...options }: UseDataTableOptions<TData, TValue>): Table<TData>;
38
+ type DataTableRootProps<TData> = React.ComponentProps<"div"> & {
39
+ isLoading?: boolean;
40
+ onRowClick?: (row: Row<TData>) => void;
41
+ table: Table<TData>;
42
+ };
43
+ declare function DataTableRoot<TData>({ children, className, isLoading, onRowClick, table, ...props }: DataTableRootProps<TData>): React.JSX.Element;
44
+ type DataTableToolbarProps = React.ComponentProps<"div">;
45
+ declare function DataTableToolbar({ className, ...props }: DataTableToolbarProps): React.JSX.Element;
46
+ type DataTableFilterProps = Omit<FilterProps, "children"> & {
47
+ applyButtonProps?: FilterApplyButtonProps;
48
+ children?: React.ReactNode;
49
+ closeOnApply?: boolean;
50
+ closeOnReset?: boolean;
51
+ contentProps?: FilterContentProps;
52
+ defaultOpen?: boolean;
53
+ footer?: React.ReactNode;
54
+ onOpenChange?: (open: boolean) => void;
55
+ open?: boolean;
56
+ popoverBodyProps?: React.ComponentProps<typeof PopoverBody>;
57
+ popoverContentProps?: Omit<React.ComponentProps<typeof PopoverContent>, "children">;
58
+ popoverFooterProps?: React.ComponentProps<typeof PopoverFooter>;
59
+ popoverHeaderProps?: React.ComponentProps<typeof PopoverHeader>;
60
+ resetButtonProps?: FilterResetButtonProps;
61
+ title?: React.ReactNode;
62
+ trigger?: React.ReactElement;
63
+ triggerButtonProps?: Omit<React.ComponentProps<typeof Button>, "children">;
64
+ triggerCountClassName?: string;
65
+ triggerHideCountWhenZero?: boolean;
66
+ triggerLabel?: React.ReactNode;
67
+ };
68
+ declare function DataTableFilter({ applyButtonProps, children, closeOnApply, closeOnReset, contentProps, defaultJoin, defaultOpen, defaultValue, fields, footer, onApply, onOpenChange, open, popoverBodyProps, popoverContentProps, popoverFooterProps, popoverHeaderProps, resetButtonProps, title, trigger, triggerButtonProps, triggerCountClassName, triggerHideCountWhenZero, triggerLabel }: DataTableFilterProps): React.JSX.Element;
69
+ type DataTableTableProps<TData> = Omit<React.ComponentProps<typeof Table$1>, "children"> & {
70
+ emptyState?: React.ReactNode;
71
+ interactiveColumnIds?: string[];
72
+ isLoading?: boolean;
73
+ loadingRowCount?: number;
74
+ onRowClick?: (row: Row<TData>) => void;
75
+ table?: Table<TData>;
76
+ };
77
+ declare function DataTable<TData>({ containerClassName, emptyState, interactiveColumnIds, isLoading: isLoadingProp, loadingRowCount, onRowClick: onRowClickProp, table: tableProp, ...props }: DataTableTableProps<TData>): string | number | bigint | true | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | Iterable<React.ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined>;
78
+ type DataTableCardGridProps<TData> = React.ComponentProps<"div"> & {
79
+ actionsColumnId?: string;
80
+ badgeColumnId?: string;
81
+ detailColumnIds?: string[];
82
+ emptyState?: React.ReactNode;
83
+ isLoading?: boolean;
84
+ loadingCardCount?: number;
85
+ onCardClick?: (row: Row<TData>) => void;
86
+ renderActions?: (row: Row<TData>) => React.ReactNode;
87
+ renderCard?: (row: Row<TData>, args: DataTableCardGridRenderArgs<TData>) => React.ReactNode;
88
+ subtitleColumnId?: string;
89
+ table?: Table<TData>;
90
+ titleColumnId?: string;
91
+ };
92
+ type DataTableCardGridRenderArgs<TData> = {
93
+ action: React.ReactNode;
94
+ actions: React.ReactNode;
95
+ row: Row<TData>;
96
+ selection: React.ReactNode;
97
+ table: Table<TData>;
98
+ };
99
+ declare function DataTableCardGrid<TData>({ actionsColumnId, badgeColumnId, className, detailColumnIds, emptyState, isLoading: isLoadingProp, loadingCardCount, onCardClick, renderActions, renderCard, subtitleColumnId, table: tableProp, titleColumnId, ...props }: DataTableCardGridProps<TData>): string | number | bigint | true | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | Iterable<React.ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined>;
100
+ type DataTableBulkActionsRenderArgs<TData> = {
101
+ data: TData[];
102
+ rows: Row<TData>[];
103
+ table: Table<TData>;
104
+ };
105
+ type DataTableBulkActionsProps<TData> = Omit<React.ComponentProps<"div">, "children"> & {
106
+ children: React.ReactNode | ((args: DataTableBulkActionsRenderArgs<TData>) => React.ReactNode);
107
+ table?: Table<TData>;
108
+ };
109
+ declare function DataTableBulkActions<TData>({ children, className, style, table: tableProp, ...props }: DataTableBulkActionsProps<TData>): React.JSX.Element | null;
110
+ type DataTablePaginationProps<TData> = React.ComponentProps<typeof Pagination> & {
111
+ controlAppearance?: "control" | "icon";
112
+ getSummaryLabel?: (args: {
113
+ end: number;
114
+ page: number;
115
+ pageSize: number;
116
+ start: number;
117
+ totalEntries: number;
118
+ }) => React.ReactNode;
119
+ /**
120
+ * Called with the next 1-based page when a control is activated. Provide
121
+ * this (together with `page` and `pageCount`) to drive pagination from API
122
+ * state instead of the TanStack table instance.
123
+ */
124
+ onPageChange?: (page: number) => void;
125
+ /** Current 1-based page. Overrides the table's pagination state when set. */
126
+ page?: number;
127
+ /** Total number of pages. Overrides `table.getPageCount()` when set. */
128
+ pageCount?: number;
129
+ /** Current page size. Used for API-driven summaries and page count fallback. */
130
+ pageSize?: number;
131
+ showControls?: boolean;
132
+ showJumpToPage?: boolean;
133
+ showPreviousNext?: boolean;
134
+ showSummary?: boolean;
135
+ jumpToPageLabel?: React.ReactNode;
136
+ nextLabel?: React.ReactNode;
137
+ previousLabel?: React.ReactNode;
138
+ siblingCount?: number;
139
+ table?: Table<TData>;
140
+ totalEntries?: number;
141
+ };
142
+ declare function DataTablePagination<TData>({ className, controlAppearance, getSummaryLabel, jumpToPageLabel, nextLabel, onPageChange, page, pageCount: pageCountProp, pageSize: pageSizeProp, previousLabel, showControls, showJumpToPage, showPreviousNext, showSummary, siblingCount, table: tableProp, totalEntries: totalEntriesProp, ...props }: DataTablePaginationProps<TData>): React.JSX.Element | null;
143
+ type DataTablePageSizeSelectProps<TData> = {
144
+ className?: string;
145
+ label?: (pageSize: number) => React.ReactNode;
146
+ /**
147
+ * Called with the next page size. Provide this (together with `pageSize`) to
148
+ * drive the control from API state instead of the TanStack table instance.
149
+ */
150
+ onPageSizeChange?: (pageSize: number) => void;
151
+ /** Current page size. Overrides the table's pagination state when set. */
152
+ pageSize?: number;
153
+ pageSizeOptions?: number[];
154
+ table?: Table<TData>;
155
+ };
156
+ declare function DataTablePageSizeSelect<TData>({ className, label, onPageSizeChange, pageSize: pageSizeProp, pageSizeOptions, table: tableProp }: DataTablePageSizeSelectProps<TData>): React.JSX.Element;
157
+ type DataTableEmptyStateProps = {
158
+ action?: React.ReactNode;
159
+ description?: React.ReactNode;
160
+ title?: React.ReactNode;
161
+ } & React.ComponentProps<typeof Empty>;
162
+ declare function DataTableEmptyState({ action, className, description, title, ...props }: DataTableEmptyStateProps): React.JSX.Element;
163
+ //#endregion
164
+ export { DataTable, DataTableBulkActions, type DataTableBulkActionsProps, DataTableCardGrid, type DataTableCardGridProps, type DataTableCardGridRenderArgs, type DataTableColumnDef, type DataTableColumnMeta, DataTableEmptyState, DataTableFilter, type DataTableFilterProps, type DataTableInstance, DataTablePageSizeSelect, DataTablePagination, type DataTablePaginationProps, DataTableRoot, type DataTableRootProps, type DataTableRow, type DataTableTableProps, DataTableToolbar, type DataTableToolbarProps, type UseDataTableOptions, useDataTable, useDataTableContext };