@mindlogic-ai/logician-ui 4.0.0-alpha.17 → 4.0.0-alpha.19

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 (64) hide show
  1. package/dist/components/Table/TableContext.d.ts.map +1 -1
  2. package/dist/components/Table/TableContext.js +27 -21
  3. package/dist/components/Table/TableContext.js.map +1 -1
  4. package/dist/components/Table/TableContext.mjs +27 -21
  5. package/dist/components/Table/TableContext.mjs.map +1 -1
  6. package/dist/components/Table/Td.d.ts.map +1 -1
  7. package/dist/components/Table/Td.js +9 -7
  8. package/dist/components/Table/Td.js.map +1 -1
  9. package/dist/components/Table/Td.mjs +10 -8
  10. package/dist/components/Table/Td.mjs.map +1 -1
  11. package/dist/components/Table/Th.d.ts.map +1 -1
  12. package/dist/components/Table/Th.js +9 -7
  13. package/dist/components/Table/Th.js.map +1 -1
  14. package/dist/components/Table/Th.mjs +10 -8
  15. package/dist/components/Table/Th.mjs.map +1 -1
  16. package/dist/components/Table/useRegisterStickyWidth.d.ts +25 -0
  17. package/dist/components/Table/useRegisterStickyWidth.d.ts.map +1 -0
  18. package/dist/components/Table/useRegisterStickyWidth.js +37 -0
  19. package/dist/components/Table/useRegisterStickyWidth.js.map +1 -0
  20. package/dist/components/Table/useRegisterStickyWidth.mjs +35 -0
  21. package/dist/components/Table/useRegisterStickyWidth.mjs.map +1 -0
  22. package/dist/components/Typography/H1.d.ts.map +1 -1
  23. package/dist/components/Typography/H1.js +1 -1
  24. package/dist/components/Typography/H1.js.map +1 -1
  25. package/dist/components/Typography/H1.mjs +1 -1
  26. package/dist/components/Typography/H1.mjs.map +1 -1
  27. package/dist/components/Typography/H2.d.ts.map +1 -1
  28. package/dist/components/Typography/H2.js +1 -1
  29. package/dist/components/Typography/H2.js.map +1 -1
  30. package/dist/components/Typography/H2.mjs +1 -1
  31. package/dist/components/Typography/H2.mjs.map +1 -1
  32. package/dist/components/Typography/H3.js +1 -1
  33. package/dist/components/Typography/H3.js.map +1 -1
  34. package/dist/components/Typography/H3.mjs +1 -1
  35. package/dist/components/Typography/H3.mjs.map +1 -1
  36. package/dist/components/Typography/H4.d.ts.map +1 -1
  37. package/dist/components/Typography/H4.js +1 -1
  38. package/dist/components/Typography/H4.js.map +1 -1
  39. package/dist/components/Typography/H4.mjs +1 -1
  40. package/dist/components/Typography/H4.mjs.map +1 -1
  41. package/dist/components/Typography/H5.d.ts.map +1 -1
  42. package/dist/components/Typography/H5.js +1 -1
  43. package/dist/components/Typography/H5.js.map +1 -1
  44. package/dist/components/Typography/H5.mjs +1 -1
  45. package/dist/components/Typography/H5.mjs.map +1 -1
  46. package/dist/theme/colors.d.ts +6 -6
  47. package/dist/theme/colors.d.ts.map +1 -1
  48. package/dist/theme/colors.js +31 -13
  49. package/dist/theme/colors.js.map +1 -1
  50. package/dist/theme/colors.mjs +31 -13
  51. package/dist/theme/colors.mjs.map +1 -1
  52. package/package.json +1 -1
  53. package/src/components/Table/Table.stories.tsx +253 -0
  54. package/src/components/Table/TableContext.tsx +30 -24
  55. package/src/components/Table/Td.tsx +10 -8
  56. package/src/components/Table/Th.tsx +10 -8
  57. package/src/components/Table/useRegisterStickyWidth.ts +45 -0
  58. package/src/components/Typography/H1.tsx +1 -0
  59. package/src/components/Typography/H2.tsx +1 -0
  60. package/src/components/Typography/H3.tsx +1 -1
  61. package/src/components/Typography/H4.tsx +1 -0
  62. package/src/components/Typography/H5.tsx +1 -0
  63. package/src/theme/Palette.stories.tsx +72 -23
  64. package/src/theme/colors.ts +31 -13
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,SAAS,EAMV,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAOD,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,GAAG,OAAO,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IACV,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7E;AAID,eAAO,MAAM,eAAe,yBAM3B,CAAC;AAEF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4ItD,CAAC"}
1
+ {"version":3,"file":"TableContext.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,SAAS,EAMV,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AASD,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,GAAG,OAAO,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IACV,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7E;AAID,eAAO,MAAM,eAAe,yBAM3B,CAAC;AAEF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgJtD,CAAC"}
@@ -19,9 +19,15 @@ const TableProvider = ({ children }) => {
19
19
  isScrollEnd: false,
20
20
  isScrolling: false,
21
21
  });
