@uva-glass/component-library 1.50.0 → 1.51.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 (112) hide show
  1. package/dist/Lexical.prod-DSsdOWxu.js +4043 -0
  2. package/dist/Lexical.prod-DSsdOWxu.js.map +1 -0
  3. package/dist/ListPlugin-Bu2AbCDB.js +643 -0
  4. package/dist/ListPlugin-Bu2AbCDB.js.map +1 -0
  5. package/dist/{MultiSelect-Ckf3uGw5.js → MultiSelect-D1FnMER4.js} +3 -2
  6. package/dist/{MultiSelect-Ckf3uGw5.js.map → MultiSelect-D1FnMER4.js.map} +1 -1
  7. package/dist/RteEditor.module-RkKUrkOO.js +21 -0
  8. package/dist/RteEditor.module-RkKUrkOO.js.map +1 -0
  9. package/dist/assets/RteEditor.css +1 -0
  10. package/dist/components/ActionList/ActionList.js +5 -3
  11. package/dist/components/ActionList/ActionList.js.map +1 -1
  12. package/dist/components/ButtonGroup/ButtonGroup.stories.js +1 -1
  13. package/dist/components/ButtonGroup/ButtonGroup.stories.js.map +1 -1
  14. package/dist/components/{Button → Buttons}/Button.d.ts +1 -1
  15. package/dist/components/Buttons/Button.js +22 -0
  16. package/dist/components/Buttons/Button.js.map +1 -0
  17. package/dist/components/Buttons/Button.stories.js.map +1 -0
  18. package/dist/components/Buttons/LinkButton.d.ts +11 -0
  19. package/dist/components/Buttons/LinkButton.js +12 -0
  20. package/dist/components/Buttons/LinkButton.js.map +1 -0
  21. package/dist/components/Buttons/LinkButton.stories.d.ts +6 -0
  22. package/dist/components/Buttons/LinkButton.stories.js +51 -0
  23. package/dist/components/Buttons/LinkButton.stories.js.map +1 -0
  24. package/dist/components/Buttons/MenuButton.js.map +1 -0
  25. package/dist/components/Buttons/MenuButton.stories.js.map +1 -0
  26. package/dist/components/Buttons/index.d.ts +3 -0
  27. package/dist/components/Buttons/index.js +9 -0
  28. package/dist/components/Buttons/index.js.map +1 -0
  29. package/dist/components/CheckboxTree/CheckboxTree.js +5 -4
  30. package/dist/components/CheckboxTree/CheckboxTree.js.map +1 -1
  31. package/dist/components/Drawer/Drawer.stories.js +19 -17
  32. package/dist/components/Drawer/Drawer.stories.js.map +1 -1
  33. package/dist/components/Icon/icons/index.d.ts +12 -0
  34. package/dist/components/Icon/icons/index.js +93 -73
  35. package/dist/components/Icon/icons/index.js.map +1 -1
  36. package/dist/components/InputField/InputField.stories.js +5 -4
  37. package/dist/components/InputField/InputField.stories.js.map +1 -1
  38. package/dist/components/ModalDialog/ModalDialog.stories.js +5 -3
  39. package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
  40. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  41. package/dist/components/MultiSelect/MultiSelect.stories.js +1 -1
  42. package/dist/components/MultiSelect/components/MultiSelectHeader.js +4 -3
  43. package/dist/components/MultiSelect/components/MultiSelectHeader.js.map +1 -1
  44. package/dist/components/MultiSelect/index.js +1 -1
  45. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +5 -4
  46. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
  47. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.d.ts +6 -0
  48. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +32 -0
  49. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -0
  50. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/index.d.ts +1 -0
  51. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/index.js +5 -0
  52. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.d.ts +6 -0
  53. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +11 -0
  54. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -0
  55. package/dist/components/RteEditor/Plugins/ListPlugin/index.d.ts +1 -0
  56. package/dist/components/RteEditor/Plugins/ListPlugin/index.js +5 -0
  57. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.d.ts +1 -0
  58. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +38 -0
  59. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +1 -0
  60. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.d.ts +1 -0
  61. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +5 -0
  62. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js.map +1 -0
  63. package/dist/components/RteEditor/Plugins/index.d.ts +3 -0
  64. package/dist/components/RteEditor/Plugins/index.js +9 -0
  65. package/dist/components/RteEditor/Plugins/index.js.map +1 -0
  66. package/dist/components/RteEditor/RteEditor.d.ts +7 -0
  67. package/dist/components/RteEditor/RteEditor.js +833 -0
  68. package/dist/components/RteEditor/RteEditor.js.map +1 -0
  69. package/dist/components/RteEditor/RteEditor.stories.d.ts +6 -0
  70. package/dist/components/RteEditor/RteEditor.stories.js +40 -0
  71. package/dist/components/RteEditor/RteEditor.stories.js.map +1 -0
  72. package/dist/components/RteEditor/UvaTheme/UvaTheme.d.ts +11 -0
  73. package/dist/components/RteEditor/UvaTheme/UvaTheme.js +16 -0
  74. package/dist/components/RteEditor/UvaTheme/UvaTheme.js.map +1 -0
  75. package/dist/components/RteEditor/UvaTheme/index.d.ts +1 -0
  76. package/dist/components/RteEditor/UvaTheme/index.js +5 -0
  77. package/dist/components/RteEditor/UvaTheme/index.js.map +1 -0
  78. package/dist/components/RteEditor/index.d.ts +1 -0
  79. package/dist/components/RteEditor/index.js +5 -0
  80. package/dist/components/RteEditor/index.js.map +1 -0
  81. package/dist/components/index.d.ts +2 -2
  82. package/dist/components/index.js +82 -78
  83. package/dist/components/index.js.map +1 -1
  84. package/dist/index-DsprzSCj.js +19067 -0
  85. package/dist/index-DsprzSCj.js.map +1 -0
  86. package/dist/index.js +82 -78
  87. package/dist/index.js.map +1 -1
  88. package/dist/{react-18-m8Z-Ep7B.js → react-18-C0Aiha-e.js} +2 -2
  89. package/dist/{react-18-m8Z-Ep7B.js.map → react-18-C0Aiha-e.js.map} +1 -1
  90. package/dist/storybook__react.d.js +1993 -1
  91. package/dist/storybook__react.d.js.map +1 -1
  92. package/dist/types/UserInterface.d.ts +1 -1
  93. package/package.json +29 -23
  94. package/dist/components/Button/Button.js +0 -23
  95. package/dist/components/Button/Button.js.map +0 -1
  96. package/dist/components/Button/Button.stories.js.map +0 -1
  97. package/dist/components/Button/index.d.ts +0 -1
  98. package/dist/components/Button/index.js +0 -5
  99. package/dist/components/MenuButton/MenuButton.js.map +0 -1
  100. package/dist/components/MenuButton/MenuButton.stories.js.map +0 -1
  101. package/dist/components/MenuButton/index.d.ts +0 -1
  102. package/dist/components/MenuButton/index.js +0 -5
  103. package/dist/storybook__react.d-fgYZl9aD.js +0 -21053
  104. package/dist/storybook__react.d-fgYZl9aD.js.map +0 -1
  105. /package/dist/components/{Button → Buttons}/Button.stories.d.ts +0 -0
  106. /package/dist/components/{Button → Buttons}/Button.stories.js +0 -0
  107. /package/dist/components/{MenuButton → Buttons}/MenuButton.d.ts +0 -0
  108. /package/dist/components/{MenuButton → Buttons}/MenuButton.js +0 -0
  109. /package/dist/components/{MenuButton → Buttons}/MenuButton.stories.d.ts +0 -0
  110. /package/dist/components/{MenuButton → Buttons}/MenuButton.stories.js +0 -0
  111. /package/dist/components/{Button → RteEditor/Plugins/BlockFormatPlugin}/index.js.map +0 -0
  112. /package/dist/components/{MenuButton → RteEditor/Plugins/ListPlugin}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPlugin-Bu2AbCDB.js","sources":["../node_modules/@lexical/utils/LexicalUtils.prod.mjs","../node_modules/@lexical/list/LexicalList.prod.mjs","../src/components/RteEditor/Plugins/ListPlugin/ListPlugin.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getSelection as e,$isRangeSelection as t,TextNode as n,$getRoot as o,$isElementNode as r,$cloneWithProperties as l,$setSelection as i,$getPreviousSelection as s,$isRootOrShadowRoot as u,$isTextNode as c,$splitNode as f,$createParagraphNode as a}from\"lexical\";export{$splitNode,isBlockDomNode,isHTMLAnchorElement,isHTMLElement,isInlineDomNode}from\"lexical\";import{createRectsFromDOMRange as d}from\"@lexical/selection\";function g(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var p=g((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const h=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,m=h&&\"documentMode\"in document?document.documentMode:null,v=h&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),y=h&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),w=!(!h||!(\"InputEvent\"in window)||m)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),E=h&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),P=h&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,S=h&&/Android/.test(navigator.userAgent),x=h&&/^(?=.*Chrome).*/i.test(navigator.userAgent),A=h&&S&&x,N=h&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!x;function b(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}function L(...e){return()=>{for(let t=e.length-1;t>=0;t--)e[t]();e.length=0}}function T(e){return`${e}px`}const M={attributes:!0,characterData:!0,childList:!0,subtree:!0};function C(e,t,n){let o=null,r=null,l=null,i=[];const s=document.createElement(\"div\");function u(){null===o&&p(182),null===r&&p(183);const{left:l,top:u}=o.getBoundingClientRect(),c=r,f=d(e,t);s.isConnected||c.append(s);let a=!1;for(let e=0;e<f.length;e++){const t=f[e],n=i[e]||document.createElement(\"div\"),o=n.style;\"absolute\"!==o.position&&(o.position=\"absolute\",a=!0);const r=T(t.left-l);o.left!==r&&(o.left=r,a=!0);const c=T(t.top-u);o.top!==c&&(n.style.top=c,a=!0);const d=T(t.width);o.width!==d&&(n.style.width=d,a=!0);const g=T(t.height);o.height!==g&&(n.style.height=g,a=!0),n.parentNode!==s&&(s.append(n),a=!0),i[e]=n}for(;i.length>f.length;)i.pop();a&&n(i)}function c(){r=null,o=null,null!==l&&l.disconnect(),l=null,s.remove();for(const e of i)e.remove();i=[]}const f=e.registerRootListener((function t(){const n=e.getRootElement();if(null===n)return c();const i=n.parentElement;if(!(i instanceof HTMLElement))return c();c(),o=n,r=i,l=new MutationObserver((n=>{const l=e.getRootElement(),i=l&&l.parentElement;if(l!==o||i!==r)return t();for(const e of n)if(!s.contains(e.target))return u()})),l.observe(i,M),u()}));return()=>{f(),c()}}function B(o,r){let l=null,i=null,s=null,u=null,c=()=>{};function f(f){f.read((()=>{const f=e();if(!t(f))return l=null,i=null,s=null,u=null,c(),void(c=()=>{});const{anchor:a,focus:d}=f,g=a.getNode(),h=g.getKey(),m=a.offset,v=d.getNode(),y=v.getKey(),w=d.offset,E=o.getElementByKey(h),P=o.getElementByKey(y),S=null===l||null===E||m!==i||h!==l.getKey()||g!==l&&(!(l instanceof n)||g.updateDOM(l,E,o._config)),x=null===s||null===P||w!==u||y!==s.getKey()||v!==s&&(!(s instanceof n)||v.updateDOM(s,P,o._config));if(S||x){const e=o.getElementByKey(a.getNode().getKey()),t=o.getElementByKey(d.getNode().getKey());if(null!==e&&null!==t&&\"SPAN\"===e.tagName&&\"SPAN\"===t.tagName){const n=document.createRange();let l,i,s,u;d.isBefore(a)?(l=t,i=d.offset,s=e,u=a.offset):(l=e,i=a.offset,s=t,u=d.offset);const f=l.firstChild;null===f&&p(181);const g=s.firstChild;null===g&&p(181),n.setStart(f,i),n.setEnd(g,u),c(),c=C(o,n,(e=>{for(const t of e){const e=t.style;\"Highlight\"!==e.background&&(e.background=\"Highlight\"),\"HighlightText\"!==e.color&&(e.color=\"HighlightText\"),\"-1\"!==e.zIndex&&(e.zIndex=\"-1\"),\"none\"!==e.pointerEvents&&(e.pointerEvents=\"none\"),e.marginTop!==T(-1.5)&&(e.marginTop=T(-1.5)),e.paddingTop!==T(4)&&(e.paddingTop=T(4)),e.paddingBottom!==T(0)&&(e.paddingBottom=T(0))}void 0!==r&&r(e)}))}}l=g,i=m,s=v,u=w}))}return f(o.getEditorState()),L(o.registerUpdateListener((({editorState:e})=>f(e))),c,(()=>{c()}))}const _=w,K=h,O=S,R=A,I=v,H=N,z=x,D=y,k=P,F=E;function $(e,...t){const n=b(...t);n.length>0&&e.classList.add(...n)}function U(e,...t){const n=b(...t);n.length>0&&e.classList.remove(...n)}function W(e,t){for(const n of t)if(e.type.startsWith(n))return!0;return!1}function j(e,t){const n=e[Symbol.iterator]();return new Promise(((e,o)=>{const r=[],l=()=>{const{done:i,value:s}=n.next();if(i)return e(r);const u=new FileReader;u.addEventListener(\"error\",o),u.addEventListener(\"load\",(()=>{const e=u.result;\"string\"==typeof e&&r.push({file:s,result:e}),l()})),W(s,t)?u.readAsDataURL(s):l()};l()}))}function V(e,t){return Array.from(J(e,t))}const q={done:!0,value:void 0},G=e=>({done:!1,value:e});function J(e,t){const n=(e||o()).getLatest(),l=X(n),i=t;let s=n,u=l,c=!0;const f={next(){if(null===s)return q;if(c)return c=!1,G({depth:u,node:s});if(s===i)return q;if(r(s)&&s.getChildrenSize()>0)s=s.getFirstChild(),u++;else{let e;[s,e]=Q(s)||[null,0],u+=e,null==i&&u<=l&&(s=null)}return null===s?q:G({depth:u,node:s})},[Symbol.iterator]:()=>f};return f}function Q(e){let t=e,n=null,o=0;for(;null===n&&null!==t;)n=t.getNextSibling(),null===n?(t=t.getParent(),o--):t=n;return null===t?null:[t,o]}function X(e){let t=e,n=0;for(;null!==(t=t.getParent());)n++;return n}function Y(e){let t=e;if(r(t)&&t.getChildrenSize()>0)t=t.getLastChild();else{let e=null;for(;null===e&&null!==t;)e=t.getPreviousSibling(),t=null===e?t.getParent():e}return t}function Z(e,t){let n=e;for(;null!=n;){if(n instanceof t)return n;n=n.getParent()}return null}function ee(e){const t=te(e,(e=>r(e)&&!e.isInline()));return r(t)||p(4,e.__key),t}const te=(e,t)=>{let n=e;for(;n!==o()&&null!=n;){if(t(n))return n;n=n.getParent()}return null};function ne(e,t,n,o){const r=e=>e instanceof t;return e.registerNodeTransform(t,(e=>{const t=(e=>{const t=e.getChildren();for(let e=0;e<t.length;e++){const n=t[e];if(r(n))return null}let n=e,o=e;for(;null!==n;)if(o=n,n=n.getParent(),r(n))return{child:o,parent:n};return null})(e);if(null!==t){const{child:r,parent:l}=t;if(r.is(e)){o(l,e);const t=r.getNextSiblings(),i=t.length;if(l.insertAfter(r),0!==i){const e=n(l);r.insertAfter(e);for(let n=0;n<i;n++)e.append(t[n])}l.canBeEmpty()||0!==l.getChildrenSize()||l.remove()}}}))}function oe(e,t){const n=new Map,o=e._pendingEditorState;for(const[e,o]of t._nodeMap)n.set(e,l(o));o&&(o._nodeMap=n),e._dirtyType=2;const r=t._selection;i(null===r?null:r.clone())}function re(n){const r=e()||s();if(t(r)){const{focus:e}=r,t=e.getNode(),o=e.offset;if(u(t)){const e=t.getChildAtIndex(o);null==e?t.append(n):e.insertBefore(n),n.selectNext()}else{let e,r;c(t)?(e=t.getParentOrThrow(),r=t.getIndexWithinParent(),o>0&&(r+=1,t.splitText(o))):(e=t,r=o);const[,l]=f(e,r);l.insertBefore(n),l.selectStart()}}else{if(null!=r){const e=r.getNodes();e[e.length-1].getTopLevelElementOrThrow().insertAfter(n)}else{o().append(n)}const e=a();n.insertAfter(e),e.select()}return n.getLatest()}function le(e,t){const n=t();return e.replace(n),n.append(e),n}function ie(e,t){return null!==e&&Object.getPrototypeOf(e).constructor.name===t.name}function se(e,t){const n=[];for(let o=0;o<e.length;o++){const r=t(e[o]);null!==r&&n.push(r)}return n}function ue(e,t){const n=e.getFirstChild();null!==n?n.insertBefore(t):e.append(t)}function ce(e){if(D)return 1;let t=1;for(;e;)t*=Number(window.getComputedStyle(e).getPropertyValue(\"zoom\")),e=e.parentElement;return t}function fe(e){return null!==e._parentEditor}export{V as $dfs,J as $dfsIterator,se as $filter,te as $findMatchingParent,X as $getDepth,ee as $getNearestBlockElementAncestorOrThrow,Z as $getNearestNodeOfType,Y as $getNextRightPreorderNode,Q as $getNextSiblingOrParentSibling,ue as $insertFirst,re as $insertNodeToNearestRoot,fe as $isEditorIsNestedEditor,oe as $restoreEditorState,le as $wrapNodeInElement,_ as CAN_USE_BEFORE_INPUT,K as CAN_USE_DOM,O as IS_ANDROID,R as IS_ANDROID_CHROME,I as IS_APPLE,H as IS_APPLE_WEBKIT,z as IS_CHROME,D as IS_FIREFOX,k as IS_IOS,F as IS_SAFARI,$ as addClassNamesToElement,ce as calculateZoomLevel,W as isMimeType,B as markSelection,j as mediaFileReader,L as mergeRegister,ie as objectKlassEquals,C as positionNodeOnRange,ne as registerNestedElementResolver,U as removeClassNamesFromElement};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getNearestNodeOfType as e,removeClassNamesFromElement as t,addClassNamesToElement as n,isHTMLElement as r,mergeRegister as i}from\"@lexical/utils\";import{$getSelection as s,$isRangeSelection as o,$isRootOrShadowRoot as c,$isElementNode as l,$isLeafNode as a,$createParagraphNode as h,$isParagraphNode as u,ElementNode as g,$applyNodeReplacement as d,$createTextNode as f,createCommand as p,COMMAND_PRIORITY_LOW as _,INSERT_PARAGRAPH_COMMAND as m}from\"lexical\";function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var y=v((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function C(e){let t=1,n=e.getParent();for(;null!=n;){if(V(n)){const e=n.getParent();if(H(e)){t++,n=e.getParent();continue}y(40)}return t}return t}function k(e){let t=e.getParent();H(t)||y(40);let n=t;for(;null!==n;)n=n.getParent(),H(n)&&(t=n);return t}function T(e){let t=[];const n=e.getChildren().filter(V);for(let e=0;e<n.length;e++){const r=n[e],i=r.getFirstChild();H(i)?t=t.concat(T(i)):t.push(r)}return t}function b(e){return V(e)&&H(e.getFirstChild())}function S(e){return W().append(e)}function P(e,t){return V(e)&&(0===t.length||1===t.length&&e.is(t[0])&&0===e.getChildrenSize())}function A(e,t){e.update((()=>{const e=s();if(null!==e){const n=e.getNodes();if(o(e)){const r=e.getStartEndPoints();null===r&&y(143);const[i]=r,s=i.getNode(),o=s.getParent();if(P(s,n)){const e=q(t);if(c(o)){s.replace(e);const t=W();l(s)&&(t.setFormat(s.getFormatType()),t.setIndent(s.getIndent())),e.append(t)}else if(V(s)){const t=s.getParentOrThrow();N(e,t.getChildren()),t.replace(e)}return}}const r=new Set;for(let e=0;e<n.length;e++){const i=n[e];if(!l(i)||!i.isEmpty()||V(i)||r.has(i.getKey())){if(a(i)){let e=i.getParent();for(;null!=e;){const n=e.getKey();if(H(e)){if(!r.has(n)){const i=q(t);N(i,e.getChildren()),e.replace(i),r.add(n)}break}{const i=e.getParent();if(c(i)&&!r.has(n)){r.add(n),x(e,t);break}e=i}}}}else x(i,t)}}}))}function N(e,t){e.splice(e.getChildrenSize(),0,t)}function x(e,t){if(H(e))return e;const n=e.getPreviousSibling(),r=e.getNextSibling(),i=W();if(i.setFormat(e.getFormatType()),i.setIndent(e.getIndent()),N(i,e.getChildren()),H(n)&&t===n.getListType())return n.append(i),e.remove(),H(r)&&t===r.getListType()&&(N(n,r.getChildren()),r.remove()),n;if(H(r)&&t===r.getListType())return r.getFirstChildOrThrow().insertBefore(i),e.remove(),r;{const n=q(t);return n.append(i),e.replace(n),n}}function L(e,t){const n=e.getLastChild(),r=t.getFirstChild();n&&r&&b(n)&&b(r)&&(L(n.getFirstChild(),r.getFirstChild()),r.remove());const i=t.getChildren();i.length>0&&e.append(...i),t.remove()}function O(t){t.update((()=>{const t=s();if(o(t)){const n=new Set,r=t.getNodes(),i=t.anchor.getNode();if(P(i,r))n.add(k(i));else for(let t=0;t<r.length;t++){const i=r[t];if(a(i)){const t=e(i,D);null!=t&&n.add(k(t))}}for(const e of n){let n=e;const r=T(e);for(const e of r){const r=h();N(r,e.getChildren()),n.insertAfter(r),n=r,e.__key===t.anchor.key&&t.anchor.set(r.getKey(),0,\"element\"),e.__key===t.focus.key&&t.focus.set(r.getKey(),0,\"element\"),e.remove()}e.remove()}}}))}function E(e){const t=new Set;if(b(e)||t.has(e.getKey()))return;const n=e.getParent(),r=e.getNextSibling(),i=e.getPreviousSibling();if(b(r)&&b(i)){const n=i.getFirstChild();if(H(n)){n.append(e);const i=r.getFirstChild();if(H(i)){N(n,i.getChildren()),r.remove(),t.add(r.getKey())}}}else if(b(r)){const t=r.getFirstChild();if(H(t)){const n=t.getFirstChild();null!==n&&n.insertBefore(e)}}else if(b(i)){const t=i.getFirstChild();H(t)&&t.append(e)}else if(H(n)){const t=W(),s=q(n.getListType());t.append(s),s.append(e),i?i.insertAfter(t):r?r.insertBefore(t):n.append(t)}}function M(e){if(b(e))return;const t=e.getParent(),n=t?t.getParent():void 0;if(H(n?n.getParent():void 0)&&V(n)&&H(t)){const r=t?t.getFirstChild():void 0,i=t?t.getLastChild():void 0;if(e.is(r))n.insertBefore(e),t.isEmpty()&&n.remove();else if(e.is(i))n.insertAfter(e),t.isEmpty()&&n.remove();else{const r=t.getListType(),i=W(),s=q(r);i.append(s),e.getPreviousSiblings().forEach((e=>s.append(e)));const o=W(),c=q(r);o.append(c),N(c,e.getNextSiblings()),n.insertBefore(i),n.insertAfter(o),n.replace(e)}}}function F(){const e=s();if(!o(e)||!e.isCollapsed())return!1;const t=e.anchor.getNode();if(!V(t)||0!==t.getChildrenSize())return!1;const n=k(t),r=t.getParent();H(r)||y(40);const i=r.getParent();let l;if(c(i))l=h(),n.insertAfter(l);else{if(!V(i))return!1;l=W(),i.insertAfter(l)}l.select();const a=t.getNextSiblings();if(a.length>0){const e=q(r.getListType());if(u(l))l.insertAfter(e);else{const t=W();t.append(e),l.insertAfter(t)}a.forEach((t=>{t.remove(),e.append(t)}))}return function(e){let t=e;for(;null==t.getNextSibling()&&null==t.getPreviousSibling();){const e=t.getParent();if(null==e||!V(t)&&!H(t))break;t=e}t.remove()}(t),!0}function w(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}class D extends g{static getType(){return\"listitem\"}static clone(e){return new D(e.__value,e.__checked,e.__key)}constructor(e,t,n){super(n),this.__value=void 0===e?1:e,this.__checked=t}createDOM(e){const t=document.createElement(\"li\"),n=this.getParent();return H(n)&&\"check\"===n.getListType()&&R(t,this,null),t.value=this.__value,I(t,e.theme,this),t}updateDOM(e,t,n){const r=this.getParent();return H(r)&&\"check\"===r.getListType()&&R(t,this,e),t.value=this.__value,I(t,n.theme,this),!1}static transform(){return e=>{if(V(e)||y(144),null==e.__checked)return;const t=e.getParent();H(t)&&\"check\"!==t.getListType()&&null!=e.getChecked()&&e.setChecked(void 0)}}static importDOM(){return{li:()=>({conversion:B,priority:0})}}static importJSON(e){const t=W();return t.setChecked(e.checked),t.setValue(e.value),t.setFormat(e.format),t.setDirection(e.direction),t}exportDOM(e){const t=this.createDOM(e._config);return t.style.textAlign=this.getFormatType(),{element:t}}exportJSON(){return{...super.exportJSON(),checked:this.getChecked(),type:\"listitem\",value:this.getValue(),version:1}}append(...e){for(let t=0;t<e.length;t++){const n=e[t];if(l(n)&&this.canMergeWith(n)){const e=n.getChildren();this.append(...e),n.remove()}else super.append(n)}return this}replace(e,t){if(V(e))return super.replace(e);this.setIndent(0);const n=this.getParentOrThrow();if(!H(n))return e;if(n.__first===this.getKey())n.insertBefore(e);else if(n.__last===this.getKey())n.insertAfter(e);else{const t=q(n.getListType());let r=this.getNextSibling();for(;r;){const e=r;r=r.getNextSibling(),t.append(e)}n.insertAfter(e),e.insertAfter(t)}return t&&(l(e)||y(139),this.getChildren().forEach((t=>{e.append(t)}))),this.remove(),0===n.getChildrenSize()&&n.remove(),e}insertAfter(e,t=!0){const n=this.getParentOrThrow();if(H(n)||y(39),V(e))return super.insertAfter(e,t);const r=this.getNextSiblings();if(n.insertAfter(e,t),0!==r.length){const i=q(n.getListType());r.forEach((e=>i.append(e))),e.insertAfter(i,t)}return e}remove(e){const t=this.getPreviousSibling(),n=this.getNextSibling();super.remove(e),t&&n&&b(t)&&b(n)&&(L(t.getFirstChild(),n.getFirstChild()),n.remove())}insertNewAfter(e,t=!0){const n=W(null==this.__checked&&void 0);return this.insertAfter(n,t),n}collapseAtStart(e){const t=h();this.getChildren().forEach((e=>t.append(e)));const n=this.getParentOrThrow(),r=n.getParentOrThrow(),i=V(r);if(1===n.getChildrenSize())if(i)n.remove(),r.select();else{n.insertBefore(t),n.remove();const r=e.anchor,i=e.focus,s=t.getKey();\"element\"===r.type&&r.getNode().is(this)&&r.set(s,r.offset,\"element\"),\"element\"===i.type&&i.getNode().is(this)&&i.set(s,i.offset,\"element\")}else n.insertBefore(t),this.remove();return!0}getValue(){return this.getLatest().__value}setValue(e){this.getWritable().__value=e}getChecked(){const e=this.getLatest();let t;const n=this.getParent();return H(n)&&(t=n.getListType()),\"check\"===t?Boolean(e.__checked):void 0}setChecked(e){this.getWritable().__checked=e}toggleChecked(){this.setChecked(!this.__checked)}getIndent(){const e=this.getParent();if(null===e)return this.getLatest().__indent;let t=e.getParentOrThrow(),n=0;for(;V(t);)t=t.getParentOrThrow().getParentOrThrow(),n++;return n}setIndent(e){\"number\"!=typeof e&&y(117),(e=Math.floor(e))>=0||y(199);let t=this.getIndent();for(;t!==e;)t<e?(E(this),t++):(M(this),t--);return this}canInsertAfter(e){return V(e)}canReplaceWith(e){return V(e)}canMergeWith(e){return u(e)||V(e)}extractWithChild(e,t){if(!o(t))return!1;const n=t.anchor.getNode(),r=t.focus.getNode();return this.isParentOf(n)&&this.isParentOf(r)&&this.getTextContent().length===t.getTextContent().length}isParentRequired(){return!0}createParentElementNode(){return q(\"bullet\")}canMergeWhenEmpty(){return!0}}function I(e,r,i){const s=[],o=[],c=r.list,l=c?c.listitem:void 0;let a;if(c&&c.nested&&(a=c.nested.listitem),void 0!==l&&s.push(...w(l)),c){const e=i.getParent(),t=H(e)&&\"check\"===e.getListType(),n=i.getChecked();t&&!n||o.push(c.listitemUnchecked),t&&n||o.push(c.listitemChecked),t&&s.push(n?c.listitemChecked:c.listitemUnchecked)}if(void 0!==a){const e=w(a);i.getChildren().some((e=>H(e)))?s.push(...e):o.push(...e)}o.length>0&&t(e,...o),s.length>0&&n(e,...s)}function R(e,t,n,r){H(t.getFirstChild())?(e.removeAttribute(\"role\"),e.removeAttribute(\"tabIndex\"),e.removeAttribute(\"aria-checked\")):(e.setAttribute(\"role\",\"checkbox\"),e.setAttribute(\"tabIndex\",\"-1\"),n&&t.__checked===n.__checked||e.setAttribute(\"aria-checked\",t.getChecked()?\"true\":\"false\"))}function B(e){if(e.classList.contains(\"task-list-item\"))for(const t of e.children)if(\"INPUT\"===t.tagName)return K(t);const t=e.getAttribute(\"aria-checked\");return{node:W(\"true\"===t||\"false\"!==t&&void 0)}}function K(e){if(!(\"checkbox\"===e.getAttribute(\"type\")))return{node:null};return{node:W(e.hasAttribute(\"checked\"))}}function W(e){return d(new D(void 0,e))}function V(e){return e instanceof D}class J extends g{static getType(){return\"list\"}static clone(e){const t=e.__listType||j[e.__tag];return new J(t,e.__start,e.__key)}constructor(e,t,n){super(n);const r=j[e]||e;this.__listType=r,this.__tag=\"number\"===r?\"ol\":\"ul\",this.__start=t}getTag(){return this.__tag}setListType(e){const t=this.getWritable();t.__listType=e,t.__tag=\"number\"===e?\"ol\":\"ul\"}getListType(){return this.__listType}getStart(){return this.__start}createDOM(e,t){const n=this.__tag,r=document.createElement(n);return 1!==this.__start&&r.setAttribute(\"start\",String(this.__start)),r.__lexicalListType=this.__listType,z(r,e.theme,this),r}updateDOM(e,t,n){return e.__tag!==this.__tag||(z(t,n.theme,this),!1)}static transform(){return e=>{H(e)||y(163),function(e){const t=e.getNextSibling();H(t)&&e.getListType()===t.getListType()&&L(e,t)}(e),function(e){const t=\"check\"!==e.getListType();let n=e.getStart();for(const r of e.getChildren())V(r)&&(r.getValue()!==n&&r.setValue(n),t&&null!=r.getLatest().__checked&&r.setChecked(void 0),H(r.getFirstChild())||n++)}(e)}}static importDOM(){return{ol:()=>({conversion:$,priority:0}),ul:()=>({conversion:$,priority:0})}}static importJSON(e){const t=q(e.listType,e.start);return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportDOM(e){const{element:t}=super.exportDOM(e);return t&&r(t)&&(1!==this.__start&&t.setAttribute(\"start\",String(this.__start)),\"check\"===this.__listType&&t.setAttribute(\"__lexicalListType\",\"check\")),{element:t}}exportJSON(){return{...super.exportJSON(),listType:this.getListType(),start:this.getStart(),tag:this.getTag(),type:\"list\",version:1}}canBeEmpty(){return!1}canIndent(){return!1}append(...e){for(let t=0;t<e.length;t++){const n=e[t];if(V(n))super.append(n);else{const e=W();if(H(n))e.append(n);else if(l(n)){const t=f(n.getTextContent());e.append(t)}else e.append(n);super.append(e)}}return this}extractWithChild(e){return V(e)}}function z(e,r,i){const s=[],o=[],c=r.list;if(void 0!==c){const e=c[`${i.__tag}Depth`]||[],t=C(i)-1,n=t%e.length,r=e[n],l=c[i.__tag];let a;const h=c.nested,u=c.checklist;if(void 0!==h&&h.list&&(a=h.list),void 0!==l&&s.push(l),void 0!==u&&\"check\"===i.__listType&&s.push(u),void 0!==r){s.push(...w(r));for(let t=0;t<e.length;t++)t!==n&&o.push(i.__tag+t)}if(void 0!==a){const e=w(a);t>1?s.push(...e):o.push(...e)}}o.length>0&&t(e,...o),s.length>0&&n(e,...s)}function U(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];if(V(r)){t.push(r);const e=r.getChildren();e.length>1&&e.forEach((e=>{H(e)&&t.push(S(e))}))}else t.push(S(r))}return t}function $(e){const t=e.nodeName.toLowerCase();let n=null;if(\"ol\"===t){n=q(\"number\",e.start)}else\"ul\"===t&&(n=function(e){if(\"check\"===e.getAttribute(\"__lexicallisttype\")||e.classList.contains(\"contains-task-list\"))return!0;for(const t of e.childNodes)if(r(t)&&t.hasAttribute(\"aria-checked\"))return!0;return!1}(e)?q(\"check\"):q(\"bullet\"));return{after:U,node:n}}const j={ol:\"number\",ul:\"bullet\"};function q(e,t=1){return d(new J(e,t))}function H(e){return e instanceof J}const G=p(\"INSERT_UNORDERED_LIST_COMMAND\"),Q=p(\"INSERT_ORDERED_LIST_COMMAND\"),X=p(\"INSERT_CHECK_LIST_COMMAND\"),Y=p(\"REMOVE_LIST_COMMAND\");function Z(e){return i(e.registerCommand(Q,(()=>(A(e,\"number\"),!0)),_),e.registerCommand(G,(()=>(A(e,\"bullet\"),!0)),_),e.registerCommand(Y,(()=>(O(e),!0)),_),e.registerCommand(m,(()=>!!F()),_))}export{W as $createListItemNode,q as $createListNode,C as $getListDepth,F as $handleListInsertParagraph,V as $isListItemNode,H as $isListNode,X as INSERT_CHECK_LIST_COMMAND,Q as INSERT_ORDERED_LIST_COMMAND,G as INSERT_UNORDERED_LIST_COMMAND,D as ListItemNode,J as ListNode,Y as REMOVE_LIST_COMMAND,A as insertList,Z as registerList,O as removeList};\n","import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\r\nimport { INSERT_ORDERED_LIST_COMMAND, INSERT_UNORDERED_LIST_COMMAND, REMOVE_LIST_COMMAND } from '@lexical/list';\r\nimport { useState } from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport { Icon } from 'components/Icon';\r\nimport styles from 'components/RteEditor/RteEditor.module.css';\r\n\r\ninterface ListPluginProps {\r\n isOList: boolean;\r\n isUList: boolean;\r\n}\r\n\r\ntype ListTypesType = 'bullet' | 'number' | 'paragraph';\r\nconst LIST_TYPE_ICONS = {\r\n bullet: 'FormatUnorderedList',\r\n number: 'FormatOrderedLists',\r\n};\r\n\r\nconst ListTypes = ['bullet', 'number'];\r\n\r\nexport const ListPlugin = ({ isOList = false, isUList = false }: ListPluginProps) => {\r\n const [editor] = useLexicalComposerContext();\r\n const [blockType, setBlockType] = useState<ListTypesType>('paragraph');\r\n\r\n const formatList = (listType: ListTypesType): void => {\r\n if (listType === 'number' && blockType !== 'number') {\r\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined);\r\n setBlockType('number');\r\n } else if (listType === 'bullet' && blockType !== 'bullet') {\r\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\r\n setBlockType('bullet');\r\n } else {\r\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\r\n setBlockType('paragraph');\r\n }\r\n };\r\n\r\n return (\r\n <div className={styles['editor__toolbar-button-group']}>\r\n {ListTypes.map((listType) => (\r\n <button\r\n onClick={() => formatList(listType as ListTypesType)}\r\n key={listType}\r\n className={clsx(\r\n styles['editor__toolbar-button'],\r\n styles[`editor__toolbar-button--${listType}`],\r\n listType === 'bullet' && isUList && styles['editor__toolbar-button--active'],\r\n listType === 'number' && isOList && styles['editor__toolbar-button--active']\r\n )}\r\n >\r\n <Icon name={LIST_TYPE_ICONS[listType as keyof typeof Icon]} size={20} />\r\n </button>\r\n ))}\r\n </div>\r\n );\r\n};\r\n"],"names":["g","e","p","h","m","b","n","L","$","U","Z","ee","te","r","o","ie","v","y","C","V","H","k","T","i","S","W","P","A","s","q","c","t","l","N","a","x","O","D","E","M","F","u","w","R","I","B","K","d","J","j","z","f","G","Q","Y","_","LIST_TYPE_ICONS","ListTypes","ListPlugin","isOList","isUList","editor","useLexicalComposerContext","blockType","setBlockType","useState","formatList","listType","INSERT_ORDERED_LIST_COMMAND","INSERT_UNORDERED_LIST_COMMAND","REMOVE_LIST_COMMAND","jsx","styles","clsx","Icon"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -3,8 +3,9 @@ import { c as m } from "./clsx-OuTLNxxd.js";
3
3
  import { s as t, M as p } from "./MultiSelectItem-D9PxdX43.js";
4
4
  import { Label as u } from "./components/Label/Label.js";
5
5
  import "react";
6
+ import { Button as n } from "./components/Buttons/Button.js";
7
+ import "./components/Buttons/LinkButton.js";
6
8
  import "@react-aria/button";
7
- import { Button as n } from "./components/Button/Button.js";
8
9
  import "@react-aria/dialog";
9
10
  import "@react-aria/focus";
10
11
  import "@react-aria/overlays";
@@ -49,4 +50,4 @@ export {
49
50
  s as M,
50
51
  d as a
51
52
  };
52
- //# sourceMappingURL=MultiSelect-Ckf3uGw5.js.map
53
+ //# sourceMappingURL=MultiSelect-D1FnMER4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect-Ckf3uGw5.js","sources":["../src/components/MultiSelect/components/MultiSelectHeader.tsx","../src/components/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Label } from 'components/Label';\nimport { Button } from 'components';\n\nexport interface MultiSelectHeaderProps {\n label: string;\n clearTrigger?: string;\n onClear?: () => void;\n}\n\nexport function MultiSelectHeader({ label, clearTrigger, onClear }: MultiSelectHeaderProps) {\n return (\n <header className={styles['multi-select__header']}>\n <Label htmlFor=\"multi-select-list\">{label}</Label>\n {clearTrigger && (\n <Button variant={'blank'} onClick={onClear}>\n {clearTrigger}\n </Button>\n )}\n </header>\n );\n}\n","import clsx from 'clsx';\n\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './MultiSelect.module.css';\n\nimport { MultiSelectItem } from 'components/MultiSelect/components/MultiSelectItem';\nimport { MultiSelectHeader } from 'components/MultiSelect/components/MultiSelectHeader';\n\nexport interface MultiSelectProps {\n /** `true` if the container should scroll on overflow; otherwise, `false` to resize the container to its contents. The default is `true`. */\n scrollable?: boolean;\n /** `true` to disable the border around the container; otherwise, `false`. The default is `false`. */\n noBorder?: boolean;\n /** The header contents. */\n header?: ReactNode;\n}\n\n/** Represents a component to list a number of checkboxes. */\nexport const MultiSelect = ({ scrollable = true, noBorder, header, children }: PropsWithChildren<MultiSelectProps>) => (\n <>\n {header}\n <div\n className={clsx(styles['multi-select'], {\n [styles['multi-select--no-border']]: noBorder,\n })}\n >\n <ul\n className={clsx(styles['multi-select__list'], {\n [styles['multi-select__list--scrollable']]: scrollable,\n })}\n id=\"multi-select-list\"\n >\n {children}\n </ul>\n </div>\n </>\n);\n\nMultiSelect.MultiSelectHeader = MultiSelectHeader;\nMultiSelect.MultiSelectItem = MultiSelectItem;\n"],"names":["MultiSelectHeader","label","clearTrigger","onClear","jsxs","styles","jsx","Label","Button","MultiSelect","scrollable","noBorder","header","children","Fragment","clsx","MultiSelectItem"],"mappings":";;;;;;;;;;;;;;;;;;AAUO,SAASA,EAAkB,EAAE,OAAAC,GAAO,cAAAC,GAAc,SAAAC,KAAmC;AAC1F,SACG,gBAAAC,EAAA,UAAA,EAAO,WAAWC,EAAO,sBAAsB,GAC9C,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAM,SAAQ,qBAAqB,UAAMN,GAAA;AAAA,IACzCC,KACE,gBAAAI,EAAAE,GAAA,EAAO,SAAS,SAAS,SAASL,GAChC,UACHD,GAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ;ACFa,MAAAO,IAAc,CAAC,EAAE,YAAAC,IAAa,IAAM,UAAAC,GAAU,QAAAC,GAAQ,UAAAC,QAE9D,gBAAAT,EAAAU,GAAA,EAAA,UAAA;AAAA,EAAAF;AAAA,EACD,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWS,EAAKV,EAAO,cAAc,GAAG;AAAA,QACtC,CAACA,EAAO,yBAAyB,CAAC,GAAGM;AAAA,MAAA,CACtC;AAAA,MAED,UAAA,gBAAAL;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWS,EAAKV,EAAO,oBAAoB,GAAG;AAAA,YAC5C,CAACA,EAAO,gCAAgC,CAAC,GAAGK;AAAA,UAAA,CAC7C;AAAA,UACD,IAAG;AAAA,UAEF,UAAAG;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EACF;AAAA,GACF;AAGFJ,EAAY,oBAAoBT;AAChCS,EAAY,kBAAkBO;"}
1
+ {"version":3,"file":"MultiSelect-D1FnMER4.js","sources":["../src/components/MultiSelect/components/MultiSelectHeader.tsx","../src/components/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import styles from 'components/MultiSelect/MultiSelect.module.css';\nimport { Label } from 'components/Label';\nimport { Button } from 'components';\n\nexport interface MultiSelectHeaderProps {\n label: string;\n clearTrigger?: string;\n onClear?: () => void;\n}\n\nexport function MultiSelectHeader({ label, clearTrigger, onClear }: MultiSelectHeaderProps) {\n return (\n <header className={styles['multi-select__header']}>\n <Label htmlFor=\"multi-select-list\">{label}</Label>\n {clearTrigger && (\n <Button variant={'blank'} onClick={onClear}>\n {clearTrigger}\n </Button>\n )}\n </header>\n );\n}\n","import clsx from 'clsx';\n\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport styles from './MultiSelect.module.css';\n\nimport { MultiSelectItem } from 'components/MultiSelect/components/MultiSelectItem';\nimport { MultiSelectHeader } from 'components/MultiSelect/components/MultiSelectHeader';\n\nexport interface MultiSelectProps {\n /** `true` if the container should scroll on overflow; otherwise, `false` to resize the container to its contents. The default is `true`. */\n scrollable?: boolean;\n /** `true` to disable the border around the container; otherwise, `false`. The default is `false`. */\n noBorder?: boolean;\n /** The header contents. */\n header?: ReactNode;\n}\n\n/** Represents a component to list a number of checkboxes. */\nexport const MultiSelect = ({ scrollable = true, noBorder, header, children }: PropsWithChildren<MultiSelectProps>) => (\n <>\n {header}\n <div\n className={clsx(styles['multi-select'], {\n [styles['multi-select--no-border']]: noBorder,\n })}\n >\n <ul\n className={clsx(styles['multi-select__list'], {\n [styles['multi-select__list--scrollable']]: scrollable,\n })}\n id=\"multi-select-list\"\n >\n {children}\n </ul>\n </div>\n </>\n);\n\nMultiSelect.MultiSelectHeader = MultiSelectHeader;\nMultiSelect.MultiSelectItem = MultiSelectItem;\n"],"names":["MultiSelectHeader","label","clearTrigger","onClear","jsxs","styles","jsx","Label","Button","MultiSelect","scrollable","noBorder","header","children","Fragment","clsx","MultiSelectItem"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,SAASA,EAAkB,EAAE,OAAAC,GAAO,cAAAC,GAAc,SAAAC,KAAmC;AAC1F,SACG,gBAAAC,EAAA,UAAA,EAAO,WAAWC,EAAO,sBAAsB,GAC9C,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAM,SAAQ,qBAAqB,UAAMN,GAAA;AAAA,IACzCC,KACE,gBAAAI,EAAAE,GAAA,EAAO,SAAS,SAAS,SAASL,GAChC,UACHD,GAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ;ACFa,MAAAO,IAAc,CAAC,EAAE,YAAAC,IAAa,IAAM,UAAAC,GAAU,QAAAC,GAAQ,UAAAC,QAE9D,gBAAAT,EAAAU,GAAA,EAAA,UAAA;AAAA,EAAAF;AAAA,EACD,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWS,EAAKV,EAAO,cAAc,GAAG;AAAA,QACtC,CAACA,EAAO,yBAAyB,CAAC,GAAGM;AAAA,MAAA,CACtC;AAAA,MAED,UAAA,gBAAAL;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWS,EAAKV,EAAO,oBAAoB,GAAG;AAAA,YAC5C,CAACA,EAAO,gCAAgC,CAAC,GAAGK;AAAA,UAAA,CAC7C;AAAA,UACD,IAAG;AAAA,UAEF,UAAAG;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EACF;AAAA,GACF;AAGFJ,EAAY,oBAAoBT;AAChCS,EAAY,kBAAkBO;"}
@@ -0,0 +1,21 @@
1
+ import './assets/RteEditor.css';const t = "_editor__wrapper_1ukte_1", _ = "_editor__toolbar_1ukte_6", o = "_editor__field_1ukte_62", e = "_editor__placeholder_1ukte_78", r = "_editor__listitem_1ukte_110", i = {
2
+ editor__wrapper: t,
3
+ editor__toolbar: _,
4
+ "editor__toolbar-button-group": "_editor__toolbar-button-group_1ukte_14",
5
+ "editor__toolbar-button": "_editor__toolbar-button_1ukte_14",
6
+ "editor__toolbar-button--bold": "_editor__toolbar-button--bold_1ukte_44",
7
+ "editor__toolbar-button--italic": "_editor__toolbar-button--italic_1ukte_48",
8
+ "editor__toolbar-button--active": "_editor__toolbar-button--active_1ukte_52",
9
+ "editor__field-wrapper": "_editor__field-wrapper_1ukte_62",
10
+ editor__field: o,
11
+ editor__placeholder: e,
12
+ "editor__text--bold": "_editor__text--bold_1ukte_92",
13
+ "editor__text--italic": "_editor__text--italic_1ukte_96",
14
+ "editor__list--ul": "_editor__list--ul_1ukte_100",
15
+ "editor__list--ol": "_editor__list--ol_1ukte_105",
16
+ editor__listitem: r
17
+ };
18
+ export {
19
+ i as s
20
+ };
21
+ //# sourceMappingURL=RteEditor.module-RkKUrkOO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RteEditor.module-RkKUrkOO.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ ._editor__wrapper_1ukte_1{border-radius:4px;padding:.75rem}._editor__toolbar_1ukte_6{align-items:center;display:flex;gap:.75rem;justify-content:flex-start;margin-bottom:.5rem}._editor__toolbar-button-group_1ukte_14{align-items:center;display:flex;gap:.25rem;justify-content:center}._editor__toolbar-button_1ukte_14{align-items:center;background-color:var(--color-white);border:1px solid var(--color-grey-300);border-radius:.25rem;cursor:pointer;display:flex;font-size:1.1rem;height:2.5rem;justify-content:center;width:2.5rem}._editor__toolbar-button_1ukte_14:hover{background-color:var(--color-grey-200)}._editor__toolbar-button_1ukte_14:focus-visible{outline:.125rem dotted var(--color-cobalt);outline-offset:.125rem;z-index:1}._editor__toolbar-button--bold_1ukte_44{font-weight:700}._editor__toolbar-button--italic_1ukte_48{font-style:italic}._editor__toolbar-button--active_1ukte_52{background-color:var(--color-black);border-color:var(--color-black);color:var(--color-white)}._editor__toolbar-button--active_1ukte_52:hover{color:var(--color-black)}._editor__field-wrapper_1ukte_62{position:relative}._editor__field_1ukte_62{background-color:var(--color-white);border:1px solid var(--color-grey-300);min-height:8rem;padding:.25rem}._editor__field_1ukte_62:focus-visible{outline:1px solid var(--color-cobalt);z-index:1}._editor__placeholder_1ukte_78{color:var(--color-grey-300);left:0;padding:.25rem;pointer-events:none;position:absolute;top:0}._editor__field_1ukte_62 p{margin:0}._editor__text--bold_1ukte_92{font-weight:700}._editor__text--italic_1ukte_96{font-style:italic}._editor__list--ul_1ukte_100,._editor__list--ol_1ukte_105{padding:0;margin:0}._editor__list--ul_1ukte_100>._editor__listitem_1ukte_110{margin-left:1rem;list-style-type:disc}._editor__list--ol_1ukte_105>._editor__listitem_1ukte_110{margin-left:1rem;list-style-type:decimal}
@@ -2,13 +2,15 @@ import { jsxs as k, jsx as c } from "react/jsx-runtime";
2
2
  import { c as T } from "../../clsx-OuTLNxxd.js";
3
3
  import { useId as U, useRef as l, Children as w, useState as b, useEffect as D } from "react";
4
4
  import { Icon as m } from "../Icon/Icon.js";
5
- import { MenuButton as $ } from "../MenuButton/MenuButton.js";
5
+ import "../Buttons/Button.js";
6
+ import "../Buttons/LinkButton.js";
7
+ import { MenuButton as $ } from "../Buttons/MenuButton.js";
6
8
  import '../../assets/ActionList.css';const p = {
7
9
  "action-list": "_action-list_1vi7f_1",
8
10
  "action-list--open": "_action-list--open_1vi7f_13",
9
11
  "action-list-container": "_action-list-container_1vi7f_17"
10
12
  }, O = -1, s = 1;
11
- function K({ label: h, prefixIcon: E, iconName: C, variant: L = "secondary", children: u }) {
13
+ function B({ label: h, prefixIcon: E, iconName: C, variant: L = "secondary", children: u }) {
12
14
  const I = U(), _ = l(null), n = l(null), r = l(null), d = w.count(u), [f, i] = b(O), [a, g] = b(!1);
13
15
  function R() {
14
16
  g(!0), document.addEventListener("click", N, { once: !0, capture: !0 });
@@ -66,6 +68,6 @@ function K({ label: h, prefixIcon: E, iconName: C, variant: L = "secondary", chi
66
68
  ] });
67
69
  }
68
70
  export {
69
- K as ActionList
71
+ B as ActionList
70
72
  };
71
73
  //# sourceMappingURL=ActionList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionList.js","sources":["../../../src/components/ActionList/ActionList.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { Children, useEffect, useId, useRef, useState } from 'react';\n\nimport type { KeyboardEvent, MouseEvent as ReactMouseEvent, ReactElement } from 'react';\nimport type { IconProps } from 'components/Icon';\nimport type { UIButtonVariant } from 'types/UserInterface';\n\nimport styles from './ActionList.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { MenuButton } from 'components/MenuButton';\n\nexport interface ActionListProps {\n /** The label that is displayed before the icon. */\n label: string;\n /** The icon that is shown in front of the label. */\n prefixIcon?: IconProps['name'];\n /** The icon that is shown to toggle the menu. If none is specified, CheveronUp and CheveronDown is used depending on whether the menu is opened or closed. */\n iconName?: IconProps['name'];\n /** Determines the button variant. */\n variant?: UIButtonVariant;\n /** The child component(s). */\n children: ReactElement | ReactElement[];\n}\n\nconst inactiveIndex = -1;\nconst indexIncrement = 1;\n\n/** A component to show an action list to toggle a menu. */\nexport function ActionList({ label, prefixIcon, iconName, variant = 'secondary', children }: ActionListProps) {\n const listId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const numberOfChildren = Children.count(children);\n\n const [activeIndex, setActiveIndex] = useState(inactiveIndex);\n const [isOpen, setIsOpen] = useState(false);\n\n function open() {\n setIsOpen(true);\n\n document.addEventListener('click', onClickOutside, { once: true, capture: true });\n }\n\n function close(event?: ReactMouseEvent<HTMLDivElement>) {\n // When a click occurs on an element that is not an immediate descendant of the action list container\n // (can happen when a modal window is triggered from a button in the action list), the setIsOpen state\n // handler should not be called, because this causes a re-render of the entire component and can lead\n // to undesired effects, like a select element closing immediately after it has been clicked.\n if (event && containerRef.current && !containerRef.current.contains(event.target as Node)) {\n return;\n }\n\n setActiveIndex(inactiveIndex);\n setIsOpen(false);\n\n document.removeEventListener('click', onClickOutside, { capture: true });\n }\n\n function toggle() {\n if (isOpen) close();\n else open();\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (!isOpen) return;\n\n const eventPreventCodes = ['ArrowUp', 'ArrowDown', 'Home', 'End'];\n\n if (eventPreventCodes.includes(event.code)) {\n // prevent page from scrolling when navigating through items in list\n event.preventDefault();\n }\n\n if (event.code === 'Tab') {\n close();\n }\n }\n\n function onKeyUp(event: KeyboardEvent) {\n if (event.code === 'Space' || event.key === 'Enter') {\n if (event.target === triggerRef.current) {\n toggle();\n } else if (event.key === 'Enter' && event.target !== listRef.current) {\n if ('firstChild' in event.target) {\n const firstChild = event.target.firstChild as HTMLButtonElement;\n\n firstChild.click();\n }\n }\n }\n\n if (event.code === 'Escape') close();\n\n if (event.code === 'ArrowUp') {\n setActiveIndex((prevState) => {\n if (prevState === 0) return numberOfChildren - indexIncrement;\n\n return prevState - indexIncrement;\n });\n }\n\n if (event.code === 'ArrowDown') {\n setActiveIndex((prevState) => {\n if (prevState === numberOfChildren - indexIncrement) return 0;\n\n return prevState + indexIncrement;\n });\n }\n\n if (event.code === 'Home') {\n setActiveIndex(0);\n }\n\n if (event.code === 'End') {\n setActiveIndex(numberOfChildren - indexIncrement);\n }\n }\n\n const onClickOutside = (event: MouseEvent) => {\n const { target } = event;\n\n if (!target || !containerRef.current) return;\n\n if (!containerRef.current.contains(target as Node)) {\n close();\n }\n };\n\n useEffect(() => {\n if (activeIndex < 0 || !listRef.current) return;\n\n const listItem = listRef.current.children.item(activeIndex);\n\n if (listItem) {\n (listItem as HTMLDivElement).focus();\n }\n }, [activeIndex]);\n\n useEffect(() => {\n if (!listRef.current || !listRef.current.hasChildNodes()) return;\n\n Array.from(listRef.current.children)\n .filter((overlayChild) => overlayChild.nodeType === Node.ELEMENT_NODE && overlayChild.hasChildNodes())\n .forEach((overlayChild) => {\n Array.from(overlayChild.children)\n .filter((childOfChild) => childOfChild.nodeType === Node.ELEMENT_NODE)\n .forEach((childOfChild) => {\n // internal children may be buttons and can get focus when tab is pressed; preventing those elements\n // from getting focus so that list can be tabbed over and traversed with arrow keys\n childOfChild.setAttribute('tabIndex', '-1');\n });\n });\n }, [children]);\n\n return (\n <div className={styles['action-list-container']} ref={containerRef}>\n <MenuButton onClick={toggle} onKeyDown={onKeyDown} onKeyUp={onKeyUp} buttonRef={triggerRef} variant={variant}>\n {prefixIcon && <Icon size={24} name={prefixIcon} />}\n {label}\n {iconName ? (\n <Icon size={24} name={iconName} />\n ) : (\n <Icon size={16} name={isOpen ? 'CheveronUp' : 'CheveronDown'} />\n )}\n </MenuButton>\n <div\n aria-activedescendant={`${listId}-child-${activeIndex}`}\n aria-label={label}\n className={clsx(styles['action-list'], {\n [styles['action-list--open']]: isOpen,\n })}\n onClickCapture={close}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n ref={listRef}\n role=\"menu\"\n tabIndex={-1}\n >\n {Children.map(children, (child, index) => (\n <div key={`${listId}-child-${index}`} role=\"menuitem\" tabIndex={-1}>\n {child}\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":["inactiveIndex","indexIncrement","ActionList","label","prefixIcon","iconName","variant","children","listId","useId","triggerRef","useRef","listRef","containerRef","numberOfChildren","Children","activeIndex","setActiveIndex","useState","isOpen","setIsOpen","open","onClickOutside","close","event","toggle","onKeyDown","onKeyUp","prevState","target","useEffect","listItem","overlayChild","childOfChild","styles","jsxs","MenuButton","jsx","Icon","clsx","child","index"],"mappings":"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"}
1
+ {"version":3,"file":"ActionList.js","sources":["../../../src/components/ActionList/ActionList.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { Children, useEffect, useId, useRef, useState } from 'react';\n\nimport type { KeyboardEvent, MouseEvent as ReactMouseEvent, ReactElement } from 'react';\nimport type { IconProps } from 'components/Icon';\nimport type { UIButtonVariant } from 'types/UserInterface';\n\nimport styles from './ActionList.module.css';\n\nimport { Icon } from 'components/Icon';\nimport { MenuButton } from 'components/Buttons';\n\nexport interface ActionListProps {\n /** The label that is displayed before the icon. */\n label: string;\n /** The icon that is shown in front of the label. */\n prefixIcon?: IconProps['name'];\n /** The icon that is shown to toggle the menu. If none is specified, CheveronUp and CheveronDown is used depending on whether the menu is opened or closed. */\n iconName?: IconProps['name'];\n /** Determines the button variant. */\n variant?: UIButtonVariant;\n /** The child component(s). */\n children: ReactElement | ReactElement[];\n}\n\nconst inactiveIndex = -1;\nconst indexIncrement = 1;\n\n/** A component to show an action list to toggle a menu. */\nexport function ActionList({ label, prefixIcon, iconName, variant = 'secondary', children }: ActionListProps) {\n const listId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const numberOfChildren = Children.count(children);\n\n const [activeIndex, setActiveIndex] = useState(inactiveIndex);\n const [isOpen, setIsOpen] = useState(false);\n\n function open() {\n setIsOpen(true);\n\n document.addEventListener('click', onClickOutside, { once: true, capture: true });\n }\n\n function close(event?: ReactMouseEvent<HTMLDivElement>) {\n // When a click occurs on an element that is not an immediate descendant of the action list container\n // (can happen when a modal window is triggered from a button in the action list), the setIsOpen state\n // handler should not be called, because this causes a re-render of the entire component and can lead\n // to undesired effects, like a select element closing immediately after it has been clicked.\n if (event && containerRef.current && !containerRef.current.contains(event.target as Node)) {\n return;\n }\n\n setActiveIndex(inactiveIndex);\n setIsOpen(false);\n\n document.removeEventListener('click', onClickOutside, { capture: true });\n }\n\n function toggle() {\n if (isOpen) close();\n else open();\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (!isOpen) return;\n\n const eventPreventCodes = ['ArrowUp', 'ArrowDown', 'Home', 'End'];\n\n if (eventPreventCodes.includes(event.code)) {\n // prevent page from scrolling when navigating through items in list\n event.preventDefault();\n }\n\n if (event.code === 'Tab') {\n close();\n }\n }\n\n function onKeyUp(event: KeyboardEvent) {\n if (event.code === 'Space' || event.key === 'Enter') {\n if (event.target === triggerRef.current) {\n toggle();\n } else if (event.key === 'Enter' && event.target !== listRef.current) {\n if ('firstChild' in event.target) {\n const firstChild = event.target.firstChild as HTMLButtonElement;\n\n firstChild.click();\n }\n }\n }\n\n if (event.code === 'Escape') close();\n\n if (event.code === 'ArrowUp') {\n setActiveIndex((prevState) => {\n if (prevState === 0) return numberOfChildren - indexIncrement;\n\n return prevState - indexIncrement;\n });\n }\n\n if (event.code === 'ArrowDown') {\n setActiveIndex((prevState) => {\n if (prevState === numberOfChildren - indexIncrement) return 0;\n\n return prevState + indexIncrement;\n });\n }\n\n if (event.code === 'Home') {\n setActiveIndex(0);\n }\n\n if (event.code === 'End') {\n setActiveIndex(numberOfChildren - indexIncrement);\n }\n }\n\n const onClickOutside = (event: MouseEvent) => {\n const { target } = event;\n\n if (!target || !containerRef.current) return;\n\n if (!containerRef.current.contains(target as Node)) {\n close();\n }\n };\n\n useEffect(() => {\n if (activeIndex < 0 || !listRef.current) return;\n\n const listItem = listRef.current.children.item(activeIndex);\n\n if (listItem) {\n (listItem as HTMLDivElement).focus();\n }\n }, [activeIndex]);\n\n useEffect(() => {\n if (!listRef.current || !listRef.current.hasChildNodes()) return;\n\n Array.from(listRef.current.children)\n .filter((overlayChild) => overlayChild.nodeType === Node.ELEMENT_NODE && overlayChild.hasChildNodes())\n .forEach((overlayChild) => {\n Array.from(overlayChild.children)\n .filter((childOfChild) => childOfChild.nodeType === Node.ELEMENT_NODE)\n .forEach((childOfChild) => {\n // internal children may be buttons and can get focus when tab is pressed; preventing those elements\n // from getting focus so that list can be tabbed over and traversed with arrow keys\n childOfChild.setAttribute('tabIndex', '-1');\n });\n });\n }, [children]);\n\n return (\n <div className={styles['action-list-container']} ref={containerRef}>\n <MenuButton onClick={toggle} onKeyDown={onKeyDown} onKeyUp={onKeyUp} buttonRef={triggerRef} variant={variant}>\n {prefixIcon && <Icon size={24} name={prefixIcon} />}\n {label}\n {iconName ? (\n <Icon size={24} name={iconName} />\n ) : (\n <Icon size={16} name={isOpen ? 'CheveronUp' : 'CheveronDown'} />\n )}\n </MenuButton>\n <div\n aria-activedescendant={`${listId}-child-${activeIndex}`}\n aria-label={label}\n className={clsx(styles['action-list'], {\n [styles['action-list--open']]: isOpen,\n })}\n onClickCapture={close}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n ref={listRef}\n role=\"menu\"\n tabIndex={-1}\n >\n {Children.map(children, (child, index) => (\n <div key={`${listId}-child-${index}`} role=\"menuitem\" tabIndex={-1}>\n {child}\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"names":["inactiveIndex","indexIncrement","ActionList","label","prefixIcon","iconName","variant","children","listId","useId","triggerRef","useRef","listRef","containerRef","numberOfChildren","Children","activeIndex","setActiveIndex","useState","isOpen","setIsOpen","open","onClickOutside","close","event","toggle","onKeyDown","onKeyUp","prevState","target","useEffect","listItem","overlayChild","childOfChild","styles","jsxs","MenuButton","jsx","Icon","clsx","child","index"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as e, Fragment as a } from "react/jsx-runtime";
2
2
  import { ButtonGroup as n } from "./ButtonGroup.js";
3
- import { Button as r } from "../Button/Button.js";
3
+ import { Button as r } from "../Buttons/Button.js";
4
4
  import { Container as i } from "../../storyComponents/Container/Container.js";
5
5
  const c = `
6
6
  <ButtonGroup reversed={reversed} stacked={stacked}>
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.stories.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport type { PropsWithChildren } from 'react';\nimport type { ButtonGroupProps } from './ButtonGroup';\n\nimport { ButtonGroup } from './ButtonGroup';\n\nimport { Button } from 'components/Button/Button';\nimport { Container } from 'storyComponents/Container';\n\nconst codeString = `\n <ButtonGroup reversed={reversed} stacked={stacked}>\n <Button variant={variant} onClick={onClickedFunction}>{children}</Button>\n <Button variant={variant} onClick={onClickedFunction}>{children}</Button>\n </ButtonGroup>\n`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/ButtonGroup',\n component: ButtonGroup,\n argTypes: {\n children: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: ButtonGroup,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<ButtonGroupProps>>;\n\nconst Template: StoryFn<PropsWithChildren<ButtonGroupProps>> = (args) => (\n <Container>\n <ButtonGroup {...args} />\n </Container>\n);\n\nconst defaultArgs: Partial<PropsWithChildren<ButtonGroupProps>> = {\n stacked: false,\n reversed: false,\n children: (\n <>\n <Button variant=\"primary\">Primary button</Button>\n <Button variant=\"secondary\">Secondary button</Button>\n </>\n ),\n};\n\nexport const ButtonGroupExample = Template.bind({});\nButtonGroupExample.args = {\n ...defaultArgs,\n};\n"],"names":["codeString","ButtonGroup_stories","ButtonGroup","Template","args","jsx","Container","defaultArgs","jsxs","Fragment","Button","ButtonGroupExample"],"mappings":";;;;AASA,MAAMA,IAAa;AAAA;AAAA;AAAA;AAAA;AAAA,GAQJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EACF;AACF,GAEMG,IAAyD,CAACC,MAC9D,gBAAAC,EAACC,KACC,UAAC,gBAAAD,EAAAH,GAAA,EAAa,GAAGE,EAAM,CAAA,EACzB,CAAA,GAGIG,IAA4D;AAAA,EAChE,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAEI,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAO,SAAQ,WAAU,UAAc,kBAAA;AAAA,IACvC,gBAAAL,EAAAK,GAAA,EAAO,SAAQ,aAAY,UAAgB,oBAAA;AAAA,EAAA,GAC9C;AAEJ,GAEaC,IAAqBR,EAAS,KAAK,EAAE;AAClDQ,EAAmB,OAAO;AAAA,EACxB,GAAGJ;AACL;"}
1
+ {"version":3,"file":"ButtonGroup.stories.js","sources":["../../../src/components/ButtonGroup/ButtonGroup.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport type { PropsWithChildren } from 'react';\nimport type { ButtonGroupProps } from './ButtonGroup';\n\nimport { ButtonGroup } from './ButtonGroup';\n\nimport { Button } from 'components/Buttons/Button';\nimport { Container } from 'storyComponents/Container';\n\nconst codeString = `\n <ButtonGroup reversed={reversed} stacked={stacked}>\n <Button variant={variant} onClick={onClickedFunction}>{children}</Button>\n <Button variant={variant} onClick={onClickedFunction}>{children}</Button>\n </ButtonGroup>\n`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Molecules/ButtonGroup',\n component: ButtonGroup,\n argTypes: {\n children: {\n table: {\n disable: true,\n },\n },\n },\n parameters: {\n inspectComponent: ButtonGroup,\n codeString: codeString,\n },\n} as Meta<PropsWithChildren<ButtonGroupProps>>;\n\nconst Template: StoryFn<PropsWithChildren<ButtonGroupProps>> = (args) => (\n <Container>\n <ButtonGroup {...args} />\n </Container>\n);\n\nconst defaultArgs: Partial<PropsWithChildren<ButtonGroupProps>> = {\n stacked: false,\n reversed: false,\n children: (\n <>\n <Button variant=\"primary\">Primary button</Button>\n <Button variant=\"secondary\">Secondary button</Button>\n </>\n ),\n};\n\nexport const ButtonGroupExample = Template.bind({});\nButtonGroupExample.args = {\n ...defaultArgs,\n};\n"],"names":["codeString","ButtonGroup_stories","ButtonGroup","Template","args","jsx","Container","defaultArgs","jsxs","Fragment","Button","ButtonGroupExample"],"mappings":";;;;AASA,MAAMA,IAAa;AAAA;AAAA;AAAA;AAAA;AAAA,GAQJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EACF;AACF,GAEMG,IAAyD,CAACC,MAC9D,gBAAAC,EAACC,KACC,UAAC,gBAAAD,EAAAH,GAAA,EAAa,GAAGE,EAAM,CAAA,EACzB,CAAA,GAGIG,IAA4D;AAAA,EAChE,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAEI,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAJ,EAAAK,GAAA,EAAO,SAAQ,WAAU,UAAc,kBAAA;AAAA,IACvC,gBAAAL,EAAAK,GAAA,EAAO,SAAQ,aAAY,UAAgB,oBAAA;AAAA,EAAA,GAC9C;AAEJ,GAEaC,IAAqBR,EAAS,KAAK,EAAE;AAClDQ,EAAmB,OAAO;AAAA,EACxB,GAAGJ;AACL;"}
@@ -1,5 +1,5 @@
1
1
  import { ButtonHTMLAttributes, ReactNode } from 'react';
2
- export type UIButtonVariant = 'primary' | 'secondary' | 'destructive-primary' | 'destructive-secondary' | 'blank';
2
+ import { UIButtonVariant } from 'types/UserInterface';
3
3
  export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'style'> {
4
4
  /** The variant of the button. */
5
5
  variant: UIButtonVariant;
@@ -0,0 +1,22 @@
1
+ import { jsx as f } from "react/jsx-runtime";
2
+ import { c as u } from "../../clsx-OuTLNxxd.js";
3
+ import { forwardRef as a } from "react";
4
+ import { s as t } from "../../Button.module-Gr3KvBvb.js";
5
+ const p = a(
6
+ ({ children: o, type: r = "button", variant: s, displayColumn: m = !1, ...n }, e) => /* @__PURE__ */ f(
7
+ "button",
8
+ {
9
+ ...n,
10
+ type: r,
11
+ ref: e,
12
+ className: u(t.button, t[`button--${s}`], {
13
+ [t["button--wide-column"]]: m
14
+ }),
15
+ children: o
16
+ }
17
+ )
18
+ );
19
+ export {
20
+ p as Button
21
+ };
22
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../src/components/Buttons/Button.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport type { UIButtonVariant } from 'types/UserInterface';\n\nimport styles from './Button.module.css';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'style'> {\n /** The variant of the button. */\n variant: UIButtonVariant;\n /** The element to show inside the button. */\n children: ReactNode;\n /** Renders the button as a flex column. */\n displayColumn?: boolean;\n}\n\n/** Represents a component for a button. */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, type = 'button', variant, displayColumn = false, ...restProps }: ButtonProps, forwardedRef) => {\n return (\n <button\n {...restProps}\n type={type}\n ref={forwardedRef}\n className={clsx(styles['button'], styles[`button--${variant}`], {\n [styles['button--wide-column']]: displayColumn,\n })}\n >\n {children}\n </button>\n );\n }\n);\n"],"names":["Button","forwardRef","children","type","variant","displayColumn","restProps","forwardedRef","jsx","clsx","styles"],"mappings":";;;;AAkBO,MAAMA,IAASC;AAAA,EACpB,CAAC,EAAE,UAAAC,GAAU,MAAAC,IAAO,UAAU,SAAAC,GAAS,eAAAC,IAAgB,IAAO,GAAGC,EAAU,GAAgBC,MAEvF,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,MAAAH;AAAA,MACA,KAAKI;AAAA,MACL,WAAWE,EAAKC,EAAO,QAAWA,EAAO,WAAWN,CAAO,EAAE,GAAG;AAAA,QAC9D,CAACM,EAAO,qBAAqB,CAAC,GAAGL;AAAA,MAAA,CAClC;AAAA,MAEA,UAAAH;AAAA,IAAA;AAAA,EAAA;AAIT;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.stories.js","sources":["../../../src/components/Buttons/Button.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { ButtonProps } from './Button';\n\nimport { Button } from './Button';\n\nconst codeString = '<Button variant={variant} onClick={onClictFunction}>{children}</Button>';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/Button',\n component: Button,\n argTypes: {\n variant: {\n options: ['primary', 'secondary', 'destructive-primary', 'destructive-secondary', 'blank'],\n control: { type: 'radio' },\n },\n },\n parameters: {\n inspectComponent: Button,\n codeString: codeString,\n },\n} as Meta<ButtonProps>;\n\nconst Template: StoryFn<ButtonProps> = (args) => <Button {...args} />;\n\nconst defaultArgs: Partial<ButtonProps> = {\n variant: 'primary',\n disabled: false,\n displayColumn: false,\n onClick: fn(),\n};\n\nexport const ButtonExample = Template.bind({});\nButtonExample.args = {\n children: 'Click me!',\n ...defaultArgs,\n};\n\nexport const WithMultipleChildren = Template.bind({});\nWithMultipleChildren.args = {\n ...defaultArgs,\n children: (\n <>\n <div>Child 1</div>\n <div>Child 2</div>\n </>\n ),\n};\nWithMultipleChildren.argTypes = {\n ...WithMultipleChildren.argTypes,\n children: {\n table: {\n disable: true, // Disable children controls for this specific story\n },\n },\n};\n"],"names":["codeString","Button_stories","Button","Template","args","jsx","defaultArgs","fn","ButtonExample","WithMultipleChildren","jsxs","Fragment"],"mappings":";;;AAOA,MAAMA,IAAa,2EAGJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,CAAC,WAAW,aAAa,uBAAuB,yBAAyB,OAAO;AAAA,MACzF,SAAS,EAAE,MAAM,QAAQ;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EACF;AACF,GAEMG,IAAiC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAQ,GAAGE,EAAM,CAAA,GAE7DE,IAAoC;AAAA,EACxC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,eAAe;AAAA,EACf,SAASC,EAAG;AACd,GAEaC,IAAgBL,EAAS,KAAK,EAAE;AAC7CK,EAAc,OAAO;AAAA,EACnB,UAAU;AAAA,EACV,GAAGF;AACL;AAEO,MAAMG,IAAuBN,EAAS,KAAK,EAAE;AACpDM,EAAqB,OAAO;AAAA,EAC1B,GAAGH;AAAA,EACH,UAEI,gBAAAI,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAN,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,IACZ,gBAAAA,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,EAAA,GACd;AAEJ;AACAI,EAAqB,WAAW;AAAA,EAC9B,GAAGA,EAAqB;AAAA,EACxB,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA;AAAA,IACX;AAAA,EACF;AACF;"}
@@ -0,0 +1,11 @@
1
+ import { LinkProps } from 'react-router-dom';
2
+ import { UIButtonVariant } from 'types/UserInterface';
3
+ export interface LinkButtonProps extends Omit<LinkProps, 'className' | 'style'> {
4
+ /** The variant of the button. */
5
+ variant: UIButtonVariant;
6
+ }
7
+ /** Represents a button that is used as a Link within react-router-dom.
8
+ *
9
+ * Only works when rendered inside a 'react-router-dom' BrowserRouter
10
+ */
11
+ export declare const LinkButton: import('react').ForwardRefExoticComponent<LinkButtonProps & import('react').RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,12 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { forwardRef as f } from "react";
3
+ import { Link as i } from "react-router-dom";
4
+ import { c as n } from "../../clsx-OuTLNxxd.js";
5
+ import { s as o } from "../../Button.module-Gr3KvBvb.js";
6
+ const l = f(
7
+ ({ variant: r, ...t }, m) => /* @__PURE__ */ s(i, { ...t, className: n(o.button, o[`button--${r}`]), ref: m })
8
+ );
9
+ export {
10
+ l as LinkButton
11
+ };
12
+ //# sourceMappingURL=LinkButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.js","sources":["../../../src/components/Buttons/LinkButton.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport classNames from 'clsx';\n\nimport type { LinkProps } from 'react-router-dom';\nimport type { UIButtonVariant } from 'types/UserInterface';\n\nimport styles from './Button.module.css';\n\nexport interface LinkButtonProps extends Omit<LinkProps, 'className' | 'style'> {\n /** The variant of the button. */\n variant: UIButtonVariant;\n}\n\n/** Represents a button that is used as a Link within react-router-dom.\n *\n * Only works when rendered inside a 'react-router-dom' BrowserRouter\n */\nexport const LinkButton = forwardRef<HTMLAnchorElement, LinkButtonProps>(\n ({ variant, ...restProps }: LinkButtonProps, forwardedRef) => {\n return (\n <Link {...restProps} className={classNames(styles['button'], styles[`button--${variant}`])} ref={forwardedRef} />\n );\n }\n);\n"],"names":["LinkButton","forwardRef","variant","restProps","forwardedRef","Link","classNames","styles"],"mappings":";;;;;AAkBO,MAAMA,IAAaC;AAAA,EACxB,CAAC,EAAE,SAAAC,GAAS,GAAGC,EAAA,GAA8BC,wBAExCC,GAAM,EAAA,GAAGF,GAAW,WAAWG,EAAWC,EAAO,QAAWA,EAAO,WAAWL,CAAO,EAAE,CAAC,GAAG,KAAKE,EAAc,CAAA;AAGrH;"}
@@ -0,0 +1,6 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { LinkButtonProps } from './LinkButton';
3
+ declare const _default: Meta<LinkButtonProps>;
4
+ export default _default;
5
+ export declare const LinkButtonExample: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, LinkButtonProps>;
6
+ export declare const WithMultipleChildren: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, LinkButtonProps>;
@@ -0,0 +1,51 @@
1
+ import { jsxs as a, Fragment as l, jsx as t } from "react/jsx-runtime";
2
+ import { fn as s } from "../../index-MQ0yPLdl.js";
3
+ import { BrowserRouter as c } from "react-router-dom";
4
+ import { LinkButton as n } from "./LinkButton.js";
5
+ const d = `
6
+ // Has all HTMLAnchorElement props available except "className" and "style"
7
+ <LinkButton variant={variant} to={to} replace={replace} buttonRef={buttonRef}>{children}</LinkButton>
8
+ `, k = {
9
+ title: "Atoms/LinkButton",
10
+ component: n,
11
+ argTypes: {
12
+ variant: {
13
+ options: ["primary", "secondary", "destructive-primary", "destructive-secondary", "blank", "blank-icon"],
14
+ control: { type: "radio" }
15
+ }
16
+ },
17
+ parameters: {
18
+ inspectComponent: n,
19
+ codeString: d
20
+ }
21
+ }, r = (o) => /* @__PURE__ */ t(c, { children: /* @__PURE__ */ t(n, { ...o }) }), i = {
22
+ variant: "primary",
23
+ onClick: s()
24
+ }, p = r.bind({});
25
+ p.args = {
26
+ children: "Click me!",
27
+ ...i
28
+ };
29
+ const e = r.bind({});
30
+ e.args = {
31
+ ...i,
32
+ children: /* @__PURE__ */ a(l, { children: [
33
+ /* @__PURE__ */ t("div", { children: "Child 1" }),
34
+ /* @__PURE__ */ t("div", { children: "Child 2" })
35
+ ] })
36
+ };
37
+ e.argTypes = {
38
+ ...e.argTypes,
39
+ children: {
40
+ table: {
41
+ disable: !0
42
+ // Disable children controls for this specific story
43
+ }
44
+ }
45
+ };
46
+ export {
47
+ p as LinkButtonExample,
48
+ e as WithMultipleChildren,
49
+ k as default
50
+ };
51
+ //# sourceMappingURL=LinkButton.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.stories.js","sources":["../../../src/components/Buttons/LinkButton.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\nimport { BrowserRouter } from 'react-router-dom';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { LinkButtonProps } from './LinkButton';\n\nimport { LinkButton } from './LinkButton';\n\nconst codeString = `\n// Has all HTMLAnchorElement props available except \"className\" and \"style\" \n <LinkButton variant={variant} to={to} replace={replace} buttonRef={buttonRef}>{children}</LinkButton>\n`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/LinkButton',\n component: LinkButton,\n argTypes: {\n variant: {\n options: ['primary', 'secondary', 'destructive-primary', 'destructive-secondary', 'blank', 'blank-icon'],\n control: { type: 'radio' },\n },\n },\n parameters: {\n inspectComponent: LinkButton,\n codeString: codeString,\n },\n} as Meta<LinkButtonProps>;\n\nconst Template: StoryFn<LinkButtonProps> = (args) => (\n <BrowserRouter>\n <LinkButton {...args} />\n </BrowserRouter>\n);\n\nconst defaultArgs: Partial<LinkButtonProps> = {\n variant: 'primary',\n onClick: fn(),\n};\n\nexport const LinkButtonExample = Template.bind({});\nLinkButtonExample.args = {\n children: 'Click me!',\n ...defaultArgs,\n};\n\nexport const WithMultipleChildren = Template.bind({});\nWithMultipleChildren.args = {\n ...defaultArgs,\n children: (\n <>\n <div>Child 1</div>\n <div>Child 2</div>\n </>\n ),\n};\n\nWithMultipleChildren.argTypes = {\n ...WithMultipleChildren.argTypes,\n children: {\n table: {\n disable: true, // Disable children controls for this specific story\n },\n },\n};\n"],"names":["codeString","LinkButton_stories","LinkButton","Template","args","jsx","BrowserRouter","defaultArgs","fn","LinkButtonExample","WithMultipleChildren","jsxs","Fragment"],"mappings":";;;;AAQA,MAAMA,IAAa;AAAA;AAAA;AAAA,GAMJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,CAAC,WAAW,aAAa,uBAAuB,yBAAyB,SAAS,YAAY;AAAA,MACvG,SAAS,EAAE,MAAM,QAAQ;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EACF;AACF,GAEMG,IAAqC,CAACC,MAC1C,gBAAAC,EAACC,KACC,UAAC,gBAAAD,EAAAH,GAAA,EAAY,GAAGE,EAAM,CAAA,EACxB,CAAA,GAGIG,IAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,SAASC,EAAG;AACd,GAEaC,IAAoBN,EAAS,KAAK,EAAE;AACjDM,EAAkB,OAAO;AAAA,EACvB,UAAU;AAAA,EACV,GAAGF;AACL;AAEO,MAAMG,IAAuBP,EAAS,KAAK,EAAE;AACpDO,EAAqB,OAAO;AAAA,EAC1B,GAAGH;AAAA,EACH,UAEI,gBAAAI,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAP,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,IACZ,gBAAAA,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,EAAA,GACd;AAEJ;AAEAK,EAAqB,WAAW;AAAA,EAC9B,GAAGA,EAAqB;AAAA,EACxB,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA;AAAA,IACX;AAAA,EACF;AACF;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.js","sources":["../../../src/components/Buttons/MenuButton.tsx"],"sourcesContent":["import { useButton } from '@react-aria/button';\nimport { clsx } from 'clsx';\n\nimport type { AriaButtonProps } from '@react-aria/button';\nimport type { IconProps } from 'components/Icon';\nimport type { MouseEvent, RefObject } from 'react';\nimport type { UIButtonVariant } from 'types/UserInterface';\n\nimport { Icon } from 'components/Icon';\nimport styles from 'components/Buttons/Button.module.css';\n\nexport interface MenuButtonProps extends AriaButtonProps<'button'> {\n buttonRef: RefObject<HTMLButtonElement>;\n /** The variant of the button. */\n variant: UIButtonVariant;\n /** The icon to show. */\n iconName?: IconProps['name'];\n /** The callback function that is invoked when the button is clicked. */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n}\n\n/** Represents a button that is used to open a menu. */\nexport function MenuButton({ buttonRef, variant, iconName, children, ...restProps }: MenuButtonProps) {\n const { buttonProps } = useButton(restProps, buttonRef);\n\n return (\n <button {...buttonProps} ref={buttonRef} className={clsx(styles['button'], styles[`button--${variant}`])}>\n {children}\n {iconName && <Icon name={iconName} />}\n </button>\n );\n}\n"],"names":["MenuButton","buttonRef","variant","iconName","children","restProps","buttonProps","useButton","clsx","styles","jsx","Icon"],"mappings":";;;;;AAsBgB,SAAAA,EAAW,EAAE,WAAAC,GAAW,SAAAC,GAAS,UAAAC,GAAU,UAAAC,GAAU,GAAGC,KAA8B;AACpG,QAAM,EAAE,aAAAC,EAAgB,IAAAC,EAAUF,GAAWJ,CAAS;AAEtD,2BACG,UAAQ,EAAA,GAAGK,GAAa,KAAKL,GAAW,WAAWO,EAAKC,EAAO,QAAWA,EAAO,WAAWP,CAAO,EAAE,CAAC,GACpG,UAAA;AAAA,IAAAE;AAAA,IACAD,KAAY,gBAAAO,EAACC,GAAK,EAAA,MAAMR,EAAU,CAAA;AAAA,EACrC,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.stories.js","sources":["../../../src/components/Buttons/MenuButton.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { MenuButtonProps } from './MenuButton';\n\nimport { MenuButton } from './MenuButton';\n\nconst codeString = `\n// Has all LabelHTMLAttributes props available except \"className\" and \"style\" \n <MenuButton variant={variant} onClick={onClickFunction} onKeyDown={onKeyDown} onKeyUp={onKeyUp} buttonRef={buttonRef}>{children}</MenuButton>\n`;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/MenuButton',\n component: MenuButton,\n argTypes: {\n variant: {\n options: ['primary', 'secondary', 'destructive-primary', 'destructive-secondary', 'blank', 'blank-icon'],\n control: { type: 'radio' },\n },\n },\n parameters: {\n inspectComponent: MenuButton,\n codeString: codeString,\n },\n} as Meta<MenuButtonProps>;\n\nconst Template: StoryFn<MenuButtonProps> = (args) => <MenuButton {...args} />;\n\nconst defaultArgs: Partial<MenuButtonProps> = {\n variant: 'primary',\n onClick: fn(),\n};\n\nexport const MenuButtonExample = Template.bind({});\nMenuButtonExample.args = {\n children: 'Click me!',\n ...defaultArgs,\n};\n\nexport const WithIconChildren = Template.bind({});\nWithIconChildren.args = {\n ...defaultArgs,\n iconName: 'EllipsisVertical',\n};\n\nWithIconChildren.argTypes = {\n ...WithIconChildren.argTypes,\n children: {\n table: {\n disable: true, // Disable children controls for this specific story\n },\n },\n};\n\nexport const WithMultipleChildren = Template.bind({});\nWithMultipleChildren.args = {\n ...defaultArgs,\n children: (\n <>\n <div>Child 1</div>\n <div>Child 2</div>\n </>\n ),\n};\n\nWithMultipleChildren.argTypes = {\n ...WithMultipleChildren.argTypes,\n children: {\n table: {\n disable: true, // Disable children controls for this specific story\n },\n },\n};\n"],"names":["codeString","MenuButton_stories","MenuButton","Template","args","jsx","defaultArgs","fn","MenuButtonExample","WithIconChildren","WithMultipleChildren","jsxs","Fragment"],"mappings":";;;AAOA,MAAMA,IAAa;AAAA;AAAA;AAAA,GAMJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,CAAC,WAAW,aAAa,uBAAuB,yBAAyB,SAAS,YAAY;AAAA,MACvG,SAAS,EAAE,MAAM,QAAQ;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EACF;AACF,GAEMG,IAAqC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAY,GAAGE,EAAM,CAAA,GAErEE,IAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,SAASC,EAAG;AACd,GAEaC,IAAoBL,EAAS,KAAK,EAAE;AACjDK,EAAkB,OAAO;AAAA,EACvB,UAAU;AAAA,EACV,GAAGF;AACL;AAEO,MAAMG,IAAmBN,EAAS,KAAK,EAAE;AAChDM,EAAiB,OAAO;AAAA,EACtB,GAAGH;AAAA,EACH,UAAU;AACZ;AAEAG,EAAiB,WAAW;AAAA,EAC1B,GAAGA,EAAiB;AAAA,EACpB,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA;AAAA,IACX;AAAA,EACF;AACF;AAEO,MAAMC,IAAuBP,EAAS,KAAK,EAAE;AACpDO,EAAqB,OAAO;AAAA,EAC1B,GAAGJ;AAAA,EACH,UAEI,gBAAAK,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAP,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,IACZ,gBAAAA,EAAC,SAAI,UAAO,UAAA,CAAA;AAAA,EAAA,GACd;AAEJ;AAEAK,EAAqB,WAAW;AAAA,EAC9B,GAAGA,EAAqB;AAAA,EACxB,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA;AAAA,IACX;AAAA,EACF;AACF;"}
@@ -0,0 +1,3 @@
1
+ export * from './Button';
2
+ export * from './LinkButton';
3
+ export * from './MenuButton';
@@ -0,0 +1,9 @@
1
+ import { Button as r } from "./Button.js";
2
+ import { LinkButton as e } from "./LinkButton.js";
3
+ import { MenuButton as f } from "./MenuButton.js";
4
+ export {
5
+ r as Button,
6
+ e as LinkButton,
7
+ f as MenuButton
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -2,8 +2,9 @@ import { jsxs as l, jsx as a } from "react/jsx-runtime";
2
2
  import { useRef as T, useEffect as N } from "react";
3
3
  import { c as g } from "../../clsx-OuTLNxxd.js";
4
4
  import { Icon as L } from "../Icon/Icon.js";
5
+ import { Button as R } from "../Buttons/Button.js";
6
+ import "../Buttons/LinkButton.js";
5
7
  import "@react-aria/button";
6
- import { Button as R } from "../Button/Button.js";
7
8
  import { Checkbox as y } from "../Checkbox/Checkbox.js";
8
9
  import { Label as S } from "../Label/Label.js";
9
10
  import "@react-aria/dialog";
@@ -16,7 +17,7 @@ import "../IconButton/IconButton.js";
16
17
  import "../Input/Input.js";
17
18
  import "../InputField/InputField.js";
18
19
  import "react-router-dom";
19
- import "../../MultiSelect-Ckf3uGw5.js";
20
+ import "../../MultiSelect-D1FnMER4.js";
20
21
  import "../SelectListbox/SelectListbox.js";
21
22
  import "../SelectListbox/SelectProvider.js";
22
23
  import { useResponsive as j } from "../hooks/useResponsive.js";
@@ -29,7 +30,7 @@ import '../../assets/CheckboxTree.css';const o = {
29
30
  "checkbox-tree__leaves": "_checkbox-tree__leaves_xbe4e_39",
30
31
  "checkbox-tree__leaves--expanded": "_checkbox-tree__leaves--expanded_xbe4e_48",
31
32
  "checkbox-tree__leaf": "_checkbox-tree__leaf_xbe4e_52"
32
- }, ce = ({ title: p, checkboxTree: A, defaultValue: i, onChange: x }) => {
33
+ }, oe = ({ title: p, checkboxTree: A, defaultValue: i, onChange: x }) => {
33
34
  const s = T([]), { lessThan: n } = j(), _ = (r, e = document) => [].slice.call(e.querySelectorAll(r)), E = () => {
34
35
  const r = s.current.reduce((e, t) => (t.name && t.checked && e.push(t.value), e), []);
35
36
  x && x(r);
@@ -115,6 +116,6 @@ import '../../assets/CheckboxTree.css';const o = {
115
116
  ] });
116
117
  };
117
118
  export {
118
- ce as CheckboxTree
119
+ oe as CheckboxTree
119
120
  };
120
121
  //# sourceMappingURL=CheckboxTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport type { MouseEventHandler } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked. When deselecting the parent checkbox, the disabled checkbox is deselected, and will never be checked again. We'll leave this for now, until we run into a real world example where this is necessary.\n\ntype CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\ntype CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n defaultValue?: string[];\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({ title, checkboxTree, defaultValue, onChange }: CheckboxTreeProps) => {\n const checkboxNodes = useRef<HTMLInputElement[]>([]);\n const { lessThan } = useResponsive();\n\n const nodeArray = (selector: string, parent = document) => [].slice.call(parent.querySelectorAll(selector));\n\n const setValue = () => {\n const values = checkboxNodes.current.reduce((values, checkbox) => {\n if (checkbox.name && checkbox.checked) {\n values.push(checkbox.value);\n }\n return values;\n }, [] as string[]);\n\n if (onChange) onChange(values);\n };\n\n const setCheckboxesState = (check: HTMLInputElement) => {\n while (check) {\n const parent = check.closest('[data-ul]')?.parentNode?.querySelector('input');\n const siblings: HTMLInputElement[] = nodeArray(\n 'input',\n parent?.closest('[data-li]')?.querySelector('[data-ul]') as Document | undefined\n );\n\n const checkStatus = siblings.reduce((status, check) => {\n if (!check.disabled) status.push(check.checked);\n return status;\n }, [] as boolean[]);\n\n const every = checkStatus.every(Boolean);\n const some = checkStatus.some(Boolean);\n\n if (parent) {\n parent.checked = every;\n parent.indeterminate = !every && every !== some;\n }\n\n if (!parent || check === parent) {\n break;\n }\n\n check = parent;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (!check || !check.parentNode || !check.parentNode.parentNode) return;\n const parentCheckbox = check.parentNode.parentNode as HTMLElement;\n\n if (\n lessThan.md &&\n check.previousElementSibling?.tagName === 'BUTTON' &&\n parentCheckbox.getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(parentCheckbox.querySelector('button') as HTMLButtonElement, parentCheckbox);\n return;\n }\n\n if (checkboxNodes.current.indexOf(check) === -1) return;\n\n const children: HTMLInputElement[] = (check.parentNode.parentNode as Document)\n ? nodeArray('input', check.parentNode.parentNode as Document)\n : [];\n\n children.forEach((child) => {\n return (child.checked = child.disabled ? false : check.checked);\n });\n\n setCheckboxesState(check);\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n checkboxNodes.current = nodeArray('input') || [];\n }, []);\n\n useEffect(() => {\n if (defaultValue) {\n checkboxNodes.current.forEach((checkbox) => {\n if (defaultValue.includes(checkbox.value)) {\n checkbox.checked = true;\n setCheckboxesState(checkbox);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValue]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox id={itemName} disabled={children.every((checkbox) => checkbox.disabled)} />\n <Label htmlFor={itemName}>{itemName}</Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox id={itemName} name={itemName} value={itemValue} disabled={disabled} />\n <Label htmlFor={itemName}>{itemName}</Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","defaultValue","onChange","checkboxNodes","useRef","lessThan","useResponsive","nodeArray","selector","parent","setValue","values","checkbox","setCheckboxesState","check","_b","_a","checkStatus","_c","status","every","some","setExpandedAttributes","trigger","container","children","styles","handleChange","event","parentCheckbox","child","handleExpanded","target","useEffect","itemName","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","Label","itemValue","disabled"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport type { MouseEventHandler } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked. When deselecting the parent checkbox, the disabled checkbox is deselected, and will never be checked again. We'll leave this for now, until we run into a real world example where this is necessary.\n\ntype CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\ntype CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n defaultValue?: string[];\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({ title, checkboxTree, defaultValue, onChange }: CheckboxTreeProps) => {\n const checkboxNodes = useRef<HTMLInputElement[]>([]);\n const { lessThan } = useResponsive();\n\n const nodeArray = (selector: string, parent = document) => [].slice.call(parent.querySelectorAll(selector));\n\n const setValue = () => {\n const values = checkboxNodes.current.reduce((values, checkbox) => {\n if (checkbox.name && checkbox.checked) {\n values.push(checkbox.value);\n }\n return values;\n }, [] as string[]);\n\n if (onChange) onChange(values);\n };\n\n const setCheckboxesState = (check: HTMLInputElement) => {\n while (check) {\n const parent = check.closest('[data-ul]')?.parentNode?.querySelector('input');\n const siblings: HTMLInputElement[] = nodeArray(\n 'input',\n parent?.closest('[data-li]')?.querySelector('[data-ul]') as Document | undefined\n );\n\n const checkStatus = siblings.reduce((status, check) => {\n if (!check.disabled) status.push(check.checked);\n return status;\n }, [] as boolean[]);\n\n const every = checkStatus.every(Boolean);\n const some = checkStatus.some(Boolean);\n\n if (parent) {\n parent.checked = every;\n parent.indeterminate = !every && every !== some;\n }\n\n if (!parent || check === parent) {\n break;\n }\n\n check = parent;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (!check || !check.parentNode || !check.parentNode.parentNode) return;\n const parentCheckbox = check.parentNode.parentNode as HTMLElement;\n\n if (\n lessThan.md &&\n check.previousElementSibling?.tagName === 'BUTTON' &&\n parentCheckbox.getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(parentCheckbox.querySelector('button') as HTMLButtonElement, parentCheckbox);\n return;\n }\n\n if (checkboxNodes.current.indexOf(check) === -1) return;\n\n const children: HTMLInputElement[] = (check.parentNode.parentNode as Document)\n ? nodeArray('input', check.parentNode.parentNode as Document)\n : [];\n\n children.forEach((child) => {\n return (child.checked = child.disabled ? false : check.checked);\n });\n\n setCheckboxesState(check);\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n checkboxNodes.current = nodeArray('input') || [];\n }, []);\n\n useEffect(() => {\n if (defaultValue) {\n checkboxNodes.current.forEach((checkbox) => {\n if (defaultValue.includes(checkbox.value)) {\n checkbox.checked = true;\n setCheckboxesState(checkbox);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValue]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox id={itemName} disabled={children.every((checkbox) => checkbox.disabled)} />\n <Label htmlFor={itemName}>{itemName}</Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox id={itemName} name={itemName} value={itemValue} disabled={disabled} />\n <Label htmlFor={itemName}>{itemName}</Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","defaultValue","onChange","checkboxNodes","useRef","lessThan","useResponsive","nodeArray","selector","parent","setValue","values","checkbox","setCheckboxesState","check","_b","_a","checkStatus","_c","status","every","some","setExpandedAttributes","trigger","container","children","styles","handleChange","event","parentCheckbox","child","handleExpanded","target","useEffect","itemName","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","Label","itemValue","disabled"],"mappings":"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"}