@tcn/ui 0.3.2 → 0.4.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 (207) hide show
  1. package/dist/Color-6BZIO3FS-CWWwv-fq.js +1004 -0
  2. package/dist/Color-6BZIO3FS-CWWwv-fq.js.map +1 -0
  3. package/dist/{WithTooltip-IO6J4KBT-B1oq93K5.js → WithTooltip-65CFNBJE-DvcUZizH.js} +4 -4
  4. package/dist/WithTooltip-65CFNBJE-DvcUZizH.js.map +1 -0
  5. package/dist/actions/__docs__/components/showcase.d.ts.map +1 -1
  6. package/dist/actions/__docs__/components/showcase.js +1 -1
  7. package/dist/actions/button/base_button/base_button.d.ts +2 -4
  8. package/dist/actions/button/base_button/base_button.d.ts.map +1 -1
  9. package/dist/actions/button/base_button/base_button.js +35 -35
  10. package/dist/actions/button/base_button/base_button.js.map +1 -1
  11. package/dist/actions/button/button/button.d.ts +7 -1
  12. package/dist/actions/button/button/button.d.ts.map +1 -1
  13. package/dist/actions/button/button/button.js +9 -7
  14. package/dist/actions/button/button/button.js.map +1 -1
  15. package/dist/actions/button/slim_button/slim_button.d.ts +6 -1
  16. package/dist/actions/button/slim_button/slim_button.d.ts.map +1 -1
  17. package/dist/actions/button/slim_button/slim_button.js +13 -14
  18. package/dist/actions/button/slim_button/slim_button.js.map +1 -1
  19. package/dist/actions/toggle/toggle.d.ts +9 -0
  20. package/dist/actions/toggle/toggle.d.ts.map +1 -0
  21. package/dist/actions/toggle/toggle.js +21 -0
  22. package/dist/actions/toggle/toggle.js.map +1 -0
  23. package/dist/date_picker_time_selector.css +1 -1
  24. package/dist/feedback/lazy/lazy.js +3 -3
  25. package/dist/form/field/common/field_error.js +16 -9
  26. package/dist/form/field/common/field_error.js.map +1 -1
  27. package/dist/formatter-EIJCOSYU-D6nmx63h.js +6 -0
  28. package/dist/formatter-EIJCOSYU-D6nmx63h.js.map +1 -0
  29. package/dist/input.css +1 -1
  30. package/dist/inputs/mask_input/mask.d.ts.map +1 -1
  31. package/dist/inputs/mask_input/mask.js.map +1 -1
  32. package/dist/inputs/multiselect/multiselect_inline_values.js +3 -2
  33. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  34. package/dist/inputs/multiselect/multiselect_values.js +3 -2
  35. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  36. package/dist/layouts/index.d.ts +2 -1
  37. package/dist/layouts/index.d.ts.map +1 -1
  38. package/dist/layouts/index.js +20 -18
  39. package/dist/layouts/index.js.map +1 -1
  40. package/dist/layouts/row/row.d.ts +4 -0
  41. package/dist/layouts/row/row.d.ts.map +1 -0
  42. package/dist/layouts/row/row.js +11 -0
  43. package/dist/layouts/row/row.js.map +1 -0
  44. package/dist/layouts/section/heading.d.ts +7 -0
  45. package/dist/layouts/section/heading.d.ts.map +1 -0
  46. package/dist/layouts/section/heading.js +9 -0
  47. package/dist/layouts/section/heading.js.map +1 -0
  48. package/dist/layouts/section/section.d.ts +4 -0
  49. package/dist/layouts/section/section.d.ts.map +1 -0
  50. package/dist/layouts/section/section.js +22 -0
  51. package/dist/layouts/section/section.js.map +1 -0
  52. package/dist/navigation/index.d.ts +7 -0
  53. package/dist/navigation/index.d.ts.map +1 -0
  54. package/dist/navigation/index.js +17 -0
  55. package/dist/navigation/index.js.map +1 -0
  56. package/dist/navigation/tabs/primitives/tabs_bar.d.ts +7 -0
  57. package/dist/navigation/tabs/primitives/tabs_bar.d.ts.map +1 -0
  58. package/dist/navigation/tabs/primitives/tabs_bar.js +21 -0
  59. package/dist/navigation/tabs/primitives/tabs_bar.js.map +1 -0
  60. package/dist/navigation/tabs/primitives/tabs_list.d.ts +10 -0
  61. package/dist/navigation/tabs/primitives/tabs_list.d.ts.map +1 -0
  62. package/dist/navigation/tabs/primitives/tabs_list.js +29 -0
  63. package/dist/navigation/tabs/primitives/tabs_list.js.map +1 -0
  64. package/dist/navigation/tabs/state/context.d.ts +21 -0
  65. package/dist/navigation/tabs/state/context.d.ts.map +1 -0
  66. package/dist/navigation/tabs/state/context.js +34 -0
  67. package/dist/navigation/tabs/state/context.js.map +1 -0
  68. package/dist/navigation/tabs/state/link/tab_link.d.ts +9 -0
  69. package/dist/navigation/tabs/state/link/tab_link.d.ts.map +1 -0
  70. package/dist/navigation/tabs/state/link/tab_link.js +36 -0
  71. package/dist/navigation/tabs/state/link/tab_link.js.map +1 -0
  72. package/dist/navigation/tabs/state/link/use_tab_link.d.ts +5 -0
  73. package/dist/navigation/tabs/state/link/use_tab_link.d.ts.map +1 -0
  74. package/dist/navigation/tabs/state/link/use_tab_link.js +13 -0
  75. package/dist/navigation/tabs/state/link/use_tab_link.js.map +1 -0
  76. package/dist/navigation/tabs/state/nav_bar.d.ts +5 -0
  77. package/dist/navigation/tabs/state/nav_bar.d.ts.map +1 -0
  78. package/dist/navigation/tabs/state/nav_bar.js +36 -0
  79. package/dist/navigation/tabs/state/nav_bar.js.map +1 -0
  80. package/dist/navigation/tabs/state/tab.d.ts +6 -0
  81. package/dist/navigation/tabs/state/tab.d.ts.map +1 -0
  82. package/dist/navigation/tabs/state/tab.js +6 -0
  83. package/dist/navigation/tabs/state/tab.js.map +1 -0
  84. package/dist/overlay/carrot/base_carrot.d.ts +8 -0
  85. package/dist/overlay/carrot/base_carrot.d.ts.map +1 -0
  86. package/dist/overlay/carrot/base_carrot.js +21 -0
  87. package/dist/overlay/carrot/base_carrot.js.map +1 -0
  88. package/dist/overlay/portal/portal_platform.d.ts.map +1 -1
  89. package/dist/overlay/portal/portal_platform.js +3 -3
  90. package/dist/overlay/portal/portal_platform.js.map +1 -1
  91. package/dist/row.css +1 -0
  92. package/dist/section.css +1 -0
  93. package/dist/section.module-0wyGkhDg.js +5 -0
  94. package/dist/section.module-0wyGkhDg.js.map +1 -0
  95. package/dist/{showcase-WfP6kBEb.js → showcase-DK557szS.js} +18018 -16269
  96. package/dist/showcase-DK557szS.js.map +1 -0
  97. package/dist/surfaces/pop_confirm/pop_confirm.js +4 -3
  98. package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -1
  99. package/dist/{syntaxhighlighter-IQDEPFLK-BX_eF8__.js → syntaxhighlighter-ED5Y7EFY-DaMS-2cF.js} +54 -54
  100. package/dist/syntaxhighlighter-ED5Y7EFY-DaMS-2cF.js.map +1 -0
  101. package/dist/tabs_bar.css +1 -0
  102. package/dist/textarea.css +1 -1
  103. package/dist/theme_provider.css +1 -0
  104. package/dist/theme_provider.module-ChZQ5Xsk.js +5 -0
  105. package/dist/theme_provider.module-ChZQ5Xsk.js.map +1 -0
  106. package/dist/themes/stylesheets/reset.css +1 -1
  107. package/dist/themes/stylesheets/reset.js +1 -0
  108. package/dist/themes/stylesheets/reset.js.map +1 -1
  109. package/dist/themes/theme.d.ts +3 -2
  110. package/dist/themes/theme.d.ts.map +1 -1
  111. package/dist/themes/theme.js +20 -10
  112. package/dist/themes/theme.js.map +1 -1
  113. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  114. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  115. package/dist/themes/themes/ergo/ergo_theme.js +488 -238
  116. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  117. package/dist/themes/themes/windows_98/windows_98.css +1 -1
  118. package/dist/themes/themes/windows_98/windows_98_theme.js +149 -4
  119. package/dist/themes/themes/windows_98/windows_98_theme.js.map +1 -1
  120. package/dist/tokens/bubble/bubble.js +31 -24
  121. package/dist/tokens/bubble/bubble.js.map +1 -1
  122. package/dist/tokens/chip/chip.js +15 -8
  123. package/dist/tokens/chip/chip.js.map +1 -1
  124. package/dist/tokens/index.d.ts +2 -0
  125. package/dist/tokens/index.d.ts.map +1 -1
  126. package/dist/tokens/index.js +5 -1
  127. package/dist/tokens/index.js.map +1 -1
  128. package/dist/tokens/key/key.d.ts +3 -0
  129. package/dist/tokens/key/key.d.ts.map +1 -0
  130. package/dist/tokens/key/key.js +8 -0
  131. package/dist/tokens/key/key.js.map +1 -0
  132. package/dist/tokens/value/value.d.ts +3 -0
  133. package/dist/tokens/value/value.d.ts.map +1 -0
  134. package/dist/tokens/value/value.js +8 -0
  135. package/dist/tokens/value/value.js.map +1 -0
  136. package/dist/utils/css_utils.d.ts +9 -0
  137. package/dist/utils/css_utils.d.ts.map +1 -0
  138. package/dist/utils/css_utils.js +45 -0
  139. package/dist/utils/css_utils.js.map +1 -0
  140. package/package.json +8 -1
  141. package/src/actions/__docs__/actions.mdx +159 -34
  142. package/src/actions/__docs__/actions.stories.tsx +416 -101
  143. package/src/actions/__docs__/components/showcase.tsx +10 -6
  144. package/src/actions/button/__stories__/button.stories.tsx +10 -0
  145. package/src/actions/button/__stories__/toggle.stories.tsx +177 -0
  146. package/src/actions/button/base_button/base_button.tsx +8 -10
  147. package/src/actions/button/button/button.tsx +11 -2
  148. package/src/actions/button/slim_button/slim_button.tsx +20 -13
  149. package/src/actions/toggle/toggle.tsx +26 -0
  150. package/src/inputs/date_picker/date_picker_time_selector.module.css +0 -1
  151. package/src/inputs/input/input.module.css +0 -1
  152. package/src/inputs/mask_input/mask.ts +7 -1
  153. package/src/inputs/textarea/textarea.module.css +0 -1
  154. package/src/layouts/index.ts +3 -2
  155. package/src/layouts/row/row.module.css +5 -0
  156. package/src/layouts/row/row.tsx +15 -0
  157. package/src/layouts/section/__stories__/section.stories.module.css +6 -0
  158. package/src/layouts/section/__stories__/section.stories.tsx +152 -0
  159. package/src/layouts/section/heading.tsx +16 -0
  160. package/src/layouts/section/section.module.css +41 -0
  161. package/src/layouts/section/section.tsx +21 -0
  162. package/src/navigation/index.ts +18 -0
  163. package/src/navigation/tabs/__stories__/state.stories.tsx +136 -0
  164. package/src/navigation/tabs/__stories__/tabs.stories.tsx +40 -0
  165. package/src/navigation/tabs/primitives/tabs_bar.module.css +13 -0
  166. package/src/navigation/tabs/primitives/tabs_bar.tsx +25 -0
  167. package/src/navigation/tabs/primitives/tabs_list.tsx +41 -0
  168. package/src/navigation/tabs/state/context.tsx +61 -0
  169. package/src/navigation/tabs/state/link/tab_link.tsx +45 -0
  170. package/src/navigation/tabs/state/link/use_tab_link.ts +17 -0
  171. package/src/navigation/tabs/state/nav_bar.tsx +37 -0
  172. package/src/navigation/tabs/state/tab.tsx +12 -0
  173. package/src/overlay/carrot/base_carrot.tsx +24 -0
  174. package/src/overlay/carrot/carrot.stories.tsx +54 -0
  175. package/src/overlay/portal/portal_platform.tsx +1 -0
  176. package/src/surfaces/card/card.stories.tsx +14 -14
  177. package/src/surfaces/modal/__stories__/modal.stories.tsx +19 -8
  178. package/src/surfaces/window/window.stories.tsx +16 -10
  179. package/src/themes/stylesheets/reset.css +1 -0
  180. package/src/themes/theme.tsx +13 -4
  181. package/src/themes/theme_provider.module.css +6 -0
  182. package/src/themes/themes/ergo/__stories__/components/material_picker/sb_inverted_materials.module.css +4 -4
  183. package/src/themes/themes/ergo/__stories__/components/tone_picker/sb_tone_picker.module.css +3 -0
  184. package/src/themes/themes/ergo/__stories__/components/tone_picker/sb_tone_picker.tsx +5 -2
  185. package/src/themes/themes/ergo/__stories__/material.stories.tsx +2 -2
  186. package/src/themes/themes/ergo/__stories__/sb_materials.module.css +31 -26
  187. package/src/themes/themes/ergo/ergo_theme.css +484 -235
  188. package/src/themes/themes/ergo/ergo_theme.ts +1 -0
  189. package/src/themes/themes/windows_98/windows_98.css +149 -4
  190. package/src/tokens/index.ts +2 -0
  191. package/src/tokens/key/key.tsx +10 -0
  192. package/src/tokens/value/value.tsx +10 -0
  193. package/src/utils/css_utils.ts +64 -0
  194. package/tsconfig.json +6 -0
  195. package/dist/Color-ASIRERSW-B4GaVKuQ.js +0 -990
  196. package/dist/Color-ASIRERSW-B4GaVKuQ.js.map +0 -1
  197. package/dist/WithTooltip-IO6J4KBT-B1oq93K5.js.map +0 -1
  198. package/dist/formatter-QJ4M4OGQ-DaIl2Wi_.js +0 -6
  199. package/dist/formatter-QJ4M4OGQ-DaIl2Wi_.js.map +0 -1
  200. package/dist/layouts/list/section_header.d.ts +0 -6
  201. package/dist/layouts/list/section_header.d.ts.map +0 -1
  202. package/dist/layouts/list/section_header.js +0 -22
  203. package/dist/layouts/list/section_header.js.map +0 -1
  204. package/dist/showcase-WfP6kBEb.js.map +0 -1
  205. package/dist/syntaxhighlighter-IQDEPFLK-BX_eF8__.js.map +0 -1
  206. package/src/layouts/list/section_header.module.css +0 -20
  207. package/src/layouts/list/section_header.tsx +0 -21
