@sula-tech/webcomponents 0.17.4 → 0.17.6

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 (90) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{sula-avatar_29.cjs.entry.js → sula-avatar_30.cjs.entry.js} +339 -46
  3. package/dist/cjs/sula-avatar_30.cjs.entry.js.map +1 -0
  4. package/dist/cjs/webcomponents.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +1 -0
  6. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  7. package/dist/collection/components/sula-loader/sula-loader.js +21 -6
  8. package/dist/collection/components/sula-loader/sula-loader.js.map +1 -1
  9. package/dist/collection/components/sula-menu/model/sula-menu.model.js +2 -0
  10. package/dist/collection/components/sula-menu/model/sula-menu.model.js.map +1 -0
  11. package/dist/collection/components/sula-menu/sula-menu.css +1 -0
  12. package/dist/collection/components/sula-menu/sula-menu.js +442 -0
  13. package/dist/collection/components/sula-menu/sula-menu.js.map +1 -0
  14. package/dist/collection/components/sula-menu/sula-menu.stories.js +401 -0
  15. package/dist/collection/components/sula-menu/sula-menu.stories.js.map +1 -0
  16. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +1 -1
  17. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +2 -2
  18. package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
  19. package/dist/collection/components/sula-search-bar/sula-search-bar.js +2 -2
  20. package/dist/collection/components/sula-segmented-control/sula-segmented-control.js +1 -1
  21. package/dist/collection/components/sula-switch/sula-switch.js +4 -4
  22. package/dist/collection/components/sula-table/sula-table.js +3 -3
  23. package/dist/collection/components/sula-table-body/sula-table-body.js +1 -1
  24. package/dist/collection/components/sula-table-cell/sula-table-cell.js +2 -2
  25. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +2 -2
  26. package/dist/collection/components/sula-table-header/sula-table-header.js +1 -1
  27. package/dist/collection/components/sula-table-row/sula-table-row.js +1 -1
  28. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  29. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  30. package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
  31. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  32. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  33. package/dist/collection/components/sula-toggle/sula-toggle.js +1 -1
  34. package/dist/collection/components/sula-tooltip/sula-tooltip.js +1 -1
  35. package/dist/components/{p-fgs5TBQ7.js → p-B2GnTWgR.js} +3 -3
  36. package/dist/components/{p-fgs5TBQ7.js.map → p-B2GnTWgR.js.map} +1 -1
  37. package/dist/components/{p-DGCOlK4x.js → p-BJMnU9Gv.js} +4 -4
  38. package/dist/components/{p-DGCOlK4x.js.map → p-BJMnU9Gv.js.map} +1 -1
  39. package/dist/components/{p-DksR9NcR.js → p-DtVItq_Q.js} +3 -3
  40. package/dist/components/{p-DksR9NcR.js.map → p-DtVItq_Q.js.map} +1 -1
  41. package/dist/components/{p-fwcKhm5l.js → p-zE24jlFe.js} +23 -8
  42. package/dist/components/{p-fwcKhm5l.js.map → p-zE24jlFe.js.map} +1 -1
  43. package/dist/components/sula-avatar.js +1 -1
  44. package/dist/components/sula-badge.js +1 -1
  45. package/dist/components/sula-breadcrumb.js +1 -1
  46. package/dist/components/sula-button.js +1 -1
  47. package/dist/components/sula-checkbox.js +1 -1
  48. package/dist/components/sula-chip.js +2 -2
  49. package/dist/components/sula-dropdown.js +2 -2
  50. package/dist/components/sula-icon.js +1 -1
  51. package/dist/components/sula-loader.js +1 -1
  52. package/dist/components/sula-menu-select-list.js +1 -1
  53. package/dist/components/sula-menu.d.ts +11 -0
  54. package/dist/components/sula-menu.js +317 -0
  55. package/dist/components/sula-menu.js.map +1 -0
  56. package/dist/components/sula-modal.js +3 -3
  57. package/dist/components/sula-progress-bar.js +3 -3
  58. package/dist/components/sula-radio-button.js +2 -2
  59. package/dist/components/sula-search-bar.js +3 -3
  60. package/dist/components/sula-segmented-control.js +2 -2
  61. package/dist/components/sula-switch.js +4 -4
  62. package/dist/components/sula-table-body.js +1 -1
  63. package/dist/components/sula-table-cell.js +2 -2
  64. package/dist/components/sula-table-head-cell.js +2 -2
  65. package/dist/components/sula-table-header.js +1 -1
  66. package/dist/components/sula-table-row.js +1 -1
  67. package/dist/components/sula-table.js +3 -3
  68. package/dist/components/sula-tag.js +4 -4
  69. package/dist/components/sula-textarea.js +6 -6
  70. package/dist/components/sula-textfield.js +3 -3
  71. package/dist/components/sula-tiles.js +2 -2
  72. package/dist/components/sula-timeline-list.js +2 -2
  73. package/dist/components/sula-toggle.js +2 -2
  74. package/dist/components/sula-tooltip.js +2 -2
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/{sula-avatar_29.entry.js → sula-avatar_30.entry.js} +339 -47
  77. package/dist/esm/sula-avatar_30.entry.js.map +1 -0
  78. package/dist/esm/webcomponents.js +1 -1
  79. package/dist/types/components/sula-loader/sula-loader.d.ts +7 -3
  80. package/dist/types/components/sula-menu/model/sula-menu.model.d.ts +21 -0
  81. package/dist/types/components/sula-menu/sula-menu.d.ts +73 -0
  82. package/dist/types/components/sula-menu/sula-menu.stories.d.ts +56 -0
  83. package/dist/types/components.d.ts +74 -0
  84. package/dist/webcomponents/{p-f62433bd.entry.js → p-b58b85c4.entry.js} +854 -423
  85. package/dist/webcomponents/p-b58b85c4.entry.js.map +1 -0
  86. package/dist/webcomponents/webcomponents.esm.js +14 -5
  87. package/package.json +1 -1
  88. package/dist/cjs/sula-avatar_29.cjs.entry.js.map +0 -1
  89. package/dist/esm/sula-avatar_29.entry.js.map +0 -1
  90. package/dist/webcomponents/p-f62433bd.entry.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
3
 
4
4
  var SulaAvatarSize;
