@objectifthunes/limestone-sdk 0.1.7 → 0.1.8

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 (249) hide show
  1. package/dist/animations/confetti/confetti.d.ts +4 -0
  2. package/dist/animations/confetti/confetti.d.ts.map +1 -0
  3. package/dist/animations/confetti/confetti.js +10 -0
  4. package/dist/animations/confetti/confetti.js.map +1 -0
  5. package/dist/animations/confetti/index.d.ts +4 -0
  6. package/dist/animations/confetti/index.d.ts.map +1 -0
  7. package/dist/animations/confetti/index.js +3 -0
  8. package/dist/animations/confetti/index.js.map +1 -0
  9. package/dist/animations/confetti/types.d.ts +24 -0
  10. package/dist/animations/confetti/types.d.ts.map +1 -0
  11. package/dist/animations/confetti/types.js +2 -0
  12. package/dist/animations/confetti/types.js.map +1 -0
  13. package/dist/animations/confetti/use-confetti.d.ts +4 -0
  14. package/dist/animations/confetti/use-confetti.d.ts.map +1 -0
  15. package/dist/animations/confetti/use-confetti.js +35 -0
  16. package/dist/animations/confetti/use-confetti.js.map +1 -0
  17. package/dist/animations/error-shake/error-shake.d.ts +4 -0
  18. package/dist/animations/error-shake/error-shake.d.ts.map +1 -0
  19. package/dist/animations/error-shake/error-shake.js +10 -0
  20. package/dist/animations/error-shake/error-shake.js.map +1 -0
  21. package/dist/animations/error-shake/index.d.ts +4 -0
  22. package/dist/animations/error-shake/index.d.ts.map +1 -0
  23. package/dist/animations/error-shake/index.js +3 -0
  24. package/dist/animations/error-shake/index.js.map +1 -0
  25. package/dist/animations/error-shake/types.d.ts +14 -0
  26. package/dist/animations/error-shake/types.d.ts.map +1 -0
  27. package/dist/animations/error-shake/types.js +2 -0
  28. package/dist/animations/error-shake/types.js.map +1 -0
  29. package/dist/animations/error-shake/use-error-shake.d.ts +4 -0
  30. package/dist/animations/error-shake/use-error-shake.d.ts.map +1 -0
  31. package/dist/animations/error-shake/use-error-shake.js +15 -0
  32. package/dist/animations/error-shake/use-error-shake.js.map +1 -0
  33. package/dist/animations/index.d.ts +4 -0
  34. package/dist/animations/index.d.ts.map +1 -1
  35. package/dist/animations/index.js +2 -0
  36. package/dist/animations/index.js.map +1 -1
  37. package/dist/components/data-display/activity-ring/activity-ring.d.ts +4 -0
  38. package/dist/components/data-display/activity-ring/activity-ring.d.ts.map +1 -0
  39. package/dist/components/data-display/activity-ring/activity-ring.js +10 -0
  40. package/dist/components/data-display/activity-ring/activity-ring.js.map +1 -0
  41. package/dist/components/data-display/activity-ring/index.d.ts +4 -0
  42. package/dist/components/data-display/activity-ring/index.d.ts.map +1 -0
  43. package/dist/components/data-display/activity-ring/index.js +3 -0
  44. package/dist/components/data-display/activity-ring/index.js.map +1 -0
  45. package/dist/components/data-display/activity-ring/types.d.ts +35 -0
  46. package/dist/components/data-display/activity-ring/types.d.ts.map +1 -0
  47. package/dist/components/data-display/activity-ring/types.js +2 -0
  48. package/dist/components/data-display/activity-ring/types.js.map +1 -0
  49. package/dist/components/data-display/activity-ring/use-activity-ring.d.ts +4 -0
  50. package/dist/components/data-display/activity-ring/use-activity-ring.d.ts.map +1 -0
  51. package/dist/components/data-display/activity-ring/use-activity-ring.js +61 -0
  52. package/dist/components/data-display/activity-ring/use-activity-ring.js.map +1 -0
  53. package/dist/components/data-display/chart/chart.d.ts +4 -0
  54. package/dist/components/data-display/chart/chart.d.ts.map +1 -0
  55. package/dist/components/data-display/chart/chart.js +10 -0
  56. package/dist/components/data-display/chart/chart.js.map +1 -0
  57. package/dist/components/data-display/chart/index.d.ts +4 -0
  58. package/dist/components/data-display/chart/index.d.ts.map +1 -0
  59. package/dist/components/data-display/chart/index.js +3 -0
  60. package/dist/components/data-display/chart/index.js.map +1 -0
  61. package/dist/components/data-display/chart/types.d.ts +86 -0
  62. package/dist/components/data-display/chart/types.d.ts.map +1 -0
  63. package/dist/components/data-display/chart/types.js +2 -0
  64. package/dist/components/data-display/chart/types.js.map +1 -0
  65. package/dist/components/data-display/chart/use-chart.d.ts +4 -0
  66. package/dist/components/data-display/chart/use-chart.d.ts.map +1 -0
  67. package/dist/components/data-display/chart/use-chart.js +172 -0
  68. package/dist/components/data-display/chart/use-chart.js.map +1 -0
  69. package/dist/components/data-display/countdown-timer/countdown-timer.d.ts +4 -0
  70. package/dist/components/data-display/countdown-timer/countdown-timer.d.ts.map +1 -0
  71. package/dist/components/data-display/countdown-timer/countdown-timer.js +10 -0
  72. package/dist/components/data-display/countdown-timer/countdown-timer.js.map +1 -0
  73. package/dist/components/data-display/countdown-timer/index.d.ts +4 -0
  74. package/dist/components/data-display/countdown-timer/index.d.ts.map +1 -0
  75. package/dist/components/data-display/countdown-timer/index.js +3 -0
  76. package/dist/components/data-display/countdown-timer/index.js.map +1 -0
  77. package/dist/components/data-display/countdown-timer/types.d.ts +37 -0
  78. package/dist/components/data-display/countdown-timer/types.d.ts.map +1 -0
  79. package/dist/components/data-display/countdown-timer/types.js +2 -0
  80. package/dist/components/data-display/countdown-timer/types.js.map +1 -0
  81. package/dist/components/data-display/countdown-timer/use-countdown-timer.d.ts +4 -0
  82. package/dist/components/data-display/countdown-timer/use-countdown-timer.d.ts.map +1 -0
  83. package/dist/components/data-display/countdown-timer/use-countdown-timer.js +81 -0
  84. package/dist/components/data-display/countdown-timer/use-countdown-timer.js.map +1 -0
  85. package/dist/components/data-display/credit-card-display/credit-card-display.d.ts +4 -0
  86. package/dist/components/data-display/credit-card-display/credit-card-display.d.ts.map +1 -0
  87. package/dist/components/data-display/credit-card-display/credit-card-display.js +10 -0
  88. package/dist/components/data-display/credit-card-display/credit-card-display.js.map +1 -0
  89. package/dist/components/data-display/credit-card-display/index.d.ts +4 -0
  90. package/dist/components/data-display/credit-card-display/index.d.ts.map +1 -0
  91. package/dist/components/data-display/credit-card-display/index.js +3 -0
  92. package/dist/components/data-display/credit-card-display/index.js.map +1 -0
  93. package/dist/components/data-display/credit-card-display/types.d.ts +41 -0
  94. package/dist/components/data-display/credit-card-display/types.d.ts.map +1 -0
  95. package/dist/components/data-display/credit-card-display/types.js +2 -0
  96. package/dist/components/data-display/credit-card-display/types.js.map +1 -0
  97. package/dist/components/data-display/credit-card-display/use-credit-card-display.d.ts +4 -0
  98. package/dist/components/data-display/credit-card-display/use-credit-card-display.d.ts.map +1 -0
  99. package/dist/components/data-display/credit-card-display/use-credit-card-display.js +72 -0
  100. package/dist/components/data-display/credit-card-display/use-credit-card-display.js.map +1 -0
  101. package/dist/components/data-display/data-table/data-table.d.ts +4 -0
  102. package/dist/components/data-display/data-table/data-table.d.ts.map +1 -0
  103. package/dist/components/data-display/data-table/data-table.js +10 -0
  104. package/dist/components/data-display/data-table/data-table.js.map +1 -0
  105. package/dist/components/data-display/data-table/index.d.ts +4 -0
  106. package/dist/components/data-display/data-table/index.d.ts.map +1 -0
  107. package/dist/components/data-display/data-table/index.js +3 -0
  108. package/dist/components/data-display/data-table/index.js.map +1 -0
  109. package/dist/components/data-display/data-table/types.d.ts +51 -0
  110. package/dist/components/data-display/data-table/types.d.ts.map +1 -0
  111. package/dist/components/data-display/data-table/types.js +2 -0
  112. package/dist/components/data-display/data-table/types.js.map +1 -0
  113. package/dist/components/data-display/data-table/use-data-table.d.ts +4 -0
  114. package/dist/components/data-display/data-table/use-data-table.d.ts.map +1 -0
  115. package/dist/components/data-display/data-table/use-data-table.js +75 -0
  116. package/dist/components/data-display/data-table/use-data-table.js.map +1 -0
  117. package/dist/components/data-display/index.d.ts +10 -0
  118. package/dist/components/data-display/index.d.ts.map +1 -1
  119. package/dist/components/data-display/index.js +5 -0
  120. package/dist/components/data-display/index.js.map +1 -1
  121. package/dist/components/index.d.ts +14 -4
  122. package/dist/components/index.d.ts.map +1 -1
  123. package/dist/components/index.js +7 -2
  124. package/dist/components/index.js.map +1 -1
  125. package/dist/components/inputs/calendar/calendar.d.ts +4 -0
  126. package/dist/components/inputs/calendar/calendar.d.ts.map +1 -0
  127. package/dist/components/inputs/calendar/calendar.js +10 -0
  128. package/dist/components/inputs/calendar/calendar.js.map +1 -0
  129. package/dist/components/inputs/calendar/index.d.ts +4 -0
  130. package/dist/components/inputs/calendar/index.d.ts.map +1 -0
  131. package/dist/components/inputs/calendar/index.js +3 -0
  132. package/dist/components/inputs/calendar/index.js.map +1 -0
  133. package/dist/components/inputs/calendar/types.d.ts +52 -0
  134. package/dist/components/inputs/calendar/types.d.ts.map +1 -0
  135. package/dist/components/inputs/calendar/types.js +2 -0
  136. package/dist/components/inputs/calendar/types.js.map +1 -0
  137. package/dist/components/inputs/calendar/use-calendar.d.ts +4 -0
  138. package/dist/components/inputs/calendar/use-calendar.d.ts.map +1 -0
  139. package/dist/components/inputs/calendar/use-calendar.js +192 -0
  140. package/dist/components/inputs/calendar/use-calendar.js.map +1 -0
  141. package/dist/components/inputs/index.d.ts +4 -0
  142. package/dist/components/inputs/index.d.ts.map +1 -1
  143. package/dist/components/inputs/index.js +2 -0
  144. package/dist/components/inputs/index.js.map +1 -1
  145. package/dist/components/inputs/signature-pad/index.d.ts +4 -0
  146. package/dist/components/inputs/signature-pad/index.d.ts.map +1 -0
  147. package/dist/components/inputs/signature-pad/index.js +3 -0
  148. package/dist/components/inputs/signature-pad/index.js.map +1 -0
  149. package/dist/components/inputs/signature-pad/signature-pad.d.ts +4 -0
  150. package/dist/components/inputs/signature-pad/signature-pad.d.ts.map +1 -0
  151. package/dist/components/inputs/signature-pad/signature-pad.js +10 -0
  152. package/dist/components/inputs/signature-pad/signature-pad.js.map +1 -0
  153. package/dist/components/inputs/signature-pad/types.d.ts +47 -0
  154. package/dist/components/inputs/signature-pad/types.d.ts.map +1 -0
  155. package/dist/components/inputs/signature-pad/types.js +2 -0
  156. package/dist/components/inputs/signature-pad/types.js.map +1 -0
  157. package/dist/components/inputs/signature-pad/use-signature-pad.d.ts +4 -0
  158. package/dist/components/inputs/signature-pad/use-signature-pad.d.ts.map +1 -0
  159. package/dist/components/inputs/signature-pad/use-signature-pad.js +60 -0
  160. package/dist/components/inputs/signature-pad/use-signature-pad.js.map +1 -0
  161. package/dist/components/interactive/drag-to-reorder/drag-to-reorder.d.ts +4 -0
  162. package/dist/components/interactive/drag-to-reorder/drag-to-reorder.d.ts.map +1 -0
  163. package/dist/components/interactive/drag-to-reorder/drag-to-reorder.js +10 -0
  164. package/dist/components/interactive/drag-to-reorder/drag-to-reorder.js.map +1 -0
  165. package/dist/components/interactive/drag-to-reorder/index.d.ts +4 -0
  166. package/dist/components/interactive/drag-to-reorder/index.d.ts.map +1 -0
  167. package/dist/components/interactive/drag-to-reorder/index.js +3 -0
  168. package/dist/components/interactive/drag-to-reorder/index.js.map +1 -0
  169. package/dist/components/interactive/drag-to-reorder/types.d.ts +24 -0
  170. package/dist/components/interactive/drag-to-reorder/types.d.ts.map +1 -0
  171. package/dist/components/interactive/drag-to-reorder/types.js +2 -0
  172. package/dist/components/interactive/drag-to-reorder/types.js.map +1 -0
  173. package/dist/components/interactive/drag-to-reorder/use-drag-to-reorder.d.ts +4 -0
  174. package/dist/components/interactive/drag-to-reorder/use-drag-to-reorder.d.ts.map +1 -0
  175. package/dist/components/interactive/drag-to-reorder/use-drag-to-reorder.js +44 -0
  176. package/dist/components/interactive/drag-to-reorder/use-drag-to-reorder.js.map +1 -0
  177. package/dist/components/interactive/index.d.ts +10 -0
  178. package/dist/components/interactive/index.d.ts.map +1 -1
  179. package/dist/components/interactive/index.js +5 -0
  180. package/dist/components/interactive/index.js.map +1 -1
  181. package/dist/components/interactive/page-view/index.d.ts +4 -0
  182. package/dist/components/interactive/page-view/index.d.ts.map +1 -0
  183. package/dist/components/interactive/page-view/index.js +3 -0
  184. package/dist/components/interactive/page-view/index.js.map +1 -0
  185. package/dist/components/interactive/page-view/page-view.d.ts +4 -0
  186. package/dist/components/interactive/page-view/page-view.d.ts.map +1 -0
  187. package/dist/components/interactive/page-view/page-view.js +10 -0
  188. package/dist/components/interactive/page-view/page-view.js.map +1 -0
  189. package/dist/components/interactive/page-view/types.d.ts +24 -0
  190. package/dist/components/interactive/page-view/types.d.ts.map +1 -0
  191. package/dist/components/interactive/page-view/types.js +2 -0
  192. package/dist/components/interactive/page-view/types.js.map +1 -0
  193. package/dist/components/interactive/page-view/use-page-view.d.ts +4 -0
  194. package/dist/components/interactive/page-view/use-page-view.d.ts.map +1 -0
  195. package/dist/components/interactive/page-view/use-page-view.js +45 -0
  196. package/dist/components/interactive/page-view/use-page-view.js.map +1 -0
  197. package/dist/components/interactive/parallax-header/index.d.ts +4 -0
  198. package/dist/components/interactive/parallax-header/index.d.ts.map +1 -0
  199. package/dist/components/interactive/parallax-header/index.js +3 -0
  200. package/dist/components/interactive/parallax-header/index.js.map +1 -0
  201. package/dist/components/interactive/parallax-header/parallax-header.d.ts +4 -0
  202. package/dist/components/interactive/parallax-header/parallax-header.d.ts.map +1 -0
  203. package/dist/components/interactive/parallax-header/parallax-header.js +10 -0
  204. package/dist/components/interactive/parallax-header/parallax-header.js.map +1 -0
  205. package/dist/components/interactive/parallax-header/types.d.ts +16 -0
  206. package/dist/components/interactive/parallax-header/types.d.ts.map +1 -0
  207. package/dist/components/interactive/parallax-header/types.js +2 -0
  208. package/dist/components/interactive/parallax-header/types.js.map +1 -0
  209. package/dist/components/interactive/parallax-header/use-parallax-header.d.ts +4 -0
  210. package/dist/components/interactive/parallax-header/use-parallax-header.d.ts.map +1 -0
  211. package/dist/components/interactive/parallax-header/use-parallax-header.js +24 -0
  212. package/dist/components/interactive/parallax-header/use-parallax-header.js.map +1 -0
  213. package/dist/components/interactive/pinch-to-zoom/index.d.ts +4 -0
  214. package/dist/components/interactive/pinch-to-zoom/index.d.ts.map +1 -0
  215. package/dist/components/interactive/pinch-to-zoom/index.js +3 -0
  216. package/dist/components/interactive/pinch-to-zoom/index.js.map +1 -0
  217. package/dist/components/interactive/pinch-to-zoom/pinch-to-zoom.d.ts +4 -0
  218. package/dist/components/interactive/pinch-to-zoom/pinch-to-zoom.d.ts.map +1 -0
  219. package/dist/components/interactive/pinch-to-zoom/pinch-to-zoom.js +10 -0
  220. package/dist/components/interactive/pinch-to-zoom/pinch-to-zoom.js.map +1 -0
  221. package/dist/components/interactive/pinch-to-zoom/types.d.ts +25 -0
  222. package/dist/components/interactive/pinch-to-zoom/types.d.ts.map +1 -0
  223. package/dist/components/interactive/pinch-to-zoom/types.js +2 -0
  224. package/dist/components/interactive/pinch-to-zoom/types.js.map +1 -0
  225. package/dist/components/interactive/pinch-to-zoom/use-pinch-to-zoom.d.ts +4 -0
  226. package/dist/components/interactive/pinch-to-zoom/use-pinch-to-zoom.d.ts.map +1 -0
  227. package/dist/components/interactive/pinch-to-zoom/use-pinch-to-zoom.js +38 -0
  228. package/dist/components/interactive/pinch-to-zoom/use-pinch-to-zoom.js.map +1 -0
  229. package/dist/components/interactive/pull-to-refresh/index.d.ts +4 -0
  230. package/dist/components/interactive/pull-to-refresh/index.d.ts.map +1 -0
  231. package/dist/components/interactive/pull-to-refresh/index.js +3 -0
  232. package/dist/components/interactive/pull-to-refresh/index.js.map +1 -0
  233. package/dist/components/interactive/pull-to-refresh/pull-to-refresh.d.ts +4 -0
  234. package/dist/components/interactive/pull-to-refresh/pull-to-refresh.d.ts.map +1 -0
  235. package/dist/components/interactive/pull-to-refresh/pull-to-refresh.js +10 -0
  236. package/dist/components/interactive/pull-to-refresh/pull-to-refresh.js.map +1 -0
  237. package/dist/components/interactive/pull-to-refresh/types.d.ts +21 -0
  238. package/dist/components/interactive/pull-to-refresh/types.d.ts.map +1 -0
  239. package/dist/components/interactive/pull-to-refresh/types.js +2 -0
  240. package/dist/components/interactive/pull-to-refresh/types.js.map +1 -0
  241. package/dist/components/interactive/pull-to-refresh/use-pull-to-refresh.d.ts +4 -0
  242. package/dist/components/interactive/pull-to-refresh/use-pull-to-refresh.d.ts.map +1 -0
  243. package/dist/components/interactive/pull-to-refresh/use-pull-to-refresh.js +28 -0
  244. package/dist/components/interactive/pull-to-refresh/use-pull-to-refresh.js.map +1 -0
  245. package/dist/index.d.ts +14 -4
  246. package/dist/index.d.ts.map +1 -1
  247. package/dist/index.js +7 -2
  248. package/dist/index.js.map +1 -1
  249. package/package.json +1 -1
