@omnifyjp/ui 0.5.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +3 -6
  2. package/dist/chunk-2C2HRGM7.js +51 -0
  3. package/dist/chunk-2C2HRGM7.js.map +1 -0
  4. package/dist/chunk-2TUWDXAC.js +196 -0
  5. package/dist/chunk-2TUWDXAC.js.map +1 -0
  6. package/dist/chunk-34ARZSNP.js +63 -0
  7. package/dist/chunk-34ARZSNP.js.map +1 -0
  8. package/dist/chunk-35DNN46W.js +13 -0
  9. package/dist/chunk-35DNN46W.js.map +1 -0
  10. package/dist/chunk-35U6QG4P.js +116 -0
  11. package/dist/chunk-35U6QG4P.js.map +1 -0
  12. package/dist/chunk-3EOHW4QN.js +35 -0
  13. package/dist/chunk-3EOHW4QN.js.map +1 -0
  14. package/dist/chunk-3VU56V66.js +41 -0
  15. package/dist/chunk-3VU56V66.js.map +1 -0
  16. package/dist/chunk-55E7D2HR.js +99 -0
  17. package/dist/chunk-55E7D2HR.js.map +1 -0
  18. package/dist/chunk-67YUL2ZS.js +53 -0
  19. package/dist/chunk-67YUL2ZS.js.map +1 -0
  20. package/dist/chunk-6DIDQ4TB.js +131 -0
  21. package/dist/chunk-6DIDQ4TB.js.map +1 -0
  22. package/dist/chunk-6GWVQB3Q.js +155 -0
  23. package/dist/chunk-6GWVQB3Q.js.map +1 -0
  24. package/dist/chunk-75WZR6HF.js +44 -0
  25. package/dist/chunk-75WZR6HF.js.map +1 -0
  26. package/dist/chunk-7IRLBU2I.js +114 -0
  27. package/dist/chunk-7IRLBU2I.js.map +1 -0
  28. package/dist/chunk-7RMTPT6O.js +99 -0
  29. package/dist/chunk-7RMTPT6O.js.map +1 -0
  30. package/dist/chunk-7XH3MGBR.js +128 -0
  31. package/dist/chunk-7XH3MGBR.js.map +1 -0
  32. package/dist/chunk-A3BB5ZOC.js +77 -0
  33. package/dist/chunk-A3BB5ZOC.js.map +1 -0
  34. package/dist/chunk-BAQWGQJG.js +106 -0
  35. package/dist/chunk-BAQWGQJG.js.map +1 -0
  36. package/dist/chunk-BRSM3SZP.js +46 -0
  37. package/dist/chunk-BRSM3SZP.js.map +1 -0
  38. package/dist/chunk-C34KSTWA.js +43 -0
  39. package/dist/chunk-C34KSTWA.js.map +1 -0
  40. package/dist/chunk-C5NZAOA7.js +54 -0
  41. package/dist/chunk-C5NZAOA7.js.map +1 -0
  42. package/dist/chunk-CUZR4JWM.js +23 -0
  43. package/dist/chunk-CUZR4JWM.js.map +1 -0
  44. package/dist/chunk-DGPY4WP3.js +11 -0
  45. package/dist/chunk-DGPY4WP3.js.map +1 -0
  46. package/dist/chunk-EWBCV7VA.js +65 -0
  47. package/dist/chunk-EWBCV7VA.js.map +1 -0
  48. package/dist/chunk-F2ZJLKDP.js +119 -0
  49. package/dist/chunk-F2ZJLKDP.js.map +1 -0
  50. package/dist/chunk-FLWMT4DB.js +66 -0
  51. package/dist/chunk-FLWMT4DB.js.map +1 -0
  52. package/dist/chunk-FRKG7JQY.js +48 -0
  53. package/dist/chunk-FRKG7JQY.js.map +1 -0
  54. package/dist/chunk-G7HTZBUR.js +187 -0
  55. package/dist/chunk-G7HTZBUR.js.map +1 -0
  56. package/dist/chunk-IAWKX5W4.js +219 -0
  57. package/dist/chunk-IAWKX5W4.js.map +1 -0
  58. package/dist/chunk-INLM7UJC.js +238 -0
  59. package/dist/chunk-INLM7UJC.js.map +1 -0
  60. package/dist/chunk-JAJMM32I.js +18 -0
  61. package/dist/chunk-JAJMM32I.js.map +1 -0
  62. package/dist/chunk-JJSVA3TH.js +61 -0
  63. package/dist/chunk-JJSVA3TH.js.map +1 -0
  64. package/dist/chunk-JLTBUACL.js +121 -0
  65. package/dist/chunk-JLTBUACL.js.map +1 -0
  66. package/dist/chunk-JRU2QX7T.js +38 -0
  67. package/dist/chunk-JRU2QX7T.js.map +1 -0
  68. package/dist/chunk-JXGRW2MR.js +17 -0
  69. package/dist/chunk-JXGRW2MR.js.map +1 -0
  70. package/dist/chunk-LMT327XH.js +56 -0
  71. package/dist/chunk-LMT327XH.js.map +1 -0
  72. package/dist/chunk-LTTNCAAA.js +138 -0
  73. package/dist/chunk-LTTNCAAA.js.map +1 -0
  74. package/dist/chunk-MJLFJPUG.js +143 -0
  75. package/dist/chunk-MJLFJPUG.js.map +1 -0
  76. package/dist/chunk-MZ2P566X.js +65 -0
  77. package/dist/chunk-MZ2P566X.js.map +1 -0
  78. package/dist/chunk-N47H4MHX.js +41 -0
  79. package/dist/chunk-N47H4MHX.js.map +1 -0
  80. package/dist/chunk-NNJTKHCE.js +160 -0
  81. package/dist/chunk-NNJTKHCE.js.map +1 -0
  82. package/dist/chunk-NPL2R5LD.js +171 -0
  83. package/dist/chunk-NPL2R5LD.js.map +1 -0
  84. package/dist/chunk-NU56GKGM.js +44 -0
  85. package/dist/chunk-NU56GKGM.js.map +1 -0
  86. package/dist/chunk-P3M5TZD2.js +24 -0
  87. package/dist/chunk-P3M5TZD2.js.map +1 -0
  88. package/dist/chunk-PGWNOZDX.js +28 -0
  89. package/dist/chunk-PGWNOZDX.js.map +1 -0
  90. package/dist/chunk-QB3UWRZH.js +92 -0
  91. package/dist/chunk-QB3UWRZH.js.map +1 -0
  92. package/dist/chunk-R2CDE5DO.js +33 -0
  93. package/dist/chunk-R2CDE5DO.js.map +1 -0
  94. package/dist/chunk-RQNZDWY3.js +65 -0
  95. package/dist/chunk-RQNZDWY3.js.map +1 -0
  96. package/dist/chunk-S6PDRGR5.js +109 -0
  97. package/dist/chunk-S6PDRGR5.js.map +1 -0
  98. package/dist/chunk-TGYQ3AKH.js +95 -0
  99. package/dist/chunk-TGYQ3AKH.js.map +1 -0
  100. package/dist/chunk-TJMK2KBE.js +112 -0
  101. package/dist/chunk-TJMK2KBE.js.map +1 -0
  102. package/dist/chunk-USIHM7FV.js +211 -0
  103. package/dist/chunk-USIHM7FV.js.map +1 -0
  104. package/dist/chunk-VVYSAGB3.js +104 -0
  105. package/dist/chunk-VVYSAGB3.js.map +1 -0
  106. package/dist/chunk-WD5KZE25.js +25 -0
  107. package/dist/chunk-WD5KZE25.js.map +1 -0
  108. package/dist/chunk-WL4ZO2H3.js +33 -0
  109. package/dist/chunk-WL4ZO2H3.js.map +1 -0
  110. package/dist/chunk-WRCHR4AK.js +23 -0
  111. package/dist/chunk-WRCHR4AK.js.map +1 -0
  112. package/dist/chunk-WS6E7HBT.js +39 -0
  113. package/dist/chunk-WS6E7HBT.js.map +1 -0
  114. package/dist/chunk-XOJJBNDX.js +33 -0
  115. package/dist/chunk-XOJJBNDX.js.map +1 -0
  116. package/dist/chunk-YBMEQZX7.js +164 -0
  117. package/dist/chunk-YBMEQZX7.js.map +1 -0
  118. package/dist/chunk-Z2QAABLM.js +86 -0
  119. package/dist/chunk-Z2QAABLM.js.map +1 -0
  120. package/dist/chunk-ZHEKDP5X.js +41 -0
  121. package/dist/chunk-ZHEKDP5X.js.map +1 -0
  122. package/dist/chunk-ZPMXRW2A.js +63 -0
  123. package/dist/chunk-ZPMXRW2A.js.map +1 -0
  124. package/dist/chunk-ZYEGBF7G.js +25 -0
  125. package/dist/chunk-ZYEGBF7G.js.map +1 -0
  126. package/dist/components/accordion.d.ts +37 -0
  127. package/dist/components/accordion.js +4 -0
  128. package/dist/components/accordion.js.map +1 -0
  129. package/dist/components/alert-dialog.d.ts +56 -0
  130. package/dist/components/alert-dialog.js +5 -0
  131. package/dist/components/alert-dialog.js.map +1 -0
  132. package/dist/components/alert.d.ts +68 -0
  133. package/dist/components/alert.js +4 -0
  134. package/dist/components/alert.js.map +1 -0
  135. package/dist/components/aspect-ratio.d.ts +23 -0
  136. package/dist/components/aspect-ratio.js +3 -0
  137. package/dist/components/aspect-ratio.js.map +1 -0
  138. package/dist/components/avatar.d.ts +48 -0
  139. package/dist/components/avatar.js +4 -0
  140. package/dist/components/avatar.js.map +1 -0
  141. package/dist/components/badge.d.ts +52 -0
  142. package/dist/components/badge.js +4 -0
  143. package/dist/components/badge.js.map +1 -0
  144. package/dist/components/breadcrumb.d.ts +50 -0
  145. package/dist/components/breadcrumb.js +4 -0
  146. package/dist/components/breadcrumb.js.map +1 -0
  147. package/dist/components/button.d.ts +81 -0
  148. package/dist/components/button.js +4 -0
  149. package/dist/components/button.js.map +1 -0
  150. package/dist/components/calendar-category-badge.d.ts +24 -0
  151. package/dist/components/calendar-category-badge.js +5 -0
  152. package/dist/components/calendar-category-badge.js.map +1 -0
  153. package/dist/components/calendar-event-chip.d.ts +41 -0
  154. package/dist/components/calendar-event-chip.js +30 -0
  155. package/dist/components/calendar-event-chip.js.map +1 -0
  156. package/dist/components/calendar-event-sheet.d.ts +68 -0
  157. package/dist/components/calendar-event-sheet.js +83 -0
  158. package/dist/components/calendar-event-sheet.js.map +1 -0
  159. package/dist/components/calendar-mini.d.ts +65 -0
  160. package/dist/components/calendar-mini.js +93 -0
  161. package/dist/components/calendar-mini.js.map +1 -0
  162. package/dist/components/calendar-toolbar.d.ts +58 -0
  163. package/dist/components/calendar-toolbar.js +54 -0
  164. package/dist/components/calendar-toolbar.js.map +1 -0
  165. package/dist/components/calendar.d.ts +19 -0
  166. package/dist/components/calendar.js +5 -0
  167. package/dist/components/calendar.js.map +1 -0
  168. package/dist/components/card.d.ts +43 -0
  169. package/dist/components/card.js +4 -0
  170. package/dist/components/card.js.map +1 -0
  171. package/dist/components/carousel.d.ts +53 -0
  172. package/dist/components/carousel.js +5 -0
  173. package/dist/components/carousel.js.map +1 -0
  174. package/dist/components/chart.d.ts +125 -0
  175. package/dist/components/chart.js +239 -0
  176. package/dist/components/chart.js.map +1 -0
  177. package/dist/components/checkbox.d.ts +24 -0
  178. package/dist/components/checkbox.js +4 -0
  179. package/dist/components/checkbox.js.map +1 -0
  180. package/dist/components/collapsible.d.ts +28 -0
  181. package/dist/components/collapsible.js +3 -0
  182. package/dist/components/collapsible.js.map +1 -0
  183. package/dist/components/color-picker.d.ts +35 -0
  184. package/dist/components/color-picker.js +7 -0
  185. package/dist/components/color-picker.js.map +1 -0
  186. package/dist/components/combobox.d.ts +98 -0
  187. package/dist/components/combobox.js +8 -0
  188. package/dist/components/combobox.js.map +1 -0
  189. package/dist/components/command.d.ts +63 -0
  190. package/dist/components/command.js +5 -0
  191. package/dist/components/command.js.map +1 -0
  192. package/dist/components/context-menu.d.ts +70 -0
  193. package/dist/components/context-menu.js +4 -0
  194. package/dist/components/context-menu.js.map +1 -0
  195. package/dist/components/date-picker.d.ts +71 -0
  196. package/dist/components/date-picker.js +90 -0
  197. package/dist/components/date-picker.js.map +1 -0
  198. package/dist/components/dialog.d.ts +58 -0
  199. package/dist/components/dialog.js +4 -0
  200. package/dist/components/dialog.js.map +1 -0
  201. package/dist/components/drawer.d.ts +60 -0
  202. package/dist/components/drawer.js +4 -0
  203. package/dist/components/drawer.js.map +1 -0
  204. package/dist/components/dropdown-menu.d.ts +76 -0
  205. package/dist/components/dropdown-menu.js +4 -0
  206. package/dist/components/dropdown-menu.js.map +1 -0
  207. package/dist/components/file-upload.d.ts +44 -0
  208. package/dist/components/file-upload.js +5 -0
  209. package/dist/components/file-upload.js.map +1 -0
  210. package/dist/components/form.d.ts +67 -0
  211. package/dist/components/form.js +111 -0
  212. package/dist/components/form.js.map +1 -0
  213. package/dist/components/hover-card.d.ts +43 -0
  214. package/dist/components/hover-card.js +4 -0
  215. package/dist/components/hover-card.js.map +1 -0
  216. package/dist/components/input-otp.d.ts +38 -0
  217. package/dist/components/input-otp.js +4 -0
  218. package/dist/components/input-otp.js.map +1 -0
  219. package/dist/components/input.d.ts +38 -0
  220. package/dist/components/input.js +4 -0
  221. package/dist/components/input.js.map +1 -0
  222. package/dist/components/label.d.ts +20 -0
  223. package/dist/components/label.js +4 -0
  224. package/dist/components/label.js.map +1 -0
  225. package/dist/components/menubar.d.ts +82 -0
  226. package/dist/components/menubar.js +4 -0
  227. package/dist/components/menubar.js.map +1 -0
  228. package/dist/components/navigation-menu.d.ts +64 -0
  229. package/dist/components/navigation-menu.js +4 -0
  230. package/dist/components/navigation-menu.js.map +1 -0
  231. package/dist/components/pagination.d.ts +59 -0
  232. package/dist/components/pagination.js +5 -0
  233. package/dist/components/pagination.js.map +1 -0
  234. package/dist/components/password-input.d.ts +32 -0
  235. package/dist/components/password-input.js +5 -0
  236. package/dist/components/password-input.js.map +1 -0
  237. package/dist/components/permission-grid.d.ts +67 -0
  238. package/dist/components/permission-grid.js +5 -0
  239. package/dist/components/permission-grid.js.map +1 -0
  240. package/dist/components/popover.d.ts +37 -0
  241. package/dist/components/popover.js +4 -0
  242. package/dist/components/popover.js.map +1 -0
  243. package/dist/components/progress.d.ts +20 -0
  244. package/dist/components/progress.js +4 -0
  245. package/dist/components/progress.js.map +1 -0
  246. package/dist/components/radio-group.d.ts +38 -0
  247. package/dist/components/radio-group.js +4 -0
  248. package/dist/components/radio-group.js.map +1 -0
  249. package/dist/components/rating.d.ts +35 -0
  250. package/dist/components/rating.js +4 -0
  251. package/dist/components/rating.js.map +1 -0
  252. package/dist/components/resizable.d.ts +36 -0
  253. package/dist/components/resizable.js +4 -0
  254. package/dist/components/resizable.js.map +1 -0
  255. package/dist/components/scope-tree.d.ts +78 -0
  256. package/dist/components/scope-tree.js +5 -0
  257. package/dist/components/scope-tree.js.map +1 -0
  258. package/dist/components/scope-type-badge.d.ts +35 -0
  259. package/dist/components/scope-type-badge.js +5 -0
  260. package/dist/components/scope-type-badge.js.map +1 -0
  261. package/dist/components/scroll-area.d.ts +29 -0
  262. package/dist/components/scroll-area.js +4 -0
  263. package/dist/components/scroll-area.js.map +1 -0
  264. package/dist/components/select.d.ts +52 -0
  265. package/dist/components/select.js +4 -0
  266. package/dist/components/select.js.map +1 -0
  267. package/dist/components/separator.d.ts +24 -0
  268. package/dist/components/separator.js +4 -0
  269. package/dist/components/separator.js.map +1 -0
  270. package/dist/components/sheet.d.ts +51 -0
  271. package/dist/components/sheet.js +4 -0
  272. package/dist/components/sheet.js.map +1 -0
  273. package/dist/components/skeleton.d.ts +25 -0
  274. package/dist/components/skeleton.js +4 -0
  275. package/dist/components/skeleton.js.map +1 -0
  276. package/dist/components/slider.d.ts +24 -0
  277. package/dist/components/slider.js +4 -0
  278. package/dist/components/slider.js.map +1 -0
  279. package/dist/components/slug-input.d.ts +50 -0
  280. package/dist/components/slug-input.js +6 -0
  281. package/dist/components/slug-input.js.map +1 -0
  282. package/dist/components/sonner.d.ts +22 -0
  283. package/dist/components/sonner.js +3 -0
  284. package/dist/components/sonner.js.map +1 -0
  285. package/dist/components/stage-type-badge.d.ts +30 -0
  286. package/dist/components/stage-type-badge.js +5 -0
  287. package/dist/components/stage-type-badge.js.map +1 -0
  288. package/dist/components/switch.d.ts +26 -0
  289. package/dist/components/switch.js +4 -0
  290. package/dist/components/switch.js.map +1 -0
  291. package/dist/components/table.d.ts +57 -0
  292. package/dist/components/table.js +4 -0
  293. package/dist/components/table.js.map +1 -0
  294. package/dist/components/tabs.d.ts +39 -0
  295. package/dist/components/tabs.js +4 -0
  296. package/dist/components/tabs.js.map +1 -0
  297. package/dist/components/tag-input.d.ts +40 -0
  298. package/dist/components/tag-input.js +5 -0
  299. package/dist/components/tag-input.js.map +1 -0
  300. package/dist/components/textarea.d.ts +21 -0
  301. package/dist/components/textarea.js +4 -0
  302. package/dist/components/textarea.js.map +1 -0
  303. package/dist/components/time-picker.d.ts +57 -0
  304. package/dist/components/time-picker.js +8 -0
  305. package/dist/components/time-picker.js.map +1 -0
  306. package/dist/components/toggle-group.d.ts +45 -0
  307. package/dist/components/toggle-group.js +5 -0
  308. package/dist/components/toggle-group.js.map +1 -0
  309. package/dist/components/toggle.d.ts +31 -0
  310. package/dist/components/toggle.js +4 -0
  311. package/dist/components/toggle.js.map +1 -0
  312. package/dist/components/tooltip.d.ts +34 -0
  313. package/dist/components/tooltip.js +4 -0
  314. package/dist/components/tooltip.js.map +1 -0
  315. package/dist/components/workflow-category-badge.d.ts +32 -0
  316. package/dist/components/workflow-category-badge.js +5 -0
  317. package/dist/components/workflow-category-badge.js.map +1 -0
  318. package/dist/components/workflow-diagram.d.ts +63 -0
  319. package/dist/components/workflow-diagram.js +5 -0
  320. package/dist/components/workflow-diagram.js.map +1 -0
  321. package/dist/components/workflow-status-badge.d.ts +30 -0
  322. package/dist/components/workflow-status-badge.js +5 -0
  323. package/dist/components/workflow-status-badge.js.map +1 -0
  324. package/dist/components/workflow-stepper.d.ts +52 -0
  325. package/dist/components/workflow-stepper.js +4 -0
  326. package/dist/components/workflow-stepper.js.map +1 -0
  327. package/dist/hooks/use-mobile.d.ts +3 -3
  328. package/dist/hooks/use-mobile.js +1 -1
  329. package/dist/hooks/use-mobile.js.map +1 -1
  330. package/dist/index.d.ts +98 -16
  331. package/dist/index.js +62 -13
  332. package/dist/lib/types.d.ts +84 -1
  333. package/dist/lib/types.js +1 -1
  334. package/dist/lib/types.js.map +1 -1
  335. package/dist/lib/utils.d.ts +5 -1
  336. package/dist/lib/utils.js +1 -1
  337. package/dist/lib/utils.js.map +1 -1
  338. package/package.json +68 -31
  339. package/src/styles/fonts.css +0 -0
  340. package/src/styles/index.css +3 -1
  341. package/src/styles/tailwind.css +4 -0
  342. package/src/styles/theme.css +461 -0
  343. package/dist/chunk-2GN4WIOV.js +0 -240
  344. package/dist/chunk-2GN4WIOV.js.map +0 -1
  345. package/dist/chunk-5BL4VFRJ.js +0 -57
  346. package/dist/chunk-5BL4VFRJ.js.map +0 -1
  347. package/dist/chunk-735JNJJO.js +0 -27
  348. package/dist/chunk-735JNJJO.js.map +0 -1
  349. package/dist/chunk-EJEVW4RO.js +0 -49
  350. package/dist/chunk-EJEVW4RO.js.map +0 -1
  351. package/dist/chunk-FVOQZTHE.js +0 -191
  352. package/dist/chunk-FVOQZTHE.js.map +0 -1
  353. package/dist/chunk-ITXOZ4IR.js +0 -85
  354. package/dist/chunk-ITXOZ4IR.js.map +0 -1
  355. package/dist/chunk-NVPNMQSR.js +0 -30
  356. package/dist/chunk-NVPNMQSR.js.map +0 -1
  357. package/dist/chunk-O25D7DCP.js +0 -72
  358. package/dist/chunk-O25D7DCP.js.map +0 -1
  359. package/dist/chunk-O2ADW2GC.js +0 -224
  360. package/dist/chunk-O2ADW2GC.js.map +0 -1
  361. package/dist/chunk-OY3PSPA5.js +0 -661
  362. package/dist/chunk-OY3PSPA5.js.map +0 -1
  363. package/dist/chunk-UASABUQA.js +0 -39
  364. package/dist/chunk-UASABUQA.js.map +0 -1
  365. package/dist/chunk-UR2QLIS2.js +0 -93
  366. package/dist/chunk-UR2QLIS2.js.map +0 -1
  367. package/dist/chunk-XDXGUPCR.js +0 -123
  368. package/dist/chunk-XDXGUPCR.js.map +0 -1
  369. package/dist/components/AppShell.d.ts +0 -27
  370. package/dist/components/AppShell.js +0 -13
  371. package/dist/components/AppShell.js.map +0 -1
  372. package/dist/components/Header.d.ts +0 -11
  373. package/dist/components/Header.js +0 -9
  374. package/dist/components/Header.js.map +0 -1
  375. package/dist/components/LanguageSelector.d.ts +0 -11
  376. package/dist/components/LanguageSelector.js +0 -5
  377. package/dist/components/LanguageSelector.js.map +0 -1
  378. package/dist/components/OrganizationSelector.d.ts +0 -8
  379. package/dist/components/OrganizationSelector.js +0 -4
  380. package/dist/components/OrganizationSelector.js.map +0 -1
  381. package/dist/components/OrganizationSetupModal.d.ts +0 -5
  382. package/dist/components/OrganizationSetupModal.js +0 -4
  383. package/dist/components/OrganizationSetupModal.js.map +0 -1
  384. package/dist/components/PageContainer.d.ts +0 -105
  385. package/dist/components/PageContainer.js +0 -3
  386. package/dist/components/PageContainer.js.map +0 -1
  387. package/dist/components/ServiceMenu.d.ts +0 -11
  388. package/dist/components/ServiceMenu.js +0 -3
  389. package/dist/components/ServiceMenu.js.map +0 -1
  390. package/dist/components/Sidebar.d.ts +0 -11
  391. package/dist/components/Sidebar.js +0 -5
  392. package/dist/components/Sidebar.js.map +0 -1
  393. package/dist/contexts/LanguageContext.d.ts +0 -17
  394. package/dist/contexts/LanguageContext.js +0 -4
  395. package/dist/contexts/LanguageContext.js.map +0 -1
  396. package/dist/contexts/OrganizationContext.d.ts +0 -28
  397. package/dist/contexts/OrganizationContext.js +0 -3
  398. package/dist/contexts/OrganizationContext.js.map +0 -1
  399. package/dist/contexts/ThemeContext.d.ts +0 -14
  400. package/dist/contexts/ThemeContext.js +0 -3
  401. package/dist/contexts/ThemeContext.js.map +0 -1
  402. package/dist/hooks/useDateFormat.d.ts +0 -28
  403. package/dist/hooks/useDateFormat.js +0 -4
  404. package/dist/hooks/useDateFormat.js.map +0 -1
  405. package/dist/i18n.d.ts +0 -38
  406. package/dist/i18n.js +0 -3
  407. package/dist/i18n.js.map +0 -1
  408. package/dist/types.d.ts +0 -91
  409. package/dist/types.js +0 -3
  410. package/dist/types.js.map +0 -1
