@tcn/ui 0.17.0 → 0.18.1

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 (394) hide show
  1. package/AI_USAGE.md +59 -0
  2. package/CHANGELOG.md +1009 -0
  3. package/ai-docs/actions.md +43 -0
  4. package/ai-docs/decorators.md +34 -0
  5. package/ai-docs/feedback.md +31 -0
  6. package/ai-docs/form.md +58 -0
  7. package/ai-docs/inputs.md +71 -0
  8. package/ai-docs/layouts.md +76 -0
  9. package/ai-docs/mobile.md +34 -0
  10. package/ai-docs/navigation.md +48 -0
  11. package/ai-docs/overlay.md +58 -0
  12. package/ai-docs/stacks.md +59 -0
  13. package/ai-docs/surfaces.md +79 -0
  14. package/ai-docs/themes.md +47 -0
  15. package/ai-docs/tokens.md +35 -0
  16. package/ai-docs/typography.md +38 -0
  17. package/ai-docs/utils.md +51 -0
  18. package/dist/actions/index.d.ts +0 -1
  19. package/dist/actions/index.d.ts.map +1 -1
  20. package/dist/actions/index.js +6 -8
  21. package/dist/actions/index.js.map +1 -1
  22. package/dist/draggable.css +1 -1
  23. package/dist/draggable.module-DFYR5n3n.js +5 -0
  24. package/dist/draggable.module-DFYR5n3n.js.map +1 -0
  25. package/dist/field_set.css +1 -1
  26. package/dist/field_set.module-BpJTFCi4.js +5 -0
  27. package/dist/field_set.module-BpJTFCi4.js.map +1 -0
  28. package/dist/form/field/field.js +11 -10
  29. package/dist/form/field/field.js.map +1 -1
  30. package/dist/form/field_set/field_set.d.ts +6 -10
  31. package/dist/form/field_set/field_set.d.ts.map +1 -1
  32. package/dist/form/field_set/field_set.js +33 -61
  33. package/dist/form/field_set/field_set.js.map +1 -1
  34. package/dist/form/field_set/legend.d.ts +20 -0
  35. package/dist/form/field_set/legend.d.ts.map +1 -0
  36. package/dist/form/field_set/legend.js +28 -0
  37. package/dist/form/field_set/legend.js.map +1 -0
  38. package/dist/form/index.d.ts +2 -1
  39. package/dist/form/index.d.ts.map +1 -1
  40. package/dist/form/index.js +24 -22
  41. package/dist/form/index.js.map +1 -1
  42. package/dist/inputs/color_input/color_input.js +2 -3
  43. package/dist/inputs/color_input/color_input.js.map +1 -1
  44. package/dist/inputs/color_input/color_picker.js +11 -10
  45. package/dist/inputs/color_input/color_picker.js.map +1 -1
  46. package/dist/inputs/combo_box/combo_box.js +11 -10
  47. package/dist/inputs/combo_box/combo_box.js.map +1 -1
  48. package/dist/inputs/date_picker/date_picker.js +11 -10
  49. package/dist/inputs/date_picker/date_picker.js.map +1 -1
  50. package/dist/inputs/date_picker/date_picker_header.d.ts.map +1 -1
  51. package/dist/inputs/date_picker/date_picker_header.js +15 -14
  52. package/dist/inputs/date_picker/date_picker_header.js.map +1 -1
  53. package/dist/inputs/date_picker/date_picker_input.js +9 -9
  54. package/dist/inputs/date_picker/date_picker_time_selector.js +2 -3
  55. package/dist/inputs/date_picker/date_picker_time_selector.js.map +1 -1
  56. package/dist/inputs/date_picker/date_picker_year_input.js +2 -3
  57. package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
  58. package/dist/inputs/date_picker/date_picker_year_selector.js +22 -22
  59. package/dist/inputs/date_picker/date_picker_year_selector.js.map +1 -1
  60. package/dist/inputs/mask_input/key_capture_input.js +21 -20
  61. package/dist/inputs/mask_input/key_capture_input.js.map +1 -1
  62. package/dist/inputs/mask_input/mask_input.js +18 -17
  63. package/dist/inputs/mask_input/mask_input.js.map +1 -1
  64. package/dist/inputs/multiselect/multiselect.js +11 -10
  65. package/dist/inputs/multiselect/multiselect.js.map +1 -1
  66. package/dist/inputs/multiselect/multiselect_inline_values.d.ts.map +1 -1
  67. package/dist/inputs/multiselect/multiselect_inline_values.js +15 -15
  68. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  69. package/dist/inputs/multiselect/multiselect_values.js +16 -17
  70. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  71. package/dist/inputs/phone_number_input/phone_number_context.js +13 -12
  72. package/dist/inputs/phone_number_input/phone_number_context.js.map +1 -1
  73. package/dist/inputs/phone_number_input/phone_number_input_adapter.js +2 -3
  74. package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -1
  75. package/dist/inputs/phone_number_input/sip_input.js +8 -9
  76. package/dist/inputs/phone_number_input/sip_input.js.map +1 -1
  77. package/dist/inputs/select/select.js +9 -9
  78. package/dist/inputs/slider/slider.js +21 -20
  79. package/dist/inputs/slider/slider.js.map +1 -1
  80. package/dist/inputs/suggestions/suggestion_list.js +9 -9
  81. package/dist/inputs/switch/switch.js +16 -15
  82. package/dist/inputs/switch/switch.js.map +1 -1
  83. package/dist/inputs/unit_input/unit_input.js +11 -10
  84. package/dist/inputs/unit_input/unit_input.js.map +1 -1
  85. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js +11 -10
  86. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js.map +1 -1
  87. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js +11 -10
  88. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js.map +1 -1
  89. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js +11 -10
  90. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js.map +1 -1
  91. package/dist/multiselect_values.css +1 -1
  92. package/dist/navigation/tabs/state/link/tab_link.js +11 -10
  93. package/dist/navigation/tabs/state/link/tab_link.js.map +1 -1
  94. package/dist/overlay/frame/frame.d.ts.map +1 -1
  95. package/dist/overlay/frame/frame.js +117 -76
  96. package/dist/overlay/frame/frame.js.map +1 -1
  97. package/dist/overlay/menu/menu.js +21 -20
  98. package/dist/overlay/menu/menu.js.map +1 -1
  99. package/dist/overlay/popper/base/dismissal_decorator.js +3 -3
  100. package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -1
  101. package/dist/overlay/popper/context_popper.js +11 -10
  102. package/dist/overlay/popper/context_popper.js.map +1 -1
  103. package/dist/overlay/popper/element_popper.js +11 -10
  104. package/dist/overlay/popper/element_popper.js.map +1 -1
  105. package/dist/overlay/popper/legacy/popper.js +28 -27
  106. package/dist/overlay/popper/legacy/popper.js.map +1 -1
  107. package/dist/overlay/popper/preview_popper.js +11 -10
  108. package/dist/overlay/popper/preview_popper.js.map +1 -1
  109. package/dist/overlay/tethered/tethered.js +11 -10
  110. package/dist/overlay/tethered/tethered.js.map +1 -1
  111. package/dist/resizable.css +1 -1
  112. package/dist/resizable.module-ur5FBfxo.js +5 -0
  113. package/dist/resizable.module-ur5FBfxo.js.map +1 -0
  114. package/dist/resize_handle.css +1 -1
  115. package/dist/stacks/box/box.d.ts +14 -0
  116. package/dist/stacks/box/box.d.ts.map +1 -1
  117. package/dist/stacks/box/box.js +98 -99
  118. package/dist/stacks/box/box.js.map +1 -1
  119. package/dist/stacks/box/end_resize_handle.js +5 -5
  120. package/dist/stacks/box/end_resize_handle.js.map +1 -1
  121. package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
  122. package/dist/stacks/box/resize_handlers.js +12 -12
  123. package/dist/stacks/box/resize_handlers.js.map +1 -1
  124. package/dist/stacks/box/start_resize_handle.js +7 -7
  125. package/dist/stacks/box/start_resize_handle.js.map +1 -1
  126. package/dist/stacks/box/types.d.ts +3 -2
  127. package/dist/stacks/box/types.d.ts.map +1 -1
  128. package/dist/stacks/h_collapsible_box.js +14 -13
  129. package/dist/stacks/h_collapsible_box.js.map +1 -1
  130. package/dist/stacks/v_collapsible_box.js +14 -13
  131. package/dist/stacks/v_collapsible_box.js.map +1 -1
  132. package/dist/surfaces/alert/alert.js +7 -8
  133. package/dist/surfaces/alert/alert.js.map +1 -1
  134. package/dist/themes/stories/button_showcase.d.ts.map +1 -1
  135. package/dist/themes/stories/controls_fieldset.d.ts.map +1 -1
  136. package/dist/themes/stories/menu_showcase.d.ts.map +1 -1
  137. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  138. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  139. package/dist/themes/themes/ergo/ergo_theme.js +336 -294
  140. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  141. package/dist/themes/themes/ergo/parts/actions.css +1 -0
  142. package/dist/themes/themes/ergo/parts/base.css +1 -0
  143. package/dist/themes/themes/ergo/parts/form.css +1 -0
  144. package/dist/themes/themes/ergo/parts/inputs.css +1 -0
  145. package/dist/themes/themes/ergo/parts/navigation.css +1 -0
  146. package/dist/themes/themes/windows_98/windows_98.css +1 -1
  147. package/dist/themes/themes/windows_98/windows_98_theme.js +32 -43
  148. package/dist/themes/themes/windows_98/windows_98_theme.js.map +1 -1
  149. package/dist/utils/decorators/clone_with_decorator.d.ts +21 -0
  150. package/dist/utils/decorators/clone_with_decorator.d.ts.map +1 -0
  151. package/dist/utils/decorators/clone_with_decorator.js +16 -0
  152. package/dist/utils/decorators/clone_with_decorator.js.map +1 -0
  153. package/dist/utils/decorators/draggable/context.d.ts.map +1 -0
  154. package/dist/utils/decorators/draggable/context.js.map +1 -0
  155. package/dist/utils/{dnd/handle.d.ts → decorators/draggable/drag_handle.d.ts} +1 -1
  156. package/dist/utils/decorators/draggable/drag_handle.d.ts.map +1 -0
  157. package/dist/utils/{dnd/handle.js → decorators/draggable/drag_handle.js} +2 -2
  158. package/dist/utils/decorators/draggable/drag_handle.js.map +1 -0
  159. package/dist/utils/decorators/draggable/draggable.d.ts.map +1 -0
  160. package/dist/utils/{dnd → decorators}/draggable/draggable.js +3 -3
  161. package/dist/utils/decorators/draggable/draggable.js.map +1 -0
  162. package/dist/utils/decorators/draggable/index.d.ts +11 -0
  163. package/dist/utils/decorators/draggable/index.d.ts.map +1 -0
  164. package/dist/utils/decorators/draggable/index.js +14 -0
  165. package/dist/utils/{dnd → decorators/draggable}/types.d.ts +1 -1
  166. package/dist/utils/decorators/draggable/types.d.ts.map +1 -0
  167. package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.d.ts +2 -2
  168. package/dist/utils/decorators/draggable/use_drag_container.d.ts.map +1 -0
  169. package/dist/utils/decorators/draggable/use_drag_container.js.map +1 -0
  170. package/dist/utils/decorators/draggable/use_draggable.d.ts.map +1 -0
  171. package/dist/utils/decorators/draggable/use_draggable.js.map +1 -0
  172. package/dist/utils/decorators/index.d.ts +3 -0
  173. package/dist/utils/decorators/index.d.ts.map +1 -0
  174. package/dist/utils/decorators/index.js +27 -0
  175. package/dist/utils/decorators/index.js.map +1 -0
  176. package/dist/utils/decorators/resizable/context.d.ts.map +1 -0
  177. package/dist/utils/{resize → decorators/resizable}/context.js +1 -1
  178. package/dist/utils/decorators/resizable/context.js.map +1 -0
  179. package/dist/utils/decorators/resizable/handle_config.d.ts.map +1 -0
  180. package/dist/utils/decorators/resizable/handle_config.js +62 -0
  181. package/dist/utils/decorators/resizable/handle_config.js.map +1 -0
  182. package/dist/utils/decorators/resizable/index.d.ts.map +1 -0
  183. package/dist/utils/decorators/resizable/index.js.map +1 -0
  184. package/dist/utils/decorators/resizable/resizable.d.ts.map +1 -0
  185. package/dist/utils/{resize → decorators/resizable}/resizable.js +2 -2
  186. package/dist/utils/decorators/resizable/resizable.js.map +1 -0
  187. package/dist/utils/decorators/resizable/resize_handle.d.ts.map +1 -0
  188. package/dist/utils/{resize → decorators/resizable}/resize_handle.js +2 -2
  189. package/dist/utils/decorators/resizable/resize_handle.js.map +1 -0
  190. package/dist/utils/{resize → decorators/resizable}/resize_strategy.d.ts +1 -1
  191. package/dist/utils/decorators/resizable/resize_strategy.d.ts.map +1 -0
  192. package/dist/utils/decorators/resizable/resize_strategy.js.map +1 -0
  193. package/dist/utils/{resize → decorators/resizable}/types.d.ts +2 -2
  194. package/dist/utils/decorators/resizable/types.d.ts.map +1 -0
  195. package/dist/utils/hooks/labelled_by_context.d.ts +21 -0
  196. package/dist/utils/hooks/labelled_by_context.d.ts.map +1 -0
  197. package/dist/utils/hooks/labelled_by_context.js +12 -0
  198. package/dist/utils/hooks/labelled_by_context.js.map +1 -0
  199. package/dist/utils/index.d.ts +8 -8
  200. package/dist/utils/index.d.ts.map +1 -1
  201. package/dist/utils/index.js +44 -40
  202. package/dist/utils/index.js.map +1 -1
  203. package/dist/utils/listeners/click_away_listener.d.ts.map +1 -0
  204. package/dist/utils/{click_away_listener.js → listeners/click_away_listener.js} +1 -1
  205. package/dist/utils/listeners/click_away_listener.js.map +1 -0
  206. package/dist/utils/listeners/focus_redirect.d.ts.map +1 -0
  207. package/dist/utils/listeners/focus_redirect.js.map +1 -0
  208. package/dist/utils/listeners/index.d.ts +4 -0
  209. package/dist/utils/listeners/index.d.ts.map +1 -0
  210. package/dist/utils/listeners/index.js +10 -0
  211. package/dist/utils/listeners/index.js.map +1 -0
  212. package/dist/utils/listeners/mouse_leave_region.d.ts.map +1 -0
  213. package/dist/utils/listeners/mouse_leave_region.js.map +1 -0
  214. package/dist/utils/listeners/scroll_away_listener.d.ts.map +1 -0
  215. package/dist/utils/{scroll_away_listener.js → listeners/scroll_away_listener.js} +1 -1
  216. package/dist/utils/listeners/scroll_away_listener.js.map +1 -0
  217. package/dist/utils/system/index.d.ts +2 -0
  218. package/dist/utils/system/index.d.ts.map +1 -0
  219. package/dist/utils/system/index.js +2 -0
  220. package/dist/utils/system/index.js.map +1 -0
  221. package/dist/utils/system/variations.d.ts.map +1 -0
  222. package/dist/utils/system/variations.js +2 -0
  223. package/dist/utils/system/variations.js.map +1 -0
  224. package/dist/utils/types/sides.d.ts +3 -0
  225. package/dist/utils/types/sides.d.ts.map +1 -0
  226. package/package.json +7 -9
  227. package/src/actions/button/__stories__/button_group.stories.tsx +23 -24
  228. package/src/actions/index.ts +0 -1
  229. package/src/form/field/field.stories.tsx +2 -2
  230. package/src/form/field/h_field/h_field.stories.tsx +1 -1
  231. package/src/form/field/v_field/v_field.stories.tsx +1 -1
  232. package/src/form/field_set/field_set.module.css +0 -14
  233. package/src/form/field_set/field_set.stories.tsx +101 -1
  234. package/src/form/field_set/field_set.tsx +43 -57
  235. package/src/form/field_set/legend.tsx +44 -0
  236. package/src/form/index.ts +6 -1
  237. package/src/inputs/date_picker/date_picker_header.tsx +7 -5
  238. package/src/inputs/date_picker/date_picker_year_selector.tsx +5 -5
  239. package/src/inputs/multiselect/multiselect_inline_values.tsx +4 -3
  240. package/src/inputs/multiselect/multiselect_values.module.css +1 -0
  241. package/src/inputs/multiselect/multiselect_values.tsx +4 -4
  242. package/src/overlay/frame/frame.stories.tsx +2 -1
  243. package/src/overlay/frame/frame.tsx +68 -20
  244. package/src/overlay/popper/base/dismissal_decorator.tsx +3 -3
  245. package/src/overlay/popper/legacy/popper.stories.tsx +9 -2
  246. package/src/overlay/slide/slide.stories.tsx +1 -1
  247. package/src/stacks/box/box.tsx +29 -4
  248. package/src/stacks/box/end_resize_handle.tsx +1 -1
  249. package/src/stacks/box/resize_handlers.ts +1 -1
  250. package/src/stacks/box/start_resize_handle.tsx +1 -1
  251. package/src/stacks/box/types.ts +3 -2
  252. package/src/stacks/collapsible_box.stories.tsx +5 -5
  253. package/src/stacks/demo.stories.tsx +7 -7
  254. package/src/surfaces/page/page.stories.tsx +4 -4
  255. package/src/surfaces/window/window.stories.tsx +1 -1
  256. package/src/themes/stories/button_showcase.tsx +3 -1
  257. package/src/themes/stories/controls_fieldset.tsx +3 -1
  258. package/src/themes/stories/menu_showcase.tsx +3 -1
  259. package/src/themes/themes/ergo/INTERACTIVE.md +89 -0
  260. package/src/themes/themes/ergo/ROADMAP.md +116 -0
  261. package/src/themes/themes/ergo/ergo_theme.css +22 -717
  262. package/src/themes/themes/ergo/ergo_theme.ts +15 -1
  263. package/src/themes/themes/ergo/parts/actions.css +287 -0
  264. package/src/themes/themes/ergo/parts/base.css +62 -0
  265. package/src/themes/themes/ergo/parts/form.css +23 -0
  266. package/src/themes/themes/ergo/parts/inputs.css +252 -0
  267. package/src/themes/themes/ergo/parts/navigation.css +104 -0
  268. package/src/themes/themes/windows_98/windows_98.css +32 -43
  269. package/src/tokens/chip/chip.stories.tsx +5 -5
  270. package/src/utils/decorators/DECORATOR_PATTERN.md +86 -0
  271. package/src/utils/decorators/clone_with_decorator.ts +47 -0
  272. package/src/utils/{dnd → decorators/draggable}/__stories__/draggable.stories.tsx +7 -7
  273. package/src/utils/{dnd → decorators/draggable}/__stories__/use_draggable.stories.tsx +2 -2
  274. package/src/utils/{dnd/handle.tsx → decorators/draggable/drag_handle.tsx} +1 -1
  275. package/src/utils/{dnd → decorators}/draggable/draggable.tsx +2 -2
  276. package/src/utils/decorators/draggable/index.ts +15 -0
  277. package/src/utils/{dnd → decorators/draggable}/types.ts +1 -1
  278. package/src/utils/{dnd/hooks → decorators/draggable}/use_drag_container.ts +2 -2
  279. package/src/utils/decorators/index.ts +2 -0
  280. package/src/utils/{resize → decorators/resizable}/__stories__/resizable.stories.tsx +23 -23
  281. package/src/utils/{resize → decorators/resizable}/__tests__/handle_config.test.ts +19 -97
  282. package/src/utils/{resize → decorators/resizable}/__tests__/resize_strategy.test.ts +20 -20
  283. package/src/utils/{resize → decorators/resizable}/context.ts +1 -1
  284. package/src/utils/{resize → decorators/resizable}/handle_config.ts +7 -31
  285. package/src/utils/{resize → decorators/resizable}/resizable.tsx +1 -1
  286. package/src/utils/{resize → decorators/resizable}/resize_handle.module.css +1 -41
  287. package/src/utils/{resize → decorators/resizable}/resize_handle.tsx +1 -1
  288. package/src/utils/{resize → decorators/resizable}/resize_strategy.ts +1 -1
  289. package/src/utils/{resize → decorators/resizable}/types.ts +1 -7
  290. package/src/utils/hooks/labelled_by_context.ts +27 -0
  291. package/src/utils/index.ts +8 -8
  292. package/src/utils/{click_away_listener.tsx → listeners/click_away_listener.tsx} +1 -1
  293. package/src/utils/listeners/index.ts +3 -0
  294. package/src/utils/{scroll_away_listener.tsx → listeners/scroll_away_listener.tsx} +1 -1
  295. package/src/utils/system/index.ts +1 -0
  296. package/src/utils/types/sides.ts +2 -0
  297. package/dist/actions/button/slim_button/slim_button.d.ts +0 -9
  298. package/dist/actions/button/slim_button/slim_button.d.ts.map +0 -1
  299. package/dist/actions/button/slim_button/slim_button.js +0 -18
  300. package/dist/actions/button/slim_button/slim_button.js.map +0 -1
  301. package/dist/draggable.module-BgelQsuJ.js +0 -5
  302. package/dist/draggable.module-BgelQsuJ.js.map +0 -1
  303. package/dist/frame.css +0 -1
  304. package/dist/left_resize_handle.css +0 -1
  305. package/dist/resizable.module-I6iyBAvM.js +0 -5
  306. package/dist/resizable.module-I6iyBAvM.js.map +0 -1
  307. package/dist/right_resize_handle.css +0 -1
  308. package/dist/slim_button.css +0 -1
  309. package/dist/stacks/box/left_resize_handle.d.ts +0 -4
  310. package/dist/stacks/box/left_resize_handle.d.ts.map +0 -1
  311. package/dist/stacks/box/left_resize_handle.js +0 -36
  312. package/dist/stacks/box/left_resize_handle.js.map +0 -1
  313. package/dist/stacks/box/right_resize_handle.d.ts +0 -4
  314. package/dist/stacks/box/right_resize_handle.d.ts.map +0 -1
  315. package/dist/stacks/box/right_resize_handle.js +0 -36
  316. package/dist/stacks/box/right_resize_handle.js.map +0 -1
  317. package/dist/utils/click_away_listener.d.ts.map +0 -1
  318. package/dist/utils/click_away_listener.js.map +0 -1
  319. package/dist/utils/dnd/context.d.ts.map +0 -1
  320. package/dist/utils/dnd/context.js.map +0 -1
  321. package/dist/utils/dnd/draggable/draggable.d.ts.map +0 -1
  322. package/dist/utils/dnd/draggable/draggable.js.map +0 -1
  323. package/dist/utils/dnd/handle.d.ts.map +0 -1
  324. package/dist/utils/dnd/handle.js.map +0 -1
  325. package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +0 -1
  326. package/dist/utils/dnd/hooks/use_drag_container.js.map +0 -1
  327. package/dist/utils/dnd/hooks/use_draggable.d.ts.map +0 -1
  328. package/dist/utils/dnd/hooks/use_draggable.js.map +0 -1
  329. package/dist/utils/dnd/types.d.ts.map +0 -1
  330. package/dist/utils/focus_redirect.d.ts.map +0 -1
  331. package/dist/utils/focus_redirect.js.map +0 -1
  332. package/dist/utils/mouse_leave_region.d.ts.map +0 -1
  333. package/dist/utils/mouse_leave_region.js.map +0 -1
  334. package/dist/utils/resize/context.d.ts.map +0 -1
  335. package/dist/utils/resize/context.js.map +0 -1
  336. package/dist/utils/resize/handle_config.d.ts.map +0 -1
  337. package/dist/utils/resize/handle_config.js +0 -85
  338. package/dist/utils/resize/handle_config.js.map +0 -1
  339. package/dist/utils/resize/index.d.ts.map +0 -1
  340. package/dist/utils/resize/resizable.d.ts.map +0 -1
  341. package/dist/utils/resize/resizable.js.map +0 -1
  342. package/dist/utils/resize/resize_handle.d.ts.map +0 -1
  343. package/dist/utils/resize/resize_handle.js.map +0 -1
  344. package/dist/utils/resize/resize_strategy.d.ts.map +0 -1
  345. package/dist/utils/resize/resize_strategy.js.map +0 -1
  346. package/dist/utils/resize/types.d.ts.map +0 -1
  347. package/dist/utils/scroll_away_listener.d.ts.map +0 -1
  348. package/dist/utils/scroll_away_listener.js.map +0 -1
  349. package/dist/utils/types/variations.d.ts.map +0 -1
  350. package/src/actions/button/__stories__/slim_button.stories.tsx +0 -274
  351. package/src/actions/button/slim_button/slim_button.module.css +0 -9
  352. package/src/actions/button/slim_button/slim_button.tsx +0 -26
  353. package/src/overlay/frame/frame.module.css +0 -5
  354. package/src/stacks/box/left_resize_handle.module.css +0 -12
  355. package/src/stacks/box/left_resize_handle.tsx +0 -39
  356. package/src/stacks/box/right_resize_handle.module.css +0 -12
  357. package/src/stacks/box/right_resize_handle.tsx +0 -38
  358. /package/dist/utils/{dnd → decorators/draggable}/context.d.ts +0 -0
  359. /package/dist/utils/{dnd → decorators/draggable}/context.js +0 -0
  360. /package/dist/utils/{dnd → decorators}/draggable/draggable.d.ts +0 -0
  361. /package/dist/utils/{resize → decorators/draggable}/index.js.map +0 -0
  362. /package/dist/utils/{dnd → decorators/draggable}/types.js +0 -0
  363. /package/dist/utils/{dnd → decorators/draggable}/types.js.map +0 -0
  364. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.js +0 -0
  365. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.d.ts +0 -0
  366. /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.js +0 -0
  367. /package/dist/utils/{resize → decorators/resizable}/context.d.ts +0 -0
  368. /package/dist/utils/{resize → decorators/resizable}/handle_config.d.ts +0 -0
  369. /package/dist/utils/{resize → decorators/resizable}/index.d.ts +0 -0
  370. /package/dist/utils/{resize → decorators/resizable}/index.js +0 -0
  371. /package/dist/utils/{resize → decorators/resizable}/resizable.d.ts +0 -0
  372. /package/dist/utils/{resize → decorators/resizable}/resize_handle.d.ts +0 -0
  373. /package/dist/utils/{resize → decorators/resizable}/resize_strategy.js +0 -0
  374. /package/dist/utils/{resize → decorators/resizable}/types.js +0 -0
  375. /package/dist/utils/{resize → decorators/resizable}/types.js.map +0 -0
  376. /package/dist/utils/{click_away_listener.d.ts → listeners/click_away_listener.d.ts} +0 -0
  377. /package/dist/utils/{focus_redirect.d.ts → listeners/focus_redirect.d.ts} +0 -0
  378. /package/dist/utils/{focus_redirect.js → listeners/focus_redirect.js} +0 -0
  379. /package/dist/utils/{mouse_leave_region.d.ts → listeners/mouse_leave_region.d.ts} +0 -0
  380. /package/dist/utils/{mouse_leave_region.js → listeners/mouse_leave_region.js} +0 -0
  381. /package/dist/utils/{scroll_away_listener.d.ts → listeners/scroll_away_listener.d.ts} +0 -0
  382. /package/dist/utils/{types → system}/variations.d.ts +0 -0
  383. /package/src/utils/{dnd → decorators/draggable}/__stories__/draggable_stories.module.css +0 -0
  384. /package/src/utils/{dnd → decorators/draggable}/context.ts +0 -0
  385. /package/src/utils/{dnd → decorators}/draggable/draggable.module.css +0 -0
  386. /package/src/utils/{dnd/hooks → decorators/draggable}/use_draggable.ts +0 -0
  387. /package/src/utils/{resize → decorators/resizable}/__stories__/resizable_stories.module.css +0 -0
  388. /package/src/utils/{resize → decorators/resizable}/index.ts +0 -0
  389. /package/src/utils/{resize → decorators/resizable}/resizable.module.css +0 -0
  390. /package/src/utils/{click_away_listener.stories.tsx → listeners/click_away_listener.stories.tsx} +0 -0
  391. /package/src/utils/{focus_redirect.tsx → listeners/focus_redirect.tsx} +0 -0
  392. /package/src/utils/{mouse_leave_region.tsx → listeners/mouse_leave_region.tsx} +0 -0
  393. /package/src/utils/{scroll_away_listener.stories.tsx → listeners/scroll_away_listener.stories.tsx} +0 -0
  394. /package/src/utils/{types → system}/variations.ts +0 -0
