@tcn/ui 0.13.1 → 0.15.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 (336) hide show
  1. package/README.md +1 -1
  2. package/dist/{Color-6BZIO3FS-C9xkPWgz.js → Color-6BZIO3FS-CKNkzBV6.js} +2 -2
  3. package/dist/{Color-6BZIO3FS-C9xkPWgz.js.map → Color-6BZIO3FS-CKNkzBV6.js.map} +1 -1
  4. package/dist/{WithTooltip-65CFNBJE-DEnh547F.js → WithTooltip-65CFNBJE-Bgt57Jw2.js} +2 -2
  5. package/dist/WithTooltip-65CFNBJE-Bgt57Jw2.js.map +1 -0
  6. package/dist/actions/__docs__/components/showcase.js +1 -1
  7. package/dist/actions/button/button_group/button_group.d.ts +1 -0
  8. package/dist/actions/button/button_group/button_group.d.ts.map +1 -1
  9. package/dist/actions/button/button_group/button_group.js +33 -30
  10. package/dist/actions/button/button_group/button_group.js.map +1 -1
  11. package/dist/actions/types.js +2 -0
  12. package/dist/actions/types.js.map +1 -0
  13. package/dist/aside.css +1 -1
  14. package/dist/containers.css +1 -0
  15. package/dist/containers.module-DlGySre0.js +5 -0
  16. package/dist/containers.module-DlGySre0.js.map +1 -0
  17. package/dist/floating_action_button.css +1 -0
  18. package/dist/form/field/common/types.js +2 -0
  19. package/dist/form/field/common/types.js.map +1 -0
  20. package/dist/form/field_set/field_set.d.ts.map +1 -1
  21. package/dist/form/field_set/field_set.js +11 -11
  22. package/dist/form/field_set/field_set.js.map +1 -1
  23. package/dist/formatter-EIJCOSYU-ByaSCvt6.js +6 -0
  24. package/dist/formatter-EIJCOSYU-ByaSCvt6.js.map +1 -0
  25. package/dist/inputs/mask_input/mask_config.js +2 -0
  26. package/dist/inputs/mask_input/mask_config.js.map +1 -0
  27. package/dist/inputs/mask_input/mask_cursor.js +2 -0
  28. package/dist/inputs/mask_input/mask_cursor.js.map +1 -0
  29. package/dist/inputs/multiselect/multiselect_inline_values.js +9 -7
  30. package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
  31. package/dist/inputs/multiselect/multiselect_values.js +4 -2
  32. package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
  33. package/dist/layouts/containers/rail.d.ts.map +1 -0
  34. package/dist/layouts/containers/rail.js +67 -0
  35. package/dist/layouts/containers/rail.js.map +1 -0
  36. package/dist/layouts/containers/scaffold.d.ts.map +1 -0
  37. package/dist/layouts/containers/scaffold.js +67 -0
  38. package/dist/layouts/containers/scaffold.js.map +1 -0
  39. package/dist/layouts/containers/side/side.d.ts.map +1 -0
  40. package/dist/layouts/containers/side/side.js +22 -0
  41. package/dist/layouts/containers/side/side.js.map +1 -0
  42. package/dist/layouts/containers/utility_strip/utility_strip.d.ts.map +1 -0
  43. package/dist/layouts/{rail → containers}/utility_strip/utility_strip.js +5 -5
  44. package/dist/layouts/containers/utility_strip/utility_strip.js.map +1 -0
  45. package/dist/layouts/index.d.ts +5 -8
  46. package/dist/layouts/index.d.ts.map +1 -1
  47. package/dist/layouts/index.js +36 -38
  48. package/dist/layouts/index.js.map +1 -1
  49. package/dist/layouts/section/detail.d.ts +4 -0
  50. package/dist/layouts/section/detail.d.ts.map +1 -0
  51. package/dist/layouts/section/detail.js +11 -0
  52. package/dist/layouts/section/detail.js.map +1 -0
  53. package/dist/layouts/section/heading.js +1 -1
  54. package/dist/layouts/section/index.d.ts +4 -0
  55. package/dist/layouts/section/index.d.ts.map +1 -0
  56. package/dist/layouts/section/index.js +9 -0
  57. package/dist/layouts/section/index.js.map +1 -0
  58. package/dist/layouts/section/section.js +1 -1
  59. package/dist/mobile/actions/button/mobile_button.d.ts +6 -0
  60. package/dist/mobile/actions/button/mobile_button.d.ts.map +1 -0
  61. package/dist/mobile/actions/button/mobile_button.js +21 -0
  62. package/dist/mobile/actions/button/mobile_button.js.map +1 -0
  63. package/dist/mobile/actions/floating_action_button/floating_action_button.d.ts +6 -0
  64. package/dist/mobile/actions/floating_action_button/floating_action_button.d.ts.map +1 -0
  65. package/dist/mobile/actions/floating_action_button/floating_action_button.js +20 -0
  66. package/dist/mobile/actions/floating_action_button/floating_action_button.js.map +1 -0
  67. package/dist/mobile/inputs/date_picker/mobile_date_picker.d.ts +17 -0
  68. package/dist/mobile/inputs/date_picker/mobile_date_picker.d.ts.map +1 -0
  69. package/dist/mobile/inputs/date_picker/mobile_date_picker.js +80 -0
  70. package/dist/mobile/inputs/date_picker/mobile_date_picker.js.map +1 -0
  71. package/dist/mobile/inputs/date_picker/mobile_date_picker_body.d.ts +7 -0
  72. package/dist/mobile/inputs/date_picker/mobile_date_picker_body.d.ts.map +1 -0
  73. package/dist/mobile/inputs/date_picker/mobile_date_picker_body.js +35 -0
  74. package/dist/mobile/inputs/date_picker/mobile_date_picker_body.js.map +1 -0
  75. package/dist/mobile/inputs/date_picker/mobile_date_picker_date.d.ts +8 -0
  76. package/dist/mobile/inputs/date_picker/mobile_date_picker_date.d.ts.map +1 -0
  77. package/dist/mobile/inputs/date_picker/mobile_date_picker_date.js +74 -0
  78. package/dist/mobile/inputs/date_picker/mobile_date_picker_date.js.map +1 -0
  79. package/dist/mobile/inputs/date_picker/mobile_date_picker_day.d.ts +6 -0
  80. package/dist/mobile/inputs/date_picker/mobile_date_picker_day.d.ts.map +1 -0
  81. package/dist/mobile/inputs/date_picker/mobile_date_picker_day.js +39 -0
  82. package/dist/mobile/inputs/date_picker/mobile_date_picker_day.js.map +1 -0
  83. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.d.ts +9 -0
  84. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.d.ts.map +1 -0
  85. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js +163 -0
  86. package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js.map +1 -0
  87. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.d.ts +9 -0
  88. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.d.ts.map +1 -0
  89. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js +190 -0
  90. package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js.map +1 -0
  91. package/dist/mobile/inputs/date_picker/mobile_date_picker_time_selector.d.ts +11 -0
  92. package/dist/mobile/inputs/date_picker/mobile_date_picker_time_selector.d.ts.map +1 -0
  93. package/dist/mobile/inputs/date_picker/mobile_date_picker_time_selector.js +50 -0
  94. package/dist/mobile/inputs/date_picker/mobile_date_picker_time_selector.js.map +1 -0
  95. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.d.ts +7 -0
  96. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.d.ts.map +1 -0
  97. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js +109 -0
  98. package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js.map +1 -0
  99. package/dist/mobile/inputs/date_picker/mobile_overlay_header.d.ts +6 -0
  100. package/dist/mobile/inputs/date_picker/mobile_overlay_header.d.ts.map +1 -0
  101. package/dist/mobile/inputs/date_picker/mobile_overlay_header.js +34 -0
  102. package/dist/mobile/inputs/date_picker/mobile_overlay_header.js.map +1 -0
  103. package/dist/mobile/inputs/index.d.ts +5 -0
  104. package/dist/mobile/inputs/index.d.ts.map +1 -0
  105. package/dist/mobile/inputs/index.js +11 -0
  106. package/dist/mobile/inputs/index.js.map +1 -0
  107. package/dist/mobile/portal/mobile_portal.d.ts +5 -0
  108. package/dist/mobile/portal/mobile_portal.d.ts.map +1 -0
  109. package/dist/mobile/portal/mobile_portal.js +10 -0
  110. package/dist/mobile/portal/mobile_portal.js.map +1 -0
  111. package/dist/mobile/viewport/mobile_viewport.d.ts +21 -0
  112. package/dist/mobile/viewport/mobile_viewport.d.ts.map +1 -0
  113. package/dist/mobile/viewport/mobile_viewport.js +31 -0
  114. package/dist/mobile/viewport/mobile_viewport.js.map +1 -0
  115. package/dist/mobile_button.css +1 -0
  116. package/dist/mobile_date_picker.css +1 -0
  117. package/dist/mobile_date_picker_date.css +1 -0
  118. package/dist/mobile_date_picker_day.css +1 -0
  119. package/dist/mobile_date_picker_header.css +1 -0
  120. package/dist/mobile_date_picker_input.css +1 -0
  121. package/dist/mobile_date_picker_time_selector.css +1 -0
  122. package/dist/mobile_date_picker_year_selector.css +1 -0
  123. package/dist/mobile_overlay_header.css +1 -0
  124. package/dist/mobile_viewport.css +1 -0
  125. package/dist/navigation/tabs/state/link/use_tab_link.d.ts +2 -1
  126. package/dist/navigation/tabs/state/link/use_tab_link.d.ts.map +1 -1
  127. package/dist/navigation/tabs/state/link/use_tab_link.js.map +1 -1
  128. package/dist/overlay/tethered/types.js +2 -0
  129. package/dist/overlay/tethered/types.js.map +1 -0
  130. package/dist/panel.css +1 -1
  131. package/dist/phone_number_input.css +1 -1
  132. package/dist/section.css +1 -1
  133. package/dist/section.module-BXlxYmJK.js +5 -0
  134. package/dist/section.module-BXlxYmJK.js.map +1 -0
  135. package/dist/{showcase-y9D3_Y8T.js → showcase-DBFp_Epk.js} +94 -94
  136. package/dist/showcase-DBFp_Epk.js.map +1 -0
  137. package/dist/side.css +1 -1
  138. package/dist/stacks/box/handle_props.js +2 -0
  139. package/dist/stacks/box/handle_props.js.map +1 -0
  140. package/dist/stacks/box/types.js +2 -0
  141. package/dist/stacks/box/types.js.map +1 -0
  142. package/dist/surfaces/aside/aside.d.ts +1 -1
  143. package/dist/surfaces/aside/aside.d.ts.map +1 -1
  144. package/dist/surfaces/aside/aside.js +1 -1
  145. package/dist/surfaces/aside/aside.js.map +1 -1
  146. package/dist/surfaces/card/card.d.ts +1 -1
  147. package/dist/surfaces/card/card.d.ts.map +1 -1
  148. package/dist/surfaces/card/card.js +1 -1
  149. package/dist/surfaces/card/card.js.map +1 -1
  150. package/dist/surfaces/drawers/drawer.js +1 -1
  151. package/dist/surfaces/drawers/drawer.js.map +1 -1
  152. package/dist/surfaces/modal/modal.js +1 -1
  153. package/dist/surfaces/modal/modal.js.map +1 -1
  154. package/dist/surfaces/page/page.d.ts +1 -1
  155. package/dist/surfaces/page/page.d.ts.map +1 -1
  156. package/dist/surfaces/page/page.js +1 -1
  157. package/dist/surfaces/page/page.js.map +1 -1
  158. package/dist/surfaces/panel/panel.d.ts +1 -1
  159. package/dist/surfaces/panel/panel.d.ts.map +1 -1
  160. package/dist/surfaces/panel/panel.js +1 -1
  161. package/dist/surfaces/panel/panel.js.map +1 -1
  162. package/dist/surfaces/pop_confirm/pop_confirm.js +8 -9
  163. package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -1
  164. package/dist/surfaces/window/window.js +1 -1
  165. package/dist/surfaces/window/window.js.map +1 -1
  166. package/dist/{syntaxhighlighter-ED5Y7EFY-CqInEOwQ.js → syntaxhighlighter-ED5Y7EFY-B0ag_7lq.js} +2 -2
  167. package/dist/syntaxhighlighter-ED5Y7EFY-B0ag_7lq.js.map +1 -0
  168. package/dist/term.css +1 -0
  169. package/dist/themes/build_stylesheet.d.ts +2 -0
  170. package/dist/themes/build_stylesheet.d.ts.map +1 -0
  171. package/dist/themes/build_stylesheet.js +9 -0
  172. package/dist/themes/build_stylesheet.js.map +1 -0
  173. package/dist/themes/theme_variables.d.ts +7 -0
  174. package/dist/themes/theme_variables.d.ts.map +1 -1
  175. package/dist/themes/theme_variables.js +16 -9
  176. package/dist/themes/theme_variables.js.map +1 -1
  177. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  178. package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
  179. package/dist/themes/themes/ergo/ergo_theme.js +314 -154
  180. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  181. package/dist/themes/themes/ergo/tokens/system_tokens.css +1 -0
  182. package/dist/themes/themes/ergo/tokens/theme_tokens.css +1 -0
  183. package/dist/tokens/index.d.ts +1 -0
  184. package/dist/tokens/index.d.ts.map +1 -1
  185. package/dist/tokens/index.js +4 -2
  186. package/dist/tokens/index.js.map +1 -1
  187. package/dist/tokens/key/key.d.ts +8 -1
  188. package/dist/tokens/key/key.d.ts.map +1 -1
  189. package/dist/tokens/key/key.js +20 -3
  190. package/dist/tokens/key/key.js.map +1 -1
  191. package/dist/tokens/term/term.d.ts +4 -0
  192. package/dist/tokens/term/term.d.ts.map +1 -0
  193. package/dist/tokens/term/term.js +20 -0
  194. package/dist/tokens/term/term.js.map +1 -0
  195. package/dist/tokens/value/value.d.ts +8 -1
  196. package/dist/tokens/value/value.d.ts.map +1 -1
  197. package/dist/tokens/value/value.js +23 -5
  198. package/dist/tokens/value/value.js.map +1 -1
  199. package/dist/utility_strip.css +1 -1
  200. package/dist/utils/calendar/calendar_date.js +2 -0
  201. package/dist/utils/calendar/calendar_date.js.map +1 -0
  202. package/dist/utils/dnd/types.js +2 -0
  203. package/dist/utils/dnd/types.js.map +1 -0
  204. package/dist/utils/types/variations.d.ts +1 -0
  205. package/dist/utils/types/variations.d.ts.map +1 -1
  206. package/dist/value.css +1 -0
  207. package/dist/value.module-DFaCouFD.js +5 -0
  208. package/dist/value.module-DFaCouFD.js.map +1 -0
  209. package/package.json +17 -16
  210. package/src/actions/button/button_group/button_group.tsx +18 -10
  211. package/src/form/field_set/field_set.tsx +4 -2
  212. package/src/inputs/phone_number_input/phone_number_input.module.css +7 -5
  213. package/src/layouts/__stories__/composed.stories.tsx +13 -8
  214. package/src/layouts/__stories__/composed_stories.module.css +1 -0
  215. package/src/layouts/__stories__/rail.stories.tsx +23 -25
  216. package/src/layouts/__stories__/scaffold.stories.tsx +21 -41
  217. package/src/layouts/__stories__/utils/layout_theme.css +0 -4
  218. package/src/layouts/__stories__/utils/layout_theme_provider.tsx +8 -1
  219. package/src/layouts/__stories__/utils.tsx +15 -29
  220. package/src/layouts/containers/containers.module.css +55 -0
  221. package/src/layouts/{rail → containers}/rail.tsx +15 -5
  222. package/src/layouts/{scaffold → containers}/scaffold.tsx +15 -5
  223. package/src/layouts/{rail → containers}/side/side.tsx +2 -1
  224. package/src/layouts/index.ts +6 -8
  225. package/src/layouts/section/__stories__/section.stories.tsx +79 -50
  226. package/src/layouts/section/detail.tsx +14 -0
  227. package/src/layouts/section/index.ts +3 -0
  228. package/src/layouts/section/section.module.css +0 -36
  229. package/src/mobile/actions/button/mobile_button.module.css +34 -0
  230. package/src/mobile/actions/button/mobile_button.stories.tsx +97 -0
  231. package/src/mobile/actions/button/mobile_button.tsx +26 -0
  232. package/src/mobile/actions/floating_action_button/floating_action_button.module.css +28 -0
  233. package/src/mobile/actions/floating_action_button/floating_action_button.stories.tsx +102 -0
  234. package/src/mobile/actions/floating_action_button/floating_action_button.tsx +25 -0
  235. package/src/mobile/inputs/date_picker/mobile_date_picker.module.css +22 -0
  236. package/src/mobile/inputs/date_picker/mobile_date_picker.tsx +118 -0
  237. package/src/mobile/inputs/date_picker/mobile_date_picker_body.tsx +57 -0
  238. package/src/mobile/inputs/date_picker/mobile_date_picker_date.module.css +80 -0
  239. package/src/mobile/inputs/date_picker/mobile_date_picker_date.tsx +102 -0
  240. package/src/mobile/inputs/date_picker/mobile_date_picker_day.module.css +6 -0
  241. package/src/mobile/inputs/date_picker/mobile_date_picker_day.tsx +40 -0
  242. package/src/mobile/inputs/date_picker/mobile_date_picker_header.module.css +21 -0
  243. package/src/mobile/inputs/date_picker/mobile_date_picker_header.tsx +180 -0
  244. package/src/mobile/inputs/date_picker/mobile_date_picker_input.module.css +13 -0
  245. package/src/mobile/inputs/date_picker/mobile_date_picker_input.stories.tsx +27 -0
  246. package/src/mobile/inputs/date_picker/mobile_date_picker_input.tsx +240 -0
  247. package/src/mobile/inputs/date_picker/mobile_date_picker_time_selector.module.css +7 -0
  248. package/src/mobile/inputs/date_picker/mobile_date_picker_time_selector.tsx +81 -0
  249. package/src/mobile/inputs/date_picker/mobile_date_picker_year_selector.module.css +55 -0
  250. package/src/mobile/inputs/date_picker/mobile_date_picker_year_selector.tsx +119 -0
  251. package/src/mobile/inputs/date_picker/mobile_overlay_header.module.css +5 -0
  252. package/src/mobile/inputs/date_picker/mobile_overlay_header.tsx +29 -0
  253. package/src/mobile/inputs/index.ts +4 -0
  254. package/src/mobile/portal/mobile_portal.tsx +14 -0
  255. package/src/mobile/viewport/mobile_viewport.module.css +23 -0
  256. package/src/mobile/viewport/mobile_viewport.tsx +80 -0
  257. package/src/navigation/tabs/state/link/use_tab_link.ts +1 -1
  258. package/src/overlay/slide/slide.stories.tsx +6 -9
  259. package/src/surfaces/aside/aside.module.css +1 -0
  260. package/src/surfaces/aside/aside.stories.tsx +24 -38
  261. package/src/surfaces/aside/aside.tsx +1 -1
  262. package/src/surfaces/card/card.stories.tsx +5 -7
  263. package/src/surfaces/card/card.tsx +1 -1
  264. package/src/surfaces/drawers/drawer.stories.tsx +10 -13
  265. package/src/surfaces/drawers/drawer.tsx +1 -1
  266. package/src/surfaces/modal/__stories__/modal.stories.tsx +10 -13
  267. package/src/surfaces/modal/modal.tsx +1 -1
  268. package/src/surfaces/page/page.stories.tsx +28 -32
  269. package/src/surfaces/page/page.tsx +1 -1
  270. package/src/surfaces/panel/__stories__/panel.stories.tsx +199 -66
  271. package/src/surfaces/panel/panel.module.css +1 -1
  272. package/src/surfaces/panel/panel.tsx +1 -1
  273. package/src/surfaces/pop_confirm/pop_confirm.stories.tsx +29 -37
  274. package/src/surfaces/tooltip/__stories__/tooltip.stories.tsx +8 -10
  275. package/src/surfaces/window/window.stories.tsx +6 -15
  276. package/src/surfaces/window/window.tsx +1 -1
  277. package/src/themes/build_stylesheet.ts +5 -0
  278. package/src/themes/theme_variables.ts +9 -0
  279. package/src/themes/themes/ergo/__stories__/components/tone_picker/sb_tone_card.tsx +6 -8
  280. package/src/themes/themes/ergo/__stories__/material.stories.tsx +4 -6
  281. package/src/themes/themes/ergo/ergo_theme.css +208 -215
  282. package/src/themes/themes/ergo/ergo_theme.ts +4 -2
  283. package/src/themes/themes/ergo/tokens/system_tokens.css +68 -0
  284. package/src/themes/themes/ergo/tokens/theme_tokens.css +99 -0
  285. package/src/tokens/index.ts +1 -0
  286. package/src/tokens/key/key.tsx +23 -2
  287. package/src/tokens/term/term.module.css +14 -0
  288. package/src/tokens/term/term.stories.tsx +84 -0
  289. package/src/tokens/term/term.tsx +20 -0
  290. package/src/tokens/value/value.module.css +5 -0
  291. package/src/tokens/value/value.tsx +24 -2
  292. package/src/utils/types/variations.ts +1 -0
  293. package/tsconfig.json +5 -33
  294. package/dist/WithTooltip-65CFNBJE-DEnh547F.js.map +0 -1
  295. package/dist/body.css +0 -1
  296. package/dist/formatter-EIJCOSYU-DWmgEY3b.js +0 -6
  297. package/dist/formatter-EIJCOSYU-DWmgEY3b.js.map +0 -1
  298. package/dist/layouts/body/body.d.ts +0 -23
  299. package/dist/layouts/body/body.d.ts.map +0 -1
  300. package/dist/layouts/body/body.js +0 -20
  301. package/dist/layouts/body/body.js.map +0 -1
  302. package/dist/layouts/rail/rail.d.ts.map +0 -1
  303. package/dist/layouts/rail/rail.js +0 -55
  304. package/dist/layouts/rail/rail.js.map +0 -1
  305. package/dist/layouts/rail/side/side.d.ts.map +0 -1
  306. package/dist/layouts/rail/side/side.js +0 -21
  307. package/dist/layouts/rail/side/side.js.map +0 -1
  308. package/dist/layouts/rail/utility_strip/utility_strip.d.ts.map +0 -1
  309. package/dist/layouts/rail/utility_strip/utility_strip.js.map +0 -1
  310. package/dist/layouts/row/row.d.ts +0 -4
  311. package/dist/layouts/row/row.d.ts.map +0 -1
  312. package/dist/layouts/row/row.js +0 -11
  313. package/dist/layouts/row/row.js.map +0 -1
  314. package/dist/layouts/scaffold/scaffold.d.ts.map +0 -1
  315. package/dist/layouts/scaffold/scaffold.js +0 -55
  316. package/dist/layouts/scaffold/scaffold.js.map +0 -1
  317. package/dist/rail.css +0 -1
  318. package/dist/row.css +0 -1
  319. package/dist/scaffold.css +0 -1
  320. package/dist/section.module-0wyGkhDg.js +0 -5
  321. package/dist/section.module-0wyGkhDg.js.map +0 -1
  322. package/dist/showcase-y9D3_Y8T.js.map +0 -1
  323. package/dist/syntaxhighlighter-ED5Y7EFY-CqInEOwQ.js.map +0 -1
  324. package/src/layouts/body/body.module.css +0 -8
  325. package/src/layouts/body/body.tsx +0 -40
  326. package/src/layouts/rail/rail.module.css +0 -14
  327. package/src/layouts/row/row.module.css +0 -5
  328. package/src/layouts/row/row.tsx +0 -15
  329. package/src/layouts/scaffold/scaffold.module.css +0 -14
  330. /package/dist/layouts/{rail → containers}/rail.d.ts +0 -0
  331. /package/dist/layouts/{scaffold → containers}/scaffold.d.ts +0 -0
  332. /package/dist/layouts/{rail → containers}/side/side.d.ts +0 -0
  333. /package/dist/layouts/{rail → containers}/utility_strip/utility_strip.d.ts +0 -0
  334. /package/src/layouts/{rail → containers}/side/side.module.css +0 -0
  335. /package/src/layouts/{rail → containers}/utility_strip/utility_strip.module.css +0 -0
  336. /package/src/layouts/{rail → containers}/utility_strip/utility_strip.tsx +0 -0
