@mendylanda/ui 0.4.1-dev.62.9f3005e21c79 → 0.4.2-dev.65.0f00a8efff6b
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/dist/class-names.js +1 -1
- package/dist/filters/filter-collection.js +11 -1
- package/dist/filters/filter-menu-panel.js +2 -2
- package/dist/filters/filter-state.js +4 -2
- package/dist/filters/url-parser.d.ts +3 -0
- package/dist/filters/url-parser.js +40 -0
- package/dist/filters/url-value.d.ts +2 -0
- package/dist/filters/url-value.js +17 -0
- package/dist/filters/use-menu-placement.js +5 -2
- package/dist/filters/use-url-filters.js +14 -5
- package/dist/styles.css +6 -0
- package/dist/styles.tailwind3.css +6 -0
- package/dist/table/row-selection-label.d.ts +4 -0
- package/dist/table/row-selection-label.js +14 -0
- package/dist/table/table-column-settings.js +8 -5
- package/dist/table/table-controls.js +4 -3
- package/dist/table/table-feedback.d.ts +6 -3
- package/dist/table/table-feedback.js +8 -5
- package/dist/table/table-parts.js +20 -3
- package/dist/table/table-view.js +2 -2
- package/dist/table/use-data-table.d.ts +2 -0
- package/package.json +2 -2
package/dist/class-names.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const originalClassNames = {"mui-cb20bd519346":"pointer-events-auto","mui-33228ff7d583":"pointer-events-none","mui-b75af7ef6c4d":"invisible","mui-d42ef1497900":"visible","mui-32fb090591d9":"sr-only","mui-747355bdc2a2":"absolute","mui-d2d9e1f13413":"relative","mui-964a9431ff49":"sticky","mui-ce13093ad8c9":"inset-0","mui-3ba24c062d55":"inset-x-0","mui-eb9e48c5dda9":"inset-y-0","mui-cced28c6dc3f":"start","mui-8368bbb62f66":"start-0","mui-207bd0b3f259":"start-2","mui-cea70f23972e":"start-3","mui-361e48d0308f":"end","mui-aa7bcba08429":"end-0","mui-13422ddc8d83":"end-1","mui-585f4729f611":"end-9","mui-98599e4ee250":"top-0","mui-4e45f4841abb":"top-1/2","mui-30150dd033ab":"bottom-0","mui-a5c36273c0f0":"bottom-2","mui-014aadadffad":"isolate","mui-d7efd1b0b0f9":"z-1","mui-418e44ad4f9e":"z-10","mui-4e8f0a87a0dc":"z-20","mui-fbb62f5cb6fe":"z-30","mui-3eef1ce97dba":"z-50","mui-a42d519714d6":"container","mui-a2526bc2efa3":"m-0","mui-abba77319850":"-mx-1","mui-1752f11474a6":"mx-auto","mui-d8747231f142":"my-1","mui-958e2cfcf5b6":"-ms-2","mui-291952c2525a":"-ms-px","mui-5cf4ab3b6fa0":"ms-auto","mui-8cc46fa87f41":"-me-1.5","mui-477d8f4dfce9":"me-1","mui-68d781378b03":"me-2","mui-f28fea81a5cd":"mt-2","mui-496aca80e4d8":"block","mui-d1b2a59fbea7":"contents","mui-222f930b8752":"flex","mui-0f2a693e93e2":"grid","mui-e564b4081d7a":"hidden","mui-995cf20a9c45":"inline","mui-123306850fe1":"inline-flex","mui-0d4fc4a78d37":"table","mui-3da89b3ed14b":"field-sizing-content","mui-129d6f9b1e07":"aspect-square","mui-f7d12b41bceb":"size-(--cell-size)","mui-dc797fcc7165":"size-1.5","mui-5e34f5313859":"size-3","mui-61c000c8a98a":"size-3.5","mui-100c22d5776b":"size-4","mui-2bd43fb57913":"size-5","mui-0712570dcc9f":"size-6","mui-79ede756e761":"size-7","mui-ebd37e04d422":"size-8","mui-3ee10ef4c057":"size-9","mui-d0a383a9c24f":"size-10","mui-4dad94bd15e3":"size-auto","mui-a5960ac1d283":"h-(--cell-size)","mui-c7d5500b77ab":"h-0","mui-2edce89ef182":"h-3","mui-099be97e1fa4":"h-4","mui-ce1945804664":"h-6","mui-c8e50836f8a1":"h-7","mui-1fb07b38c63b":"h-8","mui-539ae144f076":"h-9","mui-fdd2f85cad6b":"h-10","mui-a66e9985b093":"h-auto","mui-57c930dc1c31":"h-full","mui-ae2c4b060bb9":"h-px","mui-571ea69568d3":"max-h-(--filter-menu-height)","mui-1f061e70178e":"max-h-(--radix-dropdown-menu-content-available-height)","mui-4d3f1304ebb2":"max-h-(--radix-popover-content-available-height)","mui-da0beef015c9":"max-h-[400px]","mui-80baa5d03af7":"max-h-[calc(var(--filter-menu-height)-2px)]","mui-1326520533f0":"max-h-[min(6rem,calc(var(--filter-menu-height)*0.25))]","mui-fb4a3e97b5bd":"max-h-[min(20rem,var(--radix-dropdown-menu-content-available-height,20rem))]","mui-dcd942c18ddc":"max-h-[var(--radix-dropdown-menu-content-available-height)]","mui-7bd696ca6be3":"max-h-full","mui-410da8dfa8ac":"min-h-0","mui-9974acedf3f7":"min-h-9","mui-8423dc94ee06":"min-h-10","mui-50312c3ce4a3":"min-h-[60px]","mui-d48fe95d4da8":"w-(--cell-size)","mui-d4ea834145ae":"w-2","mui-56bb14cbd1fe":"w-2/3","mui-8867d85ed290":"w-8","mui-4ac4ec8dfbce":"w-40","mui-37535002f0f7":"w-72","mui-a4cce7869436":"w-[300px]","mui-fc6a57ff7553":"w-[var(--mendy-filter-editor-width,19rem)]","mui-0b9c84552e40":"w-[var(--mendy-filter-list-width,var(--mendy-filter-anchor-width,18.75rem))]","mui-4415137b0467":"w-[var(--mendy-filter-menu-width,calc(var(--filter-list-width)_+_var(--mendy-filter-editor-width,19rem)))]","mui-8cfb5a42ef9f":"w-fit","mui-58d0413dd93c":"w-full","mui-91f82aa1df0c":"max-w-[60%]","mui-34055e6f8c1b":"max-w-[calc(100vw-2rem)]","mui-81b198a2db84":"max-w-full","mui-1458e495e3ae":"min-w-(--cell-size)","mui-184ddc11e5f9":"min-w-0","mui-e9ab1547c94d":"min-w-[8rem]","mui-2bf6510f1330":"min-w-full","mui-7bd5bab6d7f4":"flex-1","mui-66b490dd6005":"shrink","mui-27ead27a81df":"shrink-0","mui-adca5146416e":"grow","mui-215061302c50":"border-collapse","mui-3a3774477287":"origin-(--radix-dropdown-menu-content-transform-origin)","mui-5dde0fd996f0":"-translate-y-1/2","mui-4e3f08588318":"-rotate-45","mui-c80411b7591f":"rotate-45","mui-aa214ea38326":"transform","mui-393df0d154e0":"animate-none!","mui-7b3cd77eb999":"animate-pulse","mui-2c14b55d77e6":"animate-spin","mui-2194d094b585":"cursor-col-resize","mui-d343f41ba73e":"cursor-default","mui-f2e47d9c52ad":"cursor-grab","mui-d2fa8848968d":"cursor-pointer","mui-739a9a000791":"touch-none","mui-acd532d8913e":"resize","mui-ae112c903ef8":"resize-y","mui-eeb3a8b33f69":"grid-cols-[min(var(--filter-list-width),calc(100%_-_min(var(--mendy-filter-editor-width,19rem),50%)))_minmax(0,1fr)]","mui-b5985369ee35":"grid-rows-[minmax(0,1fr)]","mui-302c0d124a94":"flex-col","mui-faa8a23c68f6":"flex-wrap","mui-8fd2e2355cbc":"place-content-center","mui-71556df3b421":"items-center","mui-b9677bd1cb66":"items-start","mui-32c92bb1fde4":"justify-between","mui-a503dd374cca":"justify-center","mui-307644c34db6":"justify-end","mui-c62ec162662e":"justify-start","mui-19e97f3f40e6":"gap-1","mui-70007b876865":"gap-1.5","mui-074569488cca":"gap-2","mui-d7db3451d154":"gap-3","mui-90fc3ec35a37":"gap-4","mui-27e6c432192f":"space-y-1","mui-267171770524":"space-y-2","mui-5a3a4ee420c2":"truncate","mui-1a26a0d28420":"overflow-auto","mui-d5111d0e9f48":"overflow-hidden","mui-0fc84a692dad":"overflow-visible","mui-3b82279f859f":"overflow-x-hidden","mui-2368e909f3a5":"overflow-y-auto","mui-998780cdef87":"overscroll-contain","mui-b005d61d0953":"rounded-full","mui-3fa8c572949b":"rounded-md","mui-52417259a4f5":"rounded-none","mui-02e603944040":"rounded-sm","mui-7efd3a0ebfc6":"rounded-s-md","mui-2176687d6745":"rounded-ss-none","mui-7f3780751c2e":"rounded-e-md","mui-c9755c8858d9":"rounded-es-none","mui-4f1a55de40bc":"border","mui-dad556abfe15":"border-0","mui-55860251be20":"border-s","mui-3b6d5fc7b061":"border-e","mui-894c3815a57f":"border-t","mui-bbe39cfb5cc6":"border-b","mui-8450eb0f1857":"border-dashed","mui-163a623b3716":"border-border/50","mui-1267095cdeb7":"border-input","mui-9b76f456b8c9":"border-muted-foreground/50","mui-515f9fdc6db7":"border-primary","mui-292affc1f780":"bg-accent","mui-5b272f3c5076":"bg-background","mui-a943bea85d66":"bg-border","mui-0cf6c2e8fe7e":"bg-current","mui-965cf6587342":"bg-destructive","mui-047624ec0c39":"bg-green-100","mui-6ba846e1630e":"bg-inherit","mui-87ecb59f2d2d":"bg-muted","mui-810ae775809b":"bg-muted-foreground/20","mui-e593c38256e0":"bg-popover","mui-0c2864fba576":"bg-primary","mui-d191cb569aac":"bg-secondary","mui-8fca9236d191":"bg-transparent","mui-04760bcd507f":"p-0","mui-1dee6e3ec67d":"p-1","mui-b97db4a9f432":"p-2","mui-094f5333853b":"p-3","mui-c432836760e3":"p-6","mui-c7902d77ad80":"p-8","mui-56b8f5e0fb12":"px-(--cell-size)","mui-16e909e6f01d":"px-0","mui-1da2e8f173c5":"px-1.5","mui-e7e01cc7f4df":"px-2","mui-0f9e6672913a":"px-3","mui-9513b3968002":"px-4","mui-0194c6e46323":"px-8","mui-1fcf28756bb1":"py-1","mui-a8c1dfb1d4ef":"py-1.5","mui-b5edc3ea7c91":"py-2","mui-d3cea061f2f3":"py-3","mui-96b92a971c95":"py-5","mui-6dd4e62564b2":"ps-2","mui-078d945937da":"ps-8","mui-b2100041c585":"ps-9","mui-b15eee699c4b":"pe-1","mui-05d4103bd67f":"pe-2","mui-a202804a1738":"pe-3","mui-0e14c365f9e8":"pe-9","mui-559069d2c2e5":"pe-16","mui-0a702d97ed7d":"pt-3","mui-05ab12448317":"text-center","mui-10558dbb3a24":"text-end","mui-e9347b78185f":"text-start","mui-757071a1d1c4":"text-base","mui-c74ab393b96d":"text-sm","mui-3992de70b033":"text-xs","mui-5f120ad4b50b":"text-[0.8rem]","mui-761cdb81bddb":"leading-none","mui-daaac3fbf55e":"font-medium","mui-52101fc7d8bb":"font-normal","mui-e1683b3c030a":"tracking-widest","mui-393883c1db68":"[overflow-wrap:anywhere]","mui-37cf9655f30a":"break-words","mui-726fca123972":"whitespace-normal","mui-963f6168b7d6":"whitespace-nowrap","mui-cc209238d847":"text-accent-foreground","mui-5eafab9bbefc":"text-current","mui-887b9502d5c7":"text-destructive","mui-8d4bf2704c8d":"text-destructive-foreground","mui-957a109f887f":"text-foreground","mui-35f35c41d134":"text-muted-foreground","mui-5bd2afe89f0b":"text-popover-foreground","mui-249f14ee5b6b":"text-primary","mui-abd1aaa1f5b2":"text-primary-foreground","mui-80df79ec9bb5":"text-secondary-foreground","mui-944969efb294":"underline","mui-d52f902a57e8":"underline-offset-4","mui-94f91922a10e":"opacity-0","mui-0b5a4d1257ab":"opacity-50","mui-65694092f002":"opacity-100","mui-0d4ca75de41c":"shadow-lg","mui-94ea94fde25f":"shadow-md","mui-89c3006b2722":"shadow-none","mui-7de07d413c13":"shadow-xs","mui-853be6c11609":"ring-2","mui-fd9d0b696aac":"ring-primary","mui-59edd3d33673":"outline-hidden","mui-318678825324":"outline","mui-e42932b7a79c":"blur","mui-e0122edc668b":"drop-shadow-md","mui-dfc3376b8266":"filter","mui-70dd37c11434":"transition","mui-eae178841c68":"transition-colors","mui-2cdd01663c76":"transition-opacity","mui-2b48746f4314":"transition-shadow","mui-b4b2fd95f324":"transition-none","mui-b30fc56058b6":"outline-none","mui-78905c9e865c":"select-none","mui-d80b6593dae5":"[--cell-size:--spacing(8)]","mui-82c2977beb8e":"[--cell-size:min(2rem,calc((100vw-3.5rem)/7))]","mui-d7d803c609c5":"[--filter-list-width:var(--mendy-filter-list-width,var(--mendy-filter-anchor-width,13rem))]","mui-971625533e56":"[--filter-menu-height:min(var(--mendy-filter-menu-max-height,44rem),var(--radix-dropdown-menu-content-available-height,44rem))]","mui-cacb19aa9640":"[scrollbar-width:thin]","mui-14bd99410890":"[unicode-bidi:isolate]","mui-97b1c00ff005":"group-hover:bg-accent","mui-ad936fcbed63":"group","mui-34a57d4b4103":"group-hover:opacity-50","mui-9af9a4182597":"group-data-[disabled=true]:pointer-events-none","mui-272ef88d6a0c":"group-data-[disabled=true]:opacity-50","mui-60052b901494":"group-data-[focused=true]/day:relative","mui-d9c5891363f9":"group/day","mui-3f96bf138f7b":"group-data-[focused=true]/day:z-10","mui-d39eb62b8363":"group-data-[focused=true]/day:border-ring","mui-5892a880410a":"group-data-[focused=true]/day:ring-1","mui-31b75c623c06":"group-data-[focused=true]/day:ring-ring","mui-e6020023567a":"group-data-[highlighted=true]:bg-accent","mui-f0ee83167878":"peer-disabled:cursor-not-allowed","mui-2ffc1d06387e":"peer","mui-25d26df52a1d":"peer-disabled:opacity-50","mui-32713fefe32f":"file:border-0","mui-25a74d576c42":"file:bg-transparent","mui-844abccf1fd0":"file:text-sm","mui-dc43de54f42a":"file:font-medium","mui-20315da78444":"placeholder:text-muted-foreground","mui-3deb00079b4c":"first:border-s-0","mui-37ad15a95595":"hover:bg-accent","mui-bb6a4b3e902d":"hover:bg-destructive/90","mui-5cbdd1b32f1a":"hover:bg-muted/50","mui-4273133a876a":"hover:bg-primary/20","mui-af9ea085901b":"hover:bg-primary/90","mui-099700a5a311":"hover:bg-secondary/80","mui-71863717995b":"hover:bg-transparent","mui-9f1f77b92dcb":"hover:text-accent-foreground","mui-4d6720d47806":"hover:text-foreground","mui-b56720602554":"hover:underline","mui-8da02faac748":"hover:opacity-100","mui-a8c1861c5d03":"focus:bg-accent","mui-a85c4c5d7465":"focus:text-accent-foreground","mui-b906a32b31ee":"focus-visible:border-ring","mui-2f669cfad5aa":"focus-visible:bg-primary/20","mui-b8b1747fa763":"focus-visible:opacity-100","mui-39be5a15b766":"focus-visible:ring-1","mui-355efe22aedb":"focus-visible:ring-2","mui-365a4654f7b1":"focus-visible:ring-[3px]","mui-db549d38ff19":"focus-visible:ring-ring","mui-392a26f4c1b0":"focus-visible:ring-ring/50","mui-a47d391255f3":"focus-visible:outline","mui-1df9125eebaf":"focus-visible:outline-1","mui-a8719ed8b095":"focus-visible:-outline-offset-2","mui-2b1c7d88acff":"focus-visible:outline-primary","mui-223daa83ed2d":"focus-visible:outline-ring","mui-2e357972fc10":"focus-visible:outline-none","mui-50aafa8694bb":"focus-visible:ring-inset","mui-71998ea7a2d0":"active:cursor-grabbing","mui-8d3c1014b967":"disabled:pointer-events-none","mui-db567af109b7":"disabled:cursor-not-allowed","mui-d2e4a66bb430":"disabled:opacity-0!","mui-4600b77303d6":"disabled:opacity-50","mui-978f422895e5":"group-hover:disabled:opacity-50!","mui-7eb7501a2ef0":"has-focus:border-ring","mui-d0449753ba7b":"has-focus:ring-[3px]","mui-fc19c8471f34":"has-focus:ring-ring/50","mui-e288cffc2ef4":"has-[>svg]:px-1.5","mui-3b01ee05b16d":"has-[>svg]:px-2.5","mui-9e08353b774f":"has-[>svg]:px-3","mui-2c0115d1c32a":"aria-disabled:opacity-50","mui-1fac1d7d1df3":"aria-invalid:border-destructive","mui-2d91b4cbc3cb":"aria-invalid:ring-destructive","mui-5491fd0b4dc5":"aria-invalid:ring-destructive/20","mui-2d6703b5473b":"aria-pressed:bg-accent","mui-ff2dcda51a27":"aria-pressed:text-accent-foreground","mui-7d900a71e5ba":"aria-selected:text-muted-foreground","mui-397f5ba426a0":"data-[disabled]:pointer-events-none","mui-9beb654fcb0d":"data-[disabled]:opacity-50","mui-9d7d1760cd8e":"data-[highlighted=true]:bg-accent","mui-1da7bb9a299c":"data-[inset]:ps-8","mui-bbaaa5969856":"data-[more-below=true]:[mask-image:linear-gradient(#000_calc(100%_-_1rem),transparent)]","mui-dfc89afd7885":"data-[navigation=pointer]:focus-visible:ring-0","mui-96308b55e0d6":"data-[range-end=true]:rounded-md","mui-35468f495139":"data-[range-end=true]:rounded-e-md","mui-714051e55e8e":"data-[range-end=true]:bg-primary","mui-c764cebcd540":"data-[range-end=true]:text-primary-foreground","mui-05ec0700cd48":"data-[range-middle=true]:rounded-none","mui-5fb598fb06f4":"data-[range-middle=true]:bg-accent","mui-0813905aa141":"data-[range-middle=true]:text-accent-foreground","mui-8020e31bff67":"data-[range-start=true]:rounded-md","mui-6143f152715b":"data-[range-start=true]:rounded-s-md","mui-f5460d79341c":"data-[range-start=true]:bg-primary","mui-421a7d3e6631":"data-[range-start=true]:text-primary-foreground","mui-a39af81d518c":"data-[selected-single=true]:bg-primary","mui-b6991ab170de":"data-[selected-single=true]:text-primary-foreground","mui-3cc0d07ef843":"data-[selected=true]:rounded-none","mui-89f6aab7a3f8":"data-[side=bottom]:slide-in-from-top-2","mui-3550f48d66b9":"data-[side=left]:slide-in-from-right-2","mui-7720fe004f5c":"data-[side=right]:slide-in-from-left-2","mui-66b560f839de":"data-[side=top]:slide-in-from-bottom-2","mui-20553d55d224":"data-[state=checked]:border-primary","mui-57d6d6401a2f":"data-[state=checked]:bg-primary","mui-7ca12016214f":"data-[state=checked]:text-primary-foreground","mui-d0c2ae8419e1":"data-[state=checked]:opacity-100","mui-9c02852bfc55":"data-[state=checked]:disabled:opacity-100!","mui-37d8a3f448ff":"data-[state=closed]:animate-none!","mui-0cb4489c3645":"data-[state=closed]:animate-out","mui-bb5869ef903b":"data-[state=closed]:fade-out-0","mui-f4cf4be63707":"data-[state=closed]:zoom-out-95","mui-e2ed522ed9b7":"data-[state=indeterminate]:opacity-100","mui-cbd3aed703f7":"data-[state=indeterminate]:disabled:opacity-100!","mui-bae1e782f277":"data-[state=open]:animate-in","mui-4027d9c589b6":"data-[state=open]:bg-accent","mui-1952cd5b00aa":"data-[state=open]:text-accent-foreground","mui-6f73a280432e":"data-[state=open]:text-foreground","mui-790ed041a953":"data-[state=open]:opacity-100","mui-45464a92c1f6":"data-[state=open]:fade-in-0","mui-9ca352480f25":"data-[state=open]:zoom-in-95","mui-f3f7a9c5e1b3":"data-[variant=destructive]:text-destructive","mui-e2bb4ac97190":"data-[variant=destructive]:focus:bg-destructive/10","mui-353a727facfd":"data-[variant=destructive]:focus:text-destructive","mui-237747164b60":"motion-reduce:animate-none","mui-0cc20f4e20c8":"sm:w-[21.875rem]","mui-56760b222da0":"md:flex-row","mui-c05c9b99939d":"md:text-sm","mui-36b12e8339c7":"rtl:rotate-180","mui-d254c96aea74":"dark:bg-green-950","mui-9daa2369a41b":"dark:bg-input/30","mui-b2786f463a62":"dark:hover:text-accent-foreground","mui-c88f65aa011e":"dark:aria-invalid:ring-destructive/40","mui-bd73d819941e":"dark:data-[state=checked]:bg-primary","mui-98a28c2293f7":"dark:data-[variant=destructive]:focus:bg-destructive/20","mui-d78a8526410d":"pointer-coarse:[--cell-size:min(2.5rem,calc((100vw-3.5rem)/7))]","mui-b51243872d85":"sm:pointer-fine:h-8","mui-e771a8b4d87d":"sm:pointer-fine:h-9","mui-aa0e3c036805":"sm:pointer-fine:min-h-8","mui-0288c4ea71ea":"sm:pointer-fine:py-0.5","mui-41d1475cf71a":"sm:pointer-fine:py-1.5","mui-548a450e8e53":"[&_*]:transition-none!","mui-a1c8c43d9be2":"[&_[role^=menuitem]]:min-h-9","mui-b43343fe71c0":"sm:pointer-fine:[&_[role^=menuitem]]:min-h-8","mui-cc310a330231":"[&_button]:font-semibold","mui-b7ff49878425":"[&_button]:underline","mui-d9bdd2c94504":"[&_button]:underline-offset-4","mui-bcae9d37090c":"[&_svg]:pointer-events-none","mui-c77732bd3ab4":"[&_svg]:size-3.5","mui-040e748a3fa0":"[&_svg]:shrink-0","mui-be87a4a64d81":"[&_svg:not([class*='size-'])]:size-3","mui-eb5ef2dbc2d4":"[&_svg:not([class*='size-'])]:size-4","mui-8637dfd54fbb":"[&_svg:not([class*='text-'])]:text-muted-foreground","mui-4f05a238500e":"[&::-webkit-search-cancel-button]:appearance-none","mui-9b9b154fb4bf":"[&:first-child[data-selected=true]_button]:rounded-s-md","mui-13858191ca50":"rtl:**:[.rdp-button\\_next>svg]:rotate-180","mui-a324a7f99932":"rtl:**:[.rdp-button\\_previous>svg]:rotate-180","mui-82b114bbff3d":"data-[variant=destructive]:*:[svg]:text-destructive!","mui-e9494a526550":"[&:last-child[data-selected=true]_button]:rounded-e-md","mui-167d036894df":"[&:nth-child(2)[data-selected=true]_button]:rounded-s-md","mui-f157ee6bae99":"[&>div]:w-full","mui-ba417cf466b0":"[&>span]:text-xs","mui-829c8ef4f9c5":"[&>span]:opacity-70","mui-bf95f682e553":"[&>span:first-child]:mt-[calc(0.5lh-0.4375rem)]","mui-eb740dd32318":"[&>svg]:size-3.5","mui-019fd73c95db":"[&>svg]:text-muted-foreground","mui-fa8e1efead3c":"[@media(hover:none)]:opacity-100","mui-eaedb91f8774":"[@media(hover:none)]:disabled:opacity-100!","mui-b8293c91796c":"[[data-slot=card-content]_&]:bg-transparent","mui-8dd7e6b42262":"[[data-slot=popover-content]_&]:bg-transparent"};
|
|
1
|
+
export const originalClassNames = {"mui-cb20bd519346":"pointer-events-auto","mui-33228ff7d583":"pointer-events-none","mui-b75af7ef6c4d":"invisible","mui-d42ef1497900":"visible","mui-32fb090591d9":"sr-only","mui-747355bdc2a2":"absolute","mui-992a93455c71":"fixed","mui-d2d9e1f13413":"relative","mui-964a9431ff49":"sticky","mui-ce13093ad8c9":"inset-0","mui-3ba24c062d55":"inset-x-0","mui-eb9e48c5dda9":"inset-y-0","mui-cced28c6dc3f":"start","mui-8368bbb62f66":"start-0","mui-207bd0b3f259":"start-2","mui-cea70f23972e":"start-3","mui-361e48d0308f":"end","mui-aa7bcba08429":"end-0","mui-13422ddc8d83":"end-1","mui-585f4729f611":"end-9","mui-98599e4ee250":"top-0","mui-4e45f4841abb":"top-1/2","mui-30150dd033ab":"bottom-0","mui-a5c36273c0f0":"bottom-2","mui-014aadadffad":"isolate","mui-d7efd1b0b0f9":"z-1","mui-418e44ad4f9e":"z-10","mui-4e8f0a87a0dc":"z-20","mui-fbb62f5cb6fe":"z-30","mui-3eef1ce97dba":"z-50","mui-29a5b1dea191":"col-start-2","mui-a42d519714d6":"container","mui-a2526bc2efa3":"m-0","mui-abba77319850":"-mx-1","mui-1752f11474a6":"mx-auto","mui-d8747231f142":"my-1","mui-958e2cfcf5b6":"-ms-2","mui-291952c2525a":"-ms-px","mui-5cf4ab3b6fa0":"ms-auto","mui-8cc46fa87f41":"-me-1.5","mui-477d8f4dfce9":"me-1","mui-68d781378b03":"me-2","mui-f28fea81a5cd":"mt-2","mui-496aca80e4d8":"block","mui-d1b2a59fbea7":"contents","mui-222f930b8752":"flex","mui-0f2a693e93e2":"grid","mui-e564b4081d7a":"hidden","mui-995cf20a9c45":"inline","mui-123306850fe1":"inline-flex","mui-0d4fc4a78d37":"table","mui-3da89b3ed14b":"field-sizing-content","mui-129d6f9b1e07":"aspect-square","mui-f7d12b41bceb":"size-(--cell-size)","mui-dc797fcc7165":"size-1.5","mui-5e34f5313859":"size-3","mui-61c000c8a98a":"size-3.5","mui-100c22d5776b":"size-4","mui-2bd43fb57913":"size-5","mui-0712570dcc9f":"size-6","mui-79ede756e761":"size-7","mui-ebd37e04d422":"size-8","mui-3ee10ef4c057":"size-9","mui-d0a383a9c24f":"size-10","mui-4dad94bd15e3":"size-auto","mui-a5960ac1d283":"h-(--cell-size)","mui-c7d5500b77ab":"h-0","mui-2edce89ef182":"h-3","mui-099be97e1fa4":"h-4","mui-ce1945804664":"h-6","mui-c8e50836f8a1":"h-7","mui-1fb07b38c63b":"h-8","mui-539ae144f076":"h-9","mui-fdd2f85cad6b":"h-10","mui-a66e9985b093":"h-auto","mui-57c930dc1c31":"h-full","mui-ae2c4b060bb9":"h-px","mui-571ea69568d3":"max-h-(--filter-menu-height)","mui-1f061e70178e":"max-h-(--radix-dropdown-menu-content-available-height)","mui-4d3f1304ebb2":"max-h-(--radix-popover-content-available-height)","mui-da0beef015c9":"max-h-[400px]","mui-80baa5d03af7":"max-h-[calc(var(--filter-menu-height)-2px)]","mui-1326520533f0":"max-h-[min(6rem,calc(var(--filter-menu-height)*0.25))]","mui-fb4a3e97b5bd":"max-h-[min(20rem,var(--radix-dropdown-menu-content-available-height,20rem))]","mui-dcd942c18ddc":"max-h-[var(--radix-dropdown-menu-content-available-height)]","mui-7bd696ca6be3":"max-h-full","mui-410da8dfa8ac":"min-h-0","mui-9974acedf3f7":"min-h-9","mui-8423dc94ee06":"min-h-10","mui-50312c3ce4a3":"min-h-[60px]","mui-d48fe95d4da8":"w-(--cell-size)","mui-d4ea834145ae":"w-2","mui-56bb14cbd1fe":"w-2/3","mui-8867d85ed290":"w-8","mui-4ac4ec8dfbce":"w-40","mui-37535002f0f7":"w-72","mui-a4cce7869436":"w-[300px]","mui-fc6a57ff7553":"w-[var(--mendy-filter-editor-width,19rem)]","mui-0b9c84552e40":"w-[var(--mendy-filter-list-width,var(--mendy-filter-anchor-width,18.75rem))]","mui-4415137b0467":"w-[var(--mendy-filter-menu-width,calc(var(--filter-list-width)_+_var(--mendy-filter-editor-width,19rem)))]","mui-8cfb5a42ef9f":"w-fit","mui-58d0413dd93c":"w-full","mui-91f82aa1df0c":"max-w-[60%]","mui-34055e6f8c1b":"max-w-[calc(100vw-2rem)]","mui-81b198a2db84":"max-w-full","mui-1458e495e3ae":"min-w-(--cell-size)","mui-184ddc11e5f9":"min-w-0","mui-e9ab1547c94d":"min-w-[8rem]","mui-2bf6510f1330":"min-w-full","mui-7bd5bab6d7f4":"flex-1","mui-66b490dd6005":"shrink","mui-27ead27a81df":"shrink-0","mui-adca5146416e":"grow","mui-215061302c50":"border-collapse","mui-3a3774477287":"origin-(--radix-dropdown-menu-content-transform-origin)","mui-5dde0fd996f0":"-translate-y-1/2","mui-4e3f08588318":"-rotate-45","mui-c80411b7591f":"rotate-45","mui-aa214ea38326":"transform","mui-393df0d154e0":"animate-none!","mui-7b3cd77eb999":"animate-pulse","mui-2c14b55d77e6":"animate-spin","mui-2194d094b585":"cursor-col-resize","mui-d343f41ba73e":"cursor-default","mui-f2e47d9c52ad":"cursor-grab","mui-d2fa8848968d":"cursor-pointer","mui-739a9a000791":"touch-none","mui-acd532d8913e":"resize","mui-ae112c903ef8":"resize-y","mui-eeb3a8b33f69":"grid-cols-[min(var(--filter-list-width),calc(100%_-_min(var(--mendy-filter-editor-width,19rem),50%)))_minmax(0,1fr)]","mui-b5985369ee35":"grid-rows-[minmax(0,1fr)]","mui-302c0d124a94":"flex-col","mui-faa8a23c68f6":"flex-wrap","mui-8fd2e2355cbc":"place-content-center","mui-71556df3b421":"items-center","mui-b9677bd1cb66":"items-start","mui-32c92bb1fde4":"justify-between","mui-a503dd374cca":"justify-center","mui-307644c34db6":"justify-end","mui-c62ec162662e":"justify-start","mui-19e97f3f40e6":"gap-1","mui-70007b876865":"gap-1.5","mui-074569488cca":"gap-2","mui-d7db3451d154":"gap-3","mui-90fc3ec35a37":"gap-4","mui-27e6c432192f":"space-y-1","mui-267171770524":"space-y-2","mui-5a3a4ee420c2":"truncate","mui-1a26a0d28420":"overflow-auto","mui-d5111d0e9f48":"overflow-hidden","mui-0fc84a692dad":"overflow-visible","mui-3b82279f859f":"overflow-x-hidden","mui-2368e909f3a5":"overflow-y-auto","mui-998780cdef87":"overscroll-contain","mui-b005d61d0953":"rounded-full","mui-3fa8c572949b":"rounded-md","mui-52417259a4f5":"rounded-none","mui-02e603944040":"rounded-sm","mui-7efd3a0ebfc6":"rounded-s-md","mui-2176687d6745":"rounded-ss-none","mui-7f3780751c2e":"rounded-e-md","mui-c9755c8858d9":"rounded-es-none","mui-4f1a55de40bc":"border","mui-dad556abfe15":"border-0","mui-55860251be20":"border-s","mui-3b6d5fc7b061":"border-e","mui-894c3815a57f":"border-t","mui-bbe39cfb5cc6":"border-b","mui-8450eb0f1857":"border-dashed","mui-163a623b3716":"border-border/50","mui-1267095cdeb7":"border-input","mui-9b76f456b8c9":"border-muted-foreground/50","mui-515f9fdc6db7":"border-primary","mui-292affc1f780":"bg-accent","mui-5b272f3c5076":"bg-background","mui-a943bea85d66":"bg-border","mui-0cf6c2e8fe7e":"bg-current","mui-965cf6587342":"bg-destructive","mui-047624ec0c39":"bg-green-100","mui-6ba846e1630e":"bg-inherit","mui-87ecb59f2d2d":"bg-muted","mui-810ae775809b":"bg-muted-foreground/20","mui-e593c38256e0":"bg-popover","mui-0c2864fba576":"bg-primary","mui-d191cb569aac":"bg-secondary","mui-8fca9236d191":"bg-transparent","mui-04760bcd507f":"p-0","mui-1dee6e3ec67d":"p-1","mui-b97db4a9f432":"p-2","mui-094f5333853b":"p-3","mui-c432836760e3":"p-6","mui-c7902d77ad80":"p-8","mui-56b8f5e0fb12":"px-(--cell-size)","mui-16e909e6f01d":"px-0","mui-1da2e8f173c5":"px-1.5","mui-e7e01cc7f4df":"px-2","mui-0f9e6672913a":"px-3","mui-9513b3968002":"px-4","mui-0194c6e46323":"px-8","mui-1fcf28756bb1":"py-1","mui-a8c1dfb1d4ef":"py-1.5","mui-b5edc3ea7c91":"py-2","mui-d3cea061f2f3":"py-3","mui-96b92a971c95":"py-5","mui-6dd4e62564b2":"ps-2","mui-078d945937da":"ps-8","mui-b2100041c585":"ps-9","mui-b15eee699c4b":"pe-1","mui-05d4103bd67f":"pe-2","mui-a202804a1738":"pe-3","mui-0e14c365f9e8":"pe-9","mui-559069d2c2e5":"pe-16","mui-0a702d97ed7d":"pt-3","mui-05ab12448317":"text-center","mui-10558dbb3a24":"text-end","mui-e9347b78185f":"text-start","mui-757071a1d1c4":"text-base","mui-c74ab393b96d":"text-sm","mui-3992de70b033":"text-xs","mui-5f120ad4b50b":"text-[0.8rem]","mui-761cdb81bddb":"leading-none","mui-daaac3fbf55e":"font-medium","mui-52101fc7d8bb":"font-normal","mui-e1683b3c030a":"tracking-widest","mui-393883c1db68":"[overflow-wrap:anywhere]","mui-37cf9655f30a":"break-words","mui-726fca123972":"whitespace-normal","mui-963f6168b7d6":"whitespace-nowrap","mui-cc209238d847":"text-accent-foreground","mui-5eafab9bbefc":"text-current","mui-887b9502d5c7":"text-destructive","mui-8d4bf2704c8d":"text-destructive-foreground","mui-957a109f887f":"text-foreground","mui-35f35c41d134":"text-muted-foreground","mui-5bd2afe89f0b":"text-popover-foreground","mui-249f14ee5b6b":"text-primary","mui-abd1aaa1f5b2":"text-primary-foreground","mui-80df79ec9bb5":"text-secondary-foreground","mui-944969efb294":"underline","mui-d52f902a57e8":"underline-offset-4","mui-94f91922a10e":"opacity-0","mui-0b5a4d1257ab":"opacity-50","mui-65694092f002":"opacity-100","mui-0d4ca75de41c":"shadow-lg","mui-94ea94fde25f":"shadow-md","mui-89c3006b2722":"shadow-none","mui-7de07d413c13":"shadow-xs","mui-853be6c11609":"ring-2","mui-fd9d0b696aac":"ring-primary","mui-59edd3d33673":"outline-hidden","mui-318678825324":"outline","mui-e42932b7a79c":"blur","mui-e0122edc668b":"drop-shadow-md","mui-dfc3376b8266":"filter","mui-70dd37c11434":"transition","mui-eae178841c68":"transition-colors","mui-2cdd01663c76":"transition-opacity","mui-2b48746f4314":"transition-shadow","mui-b4b2fd95f324":"transition-none","mui-b30fc56058b6":"outline-none","mui-78905c9e865c":"select-none","mui-d80b6593dae5":"[--cell-size:--spacing(8)]","mui-82c2977beb8e":"[--cell-size:min(2rem,calc((100vw-3.5rem)/7))]","mui-d7d803c609c5":"[--filter-list-width:var(--mendy-filter-list-width,var(--mendy-filter-anchor-width,13rem))]","mui-971625533e56":"[--filter-menu-height:min(var(--mendy-filter-menu-max-height,44rem),var(--radix-dropdown-menu-content-available-height,44rem))]","mui-cacb19aa9640":"[scrollbar-width:thin]","mui-14bd99410890":"[unicode-bidi:isolate]","mui-97b1c00ff005":"group-hover:bg-accent","mui-ad936fcbed63":"group","mui-34a57d4b4103":"group-hover:opacity-50","mui-9af9a4182597":"group-data-[disabled=true]:pointer-events-none","mui-272ef88d6a0c":"group-data-[disabled=true]:opacity-50","mui-60052b901494":"group-data-[focused=true]/day:relative","mui-d9c5891363f9":"group/day","mui-3f96bf138f7b":"group-data-[focused=true]/day:z-10","mui-d39eb62b8363":"group-data-[focused=true]/day:border-ring","mui-5892a880410a":"group-data-[focused=true]/day:ring-1","mui-31b75c623c06":"group-data-[focused=true]/day:ring-ring","mui-e6020023567a":"group-data-[highlighted=true]:bg-accent","mui-f0ee83167878":"peer-disabled:cursor-not-allowed","mui-2ffc1d06387e":"peer","mui-25d26df52a1d":"peer-disabled:opacity-50","mui-32713fefe32f":"file:border-0","mui-25a74d576c42":"file:bg-transparent","mui-844abccf1fd0":"file:text-sm","mui-dc43de54f42a":"file:font-medium","mui-20315da78444":"placeholder:text-muted-foreground","mui-3deb00079b4c":"first:border-s-0","mui-37ad15a95595":"hover:bg-accent","mui-bb6a4b3e902d":"hover:bg-destructive/90","mui-5cbdd1b32f1a":"hover:bg-muted/50","mui-4273133a876a":"hover:bg-primary/20","mui-af9ea085901b":"hover:bg-primary/90","mui-099700a5a311":"hover:bg-secondary/80","mui-71863717995b":"hover:bg-transparent","mui-9f1f77b92dcb":"hover:text-accent-foreground","mui-4d6720d47806":"hover:text-foreground","mui-b56720602554":"hover:underline","mui-8da02faac748":"hover:opacity-100","mui-a8c1861c5d03":"focus:bg-accent","mui-a85c4c5d7465":"focus:text-accent-foreground","mui-b906a32b31ee":"focus-visible:border-ring","mui-2f669cfad5aa":"focus-visible:bg-primary/20","mui-b8b1747fa763":"focus-visible:opacity-100","mui-39be5a15b766":"focus-visible:ring-1","mui-355efe22aedb":"focus-visible:ring-2","mui-365a4654f7b1":"focus-visible:ring-[3px]","mui-db549d38ff19":"focus-visible:ring-ring","mui-392a26f4c1b0":"focus-visible:ring-ring/50","mui-a47d391255f3":"focus-visible:outline","mui-1df9125eebaf":"focus-visible:outline-1","mui-a8719ed8b095":"focus-visible:-outline-offset-2","mui-2b1c7d88acff":"focus-visible:outline-primary","mui-223daa83ed2d":"focus-visible:outline-ring","mui-2e357972fc10":"focus-visible:outline-none","mui-50aafa8694bb":"focus-visible:ring-inset","mui-71998ea7a2d0":"active:cursor-grabbing","mui-8d3c1014b967":"disabled:pointer-events-none","mui-db567af109b7":"disabled:cursor-not-allowed","mui-d2e4a66bb430":"disabled:opacity-0!","mui-4600b77303d6":"disabled:opacity-50","mui-978f422895e5":"group-hover:disabled:opacity-50!","mui-7eb7501a2ef0":"has-focus:border-ring","mui-d0449753ba7b":"has-focus:ring-[3px]","mui-fc19c8471f34":"has-focus:ring-ring/50","mui-e288cffc2ef4":"has-[>svg]:px-1.5","mui-3b01ee05b16d":"has-[>svg]:px-2.5","mui-9e08353b774f":"has-[>svg]:px-3","mui-2c0115d1c32a":"aria-disabled:opacity-50","mui-1fac1d7d1df3":"aria-invalid:border-destructive","mui-2d91b4cbc3cb":"aria-invalid:ring-destructive","mui-5491fd0b4dc5":"aria-invalid:ring-destructive/20","mui-2d6703b5473b":"aria-pressed:bg-accent","mui-ff2dcda51a27":"aria-pressed:text-accent-foreground","mui-7d900a71e5ba":"aria-selected:text-muted-foreground","mui-397f5ba426a0":"data-[disabled]:pointer-events-none","mui-9beb654fcb0d":"data-[disabled]:opacity-50","mui-9d7d1760cd8e":"data-[highlighted=true]:bg-accent","mui-1da7bb9a299c":"data-[inset]:ps-8","mui-bbaaa5969856":"data-[more-below=true]:[mask-image:linear-gradient(#000_calc(100%_-_1rem),transparent)]","mui-dfc89afd7885":"data-[navigation=pointer]:focus-visible:ring-0","mui-96308b55e0d6":"data-[range-end=true]:rounded-md","mui-35468f495139":"data-[range-end=true]:rounded-e-md","mui-714051e55e8e":"data-[range-end=true]:bg-primary","mui-c764cebcd540":"data-[range-end=true]:text-primary-foreground","mui-05ec0700cd48":"data-[range-middle=true]:rounded-none","mui-5fb598fb06f4":"data-[range-middle=true]:bg-accent","mui-0813905aa141":"data-[range-middle=true]:text-accent-foreground","mui-8020e31bff67":"data-[range-start=true]:rounded-md","mui-6143f152715b":"data-[range-start=true]:rounded-s-md","mui-f5460d79341c":"data-[range-start=true]:bg-primary","mui-421a7d3e6631":"data-[range-start=true]:text-primary-foreground","mui-a39af81d518c":"data-[selected-single=true]:bg-primary","mui-b6991ab170de":"data-[selected-single=true]:text-primary-foreground","mui-3cc0d07ef843":"data-[selected=true]:rounded-none","mui-89f6aab7a3f8":"data-[side=bottom]:slide-in-from-top-2","mui-3550f48d66b9":"data-[side=left]:slide-in-from-right-2","mui-7720fe004f5c":"data-[side=right]:slide-in-from-left-2","mui-66b560f839de":"data-[side=top]:slide-in-from-bottom-2","mui-20553d55d224":"data-[state=checked]:border-primary","mui-57d6d6401a2f":"data-[state=checked]:bg-primary","mui-7ca12016214f":"data-[state=checked]:text-primary-foreground","mui-d0c2ae8419e1":"data-[state=checked]:opacity-100","mui-9c02852bfc55":"data-[state=checked]:disabled:opacity-100!","mui-37d8a3f448ff":"data-[state=closed]:animate-none!","mui-0cb4489c3645":"data-[state=closed]:animate-out","mui-bb5869ef903b":"data-[state=closed]:fade-out-0","mui-f4cf4be63707":"data-[state=closed]:zoom-out-95","mui-e2ed522ed9b7":"data-[state=indeterminate]:opacity-100","mui-cbd3aed703f7":"data-[state=indeterminate]:disabled:opacity-100!","mui-bae1e782f277":"data-[state=open]:animate-in","mui-4027d9c589b6":"data-[state=open]:bg-accent","mui-1952cd5b00aa":"data-[state=open]:text-accent-foreground","mui-6f73a280432e":"data-[state=open]:text-foreground","mui-790ed041a953":"data-[state=open]:opacity-100","mui-45464a92c1f6":"data-[state=open]:fade-in-0","mui-9ca352480f25":"data-[state=open]:zoom-in-95","mui-f3f7a9c5e1b3":"data-[variant=destructive]:text-destructive","mui-e2bb4ac97190":"data-[variant=destructive]:focus:bg-destructive/10","mui-353a727facfd":"data-[variant=destructive]:focus:text-destructive","mui-237747164b60":"motion-reduce:animate-none","mui-0cc20f4e20c8":"sm:w-[21.875rem]","mui-56760b222da0":"md:flex-row","mui-c05c9b99939d":"md:text-sm","mui-36b12e8339c7":"rtl:rotate-180","mui-d254c96aea74":"dark:bg-green-950","mui-9daa2369a41b":"dark:bg-input/30","mui-b2786f463a62":"dark:hover:text-accent-foreground","mui-c88f65aa011e":"dark:aria-invalid:ring-destructive/40","mui-bd73d819941e":"dark:data-[state=checked]:bg-primary","mui-98a28c2293f7":"dark:data-[variant=destructive]:focus:bg-destructive/20","mui-d78a8526410d":"pointer-coarse:[--cell-size:min(2.5rem,calc((100vw-3.5rem)/7))]","mui-b51243872d85":"sm:pointer-fine:h-8","mui-e771a8b4d87d":"sm:pointer-fine:h-9","mui-aa0e3c036805":"sm:pointer-fine:min-h-8","mui-0288c4ea71ea":"sm:pointer-fine:py-0.5","mui-41d1475cf71a":"sm:pointer-fine:py-1.5","mui-548a450e8e53":"[&_*]:transition-none!","mui-a1c8c43d9be2":"[&_[role^=menuitem]]:min-h-9","mui-b43343fe71c0":"sm:pointer-fine:[&_[role^=menuitem]]:min-h-8","mui-cc310a330231":"[&_button]:font-semibold","mui-b7ff49878425":"[&_button]:underline","mui-d9bdd2c94504":"[&_button]:underline-offset-4","mui-bcae9d37090c":"[&_svg]:pointer-events-none","mui-c77732bd3ab4":"[&_svg]:size-3.5","mui-040e748a3fa0":"[&_svg]:shrink-0","mui-be87a4a64d81":"[&_svg:not([class*='size-'])]:size-3","mui-eb5ef2dbc2d4":"[&_svg:not([class*='size-'])]:size-4","mui-8637dfd54fbb":"[&_svg:not([class*='text-'])]:text-muted-foreground","mui-4f05a238500e":"[&::-webkit-search-cancel-button]:appearance-none","mui-9b9b154fb4bf":"[&:first-child[data-selected=true]_button]:rounded-s-md","mui-13858191ca50":"rtl:**:[.rdp-button\\_next>svg]:rotate-180","mui-a324a7f99932":"rtl:**:[.rdp-button\\_previous>svg]:rotate-180","mui-82b114bbff3d":"data-[variant=destructive]:*:[svg]:text-destructive!","mui-e9494a526550":"[&:last-child[data-selected=true]_button]:rounded-e-md","mui-167d036894df":"[&:nth-child(2)[data-selected=true]_button]:rounded-s-md","mui-f157ee6bae99":"[&>div]:w-full","mui-ba417cf466b0":"[&>span]:text-xs","mui-829c8ef4f9c5":"[&>span]:opacity-70","mui-bf95f682e553":"[&>span:first-child]:mt-[calc(0.5lh-0.4375rem)]","mui-eb740dd32318":"[&>svg]:size-3.5","mui-019fd73c95db":"[&>svg]:text-muted-foreground","mui-fa8e1efead3c":"[@media(hover:none)]:opacity-100","mui-eaedb91f8774":"[@media(hover:none)]:disabled:opacity-100!","mui-b8293c91796c":"[[data-slot=card-content]_&]:bg-transparent","mui-8dd7e6b42262":"[[data-slot=popover-content]_&]:bg-transparent"};
|
|
@@ -11,6 +11,7 @@ export function FilterCollection({ items, children, renderBefore, className, rol
|
|
|
11
11
|
const pending = useRef(null);
|
|
12
12
|
const ownsFocus = useRef(false);
|
|
13
13
|
const previousIndex = useRef(0);
|
|
14
|
+
const pointer = useRef(null);
|
|
14
15
|
const { code } = useMendyLocale();
|
|
15
16
|
const [focused, setFocused] = useState(initialKey ?? items.find((item) => !item.disabled)?.key);
|
|
16
17
|
const typeahead = useRef({ text: "", at: 0 });
|
|
@@ -133,7 +134,16 @@ export function FilterCollection({ items, children, renderBefore, className, rol
|
|
|
133
134
|
return row;
|
|
134
135
|
return (_jsxs("div", { "data-index": index, "data-slot": "filter-collection-row", ref: virtual ? virtualizer.measureElement : undefined, style: rowStyle, children: [renderBefore(item, index), row] }, item.key));
|
|
135
136
|
}
|
|
136
|
-
return (_jsx("div", { ref: scroll, tabIndex: -1, role: role, "aria-label": label, "data-filter-collection": "", "data-virtual": virtual, className: cn("mui-410da8dfa8ac mui-2368e909f3a5 mui-998780cdef87 mui-1dee6e3ec67d", className),
|
|
137
|
+
return (_jsx("div", { ref: scroll, tabIndex: -1, role: role, "aria-label": label, "data-filter-collection": "", "data-virtual": virtual, className: cn("mui-410da8dfa8ac mui-2368e909f3a5 mui-998780cdef87 mui-1dee6e3ec67d", className), onPointerMoveCapture: (event) => {
|
|
138
|
+
if (event.pointerType !== "mouse")
|
|
139
|
+
return;
|
|
140
|
+
const previous = pointer.current;
|
|
141
|
+
pointer.current = { x: event.clientX, y: event.clientY };
|
|
142
|
+
// WebKit re-hit-tests a stationary mouse after virtual scrolling. Do not
|
|
143
|
+
// let Radix move keyboard focus to the row now underneath that mouse.
|
|
144
|
+
if (previous?.x === event.clientX && previous.y === event.clientY)
|
|
145
|
+
event.preventDefault();
|
|
146
|
+
}, onBlurCapture: (event) => {
|
|
137
147
|
if (event.relatedTarget && !event.currentTarget.contains(event.relatedTarget))
|
|
138
148
|
ownsFocus.current = false;
|
|
139
149
|
}, onFocusCapture: (event) => {
|
|
@@ -122,7 +122,7 @@ export function FilterMenuPanel({ sections, selectedId, onSelect, onClose, ancho
|
|
|
122
122
|
back();
|
|
123
123
|
}), className: cn("mui-971625533e56 mui-571ea69568d3 mui-34055e6f8c1b mui-d5111d0e9f48 mui-04760bcd507f mui-94ea94fde25f mui-393df0d154e0 mui-548a450e8e53", "mui-d7d803c609c5", sideBySide
|
|
124
124
|
? "mui-4415137b0467" : "mui-0b9c84552e40", detached && "mui-33228ff7d583 mui-0fc84a692dad mui-dad556abfe15 mui-8fca9236d191 mui-89c3006b2722", classNames?.menu), children: _jsxs("div", { className: cn("mui-80baa5d03af7", sideBySide
|
|
125
|
-
? "mui-0f2a693e93e2 mui-b5985369ee35 mui-eeb3a8b33f69" : "mui-222f930b8752 mui-302c0d124a94", detached && cn("mui-e0122edc668b", selected && "mui-b9677bd1cb66")), children: [showList && (_jsx(FilterMenuList, { sections: sections, selectedId: selected?.id, initialKey: selected?.id ?? lastSelection.current, panelId: panelId, desktop: desktop, detached: detached, rows: rows, choose: choose, keyboardNavigation: keyboardNavigation, onPointerMove: (id, event) => {
|
|
125
|
+
? "mui-0f2a693e93e2 mui-b5985369ee35 mui-eeb3a8b33f69" : "mui-222f930b8752 mui-302c0d124a94", detached && cn("mui-d2d9e1f13413 mui-e0122edc668b", selected && "mui-b9677bd1cb66")), children: [showList && (_jsx(FilterMenuList, { sections: sections, selectedId: selected?.id, initialKey: selected?.id ?? lastSelection.current, panelId: panelId, desktop: desktop, detached: detached, rows: rows, choose: choose, keyboardNavigation: keyboardNavigation, onPointerMove: (id, event) => {
|
|
126
126
|
if (desktop && event.pointerType === "mouse") {
|
|
127
127
|
setKeyboardNavigation(false);
|
|
128
128
|
const focused = document.activeElement;
|
|
@@ -134,7 +134,7 @@ export function FilterMenuPanel({ sections, selectedId, onSelect, onClose, ancho
|
|
|
134
134
|
}
|
|
135
135
|
pointer.move(id, event);
|
|
136
136
|
}
|
|
137
|
-
} })), selected && (_jsxs("div", { ref: editorPanel, "data-slot": "filter-menu-editor", onPointerEnter: pointer.cancel, style: detached ? { marginTop: editorPlacement.offset } : undefined, className: cn("mui-222f930b8752 mui-410da8dfa8ac mui-184ddc11e5f9 mui-80baa5d03af7 mui-302c0d124a94", detached && "mui-cb20bd519346 mui-291952c2525a mui-d5111d0e9f48 mui-3fa8c572949b mui-4f1a55de40bc mui-e593c38256e0 mui-5bd2afe89f0b", detached && editorPlacement.joinTop && "mui-2176687d6745", detached && editorPlacement.joinBottom && "mui-c9755c8858d9"), children: [_jsx(EditorHeading, { section: selected, desktop: desktop, back: back, onCleared: focusEditor }), _jsx("div", { ref: editor, id: `${panelId}-${selected.id}`, role: "group", "aria-label": selected.editorLabel, tabIndex: -1, className: cn("mui-410da8dfa8ac mui-184ddc11e5f9 mui-3b82279f859f mui-2368e909f3a5 mui-998780cdef87 mui-b30fc56058b6 mui-f157ee6bae99 mui-a1c8c43d9be2 mui-b43343fe71c0", classNames?.editor), children: selected.content }, selected.id)] }))] }) }));
|
|
137
|
+
} })), selected && (_jsxs("div", { ref: editorPanel, "data-slot": "filter-menu-editor", onPointerEnter: pointer.cancel, style: detached ? { marginTop: editorPlacement.offset } : undefined, className: cn("mui-222f930b8752 mui-410da8dfa8ac mui-184ddc11e5f9 mui-80baa5d03af7 mui-302c0d124a94", detached && "mui-747355bdc2a2 mui-29a5b1dea191 mui-3ba24c062d55 mui-98599e4ee250 mui-cb20bd519346 mui-291952c2525a mui-d5111d0e9f48 mui-3fa8c572949b mui-4f1a55de40bc mui-e593c38256e0 mui-5bd2afe89f0b", detached && editorPlacement.joinTop && "mui-2176687d6745", detached && editorPlacement.joinBottom && "mui-c9755c8858d9"), children: [_jsx(EditorHeading, { section: selected, desktop: desktop, back: back, onCleared: focusEditor }), _jsx("div", { ref: editor, id: `${panelId}-${selected.id}`, role: "group", "aria-label": selected.editorLabel, tabIndex: -1, className: cn("mui-410da8dfa8ac mui-184ddc11e5f9 mui-3b82279f859f mui-2368e909f3a5 mui-998780cdef87 mui-b30fc56058b6 mui-f157ee6bae99 mui-a1c8c43d9be2 mui-b43343fe71c0", classNames?.editor), children: selected.content }, selected.id)] }))] }) }));
|
|
138
138
|
}
|
|
139
139
|
function EditorHeading({ section, desktop, back, onCleared, }) {
|
|
140
140
|
const { classNames } = useMendyUI();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { decodeUrlValue, encodeUrlValue } from "./url-value.js";
|
|
1
2
|
import { equalValues } from "./filter-definition.js";
|
|
2
3
|
export function classifyPaste(text, entries) {
|
|
3
4
|
const result = { changes: {}, unmatched: [], ambiguous: [] };
|
|
@@ -49,7 +50,8 @@ export function decodeFilters(definitions, params) {
|
|
|
49
50
|
if (raw === "~null")
|
|
50
51
|
return [key, null];
|
|
51
52
|
try {
|
|
52
|
-
const
|
|
53
|
+
const unwrapped = decodeUrlValue(raw);
|
|
54
|
+
const decoded = field.codec.parse(unwrapped.startsWith("~~") ? unwrapped.slice(1) : unwrapped);
|
|
53
55
|
if (decoded === null || field.validate(decoded))
|
|
54
56
|
return [key, field.defaultValue];
|
|
55
57
|
return [key, decoded];
|
|
@@ -68,7 +70,7 @@ export function encodeFilters(definitions, values, base = new URLSearchParams())
|
|
|
68
70
|
params.delete(urlKey);
|
|
69
71
|
else {
|
|
70
72
|
const raw = value === null ? "~null" : field.codec.serialize(value);
|
|
71
|
-
params.set(urlKey, value
|
|
73
|
+
params.set(urlKey, value === null ? raw : raw.startsWith("~") ? `~${raw}` : encodeUrlValue(raw));
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
return params;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createMultiParser } from "nuqs";
|
|
2
|
+
import { decodeUrlValue } from "./url-value.js";
|
|
3
|
+
/** Accept old JSON URLs even when an adapter presents their array as repeated keys. */
|
|
4
|
+
export function filterUrlParser(field) {
|
|
5
|
+
return createMultiParser({
|
|
6
|
+
parse(values) {
|
|
7
|
+
if (!values.length)
|
|
8
|
+
return null;
|
|
9
|
+
const first = values[0];
|
|
10
|
+
if (values.length === 1) {
|
|
11
|
+
if (first === "~null" || first.startsWith("~~") || decodeUrlValue(first) !== first)
|
|
12
|
+
return first;
|
|
13
|
+
if (accepts(first))
|
|
14
|
+
return first;
|
|
15
|
+
}
|
|
16
|
+
const strings = JSON.stringify(values);
|
|
17
|
+
if (accepts(strings, true))
|
|
18
|
+
return strings;
|
|
19
|
+
const typed = JSON.stringify(values.map((value) => {
|
|
20
|
+
try {
|
|
21
|
+
return JSON.parse(value);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
27
|
+
return accepts(typed, true) ? typed : null;
|
|
28
|
+
},
|
|
29
|
+
serialize: (value) => [value],
|
|
30
|
+
});
|
|
31
|
+
function accepts(raw, arrayOnly = false) {
|
|
32
|
+
try {
|
|
33
|
+
const value = field.codec.parse(raw);
|
|
34
|
+
return value !== null && (!arrayOnly || Array.isArray(value)) && !field.validate(value);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Routers that parse JSON globally must receive a string, even when the filter
|
|
2
|
+
// codec happens to serialize an array, object, number, or JSON-looking text.
|
|
3
|
+
const prefix = "~ui:";
|
|
4
|
+
export function encodeUrlValue(value) {
|
|
5
|
+
if (value.startsWith(prefix))
|
|
6
|
+
return prefix + value;
|
|
7
|
+
try {
|
|
8
|
+
JSON.parse(value);
|
|
9
|
+
return prefix + value;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function decodeUrlValue(value) {
|
|
16
|
+
return value.startsWith(prefix) ? value.slice(prefix.length) : value;
|
|
17
|
+
}
|
|
@@ -80,12 +80,15 @@ export function useEditorOffset({ detached, editorPanel, content, rows, selected
|
|
|
80
80
|
measured.current.height = Math.max(measured.current.height, currentHeight);
|
|
81
81
|
const height = measured.current.height;
|
|
82
82
|
const viewport = window.visualViewport;
|
|
83
|
-
const
|
|
83
|
+
const viewportTop = viewport?.offsetTop ?? 0;
|
|
84
|
+
const viewportBottom = viewportTop + (viewport?.height ?? window.innerHeight);
|
|
84
85
|
// Keep short editors inside the list's vertical span. Lower rows therefore
|
|
85
86
|
// open upward even on a tall viewport, instead of dangling below the list.
|
|
86
87
|
const latestTop = Math.max(rootTop, Math.min(listBottom, viewportBottom - 16) - height);
|
|
87
88
|
const preferredTop = row.getBoundingClientRect().top - 5;
|
|
88
|
-
|
|
89
|
+
// The editor does not size the floating list. A taller editor may extend
|
|
90
|
+
// above it, keeping the hovered row stationary when the menu opens upward.
|
|
91
|
+
const offset = Math.max(viewportTop + 16, Math.min(preferredTop, latestTop, viewportBottom - 16 - height)) - rootTop;
|
|
89
92
|
const listBounds = list?.getBoundingClientRect();
|
|
90
93
|
const listStyle = list ? getComputedStyle(list) : undefined;
|
|
91
94
|
const radiusLimit = listBounds ? Math.min(listBounds.width, listBounds.height) / 2 : 0;
|
|
@@ -3,6 +3,8 @@ import { useMendyLocale } from "../locale-context.js";
|
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
4
4
|
import { parseAsString, useQueryStates } from "nuqs";
|
|
5
5
|
import { decodeFilters, encodeFilters, validateDefinitions } from "./filter-state.js";
|
|
6
|
+
import { filterUrlParser } from "./url-parser.js";
|
|
7
|
+
import { decodeUrlValue, encodeUrlValue } from "./url-value.js";
|
|
6
8
|
import { useFilterController } from "./use-filters.js";
|
|
7
9
|
const subscribeStorage = () => () => { };
|
|
8
10
|
function useStoredQuery(key) {
|
|
@@ -38,7 +40,14 @@ export function useUrlFilters(definitions, options) {
|
|
|
38
40
|
searchKey,
|
|
39
41
|
markerKey,
|
|
40
42
|
];
|
|
41
|
-
const parsers = Object.fromEntries(
|
|
43
|
+
const parsers = Object.fromEntries([
|
|
44
|
+
...Object.entries(definitions).map(([id, field]) => [
|
|
45
|
+
field.urlKey ?? id,
|
|
46
|
+
filterUrlParser(field),
|
|
47
|
+
]),
|
|
48
|
+
[searchKey, parseAsString],
|
|
49
|
+
[markerKey, parseAsString],
|
|
50
|
+
]);
|
|
42
51
|
const [raw, setRaw] = useQueryStates(parsers, {
|
|
43
52
|
history: options.history ?? "replace",
|
|
44
53
|
shallow: options.shallow ?? true,
|
|
@@ -57,7 +66,7 @@ export function useUrlFilters(definitions, options) {
|
|
|
57
66
|
const pending = useRef(null);
|
|
58
67
|
const fullParams = appliedParams(raw, keys, marker, overflow, storedQuery, options.scope);
|
|
59
68
|
const values = decodeFilters(definitions, fullParams);
|
|
60
|
-
const search = fullParams.get(searchKey) ?? "";
|
|
69
|
+
const search = decodeUrlValue(fullParams.get(searchKey) ?? "");
|
|
61
70
|
useLayoutEffect(() => {
|
|
62
71
|
pending.current = { values, search };
|
|
63
72
|
}, [values, search]);
|
|
@@ -80,7 +89,7 @@ export function useUrlFilters(definitions, options) {
|
|
|
80
89
|
const full = encodeFilters(definitions, values, new URLSearchParams(window.location.search));
|
|
81
90
|
full.delete(markerKey);
|
|
82
91
|
if (search)
|
|
83
|
-
full.set(searchKey, search);
|
|
92
|
+
full.set(searchKey, encodeUrlValue(search));
|
|
84
93
|
else
|
|
85
94
|
full.delete(searchKey);
|
|
86
95
|
const owned = new URLSearchParams();
|
|
@@ -141,7 +150,7 @@ export function useUrlFilters(definitions, options) {
|
|
|
141
150
|
if (saved) {
|
|
142
151
|
const params = new URLSearchParams(saved.query);
|
|
143
152
|
const restored = decodeFilters(current.definitions, params);
|
|
144
|
-
update(restored, params.get(searchKey) ?? "", "edit");
|
|
153
|
+
update(restored, decodeUrlValue(params.get(searchKey) ?? ""), "edit");
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
156
|
// Restoration runs once per storage scope. URL changes subsequently belong to nuqs.
|
|
@@ -170,7 +179,7 @@ export function useUrlFilters(definitions, options) {
|
|
|
170
179
|
const params = encodeFilters(definitions, values, url.searchParams);
|
|
171
180
|
params.delete(markerKey);
|
|
172
181
|
if (search)
|
|
173
|
-
params.set(searchKey, search);
|
|
182
|
+
params.set(searchKey, encodeUrlValue(search));
|
|
174
183
|
else
|
|
175
184
|
params.delete(searchKey);
|
|
176
185
|
url.search = params.toString();
|
package/dist/styles.css
CHANGED
|
@@ -49,6 +49,9 @@
|
|
|
49
49
|
.mui-747355bdc2a2:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
50
50
|
position: absolute;
|
|
51
51
|
}
|
|
52
|
+
.mui-992a93455c71:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
53
|
+
position: fixed;
|
|
54
|
+
}
|
|
52
55
|
.mui-d2d9e1f13413:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
53
56
|
position: relative;
|
|
54
57
|
}
|
|
@@ -118,6 +121,9 @@
|
|
|
118
121
|
.mui-3eef1ce97dba:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
119
122
|
z-index: 50;
|
|
120
123
|
}
|
|
124
|
+
.mui-29a5b1dea191:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
125
|
+
grid-column-start: 2;
|
|
126
|
+
}
|
|
121
127
|
.mui-a42d519714d6:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
122
128
|
width: 100%;
|
|
123
129
|
@media (width >= 40rem) {
|
|
@@ -48,6 +48,9 @@
|
|
|
48
48
|
.mui-747355bdc2a2:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
49
49
|
position: absolute;
|
|
50
50
|
}
|
|
51
|
+
.mui-992a93455c71:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
52
|
+
position: fixed;
|
|
53
|
+
}
|
|
51
54
|
.mui-d2d9e1f13413:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
52
55
|
position: relative;
|
|
53
56
|
}
|
|
@@ -117,6 +120,9 @@
|
|
|
117
120
|
.mui-3eef1ce97dba:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
118
121
|
z-index: 50;
|
|
119
122
|
}
|
|
123
|
+
.mui-29a5b1dea191:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
124
|
+
grid-column-start: 2;
|
|
125
|
+
}
|
|
120
126
|
.mui-a42d519714d6:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
121
127
|
width: 100%;
|
|
122
128
|
@media (width >= 40rem) {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Row } from "@tanstack/react-table";
|
|
2
|
+
import type { DataTableFeatures } from "./features.js";
|
|
3
|
+
/** Read a record description without mounting its cell renderer or allocating every cell. */
|
|
4
|
+
export declare function rowSelectionLabel<T extends object>(row: Row<DataTableFeatures, T>): string | number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Read a record description without mounting its cell renderer or allocating every cell. */
|
|
2
|
+
export function rowSelectionLabel(row) {
|
|
3
|
+
const { getRowLabel } = row.table.options;
|
|
4
|
+
if (getRowLabel)
|
|
5
|
+
return getRowLabel(row.original);
|
|
6
|
+
const column = row.table.getVisibleLeafColumns().find((column) => column.accessorFn);
|
|
7
|
+
if (column) {
|
|
8
|
+
const definition = column.columnDef;
|
|
9
|
+
const value = definition.copyValue?.(row.original) ?? row.getValue(column.id);
|
|
10
|
+
if ((typeof value === "string" && value.trim()) || typeof value === "number")
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
return row.index + 1;
|
|
14
|
+
}
|
|
@@ -14,11 +14,12 @@ export function TableColumnSettings({ table, children, }) {
|
|
|
14
14
|
const id = useId();
|
|
15
15
|
const { t, direction } = useMendyLocale();
|
|
16
16
|
const { portalContainer } = useMendyUI();
|
|
17
|
-
const
|
|
17
|
+
const allColumns = table.getAllLeafColumns();
|
|
18
|
+
const columns = allColumns.filter((column) => column.getCanHide());
|
|
18
19
|
const byId = new Map(columns.map((column) => [column.id, column]));
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const allIds = new Set(allColumns.map((column) => column.id));
|
|
21
|
+
const fullOrder = [...new Set([...table.state.columnOrder, ...allIds])].filter((key) => allIds.has(key));
|
|
22
|
+
const order = fullOrder.filter((key) => byId.has(key));
|
|
22
23
|
const ordered = order.map((key) => byId.get(key));
|
|
23
24
|
const hidden = columns.filter((column) => !column.getIsVisible()).length;
|
|
24
25
|
const start = columns.filter((column) => column.getIsPinned() === "start").length;
|
|
@@ -36,7 +37,9 @@ export function TableColumnSettings({ table, children, }) {
|
|
|
36
37
|
const next = [...order];
|
|
37
38
|
const [moved] = next.splice(result.source.index, 1);
|
|
38
39
|
next.splice(result.destination.index, 0, moved);
|
|
39
|
-
|
|
40
|
+
// Keep fixed columns in their existing slots when editable columns move.
|
|
41
|
+
let index = 0;
|
|
42
|
+
table.setColumnOrder(fullOrder.map((key) => (byId.has(key) ? next[index++] : key)));
|
|
40
43
|
}
|
|
41
44
|
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", size: "icon-sm", "aria-label": t("columnSettings"), title: t("columnSettings"), children: _jsx(SlidersHorizontal, { className: "mui-100c22d5776b" }) }) }), _jsxs(PopoverContent, { align: "end", "aria-label": t("columnSettings"), className: "mui-222f930b8752 mui-a4cce7869436 mui-302c0d124a94 mui-04760bcd507f", onCloseAutoFocus: (event) => {
|
|
42
45
|
if (document.activeElement?.closest('[role="grid"]'))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { rowSelectionLabel } from "./row-selection-label.js";
|
|
3
4
|
import { useMendyLocale } from "../locale-context.js";
|
|
4
5
|
import { useState } from "react";
|
|
5
6
|
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
@@ -31,7 +32,7 @@ export function selectionColumn() {
|
|
|
31
32
|
pin: "start",
|
|
32
33
|
exportOptions: false,
|
|
33
34
|
header: ({ table }) => (_jsx(SelectionCheckbox, { checked: table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && "indeterminate"), onCheckedChange: (value) => table.toggleAllPageRowsSelected(value === true) })),
|
|
34
|
-
cell: ({ row }) => (_jsx(SelectionCheckbox, {
|
|
35
|
+
cell: ({ row }) => (_jsx(SelectionCheckbox, { rowLabel: rowSelectionLabel(row), checked: row.getIsSelected(), disabled: !row.getCanSelect(), onCheckedChange: (value) => row.toggleSelected(value === true) })),
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
38
|
export function TableActionBar({ count, children, onClear, }) {
|
|
@@ -65,7 +66,7 @@ export function TableSavedViews({ views, onApply, onSave, onDelete, }) {
|
|
|
65
66
|
void run(() => onSave(name.trim()));
|
|
66
67
|
}, children: [_jsx(Input, { "aria-label": t("newViewName"), value: name, onChange: (event) => setName(event.target.value), className: "mui-1fb07b38c63b mui-4ac4ec8dfbce" }), _jsx(Button, { type: "submit", size: "sm", disabled: pending || !name.trim(), children: t("saveView") })] }), error && (_jsx("span", { role: "alert", className: "mui-c74ab393b96d mui-887b9502d5c7", children: error }))] }));
|
|
67
68
|
}
|
|
68
|
-
function SelectionCheckbox({
|
|
69
|
+
function SelectionCheckbox({ rowLabel, ...props }) {
|
|
69
70
|
const { t } = useMendyLocale();
|
|
70
|
-
return (_jsx(Checkbox, { ...props, "aria-label":
|
|
71
|
+
return (_jsx(Checkbox, { ...props, "aria-label": rowLabel === undefined ? t("selectLoaded") : t("selectRow", { id: rowLabel }) }));
|
|
71
72
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
1
|
+
import type { CSSProperties, ReactNode } from "react";
|
|
2
2
|
import type { TableDataState } from "./table-view.js";
|
|
3
|
-
export declare function TableFeedbackRow({ children, columnCount, rowIndex, className, }: {
|
|
3
|
+
export declare function TableFeedbackRow({ children, columnCount, rowIndex, className, style, }: {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
columnCount: number;
|
|
6
6
|
rowIndex: number;
|
|
7
7
|
className?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
8
9
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare function TableInitialState({ status, hasRows, loadingState, emptyState, error, retry, hasFilters, pageIndex, clearFilters, firstPage, columnCount, }: Pick<TableDataState, "status" | "error" | "retry"> & {
|
|
10
|
+
export declare function TableInitialState({ status, hasRows, loadingState, emptyState, error, retry, hasFilters, pageIndex, clearFilters, firstPage, columnCount, width, viewportWidth, }: Pick<TableDataState, "status" | "error" | "retry"> & {
|
|
10
11
|
hasRows: boolean;
|
|
12
|
+
width: number;
|
|
13
|
+
viewportWidth: number | null;
|
|
11
14
|
columnCount: number;
|
|
12
15
|
loadingState?: ReactNode;
|
|
13
16
|
emptyState?: ReactNode;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMendyLocale } from "../locale-context.js";
|
|
3
3
|
import { Button } from "../primitives/button.js";
|
|
4
|
-
export function TableFeedbackRow({ children, columnCount, rowIndex, className, }) {
|
|
5
|
-
return (_jsx("div", { role: "row", "aria-rowindex": rowIndex, className: className, children: _jsx("div", { role: "gridcell", "aria-colindex": 1, "aria-colspan": Math.max(1, columnCount), children: children }) }));
|
|
4
|
+
export function TableFeedbackRow({ children, columnCount, rowIndex, className, style, }) {
|
|
5
|
+
return (_jsx("div", { role: "row", "aria-rowindex": rowIndex, className: className, style: style, children: _jsx("div", { role: "gridcell", "aria-colindex": 1, "aria-colspan": Math.max(1, columnCount), children: children }) }));
|
|
6
6
|
}
|
|
7
|
-
export function TableInitialState({ status, hasRows, loadingState, emptyState, error, retry, hasFilters, pageIndex = 0, clearFilters, firstPage, columnCount, }) {
|
|
7
|
+
export function TableInitialState({ status, hasRows, loadingState, emptyState, error, retry, hasFilters, pageIndex = 0, clearFilters, firstPage, columnCount, width, viewportWidth, }) {
|
|
8
8
|
const { t } = useMendyLocale();
|
|
9
9
|
if (hasRows)
|
|
10
10
|
return null;
|
|
11
11
|
if (status === "loading")
|
|
12
12
|
return (_jsx(TableFeedbackRow, { columnCount: columnCount, rowIndex: 2, children: loadingState }));
|
|
13
13
|
if (status === "error")
|
|
14
|
-
return (_jsx(
|
|
15
|
-
return (_jsx(
|
|
14
|
+
return (_jsx(TableCenteredFeedback, { columnCount: columnCount, width: width, viewportWidth: viewportWidth, children: _jsxs("div", { role: "alert", className: "mui-c432836760e3 mui-05ab12448317", children: [error ?? t("loadRowsError"), retry && (_jsx(Button, { variant: "outline", size: "sm", onClick: retry, children: t("retry") }))] }) }));
|
|
15
|
+
return (_jsx(TableCenteredFeedback, { columnCount: columnCount, width: width, viewportWidth: viewportWidth, children: _jsx("div", { role: "status", className: "mui-222f930b8752 mui-302c0d124a94 mui-71556df3b421 mui-074569488cca mui-c7902d77ad80 mui-05ab12448317 mui-35f35c41d134", children: emptyState ??
|
|
16
16
|
(pageIndex > 0 ? (_jsxs(_Fragment, { children: [_jsx("span", { children: t("noPageResults") }), _jsx(Button, { variant: "outline", size: "sm", onClick: firstPage, children: t("firstPage") })] })) : hasFilters ? (_jsxs(_Fragment, { children: [_jsx("span", { children: t("noFilterResults") }), clearFilters && (_jsx(Button, { variant: "outline", size: "sm", onClick: clearFilters, children: t("clearFilters") }))] })) : (t("noRows"))) }) }));
|
|
17
17
|
}
|
|
18
|
+
function TableCenteredFeedback({ children, columnCount, width, viewportWidth, }) {
|
|
19
|
+
return (_jsx("div", { role: "rowgroup", className: "mui-222f930b8752 mui-7bd5bab6d7f4 mui-302c0d124a94", style: { width }, children: _jsx(TableFeedbackRow, { columnCount: columnCount, rowIndex: 2, style: { width: viewportWidth ?? "100%" }, className: "mui-964a9431ff49 mui-8368bbb62f66 mui-222f930b8752 mui-7bd5bab6d7f4 mui-71556df3b421 mui-a503dd374cca", children: children }) }));
|
|
20
|
+
}
|
|
18
21
|
export function TableLoadMore({ loadMore, columnCount, rowIndex, onLoad, }) {
|
|
19
22
|
const { t } = useMendyLocale();
|
|
20
23
|
return (_jsx(TableFeedbackRow, { columnCount: columnCount, rowIndex: rowIndex, className: "mui-964a9431ff49 mui-8368bbb62f66", children: _jsxs("div", { className: "mui-222f930b8752 mui-71556df3b421 mui-a503dd374cca mui-074569488cca mui-96b92a971c95 mui-c74ab393b96d mui-35f35c41d134", children: [loadMore.loading ? (_jsxs("div", { role: "status", className: "mui-222f930b8752 mui-71556df3b421 mui-074569488cca", children: [_jsx("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "mui-2bd43fb57913 mui-27ead27a81df mui-2c14b55d77e6 mui-237747164b60", children: _jsx("path", { d: "M12 3v3m6.366-.366-2.12 2.12M21 12h-3m.366 6.366-2.12-2.12M12 21v-3m-6.366.366 2.12-2.12M3 12h3m-.366-6.366 2.12 2.12" }) }), _jsx("span", { children: t("loadingMore") })] })) : (_jsx(Button, { size: "sm", variant: "ghost", onClick: onLoad, children: loadMore.error ? t("retryMore") : t("loadMore") })), loadMore.error && _jsx("span", { role: "alert", children: loadMore.error })] }) }));
|
|
@@ -7,6 +7,7 @@ import { ArrowDown, ArrowUp } from "lucide-react";
|
|
|
7
7
|
import { Button } from "../primitives/button.js";
|
|
8
8
|
import { Checkbox } from "../primitives/checkbox.js";
|
|
9
9
|
import { cn } from "../utils.js";
|
|
10
|
+
import { rowSelectionLabel } from "./row-selection-label.js";
|
|
10
11
|
import { interactiveSelector } from "./clipboard.js";
|
|
11
12
|
export function TableHeaderCell({ table, header, index, style, renderHeader, contentClassName, selectLoaded, }) {
|
|
12
13
|
const { t } = useMendyLocale();
|
|
@@ -58,11 +59,27 @@ function TableBodyRowImpl({ row, rowIndex, start, rowHeight, autoRowHeight, meas
|
|
|
58
59
|
event.stopPropagation();
|
|
59
60
|
event.currentTarget.focus({ preventScroll: true });
|
|
60
61
|
cell.getSelectionStartHandler()(event);
|
|
61
|
-
}, onMouseEnter: cell.getSelectionExtendHandler(),
|
|
62
|
+
}, onMouseEnter: cell.getSelectionExtendHandler(), onKeyDown: (event) => {
|
|
63
|
+
if (cell.column.id !== "_selection" ||
|
|
64
|
+
event.target.closest(interactiveSelector))
|
|
65
|
+
return;
|
|
66
|
+
if (event.key === " " || event.key === "Enter") {
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
event.stopPropagation();
|
|
69
|
+
if (!event.repeat && row.getCanSelect())
|
|
70
|
+
row.toggleSelected();
|
|
71
|
+
}
|
|
72
|
+
}, onClick: (event) => {
|
|
73
|
+
if (cell.column.id === "_selection") {
|
|
74
|
+
if (!event.target.closest(interactiveSelector) && row.getCanSelect())
|
|
75
|
+
row.toggleSelected();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
62
78
|
if (event.detail <= 1 && !event.target.closest(interactiveSelector))
|
|
63
79
|
onRowClick?.(row.original);
|
|
64
80
|
}, onDoubleClick: (event) => {
|
|
65
|
-
if (
|
|
81
|
+
if (cell.column.id !== "_selection" &&
|
|
82
|
+
!event.target.closest(interactiveSelector))
|
|
66
83
|
onRowActivate?.(row.original);
|
|
67
84
|
}, children: [selected && (_jsx("span", { "aria-hidden": "true", "data-selection-outline": "", className: "mui-33228ff7d583 mui-747355bdc2a2 mui-d7efd1b0b0f9 mui-515f9fdc6db7", style: {
|
|
68
85
|
top: edge?.top ? 0 : -1,
|
|
@@ -73,7 +90,7 @@ function TableBodyRowImpl({ row, rowIndex, start, rowHeight, autoRowHeight, meas
|
|
|
73
90
|
borderBottomWidth: edge?.bottom ? 2 : 0,
|
|
74
91
|
borderLeftWidth: (direction === "rtl" ? edge?.right : edge?.left) ? 2 : 0,
|
|
75
92
|
borderRightWidth: (direction === "rtl" ? edge?.left : edge?.right) ? 2 : 0,
|
|
76
|
-
} })), inlineSelection && index === 0 && (_jsx(Checkbox, { "aria-label": t("selectRow", { id:
|
|
93
|
+
} })), inlineSelection && index === 0 && (_jsx(Checkbox, { "aria-label": t("selectRow", { id: rowSelectionLabel(row) }), checked: row.getIsSelected(), disabled: !row.getCanSelect(), onCheckedChange: (value) => row.toggleSelected(value === true), onMouseDown: (event) => event.stopPropagation(), onClick: (event) => event.stopPropagation(), className: "mui-68d781378b03 mui-94f91922a10e mui-34a57d4b4103 mui-8da02faac748 mui-b8b1747fa763 mui-d2e4a66bb430 mui-978f422895e5 mui-d0c2ae8419e1 mui-9c02852bfc55 mui-e2ed522ed9b7 mui-cbd3aed703f7 mui-fa8e1efead3c mui-eaedb91f8774" })), _jsx("div", { className: cn("mui-184ddc11e5f9 mui-81b198a2db84", autoRowHeight ? "mui-726fca123972 mui-37cf9655f30a mui-b5edc3ea7c91" : "mui-7bd696ca6be3 mui-5a3a4ee420c2", contentClassName), children: _jsx(TableCellContent, { cell: cell, renderer: cell.column.columnDef.cell, version: contentVersion, state: contentState }) })] }, cell.id)] }, cell.id));
|
|
77
94
|
}) }, row.id));
|
|
78
95
|
if (!renderRowDetail)
|
|
79
96
|
return rowElement;
|
package/dist/table/table-view.js
CHANGED
|
@@ -111,9 +111,9 @@ export function TableView({ table, label, height = "auto", layout: layoutMode =
|
|
|
111
111
|
return (_jsxs(TableFrame, { layout: layoutMode, minHeight: minHeight, stretch: height === "100%", footer: footer, children: [_jsx("div", { "aria-live": "polite", className: "mui-32fb090591d9", children: announcement }), _jsxs("div", { ref: setContainer, role: "grid", tabIndex: -1, "aria-label": label ?? t("dataTable"), dir: direction, lang: code, "aria-rowcount": renderRowDetail ? -1 : rows.length + 1 + feedbackRowCount, "aria-colcount": layout.columns.length, "aria-busy": status === "loading" || refreshing, style: {
|
|
112
112
|
height: fill || height === "auto" ? undefined : height,
|
|
113
113
|
maxHeight: !fill && height === "auto" ? "65dvh" : undefined,
|
|
114
|
-
}, className: cn("mui-d2d9e1f13413 mui-014aadadffad mui-1a26a0d28420 mui-3fa8c572949b mui-4f1a55de40bc mui-5b272f3c5076 mui-c74ab393b96d mui-b30fc56058b6", fill && "mui-410da8dfa8ac mui-7bd5bab6d7f4", className), onKeyDown: onKeyDown, children: [_jsx("div", { role: "row", "aria-rowindex": 1, className: "mui-964a9431ff49 mui-98599e4ee250 mui-4e8f0a87a0dc mui-222f930b8752 mui-2bf6510f1330 mui-bbe39cfb5cc6 mui-5b272f3c5076", style: { width: totalWidth }, children: columns.map((column) => (_jsxs(Fragment, { children: [columnGaps.has(column.id) && (_jsx("div", { "aria-hidden": "true", className: "mui-27ead27a81df", style: { width: columnGaps.get(column.id) } })), _jsx(TableHeaderCell, { table: table, header: headersById.get(column.id), index: columnIndexes.get(column.id), style: cellStyle(column), renderHeader: renderHeader, contentClassName: contentClassName, selectLoaded: selectLoaded }, column.id)] }, column.id))) }), _jsx(TableInitialState, { columnCount: layout.columns.length, status: status, hasRows: rows.length > 0, loadingState: loadingState ?? (_jsx(TableLoadingRows, { columns: columns, columnGaps: columnGaps, width: totalWidth, rowHeight: rowHeight, cellStyle: cellStyle, count: !fill && height === "auto"
|
|
114
|
+
}, className: cn("mui-d2d9e1f13413 mui-014aadadffad mui-1a26a0d28420 mui-3fa8c572949b mui-4f1a55de40bc mui-5b272f3c5076 mui-c74ab393b96d mui-b30fc56058b6", fill && "mui-410da8dfa8ac mui-7bd5bab6d7f4", hasInitialFeedback && status !== "loading" && "mui-222f930b8752 mui-302c0d124a94", className), onKeyDown: onKeyDown, children: [_jsx("div", { role: "row", "aria-rowindex": 1, className: "mui-964a9431ff49 mui-98599e4ee250 mui-4e8f0a87a0dc mui-222f930b8752 mui-27ead27a81df mui-2bf6510f1330 mui-bbe39cfb5cc6 mui-5b272f3c5076", style: { width: totalWidth }, children: columns.map((column) => (_jsxs(Fragment, { children: [columnGaps.has(column.id) && (_jsx("div", { "aria-hidden": "true", className: "mui-27ead27a81df", style: { width: columnGaps.get(column.id) } })), _jsx(TableHeaderCell, { table: table, header: headersById.get(column.id), index: columnIndexes.get(column.id), style: cellStyle(column), renderHeader: renderHeader, contentClassName: contentClassName, selectLoaded: selectLoaded }, column.id)] }, column.id))) }), _jsx(TableInitialState, { width: Math.max(totalWidth, viewportWidth ?? 0), viewportWidth: viewportWidth, columnCount: layout.columns.length, status: status, hasRows: rows.length > 0, loadingState: loadingState ?? (_jsx(TableLoadingRows, { columns: columns, columnGaps: columnGaps, width: totalWidth, rowHeight: rowHeight, cellStyle: cellStyle, count: !fill && height === "auto"
|
|
115
115
|
? 8
|
|
116
|
-
: Math.max(1, Math.ceil(((virtual.scrollRect?.height ?? 400) - rowHeight) / rowHeight)) })), emptyState: emptyState, hasFilters: hasFilters, pageIndex: table.state.pagination.pageIndex, clearFilters: clearFilters, firstPage: () => table.setPageIndex(0), error: error, retry: retry }), _jsx("div", { role: "rowgroup", className: "mui-d2d9e1f13413 mui-2bf6510f1330", style: { height: virtual.getTotalSize(), width: totalWidth }, children: items.map((item) => (_jsx(TableBodyRow, { row: rows[item.index], rowIndex: item.index, start: item.start, rowHeight: rowHeight, autoRowHeight: autoRowHeight, measureElement: autoRowHeight ? virtual.measureElement : undefined, rowClassName: rowClassName, renderRowDetail: renderRowDetail, detailWidth: viewportWidth ?? totalWidth, cellStyle: cellStyle, columns: columns, columnGaps: columnGaps, columnIndexes: columnIndexes, contentVersion: table.options, contentState: table.state, focusedId: focused?.id, copied: copied, contentClassName: contentClassName, onRowClick: onRowClick, onRowActivate: onRowActivate, isRowHighlighted: isRowHighlighted, inlineSelection: inlineSelection }, item.key))) }), hasRefreshError && (_jsx(TableRefreshError, { columnCount: layout.columns.length, rowIndex: rows.length + 2, error: error, retry: retry })), loadMore?.available && (_jsx(TableLoadMore, { loadMore: loadMore, columnCount: layout.columns.length, rowIndex: rows.length + 2 + Number(hasInitialFeedback || hasRefreshError), onLoad: () => {
|
|
116
|
+
: Math.max(1, Math.ceil(((virtual.scrollRect?.height ?? 400) - rowHeight) / rowHeight)) })), emptyState: emptyState, hasFilters: hasFilters, pageIndex: table.state.pagination.pageIndex, clearFilters: clearFilters, firstPage: () => table.setPageIndex(0), error: error, retry: retry }), _jsx("div", { role: "rowgroup", className: "mui-d2d9e1f13413 mui-27ead27a81df mui-2bf6510f1330", style: { height: virtual.getTotalSize(), width: totalWidth }, children: items.map((item) => (_jsx(TableBodyRow, { row: rows[item.index], rowIndex: item.index, start: item.start, rowHeight: rowHeight, autoRowHeight: autoRowHeight, measureElement: autoRowHeight ? virtual.measureElement : undefined, rowClassName: rowClassName, renderRowDetail: renderRowDetail, detailWidth: viewportWidth ?? totalWidth, cellStyle: cellStyle, columns: columns, columnGaps: columnGaps, columnIndexes: columnIndexes, contentVersion: table.options, contentState: table.state, focusedId: focused?.id, copied: copied, contentClassName: contentClassName, onRowClick: onRowClick, onRowActivate: onRowActivate, isRowHighlighted: isRowHighlighted, inlineSelection: inlineSelection }, item.key))) }), hasRefreshError && (_jsx(TableRefreshError, { columnCount: layout.columns.length, rowIndex: rows.length + 2, error: error, retry: retry })), loadMore?.available && (_jsx(TableLoadMore, { loadMore: loadMore, columnCount: layout.columns.length, rowIndex: rows.length + 2 + Number(hasInitialFeedback || hasRefreshError), onLoad: () => {
|
|
117
117
|
requested.current = null;
|
|
118
118
|
void Promise.resolve()
|
|
119
119
|
.then(() => loadMore.load())
|
|
@@ -7,6 +7,8 @@ export interface UseDataTableOptions<T extends object> extends Omit<TableOptions
|
|
|
7
7
|
rows: readonly T[];
|
|
8
8
|
columns: TableColumn<T>[];
|
|
9
9
|
getRowId: (row: T, index: number) => string;
|
|
10
|
+
/** Human-readable record description for selection controls. Defaults to the first visible value column. */
|
|
11
|
+
getRowLabel?: (row: T) => string;
|
|
10
12
|
processing?: {
|
|
11
13
|
filtering?: "client" | "external";
|
|
12
14
|
sorting?: "client" | "external";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mendylanda/ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2-dev.65.0f00a8efff6b",
|
|
4
4
|
"description": "Mendy Landa’s reusable React components. Typed filters and tables with shared interaction behavior and customizable UI.",
|
|
5
5
|
"homepage": "https://ui.mendylanda.com",
|
|
6
6
|
"license": "MIT",
|
|
@@ -118,5 +118,5 @@
|
|
|
118
118
|
"build": "tsc -p tsconfig.build.json && node scripts/build-css.mjs",
|
|
119
119
|
"typecheck": "tsc -p tsconfig.build.json --noEmit"
|
|
120
120
|
},
|
|
121
|
-
"gitHead": "
|
|
121
|
+
"gitHead": "0f00a8efff6b77bb0b78300c773f9563e9d3c8e2"
|
|
122
122
|
}
|