@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
@@ -8,40 +8,20 @@ import {
8
8
 
9
9
  describe('getHandleConfig', () => {
10
10
  describe('edge positions', () => {
11
- it('left → horizontal, origin left, invert true, disableDirection true', () => {
12
- const config = getHandleConfig('left');
13
- expect(config.horizontal).toEqual({
14
- origin: 'left',
15
- invert: true,
16
- disableDirection: true,
17
- });
18
- expect(config.vertical).toBeUndefined();
19
- });
20
-
21
- it('right → horizontal, origin right, invert false, disableDirection true', () => {
22
- const config = getHandleConfig('right');
23
- expect(config.horizontal).toEqual({
24
- origin: 'right',
25
- invert: false,
26
- disableDirection: true,
27
- });
28
- expect(config.vertical).toBeUndefined();
29
- });
30
-
31
- it('start → horizontal, origin left, invert true, disableDirection false', () => {
11
+ it('start → horizontal, origin start, invert true, disableDirection false', () => {
32
12
  const config = getHandleConfig('start');
33
13
  expect(config.horizontal).toEqual({
34
- origin: 'left',
14
+ origin: 'start',
35
15
  invert: true,
36
16
  disableDirection: false,
37
17
  });
38
18
  expect(config.vertical).toBeUndefined();
39
19
  });
40
20
 
41
- it('end → horizontal, origin right, invert false, disableDirection false', () => {
21
+ it('end → horizontal, origin end, invert false, disableDirection false', () => {
42
22
  const config = getHandleConfig('end');
43
23
  expect(config.horizontal).toEqual({
44
- origin: 'right',
24
+ origin: 'end',
45
25
  invert: false,
46
26
  disableDirection: false,
47
27
  });
@@ -69,65 +49,7 @@ describe('getHandleConfig', () => {
69
49
  });
70
50
  });
71
51
 
72
- describe('corner positions (physical)', () => {
73
- it('top-left → both axes', () => {
74
- const config = getHandleConfig('top-left');
75
- expect(config.horizontal).toEqual({
76
- origin: 'left',
77
- invert: true,
78
- disableDirection: true,
79
- });
80
- expect(config.vertical).toEqual({
81
- origin: 'top',
82
- invert: true,
83
- disableDirection: true,
84
- });
85
- });
86
-
87
- it('top-right → both axes', () => {
88
- const config = getHandleConfig('top-right');
89
- expect(config.horizontal).toEqual({
90
- origin: 'right',
91
- invert: false,
92
- disableDirection: true,
93
- });
94
- expect(config.vertical).toEqual({
95
- origin: 'top',
96
- invert: true,
97
- disableDirection: true,
98
- });
99
- });
100
-
101
- it('bottom-left → both axes', () => {
102
- const config = getHandleConfig('bottom-left');
103
- expect(config.horizontal).toEqual({
104
- origin: 'left',
105
- invert: true,
106
- disableDirection: true,
107
- });
108
- expect(config.vertical).toEqual({
109
- origin: 'bottom',
110
- invert: false,
111
- disableDirection: true,
112
- });
113
- });
114
-
115
- it('bottom-right → both axes', () => {
116
- const config = getHandleConfig('bottom-right');
117
- expect(config.horizontal).toEqual({
118
- origin: 'right',
119
- invert: false,
120
- disableDirection: true,
121
- });
122
- expect(config.vertical).toEqual({
123
- origin: 'bottom',
124
- invert: false,
125
- disableDirection: true,
126
- });
127
- });
128
- });
129
-
130
- describe('corner positions (logical, RTL-aware)', () => {
52
+ describe('corner positions', () => {
131
53
  it('top-start → horizontal disableDirection false', () => {
132
54
  const config = getHandleConfig('top-start');
133
55
  expect(config.horizontal?.disableDirection).toBe(false);
@@ -230,38 +152,38 @@ describe('computeResizeState', () => {
230
152
  });
231
153
 
232
154
  describe('resolveHandleConfig', () => {
233
- it('resolves edge position with direction in LTR', () => {
234
- const config = resolveHandleConfig('right', 'ltr');
235
- expect(config.horizontal).toEqual({ origin: 'right', direction: 1 });
155
+ it('resolves end edge with direction in LTR', () => {
156
+ const config = resolveHandleConfig('end', 'ltr');
157
+ expect(config.horizontal).toEqual({ origin: 'end', direction: 1 });
236
158
  expect(config.vertical).toBeUndefined();
237
159
  });
238
160
 
239
- it('resolves edge position with direction in LTR (inverted)', () => {
240
- const config = resolveHandleConfig('left', 'ltr');
241
- expect(config.horizontal).toEqual({ origin: 'left', direction: -1 });
161
+ it('resolves start edge with direction in LTR (inverted)', () => {
162
+ const config = resolveHandleConfig('start', 'ltr');
163
+ expect(config.horizontal).toEqual({ origin: 'start', direction: -1 });
242
164
  });
243
165
 
244
- it('resolves logical position — start flips in RTL', () => {
166
+ it('start flips direction in RTL', () => {
245
167
  const ltr = resolveHandleConfig('start', 'ltr');
246
168
  const rtl = resolveHandleConfig('start', 'rtl');
247
169
  expect(ltr.horizontal?.direction).toBe(-1);
248
170
  expect(rtl.horizontal?.direction).toBe(1);
249
171
  });
250
172
 
251
- it('resolves physical position left ignores RTL', () => {
252
- const ltr = resolveHandleConfig('left', 'ltr');
253
- const rtl = resolveHandleConfig('left', 'rtl');
254
- expect(ltr.horizontal?.direction).toBe(-1);
173
+ it('end flips direction in RTL', () => {
174
+ const ltr = resolveHandleConfig('end', 'ltr');
175
+ const rtl = resolveHandleConfig('end', 'rtl');
176
+ expect(ltr.horizontal?.direction).toBe(1);
255
177
  expect(rtl.horizontal?.direction).toBe(-1);
256
178
  });
257
179
 
258
180
  it('resolves corner with both axes', () => {
259
- const config = resolveHandleConfig('bottom-right', 'ltr');
260
- expect(config.horizontal).toEqual({ origin: 'right', direction: 1 });
181
+ const config = resolveHandleConfig('bottom-end', 'ltr');
182
+ expect(config.horizontal).toEqual({ origin: 'end', direction: 1 });
261
183
  expect(config.vertical).toEqual({ origin: 'bottom', direction: 1 });
262
184
  });
263
185
 
264
- it('resolves logical corner horizontal flips in RTL, vertical does not', () => {
186
+ it('corner horizontal flips in RTL, vertical does not', () => {
265
187
  const config = resolveHandleConfig('bottom-start', 'rtl');
266
188
  expect(config.horizontal?.direction).toBe(1);
267
189
  expect(config.vertical?.direction).toBe(1);
@@ -18,22 +18,22 @@ function start(
18
18
  }
19
19
 
20
20
  describe('ResizeHandleStrategy', () => {
21
- describe('horizontal edge (right)', () => {
21
+ describe('horizontal edge (end)', () => {
22
22
  it('computes positive resize when dragging right', () => {
23
- const strategy = new ResizeHandleStrategy('right');
23
+ const strategy = new ResizeHandleStrategy('end');
24
24
  start(strategy);
25
25
 
26
26
  const result = strategy.resize({ x: 150, y: 100 });
27
27
  expect(result.horizontal).toBeDefined();
28
28
  expect(result.horizontal?.newSize).toBe(350);
29
- expect(result.horizontal?.origin).toBe('right');
29
+ expect(result.horizontal?.origin).toBe('end');
30
30
  expect(result.horizontal?.totalDelta).toBe(50);
31
31
  expect(result.horizontal?.currentDelta).toBe(50);
32
32
  expect(result.vertical).toBeUndefined();
33
33
  });
34
34
 
35
35
  it('computes negative resize when dragging left', () => {
36
- const strategy = new ResizeHandleStrategy('right');
36
+ const strategy = new ResizeHandleStrategy('end');
37
37
  start(strategy);
38
38
 
39
39
  const result = strategy.resize({ x: 50, y: 100 });
@@ -42,18 +42,18 @@ describe('ResizeHandleStrategy', () => {
42
42
  });
43
43
  });
44
44
 
45
- describe('horizontal edge (left, inverted)', () => {
45
+ describe('horizontal edge (start, inverted)', () => {
46
46
  it('shrinks when dragging right', () => {
47
- const strategy = new ResizeHandleStrategy('left');
47
+ const strategy = new ResizeHandleStrategy('start');
48
48
  start(strategy);
49
49
 
50
50
  const result = strategy.resize({ x: 150, y: 100 });
51
51
  expect(result.horizontal?.newSize).toBe(250);
52
- expect(result.horizontal?.origin).toBe('left');
52
+ expect(result.horizontal?.origin).toBe('start');
53
53
  });
54
54
 
55
55
  it('grows when dragging left', () => {
56
- const strategy = new ResizeHandleStrategy('left');
56
+ const strategy = new ResizeHandleStrategy('start');
57
57
  start(strategy);
58
58
 
59
59
  const result = strategy.resize({ x: 50, y: 100 });
@@ -74,20 +74,20 @@ describe('ResizeHandleStrategy', () => {
74
74
  });
75
75
  });
76
76
 
77
- describe('corner (bottom-right)', () => {
77
+ describe('corner (bottom-end)', () => {
78
78
  it('computes both axes simultaneously', () => {
79
- const strategy = new ResizeHandleStrategy('bottom-right');
79
+ const strategy = new ResizeHandleStrategy('bottom-end');
80
80
  start(strategy);
81
81
 
82
82
  const result = strategy.resize({ x: 160, y: 140 });
83
83
  expect(result.horizontal?.newSize).toBe(360);
84
- expect(result.horizontal?.origin).toBe('right');
84
+ expect(result.horizontal?.origin).toBe('end');
85
85
  expect(result.vertical?.newSize).toBe(240);
86
86
  expect(result.vertical?.origin).toBe('bottom');
87
87
  });
88
88
  });
89
89
 
90
- describe('RTL — logical positions', () => {
90
+ describe('RTL', () => {
91
91
  it('start handle flips direction in RTL', () => {
92
92
  const strategy = new ResizeHandleStrategy('start');
93
93
  start(strategy, { languageDirection: 'rtl' });
@@ -104,8 +104,8 @@ describe('ResizeHandleStrategy', () => {
104
104
  expect(result.horizontal?.newSize).toBe(250);
105
105
  });
106
106
 
107
- it('left handle ignores RTL (physical)', () => {
108
- const strategy = new ResizeHandleStrategy('left');
107
+ it('end handle flips direction in RTL', () => {
108
+ const strategy = new ResizeHandleStrategy('end');
109
109
  start(strategy, { languageDirection: 'rtl' });
110
110
 
111
111
  const result = strategy.resize({ x: 150, y: 100 });
@@ -115,7 +115,7 @@ describe('ResizeHandleStrategy', () => {
115
115
 
116
116
  describe('commitResize — tracks applied dimensions', () => {
117
117
  it('currentDelta tracks committed size', () => {
118
- const strategy = new ResizeHandleStrategy('right');
118
+ const strategy = new ResizeHandleStrategy('end');
119
119
  start(strategy);
120
120
 
121
121
  strategy.resize({ x: 150, y: 100 });
@@ -127,7 +127,7 @@ describe('ResizeHandleStrategy', () => {
127
127
  });
128
128
 
129
129
  it('currentDelta is correct when previous resize was clamped', () => {
130
- const strategy = new ResizeHandleStrategy('right');
130
+ const strategy = new ResizeHandleStrategy('end');
131
131
  start(strategy);
132
132
 
133
133
  strategy.resize({ x: 150, y: 100 });
@@ -141,23 +141,23 @@ describe('ResizeHandleStrategy', () => {
141
141
 
142
142
  describe('endResize', () => {
143
143
  it('returns committed sizes and origins', () => {
144
- const strategy = new ResizeHandleStrategy('bottom-right');
144
+ const strategy = new ResizeHandleStrategy('bottom-end');
145
145
  start(strategy);
146
146
 
147
147
  strategy.resize({ x: 180, y: 160 });
148
148
  strategy.commitResize({ width: 380, height: 260 });
149
149
 
150
150
  const result = strategy.endResize();
151
- expect(result.horizontal).toEqual({ width: 380, origin: 'right' });
151
+ expect(result.horizontal).toEqual({ width: 380, origin: 'end' });
152
152
  expect(result.vertical).toEqual({ height: 260, origin: 'bottom' });
153
153
  });
154
154
 
155
155
  it('returns start sizes if no resize occurred', () => {
156
- const strategy = new ResizeHandleStrategy('right');
156
+ const strategy = new ResizeHandleStrategy('end');
157
157
  start(strategy);
158
158
 
159
159
  const result = strategy.endResize();
160
- expect(result.horizontal).toEqual({ width: 300, origin: 'right' });
160
+ expect(result.horizontal).toEqual({ width: 300, origin: 'end' });
161
161
  });
162
162
  });
163
163
  });
@@ -1,5 +1,5 @@
1
1
  import { createContext } from 'react';
2
- import { makeContextHook } from '../hooks/make_context_hook.js';
2
+ import { makeContextHook } from '../../hooks/make_context_hook.js';
3
3
  import type { ResizableContextValue } from './types.js';
4
4
 
5
5
  export const ResizableContext = createContext<ResizableContextValue | undefined>(
@@ -15,17 +15,11 @@ import type {
15
15
 
16
16
  const configs: Record<ResizeHandlePosition, HandleConfig> = {
17
17
  // Edges — single axis
18
- left: {
19
- horizontal: { origin: 'left', invert: true, disableDirection: true },
20
- },
21
- right: {
22
- horizontal: { origin: 'right', invert: false, disableDirection: true },
23
- },
24
18
  start: {
25
- horizontal: { origin: 'left', invert: true, disableDirection: false },
19
+ horizontal: { origin: 'start', invert: true, disableDirection: false },
26
20
  },
27
21
  end: {
28
- horizontal: { origin: 'right', invert: false, disableDirection: false },
22
+ horizontal: { origin: 'end', invert: false, disableDirection: false },
29
23
  },
30
24
  top: {
31
25
  vertical: { origin: 'top', invert: true, disableDirection: true },
@@ -34,39 +28,21 @@ const configs: Record<ResizeHandlePosition, HandleConfig> = {
34
28
  vertical: { origin: 'bottom', invert: false, disableDirection: true },
35
29
  },
36
30
 
37
- // Corners — dual axis (physical)
38
- 'top-left': {
39
- horizontal: { origin: 'left', invert: true, disableDirection: true },
40
- vertical: { origin: 'top', invert: true, disableDirection: true },
41
- },
42
- 'top-right': {
43
- horizontal: { origin: 'right', invert: false, disableDirection: true },
44
- vertical: { origin: 'top', invert: true, disableDirection: true },
45
- },
46
- 'bottom-left': {
47
- horizontal: { origin: 'left', invert: true, disableDirection: true },
48
- vertical: { origin: 'bottom', invert: false, disableDirection: true },
49
- },
50
- 'bottom-right': {
51
- horizontal: { origin: 'right', invert: false, disableDirection: true },
52
- vertical: { origin: 'bottom', invert: false, disableDirection: true },
53
- },
54
-
55
- // Corners — dual axis (logical, RTL-aware)
31
+ // Corners — dual axis
56
32
  'top-start': {
57
- horizontal: { origin: 'left', invert: true, disableDirection: false },
33
+ horizontal: { origin: 'start', invert: true, disableDirection: false },
58
34
  vertical: { origin: 'top', invert: true, disableDirection: true },
59
35
  },
60
36
  'top-end': {
61
- horizontal: { origin: 'right', invert: false, disableDirection: false },
37
+ horizontal: { origin: 'end', invert: false, disableDirection: false },
62
38
  vertical: { origin: 'top', invert: true, disableDirection: true },
63
39
  },
64
40
  'bottom-start': {
65
- horizontal: { origin: 'left', invert: true, disableDirection: false },
41
+ horizontal: { origin: 'start', invert: true, disableDirection: false },
66
42
  vertical: { origin: 'bottom', invert: false, disableDirection: true },
67
43
  },
68
44
  'bottom-end': {
69
- horizontal: { origin: 'right', invert: false, disableDirection: false },
45
+ horizontal: { origin: 'end', invert: false, disableDirection: false },
70
46
  vertical: { origin: 'bottom', invert: false, disableDirection: true },
71
47
  },
72
48
  };
@@ -1,6 +1,6 @@
1
1
  import React, { useMemo, useRef } from 'react';
2
2
  import { clsx } from 'clsx';
3
- import { useForkRef } from '../hooks/use_fork_ref.js';
3
+ import { useForkRef } from '../../hooks/use_fork_ref.js';
4
4
  import { ResizableContext } from './context.js';
5
5
  import type {
6
6
  OnWidthResize,
@@ -5,9 +5,7 @@
5
5
  pointer-events: auto;
6
6
  }
7
7
 
8
- /* Horizontal edges: left, right, start, end */
9
- :where(.resize-handle[data-position="left"]),
10
- :where(.resize-handle[data-position="right"]),
8
+ /* Horizontal edges: start, end */
11
9
  :where(.resize-handle[data-position="start"]),
12
10
  :where(.resize-handle[data-position="end"]) {
13
11
  top: 0;
@@ -16,14 +14,6 @@
16
14
  cursor: ew-resize;
17
15
  }
18
16
 
19
- :where(.resize-handle[data-position="left"]) {
20
- left: var(--resize-offset, 0px);
21
- }
22
-
23
- :where(.resize-handle[data-position="right"]) {
24
- right: var(--resize-offset, 0px);
25
- }
26
-
27
17
  :where(.resize-handle[data-position="start"]:dir(ltr)) {
28
18
  left: var(--resize-offset, 0px);
29
19
  }
@@ -58,10 +48,6 @@
58
48
  }
59
49
 
60
50
  /* Corners: small square at intersection */
61
- :where(.resize-handle[data-position="top-left"]),
62
- :where(.resize-handle[data-position="top-right"]),
63
- :where(.resize-handle[data-position="bottom-left"]),
64
- :where(.resize-handle[data-position="bottom-right"]),
65
51
  :where(.resize-handle[data-position="top-start"]),
66
52
  :where(.resize-handle[data-position="top-end"]),
67
53
  :where(.resize-handle[data-position="bottom-start"]),
@@ -70,32 +56,6 @@
70
56
  height: 16px;
71
57
  }
72
58
 
73
- /* Physical corners */
74
- :where(.resize-handle[data-position="top-left"]) {
75
- top: var(--resize-offset, 0px);
76
- left: var(--resize-offset, 0px);
77
- cursor: nwse-resize;
78
- }
79
-
80
- :where(.resize-handle[data-position="top-right"]) {
81
- top: var(--resize-offset, 0px);
82
- right: var(--resize-offset, 0px);
83
- cursor: nesw-resize;
84
- }
85
-
86
- :where(.resize-handle[data-position="bottom-left"]) {
87
- bottom: var(--resize-offset, 0px);
88
- left: var(--resize-offset, 0px);
89
- cursor: nesw-resize;
90
- }
91
-
92
- :where(.resize-handle[data-position="bottom-right"]) {
93
- bottom: var(--resize-offset, 0px);
94
- right: var(--resize-offset, 0px);
95
- cursor: nwse-resize;
96
- }
97
-
98
- /* Logical corners (RTL-aware) */
99
59
  :where(.resize-handle[data-position="top-start"]:dir(ltr)) {
100
60
  top: var(--resize-offset, 0px);
101
61
  left: var(--resize-offset, 0px);
@@ -3,7 +3,7 @@ import { clsx } from 'clsx';
3
3
  import { useResizable } from './context.js';
4
4
  import { getHandleConfig } from './handle_config.js';
5
5
  import { ResizeHandleStrategy } from './resize_strategy.js';
6
- import { detectResizeBounds } from '../../stacks/box/detect_resize_bounds.js';
6
+ import { detectResizeBounds } from '../../../stacks/box/detect_resize_bounds.js';
7
7
  import type { ResizeHandlePosition } from './types.js';
8
8
  import styles from './resize_handle.module.css';
9
9
 
@@ -9,7 +9,7 @@ import type {
9
9
  WidthResizeOrigin,
10
10
  HeightResizeOrigin,
11
11
  } from './types.js';
12
- import type { Dimensions, Position, Rectangle } from '../types/dimensions.js';
12
+ import type { Dimensions, Position, Rectangle } from '../../types/dimensions.js';
13
13
 
14
14
  export interface StartResizeParams {
15
15
  rectangle: Rectangle;
@@ -5,7 +5,7 @@ import type {
5
5
  OnHeightResizeEnd,
6
6
  WidthResizeOrigin,
7
7
  HeightResizeOrigin,
8
- } from '../../stacks/box/types.js';
8
+ } from '../../../stacks/box/types.js';
9
9
 
10
10
  export type {
11
11
  OnWidthResize,
@@ -20,15 +20,9 @@ export type ResizeHandlePosition =
20
20
  // Edges (single axis)
21
21
  | 'top'
22
22
  | 'bottom'
23
- | 'left'
24
- | 'right'
25
23
  | 'start'
26
24
  | 'end'
27
25
  // Corners (dual axis)
28
- | 'top-left'
29
- | 'top-right'
30
- | 'bottom-left'
31
- | 'bottom-right'
32
26
  | 'top-start'
33
27
  | 'top-end'
34
28
  | 'bottom-start'
@@ -0,0 +1,27 @@
1
+ import { createContext, useContext, useId } from 'react';
2
+
3
+ export interface LabelledByContextValue {
4
+ labelId: string;
5
+ }
6
+
7
+ /**
8
+ * Context for wiring aria-labelledby between a parent container and a child
9
+ * label element.
10
+ */
11
+ export const LabelledByContext = createContext<LabelledByContextValue | null>(null);
12
+
13
+ export const useLabelledBy = () => useContext(LabelledByContext);
14
+
15
+ /**
16
+ * Derives a stable label ID for aria-labelledby wiring.
17
+ *
18
+ * - If `ariaLabelledBy` is provided, it takes precedence (full override).
19
+ * - If `id` is provided, the label ID is deterministic (`${id}-legend`).
20
+ * - Otherwise, falls back to React's `useId()`.
21
+ */
22
+ export function useLabelledById(id?: string, ariaLabelledBy?: string) {
23
+ const reactId = useId();
24
+ const baseId = id ?? reactId;
25
+ const labelId = ariaLabelledBy || `${baseId}-legend`;
26
+ return { baseId, labelId };
27
+ }
@@ -1,12 +1,11 @@
1
- export * from './click_away_listener.js';
2
- export * from './focus_redirect.js';
3
- export * from './scroll_away_listener.js';
1
+ export * from './listeners/index.js';
4
2
 
5
- export * from './dnd/hooks/use_draggable.js';
3
+ export * from './decorators/draggable/use_draggable.js';
6
4
  export * from './hooks/make_context_hook.js';
7
5
  export * from './hooks/use_fork_ref.js';
8
6
  export * from './hooks/use_resize_observer.js';
9
7
  export * from './hooks/use_media_query.js';
8
+ export * from './hooks/labelled_by_context.js';
10
9
 
11
10
  export * from './default_value.js';
12
11
 
@@ -17,9 +16,10 @@ export * from './calendar/get_months_of_year.js';
17
16
  export * from './calendar/month.js';
18
17
 
19
18
  export * from './types/dimensions.js';
20
- export * from './types/variations.js';
19
+ export * from './types/sides.js';
20
+ export * from './system/index.js';
21
21
 
22
- export * from './dnd/draggable/draggable.js';
23
- export * from './dnd/handle.js';
22
+ export * from './decorators/draggable/draggable.js';
23
+ export * from './decorators/draggable/drag_handle.js';
24
24
 
25
- export * from './resize/index.js';
25
+ export * from './decorators/resizable/index.js';
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useCallback, useRef } from 'react';
2
- import { useForkRef } from './hooks/use_fork_ref.js';
2
+ import { useForkRef } from '../hooks/use_fork_ref.js';
3
3
  export interface ClickAwayListenerProps {
4
4
  children: React.ReactElement;
5
5
  onClickAway: (event: React.MouseEvent | React.TouchEvent) => void;
@@ -0,0 +1,3 @@
1
+ export * from './click_away_listener.js';
2
+ export * from './focus_redirect.js';
3
+ export * from './scroll_away_listener.js';
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
- import { useForkRef } from './hooks/use_fork_ref.js';
2
+ import { useForkRef } from '../hooks/use_fork_ref.js';
3
3
  export interface ScrollAwayListenerProps {
4
4
  children: React.ReactElement;
5
5
  isException?: (target: HTMLElement) => boolean;
@@ -0,0 +1 @@
1
+ export * from './variations.js';
@@ -0,0 +1,2 @@
1
+ export type HorizontalSide = 'start' | 'end';
2
+ export type VerticalSide = 'top' | 'bottom';
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- import { ButtonProps } from '../button/button.js';
3
- /**
4
- * @deprecated - use Button instead (utility=true)
5
- * @param props - ButtonProps
6
- * @returns SlimButton
7
- */
8
- export declare const SlimButton: React.ForwardRefExoticComponent<Omit<Omit<ButtonProps, "utility">, "ref"> & React.RefAttributes<HTMLButtonElement>>;
9
- //# sourceMappingURL=slim_button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slim_button.d.ts","sourceRoot":"","sources":["../../../../src/actions/button/slim_button/slim_button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAU,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAK1D;;;;GAIG;AACH,eAAO,MAAM,UAAU,qHAcrB,CAAC"}
@@ -1,18 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import i from "react";
3
- import { Button as n } from "../button/button.js";
4
- import { clsx as l } from "clsx";
5
- import '../../../slim_button.css';const u = "_slim-button_188fdc3", c = { "slim-button": u }, b = i.forwardRef(({ children: t, className: o, ...m }, r) => /* @__PURE__ */ s(
6
- n,
7
- {
8
- ref: r,
9
- className: l(c["slim-button"], "tcn-slim-button", o),
10
- utility: !0,
11
- ...m,
12
- children: t
13
- }
14
- ));
15
- export {
16
- b as SlimButton
17
- };
18
- //# sourceMappingURL=slim_button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slim_button.js","sources":["../../../../src/actions/button/slim_button/slim_button.tsx"],"sourcesContent":["import React from 'react';\nimport { Button, ButtonProps } from '../button/button.js';\nimport { clsx } from 'clsx';\n// Styles\nimport styles from './slim_button.module.css';\n\n/**\n * @deprecated - use Button instead (utility=true)\n * @param props - ButtonProps\n * @returns SlimButton\n */\nexport const SlimButton = React.forwardRef<\n HTMLButtonElement,\n Omit<ButtonProps, 'utility'>\n>(({ children, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n className={clsx(styles['slim-button'], 'tcn-slim-button', className)}\n utility={true}\n {...props}\n >\n {children}\n </Button>\n );\n});\n"],"names":["SlimButton","React","children","className","props","ref","jsx","Button","clsx","styles"],"mappings":";;;;4DAWaA,IAAaC,EAAM,WAG9B,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAElC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAKC,EAAO,aAAa,GAAG,mBAAmBN,CAAS;AAAA,IACnE,SAAS;AAAA,IACR,GAAGC;AAAA,IAEH,UAAAF;AAAA,EAAA;AAAA,CAGN;"}
@@ -1,5 +0,0 @@
1
- import './draggable.css';const s = "_draggable_db40376", a = { draggable: s };
2
- export {
3
- a as s
4
- };
5
- //# sourceMappingURL=draggable.module-BgelQsuJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draggable.module-BgelQsuJ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/frame.css DELETED
@@ -1 +0,0 @@
1
- @layer tcn-system{:where(._frame-dialog_2a77c1d){overflow:hidden}}
@@ -1 +0,0 @@
1
- @layer tcn-system{:where(._left-resize-handle_215501a){position:fixed;bottom:0;left:var(--resize-offset, -8px);height:100%;width:16px;z-index:1;cursor:ew-resize;pointer-events:auto}}
@@ -1,5 +0,0 @@
1
- import './resizable.css';const e = "_resizable-target_a6e624b", s = { "resizable-target": e };
2
- export {
3
- s
4
- };
5
- //# sourceMappingURL=resizable.module-I6iyBAvM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable.module-I6iyBAvM.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- @layer tcn-system{:where(._right-resize-handle_7f232b9){position:fixed;bottom:0;right:var(--resize-offset, -8px);height:100%;width:16px;z-index:1;cursor:ew-resize;pointer-events:auto}}
@@ -1 +0,0 @@
1
- @layer tcn-system{:where(._slim-button_188fdc3){min-height:auto}:where(._slim-button_188fdc3[data-is-disabled=true]){pointer-events:none}}