22
- const stickyColumnsRef = React.useRef({
23
- leftColumnWidths: new Map(),
24
- rightColumnWidths: new Map(),
22
+ // Column widths live in state (not a ref) so that a width change — a font
23
+ // swap, a window/sidebar resize, or the columns re-flowing when the table
24
+ // goes from fitting to overflowing — triggers a re-render and the sticky
25
+ // offsets are recomputed. Storing them in a ref (the previous approach) meant
26
+ // the offsets were computed once at mount and then went stale, detaching the
27
+ // sticky columns from their real positions.
28
+ const [stickyColumns, setStickyColumns] = React.useState({
29
+ left: {},
30
+ right: {},
25
31
  });
26
32
  // 스크롤 상태 업데이트
27
33
  const updateScrollState = React.useCallback(() => {
@@ -52,41 +58,41 @@ const TableProvider = ({ children }) => {
52
58
  updateScrollState();
53
59
  }
54
60
  }, [updateScrollState]);
55
- // Register a sticky column with its width
61
+ // Register a sticky column with its (measured) width. Rounds to whole pixels
62
+ // and bails when unchanged so the ResizeObserver-driven callers can't
63
+ // ping-pong on sub-pixel differences and spin the render loop.
56
64
  const registerStickyColumn = React.useCallback((direction, index, width) => {
57
- if (direction === 'left') {
58
- stickyColumnsRef.current.leftColumnWidths.set(index, width);
59
- }
60
- else {
61
- stickyColumnsRef.current.rightColumnWidths.set(index, width);
62
- }
65
+ const rounded = Math.round(width);
66
+ setStickyColumns((prev) => {
67
+ const side = prev[direction];
68
+ if (side[index] === rounded)
69
+ return prev;
70
+ return { ...prev, [direction]: { ...side, [index]: rounded } };
71
+ });
63
72
  }, []);
64
73
  // Get the offset for a sticky column based on its index and direction
65
74
  const getStickyOffset = React.useCallback((direction, index) => {
66
75
  if (index === 0)
67
76
  return 0;
68
- const widthsMap = direction === 'left'
69
- ? stickyColumnsRef.current.leftColumnWidths
70
- : stickyColumnsRef.current.rightColumnWidths;
77
+ const widths = stickyColumns[direction];
71
78
  let offset = 0;
72
79
  for (let i = 0; i < index; i++) {
73
- offset += widthsMap.get(i) || 0;
80
+ offset += widths[i] || 0;
74
81
  }
75
82
  return offset;
76
- }, []);
83
+ }, [stickyColumns]);
77
84
  // Check if a column is the last sticky column on its side
78
85
  const isLastStickyColumn = React.useCallback((direction, index) => {
79
- const widthsMap = direction === 'left'
80
- ? stickyColumnsRef.current.leftColumnWidths
81
- : stickyColumnsRef.current.rightColumnWidths;
82
- // Find the highest index in the map
86
+ const widths = stickyColumns[direction];
87
+ // Find the highest registered index on this side
83
88
  let maxIndex = -1;
84
- for (const idx of widthsMap.keys()) {
89
+ for (const key of Object.keys(widths)) {
90
+ const idx = Number(key);
85
91
  if (idx > maxIndex)
86
92
  maxIndex = idx;
87
93
  }
88
94
  return index === maxIndex;
89
- }, []);
95
+ }, [stickyColumns]);
90
96
  // 단일 useEffect에서 모든 이벤트 리스너 관리
91
97
  React.useEffect(() => {
92
98
  const container = containerRef.current;
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.js","sources":["../../../src/components/Table/TableContext.tsx"],"sourcesContent":[null],"names":["createContext","useContext","useRef","useState","useCallback","useEffect","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"TableContext.js","sources":["../../../src/components/Table/TableContext.tsx"],"sourcesContent":[null],"names":["createContext","useContext","useRef","useState","useCallback","useEffect","_jsx"],"mappings":"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"}
@@ -17,9 +17,15 @@ const TableProvider = ({ children }) => {
17
17
  isScrollEnd: false,
18
18
  isScrolling: false,
19
19
  });
