@giddaa-housing/ui 1.0.0 → 1.2.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 (331) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/css/giddaa.css +12 -2
  3. package/dist/accordion.d.ts +9 -10
  4. package/dist/accordion.js +41 -87
  5. package/dist/activity-timeline.d.ts +12 -16
  6. package/dist/activity-timeline.js +83 -198
  7. package/dist/alert.d.ts +8 -9
  8. package/dist/alert.js +53 -111
  9. package/dist/auth-layout.d.ts +4 -4
  10. package/dist/auth-layout.js +143 -294
  11. package/dist/avatar.d.ts +6 -6
  12. package/dist/avatar.js +49 -19
  13. package/dist/badge.d.ts +12 -14
  14. package/dist/badge.js +71 -11
  15. package/dist/bar-chart.d.ts +65 -67
  16. package/dist/bar-chart.js +232 -207
  17. package/dist/breadcrumb.d.ts +5 -5
  18. package/dist/breadcrumb.js +56 -118
  19. package/dist/bullet-chart.d.ts +41 -37
  20. package/dist/bullet-chart.js +125 -148
  21. package/dist/button-BZIeyUw6.d.ts +17 -0
  22. package/dist/button-group.d.ts +13 -16
  23. package/dist/button-group.js +39 -88
  24. package/dist/button.d.ts +2 -19
  25. package/dist/button.js +94 -13
  26. package/dist/calendar.d.ts +6 -6
  27. package/dist/calendar.js +138 -17
  28. package/dist/card.d.ts +14 -16
  29. package/dist/card.js +59 -145
  30. package/dist/carousel.d.ts +34 -35
  31. package/dist/carousel.js +335 -20
  32. package/dist/chart.d.ts +90 -63
  33. package/dist/chart.js +573 -28
  34. package/dist/checkbox.d.ts +10 -12
  35. package/dist/checkbox.js +82 -47
  36. package/dist/cn-BI_4DMBf.js +23 -0
  37. package/dist/collapsible.d.ts +7 -8
  38. package/dist/collapsible.js +22 -47
  39. package/dist/combobox.d.ts +10 -10
  40. package/dist/combobox.js +236 -44
  41. package/dist/cta.d.ts +12 -14
  42. package/dist/cta.js +175 -341
  43. package/dist/currency-selector.d.ts +31 -32
  44. package/dist/currency-selector.js +106 -184
  45. package/dist/data-table.d.ts +168 -0
  46. package/dist/data-table.js +676 -0
  47. package/dist/date-picker.d.ts +22 -23
  48. package/dist/date-picker.js +119 -192
  49. package/dist/details-card.d.ts +7 -7
  50. package/dist/details-card.js +104 -253
  51. package/dist/dialog.d.ts +13 -14
  52. package/dist/dialog.js +116 -209
  53. package/dist/dropdown-menu.d.ts +13 -13
  54. package/dist/dropdown-menu.js +180 -37
  55. package/dist/dropzone.d.ts +55 -55
  56. package/dist/dropzone.js +327 -439
  57. package/dist/editorial-card.d.ts +23 -25
  58. package/dist/editorial-card.js +129 -296
  59. package/dist/empty-state.d.ts +8 -9
  60. package/dist/empty-state.js +48 -105
  61. package/dist/field.d.ts +23 -25
  62. package/dist/field.js +110 -221
  63. package/dist/filter.d.ts +118 -0
  64. package/dist/filter.js +775 -0
  65. package/dist/footer.d.ts +8 -15
  66. package/dist/footer.js +197 -400
  67. package/dist/funnel-chart.d.ts +49 -48
  68. package/dist/funnel-chart.js +170 -189
  69. package/dist/gallery-indicator.d.ts +11 -12
  70. package/dist/gallery-indicator.js +75 -12
  71. package/dist/heatmap-chart.d.ts +47 -50
  72. package/dist/heatmap-chart.js +186 -237
  73. package/dist/infotip.d.ts +8 -9
  74. package/dist/infotip.js +33 -59
  75. package/dist/input-CfoEJ8A6.d.ts +12 -0
  76. package/dist/input-group.d.ts +16 -20
  77. package/dist/input-group.js +99 -23
  78. package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
  79. package/dist/input-size-context.d.ts +2 -11
  80. package/dist/input-size-context.js +17 -9
  81. package/dist/input.d.ts +2 -13
  82. package/dist/input.js +27 -11
  83. package/dist/item.d.ts +7 -8
  84. package/dist/item.js +22 -59
  85. package/dist/kpi-card.d.ts +18 -20
  86. package/dist/kpi-card.js +84 -192
  87. package/dist/label.d.ts +6 -6
  88. package/dist/label.js +40 -8
  89. package/dist/line-chart.d.ts +200 -129
  90. package/dist/line-chart.js +330 -105
  91. package/dist/list-item.d.ts +22 -0
  92. package/dist/list-item.js +84 -0
  93. package/dist/logo.d.ts +4 -4
  94. package/dist/logo.js +92 -9
  95. package/dist/map-indicator.d.ts +7 -7
  96. package/dist/map-indicator.js +80 -106
  97. package/dist/match.d.ts +10 -11
  98. package/dist/match.js +62 -107
  99. package/dist/media-gallery-hero.d.ts +40 -42
  100. package/dist/media-gallery-hero.js +182 -343
  101. package/dist/media-player.d.ts +17 -17
  102. package/dist/media-player.js +873 -1348
  103. package/dist/multi-step-form.d.ts +56 -0
  104. package/dist/multi-step-form.js +342 -0
  105. package/dist/number-input.d.ts +34 -34
  106. package/dist/number-input.js +64 -117
  107. package/dist/page-header.d.ts +10 -11
  108. package/dist/page-header.js +34 -79
  109. package/dist/pagination.d.ts +17 -21
  110. package/dist/pagination.js +132 -207
  111. package/dist/password-input.d.ts +5 -13
  112. package/dist/password-input.js +31 -55
  113. package/dist/phone-input.d.ts +19 -20
  114. package/dist/phone-input.js +226 -344
  115. package/dist/photo-gallery.d.ts +19 -19
  116. package/dist/photo-gallery.js +313 -449
  117. package/dist/picker-lzgmsNfG.js +32 -0
  118. package/dist/pie-chart.d.ts +121 -90
  119. package/dist/pie-chart.js +183 -149
  120. package/dist/popover.d.ts +9 -9
  121. package/dist/popover.js +72 -23
  122. package/dist/price-tag.d.ts +26 -27
  123. package/dist/price-tag.js +113 -173
  124. package/dist/progress.d.ts +16 -17
  125. package/dist/progress.js +169 -24
  126. package/dist/property-listing-card.d.ts +14 -17
  127. package/dist/property-listing-card.js +102 -220
  128. package/dist/purchase-option-card.d.ts +79 -0
  129. package/dist/purchase-option-card.js +176 -0
  130. package/dist/radar-chart.d.ts +29 -31
  131. package/dist/radar-chart.js +162 -137
  132. package/dist/radio-group.d.ts +11 -13
  133. package/dist/radio-group.js +46 -60
  134. package/dist/review-block.d.ts +14 -16
  135. package/dist/review-block.js +154 -10
  136. package/dist/rich-text-editor.d.ts +30 -14
  137. package/dist/rich-text-editor.js +592 -716
  138. package/dist/scatter-chart.d.ts +45 -47
  139. package/dist/scatter-chart.js +236 -240
  140. package/dist/search-input.d.ts +8 -16
  141. package/dist/search-input.js +57 -109
  142. package/dist/select.d.ts +8 -8
  143. package/dist/select.js +144 -27
  144. package/dist/separator.d.ts +8 -9
  145. package/dist/separator.js +32 -8
  146. package/dist/sheet.d.ts +11 -11
  147. package/dist/sheet.js +103 -24
  148. package/dist/sidebar.d.ts +32 -37
  149. package/dist/sidebar.js +364 -634
  150. package/dist/size-context-D4mYvcg8.d.ts +10 -0
  151. package/dist/size-context.d.ts +2 -11
  152. package/dist/size-context.js +17 -9
  153. package/dist/skeleton.d.ts +4 -5
  154. package/dist/skeleton.js +12 -8
  155. package/dist/slider.d.ts +8 -9
  156. package/dist/slider.js +64 -135
  157. package/dist/sparkline.d.ts +68 -58
  158. package/dist/sparkline.js +315 -251
  159. package/dist/stepper.d.ts +23 -24
  160. package/dist/stepper.js +149 -246
  161. package/dist/styles.css +1004 -116
  162. package/dist/switch.d.ts +10 -12
  163. package/dist/switch.js +48 -70
  164. package/dist/table-card.d.ts +35 -0
  165. package/dist/table-card.js +125 -0
  166. package/dist/table.d.ts +18 -14
  167. package/dist/table.js +117 -154
  168. package/dist/tabs.d.ts +33 -15
  169. package/dist/tabs.js +110 -18
  170. package/dist/tag.d.ts +21 -23
  171. package/dist/tag.js +103 -159
  172. package/dist/testimonial-block.d.ts +18 -19
  173. package/dist/testimonial-block.js +189 -358
  174. package/dist/textarea-IS_D8pXf.d.ts +11 -0
  175. package/dist/textarea.d.ts +2 -12
  176. package/dist/textarea.js +24 -11
  177. package/dist/time-picker.d.ts +11 -11
  178. package/dist/time-picker.js +245 -302
  179. package/dist/toast.d.ts +16 -18
  180. package/dist/toast.js +154 -205
  181. package/dist/tooltip.d.ts +8 -9
  182. package/dist/tooltip.js +37 -12
  183. package/dist/tree-map.d.ts +59 -62
  184. package/dist/tree-map.js +226 -269
  185. package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
  186. package/dist/waterfall-chart.d.ts +94 -97
  187. package/dist/waterfall-chart.js +455 -552
  188. package/package.json +36 -9
  189. package/dist/accordion.js.map +0 -1
  190. package/dist/activity-timeline.js.map +0 -1
  191. package/dist/alert.js.map +0 -1
  192. package/dist/auth-layout.js.map +0 -1
  193. package/dist/avatar.js.map +0 -1
  194. package/dist/badge.js.map +0 -1
  195. package/dist/bar-chart.js.map +0 -1
  196. package/dist/breadcrumb.js.map +0 -1
  197. package/dist/bullet-chart.js.map +0 -1
  198. package/dist/button-group.js.map +0 -1
  199. package/dist/button.js.map +0 -1
  200. package/dist/calendar.js.map +0 -1
  201. package/dist/card.js.map +0 -1
  202. package/dist/carousel.js.map +0 -1
  203. package/dist/chart.js.map +0 -1
  204. package/dist/checkbox.js.map +0 -1
  205. package/dist/chunk-322YCNVL.js +0 -278
  206. package/dist/chunk-322YCNVL.js.map +0 -1
  207. package/dist/chunk-3ACQVT7A.js +0 -25
  208. package/dist/chunk-3ACQVT7A.js.map +0 -1
  209. package/dist/chunk-3T65TLJX.js +0 -334
  210. package/dist/chunk-3T65TLJX.js.map +0 -1
  211. package/dist/chunk-6ZSGQHH2.js +0 -192
  212. package/dist/chunk-6ZSGQHH2.js.map +0 -1
  213. package/dist/chunk-7TBMLFGW.js +0 -41
  214. package/dist/chunk-7TBMLFGW.js.map +0 -1
  215. package/dist/chunk-B4H6RNDH.js +0 -135
  216. package/dist/chunk-B4H6RNDH.js.map +0 -1
  217. package/dist/chunk-BUXCGZ6X.js +0 -219
  218. package/dist/chunk-BUXCGZ6X.js.map +0 -1
  219. package/dist/chunk-CHII2QHH.js +0 -58
  220. package/dist/chunk-CHII2QHH.js.map +0 -1
  221. package/dist/chunk-DMNOXRRW.js +0 -147
  222. package/dist/chunk-DMNOXRRW.js.map +0 -1
  223. package/dist/chunk-EFSOSSIC.js +0 -130
  224. package/dist/chunk-EFSOSSIC.js.map +0 -1
  225. package/dist/chunk-FZDSVMKY.js +0 -363
  226. package/dist/chunk-FZDSVMKY.js.map +0 -1
  227. package/dist/chunk-GJOFIJS3.js +0 -246
  228. package/dist/chunk-GJOFIJS3.js.map +0 -1
  229. package/dist/chunk-HL3ZSYES.js +0 -23
  230. package/dist/chunk-HL3ZSYES.js.map +0 -1
  231. package/dist/chunk-JVLUBAPB.js +0 -129
  232. package/dist/chunk-JVLUBAPB.js.map +0 -1
  233. package/dist/chunk-KDPYSOYZ.js +0 -64
  234. package/dist/chunk-KDPYSOYZ.js.map +0 -1
  235. package/dist/chunk-KSMDANKI.js +0 -43
  236. package/dist/chunk-KSMDANKI.js.map +0 -1
  237. package/dist/chunk-MEKCCOP5.js +0 -46
  238. package/dist/chunk-MEKCCOP5.js.map +0 -1
  239. package/dist/chunk-NOFXVRWL.js +0 -451
  240. package/dist/chunk-NOFXVRWL.js.map +0 -1
  241. package/dist/chunk-PC5MHNVA.js +0 -171
  242. package/dist/chunk-PC5MHNVA.js.map +0 -1
  243. package/dist/chunk-QKAQZ2GU.js +0 -122
  244. package/dist/chunk-QKAQZ2GU.js.map +0 -1
  245. package/dist/chunk-QZHSHSVV.js +0 -26
  246. package/dist/chunk-QZHSHSVV.js.map +0 -1
  247. package/dist/chunk-RBMK26XD.js +0 -19
  248. package/dist/chunk-RBMK26XD.js.map +0 -1
  249. package/dist/chunk-SFNJGF6M.js +0 -262
  250. package/dist/chunk-SFNJGF6M.js.map +0 -1
  251. package/dist/chunk-UJJNLGTM.js +0 -112
  252. package/dist/chunk-UJJNLGTM.js.map +0 -1
  253. package/dist/chunk-VGR4ZWJ3.js +0 -418
  254. package/dist/chunk-VGR4ZWJ3.js.map +0 -1
  255. package/dist/chunk-XG47P6D4.js +0 -99
  256. package/dist/chunk-XG47P6D4.js.map +0 -1
  257. package/dist/chunk-XZZAHNVM.js +0 -21
  258. package/dist/chunk-XZZAHNVM.js.map +0 -1
  259. package/dist/chunk-Y4TTYVNE.js +0 -36
  260. package/dist/chunk-Y4TTYVNE.js.map +0 -1
  261. package/dist/chunk-YDWIHW6Q.js +0 -69
  262. package/dist/chunk-YDWIHW6Q.js.map +0 -1
  263. package/dist/collapsible.js.map +0 -1
  264. package/dist/combobox.js.map +0 -1
  265. package/dist/cta.js.map +0 -1
  266. package/dist/currency-selector.js.map +0 -1
  267. package/dist/date-picker.js.map +0 -1
  268. package/dist/details-card.js.map +0 -1
  269. package/dist/dialog.js.map +0 -1
  270. package/dist/dropdown-menu.js.map +0 -1
  271. package/dist/dropzone.js.map +0 -1
  272. package/dist/editorial-card.js.map +0 -1
  273. package/dist/empty-state.js.map +0 -1
  274. package/dist/field.js.map +0 -1
  275. package/dist/footer.js.map +0 -1
  276. package/dist/funnel-chart.js.map +0 -1
  277. package/dist/gallery-indicator.js.map +0 -1
  278. package/dist/heatmap-chart.js.map +0 -1
  279. package/dist/infotip.js.map +0 -1
  280. package/dist/input-group.js.map +0 -1
  281. package/dist/input-size-context.js.map +0 -1
  282. package/dist/input.js.map +0 -1
  283. package/dist/item.js.map +0 -1
  284. package/dist/kpi-card.js.map +0 -1
  285. package/dist/label.js.map +0 -1
  286. package/dist/line-chart.js.map +0 -1
  287. package/dist/logo.js.map +0 -1
  288. package/dist/map-indicator.js.map +0 -1
  289. package/dist/match.js.map +0 -1
  290. package/dist/media-gallery-hero.js.map +0 -1
  291. package/dist/media-player.js.map +0 -1
  292. package/dist/number-input.js.map +0 -1
  293. package/dist/page-header.js.map +0 -1
  294. package/dist/pagination.js.map +0 -1
  295. package/dist/password-input.js.map +0 -1
  296. package/dist/phone-input.js.map +0 -1
  297. package/dist/photo-gallery.js.map +0 -1
  298. package/dist/pie-chart.js.map +0 -1
  299. package/dist/popover.js.map +0 -1
  300. package/dist/price-tag.js.map +0 -1
  301. package/dist/progress.js.map +0 -1
  302. package/dist/property-listing-card.js.map +0 -1
  303. package/dist/radar-chart.js.map +0 -1
  304. package/dist/radio-group.js.map +0 -1
  305. package/dist/review-block.js.map +0 -1
  306. package/dist/rich-text-editor.js.map +0 -1
  307. package/dist/scatter-chart.js.map +0 -1
  308. package/dist/search-input.js.map +0 -1
  309. package/dist/select.js.map +0 -1
  310. package/dist/separator.js.map +0 -1
  311. package/dist/sheet.js.map +0 -1
  312. package/dist/sidebar.js.map +0 -1
  313. package/dist/size-context.js.map +0 -1
  314. package/dist/skeleton.js.map +0 -1
  315. package/dist/slider.js.map +0 -1
  316. package/dist/sparkline.js.map +0 -1
  317. package/dist/stepper.js.map +0 -1
  318. package/dist/switch.js.map +0 -1
  319. package/dist/tab-list.d.ts +0 -38
  320. package/dist/tab-list.js +0 -123
  321. package/dist/tab-list.js.map +0 -1
  322. package/dist/table.js.map +0 -1
  323. package/dist/tabs.js.map +0 -1
  324. package/dist/tag.js.map +0 -1
  325. package/dist/testimonial-block.js.map +0 -1
  326. package/dist/textarea.js.map +0 -1
  327. package/dist/time-picker.js.map +0 -1
  328. package/dist/toast.js.map +0 -1
  329. package/dist/tooltip.js.map +0 -1
  330. package/dist/tree-map.js.map +0 -1
  331. 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,168 @@
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
+ /** Size of the default trigger button. Mirrors `Button`'s sizes. */
62
+ size?: React.ComponentProps<typeof Button>["size"];
63
+ title?: React.ReactNode;
64
+ trigger?: React.ReactElement;
65
+ triggerButtonProps?: Omit<React.ComponentProps<typeof Button>, "children">;
66
+ triggerCountClassName?: string;
67
+ triggerHideCountWhenZero?: boolean;
68
+ triggerLabel?: React.ReactNode;
69
+ };
70
+ declare function DataTableFilter({ applyButtonProps, children, closeOnApply, closeOnReset, contentProps, defaultJoin, defaultOpen, defaultValue, fields, footer, onApply, onOpenChange, open, popoverBodyProps, popoverContentProps, popoverFooterProps, popoverHeaderProps, resetButtonProps, size, title, trigger, triggerButtonProps, triggerCountClassName, triggerHideCountWhenZero, triggerLabel }: DataTableFilterProps): React.JSX.Element;
71
+ type DataTableTableProps<TData> = Omit<React.ComponentProps<typeof Table$1>, "children"> & {
72
+ emptyState?: React.ReactNode;
73
+ interactiveColumnIds?: string[];
74
+ isLoading?: boolean;
75
+ loadingRowCount?: number;
76
+ onRowClick?: (row: Row<TData>) => void;
77
+ table?: Table<TData>;
78
+ };
79
+ declare function DataTable<TData>({ className, 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>;
80
+ type DataTableCardGridProps<TData> = React.ComponentProps<"div"> & {
81
+ actionsColumnId?: string;
82
+ badgeColumnId?: string;
83
+ detailColumnIds?: string[];
84
+ emptyState?: React.ReactNode;
85
+ isLoading?: boolean;
86
+ loadingCardCount?: number;
87
+ onCardClick?: (row: Row<TData>) => void;
88
+ renderActions?: (row: Row<TData>) => React.ReactNode;
89
+ renderCard?: (row: Row<TData>, args: DataTableCardGridRenderArgs<TData>) => React.ReactNode;
90
+ subtitleColumnId?: string;
91
+ table?: Table<TData>;
92
+ titleColumnId?: string;
93
+ };
94
+ type DataTableCardGridRenderArgs<TData> = {
95
+ action: React.ReactNode;
96
+ actions: React.ReactNode;
97
+ row: Row<TData>;
98
+ selection: React.ReactNode;
99
+ table: Table<TData>;
100
+ };
101
+ 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>;
102
+ type DataTableBulkActionsRenderArgs<TData> = {
103
+ data: TData[];
104
+ rows: Row<TData>[];
105
+ table: Table<TData>;
106
+ };
107
+ type DataTableBulkActionsProps<TData> = Omit<React.ComponentProps<"div">, "children"> & {
108
+ children: React.ReactNode | ((args: DataTableBulkActionsRenderArgs<TData>) => React.ReactNode);
109
+ table?: Table<TData>;
110
+ };
111
+ declare function DataTableBulkActions<TData>({ children, className, style, table: tableProp, ...props }: DataTableBulkActionsProps<TData>): React.JSX.Element | null;
112
+ type DataTablePaginationProps<TData> = React.ComponentProps<typeof Pagination> & {
113
+ controlAppearance?: "control" | "icon";
114
+ getSummaryLabel?: (args: {
115
+ end: number;
116
+ page: number;
117
+ pageSize: number;
118
+ start: number;
119
+ totalEntries: number;
120
+ }) => React.ReactNode;
121
+ /**
122
+ * Called with the next 1-based page when a control is activated. Provide
123
+ * this (together with `page` and `pageCount`) to drive pagination from API
124
+ * state instead of the TanStack table instance.
125
+ */
126
+ onPageChange?: (page: number) => void;
127
+ /** Current 1-based page. Overrides the table's pagination state when set. */
128
+ page?: number;
129
+ /** Total number of pages. Overrides `table.getPageCount()` when set. */
130
+ pageCount?: number;
131
+ /** Current page size. Used for API-driven summaries and page count fallback. */
132
+ pageSize?: number;
133
+ showControls?: boolean;
134
+ showJumpToPage?: boolean;
135
+ showPreviousNext?: boolean;
136
+ showSummary?: boolean;
137
+ jumpToPageLabel?: React.ReactNode;
138
+ nextLabel?: React.ReactNode;
139
+ previousLabel?: React.ReactNode;
140
+ siblingCount?: number;
141
+ table?: Table<TData>;
142
+ totalEntries?: number;
143
+ };
144
+ 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;
145
+ type DataTablePageSizeSelectProps<TData> = {
146
+ className?: string;
147
+ label?: (pageSize: number) => React.ReactNode;
148
+ /**
149
+ * Called with the next page size. Provide this (together with `pageSize`) to
150
+ * drive the control from API state instead of the TanStack table instance.
151
+ */
152
+ onPageSizeChange?: (pageSize: number) => void;
153
+ /** Current page size. Overrides the table's pagination state when set. */
154
+ pageSize?: number;
155
+ pageSizeOptions?: number[];
156
+ /** Size of the trigger button. Mirrors `Button`'s sizes. */
157
+ size?: React.ComponentProps<typeof Button>["size"];
158
+ table?: Table<TData>;
159
+ };
160
+ declare function DataTablePageSizeSelect<TData>({ className, label, onPageSizeChange, pageSize: pageSizeProp, pageSizeOptions, size, table: tableProp }: DataTablePageSizeSelectProps<TData>): React.JSX.Element;
161
+ type DataTableEmptyStateProps = {
162
+ action?: React.ReactNode;
163
+ description?: React.ReactNode;
164
+ title?: React.ReactNode;
165
+ } & React.ComponentProps<typeof Empty>;
166
+ declare function DataTableEmptyState({ action, className, description, title, ...props }: DataTableEmptyStateProps): React.JSX.Element;
167
+ //#endregion
168
+ 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 };