@@ -1,4 +1,5 @@
1
1
  import css from './ergo_theme.css?raw';
2
+ import '@fontsource/lato';
2
3
 
3
4
  export const ergoStyleSheet = new CSSStyleSheet();
4
5
  ergoStyleSheet.replaceSync(css);
@@ -36,10 +36,6 @@
36
36
  --quaternary-color: #000080;
37
37
  --quaternary-color-strong: #000080;
38
38
 
39
- --font-color: #222222;
40
- --font-family: "Pixelated MS Sans Serif", Arial;
41
- --font-size: 12px;
42
-
43
39
  --background-color-primary: #c0c0c0;
44
40
  --background-color-secondary: #c0c0c0;
45
41
  --background-color-tertiary: #c0c0c0;
@@ -51,6 +47,16 @@
51
47
  --foreground-color-quaternary: #222222;
52
48
 
53
49
  --accent-color: #000080;
50
+
51
+ --font-color: #222222;
52
+ --font-family: "Microsoft Sans Serif", "Arial", sans-serif;
53
+ --font-size: 12px;
54
+ }
55
+
56
+ .tcn-theme-root {
57
+ font-family: var(--font-family);
58
+ color: var(--font-color);
59
+ -webkit-font-smoothing: none;
54
60
  }
55
61
 
