@webority/ui-react 0.53.1 → 0.54.0

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 (110) hide show
  1. package/dist/components/AppActionIcon.js +1 -1
  2. package/dist/components/AppAvatar.js +1 -1
  3. package/dist/components/AppButton.js +1 -1
  4. package/dist/components/AppButtonGroup.js +1 -0
  5. package/dist/components/AppCarousel.js +1 -0
  6. package/dist/components/AppChipGroup.js +1 -0
  7. package/dist/components/AppCodeBlock.js +1 -0
  8. package/dist/components/AppCommandPalette.js +1 -1
  9. package/dist/components/AppCommentThread.js +1 -0
  10. package/dist/components/AppDataTable.js +1 -1
  11. package/dist/components/AppDateRangePicker.js +1 -1
  12. package/dist/components/AppDrawer.js +1 -0
  13. package/dist/components/AppDropdown.js +1 -1
  14. package/dist/components/AppEmptyState.js +1 -1
  15. package/dist/components/AppFilterBar.js +1 -1
  16. package/dist/components/AppHoverCard.js +1 -0
  17. package/dist/components/AppInlineEdit.js +1 -0
  18. package/dist/components/AppInputGroup.js +1 -0
  19. package/dist/components/AppKbd.js +1 -0
  20. package/dist/components/AppLightbox.js +1 -0
  21. package/dist/components/AppMentionInput.js +1 -0
  22. package/dist/components/AppMenubar.js +1 -0
  23. package/dist/components/AppNavigationMenu.js +1 -0
  24. package/dist/components/AppNotificationCenter.js +1 -0
  25. package/dist/components/AppOnboardingChecklist.js +1 -0
  26. package/dist/components/AppRating.js +1 -0
  27. package/dist/components/AppRecordPager.js +1 -0
  28. package/dist/components/AppRelativeTime.js +1 -0
  29. package/dist/components/AppResizable.js +1 -0
  30. package/dist/components/AppResizableHandle.js +1 -0
  31. package/dist/components/AppResizablePanel.js +1 -0
  32. package/dist/components/AppRollingNumber.js +1 -0
  33. package/dist/components/AppSectionCallToAction.js +1 -0
  34. package/dist/components/AppSectionFaq.js +1 -0
  35. package/dist/components/AppSectionFeatures.js +1 -0
  36. package/dist/components/AppSectionHero.js +1 -0
  37. package/dist/components/AppSectionLogos.js +1 -0
  38. package/dist/components/AppSectionPricing.js +1 -0
  39. package/dist/components/AppSectionTestimonials.js +1 -0
  40. package/dist/components/AppShortcutLegend.js +1 -0
  41. package/dist/components/AppShowMore.js +1 -0
  42. package/dist/components/AppSplitButton.js +1 -0
  43. package/dist/components/AppSplitView.js +1 -0
  44. package/dist/components/AppTableEmptyState.js +1 -1
  45. package/dist/components/AppTableToolbar.js +1 -1
  46. package/dist/components/AppTabs.js +1 -1
  47. package/dist/components/AppTooltip.js +1 -1
  48. package/dist/components/AppTruncate.js +1 -0
  49. package/dist/components/AppWhatsNew.js +1 -0
  50. package/dist/components/withTooltip.js +1 -1
  51. package/dist/lib/emptyIllustration.js +1 -0
  52. package/dist/lib/sectionShell.js +1 -0
  53. package/dist/lib/shortcutChip.js +1 -0
  54. package/dist/lib/useListShortcuts.js +1 -0
  55. package/dist/types/components/AppActionIcon.d.ts +4 -1
  56. package/dist/types/components/AppButton.d.ts +2 -1
  57. package/dist/types/components/AppButtonGroup.d.ts +23 -0
  58. package/dist/types/components/AppCarousel.d.ts +52 -0
  59. package/dist/types/components/AppChipGroup.d.ts +22 -0
  60. package/dist/types/components/AppCodeBlock.d.ts +28 -0
  61. package/dist/types/components/AppCommandPalette.d.ts +44 -2
  62. package/dist/types/components/AppCommentThread.d.ts +115 -0
  63. package/dist/types/components/AppDataTable.d.ts +44 -1
  64. package/dist/types/components/AppDateRangePicker.d.ts +5 -0
  65. package/dist/types/components/AppDrawer.d.ts +46 -0
  66. package/dist/types/components/AppDropdown.d.ts +4 -1
  67. package/dist/types/components/AppEmptyState.d.ts +4 -1
  68. package/dist/types/components/AppFilterBar.d.ts +9 -1
  69. package/dist/types/components/AppHoverCard.d.ts +35 -0
  70. package/dist/types/components/AppInlineEdit.d.ts +57 -0
  71. package/dist/types/components/AppInputGroup.d.ts +29 -0
  72. package/dist/types/components/AppKbd.d.ts +15 -0
  73. package/dist/types/components/AppLightbox.d.ts +40 -0
  74. package/dist/types/components/AppMentionInput.d.ts +41 -0
  75. package/dist/types/components/AppMenubar.d.ts +45 -0
  76. package/dist/types/components/AppNavigationMenu.d.ts +41 -0
  77. package/dist/types/components/AppNotificationCenter.d.ts +81 -0
  78. package/dist/types/components/AppOnboardingChecklist.d.ts +48 -0
  79. package/dist/types/components/AppRating.d.ts +48 -0
  80. package/dist/types/components/AppRecordPager.d.ts +38 -0
  81. package/dist/types/components/AppRelativeTime.d.ts +18 -0
  82. package/dist/types/components/AppResizable.d.ts +30 -0
  83. package/dist/types/components/AppResizableHandle.d.ts +13 -0
  84. package/dist/types/components/AppResizablePanel.d.ts +20 -0
  85. package/dist/types/components/AppRollingNumber.d.ts +27 -0
  86. package/dist/types/components/AppSectionCallToAction.d.ts +24 -0
  87. package/dist/types/components/AppSectionFaq.d.ts +28 -0
  88. package/dist/types/components/AppSectionFeatures.d.ts +37 -0
  89. package/dist/types/components/AppSectionHero.d.ts +32 -0
  90. package/dist/types/components/AppSectionLogos.d.ts +36 -0
  91. package/dist/types/components/AppSectionPricing.d.ts +28 -0
  92. package/dist/types/components/AppSectionTestimonials.d.ts +34 -0
  93. package/dist/types/components/AppShortcutLegend.d.ts +34 -0
  94. package/dist/types/components/AppShowMore.d.ts +29 -0
  95. package/dist/types/components/AppSplitButton.d.ts +53 -0
  96. package/dist/types/components/AppSplitView.d.ts +85 -0
  97. package/dist/types/components/AppTableEmptyState.d.ts +4 -1
  98. package/dist/types/components/AppTableToolbar.d.ts +13 -1
  99. package/dist/types/components/AppTabs.d.ts +12 -6
  100. package/dist/types/components/AppTooltip.d.ts +4 -1
  101. package/dist/types/components/AppTruncate.d.ts +21 -0
  102. package/dist/types/components/AppWhatsNew.d.ts +44 -0
  103. package/dist/types/components/withTooltip.d.ts +1 -1
  104. package/dist/types/index.d.ts +37 -0
  105. package/dist/types/lib/emptyIllustration.d.ts +22 -0
  106. package/dist/types/lib/sectionShell.d.ts +43 -0
  107. package/dist/types/lib/shortcutChip.d.ts +11 -0
  108. package/dist/types/lib/useListShortcuts.d.ts +24 -0
  109. package/dist/ui-react.js +1 -1
  110. package/package.json +3 -3
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./withTooltip.js";import r from"./renderIconProp.js";import{jsx as i}from"react/jsx-runtime";var a=[`linear`,`outline`,`bold`,`bulk`,`broken`,`twotone`];function o({icon:o,iconVariant:s,label:c,tooltipPlacement:l=`auto`,danger:u=!1,disabled:d=!1,size:f=20,onClick:p,className:m=``,as:h,href:g,..._}){t(`AppActionIcon`,h===void 0?_:{..._,as:h}),e(`AppActionIcon`,`iconVariant`,s,a);let v=[`u-action`,u?`danger`:``,m].filter(Boolean).join(` `),{style:y,...b}=_,x={"--wui-action-size":`${f+16}px`,...y},S=h??(g?`a`:`button`),C=S===`button`;return n(i(S,{type:C?`button`:void 0,href:C||d?void 0:g,className:v,style:x,"aria-label":c,disabled:C?d:void 0,"aria-disabled":!C&&d?`true`:void 0,role:!C&&d?`link`:void 0,tabIndex:!C&&d?-1:void 0,onClick:e=>{if(d){e.preventDefault(),e.stopPropagation();return}p?.(e)},...b,children:r(o,{size:f,variant:s})}),c,l)}export{o as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{shortcutAria as n}from"../lib/shortcutChip.js";import r from"./withTooltip.js";import i from"./renderIconProp.js";import{jsx as a}from"react/jsx-runtime";var o=[`linear`,`outline`,`bold`,`bulk`,`broken`,`twotone`];function s({icon:s,iconVariant:c,label:l,tooltipPlacement:u=`auto`,shortcut:d,danger:f=!1,disabled:p=!1,size:m=20,onClick:h,className:g=``,as:_,href:v,...y}){t(`AppActionIcon`,_===void 0?y:{...y,as:_}),e(`AppActionIcon`,`iconVariant`,c,o);let b=[`u-action`,f?`danger`:``,g].filter(Boolean).join(` `),{style:x,...S}=y,C={"--wui-action-size":`${m+16}px`,...x},w=_??(v?`a`:`button`),T=w===`button`;return r(a(w,{type:T?`button`:void 0,href:T||p?void 0:v,className:b,style:C,"aria-label":l,"aria-keyshortcuts":n(d),disabled:T?p:void 0,"aria-disabled":!T&&p?`true`:void 0,role:!T&&p?`link`:void 0,tabIndex:!T&&p?-1:void 0,onClick:e=>{if(p){e.preventDefault(),e.stopPropagation();return}h?.(e)},...S,children:i(s,{size:m,variant:c})}),l,u,d)}export{s as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./withTooltip.js";import r from"./AppIcon.js";import{initialsOf as i}from"../lib/initials.js";import{useEffect as a,useState as o}from"react";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";var u=[`circle`,`rounded`,`square`],d=[`primary`,`neutral`,`success`,`warning`,`danger`,`info`,`auto`],f=[`none`,`online`,`offline`,`away`,`busy`],p=new Set([`xs`,`sm`,`md`,`lg`,`xl`,`2xl`]),m={xs:20,sm:24,md:32,lg:48,xl:64,"2xl":96};function h(e){return i(e)||`?`}function g(e){let t=e||``,n=0;for(let e=0;e<t.length;e+=1)n=Math.imul(n,31)+t.charCodeAt(e)>>>0;return n%360}function _(e){if(typeof e==`number`)return e;if(m[e]!=null)return m[e];let t=Number.parseInt(e,10);return Number.isNaN(t)?32:t}function v({name:i,src:m,size:v=`md`,shape:y=`circle`,tone:b=`primary`,status:x=`none`,ring:S=!1,label:C,icon:w,badge:T,href:E,onClick:D,linkComponent:O,tooltip:k,tooltipPlacement:A,className:j=``,...M}){t(`AppAvatar`,M),e(`AppAvatar`,`shape`,y,u),e(`AppAvatar`,`tone`,b,d),e(`AppAvatar`,`status`,x,f);let{style:N,...P}=M,[F,I]=o(!1);a(()=>{I(!1)},[m]);let L=typeof v==`string`&&p.has(v),R=L?null:typeof v==`number`||/^\d+$/.test(v)?`${v}px`:v,z=E!=null||D!=null,B=m!=null&&m!==``&&!F,V=[`avatar`,L&&v!==`md`?`avatar-${v}`:``,y===`circle`?``:`avatar-${y}`,b===`primary`?``:`avatar-${b}`,S?`avatar-ring`:``,z?`avatar-clickable`:``,j].filter(Boolean).join(` `),H={};R&&(H[`--avatar-size`]=R),b===`auto`&&(H[`--avatar-hue`]=g(i));let U=Object.keys(H).length||N?{...H,...N}:void 0,W=c(`span`,{className:`avatar-face`,"aria-hidden":`true`,children:w==null?h(i):c(r,{name:w,size:Math.round(_(v)*.55)})}),G=l(s,{children:[x!==`none`&&c(`span`,{className:`avatar-status avatar-status-${x}`,"aria-hidden":`true`}),T!=null&&c(`span`,{className:`avatar-badge`,children:T}),C!=null&&c(`span`,{className:`avatar-label`,"aria-hidden":`true`,children:C})]}),K=l(s,{children:[W,B&&c(`img`,{className:`avatar-img`,src:m,alt:z?``:i||`Profile photo`,onError:()=>I(!0)}),G]});if(E!=null){let e=O||`a`,t=O?{to:E}:{href:E};return n(c(e,{className:V,style:U,...P,"aria-label":C||i,...t,onClick:D,children:K}),k,A)}return n(D==null?B?c(`span`,{className:V,style:U,...P,children:K}):c(`span`,{className:V,style:U,...P,role:`img`,"aria-label":i,children:K}):c(`button`,{type:`button`,className:V,style:U,...P,"aria-label":C||i,onClick:D,children:K}),k,A)}export{v as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./withTooltip.js";import r from"./AppIcon.js";import{initialsOf as i}from"../lib/initials.js";import{useEffect as a,useState as o}from"react";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";var u=[`circle`,`rounded`,`square`],d=[`primary`,`neutral`,`success`,`warning`,`danger`,`info`,`auto`],f=[`none`,`online`,`offline`,`away`,`busy`],p=new Set([`xs`,`sm`,`md`,`lg`,`xl`,`2xl`]),m={xs:20,sm:24,md:32,lg:48,xl:64,"2xl":96};function h(e){return i(e)||`?`}function g(e){let t=e||``,n=0;for(let e=0;e<t.length;e+=1)n=Math.imul(n,31)+t.charCodeAt(e)>>>0;return n%360}function _(e){if(typeof e==`number`)return e;if(m[e]!=null)return m[e];let t=Number.parseInt(e,10);return Number.isNaN(t)?32:t}function v({name:i,src:m,size:v=`md`,shape:y=`circle`,tone:b=`primary`,status:x=`none`,ring:S=!1,label:C,icon:w,badge:T,href:E,onClick:D,linkComponent:O,tooltip:k,tooltipPlacement:A,className:j=``,...M}){t(`AppAvatar`,M),e(`AppAvatar`,`shape`,y,u),e(`AppAvatar`,`tone`,b,d),e(`AppAvatar`,`status`,x,f);let{style:N,...P}=M,[F,I]=o(!1);a(()=>{I(!1)},[m]);let L=typeof v==`string`&&p.has(v),R=L?null:typeof v==`number`||/^\d+$/.test(v)?`${v}px`:v,z=E!=null||D!=null,B=m!=null&&m!==``&&!F,V=[`avatar`,L&&v!==`md`?`avatar-${v}`:``,y===`circle`?``:`avatar-${y}`,b===`primary`?``:`avatar-${b}`,S?`avatar-ring`:``,z?`avatar-clickable`:``,j].filter(Boolean).join(` `),H={};R&&(H[`--avatar-size`]=R),b===`auto`&&(H[`--avatar-hue`]=g(i));let U=Object.keys(H).length||N?{...H,...N}:void 0,W=c(`span`,{className:`avatar-face`,"aria-hidden":`true`,children:w==null?h(i):c(r,{name:w,size:Math.round(_(v)*.55)})}),G=l(s,{children:[x!==`none`&&c(`span`,{className:`avatar-status avatar-status-${x}`,"aria-hidden":`true`}),T!=null&&c(`span`,{className:`avatar-badge`,children:T}),C!=null&&c(`span`,{className:`avatar-label`,"aria-hidden":`true`,children:C})]}),K=l(s,{children:[W,B&&c(`img`,{className:`avatar-img`,src:m,alt:z?``:i||`Profile photo`,onError:()=>I(!0)}),G]});if(E!=null){let e=O||`a`,t=O?{to:E}:{href:E};return n(c(e,{className:V,style:U,...P,"aria-label":C||i,...t,onClick:D,children:K}),k,A)}if(D!=null)return n(c(`button`,{type:`button`,className:V,style:U,...P,"aria-label":C||i,onClick:D,children:K}),k,A);if(B)return n(c(`span`,{className:V,style:U,...P,children:K}),k,A);let q=C?.trim()||i?.trim();return n(q?c(`span`,{className:V,style:U,...P,role:`img`,"aria-label":q,children:K}):c(`span`,{className:V,style:U,...P,"aria-hidden":`true`,children:K}),k,A)}export{v as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./withTooltip.js";import r from"./AppIcon.js";import{Button as i}from"react-bootstrap";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s={primary:`primary`,secondary:`secondary`,outline:`outline-primary`,ghost:`ghost`,danger:`danger`,success:`success`,"secondary-danger":`secondary-danger`,"outline-danger":`outline-danger`,light:`light`,warning:`warning`,subtle:`subtle`,"outline-light":`outline-light`},c={sm:14,md:16,lg:20};function l(e,t,n){if(!e)return null;let i=t===`left`?`me-2`:`ms-2`;return typeof e==`string`?a(r,{name:e,size:c[n]??c.md,className:i}):a(`span`,{className:`d-inline-flex ${i}`,children:e})}function u({children:r,variant:u=`primary`,size:d=`md`,type:f=`button`,loading:p=!1,disabled:m=!1,block:h=!1,leftIcon:g=null,rightIcon:_=null,href:v,static:y=!1,tooltip:b,tooltipPlacement:x,className:S=``,...C}){if(t(`AppButton`,C),e(`AppButton`,`variant`,u,Object.keys(s)),e(`AppButton`,`size`,d,Object.keys(c)),y)return n(o(`span`,{className:[`btn`,`btn-${s[u]??`primary`}`,d===`sm`?`btn-sm`:d===`lg`?`btn-lg`:``,h?`w-100`:``,`btn-static`,S].filter(Boolean).join(` `),...C,children:[l(g,`left`,d),r,l(_,`right`,d)]}),b,x);let w=[h?`w-100`:``,p?`is-loading`:``,S].filter(Boolean).join(` `),T=(C.as===void 0||C.as===`button`)&&v===void 0&&C.to===void 0,E=T?{}:{role:void 0,tabIndex:m||p?-1:void 0};return n(o(i,{type:T?f:void 0,href:v,variant:s[u]??`primary`,size:d===`md`?void 0:d,disabled:m||p,"aria-busy":p||void 0,className:w||void 0,...E,...C,children:[p&&a(`span`,{className:`spinner-border spinner-border-sm me-2`,"aria-hidden":`true`}),!p&&l(g,`left`,d),r,!p&&l(_,`right`,d)]}),b,x)}export{u as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{shortcutAria as n,shortcutChip as r}from"../lib/shortcutChip.js";import i from"./withTooltip.js";import a from"./AppIcon.js";import{Button as o}from"react-bootstrap";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l={primary:`primary`,secondary:`secondary`,outline:`outline-primary`,ghost:`ghost`,danger:`danger`,success:`success`,"secondary-danger":`secondary-danger`,"outline-danger":`outline-danger`,light:`light`,warning:`warning`,subtle:`subtle`,"outline-light":`outline-light`},u={sm:14,md:16,lg:20};function d(e,t,n){if(!e)return null;let r=t===`left`?`me-2`:`ms-2`;return typeof e==`string`?s(a,{name:e,size:u[n]??u.md,className:r}):s(`span`,{className:`d-inline-flex ${r}`,children:e})}function f({children:a,variant:f=`primary`,size:p=`md`,type:m=`button`,loading:h=!1,disabled:g=!1,block:_=!1,leftIcon:v=null,rightIcon:y=null,href:b,static:x=!1,tooltip:S,tooltipPlacement:C,shortcut:w,className:T=``,...E}){if(t(`AppButton`,E),e(`AppButton`,`variant`,f,Object.keys(l)),e(`AppButton`,`size`,p,Object.keys(u)),x)return i(c(`span`,{className:[`btn`,`btn-${l[f]??`primary`}`,p===`sm`?`btn-sm`:p===`lg`?`btn-lg`:``,_?`w-100`:``,`btn-static`,T].filter(Boolean).join(` `),...E,children:[d(v,`left`,p),a,d(y,`right`,p)]}),S,C);let D=[_?`w-100`:``,h?`is-loading`:``,T].filter(Boolean).join(` `),O=(E.as===void 0||E.as===`button`)&&b===void 0&&E.to===void 0,k=O?{}:{role:void 0,tabIndex:g||h?-1:void 0},A=S!=null&&S!==``;return i(c(o,{type:O?m:void 0,href:b,variant:l[f]??`primary`,size:p===`md`?void 0:p,disabled:g||h,"aria-busy":h||void 0,"aria-keyshortcuts":n(w),className:D||void 0,...k,...E,children:[h&&s(`span`,{className:`spinner-border spinner-border-sm me-2`,"aria-hidden":`true`}),!h&&d(v,`left`,p),a,!h&&d(y,`right`,p),!A&&r(w)]}),S,C,w)}export{f as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{jsx as n}from"react/jsx-runtime";var r={sm:`btn-group-sm`,md:``,lg:`btn-group-lg`};function i({label:i,children:a,size:o=`md`,vertical:s=!1,fullWidth:c=!1,className:l=``,...u}){return t(`AppButtonGroup`,u),e(`AppButtonGroup`,`size`,o,Object.keys(r)),n(`div`,{role:`group`,"aria-label":i,className:[s?`btn-group-vertical`:`btn-group`,`wui-btn-group`,r[o]??``,c?`wui-btn-group-full`:``,l].filter(Boolean).join(` `),...u,children:a})}export{i as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import{Children as n}from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";import"@webority/ui-elements/elements/carousel";function a({label:a,autoplay:o,loop:s=!1,perView:c,perViewMd:l,perViewLg:u,arrows:d=!0,dots:f=!0,previousLabel:p=`Previous slide`,nextLabel:m=`Next slide`,dotLabel:h=`Go to slide`,pauseLabel:g=`Pause`,playLabel:_=`Play`,className:v=``,children:y,style:b,...x}){e(`AppCarousel`,x);let S=Number(o)>0?Math.round(Number(o)):0,C={...c>1?{"--wui-carousel-per-view":c}:null,...l>=1?{"--wui-carousel-per-view-md":l}:null,...u>=1?{"--wui-carousel-per-view-lg":u}:null};return i(`wui-carousel`,{class:[`wui-carousel`,v].filter(Boolean).join(` `),role:`region`,"aria-roledescription":`carousel`,"aria-label":a,autoplay:S||void 0,loop:s?``:void 0,"dot-label":h===`Go to slide`?void 0:h,"pause-label":g===`Pause`?void 0:g,"play-label":_===`Play`?void 0:_,style:Object.keys(C).length||b?{...C,...b}:void 0,...x,children:[S?i(`button`,{type:`button`,className:`wui-carousel-pause`,children:[r(`span`,{className:`wui-carousel-pause-icon`,"aria-hidden":`true`}),r(`span`,{className:`wui-carousel-pause-text`,children:g})]}):null,i(`div`,{className:`wui-carousel-stage`,children:[d?r(`button`,{type:`button`,className:`wui-carousel-arrow wui-carousel-prev`,"aria-label":p,children:r(t,{name:`chevron-left`,size:20})}):null,r(`div`,{className:`wui-carousel-track`,tabIndex:0,role:`group`,"aria-label":a,children:n.map(n.toArray(y),e=>r(`div`,{className:`wui-carousel-slide`,role:`group`,"aria-roledescription":`slide`,children:e}))}),d?r(`button`,{type:`button`,className:`wui-carousel-arrow wui-carousel-next`,"aria-label":m,children:r(t,{name:`chevron-right`,size:20})}):null]}),f?r(`div`,{className:`wui-carousel-dots`}):null,r(`span`,{className:`visually-hidden`,"data-wui-status":``,"aria-live":`polite`,"aria-atomic":`true`})]})}export{a as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{jsx as n}from"react/jsx-runtime";import"@webority/ui-elements/elements/overflow";var r=[`wrap`,`menu`];function i({children:i,overflow:a=`wrap`,moreLabel:o=`More`,label:s,className:c=``,...l}){t(`AppChipGroup`,l),e(`AppChipGroup`,`overflow`,a,r);let u=e=>[e,c].filter(Boolean).join(` `);return a===`menu`?n(`wui-overflow`,{class:`wui-chip-group-host`,label:o,children:n(`div`,{role:`group`,"aria-label":s,className:u(`wui-chip-group wui-chip-group-nowrap`),"data-wui-overflow-list":``,...l,children:i})}):n(`div`,{role:`group`,"aria-label":s,className:u(`wui-chip-group`),...l,children:i})}export{i as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{jsx as n}from"react/jsx-runtime";import"@webority/ui-elements/elements/code-block";var r=[`text`,`json`,`js`,`cs`,`sql`,`bash`,`http`,`html`,`css`];function i({code:i,language:a=`text`,lineNumbers:o=!1,wrap:s=!1,label:c,copyLabel:l,copiedLabel:u,className:d=``,...f}){return t(`AppCodeBlock`,f),e(`AppCodeBlock`,`language`,a,r),n(`wui-code-block`,{class:[`wui-code-block`,d].filter(Boolean).join(` `),language:a===`text`?void 0:a,"line-numbers":o?``:void 0,wrap:s?``:void 0,label:c||void 0,"copy-label":l||void 0,"copied-label":u||void 0,...f,children:n(`pre`,{className:`wui-code-source`,children:n(`code`,{children:i??``})})})}export{i as default};
@@ -1 +1 @@
1
- import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import n from"./renderIconProp.js";import r from"./AppSpinner.js";import i from"./AppModal.js";import{matchSegments as a}from"@webority/ui-elements/helpers";import{Fragment as o,useEffect as s,useId as c,useLayoutEffect as l,useRef as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import"@webority/ui-elements/elements/command-palette";var p=`lg`;function m({open:t,onClose:n,query:r=``,onQueryChange:a,placeholder:o=`Search…`,groups:s=[],loading:l=!1,emptyText:u=`No results`,footer:f,ariaLabel:m=`Search`,highlight:g=!0,id:_,className:v=``,...y}){e(`AppCommandPalette`,y);let b=c(),x=_||b;return d(i,{open:t,onClose:n,hideHeader:!0,placement:`top`,size:p,ariaLabel:m,className:`wui-cmd-card${v?` ${v}`:``}`,children:d(h,{baseId:x,query:r,onQueryChange:a,placeholder:o,groups:s,loading:l,emptyText:u,footer:f,ariaLabel:m,highlight:g,onClose:n,rest:y})})}function h({baseId:e,query:i,onQueryChange:a,placeholder:o,groups:c,loading:p,emptyText:m,footer:h,ariaLabel:v,highlight:y,onClose:b,rest:x}){let S=u(null),C=`${e}-list`,w=c.filter(e=>e.items?.length),T=!p&&i.trim()!==``&&w.length===0;return l(()=>{S.current?.refresh?.()}),s(()=>{let e=S.current,t=e=>{let t=c.find(t=>String(t.key)===e.detail.groupKey)?.items?.find(t=>String(t.key)===e.detail.key);t&&(e.preventDefault(),t.onSelect?.(),b?.())};return e.addEventListener(`wui-command-palette:select`,t),()=>e.removeEventListener(`wui-command-palette:select`,t)},[c,b]),f(`wui-command-palette`,{ref:S,...x,children:[f(`div`,{className:`wui-cmd-search`,children:[d(`span`,{className:`wui-cmd-search-icon`,"aria-hidden":`true`,children:d(t,{name:`search`,size:18})}),d(`input`,{className:`wui-cmd-input`,type:`text`,role:`combobox`,"aria-expanded":`true`,"aria-controls":C,"aria-autocomplete":`list`,"aria-label":v,placeholder:o,autoComplete:`off`,spellCheck:!1,"data-autofocus":``,value:i,onChange:e=>a?.(e.target.value)}),p&&d(r,{size:`sm`,className:`wui-cmd-spinner`})]}),d(`div`,{className:`wui-cmd-list`,role:`listbox`,id:C,"aria-label":`Results`,"aria-busy":p?`true`:void 0,hidden:w.length===0,children:w.map(t=>{let r=`${e}-${_(t.key)}`;return f(`div`,{className:`wui-cmd-group`,role:`group`,"aria-labelledby":r,children:[d(`div`,{className:`wui-cmd-group-label`,role:`presentation`,id:r,children:t.label}),t.items.map(e=>{let a=`${r}-${_(e.key)}`,o=e.description==null?null:`${a}-desc`,s=e.meta==null?null:`${a}-meta`;return f(`div`,{className:`wui-cmd-item`,role:`option`,id:a,"data-group-key":String(t.key),"data-key":String(e.key),"aria-label":e.ariaLabel||(typeof e.label==`string`?e.label:``)||void 0,"aria-describedby":[o,s].filter(Boolean).join(` `)||void 0,"aria-disabled":e.disabled?`true`:void 0,children:[e.icon!=null&&d(`span`,{className:`wui-cmd-item-icon`,"aria-hidden":`true`,children:n(e.icon,{size:18})}),f(`span`,{className:`wui-cmd-item-text`,children:[d(`span`,{className:`wui-cmd-item-label`,children:y?g(e.label,i):e.label}),o&&d(`span`,{className:`wui-cmd-item-desc`,id:o,children:e.description})]}),s&&d(`span`,{className:`wui-cmd-item-meta`,id:s,children:e.meta})]},e.key)})]},t.key)})}),d(`div`,{className:`wui-cmd-empty`,role:`status`,children:T?m:null}),h!=null&&d(`div`,{className:`wui-cmd-footer`,children:h})]})}function g(e,t){if(typeof e!=`string`)return e;let n=a(e,t);if(n.length===1&&!n[0].match)return e;let r=0;return n.map(e=>{let t=r;return r+=e.text.length,e.match?d(`mark`,{className:`wui-cmd-mark`,children:e.text},t):d(o,{children:e.text},t)})}function _(e){return String(e).replace(/\s+/g,`_`)}export{m as default};
1
+ import e from"./warnUnknownProps.js";import{shortcutAria as t,shortcutChip as n}from"../lib/shortcutChip.js";import r from"./AppIcon.js";import i from"./renderIconProp.js";import a from"./AppSpinner.js";import o from"./AppModal.js";import{matchSegments as s}from"@webority/ui-elements/helpers";import{Fragment as c,useEffect as l,useId as u,useLayoutEffect as d,useRef as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import"@webority/ui-elements/elements/command-palette";var h=`lg`;function g({open:t,onClose:n,query:r=``,onQueryChange:i,placeholder:a=`Search…`,groups:s=[],path:c=[],onPathChange:l,rootLabel:d,backLabel:f=`Back`,recentsKey:m,recentsLimit:g,recentsLabel:v,loading:y=!1,emptyText:b=`No results`,footer:x,ariaLabel:S=`Search`,highlight:C=!0,id:w,className:T=``,...E}){e(`AppCommandPalette`,E);let D=u(),O=w||D;return p(o,{open:t,onClose:n,hideHeader:!0,placement:`top`,size:h,ariaLabel:S,className:`wui-cmd-card${T?` ${T}`:``}`,children:p(_,{baseId:O,query:r,onQueryChange:i,placeholder:a,groups:s,path:c,onPathChange:l,rootLabel:d,backLabel:f,recentsKey:m,recentsLimit:g,recentsLabel:v,loading:y,emptyText:b,footer:x,ariaLabel:S,highlight:C,onClose:n,rest:E})})}function _({baseId:e,query:o,onQueryChange:s,placeholder:c,groups:u,path:h,onPathChange:g,rootLabel:_,backLabel:b,recentsKey:x,recentsLimit:S,recentsLabel:C,loading:w,emptyText:T,footer:E,ariaLabel:D,highlight:O,onClose:k,rest:A}){let j=f(null),M=`${e}-list`,N=u.filter(e=>e.items?.length),P=!w&&o.trim()!==``&&N.length===0;return d(()=>{j.current?.refresh?.()}),l(()=>{let e=j.current,t=e=>{let t=u.find(t=>String(t.key)===e.detail.groupKey)?.items?.find(t=>String(t.key)===e.detail.key);if(t){if(e.preventDefault(),t.page){s?.(``),g?.([...h,{key:t.page.key,label:t.page.label}]);return}t.onSelect?.(),k?.()}},n=e=>{e.preventDefault(),s?.(``),g?.(e.detail.path)};return e.addEventListener(`wui-command-palette:select`,t),e.addEventListener(`wui-command-palette:navigate`,n),()=>{e.removeEventListener(`wui-command-palette:select`,t),e.removeEventListener(`wui-command-palette:navigate`,n)}},[u,h,k,s,g]),m(`wui-command-palette`,{ref:j,path:JSON.stringify(h),"root-label":_,"recents-key":x,"recents-limit":S,"recents-label":C,...A,children:[m(`div`,{className:`wui-cmd-search`,children:[p(`span`,{className:`wui-cmd-search-icon`,"aria-hidden":`true`,children:p(r,{name:`search`,size:18})}),p(`input`,{className:`wui-cmd-input`,type:`text`,role:`combobox`,"aria-expanded":`true`,"aria-controls":M,"aria-autocomplete":`list`,"aria-label":D,placeholder:c,autoComplete:`off`,spellCheck:!1,"data-autofocus":``,value:o,onChange:e=>s?.(e.target.value)}),w&&p(a,{size:`sm`,className:`wui-cmd-spinner`})]}),m(`div`,{className:`wui-cmd-crumbs`,hidden:!0,children:[p(`button`,{type:`button`,className:`wui-cmd-back`,"aria-label":b,children:p(r,{name:`chevron-left`,size:16})}),p(`ol`,{className:`wui-cmd-trail`})]}),m(`div`,{className:`wui-cmd-list`,role:`listbox`,id:M,"aria-label":`Results`,"aria-busy":w?`true`:void 0,hidden:N.length===0,children:[p(`div`,{className:`wui-cmd-recents`}),N.map(a=>{let s=`${e}-${y(a.key)}`;return m(`div`,{className:`wui-cmd-group`,role:`group`,"aria-labelledby":s,children:[p(`div`,{className:`wui-cmd-group-label`,role:`presentation`,id:s,children:a.label}),a.items.map(e=>{let c=`${s}-${y(e.key)}`,l=e.description==null?null:`${c}-desc`,u=e.meta==null?null:`${c}-meta`;return m(`div`,{className:`wui-cmd-item`,role:`option`,id:c,"data-group-key":String(a.key),"data-key":String(e.key),"data-opens":e.page?String(e.page.key):void 0,"aria-label":e.ariaLabel||(typeof e.label==`string`?e.label:``)||void 0,"aria-describedby":[l,u].filter(Boolean).join(` `)||void 0,"aria-disabled":e.disabled?`true`:void 0,"aria-keyshortcuts":t(e.shortcut),children:[e.icon!=null&&p(`span`,{className:`wui-cmd-item-icon`,"aria-hidden":`true`,children:i(e.icon,{size:18})}),m(`span`,{className:`wui-cmd-item-text`,children:[p(`span`,{className:`wui-cmd-item-label`,children:O?v(e.label,o):e.label}),l&&p(`span`,{className:`wui-cmd-item-desc`,id:l,children:e.description})]}),u&&p(`span`,{className:`wui-cmd-item-meta`,id:u,children:e.meta}),n(e.shortcut),e.page&&p(`span`,{className:`wui-cmd-item-chevron`,"aria-hidden":`true`,children:p(r,{name:`chevron-right`,size:16})})]},e.key)})]},a.key)})]}),p(`div`,{className:`wui-cmd-empty`,role:`status`,children:P?T:null}),E!=null&&p(`div`,{className:`wui-cmd-footer`,children:E})]})}function v(e,t){if(typeof e!=`string`)return e;let n=s(e,t);if(n.length===1&&!n[0].match)return e;let r=0;return n.map(e=>{let t=r;return r+=e.text.length,e.match?p(`mark`,{className:`wui-cmd-mark`,children:e.text},t):p(c,{children:e.text},t)})}function y(e){return String(e).replace(/\s+/g,`_`)}export{g as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import{initialsOf as n}from"../lib/initials.js";import{formatDate as r,formatNumber as i,toInstant as a}from"@webority/ui-elements/helpers";import{Fragment as o,useEffect as s,useId as c,useRef as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{COMMENT_REACTIONS as f,COMMENT_TEXT as p}from"@webority/ui-elements/elements/comment-thread";import{parseMentionValue as m}from"@webority/ui-elements/elements/mention-input";function h({comments:t=[],onPost:n,onReply:r,onEdit:i,onDelete:a,onReact:o,people:m,loadPeople:h,reactionChoices:_,readOnly:v=!1,label:y=p.listName,id:b,className:x=``,...S}){e(`AppCommentThread`,S);let C=c(),w=b||`comment-thread-${C.replace(/[^a-zA-Z0-9_-]/g,``)}`,T=l(null),E=typeof h==`function`,D=_?.length?_:f,O=l(null);return O.current={onPost:n,onReply:r,onEdit:i,onDelete:a,onReact:o,loadPeople:h},s(()=>{let e=T.current;if(e)return e.submit=async({intent:e,commentId:t,parentId:n,body:r,emoji:i})=>{let a=O.current;e===`post`?await a.onPost?.(r):e===`reply`?await a.onReply?.(n,r):e===`edit`?await a.onEdit?.(t,r):e===`delete`?await a.onDelete?.(t):e===`react`&&await a.onReact?.(t,i)},()=>{e.submit=void 0}},[]),s(()=>{let e=T.current;!e||E||(e.people=m||[])},[m,E]),s(()=>{let e=T.current;if(!e||!E)return;let t=new WeakMap,n=async e=>{let n=e.target,r=(t.get(n)??0)+1;t.set(n,r),n.loading=!0;try{let i=await O.current.loadPeople(e.detail.query);t.get(n)===r&&(n.people=i||[])}catch{t.get(n)===r&&(n.people=[])}finally{t.get(n)===r&&(n.loading=!1)}};return e.addEventListener(`search`,n),()=>e.removeEventListener(`search`,n)},[E]),d(`wui-comment-thread`,{ref:T,id:w,class:x?`wui-comment-thread ${x}`:`wui-comment-thread`,controlled:``,"read-only":v?``:void 0,remote:E?``:void 0,"reaction-choices":_?.length?_.join(` `):void 0,...S,children:[u(`div`,{className:`wui-comment-items`,"data-wui-items":``,children:t.length?u(`ol`,{className:`wui-comment-list`,"aria-label":y,children:t.map(e=>u(g,{comment:e,topLevel:!0,readOnly:v},e.id))}):u(`p`,{className:`wui-comment-empty`,children:p.empty})}),!v&&u(`div`,{className:`wui-reaction-picker`,role:`group`,"aria-label":p.pickerName,"data-wui-picker":``,hidden:!0,children:D.map(e=>u(`button`,{type:`button`,className:`wui-reaction-choice`,"data-wui-emoji":e,children:e},e))}),!v&&d(`div`,{className:`wui-comment-composer`,"data-wui-composer":``,children:[u(`wui-mention-input`,{id:`${w}-new`,class:`wui-mention-input`,label:p.composerLabel,placeholder:p.composerPlaceholder,rows:`3`,remote:E?``:void 0}),u(`div`,{className:`wui-comment-form-actions`,children:u(`button`,{type:`button`,className:`btn btn-primary btn-sm`,"data-wui-action":`post`,children:p.post})}),u(`div`,{className:`wui-comment-error`,"data-wui-error":``,hidden:!0})]}),u(`span`,{className:`visually-hidden`,"data-wui-live":``,"aria-live":`polite`,"aria-atomic":`true`})]})}function g({comment:e,topLevel:s=!1,readOnly:c}){let{id:l,author:f,at:h,value:_,edited:v,deleted:y,canEdit:b,canDelete:x,reactions:S=[],replies:C=[]}=e,w=f?.name||``,T=a(h),E=!c&&!y&&b,D=!c&&!y&&x;return d(`li`,{className:`wui-comment`,"data-wui-comment":l,"data-value":_??``,"data-wui-deleted":y?``:void 0,children:[d(`div`,{className:`wui-comment-row`,children:[d(`span`,{className:`avatar avatar-sm wui-comment-avatar`,"aria-hidden":`true`,children:[u(`span`,{className:`avatar-face`,children:n(w)||`?`}),f?.src&&u(`img`,{className:`avatar-img`,src:f.src,alt:``,onError:e=>{e.currentTarget.hidden=!0}})]}),d(`div`,{className:`wui-comment-main`,children:[d(`div`,{className:`wui-comment-head`,children:[u(`span`,{className:`wui-comment-author`,children:w}),u(`time`,{className:`wui-comment-time`,dateTime:Number.isFinite(T)?new Date(T).toISOString():void 0,children:r(h,{pattern:`datetime`})}),v&&!y&&u(`span`,{className:`wui-comment-edited`,children:p.edited})]}),y?u(`div`,{className:`wui-comment-text wui-comment-text-deleted`,children:p.deleted}):u(`div`,{className:`wui-comment-text`,"data-wui-text":``,children:m(_).map((e,t)=>`text`in e?u(o,{children:e.text},t):d(`span`,{className:`wui-mention`,"data-mention-id":e.id,children:[`@`,e.label]},t))}),E&&u(`div`,{className:`wui-comment-editor`,"data-wui-editor":``,hidden:!0}),!y&&(S.length>0||!c)&&d(`div`,{className:`wui-comment-reactions`,role:`group`,"aria-label":p.reactions,children:[S.map(e=>c?d(`span`,{className:e.mine?`wui-reaction wui-reaction-mine`:`wui-reaction`,children:[u(`span`,{className:`wui-reaction-emoji`,children:e.emoji}),u(`span`,{className:`wui-reaction-count`,children:i(e.count,{decimals:0})})]},e.emoji):d(`button`,{type:`button`,className:e.mine?`wui-reaction wui-reaction-mine`:`wui-reaction`,"data-wui-emoji":e.emoji,"aria-pressed":e.mine?`true`:`false`,children:[u(`span`,{className:`wui-reaction-emoji`,children:e.emoji}),u(`span`,{className:`wui-reaction-count`,children:i(e.count,{decimals:0})})]},e.emoji)),!c&&u(`button`,{type:`button`,className:`wui-reaction-add`,"data-wui-action":`react-menu`,"aria-label":p.addReaction,"aria-haspopup":`true`,"aria-expanded":`false`,children:u(t,{name:`emoji-smile`,size:16})})]}),!c&&!y&&(s||E||D)&&d(`div`,{className:`wui-comment-actions`,"data-wui-actions":``,children:[s&&u(`button`,{type:`button`,className:`wui-comment-action`,"data-wui-action":`reply`,children:p.reply}),E&&u(`button`,{type:`button`,className:`wui-comment-action`,"data-wui-action":`edit`,children:p.edit}),D&&u(`button`,{type:`button`,className:`wui-comment-action`,"data-wui-action":`delete`,children:p.delete})]}),D&&d(`div`,{className:`wui-comment-confirm`,"data-wui-confirm":``,hidden:!0,children:[u(`span`,{className:`wui-comment-confirm-text`,children:p.confirmDelete}),u(`button`,{type:`button`,className:`btn btn-danger btn-sm`,"data-wui-action":`confirm-delete`,children:p.delete}),u(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,"data-wui-action":`cancel-delete`,children:p.cancel})]}),!c&&u(`div`,{className:`wui-comment-error`,"data-wui-error":``,hidden:!0})]})]}),s&&C.length>0&&u(`ol`,{className:`wui-comment-list wui-comment-replies`,"aria-label":p.repliesName(w),children:C.map(e=>u(g,{comment:e,readOnly:c},e.id))}),s&&!c&&!y&&u(`div`,{className:`wui-comment-reply`,"data-wui-reply":``,hidden:!0})]})}export{h as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import{AppSkeletonRows as r}from"./AppSkeleton.js";import i from"./AppTablePagination.js";import{attachScrollEdges as a}from"@webority/ui-elements/helpers";import{Fragment as o,useEffect as s,useRef as ee,useState as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";var te=[`comfortable`,`cozy`,`compact`];function f(e){return e===`end`?`wui-cell-end`:e===`num`?`num`:e===`center`?`text-center`:``}function ne(e){return e==null||e===``?`-`:typeof e==`boolean`?String(e):e}function p({columns:p,rows:m,rowKey:h=e=>e.id,sort:g,onSort:_,loading:v=!1,skeletonRows:y=5,empty:b=`No records found.`,emptyFiltered:x,sourceCount:re,rowActions:S,rowActionsLabel:C,pagination:w,ariaLabel:T,className:ie=``,wrapperClassName:E=``,selectable:D=!1,selectedIds:O,onToggleRow:k,onToggleAll:ae,renderExpanded:A,density:j=`comfortable`,striped:oe=!1,maxHeight:M,stickyFirstColumn:se=!1,stickyActions:N=!1,stackOnMobile:P=!1,hiddenColumns:F,rowStatus:I,rowHref:L,onRowClick:R,...z}){t(`AppDataTable`,z);let B=F?.length?new Set(F):null;p=B?p.filter(e=>!(e.hideable&&B.has(e.key))):p,e(`AppDataTable`,`density`,j,te);let V=[`table table-ledger`,j===`cozy`||j===`compact`?`wui-table-${j}`:``,oe?`wui-table-striped`:``,se?`wui-table-sticky-first`:``,N?`wui-table-sticky-actions`:``,P?`wui-table-stack`:``,ie].filter(Boolean).join(` `),H=typeof A==`function`,[U,W]=c(()=>new Set),G=e=>W(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),ce=p.some(e=>typeof e.footer==`function`),K=typeof L==`function`||typeof R==`function`,le=e=>!!e.target.closest(`a, button, input, select, textarea, label, [role='menu'], [role='menuitem'], .dropdown`),q=(e,t)=>{if(le(t)||(R&&R(e),!L))return;let n=L(e);n&&(t.ctrlKey||t.metaKey||t.button===1?window.open(n,`_blank`,`noopener`):window.location.assign(n))},J=M!==void 0,ue=[`table-wrap`,J?`wui-table-scroll`:``,E].filter(Boolean).join(` `),de=J?{maxHeight:M}:void 0,Y=Math.max(1,p.length+ +!!S+ +!!D+ +!!H),X=D&&m?m.reduce((e,t,n)=>e+ +!!O?.has(h(t,n)),0):0,Z=D&&m&&m.length>0&&X===m.length,fe=X>0&&!Z,pe=e=>{e&&(e.indeterminate=fe)},Q=ee(null);s(()=>{let e=Q.current;if(!e)return;let t=e=>{let t=e.target.closest?.(`.u-name`);t&&!t.title&&(t.scrollWidth>t.clientWidth||t.scrollHeight>t.clientHeight)&&(t.title=t.textContent.trim())};e.addEventListener(`mouseover`,t),e.addEventListener(`focusin`,t);let n=a(e);return()=>{e.removeEventListener(`mouseover`,t),e.removeEventListener(`focusin`,t),n()}},[]);let $=x!==void 0&&re>0?x:b;return d(l,{children:[d(`div`,{ref:Q,className:ue,style:de,tabIndex:0,...z,children:[d(`table`,{className:V,"aria-label":T,children:[u(`thead`,{children:d(`tr`,{children:[H&&u(`th`,{className:`wui-expand-cell`,children:u(`span`,{className:`visually-hidden`,children:`Expand`})}),D&&u(`th`,{className:`wui-select-cell`,children:u(`input`,{ref:pe,type:`checkbox`,className:`wui-check`,checked:Z,onChange:e=>ae?.(e.target.checked),"aria-label":`Select all rows`})}),p.map((e,t)=>{let r=!!(e.sortable&&_),i=g&&g.key===e.key,a=e.align===`num`||e.align===`end`,o=r&&u(`span`,{className:`sort-icon${a?` wui-sort-lead`:``}`,children:u(n,{name:`chevrons-up-down`,size:14})});return d(`th`,{className:(r?`sortable `:``)+(t===0?`wui-name-cell `:``)+(e.nowrap?`text-nowrap `:``)+f(e.align),style:e.width||e.minWidth?{width:e.width,minWidth:e.minWidth}:void 0,tabIndex:r?0:void 0,"aria-sort":i?g.dir===`asc`?`ascending`:`descending`:r?`none`:void 0,onClick:r?()=>_(e.key):void 0,onKeyDown:r?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),_(e.key))}:void 0,children:[a&&o,e.label,!a&&o]},e.key)}),S&&(C?u(`th`,{className:`wui-cell-end`,children:C}):u(`th`,{className:`wui-cell-end`,children:u(`span`,{className:`visually-hidden`,children:`Actions`})}))]})}),u(`tbody`,{children:v?u(r,{rows:y,cols:Y}):m?.length?m.map((e,t)=>{let r=h(e,t),i=H&&U.has(r),a=String(r).replace(/[^a-z0-9]/gi,`_`);return d(o,{children:[d(`tr`,{className:[D&&O?.has(r)?`is-selected`:``,K?`wui-row-link`:``].filter(Boolean).join(` `)||void 0,"data-status":I?.(e)||void 0,"data-href":L?.(e)||void 0,tabIndex:K?0:void 0,onClick:K?t=>q(e,t):void 0,onAuxClick:K&&L?t=>t.button===1&&q(e,t):void 0,onKeyDown:K?t=>{t.key===`Enter`&&t.target===t.currentTarget&&q(e,t)}:void 0,children:[H&&u(`td`,{className:`wui-expand-cell`,children:u(`button`,{type:`button`,className:`wui-expand-toggle${i?` is-open`:``}`,"aria-expanded":i,"aria-controls":i?`${a}-expanded`:void 0,"aria-label":i?`Collapse row`:`Expand row`,onClick:()=>G(r),children:u(n,{name:`chevron-down`,size:16})})}),D&&u(`td`,{className:`wui-select-cell`,children:u(`input`,{type:`checkbox`,className:`wui-check`,checked:O?.has(r)||!1,onChange:()=>k?.(r),"aria-label":`Select row`})}),p.map((t,n)=>u(`td`,{className:(n===0?`wui-name-cell `:``)+(t.nowrap?`text-nowrap `:``)+f(t.align)+(t.cellClassName?` ${t.cellClassName}`:``),style:t.cellStyle,"data-label":P&&typeof t.label==`string`?t.label:void 0,children:t.render?t.render(e):ne(e[t.key])},t.key)),S&&u(`td`,{children:u(`div`,{className:`u-row-actions`,children:S(e)})})]}),i&&u(`tr`,{className:`wui-row-expanded`,children:u(`td`,{id:`${a}-expanded`,colSpan:Y,children:A(e)})})]},r)}):null}),ce&&!v&&m?.length>0&&u(`tfoot`,{children:d(`tr`,{children:[H&&u(`td`,{className:`wui-expand-cell`}),D&&u(`td`,{className:`wui-select-cell`}),p.map((e,t)=>u(`td`,{className:(t===0?`wui-name-cell `:``)+(e.nowrap?`text-nowrap `:``)+f(e.align),children:e.footer?e.footer(m):null},e.key)),S&&u(`td`,{})]})})]}),!v&&!m?.length&&u(`div`,{className:`tbl-empty-block`,children:typeof $==`string`?u(`div`,{className:`tbl-empty-plain`,children:$}):$})]}),w&&w.total>0&&u(i,{page:w.page,totalPages:w.totalPages,pageSize:w.pageSize,onPageChange:w.setPage,onPageSizeChange:w.setPageSize,pageSizes:w.pageSizes,mode:w.mode})]})}export{p as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import{AppSkeletonRows as r}from"./AppSkeleton.js";import i from"./AppTablePagination.js";import{attachScrollEdges as a}from"@webority/ui-elements/helpers";import{Fragment as o,useEffect as s,useLayoutEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{Fragment as ee,jsx as f,jsxs as p}from"react/jsx-runtime";import{COLUMN_MAX_WIDTH as te,COLUMN_MIN_WIDTH as ne,DATA_TABLE_TEXT as re,PIN_AT_VAR as ie,PIN_SIDES as ae,ROW_HEIGHTS as oe,ROW_MOVE_LIMIT as se,ROW_SAVE_ERROR_CLASS as ce,groupCount as le,groupItems as ue,measureRows as de,pinAtValue as fe,pinClasses as pe,planPins as me,playRowMoves as he,rowOrderChanged as ge,saveOutcomeText as _e,settledRows as ve,virtualRange as ye}from"@webority/ui-elements/elements/data-table";var be=[`comfortable`,`cozy`,`compact`],m=()=>{try{return process.env.NODE_ENV!==`production`}catch{return!0}},h=new Set;function g(e,t){h.has(e)||!m()||(h.add(e),console.warn(`[@webority/ui-react] <AppDataTable> ${t}`))}var xe=100;function Se(e){return e===`end`?`wui-cell-end`:e===`num`?`num`:e===`center`?`text-center`:``}function Ce(e){return e==null||e===``?`-`:typeof e==`boolean`?String(e):e}function _({columns:m,rows:h,rowKey:_=e=>e.id,sort:v,onSort:y,loading:b=!1,skeletonRows:we=5,empty:Te=`No records found.`,emptyFiltered:Ee,sourceCount:De,rowActions:x,rowActionsLabel:Oe,pagination:S,ariaLabel:ke,className:Ae=``,wrapperClassName:je=``,selectable:C=!1,selectedIds:w,onToggleRow:Me,onToggleAll:Ne,onSelectRange:Pe,renderExpanded:Fe,density:T=`comfortable`,striped:Ie=!1,maxHeight:E,stickyFirstColumn:Le=!1,stickyActions:Re=!1,stackOnMobile:D=!1,hiddenColumns:ze,rowStatus:Be,rowHref:O,onRowClick:k,activeRowKey:Ve,resizableColumns:A=!1,viewKey:He,groupBy:j,groupLabel:Ue,virtual:M=!1,rowSaving:We,rowSaveError:Ge,...Ke}){t(`AppDataTable`,Ke);let qe=ze?.length?new Set(ze):null;m=qe?m.filter(e=>!(e.hideable&&qe.has(e.key))):m,e(`AppDataTable`,`density`,T,be);for(let t of m)e(`AppDataTable`,`column.pin`,t.pin,ae);let Je=[`table table-ledger`,T===`cozy`||T===`compact`?`wui-table-${T}`:``,Ie?`wui-table-striped`:``,Le?`wui-table-sticky-first`:``,Re?`wui-table-sticky-actions`:``,D?`wui-table-stack`:``,Ae].filter(Boolean).join(` `),N=typeof Fe==`function`,[Ye,Xe]=d(()=>new Set),Ze=e=>Xe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),Qe=m.some(e=>typeof e.footer==`function`),P=typeof O==`function`||typeof k==`function`,$e=e=>!!e.target.closest(`a, button, input, select, textarea, label, [role='menu'], [role='menuitem'], .dropdown`),F=(e,t)=>{if($e(t)||(k&&k(e),!O))return;let n=O(e);n&&(t.ctrlKey||t.metaKey||t.button===1?window.open(n,`_blank`,`noopener`):window.location.assign(n))},I=E!==void 0,et=[`table-wrap`,I?`wui-table-scroll`:``,je].filter(Boolean).join(` `),tt=I?{maxHeight:E}:void 0,L=Math.max(1,m.length+ +!!x+ +!!C+ +!!N),nt=m.some(e=>e.pin===`start`||e.pin===`end`),R=nt||A||!!j||M,z=+!!N+ +!!C,rt=nt?me([...N?[`lead`]:[],...C?[`lead`]:[],...m.map(e=>e.pin===`start`||e.pin===`end`?e.pin:null),...x?[null]:[]]):[],B=(e,t=``)=>{let n=rt[e];return n?{className:`${t.trim()} ${pe(n)}`.trim(),style:{[ie]:fe(n.side,n.ordinal)}}:{className:t,style:void 0}},V=(e,t)=>rt[e]?{...t,...B(e).style}:t,it=m.length-1+ +!!x;He&&!A&&g(`view-key`,"`viewKey` remembers resized widths: add `resizableColumns`."),M&&!I&&g(`virtual-height`,"`virtual` needs `maxHeight`: without a scroll box every row renders."),M&&(N||D)&&g(`virtual-shape`,"`virtual` takes rows of one height, so it is off with `renderExpanded` or `stackOnMobile`.");let H=M&&I&&!N&&!D&&!b&&h?.length>0,at=C&&h?h.reduce((e,t,n)=>e+ +!!w?.has(_(t,n)),0):0,ot=C&&h&&h.length>0&&at===h.length,st=at>0&&!ot,ct=e=>{e&&(e.indeterminate=st)},lt=u(null),ut=(e,t)=>{let n=lt.current;lt.current=e;let r=t&&n!==null?h.findIndex((e,t)=>_(e,t)===n):-1,i=h.findIndex((t,n)=>_(t,n)===e);if(r<0||i<0||r===i){Me?.(e);return}let a=!w?.has(e),o=h.slice(Math.min(r,i),Math.max(r,i)+1).map((e,t)=>_(e,Math.min(r,i)+t)).filter(e=>(w?.has(e)||!1)!==a);if(Pe)Pe(o,a);else for(let e of o)Me?.(e)},[U,dt]=d(()=>new Set),ft=e=>dt(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),W=l(()=>{let e=(h||[]).map((e,t)=>({row:e,i:t}));return j?ue(e,({row:e})=>String(e[j]??``)).flatMap(e=>[{group:e,open:!U.has(e.key)},...U.has(e.key)?[]:e.items]):e},[h,j,U]),G=u(null),K=u(null);s(()=>{let e=G.current;if(!e)return;let t=e=>{let t=e.target.closest?.(`.u-name`);t&&!t.title&&(t.scrollWidth>t.clientWidth||t.scrollHeight>t.clientHeight)&&(t.title=t.textContent.trim())},n=e=>{let t=e.target.closest?.(`tbody > tr[aria-rowindex]`)?.getAttribute(`aria-rowindex`);K.current=t?Number(t)-2:null},r=t=>{e.contains(t.relatedTarget)||(K.current=null)};e.addEventListener(`mouseover`,t),e.addEventListener(`focusin`,t),e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,r);let i=a(e);return()=>{e.removeEventListener(`mouseover`,t),e.removeEventListener(`focusin`,t),e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,r),i()}},[R]);let[pt,mt]=d({top:0,height:0}),[q,ht]=d(oe[T]??oe.comfortable);s(()=>{let e=G.current;if(!H||!e)return;let t=0,n=()=>{t=0;let n=e.querySelector(`:scope > table > thead`)?.getBoundingClientRect().height||0,r={top:Math.max(0,e.scrollTop-n),height:e.clientHeight};mt(e=>e.top===r.top&&e.height===r.height?e:r)},r=()=>{t||=requestAnimationFrame(n)};e.addEventListener(`scroll`,r,{passive:!0});let i=typeof ResizeObserver<`u`?new ResizeObserver(r):null;return i?.observe(e),n(),()=>{e.removeEventListener(`scroll`,r),i?.disconnect(),t&&cancelAnimationFrame(t)}},[H,R]),c(()=>{if(!H)return;let e=(G.current?.querySelector(`:scope > table > tbody > tr:not(.wui-virtual-spacer, .wui-group-row)`))?.getBoundingClientRect().height;e>0&&Math.abs(e-q)>.5&&ht(e)});let J={start:0,end:W.length,before:0,after:0};if(H){J=ye({scrollTop:pt.top,viewport:pt.height||Number.parseFloat(E)||0,rowHeight:q,count:W.length});let e=K.current;e!==null&&e>=0&&e<W.length&&(e<J.start&&J.start-e<=xe&&(J={...J,start:e,before:e*q}),e>=J.end&&e-J.end<xe&&(J={...J,end:e+1,after:(W.length-e-1)*q}))}let gt=u(null),Y=u(null),X=u(null),_t=!M&&!b&&h?.length>0&&h.length<=se;c(()=>{let e=gt.current;if(!_t||!e){Y.current=null,X.current=null;return}let t=h.map((e,t)=>_(e,t));ge(X.current,t)&&he(e.rows,Y.current),Y.current=de(e.rows),X.current=t});let vt=typeof We==`function`||typeof Ge==`function`,yt=e=>{let t=!!We?.(e),n=t?``:Ge?.(e)||``;return{state:t?`saving`:n?`error`:null,message:n}},bt=u(null),Z=u(null);s(()=>{if(!vt){Z.current=null;return}let e=m[0]?.key,t=new Map;(h||[]).forEach((n,r)=>{let i=e===void 0?void 0:n[e],a=typeof i==`string`||typeof i==`number`?String(i):``;t.set(_(n,r),{...yt(n),label:a})});let n=_e(ve(Z.current,t));Z.current=t,n&&bt.current&&(bt.current.textContent=n)});let xt=Ee!==void 0&&De>0?Ee:Te,St=({group:e,open:t},r)=>{let i=e.items[0].row[j],a=e.items.map(e=>e.row);return f(`tr`,{className:`wui-group-row`,"data-group-key":e.key,"aria-rowindex":H?r+2:void 0,children:f(`th`,{className:`wui-group-cell`,scope:`rowgroup`,colSpan:L,children:p(`button`,{type:`button`,className:`wui-group-toggle`,"aria-expanded":t,onClick:()=>ft(e.key),children:[f(n,{name:`chevron-down`,size:16}),f(`span`,{className:`wui-group-label`,children:Ue?Ue(i,a):Ce(i)}),f(`span`,{className:`wui-group-count`,"aria-hidden":`true`,children:le(e.items.length)}),f(`span`,{className:`visually-hidden wui-group-rows`,children:`, ${re.rows(e.items.length)}`})]})})},`group:${e.key}`)},Ct=({row:e,i:t},r)=>{let i=_(e,t),a=N&&Ye.has(i),s=Ve!=null&&String(Ve)===String(i),c=String(i).replace(/[^a-z0-9]/gi,`_`),l=B(0,`wui-expand-cell`),u=B(+!!N,`wui-select-cell`),d=vt?yt(e):null;return p(o,{children:[p(`tr`,{className:[C&&w?.has(i)?`is-selected`:``,P?`wui-row-link`:``,s?`wui-row-active`:``].filter(Boolean).join(` `)||void 0,"aria-current":s?`true`:void 0,"aria-rowindex":H?r+2:void 0,"aria-busy":d?.state===`saving`?`true`:void 0,"data-wui-save-state":d?.state||void 0,"data-status":Be?.(e)||void 0,"data-href":O?.(e)||void 0,tabIndex:P?0:void 0,onClick:P?t=>F(e,t):void 0,onAuxClick:P&&O?t=>t.button===1&&F(e,t):void 0,onKeyDown:P?t=>{t.key===`Enter`&&t.target===t.currentTarget&&F(e,t)}:void 0,children:[N&&f(`td`,{className:l.className,style:l.style,children:f(`button`,{type:`button`,className:`wui-expand-toggle${a?` is-open`:``}`,"aria-expanded":a,"aria-controls":a?`${c}-expanded`:void 0,"aria-label":a?`Collapse row`:`Expand row`,onClick:()=>Ze(i),children:f(n,{name:`chevron-down`,size:16})})}),C&&f(`td`,{className:u.className,style:u.style,children:f(`input`,{type:`checkbox`,className:`wui-check`,checked:w?.has(i)||!1,onChange:e=>ut(i,e.nativeEvent.shiftKey),onMouseDown:e=>{e.shiftKey&&e.preventDefault()},"aria-label":`Select row`})}),m.map((t,n)=>p(`td`,{className:B(z+n,(n===0?`wui-name-cell `:``)+(t.nowrap?`text-nowrap `:``)+Se(t.align)+(t.cellClassName?` ${t.cellClassName}`:``)).className,style:V(z+n,t.cellStyle),"data-label":D&&typeof t.label==`string`?t.label:void 0,children:[t.render?t.render(e):Ce(e[t.key]),n===0&&d?.state===`error`&&f(`span`,{className:ce,children:d.message})]},t.key)),x&&f(`td`,{children:f(`div`,{className:`u-row-actions`,children:x(e)})})]}),a&&f(`tr`,{className:`wui-row-expanded`,children:f(`td`,{id:`${c}-expanded`,colSpan:L,children:Fe(e)})})]},i)},wt=(e,t)=>e.group?St(e,t):Ct(e,t),Tt=(e,t)=>H?f(`tr`,{className:`wui-virtual-spacer`,"aria-hidden":`true`,hidden:t===0,children:f(`td`,{colSpan:L,style:{height:t}})},e):null,Q=B(0,`wui-expand-cell`),$=B(+!!N,`wui-select-cell`);return p(ee,{children:[p(R?`wui-data-table`:`div`,{ref:G,...R?{class:et,resizable:A?``:void 0,"view-key":He||void 0}:{className:et},style:tt,tabIndex:0,...Ke,children:[p(`table`,{className:Je,"aria-label":ke,"aria-rowcount":H?W.length+1:void 0,children:[f(`thead`,{children:p(`tr`,{"aria-rowindex":H?1:void 0,children:[N&&f(`th`,{className:Q.className,style:Q.style,children:f(`span`,{className:`visually-hidden`,children:`Expand`})}),C&&f(`th`,{className:$.className,style:$.style,children:f(`input`,{ref:ct,type:`checkbox`,className:`wui-check`,checked:ot,onChange:e=>Ne?.(e.target.checked),"aria-label":`Select all rows`})}),m.map((e,t)=>{let r=!!(e.sortable&&y),i=v&&v.key===e.key,a=e.align===`num`||e.align===`end`,o=r&&f(`span`,{className:`sort-icon${a?` wui-sort-lead`:``}`,children:f(n,{name:`chevrons-up-down`,size:14})}),s=A&&t!==it,c=e.width||e.minWidth?{width:e.width,minWidth:e.minWidth}:void 0;return p(`th`,{className:B(z+t,(r?`sortable `:``)+(t===0?`wui-name-cell `:``)+(e.nowrap?`text-nowrap `:``)+(s?`wui-col-resizable `:``)+Se(e.align)).className,style:V(z+t,c),"data-key":R?e.key:void 0,"aria-label":s&&typeof e.label==`string`?e.label:void 0,"data-pin":e.pin===`start`||e.pin===`end`?e.pin:void 0,tabIndex:r?0:void 0,"aria-sort":i?v.dir===`asc`?`ascending`:`descending`:r?`none`:void 0,onClick:r?()=>y(e.key):void 0,onKeyDown:r?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),y(e.key))}:void 0,children:[a&&o,e.label,!a&&o,s&&f(`span`,{className:`wui-col-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-valuemin":ne,"aria-valuemax":te,tabIndex:0,"aria-label":re.resize(typeof e.label==`string`?e.label:e.key)})]},e.key)}),x&&(Oe?f(`th`,{className:`wui-cell-end`,children:Oe}):f(`th`,{className:`wui-cell-end`,children:f(`span`,{className:`visually-hidden`,children:`Actions`})}))]})}),f(`tbody`,{ref:gt,children:b?f(r,{rows:we,cols:L}):h?.length?p(ee,{children:[Tt(`before`,J.before),W.slice(J.start,J.end).map((e,t)=>wt(e,J.start+t)),Tt(`after`,J.after)]}):null}),Qe&&!b&&h?.length>0&&f(`tfoot`,{children:p(`tr`,{children:[N&&f(`td`,{className:Q.className,style:Q.style}),C&&f(`td`,{className:$.className,style:$.style}),m.map((e,t)=>f(`td`,{className:B(z+t,(t===0?`wui-name-cell `:``)+(e.nowrap?`text-nowrap `:``)+Se(e.align)).className,style:V(z+t,void 0),children:e.footer?e.footer(h):null},e.key)),x&&f(`td`,{})]})})]}),!b&&!h?.length&&f(`div`,{className:`tbl-empty-block`,children:typeof xt==`string`?f(`div`,{className:`tbl-empty-plain`,children:xt}):xt})]}),S&&S.total>0&&f(i,{page:S.page,totalPages:S.totalPages,pageSize:S.pageSize,onPageChange:S.setPage,onPageSizeChange:S.setPageSize,pageSizes:S.pageSizes,mode:S.mode}),vt&&f(`div`,{ref:bt,className:`visually-hidden`,role:`status`,"aria-live":`polite`,"data-wui-table-status":``})]})}export{_ as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppRequiredMark.js";import r from"./useWuiControl.js";import{forwardRef as i,useEffect as a,useId as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import"@webority/ui-elements/elements/date-range";var l=[`sm`,`md`,`lg`],u=i(function({start:i,end:u,onChange:d,label:f,required:p=!1,hint:m,error:h,startName:g,endName:_,min:v,max:y,placeholder:b=`Start to End`,disabled:x,size:S,firstDay:C,id:w,ariaLabel:T,className:E=``,fieldClassName:D=``,...O},k){t(`AppDateRangePicker`,O),e(`AppDateRangePicker`,`size`,S,l);let A=o(),j=w||A,{setRef:M,innerRef:N}=r({ref:k,onChange:d});a(()=>{let e=N.current;if(!e)return;let t=i===void 0?e.value.start:i,n=u===void 0?e.value.end:u;(e.value.start!==t||e.value.end!==n)&&(e.value={start:t,end:n})},[i,u,N]);let P=!f&&!h&&!m,F=h?`${j}-error`:void 0,I=m?`${j}-hint`:void 0,L=s(`wui-date-range`,{ref:M,id:j,"start-name":g,"end-name":_,min:v,max:y,placeholder:b,size:S||void 0,"first-day":C==null?void 0:String(C),"aria-label":T||(typeof f==`string`?f:void 0),"aria-describedby":F||I,"aria-invalid":h?`true`:void 0,disabled:x?``:void 0,required:p?``:void 0,className:E||void 0,...O});return P?L:c(`div`,{className:`field${D?` ${D}`:``}`,children:[f&&c(`label`,{className:`label`,htmlFor:j,children:[f,p&&s(n,{})]}),L,h&&s(`div`,{className:`field-error`,id:F,children:h}),!h&&m&&s(`div`,{className:`field-hint`,id:I,children:m})]})});export{u as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppRequiredMark.js";import r from"./useWuiControl.js";import{forwardRef as i,useEffect as a,useId as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import"@webority/ui-elements/elements/date-range";var l=[`sm`,`md`,`lg`],u=e=>{if(e?.length)return e.every(e=>typeof e==`string`)?e.join(`,`):JSON.stringify(e)},d=i(function({start:i,end:d,onChange:f,label:p,required:m=!1,hint:h,error:g,startName:_,endName:v,min:y,max:b,placeholder:x=`Start to End`,disabled:S,size:C,firstDay:w,presets:T,id:E,ariaLabel:D,className:O=``,fieldClassName:k=``,...A},j){t(`AppDateRangePicker`,A),e(`AppDateRangePicker`,`size`,C,l);let M=o(),N=E||M,{setRef:P,innerRef:F}=r({ref:j,onChange:f});a(()=>{let e=F.current;if(!e)return;let t=i===void 0?e.value.start:i,n=d===void 0?e.value.end:d;(e.value.start!==t||e.value.end!==n)&&(e.value={start:t,end:n})},[i,d,F]);let I=!p&&!g&&!h,L=g?`${N}-error`:void 0,R=h?`${N}-hint`:void 0,z=L||R,B=s(`wui-date-range`,{ref:P,id:N,"start-name":_,"end-name":v,min:y,max:b,placeholder:x,size:C||void 0,"first-day":w==null?void 0:String(w),presets:u(T),"aria-label":D||(typeof p==`string`?p:void 0),"aria-describedby":z,"aria-invalid":g?`true`:void 0,disabled:S?``:void 0,required:m?``:void 0,className:O||void 0,...A});return I?B:c(`div`,{className:`field${k?` ${k}`:``}`,children:[p&&c(`label`,{className:`label`,htmlFor:N,children:[p,m&&s(n,{})]}),B,g&&s(`div`,{className:`field-error`,id:L,children:g}),!g&&h&&s(`div`,{className:`field-hint`,id:R,children:h})]})});export{d as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{useEffect as n,useRef as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import"@webority/ui-elements/elements/drawer";var o=[`end`,`start`],s=[`sm`,`md`,`lg`],c=[50,90],l=e=>Array.isArray(e)&&e.length>0&&e.every(e=>Number.isFinite(e)&&e>=10&&e<=100);function u({open:u=!1,onClose:d,title:f,subtitle:p,ariaLabel:m,side:h=`end`,size:g=`md`,snapPoints:_=c,defaultSnap:v=0,onSnapChange:y,dismissible:b=!0,staticBackdrop:x=!1,footer:S,className:C=``,children:w,...T}){t(`AppDrawer`,T),e(`AppDrawer`,`side`,h,o),e(`AppDrawer`,`size`,g,s),e(`AppDrawer`,`snapPoints`,l(_)?void 0:JSON.stringify(_),[`an array of numbers from 10 to 100`]);let E=r(null),D=r(null);D.current={onClose:d,onSnapChange:y},n(()=>{let e=E.current;if(!e)return;let t=t=>{t.target===e&&(t.preventDefault(),D.current.onClose?.())},n=t=>{t.target===e&&D.current.onSnapChange?.(t.detail.index,t.detail.percent)};return e.addEventListener(`wui-drawer-close`,t),e.addEventListener(`wui-drawer-snap`,n),()=>{e.removeEventListener(`wui-drawer-close`,t),e.removeEventListener(`wui-drawer-snap`,n)}},[]);let O=l(_)?_:c;return a(`wui-drawer`,{ref:E,...T,class:[`wui-drawer`,C].filter(Boolean).join(` `),side:h,size:g,"snap-points":O.join(`,`),"default-snap":String(v),static:x?``:void 0,open:u?``:void 0,children:[i(`div`,{className:`wui-drawer-backdrop`,"data-wui-drawer-backdrop":``,"aria-hidden":`true`}),a(`div`,{className:`wui-drawer-panel`,role:`dialog`,"aria-modal":`true`,"aria-label":m||f||void 0,tabIndex:-1,children:[i(`div`,{className:`wui-drawer-grip`,"data-wui-drawer-grip":``,children:i(`div`,{className:`wui-drawer-handle`,role:`slider`,tabIndex:0,"aria-orientation":`vertical`,"aria-label":`Sheet height`})}),a(`div`,{className:`wui-drawer-header`,"data-wui-drawer-grip":``,children:[a(`div`,{className:`wui-drawer-headtext`,children:[f&&i(`div`,{className:`wui-drawer-title`,children:f}),p&&i(`div`,{className:`wui-drawer-subtitle`,children:p})]}),b&&i(`button`,{type:`button`,className:`wui-drawer-close`,"data-wui-drawer-close":``,"aria-label":`Close`,children:i(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:i(`path`,{d:`M18 6 6 18M6 6l12 12`})})})]}),i(`div`,{className:`wui-drawer-body`,children:w}),S&&i(`div`,{className:`wui-drawer-footer`,children:S})]})]})}export{u as default};
@@ -1 +1 @@
1
- import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import n from"./renderIconProp.js";import{forwardRef as r,useEffect as i,useRef as a,useState as o}from"react";import{Dropdown as s}from"react-bootstrap";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=!1;function d(){let e=!0;try{e=process.env.NODE_ENV!==`production`}catch{e=!0}!e||u||(u=!0,console.warn("[@webority/ui-react] <AppDropdown> icon-only toggle has no accessible name — pass `label` or `ariaLabel`."))}function f({icon:t,iconSize:r,toggleClassName:u,label:f,ariaLabel:m,align:h=`end`,items:g=[],menuClassName:_=``,linkComponent:v,children:y,trigger:b,show:x,onToggle:S,...C}){e(`AppDropdown`,C),!b&&!m&&!f&&d();let w=u??(b?`wui-dropdown-trigger`:`topbar-icon-btn`),T=x!==void 0,[E,D]=o(!1),O=T?!!x:E,k=a(null);k.current=(e,t)=>{T||D(e),S?.(e,t)};let A=a(null);return i(()=>{if(!O)return;let e=A.current?.getBoundingClientRect(),t=()=>{let t=A.current?.getBoundingClientRect();(!e||!t||Math.abs(t.top-e.top)>2||Math.abs(t.left-e.left)>2)&&k.current(!1,{source:`scroll`})},n=()=>k.current(!1,{source:`resize`});return window.addEventListener(`scroll`,t,{capture:!0,passive:!0}),window.addEventListener(`resize`,n),()=>{window.removeEventListener(`scroll`,t,{capture:!0}),window.removeEventListener(`resize`,n)}},[O]),l(s,{ref:A,align:h,show:O,onToggle:(e,t)=>k.current(e,t),...C,children:[c(s.Toggle,{as:p,icon:t,iconSize:r,btnClassName:w,trigger:b,title:f,"aria-label":m??(b?void 0:f)}),c(s.Menu,{className:_,renderOnMount:!0,popperConfig:{strategy:`fixed`},children:y??g.map(e=>{if(e.divider)return c(s.Divider,{},e.key);let t=e.to?v?{as:v,to:e.to}:{as:`a`,href:e.to}:{as:`button`,type:`button`};return l(s.Item,{...t,onClick:e.onClick,className:e.danger?`danger`:void 0,children:[e.image?c(`img`,{src:e.image,alt:``}):n(e.icon,{size:16}),e.label]},e.key)})})]})}var p=r(function({icon:e,iconSize:n=20,btnClassName:r=`topbar-icon-btn`,trigger:i,"aria-label":a,className:o,...s},l){return c(`button`,{ref:l,type:`button`,className:r,"aria-label":a,...s,children:i??c(t,{name:e,size:n})})});export{f as default};
1
+ import e from"./warnUnknownProps.js";import{shortcutAria as t,shortcutChip as n}from"../lib/shortcutChip.js";import r from"./AppIcon.js";import i from"./renderIconProp.js";import{forwardRef as a,useEffect as o,useRef as s,useState as c}from"react";import{Dropdown as l}from"react-bootstrap";import{jsx as u,jsxs as d}from"react/jsx-runtime";var f=!1;function p(){let e=!0;try{e=process.env.NODE_ENV!==`production`}catch{e=!0}!e||f||(f=!0,console.warn("[@webority/ui-react] <AppDropdown> icon-only toggle has no accessible name — pass `label` or `ariaLabel`."))}function m({icon:r,iconSize:a,toggleClassName:f,label:m,ariaLabel:g,align:_=`end`,items:v=[],menuClassName:y=``,linkComponent:b,children:x,trigger:S,show:C,onToggle:w,...T}){e(`AppDropdown`,T),!S&&!g&&!m&&p();let E=f??(S?`wui-dropdown-trigger`:`topbar-icon-btn`),D=C!==void 0,[O,k]=c(!1),A=D?!!C:O,j=s(null);j.current=(e,t)=>{D||k(e),w?.(e,t)};let M=s(null);return o(()=>{if(!A)return;let e=M.current?.getBoundingClientRect(),t=()=>{let t=M.current?.getBoundingClientRect();(!e||!t||Math.abs(t.top-e.top)>2||Math.abs(t.left-e.left)>2)&&j.current(!1,{source:`scroll`})},n=()=>j.current(!1,{source:`resize`});return window.addEventListener(`scroll`,t,{capture:!0,passive:!0}),window.addEventListener(`resize`,n),()=>{window.removeEventListener(`scroll`,t,{capture:!0}),window.removeEventListener(`resize`,n)}},[A]),d(l,{ref:M,align:_,show:A,onToggle:(e,t)=>j.current(e,t),...T,children:[u(l.Toggle,{as:h,icon:r,iconSize:a,btnClassName:E,trigger:S,title:m,"aria-label":g??(S?void 0:m)}),u(l.Menu,{className:y,renderOnMount:!0,popperConfig:{strategy:`fixed`},children:x??v.map(e=>{if(e.divider)return u(l.Divider,{},e.key);let r=e.to?b?{as:b,to:e.to}:{as:`a`,href:e.to}:{as:`button`,type:`button`};return d(l.Item,{...r,onClick:e.onClick,className:e.danger?`danger`:void 0,"aria-keyshortcuts":t(e.shortcut),children:[e.image?u(`img`,{src:e.image,alt:``}):i(e.icon,{size:16}),e.label,n(e.shortcut)]},e.key)})})]})}var h=a(function({icon:e,iconSize:t=20,btnClassName:n=`topbar-icon-btn`,trigger:i,"aria-label":a,className:o,...s},c){return u(`button`,{ref:c,type:`button`,className:n,"aria-label":a,...s,children:i??u(r,{name:e,size:t})})});export{m as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./renderIconProp.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";var a=[`md`,`sm`];function o({icon:o,iconSize:s=24,size:c=`md`,title:l,text:u,action:d,className:f=``,style:p,...m}){return t(`AppEmptyState`,m),e(`AppEmptyState`,`size`,c,a),i(`div`,{className:[`empty-state`,c===`sm`?`empty-state-sm`:``,f].filter(Boolean).join(` `),style:p,...m,children:[o?r(`div`,{className:`empty-state-icon`,children:n(o,{size:s})}):null,l!=null&&r(`div`,{className:`empty-state-title`,children:l}),u!=null&&r(`div`,{className:`empty-state-message`,children:u}),d&&r(`div`,{className:`empty-state-action`,children:d})]})}export{o as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./renderIconProp.js";import r,{ILLUSTRATION_NAMES as i}from"../lib/emptyIllustration.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s=[`md`,`sm`];function c({icon:c,illustration:l,iconSize:u=24,size:d=`md`,title:f,text:p,action:m,className:h=``,style:g,..._}){t(`AppEmptyState`,_),e(`AppEmptyState`,`size`,d,s),e(`AppEmptyState`,`illustration`,l,i);let v=l!=null&&i.includes(l);return o(`div`,{className:[`empty-state`,d===`sm`?`empty-state-sm`:``,h].filter(Boolean).join(` `),style:g,..._,children:[v?a(r,{name:l,className:`wui-empty-illustration`}):null,c&&!v?a(`div`,{className:`empty-state-icon`,children:n(c,{size:u})}):null,f!=null&&a(`div`,{className:`empty-state-title`,children:f}),p!=null&&a(`div`,{className:`empty-state-message`,children:p}),m&&a(`div`,{className:`empty-state-action`,children:m})]})}export{c as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppButton.js";import r from"./AppSegmented.js";import i from"./AppChip.js";import a from"./AppDateRangePicker.js";import{emptyFacetValue as o,isFacetActive as s}from"../lib/listQuery.js";import c from"./AppMultiSelect.js";import l from"./AppSearch.js";import u from"./AppSelect.js";import{jsx as d,jsxs as f}from"react/jsx-runtime";var p=[`enum`,`multiEnum`,`dateRange`,`text`],m=4,h=e=>(e.type===`enum`||e.type===`multiEnum`)&&!e.options?.length,g=(e,t)=>e.options?.find(e=>e.value===t)?.label??t;function _(e,t){if(!s(e,t))return[];if(e.type===`enum`)return[{id:e.key,text:g(e,t),clear:()=>o(e)}];if(e.type===`multiEnum`)return t.map(n=>({id:`${e.key}:${n}`,text:g(e,n),clear:()=>t.filter(e=>e!==n)}));if(e.type===`dateRange`){let n=t.from&&t.to?`${t.from} to ${t.to}`:t.from?`From ${t.from}`:`Until ${t.to}`;return[{id:e.key,text:n,clear:()=>o(e)}]}return[]}function v({facets:r,value:a,onChange:c,className:l=``,...u}){t(`AppFilterBar`,u);for(let t of r)e(`AppFilterBar`,`facets[].type`,t.type,p);let m=r.filter(e=>!h(e)),g=m.flatMap(e=>_(e,a[e.key]).map(t=>({...t,facet:e}))),v=m.filter(e=>s(e,a[e.key]));return f(`div`,{className:`wui-filter-bar d-flex flex-wrap align-items-center gap-2${l?` ${l}`:``}`,...u,children:[m.map(e=>d(y,{facet:e,value:a[e.key],onChange:t=>c(e.key,t)},e.key)),g.map(e=>d(i,{size:`sm`,label:`${e.facet.label}: ${e.text}`,removeLabel:`Remove ${e.facet.label} filter ${e.text}`,onRemove:()=>c(e.facet.key,e.clear())},e.id)),v.length>1&&d(n,{variant:`ghost`,size:`sm`,onClick:()=>{for(let e of v)c(e.key,o(e))},children:`Clear all`})]})}function y({facet:e,value:t,onChange:n}){if(e.type===`enum`){let i=e.options??[];return i.length<m?d(r,{label:e.label,name:e.key,size:`sm`,value:t??``,onChange:n,options:[{value:``,label:`All`},...i]}):d(u,{"aria-label":e.label,name:e.key,placeholder:e.label,size:`sm`,clearable:!0,value:t??``,onChange:n,options:i})}return e.type===`multiEnum`?d(c,{"aria-label":e.label,name:e.key,placeholder:e.label,size:`sm`,collapseChips:!0,values:t??[],onChange:n,options:e.options??[]}):e.type===`dateRange`?d(a,{ariaLabel:e.label,startName:`${e.key}From`,endName:`${e.key}To`,placeholder:e.label,size:`sm`,start:t?.from??``,end:t?.to??``,onChange:e=>n({from:e.start??``,to:e.end??``})}):d(l,{ariaLabel:e.label,name:e.key,placeholder:e.label,size:`sm`,value:t??``,onChange:n})}export{v as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r from"./AppButton.js";import i from"./AppSegmented.js";import a from"./AppChip.js";import o from"./AppDateRangePicker.js";import{emptyFacetValue as s,isFacetActive as c}from"../lib/listQuery.js";import l from"./AppMultiSelect.js";import u from"./AppSearch.js";import d from"./AppSelect.js";import{useEffect as f,useRef as p,useSyncExternalStore as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";var _=`(max-width: 575.98px)`,v=3,y=e=>{let t=window.matchMedia?.(_);return t?.addEventListener(`change`,e),()=>t?.removeEventListener(`change`,e)},b=()=>window.matchMedia?.(_).matches??!1,x=[`enum`,`multiEnum`,`dateRange`,`text`],S=4,C=e=>(e.type===`enum`||e.type===`multiEnum`)&&!e.options?.length,w=(e,t)=>e.options?.find(e=>e.value===t)?.label??t;function T(e,t){if(!c(e,t))return[];if(e.type===`enum`)return[{id:e.key,text:w(e,t),clear:()=>s(e)}];if(e.type===`multiEnum`)return t.map(n=>({id:`${e.key}:${n}`,text:w(e,n),clear:()=>t.filter(e=>e!==n)}));if(e.type===`dateRange`){let n=t.from&&t.to?`${t.from} to ${t.to}`:t.from?`From ${t.from}`:`Until ${t.to}`;return[{id:e.key,text:n,clear:()=>s(e)}]}return[]}function E({facets:i,value:o,onChange:l,inline:u=v,className:d=``,..._}){t(`AppFilterBar`,_);let S=m(y,b,()=>!1),w=p(null);for(let t of i)e(`AppFilterBar`,`facets[].type`,t.type,x);let E=i.filter(e=>!C(e)),O=E.flatMap(e=>T(e,o[e.key]).map(t=>({...t,facet:e}))),k=E.filter(e=>c(e,o[e.key])),A=S?0:Math.max(0,u),j=E.slice(A),M=j.filter(e=>k.includes(e)).length,N=j.length>0;f(()=>{if(!N)return;let e=e=>{let t=w.current;t?.open&&(e.type===`keydown`?e.key===`Escape`:!e.composedPath().includes(t))&&(t.open=!1)};return document.addEventListener(`click`,e),document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,e)}},[N]);let P=e=>h(D,{facet:e,value:o[e.key],onChange:t=>l(e.key,t)},e.key),F=(e,t)=>t>0&&h(`span`,{className:e,children:` (${t})`});return g(`div`,{className:`wui-filter-bar d-flex flex-wrap align-items-center gap-2${S&&N?` wui-filter-bar--folded`:``}${d?` ${d}`:``}`,..._,children:[E.slice(0,A).map(P),N&&g(`details`,{ref:w,className:`wui-filter-more`,children:[g(`summary`,{className:`btn btn-outline-primary btn-sm wui-filter-more-trigger`,children:[h(n,{name:`filter`,size:14,className:`me-2`}),`Filters`,F(`wui-filter-count-desktop`,M),F(`wui-filter-count-phone`,k.length)]}),g(`div`,{className:`wui-filter-more-panel`,children:[h(`div`,{className:`wui-filter-more-head`,children:`Filters`}),j.map(P)]})]}),O.map(e=>h(a,{size:`sm`,label:`${e.facet.label}: ${e.text}`,removeLabel:`Remove ${e.facet.label} filter ${e.text}`,onRemove:()=>l(e.facet.key,e.clear())},e.id)),k.length>1&&h(r,{variant:`ghost`,size:`sm`,onClick:()=>{for(let e of k)l(e.key,s(e))},children:`Clear all`})]})}function D({facet:e,value:t,onChange:n}){if(e.type===`enum`){let r=e.options??[];return r.length<S?h(i,{label:e.label,name:e.key,size:`sm`,value:t??``,onChange:n,options:[{value:``,label:`All`},...r]}):h(d,{"aria-label":e.label,name:e.key,placeholder:e.label,size:`sm`,clearable:!0,value:t??``,onChange:n,options:r})}return e.type===`multiEnum`?h(l,{"aria-label":e.label,name:e.key,placeholder:e.label,size:`sm`,collapseChips:!0,values:t??[],onChange:n,options:e.options??[]}):e.type===`dateRange`?h(o,{ariaLabel:e.label,startName:`${e.key}From`,endName:`${e.key}To`,placeholder:e.label,size:`sm`,start:t?.from??``,end:t?.to??``,onChange:e=>n({from:e.start??``,to:e.end??``})}):h(u,{ariaLabel:e.label,name:e.key,placeholder:e.label,size:`sm`,value:t??``,onChange:n})}export{E as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{useEffect as t,useRef as n}from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";import"@webority/ui-elements/elements/hover-card";function a({trigger:a,children:o,loading:s=!1,loadingLabel:c=`Loading`,label:l,openDelay:u,closeDelay:d,onOpenChange:f,className:p=``,...m}){e(`AppHoverCard`,m);let h=n(null),g=n(f);return g.current=f,t(()=>{let e=h.current;if(!e)return;let t=()=>g.current?.(!0),n=()=>g.current?.(!1);return e.addEventListener(`wui:hover-card:open`,t),e.addEventListener(`wui:hover-card:close`,n),()=>{e.removeEventListener(`wui:hover-card:open`,t),e.removeEventListener(`wui:hover-card:close`,n)}},[]),i(`wui-hover-card`,{ref:h,class:[`wui-hover-card`,p].filter(Boolean).join(` `),"open-delay":Number.isFinite(u)?u:void 0,"close-delay":Number.isFinite(d)?d:void 0,...m,children:[r(`span`,{className:`wui-hover-card-trigger`,children:a}),r(`span`,{className:`wui-hover-card-panel`,role:`group`,"aria-label":l||void 0,"aria-busy":s?`true`:void 0,children:s?i(`span`,{className:`wui-hover-card-loading`,role:`status`,children:[r(`span`,{className:`wui-spinner wui-spinner-sm`,"aria-hidden":`true`}),r(`span`,{children:c})]}):o})]})}export{a as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import{optionsEqual as r}from"./useWuiControl.js";import{useEffect as i,useId as a,useRef as o,useState as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";import"@webority/ui-elements/elements/select";import"@webority/ui-elements/elements/datepicker";import{INLINE_EDIT_TEXT as u,INLINE_EDIT_TYPES as d,inlineEditText as f}from"@webority/ui-elements/elements/inline-edit";var p=e=>e==null?``:String(e),m=(e,t)=>t===`number`?e===``?null:Number(e):e;function h({value:h,onSave:g,type:_,options:v=[],label:y,placeholder:b,validate:x,renderValue:S,disabled:C=!1,className:w=``,id:T,...E}){t(`AppInlineEdit`,E),e(`AppInlineEdit`,`type`,_,d);let D=d.includes(_)?_:`text`,O=a(),k=T||`inline-edit-${O.replace(/[^a-zA-Z0-9_-]/g,``)}`,A=`${k}-error`,j=`${k}-control`,M=o(null),N=o(null),P=p(h),[F,I]=s(P),[L,R]=s(P);F!==P&&(I(P),R(P));let[z,B]=s(null),V=o(null);V.current={onSave:g,validate:x,kind:D},i(()=>{let e=M.current;if(e)return e.save=async e=>{B(e);try{await V.current.onSave?.(m(e,V.current.kind)),R(e)}finally{B(null)}},e.validate=e=>V.current.validate?.(m(e,V.current.kind))||null,()=>{e.save=void 0,e.validate=void 0}},[]),i(()=>{let e=N.current;if(!e)return;let t=v.map(e=>({value:String(e.value),label:p(e.label??e.value)}));r(t,e.options)||(e.options=t)});let H=z??L,U=f(H,{type:D,options:v,placeholder:b}),W=S&&!U.empty?S(m(H,D)):U.text,G={id:j,"data-wui-control":``,"aria-label":y},K;return K=D===`select`?c(`wui-select`,{ref:N,...G,size:`sm`,placeholder:b||void 0}):D===`date`?c(`wui-datepicker`,{...G,size:`sm`,"aria-describedby":A,placeholder:b||void 0}):D===`textarea`?c(`textarea`,{...G,className:`form-control textarea`,rows:3,"aria-describedby":A,placeholder:b||void 0}):c(`input`,{...G,type:D===`number`?`number`:`text`,inputMode:D===`number`?`decimal`:void 0,className:`form-control input input-sm`,"aria-describedby":A,placeholder:b||void 0}),l(`wui-inline-edit`,{ref:M,id:k,class:w?`wui-inline-edit ${w}`:`wui-inline-edit`,type:D,label:y,value:L,placeholder:b||void 0,disabled:C?``:void 0,controlled:``,...E,children:[l(`button`,{type:`button`,className:`wui-inline-edit-display`,"data-wui-display":``,"aria-describedby":A,disabled:C,children:[c(`span`,{className:`visually-hidden`,children:C?u.readOnly(y):u.edit(y)}),c(`span`,{className:`wui-inline-edit-value`,"data-wui-value":``,"data-wui-empty":U.empty?``:void 0,children:W}),c(`span`,{className:`wui-inline-edit-icon`,"aria-hidden":`true`,children:c(n,{name:`edit`,size:14})})]}),c(`span`,{className:`wui-inline-edit-editor`,"data-wui-editor":``,hidden:!0,children:K}),l(`span`,{className:`wui-inline-edit-status`,"aria-hidden":`true`,children:[c(`span`,{className:`wui-inline-edit-spinner spinner-border spinner-border-sm`}),c(`span`,{className:`wui-inline-edit-saved`,children:c(n,{name:`tick-circle`,size:16})})]}),c(`span`,{className:`wui-inline-edit-error`,id:A,"data-wui-error":``,hidden:!0}),c(`span`,{className:`visually-hidden`,"data-wui-live":``,"aria-live":`polite`,"aria-atomic":`true`})]})}export{h as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppRequiredMark.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";var a={sm:`wui-addon-group-sm`,md:``,lg:`wui-addon-group-lg`},o=e=>typeof e==`string`||typeof e==`number`?r(`span`,{className:`wui-addon`,children:e}):e;function s({children:s,leading:c,trailing:l,label:u,htmlFor:d,required:f=!1,size:p=`md`,className:m=``,...h}){t(`AppInputGroup`,h),e(`AppInputGroup`,`size`,p,Object.keys(a));let g=i(`div`,{className:[`wui-addon-group`,a[p]??``,u?``:m].filter(Boolean).join(` `),...u?{}:h,children:[o(c),s,o(l)]});return u?i(`div`,{className:[`field`,m].filter(Boolean).join(` `),...h,children:[i(`label`,{className:`label`,htmlFor:d,children:[u,f&&r(n,{})]}),g]}):g}export{s as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{shortcutKey as t}from"@webority/ui-elements/helpers";import{jsx as n}from"react/jsx-runtime";function r({children:r,className:i=``,...a}){e(`AppKbd`,a);let o=typeof r==`string`||typeof r==`number`?t(r):r;return n(`kbd`,{className:[`wui-kbd`,i].filter(Boolean).join(` `),...a,children:o})}export{r as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{useEffect as t,useRef as n}from"react";import{jsx as r}from"react/jsx-runtime";import"@webority/ui-elements/elements/lightbox";function i({items:i=[],download:a=!1,label:o,onChange:s,onClose:c,className:l=``,...u}){e(`AppLightbox`,u);let d=n(null),f=n({onChange:s,onClose:c});return t(()=>{f.current={onChange:s,onClose:c}}),t(()=>{let e=d.current,t=e=>f.current.onChange?.(e.detail.index),n=()=>f.current.onClose?.();return e.addEventListener(`wui-lightbox:change`,t),e.addEventListener(`wui-lightbox:close`,n),()=>{e.removeEventListener(`wui-lightbox:change`,t),e.removeEventListener(`wui-lightbox:close`,n)}},[]),r(`wui-lightbox`,{ref:d,class:[`wui-lightbox`,l].filter(Boolean).join(` `),download:a?``:void 0,label:o||void 0,...u,children:i.map(e=>r(`a`,{className:`wui-lightbox-item`,href:e.src,"data-caption":e.caption||void 0,"data-name":e.name||void 0,children:r(`img`,{src:e.thumb||e.src,alt:e.alt??e.caption??``,loading:`lazy`})},e.key??e.src))})}export{i as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppInfoTip.js";import n from"./AppRequiredMark.js";import r from"./useWuiControl.js";import{forwardRef as i,useEffect as a,useId as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import"@webority/ui-elements/elements/mention-input";var l=i(function({value:i,onChange:l,people:u,loadPeople:d,minChars:f,debounce:p,onSubmit:m,rows:h=3,placeholder:g,disabled:_=!1,name:v,id:y,label:b,error:x,hint:S,required:C=!1,help:w,helpLabel:T=`More information`,className:E=``,fieldClassName:D=``,...O},k){e(`AppMentionInput`,O);let A=typeof d==`function`,j=o(),M=y||`mention-${j.replace(/[^a-zA-Z0-9_-]/g,``)}`,N=x?`${M}-error`:S?`${M}-hint`:void 0,{setRef:P,innerRef:F}=r({ref:k,value:i??``,on:{change:e=>{e.target===e.currentTarget&&l?.(e.currentTarget.value,{mentions:e.currentTarget.mentions})},"wui:mention-input:submit":()=>m?.()}});return a(()=>{let e=F.current;!e||A||(e.people=u||[])},[u,A,F]),a(()=>{let e=F.current;if(!e||!A)return;let t=0,n=null,r=async r=>{let i=++t;n?.abort(),n=typeof AbortController==`function`?new AbortController:null,e.loading=!0;try{let a=await d(r.detail.query,{signal:n?.signal});i===t&&(e.people=a||[])}catch{i===t&&(e.people=[])}finally{i===t&&(e.loading=!1)}};return e.addEventListener(`search`,r),()=>{t=-1,n?.abort(),e.removeEventListener(`search`,r),e.loading=!1}},[A,d,F]),c(`div`,{className:`field${D?` ${D}`:``}`,children:[b&&c(`label`,{className:`label`,htmlFor:`${M}-text`,children:[b,C&&s(n,{}),w&&s(t,{label:T,children:w})]}),s(`wui-mention-input`,{ref:P,id:M,class:E?`wui-mention-input ${E}`:`wui-mention-input`,label:typeof b==`string`?b:void 0,placeholder:g||void 0,rows:String(h),name:v||void 0,remote:A?``:void 0,"min-chars":f==null?void 0:String(f),debounce:p==null?void 0:String(p),disabled:_?``:void 0,"aria-describedby":N,"aria-invalid":x?`true`:void 0,...O}),x?s(`div`,{className:`field-error`,id:`${M}-error`,children:x}):S?s(`div`,{className:`field-hint`,id:`${M}-hint`,children:S}):null]})});export{l as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{shortcutAria as t,shortcutChip as n}from"../lib/shortcutChip.js";import r from"./renderIconProp.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";import"@webority/ui-elements/elements/menubar";function o({menus:t=[],ariaLabel:n=`Application menu`,linkComponent:r,className:o=``,...c}){return e(`AppMenubar`,c),i(`wui-menubar`,{class:[`wui-menubar`,o].filter(Boolean).join(` `),role:`menubar`,"aria-label":n,...c,children:t.map((e,t)=>a(`div`,{className:`wui-menubar-menu`,role:`none`,children:[i(`button`,{type:`button`,className:`wui-menubar-trigger`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":`false`,"aria-disabled":e.disabled?`true`:void 0,tabIndex:t===0?0:-1,"data-key":e.key,children:e.label}),i(`div`,{className:`dropdown-menu wui-menubar-panel`,role:`menu`,"aria-label":e.label,tabIndex:-1,children:s(e.items??[],r)})]},e.key))})}function s(e,o){return e.map(e=>{if(e.divider)return i(`hr`,{className:`dropdown-divider`},e.key);let c=r(e.icon,{size:16});if(e.items?.length)return a(`div`,{className:`wui-menubar-sub`,role:`none`,children:[a(`button`,{type:`button`,className:`dropdown-item wui-menubar-subtrigger${e.danger?` danger`:``}${e.disabled?` disabled`:``}`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":`false`,"aria-disabled":e.disabled?`true`:void 0,tabIndex:-1,"data-key":e.key,children:[c,e.label,r(`chevron-right`,{size:14,className:`wui-menubar-chevron`})]}),i(`div`,{className:`dropdown-menu wui-menubar-panel wui-menubar-subpanel`,role:`menu`,"aria-label":e.label,tabIndex:-1,children:s(e.items,o)})]},e.key);let l=!!e.to&&!e.disabled;return a(l?o??`a`:`button`,{...l?o?{to:e.to}:{href:e.to}:{type:`button`},className:`dropdown-item${e.danger?` danger`:``}${e.disabled?` disabled`:``}`,role:`menuitem`,tabIndex:-1,"data-key":e.key,"aria-disabled":e.disabled?`true`:void 0,"aria-keyshortcuts":t(e.shortcut),onClick:e.disabled?void 0:e.onClick,children:[c,e.label,n(e.shortcut)]},e.key)})}export{o as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./renderIconProp.js";import{useId as n}from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";import"@webority/ui-elements/elements/navigation-menu";function a({items:a=[],ariaLabel:o=`Main`,linkComponent:s,className:c=``,...l}){e(`AppNavigationMenu`,l);let u=n(),d=s??`a`,f=e=>s?{to:e}:{href:e};return r(`wui-navigation-menu`,{class:[`wui-nav-menu`,c].filter(Boolean).join(` `),...l,children:r(`nav`,{"aria-label":o,children:r(`ul`,{className:`wui-nav-menu-list`,children:a.map(e=>{if(!e.links?.length)return r(`li`,{className:`wui-nav-menu-item`,children:r(d,{...f(e.to),className:`wui-nav-menu-toplink`,"aria-current":e.current?`page`:void 0,children:e.label})},e.key);let n=`${u}-${e.key}`;return i(`li`,{className:`wui-nav-menu-item`,children:[i(`button`,{type:`button`,className:`wui-nav-menu-trigger`,"aria-expanded":`false`,"aria-controls":n,"data-key":e.key,children:[e.label,t(`chevron-down`,{size:14,className:`wui-nav-menu-chevron`})]}),r(`div`,{className:`wui-nav-menu-panel`,id:n,children:r(`ul`,{className:`wui-nav-menu-links`,children:e.links.map(e=>r(`li`,{children:i(d,{...f(e.to),className:`wui-nav-menu-link`,"aria-current":e.current?`page`:void 0,children:[t(e.icon,{size:18}),i(`span`,{className:`wui-nav-menu-link-text`,children:[r(`span`,{className:`wui-nav-menu-link-label`,children:e.label}),e.description?r(`span`,{className:`wui-nav-menu-link-desc`,children:e.description}):null]})]})},e.key))})})]},e.key)})})})})}export{a as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import{NOTIFICATION_TEXT as n,groupNotificationsByDay as r,notificationCountText as i,notificationTime as a,notificationTriggerLabel as o,notificationUnreadAnnouncement as s}from"@webority/ui-elements/helpers";import{useEffect as c,useId as l,useLayoutEffect as u,useRef as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import"@webority/ui-elements/elements/notification-center";function g({items:a,unread:p,label:g=n.label,emptyText:v=n.empty,viewAllHref:y,defaultOpen:b=!1,now:x,onMarkAllRead:S,onItemClick:C,onOpenChange:w,className:T=``,...E}){if(e(`AppNotificationCenter`,E),!Array.isArray(a))throw Error(`<AppNotificationCenter> items is required: pass the notifications, newest first.`);let D=l(),O=l(),k=d(null),A=d(w);A.current=w,c(()=>{let e=k.current,t=e=>A.current?.(e.detail.open);return e.addEventListener(`wui:notification-center:toggle`,t),()=>e.removeEventListener(`wui:notification-center:toggle`,t)},[]);let j=d(b);u(()=>{if(!j.current)return;let e=k.current;e.setAttribute(`open`,``),e.querySelector(`.wui-notification-center-trigger`)?.setAttribute(`aria-expanded`,`true`)},[]);let M=p??a.filter(e=>!e.read).length,[N,P]=f(``),F=d(M);c(()=>{F.current!==M&&(F.current=M,P(s(M)))},[M]);let I=r(a,x);return h(`wui-notification-center`,{ref:k,class:[`wui-notification-center`,T].filter(Boolean).join(` `),label:g,controlled:``,...E,children:[h(`button`,{type:`button`,className:`topbar-icon-btn wui-notification-center-trigger`,"aria-expanded":j.current?`true`:`false`,"aria-controls":D,"aria-haspopup":`dialog`,"aria-label":o(g,M),children:[m(t,{name:`notification`,size:20}),m(`span`,{className:`wui-notification-center-count`,"aria-hidden":`true`,hidden:M===0,children:i(M)})]}),m(`span`,{className:`visually-hidden wui-notification-center-live`,"aria-live":`polite`,children:N}),h(`div`,{className:`wui-notification-center-panel`,id:D,role:`dialog`,"aria-labelledby":O,tabIndex:-1,children:[h(`div`,{className:`wui-notification-center-head`,children:[m(`h2`,{className:`wui-notification-center-title`,id:O,children:g}),S&&m(`button`,{type:`button`,className:`wui-notification-center-markall`,disabled:M===0,onClick:S,children:n.markAll})]}),I.length===0?m(`p`,{className:`wui-notification-center-empty`,children:v}):m(`div`,{className:`wui-notification-center-list`,children:I.map(e=>h(`section`,{"aria-labelledby":`${D}-${e.key}`,children:[m(`h3`,{className:`wui-notification-center-day`,id:`${D}-${e.key}`,children:e.heading}),m(`ul`,{className:`wui-notification-center-items`,children:e.items.map(e=>m(`li`,{children:m(_,{item:e,onItemClick:C})},e.id))})]},e.key))}),y&&m(`a`,{className:`wui-notification-center-foot`,href:y,children:n.viewAll})]})]})}function _({item:e,onItemClick:r}){let i=`wui-notification-center-item${e.read?` wui-notification-center-item-read`:``}`,o=h(p,{children:[m(`span`,{className:`wui-notification-center-dot`,"aria-hidden":`true`}),e.icon&&m(`span`,{className:`wui-notification-center-icon`,children:m(t,{name:e.icon,size:18})}),h(`span`,{className:`wui-notification-center-body`,children:[!e.read&&m(`span`,{className:`visually-hidden wui-notification-center-unread-label`,children:n.unreadPrefix}),m(`span`,{className:`wui-notification-center-item-title`,children:e.title}),e.text&&m(`span`,{className:`wui-notification-center-item-text`,children:e.text}),m(`time`,{className:`wui-notification-center-when`,dateTime:String(e.at),children:a(e.at)})]})]}),s=r?t=>r(e,t):void 0;return e.href?m(`a`,{className:i,href:e.href,"data-id":e.id,onClick:s,children:o}):m(`button`,{type:`button`,className:i,"data-id":e.id,onClick:s,children:o})}export{g as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r from"./AppActionIcon.js";import{useCallback as i,useId as a,useRef as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import"@webority/ui-elements/elements/onboarding-checklist";var l=[`done`,`current`,`skipped`,`todo`],u={done:`Done: `,skipped:`Skipped: `};function d(e){let t=e.map(e=>l.includes(e.status)?e.status:`todo`);if(!t.includes(`current`)){let e=t.indexOf(`todo`);e>=0&&(t[e]=`current`)}return t}function f(e,t){return e===`done`?s(n,{name:`check`,size:14}):e===`skipped`?s(n,{name:`minus`,size:14}):t+1}function p(e,t){return e.href?t?s(t,{className:`wui-onboarding-label`,to:e.href,children:e.label}):s(`a`,{className:`wui-onboarding-label`,href:e.href,children:e.label}):s(`span`,{className:`wui-onboarding-label`,children:e.label})}function m({steps:m=[],title:h=`Get started`,defaultCollapsed:g,defaultDismissed:_=!1,storageKey:v,dismissLabel:y=`Dismiss checklist`,restoreLabel:b=`Show setup checklist`,onDismiss:x,onRestore:S,onCollapsedChange:C,linkComponent:w,className:T=``,...E}){t(`AppOnboardingChecklist`,E);for(let t of m)e(`AppOnboardingChecklist`,`steps[].status`,t.status,l);let D=a().replace(/[^a-zA-Z0-9_-]/g,``),O=`wui-onboarding-${D}-title`,k=`wui-onboarding-${D}-steps`,A=m.length===0,j=o(null);j.current={onDismiss:x,onRestore:S,onCollapsedChange:C};let M=i(e=>{if(!e)return;let t=()=>j.current.onDismiss?.(),n=()=>j.current.onRestore?.(),r=e=>j.current.onCollapsedChange?.(e.detail.collapsed);return e.addEventListener(`wui:onboarding:dismiss`,t),e.addEventListener(`wui:onboarding:restore`,n),e.addEventListener(`wui:onboarding:collapse`,r),()=>{e.removeEventListener(`wui:onboarding:dismiss`,t),e.removeEventListener(`wui:onboarding:restore`,n),e.removeEventListener(`wui:onboarding:collapse`,r)}},[]);if(A)return null;let N=d(m),P=N.filter(e=>e===`done`).length,F=N.filter(e=>e===`skipped`).length,I=P+F===m.length,L=g??I,R=`${P} of ${m.length} done${F?`, ${F} skipped`:``}`;return c(`wui-onboarding-checklist`,{ref:M,class:[`wui-onboarding`,I?`is-complete`:``,T].filter(Boolean).join(` `),"storage-key":v||void 0,...E,children:[c(`section`,{className:`wui-onboarding-card`,"aria-labelledby":O,hidden:_||void 0,children:[c(`header`,{className:`wui-onboarding-head`,children:[c(`button`,{type:`button`,className:`wui-onboarding-toggle`,"aria-expanded":!L,"aria-controls":k,children:[s(`span`,{className:`wui-onboarding-title`,id:O,children:h}),s(`span`,{className:`wui-onboarding-count`,children:R}),s(`span`,{className:`wui-onboarding-chevron`,"aria-hidden":`true`,children:s(n,{name:`chevron-down`,size:16})})]}),s(r,{icon:`x`,label:y,size:16,className:`wui-onboarding-dismiss`})]}),s(`div`,{className:`wui-onboarding-bar`,role:`progressbar`,"aria-labelledby":O,"aria-valuemin":0,"aria-valuemax":m.length,"aria-valuenow":P,"aria-valuetext":R,children:N.map((e,t)=>s(`span`,{className:`wui-onboarding-seg is-${e}`},m[t].key??`${m[t].label}-${t}`))}),s(`ol`,{className:`wui-onboarding-steps`,id:k,hidden:L||void 0,children:m.map((e,t)=>{let n=N[t];return c(`li`,{className:`wui-onboarding-step is-${n}`,"aria-current":n===`current`?`step`:void 0,children:[s(`span`,{className:`wui-onboarding-mark`,"aria-hidden":`true`,children:f(n,t)}),c(`span`,{className:`wui-onboarding-body`,children:[u[n]?s(`span`,{className:`visually-hidden`,children:u[n]}):null,p(e,w),e.description?s(`span`,{className:`wui-onboarding-desc`,children:e.description}):null]})]},e.key??`${e.label}-${t}`)})})]}),c(`button`,{type:`button`,className:`wui-onboarding-restore`,hidden:!_||void 0,children:[s(n,{name:`task-square`,size:16}),s(`span`,{children:b}),s(`span`,{className:`wui-onboarding-count`,children:R})]})]})}export{m as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r from"./AppRequiredMark.js";import{useId as i,useState as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";import"@webority/ui-elements/elements/rating";var c={sm:16,md:20,lg:28},l=e=>String(Math.round(e*100)/100),u=(e,t,n)=>e>=t?`full`:n&&e>=t-.5?`half`:`empty`;function d({value:n,defaultValue:d,onChange:p,max:m=5,readOnly:h=!1,half:g=!1,showValue:_=!1,size:v=`md`,label:y,name:b,required:x=!1,disabled:S=!1,error:C,hint:w,id:T,className:E=``,fieldClassName:D=``,...O}){t(`AppRating`,O),e(`AppRating`,`size`,v,Object.keys(c));let k=i(),[A,j]=a(d),M=c[v]??c.md,N=Array.from({length:m},(e,t)=>t+1),P=(...e)=>[`wui-rating`,`wui-rating-${v}`,...e,E].filter(Boolean).join(` `);if(h){let e=Number.isFinite(Number(n))?Math.min(Math.max(Number(n),0),m):0,t=g?Math.round(e*2)/2:Math.round(e),r=`${typeof y==`string`&&y?`${y}: `:``}${l(e)} out of ${m}`;return s(`span`,{className:P(`wui-rating-display`),id:T,role:`img`,"aria-label":r,...O,children:[o(`span`,{className:`wui-rating-stars`,"aria-hidden":`true`,children:N.map(e=>o(`span`,{className:`wui-rating-star wui-rating-star-${u(t,e,g)}`,children:o(f,{px:M})},e))}),_&&o(`span`,{className:`wui-rating-value`,"aria-hidden":`true`,children:l(e)})]})}let F=T||k,I=b||F,L=`${F}-error`,R=`${F}-hint`,z=Math.round(Number(n===void 0?A:n))||0,B=e=>{j(e),p?.(e)};return s(`div`,{className:`field${D?` ${D}`:``}`,children:[y!=null&&s(`span`,{className:`label`,id:`${F}-label`,children:[y,x&&o(r,{})]}),o(`wui-rating`,{class:P(`wui-rating-input`),id:F,role:`radiogroup`,"aria-labelledby":y==null?void 0:`${F}-label`,"aria-label":y==null?`Rating`:void 0,"aria-required":x?`true`:void 0,"aria-invalid":C?`true`:void 0,"aria-describedby":C?L:w?R:void 0,disabled:S?``:void 0,...O,children:N.map(e=>s(`label`,{className:`wui-rating-star wui-rating-star-${z>=e?`full`:`empty`}`,"data-value":e,children:[o(`input`,{type:`radio`,className:`visually-hidden`,name:I,value:e,"aria-label":`${e} ${e===1?`star`:`stars`}`,checked:z===e,onChange:()=>B(e),disabled:S||void 0,required:x||void 0}),o(f,{px:M})]},e))}),C?o(`div`,{className:`field-error`,id:L,children:C}):w?o(`div`,{className:`field-hint`,id:R,children:w}):null]})}function f({px:e}){return s(`span`,{className:`wui-rating-glyphs`,"aria-hidden":`true`,children:[o(n,{name:`star`,size:e}),o(`span`,{className:`wui-rating-fill`,children:o(n,{name:`star`,variant:`bold`,size:e})})]})}export{d as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppActionIcon.js";import{formatNumber as n}from"@webority/ui-elements/helpers";import{jsx as r,jsxs as i}from"react/jsx-runtime";import"@webority/ui-elements/elements/record-pager";var a=e=>n(e,{decimals:0});function o({index:n,total:o,prevHref:s,onPrev:c,nextHref:l,onNext:u,prevLabel:d=`Previous`,nextLabel:f=`Next`,keys:p=!1,className:m=``,...h}){e(`AppRecordPager`,h);let g=Number(n),_=Number(o),v=Number.isInteger(g)&&Number.isInteger(_)&&g>=1&&g<=_,y=v&&g>1&&!!(s||c),b=v&&g<_&&!!(l||u);return i(`wui-record-pager`,{class:[`wui-record-pager`,m].filter(Boolean).join(` `),keys:p?``:void 0,...h,children:[r(`span`,{className:`wui-record-pager-position`,"aria-live":`polite`,children:v?`${a(g)} of ${a(_)}`:``}),r(t,{icon:`chevron-left`,label:d,size:18,className:`wui-record-pager-prev`,href:s||void 0,onClick:c,disabled:!y,shortcut:p?`K`:void 0}),r(t,{icon:`chevron-right`,label:f,size:18,className:`wui-record-pager-next`,href:l||void 0,onClick:u,disabled:!b,shortcut:p?`J`:void 0})]})}export{o as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./withTooltip.js";import{EMPTY_VALUE as n,formatDate as r,toInstant as i}from"@webority/ui-elements/helpers";import{jsx as a}from"react/jsx-runtime";import{relativeTimeTitle as o}from"@webority/ui-elements/elements/relative-time";function s({value:s,tooltipPlacement:c=`auto`,className:l=``,...u}){e(`AppRelativeTime`,u);let d=i(s),f=Number.isFinite(d),p=f?typeof s==`string`?s.trim():new Date(d).toISOString():void 0;return t(a(`wui-relative-time`,{class:[`wui-relative-time`,l].filter(Boolean).join(` `),...u,children:a(`time`,{dateTime:p,children:f?r(d):n})}),f?o(d):void 0,c)}export{s as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{createContext as n,useEffect as r,useRef as i}from"react";import{jsx as a}from"react/jsx-runtime";import"@webority/ui-elements/elements/resizable";var o=[`horizontal`,`vertical`],s=n(`horizontal`);function c({direction:n=`horizontal`,storageKey:c,onChange:l,children:u,className:d=``,...f}){t(`AppResizable`,f),e(`AppResizable`,`direction`,n,o);let p=i(null),m=n===`vertical`;return r(()=>{let e=p.current;if(!e||!l)return;let t=t=>{t.target===e&&l(t.detail.sizes)};return e.addEventListener(`wui-resizable:change`,t),()=>e.removeEventListener(`wui-resizable:change`,t)},[l]),a(s.Provider,{value:m?`vertical`:`horizontal`,children:a(`wui-resizable`,{ref:p,class:[`wui-resizable`,d].filter(Boolean).join(` `),direction:m?`vertical`:`horizontal`,"storage-key":c||void 0,...f,children:u})})}export{s as ResizableDirection,c as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{ResizableDirection as t}from"./AppResizable.js";import{useContext as n}from"react";import{jsx as r}from"react/jsx-runtime";function i({label:i=`Resize panels`,className:a=``,...o}){e(`AppResizableHandle`,o);let s=n(t);return r(`div`,{className:[`wui-resizable-handle`,a].filter(Boolean).join(` `),role:`separator`,tabIndex:0,"aria-orientation":s===`vertical`?`horizontal`:`vertical`,"aria-label":i,...o})}export{i as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{jsx as t}from"react/jsx-runtime";function n({defaultSize:n,minSize:r,maxSize:i,children:a,className:o=``,style:s,...c}){return e(`AppResizablePanel`,c),t(`div`,{className:[`wui-resizable-panel`,o].filter(Boolean).join(` `),"data-default-size":n,"data-min-size":r,"data-max-size":i,style:n?{flex:`${n} 1 0px`,...s}:s,...c,children:a})}export{n as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{MONEY_UNITS as n,formatValue as r}from"@webority/ui-elements/helpers";import{jsx as i,jsxs as a}from"react/jsx-runtime";import"@webority/ui-elements/elements/rolling-number";var o=[`number`,`currency`,`percent`];function s({value:s,format:c=`number`,unit:l,decimals:u,duration:d,className:f=``,...p}){t(`AppRollingNumber`,p),e(`AppRollingNumber`,`format`,c,o),e(`AppRollingNumber`,`unit`,l,n);let m=typeof s==`number`&&Number.isFinite(s),h=r(m?s:null,{style:c,unit:l,decimals:u});return a(`wui-rolling-number`,{class:[`wui-rolling-number`,f].filter(Boolean).join(` `),value:m?String(s):void 0,format:c,unit:l,decimals:u===void 0?void 0:String(u),duration:d===void 0?void 0:String(d),...p,children:[i(`span`,{className:`wui-rolling-number-text`,children:h}),i(`span`,{className:`wui-rolling-number-roll`,"aria-hidden":`true`})]})}export{s as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,sectionHeading as o}from"../lib/sectionShell.js";import{jsx as s}from"react/jsx-runtime";function c({title:c,actions:l,as:u=`h2`,eyebrow:d,subtitle:f,align:p=`center`,variant:m=`default`,className:h=``,...g}){return t(`AppSectionCallToAction`,g),e(`AppSectionCallToAction`,`as`,u,i),e(`AppSectionCallToAction`,`align`,p,r),e(`AppSectionCallToAction`,`variant`,m,a),s(n,{component:`AppSectionCallToAction`,kind:`call-to-action`,title:c,as:o(u,`h2`),eyebrow:d,subtitle:f,align:p,variant:m,actions:l,className:h,rest:g})}export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,sectionHeading as o}from"../lib/sectionShell.js";import{jsx as s}from"react/jsx-runtime";function c({title:c,as:l=`h2`,eyebrow:u,subtitle:d,align:f=`center`,variant:p=`default`,children:m,className:h=``,...g}){return t(`AppSectionFaq`,g),e(`AppSectionFaq`,`as`,l,i),e(`AppSectionFaq`,`align`,f,r),e(`AppSectionFaq`,`variant`,p,a),s(n,{component:`AppSectionFaq`,kind:`faq`,title:c,as:o(l,`h2`),eyebrow:u,subtitle:d,align:f,variant:p,className:h,rest:g,children:m!=null&&m!==!1&&s(`div`,{className:`wui-section-faq-body`,children:m})})}export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r,{SECTION_ALIGNS as i,SECTION_HEADINGS as a,SECTION_VARIANTS as o,itemHeading as s,sectionHeading as c}from"../lib/sectionShell.js";import{jsx as l,jsxs as u}from"react/jsx-runtime";var d=[`grid`,`rows`];function f({title:f,items:p=[],layout:m=`grid`,as:h=`h2`,eyebrow:g,subtitle:_,align:v=`center`,variant:y=`default`,className:b=``,...x}){t(`AppSectionFeatures`,x),e(`AppSectionFeatures`,`layout`,m,d),e(`AppSectionFeatures`,`as`,h,a),e(`AppSectionFeatures`,`align`,v,i),e(`AppSectionFeatures`,`variant`,y,o);let S=c(h,`h2`),C=s(S);return l(r,{component:`AppSectionFeatures`,kind:`features`,title:f,as:S,eyebrow:g,subtitle:_,align:v,variant:y,extraClass:m===`rows`?`wui-section-features-rows`:``,className:b,rest:x,children:p.length>0&&l(`ul`,{className:`wui-section-features-list`,children:p.map(e=>u(`li`,{className:`wui-section-feature`,children:[e.media!=null&&l(`div`,{className:`wui-section-media`,children:e.media}),u(`div`,{className:`wui-section-feature-body`,children:[e.icon&&l(`span`,{className:`wui-section-feature-icon`,children:l(n,{name:e.icon,size:24})}),l(C,{className:`wui-section-feature-title`,children:e.title}),e.description!=null&&e.description!==``&&l(`div`,{className:`wui-section-feature-text`,children:e.description})]})]},e.key??e.title))})})}export{f as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,sectionHeading as o}from"../lib/sectionShell.js";import{jsx as s}from"react/jsx-runtime";function c({title:c,as:l=`h1`,eyebrow:u,subtitle:d,align:f=`start`,variant:p=`default`,actions:m,media:h,className:g=``,..._}){return t(`AppSectionHero`,_),e(`AppSectionHero`,`as`,l,i),e(`AppSectionHero`,`align`,f,r),e(`AppSectionHero`,`variant`,p,a),s(n,{component:`AppSectionHero`,kind:`hero`,title:c,as:o(l,`h1`),eyebrow:u,subtitle:d,align:f,variant:p,actions:m,className:g,rest:_,children:h!=null&&h!==!1&&s(`div`,{className:`wui-section-media`,children:h})})}export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,SectionImage as o,sectionHeading as s}from"../lib/sectionShell.js";import{jsx as c}from"react/jsx-runtime";function l({title:l,items:u=[],as:d=`h2`,eyebrow:f,subtitle:p,align:m=`center`,variant:h=`default`,className:g=``,..._}){t(`AppSectionLogos`,_),e(`AppSectionLogos`,`as`,d,i),e(`AppSectionLogos`,`align`,m,r),e(`AppSectionLogos`,`variant`,h,a);for(let e of u)if(!e.src||!e.alt||!(e.width>0)||!(e.height>0))throw Error(`AppSectionLogos item "${e.src??``}" needs src, alt (the company's name), width and height: a logo without a size moves the page when it loads.`);return c(n,{component:`AppSectionLogos`,kind:`logos`,title:l,as:s(d,`h2`),eyebrow:f,subtitle:p,align:m,variant:h,className:g,rest:_,children:u.length>0&&c(`ul`,{className:`wui-section-logos-list`,children:u.map(e=>{let t=c(o,{className:`wui-section-logo-img`,src:e.src,alt:e.alt,width:e.width,height:e.height});return c(`li`,{className:`wui-section-logo`,children:e.href?c(`a`,{href:e.href,children:t}):t},e.key??e.src)})})})}export{l as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,sectionHeading as o}from"../lib/sectionShell.js";import{jsx as s}from"react/jsx-runtime";function c({title:c,as:l=`h2`,eyebrow:u,subtitle:d,align:f=`center`,variant:p=`default`,children:m,className:h=``,...g}){return t(`AppSectionPricing`,g),e(`AppSectionPricing`,`as`,l,i),e(`AppSectionPricing`,`align`,f,r),e(`AppSectionPricing`,`variant`,p,a),s(n,{component:`AppSectionPricing`,kind:`pricing`,title:c,as:o(l,`h2`),eyebrow:u,subtitle:d,align:f,variant:p,className:h,rest:g,children:m!=null&&m!==!1&&s(`div`,{className:`plan-grid`,children:m})})}export{c as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n,{SECTION_ALIGNS as r,SECTION_HEADINGS as i,SECTION_VARIANTS as a,SectionImage as o,sectionHeading as s}from"../lib/sectionShell.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";function u({title:u,items:d=[],as:f=`h2`,eyebrow:p,subtitle:m,align:h=`center`,variant:g=`default`,className:_=``,...v}){return t(`AppSectionTestimonials`,v),e(`AppSectionTestimonials`,`as`,f,i),e(`AppSectionTestimonials`,`align`,h,r),e(`AppSectionTestimonials`,`variant`,g,a),c(n,{component:`AppSectionTestimonials`,kind:`testimonials`,title:u,as:s(f,`h2`),eyebrow:p,subtitle:m,align:h,variant:g,className:_,rest:v,children:d.length>0&&c(`ul`,{className:`wui-section-testimonials-list`,children:d.map(e=>c(`li`,{children:l(`figure`,{className:`wui-section-testimonial`,children:[c(`blockquote`,{className:`wui-section-testimonial-quote`,children:e.quote}),l(`figcaption`,{className:`wui-section-testimonial-author`,children:[e.avatar&&c(o,{className:`wui-section-testimonial-avatar`,src:e.avatar,alt:``,width:48,height:48}),l(`span`,{className:`wui-section-testimonial-who`,children:[e.name&&c(`span`,{className:`wui-section-testimonial-name`,children:e.name}),e.role&&c(`span`,{className:`wui-section-testimonial-role`,children:e.role})]})]})]})},e.key??e.name))})})}export{u as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{shortcutChip as t}from"../lib/shortcutChip.js";import n from"./AppIcon.js";import{SHORTCUT_EVENT as r,SHORTCUT_TEXT as i,shortcutKey as a}from"@webority/ui-elements/helpers";import{useEffect as o,useId as s,useRef as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import"@webority/ui-elements/elements/shortcuts";function d({shortcuts:d=[],items:f,search:p,className:m=``,...h}){e(`AppShortcutLegend`,h);let g=s(),_=c(null),v=d.filter(e=>a(e.key)!==`?`),y=c(v);return y.current=v,o(()=>{let e=_.current;if(!e)return;let t=e=>{let t=y.current.find(t=>a(t.key)===e.detail.key&&typeof t.onPress==`function`);t&&(e.preventDefault(),t.onPress(e.detail.itemKey))};return e.addEventListener(r,t),()=>e.removeEventListener(r,t)},[]),u(`wui-shortcuts`,{ref:_,class:[`wui-shortcut-legend`,m].filter(Boolean).join(` `),items:f||void 0,search:p||void 0,...h,children:[u(`button`,{type:`button`,className:`wui-shortcut-toggle`,"aria-haspopup":`dialog`,"aria-expanded":`false`,"aria-controls":g,"aria-keyshortcuts":`?`,children:[t(`?`),` ${i.title}`]}),u(`div`,{className:`wui-shortcut-sheet`,id:g,role:`dialog`,"aria-label":i.title,hidden:!0,children:[u(`div`,{className:`wui-shortcut-sheet-head`,children:[l(`span`,{className:`wui-shortcut-sheet-title`,children:i.title}),l(`button`,{type:`button`,className:`wui-shortcut-close`,"aria-label":i.close,children:l(n,{name:`x`,size:16})})]}),l(`dl`,{className:`wui-shortcut-keys`,children:[...v,{key:`?`,label:i.help}].map(e=>u(`div`,{"data-shortcut":a(e.key),children:[l(`dt`,{children:l(`kbd`,{className:`wui-kbd`,children:a(e.key)})}),l(`dd`,{children:e.label})]},a(e.key)))})]})]})}export{d as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{useId as t,useLayoutEffect as n,useRef as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import"@webority/ui-elements/elements/show-more";function o({children:o,lines:s=3,moreLabel:c=`Show more`,lessLabel:l=`Show less`,defaultExpanded:u=!1,id:d,className:f=``,...p}){e(`AppShowMore`,p);let m=t(),h=d||`show-more-${m.replace(/:/g,``)}`,g=`${h}-body`,_=r(null),v=r(u);return n(()=>{v.current&&_.current.toggle(!0)},[]),a(`wui-show-more`,{ref:_,class:[`wui-show-more`,f].filter(Boolean).join(` `),id:h,lines:s===3?void 0:String(s),"more-label":c===`Show more`?void 0:c,"less-label":l===`Show less`?void 0:l,...p,children:[i(`div`,{className:`wui-show-more-body`,id:g,children:o}),i(`button`,{type:`button`,className:`btn btn-link btn-sm wui-show-more-toggle`,"aria-expanded":v.current?`true`:`false`,"aria-controls":g,hidden:!0,children:v.current?l:c})]})}export{o as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r from"./AppButton.js";import i from"./AppDropdown.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s=[`sm`,`md`,`lg`],c=[`button`,`submit`,`reset`],l={sm:14,md:16,lg:20},u={sm:`btn-sm`,md:``,lg:`btn-lg`};function d({label:d,items:f=[],onClick:p,href:m,type:h=`button`,variant:g=`primary`,size:_=`md`,disabled:v=!1,loading:y=!1,leftIcon:b,shortcut:x,menuLabel:S=`More actions`,align:C=`end`,linkComponent:w,className:T=``,...E}){t(`AppSplitButton`,E),e(`AppSplitButton`,`size`,_,s),e(`AppSplitButton`,`type`,h,c);let D=[`btn`,g===`outline`?`btn-outline-primary`:`btn-${g}`,u[_]??``,`wui-split-toggle`].filter(Boolean).join(` `),O=a(n,{name:`chevron-down`,size:l[_]??l.md}),k=v||y;return o(`div`,{role:`group`,"aria-label":d,className:[`wui-split-button`,T].filter(Boolean).join(` `),...E,children:[a(r,{variant:g,size:_,type:h,href:m,onClick:p,disabled:v,loading:y,leftIcon:b,shortcut:x,children:d}),k?a(`div`,{className:`wui-split-menu`,children:a(`button`,{type:`button`,className:D,disabled:!0,"aria-label":S,children:O})}):a(i,{className:`wui-split-menu`,trigger:O,toggleClassName:D,label:S,ariaLabel:S,align:C,items:f,linkComponent:w})]})}export{d as default};
@@ -0,0 +1 @@
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppRecordPager.js";import r from"./AppShortcutLegend.js";import{LIST_KEYS as i,SELECT_KEY as a,shortcutKey as o}from"@webority/ui-elements/helpers";import{useEffect as s,useRef as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";var f={sm:576,md:768,lg:992,xl:1200,xxl:1400},p=Object.keys(f),m=[3,4,5,6,7,8],h=6,g=`.wui-split-items > .wui-split-item > .wui-split-link`,_=(e,t)=>e!=null&&String(e)===String(t),v=e=>{let t=window.matchMedia?.(`(min-width: ${f[e]}px)`);return!t||t.matches},ee=e=>typeof e==`string`||typeof e==`number`?String(e):`item`;function y({items:y=[],currentKey:b,onSelect:x,selectable:S=!1,selectedKeys:C,onToggle:w,onToggleAll:T,bulkActions:E,header:D,chips:O,pane:k,paneHeader:A,pager:j=!0,shortcuts:te,shortcutsEnabled:M=!0,empty:ne=`Nothing here yet.`,loading:N=!1,listWidth:P=5,stackBelow:F=`xl`,className:I=``,...L}){t(`AppSplitView`,L),e(`AppSplitView`,`stackBelow`,F,p),e(`AppSplitView`,`listWidth`,P,m);let R=f[F]?F:`xl`,z=m.includes(P)?P:5,B=c(null),V=b!=null,H=S?C?.size??0:0,U=H>0,W=S&&y.length>0&&y.every(e=>C?.has(e.key)),G=S&&!W&&y.some(e=>C?.has(e.key)),K=e=>{e&&(e.indeterminate=G)},q=c(!1);s(()=>{if(!q.current){q.current=!0;return}b!=null&&B.current?.querySelector(`.wui-split-link[aria-current="true"]`)?.scrollIntoView?.({block:`nearest`})},[b]);let J=(e,t)=>{t.button>0||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey||x&&(e.href&&!v(R)||(t.preventDefault(),x(e.key)))},Y=e=>{let t=[...B.current?.querySelectorAll(g)??[]];t[t.findIndex(e=>e.getAttribute(`aria-current`)===`true`)+e]?.click()},X=[`wui-split-view`,V?`wui-split-reading`:``,I].filter(Boolean).join(` `),re=S?[...i,a]:i,ie=new Set([`J`,`K`,`Enter`,`?`,...S?[`X`]:[]]),ae=[...re,...(te??[]).filter(e=>!ie.has(o(e.key))).map(e=>({key:e.key,label:e.label,onPress:()=>e.onPress?.(b)}))],Z=y.findIndex(e=>_(b,e.key)),Q=j&&!N&&y.length>0?u(n,{"data-split-pager":``,index:Z>=0?Z+1:void 0,total:y.length,onPrev:()=>Y(-1),onNext:()=>Y(1),prevLabel:`Previous item`,nextLabel:`Next item`}):null,oe=e=>{let t=_(b,e.key),n=S&&!!C?.has(e.key),r=e.badge!==void 0&&e.badge!==null&&e.badge!==``,i=d(l,{children:[d(`span`,{className:`wui-split-item-main`,children:[u(`span`,{className:`wui-split-item-title`,children:e.title}),e.meta!==void 0&&e.meta!==null&&u(`span`,{className:`wui-split-item-meta`,children:e.meta})]}),(e.trailing||r)&&d(`span`,{className:`wui-split-item-end`,children:[e.trailing,r&&u(`span`,{className:`wui-split-badge`,children:e.badge})]})]});return d(`li`,{className:[`wui-split-item`,t?`is-active`:``,n?`is-selected`:``].filter(Boolean).join(` `),"data-key":e.key,children:[S&&u(`input`,{type:`checkbox`,className:`wui-check wui-split-check`,checked:n,onChange:()=>w?.(e.key),"aria-label":`Select ${ee(e.title)}`}),e.href?u(`a`,{className:`wui-split-link`,href:e.href,"aria-current":t?`true`:void 0,onClick:t=>J(e,t),children:i}):u(`button`,{type:`button`,className:`wui-split-link`,"aria-current":t?`true`:void 0,onClick:t=>J(e,t),children:i})]},e.key)},$;return $=N?d(`div`,{className:`wui-split-items`,"aria-busy":`true`,children:[u(`span`,{className:`visually-hidden`,children:`Loading`}),Array.from({length:h},(e,t)=>d(`div`,{className:`wui-split-skeleton`,"aria-hidden":`true`,children:[u(`span`,{className:`skeleton wui-split-skeleton-title`}),u(`span`,{className:`skeleton wui-split-skeleton-meta`})]},t))]}):y.length?u(`ul`,{className:`wui-split-items`,"aria-label":`Items`,children:y.map(oe)}):u(`div`,{className:`wui-split-empty`,children:ne}),d(`div`,{ref:B,className:X,"data-stack-below":R,"data-list-width":z,"data-shortcut-scope":M?``:void 0,...L,children:[d(`div`,{className:`wui-split-list`,children:[(D||S)&&d(`div`,{className:`wui-split-head`,children:[S&&u(`input`,{ref:K,type:`checkbox`,className:`wui-check wui-split-all`,checked:W,onChange:e=>T?.(e.target.checked),"aria-label":`Select all items`}),u(`div`,{className:`wui-split-head-main`,hidden:U,children:D}),S&&d(`div`,{className:`wui-split-head-bulk`,hidden:!U,children:[d(`span`,{className:`wui-split-count`,"aria-live":`polite`,children:[H,` selected`]}),E]})]}),O&&u(`div`,{className:`wui-split-chips`,children:O}),$,M&&d(`div`,{className:`wui-split-legend`,children:[d(`span`,{children:[u(`kbd`,{className:`wui-kbd`,children:`J`}),` `,u(`kbd`,{className:`wui-kbd`,children:`K`}),` Move`]}),d(`span`,{children:[u(`kbd`,{className:`wui-kbd`,children:`Enter`}),` Open`]}),u(r,{items:g,shortcuts:ae})]})]}),d(`div`,{className:`wui-split-pane`,children:[(A||Q)&&d(`div`,{className:`wui-split-pane-head`,children:[A,Q]}),u(`section`,{className:`wui-split-pane-body`,"aria-label":`Reading pane`,tabIndex:0,children:k})]})]})}export{y as default};
@@ -1 +1 @@
1
- import e from"./warnUnknownProps.js";import t from"./renderIconProp.js";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({icon:i,title:a,text:o,action:s,...c}){return e(`AppTableEmptyState`,c),r(`div`,{className:`tbl-empty`,...c,children:[n(`span`,{className:`tbl-empty-icon`,children:t(i,{size:24})}),n(`div`,{className:`tbl-empty-title`,children:a}),o&&n(`div`,{className:`tbl-empty-text`,children:o}),s&&n(`div`,{className:`tbl-empty-action`,children:s})]})}export{i as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./renderIconProp.js";import r,{ILLUSTRATION_NAMES as i}from"../lib/emptyIllustration.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s({icon:s,illustration:c,title:l,text:u,action:d,...f}){t(`AppTableEmptyState`,f),e(`AppTableEmptyState`,`illustration`,c,i);let p=c!=null&&i.includes(c);return o(`div`,{className:`tbl-empty`,...f,children:[p?a(r,{name:c,className:`wui-empty-illustration`}):a(`span`,{className:`tbl-empty-icon`,children:n(s,{size:24})}),a(`div`,{className:`tbl-empty-title`,children:l}),u&&a(`div`,{className:`tbl-empty-text`,children:u}),d&&a(`div`,{className:`tbl-empty-action`,children:d})]})}export{s as default};
@@ -1 +1 @@
1
- import e from"./warnUnknownProps.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function r({filters:r,actions:i,selectedCount:a=0,bulkActions:o,onClearSelection:s,className:c=``,...l}){e(`AppTableToolbar`,l);let u=a>0;return n(`div`,{className:`wui-table-toolbar${c?` ${c}`:``}`,...l,children:[n(`div`,{className:`wui-table-toolbar-main`,hidden:u,children:[t(`div`,{className:`wui-table-toolbar-filters`,children:r}),t(`div`,{className:`wui-table-toolbar-actions`,children:i})]}),n(`div`,{className:`wui-table-toolbar-bulk`,hidden:!u,children:[n(`span`,{className:`wui-table-toolbar-count`,"aria-live":`polite`,children:[a,` selected`]}),o,s&&t(`button`,{type:`button`,className:`btn btn-ghost btn-sm wui-table-toolbar-clear`,onClick:s,children:`Clear`})]})]})}export{r as default};
1
+ import e from"./warnUnknownProps.js";import{formatNumber as t}from"@webority/ui-elements/helpers";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({filters:i,actions:a,selectedCount:o=0,bulkActions:s,onClearSelection:c,totalCount:l,pageCount:u,onSelectAllMatching:d,allMatchingSelected:f=!1,className:p=``,...m}){e(`AppTableToolbar`,m);let h=o>0,g=typeof d==`function`&&typeof l==`number`,_=g&&f,v=e=>t(e,{decimals:0}),y=g&&!_&&h&&o>=(u??1)&&l>(u??o);return r(`div`,{className:`wui-table-toolbar${p?` ${p}`:``}`,...m,children:[r(`div`,{className:`wui-table-toolbar-main`,hidden:h,children:[n(`div`,{className:`wui-table-toolbar-filters`,children:i}),n(`div`,{className:`wui-table-toolbar-actions`,children:a})]}),r(`div`,{className:`wui-table-toolbar-bulk`,hidden:!h,children:[r(`span`,{className:`wui-table-toolbar-count`,"aria-live":`polite`,children:[_?`All ${v(l)}`:v(o),` selected`]}),g&&r(`button`,{type:`button`,className:`btn btn-link btn-sm wui-table-toolbar-all`,hidden:!y,onClick:d,children:[`Select all `,v(l),` matching`]}),s,c&&n(`button`,{type:`button`,className:`btn btn-ghost btn-sm wui-table-toolbar-clear`,onClick:c,children:_?`Clear selection`:`Clear`})]})]})}export{i as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppTooltip.js";import r from"./AppIcon.js";import i from"./renderIconProp.js";import{useCallback as a,useEffect as o,useLayoutEffect as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";var p=[`underline`,`pills`],m=[`horizontal`,`vertical`],h=[`sm`,`md`,`lg`],g=[`automatic`,`manual`],_=[`success`,`warning`,`danger`,`info`],v=1,y=28,b=.7;function x({tabs:x,value:S,onChange:C,linkComponent:w,variant:T=`underline`,orientation:E=`horizontal`,size:D=`md`,fitted:O=!1,activation:k=`automatic`,ariaLabel:A,className:j=``,style:M,...N}){t(`AppTabs`,N),e(`AppTabs`,`variant`,T,p),e(`AppTabs`,`orientation`,E,m),e(`AppTabs`,`size`,D,h),e(`AppTabs`,`activation`,k,g);for(let t of x)e(`AppTabs`,`tabs[].tone`,t.tone,_);let P=c(null),F=c(null),I=E===`vertical`,[L,R]=l(S);o(()=>{R(S)},[S]);let z=x.find(e=>!e.disabled)?.key,B=x.some(e=>e.key===L&&!e.disabled)?L:void 0,V=x.some(e=>e.key===S&&!e.disabled)?S:void 0,H=B??V??z,U=e=>{P.current?.querySelector(`[data-key="${CSS.escape(String(e))}"]`)?.focus()},W=a(()=>{let e=P.current,t=F.current;if(!e||!t||I)return;let n=e.scrollWidth-e.clientWidth;t.classList.toggle(`is-overflow-start`,e.scrollLeft>v),t.classList.toggle(`is-overflow-end`,n>v&&e.scrollLeft<n-v)},[I]),G=a(()=>{let e=P.current;if(!e)return;let t=e.querySelector(`.app-tab.active`);t?(I?(e.style.setProperty(`--wui-tab-y`,`${t.offsetTop}px`),e.style.setProperty(`--wui-tab-h`,`${t.offsetHeight}px`)):(e.style.setProperty(`--wui-tab-x`,`${t.offsetLeft}px`),e.style.setProperty(`--wui-tab-w`,`${t.offsetWidth}px`)),e.toggleAttribute(`data-active-danger`,!!x.find(e=>e.key===S)?.danger)):e.style.setProperty(I?`--wui-tab-h`:`--wui-tab-w`,`0px`),e.setAttribute(`data-wui-tabs`,``),W()},[I,x,S,W]),K=a(()=>{let e=P.current;if(!e||I)return;let t=e.querySelector(`.app-tab.active`);if(!t)return;let n=y,r=t.offsetLeft,i=r+t.offsetWidth;r-n<e.scrollLeft?e.scrollLeft=Math.max(0,r-n):i+n>e.scrollLeft+e.clientWidth&&(e.scrollLeft=i+n-e.clientWidth)},[I]);s(()=>{G()},[G]),s(()=>{K()},[S,K]);let q=c(G);o(()=>{q.current=G},[G]),o(()=>{if(typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>q.current());return P.current&&e.observe(P.current),F.current&&e.observe(F.current),()=>e.disconnect()},[I]);function J(e){let t=e.target?.dataset?.key;if(t==null)return;let n=x.findIndex(e=>e.key===t);if(n<0)return;let r=x.length,i=(e,t)=>{for(let n=1;n<=r;n++){let i=x[((e+t*n)%r+r)%r];if(!i.disabled)return i}return null},a=I?`ArrowDown`:`ArrowRight`,o=I?`ArrowUp`:`ArrowLeft`,s=null;if(e.key===a?s=i(n,1):e.key===o?s=i(n,-1):e.key===`Home`?s=x.find(e=>!e.disabled)??null:e.key===`End`&&(s=[...x].reverse().find(e=>!e.disabled)??null),!s)return;e.preventDefault(),R(s.key),U(s.key);let c=s.href!=null||s.to!=null;k===`automatic`&&!c&&C?.(s.key)}let Y=e=>{let t=P.current;t&&t.scrollBy({left:e*t.clientWidth*b})},X=[`app-tabs`,T===`pills`?`app-tabs-pills`:``,I?`app-tabs-vertical`:``,D===`sm`?`app-tabs-sm`:``,D===`lg`?`app-tabs-lg`:``,O?`app-tabs-fitted`:``,j].filter(Boolean).join(` `),Z=f(`div`,{ref:P,role:`tablist`,"aria-orientation":I?`vertical`:void 0,"aria-label":A,className:X,style:M,...N,onKeyDown:J,onScroll:W,children:[x.map(e=>{let t=e.key===S,r=e.href!=null||e.to!=null,a={role:`tab`,"data-key":e.key,"aria-selected":t,tabIndex:e.key===H?0:-1,className:`app-tab${t?` active`:``}${e.danger?` danger`:``}${r&&e.disabled?` disabled`:``}`},o=f(u,{children:[e.image?d(`img`,{className:`app-tab-img`,src:e.image,alt:e.imageAlt??``}):i(e.icon,{size:16,className:`app-tab-icon`}),e.label,e.count!=null&&d(`span`,{className:`app-tab-count${e.tone?` ${e.tone}`:``}`,children:e.count})]}),s;if(r){let t=e.to!=null&&w?w:`a`,n=e.rel??(e.target===`_blank`?`noopener noreferrer`:void 0),r=e.disabled?{"aria-disabled":!0}:t===`a`?{href:e.href??e.to,target:e.target,rel:n}:{to:e.to,target:e.target,rel:n},i=t=>{if(e.disabled){t.preventDefault();return}t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||(R(e.key),C?.(e.key))};s=d(t,{...a,...r,onClick:i,children:o},e.key)}else s=d(`button`,{type:`button`,...a,disabled:e.disabled,onClick:()=>{e.disabled||(R(e.key),C?.(e.key))},children:o},e.key);return e.tooltip?d(n,{content:e.tooltip,children:s},e.key):s}),d(`span`,{className:`app-tab-indicator`,"aria-hidden":`true`})]});return I?Z:f(`div`,{ref:F,className:`app-tabs-wrap`,children:[d(`button`,{type:`button`,className:`app-tabs-scroll-btn prev`,"aria-label":`Scroll tabs backward`,tabIndex:-1,onClick:()=>Y(-1),children:d(r,{name:`chevron-left`,size:16})}),Z,d(`button`,{type:`button`,className:`app-tabs-scroll-btn next`,"aria-label":`Scroll tabs forward`,tabIndex:-1,onClick:()=>Y(1),children:d(r,{name:`chevron-right`,size:16})})]})}export{x as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppTooltip.js";import r from"./AppIcon.js";import i from"./renderIconProp.js";import{useCallback as a,useEffect as o,useLayoutEffect as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import"@webority/ui-elements/elements/overflow";var p=[`underline`,`pills`],m=[`horizontal`,`vertical`],ee=[`sm`,`md`,`lg`],h=[`automatic`,`manual`],g=[`scroll`,`menu`],_=[`success`,`warning`,`danger`,`info`],v=1,y=28,b=.7;function x({tabs:x,value:S,onChange:C,linkComponent:w,variant:T=`underline`,orientation:E=`horizontal`,size:D=`md`,fitted:O=!1,overflow:k=`scroll`,moreLabel:A=`More`,activation:j=`automatic`,ariaLabel:M,className:N=``,style:P,...F}){t(`AppTabs`,F),e(`AppTabs`,`variant`,T,p),e(`AppTabs`,`orientation`,E,m),e(`AppTabs`,`size`,D,ee),e(`AppTabs`,`activation`,j,h),e(`AppTabs`,`overflow`,k,g);for(let t of x)e(`AppTabs`,`tabs[].tone`,t.tone,_);let I=c(null),L=c(null),R=E===`vertical`,z=k===`menu`&&!R,[B,V]=l(S);o(()=>{V(S)},[S]);let H=x.find(e=>!e.disabled)?.key,U=x.some(e=>e.key===B&&!e.disabled)?B:void 0,W=x.some(e=>e.key===S&&!e.disabled)?S:void 0,G=U??W??H,K=e=>{I.current?.querySelector(`[data-key="${CSS.escape(String(e))}"]`)?.focus()},q=a(()=>{let e=I.current,t=L.current;if(!e||!t||R||z)return;let n=e.scrollWidth-e.clientWidth;t.classList.toggle(`is-overflow-start`,e.scrollLeft>v),t.classList.toggle(`is-overflow-end`,n>v&&e.scrollLeft<n-v)},[R,z]),J=a(()=>{let e=I.current;if(!e)return;let t=e.querySelector(`.app-tab.active`);t?(R?(e.style.setProperty(`--wui-tab-y`,`${t.offsetTop}px`),e.style.setProperty(`--wui-tab-h`,`${t.offsetHeight}px`)):(e.style.setProperty(`--wui-tab-x`,`${t.offsetLeft}px`),e.style.setProperty(`--wui-tab-w`,`${t.offsetWidth}px`)),e.toggleAttribute(`data-active-danger`,!!x.find(e=>e.key===S)?.danger)):e.style.setProperty(R?`--wui-tab-h`:`--wui-tab-w`,`0px`),e.setAttribute(`data-wui-tabs`,``),q()},[R,x,S,q]),Y=e=>!z||!I.current?.querySelector(`[data-key="${CSS.escape(String(e))}"][data-wui-overflow-hidden]`),X=a(()=>{let e=I.current;if(!e||R)return;let t=e.querySelector(`.app-tab.active`);if(!t)return;let n=y,r=t.offsetLeft,i=r+t.offsetWidth;r-n<e.scrollLeft?e.scrollLeft=Math.max(0,r-n):i+n>e.scrollLeft+e.clientWidth&&(e.scrollLeft=i+n-e.clientWidth)},[R]);s(()=>{J()},[J]),s(()=>{X()},[S,X]);let Z=c(J);o(()=>{Z.current=J},[J]),o(()=>{if(typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>Z.current());return I.current&&e.observe(I.current),L.current&&e.observe(L.current),()=>e.disconnect()},[R,z]),o(()=>{let e=L.current;if(!z||!e)return;let t=()=>Z.current();return e.addEventListener(`wui-overflow-change`,t),()=>e.removeEventListener(`wui-overflow-change`,t)},[z]);function te(e){let t=e.target?.dataset?.key;if(t==null)return;let n=x.findIndex(e=>e.key===t);if(n<0)return;let r=x.length,i=(e,t)=>{for(let n=1;n<=r;n++){let i=x[((e+t*n)%r+r)%r];if(!i.disabled&&Y(i.key))return i}return null},a=R?`ArrowDown`:`ArrowRight`,o=R?`ArrowUp`:`ArrowLeft`,s=null;if(e.key===a?s=i(n,1):e.key===o?s=i(n,-1):e.key===`Home`?s=x.find(e=>!e.disabled&&Y(e.key))??null:e.key===`End`&&(s=[...x].reverse().find(e=>!e.disabled&&Y(e.key))??null),!s)return;e.preventDefault(),V(s.key),K(s.key);let c=s.href!=null||s.to!=null;j===`automatic`&&!c&&C?.(s.key)}let Q=e=>{let t=I.current;t&&t.scrollBy({left:e*t.clientWidth*b})},ne=[`app-tabs`,T===`pills`?`app-tabs-pills`:``,R?`app-tabs-vertical`:``,D===`sm`?`app-tabs-sm`:``,D===`lg`?`app-tabs-lg`:``,O?`app-tabs-fitted`:``,N].filter(Boolean).join(` `),$=f(`div`,{ref:I,role:`tablist`,"aria-orientation":R?`vertical`:void 0,"aria-label":M,className:ne,style:P,"data-wui-overflow-list":z?``:void 0,...F,onKeyDown:te,onScroll:q,children:[x.map(e=>{let t=e.key===S,r=e.href!=null||e.to!=null,a={role:`tab`,"data-key":e.key,"aria-selected":t,tabIndex:e.key===G?0:-1,className:`app-tab${t?` active`:``}${e.danger?` danger`:``}${r&&e.disabled?` disabled`:``}`},o=f(u,{children:[e.image?d(`img`,{className:`app-tab-img`,src:e.image,alt:e.imageAlt??``}):i(e.icon,{size:16,className:`app-tab-icon`}),e.label,e.count!=null&&d(`span`,{className:`app-tab-count${e.tone?` ${e.tone}`:``}`,children:e.count})]}),s;if(r){let t=e.to!=null&&w?w:`a`,n=e.rel??(e.target===`_blank`?`noopener noreferrer`:void 0),r=e.disabled?{"aria-disabled":!0}:t===`a`?{href:e.href??e.to,target:e.target,rel:n}:{to:e.to,target:e.target,rel:n},i=t=>{if(e.disabled){t.preventDefault();return}t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||(V(e.key),C?.(e.key))};s=d(t,{...a,...r,onClick:i,children:o},e.key)}else s=d(`button`,{type:`button`,...a,disabled:e.disabled,onClick:()=>{e.disabled||(V(e.key),C?.(e.key))},children:o},e.key);return e.tooltip?d(n,{content:e.tooltip,children:s},e.key):s}),d(`span`,{className:`app-tab-indicator`,"aria-hidden":`true`,"data-wui-overflow-skip":``})]});return R?$:z?d(`wui-overflow`,{ref:L,class:`app-tabs-wrap`,label:A,children:$}):f(`div`,{ref:L,className:`app-tabs-wrap`,children:[d(`button`,{type:`button`,className:`app-tabs-scroll-btn prev`,"aria-label":`Scroll tabs backward`,tabIndex:-1,onClick:()=>Q(-1),children:d(r,{name:`chevron-left`,size:16})}),$,d(`button`,{type:`button`,className:`app-tabs-scroll-btn next`,"aria-label":`Scroll tabs forward`,tabIndex:-1,onClick:()=>Q(1),children:d(r,{name:`chevron-right`,size:16})})]})}export{x as default};
@@ -1 +1 @@
1
- import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{cloneElement as n,useId as r}from"react";import{OverlayTrigger as i,Tooltip as a}from"react-bootstrap";import{jsx as o}from"react/jsx-runtime";var s=[`default`,`dark`,`primary`,`success`,`warning`,`danger`],c=[`sm`,`md`,`lg`],l={start:`left`,end:`right`,top:`top`,bottom:`bottom`},u=[`auto`,`top`,`bottom`,`start`,`end`];function d({content:d,children:f,placement:p=`top`,tone:m=`default`,size:h=`md`,className:g=``,..._}){t(`AppTooltip`,_),e(`AppTooltip`,`tone`,m,s),e(`AppTooltip`,`size`,h,c),e(`AppTooltip`,`placement`,p,u);let v=o(a,{id:r(),className:[`wui-tooltip`,m&&m!=="default"?`tone-${m}`:``,h&&h!==`md`?`size-${h}`:``,g].filter(Boolean).join(` `),children:d});return o(i,{trigger:[`hover`,`focus`],placement:l[p]||p,overlay:v,children:n(f,_)})}export{d as default};
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import{shortcutChip as n}from"../lib/shortcutChip.js";import{cloneElement as r,useId as i}from"react";import{OverlayTrigger as a,Tooltip as o}from"react-bootstrap";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l=[`default`,`dark`,`primary`,`success`,`warning`,`danger`],u=[`sm`,`md`,`lg`],d={start:`left`,end:`right`,top:`top`,bottom:`bottom`},f=[`auto`,`top`,`bottom`,`start`,`end`];function p({content:p,children:m,placement:h=`top`,tone:g=`default`,size:_=`md`,shortcut:v,className:y=``,...b}){t(`AppTooltip`,b),e(`AppTooltip`,`tone`,g,l),e(`AppTooltip`,`size`,_,u),e(`AppTooltip`,`placement`,h,f);let x=c(o,{id:i(),className:[`wui-tooltip`,g&&g!=="default"?`tone-${g}`:``,_&&_!==`md`?`size-${_}`:``,y].filter(Boolean).join(` `),children:[p,n(v,{inTooltip:!0})]});return s(a,{trigger:[`hover`,`focus`],placement:d[h]||h,overlay:x,children:r(m,b)})}export{p as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import{jsx as t}from"react/jsx-runtime";import"@webority/ui-elements/elements/truncate";function n({children:n,lines:r=1,width:i,style:a,className:o=``,...s}){e(`AppTruncate`,s);let c=Number.isInteger(r)&&r>1,l={...c?{"--wui-truncate-lines":r}:null,...i?{"--wui-truncate-width":i}:null,...a};return t(`wui-truncate`,{class:[`wui-truncate`,c&&`wui-truncate-multi`,o].filter(Boolean).join(` `),style:Object.keys(l).length?l:void 0,...s,children:t(`span`,{className:`wui-truncate-text`,children:n})})}export{n as default};
@@ -0,0 +1 @@
1
+ import e from"./warnUnknownProps.js";import t from"./AppIcon.js";import{formatDate as n}from"@webority/ui-elements/helpers";import{useEffect as r,useRef as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import"@webority/ui-elements/elements/whats-new";function s({entries:s=[],storageKey:c,label:l=`What's new`,unreadLabel:u=`unread`,emptyText:d=`Nothing new yet`,onRead:f,className:p=``,...m}){e(`AppWhatsNew`,m);let h=i(null),g=i(f);return g.current=f,r(()=>{let e=h.current,t=e=>g.current?.(e.detail.through);return e.addEventListener(`wui-whats-new-read`,t),()=>e.removeEventListener(`wui-whats-new-read`,t)},[]),o(`wui-whats-new`,{ref:h,class:[`wui-whats-new`,p].filter(Boolean).join(` `),"storage-key":c||void 0,...m,children:[o(`button`,{type:`button`,className:`u-action wui-whats-new-trigger`,"aria-haspopup":`dialog`,children:[a(t,{name:`gift`,size:20}),a(`span`,{className:`wui-whats-new-name`,children:l}),a(`span`,{className:`wui-whats-new-unread`,children:` ${u}`}),a(`span`,{className:`wui-whats-new-dot`,"aria-hidden":`true`})]}),o(`div`,{className:`wui-whats-new-panel`,role:`dialog`,"aria-label":l,tabIndex:-1,children:[a(`h2`,{className:`wui-whats-new-title`,children:l}),s.length>0?a(`ol`,{className:`wui-whats-new-list`,children:s.map((e,t)=>o(`li`,{className:`wui-whats-new-entry`,children:[a(`time`,{className:`wui-whats-new-date`,dateTime:e.date,children:n(e.date)}),a(`h3`,{className:`wui-whats-new-entry-title`,children:e.title}),e.body&&a(`p`,{className:`wui-whats-new-body`,children:e.body}),e.imageSrc&&a(`img`,{className:`wui-whats-new-image`,src:e.imageSrc,alt:e.imageAlt??``,loading:`lazy`}),e.href&&a(`a`,{className:`wui-whats-new-link`,href:e.href,children:e.linkLabel||`Learn more`})]},e.id??`${e.date}-${t}`))}):a(`p`,{className:`wui-whats-new-empty`,children:d})]})]})}export{s as default};
@@ -1 +1 @@
1
- import e from"./AppTooltip.js";import{jsx as t}from"react/jsx-runtime";function n(n,r,i){return r==null||r===``?n:t(e,{content:r,placement:i||`auto`,children:n})}export{n as default};
1
+ import e from"./AppTooltip.js";import{jsx as t}from"react/jsx-runtime";function n(n,r,i,a){return r==null||r===``?n:t(e,{content:r,placement:i||`auto`,shortcut:a,children:n})}export{n as default};
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";var t={"no-results":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><rect class="wui-ill-card" x="30" y="16" width="64" height="80" rx="8"/><rect class="wui-ill-mute" x="40" y="28" width="30" height="5" rx="2.5"/><rect class="wui-ill-mute" x="40" y="40" width="44" height="5" rx="2.5"/><rect class="wui-ill-mute" x="40" y="52" width="36" height="5" rx="2.5"/><circle class="wui-ill-soft" cx="96" cy="66" r="22"/><circle class="wui-ill-accent-line" cx="96" cy="66" r="22"/><path class="wui-ill-accent-line wui-ill-thick" d="M112 82l14 14"/><path class="wui-ill-accent-line" d="M89 59l14 14M103 59l-14 14"/>`,"no-data":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><path class="wui-ill-ink" d="M30 20v76h100"/><rect class="wui-ill-dash" x="44" y="62" width="16" height="34" rx="3"/><rect class="wui-ill-dash" x="70" y="44" width="16" height="52" rx="3"/><rect class="wui-ill-dash" x="96" y="28" width="16" height="68" rx="3"/><circle class="wui-ill-accent" cx="122" cy="26" r="5"/>`,"empty-inbox":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><circle class="wui-ill-soft" cx="80" cy="24" r="14"/><path class="wui-ill-accent-line" d="M73 24l5 5 9-10"/><path class="wui-ill-card" d="M32 66l11-26a6 6 0 0 1 5.5-3.6h63a6 6 0 0 1 5.5 3.6L128 66v22a8 8 0 0 1-8 8H40a8 8 0 0 1-8-8z"/><path class="wui-ill-ink" d="M32 66h30a6 6 0 0 1 6 6 12 12 0 0 0 24 0 6 6 0 0 1 6-6h30"/>`,"no-notifications":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><path class="wui-ill-ink" d="M80 22v-6"/><path class="wui-ill-card" d="M80 22c-14 0-24 10-24 24v14l-8 12h64l-8-12V46c0-14-10-24-24-24z"/><circle class="wui-ill-accent" cx="80" cy="84" r="6"/><path class="wui-ill-ink" d="M112 30h10l-10 12h10M126 16h7l-7 8h7"/>`,"no-files":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><path class="wui-ill-soft" d="M28 38a6 6 0 0 1 6-6h24l9 10h59a6 6 0 0 1 6 6v36a8 8 0 0 1-8 8H36a8 8 0 0 1-8-8z"/><path class="wui-ill-ink" d="M28 38a6 6 0 0 1 6-6h24l9 10h59a6 6 0 0 1 6 6v36a8 8 0 0 1-8 8H36a8 8 0 0 1-8-8z"/><path class="wui-ill-card" d="M28 58a6 6 0 0 1 6-6h92a6 6 0 0 1 6 6v28a8 8 0 0 1-8 8H36a8 8 0 0 1-8-8z"/><path class="wui-ill-accent-line" d="M80 66v16M72 74h16"/>`,"no-access":`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><path class="wui-ill-ink" d="M62 54V44a18 18 0 0 1 36 0v10"/><rect class="wui-ill-card" x="52" y="54" width="56" height="42" rx="8"/><circle class="wui-ill-accent" cx="80" cy="71" r="5"/><path class="wui-ill-accent-line" d="M80 76v8"/>`,offline:`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><path class="wui-ill-card" d="M54 88a15 15 0 0 1-1.5-29.9 24 24 0 0 1 46.3-4.6A17 17 0 0 1 108 88z"/><path class="wui-ill-accent-line wui-ill-thick" d="M46 36l72 60"/>`,error:`<ellipse class="wui-ill-mute" cx="80" cy="104" rx="44" ry="6"/><rect class="wui-ill-card" x="44" y="16" width="72" height="82" rx="8"/><rect class="wui-ill-mute" x="56" y="26" width="30" height="5" rx="2.5"/><circle class="wui-ill-danger" cx="80" cy="60" r="20"/><path class="wui-ill-danger-line" d="M80 50v12"/><circle class="wui-ill-danger-fill" cx="80" cy="70" r="2.5"/><rect class="wui-ill-mute" x="62" y="86" width="36" height="5" rx="2.5"/>`},n=Object.keys(t);function r({name:n,className:r}){let i=n&&Object.hasOwn(t,n)?t[n]:void 0;return i?e(`svg`,{className:r?`wui-illustration ${r}`:`wui-illustration`,"data-illustration":n,viewBox:`0 0 160 120`,fill:`none`,"aria-hidden":`true`,focusable:`false`,dangerouslySetInnerHTML:{__html:i}}):null}export{t as ILLUSTRATION_BODIES,n as ILLUSTRATION_NAMES,r as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";var n=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],r=[`start`,`center`],i=[`default`,`muted`];function a(e,t){return n.includes(e)?e:t}function o(e){return n[Math.min(n.indexOf(e)+1,5)]}function s({className:t,src:n,alt:r,width:i,height:a}){return e(`img`,{className:t,src:n,alt:r,width:i,height:a,loading:`lazy`,decoding:`async`})}function c({component:n,kind:r,title:i,as:a,eyebrow:o,subtitle:s,align:c,variant:l,actions:u,extraClass:d,className:f,rest:p,children:m}){if(i==null||i===``)throw Error(`${n} needs a title: every section opens with its heading.`);let h=a,g=p.id?`${p.id}-title`:void 0;return e(`section`,{className:[`wui-section`,`wui-section-${r}`,c===`center`?`wui-section-center`:``,l===`muted`?`wui-section-muted`:``,d,f].filter(Boolean).join(` `),"aria-labelledby":g,...p,children:t(`div`,{className:`wui-section-inner`,children:[t(`div`,{className:`wui-section-head`,children:[o!=null&&o!==``&&e(`p`,{className:`wui-section-eyebrow`,children:o}),e(h,{className:`wui-section-title`,id:g,children:i}),s!=null&&s!==``&&e(`p`,{className:`wui-section-subtitle`,children:s}),u!=null&&u!==!1&&e(`div`,{className:`wui-section-actions`,children:u})]}),m]})})}export{r as SECTION_ALIGNS,n as SECTION_HEADINGS,i as SECTION_VARIANTS,s as SectionImage,c as default,o as itemHeading,a as sectionHeading};
@@ -0,0 +1 @@
1
+ import{ariaKeyShortcuts as e,shortcutKey as t}from"@webority/ui-elements/helpers";import{jsx as n}from"react/jsx-runtime";function r(e,{inTooltip:r=!1}={}){if(e==null||String(e).trim()===``)return null;let i=t(e);return r?n(`span`,{className:`wui-kbd`,children:i}):n(`kbd`,{className:`wui-kbd`,"aria-hidden":`true`,children:i})}function i(n){if(!(n==null||String(n).trim()===``))return e(t(n))}export{i as shortcutAria,r as shortcutChip};
@@ -0,0 +1 @@
1
+ import{SHORTCUT_SCOPE_ATTRIBUTE as e,runShortcut as t}from"@webority/ui-elements/helpers";import{useEffect as n,useRef as r}from"react";function i(i,{enabled:a=!0,scope:o}={}){let s=r(i);n(()=>{s.current=i}),n(()=>{if(!a)return;let n=o?.current;n&&!n.hasAttribute(e)&&n.setAttribute(e,``);let r=e=>t(e,s.current,o?.current??null);return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[a,o])}export{i as useListShortcuts};
@@ -17,6 +17,8 @@
17
17
  * @param {'auto'|'top'|'bottom'|'start'|'end'} [props.tooltipPlacement='auto'] which side the
18
18
  * tooltip prefers. `auto` (default) lets Popper pick the side with the most room; a named side
19
19
  * is preferred but still flips to stay in view. Powered by `AppTooltip`, so it never clips.
20
+ * @param {string} [props.shortcut] the key that runs this action ("J", "E", "/"), drawn as a key chip in the tooltip
21
+ * after the label. Sets aria-keyshortcuts; the page binds the key itself (useListShortcuts). Needs a `label`, which supplies the tooltip.
20
22
  * @param {boolean} [props.danger] destructive tint
21
23
  * @param {boolean} [props.disabled]
22
24
  * @param {number} [props.size=20] glyph size in px; the disc (and its hover tint) scales with it, keeping a constant 8px ring
@@ -28,11 +30,12 @@
28
30
  * wrapper must use `forwardRef` (the tooltip still opens without it, but may be mispositioned).
29
31
  * @param {string} [props.href] sets an anchor without needing `as`.
30
32
  */
31
- export default function AppActionIcon({ icon, iconVariant, label, tooltipPlacement, danger, disabled, size, onClick, className, as, href, ...rest }: {
33
+ export default function AppActionIcon({ icon, iconVariant, label, tooltipPlacement, shortcut, danger, disabled, size, onClick, className, as, href, ...rest }: {
32
34
  icon: string | import('react').ReactNode;
33
35
  iconVariant?: 'linear' | 'outline' | 'bold' | 'bulk' | 'broken' | 'twotone';
34
36
  label: string;
35
37
  tooltipPlacement?: 'auto' | 'top' | 'bottom' | 'start' | 'end';
38
+ shortcut?: string;
36
39
  danger?: boolean;
37
40
  disabled?: boolean;
38
41
  size?: number;