@sito/dashboard 0.0.66 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +3 -2
  2. package/dist/{Chip-JDQqzO9I.js → Chip-C5ogKbFn.js} +4 -4
  3. package/dist/{Chip-a2z-338_.cjs → Chip-D17UJHW6.cjs} +1 -1
  4. package/dist/Chip.cjs +1 -1
  5. package/dist/Chip.js +1 -1
  6. package/dist/{FileInput-5tMOO7mb.cjs → FileInput-Ch-GCxrS.cjs} +1 -1
  7. package/dist/{FileInput-B--eBQVa.js → FileInput-DCR_Pyqe.js} +1 -1
  8. package/dist/{Filters-BivtNVS3.js → Filters-DL5jd8ps.js} +30 -16
  9. package/dist/{Filters-C5XEbF3V.cjs → Filters-Dyee8QYH.cjs} +1 -1
  10. package/dist/Form.cjs +1 -1
  11. package/dist/Form.js +2 -2
  12. package/dist/SvgIcons.cjs +1 -1
  13. package/dist/SvgIcons.js +7 -6
  14. package/dist/Table-BtZGG0d7.js +1056 -0
  15. package/dist/Table-DjIhOMXQ.cjs +1 -0
  16. package/dist/Table.cjs +1 -1
  17. package/dist/Table.css +1 -1
  18. package/dist/Table.js +1 -1
  19. package/dist/{TextInput-BLfTozZ9.js → TextInput-BqW5YX-3.js} +1 -1
  20. package/dist/{TextInput-Bn8zsDnU.cjs → TextInput-CY1fh4mf.cjs} +1 -1
  21. package/dist/components/Actions/Action.d.ts +18 -0
  22. package/dist/components/Actions/Actions.d.ts +14 -0
  23. package/dist/components/Actions/Actions.stories.d.ts +20 -0
  24. package/dist/components/Actions/Actions.test.d.ts +1 -0
  25. package/dist/components/Actions/ActionsDropdown.d.ts +10 -0
  26. package/dist/components/Actions/ActionsDropdown.stories.d.ts +17 -0
  27. package/dist/components/Actions/ActionsDropdown.test.d.ts +1 -0
  28. package/dist/components/Actions/index.d.ts +4 -0
  29. package/dist/components/Actions/types.d.ts +17 -0
  30. package/dist/components/Form/TextInput/TextInput.stories.d.ts +1 -0
  31. package/dist/components/SvgIcons/Ellipsis.d.ts +7 -0
  32. package/dist/components/SvgIcons/index.d.ts +1 -0
  33. package/dist/components/Table/Table.stories.d.ts +1 -0
  34. package/dist/components/Table/types.d.ts +1 -0
  35. package/dist/components/index.d.ts +1 -0
  36. package/dist/index.cjs +1 -1
  37. package/dist/index.css +1 -1
  38. package/dist/index.js +69 -65
  39. package/dist/setupTests.d.ts +0 -0
  40. package/package.json +5 -2
  41. package/dist/Table-CH9HYQ2I.js +0 -946
  42. package/dist/Table-CWss4TW5.cjs +0 -1
