@cdx-ui/components 0.0.1-beta.184 → 0.0.1-beta.186

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 (80) hide show
  1. package/coverage.svg +1 -1
  2. package/lib/commonjs/components/Chip/styles.js +1 -1
  3. package/lib/commonjs/components/Chip/styles.js.map +1 -1
  4. package/lib/commonjs/components/Table/index.js +389 -0
  5. package/lib/commonjs/components/Table/index.js.map +1 -0
  6. package/lib/commonjs/components/Table/index.web.js +329 -0
  7. package/lib/commonjs/components/Table/index.web.js.map +1 -0
  8. package/lib/commonjs/components/Table/styles.js +111 -0
  9. package/lib/commonjs/components/Table/styles.js.map +1 -0
  10. package/lib/commonjs/components/Table/types.js +6 -0
  11. package/lib/commonjs/components/Table/types.js.map +1 -0
  12. package/lib/commonjs/components/Table/useTableStyleContext.js +28 -0
  13. package/lib/commonjs/components/Table/useTableStyleContext.js.map +1 -0
  14. package/lib/commonjs/components/TablePagination/TablePaginationContext.js +31 -0
  15. package/lib/commonjs/components/TablePagination/TablePaginationContext.js.map +1 -0
  16. package/lib/commonjs/components/TablePagination/getTablePaginationItems.js +50 -0
  17. package/lib/commonjs/components/TablePagination/getTablePaginationItems.js.map +1 -0
  18. package/lib/commonjs/components/TablePagination/index.js +395 -0
  19. package/lib/commonjs/components/TablePagination/index.js.map +1 -0
  20. package/lib/commonjs/components/TablePagination/styles.js +13 -0
  21. package/lib/commonjs/components/TablePagination/styles.js.map +1 -0
  22. package/lib/commonjs/components/index.js +24 -0
  23. package/lib/commonjs/components/index.js.map +1 -1
  24. package/lib/commonjs/styles.css +1 -0
  25. package/lib/module/components/Chip/styles.js +1 -1
  26. package/lib/module/components/Chip/styles.js.map +1 -1
  27. package/lib/module/components/Table/index.js +385 -0
  28. package/lib/module/components/Table/index.js.map +1 -0
  29. package/lib/module/components/Table/index.web.js +325 -0
  30. package/lib/module/components/Table/index.web.js.map +1 -0
  31. package/lib/module/components/Table/styles.js +107 -0
  32. package/lib/module/components/Table/styles.js.map +1 -0
  33. package/lib/module/components/Table/types.js +4 -0
  34. package/lib/module/components/Table/types.js.map +1 -0
  35. package/lib/module/components/Table/useTableStyleContext.js +17 -0
  36. package/lib/module/components/Table/useTableStyleContext.js.map +1 -0
  37. package/lib/module/components/TablePagination/TablePaginationContext.js +25 -0
  38. package/lib/module/components/TablePagination/TablePaginationContext.js.map +1 -0
  39. package/lib/module/components/TablePagination/getTablePaginationItems.js +46 -0
  40. package/lib/module/components/TablePagination/getTablePaginationItems.js.map +1 -0
  41. package/lib/module/components/TablePagination/index.js +386 -0
  42. package/lib/module/components/TablePagination/index.js.map +1 -0
  43. package/lib/module/components/TablePagination/styles.js +9 -0
  44. package/lib/module/components/TablePagination/styles.js.map +1 -0
  45. package/lib/module/components/index.js +2 -0
  46. package/lib/module/components/index.js.map +1 -1
  47. package/lib/module/styles.css +1 -0
  48. package/lib/typescript/components/Table/index.d.ts +23 -0
  49. package/lib/typescript/components/Table/index.d.ts.map +1 -0
  50. package/lib/typescript/components/Table/index.web.d.ts +22 -0
  51. package/lib/typescript/components/Table/index.web.d.ts.map +1 -0
  52. package/lib/typescript/components/Table/styles.d.ts +36 -0
  53. package/lib/typescript/components/Table/styles.d.ts.map +1 -0
  54. package/lib/typescript/components/Table/types.d.ts +51 -0
  55. package/lib/typescript/components/Table/types.d.ts.map +1 -0
  56. package/lib/typescript/components/Table/useTableStyleContext.d.ts +11 -0
  57. package/lib/typescript/components/Table/useTableStyleContext.d.ts.map +1 -0
  58. package/lib/typescript/components/TablePagination/TablePaginationContext.d.ts +20 -0
  59. package/lib/typescript/components/TablePagination/TablePaginationContext.d.ts.map +1 -0
  60. package/lib/typescript/components/TablePagination/getTablePaginationItems.d.ts +7 -0
  61. package/lib/typescript/components/TablePagination/getTablePaginationItems.d.ts.map +1 -0
  62. package/lib/typescript/components/TablePagination/index.d.ts +74 -0
  63. package/lib/typescript/components/TablePagination/index.d.ts.map +1 -0
  64. package/lib/typescript/components/TablePagination/styles.d.ts +8 -0
  65. package/lib/typescript/components/TablePagination/styles.d.ts.map +1 -0
  66. package/lib/typescript/components/index.d.ts +2 -0
  67. package/lib/typescript/components/index.d.ts.map +1 -1
  68. package/package.json +5 -5
  69. package/src/components/Chip/styles.ts +1 -1
  70. package/src/components/Table/index.tsx +459 -0
  71. package/src/components/Table/index.web.tsx +395 -0
  72. package/src/components/Table/styles.ts +143 -0
  73. package/src/components/Table/types.ts +57 -0
  74. package/src/components/Table/useTableStyleContext.ts +14 -0
  75. package/src/components/TablePagination/TablePaginationContext.tsx +37 -0
  76. package/src/components/TablePagination/getTablePaginationItems.ts +62 -0
  77. package/src/components/TablePagination/index.tsx +498 -0
  78. package/src/components/TablePagination/styles.ts +15 -0
  79. package/src/components/index.ts +2 -0
  80. package/src/styles.css +1 -0
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+
3
+ import { Children, createContext, forwardRef, isValidElement, useCallback, useContext, useId, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
+ import { ScrollView, Text, View } from 'react-native';
5
+ import { Slot, dataAttributes, mergeDataAttributes } from '@cdx-ui/primitives';
6
+ import { cn } from '@cdx-ui/utils';
7
+ import { tableNativeCaptionVariants, tableContainerVariants, tableNativeCellVariants, tableNativeCellTextVariants, tableNativeFooterVariants, tableNativeHeadVariants, tableNativeHeadTextVariants, tableNativeRootVariants, tableNativeRowVariants } from './styles';
8
+ import { ParentContext, useTableStyleContext, useTableVariantContext } from './useTableStyleContext';
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const NATIVE_COL_MIN_WIDTH = 96;
11
+ const TableLayoutContext = /*#__PURE__*/createContext({
12
+ tableWidth: 0,
13
+ columnCount: 0,
14
+ registerRowColumnCount: () => {},
15
+ unregisterRowColumnCount: () => {},
16
+ setViewportWidth: () => {}
17
+ });
18
+ const useTableLayout = () => useContext(TableLayoutContext);
19
+ const nativeColumnStyle = (span, tableWidth, columnCount) => {
20
+ if (tableWidth <= 0 || columnCount <= 0) {
21
+ return undefined;
22
+ }
23
+ return {
24
+ width: span / columnCount * tableWidth,
25
+ flexGrow: 0,
26
+ flexShrink: 0
27
+ };
28
+ };
29
+ const isTableColumnChild = child => /*#__PURE__*/isValidElement(child) && ['Table.Head', 'Table.Cell'].includes(child.type.displayName ?? '');
30
+ const countRowColumns = children => Children.toArray(children).reduce((total, child) => {
31
+ if (!isTableColumnChild(child)) {
32
+ return total;
33
+ }
34
+ const span = child.props.colSpan;
35
+ return total + (span && span > 1 ? span : 1);
36
+ }, 0);
37
+ const columnSpan = colSpan => colSpan && colSpan > 1 ? colSpan : 1;
38
+ const isCaptionChild = child => /*#__PURE__*/isValidElement(child) && child.type.displayName === 'Table.Caption';
39
+ const isTextChild = child => typeof child === 'string' || typeof child === 'number';
40
+ const renderNativeTableTextContent = (children, textClassName) => {
41
+ if (isTextChild(children)) {
42
+ return /*#__PURE__*/_jsx(Text, {
43
+ numberOfLines: 1,
44
+ ellipsizeMode: "tail",
45
+ className: textClassName,
46
+ children: children
47
+ });
48
+ }
49
+ const childList = Children.toArray(children);
50
+ if (childList.length === 0) {
51
+ return children;
52
+ }
53
+ if (childList.every(isTextChild)) {
54
+ return /*#__PURE__*/_jsx(Text, {
55
+ numberOfLines: 1,
56
+ ellipsizeMode: "tail",
57
+ className: textClassName,
58
+ children: childList
59
+ });
60
+ }
61
+ if (!childList.some(isTextChild)) {
62
+ return children;
63
+ }
64
+ return Children.map(children, (child, index) => {
65
+ if (!isTextChild(child)) {
66
+ return child;
67
+ }
68
+ return /*#__PURE__*/_jsx(Text, {
69
+ numberOfLines: 1,
70
+ ellipsizeMode: "tail",
71
+ className: textClassName,
72
+ children: child
73
+ }, `table-text-${index.toString()}`);
74
+ });
75
+ };
76
+ const TableRoot = /*#__PURE__*/forwardRef(({
77
+ asChild,
78
+ className,
79
+ containerStyle,
80
+ children,
81
+ style,
82
+ fullBleed = false,
83
+ ...props
84
+ }, ref) => {
85
+ const ctx = useTableVariantContext(fullBleed);
86
+ const computedClassName = cn(tableContainerVariants(), className);
87
+ const [viewportWidth, setViewportWidth] = useState(0);
88
+ const [columnCount, setColumnCount] = useState(0);
89
+ const rowColumnCountsRef = useRef(new Map());
90
+ const syncColumnCount = useCallback(() => {
91
+ let max = 0;
92
+ for (const count of rowColumnCountsRef.current.values()) {
93
+ if (count > max) {
94
+ max = count;
95
+ }
96
+ }
97
+ setColumnCount(prev => prev === max ? prev : max);
98
+ }, []);
99
+ const registerRowColumnCount = useCallback((rowId, count) => {
100
+ rowColumnCountsRef.current.set(rowId, count);
101
+ syncColumnCount();
102
+ }, [syncColumnCount]);
103
+ const unregisterRowColumnCount = useCallback(rowId => {
104
+ if (rowColumnCountsRef.current.delete(rowId)) {
105
+ syncColumnCount();
106
+ }
107
+ }, [syncColumnCount]);
108
+ const tableWidth = Math.max(viewportWidth, columnCount * NATIVE_COL_MIN_WIDTH);
109
+ const layout = useMemo(() => ({
110
+ tableWidth,
111
+ columnCount,
112
+ registerRowColumnCount,
113
+ unregisterRowColumnCount,
114
+ setViewportWidth
115
+ }), [tableWidth, columnCount, registerRowColumnCount, unregisterRowColumnCount]);
116
+ const handleViewportLayout = event => {
117
+ const nextWidth = event.nativeEvent.layout.width;
118
+ setViewportWidth(prev => prev === nextWidth ? prev : nextWidth);
119
+ };
120
+ if (asChild) {
121
+ const Comp = Slot;
122
+ return /*#__PURE__*/_jsx(ParentContext.Provider, {
123
+ value: ctx,
124
+ children: /*#__PURE__*/_jsx(TableLayoutContext.Provider, {
125
+ value: layout,
126
+ children: /*#__PURE__*/_jsx(Comp, {
127
+ ref: ref,
128
+ className: computedClassName,
129
+ style: style,
130
+ ...props,
131
+ ...mergeDataAttributes(props, dataAttributes({
132
+ slot: 'table'
133
+ })),
134
+ children: children
135
+ })
136
+ })
137
+ });
138
+ }
139
+ const childList = Children.toArray(children);
140
+ const captions = childList.filter(isCaptionChild);
141
+ const tableChildren = childList.filter(child => !isCaptionChild(child));
142
+ return /*#__PURE__*/_jsx(ParentContext.Provider, {
143
+ value: ctx,
144
+ children: /*#__PURE__*/_jsx(TableLayoutContext.Provider, {
145
+ value: layout,
146
+ children: /*#__PURE__*/_jsx(ScrollView, {
147
+ horizontal: true,
148
+ showsHorizontalScrollIndicator: true,
149
+ className: computedClassName,
150
+ style: [containerStyle, style],
151
+ onLayout: handleViewportLayout,
152
+ children: /*#__PURE__*/_jsxs(View, {
153
+ ref: ref,
154
+ className: tableNativeRootVariants(),
155
+ style: tableWidth > 0 ? {
156
+ width: tableWidth
157
+ } : undefined,
158
+ accessibilityRole: "none",
159
+ ...props,
160
+ ...mergeDataAttributes(props, dataAttributes({
161
+ slot: 'table'
162
+ })),
163
+ children: [tableChildren, captions]
164
+ })
165
+ })
166
+ })
167
+ });
168
+ });
169
+ TableRoot.displayName = 'Table';
170
+ const TableCaption = /*#__PURE__*/forwardRef(({
171
+ asChild,
172
+ className,
173
+ children,
174
+ style,
175
+ ...props
176
+ }, ref) => {
177
+ const computedClassName = cn(tableNativeCaptionVariants(), className);
178
+ const Comp = asChild ? Slot : Text;
179
+ const {
180
+ tableWidth
181
+ } = useTableLayout();
182
+ return /*#__PURE__*/_jsx(Comp, {
183
+ ref: ref,
184
+ className: computedClassName,
185
+ style: [tableWidth > 0 ? {
186
+ width: tableWidth
187
+ } : null, style],
188
+ accessibilityRole: "text",
189
+ ...props,
190
+ ...mergeDataAttributes(props, dataAttributes({
191
+ slot: 'table-caption'
192
+ })),
193
+ children: children
194
+ });
195
+ });
196
+ TableCaption.displayName = 'Table.Caption';
197
+ const TableHeader = /*#__PURE__*/forwardRef(({
198
+ asChild,
199
+ className,
200
+ children,
201
+ style,
202
+ ...props
203
+ }, ref) => {
204
+ const Comp = asChild ? Slot : View;
205
+ return /*#__PURE__*/_jsx(Comp, {
206
+ ref: ref,
207
+ className: className,
208
+ style: style,
209
+ accessibilityRole: "header",
210
+ ...props,
211
+ ...mergeDataAttributes(props, dataAttributes({
212
+ slot: 'table-header'
213
+ })),
214
+ children: children
215
+ });
216
+ });
217
+ TableHeader.displayName = 'Table.Header';
218
+ const TableBody = /*#__PURE__*/forwardRef(({
219
+ asChild,
220
+ className,
221
+ children,
222
+ style,
223
+ ...props
224
+ }, ref) => {
225
+ const Comp = asChild ? Slot : View;
226
+ return /*#__PURE__*/_jsx(Comp, {
227
+ ref: ref,
228
+ className: className,
229
+ style: style,
230
+ ...props,
231
+ ...mergeDataAttributes(props, dataAttributes({
232
+ slot: 'table-body'
233
+ })),
234
+ children: children
235
+ });
236
+ });
237
+ TableBody.displayName = 'Table.Body';
238
+ const TableFooter = /*#__PURE__*/forwardRef(({
239
+ asChild,
240
+ className,
241
+ children,
242
+ style,
243
+ ...props
244
+ }, ref) => {
245
+ const computedClassName = cn(tableNativeFooterVariants(), className);
246
+ const Comp = asChild ? Slot : View;
247
+ return /*#__PURE__*/_jsx(Comp, {
248
+ ref: ref,
249
+ className: computedClassName,
250
+ style: style,
251
+ accessibilityRole: "summary",
252
+ ...props,
253
+ ...mergeDataAttributes(props, dataAttributes({
254
+ slot: 'table-footer'
255
+ })),
256
+ children: children
257
+ });
258
+ });
259
+ TableFooter.displayName = 'Table.Footer';
260
+ const TableRow = /*#__PURE__*/forwardRef(({
261
+ asChild,
262
+ className,
263
+ children,
264
+ style,
265
+ ...props
266
+ }, ref) => {
267
+ const computedClassName = cn(tableNativeRowVariants(), className);
268
+ const Comp = asChild ? Slot : View;
269
+ const rowId = useId();
270
+ const {
271
+ tableWidth,
272
+ registerRowColumnCount,
273
+ unregisterRowColumnCount
274
+ } = useTableLayout();
275
+ const columnCount = countRowColumns(children);
276
+ useLayoutEffect(() => {
277
+ if (columnCount > 0) {
278
+ registerRowColumnCount(rowId, columnCount);
279
+ } else {
280
+ unregisterRowColumnCount(rowId);
281
+ }
282
+ return () => {
283
+ unregisterRowColumnCount(rowId);
284
+ };
285
+ }, [rowId, columnCount, registerRowColumnCount, unregisterRowColumnCount]);
286
+ return /*#__PURE__*/_jsx(Comp, {
287
+ ref: ref,
288
+ className: computedClassName,
289
+ style: [tableWidth > 0 ? {
290
+ width: tableWidth
291
+ } : null, style],
292
+ accessibilityRole: "none",
293
+ ...props,
294
+ ...mergeDataAttributes(props, dataAttributes({
295
+ slot: 'table-row'
296
+ })),
297
+ children: children
298
+ });
299
+ });
300
+ TableRow.displayName = 'Table.Row';
301
+ const TableHead = /*#__PURE__*/forwardRef(({
302
+ asChild,
303
+ align = 'start',
304
+ className,
305
+ children,
306
+ style,
307
+ colSpan,
308
+ rowSpan: _rowSpan,
309
+ scope: _scope,
310
+ ...props
311
+ }, ref) => {
312
+ const {
313
+ fullBleed
314
+ } = useTableStyleContext();
315
+ const {
316
+ tableWidth,
317
+ columnCount
318
+ } = useTableLayout();
319
+ const computedClassName = cn(tableNativeHeadVariants({
320
+ fullBleed,
321
+ align
322
+ }), className);
323
+ const Comp = asChild ? Slot : View;
324
+ return /*#__PURE__*/_jsx(Comp, {
325
+ ref: ref,
326
+ className: computedClassName,
327
+ style: [nativeColumnStyle(columnSpan(colSpan), tableWidth, columnCount), style],
328
+ accessibilityRole: "header",
329
+ ...props,
330
+ ...mergeDataAttributes(props, dataAttributes({
331
+ slot: 'table-head'
332
+ })),
333
+ children: renderNativeTableTextContent(children, tableNativeHeadTextVariants({
334
+ align
335
+ }))
336
+ });
337
+ });
338
+ TableHead.displayName = 'Table.Head';
339
+ const TableCell = /*#__PURE__*/forwardRef(({
340
+ asChild,
341
+ align = 'start',
342
+ className,
343
+ children,
344
+ style,
345
+ colSpan,
346
+ rowSpan: _rowSpan,
347
+ ...props
348
+ }, ref) => {
349
+ const {
350
+ fullBleed
351
+ } = useTableStyleContext();
352
+ const {
353
+ tableWidth,
354
+ columnCount
355
+ } = useTableLayout();
356
+ const computedClassName = cn(tableNativeCellVariants({
357
+ fullBleed,
358
+ align
359
+ }), className);
360
+ const Comp = asChild ? Slot : View;
361
+ return /*#__PURE__*/_jsx(Comp, {
362
+ ref: ref,
363
+ className: computedClassName,
364
+ style: [nativeColumnStyle(columnSpan(colSpan), tableWidth, columnCount), style],
365
+ accessibilityRole: "text",
366
+ ...props,
367
+ ...mergeDataAttributes(props, dataAttributes({
368
+ slot: 'table-cell'
369
+ })),
370
+ children: renderNativeTableTextContent(children, tableNativeCellTextVariants({
371
+ align
372
+ }))
373
+ });
374
+ });
375
+ TableCell.displayName = 'Table.Cell';
376
+ export const Table = Object.assign(TableRoot, {
377
+ Caption: TableCaption,
378
+ Header: TableHeader,
379
+ Body: TableBody,
380
+ Footer: TableFooter,
381
+ Row: TableRow,
382
+ Head: TableHead,
383
+ Cell: TableCell
384
+ });
385
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Children","createContext","forwardRef","isValidElement","useCallback","useContext","useId","useLayoutEffect","useMemo","useRef","useState","ScrollView","Text","View","Slot","dataAttributes","mergeDataAttributes","cn","tableNativeCaptionVariants","tableContainerVariants","tableNativeCellVariants","tableNativeCellTextVariants","tableNativeFooterVariants","tableNativeHeadVariants","tableNativeHeadTextVariants","tableNativeRootVariants","tableNativeRowVariants","ParentContext","useTableStyleContext","useTableVariantContext","jsx","_jsx","jsxs","_jsxs","NATIVE_COL_MIN_WIDTH","TableLayoutContext","tableWidth","columnCount","registerRowColumnCount","unregisterRowColumnCount","setViewportWidth","useTableLayout","nativeColumnStyle","span","undefined","width","flexGrow","flexShrink","isTableColumnChild","child","includes","type","displayName","countRowColumns","children","toArray","reduce","total","props","colSpan","columnSpan","isCaptionChild","isTextChild","renderNativeTableTextContent","textClassName","numberOfLines","ellipsizeMode","className","childList","length","every","some","map","index","toString","TableRoot","asChild","containerStyle","style","fullBleed","ref","ctx","computedClassName","viewportWidth","setColumnCount","rowColumnCountsRef","Map","syncColumnCount","max","count","current","values","prev","rowId","set","delete","Math","layout","handleViewportLayout","event","nextWidth","nativeEvent","Comp","Provider","value","slot","captions","filter","tableChildren","horizontal","showsHorizontalScrollIndicator","onLayout","accessibilityRole","TableCaption","TableHeader","TableBody","TableFooter","TableRow","TableHead","align","rowSpan","_rowSpan","scope","_scope","TableCell","Table","Object","assign","Caption","Header","Body","Footer","Row","Head","Cell"],"sourceRoot":"../../../../src","sources":["components/Table/index.tsx"],"mappings":"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","ignoreList":[]}