56
62
  /* ===== TYPOGRAPHY ===== */
@@ -82,6 +88,7 @@
82
88
 
83
89
  /* ===== BUTTONS ===== */
84
90
  /* Base button styles */
91
+ .tcn-base-button,
85
92
  .tcn-button,
86
93
  .tcn-button[data-hierarchy="primary"],
87
94
  .tcn-button[data-hierarchy="secondary"],
@@ -1028,4 +1035,142 @@
1028
1035
  border-right: 1px solid #f5f5f5;
1029
1036
  border-left: 1px solid #808080;
1030
1037
  }
1038
+
1039
+ /* ===== SECTIONS ===== */
1040
+
1041
+ .tcn-section {
1042
+ background: silver;
1043
+ gap: 0px;
1044
+ font-size: 12px;
1045
+ }
1046
+
1047
+ .tcn-heading {
1048
+ background: silver;
1049
+ padding-inline-start: 8px;
1050
+ height: 23px;
1051
+ z-index: 5;
1052
+ box-shadow:
1053
+ inset -1px -1px #0a0a0a,
1054
+ inset 1px 1px #fff,
1055
+ inset -2px -2px grey,
1056
+ inset 2px 2px #c0c0c0;
1057
+ }
1058
+
1059
+ .tcn-section > .tcn-heading {
1060
+ top: 0;
1061
+ padding-inline-start: 8px;
1062
+ z-index: 4;
1063
+ }
1064
+
1065
+ .tcn-section > .tcn-section > .tcn-heading {
1066
+ top: 23px;
1067
+ padding-inline-start: 12px;
1068
+ z-index: 3;
1069
+ }
1070
+
1071
+ .tcn-section > .tcn-section > .tcn-section > .tcn-heading {
1072
+ top: 46px;
1073
+ padding-inline-start: 16px;
1074
+ z-index: 2;
1075
+ }
1076
+
1077
+ .tcn-section > .tcn-section > .tcn-section > .tcn-section .tcn-heading {
1078
+ top: 69px;
1079
+ padding-inline-start: 20px;
1080
+ z-index: 1;
1081
+ }
1082
+
1083
+ .tcn-section > :not(.tcn-heading, .tcn-section) {
1084
+ padding-inline-start: 8px;
1085
+ }
1086
+
1087
+ .tcn-section > .tcn-section > :not(.tcn-heading, .tcn-section) {
1088
+ padding-inline-start: 12px;
1089
+ }
1090
+
1091
+ .tcn-section > .tcn-section > .tcn-section > :not(.tcn-heading, .tcn-section) {
1092
+ padding-inline-start: 16px;
1093
+ }
1094
+
1095
+ .tcn-section
1096
+ > .tcn-section
1097
+ > .tcn-section
1098
+ > .tcn-section
1099
+ > :not(.tcn-heading, .tcn-section) {
1100
+ padding-inline-start: 20px;
1101
+ }
1102
+
1103
+ .tcn-section > .tcn-row {
1104
+ background: #fff;
1105
+ padding: 4px;
1106
+ font-size: 12px;
1107
+ gap: 4px;
1108
+ }
1109
+
1110
+ .tcn-base-carrot {
1111
+ --carrot-size: 12px;
1112
+ --carrot-triangle-height: calc(var(--carrot-size) / 2);
1113
+ --carrot-triangle-width: var(--carrot-size);
1114
+ --carrot-triangle-base: var(--carrot-triangle-height) solid transparent;
1115
+ --carrot-triangle-peak: var(--carrot-triangle-width) solid #000;
1116
+
1117
+ width: 0;
1118
+ height: 0;
1119
+ flex-grow: 0;
1120
+ display: inline-block;
1121
+
1122
+ &[data-direction="top"] {
1123
+ border-bottom: var(--carrot-triangle-peak);
1124
+ border-left: var(--carrot-triangle-base);
1125
+ border-right: var(--carrot-triangle-base);
1126
+ }
1127
+
1128
+ &[data-direction="bottom"] {
1129
+ border-top: var(--carrot-triangle-peak);
1130
+ border-left: var(--carrot-triangle-base);
1131
+ border-right: var(--carrot-triangle-base);
1132
+ }
1133
+
1134
+ &[data-direction="start"] {
1135
+ border-right: var(--carrot-triangle-peak);
1136
+ border-top: var(--carrot-triangle-base);
1137
+ border-bottom: var(--carrot-triangle-base);
1138
+ }
1139
+
1140
+ &[data-direction="end"] {
1141
+ border-left: var(--carrot-triangle-peak);
1142
+ border-top: var(--carrot-triangle-base);
1143
+ border-bottom: var(--carrot-triangle-base);
1144
+ }
1145
+ }
1146
+ }
1147
+
1148
+ /* ===== TABS ===== */
1149
+
1150
+ .tcn-tabs-list {
1151
+ display: flex;
1152
+ list-style-type: none;
1153
+ margin: 0 0 -2px;
1154
+ padding-left: 3px;
1155
+ position: relative;
1156
+ text-indent: 0;
1157
+
1158
+ .tcn-tab-item {
1159
+ border-top-left-radius: 3px;
1160
+ border-top-right-radius: 3px;
1161
+ box-shadow:
1162
+ inset -1px 0 #0a0a0a,
1163
+ inset 1px 1px #dfdfdf,
1164
+ inset -2px 0 grey,
1165
+ inset 2px 2px #fff;
1166
+ }
1167
+
1168
+ .tcn-tab-item[data-is-selected="true"] {
1169
+ background-color: silver;
1170
+ margin-left: -3px;
1171
+ margin-top: -2px;
1172
+ padding-bottom: 2px;
1173
+ position: relative;
1174
+ z-index: 8;
1175
+ }
1031
1176
  }