@@ -1,72 +0,0 @@
1
- import { Separator } from '@omnifyjp/ui-components/components/separator';
2
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
-
4
- // src/components/PageContainer.tsx
5
- function PageContainer({
6
- title,
7
- subtitle,
8
- extra,
9
- children,
10
- footer,
11
- sidebar,
12
- sidebarPosition = "right",
13
- sidebarWidth = "w-80",
14
- variant = "standard",
15
- className = "",
16
- contentClassName = "",
17
- showHeaderSeparator = true
18
- }) {
19
- if (variant === "full") {
20
- return /* @__PURE__ */ jsxs("div", { className: `h-full flex flex-col ${className}`, children: [
21
- children,
22
- footer && /* @__PURE__ */ jsx("div", { className: "border-t border-border", children: footer })
23
- ] });
24
- }
25
- if (variant === "split") {
26
- return /* @__PURE__ */ jsxs("div", { className: `h-full flex flex-col ${className}`, children: [
27
- (title || extra) && /* @__PURE__ */ jsx("div", { className: "px-page py-4 border-b border-border", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4", children: [
28
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
29
- title && /* @__PURE__ */ jsx("h1", { className: "text-page-title font-semibold mb-2", children: title }),
30
- subtitle && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: subtitle })
31
- ] }),
32
- extra && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: extra })
33
- ] }) }),
34
- /* @__PURE__ */ jsxs("div", { className: "flex-1 flex overflow-hidden", children: [
35
- sidebar && sidebarPosition === "left" && /* @__PURE__ */ jsx("aside", { className: `${sidebarWidth} border-r border-border overflow-y-auto flex-shrink-0`, children: sidebar }),
36
- /* @__PURE__ */ jsx("main", { className: `flex-1 overflow-y-auto ${contentClassName}`, children }),
37
- sidebar && sidebarPosition === "right" && /* @__PURE__ */ jsx("aside", { className: `${sidebarWidth} border-l border-border overflow-y-auto flex-shrink-0`, children: sidebar })
38
- ] }),
39
- footer && /* @__PURE__ */ jsx("div", { className: "border-t border-border", children: footer })
40
- ] });
41
- }
42
- return /* @__PURE__ */ jsxs("div", { className: `h-full flex flex-col ${className}`, children: [
43
- (title || extra) && /* @__PURE__ */ jsxs(Fragment, { children: [
44
- /* @__PURE__ */ jsx("div", { className: "px-page py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4", children: [
45
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
46
- title && /* @__PURE__ */ jsx("h1", { className: "text-page-title font-semibold mb-2", children: title }),
47
- subtitle && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: subtitle })
48
- ] }),
49
- extra && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: extra })
50
- ] }) }),
51
- showHeaderSeparator && /* @__PURE__ */ jsx(Separator, {})
52
- ] }),
53
- /* @__PURE__ */ jsx("main", { className: `flex-1 overflow-y-auto p-page ${contentClassName}`, children }),
54
- footer && /* @__PURE__ */ jsxs(Fragment, { children: [
55
- /* @__PURE__ */ jsx(Separator, {}),
56
- /* @__PURE__ */ jsx("div", { className: "px-page py-4", children: footer })
57
- ] })
58
- ] });
59
- }
60
- function StandardPageContainer(props) {
61
- return /* @__PURE__ */ jsx(PageContainer, { ...props, variant: "standard" });
62
- }
63
- function SplitPageContainer(props) {
64
- return /* @__PURE__ */ jsx(PageContainer, { ...props, variant: "split" });
65
- }
66
- function FullWidthPageContainer(props) {
67
- return /* @__PURE__ */ jsx(PageContainer, { ...props, variant: "full" });
68
- }
69
-
70
- export { FullWidthPageContainer, PageContainer, SplitPageContainer, StandardPageContainer };
71
- //# sourceMappingURL=chunk-O25D7DCP.js.map
72
- //# sourceMappingURL=chunk-O25D7DCP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/PageContainer.tsx"],"names":[],"mappings":"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","file":"chunk-O25D7DCP.js","sourcesContent":["import { ReactNode } from 'react';\nimport { Separator } from '@omnifyjp/ui-components/components/separator';\n\nexport interface PageContainerProps {\n /**\n * Page title\n */\n title?: string;\n\n /**\n * Subtitle or description below title\n */\n subtitle?: string;\n\n /**\n * Extra content (buttons, actions) displayed on the right side of header\n */\n extra?: ReactNode;\n\n /**\n * Main page content\n */\n children: ReactNode;\n\n /**\n * Footer content displayed at the bottom\n */\n footer?: ReactNode;\n\n /**\n * Sidebar content displayed on left or right\n */\n sidebar?: ReactNode;\n\n /**\n * Sidebar position\n * @default 'right'\n */\n sidebarPosition?: 'left' | 'right';\n\n /**\n * Sidebar width\n * @default 'w-80'\n */\n sidebarWidth?: string;\n\n /**\n * Layout variant\n * - 'standard': Default padded layout with header\n * - 'full': Full width, no padding (for boards, gantt)\n * - 'split': Layout with sidebar inside page\n * @default 'standard'\n */\n variant?: 'standard' | 'full' | 'split';\n\n /**\n * Custom container className\n */\n className?: string;\n\n /**\n * Custom content className\n */\n contentClassName?: string;\n\n /**\n * Show separator below header\n * @default true for standard variant\n */\n showHeaderSeparator?: boolean;\n}\n\n/**\n * PageContainer - Flexible page layout component\n *\n * @example\n * // Standard layout with title and actions\n * <PageContainer\n * title=\"Dashboard\"\n * subtitle=\"Overview of all projects\"\n * extra={<Button>Create</Button>}\n * >\n * <div>Content here</div>\n * </PageContainer>\n *\n * @example\n * // Split layout with right sidebar\n * <PageContainer\n * title=\"Task Detail\"\n * variant=\"split\"\n * sidebar={<CommentSection />}\n * sidebarPosition=\"right\"\n * >\n * <div>Main content</div>\n * </PageContainer>\n *\n * @example\n * // Full width layout (no padding)\n * <PageContainer variant=\"full\">\n * <KanbanBoard />\n * </PageContainer>\n */\nexport function PageContainer({\n title,\n subtitle,\n extra,\n children,\n footer,\n sidebar,\n sidebarPosition = 'right',\n sidebarWidth = 'w-80',\n variant = 'standard',\n className = '',\n contentClassName = '',\n showHeaderSeparator = true,\n}: PageContainerProps) {\n // Full width variant - no padding, no header\n if (variant === 'full') {\n return (\n <div className={`h-full flex flex-col ${className}`}>\n {children}\n {footer && <div className=\"border-t border-border\">{footer}</div>}\n </div>\n );\n }\n\n // Split variant - with sidebar\n if (variant === 'split') {\n return (\n <div className={`h-full flex flex-col ${className}`}>\n {/* Header */}\n {(title || extra) && (\n <div className=\"px-page py-4 border-b border-border\">\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"flex-1 min-w-0\">\n {title && <h1 className=\"text-page-title font-semibold mb-2\">{title}</h1>}\n {subtitle && <p className=\"text-sm text-muted-foreground\">{subtitle}</p>}\n </div>\n {extra && <div className=\"flex-shrink-0\">{extra}</div>}\n </div>\n </div>\n )}\n\n {/* Content with sidebar */}\n <div className=\"flex-1 flex overflow-hidden\">\n {sidebar && sidebarPosition === 'left' && (\n <aside className={`${sidebarWidth} border-r border-border overflow-y-auto flex-shrink-0`}>\n {sidebar}\n </aside>\n )}\n\n <main className={`flex-1 overflow-y-auto ${contentClassName}`}>\n {children}\n </main>\n\n {sidebar && sidebarPosition === 'right' && (\n <aside className={`${sidebarWidth} border-l border-border overflow-y-auto flex-shrink-0`}>\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"border-t border-border\">\n {footer}\n </div>\n )}\n </div>\n );\n }\n\n // Standard variant - default padded layout\n return (\n <div className={`h-full flex flex-col ${className}`}>\n {/* Header */}\n {(title || extra) && (\n <>\n <div className=\"px-page py-4\">\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"flex-1 min-w-0\">\n {title && <h1 className=\"text-page-title font-semibold mb-2\">{title}</h1>}\n {subtitle && <p className=\"text-sm text-muted-foreground\">{subtitle}</p>}\n </div>\n {extra && <div className=\"flex-shrink-0\">{extra}</div>}\n </div>\n </div>\n {showHeaderSeparator && <Separator />}\n </>\n )}\n\n {/* Content */}\n <main className={`flex-1 overflow-y-auto p-page ${contentClassName}`}>\n {children}\n </main>\n\n {/* Footer */}\n {footer && (\n <>\n <Separator />\n <div className=\"px-page py-4\">\n {footer}\n </div>\n </>\n )}\n </div>\n );\n}\n\n/**\n * Convenience wrapper for standard layout\n */\nexport function StandardPageContainer(props: Omit<PageContainerProps, 'variant'>) {\n return <PageContainer {...props} variant=\"standard\" />;\n}\n\n/**\n * Convenience wrapper for split layout with sidebar\n */\nexport function SplitPageContainer(props: Omit<PageContainerProps, 'variant'>) {\n return <PageContainer {...props} variant=\"split\" />;\n}\n\n/**\n * Convenience wrapper for full width layout\n */\nexport function FullWidthPageContainer(props: Omit<PageContainerProps, 'variant' | 'title' | 'subtitle' | 'extra'>) {\n return <PageContainer {...props} variant=\"full\" />;\n}\n"]}
@@ -1,224 +0,0 @@
1
- import { OrganizationSelector } from './chunk-2GN4WIOV.js';
2
- import { useOrganization } from './chunk-ITXOZ4IR.js';
3
- import { useState } from 'react';
4
- import { useLocation, useParams, Link } from 'react-router';
5
- import { useTranslation } from 'react-i18next';
6
- import { Button } from '@omnifyjp/ui-components/components/button';
7
- import { Separator } from '@omnifyjp/ui-components/components/separator';
8
- import { Popover, PopoverTrigger, PopoverContent } from '@omnifyjp/ui-components/components/popover';
9
- import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '@omnifyjp/ui-components/components/tooltip';
10
- import { ChevronsUpDown, Search, ChevronsRight, ChevronsLeft, ChevronRight } from 'lucide-react';
11
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
12
-
13
- function Sidebar({ config }) {
14
- const location = useLocation();
15
- const params = useParams();
16
- const [collapsed, setCollapsed] = useState(false);
17
- const [contextSwitcherOpen, setContextSwitcherOpen] = useState(false);
18
- const [contextSearch, setContextSearch] = useState("");
19
- const [expandedGroups, setExpandedGroups] = useState(/* @__PURE__ */ new Set());
20
- const { t } = useTranslation("shell");
21
- const { selectedOrganization, selectedBranch } = useOrganization();
22
- const { app, sidebar } = config;
23
- const contextParamValue = sidebar.contextMenu ? params[sidebar.contextMenu.paramName] : void 0;
24
- const isInContext = !!contextParamValue;
25
- const isActive = (path) => {
26
- return location.pathname === path || location.pathname.startsWith(path + "/");
27
- };
28
- const renderMenuItem = (item, active) => {
29
- const Icon = item.icon;
30
- const path = item.path;
31
- const content = /* @__PURE__ */ jsxs(
32
- Link,
33
- {
34
- to: path,
35
- className: `flex items-center ${collapsed ? "justify-center" : "gap-2"} px-3 py-2 rounded-md text-sm transition-colors ${active ? "bg-sidebar-primary/10 text-sidebar-primary font-medium" : "text-sidebar-foreground hover:bg-sidebar-accent"}`,
36
- children: [
37
- /* @__PURE__ */ jsx(Icon, { className: "w-4 h-4 flex-shrink-0" }),
38
- !collapsed && /* @__PURE__ */ jsx("span", { children: item.label }),
39
- !collapsed && item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs bg-muted text-muted-foreground px-1.5 py-0.5 rounded-full", children: item.badge })
40
- ]
41
- }
42
- );
43
- if (collapsed) {
44
- return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
45
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: content }),
46
- /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: item.label })
47
- ] }) }, path);
48
- }
49
- return /* @__PURE__ */ jsx("div", { children: content }, path);
50
- };
51
- const isGroupActive = (item) => {
52
- if (item.children) {
53
- return item.children.some((child) => child.path ? isActive(child.path) : false);
54
- }
55
- return item.path ? isActive(item.path) : false;
56
- };
57
- const toggleGroup = (label) => {
58
- setExpandedGroups((prev) => {
59
- const next = new Set(prev);
60
- if (next.has(label)) {
61
- next.delete(label);
62
- } else {
63
- next.add(label);
64
- }
65
- return next;
66
- });
67
- };
68
- const renderMenuItemOrGroup = (item) => {
69
- if (!item.children) {
70
- return renderMenuItem(item, item.path ? isActive(item.path) : false);
71
- }
72
- const groupActive = isGroupActive(item);
73
- const isExpanded = expandedGroups.has(item.label) || groupActive;
74
- const Icon = item.icon;
75
- if (collapsed) {
76
- return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
77
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
78
- "button",
79
- {
80
- onClick: () => toggleGroup(item.label),
81
- className: `flex items-center justify-center w-full px-3 py-2 rounded-md text-sm transition-colors ${groupActive ? "bg-sidebar-primary/10 text-sidebar-primary font-medium" : "text-sidebar-foreground hover:bg-sidebar-accent"}`,
82
- children: /* @__PURE__ */ jsx(Icon, { className: "w-4 h-4 flex-shrink-0" })
83
- }
84
- ) }),
85
- /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: item.label })
86
- ] }) }, item.label);
87
- }
88
- return /* @__PURE__ */ jsxs("div", { children: [
89
- /* @__PURE__ */ jsxs(
90
- "button",
91
- {
92
- onClick: () => toggleGroup(item.label),
93
- className: `flex items-center gap-2 w-full px-3 py-2 rounded-md text-sm transition-colors ${groupActive ? "text-sidebar-primary font-medium" : "text-sidebar-foreground hover:bg-sidebar-accent"}`,
94
- children: [
95
- /* @__PURE__ */ jsx(Icon, { className: "w-4 h-4 flex-shrink-0" }),
96
- /* @__PURE__ */ jsx("span", { children: item.label }),
97
- /* @__PURE__ */ jsx(ChevronRight, { className: `w-3.5 h-3.5 ml-auto text-muted-foreground transition-transform duration-200 ${isExpanded ? "rotate-90" : ""}` })
98
- ]
99
- }
100
- ),
101
- isExpanded && /* @__PURE__ */ jsx("div", { className: "ml-4 pl-2 border-l border-sidebar-border space-y-0.5 mt-0.5", children: item.children.map((child) => renderMenuItem(child, child.path ? isActive(child.path) : false)) })
102
- ] }, item.label);
103
- };
104
- const contextMenuItems = isInContext && sidebar.contextMenu ? sidebar.contextMenu.getItems(contextParamValue) : [];
105
- const contextHeader = isInContext && sidebar.contextMenu?.getHeader ? sidebar.contextMenu.getHeader(contextParamValue) : null;
106
- const footerItems = isInContext && sidebar.contextMenu?.getFooterItems ? sidebar.contextMenu.getFooterItems() : [];
107
- return /* @__PURE__ */ jsxs("aside", { className: `${collapsed ? "w-16" : "w-64"} bg-sidebar border-r border-sidebar-border flex flex-col transition-all duration-300`, children: [
108
- /* @__PURE__ */ jsx("div", { className: `h-header border-b border-sidebar-border flex items-center ${collapsed ? "justify-center" : "px-4"} transition-all duration-300`, children: /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
109
- /* @__PURE__ */ jsx("div", { className: `w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 ${app.logo.color ? "" : "bg-primary"}`, style: app.logo.color ? { backgroundColor: app.logo.color } : void 0, children: /* @__PURE__ */ jsx(app.logo.icon, { className: "w-4 h-4 text-white" }) }),
110
- !collapsed && /* @__PURE__ */ jsx("span", { className: "font-bold text-sm", children: app.logo.text })
111
- ] }) }),
112
- /* @__PURE__ */ jsx("nav", { className: "flex-1 px-3 py-3 overflow-y-auto", children: isInContext ? /* @__PURE__ */ jsxs(Fragment, { children: [
113
- contextHeader && !collapsed ? /* @__PURE__ */ jsxs(Popover, { open: contextSwitcherOpen, onOpenChange: (open) => {
114
- setContextSwitcherOpen(open);
115
- if (!open) setContextSearch("");
116
- }, children: [
117
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { className: "w-full mb-3 px-3 py-2 flex items-center gap-2 rounded-md hover:bg-sidebar-accent transition-colors text-left", children: [
118
- contextHeader,
119
- /* @__PURE__ */ jsx(ChevronsUpDown, { className: "w-3.5 h-3.5 text-muted-foreground flex-shrink-0" })
120
- ] }) }),
121
- /* @__PURE__ */ jsx(PopoverContent, { side: "right", align: "start", className: "w-72 p-0", children: /* @__PURE__ */ jsx("div", { className: "p-2 border-b", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
122
- /* @__PURE__ */ jsx(Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground" }),
123
- /* @__PURE__ */ jsx(
124
- "input",
125
- {
126
- className: "w-full pl-8 pr-3 py-1.5 text-sm border rounded-md outline-none focus:ring-1 focus:ring-ring bg-background",
127
- placeholder: t("sidebar.searchProject"),
128
- value: contextSearch,
129
- onChange: (e) => setContextSearch(e.target.value),
130
- autoFocus: true
131
- }
132
- )
133
- ] }) }) })
134
- ] }) : contextHeader && collapsed ? /* @__PURE__ */ jsx("div", { className: "mb-3 w-full flex justify-center py-1 rounded-md hover:bg-sidebar-accent transition-colors", children: contextHeader }) : null,
135
- !collapsed && contextHeader && /* @__PURE__ */ jsx(Separator, { className: "my-3" }),
136
- /* @__PURE__ */ jsx("div", { className: "space-y-1", children: contextMenuItems.map((item) => {
137
- const active = item.path ? isActive(item.path) : false;
138
- return renderMenuItem(item, active);
139
- }) }),
140
- footerItems.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
141
- !collapsed && /* @__PURE__ */ jsx(Separator, { className: "my-3" }),
142
- /* @__PURE__ */ jsx("div", { className: "space-y-1", children: footerItems.map((item) => renderMenuItem(item, false)) })
143
- ] })
144
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
145
- /* @__PURE__ */ jsx("div", { className: "space-y-1", children: sidebar.menuItems.map((item) => renderMenuItemOrGroup(item)) }),
146
- sidebar.recentItems && /* @__PURE__ */ jsxs(Fragment, { children: [
147
- !collapsed && /* @__PURE__ */ jsx(Separator, { className: "my-3" }),
148
- !collapsed ? /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
149
- /* @__PURE__ */ jsx("h3", { className: "px-3 py-1 text-xs font-medium text-muted-foreground uppercase tracking-wider", children: sidebar.recentItems.title }),
150
- /* @__PURE__ */ jsx("div", { className: "space-y-0.5", children: sidebar.recentItems.items.map((item) => /* @__PURE__ */ jsxs(
151
- Link,
152
- {
153
- to: item.path,
154
- className: "flex items-center gap-2 px-3 py-2 rounded-md text-sm text-sidebar-foreground hover:bg-sidebar-accent",
155
- children: [
156
- item.color && /* @__PURE__ */ jsx(
157
- "div",
158
- {
159
- className: "w-5 h-5 rounded flex items-center justify-center text-white text-[9px] font-bold flex-shrink-0",
160
- style: { backgroundColor: item.color },
161
- children: item.badge
162
- }
163
- ),
164
- /* @__PURE__ */ jsx("span", { className: "truncate", children: item.label })
165
- ]
166
- },
167
- item.path
168
- )) })
169
- ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-0.5 mt-3", children: sidebar.recentItems.items.map((item) => /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
170
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
171
- Link,
172
- {
173
- to: item.path,
174
- className: "flex justify-center px-3 py-2 rounded-md text-sidebar-foreground hover:bg-sidebar-accent",
175
- children: item.color && /* @__PURE__ */ jsx(
176
- "div",
177
- {
178
- className: "w-5 h-5 rounded flex items-center justify-center text-white text-[9px] font-bold",
179
- style: { backgroundColor: item.color },
180
- children: item.badge
181
- }
182
- )
183
- }
184
- ) }),
185
- /* @__PURE__ */ jsx(TooltipContent, { side: "right", children: /* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: item.label }) })
186
- ] }) }, item.path)) })
187
- ] })
188
- ] }) }),
189
- /* @__PURE__ */ jsx("div", { className: "px-3 py-2 border-t border-sidebar-border", children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
190
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
191
- Button,
192
- {
193
- variant: "ghost",
194
- size: "sm",
195
- onClick: () => setCollapsed(!collapsed),
196
- className: `w-full h-8 ${collapsed ? "px-0 justify-center" : "justify-start"} hover:bg-sidebar-accent`,
197
- children: collapsed ? /* @__PURE__ */ jsx(ChevronsRight, { className: "w-3.5 h-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
198
- /* @__PURE__ */ jsx(ChevronsLeft, { className: "w-3.5 h-3.5 text-muted-foreground mr-2" }),
199
- /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: t("sidebar.collapse") })
200
- ] })
201
- }
202
- ) }),
203
- /* @__PURE__ */ jsx(TooltipContent, { side: "right", children: collapsed ? t("sidebar.expandSidebar") : t("sidebar.collapseSidebar") })
204
- ] }) }) }),
205
- !collapsed ? /* @__PURE__ */ jsx("div", { className: "border-t border-sidebar-border", children: /* @__PURE__ */ jsx(OrganizationSelector, { variant: "sidebar" }) }) : selectedOrganization && /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
206
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { className: "px-3 py-3 border-t border-sidebar-border flex justify-center cursor-pointer hover:bg-sidebar-accent transition-colors", children: /* @__PURE__ */ jsx(
207
- "div",
208
- {
209
- className: "w-8 h-8 rounded-lg flex items-center justify-center text-white font-bold text-xs",
210
- style: { backgroundColor: selectedOrganization.color },
211
- children: selectedOrganization.shortName
212
- }
213
- ) }) }),
214
- /* @__PURE__ */ jsxs(TooltipContent, { side: "right", children: [
215
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-sm", children: selectedOrganization.name }),
216
- selectedBranch && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: selectedBranch.name })
217
- ] })
218
- ] }) })
219
- ] });
220
- }
221
-
222
- export { Sidebar };
223
- //# sourceMappingURL=chunk-O2ADW2GC.js.map
224
- //# sourceMappingURL=chunk-O2ADW2GC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Sidebar.tsx"],"names":[],"mappings":"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","file":"chunk-O2ADW2GC.js","sourcesContent":["import { useState } from 'react';\nimport { useLocation, useParams, Link } from 'react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@omnifyjp/ui-components/components/button';\nimport { Separator } from '@omnifyjp/ui-components/components/separator';\nimport { Popover, PopoverContent, PopoverTrigger } from '@omnifyjp/ui-components/components/popover';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@omnifyjp/ui-components/components/tooltip';\nimport {\n ChevronsLeft,\n ChevronsRight,\n ChevronsUpDown,\n ChevronRight,\n Search,\n} from 'lucide-react';\nimport { useOrganization } from '../contexts/OrganizationContext';\nimport { OrganizationSelector } from './OrganizationSelector';\nimport type { ShellConfig, SidebarMenuItem } from '../types';\n\ninterface SidebarProps {\n config: ShellConfig;\n}\n\nexport function Sidebar({ config }: SidebarProps) {\n const location = useLocation();\n const params = useParams();\n const [collapsed, setCollapsed] = useState(false);\n const [contextSwitcherOpen, setContextSwitcherOpen] = useState(false);\n const [contextSearch, setContextSearch] = useState('');\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(new Set());\n const { t } = useTranslation('shell');\n const { selectedOrganization, selectedBranch } = useOrganization();\n\n const { app, sidebar } = config;\n\n // Determine if we're in context mode (e.g., inside a project)\n const contextParamValue = sidebar.contextMenu\n ? params[sidebar.contextMenu.paramName] as string | undefined\n : undefined;\n const isInContext = !!contextParamValue;\n\n const isActive = (path: string) => {\n return location.pathname === path || location.pathname.startsWith(path + '/');\n };\n\n const renderMenuItem = (item: SidebarMenuItem, active: boolean) => {\n const Icon = item.icon;\n const path = item.path!;\n const content = (\n <Link\n to={path}\n className={`flex items-center ${collapsed ? 'justify-center' : 'gap-2'} px-3 py-2 rounded-md text-sm transition-colors ${\n active\n ? 'bg-sidebar-primary/10 text-sidebar-primary font-medium'\n : 'text-sidebar-foreground hover:bg-sidebar-accent'\n }`}\n >\n <Icon className=\"w-4 h-4 flex-shrink-0\" />\n {!collapsed && <span>{item.label}</span>}\n {!collapsed && item.badge !== undefined && item.badge > 0 && (\n <span className=\"ml-auto text-xs bg-muted text-muted-foreground px-1.5 py-0.5 rounded-full\">\n {item.badge}\n </span>\n )}\n </Link>\n );\n\n if (collapsed) {\n return (\n <TooltipProvider key={path} delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n {content}\n </TooltipTrigger>\n <TooltipContent side=\"right\" className=\"font-medium\">\n {item.label}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <div key={path}>{content}</div>;\n };\n\n const isGroupActive = (item: SidebarMenuItem): boolean => {\n if (item.children) {\n return item.children.some(child => child.path ? isActive(child.path) : false);\n }\n return item.path ? isActive(item.path) : false;\n };\n\n const toggleGroup = (label: string) => {\n setExpandedGroups(prev => {\n const next = new Set(prev);\n if (next.has(label)) {\n next.delete(label);\n } else {\n next.add(label);\n }\n return next;\n });\n };\n\n const renderMenuItemOrGroup = (item: SidebarMenuItem) => {\n if (!item.children) {\n return renderMenuItem(item, item.path ? isActive(item.path) : false);\n }\n\n const groupActive = isGroupActive(item);\n const isExpanded = expandedGroups.has(item.label) || groupActive;\n const Icon = item.icon;\n\n if (collapsed) {\n return (\n <TooltipProvider key={item.label} delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={() => toggleGroup(item.label)}\n className={`flex items-center justify-center w-full px-3 py-2 rounded-md text-sm transition-colors ${\n groupActive\n ? 'bg-sidebar-primary/10 text-sidebar-primary font-medium'\n : 'text-sidebar-foreground hover:bg-sidebar-accent'\n }`}\n >\n <Icon className=\"w-4 h-4 flex-shrink-0\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\" className=\"font-medium\">\n {item.label}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return (\n <div key={item.label}>\n <button\n onClick={() => toggleGroup(item.label)}\n className={`flex items-center gap-2 w-full px-3 py-2 rounded-md text-sm transition-colors ${\n groupActive\n ? 'text-sidebar-primary font-medium'\n : 'text-sidebar-foreground hover:bg-sidebar-accent'\n }`}\n >\n <Icon className=\"w-4 h-4 flex-shrink-0\" />\n <span>{item.label}</span>\n <ChevronRight className={`w-3.5 h-3.5 ml-auto text-muted-foreground transition-transform duration-200 ${isExpanded ? 'rotate-90' : ''}`} />\n </button>\n {isExpanded && (\n <div className=\"ml-4 pl-2 border-l border-sidebar-border space-y-0.5 mt-0.5\">\n {item.children.map(child => renderMenuItem(child, child.path ? isActive(child.path) : false))}\n </div>\n )}\n </div>\n );\n };\n\n // Get context menu items if in context mode\n const contextMenuItems = isInContext && sidebar.contextMenu\n ? sidebar.contextMenu.getItems(contextParamValue!)\n : [];\n\n const contextHeader = isInContext && sidebar.contextMenu?.getHeader\n ? sidebar.contextMenu.getHeader(contextParamValue!)\n : null;\n\n const footerItems = isInContext && sidebar.contextMenu?.getFooterItems\n ? sidebar.contextMenu.getFooterItems()\n : [];\n\n return (\n <aside className={`${collapsed ? 'w-16' : 'w-64'} bg-sidebar border-r border-sidebar-border flex flex-col transition-all duration-300`}>\n {/* Logo */}\n <div className={`h-header border-b border-sidebar-border flex items-center ${collapsed ? 'justify-center' : 'px-4'} transition-all duration-300`}>\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <div className={`w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 ${app.logo.color ? '' : 'bg-primary'}`} style={app.logo.color ? { backgroundColor: app.logo.color } : undefined}>\n <app.logo.icon className=\"w-4 h-4 text-white\" />\n </div>\n {!collapsed && <span className=\"font-bold text-sm\">{app.logo.text}</span>}\n </Link>\n </div>\n\n {/* Menu */}\n <nav className=\"flex-1 px-3 py-3 overflow-y-auto\">\n {isInContext ? (\n <>\n {/* Context Switcher (e.g., project switcher) */}\n {contextHeader && !collapsed ? (\n <Popover open={contextSwitcherOpen} onOpenChange={(open) => { setContextSwitcherOpen(open); if (!open) setContextSearch(''); }}>\n <PopoverTrigger asChild>\n <button className=\"w-full mb-3 px-3 py-2 flex items-center gap-2 rounded-md hover:bg-sidebar-accent transition-colors text-left\">\n {contextHeader}\n <ChevronsUpDown className=\"w-3.5 h-3.5 text-muted-foreground flex-shrink-0\" />\n </button>\n </PopoverTrigger>\n <PopoverContent side=\"right\" align=\"start\" className=\"w-72 p-0\">\n <div className=\"p-2 border-b\">\n <div className=\"relative\">\n <Search className=\"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground\" />\n <input\n className=\"w-full pl-8 pr-3 py-1.5 text-sm border rounded-md outline-none focus:ring-1 focus:ring-ring bg-background\"\n placeholder={t('sidebar.searchProject')}\n value={contextSearch}\n onChange={(e) => setContextSearch(e.target.value)}\n autoFocus\n />\n </div>\n </div>\n </PopoverContent>\n </Popover>\n ) : contextHeader && collapsed ? (\n <div className=\"mb-3 w-full flex justify-center py-1 rounded-md hover:bg-sidebar-accent transition-colors\">\n {contextHeader}\n </div>\n ) : null}\n\n {!collapsed && contextHeader && <Separator className=\"my-3\" />}\n\n {/* Context Menu Items */}\n <div className=\"space-y-1\">\n {contextMenuItems.map((item) => {\n const active = item.path ? isActive(item.path) : false;\n return renderMenuItem(item, active);\n })}\n </div>\n\n {footerItems.length > 0 && (\n <>\n {!collapsed && <Separator className=\"my-3\" />}\n <div className=\"space-y-1\">\n {footerItems.map((item) => renderMenuItem(item, false))}\n </div>\n </>\n )}\n </>\n ) : (\n <>\n {/* Main Menu Items */}\n <div className=\"space-y-1\">\n {sidebar.menuItems.map((item) => renderMenuItemOrGroup(item))}\n </div>\n\n {sidebar.recentItems && (\n <>\n {!collapsed && <Separator className=\"my-3\" />}\n\n {!collapsed ? (\n <div className=\"space-y-1\">\n <h3 className=\"px-3 py-1 text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n {sidebar.recentItems.title}\n </h3>\n <div className=\"space-y-0.5\">\n {sidebar.recentItems.items.map((item) => (\n <Link\n key={item.path}\n to={item.path}\n className=\"flex items-center gap-2 px-3 py-2 rounded-md text-sm text-sidebar-foreground hover:bg-sidebar-accent\"\n >\n {item.color && (\n <div\n className=\"w-5 h-5 rounded flex items-center justify-center text-white text-[9px] font-bold flex-shrink-0\"\n style={{ backgroundColor: item.color }}\n >\n {item.badge}\n </div>\n )}\n <span className=\"truncate\">{item.label}</span>\n </Link>\n ))}\n </div>\n </div>\n ) : (\n <div className=\"space-y-0.5 mt-3\">\n {sidebar.recentItems.items.map((item) => (\n <TooltipProvider key={item.path} delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Link\n to={item.path}\n className=\"flex justify-center px-3 py-2 rounded-md text-sidebar-foreground hover:bg-sidebar-accent\"\n >\n {item.color && (\n <div\n className=\"w-5 h-5 rounded flex items-center justify-center text-white text-[9px] font-bold\"\n style={{ backgroundColor: item.color }}\n >\n {item.badge}\n </div>\n )}\n </Link>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n <p className=\"font-medium text-sm\">{item.label}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ))}\n </div>\n )}\n </>\n )}\n </>\n )}\n </nav>\n\n {/* Collapse Toggle Button */}\n <div className=\"px-3 py-2 border-t border-sidebar-border\">\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setCollapsed(!collapsed)}\n className={`w-full h-8 ${collapsed ? 'px-0 justify-center' : 'justify-start'} hover:bg-sidebar-accent`}\n >\n {collapsed ? (\n <ChevronsRight className=\"w-3.5 h-3.5 text-muted-foreground\" />\n ) : (\n <>\n <ChevronsLeft className=\"w-3.5 h-3.5 text-muted-foreground mr-2\" />\n <span className=\"text-xs text-muted-foreground\">{t('sidebar.collapse')}</span>\n </>\n )}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n {collapsed ? t('sidebar.expandSidebar') : t('sidebar.collapseSidebar')}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n\n {/* Organization & Branch selector */}\n {!collapsed ? (\n <div className=\"border-t border-sidebar-border\">\n <OrganizationSelector variant=\"sidebar\" />\n </div>\n ) : (\n selectedOrganization && (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"px-3 py-3 border-t border-sidebar-border flex justify-center cursor-pointer hover:bg-sidebar-accent transition-colors\">\n <div\n className=\"w-8 h-8 rounded-lg flex items-center justify-center text-white font-bold text-xs\"\n style={{ backgroundColor: selectedOrganization.color }}\n >\n {selectedOrganization.shortName}\n </div>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"right\">\n <p className=\"font-semibold text-sm\">{selectedOrganization.name}</p>\n {selectedBranch && (\n <p className=\"text-xs text-muted-foreground\">{selectedBranch.name}</p>\n )}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )\n )}\n </aside>\n );\n}\n"]}