@shipfox/react-ui 0.13.0 → 0.15.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 (268) hide show
  1. package/.storybook/preview.tsx +7 -0
  2. package/.turbo/turbo-build.log +7 -7
  3. package/.turbo/turbo-check.log +2 -2
  4. package/.turbo/turbo-type.log +1 -1
  5. package/CHANGELOG.md +16 -0
  6. package/dist/components/avatar/avatar.js +1 -1
  7. package/dist/components/avatar/avatar.js.map +1 -1
  8. package/dist/components/button-group/button-group.d.ts +17 -0
  9. package/dist/components/button-group/button-group.d.ts.map +1 -0
  10. package/dist/components/button-group/button-group.js +74 -0
  11. package/dist/components/button-group/button-group.js.map +1 -0
  12. package/dist/components/button-group/button-group.stories.js +644 -0
  13. package/dist/components/button-group/button-group.stories.js.map +1 -0
  14. package/dist/components/button-group/index.d.ts +2 -0
  15. package/dist/components/button-group/index.d.ts.map +1 -0
  16. package/dist/components/button-group/index.js +3 -0
  17. package/dist/components/button-group/index.js.map +1 -0
  18. package/dist/components/code-block/code-block-footer.d.ts.map +1 -1
  19. package/dist/components/code-block/code-block-footer.js +13 -5
  20. package/dist/components/code-block/code-block-footer.js.map +1 -1
  21. package/dist/components/command/command.d.ts +28 -0
  22. package/dist/components/command/command.d.ts.map +1 -0
  23. package/dist/components/command/command.js +190 -0
  24. package/dist/components/command/command.js.map +1 -0
  25. package/dist/components/command/command.stories.js +228 -0
  26. package/dist/components/command/command.stories.js.map +1 -0
  27. package/dist/components/command/index.d.ts +2 -0
  28. package/dist/components/command/index.d.ts.map +1 -0
  29. package/dist/components/command/index.js +3 -0
  30. package/dist/components/command/index.js.map +1 -0
  31. package/dist/components/confetti/confetti.d.ts +21 -0
  32. package/dist/components/confetti/confetti.d.ts.map +1 -0
  33. package/dist/components/confetti/confetti.js +101 -0
  34. package/dist/components/confetti/confetti.js.map +1 -0
  35. package/dist/components/confetti/confetti.stories.js +41 -0
  36. package/dist/components/confetti/confetti.stories.js.map +1 -0
  37. package/dist/components/confetti/index.d.ts +2 -0
  38. package/dist/components/confetti/index.d.ts.map +1 -0
  39. package/dist/components/confetti/index.js +3 -0
  40. package/dist/components/confetti/index.js.map +1 -0
  41. package/dist/components/dashboard/components/analytics-content.d.ts +2 -0
  42. package/dist/components/dashboard/components/analytics-content.d.ts.map +1 -0
  43. package/dist/components/dashboard/components/analytics-content.js +180 -0
  44. package/dist/components/dashboard/components/analytics-content.js.map +1 -0
  45. package/dist/components/dashboard/components/animated-logo.d.ts +4 -0
  46. package/dist/components/dashboard/components/animated-logo.d.ts.map +1 -0
  47. package/dist/components/dashboard/components/animated-logo.js +23 -0
  48. package/dist/components/dashboard/components/animated-logo.js.map +1 -0
  49. package/dist/components/dashboard/components/complete-setup-button.d.ts +4 -0
  50. package/dist/components/dashboard/components/complete-setup-button.d.ts.map +1 -0
  51. package/dist/components/dashboard/components/complete-setup-button.js +28 -0
  52. package/dist/components/dashboard/components/complete-setup-button.js.map +1 -0
  53. package/dist/components/dashboard/components/jobs-content.d.ts +2 -0
  54. package/dist/components/dashboard/components/jobs-content.d.ts.map +1 -0
  55. package/dist/components/dashboard/components/jobs-content.js +69 -0
  56. package/dist/components/dashboard/components/jobs-content.js.map +1 -0
  57. package/dist/components/dashboard/components/mobile-menu.d.ts +2 -0
  58. package/dist/components/dashboard/components/mobile-menu.d.ts.map +1 -0
  59. package/dist/components/dashboard/components/mobile-menu.js +65 -0
  60. package/dist/components/dashboard/components/mobile-menu.js.map +1 -0
  61. package/dist/components/dashboard/components/organization-selector.d.ts +2 -0
  62. package/dist/components/dashboard/components/organization-selector.d.ts.map +1 -0
  63. package/dist/components/dashboard/components/organization-selector.js +92 -0
  64. package/dist/components/dashboard/components/organization-selector.js.map +1 -0
  65. package/dist/components/dashboard/components/top-menu.d.ts +5 -0
  66. package/dist/components/dashboard/components/top-menu.d.ts.map +1 -0
  67. package/dist/components/dashboard/components/top-menu.js +31 -0
  68. package/dist/components/dashboard/components/top-menu.js.map +1 -0
  69. package/dist/components/dashboard/components/topbar-button.d.ts +7 -0
  70. package/dist/components/dashboard/components/topbar-button.d.ts.map +1 -0
  71. package/dist/components/dashboard/components/topbar-button.js +18 -0
  72. package/dist/components/dashboard/components/topbar-button.js.map +1 -0
  73. package/dist/components/dashboard/components/topbar.d.ts +4 -0
  74. package/dist/components/dashboard/components/topbar.d.ts.map +1 -0
  75. package/dist/components/dashboard/components/topbar.js +62 -0
  76. package/dist/components/dashboard/components/topbar.js.map +1 -0
  77. package/dist/components/dashboard/components/user-profile.d.ts +2 -0
  78. package/dist/components/dashboard/components/user-profile.d.ts.map +1 -0
  79. package/dist/components/dashboard/components/user-profile.js +146 -0
  80. package/dist/components/dashboard/components/user-profile.js.map +1 -0
  81. package/dist/components/dashboard/dashboard.d.ts +2 -0
  82. package/dist/components/dashboard/dashboard.d.ts.map +1 -0
  83. package/dist/components/dashboard/dashboard.js +70 -0
  84. package/dist/components/dashboard/dashboard.js.map +1 -0
  85. package/dist/components/dashboard/dashboard.stories.js +23 -0
  86. package/dist/components/dashboard/dashboard.stories.js.map +1 -0
  87. package/dist/components/dashboard/index.d.ts +2 -0
  88. package/dist/components/dashboard/index.d.ts.map +1 -0
  89. package/dist/components/dashboard/index.js +3 -0
  90. package/dist/components/dashboard/index.js.map +1 -0
  91. package/dist/components/form/form.stories.js +6 -1
  92. package/dist/components/form/form.stories.js.map +1 -1
  93. package/dist/components/icon/icon.d.ts +3 -2
  94. package/dist/components/icon/icon.d.ts.map +1 -1
  95. package/dist/components/icon/icon.js +7 -2
  96. package/dist/components/icon/icon.js.map +1 -1
  97. package/dist/components/index.d.ts +9 -0
  98. package/dist/components/index.d.ts.map +1 -1
  99. package/dist/components/index.js +9 -0
  100. package/dist/components/index.js.map +1 -1
  101. package/dist/components/kbd/index.d.ts +2 -0
  102. package/dist/components/kbd/index.d.ts.map +1 -0
  103. package/dist/components/kbd/index.js +3 -0
  104. package/dist/components/kbd/index.js.map +1 -0
  105. package/dist/components/kbd/kbd.d.ts +7 -0
  106. package/dist/components/kbd/kbd.d.ts.map +1 -0
  107. package/dist/components/kbd/kbd.js +18 -0
  108. package/dist/components/kbd/kbd.js.map +1 -0
  109. package/dist/components/kbd/kbd.stories.js +119 -0
  110. package/dist/components/kbd/kbd.stories.js.map +1 -0
  111. package/dist/components/modal/modal.stories.js +227 -168
  112. package/dist/components/modal/modal.stories.js.map +1 -1
  113. package/dist/components/search/index.d.ts +7 -0
  114. package/dist/components/search/index.d.ts.map +1 -0
  115. package/dist/components/search/index.js +8 -0
  116. package/dist/components/search/index.js.map +1 -0
  117. package/dist/components/search/search-context.d.ts +11 -0
  118. package/dist/components/search/search-context.d.ts.map +1 -0
  119. package/dist/components/search/search-context.js +56 -0
  120. package/dist/components/search/search-context.js.map +1 -0
  121. package/dist/components/search/search-inline.d.ts +9 -0
  122. package/dist/components/search/search-inline.d.ts.map +1 -0
  123. package/dist/components/search/search-inline.js +85 -0
  124. package/dist/components/search/search-inline.js.map +1 -0
  125. package/dist/components/search/search-modal.d.ts +25 -0
  126. package/dist/components/search/search-modal.d.ts.map +1 -0
  127. package/dist/components/search/search-modal.js +162 -0
  128. package/dist/components/search/search-modal.js.map +1 -0
  129. package/dist/components/search/search-trigger.d.ts +9 -0
  130. package/dist/components/search/search-trigger.d.ts.map +1 -0
  131. package/dist/components/search/search-trigger.js +37 -0
  132. package/dist/components/search/search-trigger.js.map +1 -0
  133. package/dist/components/search/search-variants.d.ts +14 -0
  134. package/dist/components/search/search-variants.d.ts.map +1 -0
  135. package/dist/components/search/search-variants.js +90 -0
  136. package/dist/components/search/search-variants.js.map +1 -0
  137. package/dist/components/search/search.d.ts +11 -0
  138. package/dist/components/search/search.d.ts.map +1 -0
  139. package/dist/components/search/search.js +35 -0
  140. package/dist/components/search/search.js.map +1 -0
  141. package/dist/components/search/search.stories.js +630 -0
  142. package/dist/components/search/search.stories.js.map +1 -0
  143. package/dist/components/select/index.d.ts +2 -0
  144. package/dist/components/select/index.d.ts.map +1 -0
  145. package/dist/components/select/index.js +3 -0
  146. package/dist/components/select/index.js.map +1 -0
  147. package/dist/components/select/select.d.ts +25 -0
  148. package/dist/components/select/select.d.ts.map +1 -0
  149. package/dist/components/select/select.js +153 -0
  150. package/dist/components/select/select.js.map +1 -0
  151. package/dist/components/select/select.stories.js +393 -0
  152. package/dist/components/select/select.stories.js.map +1 -0
  153. package/dist/components/shiny-text/index.d.ts +2 -0
  154. package/dist/components/shiny-text/index.d.ts.map +1 -0
  155. package/dist/components/shiny-text/index.js +3 -0
  156. package/dist/components/shiny-text/index.js.map +1 -0
  157. package/dist/components/shiny-text/shiny-text.d.ts +10 -0
  158. package/dist/components/shiny-text/shiny-text.d.ts.map +1 -0
  159. package/dist/components/shiny-text/shiny-text.js +17 -0
  160. package/dist/components/shiny-text/shiny-text.js.map +1 -0
  161. package/dist/components/skeleton/index.d.ts +2 -0
  162. package/dist/components/skeleton/index.d.ts.map +1 -0
  163. package/dist/components/skeleton/index.js +3 -0
  164. package/dist/components/skeleton/index.js.map +1 -0
  165. package/dist/components/skeleton/skeleton.d.ts +5 -0
  166. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  167. package/dist/components/skeleton/skeleton.js +11 -0
  168. package/dist/components/skeleton/skeleton.js.map +1 -0
  169. package/dist/components/skeleton/skeleton.stories.js +345 -0
  170. package/dist/components/skeleton/skeleton.stories.js.map +1 -0
  171. package/dist/components/table/data-table.d.ts +70 -0
  172. package/dist/components/table/data-table.d.ts.map +1 -0
  173. package/dist/components/table/data-table.js +159 -0
  174. package/dist/components/table/data-table.js.map +1 -0
  175. package/dist/components/table/index.d.ts +6 -0
  176. package/dist/components/table/index.d.ts.map +1 -0
  177. package/dist/components/table/index.js +6 -0
  178. package/dist/components/table/index.js.map +1 -0
  179. package/dist/components/table/table-column-header.d.ts +79 -0
  180. package/dist/components/table/table-column-header.d.ts.map +1 -0
  181. package/dist/components/table/table-column-header.js +99 -0
  182. package/dist/components/table/table-column-header.js.map +1 -0
  183. package/dist/components/table/table-pagination.d.ts +53 -0
  184. package/dist/components/table/table-pagination.d.ts.map +1 -0
  185. package/dist/components/table/table-pagination.js +139 -0
  186. package/dist/components/table/table-pagination.js.map +1 -0
  187. package/dist/components/table/table.d.ts +11 -0
  188. package/dist/components/table/table.d.ts.map +1 -0
  189. package/dist/components/table/table.js +64 -0
  190. package/dist/components/table/table.js.map +1 -0
  191. package/dist/components/table/table.stories.columns.d.ts +24 -0
  192. package/dist/components/table/table.stories.columns.d.ts.map +1 -0
  193. package/dist/components/table/table.stories.columns.js +310 -0
  194. package/dist/components/table/table.stories.columns.js.map +1 -0
  195. package/dist/components/table/table.stories.components.d.ts +14 -0
  196. package/dist/components/table/table.stories.components.d.ts.map +1 -0
  197. package/dist/components/table/table.stories.components.js +107 -0
  198. package/dist/components/table/table.stories.components.js.map +1 -0
  199. package/dist/components/table/table.stories.data.d.ts +54 -0
  200. package/dist/components/table/table.stories.data.d.ts.map +1 -0
  201. package/dist/components/table/table.stories.data.js +122 -0
  202. package/dist/components/table/table.stories.data.js.map +1 -0
  203. package/dist/components/table/table.stories.js +302 -0
  204. package/dist/components/table/table.stories.js.map +1 -0
  205. package/dist/index.d.ts +1 -0
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js +1 -0
  208. package/dist/index.js.map +1 -1
  209. package/dist/styles.css +1 -1
  210. package/index.css +79 -0
  211. package/package.json +6 -2
  212. package/src/components/avatar/avatar.tsx +1 -1
  213. package/src/components/button-group/button-group.stories.tsx +361 -0
  214. package/src/components/button-group/button-group.tsx +111 -0
  215. package/src/components/button-group/index.ts +1 -0
  216. package/src/components/code-block/code-block-footer.tsx +19 -2
  217. package/src/components/command/command.stories.tsx +133 -0
  218. package/src/components/command/command.tsx +265 -0
  219. package/src/components/command/index.ts +1 -0
  220. package/src/components/confetti/confetti.stories.tsx +38 -0
  221. package/src/components/confetti/confetti.tsx +140 -0
  222. package/src/components/confetti/index.ts +1 -0
  223. package/src/components/dashboard/components/analytics-content.tsx +102 -0
  224. package/src/components/dashboard/components/animated-logo.tsx +25 -0
  225. package/src/components/dashboard/components/complete-setup-button.tsx +30 -0
  226. package/src/components/dashboard/components/jobs-content.tsx +51 -0
  227. package/src/components/dashboard/components/mobile-menu.tsx +50 -0
  228. package/src/components/dashboard/components/organization-selector.tsx +51 -0
  229. package/src/components/dashboard/components/top-menu.tsx +26 -0
  230. package/src/components/dashboard/components/topbar-button.tsx +27 -0
  231. package/src/components/dashboard/components/topbar.tsx +40 -0
  232. package/src/components/dashboard/components/user-profile.tsx +90 -0
  233. package/src/components/dashboard/dashboard.stories.tsx +25 -0
  234. package/src/components/dashboard/dashboard.tsx +61 -0
  235. package/src/components/dashboard/index.ts +1 -0
  236. package/src/components/form/form.stories.tsx +5 -0
  237. package/src/components/icon/icon.tsx +7 -3
  238. package/src/components/index.ts +9 -0
  239. package/src/components/kbd/index.ts +1 -0
  240. package/src/components/kbd/kbd.stories.tsx +64 -0
  241. package/src/components/kbd/kbd.tsx +32 -0
  242. package/src/components/modal/modal.stories.tsx +58 -4
  243. package/src/components/search/index.ts +28 -0
  244. package/src/components/search/search-context.tsx +78 -0
  245. package/src/components/search/search-inline.tsx +107 -0
  246. package/src/components/search/search-modal.tsx +198 -0
  247. package/src/components/search/search-trigger.tsx +47 -0
  248. package/src/components/search/search-variants.ts +88 -0
  249. package/src/components/search/search.stories.tsx +392 -0
  250. package/src/components/search/search.tsx +47 -0
  251. package/src/components/select/index.ts +1 -0
  252. package/src/components/select/select.stories.tsx +207 -0
  253. package/src/components/select/select.tsx +220 -0
  254. package/src/components/shiny-text/index.ts +1 -0
  255. package/src/components/shiny-text/shiny-text.tsx +21 -0
  256. package/src/components/skeleton/index.ts +1 -0
  257. package/src/components/skeleton/skeleton.stories.tsx +178 -0
  258. package/src/components/skeleton/skeleton.tsx +14 -0
  259. package/src/components/table/data-table.tsx +254 -0
  260. package/src/components/table/index.ts +5 -0
  261. package/src/components/table/table-column-header.tsx +141 -0
  262. package/src/components/table/table-pagination.tsx +161 -0
  263. package/src/components/table/table.stories.columns.tsx +198 -0
  264. package/src/components/table/table.stories.components.tsx +104 -0
  265. package/src/components/table/table.stories.data.ts +117 -0
  266. package/src/components/table/table.stories.tsx +256 -0
  267. package/src/components/table/table.tsx +95 -0
  268. package/src/index.ts +1 -0