20
- const stickyColumnsRef = useRef({
21
- leftColumnWidths: new Map(),
22
- rightColumnWidths: new Map(),
20
+ // Column widths live in state (not a ref) so that a width change — a font
21
+ // swap, a window/sidebar resize, or the columns re-flowing when the table
22
+ // goes from fitting to overflowing — triggers a re-render and the sticky
23
+ // offsets are recomputed. Storing them in a ref (the previous approach) meant
24
+ // the offsets were computed once at mount and then went stale, detaching the
25
+ // sticky columns from their real positions.
26
+ const [stickyColumns, setStickyColumns] = useState({
27
+ left: {},
28
+ right: {},
23
29
  });
24
30
  // 스크롤 상태 업데이트
25
31
  const updateScrollState = useCallback(() => {
@@ -50,41 +56,41 @@ const TableProvider = ({ children }) => {
50
56
  updateScrollState();
51
57
  }
52
58
  }, [updateScrollState]);
53
- // Register a sticky column with its width
59
+ // Register a sticky column with its (measured) width. Rounds to whole pixels
60
+ // and bails when unchanged so the ResizeObserver-driven callers can't
61
+ // ping-pong on sub-pixel differences and spin the render loop.
54
62
  const registerStickyColumn = useCallback((direction, index, width) => {
55
- if (direction === 'left') {
56
- stickyColumnsRef.current.leftColumnWidths.set(index, width);
57
- }
58
- else {
59
- stickyColumnsRef.current.rightColumnWidths.set(index, width);
60
- }
63
+ const rounded = Math.round(width);
64
+ setStickyColumns((prev) => {
65
+ const side = prev[direction];
66
+ if (side[index] === rounded)
67
+ return prev;
68
+ return { ...prev, [direction]: { ...side, [index]: rounded } };
69
+ });
61
70
  }, []);
62
71
  // Get the offset for a sticky column based on its index and direction
63
72
  const getStickyOffset = useCallback((direction, index) => {
64
73
  if (index === 0)
65
74
  return 0;
66
- const widthsMap = direction === 'left'
67
- ? stickyColumnsRef.current.leftColumnWidths
68
- : stickyColumnsRef.current.rightColumnWidths;
75
+ const widths = stickyColumns[direction];
69
76
  let offset = 0;
70
77
  for (let i = 0; i < index; i++) {
71
- offset += widthsMap.get(i) || 0;
78
+ offset += widths[i] || 0;
72
79
  }
73
80
  return offset;
74
- }, []);
81
+ }, [stickyColumns]);
75
82
  // Check if a column is the last sticky column on its side
76
83
  const isLastStickyColumn = useCallback((direction, index) => {
77
- const widthsMap = direction === 'left'
78
- ? stickyColumnsRef.current.leftColumnWidths
79
- : stickyColumnsRef.current.rightColumnWidths;
80
- // Find the highest index in the map
84
+ const widths = stickyColumns[direction];
85
+ // Find the highest registered index on this side
81
86
  let maxIndex = -1;
82
- for (const idx of widthsMap.keys()) {
87
+ for (const key of Object.keys(widths)) {
88
+ const idx = Number(key);
83
89
  if (idx > maxIndex)
84
90
  maxIndex = idx;
85
91
  }
86
92
  return index === maxIndex;
87
- }, []);
93
+ }, [stickyColumns]);
88
94
  // 단일 useEffect에서 모든 이벤트 리스너 관리
89
95
  useEffect(() => {
90
96
  const container = containerRef.current;
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.mjs","sources":["../../../src/components/Table/TableContext.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"TableContext.mjs","sources":["../../../src/components/Table/TableContext.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Td.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Td.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,EAAE;yIAaZ,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;;CAqHrC,CAAC"}
1
+ {"version":3,"file":"Td.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Td.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,eAAO,MAAM,EAAE;yIAaZ,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;;CAsHrC,CAAC"}
@@ -6,6 +6,7 @@ var React = require('react');
6
6
  var react = require('@chakra-ui/react');
7
7
  var Table_styles = require('./Table.styles.js');
8
8
  var TableContext = require('./TableContext.js');
9
+ var useRegisterStickyWidth = require('./useRegisterStickyWidth.js');
9
10
 
10
11
  const Td = ({ wrap, isSticky = false, stickyDirection = 'left', stickyIndex = 0, _first, style, className, children, onClick, onMouseEnter, onMouseLeave, ...rest }) => {
11
12
  const cellRef = React.useRef(null);
@@ -53,13 +54,14 @@ const Td = ({ wrap, isSticky = false, stickyDirection = 'left', stickyIndex = 0,
53
54
  }, ...htmlProps, children: children }));
54
55
  }