@@ -0,0 +1,172 @@
1
+ const DEFAULT_PADDING = { top: 20, right: 20, bottom: 30, left: 40 };
2
+ const COLOR_CYCLE = ['#22c55e', '#eab308', '#ef4444', '#8b5cf6', '#06b6d4'];
3
+ function formatLabel(value) {
4
+ return Number.isInteger(value) ? String(value) : value.toFixed(1);
5
+ }
6
+ export function useChart(tokens, props) {
7
+ const { type, data, width, height, showGrid = true, showLabels = true, padding = DEFAULT_PADDING, } = props;
8
+ const colorCycle = [tokens.colors.primary, tokens.colors.accent, ...COLOR_CYCLE];
9
+ const chartAreaWidth = width - padding.left - padding.right;
10
+ const chartAreaHeight = height - padding.top - padding.bottom;
11
+ const containerStyle = { width, height };
12
+ const chartAreaStyle = {
13
+ position: 'absolute',
14
+ top: padding.top,
15
+ left: padding.left,
16
+ width: chartAreaWidth,
17
+ height: chartAreaHeight,
18
+ };
19
+ const gridLineStyle = {
20
+ stroke: tokens.colors.muted,
21
+ strokeWidth: 1,
22
+ strokeDasharray: '4 4',
23
+ };
24
+ const labelStyle = {
25
+ fontSize: tokens.typography.sizes.xs,
26
+ color: tokens.colors.mutedForeground,
27
+ };
28
+ // Build grid lines (shared for line and bar)
29
+ const buildGridLines = () => {
30
+ if (!showGrid)
31
+ return [];
32
+ return Array.from({ length: 5 }, (_, i) => {
33
+ const y = chartAreaHeight * (i / 4);
34
+ return { x1: 0, y1: y, x2: chartAreaWidth, y2: y };
35
+ });
36
+ };
37
+ if (type === 'pie') {
38
+ const total = data.reduce((sum, d) => sum + d.value, 0);
39
+ const bounds = { minX: 0, maxX: width, minY: 0, maxY: height };
40
+ const cx = width / 2;
41
+ const cy = height / 2;
42
+ const maxPad = Math.max(padding.top, padding.right, padding.bottom, padding.left);
43
+ const radius = Math.min(width, height) / 2 - maxPad;
44
+ let currentAngle = -Math.PI / 2;
45
+ const slices = data.map((d, i) => {
46
+ const sliceAngle = total > 0 ? (d.value / total) * 2 * Math.PI : 0;
47
+ const startAngle = currentAngle;
48
+ const endAngle = currentAngle + sliceAngle;
49
+ currentAngle = endAngle;
50
+ const midAngle = startAngle + sliceAngle / 2;
51
+ const labelPosition = {
52
+ x: cx + Math.cos(midAngle) * radius * 0.6,
53
+ y: cy + Math.sin(midAngle) * radius * 0.6,
54
+ };
55
+ return {
56
+ startAngle,
57
+ endAngle,
58
+ color: d.color ?? colorCycle[i % colorCycle.length],
59
+ value: d.value,
60
+ percentage: total > 0 ? (d.value / total) * 100 : 0,
61
+ labelPosition,
62
+ };
63
+ });
64
+ return {
65
+ points: undefined,
66
+ pathData: undefined,
67
+ bars: undefined,
68
+ slices,
69
+ gridLines: [],
70
+ xLabels: [],
71
+ yLabels: [],
72
+ bounds,
73
+ containerStyle,
74
+ gridLineStyle,
75
+ labelStyle,
76
+ chartAreaStyle,
77
+ };
78
+ }
79
+ const values = data.map((d) => d.value);
80
+ const minValue = values.length > 0 ? Math.min(...values) : 0;
81
+ const maxValue = values.length > 0 ? Math.max(...values) : 0;
82
+ const range = maxValue - minValue || 1;
83
+ const bounds = {
84
+ minX: 0,
85
+ maxX: chartAreaWidth,
86
+ minY: minValue,
87
+ maxY: maxValue,
88
+ };
89
+ const gridLines = buildGridLines();
90
+ const yLabels = showLabels
91
+ ? Array.from({ length: 5 }, (_, i) => {
92
+ const y = chartAreaHeight * (i / 4);
93
+ const value = minValue + range * (1 - i / 4);
94
+ return { x: -padding.left / 2, y, label: formatLabel(value) };
95
+ })
96
+ : [];
97
+ if (type === 'line') {
98
+ const xStep = data.length > 1 ? chartAreaWidth / (data.length - 1) : 0;
99
+ const points = data.map((d, i) => ({
100
+ x: i * xStep,
101
+ y: chartAreaHeight - ((d.value - minValue) / range) * chartAreaHeight,
102
+ value: d.value,
103
+ }));
104
+ let pathData;
105
+ if (points.length > 0) {
106
+ const first = points[0];
107
+ pathData = `M ${first.x} ${first.y}`;
108
+ for (let i = 1; i < points.length; i++) {
109
+ const p = points[i];
110
+ pathData += ` L ${p.x} ${p.y}`;
111
+ }
112
+ }
113
+ const xLabels = showLabels
114
+ ? points.map((p, i) => ({
115
+ x: p.x,
116
+ y: chartAreaHeight + 16,
117
+ label: data[i].label,
118
+ }))
119
+ : [];
120
+ return {
121
+ points,
122
+ pathData,
123
+ bars: undefined,
124
+ slices: undefined,
125
+ gridLines,
126
+ xLabels,
127
+ yLabels,
128
+ bounds,
129
+ containerStyle,
130
+ gridLineStyle,
131
+ labelStyle,
132
+ chartAreaStyle,
133
+ };
134
+ }
135
+ // bar chart
136
+ const barSlotWidth = chartAreaWidth / data.length;
137
+ const barWidth = barSlotWidth * 0.7;
138
+ const barGap = barSlotWidth * 0.3 / 2;
139
+ const bars = data.map((d, i) => {
140
+ const barHeight = Math.max(2, ((d.value - minValue) / range) * chartAreaHeight);
141
+ return {
142
+ x: i * barSlotWidth + barGap,
143
+ y: chartAreaHeight - barHeight,
144
+ width: barWidth,
145
+ height: barHeight,
146
+ value: d.value,
147
+ color: d.color ?? colorCycle[i % colorCycle.length],
148
+ };
149
+ });
150
+ const xLabels = showLabels
151
+ ? bars.map((b, i) => ({
152
+ x: b.x + b.width / 2,
153
+ y: chartAreaHeight + 16,
154
+ label: data[i].label,
155
+ }))
156
+ : [];
157
+ return {
158
+ points: undefined,
159
+ pathData: undefined,
160
+ bars,
161
+ slices: undefined,
162
+ gridLines,
163
+ xLabels,
164
+ yLabels,
165
+ bounds,
166
+ containerStyle,
167
+ gridLineStyle,
168
+ labelStyle,
169
+ chartAreaStyle,
170
+ };
171
+ }
172
+ //# sourceMappingURL=use-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chart.js","sourceRoot":"","sources":["../../../../src/components/data-display/chart/use-chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { createElement } from 'react';
2
+ import type { CountdownTimerProps } from './types.js';
3
+ export declare function CountdownTimer(props: CountdownTimerProps): ReturnType<typeof createElement>;
4
+ //# sourceMappingURL=countdown-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countdown-timer.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/countdown-timer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAK3F"}
@@ -0,0 +1,10 @@
1
+ import { createElement } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useTheme } from '../../../theme/context.js';
4
+ import { useCountdownTimer } from './use-countdown-timer.js';
5
+ export function CountdownTimer(props) {
6
+ const { tokens } = useTheme();
7
+ const { containerStyle } = useCountdownTimer(tokens, props);
8
+ return createElement(View, { style: containerStyle, testID: props.testID });
9
+ }
10
+ //# sourceMappingURL=countdown-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countdown-timer.js","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/countdown-timer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5D,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CountdownTimer } from './countdown-timer.js';
2
+ export { useCountdownTimer } from './use-countdown-timer.js';
3
+ export type { CountdownTimerProps, CountdownFormat, CountdownSegment, UseCountdownTimerResult } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CountdownTimer } from './countdown-timer.js';
2
+ export { useCountdownTimer } from './use-countdown-timer.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { ResolvedBoxStyle } from '../../use-component-style.js';
2
+ export type CountdownFormat = 'hh:mm:ss' | 'dd:hh:mm:ss' | 'mm:ss';
3
+ export interface CountdownTimerProps {
4
+ targetDate?: Date;
5
+ durationMs?: number;
6
+ format?: CountdownFormat;
7
+ onComplete?: () => void;
8
+ testID?: string;
9
+ }
10
+ export interface CountdownSegment {
11
+ value: string;
12
+ label: string;
13
+ }
14
+ export interface UseCountdownTimerResult {
15
+ containerStyle: ResolvedBoxStyle;
16
+ getSegmentStyle: (index: number) => ResolvedBoxStyle;
17
+ segmentValueStyle: {
18
+ fontSize: number;
19
+ fontWeight: string;
20
+ fontFamily: string;
21
+ color: string;
22
+ };
23
+ segmentLabelStyle: {
24
+ fontSize: number;
25
+ color: string;
26
+ fontFamily: string;
27
+ };
28
+ separatorStyle: {
29
+ fontSize: number;
30
+ fontWeight: string;
31
+ color: string;
32
+ };
33
+ segments: CountdownSegment[];
34
+ isComplete: boolean;
35
+ remainingMs: number;
36
+ }
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,gBAAgB,CAAC;IACjC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,CAAC;IACrD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { ThemeTokens } from '../../../theme/tokens.js';
2
+ import type { CountdownTimerProps, UseCountdownTimerResult } from './types.js';
3
+ export declare function useCountdownTimer(tokens: ThemeTokens, props: CountdownTimerProps): UseCountdownTimerResult;
4
+ //# sourceMappingURL=use-countdown-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-countdown-timer.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/use-countdown-timer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAoB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAOjG,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,mBAAmB,GACzB,uBAAuB,CA0FzB"}
@@ -0,0 +1,81 @@
1
+ function pad(n) {
2
+ return String(n).padStart(2, '0');
3
+ }
4
+ export function useCountdownTimer(tokens, props) {
5
+ const { targetDate, durationMs, format = 'hh:mm:ss', } = props;
6
+ const remainingMs = Math.max(0, targetDate ? targetDate.getTime() - Date.now() : durationMs ?? 0);
7
+ const isComplete = remainingMs <= 0;
8
+ let segments;
9
+ if (format === 'dd:hh:mm:ss') {
10
+ const days = Math.floor(remainingMs / 86400000);
11
+ const hours = Math.floor((remainingMs % 86400000) / 3600000);
12
+ const minutes = Math.floor((remainingMs % 3600000) / 60000);
13
+ const seconds = Math.floor((remainingMs % 60000) / 1000);
14
+ segments = [
15
+ { value: pad(days), label: 'DAYS' },
16
+ { value: pad(hours), label: 'HRS' },
17
+ { value: pad(minutes), label: 'MIN' },
18
+ { value: pad(seconds), label: 'SEC' },
19
+ ];
20
+ }
21
+ else if (format === 'mm:ss') {
22
+ const minutes = Math.floor(remainingMs / 60000);
23
+ const seconds = Math.floor((remainingMs % 60000) / 1000);
24
+ segments = [
25
+ { value: pad(minutes), label: 'MIN' },
26
+ { value: pad(seconds), label: 'SEC' },
27
+ ];
28
+ }
29
+ else {
30
+ // hh:mm:ss
31
+ const hours = Math.floor(remainingMs / 3600000);
32
+ const minutes = Math.floor((remainingMs % 3600000) / 60000);
33
+ const seconds = Math.floor((remainingMs % 60000) / 1000);
34
+ segments = [
35
+ { value: pad(hours), label: 'HRS' },
36
+ { value: pad(minutes), label: 'MIN' },
37
+ { value: pad(seconds), label: 'SEC' },
38
+ ];
39
+ }
40
+ const containerStyle = {
41
+ flexDirection: 'row',
42
+ alignItems: 'center',
43
+ gap: tokens.spacing.xs,
44
+ };
45
+ const getSegmentStyle = (_index) => ({
46
+ backgroundColor: tokens.colors.card,
47
+ borderRadius: tokens.radii.md,
48
+ paddingHorizontal: tokens.spacing.sm,
49
+ paddingVertical: tokens.spacing.xs,
50
+ minWidth: 48,
51
+ alignItems: 'center',
52
+ justifyContent: 'center',
53
+ });
54
+ const segmentValueStyle = {
55
+ fontSize: tokens.typography.sizes.xl,
56
+ fontWeight: tokens.typography.weights.bold,
57
+ fontFamily: tokens.typography.fontFamily.mono,
58
+ color: tokens.colors.foreground,
59
+ };
60
+ const segmentLabelStyle = {
61
+ fontSize: tokens.typography.sizes.xs,
62
+ color: tokens.colors.mutedForeground,
63
+ fontFamily: tokens.typography.fontFamily.body,
64
+ };
65
+ const separatorStyle = {
66
+ fontSize: tokens.typography.sizes.xl,
67
+ fontWeight: tokens.typography.weights.bold,
68
+ color: tokens.colors.mutedForeground,
69
+ };
70
+ return {
71
+ containerStyle,
72
+ getSegmentStyle,
73
+ segmentValueStyle,
74
+ segmentLabelStyle,
75
+ separatorStyle,
76
+ segments,
77
+ isComplete,
78
+ remainingMs,
79
+ };
80
+ }
81
+ //# sourceMappingURL=use-countdown-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-countdown-timer.js","sourceRoot":"","sources":["../../../../src/components/data-display/countdown-timer/use-countdown-timer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { createElement } from 'react';
2
+ import type { CreditCardDisplayProps } from './types.js';
3
+ export declare function CreditCardDisplay(props: CreditCardDisplayProps): ReturnType<typeof createElement>;
4
+ //# sourceMappingURL=credit-card-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-card-display.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/credit-card-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAKjG"}
@@ -0,0 +1,10 @@
1
+ import { createElement } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useTheme } from '../../../theme/context.js';
4
+ import { useCreditCardDisplay } from './use-credit-card-display.js';
5
+ export function CreditCardDisplay(props) {
6
+ const { tokens } = useTheme();
7
+ const { containerStyle } = useCreditCardDisplay(tokens, props);
8
+ return createElement(View, { style: containerStyle, testID: props.testID });
9
+ }
10
+ //# sourceMappingURL=credit-card-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-card-display.js","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/credit-card-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE/D,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CreditCardDisplay } from './credit-card-display.js';
2
+ export { useCreditCardDisplay } from './use-credit-card-display.js';
3
+ export type { CreditCardDisplayProps, CardBrand, CardSize, UseCreditCardDisplayResult } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CreditCardDisplay } from './credit-card-display.js';
2
+ export { useCreditCardDisplay } from './use-credit-card-display.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { ResolvedBoxStyle } from '../../use-component-style.js';
2
+ export type CardBrand = 'visa' | 'mastercard' | 'amex' | 'discover' | 'generic';
3
+ export type CardSize = 'sm' | 'md' | 'lg';
4
+ export interface CreditCardDisplayProps {
5
+ last4: string;
6
+ brand: CardBrand;
7
+ holderName?: string;
8
+ expiry?: string;
9
+ gradient?: [string, string];
10
+ size?: CardSize;
11
+ testID?: string;
12
+ }
13
+ export interface UseCreditCardDisplayResult {
14
+ containerStyle: ResolvedBoxStyle;
15
+ maskedNumberStyle: {
16
+ fontSize: number;
17
+ fontFamily: string;
18
+ color: string;
19
+ letterSpacing: number;
20
+ };
21
+ holderNameStyle: {
22
+ fontSize: number;
23
+ color: string;
24
+ textTransform: 'uppercase';
25
+ fontFamily: string;
26
+ };
27
+ expiryLabelStyle: {
28
+ fontSize: number;
29
+ color: string;
30
+ fontFamily: string;
31
+ };
32
+ expiryValueStyle: {
33
+ fontSize: number;
34
+ fontFamily: string;
35
+ color: string;
36
+ };
37
+ brandLogoSize: number;
38
+ gradientColors: [string, string];
39
+ maskedNumber: string;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,gBAAgB,CAAC;IACjC,iBAAiB,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,WAAW,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { ThemeTokens } from '../../../theme/tokens.js';
2
+ import type { CreditCardDisplayProps, UseCreditCardDisplayResult } from './types.js';
3
+ export declare function useCreditCardDisplay(tokens: ThemeTokens, props: CreditCardDisplayProps): UseCreditCardDisplayResult;
4
+ //# sourceMappingURL=use-credit-card-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-credit-card-display.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/use-credit-card-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAuB,MAAM,YAAY,CAAC;AAuB1G,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,sBAAsB,GAC5B,0BAA0B,CAiE5B"}
@@ -0,0 +1,72 @@
1
+ const BRAND_GRADIENTS = {
2
+ visa: ['#1a1f71', '#2563eb'],
3
+ mastercard: ['#eb001b', '#f79e1b'],
4
+ amex: ['#006fcf', '#00a1e4'],
5
+ discover: ['#ff6000', '#ff8a00'],
6
+ generic: ['', ''], // will be set from tokens
7
+ };
8
+ const SIZE_WIDTHS = {
9
+ sm: 240,
10
+ md: 320,
11
+ lg: 400,
12
+ };
13
+ const LOGO_SIZES = {
14
+ sm: 24,
15
+ md: 32,
16
+ lg: 40,
17
+ };
18
+ export function useCreditCardDisplay(tokens, props) {
19
+ const { last4, brand, gradient, size = 'md', } = props;
20
+ const sizeWidth = SIZE_WIDTHS[size];
21
+ const brandLogoSize = LOGO_SIZES[size];
22
+ let gradientColors;
23
+ if (gradient) {
24
+ gradientColors = gradient;
25
+ }
26
+ else if (brand === 'generic') {
27
+ gradientColors = [tokens.colors.muted, tokens.colors.card];
28
+ }
29
+ else {
30
+ gradientColors = BRAND_GRADIENTS[brand];
31
+ }
32
+ const containerStyle = {
33
+ width: sizeWidth,
34
+ aspectRatio: 1.586,
35
+ borderRadius: tokens.radii.lg,
36
+ overflow: 'hidden',
37
+ };
38
+ const maskedNumber = `\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 ${last4}`;
39
+ const maskedNumberStyle = {
40
+ fontSize: tokens.typography.sizes.lg,
41
+ fontFamily: tokens.typography.fontFamily.mono,
42
+ color: tokens.colors.primaryForeground,
43
+ letterSpacing: 4,
44
+ };
45
+ const holderNameStyle = {
46
+ fontSize: tokens.typography.sizes.sm,
47
+ color: tokens.colors.primaryForeground,
48
+ textTransform: 'uppercase',
49
+ fontFamily: tokens.typography.fontFamily.body,
50
+ };
51
+ const expiryLabelStyle = {
52
+ fontSize: tokens.typography.sizes.xs,
53
+ color: 'rgba(255,255,255,0.7)',
54
+ fontFamily: tokens.typography.fontFamily.body,
55
+ };
56
+ const expiryValueStyle = {
57
+ fontSize: tokens.typography.sizes.sm,
58
+ fontFamily: tokens.typography.fontFamily.mono,
59
+ color: tokens.colors.primaryForeground,
60
+ };
61
+ return {
62
+ containerStyle,
63
+ maskedNumberStyle,
64
+ holderNameStyle,
65
+ expiryLabelStyle,
66
+ expiryValueStyle,
67
+ brandLogoSize,
68
+ gradientColors,
69
+ maskedNumber,
70
+ };
71
+ }
72
+ //# sourceMappingURL=use-credit-card-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-credit-card-display.js","sourceRoot":"","sources":["../../../../src/components/data-display/credit-card-display/use-credit-card-display.ts"],"names":[],"mappings":"AAIA,MAAM,eAAe,GAAwC;IAC3D,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5B,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAClC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAChC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,0BAA0B;CAC9C,CAAC;AAEF,MAAM,WAAW,GAA6B;IAC5C,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;CACR,CAAC;AAEF,MAAM,UAAU,GAA6B;IAC3C,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,KAA6B;IAE7B,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,IAAI,GACZ,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,cAAgC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,cAAc,GAAG,QAAQ,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,cAAc,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAqB;QACvC,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QAC7B,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,MAAM,YAAY,GAAG,8EAA8E,KAAK,EAAE,CAAC;IAE3G,MAAM,iBAAiB,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACpC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;QACtC,aAAa,EAAE,CAAC;KACjB,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACpC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;QACtC,aAAa,EAAE,WAAoB;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;KAC9C,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACpC,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;KAC9C,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACpC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;KACvC,CAAC;IAEF,OAAO;QACL,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { createElement } from 'react';
2
+ import type { DataTableProps } from './types.js';
3
+ export declare function DataTable(props: DataTableProps): ReturnType<typeof createElement>;
4
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/data-table/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAQjF"}
@@ -0,0 +1,10 @@
1
+ import { createElement } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useTheme } from '../../../theme/context.js';
4
+ import { useDataTable } from './use-data-table.js';
5
+ export function DataTable(props) {
6
+ const { tokens } = useTheme();
7
+ const { containerStyle, accessibilityProps } = useDataTable(tokens, props);
8
+ return createElement(View, { style: containerStyle, ...accessibilityProps, testID: props.testID });
9
+ }
10
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../../src/components/data-display/data-table/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE3E,OAAO,aAAa,CAClB,IAAW,EACX,EAAE,KAAK,EAAE,cAAqB,EAAE,GAAG,kBAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAC9E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { DataTable } from './data-table.js';
2
+ export { useDataTable } from './use-data-table.js';
3
+ export type { DataTableProps, TableColumn, SortDirection, UseDataTableResult } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DataTable } from './data-table.js';
2
+ export { useDataTable } from './use-data-table.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/data-display/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}