@@ -0,0 +1 @@
1
+ var Ee=require("./Table.css");const e=require("react/jsx-runtime"),o=require("react"),w=require("./FiltersProvider-CYqLFEI9.cjs"),xe=require("./Badge-Z78MlGoQ.cjs"),B=require("./Filters-Dyee8QYH.cjs"),z=require("./lib.cjs"),A=require("./TranslationProvider-51Pc9Xrr.cjs"),$=require("./TextInput-CY1fh4mf.cjs"),_=require("./TableOptionsProvider-BchUDA3B.cjs"),J=require("./Chip-D17UJHW6.cjs"),L=require("./IconButton-CVnmT2E9.cjs"),G=require("./Tooltip-BSKAgRkc.cjs"),be=require("./query-81BrXp3i.cjs"),fe=require("./Button-BlYa3uPc.cjs"),je=require("./Dropdown-CAxauIXt.cjs"),ge=require("./Loading-CNECRan-.cjs");function K(s){const{id:t,icon:r,tooltip:n,onClick:l,children:a,hidden:p=!1,disabled:i=!1,showText:d=!1,showTooltips:c=!0,className:h=""}=s;return p?null:e.jsxs("button",{id:t,className:`action ${d?"text-action":"icon-action"} ${h}`,disabled:i,onClick:()=>l?.(),"aria-disabled":i,"data-tooltip-id":"tooltip","data-tooltip-content":c?n:"",children:[r," ",d&&n,a]})}function Q(s){const{actions:t=[],className:r="",itemClassName:n="",actionClassName:l="",showTooltips:a=!0,showActionTexts:p=!1}=s;return e.jsx("ul",{className:`actions-container ${r}`,children:t.map(i=>e.jsx("li",{className:`actions-container-item ${n}`,children:e.jsx(K,{showTooltips:a,showText:p,className:l,...i})},i.id))})}const Y=s=>{const{actions:t=[],className:r=""}=s,{t:n}=A.useTranslation(),[l,a]=o.useState(!1),[p,i]=o.useState(null);return e.jsxs("div",{className:`actions-dropdown ${r}`,children:[e.jsx(L.IconButton,{icon:e.jsx(B.Ellipsis,{}),onClick:d=>{i(d.currentTarget),a(c=>!c)},className:"actions-dropdown-trigger","data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),e.jsx(je.Dropdown,{open:l,onClose:()=>a(!1),anchorEl:p,children:e.jsx(Q,{showActionTexts:!0,actions:t,itemClassName:"w-full",actionClassName:"action-dropdown-item",className:"actions-dropdown-list",showTooltips:!1})})]})};function Z(s){return[...s].sort((t,r)=>(r.pos??0)-(t.pos??0)).filter(t=>t.display!=="none")}function ee(s){const{t}=A.useTranslation(),{entity:r="",columns:n=[],hasAction:l=!0,onSortCallback:a,selectionState:p,onToggleAllRows:i}=s,d=o.useRef(null);o.useEffect(()=>{d.current&&(d.current.indeterminate=!!(p?.hasSomeSelected&&!p?.allSelected))},[p]);const{onSort:c,sortingOrder:h,sortingBy:x}=_.useTableOptions(),b=o.useMemo(()=>Z(n).map(u=>({id:u.key,label:u.label,className:u.className??"",sortable:u.sortable??!0,sortOptions:u.sortOptions})),[n,r,t]);return e.jsx("thead",{className:"table-headers-row",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"table-headers-column table-headers-checkbox",children:i?e.jsx("input",{type:"checkbox",ref:d,checked:p?.allSelected??!1,onChange:i,"aria-label":t("_accessibility:components.table.selectAllRows")}):null}),l&&e.jsx("th",{scope:"col",className:"table-headers-action",children:e.jsx("span",{children:t("_accessibility:labels.actions")})}),b.map(u=>e.jsx("th",{scope:"col",className:`table-headers-column ${u.className}`,children:e.jsxs(fe.Button,{disabled:!u.sortable,onClick:()=>c(u.id,a),className:"table-headers-cell",children:[e.jsx("span",{className:"table-headers-label",children:u.label}),u.sortable&&x===u.id&&e.jsx("span",{children:h===be.SortOrder.ASC?u.sortOptions?.icons?.asc??e.jsx(B.ChevronUp,{className:u.sortOptions?.icons?.className??"table-headers-sort-indicator"}):u.sortOptions?.icons?.desc??e.jsx(B.ChevronDown,{className:u.sortOptions?.icons?.className??"table-headers-sort-indicator"})})]})},u.id))]})})}const te=s=>{const{items:t,text:r,id:n,onClearFilter:l}=s;return e.jsx(J.Chip,{text:`${r}: ${t.map(a=>a.value??a.name).join(", ")}`,onDelete:()=>l(n)})},se=s=>{const{end:t,start:r,text:n,id:l,onClearFilter:a}=s;return e.jsx(J.Chip,{text:`${n}: ${r||"♾️"} - ${t||"♾️"}`,onDelete:()=>a(l)})},ne=s=>{const{filtersDefinition:t}=s,r=o.useMemo(()=>{const i={};return t.forEach(d=>{i[d.propertyName]=d.label??d.propertyName}),i},[t]),{filters:n,clearFilters:l}=_.useTableOptions(),a=o.useMemo(()=>Object.keys(n),[n]),p=o.useCallback(i=>n[i]?.end||n[i]?.start?e.jsx(se,{id:i,text:r[i],start:n[i].start,end:n[i].end,onClearFilter:l}):Array.isArray(n[i])?e.jsx(te,{id:i,text:r[i],items:n[i],onClearFilter:l}):e.jsx(J.Chip,{text:`${r[i]}: ${n[i]?.value??n[i]?.name??n[i]}`,onDelete:()=>l(i)}),[n,r]);return e.jsx("ul",{className:"active-filters-main",children:a?.map(i=>e.jsx("li",{children:p(i)},i))})};function Ce(s){const{propertyName:t,label:r,placeholder:n,options:l,multiple:a=!0}=s,{currentFilters:p,setCurrentFilters:i}=w.useFilters(),d=o.useMemo(()=>p[t]??l[0],[p]),c=o.useCallback(h=>{i({type:w.FiltersActions.update,toUpdate:{[t]:{value:h}}})},[a]);return e.jsx($.AutocompleteInput,{value:d?.value,label:r,options:l,multiple:a,helperTextClassName:"hidden",containerClassName:"options-widget-container",onChange:c,placeholder:n})}const Ne=s=>{const{propertyName:t,label:r}=s,{currentFilters:n,setCurrentFilters:l}=w.useFilters(),a=o.useMemo(()=>n[t]?.value??"",[n]),p=o.useCallback(i=>{l({type:w.FiltersActions.update,toUpdate:{[t]:{value:i.target.checked}}})},[]);return e.jsx($.CheckInput,{label:r,checked:a??!1,onChange:p})};function Te(s){const{propertyName:t,options:r,label:n,placeholder:l}=s,{currentFilters:a,setCurrentFilters:p}=w.useFilters(),i=o.useMemo(()=>a[t]?.value??r[0],[a]),d=o.useCallback(c=>{p({type:w.FiltersActions.update,toUpdate:{[t]:{value:c.target.value}}})},[]);return e.jsx($.SelectInput,{value:i,label:n,options:r,helperTextClassName:"hidden",containerClassName:"options-widget-container",onChange:d,placeholder:l})}const ve=s=>{const{propertyName:t,label:r,placeholder:n}=s,{currentFilters:l,setCurrentFilters:a}=w.useFilters(),p=o.useMemo(()=>l[t]?.value??"",[l]),i=o.useCallback(d=>{a({type:w.FiltersActions.update,toUpdate:{[t]:{value:d.target.value}}})},[]);return e.jsx($.TextInput,{value:p??"",label:r,onChange:i,containerClassName:"input-widget-container",helperTextClassName:"",placeholder:n})},X=s=>{const{propertyName:t,label:r,inputType:n}=s,{t:l}=A.useTranslation(),{currentFilters:a,setCurrentFilters:p}=w.useFilters(),i=o.useRef(null),d=o.useRef(null),c=o.useCallback(x=>{p({type:w.FiltersActions.update,toUpdate:{[t]:{value:{end:d?.current?.value??null,start:x.target.value}}}})},[]),h=o.useCallback(x=>{p({type:w.FiltersActions.update,toUpdate:{[t]:{value:{start:i?.current?.value??null,end:x.target.value}}}})},[]);return e.jsxs("div",{className:"range-widget-container",children:[e.jsx("p",{className:"text-input-label input-widget-label input-label-normal",children:r}),e.jsxs("div",{className:"range-widget-row",children:[e.jsx($.TextInput,{value:a[t]?.value?.start??"",placeholder:l("_accessibility:components.table.filters.range.start"),type:n,ref:i,onChange:c,containerClassName:"input-widget-container",helperTextClassName:""}),e.jsx($.TextInput,{value:a[t]?.value?.end??"",placeholder:l("_accessibility:components.table.filters.range.end"),type:n,ref:d,onChange:h,containerClassName:"input-widget-container",helperTextClassName:""})]})]})},le=s=>{switch(s.type){case z.FilterTypes.text:return e.jsx(ve,{...s});case z.FilterTypes.number:return e.jsx(X,{...s,inputType:"number"});case z.FilterTypes.date:return e.jsx(X,{...s,inputType:"date"});case z.FilterTypes.select:return e.jsx(Te,{...s});case z.FilterTypes.autocomplete:return e.jsx(Ce,{...s});case z.FilterTypes.check:return e.jsx(Ne,{...s})}return e.jsx(e.Fragment,{})},ae=s=>{const{filters:t=[],show:r,handleShow:n}=s,{onFilterApply:l}=_.useTableOptions(),{currentFilters:a,setCurrentFilters:p}=w.useFilters(),{t:i}=A.useTranslation(),d=o.useRef(null);return o.useEffect(()=>{const c=({target:x})=>{d.current&&(x?.closest(".filter-dropdown-trigger")||!r||d.current.contains(x)||n(!1))},h=({code:x})=>{!r||x!=="Escape"||n(!1)};return document.addEventListener("click",c),document.addEventListener("keydown",h),()=>{document.removeEventListener("click",c),document.removeEventListener("keydown",h)}},[n,r]),e.jsx("div",{className:`filter-dropdown-backdrop ${r?"opened":"closed"}`,children:e.jsxs("div",{className:"filter-popup",ref:d,children:[e.jsx("div",{className:"filter-title",children:i("_accessibility:buttons.filters")}),e.jsx("ul",{className:"filter-container",children:t.map(c=>e.jsx("li",{className:"filter-container-item",children:le(c)},c.propertyName))}),e.jsx("div",{className:"filter-footer",children:e.jsxs("ul",{className:"filter-buttons-row",children:[e.jsx("li",{children:e.jsx("button",{onClick:()=>p({type:w.FiltersActions.reset,filters:t}),className:"filter-dropdown-button small filter-dropdown-cancel",children:i("_accessibility:buttons.clear")})}),e.jsx("li",{children:e.jsx("button",{className:"filter-dropdown-button small filter-dropdown-submit",onClick:()=>{n(!1),l(a)},children:i("_accessibility:buttons.applyFilters")})})]})})]})})},re=()=>{const{t:s}=A.useTranslation(),{total:t,pageSize:r,pageSizes:n,currentPage:l}=_.useTableOptions(),a=(l+1)*r>t?t:(l+1)*r;return e.jsxs("div",{className:"table-navigation-sizes",children:[n[0]<t&&e.jsx(e.Fragment,{children:e.jsxs("p",{children:[l*r+1," - ",a," ",s("_accessibility:components.table.of")]})}),e.jsx("p",{children:t})]})};function we(){const{t:s}=A.useTranslation(),{total:t,pageSize:r,currentPage:n,setCurrentPage:l}=_.useTableOptions(),a=o.useMemo(()=>{const p=Math.ceil(t/r);return Array.from({length:p},(i,d)=>({id:d,value:d+1}))},[t,r]);return e.jsxs("div",{className:"jump-to-page",children:[e.jsx("p",{children:s("_accessibility:components.table.jumpToPage")}),e.jsx($.SelectInput,{value:n,options:a,inputClassName:"jump-to-page-input",containerClassName:"jump-to-page-input-container",helperTextClassName:"hidden",onChange:p=>l(Number(p.target.value))})]})}const ie=()=>{const{t:s}=A.useTranslation(),{total:t,pageSize:r,currentPage:n,setCurrentPage:l}=_.useTableOptions();return e.jsxs("div",{className:"table-navigation-pages",children:[e.jsx(L.IconButton,{icon:e.jsx(B.ChevronLeft,{className:"table-navigation-icon"}),className:"table-navigation-buttons",disabled:n===0,"aria-label":s("_accessibility:buttons.previous"),name:s("_accessibility:buttons.previous"),onClick:()=>l(n-1)}),e.jsx(L.IconButton,{icon:e.jsx(B.ChevronRight,{className:"table-navigation-icon"}),disabled:Math.floor(t/((n+1)*r))===0,className:"table-navigation-buttons",name:s("_accessibility:buttons.next"),"aria-label":s("_accessibility:buttons.next"),onClick:()=>l(n+1)})]})};function oe(){const{t:s}=A.useTranslation(),{pageSizes:t,pageSize:r,setPageSize:n}=_.useTableOptions(),l=o.useMemo(()=>t?.map(a=>({id:a,value:a})),[t]);return e.jsxs("div",{className:"page-size",children:[e.jsx("p",{children:s("_accessibility:components.table.pageSizes")}),e.jsx($.SelectInput,{value:r,options:l,inputClassName:"page-size-input",containerClassName:"page-size-input-container",helperTextClassName:"hidden",onChange:a=>n(Number(a.target.value))})]})}function ce(){return e.jsxs("div",{className:"table-footer",children:[e.jsx(we,{}),e.jsx(oe,{}),e.jsx(re,{}),e.jsx(ie,{})]})}const ye=s=>s,ue=s=>{const{t}=A.useTranslation(),{columns:r,softDeleteProperty:n="deletedAt",data:l,actions:a,selectedRows:p,expandedRows:i=[],onRowSelectionChange:d,onRowExpand:c}=s,h=o.useMemo(()=>Z(r),[r]),x=o.useMemo(()=>new Map(i.map(b=>[b.rowId,b])),[i]);return l?.map(b=>{const u=p.has(b.id),T=x.get(b.id),S=!!T,P=h.length+1+(a?1:0);return e.jsxs(o.Fragment,{children:[e.jsxs("tr",{className:`table-row ${c?"expandable":""} ${b[n]?"deleted-class":""} ${u?"selected":""} ${S?"expanded":""}`,onClick:()=>c?.(b),children:[e.jsx("td",{className:"table-row-cell table-row-checkbox",children:e.jsx("input",{type:"checkbox",checked:u,onClick:C=>C.stopPropagation(),onChange:()=>d(b),"aria-label":t("_accessibility:components.table.selectRow")})}),a?e.jsx("td",{className:"w-px",children:e.jsx("div",{className:"table-row-cell-action",children:(()=>{const C=a(b).filter(j=>!j.hidden),O=C.filter(j=>j.sticky),k=C.filter(j=>!j.sticky);return e.jsxs(e.Fragment,{children:[O.map(j=>e.jsx(G.Tooltip,{content:j.tooltip,children:e.jsx(L.IconButton,{icon:j.icon,className:"row-table-action",onClick:E=>{E.stopPropagation(),j.onClick(b)}})},j.id)),k.length>0&&e.jsx(Y,{actions:k})]})})()})}):null,h?.map((C,O)=>e.jsx("td",{className:`table-row-cell ${O===0?"basic":""} ${C.className??""}`,children:C.renderBody?C.renderBody(b[C.key],b):ye(b[C.key])},C.key))]}),S&&T?.content!==null&&typeof T?.content<"u"&&e.jsx("tr",{className:"table-row-expanded",children:e.jsx("td",{className:"table-row-expanded-cell",colSpan:P,children:e.jsx("div",{className:`table-row-expanded-content ${T.isVisible?"open":"closed"}`,children:e.jsx("div",{className:"table-row-expanded-inner",children:T.content})})})})]},b.id)})};function de(){const{t:s}=A.useTranslation();return e.jsx("div",{className:"table-empty",children:e.jsx("p",{children:s("_accessibility:components.table.empty")})})}const pe=s=>{const{columns:t,title:r,isLoading:n,toolbar:l,filterOptions:a}=s,{countOfFilters:p}=_.useTableOptions(),{t:i}=A.useTranslation(),d=o.useMemo(()=>t?t.sort((u,T)=>(T.pos??0)-(u.pos??0)).filter(u=>!!u.filterOptions).map(u=>({...u.filterOptions,label:u.filterOptions?.label??u.label,propertyName:u.key})):[],[t]),[c,h]=o.useState(!1),x=o.useCallback(u=>{a?.dropdown?.setOpened?a.dropdown.setOpened(u??!1):h(u??!1)},[a]),b=o.useMemo(()=>a?.dropdown?.opened??c,[a,c]);return e.jsxs("div",{className:`table-header ${b?"showing-filters":""}`,children:[e.jsxs("div",{children:[r&&e.jsx("h1",{className:"table-header-title",children:r}),n?null:e.jsxs("div",{className:"table-header-content",children:[l,a?.button?.hide!==!0&&e.jsxs(L.IconButton,{icon:a?.button?.icon??e.jsx(B.Filters,{className:"filter-dropdown-trigger-icon"}),className:"filter-dropdown-button normal filter-dropdown-trigger","aria-haspopup":"true",onClick:()=>x(!b),"aria-expanded":b,children:[e.jsx(xe.Badge,{count:p,className:`${p>0?"show":"hide"} `}),e.jsx("span",{className:"table-header-sr",children:i("_accessibility:buttons.filters")}),e.jsx("wbr",{})]})]})]}),!!d&&!!d.length&&e.jsx(ae,{filters:d,show:b,handleShow:x,options:a}),e.jsx(ne,{filtersDefinition:d})]})};function me({count:s,multiActions:t,onActionClick:r}){const{t:n}=A.useTranslation();return e.jsxs("div",{className:"table-selection-bar",children:[e.jsx("p",{className:"table-selection-bar-count",children:n("_accessibility:components.table.selectedCount",{count:s})}),t.length>0&&e.jsx("div",{className:"table-selection-bar-actions",children:t.map(l=>e.jsx(G.Tooltip,{content:l.tooltip,children:e.jsx(L.IconButton,{icon:l.icon,className:"multi-table-action",onClick:()=>r(l),disabled:l.disabled})},l.id))})]})}const H=220;function Se({data:s,allowMultipleExpandedRows:t,controlledExpandedRowId:r,onExpandedRowChange:n,onRowExpand:l,findRowById:a}){const[p,i]=o.useState(null),[d,c]=o.useState(null),[h,x]=o.useState(null),[b,u]=o.useState(null),[T,S]=o.useState(!1),[P,C]=o.useState(new Set),[O,k]=o.useState([]),j=o.useRef(null),E=o.useRef(null),I=o.useRef(new Map),F=typeof r<"u",R=t&&!F,N=F?r??null:p,D=o.useCallback(()=>{E.current&&(clearTimeout(E.current),E.current=null)},[]),y=o.useCallback(m=>{if(typeof m<"u"){const f=I.current.get(m);if(!f)return;clearTimeout(f),I.current.delete(m);return}I.current.forEach(f=>clearTimeout(f)),I.current.clear()},[]),V=o.useCallback(m=>{y(m),k(f=>f.some(v=>v.rowId===m)?f.map(v=>v.rowId===m?{...v,isVisible:!1}:v):f),I.current.set(m,setTimeout(()=>{k(f=>f.filter(g=>g.rowId!==m)),I.current.delete(m)},H))},[y]),W=o.useCallback((m,f)=>{y(m),k(g=>g.some(M=>M.rowId===m)?g.map(M=>M.rowId===m?{...M,content:f,isVisible:!1}:M):[...g,{rowId:m,content:f,isVisible:!1}]),requestAnimationFrame(()=>{k(g=>g.map(v=>v.rowId===m?{...v,isVisible:!0}:v))})},[y]);o.useEffect(()=>{if(!R)return;const m=new Set(s.map(f=>f.id));C(f=>{const g=new Set;return f.forEach(v=>{if(m.has(v)){g.add(v);return}y(v)}),g}),k(f=>(f.forEach(g=>{m.has(g.rowId)||y(g.rowId)}),f.filter(g=>m.has(g.rowId))))},[s,R,y]),o.useEffect(()=>{if(R)return;if(N===null){c(null),F&&(j.current=null);return}a(N)||(F||i(null),c(null),F&&(j.current=null))},[s,N,a,F,R]),o.useEffect(()=>{if(!R){if(D(),N===null||d===null){if(h===null){S(!1),u(null);return}S(!1),E.current=setTimeout(()=>{x(null),u(null),E.current=null},H);return}if(h===null){x(N),u(d),requestAnimationFrame(()=>S(!0));return}if(h===N){u(d),requestAnimationFrame(()=>S(!0));return}S(!1),E.current=setTimeout(()=>{x(N),u(d),requestAnimationFrame(()=>S(!0)),E.current=null},H)}},[D,d,N,R,h]),o.useEffect(()=>()=>{D(),y()},[D,y]),o.useEffect(()=>{if(!F)return;if(N===null){c(null),j.current=null;return}const m=a(N);if(!m){c(null),j.current=null;return}const f=j.current;c(l?.(m,f)??null),j.current=m},[N,a,F,l]);const he=o.useCallback(m=>{if(R){if(P.has(m.id)){C(U=>{const q=new Set(U);return q.delete(m.id),q}),V(m.id),n?.(null,m);return}C(U=>{const q=new Set(U);return q.add(m.id),q});const M=l?.(m,null)??null;M!==null&&typeof M<"u"?W(m.id,M):(y(m.id),k(U=>U.filter(q=>q.rowId!==m.id))),n?.(m,null);return}const f=N===m.id,g=f?m:a(N);if(F){n?.(f?null:m,g);return}if(f){i(null),c(null),n?.(null,m);return}i(m.id),c(l?.(m,g)??null),n?.(m,g)},[N,V,y,W,a,P,F,R,n,l]);return{expandedRowsToRender:o.useMemo(()=>R?O:h===null||b===null||typeof b>"u"?[]:[{rowId:h,content:b,isVisible:T}],[T,R,b,h,O]),onRowExpandChange:he}}function Fe({actions:s,selectedRowsData:t}){const r=o.useMemo(()=>!s||!t.length?[]:t.reduce((l,a,p)=>{const i=s(a).filter(c=>c.multiple&&!c.hidden);if(p===0)return i;const d=new Map(l.map(c=>[c.id,c]));return i.reduce((c,h)=>{const x=d.get(h.id);return x&&c.push({...x,...h,disabled:h.disabled||x.disabled}),c},[])},[]),[s,t]),n=o.useCallback(l=>{if(t.length){if(l.onMultipleClick){l.onMultipleClick(t);return}t.forEach(a=>l.onClick(a))}},[t]);return{multiActions:r,handleMultipleActionClick:n}}function Re({data:s,onRowSelect:t,onSelectedRowsChange:r}){const[n,l]=o.useState(new Set),a=o.useMemo(()=>s?.filter(c=>n.has(c.id))??[],[s,n]);o.useEffect(()=>{if(!s?.length){l(new Set);return}l(c=>{const h=new Set,x=new Set(s.map(b=>b.id));return c.forEach(b=>{x.has(b)&&h.add(b)}),h})},[s]),o.useEffect(()=>{r&&r(a)},[a,r]);const p=o.useCallback(c=>{l(h=>{const x=new Set(h);return x.has(c.id)?(x.delete(c.id),t?.(c,!1)):(x.add(c.id),t?.(c,!0)),x})},[t]),i=o.useCallback(()=>{l(c=>{const h=new Set(c),x=s??[],b=x.every(u=>h.has(u.id));return x.forEach(u=>{const T=h.has(u.id);b?T&&(h.delete(u.id),t?.(u,!1)):T||(h.add(u.id),t?.(u,!0))}),h})},[s,t]),d=o.useMemo(()=>{if(!s?.length)return{allSelected:!1,hasSomeSelected:!1};const c=s.every(x=>n.has(x.id)),h=s.some(x=>n.has(x.id));return{allSelected:c,hasSomeSelected:h}},[s,n]);return{selectedRows:n,selectedRowsData:a,selectionState:d,onRowSelectionChange:p,onToggleAllRows:i}}function Ae(s){const{data:t,onSort:r,entity:n="",isLoading:l=!1,actions:a,columns:p=[],contentClassName:i="",className:d="",softDeleteProperty:c="deletedAt",onRowSelect:h,onSelectedRowsChange:x,allowMultipleExpandedRows:b=!1,expandedRowId:u,onExpandedRowChange:T,onRowExpand:S,...P}=s,C=o.useMemo(()=>!t?.length,[t]),O=o.useCallback(V=>V===null?null:t.find(W=>W.id===V)??null,[t]),{selectedRows:k,selectedRowsData:j,selectionState:E,onRowSelectionChange:I,onToggleAllRows:F}=Re({data:t,onRowSelect:h,onSelectedRowsChange:x}),{expandedRowsToRender:R,onRowExpandChange:N}=Se({data:t,allowMultipleExpandedRows:b,controlledExpandedRowId:u,onExpandedRowChange:T,onRowExpand:S,findRowById:O}),{multiActions:D,handleMultipleActionClick:y}=Fe({actions:a,selectedRowsData:j});return e.jsx(w.FiltersProvider,{children:e.jsxs("div",{className:`${d} table-main`,children:[e.jsx(pe,{columns:p,isLoading:l,...P}),l?e.jsx(ge.Loading,{className:"table-loading"}):e.jsx(e.Fragment,{children:C?e.jsx(de,{}):e.jsxs(e.Fragment,{children:[!!j.length&&e.jsx(me,{count:j.length,multiActions:D,onActionClick:y}),e.jsx("div",{className:`${i} table-body`,children:e.jsxs("table",{className:"table-content",children:[e.jsx(ee,{entity:n,columns:p,onSortCallback:r,hasAction:!!a,selectionState:E,onToggleAllRows:F}),e.jsx("tbody",{children:e.jsx(ue,{data:t,actions:a,columns:p,softDeleteProperty:c,selectedRows:k,expandedRows:R,onRowSelectionChange:I,onRowExpand:S?N:void 0})})]})}),e.jsx(ce,{})]})})]})})}exports.Action=K;exports.Actions=Q;exports.ActionsDropdown=Y;exports.ActiveFilters=ne;exports.ArrayChip=te;exports.Columns=ee;exports.CountOfTotal=re;exports.FilterDropdown=ae;exports.Footer=ce;exports.Navigation=ie;exports.PageSize=oe;exports.RangeChip=se;exports.Rows=ue;exports.Table=Ae;exports.TableEmpty=de;exports.TableHeader=pe;exports.TableSelectionBar=me;exports.renderFilterComponent=le;
package/dist/Table.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Table-CWss4TW5.cjs");exports.ActiveFilters=e.ActiveFilters;exports.ArrayChip=e.ArrayChip;exports.Columns=e.Columns;exports.CountOfTotal=e.CountOfTotal;exports.FilterDropdown=e.FilterDropdown;exports.Footer=e.Footer;exports.Navigation=e.Navigation;exports.PageSize=e.PageSize;exports.RangeChip=e.RangeChip;exports.Rows=e.Rows;exports.Table=e.Table;exports.TableEmpty=e.TableEmpty;exports.TableHeader=e.TableHeader;exports.TableSelectionBar=e.TableSelectionBar;exports.renderFilterComponent=e.renderFilterComponent;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Table-DjIhOMXQ.cjs");exports.ActiveFilters=e.ActiveFilters;exports.ArrayChip=e.ArrayChip;exports.Columns=e.Columns;exports.CountOfTotal=e.CountOfTotal;exports.FilterDropdown=e.FilterDropdown;exports.Footer=e.Footer;exports.Navigation=e.Navigation;exports.PageSize=e.PageSize;exports.RangeChip=e.RangeChip;exports.Rows=e.Rows;exports.Table=e.Table;exports.TableEmpty=e.TableEmpty;exports.TableHeader=e.TableHeader;exports.TableSelectionBar=e.TableSelectionBar;exports.renderFilterComponent=e.renderFilterComponent;
package/dist/Table.css CHANGED
@@ -1 +1 @@
1
- .active-filters-main{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}@layer properties{@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{--tw-font-weight:initial;--tw-border-style:solid}}}.filter-dropdown-button{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.filter-dropdown-button.normal{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.filter-dropdown-button.small{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5)}.filter-dropdown-trigger-icon{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4);fill:currentColor}.filter-dropdown-backdrop{width:100%;transition:grid-template-rows .5s;display:grid;overflow:hidden}.filter-dropdown-backdrop.opened{grid-template-rows:1fr}.filter-dropdown-backdrop.closed{grid-template-rows:0fr}.filter-popup{min-height:0;overflow:auto}.filter-title{margin-bottom:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 1.5);padding-bottom:calc(var(--spacing,.25rem) * 2);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);text-transform:uppercase}.filter-container{margin-bottom:calc(var(--spacing,.25rem) * 4);column-gap:calc(var(--spacing,.25rem) * 6);row-gap:calc(var(--spacing,.25rem) * 8);padding:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.filter-container-item{align-items:center;display:flex}.filter-footer{border-top-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);border-top-width:1px}.filter-buttons-row{justify-content:space-between;align-items:center;display:flex}@layer properties{@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{--tw-font-weight:initial;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-duration:initial;--tw-border-style:solid}}}.table-main{height:100%;min-height:calc(var(--spacing,.25rem) * 0);flex-direction:column;width:100%;display:flex}.table-header{gap:calc(var(--spacing,.25rem) * 2);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.table-header.showing-filters{margin-bottom:calc(var(--spacing,.25rem) * 5)}.table-header-content{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 2);justify-self:flex-end;width:100%;display:flex}.table-header-title{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:48rem){.table-header-title{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ))}}.table-body{min-height:calc(var(--spacing,.25rem) * 0);flex:1;width:100%;overflow:auto}.table-content{border-collapse:separate;--tw-border-spacing-x:calc(var(--spacing,.25rem) * 0);--tw-border-spacing-y:calc(var(--spacing,.25rem) * 0);width:100%;height:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);text-align:left;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.table-loading{top:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);width:100%;height:100%}.table-row-cell{padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.table-row-cell.basic{white-space:nowrap}.table-row-cell-action{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);width:100%;display:flex}.table-row{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.15s;transition-duration:.15s}.table-row.expandable{cursor:pointer}@media(hover:hover){.table-row.expandable:hover{background-color:var(--color-base,#f2f2f2)}}.table-row.selected,.table-row.expanded{background-color:var(--color-base,#f2f2f2)}.table-row-checkbox{width:calc(var(--spacing,.25rem) * 12);padding-inline:calc(var(--spacing,.25rem) * 3);text-align:center}.table-row-checkbox input{cursor:pointer}.table-row-expanded-cell{border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);background-color:#0000;border-width:0}.table-row-expanded-content{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .22s;display:grid}.table-row-expanded-content.open{opacity:1;grid-template-rows:1fr}.table-row-expanded-content.closed{opacity:0;grid-template-rows:0fr}.table-row-expanded-inner{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 4);overflow:hidden}.table-selection-bar{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 4);background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);color:var(--color-text,#0d0d0d);border-radius:.25rem;display:flex}.table-selection-bar-count{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.table-selection-bar-actions{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.multi-table-action{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);justify-content:center;align-items:center;display:flex}.multi-table-action:disabled{cursor:not-allowed;opacity:.5}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@property --tw-duration{syntax:"*";inherits:false}@layer properties{@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{--tw-font-weight:initial;--tw-border-style:solid}}}.jump-to-page,.page-size{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.jump-to-page-input,.page-size-input{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);--tw-border-style:none!important;padding-block:calc(var(--spacing,.25rem) * 0)!important;padding-right:calc(var(--spacing,.25rem) * 7)!important;padding-left:calc(var(--spacing,.25rem) * 2)!important;border-style:none!important}.jump-to-page-input-container,.page-size-input-container{margin-bottom:calc(var(--spacing,.25rem) * 0)!important;--tw-border-style:none!important;border-style:none!important;width:auto!important}.table-headers-column{top:calc(var(--spacing,.25rem) * 0);z-index:20;background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);position:sticky}.table-headers-checkbox{width:calc(var(--spacing,.25rem) * 12);text-align:center}.table-headers-checkbox input{cursor:pointer}.table-headers-label{white-space:nowrap}.table-headers-sort-indicator{width:calc(var(--spacing,.25rem) * 3)}.table-headers-action{padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 3);text-align:center}.table-empty{border-top-style:var(--tw-border-style);width:100%;padding-block:calc(var(--spacing,.25rem) * 2);border-top-width:1px;justify-content:center;align-items:center;display:flex}.table-footer{margin-top:calc(var(--spacing,.25rem) * 5);justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 5);width:100%;padding-inline:calc(var(--spacing,.25rem) * 5);display:flex}.table-navigation-sizes{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 1);display:flex}.table-navigation-pages{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 5);display:flex}.table-navigation-icon{width:calc(var(--spacing,.25rem) * 2.5)}.table-header-sr{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@layer properties{@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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}.options-widget-container{margin-bottom:calc(var(--spacing,.25rem) * 0);padding-bottom:calc(var(--spacing,.25rem) * 2)}.input-widget-container{margin-bottom:calc(var(--spacing,.25rem) * 0);width:100%}.input-widget-label{top:calc(var(--spacing,.25rem) * 0);--tw-translate-y:calc(var(--spacing,.25rem) * -4);translate:var(--tw-translate-x) var(--tw-translate-y);--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.range-widget-row{align-items:center;gap:calc(var(--spacing,.25rem) * 6);display:flex}.range-widget-container{width:100%;position:relative}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
1
+ .actions-container{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 1);width:100%;display:flex}.actions-dropdown .action{width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);justify-content:flex-start}.actions-dropdown .actions-container li{width:100%}.action{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 2);background-color:var(--color-base,#f2f2f2);color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:flex}@media(hover:hover){.action:hover{background-color:var(--color-base-light,#fff)}}.icon-action{height:calc(var(--spacing,.25rem) * 9);width:calc(var(--spacing,.25rem) * 9);border-radius:3.40282e38px}.text-action{border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}.actions-dropdown-list{flex-direction:column}.action-dropdown-item{justify-content:flex-start;width:100%}.actions-dropdown-trigger svg{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5)}.active-filters-main{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}@layer properties{@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{--tw-font-weight:initial;--tw-border-style:solid}}}.filter-dropdown-button{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.filter-dropdown-button.normal{padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.filter-dropdown-button.small{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5)}.filter-dropdown-trigger-icon{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4);fill:currentColor}.filter-dropdown-backdrop{width:100%;transition:grid-template-rows .5s;display:grid;overflow:hidden}.filter-dropdown-backdrop.opened{grid-template-rows:1fr}.filter-dropdown-backdrop.closed{grid-template-rows:0fr}.filter-popup{min-height:0;overflow:auto}.filter-title{margin-bottom:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 1.5);padding-bottom:calc(var(--spacing,.25rem) * 2);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);text-transform:uppercase}.filter-container{margin-bottom:calc(var(--spacing,.25rem) * 4);column-gap:calc(var(--spacing,.25rem) * 6);row-gap:calc(var(--spacing,.25rem) * 8);padding:calc(var(--spacing,.25rem) * 3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.filter-container-item{align-items:center;display:flex}.filter-footer{border-top-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);border-top-width:1px}.filter-buttons-row{justify-content:space-between;align-items:center;display:flex}@layer properties{@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{--tw-font-weight:initial;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-duration:initial;--tw-border-style:solid}}}.table-main{height:100%;min-height:calc(var(--spacing,.25rem) * 0);flex-direction:column;width:100%;display:flex}.table-header{gap:calc(var(--spacing,.25rem) * 2);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.table-header.showing-filters{margin-bottom:calc(var(--spacing,.25rem) * 5)}.table-header-content{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 2);justify-self:flex-end;width:100%;display:flex}.table-header-title{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:48rem){.table-header-title{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ))}}.table-body{min-height:calc(var(--spacing,.25rem) * 0);flex:1;width:100%;overflow:auto}.table-content{border-collapse:separate;--tw-border-spacing-x:calc(var(--spacing,.25rem) * 0);--tw-border-spacing-y:calc(var(--spacing,.25rem) * 0);width:100%;height:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);text-align:left;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.table-loading{top:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);width:100%;height:100%}.table-row-cell{padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}.table-row-cell.basic{white-space:nowrap}.table-row-cell-action{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}.table-row{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.15s;transition-duration:.15s}.table-row.expandable{cursor:pointer}@media(hover:hover){.table-row.expandable:hover{background-color:var(--color-base,#f2f2f2)}}.table-row.selected,.table-row.expanded{background-color:var(--color-base,#f2f2f2)}.table-row-checkbox{width:calc(var(--spacing,.25rem) * 12);padding-inline:calc(var(--spacing,.25rem) * 3);text-align:center}.table-row-checkbox input{cursor:pointer}.table-row-expanded-cell{border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 0);background-color:#0000;border-width:0}.table-row-expanded-content{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .22s;display:grid}.table-row-expanded-content.open{opacity:1;grid-template-rows:1fr}.table-row-expanded-content.closed{opacity:0;grid-template-rows:0fr}.table-row-expanded-inner{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 4);overflow:hidden}.table-selection-bar{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 4);background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);color:var(--color-text,#0d0d0d);border-radius:.25rem;display:flex}.table-selection-bar-count{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.table-selection-bar-actions{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.multi-table-action{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);justify-content:center;align-items:center;display:flex}.multi-table-action:disabled{cursor:not-allowed;opacity:.5}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@property --tw-duration{syntax:"*";inherits:false}@layer properties{@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{--tw-font-weight:initial;--tw-border-style:solid}}}.jump-to-page,.page-size{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.jump-to-page-input,.page-size-input{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);--tw-border-style:none!important;padding-block:calc(var(--spacing,.25rem) * 0)!important;padding-right:calc(var(--spacing,.25rem) * 7)!important;padding-left:calc(var(--spacing,.25rem) * 2)!important;border-style:none!important}.jump-to-page-input-container,.page-size-input-container{margin-bottom:calc(var(--spacing,.25rem) * 0)!important;--tw-border-style:none!important;border-style:none!important;width:auto!important}.table-headers-column{top:calc(var(--spacing,.25rem) * 0);z-index:20;background-color:var(--color-base,#f2f2f2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);position:sticky}.table-headers-checkbox{width:calc(var(--spacing,.25rem) * 12);text-align:center}.table-headers-checkbox input{cursor:pointer}.table-headers-label{white-space:nowrap}.table-headers-sort-indicator{width:calc(var(--spacing,.25rem) * 3)}.table-headers-action{top:calc(var(--spacing,.25rem) * 0);z-index:20;background-color:var(--color-base,#f2f2f2);width:1px;padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 3);text-align:center;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-text,#0d0d0d);white-space:nowrap;position:sticky}.table-empty{border-top-style:var(--tw-border-style);width:100%;padding-block:calc(var(--spacing,.25rem) * 2);border-top-width:1px;justify-content:center;align-items:center;display:flex}.table-footer{margin-top:calc(var(--spacing,.25rem) * 5);justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 5);width:100%;padding-inline:calc(var(--spacing,.25rem) * 5);display:flex}.table-navigation-sizes{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem) * 1);display:flex}.table-navigation-pages{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem) * 5);display:flex}.table-navigation-icon{width:calc(var(--spacing,.25rem) * 2.5)}.table-header-sr{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@layer properties{@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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}.options-widget-container{margin-bottom:calc(var(--spacing,.25rem) * 0);padding-bottom:calc(var(--spacing,.25rem) * 2)}.input-widget-container{margin-bottom:calc(var(--spacing,.25rem) * 0);width:100%}.input-widget-label{top:calc(var(--spacing,.25rem) * 0);--tw-translate-y:calc(var(--spacing,.25rem) * -4);translate:var(--tw-translate-x) var(--tw-translate-y);--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.range-widget-row{align-items:center;gap:calc(var(--spacing,.25rem) * 6);display:flex}.range-widget-container{width:100%;position:relative}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
package/dist/Table.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as s, a as o, C as r, b as t, F as i, c as l, N as n, P as p, R as C, d as T, g as b, T as F, e as d, f as g, r as m } from "./Table-CH9HYQ2I.js";
1
+ import { A as s, a as o, C as r, b as t, F as i, c as l, N as n, P as p, R as C, d as T, g as b, T as F, e as d, f as g, r as m } from "./Table-BtZGG0d7.js";
2
2
  export {
3
3
  s as ActiveFilters,
4
4
  o as ArrayChip,
@@ -1,7 +1,7 @@
1
1
  import "./TextInput.css";
2
2
  import { jsxs as g, jsx as n, Fragment as z } from "react/jsx-runtime";
3
3
  import { forwardRef as S, useState as w, useEffect as R, useMemo as G, useRef as I, useCallback as k, useLayoutEffect as J } from "react";
4
- import { C as E } from "./Chip-JDQqzO9I.js";
4
+ import { C as E } from "./Chip-C5ogKbFn.js";
5
5
  import { I as K } from "./IconButton-BpsTEj0z.js";
6
6
  import { C as Q } from "./Close-rKC9AcNX.js";
7
7
  const le = S(function(a, m) {
@@ -1 +1 @@
1
- var G=require("./TextInput.css");const a=require("react/jsx-runtime"),l=require("react"),k=require("./Chip-a2z-338_.cjs"),M=require("./IconButton-CVnmT2E9.cjs"),O=require("./Close-O9P7wJGf.cjs"),U=l.forwardRef(function(n,p){const{state:m,value:e,onChange:r,options:d=[],name:f="",id:x="",label:u="",containerClassName:C="",inputContainerClassName:i="",helperText:g="",placeholder:j="",multiple:s=!1,...N}=n,[v,c]=l.useState("");l.useEffect(()=>{if(!s&&e&&!Array.isArray(e)){c(String(e.value??e.name??""));return}c("")},[s,e]);const[S,b]=l.useState(!1),$=l.useMemo(()=>d.filter(t=>{const o=String(t.value??t.name).toLowerCase().includes(v?.toLowerCase());return Array.isArray(e)&&e.length?o&&!e.some(h=>h.id===t.id):e&&!Array.isArray(e)?o&&e.id!==t.id:o}),[d,e,v]),y=l.useRef(null),F=l.useRef(null),[P,V]=l.useState(!1),R=l.useRef(null);l.useEffect(()=>{const t=h=>{y.current&&!y.current.contains(h.target)&&b(!1)},o=h=>{h.key==="Escape"&&b(!1)};return document.addEventListener("mousedown",t),document.addEventListener("keydown",o),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",o)}},[]);const W=l.useCallback(t=>{c(t.target.value)},[]),E=l.useCallback(t=>{t?s?(c(""),Array.isArray(e)&&e.length?r([...e,t]):r([t])):(c(String(t.name??t.value??"")),r(t)):r(null),b(!1)},[s,r,e]),L=l.useCallback(t=>{if(!Array.isArray(e)){r(null);return}const o=e.filter((h,H)=>H!==t);o.length?r(o):r(null)},[r,e]),B=l.useCallback(()=>{Array.isArray(e)&&r([e[0]])},[r,e]);return l.useLayoutEffect(()=>{const t=R.current?.offsetWidth??0,o=y.current?.offsetWidth??0;V(t>o*.4)},[e]),a.jsxs("div",{className:`autocomplete-input-container ${C}`,ref:y,children:[a.jsxs("div",{className:"autocomplete-value-input-container",children:[a.jsx(D,{state:m,name:f,id:x,value:v,onChange:W,placeholder:j,helperText:g,onFocus:()=>b(!0),label:u,containerClassName:`autocomplete-text-input ${i}`,ref:p??F,...N,children:!s&&e&&!Array.isArray(e)&&(e.value||e.name)&&a.jsx(M.IconButton,{icon:a.jsx(O.Close,{}),className:"autocomplete-delete-button",onClick:t=>{E(),t.stopPropagation()}})}),s&&Array.isArray(e)&&e.length?a.jsx("ul",{ref:R,className:"autocomplete-value-container",children:P?a.jsxs(a.Fragment,{children:[a.jsx("li",{children:a.jsx(k.Chip,{text:e[0]?.value??e[0]?.name,onDelete:t=>{L(0),t.stopPropagation()}})}),e.length>1&&a.jsx("li",{children:a.jsx(k.Chip,{text:`+${e.length-1}`,onDelete:t=>{B(),t.stopPropagation()}})})]}):e.map((t,o)=>a.jsx("li",{children:a.jsx(k.Chip,{text:String(t.value??t.name),onDelete:h=>{L(o),h.stopPropagation()}})},t.id??t.value??t.name))}):null]}),S&&a.jsx("ul",{className:"autocomplete-suggestions-container",style:{width:y.current?.offsetWidth},children:$.map(t=>a.jsx("li",{className:"autocomplete-suggestion-item",onClick:o=>{E(t),o.stopPropagation()},children:t.value??t.name},t.id??t.value??t.name))})]})}),_=l.forwardRef(function(n,p){const{checked:m,onChange:e,name:r="",id:d="",label:f="",containerClassName:x="",inputClassName:u="",labelClassName:C="",...i}=n;return a.jsxs("label",{className:`input-check-container ${x}`,children:[a.jsx("input",{id:d,ref:p,name:r,type:"checkbox",checked:m,onChange:e,className:`input-check ${u}`,...i}),a.jsx("span",{className:`input-check-label ${C}`,children:f})]})});var A=(n=>(n.error="error",n.good="good",n.default="default",n))(A||{});const w=n=>{switch(n){case"error":return"input-error";case"good":return"input-good";default:return"input-normal"}},I=n=>{switch(n){case"error":return"input-label-error";case"good":return"input-label-good";default:return"input-label-normal"}},T=n=>{switch(n){case"error":return"input-helper-text-error";case"good":return"input-helper-text-good";default:return"input-helper-text-normal"}},z=l.forwardRef(function(n,p){const{value:m,onChange:e,options:r,containerClassName:d="",inputClassName:f="",labelClassName:x="",helperText:u="",helperTextClassName:C="",label:i="",name:g="",id:j="",state:s=A.default,children:N,...v}=n;return a.jsxs("div",{className:`select-input-container ${d}`,children:[a.jsx("select",{...v,id:j,ref:p,name:g,value:m,onChange:e,className:`select-input ${w(s)} peer ${f}`,children:r?.map(c=>a.jsx("option",{value:c.id,children:c.value??c.name??c.id},c.id))}),a.jsx("label",{htmlFor:j,className:`select-input-label ${I(s)} ${x}`,children:i}),N,u&&a.jsx("p",{className:`select-input-helper-text ${T(s)} ${C}`,children:u})]})}),q=n=>n==null?!1:Array.isArray(n)?n.length>0:`${n}`.length>0,D=l.forwardRef(function(n,p){const{children:m,state:e=A.default,label:r="",containerClassName:d="",inputClassName:f="",labelClassName:x="",helperText:u="",helperTextClassName:C="",value:i,defaultValue:g,onChange:j,...s}=n,N=i!==void 0,[v,c]=l.useState(()=>q(g)),S=N?q(i):v,b=$=>{N||c($.currentTarget.value.length>0),j?.($)};return a.jsxs("div",{className:`text-input-container ${d}`,children:[a.jsx("input",{ref:p,defaultValue:g,onChange:b,...N?{value:i}:{},className:`text-input ${w(e)} ${f} ${S?"has-value":""} ${s.placeholder?"has-placeholder":""}`,...s}),!!r&&a.jsxs("label",{htmlFor:s.id,className:`text-input-label ${I(e)} ${x}`,children:[r,s.required?" *":""]}),m,!!u&&a.jsx("p",{className:`text-input-helper-text ${T(e)} ${C}`,children:u})]})});exports.AutocompleteInput=U;exports.CheckInput=_;exports.SelectInput=z;exports.State=A;exports.TextInput=D;exports.helperTextStateClassName=T;exports.inputStateClassName=w;exports.labelStateClassName=I;
1
+ var G=require("./TextInput.css");const a=require("react/jsx-runtime"),l=require("react"),k=require("./Chip-D17UJHW6.cjs"),M=require("./IconButton-CVnmT2E9.cjs"),O=require("./Close-O9P7wJGf.cjs"),U=l.forwardRef(function(n,p){const{state:m,value:e,onChange:r,options:d=[],name:f="",id:x="",label:u="",containerClassName:C="",inputContainerClassName:i="",helperText:g="",placeholder:j="",multiple:s=!1,...N}=n,[v,c]=l.useState("");l.useEffect(()=>{if(!s&&e&&!Array.isArray(e)){c(String(e.value??e.name??""));return}c("")},[s,e]);const[S,b]=l.useState(!1),$=l.useMemo(()=>d.filter(t=>{const o=String(t.value??t.name).toLowerCase().includes(v?.toLowerCase());return Array.isArray(e)&&e.length?o&&!e.some(h=>h.id===t.id):e&&!Array.isArray(e)?o&&e.id!==t.id:o}),[d,e,v]),y=l.useRef(null),F=l.useRef(null),[P,V]=l.useState(!1),R=l.useRef(null);l.useEffect(()=>{const t=h=>{y.current&&!y.current.contains(h.target)&&b(!1)},o=h=>{h.key==="Escape"&&b(!1)};return document.addEventListener("mousedown",t),document.addEventListener("keydown",o),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",o)}},[]);const W=l.useCallback(t=>{c(t.target.value)},[]),E=l.useCallback(t=>{t?s?(c(""),Array.isArray(e)&&e.length?r([...e,t]):r([t])):(c(String(t.name??t.value??"")),r(t)):r(null),b(!1)},[s,r,e]),L=l.useCallback(t=>{if(!Array.isArray(e)){r(null);return}const o=e.filter((h,H)=>H!==t);o.length?r(o):r(null)},[r,e]),B=l.useCallback(()=>{Array.isArray(e)&&r([e[0]])},[r,e]);return l.useLayoutEffect(()=>{const t=R.current?.offsetWidth??0,o=y.current?.offsetWidth??0;V(t>o*.4)},[e]),a.jsxs("div",{className:`autocomplete-input-container ${C}`,ref:y,children:[a.jsxs("div",{className:"autocomplete-value-input-container",children:[a.jsx(D,{state:m,name:f,id:x,value:v,onChange:W,placeholder:j,helperText:g,onFocus:()=>b(!0),label:u,containerClassName:`autocomplete-text-input ${i}`,ref:p??F,...N,children:!s&&e&&!Array.isArray(e)&&(e.value||e.name)&&a.jsx(M.IconButton,{icon:a.jsx(O.Close,{}),className:"autocomplete-delete-button",onClick:t=>{E(),t.stopPropagation()}})}),s&&Array.isArray(e)&&e.length?a.jsx("ul",{ref:R,className:"autocomplete-value-container",children:P?a.jsxs(a.Fragment,{children:[a.jsx("li",{children:a.jsx(k.Chip,{text:e[0]?.value??e[0]?.name,onDelete:t=>{L(0),t.stopPropagation()}})}),e.length>1&&a.jsx("li",{children:a.jsx(k.Chip,{text:`+${e.length-1}`,onDelete:t=>{B(),t.stopPropagation()}})})]}):e.map((t,o)=>a.jsx("li",{children:a.jsx(k.Chip,{text:String(t.value??t.name),onDelete:h=>{L(o),h.stopPropagation()}})},t.id??t.value??t.name))}):null]}),S&&a.jsx("ul",{className:"autocomplete-suggestions-container",style:{width:y.current?.offsetWidth},children:$.map(t=>a.jsx("li",{className:"autocomplete-suggestion-item",onClick:o=>{E(t),o.stopPropagation()},children:t.value??t.name},t.id??t.value??t.name))})]})}),_=l.forwardRef(function(n,p){const{checked:m,onChange:e,name:r="",id:d="",label:f="",containerClassName:x="",inputClassName:u="",labelClassName:C="",...i}=n;return a.jsxs("label",{className:`input-check-container ${x}`,children:[a.jsx("input",{id:d,ref:p,name:r,type:"checkbox",checked:m,onChange:e,className:`input-check ${u}`,...i}),a.jsx("span",{className:`input-check-label ${C}`,children:f})]})});var A=(n=>(n.error="error",n.good="good",n.default="default",n))(A||{});const w=n=>{switch(n){case"error":return"input-error";case"good":return"input-good";default:return"input-normal"}},I=n=>{switch(n){case"error":return"input-label-error";case"good":return"input-label-good";default:return"input-label-normal"}},T=n=>{switch(n){case"error":return"input-helper-text-error";case"good":return"input-helper-text-good";default:return"input-helper-text-normal"}},z=l.forwardRef(function(n,p){const{value:m,onChange:e,options:r,containerClassName:d="",inputClassName:f="",labelClassName:x="",helperText:u="",helperTextClassName:C="",label:i="",name:g="",id:j="",state:s=A.default,children:N,...v}=n;return a.jsxs("div",{className:`select-input-container ${d}`,children:[a.jsx("select",{...v,id:j,ref:p,name:g,value:m,onChange:e,className:`select-input ${w(s)} peer ${f}`,children:r?.map(c=>a.jsx("option",{value:c.id,children:c.value??c.name??c.id},c.id))}),a.jsx("label",{htmlFor:j,className:`select-input-label ${I(s)} ${x}`,children:i}),N,u&&a.jsx("p",{className:`select-input-helper-text ${T(s)} ${C}`,children:u})]})}),q=n=>n==null?!1:Array.isArray(n)?n.length>0:`${n}`.length>0,D=l.forwardRef(function(n,p){const{children:m,state:e=A.default,label:r="",containerClassName:d="",inputClassName:f="",labelClassName:x="",helperText:u="",helperTextClassName:C="",value:i,defaultValue:g,onChange:j,...s}=n,N=i!==void 0,[v,c]=l.useState(()=>q(g)),S=N?q(i):v,b=$=>{N||c($.currentTarget.value.length>0),j?.($)};return a.jsxs("div",{className:`text-input-container ${d}`,children:[a.jsx("input",{ref:p,defaultValue:g,onChange:b,...N?{value:i}:{},className:`text-input ${w(e)} ${f} ${S?"has-value":""} ${s.placeholder?"has-placeholder":""}`,...s}),!!r&&a.jsxs("label",{htmlFor:s.id,className:`text-input-label ${I(e)} ${x}`,children:[r,s.required?" *":""]}),m,!!u&&a.jsx("p",{className:`text-input-helper-text ${T(e)} ${C}`,children:u})]})});exports.AutocompleteInput=U;exports.CheckInput=_;exports.SelectInput=z;exports.State=A;exports.TextInput=D;exports.helperTextStateClassName=T;exports.inputStateClassName=w;exports.labelStateClassName=I;
@@ -0,0 +1,18 @@
1
+ import { BaseDto } from '../../lib';
2
+ import { ActionPropsType } from './types';
3
+ /**
4
+ * Renders a single action button with optional icon, tooltip, and label.
5
+ * @param props - Component props.
6
+ * @param props.id - Unique identifier for the button element.
7
+ * @param props.icon - Icon rendered inside the button.
8
+ * @param props.tooltip - Accessible label shown as a tooltip or as visible text when `showText` is true.
9
+ * @param props.onClick - Callback fired when the button is clicked.
10
+ * @param props.children - Optional child elements rendered inside the button.
11
+ * @param props.hidden - When `true`, the button is not rendered. Defaults to `false`.
12
+ * @param props.disabled - When `true`, the button is disabled. Defaults to `false`.
13
+ * @param props.showText - When `true`, `tooltip` is rendered as visible text next to the icon. Defaults to `false`.
14
+ * @param props.showTooltips - When `false`, the tooltip is suppressed. Defaults to `true`.
15
+ * @param props.className - Additional CSS class applied to the button.
16
+ * @returns The action button element, or `null` when `hidden` is `true`.
17
+ */
18
+ export declare function Action<TEntity extends BaseDto>(props: ActionPropsType<TEntity>): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,14 @@
1
+ import { BaseDto } from '../../lib';
2
+ import { ActionsContainerPropsType } from './types';
3
+ /**
4
+ * Renders a list of {@link Action} buttons from an array of action definitions.
5
+ * @param props - Component props.
6
+ * @param props.actions - Array of action definitions to render. Defaults to `[]`.
7
+ * @param props.className - Additional CSS class applied to the `<ul>` container.
8
+ * @param props.itemClassName - Additional CSS class applied to each `<li>` item.
9
+ * @param props.actionClassName - Additional CSS class applied to each `Action` button.
10
+ * @param props.showTooltips - Whether to show tooltips on each action. Defaults to `true`.
11
+ * @param props.showActionTexts - Whether to render the action label as visible text. Defaults to `false`.
12
+ * @returns A `<ul>` element containing one `<li>` per action.
13
+ */
14
+ export declare function Actions<TRow extends BaseDto>(props: ActionsContainerPropsType<TRow>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ import { Actions } from './Actions';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Actions;
6
+ tags: string[];
7
+ args: {
8
+ showActionTexts: false;
9
+ actions: {
10
+ id: string;
11
+ tooltip: string;
12
+ icon: import("react/jsx-runtime").JSX.Element;
13
+ onClick: () => void;
14
+ }[];
15
+ };
16
+ };
17
+ export default meta;
18
+ type Story = StoryObj<typeof meta>;
19
+ export declare const Basic: Story;
20
+ export declare const WithText: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { BaseDto } from '../../lib';
2
+ import { ActionsContainerPropsType } from './types';
3
+ /**
4
+ * Renders an ellipsis trigger button that opens a {@link Dropdown} containing an {@link Actions} list.
5
+ * @param props - Component props.
6
+ * @param props.actions - Array of action definitions displayed inside the dropdown. Defaults to `[]`.
7
+ * @param props.className - Additional CSS class applied to the root container.
8
+ * @returns A container with an ellipsis `IconButton` and a `Dropdown` holding the actions list.
9
+ */
10
+ export declare const ActionsDropdown: <TRow extends BaseDto>(props: ActionsContainerPropsType<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: <TRow extends import('../../lib').BaseDto>(props: import('./types').ActionsContainerPropsType<TRow>) => import("react/jsx-runtime").JSX.Element;
5
+ tags: string[];
6
+ args: {
7
+ actions: {
8
+ id: string;
9
+ tooltip: string;
10
+ icon: import("react/jsx-runtime").JSX.Element;
11
+ onClick: () => void;
12
+ }[];
13
+ };
14
+ };
15
+ export default meta;
16
+ type Story = StoryObj<typeof meta>;
17
+ export declare const Basic: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './Action';
2
+ export * from './Actions';
3
+ export * from './ActionsDropdown';
4
+ export * from './types';
@@ -0,0 +1,17 @@
1
+ import { ActionType } from '..';
2
+ import { BaseDto } from '../../lib';
3
+ import { ReactNode } from 'react';
4
+ export type ActionsContainerPropsType<TRow extends BaseDto> = {
5
+ actions: ActionPropsType<TRow>[];
6
+ className?: string;
7
+ itemClassName?: string;
8
+ actionClassName?: string;
9
+ showActionTexts?: boolean;
10
+ showTooltips?: boolean;
11
+ };
12
+ export interface ActionPropsType<TRow extends BaseDto> extends ActionType<TRow> {
13
+ children?: ReactNode;
14
+ showText?: boolean;
15
+ showTooltips?: boolean;
16
+ className?: string;
17
+ }
@@ -6,4 +6,5 @@ type Story = StoryObj<typeof TextInput>;
6
6
  export declare const Default: Story;
7
7
  export declare const WithHelperText: Story;
8
8
  export declare const ErrorState: Story;
9
+ export declare const WithController: Story;
9
10
  export declare const Controlled: Story;
@@ -0,0 +1,7 @@
1
+ import { IconProps } from './types';
2
+ /**
3
+ * Renders the Ellipsis component.
4
+ * @param props - props parameter.
5
+ * @returns Function result.
6
+ */
7
+ export declare function Ellipsis(props: IconProps): import("react/jsx-runtime").JSX.Element;
@@ -3,6 +3,7 @@ export * from './ChevronLeft';
3
3
  export * from './ChevronRight';
4
4
  export * from './ChevronUp';
5
5
  export * from './Close';
6
+ export * from './Ellipsis';
6
7
  export * from './File';
7
8
  export * from './Filters';
8
9
  export * from './types';
@@ -13,5 +13,6 @@ export declare const WithAutocompleteFilter: Story;
13
13
  export declare const WithControlledFiltersDropdown: Story;
14
14
  export declare const WithSimpleActions: Story;
15
15
  export declare const WithMultipleActions: Story;
16
+ export declare const WithStickyAndDropdownActions: Story;
16
17
  export declare const WithExpandableRows: Story;
17
18
  export declare const WithMultipleExpandableRows: Story;
@@ -9,6 +9,7 @@ export type ActionType<TRow extends BaseDto> = {
9
9
  disabled?: boolean;
10
10
  hidden?: boolean;
11
11
  multiple?: boolean;
12
+ sticky?: boolean;
12
13
  onMultipleClick?: (rows: TRow[]) => void;
13
14
  };
14
15
  export interface TablePropsType<TRow extends BaseDto> extends TableHeaderPropsType<TRow> {
@@ -1,3 +1,4 @@
1
+ export * from './Actions';
1
2
  export * from './Badge';
2
3
  export * from './Button';
3
4
  export * from './Chip';
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- var b=require("./index.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./lib.cjs"),s=require("./query-81BrXp3i.cjs"),a=require("./Badge-Z78MlGoQ.cjs"),u=require("./Button-BlYa3uPc.cjs"),p=require("./Chip-a2z-338_.cjs"),c=require("./Dropdown-CAxauIXt.cjs"),t=require("./TextInput-Bn8zsDnU.cjs"),C=require("./FileInput-5tMOO7mb.cjs"),T=require("./IconButton-CVnmT2E9.cjs"),d=require("./Loading-CNECRan-.cjs"),r=require("./Filters-C5XEbF3V.cjs"),F=require("./Close-O9P7wJGf.cjs"),v=require("./File-_Hjw2d3F.cjs"),e=require("./Table-CWss4TW5.cjs"),h=require("./Tooltip-BSKAgRkc.cjs"),o=require("./FiltersProvider-CYqLFEI9.cjs"),i=require("./TableOptionsProvider-BchUDA3B.cjs"),n=require("./TranslationProvider-51Pc9Xrr.cjs");exports.FilterTypes=l.FilterTypes;exports.SortOrder=s.SortOrder;exports.Badge=a.Badge;exports.Button=u.Button;exports.Chip=p.Chip;exports.Dropdown=c.Dropdown;exports.AutocompleteInput=t.AutocompleteInput;exports.CheckInput=t.CheckInput;exports.SelectInput=t.SelectInput;exports.State=t.State;exports.TextInput=t.TextInput;exports.helperTextStateClassName=t.helperTextStateClassName;exports.inputStateClassName=t.inputStateClassName;exports.labelStateClassName=t.labelStateClassName;exports.FileInput=C.FileInput;exports.IconButton=T.IconButton;exports.Loading=d.Loading;exports.ChevronDown=r.ChevronDown;exports.ChevronLeft=r.ChevronLeft;exports.ChevronRight=r.ChevronRight;exports.ChevronUp=r.ChevronUp;exports.Filters=r.Filters;exports.Close=F.Close;exports.File=v.File;exports.ActiveFilters=e.ActiveFilters;exports.ArrayChip=e.ArrayChip;exports.Columns=e.Columns;exports.CountOfTotal=e.CountOfTotal;exports.FilterDropdown=e.FilterDropdown;exports.Footer=e.Footer;exports.Navigation=e.Navigation;exports.PageSize=e.PageSize;exports.RangeChip=e.RangeChip;exports.Rows=e.Rows;exports.Table=e.Table;exports.TableEmpty=e.TableEmpty;exports.TableHeader=e.TableHeader;exports.TableSelectionBar=e.TableSelectionBar;exports.renderFilterComponent=e.renderFilterComponent;exports.Tooltip=h.Tooltip;exports.FiltersActions=o.FiltersActions;exports.FiltersProvider=o.FiltersProvider;exports.filtersReducer=o.filtersReducer;exports.initializer=o.initializer;exports.useFilters=o.useFilters;exports.TableOptionsProvider=i.TableOptionsProvider;exports.useTableOptions=i.useTableOptions;exports.TranslationProvider=n.TranslationProvider;exports.useTranslation=n.useTranslation;
1
+ var b=require("./index.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./lib.cjs"),s=require("./query-81BrXp3i.cjs"),e=require("./Table-DjIhOMXQ.cjs"),a=require("./Badge-Z78MlGoQ.cjs"),u=require("./Button-BlYa3uPc.cjs"),p=require("./Chip-D17UJHW6.cjs"),c=require("./Dropdown-CAxauIXt.cjs"),t=require("./TextInput-CY1fh4mf.cjs"),d=require("./FileInput-Ch-GCxrS.cjs"),C=require("./IconButton-CVnmT2E9.cjs"),T=require("./Loading-CNECRan-.cjs"),r=require("./Filters-Dyee8QYH.cjs"),F=require("./Close-O9P7wJGf.cjs"),v=require("./File-_Hjw2d3F.cjs"),h=require("./Tooltip-BSKAgRkc.cjs"),o=require("./FiltersProvider-CYqLFEI9.cjs"),i=require("./TableOptionsProvider-BchUDA3B.cjs"),n=require("./TranslationProvider-51Pc9Xrr.cjs");exports.FilterTypes=l.FilterTypes;exports.SortOrder=s.SortOrder;exports.Action=e.Action;exports.Actions=e.Actions;exports.ActionsDropdown=e.ActionsDropdown;exports.ActiveFilters=e.ActiveFilters;exports.ArrayChip=e.ArrayChip;exports.Columns=e.Columns;exports.CountOfTotal=e.CountOfTotal;exports.FilterDropdown=e.FilterDropdown;exports.Footer=e.Footer;exports.Navigation=e.Navigation;exports.PageSize=e.PageSize;exports.RangeChip=e.RangeChip;exports.Rows=e.Rows;exports.Table=e.Table;exports.TableEmpty=e.TableEmpty;exports.TableHeader=e.TableHeader;exports.TableSelectionBar=e.TableSelectionBar;exports.renderFilterComponent=e.renderFilterComponent;exports.Badge=a.Badge;exports.Button=u.Button;exports.Chip=p.Chip;exports.Dropdown=c.Dropdown;exports.AutocompleteInput=t.AutocompleteInput;exports.CheckInput=t.CheckInput;exports.SelectInput=t.SelectInput;exports.State=t.State;exports.TextInput=t.TextInput;exports.helperTextStateClassName=t.helperTextStateClassName;exports.inputStateClassName=t.inputStateClassName;exports.labelStateClassName=t.labelStateClassName;exports.FileInput=d.FileInput;exports.IconButton=C.IconButton;exports.Loading=T.Loading;exports.ChevronDown=r.ChevronDown;exports.ChevronLeft=r.ChevronLeft;exports.ChevronRight=r.ChevronRight;exports.ChevronUp=r.ChevronUp;exports.Ellipsis=r.Ellipsis;exports.Filters=r.Filters;exports.Close=F.Close;exports.File=v.File;exports.Tooltip=h.Tooltip;exports.FiltersActions=o.FiltersActions;exports.FiltersProvider=o.FiltersProvider;exports.filtersReducer=o.filtersReducer;exports.initializer=o.initializer;exports.useFilters=o.useFilters;exports.TableOptionsProvider=i.TableOptionsProvider;exports.useTableOptions=i.useTableOptions;exports.TranslationProvider=n.TranslationProvider;exports.useTranslation=n.useTranslation;
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- @layer properties{@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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--color-blue-800:oklch(42.4% .199 265.638);--color-gray-500:oklch(55.1% .027 264.364);--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,: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-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,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:currentColor}@supports (color:color-mix(in lab,red,red)){::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}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:28rem){.container{max-width:28rem}}@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}}.mt-2{margin-top:calc(var(--spacing) * 2)}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.table-row{display:table-row}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.max-w-sm{max-width:var(--container-sm)}.min-w-48{min-width:calc(var(--spacing) * 48)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.stroke-blue-800{stroke:var(--color-blue-800)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-10{padding:calc(var(--spacing) * 10)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-gray-500{color:var(--color-gray-500)}.capitalize{text-transform:capitalize}.opacity-70{opacity:.7}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.input-normal{border-color:var(--color-border,#ccc);color:var(--color-text,#0d0d0d)}.input-normal:focus{border-color:var(--color-primary,#041e42)}.input-label-error{color:var(--color-secondary,#cd212a)}.input-label-good{color:var(--color-bg-success,#1d9a5b)}.input-label-normal{color:var(--color-text-muted,#4d4d4d)}.input-label-normal:is(:where(.peer):focus~*){color:var(--color-primary,#041e42)}.input-helper-text-error{color:var(--color-bg-error,#c14444)}.input-helper-text-good{color:var(--color-bg-success,#1d9a5b)}.input-helper-text-normal{color:var(--color-text-muted,#4d4d4d)}.autocomplete-suggestions-container{background-color:var(--color-base-light,#fff)}.autocomplete-suggestion-item:hover{background-color:var(--color-base-dark,#e6e6e6)}.autocomplete-delete-button{color:var(--color-text,#0d0d0d)}@media(hover:hover){.autocomplete-delete-button:hover{color:var(--color-secondary,#cd212a)}}.chip-main{background-color:var(--color-base-dark,#e6e6e6);color:var(--color-text,#0d0d0d)}.chip-delete-button:hover{color:var(--color-secondary,#cd212a)}.badge-main{background-color:var(--color-bg-error,#c14444);color:var(--color-error,#fbfbfb)}.table-loading{background-color:var(--color-base-light,#fff)}.table-row{border-bottom-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff)}.table-headers-row{background-color:var(--color-base,#f2f2f2);color:var(--color-text-muted,#4d4d4d)}.table-content{color:var(--color-text-muted,#4d4d4d)}.table-row-cell.basic{color:var(--color-text,#0d0d0d)}.table-navigation-buttons:disabled{color:var(--color-text-muted,#4d4d4d)}.filter-popup{background-color:var(--color-base-light,#fff)}.filter-dropdown-submit,.filter-dropdown-cancel{border-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff);color:var(--color-text-muted,#4d4d4d)}@media(hover:hover){:is(.filter-dropdown-submit,.filter-dropdown-cancel):hover{border-color:var(--color-text-muted,#4d4d4d);color:var(--color-text,#0d0d0d)}}.filter-dropdown-trigger{border-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff);color:var(--color-text-muted,#4d4d4d)}@media(hover:hover){.filter-dropdown-trigger:hover{border-color:var(--color-text-muted,#4d4d4d);color:var(--color-text,#0d0d0d)}}.filter-title{color:var(--color-text-muted,#4d4d4d)}.filter-footer{border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2)}.table-headers-cell{border-color:var(--color-border,#ccc)}@media(hover:hover){.table-headers-cell:hover{background-color:var(--color-base-dark,#e6e6e6)}}
1
+ @layer properties{@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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--color-blue-800:oklch(42.4% .199 265.638);--color-gray-500:oklch(55.1% .027 264.364);--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,: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-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,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:currentColor}@supports (color:color-mix(in lab,red,red)){::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}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:28rem){.container{max-width:28rem}}@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}}.mt-2{margin-top:calc(var(--spacing) * 2)}.\!hidden{display:none!important}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.table-row{display:table-row}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-full{width:100%}.w-px{width:1px}.max-w-sm{max-width:var(--container-sm)}.min-w-48{min-width:calc(var(--spacing) * 48)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.stroke-blue-800{stroke:var(--color-blue-800)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-10{padding:calc(var(--spacing) * 10)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-gray-500{color:var(--color-gray-500)}.capitalize{text-transform:capitalize}.opacity-70{opacity:.7}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.input-normal{border-color:var(--color-border,#ccc);color:var(--color-text,#0d0d0d)}.input-normal:focus{border-color:var(--color-primary,#041e42)}.input-label-error{color:var(--color-secondary,#cd212a)}.input-label-good{color:var(--color-bg-success,#1d9a5b)}.input-label-normal{color:var(--color-text-muted,#4d4d4d)}.input-label-normal:is(:where(.peer):focus~*){color:var(--color-primary,#041e42)}.input-helper-text-error{color:var(--color-bg-error,#c14444)}.input-helper-text-good{color:var(--color-bg-success,#1d9a5b)}.input-helper-text-normal{color:var(--color-text-muted,#4d4d4d)}.autocomplete-suggestions-container{background-color:var(--color-base-light,#fff)}.autocomplete-suggestion-item:hover{background-color:var(--color-base-dark,#e6e6e6)}.autocomplete-delete-button{color:var(--color-text,#0d0d0d)}@media(hover:hover){.autocomplete-delete-button:hover{color:var(--color-secondary,#cd212a)}}.chip-main{background-color:var(--color-base-dark,#e6e6e6);color:var(--color-text,#0d0d0d)}.chip-delete-button:hover{color:var(--color-secondary,#cd212a)}.badge-main{background-color:var(--color-bg-error,#c14444);color:var(--color-error,#fbfbfb)}.table-loading{background-color:var(--color-base-light,#fff)}.table-row{border-bottom-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff)}.table-headers-row{background-color:var(--color-base,#f2f2f2);color:var(--color-text-muted,#4d4d4d)}.table-content{color:var(--color-text-muted,#4d4d4d)}.table-row-cell.basic{color:var(--color-text,#0d0d0d)}.table-navigation-buttons:disabled{color:var(--color-text-muted,#4d4d4d)}.filter-popup{background-color:var(--color-base-light,#fff)}.filter-dropdown-submit,.filter-dropdown-cancel{border-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff);color:var(--color-text-muted,#4d4d4d)}@media(hover:hover){:is(.filter-dropdown-submit,.filter-dropdown-cancel):hover{border-color:var(--color-text-muted,#4d4d4d);color:var(--color-text,#0d0d0d)}}.filter-dropdown-trigger{border-color:var(--color-border,#ccc);background-color:var(--color-base-light,#fff);color:var(--color-text-muted,#4d4d4d)}@media(hover:hover){.filter-dropdown-trigger:hover{border-color:var(--color-text-muted,#4d4d4d);color:var(--color-text,#0d0d0d)}}.filter-title{color:var(--color-text-muted,#4d4d4d)}.filter-footer{border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2)}.table-headers-cell{border-color:var(--color-border,#ccc)}@media(hover:hover){.table-headers-cell:hover{background-color:var(--color-base-dark,#e6e6e6)}}
package/dist/index.js CHANGED
@@ -1,70 +1,74 @@
1
1
  import "./index.css";
2
- import { FilterTypes as r } from "./lib.js";
2
+ import { FilterTypes as o } from "./lib.js";
3
3
  import { S as t } from "./query-CwuehjY1.js";
4
- import { B as i } from "./Badge-CIeYthEy.js";
5
- import { B as n } from "./Button-D73-swfo.js";
6
- import { C as f } from "./Chip-JDQqzO9I.js";
7
- import { D as C } from "./Dropdown-CbaxuMbk.js";
8
- import { A as T, C as F, S as d, a as h, T as c, h as S, i as b, l as v } from "./TextInput-BLfTozZ9.js";
9
- import { F as I } from "./FileInput-B--eBQVa.js";
10
- import { I as B } from "./IconButton-BpsTEj0z.js";
11
- import { L as P } from "./Loading-B_c_4XLr.js";
12
- import { C as w, a as D, b as O, c as y, F as L } from "./Filters-BivtNVS3.js";
13
- import { C as k } from "./Close-rKC9AcNX.js";
14
- import { F as H } from "./File-BuJndWMv.js";
15
- import { A as j, a as q, C as G, b as J, F as K, c as M, N as Q, P as V, R as W, d as X, g as Y, T as Z, e as _, f as $, r as aa } from "./Table-CH9HYQ2I.js";
16
- import { T as oa } from "./Tooltip-B4E-FRwY.js";
17
- import { a as sa, F as ta, f as pa, i as ia, u as la } from "./FiltersProvider-CY2fsw_F.js";
18
- import { T as ma, u as fa } from "./TableOptionsProvider-BfQS8l1N.js";
19
- import { T as Ca, u as ua } from "./TranslationProvider-COebIyxr.js";
4
+ import { h as p, i as n, j as l, A as m, a as f, C as x, b as C, F as u, c as T, N as F, P as c, R as d, d as h, g as S, T as b, e as v, f as A, r as g } from "./Table-BtZGG0d7.js";
5
+ import { B } from "./Badge-CIeYthEy.js";
6
+ import { B as D } from "./Button-D73-swfo.js";
7
+ import { C as P } from "./Chip-C5ogKbFn.js";
8
+ import { D as O } from "./Dropdown-CbaxuMbk.js";
9
+ import { A as E, C as L, S as z, a as j, T as k, h as H, i as U, l as q } from "./TextInput-BqW5YX-3.js";
10
+ import { F as J } from "./FileInput-DCR_Pyqe.js";
11
+ import { I as M } from "./IconButton-BpsTEj0z.js";
12
+ import { L as V } from "./Loading-B_c_4XLr.js";
13
+ import { C as X, a as Y, b as Z, c as _, E as $, F as aa } from "./Filters-DL5jd8ps.js";
14
+ import { C as sa } from "./Close-rKC9AcNX.js";
15
+ import { F as ra } from "./File-BuJndWMv.js";
16
+ import { T as ia } from "./Tooltip-B4E-FRwY.js";
17
+ import { a as na, F as la, f as ma, i as fa, u as xa } from "./FiltersProvider-CY2fsw_F.js";
18
+ import { T as ua, u as Ta } from "./TableOptionsProvider-BfQS8l1N.js";
19
+ import { T as ca, u as da } from "./TranslationProvider-COebIyxr.js";
20
20
  export {
21
- j as ActiveFilters,
22
- q as ArrayChip,
23
- T as AutocompleteInput,
24
- i as Badge,
25
- n as Button,
26
- F as CheckInput,
27
- w as ChevronDown,
28
- D as ChevronLeft,
29
- O as ChevronRight,
30
- y as ChevronUp,
31
- f as Chip,
32
- k as Close,
33
- G as Columns,
34
- J as CountOfTotal,
35
- C as Dropdown,
36
- H as File,
37
- I as FileInput,
38
- K as FilterDropdown,
39
- r as FilterTypes,
40
- L as Filters,
41
- sa as FiltersActions,
42
- ta as FiltersProvider,
43
- M as Footer,
44
- B as IconButton,
45
- P as Loading,
46
- Q as Navigation,
47
- V as PageSize,
48
- W as RangeChip,
49
- X as Rows,
50
- d as SelectInput,
21
+ p as Action,
22
+ n as Actions,
23
+ l as ActionsDropdown,
24
+ m as ActiveFilters,
25
+ f as ArrayChip,
26
+ E as AutocompleteInput,
27
+ B as Badge,
28
+ D as Button,
29
+ L as CheckInput,
30
+ X as ChevronDown,
31
+ Y as ChevronLeft,
32
+ Z as ChevronRight,
33
+ _ as ChevronUp,
34
+ P as Chip,
35
+ sa as Close,
36
+ x as Columns,
37
+ C as CountOfTotal,
38
+ O as Dropdown,
39
+ $ as Ellipsis,
40
+ ra as File,
41
+ J as FileInput,
42
+ u as FilterDropdown,
43
+ o as FilterTypes,
44
+ aa as Filters,
45
+ na as FiltersActions,
46
+ la as FiltersProvider,
47
+ T as Footer,
48
+ M as IconButton,
49
+ V as Loading,
50
+ F as Navigation,
51
+ c as PageSize,
52
+ d as RangeChip,
53
+ h as Rows,
54
+ z as SelectInput,
51
55
  t as SortOrder,
52
- h as State,
53
- Y as Table,
54
- Z as TableEmpty,
55
- _ as TableHeader,
56
- ma as TableOptionsProvider,
57
- $ as TableSelectionBar,
58
- c as TextInput,
59
- oa as Tooltip,
60
- Ca as TranslationProvider,
61
- pa as filtersReducer,
62
- S as helperTextStateClassName,
63
- ia as initializer,
64
- b as inputStateClassName,
65
- v as labelStateClassName,
66
- aa as renderFilterComponent,
67
- la as useFilters,
68
- fa as useTableOptions,
69
- ua as useTranslation
56
+ j as State,
57
+ S as Table,
58
+ b as TableEmpty,
59
+ v as TableHeader,
60
+ ua as TableOptionsProvider,
61
+ A as TableSelectionBar,
62
+ k as TextInput,
63
+ ia as Tooltip,
64
+ ca as TranslationProvider,
65
+ ma as filtersReducer,
66
+ H as helperTextStateClassName,
67
+ fa as initializer,
68
+ U as inputStateClassName,
69
+ q as labelStateClassName,
70
+ g as renderFilterComponent,
71
+ xa as useFilters,
72
+ Ta as useTableOptions,
73
+ da as useTranslation
70
74
  };
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sito/dashboard",
3
3
  "private": false,
4
- "version": "0.0.66",
4
+ "version": "0.0.67",
5
5
  "type": "module",
6
6
  "description": "UI library with custom components for dashboards",
7
7
  "main": "dist/index.cjs",
@@ -128,10 +128,13 @@
128
128
  "*.{js,jsx,css,json,md}": "prettier --write"
129
129
  },
130
130
  "devDependencies": {
131
+ "@fortawesome/free-solid-svg-icons": "^7.2.0",
132
+ "@fortawesome/react-fontawesome": "^3.2.0",
131
133
  "@storybook/addon-a11y": "^10.2.10",
132
134
  "@storybook/addon-docs": "^10.2.13",
133
135
  "@storybook/react": "^10.2.10",
134
136
  "@storybook/react-vite": "^10.2.10",
137
+ "@tailwindcss/postcss": "^4.0.0",
135
138
  "@testing-library/jest-dom": "^6.6.3",
136
139
  "@testing-library/react": "^16.3.0",
137
140
  "@types/node": "^20.19.0",
@@ -140,7 +143,6 @@
140
143
  "@typescript-eslint/eslint-plugin": "^8",
141
144
  "@typescript-eslint/parser": "^8",
142
145
  "@vitejs/plugin-react": "^4.7.0",
143
- "@tailwindcss/postcss": "^4.0.0",
144
146
  "baseline-browser-mapping": "^2.10.0",
145
147
  "depcheck": "^1.4.7",
146
148
  "eslint": "^10.0.1",
@@ -155,6 +157,7 @@
155
157
  "prettier": "^3.8.1",
156
158
  "react": "18.3.1",
157
159
  "react-dom": "18.3.1",
160
+ "react-hook-form": "^7.71.2",
158
161
  "storybook": "^10.2.10",
159
162
  "tailwindcss": "^4.0.0",
160
163
  "typescript": "5.5.4",