55
56
  const { registerStickyColumn, getStickyOffset, isLastStickyColumn, ...scrollState } = tableContext;
56
- // Update width when element is mounted and dimensions change
57
- React.useEffect(() => {
58
- if (isSticky && cellRef.current) {
59
- const width = cellRef.current.getBoundingClientRect().width;
60
- registerStickyColumn(stickyDirection, stickyIndex, width);
61
- }
62
- }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);
57
+ // Keep this column's width registered so the cumulative sticky offsets stay
58
+ // correct across layout changes (font swap, resize, fit -> overflow).
59
+ useRegisterStickyWidth.useRegisterStickyWidth(cellRef, {
60
+ isSticky,
61
+ direction: stickyDirection,
62
+ index: stickyIndex,
63
+ register: registerStickyColumn,
64
+ });
63
65
  // Get the sticky offset based on the column's position
64
66
  const stickyOffset = isSticky
65
67
  ? getStickyOffset(stickyDirection, stickyIndex)
@@ -1 +1 @@
1
- {"version":3,"file":"Td.js","sources":["../../../src/components/Table/Td.tsx"],"sourcesContent":[null],"names":["useRef","useTableContext","useToken","_jsx","useEffect","getStickyStyles","Table"],"mappings":"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"}
1
+ {"version":3,"file":"Td.js","sources":["../../../src/components/Table/Td.tsx"],"sourcesContent":[null],"names":["useRef","useTableContext","useToken","_jsx","useRegisterStickyWidth","getStickyStyles","Table"],"mappings":";;;;;;;;;;AAQO,MAAM,EAAE,GAAG,CAAC,EACjB,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,eAAe,GAAG,MAAM,EACxB,WAAW,GAAG,CAAC,EACf,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,GAAG,IAAI,EAC6B,KAAI;AACxC,IAAA,MAAM,OAAO,GAAGA,YAAM,CAAuB,IAAI,CAAC;AAClD,IAAA,MAAM,YAAY,GAAGC,4BAAe,EAAE;;IAGtC,MAAM,YAAY,GAAGC,cAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAGA,cAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAChD,MAAM,YAAY,GAAGA,cAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;IAG5C,IAAI,CAAC,YAAY,EAAE;;AAEjB,QAAA,MAAM,SAAS,GAAG;YAChB,SAAS;YACT,OAAO;YACP,YAAY;YACZ,YAAY;;SAEb;AAED,QAAA,QACEC,cAAA,CAAA,IAAA,EAAA,EACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;AACnC,sBAAE,aAAa,CAAC,CAAC;AACjB,sBAAE,aAAa;AACjB,gBAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;AACpC,sBAAE,YAAY,CAAC,CAAC;AAChB,sBAAE,YAAY;AAChB,gBAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;AACvC,sBAAE,YAAY,CAAC,CAAC;AAChB,sBAAE,YAAY;AAChB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,kBAAkB,EAAE;AAClB,sBAAE,KAAK,CAAC,OAAO,CAAC,YAAY;AAC1B,0BAAE,YAAY,CAAC,CAAC;AAChB,0BAAE;AACJ,sBAAE,SAAS;AACb,gBAAA,IAAI;AACF,sBAAE;AACE,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,QAAQ,EAAE,YAAY;AACtB,wBAAA,YAAY,EAAE,YAAY;AAC3B;sBACD,EAAE,CAAC;AACP,gBAAA,GAAG,KAAK;AACT,aAAA,EAAA,GACG,SAAS,EAAA,QAAA,EAEZ,QAAQ,EAAA,CACN;IAET;AAEA,IAAA,MAAM,EACJ,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,GAAG,WAAW,EACf,GAAG,YAAY;;;IAIhBC,6CAAsB,CAAC,OAAO,EAAE;QAC9B,QAAQ;AACR,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,QAAQ,EAAE,oBAAoB;AAC/B,KAAA,CAAC;;IAGF,MAAM,YAAY,GAAG;AACnB,UAAE,eAAe,CAAC,eAAe,EAAE,WAAW;UAC5C,CAAC;;IAGL,MAAM,YAAY,GAChB,QAAQ,IAAI,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC;;AAG9D,IAAA,MAAM,YAAY,GAAGC,4BAAe,CAClC,QAAQ,EACR,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,CACb;AAED,IAAA,QACEF,cAAA,CAACG,WAAK,CAAC,IAAI,EAAA,EACT,KAAK,EAAC,SAAS,EACf,EAAE,EAAE,CAAC,EACL,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,UAAU,EACvB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE;AACN,YAAA,oBAAoB,EAAE;AACpB,gBAAA,kBAAkB,EAAE,CAAC;AACtB,aAAA;AACD,YAAA,GAAG,MAAM;AACV,SAAA,EAAA,IACI;AACH,cAAE;AACE,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,YAAY,EAAE,YAAY;AAC3B;cACD,EAAE,CAAC,EAAA,GACH,YAAY,EAAA,GACZ,IAAI,EAAA,QAAA,EAEP,QAAQ,EAAA,CACE;AAEjB;AAEA,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { useRef, useEffect } from 'react';
3
+ import { useRef } from 'react';
4
4
  import { useToken, Table } from '@chakra-ui/react';
5
5
  import { getStickyStyles } from './Table.styles.mjs';
6
6
  import { useTableContext } from './TableContext.mjs';
7
+ import { useRegisterStickyWidth } from './useRegisterStickyWidth.mjs';
7
8
 
8
9
  const Td = ({ wrap, isSticky = false, stickyDirection = 'left', stickyIndex = 0, _first, style, className, children, onClick, onMouseEnter, onMouseLeave, ...rest }) => {
9
10
  const cellRef = useRef(null);
@@ -51,13 +52,14 @@ const Td = ({ wrap, isSticky = false, stickyDirection = 'left', stickyIndex = 0,
51
52
  }, ...htmlProps, children: children }));
