@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,262 @@
1
+ import { ArgTypes, Canvas, Meta } from '@storybook/blocks';
2
+
3
+ import { En, Ko, LangToggle, Verdict } from '../../guidelines/_components/Lang';
4
+ import * as ModalStories from './Modal.stories';
5
+
6
+ <Meta of={ModalStories} name="Usage" />
7
+
8
+ <LangToggle />
9
+
10
+ <En>
11
+
12
+ # Modal
13
+
14
+ A dialog that stops the page until the user finishes or dismisses one short
15
+ task: a confirmation, a small form, a decision.
16
+
17
+ ## When to use
18
+
19
+ - To confirm an action that cannot be undone: deleting a member, revoking a key.
20
+ - For a short form that belongs to the current page: adding a domain, renaming
21
+ a group, setting a credit limit.
22
+ - For a one-time message the user must read before going on, such as an
23
+ announcement or the first step of onboarding.
24
+
25
+ ## When not to use
26
+
27
+ - To say that something worked → `Toast`. A modal that only says "저장되었습니다"
28
+ costs a click and teaches users to dismiss modals without reading.
29
+ - For a status that should stay on the page → `Banner`.
30
+ - For a few options next to the thing they act on → `Menu`, or `Popover` if the
31
+ panel holds controls.
32
+ - On a phone, for a list the user picks from → `BottomSheet`.
33
+ - For long or multi-step work, or anything the user needs to compare with the
34
+ page behind it → a page or a side panel, not a modal.
35
+
36
+ ## Variants and what they mean
37
+
38
+ Modal has no colour variants. Two props change its shape:
39
+
40
+ </En>
41
+
42
+ <Ko>
43
+
44
+ # Modal
45
+
46
+ 짧은 작업 하나(확인, 작은 양식, 결정)를 끝내거나 닫기 전까지 페이지를 멈춰 두는
47
+ 대화상자입니다.
48
+
49
+ ## 언제 쓰나요
50
+
51
+ - 되돌릴 수 없는 동작을 확인받을 때: 멤버 삭제, API 키 폐기.
52
+ - 지금 페이지에 딸린 짧은 양식을 받을 때: 도메인 추가, 그룹 이름 변경, 크레딧 한도 설정.
53
+ - 공지나 온보딩 첫 단계처럼 사용자가 다음으로 넘어가기 전에 꼭 읽어야 하는 안내를 보일
54
+ 때.
55
+
56
+ ## 언제 쓰지 않나요
57
+
58
+ - 작업이 잘 끝났다는 소식만 전한다면 `Toast`를 씁니다. "저장되었습니다"만 담긴 모달은
59
+ 클릭 한 번을 더 쓰게 하고, 모달을 읽지 않고 닫는 습관을 들입니다.
60
+ - 페이지에 계속 남아 있어야 하는 상태는 `Banner`로 알립니다.
61
+ - 대상 옆에 선택지 몇 개를 보이려면 `Menu`를, 그 안에 입력 컨트롤이 있다면
62
+ `Popover`를 씁니다.
63
+ - 휴대폰에서 목록 중 하나를 고르게 할 때는 `BottomSheet`를 씁니다.
64
+ - 길거나 여러 단계로 된 작업, 뒤의 페이지와 비교해야 하는 작업은 모달이 아니라 페이지나
65
+ 사이드 패널에 둡니다.
66
+
67
+ ## 변형과 뜻
68
+
69
+ Modal에는 색 변형이 없습니다. 모양을 바꾸는 속성은 두 가지입니다.
70
+
71
+ </Ko>
72
+
73
+ <ArgTypes of={ModalStories} include={['headerTone', 'fullScreenOnMobile']} />
74
+
75
+ <En>
76
+
77
+ | Prop | Value | Use for |
78
+ | --- | --- | --- |
79
+ | `headerTone` | `default` | Almost every modal. The header matches the body. |
80
+ | `headerTone` | `brand` | A welcome step or a celebratory confirmation. The header gets a `layer.3` band and a `secondary.border` rule. Not for warnings: brand is not a status. |
81
+ | `fullScreenOnMobile` | `false` (default) | Confirmations and short forms. On small screens the dialog keeps its shape with a side margin. |
82
+ | `fullScreenOnMobile` | `true` | Long or immersive content on a phone, such as a file picker or a course switcher. |
83
+
84
+ Size and placement come from Chakra's `Dialog` (`size`, `placement`); Modal
85
+ centres the dialog by default.
86
+
87
+ ## Do / Don't
88
+
89
+ </En>
90
+
91
+ <Ko>
92
+
93
+ | 속성 | 값 | 쓰는 곳 |
94
+ | --- | --- | --- |
95
+ | `headerTone` | `default` | 거의 모든 모달. 헤더가 본문과 같은 모양입니다. |
96
+ | `headerTone` | `brand` | 환영 단계나 축하하는 확인 창. 헤더에 `layer.3` 띠와 `secondary.border` 선이 생깁니다. 경고에는 쓰지 않습니다. 브랜드 색은 상태가 아닙니다. |
97
+ | `fullScreenOnMobile` | `false` (기본) | 확인 창과 짧은 양식. 작은 화면에서도 대화상자 모양을 유지하고 좌우 여백을 둡니다. |
98
+ | `fullScreenOnMobile` | `true` | 파일 선택기나 강의 전환처럼 휴대폰에서 화면 전체가 필요한 긴 내용. |
99
+
100
+ 크기와 위치는 Chakra `Dialog`의 `size`, `placement`로 정합니다. Modal은 기본으로
101
+ 화면 가운데에 놓입니다.
102
+
103
+ ## 이렇게 하세요 / 이렇게 하지 마세요
104
+
105
+ </Ko>
106
+
107
+ <Canvas of={ModalStories.DoConfirmNamesTheAction} />
108
+ <Verdict
109
+ kind="do"
110
+ en="Ask the question in the title, say what will happen in the body, and label the button with the action itself."
111
+ ko="제목에서 묻고, 본문에서 결과를 알리고, 버튼에는 동작 이름을 그대로 씁니다."
112
+ />
113
+
114
+ <Canvas of={ModalStories.DontVagueConfirm} />
115
+ <Verdict
116
+ kind="dont"
117
+ en="Use a generic title and 예 / 아니요. The user has to read the whole body to learn what 예 does."
118
+ ko="막연한 제목과 '예/아니요'를 쓰지 마세요. '예'가 무슨 일을 하는지 알려면 본문을 다 읽어야 합니다."
119
+ />
120
+
121
+ <Canvas of={ModalStories.DoShortForm} />
122
+ <Verdict
123
+ kind="do"
124
+ en="Keep a form modal to one short task. Pass closeOnInteractOutside={false} so a stray click outside does not throw away what was typed."
125
+ ko="양식 모달에는 짧은 작업 하나만 담습니다. 바깥을 잘못 눌러 입력한 내용이 사라지지 않도록 closeOnInteractOutside={false}를 넘깁니다."
126
+ />
127
+
128
+ <Canvas of={ModalStories.DontModalForDone} />
129
+ <Verdict
130
+ kind="dont"
131
+ en="Open a modal just to say it worked. Use a Toast; it reports the result without stopping the user."
132
+ ko="잘 끝났다는 말만 하려고 모달을 열지 마세요. Toast는 사용자를 멈추지 않고 결과를 알립니다."
133
+ />
134
+
135
+ <Canvas of={ModalStories.DoBrandHeaderOnboarding} />
136
+ <Verdict
137
+ kind="do"
138
+ en="Save headerTone='brand' for welcome and celebration moments, and keep one primary button."
139
+ ko="headerTone='brand'는 환영하거나 축하하는 순간에만 쓰고, 주 버튼은 하나만 둡니다."
140
+ />
141
+
142
+ <En>
143
+
144
+ ## Content
145
+
146
+ - **Title:** a question or the name of the task, in sentence case, with no full
147
+ stop. "멤버를 삭제할까요?", "도메인 추가". Not "알림" or "확인".
148
+ - **Body:** what will happen and what cannot be undone, in one or two
149
+ sentences. Name the object ("김민지 님").
150
+ - **Buttons:** verbs that repeat the title's action ("삭제", "추가"). The
151
+ dismiss button is "취소". Destructive actions use `variant="danger"`.
152
+ - **Subtitle** (`ModalHeader subtitle`): one line of context under the title,
153
+ not a second paragraph of body text.
154
+ - Footer buttons share the row equally; keep them to two.
155
+
156
+ ## Accessibility
157
+
158
+ What Modal does for you:
159
+
160
+ - Renders `role="dialog"` with `aria-modal`. `ModalHeader`'s children become
161
+ the dialog's accessible name and `subtitle` its description (WCAG 4.1.2).
162
+ Plain text is rendered as an `<h2>`; your own element is wrapped in a
163
+ `<div>`, so it is never nested inside a heading.
164
+ - Moves focus into the dialog when it opens, keeps it there, and returns it to
165
+ the trigger when it closes (WCAG 2.4.3). `Escape` closes it (WCAG 2.1.1);
166
+ so does a click on the backdrop unless you pass
167
+ `closeOnInteractOutside={false}`.
168
+ - Locks the page's scroll while open.
169
+
170
+ What you still have to do:
171
+
172
+ - **Give every modal a `ModalHeader`.** Without one the dialog has no name and a
173
+ screen reader announces only "dialog". If the design has no visible title,
174
+ pass `aria-label` to `ModalContent`.
175
+ - **Name the close button in the user's language.** `ModalCloseButton` uses
176
+ Chakra's `CloseButton`, whose default `aria-label` is the English "Close".
177
+ Pass `aria-label="닫기"` (or your translation) on Korean screens (WCAG
178
+ 3.1.2).
179
+ - Keep a way out from the keyboard: if you remove `ModalCloseButton`, the
180
+ footer needs a "취소" button.
181
+ - For a destructive confirmation, Chakra's `role="alertdialog"` is available
182
+ on the root.
183
+
184
+ ## Tokens
185
+
186
+ The panel colour comes from Chakra's Dialog recipe; the rest is set in
187
+ `ModalHeader` and `ModalFooter`.
188
+
189
+ </En>
190
+
191
+ <Ko>
192
+
193
+ ## 문구
194
+
195
+ - **제목:** 질문이나 작업 이름을 쓰고 마침표를 찍지 않습니다. "멤버를 삭제할까요?",
196
+ "도메인 추가"처럼 씁니다. "알림", "확인"은 쓰지 않습니다.
197
+ - **본문:** 무슨 일이 일어나는지, 무엇을 되돌릴 수 없는지를 한두 문장으로 씁니다. 대상의
198
+ 이름("김민지 님")을 밝힙니다.
199
+ - **버튼:** 제목의 동작을 되풀이하는 동사("삭제", "추가")를 씁니다. 닫는 버튼은
200
+ "취소"입니다. 되돌릴 수 없는 동작에는 `variant="danger"`를 씁니다.
201
+ - **부제목**(`ModalHeader`의 `subtitle`): 제목 아래 맥락 한 줄입니다. 본문을 한 문단 더
202
+ 쓰는 자리가 아닙니다.
203
+ - 푸터의 버튼은 같은 너비로 나뉩니다. 두 개까지만 둡니다.
204
+
205
+ ## 접근성
206
+
207
+ Modal이 알아서 하는 일
208
+
209
+ - `role="dialog"`와 `aria-modal`을 붙입니다. `ModalHeader`의 내용이 대화상자의 접근
210
+ 가능한 이름이 되고, `subtitle`은 설명이 됩니다(WCAG 4.1.2). 글자만 넣으면 `<h2>`로,
211
+ 직접 만든 요소를 넣으면 `<div>`로 감싸므로 제목 안에 제목이 들어가지 않습니다.
212
+ - 열리면 초점을 대화상자 안으로 옮기고 그 안에 가두며, 닫히면 연 버튼으로 돌려놓습니다
213
+ (WCAG 2.4.3). `Escape`로 닫히고(WCAG 2.1.1), `closeOnInteractOutside={false}`를
214
+ 넘기지 않으면 배경을 눌러도 닫힙니다.
215
+ - 열려 있는 동안 페이지 스크롤을 막습니다.
216
+
217
+ 직접 챙겨야 하는 일
218
+
219
+ - **모든 모달에 `ModalHeader`를 둡니다.** 헤더가 없으면 대화상자에 이름이 없어 화면
220
+ 낭독기는 "대화상자"라고만 읽습니다. 보이는 제목이 없는 디자인이라면 `ModalContent`에
221
+ `aria-label`을 넘깁니다.
222
+ - **닫기 버튼 이름을 사용자의 언어로 붙입니다.** `ModalCloseButton`은 Chakra의
223
+ `CloseButton`을 쓰는데, 기본 `aria-label`이 영어 "Close"입니다. 한국어 화면에서는
224
+ `aria-label="닫기"`(또는 번역 문자열)를 넘깁니다(WCAG 3.1.2).
225
+ - 키보드로 빠져나갈 길을 남깁니다. `ModalCloseButton`을 빼면 푸터에 "취소" 버튼이
226
+ 있어야 합니다.
227
+ - 되돌릴 수 없는 동작의 확인 창에는 Chakra가 제공하는 `role="alertdialog"`를 루트에
228
+ 줄 수 있습니다.
229
+
230
+ ## 토큰
231
+
232
+ 패널 색은 Chakra Dialog 레시피에서, 나머지는 `ModalHeader`와 `ModalFooter`에서
233
+ 정합니다.
234
+
235
+ </Ko>
236
+
237
+ <Canvas of={ModalStories.UsageTokens} sourceState="none" />
238
+
239
+ <En>
240
+
241
+ ## Related
242
+
243
+ - **BottomSheet**: the same job on a phone, rising from the bottom edge.
244
+ - **Popover**: a small panel of controls that leaves the page usable.
245
+ - **Menu**: a list of actions on one object.
246
+ - **Toast** / **Banner**: results and statuses that do not need to stop the
247
+ user.
248
+ - **Guidelines/Actions in feedback surfaces**: button order and wording.
249
+
250
+ </En>
251
+
252
+ <Ko>
253
+
254
+ ## 관련 컴포넌트
255
+
256
+ - **BottomSheet**: 휴대폰에서 같은 일을 하며 화면 아래에서 올라옵니다.
257
+ - **Popover**: 페이지를 막지 않는 작은 컨트롤 패널.
258
+ - **Menu**: 한 대상에 대한 동작 목록.
259
+ - **Toast** / **Banner**: 사용자를 멈출 필요가 없는 결과와 상태.
260
+ - **Guidelines/Actions in feedback surfaces**: 버튼 순서와 문구.
261
+
262
+ </Ko>
@@ -10,8 +10,8 @@ import { IconButton } from '../IconButton';
10
10
  * asChild 패턴과 함께 CloseButton 컴포넌트를 내부에 포함해야 X 아이콘이 정상적으로 렌더링됩니다.