@@ -1,504 +1,16 @@
1
1
  @layer tcn-theme {
2
- /* ===== CSS VARIABLES ===== */
2
+ /* ===== DIVIDER ===== */
3
3
 
4
- .tcn-theme-root {
5
- font-family: var(--font-family);
6
- color: var(--font-color);
7
- /* TODO: move to system */
8
- --action: var(--ergo-primary);
9
- --on-action: var(--ergo-white);
10
- --material: var(--ergo-white);
11
- --on-material: var(--ergo-accent-blue);
12
- }
13
-
14
- /* ===== Actions ===== */
15
-
16
- .tcn-interactive {
17
- cursor: pointer;
18
- user-select: none;
19
- transition:
20
- transform 0.1s,
21
- background 0.1s,
22
- color 0.1s;
23
-
24
- --ink: var(--on-material);
25
- --act: var(--action);
26
- --mat: var(--material);
27
-
28
- --act-down: color-mix(in srgb, var(--mat), black 12%);
29
- --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);
30
- --act-focus: color-mix(in srgb, var(--mat), var(--act) 16%);
31
- --act-drag: color-mix(in srgb, var(--mat), var(--act) 24%);
32
-
33
- background: var(--mat);
34
- color: var(--ink);
35
- transition:
36
- background 0.1s,
37
- color 0.1s;
38
-
39
- &:focus-visible,
40
- &[data-focus-visible] {
41
- background: var(--act-focus);
42
- outline: 2px solid var(--ergo-primary);
43
- outline-offset: 2px;
44
- }
45
-
46
- &:hover,
47
- &[data-hover] {
48
- background: var(--act-raised);
49
- }
50
-
51
- &:active,
52
- &[data-active] {
53
- background: var(--act-down);
54
- }
55
-
56
- &[data-is-disabled="true"] {
57
- pointer-events: none;
58
- }
59
- }
60
-
61
- /* ===== Base Button =====
62
- * Shared between Button and Toggle.
63
- * Primarily manages button dimensions and sizing ratios.
64
- */
65
- .tcn-base-button {
66
- --btn-size-base: 26px;
67
- --btn-pad-base: 12px;
68
-
69
- --btn-pad-delta: 4px;
70
- --btn-size-delta: 4px;
71
- --btn-font-size-delta: 2px;
72
- --btn-step: 1;
73
-
74
- /* Increase size and pad by 4px for each size "step" from medium */
75
- --btn-pad: calc(var(--btn-pad-base) + var(--btn-pad-delta) * var(--btn-step));
76
- --btn-size: calc(var(--btn-size-base) + var(--btn-size-delta) * var(--btn-step));
77
-
78
- border-radius: var(--ergo-shape-radius-medium);
79
- min-height: var(--btn-size);
80
- padding: var(--padding-small) var(--btn-pad);
81
-
82
- &[data-size="sm"] {
83
- --btn-step: -1;
84
- }
85
- &[data-size="md"] {
86
- --btn-step: 0;
87
- }
88
- &[data-size="lg"] {
89
- --btn-step: 1;
90
- }
91
-
92
- &[data-is-utility="true"] {
93
- height: auto;
94
- width: auto;
95
- min-width: var(--btn-size);
96
- padding: 0;
97
-
98
- /* Icon is 75% of the button size but minimum of 2px to account for border and 1px offset */
99
- --util-ratio: 0.75;
100
- --btn-size-base: 18px;
101
-
102
- font-size: calc(var(--font-size) + var(--btn-font-size-delta) * var(--btn-step));
103
- .tcn-icon {
104
- min-height: min(2px, calc(var(--btn-size) * var(--util-ratio)));
105
- min-width: min(2px, calc(var(--btn-size) * var(--util-ratio)));
106
- }
107
- }
108
- }
109
-
110
- /* ===== Button =====
111
- * Manages Hierarchy and Severity.
112
- */
113
- .tcn-button {
114
- --btn-primary: var(--action);
115
- --btn-on-primary: var(--on-action);
116
- --btn-variant: var(--on-material);
117
-
118
- &[data-severity="dangerous"] {
119
- --btn-primary: var(--action-severity-dangerous);
120
- --btn-variant: var(--ergo-status-red-dark);
121
- }
122
- &[data-severity="cautious"] {
123
- --btn-primary: var(--action-severity-cautious);
124
- --btn-on-primary: var(--ergo-accent-blue);
125
- --btn-variant: var(--ergo-status-yellow-dark);
126
- }
127
- &[data-severity="suggested"] {
128
- --btn-primary: var(--action-severity-suggested);
129
- --btn-variant: var(--ergo-status-blue-dark);
130
- }
131
- &[data-severity="encouraged"] {
132
- --btn-primary: var(--action-severity-encouraged);
133
- --btn-variant: var(--ergo-status-green-dark);
134
- }
135
-
136
- &[data-hierarchy="primary"] {
137
- --act: var(--ergo-white);
138
- --ink: var(--tcn-button-text-color, var(--btn-on-primary));
139
- --mat: var(--tcn-button-color, var(--btn-primary));
140
- &[data-is-disabled="true"] {
141
- --ink: var(--ergo-white);
142
- --mat: var(--ergo-grey-light);
143
- }
144
- }
145
-
146
- &[data-hierarchy="secondary"],
147
- &[data-hierarchy="tertiary"] {
148
- --act: var(--tcn-button-color, var(--btn-variant));
149
- --ink: var(--tcn-button-color, var(--btn-variant));
150
- &[data-is-disabled="true"] {
151
- --ink: var(--ergo-grey-light);
152
- }
153
- }
154
-
155
- /* Decorations */
156
- &[data-hierarchy="tertiary"]:hover {
157
- text-decoration: underline;
158
- text-decoration-color: var(--ink);
159
- text-decoration-thickness: 1px;
160
- text-underline-offset: 4px;
161
- }
162
-
163
- &[data-hierarchy="tertiary"] {
164
- border: 1px solid transparent;
165
- }
166
-
167
- &[data-hierarchy="secondary"] {
168
- border: 1px solid var(--ink);
169
- }
170
-
171
- &[data-hierarchy="primary"] {
172
- border: 1px solid var(--mat);
173
- }
174
-
175
- transition:
176
- box-shadow 0.1s,
177
- transform 0.1s;
178
-
179
- &:hover,
180
- &[data-hover] {
181
- transform: translateY(-1px);
182
- box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.12);
183
-
184
- /* Increases the clickable area by 2px on hover to avoid click events not firing due to the button transform y - or slight mouse wiggles */
185
- :not(.tcn-select) {
186
- &::before,
187
- &::after {
188
- content: "";
189
- position: absolute;
190
- left: 0;
191
- right: 0;
192
- height: 4px;
193
- }
194
-
195
- &::before {
196
- top: -2px;
197
- }
198
-
199
- &::after {
200
- bottom: -2px;
201
- }
202
- }
203
- }
204
-
205
- &:active,
206
- &[data-active] {
207
- transform: translateY(1px);
208
- box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.12);
209
- }
210
- }
211
-
212
- /* @deprecated - use Button with utility prop instead */
213
- .tcn-slim-button {
214
- height: auto;
215
- width: auto;
216
- padding: 0;
217
-
218
- &[data-size="sm"] {
219
- min-height: 12px;
220
- min-width: 12px;
221
- padding: 0;
222
- .tcn-icon {
223
- min-height: 10px;
224
- min-width: 10px;
225
- }
226
- }
227
- &[data-size="md"] {
228
- min-height: 18px;
229
- min-width: 18px;
230
- padding: 0;
231
- .tcn-icon {
232
- min-height: 14px;
233
- min-width: 14px;
234
- }
235
- }
236
-
237
- &[data-size="lg"] {
238
- min-height: 24px;
239
- min-width: 24px;
240
- padding: 0;
241
- .tcn-icon {
242
- min-height: 20px;
243
- min-width: 20px;
244
- }
245
- }
246
- }
247
-
248
- .tcn-button[data-size].tcn-select {
249
- padding-inline-end: 26px;
250
- }
251
-
252
- /* Toggle */
253
- .tcn-toggle {
254
- --tgl-false: var(--ergo-accent-blue);
255
- --tgl-true: var(--ergo-accent-blue);
256
- --on-tgl-true: var(--ergo-white);
257
-
258
- --ink: var(--tcn-button-color, var(--tgl-false));
259
- --act: var(--tcn-button-color, var(--tgl-false));
260
- &[data-is-disabled="true"] {
261
- --ink: var(--ergo-grey-light);
262
- }
263
- &[data-is-selected="true"] {
264
- --mat: var(--tcn-button-color, var(--tgl-true));
265
- --ink: var(--tcn-button-text-color, var(--ergo-white));
266
- --act: var(--ergo-white);
267
- &[data-is-disabled="true"] {
268
- --ink: var(--ergo-white);
269
- --mat: var(--ergo-grey-light);
270
- }
271
- }
272
- }
273
-
274
- .tcn-fab {
275
- border-radius: 50%;
276
- }
277
-
278
- .tcn-mobile-button {
279
- --btn-size-base: 44px;
280
- --btn-pad-base: 16px;
281
- --btn-size-delta: 8px;
282
- --btn-pad-delta: 4px;
283
-
284
- font-size: calc(16px * var(--scalar, 1));
285
- }
286
-
287
- .tcn-mobile-button[data-size="sm"] {
288
- --btn-size-base: 36px;
289
- }
290
-
291
- .tcn-mobile-button[data-size="lg"] {
292
- --btn-size-base: 52px;
293
- }
294
-
295
- .tcn-button-group .tcn-button-group-button.tcn-mobile-button {
296
- --btn-size-base: 44px;
297
- --btn-pad-base: 16px;
298
- --btn-size-delta: 8px;
299
- --btn-pad-delta: 4px;
300
-
301
- font-size: calc(16px * var(--scalar, 1));
302
- }
303
-
304
- .tcn-button-group {
305
- .tcn-button-group-button:hover,
306
- .tcn-button-group-button:active {
307
- transform: none;
308
- }
309
-
310
- .tcn-button-group-button {
311
- border-radius: 0;
312
- }
313
- .tcn-button-group-button:first-child {
314
- border-start-start-radius: var(--ergo-shape-radius-medium);
315
- border-end-start-radius: var(--ergo-shape-radius-medium);
316
- }
317
- .tcn-button-group-button:last-child {
318
- border-start-end-radius: var(--ergo-shape-radius-medium);
319
- border-end-end-radius: var(--ergo-shape-radius-medium);
320
- }
321
- .tcn-button-group-button[data-hierarchy="tertiary"] {
322
- border: 0;
323
- }
324
- .tcn-button-group-button[data-hierarchy="tertiary"]:not(:last-child) {
325
- border-right: 1px solid var(--on-mat-faint);
326
- }
327
- .tcn-button-group-button[data-hierarchy="tertiary"]:not(:first-child) {
328
- border-left: 1px solid var(--on-mat-faint);
329
- }
330
- .tcn-button-group-button[data-hierarchy="primary"]:not(:last-child) {
331
- border-right: 1px solid var(--act-down);
332
- }
333
- .tcn-button-group-button[data-hierarchy="primary"]:not(:first-child) {
334
- border-left: 1px solid var(--act-down);
335
- }
336
- }
337
-
338
- .tcn-select-group {
339
- .tcn-select-group-option:hover,
340
- .tcn-select-group-option:active {
341
- transform: none;
342
- }
343
-
344
- .tcn-select-group-option[data-hierarchy="secondary"] {
345
- color: var(--act);
346
- border-color: var(--act);
347
- }
348
-
349
- .tcn-select-group-option[data-hierarchy="secondary"]:hover {
350
- background: var(--act-faint);
351
- }
352
-
353
- .tcn-select-group-option[data-hierarchy="secondary"]:active {
354
- background: var(--act-down);
355
- color: var(--on-act);
356
- }
357
-
358
- .tcn-select-group-option[data-hierarchy="secondary"][data-is-disabled="true"] {
359
- color: var(--ergo-material-disabled-outline);
360
- border: 1px solid var(--ergo-material-disabled-outline);
361
- }
362
-
363
- .tcn-select-group-option[data-hierarchy="primary"][data-is-disabled="true"] {
364
- background: var(--ergo-material-disabled-outline);
365
- color: white;
366
- border: 1px solid var(--ergo-material-disabled-outline);
367
- }
368
-
369
- .tcn-select-group-option {
370
- border-radius: 0;
371
- }
372
- .tcn-select-group-option:first-child {
373
- border-top-left-radius: var(--ergo-shape-radius-medium);
374
- border-bottom-left-radius: var(--ergo-shape-radius-medium);
375
- }
376
- .tcn-select-group-option:last-child {
377
- border-top-right-radius: var(--ergo-shape-radius-medium);
378
- border-bottom-right-radius: var(--ergo-shape-radius-medium);
379
- }
380
- }
381
-
382
- /* ===== Tabs ===== */
383
- .tcn-tabs-bar {
384
- .tcn-tabs-list {
385
- .tcn-tab-item {
386
- min-height: 24px;
387
- padding: 0px var(--padding-medium);
388
- text-decoration: none;
389
- text-overflow: ellipsis;
390
- overflow: hidden;
391
- white-space: nowrap;
392
- }
393
- }
394
- }
395
-
396
- /* Default */
397
- .tcn-tabs-bar[data-variant="default"] {
398
- .tcn-tabs-list {
399
- .tcn-tab-item {
400
- box-sizing: border-box;
401
- border: none;
402
- padding: 0px var(--padding-medium);
403
- border-radius: 0;
404
- }
405
- .tcn-tab-item[data-is-selected="true"] {
406
- --mat: var(--tcn-button-color, var(--material));
407
- --ink: var(--tcn-button-text-color, var(--ergo-primary));
408
- --act: var(--ergo-primary);
409
- }
410
-
411
- .tcn-tab-item:focus-visible {
412
- z-index: 2;
413
- }
414
- /* Hover Indicator */
415
- .tcn-tab-item[data-is-selected="false"]:hover::after,
416
- .tcn-tab-item[data-is-selected="false"]:focus-visible::after {
417
- content: "";
418
- display: block;
419
- position: absolute;
420
- left: 0;
421
- right: 0;
422
- bottom: 0px;
423
- height: 1px;
424
- background: var(--ergo-accent-blue);
425
- pointer-events: none;
426
- width: 100%;
427
- z-index: 3;
428
- }
429
-
430
- /* Indicator */
431
- &::after {
432
- content: "";
433
- position: absolute;
434
- bottom: -1px;
435
- left: 0;
436
- min-height: 2px;
437
- transform: translateX(var(--tabs-active-rectangle-position-x, 0));
438
- width: var(--tabs-active-rectangle-width, 0);
439
- background: var(--ergo-primary);
440
- pointer-events: none;
441
- border-bottom-left-radius: 2px;
442
- border-bottom-right-radius: 2px;
443
- transition:
444
- transform 300ms ease-in-out,
445
- width 300ms ease-in-out;
446
- will-change: transform, width;
447
- z-index: 2;
448
- }
449
- }
450
-
451
- /* Rail */
452
- &::before {
453
- content: "";
454
- position: absolute;
455
- bottom: 0px;
456
- left: 0;
457
- width: 100%;
458
- height: 1px;
459
- background: var(--ergo-material-divider);
460
- pointer-events: none;
461
- z-index: 1;
462
- }
463
- }
464
-
465
- /* Inline */
466
- .tcn-tabs-bar[data-variant="inline"] {
467
- font-size: 12px;
468
- min-width: min-content;
469
- width: auto;
470
- flex-grow: 0;
471
- border-radius: 6px;
472
- border: 1px solid var(--on-material);
473
- padding: 2px;
474
-
475
- .tcn-tabs-list {
476
- height: 20px;
477
- gap: var(--ergo-spacing-xs);
478
- .tcn-tab-item {
479
- border-radius: var(--ergo-shape-radius-medium);
480
- min-height: 20px;
481
- }
482
- }
483
- }
484
-
485
- /* ===== MATERIAL ===== */
486
-
487
- .material {
488
- background-color: var(--material);
489
- color: var(--on-material);
490
- }
491
-
492
- /* Divider: use material-line; emphasis variants for strong/faint */
4
+ /* Divider: use ergo-material-divider token; emphasis variants for strong/faint */
493
5
  .tcn-divider-line,
