@mendylanda/ui 0.4.1-dev.61.619e1451770c → 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 +3 -3
- 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.d.ts +5 -1
- package/dist/filters/use-menu-placement.js +27 -5
- package/dist/filters/use-url-filters.js +14 -5
- package/dist/styles.css +10 -2
- package/dist/styles.tailwind3.css +10 -2
- 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-b31810dbd8a9":"rounded-s-none","mui-7f3780751c2e":"rounded-e-md","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) => {
|
|
@@ -45,7 +45,7 @@ export function FilterMenuPanel({ sections, selectedId, onSelect, onClose, ancho
|
|
|
45
45
|
const detached = desktop && menuLayout !== "connected";
|
|
46
46
|
const setContent = useAnchoredPointerEvents(content, detached);
|
|
47
47
|
const editorPanel = useRef(null);
|
|
48
|
-
const
|
|
48
|
+
const editorPlacement = useEditorOffset({
|
|
49
49
|
detached,
|
|
50
50
|
editorPanel,
|
|
51
51
|
content,
|
|
@@ -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:
|
|
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
|
+
}
|
|
@@ -12,6 +12,10 @@ export declare function useEditorOffset({ detached, editorPanel, content, rows,
|
|
|
12
12
|
content: RefObject<HTMLDivElement | null>;
|
|
13
13
|
rows: RefObject<Map<string, HTMLButtonElement>>;
|
|
14
14
|
selectedId?: string;
|
|
15
|
-
}):
|
|
15
|
+
}): {
|
|
16
|
+
offset: number;
|
|
17
|
+
joinTop: boolean;
|
|
18
|
+
joinBottom: boolean;
|
|
19
|
+
};
|
|
16
20
|
/** Only the visible panels receive pointer events; the positioner's empty area does not. */
|
|
17
21
|
export declare function useAnchoredPointerEvents(content: RefObject<HTMLDivElement | null>, detached: boolean): (node: HTMLDivElement | null) => void;
|
|
@@ -54,7 +54,7 @@ export function useMenuPlacement(anchor, trigger, desktop) {
|
|
|
54
54
|
}
|
|
55
55
|
/** Follow the selected row while keeping the editor inside the viewport. */
|
|
56
56
|
export function useEditorOffset({ detached, editorPanel, content, rows, selectedId, }) {
|
|
57
|
-
const [
|
|
57
|
+
const [placement, setPlacement] = useState({ offset: 0, joinTop: false, joinBottom: false });
|
|
58
58
|
const measured = useRef({ id: selectedId, height: 0 });
|
|
59
59
|
useLayoutEffect(() => {
|
|
60
60
|
if (!detached)
|
|
@@ -66,7 +66,7 @@ export function useEditorOffset({ detached, editorPanel, content, rows, selected
|
|
|
66
66
|
const update = () => {
|
|
67
67
|
const row = rows.current.get(selectedId ?? "");
|
|
68
68
|
if (!row) {
|
|
69
|
-
|
|
69
|
+
setPlacement({ offset: 0, joinTop: false, joinBottom: false });
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
const rootTop = root.getBoundingClientRect().top;
|
|
@@ -80,12 +80,34 @@ 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;
|
|
92
|
+
const listBounds = list?.getBoundingClientRect();
|
|
93
|
+
const listStyle = list ? getComputedStyle(list) : undefined;
|
|
94
|
+
const radiusLimit = listBounds ? Math.min(listBounds.width, listBounds.height) / 2 : 0;
|
|
95
|
+
const topRadius = Math.min(parseFloat(listStyle?.borderStartEndRadius ?? "0"), radiusLimit);
|
|
96
|
+
const bottomRadius = Math.min(parseFloat(listStyle?.borderEndEndRadius ?? "0"), radiusLimit);
|
|
97
|
+
const straightTop = (listBounds?.top ?? rootTop) + topRadius;
|
|
98
|
+
const straightBottom = listBottom - bottomRadius;
|
|
99
|
+
// The editor's inline-start corners are square only against the straight
|
|
100
|
+
// part of the list's inline-end edge. Use actual height here: search can
|
|
101
|
+
// shrink the editor while its anchored offset deliberately stays put.
|
|
102
|
+
const top = rootTop + offset;
|
|
103
|
+
const bottom = top + currentHeight;
|
|
104
|
+
const joinTop = top >= straightTop && top < straightBottom;
|
|
105
|
+
const joinBottom = bottom > straightTop && bottom <= straightBottom;
|
|
106
|
+
setPlacement((previous) => previous.offset === offset &&
|
|
107
|
+
previous.joinTop === joinTop &&
|
|
108
|
+
previous.joinBottom === joinBottom
|
|
109
|
+
? previous
|
|
110
|
+
: { offset, joinTop, joinBottom });
|
|
89
111
|
};
|
|
90
112
|
update();
|
|
91
113
|
const observer = new ResizeObserver(update);
|
|
@@ -100,7 +122,7 @@ export function useEditorOffset({ detached, editorPanel, content, rows, selected
|
|
|
100
122
|
root.removeEventListener("scroll", update, true);
|
|
101
123
|
};
|
|
102
124
|
}, [detached, selectedId, editorPanel, content, rows]);
|
|
103
|
-
return
|
|
125
|
+
return placement;
|
|
104
126
|
}
|
|
105
127
|
/** Only the visible panels receive pointer events; the positioner's empty area does not. */
|
|
106
128
|
export function useAnchoredPointerEvents(content, detached) {
|
|
@@ -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) {
|
|
@@ -541,14 +547,16 @@
|
|
|
541
547
|
border-start-start-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
542
548
|
border-end-start-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
543
549
|
}
|
|
544
|
-
.mui-
|
|
550
|
+
.mui-2176687d6745:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
545
551
|
border-start-start-radius: 0;
|
|
546
|
-
border-end-start-radius: 0;
|
|
547
552
|
}
|
|
548
553
|
.mui-7f3780751c2e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
549
554
|
border-start-end-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
550
555
|
border-end-end-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
551
556
|
}
|
|
557
|
+
.mui-c9755c8858d9:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
558
|
+
border-end-start-radius: 0;
|
|
559
|
+
}
|
|
552
560
|
.mui-4f1a55de40bc:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
553
561
|
border-style: var(--mendy-tw-border-style);
|
|
554
562
|
border-width: 1px;
|
|
@@ -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) {
|
|
@@ -540,14 +546,16 @@
|
|
|
540
546
|
border-start-start-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
541
547
|
border-end-start-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
542
548
|
}
|
|
543
|
-
.mui-
|
|
549
|
+
.mui-2176687d6745:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
544
550
|
border-start-start-radius: 0;
|
|
545
|
-
border-end-start-radius: 0;
|
|
546
551
|
}
|
|
547
552
|
.mui-7f3780751c2e:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
548
553
|
border-start-end-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
549
554
|
border-end-end-radius: max(0px, calc(var(--radius, 0.5rem) - 2px));
|
|
550
555
|
}
|
|
556
|
+
.mui-c9755c8858d9:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
557
|
+
border-end-start-radius: 0;
|
|
558
|
+
}
|
|
551
559
|
.mui-4f1a55de40bc:where([data-mendy-ui], [data-mendy-ui] *) {
|
|
552
560
|
border-style: var(--mendy-tw-border-style);
|
|
553
561
|
border-width: 1px;
|
|
@@ -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
|
}
|