@mindlogic-ai/logician-ui 5.0.0-alpha.3 → 5.0.0-alpha.30

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 (610) hide show
  1. package/MIGRATION-5.0.md +40 -1
  2. package/README.md +1 -0
  3. package/USAGE.md +20 -0
  4. package/dist/components/Avatar/Avatar.d.ts +68 -11
  5. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  6. package/dist/components/Avatar/Avatar.js +41 -5
  7. package/dist/components/Avatar/Avatar.js.map +1 -1
  8. package/dist/components/Avatar/Avatar.mjs +40 -5
  9. package/dist/components/Avatar/Avatar.mjs.map +1 -1
  10. package/dist/components/Avatar/index.d.ts +2 -2
  11. package/dist/components/Avatar/index.d.ts.map +1 -1
  12. package/dist/components/Banner/Banner.types.d.ts +24 -1
  13. package/dist/components/Banner/Banner.types.d.ts.map +1 -1
  14. package/dist/components/BottomSheet/BottomSheet.styles.d.ts +2 -2
  15. package/dist/components/Button/Button.d.ts.map +1 -1
  16. package/dist/components/Button/Button.js +31 -3
  17. package/dist/components/Button/Button.js.map +1 -1
  18. package/dist/components/Button/Button.mjs +31 -3
  19. package/dist/components/Button/Button.mjs.map +1 -1
  20. package/dist/components/Button/Button.types.d.ts +38 -1
  21. package/dist/components/Button/Button.types.d.ts.map +1 -1
  22. package/dist/components/Card/Card.types.d.ts +12 -0
  23. package/dist/components/Card/Card.types.d.ts.map +1 -1
  24. package/dist/components/Code/shikiAdapter.d.ts +3 -1
  25. package/dist/components/Code/shikiAdapter.d.ts.map +1 -1
  26. package/dist/components/Code/shikiAdapter.js +29 -8
  27. package/dist/components/Code/shikiAdapter.js.map +1 -1
  28. package/dist/components/Code/shikiAdapter.mjs +29 -8
  29. package/dist/components/Code/shikiAdapter.mjs.map +1 -1
  30. package/dist/components/CodeTabs/CodeTabs.styles.d.ts +6 -5
  31. package/dist/components/CodeTabs/CodeTabs.styles.d.ts.map +1 -1
  32. package/dist/components/CodeTabs/CodeTabs.styles.js +6 -5
  33. package/dist/components/CodeTabs/CodeTabs.styles.js.map +1 -1
  34. package/dist/components/CodeTabs/CodeTabs.styles.mjs +6 -5
  35. package/dist/components/CodeTabs/CodeTabs.styles.mjs.map +1 -1
  36. package/dist/components/ColorMode/ColorModeToggle.d.ts +7 -2
  37. package/dist/components/ColorMode/ColorModeToggle.d.ts.map +1 -1
  38. package/dist/components/ColorMode/ColorModeToggle.js +8 -3
  39. package/dist/components/ColorMode/ColorModeToggle.js.map +1 -1
  40. package/dist/components/ColorMode/ColorModeToggle.mjs +8 -3
  41. package/dist/components/ColorMode/ColorModeToggle.mjs.map +1 -1
  42. package/dist/components/Confetti/Confetti.types.d.ts +5 -1
  43. package/dist/components/Confetti/Confetti.types.d.ts.map +1 -1
  44. package/dist/components/Confetti/confettiColors.d.ts +5 -5
  45. package/dist/components/Confetti/confettiColors.js +5 -5
  46. package/dist/components/Confetti/confettiColors.mjs +5 -5
  47. package/dist/components/DatePicker/DatePicker.types.d.ts +12 -0
  48. package/dist/components/DatePicker/DatePicker.types.d.ts.map +1 -0
  49. package/dist/components/DatePicker/RangeDatePicker.d.ts +2 -1
  50. package/dist/components/DatePicker/RangeDatePicker.d.ts.map +1 -1
  51. package/dist/components/DatePicker/RangeDatePicker.js +4 -2
  52. package/dist/components/DatePicker/RangeDatePicker.js.map +1 -1
  53. package/dist/components/DatePicker/RangeDatePicker.mjs +4 -2
  54. package/dist/components/DatePicker/RangeDatePicker.mjs.map +1 -1
  55. package/dist/components/DatePicker/SingleDatePicker.d.ts +2 -1
  56. package/dist/components/DatePicker/SingleDatePicker.d.ts.map +1 -1
  57. package/dist/components/DatePicker/SingleDatePicker.js +4 -2
  58. package/dist/components/DatePicker/SingleDatePicker.js.map +1 -1
  59. package/dist/components/DatePicker/SingleDatePicker.mjs +4 -2
  60. package/dist/components/DatePicker/SingleDatePicker.mjs.map +1 -1
  61. package/dist/components/DatePicker/index.d.ts +1 -0
  62. package/dist/components/DatePicker/index.d.ts.map +1 -1
  63. package/dist/components/ErrorFallback/ErrorFallback.types.d.ts +6 -0
  64. package/dist/components/ErrorFallback/ErrorFallback.types.d.ts.map +1 -1
  65. package/dist/components/ExpandableText/ExpandableText.d.ts.map +1 -1
  66. package/dist/components/ExpandableText/ExpandableText.js +1 -1
  67. package/dist/components/ExpandableText/ExpandableText.js.map +1 -1
  68. package/dist/components/ExpandableText/ExpandableText.mjs +1 -1
  69. package/dist/components/ExpandableText/ExpandableText.mjs.map +1 -1
  70. package/dist/components/Form/FormModalFooter/FormModalFooter.d.ts +1 -1
  71. package/dist/components/Form/FormModalFooter/FormModalFooter.d.ts.map +1 -1
  72. package/dist/components/Form/FormModalFooter/FormModalFooter.js +2 -2
  73. package/dist/components/Form/FormModalFooter/FormModalFooter.js.map +1 -1
  74. package/dist/components/Form/FormModalFooter/FormModalFooter.mjs +2 -2
  75. package/dist/components/Form/FormModalFooter/FormModalFooter.mjs.map +1 -1
  76. package/dist/components/Form/FormModalFooter/FormModalFooter.types.d.ts +11 -1
  77. package/dist/components/Form/FormModalFooter/FormModalFooter.types.d.ts.map +1 -1
  78. package/dist/components/Form/FormSection/CollapsibleFormSection.js +1 -0
  79. package/dist/components/Form/FormSection/CollapsibleFormSection.js.map +1 -1
  80. package/dist/components/Form/FormSection/CollapsibleFormSection.mjs +1 -0
  81. package/dist/components/Form/FormSection/CollapsibleFormSection.mjs.map +1 -1
  82. package/dist/components/Input/Input.d.ts.map +1 -1
  83. package/dist/components/Input/Input.js +4 -0
  84. package/dist/components/Input/Input.js.map +1 -1
  85. package/dist/components/Input/Input.mjs +4 -0
  86. package/dist/components/Input/Input.mjs.map +1 -1
  87. package/dist/components/LineGraph/LineGraph.d.ts.map +1 -1
  88. package/dist/components/LineGraph/LineGraph.js +4 -5
  89. package/dist/components/LineGraph/LineGraph.js.map +1 -1
  90. package/dist/components/LineGraph/LineGraph.mjs +5 -6
  91. package/dist/components/LineGraph/LineGraph.mjs.map +1 -1
  92. package/dist/components/LineGraph/LineGraph.types.d.ts +12 -2
  93. package/dist/components/LineGraph/LineGraph.types.d.ts.map +1 -1
  94. package/dist/components/LineGraph/seriesColors.d.ts +12 -8
  95. package/dist/components/LineGraph/seriesColors.d.ts.map +1 -1
  96. package/dist/components/LineGraph/seriesColors.js +8 -7
  97. package/dist/components/LineGraph/seriesColors.js.map +1 -1
  98. package/dist/components/LineGraph/seriesColors.mjs +8 -7
  99. package/dist/components/LineGraph/seriesColors.mjs.map +1 -1
  100. package/dist/components/Masonry/Masonry.types.d.ts +8 -3
  101. package/dist/components/Masonry/Masonry.types.d.ts.map +1 -1
  102. package/dist/components/Menu/MenuItem.types.d.ts +8 -0
  103. package/dist/components/Menu/MenuItem.types.d.ts.map +1 -1
  104. package/dist/components/Modal/ModalCloseButton.d.ts +1 -1
  105. package/dist/components/Modal/ModalCloseButton.js +1 -1
  106. package/dist/components/Modal/ModalCloseButton.mjs +1 -1
  107. package/dist/components/MonthPicker/MonthPicker.d.ts.map +1 -1
  108. package/dist/components/MonthPicker/MonthPicker.js +3 -2
  109. package/dist/components/MonthPicker/MonthPicker.js.map +1 -1
  110. package/dist/components/MonthPicker/MonthPicker.mjs +3 -2
  111. package/dist/components/MonthPicker/MonthPicker.mjs.map +1 -1
  112. package/dist/components/MonthPicker/MonthPicker.types.d.ts +7 -1
  113. package/dist/components/MonthPicker/MonthPicker.types.d.ts.map +1 -1
  114. package/dist/components/NavList/NavList.d.ts +35 -0
  115. package/dist/components/NavList/NavList.d.ts.map +1 -0
  116. package/dist/components/NavList/NavList.js +113 -0
  117. package/dist/components/NavList/NavList.js.map +1 -0
  118. package/dist/components/NavList/NavList.mjs +111 -0
  119. package/dist/components/NavList/NavList.mjs.map +1 -0
  120. package/dist/components/NavList/NavList.styles.d.ts +90 -0
  121. package/dist/components/NavList/NavList.styles.d.ts.map +1 -0
  122. package/dist/components/NavList/NavList.styles.js +104 -0
  123. package/dist/components/NavList/NavList.styles.js.map +1 -0
  124. package/dist/components/NavList/NavList.styles.mjs +97 -0
  125. package/dist/components/NavList/NavList.styles.mjs.map +1 -0
  126. package/dist/components/NavList/NavList.translations.json.js +19 -0
  127. package/dist/components/NavList/NavList.translations.json.js.map +1 -0
  128. package/dist/components/NavList/NavList.translations.json.mjs +14 -0
  129. package/dist/components/NavList/NavList.translations.json.mjs.map +1 -0
  130. package/dist/components/NavList/NavList.types.d.ts +140 -0
  131. package/dist/components/NavList/NavList.types.d.ts.map +1 -0
  132. package/dist/components/NavList/NavListContext.d.ts +30 -0
  133. package/dist/components/NavList/NavListContext.d.ts.map +1 -0
  134. package/dist/components/NavList/NavListContext.js +16 -0
  135. package/dist/components/NavList/NavListContext.js.map +1 -0
  136. package/dist/components/NavList/NavListContext.mjs +13 -0
  137. package/dist/components/NavList/NavListContext.mjs.map +1 -0
  138. package/dist/components/NavList/NavListGroup.d.ts +31 -0
  139. package/dist/components/NavList/NavListGroup.d.ts.map +1 -0
  140. package/dist/components/NavList/NavListGroup.js +115 -0
  141. package/dist/components/NavList/NavListGroup.js.map +1 -0
  142. package/dist/components/NavList/NavListGroup.mjs +113 -0
  143. package/dist/components/NavList/NavListGroup.mjs.map +1 -0
  144. package/dist/components/NavList/NavListItem.d.ts +16 -0
  145. package/dist/components/NavList/NavListItem.d.ts.map +1 -0
  146. package/dist/components/NavList/NavListItem.js +284 -0
  147. package/dist/components/NavList/NavListItem.js.map +1 -0
  148. package/dist/components/NavList/NavListItem.mjs +282 -0
  149. package/dist/components/NavList/NavListItem.mjs.map +1 -0
  150. package/dist/components/NavList/NavListSkeleton.d.ts +17 -0
  151. package/dist/components/NavList/NavListSkeleton.d.ts.map +1 -0
  152. package/dist/components/NavList/NavListSkeleton.js +33 -0
  153. package/dist/components/NavList/NavListSkeleton.js.map +1 -0
  154. package/dist/components/NavList/NavListSkeleton.mjs +31 -0
  155. package/dist/components/NavList/NavListSkeleton.mjs.map +1 -0
  156. package/dist/components/NavList/index.d.ts +7 -0
  157. package/dist/components/NavList/index.d.ts.map +1 -0
  158. package/dist/components/Pagination/Pagination.d.ts +11 -10
  159. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  160. package/dist/components/Pagination/Pagination.js +11 -10
  161. package/dist/components/Pagination/Pagination.js.map +1 -1
  162. package/dist/components/Pagination/Pagination.mjs +11 -10
  163. package/dist/components/Pagination/Pagination.mjs.map +1 -1
  164. package/dist/components/ProgressBar/ProgressBar.types.d.ts +9 -0
  165. package/dist/components/ProgressBar/ProgressBar.types.d.ts.map +1 -1
  166. package/dist/components/RadialProgress/RadialProgress.types.d.ts +21 -1
  167. package/dist/components/RadialProgress/RadialProgress.types.d.ts.map +1 -1
  168. package/dist/components/SeeMoreButton/SeeMoreButton.types.d.ts +8 -0
  169. package/dist/components/SeeMoreButton/SeeMoreButton.types.d.ts.map +1 -1
  170. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  171. package/dist/components/SegmentedControl/SegmentedControl.js +34 -33
  172. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  173. package/dist/components/SegmentedControl/SegmentedControl.mjs +35 -34
  174. package/dist/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  175. package/dist/components/SegmentedControl/SegmentedControl.styles.d.ts +24 -0
  176. package/dist/components/SegmentedControl/SegmentedControl.styles.d.ts.map +1 -1
  177. package/dist/components/SegmentedControl/SegmentedControl.styles.js +30 -0
  178. package/dist/components/SegmentedControl/SegmentedControl.styles.js.map +1 -1
  179. package/dist/components/SegmentedControl/SegmentedControl.styles.mjs +29 -1
  180. package/dist/components/SegmentedControl/SegmentedControl.styles.mjs.map +1 -1
  181. package/dist/components/SegmentedProgressBar/SegmentedProgressBar.types.d.ts +2 -0
  182. package/dist/components/SegmentedProgressBar/SegmentedProgressBar.types.d.ts.map +1 -1
  183. package/dist/components/Select/Combobox.d.ts +1 -1
  184. package/dist/components/Select/Combobox.d.ts.map +1 -1
  185. package/dist/components/Select/Combobox.js +9 -2
  186. package/dist/components/Select/Combobox.js.map +1 -1
  187. package/dist/components/Select/Combobox.mjs +10 -3
  188. package/dist/components/Select/Combobox.mjs.map +1 -1
  189. package/dist/components/Select/Select.d.ts +1 -1
  190. package/dist/components/Select/Select.d.ts.map +1 -1
  191. package/dist/components/Select/Select.js +14 -2
  192. package/dist/components/Select/Select.js.map +1 -1
  193. package/dist/components/Select/Select.mjs +15 -3
  194. package/dist/components/Select/Select.mjs.map +1 -1
  195. package/dist/components/Select/Select.styles.d.ts +97 -1
  196. package/dist/components/Select/Select.styles.d.ts.map +1 -1
  197. package/dist/components/Select/Select.styles.js +83 -0
  198. package/dist/components/Select/Select.styles.js.map +1 -1
  199. package/dist/components/Select/Select.styles.mjs +82 -1
  200. package/dist/components/Select/Select.styles.mjs.map +1 -1
  201. package/dist/components/Switch/SwitchControl.d.ts.map +1 -1
  202. package/dist/components/Switch/SwitchControl.js +26 -11
  203. package/dist/components/Switch/SwitchControl.js.map +1 -1
  204. package/dist/components/Switch/SwitchControl.mjs +27 -12
  205. package/dist/components/Switch/SwitchControl.mjs.map +1 -1
  206. package/dist/components/Tabs/Tab/Tab.styles.d.ts +1 -1
  207. package/dist/components/Tabs/Tab/Tab.styles.js +1 -1
  208. package/dist/components/Tabs/Tab/Tab.styles.mjs +1 -1
  209. package/dist/components/Tag/Tag.d.ts.map +1 -1
  210. package/dist/components/Tag/Tag.js +14 -2
  211. package/dist/components/Tag/Tag.js.map +1 -1
  212. package/dist/components/Tag/Tag.mjs +15 -3
  213. package/dist/components/Tag/Tag.mjs.map +1 -1
  214. package/dist/components/Tag/Tag.styles.d.ts +20 -2
  215. package/dist/components/Tag/Tag.styles.d.ts.map +1 -1
  216. package/dist/components/Tag/Tag.styles.js +81 -0
  217. package/dist/components/Tag/Tag.styles.js.map +1 -1
  218. package/dist/components/Tag/Tag.styles.mjs +81 -1
  219. package/dist/components/Tag/Tag.styles.mjs.map +1 -1
  220. package/dist/components/Tag/Tag.types.d.ts +15 -2
  221. package/dist/components/Tag/Tag.types.d.ts.map +1 -1
  222. package/dist/components/Tag/index.d.ts +2 -2
  223. package/dist/components/Tag/index.d.ts.map +1 -1
  224. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  225. package/dist/components/Textarea/Textarea.js +4 -0
  226. package/dist/components/Textarea/Textarea.js.map +1 -1
  227. package/dist/components/Textarea/Textarea.mjs +4 -0
  228. package/dist/components/Textarea/Textarea.mjs.map +1 -1
  229. package/dist/components/Toast/Toast.d.ts.map +1 -1
  230. package/dist/components/Toast/Toast.js +5 -1
  231. package/dist/components/Toast/Toast.js.map +1 -1
  232. package/dist/components/Toast/Toast.mjs +5 -1
  233. package/dist/components/Toast/Toast.mjs.map +1 -1
  234. package/dist/components/Toast/Toast.styles.d.ts +13 -2
  235. package/dist/components/Toast/Toast.styles.d.ts.map +1 -1
  236. package/dist/components/Toast/Toast.styles.js +19 -7
  237. package/dist/components/Toast/Toast.styles.js.map +1 -1
  238. package/dist/components/Toast/Toast.styles.mjs +19 -7
  239. package/dist/components/Toast/Toast.styles.mjs.map +1 -1
  240. package/dist/components/Typography/Caption.d.ts.map +1 -1
  241. package/dist/components/Typography/Caption.js +1 -1
  242. package/dist/components/Typography/Caption.js.map +1 -1
  243. package/dist/components/Typography/Caption.mjs +1 -1
  244. package/dist/components/Typography/Caption.mjs.map +1 -1
  245. package/dist/components/Typography/H1.d.ts.map +1 -1
  246. package/dist/components/Typography/H1.js +1 -1
  247. package/dist/components/Typography/H1.js.map +1 -1
  248. package/dist/components/Typography/H1.mjs +1 -1
  249. package/dist/components/Typography/H1.mjs.map +1 -1
  250. package/dist/components/Typography/H2.d.ts.map +1 -1
  251. package/dist/components/Typography/H2.js +1 -1
  252. package/dist/components/Typography/H2.js.map +1 -1
  253. package/dist/components/Typography/H2.mjs +1 -1
  254. package/dist/components/Typography/H2.mjs.map +1 -1
  255. package/dist/components/Typography/H3.d.ts.map +1 -1
  256. package/dist/components/Typography/H3.js +1 -1
  257. package/dist/components/Typography/H3.js.map +1 -1
  258. package/dist/components/Typography/H3.mjs +1 -1
  259. package/dist/components/Typography/H3.mjs.map +1 -1
  260. package/dist/components/Typography/H4.d.ts.map +1 -1
  261. package/dist/components/Typography/H4.js +1 -1
  262. package/dist/components/Typography/H4.js.map +1 -1
  263. package/dist/components/Typography/H4.mjs +1 -1
  264. package/dist/components/Typography/H4.mjs.map +1 -1
  265. package/dist/components/Typography/H5.d.ts.map +1 -1
  266. package/dist/components/Typography/H5.js +1 -1
  267. package/dist/components/Typography/H5.js.map +1 -1
  268. package/dist/components/Typography/H5.mjs +1 -1
  269. package/dist/components/Typography/H5.mjs.map +1 -1
  270. package/dist/components/Typography/Link.d.ts.map +1 -1
  271. package/dist/components/Typography/Link.js +1 -1
  272. package/dist/components/Typography/Link.js.map +1 -1
  273. package/dist/components/Typography/Link.mjs +1 -1
  274. package/dist/components/Typography/Link.mjs.map +1 -1
  275. package/dist/components/Typography/Overline.d.ts.map +1 -1
  276. package/dist/components/Typography/Overline.js +1 -1
  277. package/dist/components/Typography/Overline.js.map +1 -1
  278. package/dist/components/Typography/Overline.mjs +1 -1
  279. package/dist/components/Typography/Overline.mjs.map +1 -1
  280. package/dist/components/Typography/Subtext.d.ts.map +1 -1
  281. package/dist/components/Typography/Subtext.js +1 -1
  282. package/dist/components/Typography/Subtext.js.map +1 -1
  283. package/dist/components/Typography/Subtext.mjs +1 -1
  284. package/dist/components/Typography/Subtext.mjs.map +1 -1
  285. package/dist/components/Typography/Subtitle.d.ts.map +1 -1
  286. package/dist/components/Typography/Subtitle.js +1 -1
  287. package/dist/components/Typography/Subtitle.js.map +1 -1
  288. package/dist/components/Typography/Subtitle.mjs +1 -1
  289. package/dist/components/Typography/Subtitle.mjs.map +1 -1
  290. package/dist/components/Typography/Text.d.ts.map +1 -1
  291. package/dist/components/Typography/Text.js +1 -1
  292. package/dist/components/Typography/Text.js.map +1 -1
  293. package/dist/components/Typography/Text.mjs +1 -1
  294. package/dist/components/Typography/Text.mjs.map +1 -1
  295. package/dist/hooks/useLanguage.d.ts +5 -0
  296. package/dist/hooks/useLanguage.d.ts.map +1 -1
  297. package/dist/hooks/useLanguage.js +7 -3
  298. package/dist/hooks/useLanguage.js.map +1 -1
  299. package/dist/hooks/useLanguage.mjs +7 -4
  300. package/dist/hooks/useLanguage.mjs.map +1 -1
  301. package/dist/hooks/useTranslate.d.ts.map +1 -1
  302. package/dist/hooks/useTranslate.js +8 -5
  303. package/dist/hooks/useTranslate.js.map +1 -1
  304. package/dist/hooks/useTranslate.mjs +8 -5
  305. package/dist/hooks/useTranslate.mjs.map +1 -1
  306. package/dist/index.d.ts +3 -1
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js +22 -0
  309. package/dist/index.js.map +1 -1
  310. package/dist/index.mjs +9 -3
  311. package/dist/index.mjs.map +1 -1
  312. package/dist/theme/colors.d.ts +2 -2
  313. package/dist/theme/colors.d.ts.map +1 -1
  314. package/dist/theme/colors.js +63 -19
  315. package/dist/theme/colors.js.map +1 -1
  316. package/dist/theme/colors.mjs +64 -20
  317. package/dist/theme/colors.mjs.map +1 -1
  318. package/dist/theme/controlSizes.d.ts +91 -0
  319. package/dist/theme/controlSizes.d.ts.map +1 -0
  320. package/dist/theme/controlSizes.js +143 -0
  321. package/dist/theme/controlSizes.js.map +1 -0
  322. package/dist/theme/controlSizes.mjs +135 -0
  323. package/dist/theme/controlSizes.mjs.map +1 -0
  324. package/dist/theme/global.d.ts.map +1 -1
  325. package/dist/theme/global.js +19 -1
  326. package/dist/theme/global.js.map +1 -1
  327. package/dist/theme/global.mjs +19 -1
  328. package/dist/theme/global.mjs.map +1 -1
  329. package/dist/theme/index.d.ts.map +1 -1
  330. package/dist/theme/index.js +14 -43
  331. package/dist/theme/index.js.map +1 -1
  332. package/dist/theme/index.mjs +14 -43
  333. package/dist/theme/index.mjs.map +1 -1
  334. package/dist/theme/palette.generated.d.ts +295 -162
  335. package/dist/theme/palette.generated.d.ts.map +1 -1
  336. package/dist/theme/palette.generated.js +296 -162
  337. package/dist/theme/palette.generated.js.map +1 -1
  338. package/dist/theme/palette.generated.mjs +296 -163
  339. package/dist/theme/palette.generated.mjs.map +1 -1
  340. package/dist/theme/paletteSwatches.d.ts +20 -0
  341. package/dist/theme/paletteSwatches.d.ts.map +1 -1
  342. package/dist/theme/recipes/avatar.d.ts +30 -0
  343. package/dist/theme/recipes/avatar.d.ts.map +1 -0
  344. package/dist/theme/recipes/avatar.js +96 -0
  345. package/dist/theme/recipes/avatar.js.map +1 -0
  346. package/dist/theme/recipes/avatar.mjs +94 -0
  347. package/dist/theme/recipes/avatar.mjs.map +1 -0
  348. package/dist/theme/recipes/controls.d.ts +94 -0
  349. package/dist/theme/recipes/controls.d.ts.map +1 -0
  350. package/dist/theme/recipes/controls.js +154 -0
  351. package/dist/theme/recipes/controls.js.map +1 -0
  352. package/dist/theme/recipes/controls.mjs +144 -0
  353. package/dist/theme/recipes/controls.mjs.map +1 -0
  354. package/dist/translations/Defaults.translations.json.js +19 -1
  355. package/dist/translations/Defaults.translations.json.js.map +1 -1
  356. package/dist/translations/Defaults.translations.json.mjs +18 -2
  357. package/dist/translations/Defaults.translations.json.mjs.map +1 -1
  358. package/dist/utils/disabledControl.d.ts +8 -1
  359. package/dist/utils/disabledControl.d.ts.map +1 -1
  360. package/dist/utils/disabledControl.js +8 -1
  361. package/dist/utils/disabledControl.js.map +1 -1
  362. package/dist/utils/disabledControl.mjs +8 -1
  363. package/dist/utils/disabledControl.mjs.map +1 -1
  364. package/dist/utils/focusRing.d.ts +22 -0
  365. package/dist/utils/focusRing.d.ts.map +1 -1
  366. package/dist/utils/focusRing.js +22 -0
  367. package/dist/utils/focusRing.js.map +1 -1
  368. package/dist/utils/focusRing.mjs +21 -1
  369. package/dist/utils/focusRing.mjs.map +1 -1
  370. package/package.json +2 -1
  371. package/src/components/Accordion/Accordion.stories.tsx +85 -0
  372. package/src/components/Accordion/Accordion.usage.mdx +200 -0
  373. package/src/components/Appear/Appear.usage.mdx +107 -0
  374. package/src/components/Avatar/Avatar.recipe.test.tsx +176 -0
  375. package/src/components/Avatar/Avatar.stories.tsx +199 -24
  376. package/src/components/Avatar/Avatar.tsx +118 -21
  377. package/src/components/Avatar/Avatar.usage.mdx +185 -0
  378. package/src/components/Avatar/index.tsx +8 -1
  379. package/src/components/Banner/Banner.stories.tsx +152 -2
  380. package/src/components/Banner/Banner.types.ts +30 -1
  381. package/src/components/Banner/Banner.usage.mdx +233 -0
  382. package/src/components/BottomSheet/BottomSheet.stories.tsx +168 -1
  383. package/src/components/BottomSheet/BottomSheet.test.tsx +2 -1
  384. package/src/components/BottomSheet/BottomSheet.usage.mdx +216 -0
  385. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +59 -0
  386. package/src/components/Breadcrumb/Breadcrumb.usage.mdx +181 -0
  387. package/src/components/Button/Button.focusableWhenDisabled.test.tsx +218 -0
  388. package/src/components/Button/Button.stories.tsx +332 -3
  389. package/src/components/Button/Button.tsx +46 -3
  390. package/src/components/Button/Button.types.ts +38 -1
  391. package/src/components/Button/Button.usage.mdx +358 -0
  392. package/src/components/Button/Button.variants.test.tsx +13 -1
  393. package/src/components/Card/Card.stories.tsx +106 -0
  394. package/src/components/Card/Card.types.ts +12 -0
  395. package/src/components/Card/Card.usage.mdx +216 -0
  396. package/src/components/Checkbox/Checkbox.stories.tsx +140 -13
  397. package/src/components/Checkbox/Checkbox.usage.mdx +214 -0
  398. package/src/components/Chip/Chip.usage.mdx +78 -0
  399. package/src/components/Code/Code.stories.tsx +60 -0
  400. package/src/components/Code/Code.test.tsx +116 -0
  401. package/src/components/Code/Code.usage.mdx +187 -0
  402. package/src/components/Code/shikiAdapter.ts +38 -9
  403. package/src/components/CodeTabs/CodeTabs.stories.tsx +53 -0
  404. package/src/components/CodeTabs/CodeTabs.styles.ts +6 -5
  405. package/src/components/CodeTabs/CodeTabs.usage.mdx +176 -0
  406. package/src/components/Collapsible/Collapsible.stories.tsx +58 -0
  407. package/src/components/Collapsible/Collapsible.usage.mdx +173 -0
  408. package/src/components/ColorMode/ColorMode.stories.tsx +50 -0
  409. package/src/components/ColorMode/ColorMode.usage.mdx +135 -0
  410. package/src/components/ColorMode/ColorModeToggle.tsx +10 -3
  411. package/src/components/Confetti/Confetti.types.ts +5 -1
  412. package/src/components/Confetti/Confetti.usage.mdx +111 -0
  413. package/src/components/Confetti/confettiColors.ts +5 -5
  414. package/src/components/Container/Container.stories.tsx +32 -0
  415. package/src/components/Container/Container.usage.mdx +130 -0
  416. package/src/components/CopyableCode/CopyableCode.stories.tsx +62 -0
  417. package/src/components/CopyableCode/CopyableCode.usage.mdx +168 -0
  418. package/src/components/CountBadge/CountBadge.stories.tsx +69 -0
  419. package/src/components/CountBadge/CountBadge.usage.mdx +215 -0
  420. package/src/components/CountUp/CountUp.usage.mdx +107 -0
  421. package/src/components/DatePicker/DatePicker.types.ts +12 -0
  422. package/src/components/DatePicker/DatePicker.usage.mdx +177 -0
  423. package/src/components/DatePicker/RangeDatePicker.stories.tsx +87 -3
  424. package/src/components/DatePicker/RangeDatePicker.tsx +7 -1
  425. package/src/components/DatePicker/SingleDatePicker.tsx +7 -1
  426. package/src/components/DatePicker/index.ts +1 -0
  427. package/src/components/ErrorFallback/ErrorFallback.types.ts +6 -0
  428. package/src/components/ErrorFallback/ErrorFallback.usage.mdx +127 -0
  429. package/src/components/ExpandableText/ExpandableText.stories.tsx +55 -0
  430. package/src/components/ExpandableText/ExpandableText.tsx +0 -1
  431. package/src/components/ExpandableText/ExpandableText.usage.mdx +178 -0
  432. package/src/components/FileInput/FileInput.stories.tsx +38 -1
  433. package/src/components/FileInput/FileInput.usage.mdx +178 -0
  434. package/src/components/FileItem/FileItem.stories.tsx +71 -0
  435. package/src/components/FileItem/FileItem.usage.mdx +180 -0
  436. package/src/components/FileList/FileList.stories.tsx +25 -0
  437. package/src/components/FileList/FileList.usage.mdx +165 -0
  438. package/src/components/FlyTo/FlyTo.usage.mdx +99 -0
  439. package/src/components/Form/Form.stories.tsx +149 -0
  440. package/src/components/Form/Form.usage.mdx +203 -0
  441. package/src/components/Form/FormModalFooter/FormModalFooter.stories.tsx +1 -1
  442. package/src/components/Form/FormModalFooter/FormModalFooter.test.tsx +19 -1
  443. package/src/components/Form/FormModalFooter/FormModalFooter.tsx +2 -0
  444. package/src/components/Form/FormModalFooter/FormModalFooter.types.ts +11 -1
  445. package/src/components/FormControl/FormControl.stories.tsx +35 -0
  446. package/src/components/FormControl/FormControl.usage.mdx +128 -0
  447. package/src/components/FormIntegration/FormIntegration.usage.mdx +158 -0
  448. package/src/components/FormLabel/FormLabel.stories.tsx +71 -0
  449. package/src/components/FormLabel/FormLabel.usage.mdx +125 -0
  450. package/src/components/Icon/Icon.stories.tsx +61 -1
  451. package/src/components/Icon/Icon.usage.mdx +158 -0
  452. package/src/components/IconButton/IconButton.stories.tsx +213 -5
  453. package/src/components/IconButton/IconButton.usage.mdx +275 -0
  454. package/src/components/InfoSprinkle/InfoSprinkle.stories.tsx +77 -1
  455. package/src/components/InfoSprinkle/InfoSprinkle.usage.mdx +189 -0
  456. package/src/components/InlineCode/InlineCode.stories.tsx +75 -0
  457. package/src/components/InlineCode/InlineCode.usage.mdx +142 -0
  458. package/src/components/Input/Input.stories.tsx +180 -0
  459. package/src/components/Input/Input.tsx +4 -0
  460. package/src/components/Input/Input.usage.mdx +278 -0
  461. package/src/components/LineGraph/LineGraph.stories.tsx +112 -0
  462. package/src/components/LineGraph/LineGraph.tsx +4 -5
  463. package/src/components/LineGraph/LineGraph.types.ts +12 -2
  464. package/src/components/LineGraph/LineGraph.usage.mdx +186 -0
  465. package/src/components/LineGraph/seriesColors.test.ts +10 -9
  466. package/src/components/LineGraph/seriesColors.ts +18 -16
  467. package/src/components/Loaders/Loaders.stories.tsx +93 -0
  468. package/src/components/Loaders/Loaders.usage.mdx +180 -0
  469. package/src/components/LogicianProvider/LogicianProvider.usage.mdx +98 -0
  470. package/src/components/Markdown/Markdown.stories.tsx +53 -0
  471. package/src/components/Markdown/Markdown.usage.mdx +182 -0
  472. package/src/components/Masonry/Masonry.stories.tsx +63 -1
  473. package/src/components/Masonry/Masonry.types.ts +8 -3
  474. package/src/components/Masonry/Masonry.usage.mdx +142 -0
  475. package/src/components/MaxLengthIndicator/MaxLengthIndicator.stories.tsx +57 -0
  476. package/src/components/MaxLengthIndicator/MaxLengthIndicator.usage.mdx +125 -0
  477. package/src/components/Menu/Menu.stories.tsx +146 -2
  478. package/src/components/Menu/Menu.usage.mdx +238 -0
  479. package/src/components/Menu/MenuItem.types.ts +8 -0
  480. package/src/components/Modal/Modal.stories.tsx +177 -1
  481. package/src/components/Modal/Modal.usage.mdx +262 -0
  482. package/src/components/Modal/ModalCloseButton.tsx +1 -1
  483. package/src/components/MonthPicker/MonthPicker.stories.tsx +30 -0
  484. package/src/components/MonthPicker/MonthPicker.tsx +7 -1
  485. package/src/components/MonthPicker/MonthPicker.types.ts +8 -1
  486. package/src/components/MonthPicker/MonthPicker.usage.mdx +191 -0
  487. package/src/components/NavList/NavList.stories.tsx +927 -0
  488. package/src/components/NavList/NavList.styles.ts +114 -0
  489. package/src/components/NavList/NavList.test.tsx +1306 -0
  490. package/src/components/NavList/NavList.translations.json +9 -0
  491. package/src/components/NavList/NavList.tsx +160 -0
  492. package/src/components/NavList/NavList.types.ts +155 -0
  493. package/src/components/NavList/NavList.usage.mdx +545 -0
  494. package/src/components/NavList/NavListContext.ts +25 -0
  495. package/src/components/NavList/NavListGroup.tsx +243 -0
  496. package/src/components/NavList/NavListItem.tsx +543 -0
  497. package/src/components/NavList/NavListSkeleton.tsx +57 -0
  498. package/src/components/NavList/index.ts +15 -0
  499. package/src/components/Pagination/Pagination.stories.tsx +90 -1
  500. package/src/components/Pagination/Pagination.tsx +11 -10
  501. package/src/components/Pagination/Pagination.usage.mdx +186 -0
  502. package/src/components/PasswordInput/PasswordInput.stories.tsx +51 -0
  503. package/src/components/PasswordInput/PasswordInput.usage.mdx +193 -0
  504. package/src/components/PinInput/PinInput.stories.tsx +91 -0
  505. package/src/components/PinInput/PinInput.usage.mdx +194 -0
  506. package/src/components/Popover/Popover.stories.tsx +104 -1
  507. package/src/components/Popover/Popover.usage.mdx +197 -0
  508. package/src/components/ProgressBar/ProgressBar.stories.tsx +92 -1
  509. package/src/components/ProgressBar/ProgressBar.types.ts +9 -0
  510. package/src/components/ProgressBar/ProgressBar.usage.mdx +210 -0
  511. package/src/components/Pulse/Pulse.usage.mdx +102 -0
  512. package/src/components/RadialProgress/RadialProgress.stories.tsx +74 -1
  513. package/src/components/RadialProgress/RadialProgress.types.ts +21 -1
  514. package/src/components/RadialProgress/RadialProgress.usage.mdx +153 -0
  515. package/src/components/Radio/Radio.stories.tsx +119 -0
  516. package/src/components/Radio/Radio.usage.mdx +187 -0
  517. package/src/components/Reveal/Reveal.usage.mdx +105 -0
  518. package/src/components/ScaledContext/ScaledContext.usage.mdx +111 -0
  519. package/src/components/SeeMoreButton/SeeMoreButton.stories.tsx +146 -2
  520. package/src/components/SeeMoreButton/SeeMoreButton.types.ts +8 -0
  521. package/src/components/SeeMoreButton/SeeMoreButton.usage.mdx +213 -0
  522. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +69 -0
  523. package/src/components/SegmentedControl/SegmentedControl.styles.ts +38 -0
  524. package/src/components/SegmentedControl/SegmentedControl.tsx +43 -37
  525. package/src/components/SegmentedControl/SegmentedControl.usage.mdx +216 -0
  526. package/src/components/SegmentedProgressBar/SegmentedProgressBar.stories.tsx +54 -0
  527. package/src/components/SegmentedProgressBar/SegmentedProgressBar.types.ts +2 -0
  528. package/src/components/SegmentedProgressBar/SegmentedProgressBar.usage.mdx +145 -0
  529. package/src/components/Select/Combobox.tsx +28 -3
  530. package/src/components/Select/Select.clearTrigger.test.tsx +76 -0
  531. package/src/components/Select/Select.stories.tsx +290 -1
  532. package/src/components/Select/Select.styles.ts +89 -0
  533. package/src/components/Select/Select.tsx +28 -2
  534. package/src/components/Select/Select.usage.mdx +341 -0
  535. package/src/components/Shake/Shake.usage.mdx +107 -0
  536. package/src/components/Slider/Slider.stories.tsx +116 -0
  537. package/src/components/Slider/Slider.usage.mdx +179 -0
  538. package/src/components/Spinner/Spinner.stories.tsx +64 -0
  539. package/src/components/Spinner/Spinner.usage.mdx +136 -0
  540. package/src/components/SwapTransition/SwapTransition.usage.mdx +102 -0
  541. package/src/components/Switch/Switch.stories.tsx +139 -6
  542. package/src/components/Switch/Switch.usage.mdx +200 -0
  543. package/src/components/Switch/SwitchControl.tsx +32 -15
  544. package/src/components/Table/Table.stories.tsx +159 -1
  545. package/src/components/Table/Table.usage.mdx +235 -0
  546. package/src/components/Tabs/Tab/Tab.styles.ts +1 -1
  547. package/src/components/Tabs/Tabs.stories.tsx +86 -0
  548. package/src/components/Tabs/Tabs.usage.mdx +263 -0
  549. package/src/components/Tag/Tag.stories.tsx +181 -4
  550. package/src/components/Tag/Tag.styles.ts +117 -2
  551. package/src/components/Tag/Tag.test.tsx +87 -1
  552. package/src/components/Tag/Tag.tsx +22 -1
  553. package/src/components/Tag/Tag.types.ts +16 -2
  554. package/src/components/Tag/Tag.usage.mdx +257 -0
  555. package/src/components/Tag/index.ts +2 -0
  556. package/src/components/Textarea/Textarea.stories.tsx +113 -0
  557. package/src/components/Textarea/Textarea.tsx +4 -0
  558. package/src/components/Textarea/Textarea.usage.mdx +186 -0
  559. package/src/components/Toast/Toast.stories.tsx +185 -3
  560. package/src/components/Toast/Toast.styles.ts +19 -7
  561. package/src/components/Toast/Toast.tsx +8 -1
  562. package/src/components/Toast/Toast.usage.mdx +265 -0
  563. package/src/components/Tooltip/Tooltip.stories.tsx +86 -1
  564. package/src/components/Tooltip/Tooltip.usage.mdx +219 -0
  565. package/src/components/Tree/Tree.stories.tsx +89 -0
  566. package/src/components/Tree/Tree.usage.mdx +207 -0
  567. package/src/components/Typography/Caption.tsx +0 -1
  568. package/src/components/Typography/H1.tsx +0 -1
  569. package/src/components/Typography/H2.tsx +0 -1
  570. package/src/components/Typography/H3.tsx +0 -1
  571. package/src/components/Typography/H4.tsx +0 -1
  572. package/src/components/Typography/H5.tsx +0 -1
  573. package/src/components/Typography/Link.tsx +0 -1
  574. package/src/components/Typography/Overline.tsx +0 -1
  575. package/src/components/Typography/Subtext.tsx +0 -1
  576. package/src/components/Typography/Subtitle.tsx +0 -1
  577. package/src/components/Typography/Text.tsx +0 -1
  578. package/src/components/Typography/Typography.stories.tsx +117 -0
  579. package/src/components/Typography/Typography.usage.mdx +257 -0
  580. package/src/components/Workflow/Workflow.usage.mdx +199 -0
  581. package/src/components/a11y.kwcag.test.tsx +78 -21
  582. package/src/components/claude.md +24 -1
  583. package/src/components/noRawScales.test.ts +5 -1
  584. package/src/foundations/BrandAssets.mdx +637 -0
  585. package/src/foundations/BrandAssets.stories.tsx +680 -0
  586. package/src/foundations/BrandColour.mdx +103 -4
  587. package/src/foundations/BrandColour.stories.tsx +135 -2
  588. package/src/hooks/useLanguage.ts +8 -3
  589. package/src/hooks/useTranslate.test.tsx +46 -0
  590. package/src/hooks/useTranslate.ts +7 -5
  591. package/src/index.ts +19 -1
  592. package/src/theme/BazePalette.stories.tsx +111 -1
  593. package/src/theme/ControlSizes.stories.tsx +586 -0
  594. package/src/theme/Palette.stories.tsx +2 -2
  595. package/src/theme/SemanticTokens.mdx +118 -19
  596. package/src/theme/claude.md +34 -9
  597. package/src/theme/colors.ts +82 -19
  598. package/src/theme/contrast.test.ts +67 -0
  599. package/src/theme/controlSizes.test.ts +153 -0
  600. package/src/theme/controlSizes.ts +162 -0
  601. package/src/theme/global.ts +20 -1
  602. package/src/theme/index.ts +23 -46
  603. package/src/theme/palette.generated.ts +296 -162
  604. package/src/theme/paletteSwatches.test.ts +1 -1
  605. package/src/theme/paletteSwatches.ts +35 -0
  606. package/src/theme/recipes/avatar.ts +92 -0
  607. package/src/theme/recipes/controls.ts +171 -0
  608. package/src/translations/Defaults.translations.json +14 -0
  609. package/src/utils/disabledControl.ts +8 -1
  610. package/src/utils/focusRing.ts +23 -0