@@ -0,0 +1,345 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Code, Header } from '../../components/typography/index.js';
3
+ import { Skeleton } from './skeleton.js';
4
+ const meta = {
5
+ title: 'Components/Skeleton',
6
+ component: Skeleton,
7
+ tags: [
8
+ 'autodocs'
9
+ ]
10
+ };
11
+ export default meta;
12
+ export const Default = {
13
+ render: ()=>/*#__PURE__*/ _jsx(Skeleton, {
14
+ className: "w-200 h-20"
15
+ })
16
+ };
17
+ export const Card = {
18
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
19
+ className: "flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400",
20
+ children: [
21
+ /*#__PURE__*/ _jsx(Skeleton, {
22
+ className: "h-200 w-full rounded-6"
23
+ }),
24
+ /*#__PURE__*/ _jsxs("div", {
25
+ className: "space-y-8",
26
+ children: [
27
+ /*#__PURE__*/ _jsx(Skeleton, {
28
+ className: "h-20 w-3/4"
29
+ }),
30
+ /*#__PURE__*/ _jsx(Skeleton, {
31
+ className: "h-16 w-full"
32
+ }),
33
+ /*#__PURE__*/ _jsx(Skeleton, {
34
+ className: "h-16 w-5/6"
35
+ })
36
+ ]
37
+ }),
38
+ /*#__PURE__*/ _jsxs("div", {
39
+ className: "flex gap-8 pt-8",
40
+ children: [
41
+ /*#__PURE__*/ _jsx(Skeleton, {
42
+ className: "h-32 w-100 rounded-6"
43
+ }),
44
+ /*#__PURE__*/ _jsx(Skeleton, {
45
+ className: "h-32 w-100 rounded-6"
46
+ })
47
+ ]
48
+ })
49
+ ]
50
+ })
51
+ };
52
+ export const List = {
53
+ render: ()=>/*#__PURE__*/ _jsx("div", {
54
+ className: "flex flex-col gap-8 max-w-500",
55
+ children: Array.from({
56
+ length: 5
57
+ }, (_, i)=>i).map((id)=>/*#__PURE__*/ _jsxs("div", {
58
+ className: "flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base",
59
+ children: [
60
+ /*#__PURE__*/ _jsx(Skeleton, {
61
+ className: "h-48 w-48 rounded-full shrink-0"
62
+ }),
63
+ /*#__PURE__*/ _jsxs("div", {
64
+ className: "flex-1 space-y-8",
65
+ children: [
66
+ /*#__PURE__*/ _jsx(Skeleton, {
67
+ className: "h-16 w-3/4"
68
+ }),
69
+ /*#__PURE__*/ _jsx(Skeleton, {
70
+ className: "h-14 w-1/2"
71
+ })
72
+ ]
73
+ }),
74
+ /*#__PURE__*/ _jsx(Skeleton, {
75
+ className: "h-32 w-80 rounded-6"
76
+ })
77
+ ]
78
+ }, `list-${id}`))
79
+ })
80
+ };
81
+ export const Showcase = {
82
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
83
+ className: "flex flex-col gap-32",
84
+ children: [
85
+ /*#__PURE__*/ _jsxs("div", {
86
+ className: "flex flex-col gap-16",
87
+ children: [
88
+ /*#__PURE__*/ _jsx(Header, {
89
+ variant: "h3",
90
+ children: "Basic Shapes"
91
+ }),
92
+ /*#__PURE__*/ _jsxs("div", {
93
+ className: "flex flex-col gap-12",
94
+ children: [
95
+ /*#__PURE__*/ _jsxs("div", {
96
+ className: "flex flex-col gap-8",
97
+ children: [
98
+ /*#__PURE__*/ _jsx(Code, {
99
+ variant: "label",
100
+ className: "text-foreground-neutral-subtle",
101
+ children: "Rectangle"
102
+ }),
103
+ /*#__PURE__*/ _jsx(Skeleton, {
104
+ className: "h-20 w-200"
105
+ })
106
+ ]
107
+ }),
108
+ /*#__PURE__*/ _jsxs("div", {
109
+ className: "flex flex-col gap-8",
110
+ children: [
111
+ /*#__PURE__*/ _jsx(Code, {
112
+ variant: "label",
113
+ className: "text-foreground-neutral-subtle",
114
+ children: "Circle"
115
+ }),
116
+ /*#__PURE__*/ _jsx(Skeleton, {
117
+ className: "h-48 w-48 rounded-full"
118
+ })
119
+ ]
120
+ }),
121
+ /*#__PURE__*/ _jsxs("div", {
122
+ className: "flex flex-col gap-8",
123
+ children: [
124
+ /*#__PURE__*/ _jsx(Code, {
125
+ variant: "label",
126
+ className: "text-foreground-neutral-subtle",
127
+ children: "Square"
128
+ }),
129
+ /*#__PURE__*/ _jsx(Skeleton, {
130
+ className: "h-100 w-100"
131
+ })
132
+ ]
133
+ })
134
+ ]
135
+ })
136
+ ]
137
+ }),
138
+ /*#__PURE__*/ _jsxs("div", {
139
+ className: "flex flex-col gap-16",
140
+ children: [
141
+ /*#__PURE__*/ _jsx(Header, {
142
+ variant: "h3",
143
+ children: "Card Loading"
144
+ }),
145
+ /*#__PURE__*/ _jsxs("div", {
146
+ className: "flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400",
147
+ children: [
148
+ /*#__PURE__*/ _jsx(Skeleton, {
149
+ className: "h-200 w-full rounded-6"
150
+ }),
151
+ /*#__PURE__*/ _jsxs("div", {
152
+ className: "space-y-8",
153
+ children: [
154
+ /*#__PURE__*/ _jsx(Skeleton, {
155
+ className: "h-20 w-3/4"
156
+ }),
157
+ /*#__PURE__*/ _jsx(Skeleton, {
158
+ className: "h-16 w-full"
159
+ }),
160
+ /*#__PURE__*/ _jsx(Skeleton, {
161
+ className: "h-16 w-2/3"
162
+ })
163
+ ]
164
+ }),
165
+ /*#__PURE__*/ _jsxs("div", {
166
+ className: "flex gap-8 pt-8",
167
+ children: [
168
+ /*#__PURE__*/ _jsx(Skeleton, {
169
+ className: "h-32 w-100 rounded-6"
170
+ }),
171
+ /*#__PURE__*/ _jsx(Skeleton, {
172
+ className: "h-32 w-100 rounded-6"
173
+ })
174
+ ]
175
+ })
176
+ ]
177
+ })
178
+ ]
179
+ }),
180
+ /*#__PURE__*/ _jsxs("div", {
181
+ className: "flex flex-col gap-16",
182
+ children: [
183
+ /*#__PURE__*/ _jsx(Header, {
184
+ variant: "h3",
185
+ children: "List Loading"
186
+ }),
187
+ /*#__PURE__*/ _jsx("div", {
188
+ className: "flex flex-col gap-8 max-w-500",
189
+ children: Array.from({
190
+ length: 4
191
+ }, (_, i)=>i).map((id)=>/*#__PURE__*/ _jsxs("div", {
192
+ className: "flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base",
193
+ children: [
194
+ /*#__PURE__*/ _jsx(Skeleton, {
195
+ className: "h-48 w-48 rounded-full shrink-0"
196
+ }),
197
+ /*#__PURE__*/ _jsxs("div", {
198
+ className: "flex-1 space-y-8",
199
+ children: [
200
+ /*#__PURE__*/ _jsx(Skeleton, {
201
+ className: "h-16 w-3/4"
202
+ }),
203
+ /*#__PURE__*/ _jsx(Skeleton, {
204
+ className: "h-14 w-1/2"
205
+ })
206
+ ]
207
+ }),
208
+ /*#__PURE__*/ _jsx(Skeleton, {
209
+ className: "h-32 w-80 rounded-6"
210
+ })
211
+ ]
212
+ }, `list-loading-${id}`))
213
+ })
214
+ ]
215
+ }),
216
+ /*#__PURE__*/ _jsxs("div", {
217
+ className: "flex flex-col gap-16",
218
+ children: [
219
+ /*#__PURE__*/ _jsx(Header, {
220
+ variant: "h3",
221
+ children: "Table Loading"
222
+ }),
223
+ /*#__PURE__*/ _jsxs("div", {
224
+ className: "rounded-10 border border-border-neutral-base bg-background-field-base overflow-hidden max-w-700",
225
+ children: [
226
+ /*#__PURE__*/ _jsxs("div", {
227
+ className: "flex gap-16 p-12 border-b border-border-neutral-base bg-background-neutral-base",
228
+ children: [
229
+ /*#__PURE__*/ _jsx(Skeleton, {
230
+ className: "h-16 w-140"
231
+ }),
232
+ /*#__PURE__*/ _jsx(Skeleton, {
233
+ className: "h-16 w-220"
234
+ }),
235
+ /*#__PURE__*/ _jsx(Skeleton, {
236
+ className: "h-16 w-120"
237
+ }),
238
+ /*#__PURE__*/ _jsx(Skeleton, {
239
+ className: "h-16 w-100 ml-auto"
240
+ })
241
+ ]
242
+ }),
243
+ Array.from({
244
+ length: 5
245
+ }, (_, i)=>i).map((id)=>/*#__PURE__*/ _jsxs("div", {
246
+ className: "flex gap-16 p-12 border-b border-border-neutral-base last:border-0",
247
+ children: [
248
+ /*#__PURE__*/ _jsx(Skeleton, {
249
+ className: "h-14 w-140"
250
+ }),
251
+ /*#__PURE__*/ _jsx(Skeleton, {
252
+ className: "h-14 w-220"
253
+ }),
254
+ /*#__PURE__*/ _jsx(Skeleton, {
255
+ className: "h-14 w-120"
256
+ }),
257
+ /*#__PURE__*/ _jsx(Skeleton, {
258
+ className: "h-14 w-100 ml-auto"
259
+ })
260
+ ]
261
+ }, `table-row-${id}`))
262
+ ]
263
+ })
264
+ ]
265
+ }),
266
+ /*#__PURE__*/ _jsxs("div", {
267
+ className: "flex flex-col gap-16",
268
+ children: [
269
+ /*#__PURE__*/ _jsx(Header, {
270
+ variant: "h3",
271
+ children: "Form Loading"
272
+ }),
273
+ /*#__PURE__*/ _jsxs("div", {
274
+ className: "max-w-400 space-y-16 p-16 rounded-10 border border-border-neutral-base bg-background-field-base",
275
+ children: [
276
+ /*#__PURE__*/ _jsxs("div", {
277
+ className: "space-y-8",
278
+ children: [
279
+ /*#__PURE__*/ _jsx(Skeleton, {
280
+ className: "h-16 w-100"
281
+ }),
282
+ /*#__PURE__*/ _jsx(Skeleton, {
283
+ className: "h-32 w-full rounded-6"
284
+ })
285
+ ]
286
+ }),
287
+ /*#__PURE__*/ _jsxs("div", {
288
+ className: "space-y-8",
289
+ children: [
290
+ /*#__PURE__*/ _jsx(Skeleton, {
291
+ className: "h-16 w-120"
292
+ }),
293
+ /*#__PURE__*/ _jsx(Skeleton, {
294
+ className: "h-32 w-full rounded-6"
295
+ })
296
+ ]
297
+ }),
298
+ /*#__PURE__*/ _jsxs("div", {
299
+ className: "space-y-8",
300
+ children: [
301
+ /*#__PURE__*/ _jsx(Skeleton, {
302
+ className: "h-16 w-80"
303
+ }),
304
+ /*#__PURE__*/ _jsx(Skeleton, {
305
+ className: "h-96 w-full rounded-6"
306
+ })
307
+ ]
308
+ }),
309
+ /*#__PURE__*/ _jsxs("div", {
310
+ className: "flex gap-8 pt-8",
311
+ children: [
312
+ /*#__PURE__*/ _jsx(Skeleton, {
313
+ className: "h-32 w-100 rounded-6"
314
+ }),
315
+ /*#__PURE__*/ _jsx(Skeleton, {
316
+ className: "h-32 w-100 rounded-6"
317
+ })
318
+ ]
319
+ })
320
+ ]
321
+ })
322
+ ]
323
+ }),
324
+ /*#__PURE__*/ _jsxs("div", {
325
+ className: "flex flex-col gap-16",
326
+ children: [
327
+ /*#__PURE__*/ _jsx(Header, {
328
+ variant: "h3",
329
+ children: "Avatar Group Loading"
330
+ }),
331
+ /*#__PURE__*/ _jsx("div", {
332
+ className: "flex -space-x-8",
333
+ children: Array.from({
334
+ length: 5
335
+ }, (_, i)=>i).map((id)=>/*#__PURE__*/ _jsx(Skeleton, {
336
+ className: "h-40 w-40 rounded-full border-2 border-background-field-base"
337
+ }, `avatar-${id}`))
338
+ })
339
+ ]
340
+ })
341
+ ]
342
+ })
343
+ };
344
+
345
+ //# sourceMappingURL=skeleton.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/skeleton/skeleton.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {Skeleton} from './skeleton';\n\nconst meta = {\n title: 'Components/Skeleton',\n component: Skeleton,\n tags: ['autodocs'],\n} satisfies Meta<typeof Skeleton>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n render: () => <Skeleton className=\"w-200 h-20\" />,\n};\n\nexport const Card: Story = {\n render: () => (\n <div className=\"flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400\">\n <Skeleton className=\"h-200 w-full rounded-6\" />\n <div className=\"space-y-8\">\n <Skeleton className=\"h-20 w-3/4\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-5/6\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n ),\n};\n\nexport const List: Story = {\n render: () => (\n <div className=\"flex flex-col gap-8 max-w-500\">\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <div\n key={`list-${id}`}\n className=\"flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base\"\n >\n <Skeleton className=\"h-48 w-48 rounded-full shrink-0\" />\n <div className=\"flex-1 space-y-8\">\n <Skeleton className=\"h-16 w-3/4\" />\n <Skeleton className=\"h-14 w-1/2\" />\n </div>\n <Skeleton className=\"h-32 w-80 rounded-6\" />\n </div>\n ))}\n </div>\n ),\n};\n\nexport const Showcase: Story = {\n render: () => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Basic Shapes</Header>\n <div className=\"flex flex-col gap-12\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rectangle\n </Code>\n <Skeleton className=\"h-20 w-200\" />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Circle\n </Code>\n <Skeleton className=\"h-48 w-48 rounded-full\" />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Square\n </Code>\n <Skeleton className=\"h-100 w-100\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Card Loading</Header>\n <div className=\"flex flex-col gap-12 p-16 rounded-10 border border-border-neutral-base bg-background-field-base max-w-400\">\n <Skeleton className=\"h-200 w-full rounded-6\" />\n <div className=\"space-y-8\">\n <Skeleton className=\"h-20 w-3/4\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-2/3\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">List Loading</Header>\n <div className=\"flex flex-col gap-8 max-w-500\">\n {Array.from({length: 4}, (_, i) => i).map((id) => (\n <div\n key={`list-loading-${id}`}\n className=\"flex items-center gap-12 p-12 rounded-6 border border-border-neutral-base bg-background-field-base\"\n >\n <Skeleton className=\"h-48 w-48 rounded-full shrink-0\" />\n <div className=\"flex-1 space-y-8\">\n <Skeleton className=\"h-16 w-3/4\" />\n <Skeleton className=\"h-14 w-1/2\" />\n </div>\n <Skeleton className=\"h-32 w-80 rounded-6\" />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Table Loading</Header>\n <div className=\"rounded-10 border border-border-neutral-base bg-background-field-base overflow-hidden max-w-700\">\n <div className=\"flex gap-16 p-12 border-b border-border-neutral-base bg-background-neutral-base\">\n <Skeleton className=\"h-16 w-140\" />\n <Skeleton className=\"h-16 w-220\" />\n <Skeleton className=\"h-16 w-120\" />\n <Skeleton className=\"h-16 w-100 ml-auto\" />\n </div>\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <div\n key={`table-row-${id}`}\n className=\"flex gap-16 p-12 border-b border-border-neutral-base last:border-0\"\n >\n <Skeleton className=\"h-14 w-140\" />\n <Skeleton className=\"h-14 w-220\" />\n <Skeleton className=\"h-14 w-120\" />\n <Skeleton className=\"h-14 w-100 ml-auto\" />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Form Loading</Header>\n <div className=\"max-w-400 space-y-16 p-16 rounded-10 border border-border-neutral-base bg-background-field-base\">\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-100\" />\n <Skeleton className=\"h-32 w-full rounded-6\" />\n </div>\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-120\" />\n <Skeleton className=\"h-32 w-full rounded-6\" />\n </div>\n <div className=\"space-y-8\">\n <Skeleton className=\"h-16 w-80\" />\n <Skeleton className=\"h-96 w-full rounded-6\" />\n </div>\n <div className=\"flex gap-8 pt-8\">\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n <Skeleton className=\"h-32 w-100 rounded-6\" />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">Avatar Group Loading</Header>\n <div className=\"flex -space-x-8\">\n {Array.from({length: 5}, (_, i) => i).map((id) => (\n <Skeleton\n key={`avatar-${id}`}\n className=\"h-40 w-40 rounded-full border-2 border-background-field-base\"\n />\n ))}\n </div>\n </div>\n </div>\n ),\n};\n"],"names":["Code","Header","Skeleton","meta","title","component","tags","Default","render","className","Card","div","List","Array","from","length","_","i","map","id","Showcase","variant"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { ColumnDef } from '@tanstack/react-table';
2
+ import { type ComponentProps } from 'react';
3
+ /**
4
+ * Props for the {@link DataTable} component.
5
+ *
6
+ * @typeParam TData - The shape of the row data.
7
+ * @typeParam TValue - The value type used by column definitions.
8
+ */
9
+ interface DataTableProps<TData, TValue> extends Omit<ComponentProps<'div'>, 'children'> {
10
+ /**
11
+ * Column definitions for the table, as expected by `@tanstack/react-table`.
12
+ *
13
+ * These control how each field in {@link data} is rendered and interacted with.
14
+ */
15
+ columns: ColumnDef<TData, TValue>[];
16
+ /**
17
+ * Array of data items to render as table rows.
18
+ */
19
+ data: TData[];
20
+ /**
21
+ * Enables client-side pagination when `true`.
22
+ *
23
+ * Defaults to `true`. When set to `false`, all rows are rendered in a single
24
+ * page and the pagination controls are disabled. In that case, the
25
+ * {@link pageSize} value is effectively ignored.
26
+ */
27
+ pagination?: boolean;
28
+ /**
29
+ * Number of rows to display per page when pagination is enabled.
30
+ *
31
+ * Defaults to `10`. This value is used to initialize the internal pagination
32
+ * state and only has an effect when {@link pagination} is `true`.
33
+ */
34
+ pageSize?: number;
35
+ /**
36
+ * Array of page size options to display in the page size selector.
37
+ * When provided, a dropdown will be rendered in the pagination footer allowing
38
+ * users to change the number of rows per page.
39
+ *
40
+ * @default [10, 20, 50, 100]
41
+ * @example
42
+ * ```tsx
43
+ * <DataTable columns={columns} data={data} pageSizeOptions={[5, 10, 25]} />
44
+ * ```
45
+ */
46
+ pageSizeOptions?: number[];
47
+ /**
48
+ * When `true`, displays the count of selected rows.
49
+ *
50
+ * This is useful when row selection is enabled to give users feedback on how
51
+ * many rows are currently selected.
52
+ */
53
+ showSelectedCount?: boolean;
54
+ /**
55
+ * Optional callback invoked when a table row is clicked.
56
+ *
57
+ * The callback receives the corresponding data item for the clicked row.
58
+ */
59
+ onRowClick?: (row: TData) => void;
60
+ /**
61
+ * React node to render when there are no rows to display.
62
+ *
63
+ * If not provided, the table will render without rows and without a custom
64
+ * empty state message or placeholder.
65
+ */
66
+ emptyState?: React.ReactNode;
67
+ }
68
+ export declare function DataTable<TData, TValue>({ columns, data, pagination, pageSize, pageSizeOptions, showSelectedCount, onRowClick, emptyState, className, ...props }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
69
+ export {};
70
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/table/data-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EAAC,KAAK,cAAc,EAA+B,MAAM,OAAO,CAAC;AAKxE;;;;;GAKG;AACH,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACrF;;;;OAIG;IACH,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC;;OAEG;IACH,IAAI,EAAE,KAAK,EAAE,CAAC;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EACvC,OAAO,EACP,IAAI,EACJ,UAAiB,EACjB,QAAa,EACb,eAAe,EACf,iBAAyB,EACzB,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,2CAyJ/B"}
@@ -0,0 +1,159 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { flexRender, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';
3
+ import { Checkbox } from '../../components/checkbox/index.js';
4
+ import { Icon } from '../../components/icon/index.js';
5
+ import { Text } from '../../components/typography/index.js';
6
+ import { useEffect, useMemo, useState } from 'react';
7
+ import { cn } from '../../utils/cn.js';
8
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './table.js';
9
+ import { TablePagination } from './table-pagination.js';
10
+ export function DataTable({ columns, data, pagination = true, pageSize = 10, pageSizeOptions, showSelectedCount = false, onRowClick, emptyState, className, ...props }) {
11
+ const [sorting, setSorting] = useState([]);
12
+ const [columnFilters, setColumnFilters] = useState([]);
13
+ const [columnVisibility, setColumnVisibility] = useState({});
14
+ const [rowSelection, setRowSelection] = useState({});
15
+ const [paginationState, setPaginationState] = useState({
16
+ pageIndex: 0,
17
+ pageSize
18
+ });
19
+ useEffect(()=>{
20
+ setPaginationState((prev)=>({
21
+ ...prev,
22
+ pageSize,
23
+ pageIndex: 0
24
+ }));
25
+ }, [
26
+ pageSize
27
+ ]);
28
+ // Add selection column if showSelectedCount is enabled
29
+ const columnsWithSelection = useMemo(()=>{
30
+ if (!showSelectedCount) {
31
+ return columns;
32
+ }
33
+ const selectionColumn = {
34
+ id: 'select',
35
+ header: ({ table })=>{
36
+ const isAllSelected = table.getIsAllPageRowsSelected();
37
+ const isSomeSelected = table.getIsSomePageRowsSelected();
38
+ return /*#__PURE__*/ _jsx(Checkbox, {
39
+ checked: isAllSelected ? true : isSomeSelected ? 'indeterminate' : false,
40
+ onCheckedChange: (checked)=>table.toggleAllPageRowsSelected(!!checked),
41
+ onClick: (e)=>e.stopPropagation(),
42
+ "aria-label": "Select all"
43
+ });
44
+ },
45
+ cell: ({ row })=>/*#__PURE__*/ _jsx(Checkbox, {
46
+ checked: row.getIsSelected(),
47
+ onCheckedChange: (checked)=>row.toggleSelected(!!checked),
48
+ onClick: (e)=>e.stopPropagation(),
49
+ "aria-label": "Select row"
50
+ }),
51
+ enableSorting: false,
52
+ enableHiding: false
53
+ };
54
+ return [
55
+ selectionColumn,
56
+ ...columns
57
+ ];
58
+ }, [
59
+ columns,
60
+ showSelectedCount
61
+ ]);
62
+ const table = useReactTable({
63
+ data,
64
+ columns: columnsWithSelection,
65
+ getCoreRowModel: getCoreRowModel(),
66
+ getFilteredRowModel: getFilteredRowModel(),
67
+ getSortedRowModel: getSortedRowModel(),
68
+ getPaginationRowModel: pagination ? getPaginationRowModel() : undefined,
69
+ enableRowSelection: showSelectedCount,
70
+ onSortingChange: setSorting,
71
+ onColumnFiltersChange: setColumnFilters,
72
+ onColumnVisibilityChange: setColumnVisibility,
73
+ onRowSelectionChange: setRowSelection,
74
+ onPaginationChange: setPaginationState,
75
+ state: {
76
+ sorting,
77
+ columnFilters,
78
+ columnVisibility,
79
+ rowSelection,
80
+ pagination: pagination ? paginationState : undefined
81
+ }
82
+ });
83
+ return /*#__PURE__*/ _jsx("div", {
84
+ className: cn('rounded-8 border border-border-neutral-base overflow-hidden', className),
85
+ ...props,
86
+ children: /*#__PURE__*/ _jsxs(Table, {
87
+ children: [
88
+ table.getRowModel().rows.length > 0 ? /*#__PURE__*/ _jsx(TableHeader, {
89
+ children: table.getHeaderGroups().map((headerGroup)=>/*#__PURE__*/ _jsx(TableRow, {
90
+ className: "hover:bg-transparent border-b",
91
+ children: headerGroup.headers.map((header)=>/*#__PURE__*/ _jsx(TableHead, {
92
+ children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())
93
+ }, header.id))
94
+ }, headerGroup.id))
95
+ }) : null,
96
+ /*#__PURE__*/ _jsx(TableBody, {
97
+ children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row)=>/*#__PURE__*/ _jsx(TableRow, {
98
+ onClick: ()=>onRowClick?.(row.original),
99
+ "data-selected": row.getIsSelected(),
100
+ className: onRowClick ? 'cursor-pointer' : '',
101
+ tabIndex: onRowClick ? 0 : undefined,
102
+ role: onRowClick ? 'button' : undefined,
103
+ onKeyDown: (event)=>{
104
+ if (!onRowClick) return;
105
+ if (event.key === 'Enter' || event.key === ' ') {
106
+ event.preventDefault();
107
+ onRowClick(row.original);
108
+ }
109
+ },
110
+ children: row.getVisibleCells().map((cell)=>/*#__PURE__*/ _jsx(TableCell, {
111
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
112
+ }, cell.id))
113
+ }, row.id)) : /*#__PURE__*/ _jsx(TableRow, {
114
+ className: "hover:bg-transparent",
115
+ children: /*#__PURE__*/ _jsx(TableCell, {
116
+ colSpan: table.getAllColumns().length,
117
+ className: "h-240 text-center",
118
+ children: emptyState || /*#__PURE__*/ _jsxs("div", {
119
+ className: "flex flex-col items-center justify-center gap-12 py-48",
120
+ children: [
121
+ /*#__PURE__*/ _jsx("div", {
122
+ className: "size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center",
123
+ children: /*#__PURE__*/ _jsx(Icon, {
124
+ name: "fileDamageLine",
125
+ className: "size-16 text-foreground-neutral-subtle",
126
+ color: "var(--foreground-neutral-subtle, #a1a1aa)"
127
+ })
128
+ }),
129
+ /*#__PURE__*/ _jsxs("div", {
130
+ className: "text-center space-y-4",
131
+ children: [
132
+ /*#__PURE__*/ _jsx(Text, {
133
+ size: "sm",
134
+ className: "text-foreground-neutral-base",
135
+ children: "No results"
136
+ }),
137
+ /*#__PURE__*/ _jsx(Text, {
138
+ size: "xs",
139
+ className: "text-foreground-neutral-muted",
140
+ children: "Looks like there are no results."
141
+ })
142
+ ]
143
+ })
144
+ ]
145
+ })
146
+ })
147
+ })
148
+ }),
149
+ pagination && table.getRowModel().rows?.length > 0 && /*#__PURE__*/ _jsx(TablePagination, {
150
+ table: table,
151
+ pageSizeOptions: pageSizeOptions,
152
+ showSelectedCount: showSelectedCount
153
+ })
154
+ ]
155
+ })
156
+ });
157
+ }
158
+
159
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/table/data-table.tsx"],"sourcesContent":["import type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport {Checkbox} from 'components/checkbox';\nimport {Icon} from 'components/icon';\nimport {Text} from 'components/typography';\nimport {type ComponentProps, useEffect, useMemo, useState} from 'react';\nimport {cn} from 'utils/cn';\nimport {Table, TableBody, TableCell, TableHead, TableHeader, TableRow} from './table';\nimport {TablePagination} from './table-pagination';\n\n/**\n * Props for the {@link DataTable} component.\n *\n * @typeParam TData - The shape of the row data.\n * @typeParam TValue - The value type used by column definitions.\n */\ninterface DataTableProps<TData, TValue> extends Omit<ComponentProps<'div'>, 'children'> {\n /**\n * Column definitions for the table, as expected by `@tanstack/react-table`.\n *\n * These control how each field in {@link data} is rendered and interacted with.\n */\n columns: ColumnDef<TData, TValue>[];\n /**\n * Array of data items to render as table rows.\n */\n data: TData[];\n /**\n * Enables client-side pagination when `true`.\n *\n * Defaults to `true`. When set to `false`, all rows are rendered in a single\n * page and the pagination controls are disabled. In that case, the\n * {@link pageSize} value is effectively ignored.\n */\n pagination?: boolean;\n /**\n * Number of rows to display per page when pagination is enabled.\n *\n * Defaults to `10`. This value is used to initialize the internal pagination\n * state and only has an effect when {@link pagination} is `true`.\n */\n pageSize?: number;\n /**\n * Array of page size options to display in the page size selector.\n * When provided, a dropdown will be rendered in the pagination footer allowing\n * users to change the number of rows per page.\n *\n * @default [10, 20, 50, 100]\n * @example\n * ```tsx\n * <DataTable columns={columns} data={data} pageSizeOptions={[5, 10, 25]} />\n * ```\n */\n pageSizeOptions?: number[];\n /**\n * When `true`, displays the count of selected rows.\n *\n * This is useful when row selection is enabled to give users feedback on how\n * many rows are currently selected.\n */\n showSelectedCount?: boolean;\n /**\n * Optional callback invoked when a table row is clicked.\n *\n * The callback receives the corresponding data item for the clicked row.\n */\n onRowClick?: (row: TData) => void;\n /**\n * React node to render when there are no rows to display.\n *\n * If not provided, the table will render without rows and without a custom\n * empty state message or placeholder.\n */\n emptyState?: React.ReactNode;\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n pagination = true,\n pageSize = 10,\n pageSizeOptions,\n showSelectedCount = false,\n onRowClick,\n emptyState,\n className,\n ...props\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState({});\n const [paginationState, setPaginationState] = useState<PaginationState>({\n pageIndex: 0,\n pageSize,\n });\n\n useEffect(() => {\n setPaginationState((prev) => ({...prev, pageSize, pageIndex: 0}));\n }, [pageSize]);\n\n // Add selection column if showSelectedCount is enabled\n const columnsWithSelection = useMemo(() => {\n if (!showSelectedCount) {\n return columns;\n }\n\n const selectionColumn: ColumnDef<TData, TValue> = {\n id: 'select',\n header: ({table}) => {\n const isAllSelected = table.getIsAllPageRowsSelected();\n const isSomeSelected = table.getIsSomePageRowsSelected();\n return (\n <Checkbox\n checked={isAllSelected ? true : isSomeSelected ? 'indeterminate' : false}\n onCheckedChange={(checked) => table.toggleAllPageRowsSelected(!!checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select all\"\n />\n );\n },\n cell: ({row}) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(checked) => row.toggleSelected(!!checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n };\n\n return [selectionColumn, ...columns];\n }, [columns, showSelectedCount]);\n\n const table = useReactTable({\n data,\n columns: columnsWithSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: pagination ? getPaginationRowModel() : undefined,\n enableRowSelection: showSelectedCount,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n onPaginationChange: setPaginationState,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n pagination: pagination ? paginationState : undefined,\n },\n });\n\n return (\n <div\n className={cn('rounded-8 border border-border-neutral-base overflow-hidden', className)}\n {...props}\n >\n <Table>\n {table.getRowModel().rows.length > 0 ? (\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"hover:bg-transparent border-b\">\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n ) : null}\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n onClick={() => onRowClick?.(row.original)}\n data-selected={row.getIsSelected()}\n className={onRowClick ? 'cursor-pointer' : ''}\n tabIndex={onRowClick ? 0 : undefined}\n role={onRowClick ? 'button' : undefined}\n onKeyDown={(event) => {\n if (!onRowClick) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onRowClick(row.original);\n }\n }}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"hover:bg-transparent\">\n <TableCell colSpan={table.getAllColumns().length} className=\"h-240 text-center\">\n {emptyState || (\n <div className=\"flex flex-col items-center justify-center gap-12 py-48\">\n <div className=\"size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center\">\n <Icon\n name=\"fileDamageLine\"\n className=\"size-16 text-foreground-neutral-subtle\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </div>\n <div className=\"text-center space-y-4\">\n <Text size=\"sm\" className=\"text-foreground-neutral-base\">\n No results\n </Text>\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n Looks like there are no results.\n </Text>\n </div>\n </div>\n )}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n {pagination && table.getRowModel().rows?.length > 0 && (\n <TablePagination\n table={table}\n pageSizeOptions={pageSizeOptions}\n showSelectedCount={showSelectedCount}\n />\n )}\n </Table>\n </div>\n );\n}\n"],"names":["flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","Checkbox","Icon","Text","useEffect","useMemo","useState","cn","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TablePagination","DataTable","columns","data","pagination","pageSize","pageSizeOptions","showSelectedCount","onRowClick","emptyState","className","props","sorting","setSorting","columnFilters","setColumnFilters","columnVisibility","setColumnVisibility","rowSelection","setRowSelection","paginationState","setPaginationState","pageIndex","prev","columnsWithSelection","selectionColumn","id","header","table","isAllSelected","getIsAllPageRowsSelected","isSomeSelected","getIsSomePageRowsSelected","checked","onCheckedChange","toggleAllPageRowsSelected","onClick","e","stopPropagation","aria-label","cell","row","getIsSelected","toggleSelected","enableSorting","enableHiding","undefined","enableRowSelection","onSortingChange","onColumnFiltersChange","onColumnVisibilityChange","onRowSelectionChange","onPaginationChange","state","div","getRowModel","rows","length","getHeaderGroups","map","headerGroup","headers","isPlaceholder","column","columnDef","getContext","original","data-selected","tabIndex","role","onKeyDown","event","key","preventDefault","getVisibleCells","colSpan","getAllColumns","name","color","size"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { ColumnDef } from '@tanstack/react-table';
2
+ export * from './data-table';
3
+ export * from './table';
4
+ export * from './table-column-header';
5
+ export * from './table-pagination';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}