494
6
  .tcn-divider-line[data-emphasis="normal"] {
495
- background: var(--material-line);
7
+ background: var(--ergo-material-divider, #aaa);
496
8
  }
497
9
  .tcn-divider-line[data-emphasis="strong"] {
498
- background: color-mix(in srgb, var(--material-line) 80%, black 20%);
10
+ background: color-mix(in srgb, var(--ergo-material-divider, #aaa) 80%, black 20%);
499
11
  }
500
12
  .tcn-divider-line[data-emphasis="faint"] {
501
- background: color-mix(in srgb, var(--material-line) 80%, white 20%);
13
+ background: color-mix(in srgb, var(--ergo-material-divider, #aaa) 80%, white 20%);
502
14
  }
503
15
 
504
16
  /* ===== SURFACES ===== */
@@ -656,6 +168,14 @@
656
168
  background-color: rgba(0, 0, 0, 0.5);
657
169
  }
658
170
 
171
+ :where(.tcn-frame) {
172
+ --resize-offset: -6px;
173
+ }
174
+
175
+ .tcn-frame > .tcn-scaffold {
176
+ overflow: hidden;
177
+ }
178
+
659
179
  /* PAGE: */
660
180
  .tcn-page {
661
181
  --divide-header: 0;
@@ -672,7 +192,6 @@
672
192
  box-shadow: 0px 4px 34px 0px #00000096;
673
193
  border-radius: var(--ergo-shape-radius-medium);
674
194
  background-color: var(--background-color-primary);
675
- overflow: hidden;
676
195
  border: 1px solid var(--ergo-material-border);
677
196
 
678
197
  :where(.tcn-header) {
@@ -695,7 +214,6 @@
695
214
  --pad-inline: var(--padding-large);
696
215
  box-shadow: 0px 4px 34px 0px #00000096;
697
216
  background-color: var(--background-color-primary);
698
- overflow: hidden;
699
217
 
700
218
  :where(.tcn-header) {
701
219
  --material: var(--ergo-material-overlay);
@@ -718,7 +236,6 @@
718
236
  --pad-inline: var(--padding-large);
719
237
  border-radius: var(--ergo-shape-radius-medium);
720
238
  background-color: var(--background-color-primary);
721
- overflow: hidden;
722
239
  border: 2px solid white;
723
240
 
724
241
  :where(.tcn-header) {
@@ -1177,228 +694,16 @@
1177
694
  }
1178
695
  }
1179
696
 
1180
- /* ===== INPUTS ===== */
1181
- .tcn-entry,
1182
- .tcn-control {
1183
- --act: var(--action);
1184
- --mat: var(--material);
1185
- --act-raised: color-mix(in srgb, var(--mat), var(--act) 12%);
1186
-
1187
- font-size: var(--ergo-text-size-input);
1188
- border: 1px solid var(--ergo-grey);
1189
- box-sizing: border-box;
1190
- min-height: var(--ergo-sizing-action-md);
1191
- border-radius: var(--ergo-shape-radius-medium);
1192
- padding-inline: 4px;
1193
- }
1194
-
1195
- .tcn-radio-label,
1196
- .tcn-select-selected-label {
1197
- font-size: var(--ergo-text-size-input);
1198
- }
1199
-
1200
- .tcn-control[data-is-disabled="false"]:hover {
1201
- background: var(--act-raised);
1202
- }
1203
-
1204
- .tcn-control:focus-within {
1205
- outline: 2px solid var(--ergo-primary);
1206
- outline-offset: 2px;
1207
- }
1208
-
1209
- .tcn-control:focus {
1210
- border: 1px solid var(--act);
1211
- }
1212
-
1213
- .tcn-control::placeholder {
1214
- color: var(--ergo-grey);
1215
- }
1216
-
1217
- .tcn-control[data-is-disabled="true"] {
1218
- cursor: not-allowed;
1219
- background: var(--ergo-material-disabled-outline);
1220
- color: var(--ergo-text-color-disabled-outline);
1221
- }
1222
-
1223
- .tcn-control[data-is-disabled="true"]::placeholder {
1224
- color: var(--ergo-text-color-disabled-outline);
1225
- }
1226
-
1227
- .tcn-control {
1228
- display: flex;
1229
- justify-content: center;
1230
- gap: var(--gap-small);
1231
- }
1232
-
1233
- .tcn-control-row {
1234
- min-height: 22px;
1235
- height: auto;
1236
- align-items: center;
1237
- gap: var(--gap-small);
1238
- padding-block: 2px;
1239
- }
1240
-
1241
- .tcn-control-row > .tcn-icon {
1242
- color: var(--ergo-grey);
1243
- }
1244
-
1245
- .tcn-control .tcn-entry {
1246
- border: none;
1247
- background: transparent;
1248
- padding: 0;
1249
- min-height: unset;
1250
- border-radius: 0;
1251
- height: 100%;
1252
- flex-grow: 1;
1253
-
1254
- &:hover,
1255
- &:active,
1256
- &:focus-visible,
1257
- &:focus {
1258
- outline: none;
1259
- border: none;
1260
- background: transparent;
1261
- }
1262
- }
1263
-
1264
- .tcn-input {
1265
- height: auto;
1266
- }
697
+ /* ===== TYPOGRAPHY ===== */
1267
698
 
1268
- .tcn-textarea,
1269
- .tcn-input {
1270
- cursor: text;
1271
- }
1272
-
1273
- .tcn-control-set {
1274
- border-radius: var(--ergo-shape-radius-medium);
1275
-
1276
- &:focus-within {
1277
- outline: 2px solid var(--ergo-primary);
1278
- outline-offset: 2px;
1279
- }
1280
-
1281
- .tcn-control-set-item {
1282
- z-index: 1;
1283
- border-radius: 0;
1284
- height: auto;
1285
- min-height: var(--ergo-sizing-action-md);
1286
- padding-block: 0;
1287
- &:focus,
1288
- &:focus-visible {
1289
- z-index: 3;
1290
- outline: none;
1291
- }
1292
- }
1293
-
1294
- .tcn-control-set-item:first-child {
1295
- border-top-left-radius: var(--ergo-shape-radius-medium);
1296
- border-bottom-left-radius: var(--ergo-shape-radius-medium);
1297
- }
1298
-
1299
- .tcn-control-set-item:not(:last-child) {
1300
- margin-right: -1px;
1301
- }
1302
-
1303
- .tcn-control-set-item:last-child {
1304
- border-top-right-radius: var(--ergo-shape-radius-medium);
1305
- border-bottom-right-radius: var(--ergo-shape-radius-medium);
1306
- }
1307
-
1308
- .tcn-select,
1309
- .tcn-button,
1310
- .tcn-button[data-hierarchy] {
1311
- border: 1px solid var(--ergo-grey);
1312
- height: auto;
1313
- min-height: var(--ergo-sizing-action-md);
1314
- min-width: var(--ergo-sizing-action-md);
1315
- box-sizing: border-box;
1316
- &:hover,
1317
- &[data-hover] {
1318
- transform: none;
1319
- }
1320
- }
1321
-
1322
- .tcn-button.tcn-select,
1323
- .tcn-button[data-hierarchy].tcn-select {
1324
- border-color: var(--ergo-grey);
1325
- }
1326
-
1327
- .tcn-select:focus-visible,
1328
- .tcn-button:focus-visible,
1329
- .tcn-button[data-hierarchy]:focus-visible {
1330
- border-color: var(--ergo-primary);
1331
- }
1332
- }
1333
-
1334
- .tcn-slider[data-is-disabled="true"] {
1335
- &::-webkit-slider-runnable-track {
1336
- background: var(--ergo-grey-light);
1337
- }
1338
-
1339
- &::-webkit-slider-thumb {
1340
- background-color: var(--ergo-white);
1341
- border: 1px solid var(--ergo-grey-light);
1342
- }
1343
- }
1344
-
1345
- .tcn-checkbox {
1346
- --checkbox-color: var(--action, var(--ergo-primary));
1347
-
1348
- border-color: var(--checkbox-color);
1349
-
1350
- &:focus-visible,
1351
- &:focus {
1352
- outline: 2px solid var(--checkbox-color);
1353
- outline-offset: 2px;
1354
- }
1355
-
1356
- &[data-is-disabled="true"] {
1357
- cursor: not-allowed;
1358
- border-color: var(--ergo-material-disabled-outline);
1359
- }
1360
-
1361
- &[data-checked="true"] {
1362
- background-color: var(--checkbox-color);
1363
- }
1364
-
1365
- &[data-checked="true"][data-is-disabled="true"] {
1366
- background-color: var(--ergo-grey-light);
1367
- }
1368
-
1369
- &[data-checked="false"][data-is-disabled="true"] {
1370
- background: var(--material);
1371
- border-color: var(--ergo-grey-light);
1372
- color: var(--ergo-grey-light);
1373
- }
1374
-
1375
- &[data-is-disabled="false"]:active {
1376
- background-color: var(--checkbox-color);
1377
- }
1378
- }
1379
-
1380
- .tcn-switch-wrapper[data-focused="true"][data-is-checked="false"],
1381
- .tcn-switch-wrapper[data-focused="true"][data-is-checked="true"] {
1382
- outline: 2px solid var(--ergo-primary);
1383
- outline-offset: 2px;
1384
- }
1385
-
1386
- /* Quick fix to use some of the default module styles.*/
1387
- .tcn-input,
1388
- .tcn-select,
1389
- .tcn-slider,
1390
- .tcn-textarea,
1391
- .tcn-checkbox,
1392
- .tcn-switch-wrapper,
1393
- .tcn-date-picker,
1394
- .tcn-date-picker-year-selector,
1395
- .tcn-radio,
1396
- .tcn-date-picker-input,
1397
- .tcn-mobile-date-picker,
1398
- .tcn-mobile-date-picker-year-selector,
1399
- .tcn-suggestion-list-search-input,
1400
- .tcn-suggestion-list {
1401
- --accent-color: var(--ergo-primary);
699
+ .tcn-body-text[data-emphasis="faint"],
700
+ .tcn-headline[data-emphasis="faint"],
701
+ .tcn-subheadline[data-emphasis="faint"],
702
+ .tcn-callout[data-emphasis="faint"],
703
+ .tcn-footnote[data-emphasis="faint"],
704
+ .tcn-caption[data-emphasis="faint"],
705
+ .tcn-title[data-emphasis="faint"] {
706
+ color: color-mix(in srgb, var(--font-color) 70%, transparent);
1402
707
  }
1403
708
 
1404
709
  /* Datum/Tokens */