5
5
  (function (SulaAvatarSize) {
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
3
 
4
4
  var SulaBadgeStatus;
5
5
  (function (SulaBadgeStatus) {
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
3
 
4
4
  const sulaBreadcrumbCss = "*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}:host{display:block}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.static{position:static}.flex{display:flex}.inline-flex{display:inline-flex}.h-\\[5\\.25px\\]{height:5.25px}.w-\\[9px\\]{width:9px}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.px-12{padding-left:.75rem;padding-right:.75rem}.align-middle{vertical-align:middle}.text-paragraph-medium-bold{font-size:1rem;font-weight:700;letter-spacing:0;line-height:24px}.tracking-\\[-0\\.01em\\]{letter-spacing:-.01em}.text-brand-primary{color:var(--color-brand-primary)}.text-text-secondary{color:var(--color-text-secondary)}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:decoration-solid:hover{text-decoration-style:solid}.hover\\:decoration-1:hover{text-decoration-thickness:1px}.focus\\:rounded:focus{border-radius:.25rem}.focus\\:outline:focus{outline-style:solid}.focus\\:outline-2:focus{outline-width:2px}.focus\\:outline-offset-2:focus{outline-offset:2px}.focus\\:outline-feedback-informational:focus{outline-color:var(--color-feedback-informational)}.active\\:text-text-secondary:active{color:var(--color-text-secondary)}.active\\:underline:active{text-decoration-line:underline}.active\\:decoration-solid:active{text-decoration-style:solid}.active\\:decoration-1:active{text-decoration-thickness:1px}";
5
5
 
@@ -1,4 +1,4 @@
1
- import { S as SulaButton$1, d as defineCustomElement$1 } from './p-DGCOlK4x.js';
1
+ import { S as SulaButton$1, d as defineCustomElement$1 } from './p-BJMnU9Gv.js';
2
2
 
3
3
  const SulaButton = SulaButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
3
 
4
4
  var SulaCheckboxType;
5
5
  (function (SulaCheckboxType) {
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$3 } from './p-fgs5TBQ7.js';
3
- import { d as defineCustomElement$2 } from './p-DksR9NcR.js';
2
+ import { d as defineCustomElement$3 } from './p-B2GnTWgR.js';
3
+ import { d as defineCustomElement$2 } from './p-DtVItq_Q.js';
4
4
 
5
5
  var SulaChipAppearance;
6
6
  (function (SulaChipAppearance) {
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$3 } from './p-fgs5TBQ7.js';
3
- import { d as defineCustomElement$2 } from './p-DksR9NcR.js';
2
+ import { d as defineCustomElement$3 } from './p-B2GnTWgR.js';
3
+ import { d as defineCustomElement$2 } from './p-DtVItq_Q.js';
4
4
 
5
5
  const sulaDropdownCss = "*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.outline{outline-style:solid}:host{display:block}.dropdown-focus{outline:2px solid var(--color-feedback-informational)!important;outline-offset:2px!important}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.static{position:static}.absolute{position:absolute}.relative{position:relative}.bottom-\\[72px\\]{bottom:72px}.left-0{left:0}.top-\\[72px\\]{top:72px}.z-50{z-index:50}.m-0{margin:0}.ml-8{margin-left:.5rem}.flex{display:flex}.h-\\[72px\\]{height:72px}.w-full{width:100%}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.overflow-auto{overflow:auto}.rounded-sm,.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-none{border-style:none}.border-line-general{border-color:var(--color-line-general)}.border-line-input{border-color:var(--color-line-input)}.bg-states-bg-disabled{background-color:var(--color-states-bg-disabled)}.bg-surface-body{background-color:var(--color-surface-body)}.bg-transparent{background-color:transparent}.p-0{padding:0}.px-16{padding-left:1rem;padding-right:1rem}.px-24{padding-left:1.5rem;padding-right:1.5rem}.py-16{padding-bottom:1rem;padding-top:1rem}.pt-4{padding-top:.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.leading-4{line-height:1rem}.leading-6{line-height:1.5rem}.text-icon-disabled{color:var(--color-icon-disabled)}.text-text-disabled{color:var(--color-text-disabled)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\\:text-text-secondary::placeholder{color:var(--color-text-secondary)}.rounded-sm{border-radius:.75rem}.py-12{padding-bottom:.75rem;padding-top:.75rem}.text-text-brand{color:var(--color-text-brand)}.hover\\:bg-states-empty-bg-hover:hover{background-color:var(--color-states-empty-bg-hover)}";
6
6
 
@@ -1,4 +1,4 @@
1
- import { S as SulaIcon$1, d as defineCustomElement$1 } from './p-fgs5TBQ7.js';
1
+ import { S as SulaIcon$1, d as defineCustomElement$1 } from './p-B2GnTWgR.js';
2
2
 
3
3
  const SulaIcon = SulaIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { S as SulaLoader$1, d as defineCustomElement$1 } from './p-fwcKhm5l.js';
1
+ import { S as SulaLoader$1, d as defineCustomElement$1 } from './p-zE24jlFe.js';
2
2
 
3
3
  const SulaLoader = SulaLoader$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { S as SulaMenuSelectList$1, d as defineCustomElement$1 } from './p-DksR9NcR.js';
1
+ import { S as SulaMenuSelectList$1, d as defineCustomElement$1 } from './p-DtVItq_Q.js';
2
2
 
3
3
  const SulaMenuSelectList = SulaMenuSelectList$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SulaMenu extends Components.SulaMenu, HTMLElement {}
4
+ export const SulaMenu: {
5
+ prototype: SulaMenu;
6
+ new (): SulaMenu;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,317 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
+
4
+ const sulaMenuCss = "*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host{display:block;height:100%;overflow:visible;position:relative;transition:width .36s cubic-bezier(.22,1,.36,1);width:256px}:host(.menu-host--collapsed){width:88px}.menu-shell{min-height:100%;overflow:hidden;transform-origin:left top;transition:width .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1),box-shadow .36s cubic-bezier(.22,1,.36,1),border-radius .28s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1);width:100%;will-change:width,transform,box-shadow,border-radius}.menu-shell--expanded{box-shadow:0 10px 24px rgba(15,23,42,.08),0 2px 8px rgba(15,23,42,.06)}.menu-shell--collapsed{box-shadow:0 8px 18px rgba(15,23,42,.06),0 1px 4px rgba(15,23,42,.04)}.menu-shell--preview{border-radius:0 24px 24px 0;bottom:0;box-shadow:0 28px 60px rgba(15,23,42,.18),0 10px 24px rgba(15,23,42,.12);left:0;position:absolute;top:0;transform:translateX(0);width:256px;z-index:2}.menu-header{gap:0;transition:padding .36s cubic-bezier(.22,1,.36,1),gap .24s cubic-bezier(.4,0,.2,1)}.menu-nav,.menu-toggle-wrapper{transition:padding .36s cubic-bezier(.22,1,.36,1)}.menu-brand-image{flex:0 0 auto;transition:margin .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}.menu-copy{display:block;max-width:220px;min-width:0;opacity:1;overflow:hidden;transform:translateX(0);transform-origin:left center;transition:max-width .32s cubic-bezier(.22,1,.36,1),opacity .2s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.22,1,.36,1),margin-left .32s cubic-bezier(.22,1,.36,1);white-space:nowrap;will-change:opacity,transform,max-width,margin-left}.menu-copy--visible{max-width:220px;opacity:1;pointer-events:auto;transform:translateX(0)}.menu-copy--hidden{max-width:0;opacity:0;pointer-events:none;transform:translateX(-10px)}.menu-title{flex:1 1 auto;min-width:0}.menu-title.menu-copy--visible{max-width:100%}.menu-item-label{flex:0 1 auto}.menu-item{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),padding .32s cubic-bezier(.22,1,.36,1)}.menu-item-caret{max-width:16px;opacity:1;overflow:hidden;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .18s cubic-bezier(.4,0,.2,1),max-width .28s cubic-bezier(.22,1,.36,1),margin-left .28s cubic-bezier(.22,1,.36,1)}.menu-item-caret--visible{margin-left:12px;max-width:16px;opacity:1}.menu-item-caret--hidden{margin-left:0;max-width:0;opacity:0;transform:translateX(-8px)}.menu-item-caret--expanded{transform:rotate(180deg)}.submenu{max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-6px);transform-origin:top left;transition:max-height .26s cubic-bezier(.22,1,.36,1),opacity .12s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.22,1,.36,1);will-change:max-height,opacity,transform}.submenu--expanded{max-height:999px;opacity:1;pointer-events:auto;transform:translateY(0)}.submenu-item{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),transform .24s cubic-bezier(.22,1,.36,1)}.submenu-item--branch{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),border-color .24s cubic-bezier(.22,1,.36,1),margin-left .24s cubic-bezier(.22,1,.36,1)}.submenu-item-branch-content{min-width:0}.submenu-branch{transform-origin:top left}.submenu-grandchild-item{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),transform .24s cubic-bezier(.22,1,.36,1)}.submenu-grandchild-label{display:block}.menu-toggle{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),padding .32s cubic-bezier(.22,1,.36,1)}.menu-toggle-icon{flex:0 0 auto;transition:transform .32s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1)}.menu-toggle-label{margin-left:0;white-space:nowrap}.menu-toggle-label.menu-copy--visible{margin-left:12px}@media (prefers-reduced-motion:reduce){.menu-brand-image,.menu-copy,.menu-header,.menu-item,.menu-item-caret,.menu-nav,.menu-shell,.menu-toggle,.menu-toggle-icon,.menu-toggle-wrapper,.submenu,.submenu-item,:host{transition:none}}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.static{position:static}.z-50{z-index:50}.mb-0{margin-bottom:0}.mb-3{margin-bottom:.75rem}.ml-8{margin-left:.5rem}.ml-\\[-2px\\]{margin-left:-2px}.ml-\\[1\\.6rem\\]{margin-left:1.6rem}.mr-6{margin-right:1.5rem}.h-10{height:2.5rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-10{max-height:2.5rem}.w-10{width:2.5rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-10{max-width:2.5rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.list-none{list-style-type:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-xs{border-radius:.5rem}.border{border-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-line-general{border-color:var(--color-line-general)}.border-negative-negative-1{border-color:var(--color-negative-negative-1)}.bg-box-shadow-body{background-color:var(--color-box-shadow-body)}.bg-brand-primary{background-color:var(--color-brand-primary)}.bg-surface-body{background-color:var(--color-surface-body)}.p-8{padding:.5rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:.75rem;padding-right:.75rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-16{padding-bottom:1rem;padding-top:1rem}.pb-12{padding-bottom:.75rem}.pb-16{padding-bottom:1rem}.pl-16{padding-left:1rem}.pl-20{padding-left:1.25rem}.pl-24{padding-left:1.5rem}.pl-8{padding-left:.5rem}.pt-12{padding-top:.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.text-icon-primary{color:var(--color-icon-primary)}.text-negative-negative-1{color:var(--color-negative-negative-1)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\\:bg-box-shadow-body:hover{background-color:var(--color-box-shadow-body)}";
5
+
6
+ const SulaMenu$1 = /*@__PURE__*/ proxyCustomElement(class SulaMenu extends H {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ this.itemSelected = createEvent(this, "itemSelected");
12
+ this.itemClicked = createEvent(this, "itemClicked");
13
+ this.menuToggled = createEvent(this, "menuToggled");
14
+ /**
15
+ * Menu title
16
+ */
17
+ this.menuTitle = '';
18
+ /**
19
+ * Menu image
20
+ */
21
+ this.image = '';
22
+ /**
23
+ * Menu items
24
+ */
25
+ this.items = [];
26
+ this.collapsed = false;
27
+ this.previewExpanded = false;
28
+ }
29
+ componentWillLoad() {
30
+ this.syncSelectedItemFromItems(this.items);
31
+ }
32
+ syncSelectedItemFromItems(items) {
33
+ const nextSelectedItem = this.findSelectedLeaf(items);
34
+ if (nextSelectedItem) {
35
+ this.selectedItem = nextSelectedItem;
36
+ return;
37
+ }
38
+ if (this.selectedItem && this.containsSelectedItem(items, this.selectedItem)) {
39
+ return;
40
+ }
41
+ this.selectedItem = undefined;
42
+ }
43
+ getVisibleItems(items) {
44
+ var _a;
45
+ return (_a = items === null || items === void 0 ? void 0 : items.filter(item => !item.hidden)) !== null && _a !== void 0 ? _a : [];
46
+ }
47
+ getVisibleSubItems(item) {
48
+ return this.getVisibleItems(item.children);
49
+ }
50
+ getVisibleGrandchildren(item) {
51
+ return this.getVisibleItems(item.children);
52
+ }
53
+ hasVisibleSubItems(item) {
54
+ return this.getVisibleSubItems(item).length > 0;
55
+ }
56
+ hasVisibleGrandchildren(item) {
57
+ return this.getVisibleGrandchildren(item).length > 0;
58
+ }
59
+ containsSelectedItem(items, selectedItem) {
60
+ const visibleItems = this.getVisibleItems(items);
61
+ if (selectedItem.parentItemId && selectedItem.parentChildId) {
62
+ return visibleItems.some(item => item.id === selectedItem.parentItemId &&
63
+ this.getVisibleSubItems(item).some(child => child.id === selectedItem.parentChildId && this.getVisibleGrandchildren(child).some(grandchild => grandchild.id === selectedItem.id)));
64
+ }
65
+ if (selectedItem.parentItemId) {
66
+ return visibleItems.some(item => item.id === selectedItem.parentItemId && this.getVisibleSubItems(item).some(child => child.id === selectedItem.id && !this.hasVisibleGrandchildren(child)));
67
+ }
68
+ return visibleItems.some(item => item.id === selectedItem.id && !this.hasVisibleSubItems(item));
69
+ }
70
+ findSelectedLeaf(items) {
71
+ for (const item of this.getVisibleItems(items)) {
72
+ const visibleChildren = this.getVisibleSubItems(item);
73
+ if (!visibleChildren.length && item.selected) {
74
+ return { id: item.id };
75
+ }
76
+ for (const child of visibleChildren) {
77
+ const selectedGrandchild = this.getVisibleGrandchildren(child).find(grandchild => grandchild.selected);
78
+ if (selectedGrandchild) {
79
+ return {
80
+ id: selectedGrandchild.id,
81
+ parentItemId: item.id,
82
+ parentChildId: child.id,
83
+ };
84
+ }
85
+ if (!this.hasVisibleGrandchildren(child) && child.selected) {
86
+ return {
87
+ id: child.id,
88
+ parentItemId: item.id,
89
+ };
90
+ }
91
+ }
92
+ }
93
+ return undefined;
94
+ }
95
+ isMainItemSelected(itemId) {
96
+ var _a;
97
+ return ((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.id) === itemId && !this.selectedItem.parentItemId;
98
+ }
99
+ hasSelectedChild(parentItemId) {
100
+ var _a;
101
+ return ((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.parentItemId) === parentItemId;
102
+ }
103
+ isSelectedSubItem(parentItemId, childId) {
104
+ var _a;
105
+ return ((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.id) === childId && this.selectedItem.parentItemId === parentItemId && !this.selectedItem.parentChildId;
106
+ }
107
+ hasSelectedGrandchild(parentItemId, parentChildId) {
108
+ var _a;
109
+ return ((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.parentItemId) === parentItemId && this.selectedItem.parentChildId === parentChildId;
110
+ }
111
+ isSelectedGrandchild(parentItemId, parentChildId, grandchildId) {
112
+ var _a;
113
+ return ((_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.id) === grandchildId && this.selectedItem.parentItemId === parentItemId && this.selectedItem.parentChildId === parentChildId;
114
+ }
115
+ isItemActive(item) {
116
+ return this.isMainItemSelected(item.id) || this.hasSelectedChild(item.id) || (!!item.expanded && this.hasVisibleSubItems(item));
117
+ }
118
+ isSubItemActive(parentItemId, item) {
119
+ return this.isSelectedSubItem(parentItemId, item.id) || this.hasSelectedGrandchild(parentItemId, item.id) || (!!item.expanded && this.hasVisibleGrandchildren(item));
120
+ }
121
+ handleItemClick(clickedItem) {
122
+ this.itemClicked.emit(clickedItem);
123
+ if (!this.hasVisibleSubItems(clickedItem)) {
124
+ this.selectedItem = { id: clickedItem.id };
125
+ this.itemSelected.emit(clickedItem);
126
+ return;
127
+ }
128
+ this.items = this.items.map(item => item.id === clickedItem.id
129
+ ? Object.assign(Object.assign({}, item), { expanded: !item.expanded }) : item);
130
+ }
131
+ handleSubItemClick(parentItemId, clickedChild) {
132
+ this.itemClicked.emit(clickedChild);
133
+ if (!this.hasVisibleGrandchildren(clickedChild)) {
134
+ this.selectedItem = {
135
+ id: clickedChild.id,
136
+ parentItemId,
137
+ };
138
+ this.itemSelected.emit(clickedChild);
139
+ return;
140
+ }
141
+ this.items = this.items.map(item => {
142
+ var _a;
143
+ return item.id === parentItemId
144
+ ? Object.assign(Object.assign({}, item), { children: (_a = item.children) === null || _a === void 0 ? void 0 : _a.map(child => child.id === clickedChild.id
145
+ ? Object.assign(Object.assign({}, child), { expanded: !child.expanded }) : child) }) : item;
146
+ });
147
+ }
148
+ handleGrandchildClick(parentItemId, parentChildId, clickedGrandchild) {
149
+ this.itemClicked.emit(clickedGrandchild);
150
+ this.selectedItem = {
151
+ id: clickedGrandchild.id,
152
+ parentItemId,
153
+ parentChildId,
154
+ };
155
+ this.itemSelected.emit(clickedGrandchild);
156
+ }
157
+ getItemIconClass(item) {
158
+ if (this.isItemActive(item)) {
159
+ return 'text-negative-negative-1 text-xl';
160
+ }
161
+ else {
162
+ return 'text-icon-primary text-2xl';
163
+ }
164
+ }
165
+ getSubItemIconClass(_item) {
166
+ return 'text-icon-primary text-xl';
167
+ }
168
+ getSubItemCaretIconClass() {
169
+ return 'text-icon-primary text-base';
170
+ }
171
+ getCaretIconClass(item) {
172
+ if (this.isItemActive(item)) {
173
+ return 'text-text-primary text-base';
174
+ }
175
+ return 'text-text-secondary text-base';
176
+ }
177
+ toggleMenu() {
178
+ if (this.collapsed) {
179
+ this.collapsed = false;
180
+ this.previewExpanded = false;
181
+ this.menuToggled.emit(true);
182
+ return;
183
+ }
184
+ this.collapsed = true;
185
+ this.menuToggled.emit(false);
186
+ this.previewExpanded = false;
187
+ }
188
+ handleMenuMouseEnter() {
189
+ if (this.collapsed) {
190
+ this.previewExpanded = true;
191
+ }
192
+ }
193
+ handleMenuMouseLeave() {
194
+ if (this.collapsed) {
195
+ this.previewExpanded = false;
196
+ }
197
+ }
198
+ renderSubmenuItems(parentItem, expandedView) {
199
+ return this.getVisibleSubItems(parentItem).map(child => {
200
+ const childHasChildren = this.hasVisibleGrandchildren(child);
201
+ const childExpanded = expandedView && !!child.expanded;
202
+ const childActive = this.isSubItemActive(parentItem.id, child);
203
+ if (!childHasChildren) {
204
+ return (h("li", { class: "list-none", key: child.id }, h("a", { class: "submenu-item flex min-w-0 cursor-pointer items-center rounded-xs py-16 pl-24 select-none hover:bg-box-shadow-body", title: child.label, onClick: () => this.handleSubItemClick(parentItem.id, child) }, h("sula-icon", { icon: child.icon, customClass: this.getSubItemIconClass(child) }), h("span", { class: {
205
+ 'ml-8 truncate text-xs text-text-primary': true,
206
+ 'font-bold': childActive,
207
+ } }, child.label))));
208
+ }
209
+ return (h("li", { class: "list-none", key: child.id }, h("a", { class: {
210
+ 'submenu-item submenu-item--branch flex w-full cursor-pointer items-center rounded-xs py-16 pl-24 select-none hover:bg-box-shadow-body': true,
211
+ 'ml-[-2px] border-l-2 border-negative-negative-1 font-bold': childActive,
212
+ }, title: child.label, onClick: () => this.handleSubItemClick(parentItem.id, child) }, h("div", { class: "submenu-item-branch-content flex min-w-0 flex-1 items-center" }, h("sula-icon", { icon: child.icon, customClass: this.getSubItemIconClass(child) }), h("span", { class: { 'ml-8 truncate text-xs text-text-primary': true, 'font-bold': childActive } }, child.label)), h("div", { class: "submenu-item-branch-caret flex flex-none items-center justify-end pl-8" }, h("sula-icon", { icon: `ph-bold ph-caret-${childExpanded ? 'up' : 'down'}`, customClass: this.getSubItemCaretIconClass() }))), h("ul", { "aria-hidden": !childExpanded, class: {
213
+ 'submenu': true,
214
+ 'submenu--expanded': childExpanded,
215
+ 'submenu-branch ml-[-2px] pl-20 border-l-2 border-negative-negative-1': true,
216
+ } }, this.getVisibleGrandchildren(child).map(grandchild => (h("li", { class: "list-none", key: grandchild.id }, h("a", { class: "submenu-grandchild-item flex cursor-pointer items-center rounded-xs p-8 text-sm text-text-primary hover:bg-box-shadow-body", onClick: () => this.handleGrandchildClick(parentItem.id, child.id, grandchild) }, h("span", { class: {
217
+ 'submenu-grandchild-label truncate pl-16 text-xs': true,
218
+ 'font-bold': this.isSelectedGrandchild(parentItem.id, child.id, grandchild.id),
219
+ }, title: grandchild.label }, grandchild.label))))))));
220
+ });
221
+ }
222
+ render() {
223
+ const expandedView = !this.collapsed || this.previewExpanded;
224
+ return (h(Host, { key: '2164c083d4c9e612fa0fed34396144773232268f', class: { 'menu-host--collapsed': this.collapsed } }, h("aside", { key: 'd5b92fd99097d2c4aaef410ff2f1123c2ce4eddd', onMouseEnter: () => this.handleMenuMouseEnter(), onMouseLeave: () => this.handleMenuMouseLeave(), class: {
225
+ 'menu-shell flex h-full flex-col bg-surface-body py-16 pt-12 shadow-md z-50': true,
226
+ 'menu-shell--collapsed': this.collapsed && !this.previewExpanded,
227
+ 'menu-shell--expanded': expandedView,
228
+ 'menu-shell--preview': this.collapsed && this.previewExpanded,
229
+ } }, h("div", { key: 'f4315e2904e400051d6f45d2a7e0e03a5fce638e', class: {
230
+ 'menu-header flex items-center pb-12': true,
231
+ 'mb-3 px-7': expandedView,
232
+ 'mb-0 justify-center px-0': !expandedView,
233
+ } }, this.image && (h("div", { key: '84494b90889b0743bbab04f8bcd024e9ab6db3cd', class: { 'menu-brand-image max-h-10 max-w-10 overflow-hidden': true, 'mr-6': expandedView } }, h("img", { key: '45811f52987030f7b7b7b4afd8128d95a6cab3dc', src: this.image, alt: this.menuTitle }))), h("div", { key: '37297fbfe006a7e079f42a1931c4a6c2cdaa22d9', "aria-hidden": !expandedView, title: expandedView ? this.menuTitle : undefined, class: {
234
+ 'menu-title menu-copy': true,
235
+ 'menu-copy--visible': expandedView,
236
+ 'menu-copy--hidden': !expandedView,
237
+ } }, h("h1", { key: '76e4345fd29ebdbef244a8c2cffe69a529e1628e', class: "truncate text-xl font-semibold leading-tight text-text-primary" }, this.menuTitle))), h("nav", { key: 'c3418588924bbd95100c674295160e17c4a380ad', class: {
238
+ 'menu-nav flex h-full flex-col overflow-y-auto overflow-x-hidden pb-16': true,
239
+ 'px-20': expandedView,
240
+ 'px-12': !expandedView,
241
+ } }, this.getVisibleItems(this.items).map(item => {
242
+ const itemHasChildren = this.hasVisibleSubItems(item);
243
+ return (h("li", { class: "decoration-none list-none", key: item.id }, h("div", { class: {
244
+ 'menu-item flex w-full cursor-pointer items-center rounded-xs p-8 hover:bg-box-shadow-body': true,
245
+ 'justify-between': expandedView,
246
+ 'justify-center': !expandedView,
247
+ }, title: !expandedView ? item.label : undefined, onClick: () => this.handleItemClick(item) }, h("div", { class: {
248
+ 'flex items-center': true,
249
+ 'flex-1 min-w-0 space-x-8': expandedView,
250
+ 'justify-center': !expandedView,
251
+ } }, h("div", { class: { 'flex flex-none items-center justify-center': true, 'h-9 w-9 rounded-full bg-brand-primary': this.isItemActive(item) } }, h("sula-icon", { icon: item.icon, customClass: this.getItemIconClass(item), class: "flex items-center justify-center" })), h("span", { title: expandedView ? item.label : undefined, "aria-hidden": !expandedView, class: {
252
+ 'menu-item-label menu-copy truncate': true,
253
+ 'menu-copy--visible': expandedView,
254
+ 'menu-copy--hidden': !expandedView,
255
+ 'font-bold text-text-primary': this.isItemActive(item),
256
+ 'text-text-secondary': !this.isItemActive(item),
257
+ } }, item.label)), itemHasChildren && (h("sula-icon", { "aria-hidden": !expandedView, class: {
258
+ 'menu-item-caret flex items-center justify-center': true,
259
+ 'menu-item-caret--expanded': !!item.expanded,
260
+ 'menu-item-caret--visible': expandedView,
261
+ 'menu-item-caret--hidden': !expandedView,
262
+ }, icon: "ph ph-caret-down", customClass: this.getCaretIconClass(item) }))), itemHasChildren && (h("ul", { "aria-hidden": !expandedView || !item.expanded, class: { 'submenu': true, 'submenu--expanded': expandedView && !!item.expanded, 'ml-[1.6rem] border-l border-line-general': true } }, this.renderSubmenuItems(item, expandedView)))));
263
+ })), h("div", { key: 'd06732c44139de7658482383eec80d5a512d3c9b', class: {
264
+ 'menu-toggle-wrapper pb-16': true,
265
+ 'px-20': expandedView,
266
+ 'px-12': !expandedView,
267
+ } }, h("button", { key: '83d20eec0d19a26e25ae117b680312f5a2a537f8', type: "button", class: {
268
+ 'menu-toggle flex w-full cursor-pointer items-center rounded-xs p-8 hover:bg-box-shadow-body': true,
269
+ 'justify-start': expandedView,
270
+ 'justify-center': !expandedView,
271
+ }, title: this.collapsed ? 'Fixar menu' : 'Ocultar menu', onClick: () => this.toggleMenu() }, h("div", { key: '6df4dfbac679c4df050104c52b90b06e11b2e7f3', class: "menu-toggle-icon flex h-10 w-10 items-center justify-center rounded-full border border-line-general bg-surface-body" }, h("sula-icon", { key: '3399d56f3029abafef461fadb95890b72e6f9570', icon: `ph ph-arrow-${this.collapsed ? 'right' : 'left'}`, customClass: "text-text-secondary text-xl" })), h("span", { key: '69f65062f085a2bec00cd4ab3b6b871803dbecaa', "aria-hidden": !expandedView, class: {
272
+ 'menu-toggle-label menu-copy text-base text-text-secondary': true,
273
+ 'menu-copy--visible': expandedView,
274
+ 'menu-copy--hidden': !expandedView,
275
+ } }, this.collapsed ? 'Fixar menu' : 'Ocultar menu'))))));
276
+ }
277
+ static get watchers() { return {
278
+ "items": ["syncSelectedItemFromItems"]
279
+ }; }
280
+ static get style() { return sulaMenuCss; }
281
+ }, [1, "sula-menu", {
282
+ "menuTitle": [1, "menu-title"],
283
+ "image": [1],
284
+ "items": [1040],
285
+ "collapsed": [32],
286
+ "previewExpanded": [32],
287
+ "selectedItem": [32]
288
+ }, undefined, {
289
+ "items": ["syncSelectedItemFromItems"]
290
+ }]);
291
+ function defineCustomElement$1() {
292
+ if (typeof customElements === "undefined") {
293
+ return;
294
+ }
295
+ const components = ["sula-menu", "sula-icon"];
296
+ components.forEach(tagName => { switch (tagName) {
297
+ case "sula-menu":
298
+ if (!customElements.get(tagName)) {
299
+ customElements.define(tagName, SulaMenu$1);
300
+ }
301
+ break;
302
+ case "sula-icon":
303
+ if (!customElements.get(tagName)) {
304
+ defineCustomElement$2();
305
+ }
306
+ break;
307
+ } });
308
+ }
309
+ defineCustomElement$1();
310
+
311
+ const SulaMenu = SulaMenu$1;
312
+ const defineCustomElement = defineCustomElement$1;
313
+
314
+ export { SulaMenu, defineCustomElement };
315
+ //# sourceMappingURL=sula-menu.js.map
316
+
317
+ //# sourceMappingURL=sula-menu.js.map
@@ -0,0 +1 @@
1
+ {"file":"sula-menu.js","mappings":"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","names":["SulaMenu","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sula-menu/sula-menu.scss?tag=sula-menu&encapsulation=shadow","src/components/sula-menu/sula-menu.tsx"],"sourcesContent":["$menu-ease-emphasized: cubic-bezier(0.22, 1, 0.36, 1);\n$menu-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n\n:host {\n display: block;\n height: 100%;\n width: 256px;\n position: relative;\n overflow: visible;\n transition: width 360ms $menu-ease-emphasized;\n}\n\n:host(.menu-host--collapsed) {\n width: 88px;\n}\n\n.menu-shell {\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n transform-origin: left top;\n will-change: width, transform, box-shadow, border-radius;\n transition:\n width 360ms $menu-ease-emphasized,\n transform 360ms $menu-ease-emphasized,\n box-shadow 360ms $menu-ease-emphasized,\n border-radius 280ms $menu-ease-standard,\n background-color 220ms $menu-ease-standard;\n}\n\n.menu-shell--expanded {\n box-shadow:\n 0 10px 24px rgba(15, 23, 42, 0.08),\n 0 2px 8px rgba(15, 23, 42, 0.06);\n}\n\n.menu-shell--collapsed {\n box-shadow:\n 0 8px 18px rgba(15, 23, 42, 0.06),\n 0 1px 4px rgba(15, 23, 42, 0.04);\n}\n\n.menu-shell--preview {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 256px;\n border-radius: 0 24px 24px 0;\n box-shadow:\n 0 28px 60px rgba(15, 23, 42, 0.18),\n 0 10px 24px rgba(15, 23, 42, 0.12);\n transform: translateX(0);\n z-index: 2;\n}\n\n.menu-header {\n gap: 0;\n transition:\n padding 360ms $menu-ease-emphasized,\n gap 240ms $menu-ease-standard;\n}\n\n.menu-nav,\n.menu-toggle-wrapper {\n transition: padding 360ms $menu-ease-emphasized;\n}\n\n.menu-brand-image {\n flex: 0 0 auto;\n transition:\n margin 320ms $menu-ease-emphasized,\n transform 320ms $menu-ease-emphasized;\n}\n\n.menu-copy {\n display: block;\n min-width: 0;\n max-width: 220px;\n overflow: hidden;\n opacity: 1;\n white-space: nowrap;\n transform: translateX(0);\n transform-origin: left center;\n will-change: opacity, transform, max-width, margin-left;\n transition:\n max-width 320ms $menu-ease-emphasized,\n opacity 200ms $menu-ease-standard,\n transform 320ms $menu-ease-emphasized,\n margin-left 320ms $menu-ease-emphasized;\n}\n\n.menu-copy--visible {\n max-width: 220px;\n opacity: 1;\n transform: translateX(0);\n pointer-events: auto;\n}\n\n.menu-copy--hidden {\n max-width: 0;\n opacity: 0;\n transform: translateX(-10px);\n pointer-events: none;\n}\n\n.menu-title {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.menu-title.menu-copy--visible {\n max-width: 100%;\n}\n\n.menu-item-label {\n flex: 0 1 auto;\n}\n\n.menu-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n padding 320ms $menu-ease-emphasized;\n}\n\n.menu-item-caret {\n max-width: 16px;\n overflow: hidden;\n opacity: 1;\n transition:\n transform 280ms $menu-ease-emphasized,\n opacity 180ms $menu-ease-standard,\n max-width 280ms $menu-ease-emphasized,\n margin-left 280ms $menu-ease-emphasized;\n}\n\n.menu-item-caret--visible {\n opacity: 1;\n max-width: 16px;\n margin-left: 12px;\n}\n\n.menu-item-caret--hidden {\n opacity: 0;\n max-width: 0;\n margin-left: 0;\n transform: translateX(-8px);\n}\n\n.menu-item-caret--expanded {\n transform: rotate(180deg);\n}\n\n.submenu {\n max-height: 0;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: max-height, opacity, transform;\n transform: translateY(-6px);\n transform-origin: top left;\n transition:\n max-height 260ms $menu-ease-emphasized,\n opacity 120ms $menu-ease-standard,\n transform 180ms $menu-ease-emphasized;\n}\n\n.submenu--expanded {\n max-height: 999px;\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.submenu-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-item--branch {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n border-color 240ms $menu-ease-emphasized,\n margin-left 240ms $menu-ease-emphasized;\n}\n\n.submenu-item-branch-content {\n min-width: 0;\n}\n\n.submenu-branch {\n transform-origin: top left;\n}\n\n.submenu-grandchild-item {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n transform 240ms $menu-ease-emphasized;\n}\n\n.submenu-grandchild-label {\n display: block;\n}\n\n.menu-toggle {\n transition:\n background-color 200ms $menu-ease-standard,\n color 200ms $menu-ease-standard,\n padding 320ms $menu-ease-emphasized;\n}\n\n.menu-toggle-icon {\n flex: 0 0 auto;\n transition:\n transform 320ms $menu-ease-emphasized,\n border-color 220ms $menu-ease-standard,\n background-color 220ms $menu-ease-standard;\n}\n\n.menu-toggle-label {\n white-space: nowrap;\n margin-left: 0;\n}\n\n.menu-toggle-label.menu-copy--visible {\n margin-left: 12px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host,\n .menu-shell,\n .menu-header,\n .menu-nav,\n .menu-toggle-wrapper,\n .menu-brand-image,\n .menu-copy,\n .menu-item,\n .menu-item-caret,\n .submenu,\n .submenu-item,\n .menu-toggle,\n .menu-toggle-icon {\n transition: none;\n }\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { SelectedMenuItem, SulaMenuItem, SulaMenuMainItem, SulaMenuSubItem } from './model/sula-menu.model';\n\n@Component({\n tag: 'sula-menu',\n styleUrl: 'sula-menu.scss',\n shadow: true,\n})\nexport class SulaMenu {\n /**\n * Menu title\n */\n @Prop()\n menuTitle: string = '';\n\n /**\n * Menu image\n */\n @Prop()\n image: string = '';\n\n /**\n * Menu items\n */\n @Prop({ mutable: true, reflect: true })\n items: SulaMenuMainItem[] = [];\n\n /**\n * Emitted when a menu item is selected\n */\n @Event()\n itemSelected: EventEmitter<SulaMenuMainItem | SulaMenuSubItem | SulaMenuItem>;\n\n /**\n * Emitted when a menu item is clicked\n */\n @Event()\n itemClicked: EventEmitter<SulaMenuMainItem | SulaMenuSubItem | SulaMenuItem>;\n\n /**\n * Emitted when the menu is toggled between collapsed and expanded states\n * True: Menu is expanded\n * False: Menu is collapsed\n */\n @Event()\n menuToggled: EventEmitter<boolean>;\n\n @State()\n collapsed: boolean = false;\n\n @State()\n previewExpanded: boolean = false;\n\n @State()\n selectedItem?: SelectedMenuItem;\n\n componentWillLoad() {\n this.syncSelectedItemFromItems(this.items);\n }\n\n @Watch('items')\n syncSelectedItemFromItems(items: SulaMenuMainItem[]) {\n const nextSelectedItem = this.findSelectedLeaf(items);\n\n if (nextSelectedItem) {\n this.selectedItem = nextSelectedItem;\n return;\n }\n\n if (this.selectedItem && this.containsSelectedItem(items, this.selectedItem)) {\n return;\n }\n\n this.selectedItem = undefined;\n }\n\n getVisibleItems<T extends SulaMenuItem>(items?: T[]) {\n return items?.filter(item => !item.hidden) ?? [];\n }\n\n getVisibleSubItems(item: Pick<SulaMenuMainItem, 'children'>) {\n return this.getVisibleItems(item.children);\n }\n\n getVisibleGrandchildren(item: Pick<SulaMenuSubItem, 'children'>) {\n return this.getVisibleItems(item.children);\n }\n\n hasVisibleSubItems(item: Pick<SulaMenuMainItem, 'children'>) {\n return this.getVisibleSubItems(item).length > 0;\n }\n\n hasVisibleGrandchildren(item: Pick<SulaMenuSubItem, 'children'>) {\n return this.getVisibleGrandchildren(item).length > 0;\n }\n\n containsSelectedItem(items: SulaMenuMainItem[], selectedItem: SelectedMenuItem) {\n const visibleItems = this.getVisibleItems(items);\n\n if (selectedItem.parentItemId && selectedItem.parentChildId) {\n return visibleItems.some(\n item =>\n item.id === selectedItem.parentItemId &&\n this.getVisibleSubItems(item).some(\n child => child.id === selectedItem.parentChildId && this.getVisibleGrandchildren(child).some(grandchild => grandchild.id === selectedItem.id),\n ),\n );\n }\n\n if (selectedItem.parentItemId) {\n return visibleItems.some(\n item => item.id === selectedItem.parentItemId && this.getVisibleSubItems(item).some(child => child.id === selectedItem.id && !this.hasVisibleGrandchildren(child)),\n );\n }\n\n return visibleItems.some(item => item.id === selectedItem.id && !this.hasVisibleSubItems(item));\n }\n\n findSelectedLeaf(items: SulaMenuMainItem[]) {\n for (const item of this.getVisibleItems(items)) {\n const visibleChildren = this.getVisibleSubItems(item);\n\n if (!visibleChildren.length && item.selected) {\n return { id: item.id };\n }\n\n for (const child of visibleChildren) {\n const selectedGrandchild = this.getVisibleGrandchildren(child).find(grandchild => grandchild.selected);\n\n if (selectedGrandchild) {\n return {\n id: selectedGrandchild.id,\n parentItemId: item.id,\n parentChildId: child.id,\n };\n }\n\n if (!this.hasVisibleGrandchildren(child) && child.selected) {\n return {\n id: child.id,\n parentItemId: item.id,\n };\n }\n }\n }\n\n return undefined;\n }\n\n isMainItemSelected(itemId: string) {\n return this.selectedItem?.id === itemId && !this.selectedItem.parentItemId;\n }\n\n hasSelectedChild(parentItemId: string) {\n return this.selectedItem?.parentItemId === parentItemId;\n }\n\n isSelectedSubItem(parentItemId: string, childId: string) {\n return this.selectedItem?.id === childId && this.selectedItem.parentItemId === parentItemId && !this.selectedItem.parentChildId;\n }\n\n hasSelectedGrandchild(parentItemId: string, parentChildId: string) {\n return this.selectedItem?.parentItemId === parentItemId && this.selectedItem.parentChildId === parentChildId;\n }\n\n isSelectedGrandchild(parentItemId: string, parentChildId: string, grandchildId: string) {\n return this.selectedItem?.id === grandchildId && this.selectedItem.parentItemId === parentItemId && this.selectedItem.parentChildId === parentChildId;\n }\n\n isItemActive(item: Pick<SulaMenuMainItem, 'id' | 'expanded' | 'children'>) {\n return this.isMainItemSelected(item.id) || this.hasSelectedChild(item.id) || (!!item.expanded && this.hasVisibleSubItems(item));\n }\n\n isSubItemActive(parentItemId: string, item: Pick<SulaMenuSubItem, 'id' | 'expanded' | 'children'>) {\n return this.isSelectedSubItem(parentItemId, item.id) || this.hasSelectedGrandchild(parentItemId, item.id) || (!!item.expanded && this.hasVisibleGrandchildren(item));\n }\n\n handleItemClick(clickedItem: SulaMenuMainItem) {\n this.itemClicked.emit(clickedItem);\n\n if (!this.hasVisibleSubItems(clickedItem)) {\n this.selectedItem = { id: clickedItem.id };\n this.itemSelected.emit(clickedItem);\n return;\n }\n\n this.items = this.items.map(item =>\n item.id === clickedItem.id\n ? {\n ...item,\n expanded: !item.expanded,\n }\n : item,\n );\n }\n\n handleSubItemClick(parentItemId: string, clickedChild: SulaMenuSubItem) {\n this.itemClicked.emit(clickedChild);\n\n if (!this.hasVisibleGrandchildren(clickedChild)) {\n this.selectedItem = {\n id: clickedChild.id,\n parentItemId,\n };\n this.itemSelected.emit(clickedChild);\n return;\n }\n\n this.items = this.items.map(item =>\n item.id === parentItemId\n ? {\n ...item,\n children: item.children?.map(child =>\n child.id === clickedChild.id\n ? {\n ...child,\n expanded: !child.expanded,\n }\n : child,\n ),\n }\n : item,\n );\n }\n\n handleGrandchildClick(parentItemId: string, parentChildId: string, clickedGrandchild: NonNullable<SulaMenuSubItem['children']>[number]) {\n this.itemClicked.emit(clickedGrandchild);\n\n this.selectedItem = {\n id: clickedGrandchild.id,\n parentItemId,\n parentChildId,\n };\n this.itemSelected.emit(clickedGrandchild);\n }\n\n getItemIconClass(item: SulaMenuMainItem) {\n if (this.isItemActive(item)) {\n return 'text-negative-negative-1 text-xl';\n } else {\n return 'text-icon-primary text-2xl';\n }\n }\n\n getSubItemIconClass(_item: SulaMenuSubItem) {\n return 'text-icon-primary text-xl';\n }\n\n getSubItemCaretIconClass() {\n return 'text-icon-primary text-base';\n }\n\n getCaretIconClass(item: SulaMenuMainItem) {\n if (this.isItemActive(item)) {\n return 'text-text-primary text-base';\n }\n\n return 'text-text-secondary text-base';\n }\n\n toggleMenu() {\n if (this.collapsed) {\n this.collapsed = false;\n this.previewExpanded = false;\n this.menuToggled.emit(true);\n return;\n }\n\n this.collapsed = true;\n this.menuToggled.emit(false);\n this.previewExpanded = false;\n }\n\n handleMenuMouseEnter() {\n if (this.collapsed) {\n this.previewExpanded = true;\n }\n }\n\n handleMenuMouseLeave() {\n if (this.collapsed) {\n this.previewExpanded = false;\n }\n }\n\n renderSubmenuItems(parentItem: SulaMenuMainItem, expandedView: boolean) {\n return this.getVisibleSubItems(parentItem).map(child => {\n const childHasChildren = this.hasVisibleGrandchildren(child);\n const childExpanded = expandedView && !!child.expanded;\n const childActive = this.isSubItemActive(parentItem.id, child);\n\n if (!childHasChildren) {\n return (\n <li class=\"list-none\" key={child.id}>\n <a\n class=\"submenu-item flex min-w-0 cursor-pointer items-center rounded-xs py-16 pl-24 select-none hover:bg-box-shadow-body\"\n title={child.label}\n onClick={() => this.handleSubItemClick(parentItem.id, child)}\n >\n <sula-icon icon={child.icon} customClass={this.getSubItemIconClass(child)}></sula-icon>\n <span\n class={{\n 'ml-8 truncate text-xs text-text-primary': true,\n 'font-bold': childActive,\n }}\n >\n {child.label}\n </span>\n </a>\n </li>\n );\n }\n\n return (\n <li class=\"list-none\" key={child.id}>\n <a\n class={{\n 'submenu-item submenu-item--branch flex w-full cursor-pointer items-center rounded-xs py-16 pl-24 select-none hover:bg-box-shadow-body': true,\n 'ml-[-2px] border-l-2 border-negative-negative-1 font-bold': childActive,\n }}\n title={child.label}\n onClick={() => this.handleSubItemClick(parentItem.id, child)}\n >\n <div class=\"submenu-item-branch-content flex min-w-0 flex-1 items-center\">\n <sula-icon icon={child.icon} customClass={this.getSubItemIconClass(child)}></sula-icon>\n <span class={{ 'ml-8 truncate text-xs text-text-primary': true, 'font-bold': childActive }}>{child.label}</span>\n </div>\n <div class=\"submenu-item-branch-caret flex flex-none items-center justify-end pl-8\">\n <sula-icon icon={`ph-bold ph-caret-${childExpanded ? 'up' : 'down'}`} customClass={this.getSubItemCaretIconClass()}></sula-icon>\n </div>\n </a>\n\n <ul\n aria-hidden={!childExpanded}\n class={{\n 'submenu': true,\n 'submenu--expanded': childExpanded,\n 'submenu-branch ml-[-2px] pl-20 border-l-2 border-negative-negative-1': true,\n }}\n >\n {this.getVisibleGrandchildren(child).map(grandchild => (\n <li class=\"list-none\" key={grandchild.id}>\n <a\n class=\"submenu-grandchild-item flex cursor-pointer items-center rounded-xs p-8 text-sm text-text-primary hover:bg-box-shadow-body\"\n onClick={() => this.handleGrandchildClick(parentItem.id, child.id, grandchild)}\n >\n <span\n class={{\n 'submenu-grandchild-label truncate pl-16 text-xs': true,\n 'font-bold': this.isSelectedGrandchild(parentItem.id, child.id, grandchild.id),\n }}\n title={grandchild.label}\n >\n {grandchild.label}\n </span>\n </a>\n </li>\n ))}\n </ul>\n </li>\n );\n });\n }\n\n render() {\n const expandedView = !this.collapsed || this.previewExpanded;\n\n return (\n <Host class={{ 'menu-host--collapsed': this.collapsed }}>\n <aside\n onMouseEnter={() => this.handleMenuMouseEnter()}\n onMouseLeave={() => this.handleMenuMouseLeave()}\n class={{\n 'menu-shell flex h-full flex-col bg-surface-body py-16 pt-12 shadow-md z-50': true,\n 'menu-shell--collapsed': this.collapsed && !this.previewExpanded,\n 'menu-shell--expanded': expandedView,\n 'menu-shell--preview': this.collapsed && this.previewExpanded,\n }}\n >\n <div\n class={{\n 'menu-header flex items-center pb-12': true,\n 'mb-3 px-7': expandedView,\n 'mb-0 justify-center px-0': !expandedView,\n }}\n >\n {this.image && (\n <div class={{ 'menu-brand-image max-h-10 max-w-10 overflow-hidden': true, 'mr-6': expandedView }}>\n <img src={this.image} alt={this.menuTitle} />\n </div>\n )}\n <div\n aria-hidden={!expandedView}\n title={expandedView ? this.menuTitle : undefined}\n class={{\n 'menu-title menu-copy': true,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n }}\n >\n <h1 class=\"truncate text-xl font-semibold leading-tight text-text-primary\">{this.menuTitle}</h1>\n </div>\n </div>\n\n <nav\n class={{\n 'menu-nav flex h-full flex-col overflow-y-auto overflow-x-hidden pb-16': true,\n 'px-20': expandedView,\n 'px-12': !expandedView,\n }}\n >\n {this.getVisibleItems(this.items).map(item => {\n const itemHasChildren = this.hasVisibleSubItems(item);\n\n return (\n <li class=\"decoration-none list-none\" key={item.id}>\n <div\n class={{\n 'menu-item flex w-full cursor-pointer items-center rounded-xs p-8 hover:bg-box-shadow-body': true,\n 'justify-between': expandedView,\n 'justify-center': !expandedView,\n }}\n title={!expandedView ? item.label : undefined}\n onClick={() => this.handleItemClick(item)}\n >\n <div\n class={{\n 'flex items-center': true,\n 'flex-1 min-w-0 space-x-8': expandedView,\n 'justify-center': !expandedView,\n }}\n >\n <div class={{ 'flex flex-none items-center justify-center': true, 'h-9 w-9 rounded-full bg-brand-primary': this.isItemActive(item) }}>\n <sula-icon icon={item.icon} customClass={this.getItemIconClass(item)} class=\"flex items-center justify-center\"></sula-icon>\n </div>\n <span\n title={expandedView ? item.label : undefined}\n aria-hidden={!expandedView}\n class={{\n 'menu-item-label menu-copy truncate': true,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n 'font-bold text-text-primary': this.isItemActive(item),\n 'text-text-secondary': !this.isItemActive(item),\n }}\n >\n {item.label}\n </span>\n </div>\n {itemHasChildren && (\n <sula-icon\n aria-hidden={!expandedView}\n class={{\n 'menu-item-caret flex items-center justify-center': true,\n 'menu-item-caret--expanded': !!item.expanded,\n 'menu-item-caret--visible': expandedView,\n 'menu-item-caret--hidden': !expandedView,\n }}\n icon=\"ph ph-caret-down\"\n customClass={this.getCaretIconClass(item)}\n ></sula-icon>\n )}\n </div>\n {itemHasChildren && (\n <ul\n aria-hidden={!expandedView || !item.expanded}\n class={{ 'submenu': true, 'submenu--expanded': expandedView && !!item.expanded, 'ml-[1.6rem] border-l border-line-general': true }}\n >\n {this.renderSubmenuItems(item, expandedView)}\n </ul>\n )}\n </li>\n );\n })}\n </nav>\n\n <div\n class={{\n 'menu-toggle-wrapper pb-16': true,\n 'px-20': expandedView,\n 'px-12': !expandedView,\n }}\n >\n <button\n type=\"button\"\n class={{\n 'menu-toggle flex w-full cursor-pointer items-center rounded-xs p-8 hover:bg-box-shadow-body': true,\n 'justify-start': expandedView,\n 'justify-center': !expandedView,\n }}\n title={this.collapsed ? 'Fixar menu' : 'Ocultar menu'}\n onClick={() => this.toggleMenu()}\n >\n <div class=\"menu-toggle-icon flex h-10 w-10 items-center justify-center rounded-full border border-line-general bg-surface-body\">\n <sula-icon icon={`ph ph-arrow-${this.collapsed ? 'right' : 'left'}`} customClass=\"text-text-secondary text-xl\"></sula-icon>\n </div>\n <span\n aria-hidden={!expandedView}\n class={{\n 'menu-toggle-label menu-copy text-base text-text-secondary': true,\n 'menu-copy--visible': expandedView,\n 'menu-copy--hidden': !expandedView,\n }}\n >\n {this.collapsed ? 'Fixar menu' : 'Ocultar menu'}\n </span>\n </button>\n </div>\n </aside>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$4, a as SulaButtonAppearance } from './p-DGCOlK4x.js';
3
- import { d as defineCustomElement$3 } from './p-fgs5TBQ7.js';
4
- import { d as defineCustomElement$2 } from './p-fwcKhm5l.js';
2
+ import { d as defineCustomElement$4, a as SulaButtonAppearance } from './p-BJMnU9Gv.js';
3
+ import { d as defineCustomElement$3 } from './p-B2GnTWgR.js';
4
+ import { d as defineCustomElement$2 } from './p-zE24jlFe.js';
5
5
 
6
6
  var SulaModalType;
7
7
  (function (SulaModalType) {
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
2
+ import { d as defineCustomElement$2 } from './p-B2GnTWgR.js';
3
3
 
4
4
  var SulaProgressBarAppearance;
5
5
  (function (SulaProgressBarAppearance) {
@@ -74,10 +74,10 @@ const SulaProgressBar$1 = /*@__PURE__*/ proxyCustomElement(class SulaProgressBar
74
74
  }
75
75
  }
76
76
  render() {
77
- return (h(Host, { key: 'd584c2e2c020ec016a426650fa48fcd843f0c523' }, h("div", { key: 'f2b4e9940cde1280934377ad3db3bab063a5d28d', class: "flex flex-col w-full space-y-8" }, h("div", { key: '8b597aa608fdb404d98f2cbf8022efb539bf999d', class: "flex justify-between items-center" }, h("label", { key: '73763e3827e31b967310142c65b67a0587691711', class: "text-sm text-text-secondary leading-[14px]" }, this.topLabel), this.getProgressBarStateElement()), h("div", { key: 'd240b3850e4dfccea231fbdda5bd8366c8c0cc05', style: { width: `${this.progress}%` }, class: {
77
+ return (h(Host, { key: '1e587e3e42170718cf760afac9eaa7654a67d761' }, h("div", { key: 'a92b92be28b41a1e130abd4e0c6c047410a5565b', class: "flex flex-col w-full space-y-8" }, h("div", { key: '519faec52f5c42c08b950f789786389ee14a4174', class: "flex justify-between items-center" }, h("label", { key: '67a9cfbbdd6fb001631dc45dc2115bfb1fb1a43f', class: "text-sm text-text-secondary leading-[14px]" }, this.topLabel), this.getProgressBarStateElement()), h("div", { key: '62b55986b354b50aaf4c204c595ca7df99f2d6dc', style: { width: `${this.progress}%` }, class: {
78
78
  'h-12 rounded-xxl': true,
79
79
  [this.getProgressBarStyle()]: true,
80
- } }), h("label", { key: 'ffe21db4a0c39f1272370acc780b2d3ba061cd53', class: "text-sm text-text-secondary leading-[14px]" }, this.bottomLabel))));
80
+ } }), h("label", { key: 'f4379cc3dd23159e4f47468ec3a4fcd142719009', class: "text-sm text-text-secondary leading-[14px]" }, this.bottomLabel))));
81
81
  }
82
82
  static get watchers() { return {
83
83
  "progress": ["validateProgress"]