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

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