52
53
  }
53
54
  const { registerStickyColumn, getStickyOffset, isLastStickyColumn, ...scrollState } = tableContext;
54
- // Update width when element is mounted and dimensions change
55
- useEffect(() => {
56
- if (isSticky && cellRef.current) {
57
- const width = cellRef.current.getBoundingClientRect().width;
58
- registerStickyColumn(stickyDirection, stickyIndex, width);
59
- }
60
- }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);
55
+ // Keep this column's width registered so the cumulative sticky offsets stay
56
+ // correct across layout changes (font swap, resize, fit -> overflow).
57
+ useRegisterStickyWidth(cellRef, {
58
+ isSticky,
59
+ direction: stickyDirection,
60
+ index: stickyIndex,
61
+ register: registerStickyColumn,
62
+ });
61
63
  // Get the sticky offset based on the column's position
62
64
  const stickyOffset = isSticky
63
65
  ? getStickyOffset(stickyDirection, stickyIndex)
@@ -1 +1 @@
1
- {"version":3,"file":"Td.mjs","sources":["../../../src/components/Table/Td.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Td.mjs","sources":["../../../src/components/Table/Td.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Th.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAY,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,EAAE,2IAiJd,CAAC"}
1
+ {"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Th.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAY,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,eAAO,MAAM,EAAE,2IAkJd,CAAC"}
@@ -6,6 +6,7 @@ var React = require('react');
6
6
  var react = require('@chakra-ui/react');
7
7
  var Table_styles = require('./Table.styles.js');
8
8
  var TableContext = require('./TableContext.js');
9
+ var useRegisterStickyWidth = require('./useRegisterStickyWidth.js');
9
10
 
10
11
  const Th = React.forwardRef(({ isSticky = false, stickyDirection = 'left', stickyIndex = 0, style, className, children, onClick, onMouseEnter, onMouseLeave, ...rest }, forwardedRef) => {
11
12
  const tableContext = TableContext.useTableContext();
@@ -49,13 +50,14 @@ const Th = React.forwardRef(({ isSticky = false, stickyDirection = 'left', stick
49
50
  }, ...htmlProps, children: children }));
50
51
  }
51
52
  const { registerStickyColumn, getStickyOffset, isLastStickyColumn, ...scrollState } = tableContext;
52
- // Update width when element is mounted and dimensions change
53
- React.useEffect(() => {
54
- if (isSticky && measureNodeRef.current) {
55
- const width = measureNodeRef.current.getBoundingClientRect().width;
56
- registerStickyColumn(stickyDirection, stickyIndex, width);
57
- }
58
- }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);
53
+ // Keep this column's width registered so the cumulative sticky offsets stay
54
+ // correct across layout changes (font swap, resize, fit -> overflow).
55
+ useRegisterStickyWidth.useRegisterStickyWidth(measureNodeRef, {
56
+ isSticky,
57
+ direction: stickyDirection,
58
+ index: stickyIndex,
59
+ register: registerStickyColumn,
60
+ });
59
61
  // Combine refs (forwarded ref and internal ref)
60
62
  const setRefs = React.useCallback((node) => {
61
63
  // Set internal ref
@@ -1 +1 @@
1
- {"version":3,"file":"Th.js","sources":["../../../src/components/Table/Th.tsx"],"sourcesContent":[null],"names":["forwardRef","useTableContext","useRef","useToken","useCallback","_jsx","useEffect","getStickyStyles","Table"],"mappings":"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"}
1
+ {"version":3,"file":"Th.js","sources":["../../../src/components/Table/Th.tsx"],"sourcesContent":[null],"names":["forwardRef","useTableContext","useRef","useToken","useCallback","_jsx","useRegisterStickyWidth","getStickyStyles","Table"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useRef, useCallback, useEffect } from 'react';
3
+ import { forwardRef, useRef, useCallback } from 'react';
4
4
  import { useToken, Table } from '@chakra-ui/react';
5
5
  import { getStickyStyles } from './Table.styles.mjs';
6
6
  import { useTableContext } from './TableContext.mjs';
7
+ import { useRegisterStickyWidth } from './useRegisterStickyWidth.mjs';
7
8
 
8
9
  const Th = forwardRef(({ isSticky = false, stickyDirection = 'left', stickyIndex = 0, style, className, children, onClick, onMouseEnter, onMouseLeave, ...rest }, forwardedRef) => {
9
10
  const tableContext = useTableContext();
@@ -47,13 +48,14 @@ const Th = forwardRef(({ isSticky = false, stickyDirection = 'left', stickyIndex
47
48
  }, ...htmlProps, children: children }));
48
49
  }
49
50
  const { registerStickyColumn, getStickyOffset, isLastStickyColumn, ...scrollState } = tableContext;
50
- // Update width when element is mounted and dimensions change
51
- useEffect(() => {
52
- if (isSticky && measureNodeRef.current) {
53
- const width = measureNodeRef.current.getBoundingClientRect().width;
54
- registerStickyColumn(stickyDirection, stickyIndex, width);
55
- }
56
- }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);
51
+ // Keep this column's width registered so the cumulative sticky offsets stay
52
+ // correct across layout changes (font swap, resize, fit -> overflow).
53
+ useRegisterStickyWidth(measureNodeRef, {
54
+ isSticky,
55
+ direction: stickyDirection,
56
+ index: stickyIndex,
57
+ register: registerStickyColumn,
58
+ });
57
59
  // Combine refs (forwarded ref and internal ref)
58
60
  const setRefs = useCallback((node) => {
59
61
  // Set internal ref
@@ -1 +1 @@
1
- {"version":3,"file":"Th.mjs","sources":["../../../src/components/Table/Th.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Th.mjs","sources":["../../../src/components/Table/Th.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { RefObject } from 'react';
2
+ import { StickyDirection } from './Table.styles';
3
+ interface UseRegisterStickyWidthOptions {
4
+ isSticky: boolean;
5
+ direction: StickyDirection;
6
+ index: number;
7
+ register: (direction: StickyDirection, index: number, width: number) => void;
8
+ }
9
+ /**
10
+ * Keep a sticky cell's measured width registered with the table context.
11
+ *
12
+ * Unlike a mount-only measurement, this observes the cell with a
13
+ * `ResizeObserver`, so the width stays correct through later layout changes —
14
+ * a web-font swap that reflows the text, a window/sidebar resize, or the
15
+ * columns shrinking when the table goes from fitting its container to
16
+ * overflowing it. Without this, the cumulative sticky offsets are computed once
17
+ * from stale widths and the pinned columns visibly detach (an empty gap opens
18
+ * between them and neighbouring columns collapse).
19
+ *
20
+ * `getBoundingClientRect().width` is read inside the callback so the value is
21
+ * always the border-box width the offset maths expects.
22
+ */
23
+ export declare function useRegisterStickyWidth(ref: RefObject<HTMLTableCellElement | null>, { isSticky, direction, index, register }: UseRegisterStickyWidthOptions): void;
24
+ export {};
25
+ //# sourceMappingURL=useRegisterStickyWidth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRegisterStickyWidth.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useRegisterStickyWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU,6BAA6B;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,6BAA6B,QAiBxE"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ /**
7
+ * Keep a sticky cell's measured width registered with the table context.
8
+ *
9
+ * Unlike a mount-only measurement, this observes the cell with a
10
+ * `ResizeObserver`, so the width stays correct through later layout changes —
11
+ * a web-font swap that reflows the text, a window/sidebar resize, or the
12
+ * columns shrinking when the table goes from fitting its container to
13
+ * overflowing it. Without this, the cumulative sticky offsets are computed once
14
+ * from stale widths and the pinned columns visibly detach (an empty gap opens
15
+ * between them and neighbouring columns collapse).
16
+ *
17
+ * `getBoundingClientRect().width` is read inside the callback so the value is
18
+ * always the border-box width the offset maths expects.
19
+ */
20
+ function useRegisterStickyWidth(ref, { isSticky, direction, index, register }) {
21
+ React.useEffect(() => {
22
+ const node = ref.current;
23
+ if (!isSticky || !node)
24
+ return;
25
+ register(direction, index, node.getBoundingClientRect().width);
26
+ if (typeof ResizeObserver === 'undefined')
27
+ return;
28
+ const observer = new ResizeObserver(() => {
29
+ register(direction, index, node.getBoundingClientRect().width);
30
+ });
31
+ observer.observe(node);
32
+ return () => observer.disconnect();
33
+ }, [ref, isSticky, direction, index, register]);
34
+ }
35
+
36
+ exports.useRegisterStickyWidth = useRegisterStickyWidth;
37
+ //# sourceMappingURL=useRegisterStickyWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRegisterStickyWidth.js","sources":["../../../src/components/Table/useRegisterStickyWidth.ts"],"sourcesContent":[null],"names":["useEffect"],"mappings":";;;;;AAWA;;;;;;;;;;;;;AAaG;AACG,SAAU,sBAAsB,CACpC,GAA2C,EAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAiC,EAAA;IAEvEA,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AACxB,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;YAAE;AAExB,QAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;QAE9D,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;AAE3C,QAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAK;AACvC,YAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAChE,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAEtB,QAAA,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE;AACpC,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD;;;;"}
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { useEffect } from 'react';
3
+
4
+ /**
5
+ * Keep a sticky cell's measured width registered with the table context.
6
+ *
7
+ * Unlike a mount-only measurement, this observes the cell with a
8
+ * `ResizeObserver`, so the width stays correct through later layout changes —
9
+ * a web-font swap that reflows the text, a window/sidebar resize, or the
10
+ * columns shrinking when the table goes from fitting its container to
11
+ * overflowing it. Without this, the cumulative sticky offsets are computed once
12
+ * from stale widths and the pinned columns visibly detach (an empty gap opens
13
+ * between them and neighbouring columns collapse).
14
+ *
15
+ * `getBoundingClientRect().width` is read inside the callback so the value is
16
+ * always the border-box width the offset maths expects.
17
+ */
18
+ function useRegisterStickyWidth(ref, { isSticky, direction, index, register }) {
19
+ useEffect(() => {
20
+ const node = ref.current;
21
+ if (!isSticky || !node)
22
+ return;
23
+ register(direction, index, node.getBoundingClientRect().width);
24
+ if (typeof ResizeObserver === 'undefined')
25
+ return;
26
+ const observer = new ResizeObserver(() => {
27
+ register(direction, index, node.getBoundingClientRect().width);
28
+ });
29
+ observer.observe(node);
30
+ return () => observer.disconnect();
31
+ }, [ref, isSticky, direction, index, register]);
32
+ }
33
+
34
+ export { useRegisterStickyWidth };
35
+ //# sourceMappingURL=useRegisterStickyWidth.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRegisterStickyWidth.mjs","sources":["../../../src/components/Table/useRegisterStickyWidth.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAWA;;;;;;;;;;;;;AAaG;AACG,SAAU,sBAAsB,CACpC,GAA2C,EAC3C,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAiC,EAAA;IAEvE,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AACxB,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;YAAE;AAExB,QAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;QAE9D,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;AAE3C,QAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAK;AACvC,YAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAChE,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAEtB,QAAA,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE;AACpC,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"H1.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/H1.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,EAAE,6GAab,CAAC"}
1
+ {"version":3,"file":"H1.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/H1.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,EAAE,6GAcb,CAAC"}
@@ -7,7 +7,7 @@ var react = require('@chakra-ui/react');
7
7
 
8
8
  const H1 = React.forwardRef((props, ref) => {
9
9
  const { fontSize, ...rest } = props;
10
- return (jsxRuntime.jsx(react.Heading, { ref: ref, as: "h1", textStyle: fontSize ? undefined : 'h1', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
10
+ return (jsxRuntime.jsx(react.Heading, { ref: ref, as: "h1", color: "fg.emphasized", textStyle: fontSize ? undefined : 'h1', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
11
11
  });
12
12
  H1.displayName = 'H1';
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"H1.js","sources":["../../../src/components/Typography/H1.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","Heading"],"mappings":";;;;;;;AAGO,MAAM,EAAE,GAAGA,gBAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEC,cAAA,CAACC,aAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,EAAA,GAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
1
+ {"version":3,"file":"H1.js","sources":["../../../src/components/Typography/H1.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","Heading"],"mappings":";;;;;;;AAGO,MAAM,EAAE,GAAGA,gBAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEC,cAAA,CAACC,aAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,KAAK,EAAC,eAAe,EACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,KAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
@@ -5,7 +5,7 @@ import { Heading } from '@chakra-ui/react';
5
5
 
6
6
  const H1 = forwardRef((props, ref) => {
7
7
  const { fontSize, ...rest } = props;
8
- return (jsx(Heading, { ref: ref, as: "h1", textStyle: fontSize ? undefined : 'h1', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
8
+ return (jsx(Heading, { ref: ref, as: "h1", color: "fg.emphasized", textStyle: fontSize ? undefined : 'h1', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
9
9
  });
10
10
  H1.displayName = 'H1';
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"H1.mjs","sources":["../../../src/components/Typography/H1.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAGO,MAAM,EAAE,GAAG,UAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEA,GAAA,CAAC,OAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,EAAA,GAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
1
+ {"version":3,"file":"H1.mjs","sources":["../../../src/components/Typography/H1.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAGO,MAAM,EAAE,GAAG,UAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEA,GAAA,CAAC,OAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,KAAK,EAAC,eAAe,EACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,KAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"H2.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/H2.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,EAAE,6GAab,CAAC"}
1
+ {"version":3,"file":"H2.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/H2.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,EAAE,6GAcb,CAAC"}
@@ -7,7 +7,7 @@ var react = require('@chakra-ui/react');
7
7
 
8
8
  const H2 = React.forwardRef((props, ref) => {
9
9
  const { fontSize, ...rest } = props;
10
- return (jsxRuntime.jsx(react.Heading, { ref: ref, as: "h2", textStyle: fontSize ? undefined : 'h2', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
10
+ return (jsxRuntime.jsx(react.Heading, { ref: ref, as: "h2", color: "fg.emphasized", textStyle: fontSize ? undefined : 'h2', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
11
11
  });
12
12
  H2.displayName = 'H2';
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"H2.js","sources":["../../../src/components/Typography/H2.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","Heading"],"mappings":";;;;;;;AAGO,MAAM,EAAE,GAAGA,gBAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEC,cAAA,CAACC,aAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,EAAA,GAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
1
+ {"version":3,"file":"H2.js","sources":["../../../src/components/Typography/H2.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","Heading"],"mappings":";;;;;;;AAGO,MAAM,EAAE,GAAGA,gBAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEC,cAAA,CAACC,aAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,KAAK,EAAC,eAAe,EACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,KAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
@@ -5,7 +5,7 @@ import { Heading } from '@chakra-ui/react';
5
5
 
6
6
  const H2 = forwardRef((props, ref) => {
7
7
  const { fontSize, ...rest } = props;
8
- return (jsx(Heading, { ref: ref, as: "h2", textStyle: fontSize ? undefined : 'h2', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
8
+ return (jsx(Heading, { ref: ref, as: "h2", color: "fg.emphasized", textStyle: fontSize ? undefined : 'h2', fontSize: fontSize, wordBreak: "keep-all", ...rest }));
9
9
  });
10
10
  H2.displayName = 'H2';
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"H2.mjs","sources":["../../../src/components/Typography/H2.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAGO,MAAM,EAAE,GAAG,UAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEA,GAAA,CAAC,OAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,EAAA,GAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}
1
+ {"version":3,"file":"H2.mjs","sources":["../../../src/components/Typography/H2.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAGO,MAAM,EAAE,GAAG,UAAU,CAAmC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAEnC,IAAA,QACEA,GAAA,CAAC,OAAO,EAAA,EACN,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,IAAI,EACP,KAAK,EAAC,eAAe,EACrB,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,UAAU,KAChB,IAAI,EAAA,CACR;AAEN,CAAC;AAED,EAAE,CAAC,WAAW,GAAG,IAAI;;;;"}