11
11
  *
12
12
  * @example
13
+ * // `Modal` renders its own backdrop — no `ModalOverlay` here.
13
14
  * <Modal open={isOpen} onOpenChange={(e) => setIsOpen(e.open)}>
14
- * <ModalOverlay />
15
15
  * <ModalContent>
16
16
  * <ModalHeader>Title</ModalHeader>
17
17
  * <ModalCloseButton />
@@ -5,6 +5,7 @@ import { addMonths, subMonths } from 'date-fns';
5
5
 
6
6
  import { Text } from '@/components/Typography';
7
7
 
8
+ import { FieldRow } from '../Form';
8
9
  import { MonthPicker } from './MonthPicker';
9
10
  import { MonthRange } from './MonthPicker.types';
10
11
 
@@ -167,3 +168,32 @@ export const CrossYearSelection: Story = {
167
168
  ),
168
169
  },
169
170
  };
171
+
172
+ // ───────────────────────── Usage-page specimens ─────────────────────────
173
+ // Pulled into `MonthPicker.usage.mdx` with <Canvas of={…} />. Hidden (`!dev`).
174
+
175
+ export const DoLabelledWindow: Story = {
176
+ tags: ['!dev'],
177
+ parameters: { layout: 'padded' },
178
+ name: 'Usage / Do: a label and bounds',
179
+ render: (args) => (
180
+ <FieldRow label="집계 기간">
181
+ <MonthPicker
182
+ {...args}
183
+ minMonth={new Date(2025, 0, 1)}
184
+ maxMonth={new Date(2026, 9, 1)}
185
+ />
186
+ </FieldRow>
187
+ ),
188
+ };
189
+
190
+ export const DoSingleMonth: Story = {
191
+ tags: ['!dev'],
192
+ parameters: { layout: 'padded' },
193
+ name: 'Usage / Do: isRange={false} for one month',
194
+ render: (args) => (
195
+ <FieldRow label="정산 월">
196
+ <MonthPicker {...args} isRange={false} />
197
+ </FieldRow>
198
+ ),
199
+ };
@@ -17,6 +17,7 @@ import { format, isAfter, isSameMonth } from 'date-fns';
17
17
  import { Text } from '@/components/Typography';
