@omnifyjp/ui 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/README.md +379 -133
  2. package/dist/chunk-2ZIFL2X3.js +189 -0
  3. package/dist/chunk-2ZIFL2X3.js.map +1 -0
  4. package/dist/chunk-5BL4VFRJ.js +57 -0
  5. package/dist/chunk-5BL4VFRJ.js.map +1 -0
  6. package/dist/chunk-5D3OAVOZ.js +91 -0
  7. package/dist/chunk-5D3OAVOZ.js.map +1 -0
  8. package/dist/chunk-DTM76EJD.js +235 -0
  9. package/dist/chunk-DTM76EJD.js.map +1 -0
  10. package/dist/chunk-EJEVW4RO.js +49 -0
  11. package/dist/chunk-EJEVW4RO.js.map +1 -0
  12. package/dist/chunk-JXFBHSPN.js +37 -0
  13. package/dist/chunk-JXFBHSPN.js.map +1 -0
  14. package/dist/chunk-O25D7DCP.js +72 -0
  15. package/dist/chunk-O25D7DCP.js.map +1 -0
  16. package/dist/chunk-OY3PSPA5.js +661 -0
  17. package/dist/chunk-OY3PSPA5.js.map +1 -0
  18. package/dist/chunk-SHHZRZMM.js +83 -0
  19. package/dist/chunk-SHHZRZMM.js.map +1 -0
  20. package/dist/chunk-X57K24P3.js +224 -0
  21. package/dist/chunk-X57K24P3.js.map +1 -0
  22. package/dist/chunk-XDXGUPCR.js +123 -0
  23. package/dist/chunk-XDXGUPCR.js.map +1 -0
  24. package/dist/components/AppShell.d.ts +27 -0
  25. package/dist/components/AppShell.js +11 -0
  26. package/dist/components/AppShell.js.map +1 -0
  27. package/dist/components/Header.d.ts +11 -0
  28. package/dist/components/Header.js +6 -0
  29. package/dist/components/Header.js.map +1 -0
  30. package/dist/components/OrganizationSelector.d.ts +8 -0
  31. package/dist/components/OrganizationSelector.js +4 -0
  32. package/dist/components/OrganizationSelector.js.map +1 -0
  33. package/dist/components/OrganizationSetupModal.d.ts +5 -0
  34. package/dist/components/OrganizationSetupModal.js +4 -0
  35. package/dist/components/OrganizationSetupModal.js.map +1 -0
  36. package/dist/components/PageContainer.d.ts +105 -0
  37. package/dist/components/PageContainer.js +3 -0
  38. package/dist/components/PageContainer.js.map +1 -0
  39. package/dist/components/ServiceMenu.d.ts +11 -0
  40. package/dist/components/ServiceMenu.js +3 -0
  41. package/dist/components/ServiceMenu.js.map +1 -0
  42. package/dist/components/Sidebar.d.ts +11 -0
  43. package/dist/components/Sidebar.js +5 -0
  44. package/dist/components/Sidebar.js.map +1 -0
  45. package/dist/contexts/OrganizationContext.d.ts +26 -0
  46. package/dist/contexts/OrganizationContext.js +3 -0
  47. package/dist/contexts/OrganizationContext.js.map +1 -0
  48. package/dist/contexts/ThemeContext.d.ts +14 -0
  49. package/dist/contexts/ThemeContext.js +3 -0
  50. package/dist/contexts/ThemeContext.js.map +1 -0
  51. package/dist/hooks/useDateFormat.d.ts +28 -0
  52. package/dist/hooks/useDateFormat.js +4 -0
  53. package/dist/hooks/useDateFormat.js.map +1 -0
  54. package/dist/i18n.d.ts +38 -0
  55. package/dist/i18n.js +3 -0
  56. package/dist/i18n.js.map +1 -0
  57. package/dist/index.d.ts +13 -109
  58. package/dist/index.js +11 -70
  59. package/dist/types.d.ts +89 -0
  60. package/dist/types.js +3 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +23 -70
  63. package/dist/chunk-2C2HRGM7.js +0 -51
  64. package/dist/chunk-2C2HRGM7.js.map +0 -1
  65. package/dist/chunk-2TUWDXAC.js +0 -196
  66. package/dist/chunk-2TUWDXAC.js.map +0 -1
  67. package/dist/chunk-34ARZSNP.js +0 -63
  68. package/dist/chunk-34ARZSNP.js.map +0 -1
  69. package/dist/chunk-35DNN46W.js +0 -13
  70. package/dist/chunk-35DNN46W.js.map +0 -1
  71. package/dist/chunk-35U6QG4P.js +0 -116
  72. package/dist/chunk-35U6QG4P.js.map +0 -1
  73. package/dist/chunk-36YYHIJU.js +0 -52
  74. package/dist/chunk-36YYHIJU.js.map +0 -1
  75. package/dist/chunk-3EOHW4QN.js +0 -35
  76. package/dist/chunk-3EOHW4QN.js.map +0 -1
  77. package/dist/chunk-3UPBCOS4.js +0 -39
  78. package/dist/chunk-3UPBCOS4.js.map +0 -1
  79. package/dist/chunk-3VU56V66.js +0 -41
  80. package/dist/chunk-3VU56V66.js.map +0 -1
  81. package/dist/chunk-55E7D2HR.js +0 -99
  82. package/dist/chunk-55E7D2HR.js.map +0 -1
  83. package/dist/chunk-67YUL2ZS.js +0 -53
  84. package/dist/chunk-67YUL2ZS.js.map +0 -1
  85. package/dist/chunk-6DIDQ4TB.js +0 -131
  86. package/dist/chunk-6DIDQ4TB.js.map +0 -1
  87. package/dist/chunk-6GWVQB3Q.js +0 -155
  88. package/dist/chunk-6GWVQB3Q.js.map +0 -1
  89. package/dist/chunk-75WZR6HF.js +0 -44
  90. package/dist/chunk-75WZR6HF.js.map +0 -1
  91. package/dist/chunk-7IRLBU2I.js +0 -114
  92. package/dist/chunk-7IRLBU2I.js.map +0 -1
  93. package/dist/chunk-7RMTPT6O.js +0 -99
  94. package/dist/chunk-7RMTPT6O.js.map +0 -1
  95. package/dist/chunk-7XH3MGBR.js +0 -128
  96. package/dist/chunk-7XH3MGBR.js.map +0 -1
  97. package/dist/chunk-A3BB5ZOC.js +0 -77
  98. package/dist/chunk-A3BB5ZOC.js.map +0 -1
  99. package/dist/chunk-B434PORR.js +0 -239
  100. package/dist/chunk-B434PORR.js.map +0 -1
  101. package/dist/chunk-BAQWGQJG.js +0 -106
  102. package/dist/chunk-BAQWGQJG.js.map +0 -1
  103. package/dist/chunk-BRSM3SZP.js +0 -46
  104. package/dist/chunk-BRSM3SZP.js.map +0 -1
  105. package/dist/chunk-C34KSTWA.js +0 -43
  106. package/dist/chunk-C34KSTWA.js.map +0 -1
  107. package/dist/chunk-C5NZAOA7.js +0 -54
  108. package/dist/chunk-C5NZAOA7.js.map +0 -1
  109. package/dist/chunk-CUZR4JWM.js +0 -23
  110. package/dist/chunk-CUZR4JWM.js.map +0 -1
  111. package/dist/chunk-DGPY4WP3.js +0 -11
  112. package/dist/chunk-DGPY4WP3.js.map +0 -1
  113. package/dist/chunk-EWBCV7VA.js +0 -65
  114. package/dist/chunk-EWBCV7VA.js.map +0 -1
  115. package/dist/chunk-F2ZJLKDP.js +0 -119
  116. package/dist/chunk-F2ZJLKDP.js.map +0 -1
  117. package/dist/chunk-FLWMT4DB.js +0 -66
  118. package/dist/chunk-FLWMT4DB.js.map +0 -1
  119. package/dist/chunk-FRKG7JQY.js +0 -48
  120. package/dist/chunk-FRKG7JQY.js.map +0 -1
  121. package/dist/chunk-G7HTZBUR.js +0 -187
  122. package/dist/chunk-G7HTZBUR.js.map +0 -1
  123. package/dist/chunk-HWTW64R5.js +0 -90
  124. package/dist/chunk-HWTW64R5.js.map +0 -1
  125. package/dist/chunk-IAWKX5W4.js +0 -219
  126. package/dist/chunk-IAWKX5W4.js.map +0 -1
  127. package/dist/chunk-INLM7UJC.js +0 -238
  128. package/dist/chunk-INLM7UJC.js.map +0 -1
  129. package/dist/chunk-JAJMM32I.js +0 -18
  130. package/dist/chunk-JAJMM32I.js.map +0 -1
  131. package/dist/chunk-JJSVA3TH.js +0 -61
  132. package/dist/chunk-JJSVA3TH.js.map +0 -1
  133. package/dist/chunk-JLTBUACL.js +0 -121
  134. package/dist/chunk-JLTBUACL.js.map +0 -1
  135. package/dist/chunk-JRU2QX7T.js +0 -38
  136. package/dist/chunk-JRU2QX7T.js.map +0 -1
  137. package/dist/chunk-JXGRW2MR.js +0 -17
  138. package/dist/chunk-JXGRW2MR.js.map +0 -1
  139. package/dist/chunk-KTBOZ4NE.js +0 -93
  140. package/dist/chunk-KTBOZ4NE.js.map +0 -1
  141. package/dist/chunk-LMT327XH.js +0 -56
  142. package/dist/chunk-LMT327XH.js.map +0 -1
  143. package/dist/chunk-LTTNCAAA.js +0 -138
  144. package/dist/chunk-LTTNCAAA.js.map +0 -1
  145. package/dist/chunk-LVZNNIK4.js +0 -111
  146. package/dist/chunk-LVZNNIK4.js.map +0 -1
  147. package/dist/chunk-MJLFJPUG.js +0 -143
  148. package/dist/chunk-MJLFJPUG.js.map +0 -1
  149. package/dist/chunk-MZ2P566X.js +0 -65
  150. package/dist/chunk-MZ2P566X.js.map +0 -1
  151. package/dist/chunk-N47H4MHX.js +0 -41
  152. package/dist/chunk-N47H4MHX.js.map +0 -1
  153. package/dist/chunk-NNJTKHCE.js +0 -160
  154. package/dist/chunk-NNJTKHCE.js.map +0 -1
  155. package/dist/chunk-NPL2R5LD.js +0 -171
  156. package/dist/chunk-NPL2R5LD.js.map +0 -1
  157. package/dist/chunk-NU56GKGM.js +0 -44
  158. package/dist/chunk-NU56GKGM.js.map +0 -1
  159. package/dist/chunk-P3M5TZD2.js +0 -24
  160. package/dist/chunk-P3M5TZD2.js.map +0 -1
  161. package/dist/chunk-PGWNOZDX.js +0 -28
  162. package/dist/chunk-PGWNOZDX.js.map +0 -1
  163. package/dist/chunk-QB3UWRZH.js +0 -92
  164. package/dist/chunk-QB3UWRZH.js.map +0 -1
  165. package/dist/chunk-R2CDE5DO.js +0 -33
  166. package/dist/chunk-R2CDE5DO.js.map +0 -1
  167. package/dist/chunk-RQNZDWY3.js +0 -65
  168. package/dist/chunk-RQNZDWY3.js.map +0 -1
  169. package/dist/chunk-S6PDRGR5.js +0 -109
  170. package/dist/chunk-S6PDRGR5.js.map +0 -1
  171. package/dist/chunk-TGYQ3AKH.js +0 -95
  172. package/dist/chunk-TGYQ3AKH.js.map +0 -1
  173. package/dist/chunk-THQUH6WX.js +0 -81
  174. package/dist/chunk-THQUH6WX.js.map +0 -1
  175. package/dist/chunk-TJMK2KBE.js +0 -112
  176. package/dist/chunk-TJMK2KBE.js.map +0 -1
  177. package/dist/chunk-TTH7TWVX.js +0 -30
  178. package/dist/chunk-TTH7TWVX.js.map +0 -1
  179. package/dist/chunk-USIHM7FV.js +0 -211
  180. package/dist/chunk-USIHM7FV.js.map +0 -1
  181. package/dist/chunk-VVYSAGB3.js +0 -104
  182. package/dist/chunk-VVYSAGB3.js.map +0 -1
  183. package/dist/chunk-WD5KZE25.js +0 -25
  184. package/dist/chunk-WD5KZE25.js.map +0 -1
  185. package/dist/chunk-WL4ZO2H3.js +0 -33
  186. package/dist/chunk-WL4ZO2H3.js.map +0 -1
  187. package/dist/chunk-WRCHR4AK.js +0 -23
  188. package/dist/chunk-WRCHR4AK.js.map +0 -1
  189. package/dist/chunk-XOJJBNDX.js +0 -33
  190. package/dist/chunk-XOJJBNDX.js.map +0 -1
  191. package/dist/chunk-XUVLD65E.js +0 -617
  192. package/dist/chunk-XUVLD65E.js.map +0 -1
  193. package/dist/chunk-YBMEQZX7.js +0 -164
  194. package/dist/chunk-YBMEQZX7.js.map +0 -1
  195. package/dist/chunk-Z2QAABLM.js +0 -86
  196. package/dist/chunk-Z2QAABLM.js.map +0 -1
  197. package/dist/chunk-ZHEKDP5X.js +0 -41
  198. package/dist/chunk-ZHEKDP5X.js.map +0 -1
  199. package/dist/chunk-ZPMXRW2A.js +0 -63
  200. package/dist/chunk-ZPMXRW2A.js.map +0 -1
  201. package/dist/chunk-ZYEGBF7G.js +0 -25
  202. package/dist/chunk-ZYEGBF7G.js.map +0 -1
  203. package/dist/components/accordion.d.ts +0 -37
  204. package/dist/components/accordion.js +0 -4
  205. package/dist/components/accordion.js.map +0 -1
  206. package/dist/components/alert-dialog.d.ts +0 -56
  207. package/dist/components/alert-dialog.js +0 -5
  208. package/dist/components/alert-dialog.js.map +0 -1
  209. package/dist/components/alert.d.ts +0 -68
  210. package/dist/components/alert.js +0 -4
  211. package/dist/components/alert.js.map +0 -1
  212. package/dist/components/aspect-ratio.d.ts +0 -23
  213. package/dist/components/aspect-ratio.js +0 -3
  214. package/dist/components/aspect-ratio.js.map +0 -1
  215. package/dist/components/avatar.d.ts +0 -48
  216. package/dist/components/avatar.js +0 -4
  217. package/dist/components/avatar.js.map +0 -1
  218. package/dist/components/badge.d.ts +0 -52
  219. package/dist/components/badge.js +0 -4
  220. package/dist/components/badge.js.map +0 -1
  221. package/dist/components/breadcrumb.d.ts +0 -50
  222. package/dist/components/breadcrumb.js +0 -4
  223. package/dist/components/breadcrumb.js.map +0 -1
  224. package/dist/components/button.d.ts +0 -81
  225. package/dist/components/button.js +0 -4
  226. package/dist/components/button.js.map +0 -1
  227. package/dist/components/calendar-category-badge.d.ts +0 -24
  228. package/dist/components/calendar-category-badge.js +0 -5
  229. package/dist/components/calendar-category-badge.js.map +0 -1
  230. package/dist/components/calendar-event-chip.d.ts +0 -41
  231. package/dist/components/calendar-event-chip.js +0 -4
  232. package/dist/components/calendar-event-chip.js.map +0 -1
  233. package/dist/components/calendar-event-sheet.d.ts +0 -68
  234. package/dist/components/calendar-event-sheet.js +0 -9
  235. package/dist/components/calendar-event-sheet.js.map +0 -1
  236. package/dist/components/calendar-mini.d.ts +0 -65
  237. package/dist/components/calendar-mini.js +0 -6
  238. package/dist/components/calendar-mini.js.map +0 -1
  239. package/dist/components/calendar-toolbar.d.ts +0 -58
  240. package/dist/components/calendar-toolbar.js +0 -7
  241. package/dist/components/calendar-toolbar.js.map +0 -1
  242. package/dist/components/calendar.d.ts +0 -19
  243. package/dist/components/calendar.js +0 -5
  244. package/dist/components/calendar.js.map +0 -1
  245. package/dist/components/card.d.ts +0 -43
  246. package/dist/components/card.js +0 -4
  247. package/dist/components/card.js.map +0 -1
  248. package/dist/components/carousel.d.ts +0 -53
  249. package/dist/components/carousel.js +0 -5
  250. package/dist/components/carousel.js.map +0 -1
  251. package/dist/components/chart.d.ts +0 -103
  252. package/dist/components/chart.js +0 -4
  253. package/dist/components/chart.js.map +0 -1
  254. package/dist/components/checkbox.d.ts +0 -24
  255. package/dist/components/checkbox.js +0 -4
  256. package/dist/components/checkbox.js.map +0 -1
  257. package/dist/components/collapsible.d.ts +0 -28
  258. package/dist/components/collapsible.js +0 -3
  259. package/dist/components/collapsible.js.map +0 -1
  260. package/dist/components/color-picker.d.ts +0 -35
  261. package/dist/components/color-picker.js +0 -7
  262. package/dist/components/color-picker.js.map +0 -1
  263. package/dist/components/combobox.d.ts +0 -98
  264. package/dist/components/combobox.js +0 -8
  265. package/dist/components/combobox.js.map +0 -1
  266. package/dist/components/command.d.ts +0 -63
  267. package/dist/components/command.js +0 -5
  268. package/dist/components/command.js.map +0 -1
  269. package/dist/components/context-menu.d.ts +0 -70
  270. package/dist/components/context-menu.js +0 -4
  271. package/dist/components/context-menu.js.map +0 -1
  272. package/dist/components/date-picker.d.ts +0 -71
  273. package/dist/components/date-picker.js +0 -7
  274. package/dist/components/date-picker.js.map +0 -1
  275. package/dist/components/dialog.d.ts +0 -58
  276. package/dist/components/dialog.js +0 -4
  277. package/dist/components/dialog.js.map +0 -1
  278. package/dist/components/drawer.d.ts +0 -60
  279. package/dist/components/drawer.js +0 -4
  280. package/dist/components/drawer.js.map +0 -1
  281. package/dist/components/dropdown-menu.d.ts +0 -76
  282. package/dist/components/dropdown-menu.js +0 -4
  283. package/dist/components/dropdown-menu.js.map +0 -1
  284. package/dist/components/file-upload.d.ts +0 -44
  285. package/dist/components/file-upload.js +0 -5
  286. package/dist/components/file-upload.js.map +0 -1
  287. package/dist/components/form.d.ts +0 -67
  288. package/dist/components/form.js +0 -5
  289. package/dist/components/form.js.map +0 -1
  290. package/dist/components/hover-card.d.ts +0 -43
  291. package/dist/components/hover-card.js +0 -4
  292. package/dist/components/hover-card.js.map +0 -1
  293. package/dist/components/input-otp.d.ts +0 -38
  294. package/dist/components/input-otp.js +0 -4
  295. package/dist/components/input-otp.js.map +0 -1
  296. package/dist/components/input.d.ts +0 -38
  297. package/dist/components/input.js +0 -4
  298. package/dist/components/input.js.map +0 -1
  299. package/dist/components/label.d.ts +0 -20
  300. package/dist/components/label.js +0 -4
  301. package/dist/components/label.js.map +0 -1
  302. package/dist/components/menubar.d.ts +0 -82
  303. package/dist/components/menubar.js +0 -4
  304. package/dist/components/menubar.js.map +0 -1
  305. package/dist/components/navigation-menu.d.ts +0 -64
  306. package/dist/components/navigation-menu.js +0 -4
  307. package/dist/components/navigation-menu.js.map +0 -1
  308. package/dist/components/pagination.d.ts +0 -59
  309. package/dist/components/pagination.js +0 -5
  310. package/dist/components/pagination.js.map +0 -1
  311. package/dist/components/password-input.d.ts +0 -32
  312. package/dist/components/password-input.js +0 -5
  313. package/dist/components/password-input.js.map +0 -1
  314. package/dist/components/permission-grid.d.ts +0 -67
  315. package/dist/components/permission-grid.js +0 -5
  316. package/dist/components/permission-grid.js.map +0 -1
  317. package/dist/components/popover.d.ts +0 -37
  318. package/dist/components/popover.js +0 -4
  319. package/dist/components/popover.js.map +0 -1
  320. package/dist/components/progress.d.ts +0 -20
  321. package/dist/components/progress.js +0 -4
  322. package/dist/components/progress.js.map +0 -1
  323. package/dist/components/radio-group.d.ts +0 -38
  324. package/dist/components/radio-group.js +0 -4
  325. package/dist/components/radio-group.js.map +0 -1
  326. package/dist/components/rating.d.ts +0 -35
  327. package/dist/components/rating.js +0 -4
  328. package/dist/components/rating.js.map +0 -1
  329. package/dist/components/resizable.d.ts +0 -36
  330. package/dist/components/resizable.js +0 -4
  331. package/dist/components/resizable.js.map +0 -1
  332. package/dist/components/scope-tree.d.ts +0 -78
  333. package/dist/components/scope-tree.js +0 -5
  334. package/dist/components/scope-tree.js.map +0 -1
  335. package/dist/components/scope-type-badge.d.ts +0 -35
  336. package/dist/components/scope-type-badge.js +0 -5
  337. package/dist/components/scope-type-badge.js.map +0 -1
  338. package/dist/components/scroll-area.d.ts +0 -29
  339. package/dist/components/scroll-area.js +0 -4
  340. package/dist/components/scroll-area.js.map +0 -1
  341. package/dist/components/select.d.ts +0 -52
  342. package/dist/components/select.js +0 -4
  343. package/dist/components/select.js.map +0 -1
  344. package/dist/components/separator.d.ts +0 -24
  345. package/dist/components/separator.js +0 -4
  346. package/dist/components/separator.js.map +0 -1
  347. package/dist/components/sheet.d.ts +0 -51
  348. package/dist/components/sheet.js +0 -4
  349. package/dist/components/sheet.js.map +0 -1
  350. package/dist/components/sidebar.d.ts +0 -169
  351. package/dist/components/sidebar.js +0 -11
  352. package/dist/components/sidebar.js.map +0 -1
  353. package/dist/components/skeleton.d.ts +0 -25
  354. package/dist/components/skeleton.js +0 -4
  355. package/dist/components/skeleton.js.map +0 -1
  356. package/dist/components/slider.d.ts +0 -24
  357. package/dist/components/slider.js +0 -4
  358. package/dist/components/slider.js.map +0 -1
  359. package/dist/components/slug-input.d.ts +0 -50
  360. package/dist/components/slug-input.js +0 -6
  361. package/dist/components/slug-input.js.map +0 -1
  362. package/dist/components/sonner.d.ts +0 -22
  363. package/dist/components/sonner.js +0 -3
  364. package/dist/components/sonner.js.map +0 -1
  365. package/dist/components/stage-type-badge.d.ts +0 -30
  366. package/dist/components/stage-type-badge.js +0 -5
  367. package/dist/components/stage-type-badge.js.map +0 -1
  368. package/dist/components/switch.d.ts +0 -26
  369. package/dist/components/switch.js +0 -4
  370. package/dist/components/switch.js.map +0 -1
  371. package/dist/components/table.d.ts +0 -57
  372. package/dist/components/table.js +0 -4
  373. package/dist/components/table.js.map +0 -1
  374. package/dist/components/tabs.d.ts +0 -39
  375. package/dist/components/tabs.js +0 -4
  376. package/dist/components/tabs.js.map +0 -1
  377. package/dist/components/tag-input.d.ts +0 -40
  378. package/dist/components/tag-input.js +0 -5
  379. package/dist/components/tag-input.js.map +0 -1
  380. package/dist/components/textarea.d.ts +0 -21
  381. package/dist/components/textarea.js +0 -4
  382. package/dist/components/textarea.js.map +0 -1
  383. package/dist/components/time-picker.d.ts +0 -57
  384. package/dist/components/time-picker.js +0 -8
  385. package/dist/components/time-picker.js.map +0 -1
  386. package/dist/components/toggle-group.d.ts +0 -45
  387. package/dist/components/toggle-group.js +0 -5
  388. package/dist/components/toggle-group.js.map +0 -1
  389. package/dist/components/toggle.d.ts +0 -31
  390. package/dist/components/toggle.js +0 -4
  391. package/dist/components/toggle.js.map +0 -1
  392. package/dist/components/tooltip.d.ts +0 -34
  393. package/dist/components/tooltip.js +0 -4
  394. package/dist/components/tooltip.js.map +0 -1
  395. package/dist/components/workflow-category-badge.d.ts +0 -32
  396. package/dist/components/workflow-category-badge.js +0 -5
  397. package/dist/components/workflow-category-badge.js.map +0 -1
  398. package/dist/components/workflow-diagram.d.ts +0 -63
  399. package/dist/components/workflow-diagram.js +0 -5
  400. package/dist/components/workflow-diagram.js.map +0 -1
  401. package/dist/components/workflow-status-badge.d.ts +0 -30
  402. package/dist/components/workflow-status-badge.js +0 -5
  403. package/dist/components/workflow-status-badge.js.map +0 -1
  404. package/dist/components/workflow-stepper.d.ts +0 -52
  405. package/dist/components/workflow-stepper.js +0 -4
  406. package/dist/components/workflow-stepper.js.map +0 -1
  407. package/dist/hooks/use-mobile.d.ts +0 -3
  408. package/dist/hooks/use-mobile.js +0 -3
  409. package/dist/hooks/use-mobile.js.map +0 -1
  410. package/dist/lib/utils.d.ts +0 -5
  411. package/dist/lib/utils.js +0 -3
  412. package/dist/lib/utils.js.map +0 -1
  413. package/dist/types-CBVkScfB.d.ts +0 -84
  414. package/src/styles/fonts.css +0 -0
  415. package/src/styles/index.css +0 -3
  416. package/src/styles/tailwind.css +0 -4
  417. package/src/styles/theme.css +0 -461