@@ -1,3 +1,5 @@
1
1
  export * from './chip/chip.js';
2
2
  export * from './badge/badge.js';
3
3
  export * from './bubble/bubble.js';
4
+ export * from './key/key.js';
5
+ export * from './value/value.js';
@@ -0,0 +1,10 @@
1
+ import clsx from 'clsx';
2
+ import { HStack, HStackProps } from '../../stacks/h_stack.js';
3
+
4
+ export const Key = ({ children, className, hAlign = 'start', ...props }: HStackProps) => {
5
+ return (
6
+ <HStack className={clsx(className, 'tcn-key')} hAlign={hAlign} {...props}>
7
+ {children}
8
+ </HStack>
9
+ );
10
+ };
@@ -0,0 +1,10 @@
1
+ import clsx from 'clsx';
2
+ import { HStack, HStackProps } from '../../stacks/h_stack.js';
3
+
4
+ export const Value = ({ children, className, hAlign = 'end', ...props }: HStackProps) => {
5
+ return (
6
+ <HStack className={clsx(className, 'tcn-value')} hAlign={hAlign} {...props}>
7
+ {children}
8
+ </HStack>
9
+ );
10
+ };
@@ -0,0 +1,64 @@
1
+ import type { Rectangle } from './types/dimensions.js';
2
+ import { useLayoutEffect, useRef, useState } from 'react';
3
+
4
+ export const convertRectangleToCssVariables = (
5
+ componentName: string,
6
+ stateName: string,
7
+ rectangle?: Rectangle | null
8
+ ) => {
9
+ if (!rectangle) {
10
+ return {};
11
+ }
12
+ const prefix = `--${componentName}-${stateName}-rectangle-`;
13
+ return {
14
+ [`${prefix}position-x`]: rectangle.position.x + 'px',
15
+ [`${prefix}position-y`]: rectangle.position.y + 'px',
16
+ [`${prefix}width`]: rectangle.dimensions.width + 'px',
17
+ [`${prefix}height`]: rectangle.dimensions.height + 'px',
18
+ };
19
+ };
20
+
21
+ function getElementRect(element: HTMLElement | null): Rectangle | null {
22
+ if (!element) return null;
23
+
24
+ return {
25
+ dimensions: {
26
+ width: element.offsetWidth,
27
+ height: element.offsetHeight,
28
+ },
29
+ position: {
30
+ x: element.offsetLeft,
31
+ y: element.offsetTop,
32
+ },
33
+ };
34
+ }
35
+
36
+ export function useTrackActiveItemRectangle(isActive: boolean) {
37
+ const ref = useRef<HTMLElement>(null);
38
+ const [rectangle, setRectangle] = useState<Rectangle | null>(null);
39
+
40
+ useLayoutEffect(() => {
41
+ const element = ref.current;
42
+ if (!element) return;
43
+
44
+ const update = () => {
45
+ const rect = getElementRect(element);
46
+ if (isActive && rect) {
47
+ setRectangle(rect);
48
+ }
49
+ };
50
+
51
+ update();
52
+
53
+ const resizeObserver = new ResizeObserver(update);
54
+ resizeObserver.observe(element);
55
+ window.addEventListener('resize', update);
56
+
57
+ return () => {
58
+ resizeObserver.disconnect();
59
+ window.removeEventListener('resize', update);
60
+ };
61
+ }, [isActive]);
62
+
63
+ return { ref, rectangle };
64
+ }
package/tsconfig.json CHANGED
@@ -12,6 +12,9 @@
12
12
  "~icons/*": [
13
13
  "../icons/src/*"
14
14
  ],
15
+ "~resource-store/*": [
16
+ "../resource-store/src/*"
17
+ ],
15
18
  "~sb-blackcat-addon/*": [
16
19
  "../sb-blackcat-addon/src/*"
17
20
  ],
@@ -20,6 +23,9 @@
20
23
  ],
21
24
  "~ui/*": [
22
25
  "./src/*"
26
+ ],
27
+ "~ui-table/*": [
28
+ "../ui-table/src/*"
23
29
  ]
24
30
  }
25
31
  },