intable 0.0.28 → 0.0.30

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/__uno.css CHANGED
@@ -1 +1 @@
1
- @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-leading:initial;--un-content:"";--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial;--un-text-opacity:100%;--un-border-opacity:100%;--un-space-y-reverse:initial;--un-space-x-reverse:initial;--un-outline-style:solid;--un-outline-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-outline-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-translate-x{syntax:"*";inherits:false;initial-value:0}@property --un-translate-y{syntax:"*";inherits:false;initial-value:0}@property --un-translate-z{syntax:"*";inherits:false;initial-value:0}@property --un-space-y-reverse{syntax:"*";inherits:false;initial-value:0}:root,:host{--spacing:.25rem;--radius-DEFAULT:.25rem;--colors-gray-DEFAULT:#99a1af;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--radius-md:.375rem;--default-transition-timingFunction:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--radius-xl:.75rem;--fontWeight-medium:500;--radius-sm:.25rem;--colors-blue-DEFAULT:#54a2ff;--colors-red-DEFAULT:#ff6568;--text-2xl-fontSize:1.5rem;--text-2xl-lineHeight:2rem;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-green-DEFAULT:#05df72;--colors-black:#000;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--colors-gray-DEFAULT:lab(65.9269% -.832707 -8.17474);--colors-blue-DEFAULT:lab(65.0361% -1.42062 -56.9803);--colors-red-DEFAULT:lab(63.7053% 60.7449 31.3109);--colors-green-DEFAULT:lab(78.503% -64.9265 39.7492)}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}.container{width:100%}.aic{align-items:center}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.text-2xl{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading,var(--text-2xl-lineHeight))}.text-3{font-size:.75rem}.text-3\.5{font-size:.875rem}.text-4{font-size:1rem}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.c-\#1e3a8a{color:color-mix(in oklab,#1e3a8a var(--un-text-opacity),transparent)}.c-\#7c2d12{color:color-mix(in oklab,#7c2d12 var(--un-text-opacity),transparent)}.c-blue{color:color-mix(in srgb,var(--colors-blue-DEFAULT)var(--un-text-opacity),transparent)}.c-gray\/70{color:color-mix(in srgb,var(--colors-gray-DEFAULT)70%,transparent)}.c-red\/75{color:color-mix(in srgb,var(--colors-red-DEFAULT)75%,transparent)}.leading-5{--un-leading:calc(4px*5);line-height:20px}.lh-\[1\]{--un-leading:1;line-height:1}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.m9{margin:36px}.mx-1{margin-inline:4px}.mx-3\!{margin-inline:12px!important}.my-1{margin-block:4px}.ml{margin-left:16px}.ml-\.5{margin-left:2px}.ml-1{margin-left:4px}.mr--1{margin-right:-4px}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-2\.5{margin-right:10px}.mt-1{margin-top:4px}.p-1{padding:4px}.p-4\!{padding:16px!important}.px,.px-4{padding-inline:16px}.px-1\.5{padding-inline:6px}.px-2{padding-inline:8px}.py-1{padding-block:4px}.py-1\.5{padding-block:6px}.py-2{padding-block:8px}.pl-1{padding-left:4px}.pl-4{padding-left:16px}.pr-4{padding-right:16px}.ps{padding-inline-start:16px}.outline-0{outline-style:var(--un-outline-style);outline-width:0}.outline-2{outline-style:var(--un-outline-style);outline-width:2px}.outline-blue{outline-color:color-mix(in srgb,var(--colors-blue-DEFAULT)var(--un-outline-opacity),transparent)}.outline-none{--un-outline-style:none;outline-style:none}.b,.b-1,.border{border-width:1px}.b-r-0{border-right-width:0}.b-\#00000000\!{border-color:color-mix(in oklab,#0000 var(--un-border-opacity),transparent)!important}.b-\#4f7ff0{border-color:color-mix(in oklab,#4f7ff0 var(--un-border-opacity),transparent)}.b-\#f59e0b{border-color:color-mix(in oklab,#f59e0b var(--un-border-opacity),transparent)}.rd-2{border-radius:.5rem}.rd-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rd-l-4{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.b-dashed{--un-border-style:dashed;border-style:dashed}.b-solid{--un-border-style:solid;border-style:solid}.bg-\#dbe6ff\/75{background-color:#dbe6ffbf;background-color:lab(91.0303% -.143617 -13.4803/.75)}.bg-\#fff{background-color:color-mix(in oklab,#fff var(--un-bg-opacity),transparent)}.bg-\#fff3d6\/85{background-color:#fff3d6d9;background-color:lab(96.236% .744224 15.5662/.85)}.bg-blue\/20\!{background-color:color-mix(in srgb,var(--colors-blue-DEFAULT)20%,transparent)!important}.bg-gray\/20{background-color:color-mix(in srgb,var(--colors-gray-DEFAULT)20%,transparent)}.bg-green\!{background-color:color-mix(in srgb,var(--colors-green-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-red\!{background-color:color-mix(in srgb,var(--colors-red-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-transparent{background-color:#0000}.hover\:bg-black\/8:hover{background-color:color-mix(in srgb,var(--colors-black)8%,transparent)}.op-0{opacity:0}.op-15{opacity:.15}.op-60{opacity:.6}.op-75{opacity:.75}.op40{opacity:.4}.group:hover .group-hover\:op-100{opacity:1}.flex{display:flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:4px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.grid{display:grid}.size-3\.5{width:14px;height:14px}.size-4\!{width:16px!important;height:16px!important}.size-full{width:100%;height:100%}.h-1\!{height:4px!important}.h-6{height:24px}.h-a\!{height:auto!important}.h-full{height:100%}.max-h-100{max-height:400px}.max-h-inherit{max-height:inherit}.min-h-16{min-height:64px}.min-h-40{min-height:160px}.min-h-a\!{min-height:auto!important}.min-w-24{min-width:96px}.min-w-52{min-width:208px}.w-10{width:40px}.w-10px\!{width:10px!important}.w-a\!{width:auto!important}.after\:h-1:after{height:4px}.after\:w-1:after{width:4px}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.visible{visibility:visible}.collapse{visibility:collapse}.cursor-s-resize{cursor:s-resize}.cursor-w-resize{cursor:w-resize}.pointer-events-none{pointer-events:none}.resize{resize:both}.resize-none{resize:none}.select-none{-webkit-user-select:none;user-select:none}.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow),var(--un-inset-ring-shadow),var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.translate-x--1\/2{--un-translate-x:-50%;translate:var(--un-translate-x)var(--un-translate-y)}.translate-x-1\/2{--un-translate-x:50%;translate:var(--un-translate-x)var(--un-translate-y)}.translate-y--1\/2{--un-translate-y:-50%;translate:var(--un-translate-x)var(--un-translate-y)}.transform{transform:var(--un-rotate-x)var(--un-rotate-y)var(--un-rotate-z)var(--un-skew-x)var(--un-skew-y)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.items-start{align-items:flex-start}.items-center{align-items:center}.box-border{box-sizing:border-box}.inset-0{inset:0}.bottom-0{bottom:0}.left--0,.left-0{left:0}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.justify-end\!{justify-content:flex-end!important}.justify-center{justify-content:center}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.z--1{z-index:-1}.z-1{z-index:1}.z-2{z-index:2}.z-9{z-index:9}.overflow-auto{overflow:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.filter{filter:var(--un-blur,)var(--un-brightness,)var(--un-contrast,)var(--un-grayscale,)var(--un-hue-rotate,)var(--un-invert,)var(--un-saturate,)var(--un-sepia,)var(--un-drop-shadow,)}.table{display:table}.table-cell{display:table-cell}:where(.space-y-5>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(4px*5)*var(--un-space-y-reverse));margin-block-end:calc(calc(4px*5)*calc(1 - var(--un-space-y-reverse)))}@supports (color:color-mix(in lab, red, red)){.c-blue{color:color-mix(in oklab,var(--colors-blue-DEFAULT)var(--un-text-opacity),transparent)}.c-gray\/70{color:color-mix(in oklab,var(--colors-gray-DEFAULT)70%,transparent)}.c-red\/75{color:color-mix(in oklab,var(--colors-red-DEFAULT)75%,transparent)}.outline-blue{outline-color:color-mix(in oklab,var(--colors-blue-DEFAULT)var(--un-outline-opacity),transparent)}.bg-blue\/20\!{background-color:color-mix(in oklab,var(--colors-blue-DEFAULT)20%,transparent)!important}.bg-gray\/20{background-color:color-mix(in oklab,var(--colors-gray-DEFAULT)20%,transparent)}.bg-green\!{background-color:color-mix(in oklab,var(--colors-green-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-red\!{background-color:color-mix(in oklab,var(--colors-red-DEFAULT)var(--un-bg-opacity),transparent)!important}.hover\:bg-black\/8:hover{background-color:color-mix(in oklab,var(--colors-black)8%,transparent)}}
1
+ @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-leading:initial;--un-content:"";--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial;--un-text-opacity:100%;--un-border-opacity:100%;--un-space-y-reverse:initial;--un-space-x-reverse:initial;--un-outline-style:solid;--un-outline-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-outline-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-translate-x{syntax:"*";inherits:false;initial-value:0}@property --un-translate-y{syntax:"*";inherits:false;initial-value:0}@property --un-translate-z{syntax:"*";inherits:false;initial-value:0}@property --un-numeric-figure{syntax:"*";inherits:false}@property --un-numeric-fraction{syntax:"*";inherits:false}@property --un-numeric-spacing{syntax:"*";inherits:false}@property --un-ordinal{syntax:"*";inherits:false}@property --un-slashed-zero{syntax:"*";inherits:false}@property --un-space-y-reverse{syntax:"*";inherits:false;initial-value:0}:root,:host{--spacing:.25rem;--radius-DEFAULT:.25rem;--colors-gray-DEFAULT:#99a1af;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--default-transition-timingFunction:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--radius-md:.375rem;--radius-xl:.75rem;--fontWeight-medium:500;--fontWeight-semibold:600;--tracking-wide:.025em;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--colors-blue-DEFAULT:#54a2ff;--colors-red-DEFAULT:#ff6568;--text-2xl-fontSize:1.5rem;--text-2xl-lineHeight:2rem;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-green-DEFAULT:#05df72;--colors-black:#000;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--colors-gray-DEFAULT:lab(65.9269% -.832677 -8.17474);--colors-blue-DEFAULT:lab(65.0361% -1.42065 -56.9802);--colors-red-DEFAULT:lab(63.7053% 60.745 31.3109);--colors-green-DEFAULT:lab(78.503% -64.9264 39.7492)}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}.container{width:100%}.aic{align-items:center}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.text-2xl{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading,var(--text-2xl-lineHeight))}.text-3{font-size:.75rem}.text-3\.5{font-size:.875rem}.text-4{font-size:1rem}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.c-\[--c-primary\]{color:color-mix(in oklab,var(--c-primary)var(--un-text-opacity),transparent)}.c-\#1e3a8a{color:color-mix(in oklab,#1e3a8a var(--un-text-opacity),transparent)}.c-\#7c2d12{color:color-mix(in oklab,#7c2d12 var(--un-text-opacity),transparent)}.c-blue{color:color-mix(in srgb,var(--colors-blue-DEFAULT)var(--un-text-opacity),transparent)}.c-gray\/70{color:color-mix(in srgb,var(--colors-gray-DEFAULT)70%,transparent)}.c-red\/75{color:color-mix(in srgb,var(--colors-red-DEFAULT)75%,transparent)}.leading-5{--un-leading:calc(4px*5);line-height:20px}.lh-\[1\]{--un-leading:1;line-height:1}.tracking-wide{--un-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.m9{margin:36px}.mx-1{margin-inline:4px}.mx-3\!{margin-inline:12px!important}.my-1{margin-block:4px}.ml{margin-left:16px}.ml-\.5{margin-left:2px}.ml-1{margin-left:4px}.mr--1{margin-right:-4px}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-2\.5{margin-right:10px}.mt-1{margin-top:4px}.p-1{padding:4px}.p-4\!{padding:16px!important}.px,.px-4{padding-inline:16px}.px-1\.5{padding-inline:6px}.px-2{padding-inline:8px}.px-3{padding-inline:12px}.py-1{padding-block:4px}.py-1\.5{padding-block:6px}.py-2{padding-block:8px}.pl-1{padding-left:4px}.pl-4{padding-left:16px}.pr-4{padding-right:16px}.ps{padding-inline-start:16px}.outline-0{outline-style:var(--un-outline-style);outline-width:0}.outline-2{outline-style:var(--un-outline-style);outline-width:2px}.outline-blue{outline-color:color-mix(in srgb,var(--colors-blue-DEFAULT)var(--un-outline-opacity),transparent)}.outline-none{--un-outline-style:none;outline-style:none}.b,.b-1,.border{border-width:1px}.b-r-0{border-right-width:0}.b-\#00000000\!{border-color:color-mix(in oklab,#0000 var(--un-border-opacity),transparent)!important}.b-\#4f7ff0{border-color:color-mix(in oklab,#4f7ff0 var(--un-border-opacity),transparent)}.b-\#f59e0b{border-color:color-mix(in oklab,#f59e0b var(--un-border-opacity),transparent)}.rd-1{border-radius:.25rem}.rd-1\.5{border-radius:.375rem}.rd-2{border-radius:.5rem}.rd-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rd-l-4{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.b-dashed{--un-border-style:dashed;border-style:dashed}.b-solid{--un-border-style:solid;border-style:solid}.bg-\[--table-header-bg\]{background-color:color-mix(in oklab,var(--table-header-bg)var(--un-bg-opacity),transparent)}.bg-\#dbe6ff\/75{background-color:#dbe6ffbf;background-color:lab(91.0303% -.143617 -13.4803/.75)}.bg-\#fff{background-color:color-mix(in oklab,#fff var(--un-bg-opacity),transparent)}.bg-\#fff3d6\/85{background-color:#fff3d6d9;background-color:lab(96.236% .744313 15.5662/.85)}.bg-blue\/20\!{background-color:color-mix(in srgb,var(--colors-blue-DEFAULT)20%,transparent)!important}.bg-gray\/20{background-color:color-mix(in srgb,var(--colors-gray-DEFAULT)20%,transparent)}.bg-green\!{background-color:color-mix(in srgb,var(--colors-green-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-red\!{background-color:color-mix(in srgb,var(--colors-red-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-transparent{background-color:#0000}.hover\:bg-\[--li-hover-bg\]:hover{background-color:color-mix(in oklab,var(--li-hover-bg)var(--un-bg-opacity),transparent)}.hover\:bg-black\/8:hover{background-color:color-mix(in srgb,var(--colors-black)8%,transparent)}.op-0{opacity:0}.op-15{opacity:.15}.op-60{opacity:.6}.op-75{opacity:.75}.op40{opacity:.4}.opacity-50{opacity:.5}.group:hover .group-hover\:op-100{opacity:1}.hover\:underline:hover{text-decoration-line:underline}.flex{display:flex}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:4px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.grid{display:grid}.size-3\.5{width:14px;height:14px}.size-4\!{width:16px!important;height:16px!important}.size-full{width:100%;height:100%}.h-1\!{height:4px!important}.h-3\.5{height:14px}.h-6{height:24px}.h-6\.5{height:26px}.h-a\!{height:auto!important}.h-full{height:100%}.max-h-100{max-height:400px}.max-h-60{max-height:240px}.max-h-inherit{max-height:inherit}.min-h-16{min-height:64px}.min-h-40{min-height:160px}.min-h-a\!{min-height:auto!important}.min-w-24{min-width:96px}.min-w-44{min-width:176px}.min-w-52{min-width:208px}.w-10{width:40px}.w-10px\!{width:10px!important}.w-3\.5{width:14px}.w-6\.5{width:26px}.w-a\!{width:auto!important}.w-full{width:100%}.after\:h-1:after{height:4px}.after\:w-1:after{width:4px}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.visible{visibility:visible}.collapse{visibility:collapse}.cursor-pointer{cursor:pointer}.cursor-s-resize{cursor:s-resize}.cursor-w-resize{cursor:w-resize}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.resize{resize:both}.resize-none{resize:none}.select-none{-webkit-user-select:none;user-select:none}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uppercase{text-transform:uppercase}.shadow-inner{--un-shadow:inset 0 2px 4px 0 var(--un-shadow-color,#0000000d);box-shadow:var(--un-inset-shadow),var(--un-inset-ring-shadow),var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow),var(--un-inset-ring-shadow),var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-xl{--un-shadow:0 20px 25px -5px var(--un-shadow-color,#0000001a),0 8px 10px -6px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow),var(--un-inset-ring-shadow),var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.translate-x--1\/2{--un-translate-x:-50%;translate:var(--un-translate-x)var(--un-translate-y)}.translate-x-1\/2{--un-translate-x:50%;translate:var(--un-translate-x)var(--un-translate-y)}.translate-y--1\/2{--un-translate-y:-50%;translate:var(--un-translate-x)var(--un-translate-y)}.transform{transform:var(--un-rotate-x)var(--un-rotate-y)var(--un-rotate-z)var(--un-skew-x)var(--un-skew-y)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.items-start{align-items:flex-start}.items-center{align-items:center}.box-border{box-sizing:border-box}.inset-0{inset:0}.bottom-0{bottom:0}.left--0,.left-0{left:0}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.justify-end\!{justify-content:flex-end!important}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.z--1{z-index:-1}.z-1{z-index:1}.z-2{z-index:2}.z-9{z-index:9}.overflow-auto{overflow:auto}.of-y-auto{overflow-y:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.filter{filter:var(--un-blur,)var(--un-brightness,)var(--un-contrast,)var(--un-grayscale,)var(--un-hue-rotate,)var(--un-invert,)var(--un-saturate,)var(--un-sepia,)var(--un-drop-shadow,)}.table{display:table}.table-cell{display:table-cell}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal,)var(--un-slashed-zero,)var(--un-numeric-figure,)var(--un-numeric-spacing,)var(--un-numeric-fraction,)}:where(.space-y-5>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(4px*5)*var(--un-space-y-reverse));margin-block-end:calc(calc(4px*5)*calc(1 - var(--un-space-y-reverse)))}@supports (color:color-mix(in lab, red, red)){.c-blue{color:color-mix(in oklab,var(--colors-blue-DEFAULT)var(--un-text-opacity),transparent)}.c-gray\/70{color:color-mix(in oklab,var(--colors-gray-DEFAULT)70%,transparent)}.c-red\/75{color:color-mix(in oklab,var(--colors-red-DEFAULT)75%,transparent)}.outline-blue{outline-color:color-mix(in oklab,var(--colors-blue-DEFAULT)var(--un-outline-opacity),transparent)}.bg-blue\/20\!{background-color:color-mix(in oklab,var(--colors-blue-DEFAULT)20%,transparent)!important}.bg-gray\/20{background-color:color-mix(in oklab,var(--colors-gray-DEFAULT)20%,transparent)}.bg-green\!{background-color:color-mix(in oklab,var(--colors-green-DEFAULT)var(--un-bg-opacity),transparent)!important}.bg-red\!{background-color:color-mix(in oklab,var(--colors-red-DEFAULT)var(--un-bg-opacity),transparent)!important}.hover\:bg-black\/8:hover{background-color:color-mix(in oklab,var(--colors-black)8%,transparent)}}
@@ -3,7 +3,7 @@ import { type createFloatingProps, type ReferenceType } from 'floating-ui-solid'
3
3
  import type { AutoUpdateOptions } from '@floating-ui/dom';
4
4
  export declare function Popover(attrs: FloatingProps): JSX.Element;
5
5
  type FloatingProps = {
6
- reference: ReferenceType;
6
+ reference: ReferenceType | JSX.Element;
7
7
  floating?: JSX.Element | (() => JSX.Element);
8
8
  portal?: HTMLElement;
9
9
  trigger?: 'click' | 'hover';
package/dist/index.d.ts CHANGED
@@ -12,10 +12,14 @@ import './plugins/ResizePlugin';
12
12
  import './plugins/DragPlugin';
13
13
  import './plugins/RowGroupPlugin';
14
14
  import './plugins/ExpandPlugin';
15
+ import './plugins/SortPlugin';
15
16
  import './plugins/CellMergePlugin';
16
17
  import './plugins/TreePlugin';
17
18
  import './plugins/HeaderGroup';
18
19
  import './plugins/ValidatorPlugin';
20
+ import './plugins/AggregatePlugin';
21
+ import './plugins/AutoFillPlugin';
22
+ import './plugins/FilterPlugin';
19
23
  export declare const Ctx: import("solid-js").Context<{
20
24
  props: TableProps2;
21
25
  store: TableStore;
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
+ import { renderComponent, solidComponent } from "./components/utils.js";
1
2
  import { unFn } from "./utils.js";
2
3
  import './style.css';;/* empty css */
3
4
  /* empty css */
4
5
  import { CellSelectionPlugin } from "./plugins/CellSelectionPlugin.js";
5
6
  import { ClipboardPlugin } from "./plugins/CopyPastePlugin.js";
6
7
  import { EditablePlugin } from "./plugins/EditablePlugin.js";
7
- import { renderComponent, solidComponent } from "./components/utils.js";
8
8
  import { RenderPlugin } from "./plugins/RenderPlugin/index.js";
9
9
  import { MenuPlugin } from "./plugins/MenuPlugin.js";
10
10
  import { CommandPlugin } from "./plugins/CommandPlugin.js";
@@ -13,10 +13,15 @@ import { ResizePlugin } from "./plugins/ResizePlugin.js";
13
13
  import { DragPlugin } from "./plugins/DragPlugin.js";
14
14
  import { RowGroupPlugin } from "./plugins/RowGroupPlugin.js";
15
15
  import { ExpandPlugin } from "./plugins/ExpandPlugin.js";
16
+ import { SortPlugin } from "./plugins/SortPlugin.js";
16
17
  import { CellMergePlugin } from "./plugins/CellMergePlugin.js";
17
18
  import { TreePlugin } from "./plugins/TreePlugin.js";
18
19
  import { HeaderGroupPlugin } from "./plugins/HeaderGroup.js";
19
20
  import { ValidatorPlugin } from "./plugins/ValidatorPlugin.js";
21
+ import { AggregatePlugin } from "./plugins/AggregatePlugin.js";
22
+ import { AutoFillPlugin } from "./plugins/AutoFillPlugin.js";
23
+ import { FilterPlugin } from "./plugins/FilterPlugin.js";
24
+ import { ImportExportPlugin } from "./plugins/ImportExportPlugin.js";
20
25
  import loading_bold_default from "./loading-bold.js";
21
26
  import { createComponent, insert, memo, mergeProps, spread, template, use } from "solid-js/web";
22
27
  import { $PROXY, For, batch, createContext, createEffect, createMemo, createSignal, getOwner, mapArray, mergeProps as mergeProps$1, on, onCleanup, onMount, runWithOwner, untrack, useContext } from "solid-js";
@@ -30,29 +35,29 @@ var _tmpl$ = /* @__PURE__ */ template("<div>"), _tmpl$2 = /* @__PURE__ */ templa
30
35
  const Ctx = createContext({
31
36
  props: {},
32
37
  store: {}
33
- }), Intable = (K) => {
34
- K = mergeProps$1({ rowKey: "id" }, K);
35
- let q = getOwner(), J = createMutable({
38
+ }), Intable = (_) => {
39
+ _ = mergeProps$1({ rowKey: "id" }, _);
40
+ let K = getOwner(), J = createMutable({
36
41
  get rawProps() {
37
- return K;
42
+ return _[$PROXY] ||= _;
38
43
  },
39
44
  get plugins() {
40
45
  return X();
41
46
  }
42
- }), Y = memoize((K) => runWithOwner(q, () => unFn(K, J))), X = createMemo((_) => {
47
+ }), Y = memoize((_) => runWithOwner(K, () => unFn(_, J))), X = createMemo((q) => {
43
48
  let X = [
44
49
  ...defaultsPlugins,
45
- ...K.plugins || [],
50
+ ..._.plugins || [],
46
51
  RenderPlugin
47
- ].map(Y).sort((_, K) => (K.priority || 0) - (_.priority || 0)), Q = difference(X, _);
48
- return runWithOwner(q, () => {
52
+ ].map(Y).sort((_, K) => (K.priority || 0) - (_.priority || 0)), Q = difference(X, q);
53
+ return runWithOwner(K, () => {
49
54
  Q.forEach((_) => Object.assign(J, _.store?.(J)));
50
55
  }), X;
51
56
  }, []);
52
57
  J.props = (() => {
53
- let _ = getOwner(), q = {}, Y = (K) => q[K] ??= runWithOwner(_, () => createMemo(() => Z(K)));
54
- function Z(_) {
55
- return createMemo(() => X().map((K) => K.rewriteProps?.[_]).filter((_) => _), void 0, { equals: isEqual })().reduce((K, q) => q({ [_]: K }, { store: J }), K[_]);
58
+ let K = getOwner(), q = {}, Y = (_) => q[_] ??= runWithOwner(K, () => createMemo(() => Z(_)));
59
+ function Z(K) {
60
+ return createMemo(() => X().map((_) => _.rewriteProps?.[K]).filter((_) => _), void 0, { equals: isEqual })().reduce((_, q) => q({ [K]: _ }, { store: J }), _[K]);
56
61
  }
57
62
  return new Proxy({}, { get(_, K, q) {
58
63
  return K == $PROXY ? q : Y(K)();
@@ -79,22 +84,22 @@ const Ctx = createContext({
79
84
  });
80
85
  };
81
86
  var THead = () => {
82
- let { props: _, store: K } = useContext(Ctx);
83
- return createComponent(_.Thead, { get children() {
84
- return createComponent(_.Tr, { get children() {
85
- return createComponent(_.EachCells, {
87
+ let { props: K, store: q } = useContext(Ctx);
88
+ return createComponent(K.Thead, { get children() {
89
+ return createComponent(K.Tr, { get children() {
90
+ return createComponent(K.EachCells, {
86
91
  get each() {
87
- return _.columns || [];
92
+ return K.columns || [];
88
93
  },
89
- children: (q, J) => createComponent(_.Th, {
94
+ children: (J, Y) => createComponent(K.Th, {
90
95
  get col() {
91
- return q();
96
+ return J();
92
97
  },
93
98
  get x() {
94
- return J();
99
+ return Y();
95
100
  },
96
101
  get children() {
97
- return renderComponent(q().name, void 0, K);
102
+ return renderComponent(J().name, void 0, q);
98
103
  }
99
104
  })
100
105
  });
@@ -143,10 +148,10 @@ var THead = () => {
143
148
  } });
144
149
  }, src_default = Intable;
145
150
  function BasePlugin() {
146
- let K = {
151
+ let _ = {
147
152
  col: null,
148
153
  data: null
149
- }, q = (_) => (() => {
154
+ }, K = (_) => (() => {
150
155
  var K = _tmpl$();
151
156
  return spread(K, _, !1, !1), K;
152
157
  })(), J = (_) => (() => {
@@ -158,15 +163,15 @@ function BasePlugin() {
158
163
  })(), X = (_) => (() => {
159
164
  var K = _tmpl$4();
160
165
  return spread(K, _, !1, !1), K;
161
- })(), Z = (_) => (() => {
166
+ })(), Z = (K) => (() => {
162
167
  var q = _tmpl$5();
163
- return spread(q, mergeProps(_, K), !1, !1), q;
164
- })(), Q = (_) => (() => {
168
+ return spread(q, mergeProps(K, _), !1, !1), q;
169
+ })(), Q = (K) => (() => {
165
170
  var q = _tmpl$6();
166
- return spread(q, mergeProps(_, K), !1, !1), q;
167
- })(), $ = (_) => (() => {
171
+ return spread(q, mergeProps(K, _), !1, !1), q;
172
+ })(), $ = (K) => (() => {
168
173
  var q = _tmpl$7();
169
- return spread(q, mergeProps(_, K), !1, !1), q;
174
+ return spread(q, mergeProps(K, _), !1, !1), q;
170
175
  })();
171
176
  return {
172
177
  name: "base",
@@ -209,38 +214,37 @@ function BasePlugin() {
209
214
  data: ({ data: _ = [] }) => _,
210
215
  columns: ({ columns: _ = [] }) => _,
211
216
  newRow: ({ newRow: _ = () => ({}) }) => _,
212
- Scroll: ({ Scroll: _ = q }, { store: K }) => (q) => {
213
- let J = createScrollPosition(() => K.scroll_el), Y = createElementSize(() => K.scroll_el), X = createMemo(() => {
214
- let _ = K.scroll_el;
217
+ Scroll: ({ Scroll: _ = K }, { store: q }) => (K) => {
218
+ let J = createScrollPosition(() => q.scroll_el), Y = createElementSize(() => q.scroll_el), X = createMemo(() => {
219
+ let _ = q.scroll_el;
215
220
  if (!_) return;
216
- let q = J.x == 0, X = J.x >= _.scrollWidth - (Y.width || 0);
217
- return q && X ? "" : !q && !X ? "is-scroll-mid" : q ? "is-scroll-left" : X ? "is-scroll-right" : "";
221
+ let K = J.x == 0, X = J.x >= _.scrollWidth - (Y.width || 0);
222
+ return K && X ? "" : !K && !X ? "is-scroll-mid" : K ? "is-scroll-left" : X ? "is-scroll-right" : "";
218
223
  });
219
- q = combineProps(q, { get class() {
220
- return `data-table ${K.props.border && "data-table--border"} data-table--${K.props.size}`;
224
+ K = combineProps(K, { get class() {
225
+ return `data-table ${q.props.border && "data-table--border"} data-table--${q.props.size}`;
221
226
  } }, {
222
227
  get class() {
223
- return K.props.class;
228
+ return q.props.class;
224
229
  },
225
230
  get style() {
226
- return K.props.style;
231
+ return q.props.style;
227
232
  }
228
233
  }, { get class() {
229
234
  return X();
230
235
  } });
231
- let Z = mapArray(() => K.plugins.flatMap((_) => _.layers ?? []), (_) => createComponent(_, K));
232
- return createComponent(_, mergeProps({ tabindex: -1 }, q, { get children() {
233
- return [
234
- (() => {
235
- var _ = _tmpl$8();
236
- return insert(_, Z), _;
237
- })(),
238
- (() => {
239
- var _ = _tmpl$9();
240
- return use((_) => K.scroll_el = _, _), insert(_, () => q.children, null), insert(_, createComponent(K.props.Footer, {}), null), _;
241
- })(),
242
- memo(() => memo(() => !K.props.data.length)() && _tmpl$0())
243
- ];
236
+ let Z = mapArray(() => q.plugins.flatMap((_) => _.layers ?? []), (_) => createComponent(_, q));
237
+ return createComponent(_, mergeProps({ tabindex: -1 }, K, { get children() {
238
+ return [(() => {
239
+ var _ = _tmpl$8();
240
+ return insert(_, Z), _;
241
+ })(), (() => {
242
+ var _ = _tmpl$9();
243
+ return use((_) => q.scroll_el = _, _), insert(_, () => K.children, null), insert(_, createComponent(q.props.Footer, {}), null), insert(_, (() => {
244
+ var _ = memo(() => !q.props.data.length);
245
+ return () => _() && _tmpl$0();
246
+ })(), null), _;
247
+ })()];
244
248
  } }));
245
249
  },
246
250
  Footer: ({ Footer: _ }) => (_ ??= (_) => (() => {
@@ -262,7 +266,7 @@ function BasePlugin() {
262
266
  }));
263
267
  }), createComponent(_, q);
264
268
  },
265
- Th: ({ Th: K = Q }, { store: q }) => (J) => {
269
+ Th: ({ Th: _ = Q }, { store: K }) => (J) => {
266
270
  let [Y, X] = createSignal(), { props: Z } = useContext(Ctx), Q = combineProps(J, { ref: X }, {
267
271
  get class() {
268
272
  return unFn(Z.cellClass, J);
@@ -283,33 +287,33 @@ function BasePlugin() {
283
287
  return createEffect(() => {
284
288
  if (J.covered || (J.colspan ?? 1) != 1) return;
285
289
  let { x: _ } = J;
286
- q.ths[_] = Y(), q.thObs.observe(Y()), onCleanup(() => {
287
- q.thSizes[_] = q.ths[_] = void 0, q.thObs.unobserve(Y());
290
+ K.ths[_] = Y(), K.thObs.observe(Y()), onCleanup(() => {
291
+ K.thSizes[_] = K.ths[_] = void 0, K.thObs.unobserve(Y());
288
292
  });
289
- }), createComponent(K, mergeProps(Q, { get children() {
293
+ }), createComponent(_, mergeProps(Q, { get children() {
290
294
  return J.children;
291
295
  } }));
292
296
  },
293
- Td: ({ Td: K = $ }, { store: q }) => (q) => {
294
- let { props: J } = useContext(Ctx), Y = combineProps(q, {
297
+ Td: ({ Td: _ = $ }, { store: K }) => (K) => {
298
+ let { props: J } = useContext(Ctx), Y = combineProps(K, {
295
299
  get class() {
296
- return unFn(J.cellClass, q);
300
+ return unFn(J.cellClass, K);
297
301
  },
298
302
  get style() {
299
- return unFn(J.cellStyle, q);
303
+ return unFn(J.cellStyle, K);
300
304
  }
301
305
  }, {
302
306
  get class() {
303
- return q.col.class;
307
+ return K.col.class;
304
308
  },
305
309
  get style() {
306
- return q.col.style;
310
+ return K.col.style;
307
311
  }
308
312
  }, { get style() {
309
- return q.col.width ? `width: ${q.col.width}px` : "";
313
+ return K.col.width ? `width: ${K.col.width}px` : "";
310
314
  } });
311
- return createComponent(K, mergeProps(Y, { get children() {
312
- return q.children;
315
+ return createComponent(_, mergeProps(Y, { get children() {
316
+ return K.children;
313
317
  } }));
314
318
  },
315
319
  EachRows: ({ EachRows: _ }) => _ || ((_) => createComponent(For, {
@@ -327,10 +331,10 @@ function BasePlugin() {
327
331
  renderer: ({ renderer: _ = (_) => _ }) => _
328
332
  },
329
333
  layers: [function(_) {
330
- return _.props.loading ? (() => {
334
+ return memo(() => memo(() => !!_.props.loading)() ? (() => {
331
335
  var _ = _tmpl$1();
332
336
  return insert(_, createComponent(loading_bold_default, { class: "text-2xl animate-spin" })), _;
333
- })() : null;
337
+ })() : null);
334
338
  }]
335
339
  };
336
340
  }
@@ -349,12 +353,12 @@ const defaultsPlugins = [
349
353
  } }
350
354
  },
351
355
  HeaderGroupPlugin,
352
- (K) => {
353
- let q = createLazyMemo(() => {
354
- let _ = {};
355
- for (let [q, J] of K.props.columns.entries()) J.fixed === "left" && (_[q] = sumBy(K.thSizes.slice(0, q), (_) => _?.width || 0)), J.fixed === "right" && (_[q] = sumBy(K.thSizes.slice(q + 1), (_) => _?.width || 0));
356
- return _;
357
- }), J = createLazyMemo(() => K.props.columns.filter((_) => _.fixed == "left").length - 1), Y = createLazyMemo(() => K.props.columns.length - K.props.columns.filter((_) => _.fixed == "right").length);
356
+ (_) => {
357
+ let K = createLazyMemo(() => {
358
+ let K = {};
359
+ for (let [q, J] of _.props.columns.entries()) J.fixed === "left" && (K[q] = sumBy(_.thSizes.slice(0, q), (_) => _?.width || 0)), J.fixed === "right" && (K[q] = sumBy(_.thSizes.slice(q + 1), (_) => _?.width || 0));
360
+ return K;
361
+ }), J = createLazyMemo(() => _.props.columns.filter((_) => _.fixed == "left").length - 1), Y = createLazyMemo(() => _.props.columns.length - _.props.columns.filter((_) => _.fixed == "right").length);
358
362
  return {
359
363
  name: "fixed-column",
360
364
  rewriteProps: {
@@ -363,8 +367,8 @@ const defaultsPlugins = [
363
367
  ..._?.filter((_) => !_.fixed) || [],
364
368
  ..._?.filter((_) => _.fixed == "right") || []
365
369
  ],
366
- cellClass: ({ cellClass: K }) => (q) => (unFn(K, q) || "") + (q.col.fixed ? ` fixed-${q.col.fixed} ${q.x == J() ? "is-last" : ""} ${q.x == Y() ? "is-first" : ""}` : ""),
367
- cellStyle: ({ cellStyle: K }) => (J) => (unFn(K, J) || "") + (J.col.fixed ? `; ${J.col.fixed}: ${q()[J.x]}px` : "")
370
+ cellClass: ({ cellClass: _ }) => (K) => (unFn(_, K) || "") + (K.col.fixed ? ` fixed-${K.col.fixed} ${K.x == J() ? "is-last" : ""} ${K.x == Y() ? "is-first" : ""}` : ""),
371
+ cellStyle: ({ cellStyle: _ }) => (J) => (unFn(_, J) || "") + (J.col.fixed ? `; ${J.col.fixed}: ${K()[J.x]}px` : "")
368
372
  }
369
373
  };
370
374
  },
@@ -387,6 +391,7 @@ const defaultsPlugins = [
387
391
  } }),
388
392
  rewriteProps: { columns: ({ columns: _ }, { store: K }) => K.props?.index ? [K.$index, ..._ || []] : _ }
389
393
  },
394
+ SortPlugin,
390
395
  ValidatorPlugin,
391
396
  EditablePlugin,
392
397
  CellMergePlugin,
@@ -411,6 +416,10 @@ const defaultsPlugins = [
411
416
  };
412
417
  },
413
418
  RowGroupPlugin,
414
- ResizePlugin
419
+ ResizePlugin,
420
+ AggregatePlugin,
421
+ AutoFillPlugin,
422
+ FilterPlugin,
423
+ ImportExportPlugin
415
424
  ];
416
425
  export { Ctx, Intable, src_default as default, defaultsPlugins };
@@ -0,0 +1,28 @@
1
+ import { type Plugin, type TableColumn } from '..';
2
+ export type AggregateType = 'sum' | 'avg' | 'count' | 'min' | 'max' | ((values: any[], column: TableColumn, data: any[]) => any);
3
+ declare module '../index' {
4
+ interface TableProps {
5
+ aggregate?: {
6
+ /**
7
+ * Label shown in the first user column when that column itself
8
+ * has no `aggregate` setting. Defaults to `'Σ'`.
9
+ */
10
+ label?: string;
11
+ /**
12
+ * Format a computed aggregate value before display.
13
+ * Return a string/number or a JSX element.
14
+ */
15
+ formatter?: (value: any, type: AggregateType, col: TableColumn) => any;
16
+ };
17
+ }
18
+ interface TableColumn {
19
+ /**
20
+ * Aggregation for this column.
21
+ * - `'sum'` / `'avg'` / `'min'` / `'max'` — numeric operations (NaN values skipped)
22
+ * - `'count'` — counts non-null / non-empty values
23
+ * - function — `(values, col, allData) => displayValue`
24
+ */
25
+ aggregate?: AggregateType;
26
+ }
27
+ }
28
+ export declare const AggregatePlugin: Plugin;
@@ -0,0 +1,71 @@
1
+ import { className, createComponent, effect, insert, style, template } from "solid-js/web";
2
+ import { For, Show, createMemo } from "solid-js";
3
+ var _tmpl$ = /* @__PURE__ */ template("<tfoot class=\"sticky bottom-0 z-2 shadow-inner\"><tr style=font-weight:600>"), _tmpl$2 = /* @__PURE__ */ template("<span class=\"font-mono text-sm tabular-nums c-[--c-primary]\">"), _tmpl$3 = /* @__PURE__ */ template("<td>"), _tmpl$4 = /* @__PURE__ */ template("<span class=\"text-xs font-semibold tracking-wide select-none\">");
4
+ function computeAgg(e, o) {
5
+ let { aggregate: s } = e;
6
+ if (!s) return;
7
+ let c = o.map((o) => o[e.id]).filter((e) => e != null && e !== "");
8
+ if (typeof s == "function") return s(c, e, o);
9
+ if (s === "count") return c.length;
10
+ let l = c.map(Number).filter(isFinite);
11
+ if (!l.length) return "";
12
+ if (s === "sum") return l.reduce((e, o) => e + o, 0);
13
+ if (s === "avg") return +(l.reduce((e, o) => e + o, 0) / l.length).toFixed(2);
14
+ if (s === "min") return Math.min(...l);
15
+ if (s === "max") return Math.max(...l);
16
+ }
17
+ const AggregatePlugin = {
18
+ name: "aggregate",
19
+ rewriteProps: { Tbody: ({ Tbody: u }, { store: m }) => (h) => {
20
+ let g = () => m.props.columns ?? [], _ = createMemo(() => g().some((e) => !!e.aggregate)), v = createMemo(() => g().findIndex((e) => !e[m.internal])), y = () => m.props.aggregate?.label ?? "Σ", b = () => m.props.aggregate?.formatter;
21
+ return [createComponent(u, h), createComponent(Show, {
22
+ get when() {
23
+ return _();
24
+ },
25
+ get children() {
26
+ var u = _tmpl$(), h = u.firstChild;
27
+ return insert(h, createComponent(For, {
28
+ get each() {
29
+ return g();
30
+ },
31
+ children: (u, d) => {
32
+ let p = createMemo(() => {
33
+ let e = computeAgg(u, m.props.data);
34
+ return e != null && b() ? b()(e, u.aggregate, u) : e;
35
+ });
36
+ return (() => {
37
+ var f = _tmpl$3();
38
+ return insert(f, createComponent(Show, {
39
+ get when() {
40
+ return u.aggregate;
41
+ },
42
+ get fallback() {
43
+ return createComponent(Show, {
44
+ get when() {
45
+ return d() === v();
46
+ },
47
+ get children() {
48
+ var e = _tmpl$4();
49
+ return insert(e, y), e;
50
+ }
51
+ });
52
+ },
53
+ get children() {
54
+ var e = _tmpl$2();
55
+ return insert(e, p), e;
56
+ }
57
+ })), effect((o) => {
58
+ var s = `${u.width ? `width:${u.width}px;` : ""}padding:4px 8px;border-top:1px solid var(--table-b-c)`, c = u.class;
59
+ return o.e = style(f, s, o.e), c !== o.t && className(f, o.t = c), o;
60
+ }, {
61
+ e: void 0,
62
+ t: void 0
63
+ }), f;
64
+ })();
65
+ }
66
+ })), u;
67
+ }
68
+ })];
69
+ } }
70
+ };
71
+ export { AggregatePlugin };
@@ -0,0 +1,20 @@
1
+ import { type Plugin } from '..';
2
+ declare module '..' {
3
+ interface TableProps {
4
+ /** Set to `true` or `{ enable: true }` to show the fill handle. Disabled by default. */
5
+ autoFill?: true | {
6
+ enable?: boolean;
7
+ };
8
+ }
9
+ }
10
+ /**
11
+ * AutoFillPlugin — shows a fill handle at the bottom-right corner of the
12
+ * cell selection (Excel-style). Drag it downward or rightward to fill cells:
13
+ *
14
+ * - **Numeric series**: `[1, 2, 3]` → continues 4, 5, 6, …
15
+ * - **Date series**: `['2024-01-01', '2024-01-02']` → continues incrementally
16
+ * - **Fallback**: cycles through the source values
17
+ *
18
+ * Requires `CellSelectionPlugin` (built-in) and writable data via `onDataChange`.
19
+ */
20
+ export declare const AutoFillPlugin: Plugin;