@startdownnotez404/ui 1.0.0 → 1.3.5
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.
- package/README.md +110 -0
- package/dist/AutocompleteField-ZKNU2IRR.mjs +181 -0
- package/dist/AutocompleteField-ZKNU2IRR.mjs.map +1 -0
- package/dist/AvatarField-SAODT3CZ.mjs +275 -0
- package/dist/AvatarField-SAODT3CZ.mjs.map +1 -0
- package/dist/CodeEditor-JF55ZNVD.mjs +34 -0
- package/dist/CodeEditor-JF55ZNVD.mjs.map +1 -0
- package/dist/DateField-ZYMZFHL4.mjs +82 -0
- package/dist/DateField-ZYMZFHL4.mjs.map +1 -0
- package/dist/DateTimeField-TPTJ7YIZ.mjs +65 -0
- package/dist/DateTimeField-TPTJ7YIZ.mjs.map +1 -0
- package/dist/FileUploadField-NTMWBJER.mjs +78 -0
- package/dist/FileUploadField-NTMWBJER.mjs.map +1 -0
- package/dist/JSONEditorField-TMRWGXVR.mjs +64 -0
- package/dist/JSONEditorField-TMRWGXVR.mjs.map +1 -0
- package/dist/PopperMenu-LJ36RPBW.mjs +416 -0
- package/dist/PopperMenu-LJ36RPBW.mjs.map +1 -0
- package/dist/TelField-LOGRVZ4I.mjs +88 -0
- package/dist/TelField-LOGRVZ4I.mjs.map +1 -0
- package/dist/alert.d.mts +202 -0
- package/dist/alert.d.ts +202 -0
- package/dist/alert.js +784 -0
- package/dist/alert.js.map +1 -0
- package/dist/alert.mjs +47 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/appBar.d.mts +21 -0
- package/dist/appBar.d.ts +21 -0
- package/dist/appBar.js +64 -0
- package/dist/appBar.js.map +1 -0
- package/dist/appBar.mjs +12 -0
- package/dist/appBar.mjs.map +1 -0
- package/dist/autocomplete.d.mts +121 -0
- package/dist/autocomplete.d.ts +121 -0
- package/dist/autocomplete.js +2052 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/autocomplete.mjs +21 -0
- package/dist/autocomplete.mjs.map +1 -0
- package/dist/avatar.d.mts +253 -0
- package/dist/avatar.d.ts +253 -0
- package/dist/avatar.js +992 -0
- package/dist/avatar.js.map +1 -0
- package/dist/avatar.mjs +41 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +123 -0
- package/dist/badge.d.ts +123 -0
- package/dist/badge.js +151 -0
- package/dist/badge.js.map +1 -0
- package/dist/badge.mjs +10 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/box.d.mts +36 -0
- package/dist/box.d.ts +36 -0
- package/dist/box.js +199 -0
- package/dist/box.js.map +1 -0
- package/dist/box.mjs +14 -0
- package/dist/box.mjs.map +1 -0
- package/dist/button.d.mts +230 -52
- package/dist/button.d.ts +230 -52
- package/dist/button.js +392 -60
- package/dist/button.js.map +1 -1
- package/dist/button.mjs +14 -8
- package/dist/card.d.mts +47 -0
- package/dist/card.d.ts +47 -0
- package/dist/card.js +135 -0
- package/dist/card.js.map +1 -0
- package/dist/card.mjs +24 -0
- package/dist/card.mjs.map +1 -0
- package/dist/chart.d.mts +40 -0
- package/dist/chart.d.ts +40 -0
- package/dist/chart.js +1234 -0
- package/dist/chart.js.map +1 -0
- package/dist/chart.mjs +10 -0
- package/dist/chart.mjs.map +1 -0
- package/dist/checkbox.d.mts +62 -0
- package/dist/checkbox.d.ts +62 -0
- package/dist/checkbox.js +299 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/checkbox.mjs +14 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/chip.d.mts +96 -0
- package/dist/chip.d.ts +96 -0
- package/dist/chip.js +112 -0
- package/dist/chip.js.map +1 -0
- package/dist/chip.mjs +10 -0
- package/dist/chip.mjs.map +1 -0
- package/dist/chunk-24XDGNJ6.mjs +1450 -0
- package/dist/chunk-24XDGNJ6.mjs.map +1 -0
- package/dist/chunk-27KYFU7R.mjs +30 -0
- package/dist/chunk-27KYFU7R.mjs.map +1 -0
- package/dist/chunk-2FFLT5VP.mjs +7 -0
- package/dist/chunk-2FFLT5VP.mjs.map +1 -0
- package/dist/chunk-2ZZJTBTE.mjs +148 -0
- package/dist/chunk-2ZZJTBTE.mjs.map +1 -0
- package/dist/chunk-3DQINB57.mjs +15 -0
- package/dist/chunk-3DQINB57.mjs.map +1 -0
- package/dist/chunk-3VUAM2GY.mjs +52 -0
- package/dist/chunk-3VUAM2GY.mjs.map +1 -0
- package/dist/chunk-4Q54P737.mjs +19 -0
- package/dist/chunk-4Q54P737.mjs.map +1 -0
- package/dist/chunk-4RPFRNXG.mjs +62 -0
- package/dist/chunk-4RPFRNXG.mjs.map +1 -0
- package/dist/chunk-56TI2ZBT.mjs +114 -0
- package/dist/chunk-56TI2ZBT.mjs.map +1 -0
- package/dist/chunk-6REEQBJI.mjs +62 -0
- package/dist/chunk-6REEQBJI.mjs.map +1 -0
- package/dist/chunk-AAH2O24U.mjs +325 -0
- package/dist/chunk-AAH2O24U.mjs.map +1 -0
- package/dist/chunk-B7DAB22K.mjs +16 -0
- package/dist/chunk-B7DAB22K.mjs.map +1 -0
- package/dist/chunk-BGB7JHIU.mjs +222 -0
- package/dist/chunk-BGB7JHIU.mjs.map +1 -0
- package/dist/chunk-CRYIEYZZ.mjs +756 -0
- package/dist/chunk-CRYIEYZZ.mjs.map +1 -0
- package/dist/chunk-CWFWRZWU.mjs +23 -0
- package/dist/chunk-CWFWRZWU.mjs.map +1 -0
- package/dist/chunk-DELCADNF.mjs +1926 -0
- package/dist/chunk-DELCADNF.mjs.map +1 -0
- package/dist/chunk-E3I2VDHZ.mjs +292 -0
- package/dist/chunk-E3I2VDHZ.mjs.map +1 -0
- package/dist/chunk-EEH7HACG.mjs +249 -0
- package/dist/chunk-EEH7HACG.mjs.map +1 -0
- package/dist/chunk-EKPULYPU.mjs +497 -0
- package/dist/chunk-EKPULYPU.mjs.map +1 -0
- package/dist/chunk-EW4DTFH3.mjs +69 -0
- package/dist/chunk-EW4DTFH3.mjs.map +1 -0
- package/dist/chunk-FJ6ZGZIA.mjs +43 -0
- package/dist/chunk-FJ6ZGZIA.mjs.map +1 -0
- package/dist/chunk-HE7MY3RT.mjs +23 -0
- package/dist/chunk-HE7MY3RT.mjs.map +1 -0
- package/dist/chunk-HR3A4H4E.mjs +1289 -0
- package/dist/chunk-HR3A4H4E.mjs.map +1 -0
- package/dist/chunk-I5JWS4Z7.mjs +91 -0
- package/dist/chunk-I5JWS4Z7.mjs.map +1 -0
- package/dist/chunk-IN3O4R7Q.mjs +932 -0
- package/dist/chunk-IN3O4R7Q.mjs.map +1 -0
- package/dist/chunk-JIU5GVM7.mjs +414 -0
- package/dist/chunk-JIU5GVM7.mjs.map +1 -0
- package/dist/chunk-JWANK42G.mjs +170 -0
- package/dist/chunk-JWANK42G.mjs.map +1 -0
- package/dist/chunk-MDAUF7IL.mjs +9 -0
- package/dist/chunk-MDAUF7IL.mjs.map +1 -0
- package/dist/chunk-MI64T62E.mjs +26 -0
- package/dist/chunk-MI64T62E.mjs.map +1 -0
- package/dist/chunk-NJYNJLT7.mjs +172 -0
- package/dist/chunk-NJYNJLT7.mjs.map +1 -0
- package/dist/chunk-NLBDBJ3R.mjs +97 -0
- package/dist/chunk-NLBDBJ3R.mjs.map +1 -0
- package/dist/chunk-OGNGPI3M.mjs +333 -0
- package/dist/chunk-OGNGPI3M.mjs.map +1 -0
- package/dist/chunk-OJV6V7YZ.mjs +552 -0
- package/dist/chunk-OJV6V7YZ.mjs.map +1 -0
- package/dist/chunk-ONQMRE2G.mjs +26 -0
- package/dist/chunk-ONQMRE2G.mjs.map +1 -0
- package/dist/chunk-OP6LKXPA.mjs +75 -0
- package/dist/chunk-OP6LKXPA.mjs.map +1 -0
- package/dist/chunk-QFF3HTHL.mjs +14 -0
- package/dist/chunk-QFF3HTHL.mjs.map +1 -0
- package/dist/chunk-QKGCW37O.mjs +1175 -0
- package/dist/chunk-QKGCW37O.mjs.map +1 -0
- package/dist/chunk-R5MKQN6D.mjs +227 -0
- package/dist/chunk-R5MKQN6D.mjs.map +1 -0
- package/dist/chunk-RXBQ7KXF.mjs +652 -0
- package/dist/chunk-RXBQ7KXF.mjs.map +1 -0
- package/dist/chunk-S6EZVRZC.mjs +161 -0
- package/dist/chunk-S6EZVRZC.mjs.map +1 -0
- package/dist/chunk-SGCUDWO3.mjs +396 -0
- package/dist/chunk-SGCUDWO3.mjs.map +1 -0
- package/dist/chunk-SRWPHN2N.mjs +188 -0
- package/dist/chunk-SRWPHN2N.mjs.map +1 -0
- package/dist/chunk-T34IULP5.mjs +242 -0
- package/dist/chunk-T34IULP5.mjs.map +1 -0
- package/dist/chunk-T4X375IG.mjs +100 -0
- package/dist/chunk-T4X375IG.mjs.map +1 -0
- package/dist/chunk-T6AMRENK.mjs +376 -0
- package/dist/chunk-T6AMRENK.mjs.map +1 -0
- package/dist/chunk-TDRA5EZI.mjs +325 -0
- package/dist/chunk-TDRA5EZI.mjs.map +1 -0
- package/dist/chunk-UDREPVEY.mjs +356 -0
- package/dist/chunk-UDREPVEY.mjs.map +1 -0
- package/dist/chunk-UGMRJMFZ.mjs +172 -0
- package/dist/chunk-UGMRJMFZ.mjs.map +1 -0
- package/dist/chunk-UMJ5SCIQ.mjs +438 -0
- package/dist/chunk-UMJ5SCIQ.mjs.map +1 -0
- package/dist/chunk-UTVSYS6S.mjs +270 -0
- package/dist/chunk-UTVSYS6S.mjs.map +1 -0
- package/dist/chunk-V26V2S3W.mjs +197 -0
- package/dist/chunk-V26V2S3W.mjs.map +1 -0
- package/dist/chunk-VYD3PDBB.mjs +38 -0
- package/dist/chunk-VYD3PDBB.mjs.map +1 -0
- package/dist/chunk-WYYP3Y34.mjs +55 -0
- package/dist/chunk-WYYP3Y34.mjs.map +1 -0
- package/dist/chunk-XIMFP6RB.mjs +161 -0
- package/dist/chunk-XIMFP6RB.mjs.map +1 -0
- package/dist/chunk-XJ2SXC2Q.mjs +558 -0
- package/dist/chunk-XJ2SXC2Q.mjs.map +1 -0
- package/dist/chunk-Y74ALKBL.mjs +565 -0
- package/dist/chunk-Y74ALKBL.mjs.map +1 -0
- package/dist/chunk-ZG3NQI77.mjs +353 -0
- package/dist/chunk-ZG3NQI77.mjs.map +1 -0
- package/dist/chunk-ZVFYOXDE.mjs +297 -0
- package/dist/chunk-ZVFYOXDE.mjs.map +1 -0
- package/dist/collapse.d.mts +10 -0
- package/dist/collapse.d.ts +10 -0
- package/dist/collapse.js +53 -0
- package/dist/collapse.js.map +1 -0
- package/dist/collapse.mjs +10 -0
- package/dist/collapse.mjs.map +1 -0
- package/dist/datePicker.d.mts +133 -0
- package/dist/datePicker.d.ts +133 -0
- package/dist/datePicker.js +482 -0
- package/dist/datePicker.js.map +1 -0
- package/dist/datePicker.mjs +29 -0
- package/dist/datePicker.mjs.map +1 -0
- package/dist/displayFile.d.mts +95 -0
- package/dist/displayFile.d.ts +95 -0
- package/dist/displayFile.js +357 -0
- package/dist/displayFile.js.map +1 -0
- package/dist/displayFile.mjs +19 -0
- package/dist/displayFile.mjs.map +1 -0
- package/dist/divider.d.mts +9 -0
- package/dist/divider.d.ts +9 -0
- package/dist/divider.js +52 -0
- package/dist/divider.js.map +1 -0
- package/dist/divider.mjs +10 -0
- package/dist/divider.mjs.map +1 -0
- package/dist/fileUploader.d.mts +86 -0
- package/dist/fileUploader.d.ts +86 -0
- package/dist/fileUploader.js +722 -0
- package/dist/fileUploader.js.map +1 -0
- package/dist/fileUploader.mjs +16 -0
- package/dist/fileUploader.mjs.map +1 -0
- package/dist/flowMap.d.mts +353 -0
- package/dist/flowMap.d.ts +353 -0
- package/dist/flowMap.js +94806 -0
- package/dist/flowMap.js.map +1 -0
- package/dist/flowMap.mjs +94585 -0
- package/dist/flowMap.mjs.map +1 -0
- package/dist/form.d.mts +84 -0
- package/dist/form.d.ts +84 -0
- package/dist/form.js +144 -0
- package/dist/form.js.map +1 -0
- package/dist/form.mjs +24 -0
- package/dist/form.mjs.map +1 -0
- package/dist/icons.d.mts +160 -0
- package/dist/icons.d.ts +160 -0
- package/dist/icons.js +540 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +306 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/image.d.mts +49 -0
- package/dist/image.d.ts +49 -0
- package/dist/image.js +1348 -0
- package/dist/image.js.map +1 -0
- package/dist/image.mjs +19 -0
- package/dist/image.mjs.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +20198 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +912 -0
- package/dist/index.mjs.map +1 -0
- package/dist/input.d.mts +195 -0
- package/dist/input.d.ts +195 -0
- package/dist/input.js +1101 -0
- package/dist/input.js.map +1 -0
- package/dist/input.mjs +32 -0
- package/dist/input.mjs.map +1 -0
- package/dist/jsonEditor.d.mts +13 -0
- package/dist/jsonEditor.d.ts +13 -0
- package/dist/jsonEditor.js +247 -0
- package/dist/jsonEditor.js.map +1 -0
- package/dist/jsonEditor.mjs +9 -0
- package/dist/jsonEditor.mjs.map +1 -0
- package/dist/list.d.mts +83 -0
- package/dist/list.d.ts +83 -0
- package/dist/list.js +564 -0
- package/dist/list.js.map +1 -0
- package/dist/list.mjs +39 -0
- package/dist/list.mjs.map +1 -0
- package/dist/loading.d.mts +48 -0
- package/dist/loading.d.ts +48 -0
- package/dist/loading.js +383 -0
- package/dist/loading.js.map +1 -0
- package/dist/loading.mjs +23 -0
- package/dist/loading.mjs.map +1 -0
- package/dist/markdown.d.mts +14 -0
- package/dist/markdown.d.ts +14 -0
- package/dist/markdown.js +25927 -0
- package/dist/markdown.js.map +1 -0
- package/dist/markdown.mjs +25623 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/menu.d.mts +368 -0
- package/dist/menu.d.ts +368 -0
- package/dist/menu.js +1571 -0
- package/dist/menu.js.map +1 -0
- package/dist/menu.mjs +43 -0
- package/dist/menu.mjs.map +1 -0
- package/dist/modal.d.mts +90 -0
- package/dist/modal.d.ts +90 -0
- package/dist/modal.js +883 -0
- package/dist/modal.js.map +1 -0
- package/dist/modal.mjs +25 -0
- package/dist/modal.mjs.map +1 -0
- package/dist/overlay.d.mts +2 -0
- package/dist/overlay.d.ts +2 -0
- package/dist/overlay.js +46 -0
- package/dist/overlay.js.map +1 -0
- package/dist/overlay.mjs +10 -0
- package/dist/overlay.mjs.map +1 -0
- package/dist/paper.d.mts +38 -0
- package/dist/paper.d.ts +38 -0
- package/dist/paper.js +90 -0
- package/dist/paper.js.map +1 -0
- package/dist/paper.mjs +12 -0
- package/dist/paper.mjs.map +1 -0
- package/dist/patterns.d.mts +133 -0
- package/dist/patterns.d.ts +133 -0
- package/dist/patterns.js +483 -0
- package/dist/patterns.js.map +1 -0
- package/dist/patterns.mjs +46 -0
- package/dist/patterns.mjs.map +1 -0
- package/dist/process.d.mts +125 -0
- package/dist/process.d.ts +125 -0
- package/dist/process.js +1471 -0
- package/dist/process.js.map +1 -0
- package/dist/process.mjs +30 -0
- package/dist/process.mjs.map +1 -0
- package/dist/progress.d.mts +44 -0
- package/dist/progress.d.ts +44 -0
- package/dist/progress.js +94 -0
- package/dist/progress.js.map +1 -0
- package/dist/progress.mjs +14 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/resizablePanel.d.mts +297 -0
- package/dist/resizablePanel.d.ts +297 -0
- package/dist/resizablePanel.js +122 -0
- package/dist/resizablePanel.js.map +1 -0
- package/dist/resizablePanel.mjs +22 -0
- package/dist/resizablePanel.mjs.map +1 -0
- package/dist/scrollToLoad.d.mts +41 -0
- package/dist/scrollToLoad.d.ts +41 -0
- package/dist/scrollToLoad.js +256 -0
- package/dist/scrollToLoad.js.map +1 -0
- package/dist/scrollToLoad.mjs +16 -0
- package/dist/scrollToLoad.mjs.map +1 -0
- package/dist/select.d.mts +50 -0
- package/dist/select.d.ts +50 -0
- package/dist/select.js +426 -0
- package/dist/select.js.map +1 -0
- package/dist/select.mjs +24 -0
- package/dist/select.mjs.map +1 -0
- package/dist/skeleton.d.mts +13 -0
- package/dist/skeleton.d.ts +13 -0
- package/dist/skeleton.js +68 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skeleton.mjs +11 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +65 -0
- package/dist/slider.d.ts +65 -0
- package/dist/slider.js +106 -0
- package/dist/slider.js.map +1 -0
- package/dist/slider.mjs +10 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/stepper.d.mts +98 -0
- package/dist/stepper.d.ts +98 -0
- package/dist/stepper.js +313 -0
- package/dist/stepper.js.map +1 -0
- package/dist/stepper.mjs +38 -0
- package/dist/stepper.mjs.map +1 -0
- package/dist/switch.d.mts +151 -0
- package/dist/switch.d.ts +151 -0
- package/dist/switch.js +289 -0
- package/dist/switch.js.map +1 -0
- package/dist/switch.mjs +17 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tab.d.mts +182 -0
- package/dist/tab.d.ts +182 -0
- package/dist/tab.js +1418 -0
- package/dist/tab.js.map +1 -0
- package/dist/tab.mjs +34 -0
- package/dist/tab.mjs.map +1 -0
- package/dist/table.d.mts +720 -0
- package/dist/table.d.ts +720 -0
- package/dist/table.js +10882 -0
- package/dist/table.js.map +1 -0
- package/dist/table.mjs +63 -0
- package/dist/table.mjs.map +1 -0
- package/dist/theme.d.mts +30 -4
- package/dist/theme.d.ts +30 -4
- package/dist/theme.js +3210 -170
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +52 -230
- package/dist/theme.mjs.map +1 -1
- package/dist/timeline.d.mts +30 -0
- package/dist/timeline.d.ts +30 -0
- package/dist/timeline.js +273 -0
- package/dist/timeline.js.map +1 -0
- package/dist/timeline.mjs +14 -0
- package/dist/timeline.mjs.map +1 -0
- package/dist/toggleButtonGroup.d.mts +125 -0
- package/dist/toggleButtonGroup.d.ts +125 -0
- package/dist/toggleButtonGroup.js +190 -0
- package/dist/toggleButtonGroup.js.map +1 -0
- package/dist/toggleButtonGroup.mjs +15 -0
- package/dist/toggleButtonGroup.mjs.map +1 -0
- package/dist/tooltip.d.mts +13 -0
- package/dist/tooltip.d.ts +13 -0
- package/dist/tooltip.js +56 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tooltip.mjs +10 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/typography.d.mts +21 -23
- package/dist/typography.d.ts +21 -23
- package/dist/typography.js +37 -63
- package/dist/typography.js.map +1 -1
- package/dist/typography.mjs +2 -1
- package/dist/useForm.d.mts +588 -0
- package/dist/useForm.d.ts +588 -0
- package/dist/useForm.js +8743 -0
- package/dist/useForm.js.map +1 -0
- package/dist/useForm.mjs +45 -0
- package/dist/useForm.mjs.map +1 -0
- package/dist/useSearch.d.mts +126 -0
- package/dist/useSearch.d.ts +126 -0
- package/dist/useSearch.js +1125 -0
- package/dist/useSearch.js.map +1 -0
- package/dist/useSearch.mjs +42 -0
- package/dist/useSearch.mjs.map +1 -0
- package/dist/variablesRenderer.d.mts +45 -0
- package/dist/variablesRenderer.d.ts +45 -0
- package/dist/variablesRenderer.js +511 -0
- package/dist/variablesRenderer.js.map +1 -0
- package/dist/variablesRenderer.mjs +21 -0
- package/dist/variablesRenderer.mjs.map +1 -0
- package/package.json +109 -15
- package/dist/chunk-PKADXEAD.mjs +0 -116
- package/dist/chunk-PKADXEAD.mjs.map +0 -1
- package/dist/chunk-YGBJCPUS.mjs +0 -88
- package/dist/chunk-YGBJCPUS.mjs.map +0 -1
- package/dist/theme.css +0 -44
- package/dist/theme.css.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/elemental/Tab/src/Tab/index.ts","../src/components/elemental/Tab/src/Tab/themes.ts","../src/components/elemental/Tab/src/TabPanel/TabPanel.tsx","../src/components/elemental/Tab/src/TabPanel/useTabsOverflow.ts","../src/components/elemental/Tab/src/TabPanel/tabPanelVars.ts"],"sourcesContent":["export { default as Tab } from '@mui/material/Tab'\nexport type { TabProps } from '@mui/material/Tab'\nexport { default as Tabs } from '@mui/material/Tabs'\nexport type { TabsProps } from '@mui/material/Tabs'\nexport * from './themes'","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const tabTheme = {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n minHeight: 44,\n minWidth: 0,\n paddingInline: theme.spacing(1.5),\n paddingBlock: theme.spacing(1),\n borderRadius: theme.shape.borderRadius,\n textTransform: 'none',\n fontWeight: theme.typography.fontWeightMedium,\n color: 'var(--mui-palette-text-secondary)',\n transition: theme.transitions.create(['color', 'background-color'], {\n duration: theme.transitions.duration.shorter,\n }),\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 92%)',\n },\n '&.Mui-selected': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'transparent',\n },\n '&.Mui-selected:hover': {\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n '&.Mui-disabled': {\n color: 'var(--mui-palette-text-disabled)',\n },\n }),\n },\n} as const satisfies MuiComponentTheme<'MuiTab'>\n\nexport const tabsTheme = {\n styleOverrides: {\n root: {\n minHeight: 44,\n },\n list: {\n gap: 4,\n },\n indicator: {\n height: 3,\n borderRadius: 999,\n backgroundColor: 'var(--mui-palette-primary-emphasis)',\n },\n scrollButtons: {\n color: 'var(--mui-palette-text-secondary)',\n '&.Mui-disabled': {\n opacity: 0.4,\n },\n },\n },\n} as const satisfies MuiComponentTheme<'MuiTabs'>","'use client'\n\nimport React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport type { SxProps, Theme } from '@mui/material/styles'\n\nimport { mergeSx } from '@/_utils/_func'\nimport { Box } from '@/ele/Box'\nimport { Typography } from '@/ele/Typography'\nimport { KeyboardArrowDownIcon, MoreHorizIcon } from '@/icons/MuiIcon'\nimport { useMenu, MenuPopper } from '@/ele/Menu'\n\nimport type { TabPanelItem, TabPanelProps } from './types'\nimport { useTabsOverflowSplit } from './useTabsOverflow'\nimport {\n tabPanelRootSx,\n tabPanelStyleToCssVars,\n} from './tabPanelVars'\n\nconst TRACK_PAD = 3\nconst ITEM_GAP = 1\nconst DEFAULT_TRACK_RADIUS = 12\nconst DEFAULT_FOCUS_RADIUS = 10\n/** Keep in sync with `--tabpanel-indicator-ms` / `--tabpanel-indicator-ease`. */\nconst INDICATOR_EASE = 'cubic-bezier(0.32, 0.72, 0, 1)'\nconst INDICATOR_MS = 380\n\n/** Numbers are px so MUI does not multiply by theme.shape.borderRadius. */\nfunction toCssRadius(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value\n}\n\n/**\n * Commit WAAPI values to inline styles, then cancel so `fill: 'forwards'`\n * cannot leave a stale computed transform that fights Emotion/CSS classes.\n */\nfunction finishIndicatorAnimation(animation: Animation) {\n try {\n animation.commitStyles?.()\n } catch {\n // commitStyles can throw if the animation was already canceled.\n }\n animation.cancel()\n}\n\nfunction clearIndicatorAnimations(element: HTMLElement) {\n element.getAnimations().forEach((animation) => {\n finishIndicatorAnimation(animation)\n })\n}\n\nfunction resolveSelectedId(\n items: TabPanelItem[],\n value: string | undefined,\n internal: string | undefined\n): string | undefined {\n const candidate = value ?? internal\n if (candidate && items.some((item) => item.id === candidate && !item.disabled)) {\n return candidate\n }\n return items.find((item) => !item.disabled)?.id\n}\n\nfunction TabItemContent({\n item,\n showLabels,\n active,\n endAdornment,\n}: {\n item: TabPanelItem\n showLabels: boolean\n active: boolean\n endAdornment?: React.ReactNode\n}) {\n const showLabel = showLabels || !item.icon\n const badgeLabel =\n item.badge == null\n ? null\n : typeof item.badge === 'number' && item.badge > 99\n ? '99+'\n : String(item.badge)\n\n return (\n <Box\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.5,\n px: showLabels ? 1.15 : 0.9,\n py: 0.5,\n minHeight: 28,\n pr: endAdornment ? 0.75 : undefined,\n }}\n >\n {item.icon ? (\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n color: 'inherit',\n lineHeight: 0,\n opacity: active ? 1 : 0.88,\n transition:\n 'opacity var(--tabpanel-indicator-ms) var(--tabpanel-indicator-ease)',\n '& > *': { fontSize: 16 },\n }}\n >\n {item.icon}\n </Box>\n ) : null}\n {showLabel ? (\n <Typography\n component=\"span\"\n sx={{\n m: 0,\n fontSize: '0.75rem',\n letterSpacing: '0.01em',\n fontWeight: active ? 600 : 500,\n color: 'inherit',\n lineHeight: 1.15,\n whiteSpace: 'nowrap',\n }}\n >\n {item.label}\n </Typography>\n ) : (\n <Typography\n component=\"span\"\n sx={{\n position: 'absolute',\n width: 1,\n height: 1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n }}\n >\n {item.label}\n </Typography>\n )}\n {endAdornment}\n {badgeLabel != null ? (\n <Box\n component=\"span\"\n aria-label={`${item.badge} notifications`}\n sx={{\n position: 'absolute',\n top: 1,\n right: endAdornment ? 10 : 1,\n zIndex: 1,\n pointerEvents: 'none',\n minWidth: 12,\n height: 12,\n px: 0.3,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 999,\n bgcolor: 'var(--tabpanel-badge-bg)',\n color: 'var(--tabpanel-badge-color)',\n fontSize: 8,\n fontWeight: 700,\n lineHeight: 1,\n }}\n >\n {badgeLabel}\n </Box>\n ) : null}\n </Box>\n )\n}\n\nfunction MoreTriggerContent({\n showLabels,\n open,\n}: {\n showLabels: boolean\n open: boolean\n}) {\n return (\n <Box\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.35,\n px: showLabels ? 1.15 : 0.9,\n py: 0.5,\n minHeight: 28,\n }}\n >\n <MoreHorizIcon sx={{ fontSize: 16 }} />\n {showLabels ? (\n <Typography\n component=\"span\"\n sx={{\n m: 0,\n fontSize: '0.75rem',\n fontWeight: 500,\n color: 'inherit',\n lineHeight: 1.15,\n whiteSpace: 'nowrap',\n }}\n >\n More\n </Typography>\n ) : null}\n <KeyboardArrowDownIcon\n sx={{\n fontSize: 14,\n opacity: 0.75,\n transition: 'transform 180ms ease',\n transform: open ? 'rotate(180deg)' : 'none',\n }}\n />\n </Box>\n )\n}\n\n/**\n * Adaptive content tabs: soft liquid track + morphing pill.\n * Overflow cuts trailing tabs into a More dropdown (selected stays visible).\n *\n * Colors / radii are CSS vars on the root (`tabPanelRootSx`). Override via\n * `sx`, `slotProps.root.style`, or `slotProps.root.sx`.\n */\nexport function TabPanel({\n items,\n value,\n defaultValue,\n onChange,\n showLabels = true,\n focusRadius = DEFAULT_FOCUS_RADIUS,\n trackRadius = DEFAULT_TRACK_RADIUS,\n sx,\n className,\n slotProps,\n}: TabPanelProps) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState<string | undefined>(\n () => defaultValue ?? items.find((item) => !item.disabled)?.id\n )\n\n const selectedId = resolveSelectedId(items, value, internalValue)\n\n const select = useCallback(\n (id: string) => {\n const item = items.find((entry) => entry.id === id)\n if (!item || item.disabled) {\n return\n }\n if (!isControlled) {\n setInternalValue(id)\n }\n onChange?.(id)\n },\n [isControlled, items, onChange]\n )\n\n const rootRef = useRef<HTMLDivElement>(null)\n const stripRef = useRef<HTMLDivElement>(null)\n const measureRef = useRef<HTMLDivElement>(null)\n const moreMeasureRef = useRef<HTMLDivElement>(null)\n const indicatorRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<Map<string, HTMLButtonElement>>(new Map())\n const indicatorRectRef = useRef({ top: 0, left: 0, width: 0, height: 0 })\n const indicatorMountedRef = useRef(false)\n const indicatorAnimatingRef = useRef(false)\n\n const [availableWidth, setAvailableWidth] = useState(0)\n const [itemWidths, setItemWidths] = useState<number[]>([])\n const [moreWidth, setMoreWidth] = useState(0)\n\n const selectedIndex = useMemo(\n () => items.findIndex((item) => item.id === selectedId),\n [items, selectedId]\n )\n\n const { visibleIndexes, overflowIndexes } = useTabsOverflowSplit(\n itemWidths,\n moreWidth,\n availableWidth,\n selectedIndex,\n ITEM_GAP\n )\n\n const visibleItems = useMemo(\n () => visibleIndexes.map((index) => items[index]!).filter(Boolean),\n [visibleIndexes, items]\n )\n const overflowItems = useMemo(\n () => overflowIndexes.map((index) => items[index]!).filter(Boolean),\n [overflowIndexes, items]\n )\n const hasOverflow = overflowItems.length > 0\n\n const rootCssVars = useMemo(\n () => ({\n ...tabPanelStyleToCssVars(slotProps?.root?.style),\n '--tabpanel-focus-radius': toCssRadius(focusRadius),\n '--tabpanel-track-radius': toCssRadius(trackRadius),\n // Prop radii win unless style explicitly set them.\n ...(slotProps?.root?.style?.focusRadius != null\n ? { '--tabpanel-focus-radius': slotProps.root.style.focusRadius }\n : null),\n ...(slotProps?.root?.style?.trackRadius != null\n ? { '--tabpanel-track-radius': slotProps.root.style.trackRadius }\n : null),\n }),\n [focusRadius, trackRadius, slotProps?.root?.style]\n )\n\n useLayoutEffect(() => {\n const root = rootRef.current\n const measure = measureRef.current\n const moreMeasure = moreMeasureRef.current\n if (!root || !measure || !moreMeasure) {\n return\n }\n\n const update = () => {\n setAvailableWidth(Math.max(0, root.clientWidth - TRACK_PAD * 2))\n\n const widths = Array.from(\n measure.querySelectorAll<HTMLElement>('[data-tab-measure]')\n ).map((node) => node.getBoundingClientRect().width)\n\n setItemWidths((prev) => {\n if (\n prev.length === widths.length &&\n prev.every((width, index) => Math.abs(width - (widths[index] ?? 0)) < 0.5)\n ) {\n return prev\n }\n return widths\n })\n\n const nextMore = Math.max(\n moreMeasure.scrollWidth,\n moreMeasure.getBoundingClientRect().width\n )\n setMoreWidth((prev) => (Math.abs(prev - nextMore) < 0.5 ? prev : nextMore))\n }\n\n update()\n const observer = new ResizeObserver(update)\n observer.observe(root)\n observer.observe(measure)\n observer.observe(moreMeasure)\n return () => observer.disconnect()\n }, [items, showLabels])\n\n useLayoutEffect(() => {\n const strip = stripRef.current\n const indicator = indicatorRef.current\n if (!strip || !indicator || !selectedId) {\n return\n }\n\n const slideToActive = () => {\n const activeEl = itemRefs.current.get(selectedId)\n if (!activeEl) {\n return\n }\n\n const stripBox = strip.getBoundingClientRect()\n const itemBox = activeEl.getBoundingClientRect()\n const next = {\n top: itemBox.top - stripBox.top,\n left: itemBox.left - stripBox.left,\n width: itemBox.width,\n height: itemBox.height,\n }\n\n const applyRect = (rect: typeof next) => {\n indicator.style.transform = `translate3d(${rect.left}px, ${rect.top}px, 0)`\n indicator.style.width = `${rect.width}px`\n indicator.style.height = `${rect.height}px`\n }\n\n if (!indicatorMountedRef.current || indicatorRectRef.current.width <= 0) {\n clearIndicatorAnimations(indicator)\n indicator.style.transition = 'none'\n applyRect(next)\n indicator.style.opacity = '1'\n indicatorRectRef.current = next\n indicatorMountedRef.current = true\n return\n }\n\n // Commit in-flight WAAPI values to inline styles before measuring so\n // interrupt reads the true animated rect, not a stale fill/class mix.\n clearIndicatorAnimations(indicator)\n const liveBox = indicator.getBoundingClientRect()\n const prev = {\n top: liveBox.top - stripBox.top,\n left: liveBox.left - stripBox.left,\n width: liveBox.width,\n height: liveBox.height,\n }\n\n const same =\n Math.abs(prev.left - next.left) < 0.5 &&\n Math.abs(prev.top - next.top) < 0.5 &&\n Math.abs(prev.width - next.width) < 0.5 &&\n Math.abs(prev.height - next.height) < 0.5\n\n if (same) {\n applyRect(next)\n indicatorRectRef.current = next\n return\n }\n\n const bridgeLeft = Math.min(prev.left, next.left)\n const bridgeRight = Math.max(prev.left + prev.width, next.left + next.width)\n const bridge = {\n left: bridgeLeft,\n top: next.top,\n width: Math.max(bridgeRight - bridgeLeft, next.width),\n height: next.height,\n }\n\n indicator.style.transition = 'none'\n applyRect(prev)\n indicator.style.opacity = '1'\n indicatorAnimatingRef.current = true\n\n const animation = indicator.animate(\n [\n {\n transform: `translate3d(${prev.left}px, ${prev.top}px, 0)`,\n width: `${prev.width}px`,\n height: `${prev.height}px`,\n },\n {\n transform: `translate3d(${bridge.left}px, ${bridge.top}px, 0)`,\n width: `${bridge.width}px`,\n height: `${bridge.height}px`,\n offset: 0.4,\n },\n {\n transform: `translate3d(${next.left}px, ${next.top}px, 0)`,\n width: `${next.width}px`,\n height: `${next.height}px`,\n },\n ],\n {\n duration: INDICATOR_MS,\n easing: INDICATOR_EASE,\n fill: 'forwards',\n }\n )\n\n animation.onfinish = () => {\n finishIndicatorAnimation(animation)\n applyRect(next)\n indicatorRectRef.current = next\n indicatorAnimatingRef.current = false\n }\n animation.oncancel = () => {\n indicatorAnimatingRef.current = false\n }\n indicatorRectRef.current = next\n }\n\n slideToActive()\n const observer = new ResizeObserver(() => {\n if (indicatorAnimatingRef.current) {\n return\n }\n const activeEl = itemRefs.current.get(selectedId)\n const ind = indicatorRef.current\n if (!activeEl || !ind || !stripRef.current) {\n return\n }\n const stripBox = stripRef.current.getBoundingClientRect()\n const itemBox = activeEl.getBoundingClientRect()\n const next = {\n top: itemBox.top - stripBox.top,\n left: itemBox.left - stripBox.left,\n width: itemBox.width,\n height: itemBox.height,\n }\n clearIndicatorAnimations(ind)\n ind.style.transition = 'none'\n ind.style.transform = `translate3d(${next.left}px, ${next.top}px, 0)`\n ind.style.width = `${next.width}px`\n ind.style.height = `${next.height}px`\n ind.style.opacity = '1'\n indicatorRectRef.current = next\n indicatorMountedRef.current = true\n })\n observer.observe(strip)\n return () => observer.disconnect()\n }, [visibleIndexes, overflowIndexes, selectedId, items, showLabels, focusRadius])\n\n useEffect(() => {\n if (isControlled) {\n return\n }\n const next = resolveSelectedId(items, undefined, internalValue)\n if (next && next !== internalValue) {\n setInternalValue(next)\n }\n }, [items, isControlled, internalValue])\n\n const menu = useMenu({\n onItemClickClientArg: ({ closeHandler }) => {\n closeHandler?.()\n },\n })\n\n const menuOptions = useMemo(\n () =>\n overflowItems.map((item) => ({\n id: item.id,\n label: item.label,\n icon: item.icon ? (item.icon as React.ReactElement) : undefined,\n onClick: () => {\n if (!item.disabled) {\n select(item.id)\n }\n },\n })),\n [overflowItems, select]\n )\n\n const selectedItem = items.find((item) => item.id === selectedId)\n\n const stripSx = {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n flexWrap: 'nowrap',\n alignSelf: 'flex-start',\n maxWidth: '100%',\n gap: 'var(--tabpanel-item-gap)',\n p: 'var(--tabpanel-track-pad)',\n borderRadius: 'var(--tabpanel-track-radius)',\n border: 'none',\n bgcolor: 'var(--tabpanel-track-bg)',\n } as const satisfies SxProps<Theme>\n\n const tabButtonSx = {\n position: 'relative',\n zIndex: 1,\n appearance: 'none',\n border: 'none',\n background: 'transparent',\n p: 0,\n m: 0,\n borderRadius: 'var(--tabpanel-focus-radius)',\n color: 'var(--tabpanel-tab-color)',\n transition:\n 'color var(--tabpanel-indicator-ms) var(--tabpanel-indicator-ease)',\n flexShrink: 0,\n '&:hover': {\n color: 'var(--tabpanel-tab-color-active)',\n },\n '&:focus-visible': {\n outline: '2px solid var(--tabpanel-accent)',\n outlineOffset: 3,\n },\n '&[aria-selected=\"true\"]': {\n color: 'var(--tabpanel-tab-color-active)',\n '&:hover': {\n color: 'var(--tabpanel-tab-color-active)',\n },\n },\n } as const satisfies SxProps<Theme>\n\n const setItemRef = (id: string) => (node: HTMLButtonElement | null) => {\n if (node) {\n itemRefs.current.set(id, node)\n } else {\n itemRefs.current.delete(id)\n }\n }\n\n return (\n <Box\n ref={rootRef}\n className={className}\n sx={mergeSx(\n {\n ...tabPanelRootSx,\n ...rootCssVars,\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n gap: 1.5,\n },\n slotProps?.root?.sx,\n sx\n )}\n >\n <Box\n ref={measureRef}\n aria-hidden\n sx={{\n position: 'fixed',\n left: -99999,\n top: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n flexWrap: 'nowrap',\n gap: 'var(--tabpanel-item-gap)',\n width: 'max-content',\n maxWidth: 'none',\n }}\n >\n {items.map((item) => (\n <Box\n key={`measure-${item.id}`}\n data-tab-measure\n sx={{ display: 'inline-flex', flexShrink: 0 }}\n >\n <TabItemContent item={item} showLabels={showLabels} active={false} />\n </Box>\n ))}\n </Box>\n\n <Box\n ref={moreMeasureRef}\n aria-hidden\n sx={{\n position: 'fixed',\n left: -99999,\n top: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n display: 'inline-flex',\n width: 'max-content',\n }}\n >\n <MoreTriggerContent showLabels={showLabels} open={false} />\n </Box>\n\n <Box\n ref={stripRef}\n role=\"tablist\"\n sx={mergeSx(\n stripSx,\n hasOverflow\n ? (slotProps?.menu?.sx ?? slotProps?.strip?.sx)\n : slotProps?.strip?.sx\n )}\n >\n <Box\n ref={indicatorRef}\n aria-hidden\n sx={mergeSx(\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n borderRadius: 'var(--tabpanel-focus-radius)',\n border: 'none',\n bgcolor: 'var(--tabpanel-focus-bg)',\n backdropFilter: 'blur(12px) saturate(1.2)',\n WebkitBackdropFilter: 'blur(12px) saturate(1.2)',\n boxShadow: 'var(--tabpanel-focus-shadow)',\n opacity: 0,\n pointerEvents: 'none',\n zIndex: 0,\n // Geometry (transform / width / height) is JS + WAAPI only —\n // never set transform here or Emotion fights fill: 'forwards'.\n willChange: 'transform, width, height',\n '[color-scheme=dark] &': {\n bgcolor: 'var(--tabpanel-focus-bg-dark)',\n backdropFilter: 'blur(8px) saturate(1.05)',\n WebkitBackdropFilter: 'blur(8px) saturate(1.05)',\n boxShadow: 'var(--tabpanel-focus-shadow-dark)',\n },\n },\n slotProps?.indicator?.sx\n )}\n />\n\n {visibleItems.map((item) => {\n const active = item.id === selectedId\n return (\n <Box\n key={item.id}\n component=\"button\"\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n disabled={item.disabled}\n ref={setItemRef(item.id)}\n onClick={() => select(item.id)}\n sx={mergeSx(\n {\n ...tabButtonSx,\n cursor: item.disabled ? 'not-allowed' : 'pointer',\n opacity: item.disabled ? 0.4 : 1,\n ...(item.disabled\n ? {\n color: 'var(--tabpanel-tab-color-disabled)',\n '&:hover': {\n color: 'var(--tabpanel-tab-color-disabled)',\n },\n }\n : null),\n },\n slotProps?.tab?.sx\n )}\n >\n <TabItemContent\n item={item}\n showLabels={showLabels}\n active={active}\n />\n </Box>\n )\n })}\n\n {hasOverflow ? (\n <>\n <Box\n component=\"button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={Boolean(menu.anchorEl)}\n aria-label={`More tabs, ${overflowItems.length} hidden`}\n onClick={menu.onTriggerClickHandler}\n sx={mergeSx(\n {\n ...tabButtonSx,\n cursor: 'pointer',\n },\n slotProps?.tab?.sx\n )}\n >\n <MoreTriggerContent\n showLabels={showLabels}\n open={Boolean(menu.anchorEl)}\n />\n </Box>\n <MenuPopper\n placement=\"bottom-end\"\n options={menuOptions}\n openMenuProps={{\n ...menu,\n initSelected: selectedId ? [selectedId] : [],\n }}\n />\n </>\n ) : null}\n </Box>\n\n {selectedItem?.content != null ? (\n <Box\n role=\"tabpanel\"\n sx={mergeSx({ minWidth: 0 }, slotProps?.panel?.sx)}\n >\n {selectedItem.content}\n </Box>\n ) : null}\n </Box>\n )\n}\n\nexport default TabPanel\n","import { useMemo } from 'react'\n\n/**\n * Progressive overflow: keep as many tabs as fit, reserve room for a trailing\n * \"More\" control, and always keep the selected tab on the strip when possible.\n */\nexport function computeVisibleIndexes(\n itemWidths: number[],\n moreWidth: number,\n availableWidth: number,\n selectedIndex: number,\n gapPx: number\n): { visibleIndexes: number[]; overflowIndexes: number[] } {\n const count = itemWidths.length\n if (count === 0) {\n return { visibleIndexes: [], overflowIndexes: [] }\n }\n\n if (itemWidths.some((width) => width <= 0) || availableWidth <= 0) {\n return {\n visibleIndexes: itemWidths.map((_, index) => index),\n overflowIndexes: [],\n }\n }\n\n const totalNeeded =\n itemWidths.reduce((sum, width) => sum + width, 0) +\n Math.max(0, count - 1) * gapPx\n\n if (totalNeeded <= availableWidth) {\n return {\n visibleIndexes: itemWidths.map((_, index) => index),\n overflowIndexes: [],\n }\n }\n\n const reserveMore = moreWidth > 0 ? moreWidth + gapPx : 0\n const budget = Math.max(0, availableWidth - reserveMore)\n\n const pickPrefix = (maxExclusive: number, limit: number) => {\n const indexes: number[] = []\n let used = 0\n for (let i = 0; i < maxExclusive; i += 1) {\n const width = itemWidths[i] ?? 0\n const nextUsed = used + width + (indexes.length > 0 ? gapPx : 0)\n if (nextUsed <= limit) {\n indexes.push(i)\n used = nextUsed\n } else {\n break\n }\n }\n return indexes\n }\n\n let visibleIndexes: number[]\n\n if (selectedIndex < 0 || selectedIndex >= count) {\n visibleIndexes = pickPrefix(count, budget)\n } else {\n const selectedWidth = itemWidths[selectedIndex] ?? 0\n const prefixBudget = Math.max(\n 0,\n budget - selectedWidth - (selectedWidth > 0 ? gapPx : 0)\n )\n const prefix = pickPrefix(selectedIndex, prefixBudget)\n\n let used =\n prefix.reduce((sum, index, order) => {\n return sum + (itemWidths[index] ?? 0) + (order > 0 ? gapPx : 0)\n }, 0) +\n (prefix.length > 0 ? gapPx : 0) +\n selectedWidth\n\n const after: number[] = []\n for (let i = selectedIndex + 1; i < count; i += 1) {\n const width = itemWidths[i] ?? 0\n const nextUsed = used + gapPx + width\n if (nextUsed <= budget) {\n after.push(i)\n used = nextUsed\n } else {\n break\n }\n }\n\n visibleIndexes = [...prefix, selectedIndex, ...after]\n }\n\n if (visibleIndexes.length === 0 && selectedIndex >= 0 && selectedIndex < count) {\n visibleIndexes = [selectedIndex]\n }\n\n const visibleSet = new Set(visibleIndexes)\n const overflowIndexes = itemWidths\n .map((_, index) => index)\n .filter((index) => !visibleSet.has(index))\n\n return { visibleIndexes, overflowIndexes }\n}\n\nexport function useTabsOverflowSplit(\n itemWidths: number[],\n moreWidth: number,\n availableWidth: number,\n selectedIndex: number,\n gapPx: number\n) {\n return useMemo(\n () =>\n computeVisibleIndexes(\n itemWidths,\n moreWidth,\n availableWidth,\n selectedIndex,\n gapPx\n ),\n [itemWidths, moreWidth, availableWidth, selectedIndex, gapPx]\n )\n}\n","import type { SxProps, Theme } from '@mui/material/styles'\n\n/**\n * Default TabPanel CSS variables — set on the root wrapper via `sx`.\n * Override with `sx`, `slotProps.root.sx`, or `slotProps.root.style`.\n */\nexport const tabPanelRootSx = {\n '--tabpanel-accent': 'var(--mui-palette-primary-emphasis)',\n '--tabpanel-track-bg':\n 'color-mix(in lab, var(--tabpanel-accent), transparent 92%)',\n '--tabpanel-tab-color': 'var(--mui-palette-text-secondary)',\n '--tabpanel-tab-color-active': 'var(--tabpanel-accent)',\n '--tabpanel-tab-color-disabled': 'var(--mui-palette-text-disabled)',\n '--tabpanel-badge-color': 'var(--mui-palette-error-main)',\n '--tabpanel-badge-bg':\n 'color-mix(in lab, var(--mui-palette-error-main), transparent 86%)',\n '--tabpanel-focus-bg':\n 'color-mix(in lab, var(--mui-palette-background-paper), transparent 78%)',\n '--tabpanel-focus-bg-dark':\n 'color-mix(in lab, var(--mui-palette-background-paper), transparent 55%)',\n '--tabpanel-focus-shadow': [\n 'inset 0 1px 1px color-mix(in lab, var(--mui-palette-background-paper), transparent 15%)',\n 'inset 0 -1px 3px color-mix(in lab, var(--tabpanel-accent), transparent 80%)',\n 'inset 0 0 16px color-mix(in lab, var(--mui-palette-background-paper), transparent 50%)',\n '0 0 0 1px color-mix(in lab, var(--mui-palette-background-paper), transparent 45%)',\n '0 0 20px color-mix(in lab, var(--tabpanel-accent), transparent 76%)',\n '0 8px 22px color-mix(in lab, var(--tabpanel-accent), transparent 84%)',\n ].join(', '),\n '--tabpanel-focus-shadow-dark': [\n 'inset 0 1px 0 rgba(255, 255, 255, 0.06)',\n 'inset 0 0 0 1px color-mix(in lab, var(--tabpanel-accent), transparent 82%)',\n '0 0 0 1px rgba(0, 0, 0, 0.35)',\n '0 4px 12px rgba(0, 0, 0, 0.35)',\n ].join(', '),\n '--tabpanel-focus-radius': '10px',\n '--tabpanel-track-radius': '12px',\n '--tabpanel-track-pad': '3px',\n '--tabpanel-item-gap': '1px',\n '--tabpanel-indicator-ease': 'cubic-bezier(0.32, 0.72, 0, 1)',\n '--tabpanel-indicator-ms': '380ms',\n} as const satisfies SxProps<Theme>\n\nexport type TabPanelStyleVars = {\n accent?: string\n trackBg?: string\n tabColor?: string\n tabColorActive?: string\n tabColorDisabled?: string\n badgeColor?: string\n badgeBg?: string\n focusBg?: string\n focusBgDark?: string\n focusShadow?: string\n focusShadowDark?: string\n focusRadius?: string\n trackRadius?: string\n}\n\n/** Maps typed style tokens onto CSS custom properties for the root wrapper. */\nexport function tabPanelStyleToCssVars(\n style?: TabPanelStyleVars\n): Record<string, string> {\n if (!style) {\n return {}\n }\n\n const vars: Record<string, string> = {}\n if (style.accent != null) vars['--tabpanel-accent'] = style.accent\n if (style.trackBg != null) vars['--tabpanel-track-bg'] = style.trackBg\n if (style.tabColor != null) vars['--tabpanel-tab-color'] = style.tabColor\n if (style.tabColorActive != null) {\n vars['--tabpanel-tab-color-active'] = style.tabColorActive\n }\n if (style.tabColorDisabled != null) {\n vars['--tabpanel-tab-color-disabled'] = style.tabColorDisabled\n }\n if (style.badgeColor != null) vars['--tabpanel-badge-color'] = style.badgeColor\n if (style.badgeBg != null) vars['--tabpanel-badge-bg'] = style.badgeBg\n if (style.focusBg != null) vars['--tabpanel-focus-bg'] = style.focusBg\n if (style.focusBgDark != null) {\n vars['--tabpanel-focus-bg-dark'] = style.focusBgDark\n }\n if (style.focusShadow != null) {\n vars['--tabpanel-focus-shadow'] = style.focusShadow\n }\n if (style.focusShadowDark != null) {\n vars['--tabpanel-focus-shadow-dark'] = style.focusShadowDark\n }\n if (style.focusRadius != null) {\n vars['--tabpanel-focus-radius'] = style.focusRadius\n }\n if (style.trackRadius != null) {\n vars['--tabpanel-track-radius'] = style.trackRadius\n }\n return vars\n}\n"],"mappings":"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","names":["default","useMemo","default","useMemo"]}
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import {
|
|
2
|
+
default as default3
|
|
3
|
+
} from "./chunk-4Q54P737.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Chip
|
|
6
|
+
} from "./chunk-OP6LKXPA.mjs";
|
|
7
|
+
import {
|
|
8
|
+
default as default2,
|
|
9
|
+
mergeSx
|
|
10
|
+
} from "./chunk-S6EZVRZC.mjs";
|
|
11
|
+
|
|
12
|
+
// src/components/elemental/Button/src/Button/Button.tsx
|
|
13
|
+
import MuiButton from "@mui/material/Button";
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
function Button(p) {
|
|
16
|
+
const { children, slotProps, ...rest } = p;
|
|
17
|
+
const { sx, ...boxRest } = slotProps?.innerBox ?? {};
|
|
18
|
+
return /* @__PURE__ */ jsx(MuiButton, { ...rest, children: /* @__PURE__ */ jsx(
|
|
19
|
+
default2,
|
|
20
|
+
{
|
|
21
|
+
...boxRest,
|
|
22
|
+
sx: mergeSx(
|
|
23
|
+
{
|
|
24
|
+
textOverflow: "ellipsis",
|
|
25
|
+
overflow: "hidden",
|
|
26
|
+
whiteSpace: "pre"
|
|
27
|
+
},
|
|
28
|
+
sx
|
|
29
|
+
),
|
|
30
|
+
children
|
|
31
|
+
}
|
|
32
|
+
) });
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/components/elemental/Button/src/Button/themes.ts
|
|
36
|
+
var buttonTheme = {
|
|
37
|
+
defaultProps: {
|
|
38
|
+
variant: "outlined",
|
|
39
|
+
focusRipple: false,
|
|
40
|
+
disableRipple: true,
|
|
41
|
+
size: "small"
|
|
42
|
+
},
|
|
43
|
+
styleOverrides: {
|
|
44
|
+
root: {
|
|
45
|
+
textTransform: "capitalize",
|
|
46
|
+
// MUI Button defaults to 250ms bg/color/border-color. Snap palette
|
|
47
|
+
// token flips instead of interpolating. :active scale stays a snap
|
|
48
|
+
// transform (no transform transition).
|
|
49
|
+
transition: "background-color 0s, border-color 0s, color 0s, box-shadow 0s",
|
|
50
|
+
"--button-color": "var(--mui-palette-text-primary)",
|
|
51
|
+
"--button-filled-bg": "var(--mui-palette-primary-background)",
|
|
52
|
+
"--button-hover-border-color": "var(--mui-palette-border-hover-1)",
|
|
53
|
+
"--variant-outlinedColor": "var(--button-color)",
|
|
54
|
+
"--variant-outlinedBg": "transparent",
|
|
55
|
+
"--variant-containedColor": "var(--button-color)",
|
|
56
|
+
"--variant-containedBg": "var(--button-filled-bg)",
|
|
57
|
+
"--variant-textBorderColor": "transparent",
|
|
58
|
+
"&:hover": {
|
|
59
|
+
"--variant-textBorderColor": "var(--button-hover-border-color)"
|
|
60
|
+
},
|
|
61
|
+
"&.MuiButton-colorError": {
|
|
62
|
+
"--button-color": "var(--mui-palette-error-main)",
|
|
63
|
+
"--button-filled-bg": "var(--mui-palette-error-background)",
|
|
64
|
+
"--button-hover-border-color": "var(--mui-palette-error-dark)"
|
|
65
|
+
},
|
|
66
|
+
"&.MuiButton-colorInfo": {
|
|
67
|
+
"--button-color": "var(--mui-palette-info-main)",
|
|
68
|
+
"--button-filled-bg": "var(--mui-palette-info-background)",
|
|
69
|
+
"--button-hover-border-color": "var(--mui-palette-info-dark)"
|
|
70
|
+
},
|
|
71
|
+
"&.MuiButton-colorSuccess": {
|
|
72
|
+
"--button-color": "var(--mui-palette-success-dark)",
|
|
73
|
+
"--button-filled-bg": "var(--mui-palette-success-background)",
|
|
74
|
+
"--button-hover-border-color": "var(--mui-palette-success-dark)"
|
|
75
|
+
},
|
|
76
|
+
"&.MuiButton-colorWarning": {
|
|
77
|
+
"--button-color": "var(--mui-palette-warning-main)",
|
|
78
|
+
"--button-filled-bg": "var(--mui-palette-warning-background)",
|
|
79
|
+
"--button-hover-border-color": "var(--mui-palette-warning-dark)"
|
|
80
|
+
},
|
|
81
|
+
"&.MuiButton-colorSystem": {
|
|
82
|
+
"--button-color": "var(--mui-palette-system-main)",
|
|
83
|
+
"--button-filled-bg": "var(--mui-palette-system-background)",
|
|
84
|
+
"--button-hover-border-color": "var(--mui-palette-system-dark)"
|
|
85
|
+
},
|
|
86
|
+
"&.MuiButton-colorInsight": {
|
|
87
|
+
"--button-color": "var(--mui-palette-insight-main)",
|
|
88
|
+
"--button-filled-bg": "var(--mui-palette-insight-background)",
|
|
89
|
+
"--button-hover-border-color": "var(--mui-palette-insight-dark)"
|
|
90
|
+
},
|
|
91
|
+
"&.MuiButton-colorSecondary": {
|
|
92
|
+
"--button-color": "var(--mui-palette-secondary-main)",
|
|
93
|
+
"--button-filled-bg": "var(--mui-palette-secondary-background)",
|
|
94
|
+
"--button-hover-border-color": "var(--mui-palette-border-hover-1)"
|
|
95
|
+
},
|
|
96
|
+
"&.MuiButton-colorPrimary": {
|
|
97
|
+
"--button-color": "var(--mui-palette-primary-emphasis)",
|
|
98
|
+
"--button-filled-bg": "var(--mui-palette-container-bg-primary)",
|
|
99
|
+
"--button-hover-border-color": "var(--mui-palette-primary-emphasis)",
|
|
100
|
+
"--variant-outlinedBorder": "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)",
|
|
101
|
+
"--variant-textColor": "var(--mui-palette-primary-emphasis)",
|
|
102
|
+
"--variant-containedColor": "var(--mui-palette-text-primary)",
|
|
103
|
+
"&.MuiButton-outlined": {
|
|
104
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
105
|
+
borderColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)",
|
|
106
|
+
"&:hover": {
|
|
107
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
108
|
+
borderColor: "var(--mui-palette-primary-emphasis)",
|
|
109
|
+
backgroundColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"&.MuiButton-contained": {
|
|
113
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
114
|
+
backgroundColor: "var(--mui-palette-container-bg-primary)",
|
|
115
|
+
"&:hover": {
|
|
116
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
117
|
+
borderColor: "var(--mui-palette-border-hover-1)",
|
|
118
|
+
backgroundColor: "var(--mui-palette-container-bg-primary)"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"&.MuiButton-text": {
|
|
122
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
123
|
+
"&:hover": {
|
|
124
|
+
color: "var(--mui-palette-primary-emphasis)",
|
|
125
|
+
borderColor: "var(--mui-palette-primary-emphasis)",
|
|
126
|
+
backgroundColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"&:active": {
|
|
131
|
+
scale: "0.9"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
outlined: {
|
|
135
|
+
"&:hover": {
|
|
136
|
+
borderColor: "var(--button-hover-border-color)"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
contained: {
|
|
140
|
+
boxShadow: "none",
|
|
141
|
+
border: "1px solid transparent",
|
|
142
|
+
"&:hover": {
|
|
143
|
+
boxShadow: "none",
|
|
144
|
+
borderColor: "var(--button-hover-border-color)",
|
|
145
|
+
backgroundColor: "var(--button-filled-bg)"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
text: {
|
|
149
|
+
border: "1px solid transparent",
|
|
150
|
+
borderColor: "var(--variant-textBorderColor)"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
var buttonBaseTheme = {
|
|
155
|
+
styleOverrides: {
|
|
156
|
+
root: {
|
|
157
|
+
textTransform: "capitalize"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
// src/components/elemental/Button/src/IconButton/IconButton.tsx
|
|
163
|
+
import { forwardRef } from "react";
|
|
164
|
+
import MuiIconButton from "@mui/material/IconButton";
|
|
165
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
166
|
+
var IconButton = forwardRef(({
|
|
167
|
+
title = "",
|
|
168
|
+
children,
|
|
169
|
+
color,
|
|
170
|
+
size,
|
|
171
|
+
slotProps,
|
|
172
|
+
selected,
|
|
173
|
+
className,
|
|
174
|
+
...props
|
|
175
|
+
}, ref) => {
|
|
176
|
+
return /* @__PURE__ */ jsx2(
|
|
177
|
+
default3,
|
|
178
|
+
{
|
|
179
|
+
title,
|
|
180
|
+
slotProps: {
|
|
181
|
+
popper: {
|
|
182
|
+
sx: {
|
|
183
|
+
textTransform: "capitalize"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
...slotProps?.tooltip
|
|
187
|
+
},
|
|
188
|
+
children: /* @__PURE__ */ jsx2(default2, { component: "span", sx: { width: "fit-content" }, children: /* @__PURE__ */ jsx2(
|
|
189
|
+
MuiIconButton,
|
|
190
|
+
{
|
|
191
|
+
ref,
|
|
192
|
+
color,
|
|
193
|
+
size,
|
|
194
|
+
className: [className, selected ? "Mui-selected" : ""].filter(Boolean).join(" "),
|
|
195
|
+
...props,
|
|
196
|
+
children
|
|
197
|
+
}
|
|
198
|
+
) })
|
|
199
|
+
}
|
|
200
|
+
);
|
|
201
|
+
});
|
|
202
|
+
var IconButton_default = IconButton;
|
|
203
|
+
|
|
204
|
+
// src/components/elemental/Button/src/IconButton/IconButton.HoverSpinnin.tsx
|
|
205
|
+
import { styled } from "@mui/material/styles";
|
|
206
|
+
var IconButton_HoverSpinnin_default = styled(IconButton_default)({
|
|
207
|
+
"&:hover svg": {
|
|
208
|
+
transform: "rotate(360deg)",
|
|
209
|
+
transition: "transform 0.3s ease-in-out"
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// src/components/elemental/Button/src/IconButton/IconButton.Fade.tsx
|
|
214
|
+
import { forwardRef as forwardRef2, useState, useEffect } from "react";
|
|
215
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
216
|
+
var IconButtonFade = forwardRef2(({
|
|
217
|
+
fadeIcon,
|
|
218
|
+
fadeDuration = 1e3,
|
|
219
|
+
children,
|
|
220
|
+
onClick,
|
|
221
|
+
...rest
|
|
222
|
+
}, ref) => {
|
|
223
|
+
const [active, setActive] = useState(false);
|
|
224
|
+
const handleClick = (e) => {
|
|
225
|
+
onClick?.(e);
|
|
226
|
+
setActive(true);
|
|
227
|
+
};
|
|
228
|
+
useEffect(() => {
|
|
229
|
+
if (!active) return;
|
|
230
|
+
const timer = setTimeout(() => setActive(false), fadeDuration);
|
|
231
|
+
return () => clearTimeout(timer);
|
|
232
|
+
}, [active, fadeDuration]);
|
|
233
|
+
return /* @__PURE__ */ jsx3(
|
|
234
|
+
IconButton_default,
|
|
235
|
+
{
|
|
236
|
+
ref,
|
|
237
|
+
...rest,
|
|
238
|
+
onClick: handleClick,
|
|
239
|
+
children: /* @__PURE__ */ jsxs(default2, { sx: { position: "relative", display: "inline-flex" }, children: [
|
|
240
|
+
/* @__PURE__ */ jsx3(
|
|
241
|
+
default2,
|
|
242
|
+
{
|
|
243
|
+
sx: {
|
|
244
|
+
opacity: active ? 0 : 1,
|
|
245
|
+
transition: "opacity 0.2s ease-in-out"
|
|
246
|
+
},
|
|
247
|
+
children
|
|
248
|
+
}
|
|
249
|
+
),
|
|
250
|
+
/* @__PURE__ */ jsx3(
|
|
251
|
+
default2,
|
|
252
|
+
{
|
|
253
|
+
sx: {
|
|
254
|
+
position: "absolute",
|
|
255
|
+
top: 0,
|
|
256
|
+
left: 0,
|
|
257
|
+
opacity: active ? 1 : 0,
|
|
258
|
+
transition: "opacity 0.2s ease-in-out"
|
|
259
|
+
},
|
|
260
|
+
children: fadeIcon
|
|
261
|
+
}
|
|
262
|
+
)
|
|
263
|
+
] })
|
|
264
|
+
}
|
|
265
|
+
);
|
|
266
|
+
});
|
|
267
|
+
var IconButton_Fade_default = IconButtonFade;
|
|
268
|
+
|
|
269
|
+
// src/components/elemental/Button/src/IconButton/theme.ts
|
|
270
|
+
var iconButtonTheme = {
|
|
271
|
+
defaultProps: {
|
|
272
|
+
focusRipple: false,
|
|
273
|
+
disableRipple: true,
|
|
274
|
+
color: "secondary",
|
|
275
|
+
size: "small"
|
|
276
|
+
},
|
|
277
|
+
styleOverrides: {
|
|
278
|
+
root: ({ theme }) => ({
|
|
279
|
+
// MUI IconButton defaults to 150ms background-color. Drop color
|
|
280
|
+
// interpolation; :active scale stays a snap transform.
|
|
281
|
+
transition: "background-color 0s, border-color 0s, color 0s",
|
|
282
|
+
"--button-color": "var(--mui-palette-text-primary)",
|
|
283
|
+
"--button-hover-border-color": "var(--mui-palette-border-hover-1)",
|
|
284
|
+
"&.MuiIconButton-colorError": {
|
|
285
|
+
"--button-color": "var(--mui-palette-error-main)",
|
|
286
|
+
"--button-hover-border-color": "var(--mui-palette-error-dark)"
|
|
287
|
+
},
|
|
288
|
+
"&.MuiIconButton-colorInfo": {
|
|
289
|
+
"--button-color": "var(--mui-palette-info-main)",
|
|
290
|
+
"--button-hover-border-color": "var(--mui-palette-info-dark)"
|
|
291
|
+
},
|
|
292
|
+
"&.MuiIconButton-colorSuccess": {
|
|
293
|
+
"--button-color": "var(--mui-palette-success-dark)",
|
|
294
|
+
"--button-hover-border-color": "var(--mui-palette-success-dark)"
|
|
295
|
+
},
|
|
296
|
+
"&.MuiIconButton-colorWarning": {
|
|
297
|
+
"--button-color": "var(--mui-palette-warning-main)",
|
|
298
|
+
"--button-hover-border-color": "var(--mui-palette-warning-dark)"
|
|
299
|
+
},
|
|
300
|
+
"&.MuiIconButton-colorSecondary": {
|
|
301
|
+
"--button-color": "var(--mui-palette-secondary-dark)",
|
|
302
|
+
"--button-hover-border-color": "var(--mui-palette-secondary-main)"
|
|
303
|
+
},
|
|
304
|
+
"&.MuiIconButton-colorPrimary": {
|
|
305
|
+
"--button-color": "var(--mui-palette-primary-emphasis)",
|
|
306
|
+
"--button-hover-border-color": "var(--mui-palette-primary-emphasis)"
|
|
307
|
+
},
|
|
308
|
+
"&.MuiIconButton-colorSystem": {
|
|
309
|
+
"--button-color": "var(--mui-palette-system-main)",
|
|
310
|
+
"--button-hover-border-color": "var(--mui-palette-system-dark)"
|
|
311
|
+
},
|
|
312
|
+
"&.MuiIconButton-colorInsight": {
|
|
313
|
+
"--button-color": "var(--mui-palette-insight-main)",
|
|
314
|
+
"--button-hover-border-color": "var(--mui-palette-insight-dark)"
|
|
315
|
+
},
|
|
316
|
+
"--color-p": "var(--button-color)",
|
|
317
|
+
"--bg": "color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)",
|
|
318
|
+
padding: theme.spacing(0.5),
|
|
319
|
+
borderRadius: "8px",
|
|
320
|
+
color: "var(--color-p)",
|
|
321
|
+
backgroundColor: "var(--bg)",
|
|
322
|
+
"&:active svg": {
|
|
323
|
+
scale: "0.9"
|
|
324
|
+
},
|
|
325
|
+
"&.Mui-disabled": {
|
|
326
|
+
"--color-p": "var(--mui-palette-action-disabled)",
|
|
327
|
+
"--bg": "color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)",
|
|
328
|
+
color: "var(--color-p)",
|
|
329
|
+
backgroundColor: "var(--bg)",
|
|
330
|
+
"& svg.MuiSvgIcon-root": {
|
|
331
|
+
color: "var(--color-p)"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
border: "1px solid transparent",
|
|
335
|
+
"&:hover": {
|
|
336
|
+
borderColor: "color-mix(in lab, var(--mui-palette-border-1) 80%, var(--button-hover-border-color))"
|
|
337
|
+
},
|
|
338
|
+
"&:active": {
|
|
339
|
+
scale: "0.9"
|
|
340
|
+
}
|
|
341
|
+
})
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
// src/components/elemental/Button/src/TagButton/TagButton.tsx
|
|
346
|
+
import { styled as styled2 } from "@mui/material/styles";
|
|
347
|
+
|
|
348
|
+
// src/components/elemental/Button/src/TagButton/theme.ts
|
|
349
|
+
var tagButtonVars = {
|
|
350
|
+
"--tag-color": "var(--mui-palette-text-grey-1)",
|
|
351
|
+
"--tag-bg": "var(--mui-palette-background-grey-1)",
|
|
352
|
+
"--tag-bg-hover": "var(--mui-palette-focus-soft-1)"
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
// src/components/elemental/Button/src/TagButton/TagButton.tsx
|
|
356
|
+
var TagButton = styled2(Chip, {})(() => ({
|
|
357
|
+
...tagButtonVars,
|
|
358
|
+
"&.MuiChip-root": {
|
|
359
|
+
maxWidth: "fit-content",
|
|
360
|
+
textTransform: "lowercase",
|
|
361
|
+
color: "var(--tag-color)",
|
|
362
|
+
fontStyle: "italic",
|
|
363
|
+
padding: "2px 4px",
|
|
364
|
+
border: "none",
|
|
365
|
+
borderRadius: "var(--mui-shape-borderRadius)",
|
|
366
|
+
// use theme shape token
|
|
367
|
+
fontSize: "12px",
|
|
368
|
+
lineHeight: "16px",
|
|
369
|
+
height: "auto",
|
|
370
|
+
width: "auto",
|
|
371
|
+
boxShadow: "none",
|
|
372
|
+
gap: "2px",
|
|
373
|
+
background: "var(--tag-bg)",
|
|
374
|
+
transition: "none",
|
|
375
|
+
borderWidth: "0px",
|
|
376
|
+
"&.MuiChip-clickable:hover": {
|
|
377
|
+
background: "var(--tag-bg-hover)",
|
|
378
|
+
boxShadow: "none"
|
|
379
|
+
},
|
|
380
|
+
"& .MuiChip-icon": {
|
|
381
|
+
color: "var(--tag-color)",
|
|
382
|
+
fontSize: "1rem",
|
|
383
|
+
margin: "0",
|
|
384
|
+
padding: "0"
|
|
385
|
+
},
|
|
386
|
+
"& .MuiChip-label": {
|
|
387
|
+
padding: "0 1px",
|
|
388
|
+
margin: "0",
|
|
389
|
+
marginRight: "4px"
|
|
390
|
+
},
|
|
391
|
+
"& .MuiChip-deleteIcon": {
|
|
392
|
+
fontSize: "1rem",
|
|
393
|
+
borderRadius: "50%",
|
|
394
|
+
color: "var(--tag-color)",
|
|
395
|
+
margin: "0"
|
|
396
|
+
},
|
|
397
|
+
"& .MuiSvgIcon-root": {
|
|
398
|
+
fontSize: "1em"
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}));
|
|
402
|
+
var TagButton_default = TagButton;
|
|
403
|
+
|
|
404
|
+
export {
|
|
405
|
+
Button,
|
|
406
|
+
buttonTheme,
|
|
407
|
+
buttonBaseTheme,
|
|
408
|
+
IconButton_default,
|
|
409
|
+
IconButton_HoverSpinnin_default,
|
|
410
|
+
IconButton_Fade_default,
|
|
411
|
+
iconButtonTheme,
|
|
412
|
+
TagButton_default
|
|
413
|
+
};
|
|
414
|
+
//# sourceMappingURL=chunk-JIU5GVM7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/elemental/Button/src/Button/Button.tsx","../src/components/elemental/Button/src/Button/themes.ts","../src/components/elemental/Button/src/IconButton/IconButton.tsx","../src/components/elemental/Button/src/IconButton/IconButton.HoverSpinnin.tsx","../src/components/elemental/Button/src/IconButton/IconButton.Fade.tsx","../src/components/elemental/Button/src/IconButton/theme.ts","../src/components/elemental/Button/src/TagButton/TagButton.tsx","../src/components/elemental/Button/src/TagButton/theme.ts"],"sourcesContent":["import React from 'react';\n\nimport MuiButton from '@mui/material/Button';\nimport { Box } from '@/ele/Box';\nimport { mergeSx } from '@/_utils/_func';\n\n/**\n * A modified MUI Button that truncates long text with ellipsis.\n * \n * [Doc](https://mui.com/material-ui/react-button/)\n * [API](https://mui.com/material-ui/api/button/)\n */\nexport default function Button(p:\n React.ComponentProps<typeof MuiButton> & {\n slotProps?: {\n innerBox?: React.ComponentProps<typeof Box>\n }\n }) {\n const {children, slotProps, ...rest} = p\n const {sx, ...boxRest} = slotProps?.innerBox ?? {}\n return <MuiButton {...rest}>\n <Box \n {...boxRest}\n sx={mergeSx(\n {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'pre',\n },\n sx,\n )}>\n {children}\n </Box>\n </MuiButton>\n}","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const buttonTheme = {\n defaultProps: {\n variant: 'outlined',\n focusRipple: false,\n disableRipple: true,\n size: 'small',\n },\n styleOverrides: {\n root: {\n textTransform: 'capitalize',\n // MUI Button defaults to 250ms bg/color/border-color. Snap palette\n // token flips instead of interpolating. :active scale stays a snap\n // transform (no transform transition).\n transition: 'background-color 0s, border-color 0s, color 0s, box-shadow 0s',\n\n '--button-color':'var(--mui-palette-text-primary)',\n '--button-filled-bg':'var(--mui-palette-primary-background)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n\n \"--variant-outlinedColor\":\"var(--button-color)\",\n \"--variant-outlinedBg\":\"transparent\",\n\n \"--variant-containedColor\":\"var(--button-color)\",\n \"--variant-containedBg\":\"var(--button-filled-bg)\",\n\n \"--variant-textBorderColor\": 'transparent',\n \"&:hover\": {\n \"--variant-textBorderColor\":\"var(--button-hover-border-color)\",\n },\n\n \"&.MuiButton-colorError\":{\n '--button-color':'var(--mui-palette-error-main)',\n '--button-filled-bg':'var(--mui-palette-error-background)',\n '--button-hover-border-color':'var(--mui-palette-error-dark)',\n },\n \"&.MuiButton-colorInfo\":{\n '--button-color':'var(--mui-palette-info-main)',\n '--button-filled-bg':'var(--mui-palette-info-background)',\n '--button-hover-border-color':'var(--mui-palette-info-dark)',\n },\n \"&.MuiButton-colorSuccess\":{\n '--button-color':'var(--mui-palette-success-dark)',\n '--button-filled-bg':'var(--mui-palette-success-background)',\n '--button-hover-border-color':'var(--mui-palette-success-dark)',\n },\n \"&.MuiButton-colorWarning\":{\n '--button-color':'var(--mui-palette-warning-main)',\n '--button-filled-bg':'var(--mui-palette-warning-background)',\n '--button-hover-border-color':'var(--mui-palette-warning-dark)',\n },\n \"&.MuiButton-colorSystem\":{\n '--button-color':'var(--mui-palette-system-main)',\n '--button-filled-bg':'var(--mui-palette-system-background)',\n '--button-hover-border-color':'var(--mui-palette-system-dark)',\n },\n \"&.MuiButton-colorInsight\":{\n '--button-color':'var(--mui-palette-insight-main)',\n '--button-filled-bg':'var(--mui-palette-insight-background)',\n '--button-hover-border-color':'var(--mui-palette-insight-dark)',\n },\n \"&.MuiButton-colorSecondary\":{\n '--button-color':'var(--mui-palette-secondary-main)',\n '--button-filled-bg':'var(--mui-palette-secondary-background)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n },\n \"&.MuiButton-colorPrimary\":{\n '--button-color':'var(--mui-palette-primary-emphasis)',\n '--button-filled-bg':'var(--mui-palette-container-bg-primary)',\n '--button-hover-border-color':'var(--mui-palette-primary-emphasis)',\n\n '--variant-outlinedBorder': 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)',\n '--variant-textColor':'var(--mui-palette-primary-emphasis)',\n '--variant-containedColor':'var(--mui-palette-text-primary)',\n\n '&.MuiButton-outlined': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n },\n '&.MuiButton-contained': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'var(--mui-palette-container-bg-primary)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-border-hover-1)',\n backgroundColor: 'var(--mui-palette-container-bg-primary)',\n },\n },\n '&.MuiButton-text': {\n color: 'var(--mui-palette-primary-emphasis)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n },\n },\n\n \"&:active\": {\n scale:\"0.9\",\n },\n },\n outlined: {\n \"&:hover\": {\n borderColor: 'var(--button-hover-border-color)',\n },\n },\n contained: {\n boxShadow: 'none',\n border:'1px solid transparent',\n '&:hover': {\n boxShadow: 'none',\n borderColor: 'var(--button-hover-border-color)',\n backgroundColor: 'var(--button-filled-bg)',\n },\n },\n\n text: {\n border:'1px solid transparent',\n borderColor: 'var(--variant-textBorderColor)',\n },\n }\n\n} as const satisfies MuiComponentTheme<\"MuiButton\">\n\nexport const buttonBaseTheme = {\n styleOverrides: {\n root: {\n textTransform: 'capitalize',\n },\n }\n \n} as const satisfies MuiComponentTheme<\"MuiButtonBase\">","'use client'\nimport {forwardRef} from 'react'\nimport MuiIconButton from '@mui/material/IconButton'\nimport { Tooltip } from '@/ele/Tooltip'\nimport { type TooltipProps } from '@mui/material/Tooltip'\nimport { Box } from '@/ele/Box'\n\ntype IconButtonProps = React.ComponentProps<typeof MuiIconButton>\ntype Props = {\n /** The Icon to render */\n children: React.ReactNode;\n /** The title of the tooltip */\n title?: string;\n /** \n * The color theme of the entire component.\n * @default 'secondary' (from theme)\n */\n color?: IconButtonProps['color'];\n /**\n * The size of the component.\n * @default 'small' (from theme)\n */\n size?: IconButtonProps['size'];\n \n selected?: boolean;\n \n slotProps?: {\n tooltip?: Omit<TooltipProps, \"children\">\n };\n} & Omit<IconButtonProps, \"color\" | \"size\">;\n\n/**\n * A MuiIconButton wrapped in a MuiTooltip.\n * Default props like `size` and `color` are handled by the theme.\n */\nconst IconButton = forwardRef<HTMLButtonElement, Props>(({\n title = \"\",\n children,\n color,\n size,\n slotProps,\n selected,\n className,\n ...props\n}, ref) => {\n return (\n <Tooltip \n title={title} \n slotProps={{\n popper: {\n sx: {\n textTransform: \"capitalize\",\n }\n },\n ...slotProps?.tooltip\n }}\n >\n <Box component=\"span\" sx={{width: \"fit-content\"}}>\n <MuiIconButton\n ref={ref}\n color={color}\n size={size}\n className={[className, selected ? 'Mui-selected' : ''].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </MuiIconButton>\n </Box>\n </Tooltip>\n )\n})\n\nexport default IconButton","'use client'\nimport { styled } from '@mui/material/styles'\n\nimport IconButton from './IconButton'\n\nexport default styled(IconButton)({\n \"&:hover svg\": {\n transform:\"rotate(360deg)\",\n transition:\"transform 0.3s ease-in-out\",\n },\n})","'use client'\nimport { forwardRef, useState, useEffect, type ComponentProps } from 'react'\nimport { Box } from '@/ele/Box'\nimport IconButton from './IconButton'\n\n// reuse the public prop types from the regular IconButton component; this\n// automatically keeps the two in sync and avoids exporting an explicit\n// `Props` type from IconButton.tsx.\nexport type IconButtonFadeProps = ComponentProps<typeof IconButton> & {\n /**\n * element that is shown temporarily when the button is activated (usually\n * another icon). the component will fade from `children` to this element\n * and then automatically back again after `fadeDuration`.\n */\n fadeIcon: React.ReactNode;\n /** how long (in ms) the fade icon remains visible before reverting */\n fadeDuration?: number;\n};\n\nconst IconButtonFade = forwardRef<HTMLButtonElement, IconButtonFadeProps>(({\n fadeIcon,\n fadeDuration = 1000,\n children,\n onClick,\n ...rest\n}, ref) => {\n const [active, setActive] = useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n onClick?.(e);\n setActive(true);\n };\n\n useEffect(() => {\n if (!active) return;\n const timer = setTimeout(() => setActive(false), fadeDuration);\n return () => clearTimeout(timer);\n }, [active, fadeDuration]);\n\n return (\n <IconButton\n ref={ref}\n {...rest}\n onClick={handleClick}\n >\n <Box sx={{ position: 'relative', display: 'inline-flex' }}>\n <Box\n sx={{\n opacity: active ? 0 : 1,\n transition: 'opacity 0.2s ease-in-out',\n }}\n >\n {children}\n </Box>\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: active ? 1 : 0,\n transition: 'opacity 0.2s ease-in-out',\n }}\n >\n {fadeIcon}\n </Box>\n </Box>\n </IconButton>\n )\n})\n\nexport default IconButtonFade\n","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const iconButtonTheme = {\n defaultProps: {\n focusRipple: false,\n disableRipple: true,\n color: 'secondary',\n size: 'small',\n },\n styleOverrides: {\n root: ({theme}) =>({\n // MUI IconButton defaults to 150ms background-color. Drop color\n // interpolation; :active scale stays a snap transform.\n transition: 'background-color 0s, border-color 0s, color 0s',\n '--button-color':'var(--mui-palette-text-primary)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n \"&.MuiIconButton-colorError\":{\n '--button-color':'var(--mui-palette-error-main)',\n '--button-hover-border-color':'var(--mui-palette-error-dark)',\n },\n \"&.MuiIconButton-colorInfo\":{\n '--button-color':'var(--mui-palette-info-main)',\n '--button-hover-border-color':'var(--mui-palette-info-dark)',\n },\n \"&.MuiIconButton-colorSuccess\":{\n '--button-color':'var(--mui-palette-success-dark)',\n '--button-hover-border-color':'var(--mui-palette-success-dark)',\n },\n \"&.MuiIconButton-colorWarning\":{\n '--button-color':'var(--mui-palette-warning-main)',\n '--button-hover-border-color':'var(--mui-palette-warning-dark)',\n },\n \"&.MuiIconButton-colorSecondary\":{\n '--button-color':'var(--mui-palette-secondary-dark)',\n '--button-hover-border-color':'var(--mui-palette-secondary-main)',\n },\n \"&.MuiIconButton-colorPrimary\":{\n '--button-color':'var(--mui-palette-primary-emphasis)',\n '--button-hover-border-color':'var(--mui-palette-primary-emphasis)',\n },\n \"&.MuiIconButton-colorSystem\":{\n '--button-color':'var(--mui-palette-system-main)',\n '--button-hover-border-color':'var(--mui-palette-system-dark)',\n },\n \"&.MuiIconButton-colorInsight\":{\n '--button-color':'var(--mui-palette-insight-main)',\n '--button-hover-border-color':'var(--mui-palette-insight-dark)',\n },\n\n '--color-p':'var(--button-color)',\n '--bg': 'color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)',\n padding: theme.spacing(0.5),\n borderRadius: '8px',\n \n color: 'var(--color-p)',\n\n backgroundColor:'var(--bg)',\n \"&:active svg\": {\n scale:\"0.9\",\n },\n\n \"&.Mui-disabled\":{\n '--color-p':'var(--mui-palette-action-disabled)',\n '--bg': 'color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)',\n color: 'var(--color-p)',\n backgroundColor:'var(--bg)',\n\n '& svg.MuiSvgIcon-root':{\n color: 'var(--color-p)',\n },\n },\n\n border: '1px solid transparent',\n \"&:hover\": {\n borderColor: 'color-mix(in lab, var(--mui-palette-border-1) 80%, var(--button-hover-border-color))',\n },\n\n \"&:active\": {\n scale:\"0.9\",\n },\n }),\n },\n\n} as const satisfies MuiComponentTheme<\"MuiIconButton\">","'use client'\nimport { Chip } from '@/ele/Chip'\nimport { styled } from '@mui/material/styles'\nimport { tagButtonVars } from './theme'\n\n/**\n * A styled Mui Chip component\n * \n * [Doc](https://mui.com/material-ui/react-chip/)\n */\nconst TagButton = styled(Chip,{\n \n})(() => ({\n ...tagButtonVars,\n\n '&.MuiChip-root':{\n maxWidth: 'fit-content',\n textTransform: 'lowercase',\n color:'var(--tag-color)',\n fontStyle: 'italic',\n padding: '2px 4px',\n \n border:'none',\n borderRadius: 'var(--mui-shape-borderRadius)', // use theme shape token\n fontSize: '12px',\n lineHeight: '16px',\n height:'auto',\n width:'auto',\n boxShadow:'none',\n gap:'2px',\n \n background:'var(--tag-bg)',\n transition: 'none',\n \n borderWidth: '0px',\n '&.MuiChip-clickable:hover': {\n background: 'var(--tag-bg-hover)',\n boxShadow: 'none',\n },\n '& .MuiChip-icon': {\n color: 'var(--tag-color)',\n fontSize: '1rem',\n margin:'0',\n padding:'0',\n },\n '& .MuiChip-label': {\n padding: '0 1px',\n\n margin:'0',\n marginRight:'4px',\n },\n '& .MuiChip-deleteIcon': {\n fontSize: '1rem',\n borderRadius: '50%',\n color: 'var(--tag-color)',\n margin:'0',\n },\n\n '& .MuiSvgIcon-root':{\n fontSize: '1em',\n }\n },\n}))\nexport default TagButton","export const tagButtonVars = {\n\t'--tag-color': 'var(--mui-palette-text-grey-1)',\n\t'--tag-bg': 'var(--mui-palette-background-grey-1)',\n\t'--tag-bg-hover': 'var(--mui-palette-focus-soft-1)',\n} as const\n"],"mappings":"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","names":["default","jsx","default","forwardRef","jsx","forwardRef","default","styled","styled"]}
|