package/README.md CHANGED
@@ -1,218 +1,464 @@
1
1
  # @omnifyjp/ui
2
2
 
3
- A comprehensive React UI component library built on [Shadcn UI](https://ui.shadcn.com/) + [Radix UI](https://www.radix-ui.com/) + [Tailwind CSS v4](https://tailwindcss.com/). Provides 53 accessible primitives and 14 domain-specific components all tree-shakeable with per-component entry points.
3
+ A production-ready application shell framework for multi-tenant React apps. Provides a complete layout system with collapsible sidebar, header with organization switching, theme management, internationalization (vi/en/ja), and flexible page containers.
4
+
5
+ Built on top of [`@omnifyjp/ui-components`](https://www.npmjs.com/package/@omnifyjp/ui-components) components.
4
6
 
5
7
  ## Installation
6
8
 
7
9
  ```bash
8
10
  npm install @omnifyjp/ui
9
- # or
10
- pnpm add @omnifyjp/ui
11
+ # This automatically installs @omnifyjp/ui-components as a dependency
11
12
  ```
12
13
 
13
14
  ### Peer Dependencies
14
15
 
15
16
  ```bash
16
- npm install react react-dom
17
+ npm install react react-dom react-router
17
18
  ```
18
19
 
19
- Optional peers (only needed if you use specific components):
20
+ ---
21
+
22
+ ## Quick Start
20
23
 
21
- | Peer | Required By |
22
- |------|-------------|
23
- | `date-fns` (>=3) | `calendar`, `date-picker` |
24
- | `recharts` (>=2) | `chart` |
25
- | `react-hook-form` (>=7) | `form` |
24
+ ```tsx
25
+ import { createBrowserRouter, RouterProvider } from 'react-router';
26
+ import { AppShell, initOmnifyI18n } from '@omnifyjp/ui';
27
+ import type { ShellConfig } from '@omnifyjp/ui';
28
+ import { LayoutDashboard, Users, Settings } from 'lucide-react';
29
+
30
+ // 1. Initialize i18n with your service translations
31
+ import enLocale from './locales/en.json';
32
+ import viLocale from './locales/vi.json';
33
+
34
+ initOmnifyI18n({
35
+ namespaces: {
36
+ myapp: { en: enLocale, vi: viLocale },
37
+ },
38
+ });
39
+
40
+ // 2. Define shell configuration
41
+ const config: ShellConfig = {
42
+ app: {
43
+ name: 'My App',
44
+ key: 'myapp',
45
+ logo: { icon: LayoutDashboard, text: 'My App', color: 'text-blue-600' },
46
+ },
47
+ sidebar: {
48
+ menuItems: [
49
+ { icon: LayoutDashboard, label: 'Dashboard', path: '/' },
50
+ { icon: Users, label: 'Users', path: '/users' },
51
+ { icon: Settings, label: 'Settings', path: '/settings' },
52
+ ],
53
+ },
54
+ header: {
55
+ user: {
56
+ name: 'John Doe',
57
+ email: 'john@example.com',
58
+ onLogout: () => console.log('logout'),
59
+ },
60
+ },
61
+ organization: {
62
+ organizations: [
63
+ { id: '1', name: 'Acme Corp', shortName: 'AC' },
64
+ ],
65
+ branches: [
66
+ { id: '1', name: 'Tokyo Office', organizationId: '1', location: 'Tokyo' },
67
+ { id: '2', name: 'Hanoi Office', organizationId: '1', location: 'Hanoi' },
68
+ ],
69
+ },
70
+ };
71
+
72
+ // 3. Set up routes with AppShell as the layout
73
+ const router = createBrowserRouter([
74
+ {
75
+ path: '/',
76
+ element: <AppShell config={config} />,
77
+ children: [
78
+ { index: true, element: <Dashboard /> },
79
+ { path: 'users', element: <Users /> },
80
+ { path: 'settings', element: <Settings /> },
81
+ ],
82
+ },
83
+ ]);
84
+
85
+ function App() {
86
+ return <RouterProvider router={router} />;
87
+ }
88
+ ```
26
89
 
27
90
  ---
28
91
 
29
- ## Usage
92
+ ## Core Components
93
+
94
+ ### AppShell
30
95
 
31
- ### Import individual components (recommended)
96
+ The main application wrapper. Combines `ThemeProvider` + `I18nextProvider` + `OrganizationProvider`, then renders the sidebar, header, and a React Router `<Outlet />`.
32
97
 
33
98
  ```tsx
34
- import { Button } from '@omnifyjp/ui/components/button';
35
- import { Card, CardContent, CardHeader, CardTitle } from '@omnifyjp/ui/components/card';
36
- import { Input } from '@omnifyjp/ui/components/input';
99
+ import { AppShell } from '@omnifyjp/ui';
100
+
101
+ <AppShell config={config} extra={<ChatWidget />} />
37
102
  ```
38
103
 
39
- ### Import from barrel (convenience)
104
+ | Prop | Type | Description |
105
+ |------|------|-------------|
106
+ | `config` | `ShellConfig` | Full shell configuration (see below) |
107
+ | `extra` | `ReactNode` | Optional floating elements (e.g., chat widget) |
40
108
 
41
- ```tsx
42
- import { Button, Card, Input } from '@omnifyjp/ui';
43
- ```
109
+ ### Sidebar
110
+
111
+ Collapsible left navigation with context switching, expandable groups, and tooltips when collapsed.
112
+
113
+ Features:
114
+ - Logo area with app icon
115
+ - Main menu items with nested groups
116
+ - Context switching popover (e.g., project switcher with search)
117
+ - Recent items section
118
+ - Collapse/expand toggle
119
+ - Organization selector badge
120
+
121
+ ### Header
44
122
 
45
- ### Import utilities
123
+ Top navigation bar with:
124
+ - Organization/branch selector
125
+ - Service menu (grid of available apps)
126
+ - Global search input
127
+ - Notification dropdown with count badge
128
+ - Custom action buttons
129
+ - User menu (profile, settings, logout)
130
+
131
+ ### PageContainer
132
+
133
+ Flexible page layout wrapper with three variants:
46
134
 
47
135
  ```tsx
48
- import { cn } from '@omnifyjp/ui/lib/utils';
136
+ import {
137
+ StandardPageContainer,
138
+ SplitPageContainer,
139
+ FullWidthPageContainer,
140
+ } from '@omnifyjp/ui';
141
+
142
+ // Standard — padded page with title bar
143
+ <StandardPageContainer title="Users" subtitle="Manage team members" extra={<Button>Add User</Button>}>
144
+ <UserTable />
145
+ </StandardPageContainer>
146
+
147
+ // Split — two-column layout with sidebar
148
+ <SplitPageContainer title="Settings" sidebar={<SettingsNav />} sidebarPosition="left">
149
+ <SettingsForm />
150
+ </SplitPageContainer>
151
+
152
+ // Full width — no padding (for Kanban boards, Gantt charts)
153
+ <FullWidthPageContainer>
154
+ <KanbanBoard />
155
+ </FullWidthPageContainer>
49
156
  ```
50
157
 
51
- ### Import hooks
158
+ | Prop | Type | Default | Description |
159
+ |------|------|---------|-------------|
160
+ | `title` | `string` | — | Page heading |
161
+ | `subtitle` | `string` | — | Description text below title |
162
+ | `extra` | `ReactNode` | — | Header actions (buttons, etc.) |
163
+ | `children` | `ReactNode` | — | Main content |
164
+ | `footer` | `ReactNode` | — | Footer content |
165
+ | `variant` | `'standard' \| 'split' \| 'full'` | `'standard'` | Layout mode |
166
+ | `sidebar` | `ReactNode` | — | Sidebar content (split mode) |
167
+ | `sidebarPosition` | `'left' \| 'right'` | `'right'` | Sidebar placement |
168
+ | `sidebarWidth` | `string` | `'w-80'` | Sidebar Tailwind width class |
169
+
170
+ ### OrganizationSelector
171
+
172
+ Two-step modal for switching organizations and branches:
173
+
174
+ 1. **Step 1**: Select organization (shows description + branch count)
175
+ 2. **Step 2**: Select branch (searchable, shows location)
52
176
 
53
177
  ```tsx
54
- import { useIsMobile } from '@omnifyjp/ui/hooks/use-mobile';
178
+ import { OrganizationSelector } from '@omnifyjp/ui';
179
+
180
+ <OrganizationSelector variant="header" /> // in header
181
+ <OrganizationSelector variant="sidebar" /> // in sidebar
55
182
  ```
56
183
 
57
- ### Import theme CSS
184
+ ### ServiceMenu
58
185
 
59
- ```css
60
- @import '@omnifyjp/ui/styles';
186
+ Searchable dropdown grid listing all available services/apps:
187
+
188
+ ```tsx
189
+ const config: ShellConfig = {
190
+ services: [
191
+ {
192
+ category: 'HR',
193
+ items: [
194
+ { icon: Users, label: 'Attendance', url: '/attendance', color: 'bg-blue-600' },
195
+ { icon: Calendar, label: 'Leave', url: '/leave', color: 'bg-green-600' },
196
+ ],
197
+ },
198
+ ],
199
+ };
61
200
  ```
62
201
 
63
202
  ---
64
203
 
65
- ## Components
66
-
67
- ### Shadcn UI Primitives (53)
204
+ ## Configuration: `ShellConfig`
205
+
206
+ ```typescript
207
+ interface ShellConfig {
208
+ app: {
209
+ name: string; // App display name
210
+ key: string; // App identifier
211
+ logo: {
212
+ icon: LucideIcon; // Logo icon
213
+ text: string; // Logo text
214
+ color?: string; // Icon color class
215
+ };
216
+ };
217
+
218
+ sidebar: {
219
+ menuItems: SidebarMenuItem[]; // Navigation items
220
+ contextMenu?: { // Context switcher (e.g., project selector)
221
+ paramName: string; // URL param name
222
+ getItems: () => ContextItem[];
223
+ getHeader?: () => ReactNode;
224
+ getFooterItems?: () => ContextItem[];
225
+ };
226
+ recentItems?: { // Recent items section
227
+ title: string;
228
+ items: { label: string; path: string; badge?: string; color?: string }[];
229
+ };
230
+ footer?: ReactNode; // Custom sidebar footer
231
+ };
232
+
233
+ services?: ServiceCategory[]; // Service menu grid
234
+
235
+ header?: {
236
+ searchPlaceholder?: string;
237
+ showSearch?: boolean; // Default: true
238
+ actions?: ReactNode; // Custom header buttons
239
+ notifications?: {
240
+ count: number;
241
+ content: ReactNode;
242
+ };
243
+ user?: {
244
+ name: string;
245
+ email?: string;
246
+ avatar?: string;
247
+ onLogout?: () => void;
248
+ };
249
+ };
250
+
251
+ organization?: {
252
+ organizations: Organization[];
253
+ branches: Branch[];
254
+ onOrganizationChange?: (org: Organization) => void;
255
+ onBranchChange?: (branch: Branch) => void;
256
+ };
257
+ }
258
+ ```
68
259
 
69
- All Shadcn primitives are included, fully accessible via Radix UI, with dark mode support.
260
+ ### SidebarMenuItem
70
261
 
71
- | Category | Components |
72
- |----------|-----------|
73
- | **Layout** | `aspect-ratio`, `card`, `resizable`, `scroll-area`, `separator`, `skeleton` |
74
- | **Navigation** | `breadcrumb`, `menubar`, `navigation-menu`, `pagination`, `tabs` |
75
- | **Data Display** | `avatar`, `badge`, `calendar`, `carousel`, `chart`, `hover-card`, `progress`, `table`, `tooltip` |
76
- | **Data Entry** | `button`, `checkbox`, `color-picker`, `combobox`, `date-picker`, `file-upload`, `form`, `input`, `input-otp`, `label`, `radio-group`, `rating`, `select`, `slider`, `switch`, `tag-input`, `textarea`, `time-picker`, `toggle`, `toggle-group` |
77
- | **Feedback** | `alert`, `alert-dialog`, `sonner` (toast) |
78
- | **Overlay** | `command`, `context-menu`, `dialog`, `drawer`, `dropdown-menu`, `popover`, `sheet` |
79
- | **Composition** | `accordion`, `collapsible`, `sidebar` |
262
+ ```typescript
263
+ interface SidebarMenuItem {
264
+ icon: LucideIcon;
265
+ label: string;
266
+ path?: string; // Omit for collapsible groups
267
+ badge?: number; // Notification count
268
+ children?: SidebarMenuItem[]; // Nested items
269
+ }
270
+ ```
80
271
 
81
- ### Domain Components (14)
272
+ ---
82
273
 
83
- Shared business-logic components, locale-agnostic (accept `labels` prop with English defaults).
274
+ ## Context Providers
84
275
 
85
- #### Calendar
276
+ ### ThemeProvider
86
277
 
87
- | Component | Description |
88
- |-----------|-------------|
89
- | `CalendarMini` | Compact month calendar with event dots |
90
- | `CalendarEventChip` | Colored event bar for calendar grids |
91
- | `CalendarEventSheet` | Side panel for event details |
92
- | `CalendarToolbar` | Date navigation with view switcher (month/week/day) |
93
- | `CalendarCategoryBadge` | Colored category label |
278
+ Dark mode management with system preference detection:
94
279
 
95
- #### Workflow
280
+ ```tsx
281
+ import { useTheme } from '@omnifyjp/ui';
282
+
283
+ function ThemeToggle() {
284
+ const { theme, setTheme } = useTheme();
285
+ // theme: 'light' | 'dark' | 'system'
286
+
287
+ return (
288
+ <select value={theme} onChange={(e) => setTheme(e.target.value)}>
289
+ <option value="light">Light</option>
290
+ <option value="dark">Dark</option>
291
+ <option value="system">System</option>
292
+ </select>
293
+ );
294
+ }
295
+ ```
96
296
 
97
- | Component | Description |
98
- |-----------|-------------|
99
- | `WorkflowStepper` | Multi-step progress indicator |
100
- | `WorkflowDiagram` | Visual flow diagram with stages |
101
- | `WorkflowStatusBadge` | Status indicator (active/draft/archived) |
102
- | `WorkflowCategoryBadge` | Category badge for workflows |
103
- | `StageTypeBadge` | Stage type indicator (approval/action/notification) |
297
+ Persists selection to `localStorage.omnify_theme`.
104
298
 
105
- #### RBAC
299
+ ### OrganizationProvider
106
300
 
107
- | Component | Description |
108
- |-----------|-------------|
109
- | `PermissionGrid` | Module x Action permission matrix with checkboxes |
110
- | `ScopeTree` | Hierarchical scope selector with inheritance |
111
- | `ScopeTypeBadge` | Scope level indicator (global/org/branch/team) |
301
+ Multi-tenant organization/branch management:
112
302
 
113
- #### Forms
303
+ ```tsx
304
+ import { useOrganization } from '@omnifyjp/ui';
305
+
306
+ function OrgInfo() {
307
+ const {
308
+ selectedOrganization, // Organization | null
309
+ selectedBranch, // Branch | null
310
+ setSelectedOrganization,
311
+ setSelectedBranch,
312
+ getBranchesByOrg, // (orgId: string) => Branch[]
313
+ isSetupComplete, // true when both selected
314
+ } = useOrganization();
315
+
316
+ return <p>{selectedOrganization?.name} — {selectedBranch?.name}</p>;
317
+ }
318
+ ```
114
319
 
115
- | Component | Description |
116
- |-----------|-------------|
117
- | `SlugInput` | URL-friendly slug input with auto-generation |
320
+ Persists selections to `localStorage.selectedOrganizationId` and `localStorage.selectedBranchId`.
118
321
 
119
322
  ---
120
323
 
121
- ## Theme & Styling
122
-
123
- ### CSS Design Tokens
324
+ ## i18n (Internationalization)
124
325
 
125
- The package ships a `theme.css` with a complete token system. Import it in your app:
326
+ ### Supported Languages
126
327
 
127
- ```css
128
- /* In your global CSS */
129
- @import '@omnifyjp/ui/styles';
130
- ```
328
+ | Code | Language |
329
+ |------|----------|
330
+ | `vi` | Tieng Viet (default, fallback) |
331
+ | `en` | English |
332
+ | `ja` | Japanese |
131
333
 
132
- ### Density Tokens
334
+ ### Shell Namespace
133
335
 
134
- All spacing and sizing is controlled via CSS custom properties:
336
+ The shell comes pre-loaded with translations for common UI strings: sidebar labels, header actions, status/priority names, settings pages, login forms, organization selection, date picker, etc.
135
337
 
136
- | Token | Value | Tailwind Class | Use For |
137
- |-------|-------|----------------|---------|
138
- | `--density-page` | 16px | `p-page` | Page padding |
139
- | `--density-section` | 16px | `gap-section` | Section gaps |
140
- | `--density-element` | 32px | `h-element` | Button/Input height |
141
- | `--density-element-sm` | 28px | `h-element-sm` | Small inputs |
142
- | `--density-element-lg` | 36px | `h-element-lg` | Large buttons |
143
- | `--density-card` | 16px | `px-card`, `pt-card` | Card padding |
144
- | `--density-dialog` | 20px | `p-dialog` | Dialog padding |
145
- | `--header-height` | 48px | `h-header` | App header height |
146
- | `--density-page-title` | 20px | `text-page-title` | Page title font size |
338
+ ### Adding Service Translations
147
339
 
148
- ### Dark Mode
340
+ ```tsx
341
+ import { initOmnifyI18n } from '@omnifyjp/ui';
342
+
343
+ // Add your service namespace
344
+ initOmnifyI18n({
345
+ namespaces: {
346
+ myapp: {
347
+ en: { dashboard: { title: 'Dashboard' } },
348
+ vi: { dashboard: { title: 'Bang dieu khien' } },
349
+ ja: { dashboard: { title: 'dasshubodo' } },
350
+ },
351
+ },
352
+ });
353
+
354
+ // Use in components
355
+ import { useTranslation } from 'react-i18next';
356
+
357
+ function Dashboard() {
358
+ const { t } = useTranslation(['myapp', 'shell']);
359
+ return <h1>{t('dashboard.title')}</h1>;
360
+ // Falls back to 'shell' namespace for common keys
361
+ }
362
+ ```
149
363
 
150
- All components support dark mode via the `dark` class on `<html>`. Color tokens auto-switch:
364
+ ### Changing Language
151
365
 
152
366
  ```tsx
153
- // Semantic tokens (auto dark mode)
154
- <div className="bg-background text-foreground border-border">
155
- <p className="text-muted-foreground">Secondary text</p>
156
- </div>
367
+ import { changeLanguage } from '@omnifyjp/ui';
157
368
 
158
- // Accent colors with dark variants
159
- <Badge className="bg-red-50 dark:bg-red-500/15 text-red-600 dark:text-red-400">
160
- Urgent
161
- </Badge>
369
+ await changeLanguage('en'); // Persists to localStorage
162
370
  ```
163
371
 
164
372
  ---
165
373
 
166
- ## Utility: `cn()`
374
+ ## Hooks
167
375
 
168
- Class merging utility combining `clsx` + `tailwind-merge`:
376
+ ### useDateFormat
169
377
 
170
- ```tsx
171
- import { cn } from '@omnifyjp/ui/lib/utils';
378
+ Locale-aware date formatting with timezone support:
172
379
 
173
- <div className={cn('p-4 bg-card', isActive && 'ring-2 ring-primary', className)} />
380
+ ```tsx
381
+ import { useDateFormat } from '@omnifyjp/ui';
382
+
383
+ function EventDate({ date }: { date: Date }) {
384
+ const {
385
+ formatDate, // '01/15/2026' (locale-dependent)
386
+ formatDateTime, // '01/15/2026 14:30'
387
+ formatRelativeTime, // '5 minutes ago'
388
+ formatShortDate, // '01/15'
389
+ formatMonthYear, // 'January 2026'
390
+ formatDayOfWeek, // 'Mon'
391
+ formatDateLong, // 'January 15, 2026'
392
+ timezone, // 'Asia/Ho_Chi_Minh'
393
+ setTimezone, // Change timezone
394
+ dateFnsLocale, // date-fns Locale object
395
+ } = useDateFormat();
396
+
397
+ return <time>{formatDateTime(date)}</time>;
398
+ }
174
399
  ```
175
400
 
176
- ---
401
+ Supported timezones: `Asia/Ho_Chi_Minh`, `Asia/Tokyo`, `America/New_York`, `America/Los_Angeles`, `Europe/London`, `UTC`.
177
402
 
178
- ## Tree Shaking
403
+ ---
179
404
 
180
- The package is fully tree-shakeable:
405
+ ## Package Exports
181
406
 
182
- - **Per-component entry points**: `@omnifyjp/ui/components/button` only loads `button.js`
183
- - **`sideEffects: false`**: Bundlers can safely eliminate unused code
184
- - **ESM only**: Modern `import`/`export` for optimal bundling
407
+ ```
408
+ @omnifyjp/ui → all exports (barrel)
409
+ @omnifyjp/ui/components/AppShell → AppShell
410
+ @omnifyjp/ui/components/Sidebar → Sidebar
411
+ @omnifyjp/ui/components/Header → Header
412
+ @omnifyjp/ui/components/PageContainer → PageContainer, Standard/Split/FullWidth variants
413
+ @omnifyjp/ui/components/ServiceMenu → ServiceMenu
414
+ @omnifyjp/ui/components/OrganizationSelector → OrganizationSelector
415
+ @omnifyjp/ui/contexts/ThemeContext → ThemeProvider, useTheme
416
+ @omnifyjp/ui/contexts/OrganizationContext → OrganizationProvider, useOrganization
417
+ @omnifyjp/ui/hooks/useDateFormat → useDateFormat, timezoneLabels
418
+ @omnifyjp/ui/i18n → i18n, initOmnifyI18n, changeLanguage
419
+ @omnifyjp/ui/types → ShellConfig, Organization, Branch, etc.
420
+ ```
185
421
 
186
422
  ---
187
423
 
188
- ## Package Exports
424
+ ## TypeScript
189
425
 
190
- ```
191
- @omnifyjp/ui → all components (barrel)
192
- @omnifyjp/ui/components/button → Button, buttonVariants
193
- @omnifyjp/ui/components/card → Card, CardHeader, CardContent, ...
194
- @omnifyjp/ui/components/* → any component by name
195
- @omnifyjp/ui/lib/utils → cn()
196
- @omnifyjp/ui/hooks/use-mobile → useIsMobile()
197
- @omnifyjp/ui/styles → theme.css
426
+ Full type definitions are included. Key types:
427
+
428
+ ```typescript
429
+ import type {
430
+ ShellConfig,
431
+ SidebarMenuItem,
432
+ ServiceCategory,
433
+ ServiceItem,
434
+ Organization,
435
+ Branch,
436
+ PageContainerProps,
437
+ } from '@omnifyjp/ui';
198
438
  ```
199
439
 
200
440
  ---
201
441
 
202
- ## Tech Stack
203
-
204
- - **React** 18+ with new JSX transform
205
- - **TypeScript** (strict mode, full type definitions)
206
- - **Tailwind CSS v4** with design tokens
207
- - **Radix UI** for accessible primitives
208
- - **class-variance-authority** for component variants
209
- - **cmdk** for command palette
210
- - **embla-carousel-react** for carousel
211
- - **react-day-picker** for calendar/date-picker
212
- - **react-resizable-panels** for resizable layouts
213
- - **vaul** for drawer component
214
- - **sonner** for toast notifications
215
- - **lucide-react** for icons
442
+ ## Dependencies
443
+
444
+ This package depends on:
445
+
446
+ | Package | Purpose |
447
+ |---------|---------|
448
+ | `@omnifyjp/ui-components` | UI component primitives (auto-installed) |
449
+ | `i18next` | Internationalization core |
450
+ | `react-i18next` | React i18n bindings |
451
+ | `date-fns` | Date formatting |
452
+ | `lucide-react` | Icons |
453
+ | `sonner` | Toast notifications |
454
+
455
+ Peer dependencies (you provide):
456
+
457
+ | Package | Version |
458
+ |---------|---------|
459
+ | `react` | >=18 |
460
+ | `react-dom` | >=18 |
461
+ | `react-router` | >=7 |
216
462
 
217
463
  ---
218
464
 
@@ -220,7 +466,7 @@ The package is fully tree-shakeable:
220
466
 
221
467
  | Package | Description |
222
468
  |---------|-------------|
223
- | [`@omnifyjp/shell`](https://www.npmjs.com/package/@omnifyjp/shell) | App shell framework (sidebar, header, i18n, theming) — depends on this package |
469
+ | [`@omnifyjp/ui-components`](https://www.npmjs.com/package/@omnifyjp/ui-components) | 53 Shadcn primitives + 14 domain components |
224
470
  | [`@omnifyjp/editor`](https://www.npmjs.com/package/@omnifyjp/editor) | Rich text editors (Tiptap + BlockNote) |
225
471
 
226
472
  ---