@@ -3,12 +3,13 @@ import { HStack } from '../../../stacks/h_stack.js';
3
3
  import type { WithDetailedHTMLProps } from '../../../stacks/types/as.js';
4
4
  import { clsx } from 'clsx';
5
5
  import React from 'react';
6
- import { Button, ButtonProps } from '../button/button.js';
6
+ import { ButtonProps } from '../button/button.js';
7
7
  import styles from './button_group.module.css';
8
8
 
9
9
  export interface ButtonGroupOwnProps {
10
10
  hierarchy?: Hierarchy;
11
11
  size?: Size;
12
+ width?: string;
12
13
  children:
13
14
  | React.ReactElement<Omit<ButtonProps, 'hierarchy'>>
14
15
  | React.ReactElement<Omit<ButtonProps, 'hierarchy'>>[];
@@ -18,7 +19,14 @@ export type ButtonGroupProps = WithDetailedHTMLProps<ButtonGroupOwnProps, 'div'>
18
19
 
19
20
  export const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(
20
21
  function ButtonGroup(
21
- { children, className, hierarchy = 'secondary', size = 'md', ...props },
22
+ {
23
+ children,
24
+ className,
25
+ hierarchy = 'secondary',
26
+ size = 'md',
27
+ width = 'auto',
28
+ ...props
29
+ },
22
30
  ref
23
31
  ) {
24
32
  const buttons: React.ReactElement<ButtonProps>[] = Array.isArray(children)
@@ -30,7 +38,7 @@ export const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(
30
38
  ref={ref}
31
39
  as="div"
32
40
  inline
33
- width="auto"
41
+ width={width}
34
42
  height="auto"
35
43
  data-hierarchy={hierarchy}
36
44
  data-size={size}
@@ -42,16 +50,16 @@ export const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(
42
50
 
43
51
  return (
44
52
  <React.Fragment key={i}>
45
- <Button
46
- {...button.props}
47
- className={clsx(
53
+ {React.cloneElement(button, {
54
+ ...button.props,
55
+ className: clsx(
48
56
  styles['button-group-button'],
49
57
  'tcn-button-group-button',
50
58
  button.props.className
51
- )}
52
- hierarchy={hierarchy}
53
- size={size}
54
- />
59
+ ),
60
+ hierarchy,
61
+ size,
62
+ })}
55
63
  {!isLast && (
56
64
  <div
57
65
  className={clsx(
@@ -1,4 +1,4 @@
1
- import { Title } from '../../typography/index.js';
1
+ import { BodyText } from '../../typography/index.js';
2
2
  import { HStack } from '../../stacks/h_stack.js';
3
3
  import { Spacer } from '../../stacks/spacer.js';
4
4
  import { VStack } from '../../stacks/v_stack.js';
@@ -49,7 +49,9 @@ export const FieldSet = React.forwardRef(function FieldSet(
49
49
  >
50
50
  {startAdornments}
51
51
  {startAdornments && <Spacer width="8px" />}
52
- <Title className="tcn-field-set-legend-text">{legend}</Title>
52
+ <BodyText className="tcn-field-set-legend-text" size="lg">
53
+ {legend}
54
+ </BodyText>
53
55
  {endAdornments && <Spacer />}
54
56
  {endAdornments}
55
57
  </HStack>
@@ -1,6 +1,8 @@
1
- .phone-number-input {
2
- flex-grow: 1;
3
- flex-shrink: 0;
4
- flex-basis: 0%;
5
- width: auto;
1
+ @layer tcn-system {
2
+ .phone-number-input {
3
+ flex-grow: 1;
4
+ flex-shrink: 0;
5
+ flex-basis: 0%;
6
+ width: auto;
7
+ }
6
8
  }
@@ -3,6 +3,7 @@ import { VStack } from '../../stacks/v_stack.js';
3
3
  import { SBNestedScaffold, SBContent, SBNestedRail } from './utils.js';
4
4
 
5
5
  import styles from './composed_stories.module.css';
6
+ import { Rail } from '../containers/rail.js';
6
7
 
7
8
  const meta: Meta = {
8
9
  title: 'Layouts/Composed',
@@ -33,10 +34,12 @@ export const Baseline: Story = {
33
34
  render: () => (
34
35
  <SBContainer>
35
36
  <SBNestedScaffold depth={1}>
36
- <SBNestedRail depth={2}>
37
- <SBContent />
38
- <SBContent />
39
- <SBContent />
37
+ <SBNestedRail depth={2} minWidth="100px">
38
+ <Rail>
39
+ <SBContent />
40
+ <SBContent />
41
+ <SBContent />
42
+ </Rail>
40
43
  </SBNestedRail>
41
44
  </SBNestedScaffold>
42
45
  </SBContainer>
@@ -46,11 +49,13 @@ export const Baseline: Story = {
46
49
  export const WithColumns: Story = {
47
50
  render: () => (
48
51
  <SBContainer>
49
- <SBNestedScaffold depth={1} utilityBar={false} body={false} footer={false}>
52
+ <SBNestedScaffold depth={1} utilityBar={false} footer={false}>
50
53
  <SBNestedRail depth={2} scaffold={false}>
51
- <SBContent />
52
- <SBContent />
53
- <SBContent />
54
+ <Rail>
55
+ <SBContent />
56
+ <SBContent />
57
+ <SBContent />
58
+ </Rail>
54
59
  </SBNestedRail>
55
60
  </SBNestedScaffold>
56
61
  </SBContainer>
@@ -94,6 +94,7 @@
94
94
  align-items: center;
95
95
  justify-content: center;
96
96
  height: 100%;
97
+ border: 1px solid rgba(0, 0, 0, 0.75);
97
98
  }
98
99
 
99
100
  .action-box {
@@ -2,13 +2,11 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
 
3
3
  import { LayoutStoryDecorator } from './utils/layout_theme_provider.js';
4
4
  import { SBLayoutContent } from './utils/content.js';
5
- import { Rail } from '../rail/rail.js';
6
- import { Side } from '../rail/side/side.js';
7
- import { UtilityStrip } from '../rail/utility_strip/utility_strip.js';
8
- import { BodyText, Title } from '../../typography/index.js';
9
- import { Body } from '../body/body.js';
10
- import { VStack } from '../../stacks/v_stack.js';
11
- import { Scaffold } from '../scaffold/scaffold.js';
5
+ import { Rail } from '../containers/rail.js';
6
+ import { Side } from '../containers/side/side.js';
7
+ import { UtilityStrip } from '../containers/utility_strip/utility_strip.js';
8
+ import { Title } from '../../typography/index.js';
9
+ import { Scaffold } from '../containers/scaffold.js';
12
10
 
13
11
  const meta: Meta<typeof Rail> = {
14
12
  title: 'Layouts/Rail',
@@ -34,7 +32,12 @@ export const Baseline: Story = {
34
32
  <UtilityStrip>
35
33
  <Title>Utility Strip</Title>
36
34
  </UtilityStrip>
37
- <Body>Body fills available space </Body>
35
+ <Rail>
36
+ <SBLayoutContent />
37
+ <SBLayoutContent />
38
+ <SBLayoutContent />
39
+ <SBLayoutContent />
40
+ </Rail>
38
41
  <Side width="200px">Side</Side>
39
42
  </Rail>
40
43
  </LayoutStoryDecorator>
@@ -48,16 +51,12 @@ export const HorizontalContent: Story = {
48
51
  <UtilityStrip>
49
52
  <Title>Utility Strip</Title>
50
53
  </UtilityStrip>
51
- <Body>
52
- <Rail>
53
- <VStack minWidth="200px">
54
- <BodyText>Body + Rail</BodyText>
55
- </VStack>
56
- <SBLayoutContent />
57
- <SBLayoutContent />
58
- <SBLayoutContent />
59
- </Rail>
60
- </Body>
54
+ <Rail>
55
+ <SBLayoutContent />
56
+ <SBLayoutContent />
57
+ <SBLayoutContent />
58
+ <SBLayoutContent />
59
+ </Rail>
61
60
  <Side width="200px">Side</Side>
62
61
  </Rail>
63
62
  </LayoutStoryDecorator>
@@ -71,13 +70,12 @@ export const VerticalContent: Story = {
71
70
  <UtilityStrip>
72
71
  <Title>Utility Strip</Title>
73
72
  </UtilityStrip>
74
- <Body>
75
- <Scaffold>
76
- <SBLayoutContent />
77
- <SBLayoutContent />
78
- <SBLayoutContent />
79
- </Scaffold>
80
- </Body>
73
+ <Scaffold>
74
+ <SBLayoutContent />
75
+ <SBLayoutContent />
76
+ <SBLayoutContent />
77
+ <SBLayoutContent />
78
+ </Scaffold>
81
79
  <Side width="200px">Side</Side>
82
80
  </Rail>
83
81
  </LayoutStoryDecorator>
@@ -1,4 +1,4 @@
1
- import { Scaffold } from '../scaffold/scaffold.js';
1
+ import { Scaffold } from '../containers/scaffold.js';
2
2
  import { Header } from '../header/header.js';
3
3
  import { UtilityBar } from '../utility_bar/utility_bar.js';
4
4
  import { Footer } from '../footer/footer.js';
@@ -6,12 +6,7 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
6
6
 
7
7
  import { LayoutStoryDecorator } from './utils/layout_theme_provider.js';
8
8
  import { SBLayoutContent } from './utils/content.js';
9
- import { VStack } from '../../stacks/v_stack.js';
10
- import { Body } from '../body/body.js';
11
- import { Rail } from '../rail/rail.js';
12
- import { Section } from '../section/section.js';
13
- import { BodyText } from '../../typography/index.js';
14
- import { Heading } from '../section/heading.js';
9
+ import { Rail } from '../containers/rail.js';
15
10
 
16
11
  const meta: Meta<typeof Scaffold> = {
17
12
  title: 'Layouts/Scaffold',
@@ -33,10 +28,14 @@ type Story = StoryObj<typeof Scaffold>;
33
28
  export const Baseline: Story = {
34
29
  render: () => (
35
30
  <LayoutStoryDecorator>
36
- <Scaffold>
31
+ <Scaffold height="100%">
37
32
  <Header>Header</Header>
38
33
  <UtilityBar>Utility Bar</UtilityBar>
39
- <Body>Body fills available space</Body>
34
+ <Scaffold>
35
+ <SBLayoutContent />
36
+ <SBLayoutContent />
37
+ <SBLayoutContent />
38
+ </Scaffold>
40
39
  <Footer>Footer</Footer>
41
40
  </Scaffold>
42
41
  </LayoutStoryDecorator>
@@ -49,29 +48,14 @@ export const VerticalContent: Story = {
49
48
  },
50
49
  render: () => (
51
50
  <LayoutStoryDecorator>
52
- <Scaffold height="100vh">
51
+ <Scaffold height="100%">
53
52
  <Header>Header</Header>
54
53
  <UtilityBar>Utility Bar</UtilityBar>
55
- <Body>
56
- <Scaffold>
57
- <VStack>
58
- <BodyText>Body + Scaffold</BodyText>
59
- </VStack>
60
- <Section>
61
- <Heading>Section 1 - A</Heading>
62
- <SBLayoutContent />
63
- <Section>
64
- <Heading>Section 1 - B</Heading>
65
- <SBLayoutContent />
66
- </Section>
67
- </Section>
68
- <Section>
69
- <Heading>Section 2</Heading>
70
- <SBLayoutContent />
71
- <SBLayoutContent />
72
- </Section>
73
- </Scaffold>
74
- </Body>
54
+ <Scaffold>
55
+ <SBLayoutContent />
56
+ <SBLayoutContent />
57
+ <SBLayoutContent />
58
+ </Scaffold>
75
59
  </Scaffold>
76
60
  </LayoutStoryDecorator>
77
61
  ),
@@ -82,19 +66,15 @@ export const HorizontalContent: Story = {
82
66
  },
83
67
  render: () => (
84
68
  <LayoutStoryDecorator>
85
- <Scaffold height="100vh">
69
+ <Scaffold height="100%">
86
70
  <Header>Header</Header>
87
71
  <UtilityBar>Utility Bar</UtilityBar>
88
- <Body>
89
- <Rail>
90
- <VStack minWidth="200px">
91
- <BodyText>Body + Rail</BodyText>
92
- </VStack>
93
- <SBLayoutContent />
94
- <SBLayoutContent />
95
- <SBLayoutContent />
96
- </Rail>
97
- </Body>
72
+ <Rail>
73
+ <SBLayoutContent />
74
+ <SBLayoutContent />
75
+ <SBLayoutContent />
76
+ <SBLayoutContent />
77
+ </Rail>
98
78
  <Footer>Footer</Footer>
99
79
  </Scaffold>
100
80
  </LayoutStoryDecorator>
@@ -48,10 +48,6 @@
48
48
  background: var(--bg-3);
49
49
  }
50
50
 
51
- :where(.tcn-body) {
52
- background: var(--bg-4);
53
- }
54
-
55
51
  :where(.tcn-rail) {
56
52
  background: var(--bg);
57
53
  }
@@ -4,7 +4,14 @@ import './layout_theme.css';
4
4
 
5
5
  export const LayoutStoryDecorator = ({ children }: { children: React.ReactNode }) => {
6
6
  return (
7
- <Box className="sb-layout-theme" height="100vh" width="100vw" minHeight="400px">
7
+ <Box
8
+ className="sb-layout-theme"
9
+ height="100vh"
10
+ width="100vw"
11
+ minHeight="400px"
12
+ maxHeight="800px"
13
+ overflow="auto"
14
+ >
8
15
  {children}
9
16
  </Box>
10
17
  );
@@ -1,19 +1,18 @@
1
1
  import type { PropsWithChildren } from 'react';
2
2
  import clsx from 'clsx';
3
3
 
4
- import { Scaffold, type ScaffoldProps } from '../scaffold/scaffold.js';
4
+ import { Scaffold, type ScaffoldProps } from '../containers/scaffold.js';
5
5
  import { Header } from '../header/header.js';
6
6
  import { Footer } from '../footer/footer.js';
7
7
  import { UtilityBar } from '../utility_bar/utility_bar.js';
8
8
 
9
- import { Rail, type RailProps } from '../rail/rail.js';
10
- import { Side } from '../rail/side/side.js';
9
+ import { Rail, type RailProps } from '../containers/rail.js';
10
+ import { Side } from '../containers/side/side.js';
11
11
  import { Box, Spacer } from '../../stacks/index.js';
12
- import { UtilityStrip } from '../rail/utility_strip/utility_strip.js';
12
+ import { UtilityStrip } from '../containers/utility_strip/utility_strip.js';
13
13
  import { SearchIcon } from '@tcn/icons/search_icon.js';
14
14
 
15
15
  import styles from './composed_stories.module.css';
16
- import { Body } from '../body/body.js';
17
16
 
18
17
  const FloatingLabel = ({ children }: { children: React.ReactNode }) => {
19
18
  return (
@@ -68,10 +67,8 @@ interface SBNestedRailProps extends RailProps {
68
67
  depth?: number;
69
68
  scaffold?: boolean;
70
69
  side?: boolean;
71
- main?: boolean;
72
70
  utilityStrip?: boolean;
73
71
  label?: boolean;
74
- mainLabel?: boolean;
75
72
  }
76
73
 
77
74
  export const SBNestedRail: React.FC<PropsWithChildren<SBNestedRailProps>> = ({
@@ -80,14 +77,14 @@ export const SBNestedRail: React.FC<PropsWithChildren<SBNestedRailProps>> = ({
80
77
  depth = 1,
81
78
  scaffold = true,
82
79
  side = true,
83
- main = true,
84
80
  utilityStrip = true,
85
81
  label = true,
86
- mainLabel = true,
82
+ height = '100%',
87
83
  ...props
88
84
  }) => {
89
85
  return (
90
86
  <Rail
87
+ height={height}
91
88
  className={clsx(styles.rail, styles.primary, className)}
92
89
  data-depth={depth}
93
90
  {...props}
@@ -99,15 +96,7 @@ export const SBNestedRail: React.FC<PropsWithChildren<SBNestedRailProps>> = ({
99
96
  <SBActions />
100
97
  </UtilityStrip>
101
98
  )}
102
- {main && (
103
- <Body className={clsx(styles.main, styles.secondary)} width="200px">
104
- <Scaffold>
105
- {mainLabel && <>Body</>}
106
- {children}
107
- </Scaffold>
108
- </Body>
109
- )}
110
- {!main && children}
99
+ {children}
111
100
  {side && (
112
101
  <Side className={clsx(styles.side, styles.secondary)} minWidth="200px">
113
102
  <span>Side/Column/WIP</span>
@@ -120,9 +109,11 @@ export const SBNestedRail: React.FC<PropsWithChildren<SBNestedRailProps>> = ({
120
109
  footer={false}
121
110
  minWidth={'fit-content'}
122
111
  >
123
- <SBContent />
124
- <SBContent />
125
- <SBContent />
112
+ <Scaffold>
113
+ <SBContent />
114
+ <SBContent />
115
+ <SBContent />
116
+ </Scaffold>
126
117
  </SBNestedScaffold>
127
118
  )}
128
119
  </Rail>
@@ -133,7 +124,6 @@ interface SBNestedScaffoldProps extends ScaffoldProps {
133
124
  depth?: number;
134
125
  header?: boolean;
135
126
  utilityBar?: boolean;
136
- body?: boolean;
137
127
  footer?: boolean;
138
128
  }
139
129
 
@@ -143,12 +133,13 @@ export const SBNestedScaffold: React.FC<PropsWithChildren<SBNestedScaffoldProps>
143
133
  depth = 1,
144
134
  header = true,
145
135
  utilityBar = true,
146
- body = true,
147
136
  footer = true,
137
+ height = '100%',
148
138
  ...props
149
139
  }) => {
150
140
  return (
151
141
  <Scaffold
142
+ height={height}
152
143
  className={clsx(styles.scaffold, styles.primary, className)}
153
144
  data-depth={depth}
154
145
  {...props}
@@ -163,12 +154,7 @@ export const SBNestedScaffold: React.FC<PropsWithChildren<SBNestedScaffoldProps>
163
154
  <SBActions />
164
155
  </UtilityBar>
165
156
  )}
166
- {body && (
167
- <Body className={clsx(styles.body, styles.secondary)}>
168
- <Scaffold>Body {children}</Scaffold>
169
- </Body>
170
- )}
171
- {!body && children}
157
+ {children}
172
158
  {footer && (
173
159
  <Footer className={clsx(styles.footer, styles.secondary)}>Footer</Footer>
174
160
  )}
@@ -0,0 +1,55 @@
1
+ @layer tcn-system {
2
+ :where(.scaffold) {
3
+ max-height: 100%;
4
+ width: 100%;
5
+ height: auto;
6
+ }
7
+
8
+ :where(.rail) {
9
+ max-width: 100%;
10
+ height: 100%;
11
+ width: auto;
12
+ }
13
+
14
+ :where(.container) > :where(.container-stack) {
15
+ width: 100%;
16
+ height: 100%;
17
+ }
18
+
19
+ /* Scaffold base — layout frame only, no overflow clipping */
20
+ :where(.scaffold) > :where(.scaffold-stack) {
21
+ overflow-y: auto;
22
+ }
23
+
24
+ /* Switching direction - rail fills scaffold width */
25
+ :where(.scaffold) > :where(.scaffold-stack) > :where(.rail) {
26
+ width: 100%;
27
+ }
28
+
29
+ /* Switching direction - scaffold fills rail height */
30
+ :where(.rail) > :where(.rail-stack) > :where(.scaffold) {
31
+ height: 100%;
32
+ }
33
+
34
+ /* Rail base — layout frame only, no overflow clipping */
35
+ :where(.rail) > :where(.rail-stack) {
36
+ overflow-x: auto;
37
+ }
38
+
39
+ /* container grows to fill remaining space */
40
+ :where(.container-stack) > :where(.container) {
41
+ flex-grow: 1;
42
+ }
43
+
44
+ /* container nested Scaffold scrolls vertically */
45
+ :where(.container-stack) > :where(.scaffold) {
46
+ min-height: 0;
47
+ overflow-y: auto;
48
+ }
49
+
50
+ /* container nested Rail scrolls horizontally */
51
+ :where(.container-stack) > :where(.rail) {
52
+ min-width: 0;
53
+ overflow-x: auto;
54
+ }
55
+ }
@@ -4,8 +4,7 @@ import { Box, type BoxProps } from '../../stacks/box/box.js';
4
4
  import type { Alignment } from '../../stacks/types/alignment.js';
5
5
  import { HStack } from '../../stacks/h_stack.js';
6
6
 
7
- // Styles
8
- import styles from './rail.module.css';
7
+ import styles from './containers.module.css';
9
8
 
10
9
  export interface RailProps extends Omit<BoxProps, 'as'> {
11
10
  vAlign?: Alignment;
@@ -17,7 +16,7 @@ export const Rail = React.forwardRef<HTMLElement, RailProps>(function Rail(
17
16
  {
18
17
  children,
19
18
  width,
20
- height = '100%',
19
+ height,
21
20
  minWidth,
22
21
  maxWidth,
23
22
  minHeight,
@@ -40,7 +39,13 @@ export const Rail = React.forwardRef<HTMLElement, RailProps>(function Rail(
40
39
  maxHeight={maxHeight}
41
40
  data-h-alignment={hAlign}
42
41
  data-v-alignment={vAlign}
43
- className={clsx(className, styles['rail'], 'tcn-rail')}
42
+ className={clsx(
43
+ className,
44
+ styles['rail'],
45
+ styles['container'],
46
+ 'tcn-container',
47
+ 'tcn-rail'
48
+ )}
44
49
  {...props}
45
50
  >
46
51
  <HStack
@@ -52,7 +57,12 @@ export const Rail = React.forwardRef<HTMLElement, RailProps>(function Rail(
52
57
  hAlign={hAlign}
53
58
  vAlign={vAlign}
54
59
  ref={ref}
55
- className={clsx(styles['rail-stack'], 'tcn-rail-stack')}
60
+ className={clsx(
61
+ styles['rail-stack'],
62
+ styles['container-stack'],
63
+ 'tcn-container-stack',
64
+ 'tcn-rail-stack'
65
+ )}
56
66
  zIndex={0}
57
67
  >
58
68
  {children}
@@ -3,8 +3,7 @@ import { clsx } from 'clsx';
3
3
  import { Box, type BoxProps } from '../../stacks/box/box.js';
4
4
  import type { Alignment } from '../../stacks/types/alignment.js';
5
5
  import { VStack } from '../../stacks/v_stack.js';
6
- // Styles
7
- import styles from './scaffold.module.css';
6
+ import styles from './containers.module.css';
8
7
 
9
8
  export interface ScaffoldProps extends Omit<BoxProps, 'as'> {
10
9
  vAlign?: Alignment;
@@ -15,7 +14,7 @@ export const Scaffold = React.forwardRef<HTMLElement, ScaffoldProps>(function Sc
15
14
  {
16
15
  children,
17
16
  width,
18
- height = '100%',
17
+ height,
19
18
  minWidth,
20
19
  maxWidth,
21
20
  minHeight,
@@ -38,7 +37,13 @@ export const Scaffold = React.forwardRef<HTMLElement, ScaffoldProps>(function Sc
38
37
  maxHeight={maxHeight}
39
38
  data-h-alignment={hAlign}
40
39
  data-v-alignment={vAlign}
41
- className={clsx(className, styles['scaffold'], 'tcn-scaffold')}
40
+ className={clsx(
41
+ className,
42
+ styles['scaffold'],
43
+ styles['container'],
44
+ 'tcn-container',
45
+ 'tcn-scaffold'
46
+ )}
42
47
  {...props}
43
48
  >
44
49
  <VStack
@@ -50,7 +55,12 @@ export const Scaffold = React.forwardRef<HTMLElement, ScaffoldProps>(function Sc
50
55
  hAlign={hAlign}
51
56
  vAlign={vAlign}
52
57
  ref={ref}
53
- className={clsx(styles['scaffold-stack'], 'tcn-scaffold-stack')}
58
+ className={clsx(
59
+ styles['scaffold-stack'],
60
+ styles['container-stack'],
61
+ 'tcn-container-stack',
62
+ 'tcn-scaffold-stack'
63
+ )}
54
64
  zIndex={0}
55
65
  >
56
66
  {children}
@@ -7,13 +7,14 @@ import styles from './side.module.css';
7
7
  export interface SideProps extends Omit<VStackProps, 'as'> {}
8
8
 
9
9
  export const Side = React.forwardRef<HTMLElement, SideProps>(function UtilityStrip(
10
- { children, className, width = 'auto', ...props }: SideProps,
10
+ { children, className, height = '100%', width = 'auto', ...props }: SideProps,
11
11
  ref
12
12
  ) {
13
13
  return (
14
14
  <VStack
15
15
  ref={ref}
16
16
  width={width}
17
+ height={height}
17
18
  className={clsx(styles['side'], 'tcn-side', className)}
18
19
  as="section"
19
20
  {...props}
@@ -6,24 +6,22 @@ export * from './list/list.js';
6
6
  export * from './sidebar_end/sidebar_end.js';
7
7
  export * from './sidebar_start/sidebar_start.js';
8
8
 
9
- export { Scaffold, type ScaffoldProps } from './scaffold/scaffold.js';
10
- export { Body, type BodyProps } from './body/body.js';
9
+ export { Scaffold, type ScaffoldProps } from './containers/scaffold.js';
10
+
11
11
  export { Footer, type FooterProps } from './footer/footer.js';
12
12
  export { Header, type HeaderProps } from './header/header.js';
13
13
  export { UtilityBar, type UtilityBarProps } from './utility_bar/utility_bar.js';
14
14
  export { Group, type GroupProps } from './group/group.js';
15
15
  export { Bar, type BarProps } from './bar/bar.js';
16
- export { Row } from './row/row.js';
17
- export { Section } from './section/section.js';
18
- export { Heading, type HeadingOwnProps } from './section/heading.js';
16
+ export { Section, Heading, Detail, type HeadingOwnProps } from './section/index.js';
19
17
  export { Responsive, type ResponsiveProps } from './responsive/responsive.js';
20
18
  export { Breakpoint, type BreakpointProps } from './responsive/breakpoint.js';
21
19
 
22
20
  export { TTable, THead, TBody, TFoot, TR, TH, TD } from './table/table.js';
23
21
 
24
- export { Rail, type RailProps } from './rail/rail.js';
25
- export { Side, type SideProps } from './rail/side/side.js';
22
+ export { Rail, type RailProps } from './containers/rail.js';
23
+ export { Side, type SideProps } from './containers/side/side.js';
26
24
  export {
27
25
  UtilityStrip,
28
26
  type UtilityStripProps,
29
- } from './rail/utility_strip/utility_strip.js';
27
+ } from './containers/utility_strip/utility_strip.js';