@@ -0,0 +1,586 @@
1
+ import { ReactNode, useLayoutEffect, useRef, useState } from 'react';
2
+ import { Box, Flex, HStack, Stack } from '@chakra-ui/react';
3
+ import { Meta, StoryObj } from '@storybook/react';
4
+
5
+ import { Button } from '../components/Button';
6
+ import { Checkbox } from '../components/Checkbox';
7
+ import { RangeDatePicker } from '../components/DatePicker';
8
+ import { FormControl } from '../components/FormControl';
9
+ import { FormLabel } from '../components/FormLabel';
10
+ import {
11
+ CloseIcon,
12
+ DownloadIcon,
13
+ FilterIcon,
14
+ PlusIcon,
15
+ RefreshIcon,
16
+ SearchIcon,
17
+ } from '../components/Icon';
18
+ import { IconButton } from '../components/IconButton';
19
+ import { Input } from '../components/Input';
20
+ import { ScaledContext } from '../components/ScaledContext';
21
+ import { SegmentedControl } from '../components/SegmentedControl';
22
+ import { SelectField } from '../components/Select';
23
+ import { Switch } from '../components/Switch';
24
+ import { Tag } from '../components/Tag';
25
+ import { Subtext, Text } from '../components/Typography';
26
+ import {
27
+ type CoreControlSize,
28
+ controlSizes,
29
+ CORE_CONTROL_SIZES,
30
+ } from './controlSizes';
31
+
32
+ /**
33
+ * # Control sizes
34
+ *
35
+ * Every control that takes `size` resolves it through one table,
36
+ * `controlSizes` (`src/theme/controlSizes.ts`): the same height, type, icon
37
+ * size and corner per size. Button is the reference.
38
+ *
39
+ * | size | height token | 14px root | 16px `ScaledContext` |
40
+ * |------|--------------|-----------|----------------------|
41
+ * | xs | `sizes.8` | 28px | 28px |
42
+ * | sm | `sizes.9` | 31.5px | 36px |
43
+ * | md | `sizes.10` | 35px | 40px |
44
+ * | lg | `sizes.11` | 38.5px | 44px |
45
+ *
46
+ * Each row below measures its own controls in the browser and prints the
47
+ * result — a green line means every control in the row has the same outer
48
+ * height. Turn on **guides** to draw the row's top and bottom edges.
49
+ *
50
+ * Interactive tags (`as="button"`, `selected`, `onClick`) are controls and
51
+ * follow the scale; static tags are badges and keep their own sizes.
52
+ */
53
+ type Args = { guides: boolean };
54
+
55
+ const meta: Meta<Args> = {
56
+ title: 'Foundations/Control sizes',
57
+ parameters: { layout: 'padded' },
58
+ argTypes: {
59
+ guides: { control: 'boolean', description: 'Draw top / bottom guides' },
60
+ },
61
+ args: { guides: true },
62
+ };
63
+
64
+ export default meta;
65
+ type Story = StoryObj<Args>;
66
+
67
+ // ─────────────────────────── helpers ───────────────────────────
68
+
69
+ const SORT_OPTIONS = [
70
+ { label: '최신순', value: 'recent' },
71
+ { label: '이름순', value: 'name' },
72
+ { label: '수정일순', value: 'updated' },
73
+ ];
74
+
75
+ const PROBE = '[data-probe]';
76
+
77
+ /**
78
+ * Measures every `[data-probe]` element inside it (or, for a wrapper, the
79
+ * control the wrapper names) and prints whether their heights agree.
80
+ */
81
+ const Measured = ({
82
+ children,
83
+ guides,
84
+ }: {
85
+ children: ReactNode;
86
+ guides?: boolean;
87
+ }) => {
88
+ const ref = useRef<HTMLDivElement>(null);
89
+ const [result, setResult] = useState<{ name: string; h: number }[]>([]);
90
+
91
+ useLayoutEffect(() => {
92
+ const root = ref.current;
93
+ if (!root) return undefined;
94
+ const measure = () => {
95
+ const rows = Array.from(root.querySelectorAll<HTMLElement>(PROBE)).map(
96
+ (el) => {
97
+ const target =
98
+ el.dataset.probeTarget != null
99
+ ? (el.querySelector<HTMLElement>(el.dataset.probeTarget) ?? el)
100
+ : el;
101
+ return {
102
+ name: el.dataset.probe ?? '?',
103
+ h: Math.round(target.getBoundingClientRect().height * 100) / 100,
104
+ };
105
+ }
106
+ );
107
+ setResult(rows);
108
+ };
109
+ measure();
110
+ const observer = new ResizeObserver(measure);
111
+ observer.observe(root);
112
+ return () => observer.disconnect();
113
+ }, []);
114
+
115
+ const heights = new Set(result.map((r) => r.h));
116
+ const aligned = result.length > 0 && heights.size === 1;
117
+
118
+ return (
119
+ <Stack gap="1.5">
120
+ <Box
121
+ ref={ref}
122
+ position="relative"
123
+ css={
124
+ guides
125
+ ? {
126
+ // The row's top and bottom edges, drawn across it: a control
127
+ // shorter than its neighbours leaves a gap under a line, a
128
+ // taller one makes the whole row (and the lines) grow.
129
+ '--guide': 'var(--chakra-colors-category-blue-fg)',
130
+ backgroundImage:
131
+ 'linear-gradient(var(--guide), var(--guide)), linear-gradient(var(--guide), var(--guide))',
132
+ backgroundRepeat: 'no-repeat',
133
+ backgroundSize: '100% 1px, 100% 1px',
134
+ backgroundPosition: 'left top, left bottom',
135
+ }
136
+ : undefined
137
+ }
138
+ >
139
+ {children}
140
+ </Box>
141
+ <Subtext
142
+ color={aligned ? 'success.fg' : 'danger.fg'}
143
+ data-aligned={aligned}
144
+ >
145
+ {aligned
146
+ ? `높이 일치 · ${result[0].h}px · ${result.map((r) => r.name).join(' · ')}`
147
+ : `높이 불일치 · ${result.map((r) => `${r.name} ${r.h}px`).join(' · ')}`}
148
+ </Subtext>
149
+ </Stack>
150
+ );
151
+ };
152
+
153
+ /** A probe on a wrapper: measures the first element matching `target`. */
154
+ const Probe = ({
155
+ name,
156
+ target,
157
+ children,
158
+ }: {
159
+ name: string;
160
+ target: string;
161
+ children: ReactNode;
162
+ }) => (
163
+ <Box data-probe={name} data-probe-target={target} display="contents">
164
+ {children}
165
+ </Box>
166
+ );
167
+
168
+ const iconFor = (size: CoreControlSize) => controlSizes[size].iconBoxSize;
169
+
170
+ const SearchField = ({
171
+ size,
172
+ width = '200px',
173
+ }: {
174
+ size: CoreControlSize;
175
+ width?: string;
176
+ }) => {
177
+ const [value, setValue] = useState('보고서');
178
+ return (
179
+ <Box w={width} flexShrink={0}>
180
+ <Input
181
+ data-probe="Input"
182
+ size={size}
183
+ value={value}
184
+ onChange={(e) => setValue(e.target.value)}
185
+ placeholder="프로젝트 검색"
186
+ aria-label="프로젝트 검색"
187
+ leftIcon={<SearchIcon boxSize={iconFor(size)} color="fg.muted" />}
188
+ rightIcon={
189
+ value ? (
190
+ <IconButton
191
+ aria-label="검색어 지우기"
192
+ size="2xs"
193
+ variant="ghost"
194
+ onClick={() => setValue('')}
195
+ >
196
+ <CloseIcon boxSize="2xs" />
197
+ </IconButton>
198
+ ) : undefined
199
+ }
200
+ />
201
+ </Box>
202
+ );
203
+ };
204
+
205
+ const FilterChips = ({ size }: { size: CoreControlSize }) => {
206
+ const [active, setActive] = useState('all');
207
+ const chips = [
208
+ { value: 'all', label: '전체', count: 22 },
209
+ { value: 'published', label: '게시됨', count: 8 },
210
+ { value: 'draft', label: '게시 전', count: 14 },
211
+ ];
212
+ return (
213
+ <HStack gap="1.5" role="group" aria-label="게시 상태">
214
+ {chips.map((chip, i) => (
215
+ <Tag
216
+ key={chip.value}
217
+ data-probe={i === 0 ? 'Tag' : undefined}
218
+ as="button"
219
+ size={size}
220
+ selected={active === chip.value}
221
+ onClick={() => setActive(chip.value)}
222
+ >
223
+ {chip.label} {chip.count}
224
+ </Tag>
225
+ ))}
226
+ </HStack>
227
+ );
228
+ };
229
+
230
+ const DateRange = ({ size }: { size: CoreControlSize }) => {
231
+ const [dates, setDates] = useState<Date[]>([
232
+ new Date(2026, 9, 1),
233
+ new Date(2026, 10, 9),
234
+ ]);
235
+ return (
236
+ <Probe name="DatePicker" target="button">
237
+ <RangeDatePicker
238
+ size={size}
239
+ selectedDates={dates}
240
+ onDateChange={setDates}
241
+ />
242
+ </Probe>
243
+ );
244
+ };
245
+
246
+ const Sort = ({
247
+ size,
248
+ width = '120px',
249
+ }: {
250
+ size: CoreControlSize;
251
+ width?: string;
252
+ }) => (
253
+ <Probe name="Select" target="[data-part=trigger]">
254
+ <Box w={width} flexShrink={0}>
255
+ <SelectField
256
+ size={size}
257
+ options={SORT_OPTIONS}
258
+ defaultValue="recent"
259
+ ariaLabel="정렬"
260
+ />
261
+ </Box>
262
+ </Probe>
263
+ );
264
+
265
+ const ViewTabs = ({ size }: { size: CoreControlSize }) => (
266
+ <SegmentedControl
267
+ data-probe="SegmentedControl"
268
+ size={size}
269
+ defaultValue="mine"
270
+ options={[
271
+ { label: '내 프로젝트', value: 'mine' },
272
+ { label: '공유됨', value: 'shared' },
273
+ { label: '보관함', value: 'archived' },
274
+ ]}
275
+ />
276
+ );
277
+
278
+ const SizeLabel = ({ size }: { size: CoreControlSize }) => (
279
+ <Box w="64px" flexShrink={0}>
280
+ <Text fontWeight="semibold">{size}</Text>
281
+ <Subtext color="fg.muted">sizes.{controlSizes[size].height}</Subtext>
282
+ </Box>
283
+ );
284
+
285
+ // ─────────────────────────── a) Alignment ───────────────────────────
286
+
287
+ const AlignmentRow = ({
288
+ size,
289
+ guides,
290
+ }: {
291
+ size: CoreControlSize;
292
+ guides: boolean;
293
+ }) => (
294
+ <HStack align="start" gap="4">
295
+ <SizeLabel size={size} />
296
+ <Measured guides={guides}>
297
+ <HStack gap="2" flexWrap="wrap" align="center">
298
+ <Button data-probe="Button" size={size} variant="primary">
299
+ <PlusIcon boxSize={iconFor(size)} />새 프로젝트
300
+ </Button>
301
+ <IconButton
302
+ data-probe="IconButton"
303
+ size={size}
304
+ variant="secondary"
305
+ aria-label="새로고침"
306
+ >
307
+ <RefreshIcon boxSize={iconFor(size)} />
308
+ </IconButton>
309
+ <SearchField size={size} width="180px" />
310
+ <Sort size={size} />
311
+ <ViewTabs size={size} />
312
+ <FilterChips size={size} />
313
+ <DateRange size={size} />
314
+ <Checkbox size={size} defaultChecked>
315
+ <Checkbox.Control />
316
+ <Checkbox.Label>내 것만</Checkbox.Label>
317
+ </Checkbox>
318
+ <Switch size={size}>
319
+ <Switch.Control />
320
+ <Switch.Label>자동 새로고침</Switch.Label>
321
+ </Switch>
322
+ </HStack>
323
+ </Measured>
324
+ </HStack>
325
+ );
326
+
327
+ /**
328
+ * Per size, one row of every height-bearing control. Checkbox and Switch are
329
+ * not height-bearing (their label takes the row's type size) and are not
330
+ * probed.
331
+ */
332
+ export const Alignment: Story = {
333
+ render: ({ guides }) => (
334
+ <Stack gap="8">
335
+ {CORE_CONTROL_SIZES.map((size) => (
336
+ <AlignmentRow key={size} size={size} guides={guides} />
337
+ ))}
338
+ </Stack>
339
+ ),
340
+ };
341
+
342
+ // ─────────────────────────── b) Table filter bar ───────────────────────────
343
+
344
+ const FilterBar = ({
345
+ size = 'sm',
346
+ guides,
347
+ }: {
348
+ size?: CoreControlSize;
349
+ guides?: boolean;
350
+ }) => (
351
+ <Measured guides={guides}>
352
+ <Flex
353
+ gap="2"
354
+ align="center"
355
+ justify="space-between"
356
+ flexWrap="wrap"
357
+ rowGap="2"
358
+ >
359
+ <ViewTabs size={size} />
360
+ <HStack gap="2" flexWrap="wrap" rowGap="2">
361
+ <FilterChips size={size} />
362
+ <SearchField size={size} />
363
+ <Sort size={size} />
364
+ <DateRange size={size} />
365
+ <IconButton
366
+ data-probe="IconButton"
367
+ size={size}
368
+ variant="secondary"
369
+ aria-label="필터"
370
+ >
371
+ <FilterIcon boxSize={iconFor(size)} />
372
+ </IconButton>
373
+ <IconButton size={size} variant="secondary" aria-label="내보내기">
374
+ <DownloadIcon boxSize={iconFor(size)} />
375
+ </IconButton>
376
+ </HStack>
377
+ </Flex>
378
+ </Measured>
379
+ );
380
+
381
+ const TablePreview = () => (
382
+ <Box
383
+ mt="3"
384
+ borderWidth="1px"
385
+ borderColor="border.default"
386
+ borderRadius="lg"
387
+ overflow="hidden"
388
+ >
389
+ {['2026 상반기 보고서', '고객 문의 분석', '보고서 템플릿'].map(
390
+ (name, i) => (
391
+ <HStack
392
+ key={name}
393
+ px="4"
394
+ py="3"
395
+ borderTopWidth={i === 0 ? 0 : '1px'}
396
+ borderColor="border.subtle"
397
+ justify="space-between"
398
+ >
399
+ <Text>{name}</Text>
400
+ <Tag tone={i === 1 ? 'neutral' : 'success'}>
401
+ {i === 1 ? '게시 전' : '게시됨'}
402
+ </Tag>
403
+ </HStack>
404
+ )
405
+ )}
406
+ </Box>
407
+ );
408
+
409
+ /**
410
+ * A list/table header at `size="sm"` — the size a dense table filter bar
411
+ * uses. Tabs on the left; filter chips, search, sort, date range and actions
412
+ * on the right. Every control gets only its `size` prop — no `h=` overrides.
413
+ */
414
+ export const TableFilterBar: Story = {
415
+ name: 'Table filter bar',
416
+ render: ({ guides }) => (
417
+ <Stack gap="10">
418
+ <Box>
419
+ <Subtext color="fg.muted" mb="2">
420
+ size=&quot;sm&quot; · 데스크톱 폭
421
+ </Subtext>
422
+ <FilterBar size="sm" guides={guides} />
423
+ <TablePreview />
424
+ </Box>
425
+ <Box>
426
+ <Subtext color="fg.muted" mb="2">
427
+ size=&quot;md&quot; · 데스크톱 폭
428
+ </Subtext>
429
+ <FilterBar size="md" guides={guides} />
430
+ </Box>
431
+ <Box>
432
+ <Subtext color="fg.muted" mb="2">
433
+ size=&quot;sm&quot; · 모바일 폭 (375px, 줄바꿈)
434
+ </Subtext>
435
+ <Box
436
+ maxW="375px"
437
+ p="3"
438
+ borderWidth="1px"
439
+ borderColor="border.subtle"
440
+ borderRadius="lg"
441
+ >
442
+ <FilterBar size="sm" />
443
+ </Box>
444
+ </Box>
445
+ </Stack>
446
+ ),
447
+ };
448
+
449
+ // ─────────────────────────── c) Form row ───────────────────────────
450
+
451
+ const ROLE_OPTIONS = [
452
+ { label: '멤버', value: 'member' },
453
+ { label: '관리자', value: 'admin' },
454
+ ];
455
+
456
+ const InlineFormRow = ({
457
+ size,
458
+ guides,
459
+ }: {
460
+ size: CoreControlSize;
461
+ guides?: boolean;
462
+ }) => (
463
+ <HStack gap="3" align="center">
464
+ <Text
465
+ textStyle={controlSizes[size].textStyle}
466
+ fontWeight="semibold"
467
+ w="72px"
468
+ >
469
+ 멤버 초대
470
+ </Text>
471
+ <Measured guides={guides}>
472
+ <HStack gap="2">
473
+ <Box w="240px">
474
+ <Input
475
+ data-probe="Input"
476
+ size={size}
477
+ placeholder="name@mindlogic.ai"
478
+ aria-label="이메일"
479
+ />
480
+ </Box>
481
+ <Probe name="Select" target="[data-part=trigger]">
482
+ <Box w="120px">
483
+ <SelectField
484
+ size={size}
485
+ options={ROLE_OPTIONS}
486
+ defaultValue="member"
487
+ ariaLabel="권한"
488
+ />
489
+ </Box>
490
+ </Probe>
491
+ <Button data-probe="Button" size={size} variant="primary">
492
+ 초대
493
+ </Button>
494
+ </HStack>
495
+ </Measured>
496
+ </HStack>
497
+ );
498
+
499
+ const StackedForm = ({ size }: { size: CoreControlSize }) => (
500
+ <Stack gap="4" maxW="420px">
501
+ <FormControl>
502
+ <FormLabel>프로젝트 이름</FormLabel>
503
+ <Input size={size} placeholder="예: 2026 상반기 보고서" />
504
+ </FormControl>
505
+ <FormControl>
506
+ <FormLabel>공개 범위</FormLabel>
507
+ <SelectField
508
+ size={size}
509
+ options={[
510
+ { label: '나만 보기', value: 'private' },
511
+ { label: '팀 전체', value: 'team' },
512
+ ]}
513
+ defaultValue="team"
514
+ ariaLabel="공개 범위"
515
+ />
516
+ </FormControl>
517
+ <FormControl>
518
+ <FormLabel>기간</FormLabel>
519
+ <DateRange size={size} />
520
+ </FormControl>
521
+ <Checkbox size={size}>
522
+ <Checkbox.Control />
523
+ <Checkbox.Label>만들고 나서 바로 열기</Checkbox.Label>
524
+ </Checkbox>
525
+ <HStack justify="flex-end" gap="2">
526
+ <Button size={size} variant="secondary">
527
+ 취소
528
+ </Button>
529
+ <Button size={size} variant="primary">
530
+ 만들기
531
+ </Button>
532
+ </HStack>
533
+ </Stack>
534
+ );
535
+
536
+ /** An inline form row and a stacked form, at `sm` and `md`. */
537
+ export const FormRow: Story = {
538
+ name: 'Form row',
539
+ render: ({ guides }) => (
540
+ <Stack gap="10">
541
+ {(['sm', 'md'] as const).map((size) => (
542
+ <Stack key={size} gap="4">
543
+ <Subtext color="fg.muted">size=&quot;{size}&quot;</Subtext>
544
+ <InlineFormRow size={size} guides={guides} />
545
+ <StackedForm size={size} />
546
+ </Stack>
547
+ ))}
548
+ </Stack>
549
+ ),
550
+ };
551
+
552
+ // ─────────────────────────── d) Inside ScaledContext ───────────────────────────
553
+
554
+ /**
555
+ * The same filter bar inside `<ScaledContext fontSize="16px">` — what
556
+ * FactChat's `ReadingScale` wraps its pages in. There the sizes tokens turn
557
+ * into em, so a control's height follows its own type; one type step per size
558
+ * is what keeps the row aligned (sm = 36px, md = 40px).
559
+ */
560
+ export const InsideScaledContext: Story = {
561
+ name: 'Inside ScaledContext (16px)',
562
+ render: ({ guides }) => (
563
+ <ScaledContext fontSize="16px">
564
+ <Stack gap="10">
565
+ <Box>
566
+ <Subtext color="fg.muted" mb="2">
567
+ ScaledContext 16px · size=&quot;sm&quot;
568
+ </Subtext>
569
+ <FilterBar size="sm" guides={guides} />
570
+ <TablePreview />
571
+ </Box>
572
+ <Box>
573
+ <Subtext color="fg.muted" mb="2">
574
+ ScaledContext 16px · size=&quot;md&quot;
575
+ </Subtext>
576
+ <FilterBar size="md" guides={guides} />
577
+ </Box>
578
+ <Stack gap="8">
579
+ {CORE_CONTROL_SIZES.map((size) => (
580
+ <AlignmentRow key={size} size={size} guides={guides} />
581
+ ))}
582
+ </Stack>
583
+ </Stack>
584
+ </ScaledContext>
585
+ ),
586
+ };
@@ -30,9 +30,9 @@ const meta = {
30
30
 
31
31
  Three layers; components read only the last one.
32
32
 
33
- 1. **Raw scales** — \`ink\` / \`inkDark\`, \`sand\` / \`sandDark\`, \`slate\` / \`slateDark\` (1–12), \`coral\`, and 12 system hues. Values come from \`scripts/palette/generate.mjs\`.
33
+ 1. **Raw scales** — \`ink\` / \`inkDark\`, \`sand\` / \`sandDark\`, \`slate\` / \`slateDark\` (1–12), \`coral\`, 12 system hues, and \`dataviz\`. Values come from \`scripts/palette/generate.mjs\`.
34
34
  2. **Semantic steps** — \`neutral.1–12\` and \`secondary.1–12\`, filled by the theme option: \`createLogicianTheme({ neutral: 'ink' | 'slate', secondary: 'sand' })\` (or \`<LogicianProvider theme={…}>\`).
35
- 3. **Role tokens** — \`bg.*\`, \`layer.*\`, \`fg.*\`, \`border.*\`, \`primary.*\`, \`action.*\`, status \`{bg,border,fg,solid,onSolid}\`, \`category.*\` …
35
+ 3. **Role tokens** — \`bg.*\`, \`layer.*\`, \`fg.*\`, \`border.*\`, \`primary.*\`, \`action.*\`, status \`{bg,border,fg,solid,onSolid}\`, \`category.*\`, data-viz fills \`data.*\` / \`diverging.*\` …
36
36
 
37
37
  Every value below is shown in light and dark. Contrast is audited in CI (\`contrast.test.ts\`) in light, dark and both high-contrast modes. The 4.x names still resolve as aliases until 6.0 and are listed at the bottom, not in the grid. Setup/Theme/BAZE Palette shows the raw scales and every role in all four modes.
38
38
  `,