18
18
  import useLanguage from '@/hooks/useLanguage';
19
19
  import { useTranslate } from '@/hooks/useTranslate';
20
+ import { getControlSize } from '@/theme/controlSizes';
20
21
 
21
22
  import {
22
23
  IoChevronForward,
@@ -45,6 +46,7 @@ export const MonthPicker: React.FC<MonthPickerProps> = ({
45
46
  popoverProps,
46
47
  name,
47
48
  showClearButton = true,
49
+ size,
48
50
  ...boxProps
49
51
  }) => {
50
52
  const [isOpen, setIsOpen] = useState(false);
@@ -294,10 +296,14 @@ export const MonthPicker: React.FC<MonthPickerProps> = ({
294
296
  <Box>
295
297
  <InputGroup
296
298
  startElement={
297
- <MdOutlineCalendarToday boxSize="xs" color="fg.muted" />
299
+ <MdOutlineCalendarToday
300
+ boxSize={getControlSize(size).iconBoxSize}
301
+ color="fg.muted"
302
+ />
298
303
  }
299
304
  >
300
305
  <Input
306
+ size={size}
301
307
  name={name}
302
308
  value={displayValue}
303
309
  placeholder={effectivePlaceholder}
@@ -1,4 +1,4 @@
1
- import { BoxProps, Popover } from '@chakra-ui/react';
1
+ import { BoxProps, InputProps, Popover } from '@chakra-ui/react';
2
2
 
3
3
  export interface MonthRange {
4
4
  startMonth: Date;
@@ -6,6 +6,13 @@ export interface MonthRange {
6
6
  }
7
7
 
8
8
  export interface MonthPickerProps extends Omit<BoxProps, 'onChange'> {
9
+ /**
10
+ * Size of the trigger field, on the shared control scale (`controlSizes`) —
11
+ * the same height and type as an `Input` / `Button` of that size.
12
+ * @default 'md'
13
+ */
14
+ size?: InputProps['size'];
15
+
9
16
  /** The selected month range */
10
17
  selectedRange?: MonthRange | null;
11
18
 
@@ -0,0 +1,191 @@
1
+ import { ArgTypes, Canvas, Meta } from '@storybook/blocks';
2
+
3
+ import { En, Ko, LangToggle, Verdict } from '../../guidelines/_components/Lang';
4
+ import * as MonthPickerStories from './MonthPicker.stories';
5
+
6
+ <Meta of={MonthPickerStories} name="Usage" />
7
+
8
+ <LangToggle />
9
+
10
+ <En>
11
+
12
+ # MonthPicker
13
+
14
+ A read-only field that opens a year of month buttons, for picking a month or a
15
+ range of months.
16
+
17
+ ## When to use
18
+
19
+ - Reports and billing that work in whole months: a usage window, a
20
+ settlement month.
21
+
22
+ ## When not to use
23
+
24
+ - Specific days → `SingleDatePicker` or `RangeDatePicker`.
25
+ - A few preset windows (this month, last 3 months) → `SegmentedControl` or
26
+ `SelectField`.
27
+
28
+ ## Props
29
+
30
+ </En>
31
+
32
+ <Ko>
33
+
34
+ # MonthPicker
35
+
36
+ 누르면 한 해의 열두 달 버튼이 열리는 읽기 전용 입력란입니다. 한 달이나 여러 달의 범위를
37
+ 고릅니다.
38
+
39
+ ## 언제 쓰나요
40
+
41
+ - 사용 기간, 정산 월처럼 달 단위로 집계하는 보고서와 결제.
42
+
43
+ ## 언제 쓰지 않나요
44
+
45
+ - 특정 날짜는 `SingleDatePicker`나 `RangeDatePicker`를 씁니다.
46
+ - 이번 달, 최근 3개월 같은 정해진 기간 몇 개는 `SegmentedControl`이나 `SelectField`를
47
+ 씁니다.
48
+
49
+ ## 속성
50
+
51
+ </Ko>
52
+
53
+ <ArgTypes
54
+ of={MonthPickerStories}
55
+ include={[
56
+ 'isRange',
57
+ 'selectedRange',
58
+ 'onChange',
59
+ 'minMonth',
60
+ 'maxMonth',
61
+ 'showClearButton',
62
+ 'placeholder',
63
+ 'format',
64
+ ]}
65
+ />
66
+
67
+ <En>
68
+
69
+ - `isRange` defaults to `true`: the first click sets the start and calls
70
+ `onChange({ startMonth, endMonth: null })`, the second sets the end (the two
71
+ are put in order) and closes the popover. With `isRange={false}` one click
72
+ picks and closes.
73
+ - `minMonth` / `maxMonth` disable months outside the window, and the year
74
+ arrows stop at years with nothing selectable.
75
+ - The placeholder, the "clear" button label and month names are translated
76
+ from the provider language.
77
+
78
+ ## Do / Don't
79
+
80
+ </En>
81
+
82
+ <Ko>
83
+
84
+ - `isRange` 기본값은 `true`입니다. 첫 번째로 누른 달이 시작이 되며
85
+ `onChange({ startMonth, endMonth: null })`이 호출되고, 두 번째로 누른 달이 끝이 되면서
86
+ (앞뒤 순서는 알아서 맞춤) 팝오버가 닫힙니다. `isRange={false}`이면 한 번 누르면 고르고
87
+ 닫힙니다.
88
+ - `minMonth`·`maxMonth` 밖의 달은 비활성이 되고, 고를 달이 없는 해로는 연도 화살표가
89
+ 넘어가지 않습니다.
90
+ - 플레이스홀더, "지우기" 버튼 이름, 월 이름은 프로바이더의 언어에 맞춰 번역됩니다.
91
+
92
+ ## 이렇게 하세요 / 이렇게 하지 마세요
93
+
94
+ </Ko>
95
+
96
+ <Canvas of={MonthPickerStories.DoLabelledWindow} />
97
+ <Verdict
98
+ kind="do"
99
+ en="Label the field and bound it with minMonth and maxMonth to the months that have data."
100
+ ko="입력란에 라벨을 붙이고, minMonth와 maxMonth로 데이터가 있는 달까지만 고를 수 있게 합니다."
101
+ />
102
+
103
+ <Canvas of={MonthPickerStories.DoSingleMonth} />
104
+ <Verdict
105
+ kind="do"
106
+ en="Use isRange={false} when the answer is always one month; a range picker would ask for a second click that never matters."
107
+ ko="답이 늘 한 달이라면 isRange={false}를 씁니다. 범위 선택기는 쓸모없는 두 번째 클릭을 요구합니다."
108
+ />
109
+
110
+ <En>
111
+
112
+ ## Content
113
+
114
+ - Label the window (집계 기간, 정산 월).
115
+ - Use the default format for the language unless the page already shows
116
+ months another way.
117
+
118
+ ## Accessibility
119
+
120
+ What MonthPicker does for you:
121
+
122
+ - The field is a read-only input inside `FieldRow`, so the label is associated
123
+ and the field is reachable with Tab.
124
+ - Month cells are buttons; months outside `minMonth` / `maxMonth` are
125
+ disabled.
126
+
127
+ Known gaps, and what to do:
128
+
129
+ - **The year arrows have no accessible name.** They are icon-only buttons, so
130
+ a screen reader hears "button" (WCAG 4.1.2). Until fixed, keep the window
131
+ short enough that users rarely need to change year.
132
+ - **The selected months are shown by colour only.** The selected and in-range
133
+ buttons change variant but do not expose a pressed or selected state (WCAG
134
+ 1.4.1, 4.1.2). Repeat the chosen range in text near the field.
135
+ - Always wrap it in `FieldRow` with a label; the placeholder is not a name
136
+ (KWCAG 5.3.4.1 레이블 제공).
137
+
138
+ ## Tokens
139
+
140
+ MonthPicker has no colour tokens of its own. Month cells are `Button`
141
+ variants: `primary` for selected months and the start of a selection,
142
+ `subtle` for months inside the range, `secondary` for the rest. The field is
143
+ Chakra's `Input`, with the calendar icon in `fg.muted`.
144
+
145
+ ## Related
146
+
147
+ - **SingleDatePicker** / **RangeDatePicker**: days.
148
+ - **SegmentedControl**: preset windows.
149
+ - **Button**: the variants the month cells use.
150
+
151
+ </En>
152
+
153
+ <Ko>
154
+
155
+ ## 문구
156
+
157
+ - 기간의 이름을 라벨로 씁니다(집계 기간, 정산 월).
158
+ - 화면이 이미 다른 방식으로 월을 보여 주고 있지 않다면 언어별 기본 형식을 씁니다.
159
+
160
+ ## 접근성
161
+
162
+ MonthPicker가 알아서 하는 일
163
+
164
+ - 입력란은 `FieldRow` 안의 읽기 전용 입력이라 라벨과 연결되고 Tab으로 갈 수
165
+ 있습니다.
166
+ - 월 칸은 버튼이고, `minMonth`·`maxMonth` 밖의 달은 비활성입니다.
167
+
168
+ 알려진 한계와 대처
169
+
170
+ - **연도 화살표에 이름이 없습니다.** 아이콘만 있는 버튼이라 화면 낭독기는 "버튼"이라고만
171
+ 읽습니다(WCAG 4.1.2). 고쳐지기 전까지는 연도를 바꿀 일이 드물도록 기간을 짧게
172
+ 잡습니다.
173
+ - **선택한 달을 색으로만 보여 줍니다.** 선택된 달과 범위 안의 달은 버튼 변형만 바뀌고
174
+ 눌림이나 선택 상태를 드러내지 않습니다(WCAG 1.4.1, 4.1.2). 고른 기간을 입력란 가까이에
175
+ 글자로 한 번 더 보여 줍니다.
176
+ - 항상 라벨이 있는 `FieldRow`로 감쌉니다. 플레이스홀더는 이름이 아닙니다(KWCAG 5.3.4.1
177
+ 레이블 제공).
178
+
179
+ ## 토큰
180
+
181
+ MonthPicker에는 따로 정한 색 토큰이 없습니다. 월 칸은 `Button` 변형을 씁니다. 선택한
182
+ 달과 선택 시작 달은 `primary`, 범위 안의 달은 `subtle`, 나머지는 `secondary`입니다.
183
+ 입력란은 Chakra의 `Input`이고 달력 아이콘은 `fg.muted`입니다.
184
+
185
+ ## 관련 컴포넌트
186
+
187
+ - **SingleDatePicker** / **RangeDatePicker**: 날짜.
188
+ - **SegmentedControl**: 정해진 기간.
189
+ - **Button**: 월 칸이 쓰는 변형.
190
+
191
+ </Ko>